From 88a2618f6016c4398644fa6903ca5912041b4992 Mon Sep 17 00:00:00 2001 From: Moritz Kirmse Date: Fri, 18 Aug 2023 13:40:06 +0200 Subject: [PATCH] bundle maplibre-layers statically as a mapbox wrapper --- bundle/lux.dist.mjs | 29940 ++++++++++++------------ bundle/lux.dist.umd.js | 29943 ++++++++++++------------- bundle/style.css | 28478 ++++++++++++++++++++++- package-lock.json | 717 +- package.json | 2 +- src/App.vue | 14 +- src/bundle/lib.ts | 2 + src/composables/map/ol.composable.ts | 1 - src/lib/ol-maplibre-layer.js | 153 +- 9 files changed, 57134 insertions(+), 32116 deletions(-) diff --git a/bundle/lux.dist.mjs b/bundle/lux.dist.mjs index 35bda050..4061527a 100644 --- a/bundle/lux.dist.mjs +++ b/bundle/lux.dist.mjs @@ -4,7 +4,7 @@ var __publicField = (obj, key, value) => { __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); return value; }; -import { get as get$3, toLonLat, transformExtent, getTransform, transform as transform$1 } from "ol/proj"; +import { get as get$3, transformExtent, getTransform, transform as transform$1 } from "ol/proj"; import { register } from "ol/proj/proj4"; import OlMap from "ol/Map"; import OlView from "ol/View"; @@ -13,6 +13,7 @@ import TileLayer from "ol/layer/Tile"; import { ImageWMS, WMTS } from "ol/source"; import Layer from "ol/layer/Layer"; import { toDegrees } from "ol/math"; +import { toLonLat } from "ol/proj.js"; import WmtsTileGrid from "ol/tilegrid/WMTS"; import { getTopLeft } from "ol/extent.js"; import * as olEvents from "ol/events"; @@ -27,6 +28,7 @@ import WMTSCapabilities from "ol/format/WMTSCapabilities.js"; import { getRenderPixel } from "ol/render"; import { unByKey } from "ol/Observable"; import EventType from "ol/render/EventType"; +import olLayerGroup from "ol/layer/Group.js"; function _mergeNamespaces(n, m) { for (var i = 0; i < m.length; i++) { const e = m[i]; @@ -6350,10 +6352,10 @@ function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspe } needRemove && el.removeAttribute(key); } -function addEventListener$1(el, event, handler, options) { +function addEventListener(el, event, handler, options) { el.addEventListener(event, handler, options); } -function removeEventListener$1(el, event, handler, options) { +function removeEventListener(el, event, handler, options) { el.removeEventListener(event, handler, options); } function patchEvent(el, rawName, prevValue, nextValue, instance2 = null) { @@ -6365,9 +6367,9 @@ function patchEvent(el, rawName, prevValue, nextValue, instance2 = null) { const [name, options] = parseName(rawName); if (nextValue) { const invoker = invokers[rawName] = createInvoker(nextValue, instance2); - addEventListener$1(el, name, invoker, options); + addEventListener(el, name, invoker, options); } else if (existingInvoker) { - removeEventListener$1(el, name, existingInvoker, options); + removeEventListener(el, name, existingInvoker, options); invokers[rawName] = void 0; } } @@ -15213,6 +15215,111 @@ class VueElement extends BaseClass { } } const main = ""; +var AlertNotificationType = /* @__PURE__ */ ((AlertNotificationType2) => { + AlertNotificationType2["INFO"] = "alert-info"; + AlertNotificationType2["WARNING"] = "alert-warning"; + AlertNotificationType2["ERROR"] = "alert-danger"; + return AlertNotificationType2; +})(AlertNotificationType || {}); +const DEFAULT_NOTIFICATION_TYPE = AlertNotificationType.INFO; +const DEFAULT_NOTIFICATION_DURATION = 7e3; +const DEFAULT_NOTIFICATION_DURATION_WARNING = 4e3; +const useAlertNotificationsStore = defineStore( + "alert-notifications", + () => { + const notifications = ref([]); + function addNotification(message, type = DEFAULT_NOTIFICATION_TYPE, duration) { + const notification = { + message, + type, + duration: duration != null ? duration : type === AlertNotificationType.WARNING ? DEFAULT_NOTIFICATION_DURATION_WARNING : DEFAULT_NOTIFICATION_DURATION + }; + notifications.value.push(notification); + } + function removeNotification(index2) { + notifications.value.splice(index2, 1); + } + return { + notifications, + addNotification, + removeNotification + }; + }, + {} +); +const _sfc_main$C = /* @__PURE__ */ defineComponent({ + __name: "notification-item", + props: { + notification: { type: null, required: true } + }, + emits: ["close"], + setup(__props) { + const props = __props; + const show = shallowRef(true); + function onEnter(el, done) { + setTimeout(() => { + show.value = false; + }, props.notification.duration); + done(); + } + return (_ctx, _cache) => { + return openBlock(), createBlock(Transition, { + name: "fade-out", + appear: "", + "leave-active-class": "duration-200 ease-in", + "leave-from-class": "opacity-100", + "leave-to-class": "transform opacity-0", + onEnter, + onAfterLeave: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("close")) + }, { + default: withCtx(() => [ + unref(show) ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass(["lux-alert", `lux-${props.notification.type}`]), + role: "alert" + }, toDisplayString(props.notification.message), 3)) : createCommentVNode("v-if", true) + ]), + _: 1 + }); + }; + } +}); +const _export_sfc = (sfc, props) => { + const target = sfc.__vccOpts || sfc; + for (const [key, val] of props) { + target[key] = val; + } + return target; +}; +const Notification = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/alert-notifications/notification-item.vue"]]); +const _hoisted_1$r = { + key: 0, + class: "lux-notifications fixed w-[500px] top-10 left-1/2 ml-[-250px] z-50" +}; +const _sfc_main$B = /* @__PURE__ */ defineComponent({ + __name: "alert-notifications", + setup(__props) { + const alertNotificationsStore = useAlertNotificationsStore(); + const { notifications } = storeToRefs(alertNotificationsStore); + function onClose(index2) { + alertNotificationsStore.removeNotification(index2); + } + return (_ctx, _cache) => { + return openBlock(), createBlock(Teleport, { to: "body" }, [ + unref(notifications).length ? (openBlock(), createElementBlock("div", _hoisted_1$r, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(unref(notifications), (notification, index2) => { + return openBlock(), createBlock(Notification, { + key: index2, + notification, + onClose: () => onClose(index2) + }, null, 8, ["notification", "onClose"]); + }), 128)) + ])) : createCommentVNode("v-if", true) + ]); + }; + } +}); +const AlertNotifications = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/alert-notifications/alert-notifications.vue"]]); const _hoisted_1$q = { class: "lux-dropdown" }; const _hoisted_2$k = { class: "h-full" }; const _hoisted_3$i = ["aria-expanded"]; @@ -15222,9 +15329,9 @@ const _hoisted_6$a = ["aria-label", "data-value"]; const _sfc_main$A = /* @__PURE__ */ defineComponent({ __name: "dropdown-list", props: { - placeholder: null, - options: { default: () => [{ label: "Default label", value: "Default value" }] }, - modelValue: null + placeholder: { type: String, required: true }, + options: { type: Array, required: true, default: () => [{ label: "Default label", value: "Default value" }] }, + modelValue: { type: String, required: false } }, emits: ["change"], setup(__props, { emit: emit2 }) { @@ -15286,6 +15393,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({ }; } }); +const DropdownList = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/common/dropdown-list.vue"]]); const PROJECTION_WEBMERCATOR = "EPSG:3857"; const PROJECTION_WGS84 = "EPSG:4326"; const PROJECTION_LUX = "EPSG:2169"; @@ -15372,12 +15480,12 @@ function useMap() { }; } var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; -var maplibreGl = { exports: {} }; +var mapboxGl = { exports: {} }; (function(module, exports2) { (function(global2, factory) { module.exports = factory(); })(commonjsGlobal, function() { - var shared, worker, maplibregl2; + var shared, worker, mapboxgl2; function define(_23, chunk) { if (!shared) { shared = chunk; @@ -15387,140 +15495,55 @@ var maplibreGl = { exports: {} }; var workerBundleString = "var sharedChunk = {}; (" + shared + ")(sharedChunk); (" + worker + ")(sharedChunk);"; var sharedChunk = {}; shared(sharedChunk); - maplibregl2 = chunk(sharedChunk); + mapboxgl2 = chunk(sharedChunk); if (typeof window !== "undefined") { - maplibregl2.workerUrl = window.URL.createObjectURL(new Blob([workerBundleString], { type: "text/javascript" })); + mapboxgl2.workerUrl = window.URL.createObjectURL(new Blob([workerBundleString], { type: "text/javascript" })); } } } define(["exports"], function(t) { - var e = r; - function r(t2, e2, r2, n2) { - this.cx = 3 * t2, this.bx = 3 * (r2 - t2) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * e2, this.by = 3 * (n2 - e2) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = t2, this.p1y = e2, this.p2x = r2, this.p2y = n2; + function e(t2, e2) { + return t2(e2 = { exports: {} }, e2.exports), e2.exports; } - function n(t2, r2, n2, i2) { - const a2 = new e(t2, r2, n2, i2); - return function(t3) { - return a2.solve(t3); - }; + var r = n; + function n(t2, e2, r2, n2) { + this.cx = 3 * t2, this.bx = 3 * (r2 - t2) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * e2, this.by = 3 * (n2 - e2) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = t2, this.p1y = n2, this.p2x = r2, this.p2y = n2; } - r.prototype = { sampleCurveX: function(t2) { + n.prototype.sampleCurveX = function(t2) { return ((this.ax * t2 + this.bx) * t2 + this.cx) * t2; - }, sampleCurveY: function(t2) { + }, n.prototype.sampleCurveY = function(t2) { return ((this.ay * t2 + this.by) * t2 + this.cy) * t2; - }, sampleCurveDerivativeX: function(t2) { + }, n.prototype.sampleCurveDerivativeX = function(t2) { return (3 * this.ax * t2 + 2 * this.bx) * t2 + this.cx; - }, solveCurveX: function(t2, e2) { - if (void 0 === e2 && (e2 = 1e-6), t2 < 0) - return 0; - if (t2 > 1) - return 1; - for (var r2 = t2, n2 = 0; n2 < 8; n2++) { - var i2 = this.sampleCurveX(r2) - t2; - if (Math.abs(i2) < e2) - return r2; - var a2 = this.sampleCurveDerivativeX(r2); - if (Math.abs(a2) < 1e-6) + }, n.prototype.solveCurveX = function(t2, e2) { + var r2, n2, i2, a2, o2; + for (void 0 === e2 && (e2 = 1e-6), i2 = t2, o2 = 0; o2 < 8; o2++) { + if (a2 = this.sampleCurveX(i2) - t2, Math.abs(a2) < e2) + return i2; + var s2 = this.sampleCurveDerivativeX(i2); + if (Math.abs(s2) < 1e-6) break; - r2 -= i2 / a2; - } - var s2 = 0, o2 = 1; - for (r2 = t2, n2 = 0; n2 < 20 && (i2 = this.sampleCurveX(r2), !(Math.abs(i2 - t2) < e2)); n2++) - t2 > i2 ? s2 = r2 : o2 = r2, r2 = 0.5 * (o2 - s2) + s2; - return r2; - }, solve: function(t2, e2) { - return this.sampleCurveY(this.solveCurveX(t2, e2)); - } }; - const i = n(0.25, 0.1, 0.25, 1); - function a(t2, e2, r2) { - return Math.min(r2, Math.max(e2, t2)); - } - function s(t2, e2, r2) { - const n2 = r2 - e2, i2 = ((t2 - e2) % n2 + n2) % n2 + e2; - return i2 === e2 ? r2 : i2; - } - function o(t2, ...e2) { - for (const r2 of e2) - for (const e3 in r2) - t2[e3] = r2[e3]; - return t2; - } - let l = 1; - function u(t2, e2) { - t2.forEach((t3) => { - e2[t3] && (e2[t3] = e2[t3].bind(e2)); - }); - } - function c2(t2, e2, r2) { - const n2 = {}; - for (const i2 in t2) - n2[i2] = e2.call(r2 || this, t2[i2], i2, t2); - return n2; - } - function h2(t2, e2, r2) { - const n2 = {}; - for (const i2 in t2) - e2.call(r2 || this, t2[i2], i2, t2) && (n2[i2] = t2[i2]); - return n2; - } - function p2(t2) { - return Array.isArray(t2) ? t2.map(p2) : "object" == typeof t2 && t2 ? c2(t2, p2) : t2; - } - const f = {}; - function d(t2) { - f[t2] || ("undefined" != typeof console && console.warn(t2), f[t2] = true); - } - function y2(t2, e2, r2) { - return (r2.y - t2.y) * (e2.x - t2.x) > (e2.y - t2.y) * (r2.x - t2.x); - } - function m(t2) { - let e2 = 0; - for (let r2, n2, i2 = 0, a2 = t2.length, s2 = a2 - 1; i2 < a2; s2 = i2++) - r2 = t2[i2], n2 = t2[s2], e2 += (n2.x - r2.x) * (r2.y + n2.y); - return e2; - } - function g() { - return "undefined" != typeof WorkerGlobalScope && "undefined" != typeof self && self instanceof WorkerGlobalScope; - } - function x(t2) { - const e2 = {}; - if (t2.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g, (t3, r2, n2, i2) => { - const a2 = n2 || i2; - return e2[r2] = !a2 || a2.toLowerCase(), ""; - }), e2["max-age"]) { - const t3 = parseInt(e2["max-age"], 10); - isNaN(t3) ? delete e2["max-age"] : e2["max-age"] = t3; + i2 -= a2 / s2; } - return e2; - } - let v2, b, w = null; - function _23(t2) { - if (null == w) { - const e2 = t2.navigator ? t2.navigator.userAgent : null; - w = !!t2.safari || !(!e2 || !(/\b(iPad|iPhone|iPod)\b/.test(e2) || e2.match("Safari") && !e2.match("Chrome"))); + if ((i2 = t2) < (r2 = 0)) + return r2; + if (i2 > (n2 = 1)) + return n2; + for (; r2 < n2; ) { + if (a2 = this.sampleCurveX(i2), Math.abs(a2 - t2) < e2) + return i2; + t2 > a2 ? r2 = i2 : n2 = i2, i2 = 0.5 * (n2 - r2) + r2; } - return w; - } - function A2(t2) { - return "undefined" != typeof ImageBitmap && t2 instanceof ImageBitmap; - } - const k = { now: "undefined" != typeof performance && performance && performance.now ? performance.now.bind(performance) : Date.now.bind(Date), frame(t2) { - const e2 = requestAnimationFrame(t2); - return { cancel: () => cancelAnimationFrame(e2) }; - }, getImageData(t2, e2 = 0) { - const r2 = window.document.createElement("canvas"), n2 = r2.getContext("2d"); - if (!n2) - throw new Error("failed to create canvas 2d context"); - return r2.width = t2.width, r2.height = t2.height, n2.drawImage(t2, 0, 0, t2.width, t2.height), n2.getImageData(-e2, -e2, t2.width + 2 * e2, t2.height + 2 * e2); - }, resolveURL: (t2) => (v2 || (v2 = document.createElement("a")), v2.href = t2, v2.href), hardwareConcurrency: "undefined" != typeof navigator && navigator.hardwareConcurrency || 4, get prefersReducedMotion() { - return !!matchMedia && (null == b && (b = matchMedia("(prefers-reduced-motion: reduce)")), b.matches); - } }; - var S = I2; - function I2(t2, e2) { + return i2; + }, n.prototype.solve = function(t2, e2) { + return this.sampleCurveY(this.solveCurveX(t2, e2)); + }; + var i = a; + function a(t2, e2) { this.x = t2, this.y = e2; } - I2.prototype = { clone: function() { - return new I2(this.x, this.y); + a.prototype = { clone: function() { + return new a(this.x, this.y); }, add: function(t2) { return this.clone()._add(t2); }, sub: function(t2) { @@ -15590,469 +15613,766 @@ var maplibreGl = { exports: {} }; return this.x = e2.x + r2 * (this.x - e2.x) - n2 * (this.y - e2.y), this.y = i2, this; }, _round: function() { return this.x = Math.round(this.x), this.y = Math.round(this.y), this; - } }, I2.convert = function(t2) { - return t2 instanceof I2 ? t2 : Array.isArray(t2) ? new I2(t2[0], t2[1]) : t2; + } }, a.convert = function(t2) { + return t2 instanceof a ? t2 : Array.isArray(t2) ? new a(t2[0], t2[1]) : t2; }; - const M = { MAX_PARALLEL_IMAGE_REQUESTS: 16, REGISTERED_PROTOCOLS: {} }, z = "mapbox-tiles"; - let B, C, P = 500, V2 = 50; - function E() { - "undefined" == typeof caches || B || (B = caches.open(z)); + var o = "undefined" != typeof self ? self : {}, s = Math.pow(2, 53) - 1; + function u(t2, e2, n2, i2) { + var a2 = new r(t2, e2, n2, i2); + return function(t3) { + return a2.solve(t3); + }; } - let F = 1 / 0; - const T = { supported: false, testSupport: function(t2) { - !$ && D && (R ? O2(t2) : L = t2); - } }; - let L, D, $ = false, R = false; - function O2(t2) { - const e2 = t2.createTexture(); + var l = u(0.25, 0.1, 0.25, 1); + function p2(t2, e2, r2) { + return Math.min(r2, Math.max(e2, t2)); + } + function c2(t2, e2, r2) { + var n2 = r2 - e2, i2 = ((t2 - e2) % n2 + n2) % n2 + e2; + return i2 === e2 ? r2 : i2; + } + function h2(t2) { + for (var e2 = [], r2 = arguments.length - 1; r2-- > 0; ) + e2[r2] = arguments[r2 + 1]; + for (var n2 = 0, i2 = e2; n2 < i2.length; n2 += 1) { + var a2 = i2[n2]; + for (var o2 in a2) + t2[o2] = a2[o2]; + } + return t2; + } + var f = 1; + function y2() { + return f++; + } + function d() { + return function t2(e2) { + return e2 ? (e2 ^ 16 * Math.random() >> e2 / 4).toString(16) : ([1e7] + -[1e3] + -4e3 + -8e3 + -1e11).replace(/[018]/g, t2); + }(); + } + function m(t2) { + return !!t2 && /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t2); + } + function v2(t2, e2) { + t2.forEach(function(t3) { + e2[t3] && (e2[t3] = e2[t3].bind(e2)); + }); + } + function g(t2, e2) { + return -1 !== t2.indexOf(e2, t2.length - e2.length); + } + function x(t2, e2, r2) { + var n2 = {}; + for (var i2 in t2) + n2[i2] = e2.call(r2 || this, t2[i2], i2, t2); + return n2; + } + function b(t2, e2, r2) { + var n2 = {}; + for (var i2 in t2) + e2.call(r2 || this, t2[i2], i2, t2) && (n2[i2] = t2[i2]); + return n2; + } + function w(t2) { + return Array.isArray(t2) ? t2.map(w) : "object" == typeof t2 && t2 ? x(t2, w) : t2; + } + var _23 = {}; + function A2(t2) { + _23[t2] || ("undefined" != typeof console && console.warn(t2), _23[t2] = true); + } + function S(t2, e2, r2) { + return (r2.y - t2.y) * (e2.x - t2.x) > (e2.y - t2.y) * (r2.x - t2.x); + } + function k(t2) { + for (var e2 = 0, r2 = 0, n2 = t2.length, i2 = n2 - 1, a2 = void 0, o2 = void 0; r2 < n2; i2 = r2++) + e2 += ((o2 = t2[i2]).x - (a2 = t2[r2]).x) * (a2.y + o2.y); + return e2; + } + function I2() { + return "undefined" != typeof WorkerGlobalScope && "undefined" != typeof self && self instanceof WorkerGlobalScope; + } + function z(t2) { + var e2 = {}; + if (t2.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g, function(t3, r3, n2, i2) { + var a2 = n2 || i2; + return e2[r3] = !a2 || a2.toLowerCase(), ""; + }), e2["max-age"]) { + var r2 = parseInt(e2["max-age"], 10); + isNaN(r2) ? delete e2["max-age"] : e2["max-age"] = r2; + } + return e2; + } + var C = null; + function E(t2) { + if (null == C) { + var e2 = t2.navigator ? t2.navigator.userAgent : null; + C = !!t2.safari || !(!e2 || !(/\b(iPad|iPhone|iPod)\b/.test(e2) || e2.match("Safari") && !e2.match("Chrome"))); + } + return C; + } + function P(t2) { + try { + var e2 = o[t2]; + return e2.setItem("_mapbox_test_", 1), e2.removeItem("_mapbox_test_"), true; + } catch (t3) { + return false; + } + } + var M, B, T, V2, F = o.performance && o.performance.now ? o.performance.now.bind(o.performance) : Date.now.bind(Date), D = o.requestAnimationFrame || o.mozRequestAnimationFrame || o.webkitRequestAnimationFrame || o.msRequestAnimationFrame, L = o.cancelAnimationFrame || o.mozCancelAnimationFrame || o.webkitCancelAnimationFrame || o.msCancelAnimationFrame, O2 = { now: F, frame: function(t2) { + var e2 = D(t2); + return { cancel: function() { + return L(e2); + } }; + }, getImageData: function(t2, e2) { + void 0 === e2 && (e2 = 0); + var r2 = o.document.createElement("canvas"), n2 = r2.getContext("2d"); + if (!n2) + throw new Error("failed to create canvas 2d context"); + return r2.width = t2.width, r2.height = t2.height, n2.drawImage(t2, 0, 0, t2.width, t2.height), n2.getImageData(-e2, -e2, t2.width + 2 * e2, t2.height + 2 * e2); + }, resolveURL: function(t2) { + return M || (M = o.document.createElement("a")), M.href = t2, M.href; + }, hardwareConcurrency: o.navigator && o.navigator.hardwareConcurrency || 4, get devicePixelRatio() { + return o.devicePixelRatio; + }, get prefersReducedMotion() { + return !!o.matchMedia && (null == B && (B = o.matchMedia("(prefers-reduced-motion: reduce)")), B.matches); + } }, R = { API_URL: "https://api.mapbox.com", get EVENTS_URL() { + return this.API_URL ? 0 === this.API_URL.indexOf("https://api.mapbox.cn") ? "https://events.mapbox.cn/events/v2" : 0 === this.API_URL.indexOf("https://api.mapbox.com") ? "https://events.mapbox.com/events/v2" : null : null; + }, FEEDBACK_URL: "https://apps.mapbox.com/feedback", REQUIRE_ACCESS_TOKEN: true, ACCESS_TOKEN: null, MAX_PARALLEL_IMAGE_REQUESTS: 16 }, U = { supported: false, testSupport: function(t2) { + !j && V2 && (q ? N(t2) : T = t2); + } }, j = false, q = false; + function N(t2) { + var e2 = t2.createTexture(); t2.bindTexture(t2.TEXTURE_2D, e2); try { - if (t2.texImage2D(t2.TEXTURE_2D, 0, t2.RGBA, t2.RGBA, t2.UNSIGNED_BYTE, D), t2.isContextLost()) + if (t2.texImage2D(t2.TEXTURE_2D, 0, t2.RGBA, t2.RGBA, t2.UNSIGNED_BYTE, V2), t2.isContextLost()) return; - T.supported = true; + U.supported = true; } catch (t3) { } - t2.deleteTexture(e2), $ = true; - } - "undefined" != typeof document && (D = document.createElement("img"), D.onload = function() { - L && O2(L), L = null, R = true; - }, D.onerror = function() { - $ = true, L = null; - }, D.src = "data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="); - const U = { Unknown: "Unknown", Style: "Style", Source: "Source", Tile: "Tile", Glyphs: "Glyphs", SpriteImage: "SpriteImage", SpriteJSON: "SpriteJSON", Image: "Image" }; - "function" == typeof Object.freeze && Object.freeze(U); - class q extends Error { - constructor(t2, e2, r2, n2) { - super(`AJAXError: ${e2} (${t2}): ${r2}`), this.status = t2, this.statusText = e2, this.url = r2, this.body = n2; - } - } - const j = g() ? () => self.worker && self.worker.referrer : () => ("blob:" === window.location.protocol ? window.parent : window).location.href; - function N(t2, e2) { - const r2 = new AbortController(), n2 = new Request(t2.url, { method: t2.method || "GET", body: t2.body, credentials: t2.credentials, headers: t2.headers, referrer: j(), signal: r2.signal }); - let i2 = false, a2 = false; - "json" === t2.type && n2.headers.set("Accept", "application/json"); - return ((r3, s2, o2) => { - if (a2) - return; - const l2 = Date.now(); - fetch(n2).then((r4) => r4.ok ? ((r5, s3, o3) => { - ("arrayBuffer" === t2.type ? r5.arrayBuffer() : "json" === t2.type ? r5.json() : r5.text()).then((t3) => { - a2 || (s3 && o3 && function(t4, e3, r6) { - if (E(), !B) - return; - const n3 = { status: e3.status, statusText: e3.statusText, headers: new Headers() }; - e3.headers.forEach((t5, e4) => n3.headers.set(e4, t5)); - const i3 = x(e3.headers.get("Cache-Control") || ""); - i3["no-store"] || (i3["max-age"] && n3.headers.set("Expires", new Date(r6 + 1e3 * i3["max-age"]).toUTCString()), new Date(n3.headers.get("Expires")).getTime() - r6 < 42e4 || function(t5, e4) { - if (void 0 === C) - try { - new Response(new ReadableStream()), C = true; - } catch (t6) { - C = false; - } - C ? e4(t5.body) : t5.blob().then(e4); - }(e3, (e4) => { - const r7 = new Response(e4, n3); - E(), B && B.then((e5) => e5.put(function(t5) { - const e6 = t5.indexOf("?"); - return e6 < 0 ? t5 : t5.slice(0, e6); - }(t4.url), r7)).catch((t5) => d(t5.message)); - })); - }(n2, s3, o3), i2 = true, e2(null, t3, r5.headers.get("Cache-Control"), r5.headers.get("Expires"))); - }).catch((t3) => { - a2 || e2(new Error(t3.message)); - }); - })(r4, null, l2) : r4.blob().then((n3) => e2(new q(r4.status, r4.statusText, t2.url, n3)))).catch((t3) => { - 20 !== t3.code && e2(new Error(t3.message)); - }); - })(), { cancel: () => { - a2 = true, i2 || r2.abort(); - } }; + t2.deleteTexture(e2), j = true; + } + o.document && ((V2 = o.document.createElement("img")).onload = function() { + T && N(T), T = null, q = true; + }, V2.onerror = function() { + j = true, T = null; + }, V2.src = "data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="); + var K = "01", G = function(t2, e2) { + this._transformRequestFn = t2, this._customAccessToken = e2, this._createSkuToken(); + }; + function Z2(t2) { + return 0 === t2.indexOf("mapbox:"); + } + G.prototype._createSkuToken = function() { + var t2 = function() { + for (var t3 = "", e2 = 0; e2 < 10; e2++) + t3 += "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62 * Math.random())]; + return { token: ["1", K, t3].join(""), tokenExpiresAt: Date.now() + 432e5 }; + }(); + this._skuToken = t2.token, this._skuTokenExpiresAt = t2.tokenExpiresAt; + }, G.prototype._isSkuTokenExpired = function() { + return Date.now() > this._skuTokenExpiresAt; + }, G.prototype.transformRequest = function(t2, e2) { + return this._transformRequestFn && this._transformRequestFn(t2, e2) || { url: t2 }; + }, G.prototype.normalizeStyleURL = function(t2, e2) { + if (!Z2(t2)) + return t2; + var r2 = Y(t2); + return r2.path = "/styles/v1" + r2.path, this._makeAPIURL(r2, this._customAccessToken || e2); + }, G.prototype.normalizeGlyphsURL = function(t2, e2) { + if (!Z2(t2)) + return t2; + var r2 = Y(t2); + return r2.path = "/fonts/v1" + r2.path, this._makeAPIURL(r2, this._customAccessToken || e2); + }, G.prototype.normalizeSourceURL = function(t2, e2) { + if (!Z2(t2)) + return t2; + var r2 = Y(t2); + return r2.path = "/v4/" + r2.authority + ".json", r2.params.push("secure"), this._makeAPIURL(r2, this._customAccessToken || e2); + }, G.prototype.normalizeSpriteURL = function(t2, e2, r2, n2) { + var i2 = Y(t2); + return Z2(t2) ? (i2.path = "/styles/v1" + i2.path + "/sprite" + e2 + r2, this._makeAPIURL(i2, this._customAccessToken || n2)) : (i2.path += "" + e2 + r2, $(i2)); + }, G.prototype.normalizeTileURL = function(t2, e2) { + if (this._isSkuTokenExpired() && this._createSkuToken(), t2 && !Z2(t2)) + return t2; + var r2 = Y(t2); + r2.path = r2.path.replace(/(\.(png|jpg)\d*)(?=$)/, (O2.devicePixelRatio >= 2 || 512 === e2 ? "@2x" : "") + (U.supported ? ".webp" : "$1")), r2.path = r2.path.replace(/^.+\/v4\//, "/"), r2.path = "/v4" + r2.path; + var n2 = this._customAccessToken || function(t3) { + for (var e3 = 0, r3 = t3; e3 < r3.length; e3 += 1) { + var n3 = r3[e3].match(/^access_token=(.*)$/); + if (n3) + return n3[1]; + } + return null; + }(r2.params) || R.ACCESS_TOKEN; + return R.REQUIRE_ACCESS_TOKEN && n2 && this._skuToken && r2.params.push("sku=" + this._skuToken), this._makeAPIURL(r2, n2); + }, G.prototype.canonicalizeTileURL = function(t2, e2) { + var r2 = Y(t2); + if (!r2.path.match(/(^\/v4\/)/) || !r2.path.match(/\.[\w]+$/)) + return t2; + var n2 = "mapbox://tiles/"; + n2 += r2.path.replace("/v4/", ""); + var i2 = r2.params; + return e2 && (i2 = i2.filter(function(t3) { + return !t3.match(/^access_token=/); + })), i2.length && (n2 += "?" + i2.join("&")), n2; + }, G.prototype.canonicalizeTileset = function(t2, e2) { + for (var r2 = !!e2 && Z2(e2), n2 = [], i2 = 0, a2 = t2.tiles || []; i2 < a2.length; i2 += 1) { + var o2 = a2[i2]; + J(o2) ? n2.push(this.canonicalizeTileURL(o2, r2)) : n2.push(o2); + } + return n2; + }, G.prototype._makeAPIURL = function(t2, e2) { + var r2 = "See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes", n2 = Y(R.API_URL); + if (t2.protocol = n2.protocol, t2.authority = n2.authority, "http" === t2.protocol) { + var i2 = t2.params.indexOf("secure"); + i2 >= 0 && t2.params.splice(i2, 1); + } + if ("/" !== n2.path && (t2.path = "" + n2.path + t2.path), !R.REQUIRE_ACCESS_TOKEN) + return $(t2); + if (!(e2 = e2 || R.ACCESS_TOKEN)) + throw new Error("An API access token is required to use Mapbox GL. " + r2); + if ("s" === e2[0]) + throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). " + r2); + return t2.params = t2.params.filter(function(t3) { + return -1 === t3.indexOf("access_token"); + }), t2.params.push("access_token=" + e2), $(t2); + }; + var X = /^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i; + function J(t2) { + return X.test(t2); + } + var H = /^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/; + function Y(t2) { + var e2 = t2.match(H); + if (!e2) + throw new Error("Unable to parse URL object"); + return { protocol: e2[1], authority: e2[2], path: e2[3] || "/", params: e2[4] ? e2[4].split("&") : [] }; + } + function $(t2) { + var e2 = t2.params.length ? "?" + t2.params.join("&") : ""; + return t2.protocol + "://" + t2.authority + t2.path + e2; + } + function W(t2) { + if (!t2) + return null; + var e2 = t2.split("."); + if (!e2 || 3 !== e2.length) + return null; + try { + return JSON.parse(decodeURIComponent(o.atob(e2[1]).split("").map(function(t3) { + return "%" + ("00" + t3.charCodeAt(0).toString(16)).slice(-2); + }).join(""))); + } catch (t3) { + return null; + } } - const Z2 = function(t2, e2) { - if (/:\/\//.test(t2.url) && !/^https?:|^file:/.test(t2.url)) { - if (g() && self.worker && self.worker.actor) - return self.worker.actor.send("getResource", t2, e2); - if (!g()) { - const r3 = t2.url.substring(0, t2.url.indexOf("://")); - return (M.REGISTERED_PROTOCOLS[r3] || N)(t2, e2); + var Q = function(t2) { + this.type = t2, this.anonId = null, this.eventData = {}, this.queue = [], this.pendingRequest = null; + }; + Q.prototype.getStorageKey = function(t2) { + var e2, r2 = W(R.ACCESS_TOKEN); + return e2 = r2 && r2.u ? o.btoa(encodeURIComponent(r2.u).replace(/%([0-9A-F]{2})/g, function(t3, e3) { + return String.fromCharCode(Number("0x" + e3)); + })) : R.ACCESS_TOKEN || "", t2 ? "mapbox.eventData." + t2 + ":" + e2 : "mapbox.eventData:" + e2; + }, Q.prototype.fetchEventData = function() { + var t2 = P("localStorage"), e2 = this.getStorageKey(), r2 = this.getStorageKey("uuid"); + if (t2) + try { + var n2 = o.localStorage.getItem(e2); + n2 && (this.eventData = JSON.parse(n2)); + var i2 = o.localStorage.getItem(r2); + i2 && (this.anonId = i2); + } catch (t3) { + A2("Unable to read from LocalStorage"); } + }, Q.prototype.saveEventData = function() { + var t2 = P("localStorage"), e2 = this.getStorageKey(), r2 = this.getStorageKey("uuid"); + if (t2) + try { + o.localStorage.setItem(r2, this.anonId), Object.keys(this.eventData).length >= 1 && o.localStorage.setItem(e2, JSON.stringify(this.eventData)); + } catch (t3) { + A2("Unable to write to LocalStorage"); + } + }, Q.prototype.processRequests = function(t2) { + }, Q.prototype.postEvent = function(t2, e2, r2, n2) { + var i2 = this; + if (R.EVENTS_URL) { + var a2 = Y(R.EVENTS_URL); + a2.params.push("access_token=" + (n2 || R.ACCESS_TOKEN || "")); + var o2 = { event: this.type, created: new Date(t2).toISOString(), sdkIdentifier: "mapbox-gl-js", sdkVersion: "1.13.3", skuId: K, userId: this.anonId }, s2 = e2 ? h2(o2, e2) : o2, u2 = { url: $(a2), headers: { "Content-Type": "text/plain" }, body: JSON.stringify([s2]) }; + this.pendingRequest = wt(u2, function(t3) { + i2.pendingRequest = null, r2(t3), i2.saveEventData(), i2.processRequests(n2); + }); } - if (!(/^file:/.test(r2 = t2.url) || /^file:/.test(j()) && !/^\w+:/.test(r2))) { - if (fetch && Request && AbortController && Object.prototype.hasOwnProperty.call(Request.prototype, "signal")) - return N(t2, e2); - if (g() && self.worker && self.worker.actor) + }, Q.prototype.queueRequest = function(t2, e2) { + this.queue.push(t2), this.processRequests(e2); + }; + var tt, et, rt = function(t2) { + function e2() { + t2.call(this, "map.load"), this.success = {}, this.skuToken = ""; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.postMapLoadEvent = function(t3, e3, r2, n2) { + this.skuToken = r2; + var i2 = !(!n2 && !R.ACCESS_TOKEN), a2 = Array.isArray(t3) && t3.some(function(t4) { + return Z2(t4) || J(t4); + }); + R.EVENTS_URL && i2 && a2 && this.queueRequest({ id: e3, timestamp: Date.now() }, n2); + }, e2.prototype.processRequests = function(t3) { + var e3 = this; + if (!this.pendingRequest && 0 !== this.queue.length) { + var r2 = this.queue.shift(), n2 = r2.id, i2 = r2.timestamp; + n2 && this.success[n2] || (this.anonId || this.fetchEventData(), m(this.anonId) || (this.anonId = d()), this.postEvent(i2, { skuToken: this.skuToken }, function(t4) { + t4 || n2 && (e3.success[n2] = true); + }, t3)); + } + }, e2; + }(Q), nt = new (function(t2) { + function e2(e3) { + t2.call(this, "appUserTurnstile"), this._customAccessToken = e3; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.postTurnstileEvent = function(t3, e3) { + R.EVENTS_URL && R.ACCESS_TOKEN && Array.isArray(t3) && t3.some(function(t4) { + return Z2(t4) || J(t4); + }) && this.queueRequest(Date.now(), e3); + }, e2.prototype.processRequests = function(t3) { + var e3 = this; + if (!this.pendingRequest && 0 !== this.queue.length) { + this.anonId && this.eventData.lastSuccess && this.eventData.tokenU || this.fetchEventData(); + var r2 = W(R.ACCESS_TOKEN), n2 = r2 ? r2.u : R.ACCESS_TOKEN, i2 = n2 !== this.eventData.tokenU; + m(this.anonId) || (this.anonId = d(), i2 = true); + var a2 = this.queue.shift(); + if (this.eventData.lastSuccess) { + var o2 = new Date(this.eventData.lastSuccess), s2 = new Date(a2), u2 = (a2 - this.eventData.lastSuccess) / 864e5; + i2 = i2 || u2 >= 1 || u2 < -1 || o2.getDate() !== s2.getDate(); + } else + i2 = true; + if (!i2) + return this.processRequests(); + this.postEvent(a2, { "enabled.telemetry": false }, function(t4) { + t4 || (e3.eventData.lastSuccess = a2, e3.eventData.tokenU = n2); + }, t3); + } + }, e2; + }(Q))(), it = nt.postTurnstileEvent.bind(nt), at = new rt(), ot = at.postMapLoadEvent.bind(at), st = 500, ut = 50; + function lt() { + o.caches && !tt && (tt = o.caches.open("mapbox-tiles")); + } + function pt(t2) { + var e2 = t2.indexOf("?"); + return e2 < 0 ? t2 : t2.slice(0, e2); + } + var ct, ht = 1 / 0; + function ft() { + return null == ct && (ct = o.OffscreenCanvas && new o.OffscreenCanvas(1, 1).getContext("2d") && "function" == typeof o.createImageBitmap), ct; + } + var yt = { Unknown: "Unknown", Style: "Style", Source: "Source", Tile: "Tile", Glyphs: "Glyphs", SpriteImage: "SpriteImage", SpriteJSON: "SpriteJSON", Image: "Image" }; + "function" == typeof Object.freeze && Object.freeze(yt); + var dt = function(t2) { + function e2(e3, r2, n2) { + 401 === r2 && J(n2) && (e3 += ": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"), t2.call(this, e3), this.status = r2, this.url = n2, this.name = this.constructor.name, this.message = e3; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.toString = function() { + return this.name + ": " + this.message + " (" + this.status + "): " + this.url; + }, e2; + }(Error), mt = I2() ? function() { + return self.worker && self.worker.referrer; + } : function() { + return ("blob:" === o.location.protocol ? o.parent : o).location.href; + }; + var vt, gt, xt = function(t2, e2) { + if (!(/^file:/.test(r2 = t2.url) || /^file:/.test(mt()) && !/^\w+:/.test(r2))) { + if (o.fetch && o.Request && o.AbortController && o.Request.prototype.hasOwnProperty("signal")) + return function(t3, e3) { + var r3, n2 = new o.AbortController(), i2 = new o.Request(t3.url, { method: t3.method || "GET", body: t3.body, credentials: t3.credentials, headers: t3.headers, referrer: mt(), signal: n2.signal }), a2 = false, s2 = false, u2 = (r3 = i2.url).indexOf("sku=") > 0 && J(r3); + "json" === t3.type && i2.headers.set("Accept", "application/json"); + var l2 = function(r4, n3, a3) { + if (!s2) { + if (r4 && "SecurityError" !== r4.message && A2(r4), n3 && a3) + return p3(n3); + var l3 = Date.now(); + o.fetch(i2).then(function(r5) { + if (r5.ok) { + var n4 = u2 ? r5.clone() : null; + return p3(r5, n4, l3); + } + return e3(new dt(r5.statusText, r5.status, t3.url)); + }).catch(function(t4) { + 20 !== t4.code && e3(new Error(t4.message)); + }); + } + }, p3 = function(r4, n3, u3) { + ("arrayBuffer" === t3.type ? r4.arrayBuffer() : "json" === t3.type ? r4.json() : r4.text()).then(function(t4) { + s2 || (n3 && u3 && function(t5, e4, r5) { + if (lt(), tt) { + var n4 = { status: e4.status, statusText: e4.statusText, headers: new o.Headers() }; + e4.headers.forEach(function(t6, e5) { + return n4.headers.set(e5, t6); + }); + var i3 = z(e4.headers.get("Cache-Control") || ""); + i3["no-store"] || (i3["max-age"] && n4.headers.set("Expires", new Date(r5 + 1e3 * i3["max-age"]).toUTCString()), new Date(n4.headers.get("Expires")).getTime() - r5 < 42e4 || function(t6, e5) { + if (void 0 === et) + try { + new Response(new ReadableStream()), et = true; + } catch (t7) { + et = false; + } + et ? e5(t6.body) : t6.blob().then(e5); + }(e4, function(e5) { + var r6 = new o.Response(e5, n4); + lt(), tt && tt.then(function(e6) { + return e6.put(pt(t5.url), r6); + }).catch(function(t6) { + return A2(t6.message); + }); + })); + } + }(i2, n3, u3), a2 = true, e3(null, t4, r4.headers.get("Cache-Control"), r4.headers.get("Expires"))); + }).catch(function(t4) { + s2 || e3(new Error(t4.message)); + }); + }; + return u2 ? function(t4, e4) { + if (lt(), !tt) + return e4(null); + var r4 = pt(t4.url); + tt.then(function(t5) { + t5.match(r4).then(function(n3) { + var i3 = function(t6) { + if (!t6) + return false; + var e5 = new Date(t6.headers.get("Expires") || 0), r5 = z(t6.headers.get("Cache-Control") || ""); + return e5 > Date.now() && !r5["no-cache"]; + }(n3); + t5.delete(r4), i3 && t5.put(r4, n3.clone()), e4(null, n3, i3); + }).catch(e4); + }).catch(e4); + }(i2, l2) : l2(null, null), { cancel: function() { + s2 = true, a2 || n2.abort(); + } }; + }(t2, e2); + if (I2() && self.worker && self.worker.actor) return self.worker.actor.send("getResource", t2, e2, void 0, true); } var r2; return function(t3, e3) { - const r3 = new XMLHttpRequest(); - r3.open(t3.method || "GET", t3.url, true), "arrayBuffer" === t3.type && (r3.responseType = "arraybuffer"); - for (const e4 in t3.headers) - r3.setRequestHeader(e4, t3.headers[e4]); - return "json" === t3.type && (r3.responseType = "text", r3.setRequestHeader("Accept", "application/json")), r3.withCredentials = "include" === t3.credentials, r3.onerror = () => { + var r3 = new o.XMLHttpRequest(); + for (var n2 in r3.open(t3.method || "GET", t3.url, true), "arrayBuffer" === t3.type && (r3.responseType = "arraybuffer"), t3.headers) + r3.setRequestHeader(n2, t3.headers[n2]); + return "json" === t3.type && (r3.responseType = "text", r3.setRequestHeader("Accept", "application/json")), r3.withCredentials = "include" === t3.credentials, r3.onerror = function() { e3(new Error(r3.statusText)); - }, r3.onload = () => { + }, r3.onload = function() { if ((r3.status >= 200 && r3.status < 300 || 0 === r3.status) && null !== r3.response) { - let n2 = r3.response; + var n3 = r3.response; if ("json" === t3.type) try { - n2 = JSON.parse(r3.response); + n3 = JSON.parse(r3.response); } catch (t4) { return e3(t4); } - e3(null, n2, r3.getResponseHeader("Cache-Control"), r3.getResponseHeader("Expires")); - } else { - const n2 = new Blob([r3.response], { type: r3.getResponseHeader("Content-Type") }); - e3(new q(r3.status, r3.statusText, t3.url, n2)); - } - }, r3.send(t3.body), { cancel: () => r3.abort() }; + e3(null, n3, r3.getResponseHeader("Cache-Control"), r3.getResponseHeader("Expires")); + } else + e3(new dt(r3.statusText, r3.status, t3.url)); + }, r3.send(t3.body), { cancel: function() { + return r3.abort(); + } }; }(t2, e2); - }, K = function(t2, e2) { - return Z2(o(t2, { type: "arrayBuffer" }), e2); - }; - function G(t2) { - const e2 = window.document.createElement("a"); - return e2.href = t2, e2.protocol === window.document.location.protocol && e2.host === window.document.location.host; - } - const J = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII="; - let X, Y; - X = [], Y = 0; - const H = function(t2, e2) { - if (T.supported && (t2.headers || (t2.headers = {}), t2.headers.accept = "image/webp,*/*"), Y >= M.MAX_PARALLEL_IMAGE_REQUESTS) { - const r3 = { requestParameters: t2, callback: e2, cancelled: false, cancel() { + }, bt = function(t2, e2) { + return xt(h2(t2, { type: "arrayBuffer" }), e2); + }, wt = function(t2, e2) { + return xt(h2(t2, { method: "POST" }), e2); + }, _t = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII="; + vt = [], gt = 0; + var At = function(t2, e2) { + if (U.supported && (t2.headers || (t2.headers = {}), t2.headers.accept = "image/webp,*/*"), gt >= R.MAX_PARALLEL_IMAGE_REQUESTS) { + var r2 = { requestParameters: t2, callback: e2, cancelled: false, cancel: function() { this.cancelled = true; } }; - return X.push(r3), r3; + return vt.push(r2), r2; } - Y++; - let r2 = false; - const n2 = () => { - if (!r2) - for (r2 = true, Y--; X.length && Y < M.MAX_PARALLEL_IMAGE_REQUESTS; ) { - const t3 = X.shift(), { requestParameters: e3, callback: r3, cancelled: n3 } = t3; - n3 || (t3.cancel = H(e3, r3).cancel); + gt++; + var n2 = false, i2 = function() { + if (!n2) + for (n2 = true, gt--; vt.length && gt < R.MAX_PARALLEL_IMAGE_REQUESTS; ) { + var t3 = vt.shift(); + t3.cancelled || (t3.cancel = At(t3.requestParameters, t3.callback).cancel); } - }, i2 = K(t2, (t3, r3, i3, a2) => { - n2(), t3 ? e2(t3) : r3 && function(t4, e3) { - "function" == typeof createImageBitmap ? function(t5, e4) { - const r4 = new Blob([new Uint8Array(t5)], { type: "image/png" }); - createImageBitmap(r4).then((t6) => { - e4(null, t6); - }).catch((t6) => { - e4(new Error(`Could not load image because of ${t6.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)); + }, a2 = bt(t2, function(t3, r3, n3, a3) { + i2(), t3 ? e2(t3) : r3 && (ft() ? function(t4, e3) { + var r4 = new o.Blob([new Uint8Array(t4)], { type: "image/png" }); + o.createImageBitmap(r4).then(function(t5) { + e3(null, t5); + }).catch(function(t5) { + e3(new Error("Could not load image because of " + t5.message + ". Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.")); + }); + }(r3, e2) : function(t4, e3, r4, n4) { + var i3 = new o.Image(), a4 = o.URL; + i3.onload = function() { + e3(null, i3), a4.revokeObjectURL(i3.src), i3.onload = null, o.requestAnimationFrame(function() { + i3.src = _t; }); - }(t4, e3) : function(t5, e4) { - const r4 = new Image(); - r4.onload = () => { - e4(null, r4), URL.revokeObjectURL(r4.src), r4.onload = null, window.requestAnimationFrame(() => { - r4.src = J; - }); - }, r4.onerror = () => e4(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.")); - const n3 = new Blob([new Uint8Array(t5)], { type: "image/png" }); - r4.src = t5.byteLength ? URL.createObjectURL(n3) : J; - }(t4, e3); - }(r3, (t4, r4) => { - null != t4 ? e2(t4) : null != r4 && e2(null, r4, { cacheControl: i3, expires: a2 }); - }); + }, i3.onerror = function() { + return e3(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.")); + }; + var s2 = new o.Blob([new Uint8Array(t4)], { type: "image/png" }); + i3.cacheControl = r4, i3.expires = n4, i3.src = t4.byteLength ? a4.createObjectURL(s2) : _t; + }(r3, e2, n3, a3)); }); - return { cancel: () => { - i2.cancel(), n2(); + return { cancel: function() { + a2.cancel(), i2(); } }; }; - function W(t2, e2, r2) { + function St(t2, e2, r2) { r2[t2] && -1 !== r2[t2].indexOf(e2) || (r2[t2] = r2[t2] || [], r2[t2].push(e2)); } - function Q(t2, e2, r2) { + function kt(t2, e2, r2) { if (r2 && r2[t2]) { - const n2 = r2[t2].indexOf(e2); + var n2 = r2[t2].indexOf(e2); -1 !== n2 && r2[t2].splice(n2, 1); } } - class tt { - constructor(t2, e2 = {}) { - o(this, e2), this.type = t2; - } - } - class et extends tt { - constructor(t2, e2 = {}) { - super("error", o({ error: t2 }, e2)); - } - } - class rt { - on(t2, e2) { - return this._listeners = this._listeners || {}, W(t2, e2, this._listeners), this; + var It = function(t2, e2) { + void 0 === e2 && (e2 = {}), h2(this, e2), this.type = t2; + }, zt = function(t2) { + function e2(e3, r2) { + void 0 === r2 && (r2 = {}), t2.call(this, "error", h2({ error: e3 }, r2)); } - off(t2, e2) { - return Q(t2, e2, this._listeners), Q(t2, e2, this._oneTimeListeners), this; - } - once(t2, e2) { - return this._oneTimeListeners = this._oneTimeListeners || {}, W(t2, e2, this._oneTimeListeners), this; - } - fire(t2, e2) { - "string" == typeof t2 && (t2 = new tt(t2, e2 || {})); - const r2 = t2.type; - if (this.listens(r2)) { - t2.target = this; - const e3 = this._listeners && this._listeners[r2] ? this._listeners[r2].slice() : []; - for (const r3 of e3) - r3.call(this, t2); - const n2 = this._oneTimeListeners && this._oneTimeListeners[r2] ? this._oneTimeListeners[r2].slice() : []; - for (const e4 of n2) - Q(r2, e4, this._oneTimeListeners), e4.call(this, t2); - const i2 = this._eventedParent; - i2 && (o(t2, "function" == typeof this._eventedParentData ? this._eventedParentData() : this._eventedParentData), i2.fire(t2)); - } else - t2 instanceof et && console.error(t2.error); - return this; - } - listens(t2) { - return this._listeners && this._listeners[t2] && this._listeners[t2].length > 0 || this._oneTimeListeners && this._oneTimeListeners[t2] && this._oneTimeListeners[t2].length > 0 || this._eventedParent && this._eventedParent.listens(t2); - } - setEventedParent(t2, e2) { - return this._eventedParent = t2, this._eventedParentData = e2, this; - } - } - var nt = { $version: 8, $root: { version: { required: true, type: "enum", values: [8] }, name: { type: "string" }, metadata: { type: "*" }, center: { type: "array", value: "number" }, zoom: { type: "number" }, bearing: { type: "number", default: 0, period: 360, units: "degrees" }, pitch: { type: "number", default: 0, units: "degrees" }, light: { type: "light" }, terrain: { type: "terrain" }, sources: { required: true, type: "sources" }, sprite: { type: "string" }, glyphs: { type: "string" }, transition: { type: "transition" }, layers: { required: true, 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: true, 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: false }, "*": { type: "*" } }, source_raster: { type: { required: true, 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: false }, "*": { type: "*" } }, source_raster_dem: { type: { required: true, 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: {} }, default: "mapbox" }, volatile: { type: "boolean", default: false }, "*": { type: "*" } }, source_geojson: { type: { required: true, type: "enum", values: { geojson: {} } }, data: { 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: false }, clusterRadius: { type: "number", default: 50, minimum: 0 }, clusterMaxZoom: { type: "number" }, clusterMinPoints: { type: "number" }, clusterProperties: { type: "*" }, lineMetrics: { type: "boolean", default: false }, generateId: { type: "boolean", default: false }, promoteId: { type: "promoteId" } }, source_video: { type: { required: true, type: "enum", values: { video: {} } }, urls: { required: true, type: "array", value: "string" }, coordinates: { required: true, type: "array", length: 4, value: { type: "array", length: 2, value: "number" } } }, source_image: { type: { required: true, type: "enum", values: { image: {} } }, url: { required: true, type: "string" }, coordinates: { required: true, type: "array", length: 4, value: { type: "array", length: 2, value: "number" } } }, layer: { id: { type: "string", required: true }, type: { type: "enum", values: { fill: {}, line: {}, symbol: {}, circle: {}, heatmap: {}, "fill-extrusion": {}, raster: {}, hillshade: {}, background: {} }, required: true }, 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_background"], layout_background: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_fill: { "fill-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_circle: { "circle-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_heatmap: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, "layout_fill-extrusion": { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_line: { "line-cap": { type: "enum", values: { butt: {}, round: {}, square: {} }, default: "butt", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-join": { type: "enum", values: { bevel: {}, round: {}, miter: {} }, default: "miter", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "line-miter-limit": { type: "number", default: 2, requires: [{ "line-join": "miter" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-round-limit": { type: "number", default: 1.05, requires: [{ "line-join": "round" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_symbol: { "symbol-placement": { type: "enum", values: { point: {}, line: {}, "line-center": {} }, default: "point", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-spacing": { type: "number", default: 250, minimum: 1, units: "pixels", requires: [{ "symbol-placement": "line" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-avoid-edges": { type: "boolean", default: false, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "symbol-z-order": { type: "enum", values: { auto: {}, "viewport-y": {}, source: {} }, default: "auto", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-allow-overlap": { type: "boolean", default: false, requires: ["icon-image", { "!": "icon-overlap" }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-overlap": { type: "enum", values: { never: {}, always: {}, cooperative: {} }, requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-ignore-placement": { type: "boolean", default: false, requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-optional": { type: "boolean", default: false, requires: ["icon-image", "text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-rotation-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["icon-image"], expression: { interpolated: false, 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: true, 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: false, 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: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-image": { type: "resolvedImage", tokens: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-rotate": { type: "number", default: 0, period: 360, units: "degrees", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-padding": { type: "padding", default: [2], units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-keep-upright": { type: "boolean", default: false, requires: ["icon-image", { "icon-rotation-alignment": "map" }, { "symbol-placement": ["line", "line-center"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-offset": { type: "array", value: "number", length: 2, default: [0, 0], requires: ["icon-image"], expression: { interpolated: true, 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: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-pitch-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-pitch-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-rotation-alignment": { type: "enum", values: { map: {}, viewport: {}, "viewport-glyph": {}, auto: {} }, default: "auto", requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-field": { type: "formatted", default: "", tokens: true, expression: { interpolated: false, 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: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-size": { type: "number", default: 16, minimum: 0, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-max-width": { type: "number", default: 10, minimum: 0, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-line-height": { type: "number", default: 1.2, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-letter-spacing": { type: "number", default: 0, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-justify": { type: "enum", values: { auto: {}, left: {}, center: {}, right: {} }, default: "center", requires: ["text-field"], expression: { interpolated: false, 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: true, 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: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "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: false, 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: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-writing-mode": { type: "array", value: "enum", values: { horizontal: {}, vertical: {} }, requires: ["text-field", { "symbol-placement": ["point"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-rotate": { type: "number", default: 0, period: 360, units: "degrees", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-padding": { type: "number", default: 2, minimum: 0, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-keep-upright": { type: "boolean", default: true, requires: ["text-field", { "text-rotation-alignment": "map" }, { "symbol-placement": ["line", "line-center"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-transform": { type: "enum", values: { none: {}, uppercase: {}, lowercase: {} }, default: "none", requires: ["text-field"], expression: { interpolated: false, 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: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-allow-overlap": { type: "boolean", default: false, requires: ["text-field", { "!": "text-overlap" }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-overlap": { type: "enum", values: { never: {}, always: {}, cooperative: {} }, requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-ignore-placement": { type: "boolean", default: false, requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-optional": { type: "boolean", default: false, requires: ["text-field", "icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_raster: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_hillshade: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, filter: { type: "array", value: "*" }, filter_operator: { type: "enum", values: { "==": {}, "!=": {}, ">": {}, ">=": {}, "<": {}, "<=": {}, in: {}, "!in": {}, all: {}, any: {}, none: {}, has: {}, "!has": {}, within: {} } }, 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: false } }, function_stop: { type: "array", minimum: 0, maximum: 24, value: ["number", "color"], length: 2 }, expression: { type: "array", value: "*", minimum: 1 }, light: { anchor: { type: "enum", default: "viewport", values: { map: {}, viewport: {} }, "property-type": "data-constant", transition: false, expression: { interpolated: false, parameters: ["zoom"] } }, position: { type: "array", default: [1.15, 210, 30], length: 3, value: "number", "property-type": "data-constant", transition: true, expression: { interpolated: true, parameters: ["zoom"] } }, color: { type: "color", "property-type": "data-constant", default: "#ffffff", expression: { interpolated: true, parameters: ["zoom"] }, transition: true }, intensity: { type: "number", "property-type": "data-constant", default: 0.5, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: ["zoom"] }, transition: true } }, terrain: { source: { type: "string", required: true }, exaggeration: { type: "number", minimum: 0, default: 1 }, elevationOffset: { type: "number", default: 450 } }, paint: ["paint_fill", "paint_line", "paint_circle", "paint_heatmap", "paint_fill-extrusion", "paint_symbol", "paint_raster", "paint_hillshade", "paint_background"], paint_fill: { "fill-antialias": { type: "boolean", default: true, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "fill-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-outline-color": { type: "color", transition: true, requires: [{ "!": "fill-pattern" }, { "fill-antialias": true }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["fill-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" } }, "paint_fill-extrusion": { "fill-extrusion-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "fill-extrusion-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["fill-extrusion-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" }, "fill-extrusion-height": { type: "number", default: 0, minimum: 0, units: "meters", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-base": { type: "number", default: 0, minimum: 0, units: "meters", transition: true, requires: ["fill-extrusion-height"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-vertical-gradient": { type: "boolean", default: true, transition: false, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_line: { "line-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "line-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["line-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-width": { type: "number", default: 1, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-gap-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-offset": { type: "number", default: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-dasharray": { type: "array", value: "number", minimum: 0, transition: true, units: "line widths", requires: [{ "!": "line-pattern" }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "cross-faded" }, "line-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" }, "line-gradient": { type: "color", transition: false, requires: [{ "!": "line-dasharray" }, { "!": "line-pattern" }, { source: "geojson", has: { lineMetrics: true } }], expression: { interpolated: true, parameters: ["line-progress"] }, "property-type": "color-ramp" } }, paint_circle: { "circle-radius": { type: "number", default: 5, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-blur": { type: "number", default: 0, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["circle-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-pitch-scale": { type: "enum", values: { map: {}, viewport: {} }, default: "map", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-pitch-alignment": { type: "enum", values: { map: {}, viewport: {} }, default: "viewport", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-stroke-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-stroke-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-stroke-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" } }, paint_heatmap: { "heatmap-radius": { type: "number", default: 30, minimum: 1, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "heatmap-weight": { type: "number", default: 1, minimum: 0, transition: false, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "heatmap-intensity": { type: "number", default: 1, minimum: 0, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "heatmap-color": { type: "color", default: ["interpolate", ["linear"], ["heatmap-density"], 0, "rgba(0, 0, 255, 0)", 0.1, "royalblue", 0.3, "cyan", 0.5, "lime", 0.7, "yellow", 1, "red"], transition: false, expression: { interpolated: true, parameters: ["heatmap-density"] }, "property-type": "color-ramp" }, "heatmap-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_symbol: { "icon-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-color": { type: "color", default: "#000000", transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-color": { type: "color", default: "rgba(0, 0, 0, 0)", transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["icon-image", "icon-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-color": { type: "color", default: "#000000", transition: true, overridable: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-color": { type: "color", default: "rgba(0, 0, 0, 0)", transition: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["text-field", "text-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_raster: { "raster-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-hue-rotate": { type: "number", default: 0, period: 360, transition: true, units: "degrees", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-brightness-min": { type: "number", default: 0, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-brightness-max": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-saturation": { type: "number", default: 0, minimum: -1, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-contrast": { type: "number", default: 0, minimum: -1, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-resampling": { type: "enum", values: { linear: {}, nearest: {} }, default: "linear", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-fade-duration": { type: "number", default: 300, minimum: 0, transition: false, units: "milliseconds", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_hillshade: { "hillshade-illumination-direction": { type: "number", default: 335, minimum: 0, maximum: 359, transition: false, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-illumination-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "viewport", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-exaggeration": { type: "number", default: 0.5, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-shadow-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-highlight-color": { type: "color", default: "#FFFFFF", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-accent-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_background: { "background-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "background-pattern" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "background-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "cross-faded" }, "background-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, transition: { duration: { type: "number", default: 300, minimum: 0, units: "milliseconds" }, delay: { type: "number", default: 0, minimum: 0, units: "milliseconds" } }, "property-type": { "data-driven": { type: "property-type" }, "cross-faded": { type: "property-type" }, "cross-faded-data-driven": { type: "property-type" }, "color-ramp": { type: "property-type" }, "data-constant": { type: "property-type" }, constant: { type: "property-type" } }, promoteId: { "*": { type: "string" } } }; - class it { - constructor(t2, e2, r2, n2) { - this.message = (t2 ? `${t2}: ` : "") + r2, n2 && (this.identifier = n2), null != e2 && e2.__line__ && (this.line = e2.__line__); + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2; + }(It), Ct = function() { + }; + Ct.prototype.on = function(t2, e2) { + return this._listeners = this._listeners || {}, St(t2, e2, this._listeners), this; + }, Ct.prototype.off = function(t2, e2) { + return kt(t2, e2, this._listeners), kt(t2, e2, this._oneTimeListeners), this; + }, Ct.prototype.once = function(t2, e2) { + return this._oneTimeListeners = this._oneTimeListeners || {}, St(t2, e2, this._oneTimeListeners), this; + }, Ct.prototype.fire = function(t2, e2) { + "string" == typeof t2 && (t2 = new It(t2, e2 || {})); + var r2 = t2.type; + if (this.listens(r2)) { + t2.target = this; + for (var n2 = 0, i2 = this._listeners && this._listeners[r2] ? this._listeners[r2].slice() : []; n2 < i2.length; n2 += 1) + i2[n2].call(this, t2); + for (var a2 = 0, o2 = this._oneTimeListeners && this._oneTimeListeners[r2] ? this._oneTimeListeners[r2].slice() : []; a2 < o2.length; a2 += 1) { + var s2 = o2[a2]; + kt(r2, s2, this._oneTimeListeners), s2.call(this, t2); + } + var u2 = this._eventedParent; + u2 && (h2(t2, "function" == typeof this._eventedParentData ? this._eventedParentData() : this._eventedParentData), u2.fire(t2)); + } else + t2 instanceof zt && console.error(t2.error); + return this; + }, Ct.prototype.listens = function(t2) { + return this._listeners && this._listeners[t2] && this._listeners[t2].length > 0 || this._oneTimeListeners && this._oneTimeListeners[t2] && this._oneTimeListeners[t2].length > 0 || this._eventedParent && this._eventedParent.listens(t2); + }, Ct.prototype.setEventedParent = function(t2, e2) { + return this._eventedParent = t2, this._eventedParentData = e2, this; + }; + var Et = { $version: 8, $root: { version: { required: true, type: "enum", values: [8] }, name: { type: "string" }, metadata: { type: "*" }, center: { type: "array", value: "number" }, zoom: { type: "number" }, bearing: { type: "number", default: 0, period: 360, units: "degrees" }, pitch: { type: "number", default: 0, units: "degrees" }, light: { type: "light" }, sources: { required: true, type: "sources" }, sprite: { type: "string" }, glyphs: { type: "string" }, transition: { type: "transition" }, layers: { required: true, 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: true, 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: false }, "*": { type: "*" } }, source_raster: { type: { required: true, 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: false }, "*": { type: "*" } }, source_raster_dem: { type: { required: true, 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: {} }, default: "mapbox" }, volatile: { type: "boolean", default: false }, "*": { type: "*" } }, source_geojson: { type: { required: true, type: "enum", values: { geojson: {} } }, data: { 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: false }, clusterRadius: { type: "number", default: 50, minimum: 0 }, clusterMaxZoom: { type: "number" }, clusterMinPoints: { type: "number" }, clusterProperties: { type: "*" }, lineMetrics: { type: "boolean", default: false }, generateId: { type: "boolean", default: false }, promoteId: { type: "promoteId" } }, source_video: { type: { required: true, type: "enum", values: { video: {} } }, urls: { required: true, type: "array", value: "string" }, coordinates: { required: true, type: "array", length: 4, value: { type: "array", length: 2, value: "number" } } }, source_image: { type: { required: true, type: "enum", values: { image: {} } }, url: { required: true, type: "string" }, coordinates: { required: true, type: "array", length: 4, value: { type: "array", length: 2, value: "number" } } }, layer: { id: { type: "string", required: true }, type: { type: "enum", values: { fill: {}, line: {}, symbol: {}, circle: {}, heatmap: {}, "fill-extrusion": {}, raster: {}, hillshade: {}, background: {} }, required: true }, 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_background"], layout_background: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_fill: { "fill-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_circle: { "circle-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_heatmap: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, "layout_fill-extrusion": { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_line: { "line-cap": { type: "enum", values: { butt: {}, round: {}, square: {} }, default: "butt", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-join": { type: "enum", values: { bevel: {}, round: {}, miter: {} }, default: "miter", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "line-miter-limit": { type: "number", default: 2, requires: [{ "line-join": "miter" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-round-limit": { type: "number", default: 1.05, requires: [{ "line-join": "round" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_symbol: { "symbol-placement": { type: "enum", values: { point: {}, line: {}, "line-center": {} }, default: "point", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-spacing": { type: "number", default: 250, minimum: 1, units: "pixels", requires: [{ "symbol-placement": "line" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-avoid-edges": { type: "boolean", default: false, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "symbol-z-order": { type: "enum", values: { auto: {}, "viewport-y": {}, source: {} }, default: "auto", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-allow-overlap": { type: "boolean", default: false, requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-ignore-placement": { type: "boolean", default: false, requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-optional": { type: "boolean", default: false, requires: ["icon-image", "text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-rotation-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["icon-image"], expression: { interpolated: false, 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: true, 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: false, 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: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-image": { type: "resolvedImage", tokens: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-rotate": { type: "number", default: 0, period: 360, units: "degrees", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-padding": { type: "number", default: 2, minimum: 0, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-keep-upright": { type: "boolean", default: false, requires: ["icon-image", { "icon-rotation-alignment": "map" }, { "symbol-placement": ["line", "line-center"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-offset": { type: "array", value: "number", length: 2, default: [0, 0], requires: ["icon-image"], expression: { interpolated: true, 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: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-pitch-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-pitch-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-rotation-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-field": { type: "formatted", default: "", tokens: true, expression: { interpolated: false, 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: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-size": { type: "number", default: 16, minimum: 0, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-max-width": { type: "number", default: 10, minimum: 0, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-line-height": { type: "number", default: 1.2, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-letter-spacing": { type: "number", default: 0, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-justify": { type: "enum", values: { auto: {}, left: {}, center: {}, right: {} }, default: "center", requires: ["text-field"], expression: { interpolated: false, 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: true, 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: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "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: false, 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: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-writing-mode": { type: "array", value: "enum", values: { horizontal: {}, vertical: {} }, requires: ["text-field", { "symbol-placement": ["point"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-rotate": { type: "number", default: 0, period: 360, units: "degrees", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-padding": { type: "number", default: 2, minimum: 0, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-keep-upright": { type: "boolean", default: true, requires: ["text-field", { "text-rotation-alignment": "map" }, { "symbol-placement": ["line", "line-center"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-transform": { type: "enum", values: { none: {}, uppercase: {}, lowercase: {} }, default: "none", requires: ["text-field"], expression: { interpolated: false, 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: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-allow-overlap": { type: "boolean", default: false, requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-ignore-placement": { type: "boolean", default: false, requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-optional": { type: "boolean", default: false, requires: ["text-field", "icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_raster: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_hillshade: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, filter: { type: "array", value: "*" }, filter_operator: { type: "enum", values: { "==": {}, "!=": {}, ">": {}, ">=": {}, "<": {}, "<=": {}, in: {}, "!in": {}, all: {}, any: {}, none: {}, has: {}, "!has": {}, within: {} } }, 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: false } }, function_stop: { type: "array", minimum: 0, maximum: 24, value: ["number", "color"], length: 2 }, expression: { type: "array", value: "*", minimum: 1 }, light: { anchor: { type: "enum", default: "viewport", values: { map: {}, viewport: {} }, "property-type": "data-constant", transition: false, expression: { interpolated: false, parameters: ["zoom"] } }, position: { type: "array", default: [1.15, 210, 30], length: 3, value: "number", "property-type": "data-constant", transition: true, expression: { interpolated: true, parameters: ["zoom"] } }, color: { type: "color", "property-type": "data-constant", default: "#ffffff", expression: { interpolated: true, parameters: ["zoom"] }, transition: true }, intensity: { type: "number", "property-type": "data-constant", default: 0.5, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: ["zoom"] }, transition: true } }, paint: ["paint_fill", "paint_line", "paint_circle", "paint_heatmap", "paint_fill-extrusion", "paint_symbol", "paint_raster", "paint_hillshade", "paint_background"], paint_fill: { "fill-antialias": { type: "boolean", default: true, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "fill-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-outline-color": { type: "color", transition: true, requires: [{ "!": "fill-pattern" }, { "fill-antialias": true }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["fill-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" } }, "paint_fill-extrusion": { "fill-extrusion-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "fill-extrusion-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["fill-extrusion-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" }, "fill-extrusion-height": { type: "number", default: 0, minimum: 0, units: "meters", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-base": { type: "number", default: 0, minimum: 0, units: "meters", transition: true, requires: ["fill-extrusion-height"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-vertical-gradient": { type: "boolean", default: true, transition: false, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_line: { "line-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "line-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["line-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-width": { type: "number", default: 1, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-gap-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-offset": { type: "number", default: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-dasharray": { type: "array", value: "number", minimum: 0, transition: true, units: "line widths", requires: [{ "!": "line-pattern" }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "cross-faded" }, "line-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" }, "line-gradient": { type: "color", transition: false, requires: [{ "!": "line-dasharray" }, { "!": "line-pattern" }, { source: "geojson", has: { lineMetrics: true } }], expression: { interpolated: true, parameters: ["line-progress"] }, "property-type": "color-ramp" } }, paint_circle: { "circle-radius": { type: "number", default: 5, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-blur": { type: "number", default: 0, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["circle-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-pitch-scale": { type: "enum", values: { map: {}, viewport: {} }, default: "map", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-pitch-alignment": { type: "enum", values: { map: {}, viewport: {} }, default: "viewport", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-stroke-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-stroke-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-stroke-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" } }, paint_heatmap: { "heatmap-radius": { type: "number", default: 30, minimum: 1, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "heatmap-weight": { type: "number", default: 1, minimum: 0, transition: false, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "heatmap-intensity": { type: "number", default: 1, minimum: 0, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "heatmap-color": { type: "color", default: ["interpolate", ["linear"], ["heatmap-density"], 0, "rgba(0, 0, 255, 0)", 0.1, "royalblue", 0.3, "cyan", 0.5, "lime", 0.7, "yellow", 1, "red"], transition: false, expression: { interpolated: true, parameters: ["heatmap-density"] }, "property-type": "color-ramp" }, "heatmap-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_symbol: { "icon-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-color": { type: "color", default: "#000000", transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-color": { type: "color", default: "rgba(0, 0, 0, 0)", transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["icon-image", "icon-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-color": { type: "color", default: "#000000", transition: true, overridable: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-color": { type: "color", default: "rgba(0, 0, 0, 0)", transition: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["text-field", "text-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_raster: { "raster-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-hue-rotate": { type: "number", default: 0, period: 360, transition: true, units: "degrees", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-brightness-min": { type: "number", default: 0, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-brightness-max": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-saturation": { type: "number", default: 0, minimum: -1, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-contrast": { type: "number", default: 0, minimum: -1, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-resampling": { type: "enum", values: { linear: {}, nearest: {} }, default: "linear", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-fade-duration": { type: "number", default: 300, minimum: 0, transition: false, units: "milliseconds", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_hillshade: { "hillshade-illumination-direction": { type: "number", default: 335, minimum: 0, maximum: 359, transition: false, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-illumination-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "viewport", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-exaggeration": { type: "number", default: 0.5, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-shadow-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-highlight-color": { type: "color", default: "#FFFFFF", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-accent-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_background: { "background-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "background-pattern" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "background-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "cross-faded" }, "background-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, transition: { duration: { type: "number", default: 300, minimum: 0, units: "milliseconds" }, delay: { type: "number", default: 0, minimum: 0, units: "milliseconds" } }, "property-type": { "data-driven": { type: "property-type" }, "cross-faded": { type: "property-type" }, "cross-faded-data-driven": { type: "property-type" }, "color-ramp": { type: "property-type" }, "data-constant": { type: "property-type" }, constant: { type: "property-type" } }, promoteId: { "*": { type: "string" } } }, Pt = function(t2, e2, r2, n2) { + this.message = (t2 ? t2 + ": " : "") + r2, n2 && (this.identifier = n2), null != e2 && e2.__line__ && (this.line = e2.__line__); + }; + function Mt(t2) { + var e2 = t2.value; + return e2 ? [new Pt(t2.key, e2, "constants have been deprecated as of v8")] : []; + } + function Bt(t2) { + for (var e2 = [], r2 = arguments.length - 1; r2-- > 0; ) + e2[r2] = arguments[r2 + 1]; + for (var n2 = 0, i2 = e2; n2 < i2.length; n2 += 1) { + var a2 = i2[n2]; + for (var o2 in a2) + t2[o2] = a2[o2]; } - } - function at(t2) { - const e2 = t2.value; - return e2 ? [new it(t2.key, e2, "constants have been deprecated as of v8")] : []; - } - function st(t2, ...e2) { - for (const r2 of e2) - for (const e3 in r2) - t2[e3] = r2[e3]; return t2; } - function ot(t2) { + function Tt(t2) { return t2 instanceof Number || t2 instanceof String || t2 instanceof Boolean ? t2.valueOf() : t2; } - function lt(t2) { + function Vt(t2) { if (Array.isArray(t2)) - return t2.map(lt); + return t2.map(Vt); if (t2 instanceof Object && !(t2 instanceof Number || t2 instanceof String || t2 instanceof Boolean)) { - const e2 = {}; - for (const r2 in t2) - e2[r2] = lt(t2[r2]); + var e2 = {}; + for (var r2 in t2) + e2[r2] = Vt(t2[r2]); return e2; } - return ot(t2); + return Tt(t2); } - class ut extends Error { - constructor(t2, e2) { - super(e2), this.message = e2, this.key = t2; + var Ft = function(t2) { + function e2(e3, r2) { + t2.call(this, r2), this.message = r2, this.key = e3; } - } - class ct { - constructor(t2, e2 = []) { - this.parent = t2, this.bindings = {}; - for (const [t3, r2] of e2) - this.bindings[t3] = r2; - } - concat(t2) { - return new ct(this, t2); - } - get(t2) { - if (this.bindings[t2]) - return this.bindings[t2]; - if (this.parent) - return this.parent.get(t2); - throw new Error(`${t2} not found in scope.`); - } - has(t2) { - return !!this.bindings[t2] || !!this.parent && this.parent.has(t2); + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2; + }(Error), Dt = function(t2, e2) { + void 0 === e2 && (e2 = []), this.parent = t2, this.bindings = {}; + for (var r2 = 0, n2 = e2; r2 < n2.length; r2 += 1) { + var i2 = n2[r2]; + this.bindings[i2[0]] = i2[1]; } - } - const ht = { kind: "null" }, pt = { kind: "number" }, ft = { kind: "string" }, dt = { kind: "boolean" }, yt = { kind: "color" }, mt = { kind: "object" }, gt = { kind: "value" }, xt = { kind: "collator" }, vt = { kind: "formatted" }, bt = { kind: "padding" }, wt = { kind: "resolvedImage" }; - function _t(t2, e2) { + }; + Dt.prototype.concat = function(t2) { + return new Dt(this, t2); + }, Dt.prototype.get = function(t2) { + if (this.bindings[t2]) + return this.bindings[t2]; + if (this.parent) + return this.parent.get(t2); + throw new Error(t2 + " not found in scope."); + }, Dt.prototype.has = function(t2) { + return !!this.bindings[t2] || !!this.parent && this.parent.has(t2); + }; + var Lt = { kind: "null" }, Ot = { kind: "number" }, Rt = { kind: "string" }, Ut = { kind: "boolean" }, jt = { kind: "color" }, qt = { kind: "object" }, Nt = { kind: "value" }, Kt = { kind: "collator" }, Gt = { kind: "formatted" }, Zt = { kind: "resolvedImage" }; + function Xt(t2, e2) { return { kind: "array", itemType: t2, N: e2 }; } - function At(t2) { + function Jt(t2) { if ("array" === t2.kind) { - const e2 = At(t2.itemType); - return "number" == typeof t2.N ? `array<${e2}, ${t2.N}>` : "value" === t2.itemType.kind ? "array" : `array<${e2}>`; + var e2 = Jt(t2.itemType); + return "number" == typeof t2.N ? "array<" + e2 + ", " + t2.N + ">" : "value" === t2.itemType.kind ? "array" : "array<" + e2 + ">"; } return t2.kind; } - const kt = [ht, pt, ft, dt, yt, vt, mt, _t(gt), bt, wt]; - function St(t2, e2) { + var Ht = [Lt, Ot, Rt, Ut, jt, Gt, qt, Xt(Nt), Zt]; + function Yt(t2, e2) { if ("error" === e2.kind) return null; if ("array" === t2.kind) { - if ("array" === e2.kind && (0 === e2.N && "value" === e2.itemType.kind || !St(t2.itemType, e2.itemType)) && ("number" != typeof t2.N || t2.N === e2.N)) + if ("array" === e2.kind && (0 === e2.N && "value" === e2.itemType.kind || !Yt(t2.itemType, e2.itemType)) && ("number" != typeof t2.N || t2.N === e2.N)) return null; } else { if (t2.kind === e2.kind) return null; if ("value" === t2.kind) { - for (const t3 of kt) - if (!St(t3, e2)) - return null; - } - } - return `Expected ${At(t2)} but found ${At(e2)} instead.`; - } - function It(t2, e2) { - return e2.some((e3) => e3.kind === t2.kind); - } - function Mt(t2, e2) { - return e2.some((e3) => "null" === e3 ? null === t2 : "array" === e3 ? Array.isArray(t2) : "object" === e3 ? t2 && !Array.isArray(t2) && "object" == typeof t2 : e3 === typeof t2); - } - var zt, Bt = { transparent: [0, 0, 0, 0], aliceblue: [240, 248, 255, 1], antiquewhite: [250, 235, 215, 1], aqua: [0, 255, 255, 1], aquamarine: [127, 255, 212, 1], azure: [240, 255, 255, 1], beige: [245, 245, 220, 1], bisque: [255, 228, 196, 1], black: [0, 0, 0, 1], blanchedalmond: [255, 235, 205, 1], blue: [0, 0, 255, 1], blueviolet: [138, 43, 226, 1], brown: [165, 42, 42, 1], burlywood: [222, 184, 135, 1], cadetblue: [95, 158, 160, 1], chartreuse: [127, 255, 0, 1], chocolate: [210, 105, 30, 1], coral: [255, 127, 80, 1], cornflowerblue: [100, 149, 237, 1], cornsilk: [255, 248, 220, 1], crimson: [220, 20, 60, 1], cyan: [0, 255, 255, 1], darkblue: [0, 0, 139, 1], darkcyan: [0, 139, 139, 1], darkgoldenrod: [184, 134, 11, 1], darkgray: [169, 169, 169, 1], darkgreen: [0, 100, 0, 1], darkgrey: [169, 169, 169, 1], darkkhaki: [189, 183, 107, 1], darkmagenta: [139, 0, 139, 1], darkolivegreen: [85, 107, 47, 1], darkorange: [255, 140, 0, 1], darkorchid: [153, 50, 204, 1], darkred: [139, 0, 0, 1], darksalmon: [233, 150, 122, 1], darkseagreen: [143, 188, 143, 1], darkslateblue: [72, 61, 139, 1], darkslategray: [47, 79, 79, 1], darkslategrey: [47, 79, 79, 1], darkturquoise: [0, 206, 209, 1], darkviolet: [148, 0, 211, 1], deeppink: [255, 20, 147, 1], deepskyblue: [0, 191, 255, 1], dimgray: [105, 105, 105, 1], dimgrey: [105, 105, 105, 1], dodgerblue: [30, 144, 255, 1], firebrick: [178, 34, 34, 1], floralwhite: [255, 250, 240, 1], forestgreen: [34, 139, 34, 1], fuchsia: [255, 0, 255, 1], gainsboro: [220, 220, 220, 1], ghostwhite: [248, 248, 255, 1], gold: [255, 215, 0, 1], goldenrod: [218, 165, 32, 1], gray: [128, 128, 128, 1], green: [0, 128, 0, 1], greenyellow: [173, 255, 47, 1], grey: [128, 128, 128, 1], honeydew: [240, 255, 240, 1], hotpink: [255, 105, 180, 1], indianred: [205, 92, 92, 1], indigo: [75, 0, 130, 1], ivory: [255, 255, 240, 1], khaki: [240, 230, 140, 1], lavender: [230, 230, 250, 1], lavenderblush: [255, 240, 245, 1], lawngreen: [124, 252, 0, 1], lemonchiffon: [255, 250, 205, 1], lightblue: [173, 216, 230, 1], lightcoral: [240, 128, 128, 1], lightcyan: [224, 255, 255, 1], lightgoldenrodyellow: [250, 250, 210, 1], lightgray: [211, 211, 211, 1], lightgreen: [144, 238, 144, 1], lightgrey: [211, 211, 211, 1], lightpink: [255, 182, 193, 1], lightsalmon: [255, 160, 122, 1], lightseagreen: [32, 178, 170, 1], lightskyblue: [135, 206, 250, 1], lightslategray: [119, 136, 153, 1], lightslategrey: [119, 136, 153, 1], lightsteelblue: [176, 196, 222, 1], lightyellow: [255, 255, 224, 1], lime: [0, 255, 0, 1], limegreen: [50, 205, 50, 1], linen: [250, 240, 230, 1], magenta: [255, 0, 255, 1], maroon: [128, 0, 0, 1], mediumaquamarine: [102, 205, 170, 1], mediumblue: [0, 0, 205, 1], mediumorchid: [186, 85, 211, 1], mediumpurple: [147, 112, 219, 1], mediumseagreen: [60, 179, 113, 1], mediumslateblue: [123, 104, 238, 1], mediumspringgreen: [0, 250, 154, 1], mediumturquoise: [72, 209, 204, 1], mediumvioletred: [199, 21, 133, 1], midnightblue: [25, 25, 112, 1], mintcream: [245, 255, 250, 1], mistyrose: [255, 228, 225, 1], moccasin: [255, 228, 181, 1], navajowhite: [255, 222, 173, 1], navy: [0, 0, 128, 1], oldlace: [253, 245, 230, 1], olive: [128, 128, 0, 1], olivedrab: [107, 142, 35, 1], orange: [255, 165, 0, 1], orangered: [255, 69, 0, 1], orchid: [218, 112, 214, 1], palegoldenrod: [238, 232, 170, 1], palegreen: [152, 251, 152, 1], paleturquoise: [175, 238, 238, 1], palevioletred: [219, 112, 147, 1], papayawhip: [255, 239, 213, 1], peachpuff: [255, 218, 185, 1], peru: [205, 133, 63, 1], pink: [255, 192, 203, 1], plum: [221, 160, 221, 1], powderblue: [176, 224, 230, 1], purple: [128, 0, 128, 1], rebeccapurple: [102, 51, 153, 1], red: [255, 0, 0, 1], rosybrown: [188, 143, 143, 1], royalblue: [65, 105, 225, 1], saddlebrown: [139, 69, 19, 1], salmon: [250, 128, 114, 1], sandybrown: [244, 164, 96, 1], seagreen: [46, 139, 87, 1], seashell: [255, 245, 238, 1], sienna: [160, 82, 45, 1], silver: [192, 192, 192, 1], skyblue: [135, 206, 235, 1], slateblue: [106, 90, 205, 1], slategray: [112, 128, 144, 1], slategrey: [112, 128, 144, 1], snow: [255, 250, 250, 1], springgreen: [0, 255, 127, 1], steelblue: [70, 130, 180, 1], tan: [210, 180, 140, 1], teal: [0, 128, 128, 1], thistle: [216, 191, 216, 1], tomato: [255, 99, 71, 1], turquoise: [64, 224, 208, 1], violet: [238, 130, 238, 1], wheat: [245, 222, 179, 1], white: [255, 255, 255, 1], whitesmoke: [245, 245, 245, 1], yellow: [255, 255, 0, 1], yellowgreen: [154, 205, 50, 1] }; - function Ct(t2) { - return (t2 = Math.round(t2)) < 0 ? 0 : t2 > 255 ? 255 : t2; - } - function Pt(t2) { - return Ct("%" === t2[t2.length - 1] ? parseFloat(t2) / 100 * 255 : parseInt(t2)); - } - function Vt(t2) { - return (e2 = "%" === t2[t2.length - 1] ? parseFloat(t2) / 100 : parseFloat(t2)) < 0 ? 0 : e2 > 1 ? 1 : e2; - var e2; - } - function Et(t2, e2, r2) { - return r2 < 0 ? r2 += 1 : r2 > 1 && (r2 -= 1), 6 * r2 < 1 ? t2 + (e2 - t2) * r2 * 6 : 2 * r2 < 1 ? e2 : 3 * r2 < 2 ? t2 + (e2 - t2) * (2 / 3 - r2) * 6 : t2; - } - try { - zt = {}.parseCSSColor = function(t2) { - var e2, r2 = t2.replace(/ /g, "").toLowerCase(); - if (r2 in Bt) - return Bt[r2].slice(); - if ("#" === r2[0]) - return 4 === r2.length ? (e2 = parseInt(r2.substr(1), 16)) >= 0 && e2 <= 4095 ? [(3840 & e2) >> 4 | (3840 & e2) >> 8, 240 & e2 | (240 & e2) >> 4, 15 & e2 | (15 & e2) << 4, 1] : null : 7 === r2.length && (e2 = parseInt(r2.substr(1), 16)) >= 0 && e2 <= 16777215 ? [(16711680 & e2) >> 16, (65280 & e2) >> 8, 255 & e2, 1] : null; - var n2 = r2.indexOf("("), i2 = r2.indexOf(")"); - if (-1 !== n2 && i2 + 1 === r2.length) { - var a2 = r2.substr(0, n2), s2 = r2.substr(n2 + 1, i2 - (n2 + 1)).split(","), o2 = 1; - switch (a2) { - case "rgba": - if (4 !== s2.length) - return null; - o2 = Vt(s2.pop()); - case "rgb": - return 3 !== s2.length ? null : [Pt(s2[0]), Pt(s2[1]), Pt(s2[2]), o2]; - case "hsla": - if (4 !== s2.length) - return null; - o2 = Vt(s2.pop()); - case "hsl": - if (3 !== s2.length) - return null; - var l2 = (parseFloat(s2[0]) % 360 + 360) % 360 / 360, u2 = Vt(s2[1]), c3 = Vt(s2[2]), h3 = c3 <= 0.5 ? c3 * (u2 + 1) : c3 + u2 - c3 * u2, p3 = 2 * c3 - h3; - return [Ct(255 * Et(p3, h3, l2 + 1 / 3)), Ct(255 * Et(p3, h3, l2)), Ct(255 * Et(p3, h3, l2 - 1 / 3)), o2]; - default: + for (var r2 = 0, n2 = Ht; r2 < n2.length; r2 += 1) + if (!Yt(n2[r2], e2)) return null; - } } - return null; - }; - } catch (t2) { - } - class Ft { - constructor(t2, e2, r2, n2 = 1) { - this.r = t2, this.g = e2, this.b = r2, this.a = n2; - } - static parse(t2) { - if (!t2) - return; - if (t2 instanceof Ft) - return t2; - if ("string" != typeof t2) - return; - const e2 = zt(t2); - return e2 ? new Ft(e2[0] / 255 * e2[3], e2[1] / 255 * e2[3], e2[2] / 255 * e2[3], e2[3]) : void 0; - } - toString() { - const [t2, e2, r2, n2] = this.toArray(); - return `rgba(${Math.round(t2)},${Math.round(e2)},${Math.round(r2)},${n2})`; - } - toArray() { - const { r: t2, g: e2, b: r2, a: n2 } = this; - return 0 === n2 ? [0, 0, 0, 0] : [255 * t2 / n2, 255 * e2 / n2, 255 * r2 / n2, n2]; } + return "Expected " + Jt(t2) + " but found " + Jt(e2) + " instead."; } - Ft.black = new Ft(0, 0, 0, 1), Ft.white = new Ft(1, 1, 1, 1), Ft.transparent = new Ft(0, 0, 0, 0), Ft.red = new Ft(1, 0, 0, 1); - class Tt { - constructor(t2, e2, r2) { - this.sensitivity = t2 ? e2 ? "variant" : "case" : e2 ? "accent" : "base", this.locale = r2, this.collator = new Intl.Collator(this.locale ? this.locale : [], { sensitivity: this.sensitivity, usage: "search" }); - } - compare(t2, e2) { - return this.collator.compare(t2, e2); - } - resolvedLocale() { - return new Intl.Collator(this.locale ? this.locale : []).resolvedOptions().locale; - } + function $t(t2, e2) { + return e2.some(function(e3) { + return e3.kind === t2.kind; + }); } - class Lt { - constructor(t2, e2, r2, n2, i2) { - this.text = t2, this.image = e2, this.scale = r2, this.fontStack = n2, this.textColor = i2; - } + function Wt(t2, e2) { + return e2.some(function(e3) { + return "null" === e3 ? null === t2 : "array" === e3 ? Array.isArray(t2) : "object" === e3 ? t2 && !Array.isArray(t2) && "object" == typeof t2 : e3 === typeof t2; + }); } - class Dt { - constructor(t2) { - this.sections = t2; + var Qt = e(function(t2, e2) { + var r2 = { transparent: [0, 0, 0, 0], aliceblue: [240, 248, 255, 1], antiquewhite: [250, 235, 215, 1], aqua: [0, 255, 255, 1], aquamarine: [127, 255, 212, 1], azure: [240, 255, 255, 1], beige: [245, 245, 220, 1], bisque: [255, 228, 196, 1], black: [0, 0, 0, 1], blanchedalmond: [255, 235, 205, 1], blue: [0, 0, 255, 1], blueviolet: [138, 43, 226, 1], brown: [165, 42, 42, 1], burlywood: [222, 184, 135, 1], cadetblue: [95, 158, 160, 1], chartreuse: [127, 255, 0, 1], chocolate: [210, 105, 30, 1], coral: [255, 127, 80, 1], cornflowerblue: [100, 149, 237, 1], cornsilk: [255, 248, 220, 1], crimson: [220, 20, 60, 1], cyan: [0, 255, 255, 1], darkblue: [0, 0, 139, 1], darkcyan: [0, 139, 139, 1], darkgoldenrod: [184, 134, 11, 1], darkgray: [169, 169, 169, 1], darkgreen: [0, 100, 0, 1], darkgrey: [169, 169, 169, 1], darkkhaki: [189, 183, 107, 1], darkmagenta: [139, 0, 139, 1], darkolivegreen: [85, 107, 47, 1], darkorange: [255, 140, 0, 1], darkorchid: [153, 50, 204, 1], darkred: [139, 0, 0, 1], darksalmon: [233, 150, 122, 1], darkseagreen: [143, 188, 143, 1], darkslateblue: [72, 61, 139, 1], darkslategray: [47, 79, 79, 1], darkslategrey: [47, 79, 79, 1], darkturquoise: [0, 206, 209, 1], darkviolet: [148, 0, 211, 1], deeppink: [255, 20, 147, 1], deepskyblue: [0, 191, 255, 1], dimgray: [105, 105, 105, 1], dimgrey: [105, 105, 105, 1], dodgerblue: [30, 144, 255, 1], firebrick: [178, 34, 34, 1], floralwhite: [255, 250, 240, 1], forestgreen: [34, 139, 34, 1], fuchsia: [255, 0, 255, 1], gainsboro: [220, 220, 220, 1], ghostwhite: [248, 248, 255, 1], gold: [255, 215, 0, 1], goldenrod: [218, 165, 32, 1], gray: [128, 128, 128, 1], green: [0, 128, 0, 1], greenyellow: [173, 255, 47, 1], grey: [128, 128, 128, 1], honeydew: [240, 255, 240, 1], hotpink: [255, 105, 180, 1], indianred: [205, 92, 92, 1], indigo: [75, 0, 130, 1], ivory: [255, 255, 240, 1], khaki: [240, 230, 140, 1], lavender: [230, 230, 250, 1], lavenderblush: [255, 240, 245, 1], lawngreen: [124, 252, 0, 1], lemonchiffon: [255, 250, 205, 1], lightblue: [173, 216, 230, 1], lightcoral: [240, 128, 128, 1], lightcyan: [224, 255, 255, 1], lightgoldenrodyellow: [250, 250, 210, 1], lightgray: [211, 211, 211, 1], lightgreen: [144, 238, 144, 1], lightgrey: [211, 211, 211, 1], lightpink: [255, 182, 193, 1], lightsalmon: [255, 160, 122, 1], lightseagreen: [32, 178, 170, 1], lightskyblue: [135, 206, 250, 1], lightslategray: [119, 136, 153, 1], lightslategrey: [119, 136, 153, 1], lightsteelblue: [176, 196, 222, 1], lightyellow: [255, 255, 224, 1], lime: [0, 255, 0, 1], limegreen: [50, 205, 50, 1], linen: [250, 240, 230, 1], magenta: [255, 0, 255, 1], maroon: [128, 0, 0, 1], mediumaquamarine: [102, 205, 170, 1], mediumblue: [0, 0, 205, 1], mediumorchid: [186, 85, 211, 1], mediumpurple: [147, 112, 219, 1], mediumseagreen: [60, 179, 113, 1], mediumslateblue: [123, 104, 238, 1], mediumspringgreen: [0, 250, 154, 1], mediumturquoise: [72, 209, 204, 1], mediumvioletred: [199, 21, 133, 1], midnightblue: [25, 25, 112, 1], mintcream: [245, 255, 250, 1], mistyrose: [255, 228, 225, 1], moccasin: [255, 228, 181, 1], navajowhite: [255, 222, 173, 1], navy: [0, 0, 128, 1], oldlace: [253, 245, 230, 1], olive: [128, 128, 0, 1], olivedrab: [107, 142, 35, 1], orange: [255, 165, 0, 1], orangered: [255, 69, 0, 1], orchid: [218, 112, 214, 1], palegoldenrod: [238, 232, 170, 1], palegreen: [152, 251, 152, 1], paleturquoise: [175, 238, 238, 1], palevioletred: [219, 112, 147, 1], papayawhip: [255, 239, 213, 1], peachpuff: [255, 218, 185, 1], peru: [205, 133, 63, 1], pink: [255, 192, 203, 1], plum: [221, 160, 221, 1], powderblue: [176, 224, 230, 1], purple: [128, 0, 128, 1], rebeccapurple: [102, 51, 153, 1], red: [255, 0, 0, 1], rosybrown: [188, 143, 143, 1], royalblue: [65, 105, 225, 1], saddlebrown: [139, 69, 19, 1], salmon: [250, 128, 114, 1], sandybrown: [244, 164, 96, 1], seagreen: [46, 139, 87, 1], seashell: [255, 245, 238, 1], sienna: [160, 82, 45, 1], silver: [192, 192, 192, 1], skyblue: [135, 206, 235, 1], slateblue: [106, 90, 205, 1], slategray: [112, 128, 144, 1], slategrey: [112, 128, 144, 1], snow: [255, 250, 250, 1], springgreen: [0, 255, 127, 1], steelblue: [70, 130, 180, 1], tan: [210, 180, 140, 1], teal: [0, 128, 128, 1], thistle: [216, 191, 216, 1], tomato: [255, 99, 71, 1], turquoise: [64, 224, 208, 1], violet: [238, 130, 238, 1], wheat: [245, 222, 179, 1], white: [255, 255, 255, 1], whitesmoke: [245, 245, 245, 1], yellow: [255, 255, 0, 1], yellowgreen: [154, 205, 50, 1] }; + function n2(t3) { + return (t3 = Math.round(t3)) < 0 ? 0 : t3 > 255 ? 255 : t3; } - static fromString(t2) { - return new Dt([new Lt(t2, null, null, null, null)]); + function i2(t3) { + return n2("%" === t3[t3.length - 1] ? parseFloat(t3) / 100 * 255 : parseInt(t3)); } - isEmpty() { - return 0 === this.sections.length || !this.sections.some((t2) => 0 !== t2.text.length || t2.image && 0 !== t2.image.name.length); + function a2(t3) { + return (e3 = "%" === t3[t3.length - 1] ? parseFloat(t3) / 100 : parseFloat(t3)) < 0 ? 0 : e3 > 1 ? 1 : e3; + var e3; } - static factory(t2) { - return t2 instanceof Dt ? t2 : Dt.fromString(t2); + function o2(t3, e3, r3) { + return r3 < 0 ? r3 += 1 : r3 > 1 && (r3 -= 1), 6 * r3 < 1 ? t3 + (e3 - t3) * r3 * 6 : 2 * r3 < 1 ? e3 : 3 * r3 < 2 ? t3 + (e3 - t3) * (2 / 3 - r3) * 6 : t3; } - toString() { - return 0 === this.sections.length ? "" : this.sections.map((t2) => t2.text).join(""); - } - } - class $t { - constructor(t2) { - this.values = t2.slice(); + try { + e2.parseCSSColor = function(t3) { + var e3, s2 = t3.replace(/ /g, "").toLowerCase(); + if (s2 in r2) + return r2[s2].slice(); + if ("#" === s2[0]) + return 4 === s2.length ? (e3 = parseInt(s2.substr(1), 16)) >= 0 && e3 <= 4095 ? [(3840 & e3) >> 4 | (3840 & e3) >> 8, 240 & e3 | (240 & e3) >> 4, 15 & e3 | (15 & e3) << 4, 1] : null : 7 === s2.length && (e3 = parseInt(s2.substr(1), 16)) >= 0 && e3 <= 16777215 ? [(16711680 & e3) >> 16, (65280 & e3) >> 8, 255 & e3, 1] : null; + var u2 = s2.indexOf("("), l2 = s2.indexOf(")"); + if (-1 !== u2 && l2 + 1 === s2.length) { + var p3 = s2.substr(0, u2), c3 = s2.substr(u2 + 1, l2 - (u2 + 1)).split(","), h3 = 1; + switch (p3) { + case "rgba": + if (4 !== c3.length) + return null; + h3 = a2(c3.pop()); + case "rgb": + return 3 !== c3.length ? null : [i2(c3[0]), i2(c3[1]), i2(c3[2]), h3]; + case "hsla": + if (4 !== c3.length) + return null; + h3 = a2(c3.pop()); + case "hsl": + if (3 !== c3.length) + return null; + var f2 = (parseFloat(c3[0]) % 360 + 360) % 360 / 360, y3 = a2(c3[1]), d2 = a2(c3[2]), m2 = d2 <= 0.5 ? d2 * (y3 + 1) : d2 + y3 - d2 * y3, v3 = 2 * d2 - m2; + return [n2(255 * o2(v3, m2, f2 + 1 / 3)), n2(255 * o2(v3, m2, f2)), n2(255 * o2(v3, m2, f2 - 1 / 3)), h3]; + default: + return null; + } + } + return null; + }; + } catch (t3) { } - static parse(t2) { - if (t2 instanceof $t) + }).parseCSSColor, te = function(t2, e2, r2, n2) { + void 0 === n2 && (n2 = 1), this.r = t2, this.g = e2, this.b = r2, this.a = n2; + }; + te.parse = function(t2) { + if (t2) { + if (t2 instanceof te) return t2; - if ("number" == typeof t2) - return new $t([t2, t2, t2, t2]); - if (Array.isArray(t2) && !(t2.length < 1 || t2.length > 4)) { - for (const e2 of t2) - if ("number" != typeof e2) - return; - switch (t2.length) { - case 1: - t2 = [t2[0], t2[0], t2[0], t2[0]]; - break; - case 2: - t2 = [t2[0], t2[1], t2[0], t2[1]]; - break; - case 3: - t2 = [t2[0], t2[1], t2[2], t2[1]]; - } - return new $t(t2); + if ("string" == typeof t2) { + var e2 = Qt(t2); + if (e2) + return new te(e2[0] / 255 * e2[3], e2[1] / 255 * e2[3], e2[2] / 255 * e2[3], e2[3]); + } + } + }, te.prototype.toString = function() { + var t2 = this.toArray(), e2 = t2[1], r2 = t2[2], n2 = t2[3]; + return "rgba(" + Math.round(t2[0]) + "," + Math.round(e2) + "," + Math.round(r2) + "," + n2 + ")"; + }, te.prototype.toArray = function() { + var t2 = this.a; + return 0 === t2 ? [0, 0, 0, 0] : [255 * this.r / t2, 255 * this.g / t2, 255 * this.b / t2, t2]; + }, te.black = new te(0, 0, 0, 1), te.white = new te(1, 1, 1, 1), te.transparent = new te(0, 0, 0, 0), te.red = new te(1, 0, 0, 1); + var ee = function(t2, e2, r2) { + this.sensitivity = t2 ? e2 ? "variant" : "case" : e2 ? "accent" : "base", this.locale = r2, this.collator = new Intl.Collator(this.locale ? this.locale : [], { sensitivity: this.sensitivity, usage: "search" }); + }; + ee.prototype.compare = function(t2, e2) { + return this.collator.compare(t2, e2); + }, ee.prototype.resolvedLocale = function() { + return new Intl.Collator(this.locale ? this.locale : []).resolvedOptions().locale; + }; + var re = function(t2, e2, r2, n2, i2) { + this.text = t2, this.image = e2, this.scale = r2, this.fontStack = n2, this.textColor = i2; + }, ne = function(t2) { + this.sections = t2; + }; + ne.fromString = function(t2) { + return new ne([new re(t2, null, null, null, null)]); + }, ne.prototype.isEmpty = function() { + return 0 === this.sections.length || !this.sections.some(function(t2) { + return 0 !== t2.text.length || t2.image && 0 !== t2.image.name.length; + }); + }, ne.factory = function(t2) { + return t2 instanceof ne ? t2 : ne.fromString(t2); + }, ne.prototype.toString = function() { + return 0 === this.sections.length ? "" : this.sections.map(function(t2) { + return t2.text; + }).join(""); + }, ne.prototype.serialize = function() { + for (var t2 = ["format"], e2 = 0, r2 = this.sections; e2 < r2.length; e2 += 1) { + var n2 = r2[e2]; + if (n2.image) + t2.push(["image", n2.image.name]); + else { + t2.push(n2.text); + var i2 = {}; + n2.fontStack && (i2["text-font"] = ["literal", n2.fontStack.split(",")]), n2.scale && (i2["font-scale"] = n2.scale), n2.textColor && (i2["text-color"] = ["rgba"].concat(n2.textColor.toArray())), t2.push(i2); } } - toString() { - return JSON.stringify(this.values); - } - } - class Rt { - constructor(t2) { - this.name = t2.name, this.available = t2.available; - } - toString() { - return this.name; - } - static fromString(t2) { - return t2 ? new Rt({ name: t2, available: false }) : null; - } - } - function Ot(t2, e2, r2, n2) { - return "number" == typeof t2 && t2 >= 0 && t2 <= 255 && "number" == typeof e2 && e2 >= 0 && e2 <= 255 && "number" == typeof r2 && r2 >= 0 && r2 <= 255 ? void 0 === n2 || "number" == typeof n2 && n2 >= 0 && n2 <= 1 ? null : `Invalid rgba value [${[t2, e2, r2, n2].join(", ")}]: 'a' must be between 0 and 1.` : `Invalid rgba value [${("number" == typeof n2 ? [t2, e2, r2, n2] : [t2, e2, r2]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`; + return t2; + }; + var ie = function(t2) { + this.name = t2.name, this.available = t2.available; + }; + function ae(t2, e2, r2, n2) { + return "number" == typeof t2 && t2 >= 0 && t2 <= 255 && "number" == typeof e2 && e2 >= 0 && e2 <= 255 && "number" == typeof r2 && r2 >= 0 && r2 <= 255 ? void 0 === n2 || "number" == typeof n2 && n2 >= 0 && n2 <= 1 ? null : "Invalid rgba value [" + [t2, e2, r2, n2].join(", ") + "]: 'a' must be between 0 and 1." : "Invalid rgba value [" + ("number" == typeof n2 ? [t2, e2, r2, n2] : [t2, e2, r2]).join(", ") + "]: 'r', 'g', and 'b' must be between 0 and 255."; } - function Ut(t2) { + function oe(t2) { if (null === t2) return true; if ("string" == typeof t2) @@ -16061,542 +16381,502 @@ var maplibreGl = { exports: {} }; return true; if ("number" == typeof t2) return true; - if (t2 instanceof Ft) + if (t2 instanceof te) return true; - if (t2 instanceof Tt) + if (t2 instanceof ee) return true; - if (t2 instanceof Dt) + if (t2 instanceof ne) return true; - if (t2 instanceof $t) - return true; - if (t2 instanceof Rt) + if (t2 instanceof ie) return true; if (Array.isArray(t2)) { - for (const e2 of t2) - if (!Ut(e2)) + for (var e2 = 0, r2 = t2; e2 < r2.length; e2 += 1) + if (!oe(r2[e2])) return false; return true; } if ("object" == typeof t2) { - for (const e2 in t2) - if (!Ut(t2[e2])) + for (var n2 in t2) + if (!oe(t2[n2])) return false; return true; } return false; } - function qt(t2) { + function se(t2) { if (null === t2) - return ht; + return Lt; if ("string" == typeof t2) - return ft; + return Rt; if ("boolean" == typeof t2) - return dt; + return Ut; if ("number" == typeof t2) - return pt; - if (t2 instanceof Ft) - return yt; - if (t2 instanceof Tt) - return xt; - if (t2 instanceof Dt) - return vt; - if (t2 instanceof $t) - return bt; - if (t2 instanceof Rt) - return wt; + return Ot; + if (t2 instanceof te) + return jt; + if (t2 instanceof ee) + return Kt; + if (t2 instanceof ne) + return Gt; + if (t2 instanceof ie) + return Zt; if (Array.isArray(t2)) { - const e2 = t2.length; - let r2; - for (const e3 of t2) { - const t3 = qt(e3); - if (r2) { - if (r2 === t3) + for (var e2, r2 = t2.length, n2 = 0, i2 = t2; n2 < i2.length; n2 += 1) { + var a2 = se(i2[n2]); + if (e2) { + if (e2 === a2) continue; - r2 = gt; + e2 = Nt; break; } - r2 = t3; + e2 = a2; } - return _t(r2 || gt, e2); + return Xt(e2 || Nt, r2); } - return mt; - } - function jt(t2) { - const e2 = typeof t2; - return null === t2 ? "" : "string" === e2 || "number" === e2 || "boolean" === e2 ? String(t2) : t2 instanceof Ft || t2 instanceof Dt || t2 instanceof $t || t2 instanceof Rt ? t2.toString() : JSON.stringify(t2); + return qt; } - class Nt { - constructor(t2, e2) { - this.type = t2, this.value = e2; - } - static parse(t2, e2) { - if (2 !== t2.length) - return e2.error(`'literal' expression requires exactly one argument, but found ${t2.length - 1} instead.`); - if (!Ut(t2[1])) - return e2.error("invalid value"); - const r2 = t2[1]; - let n2 = qt(r2); - const i2 = e2.expectedType; - return "array" !== n2.kind || 0 !== n2.N || !i2 || "array" !== i2.kind || "number" == typeof i2.N && 0 !== i2.N || (n2 = i2), new Nt(n2, r2); - } - evaluate() { - return this.value; - } - eachChild() { - } - outputDefined() { - return true; - } + function ue(t2) { + var e2 = typeof t2; + return null === t2 ? "" : "string" === e2 || "number" === e2 || "boolean" === e2 ? String(t2) : t2 instanceof te || t2 instanceof ne || t2 instanceof ie ? t2.toString() : JSON.stringify(t2); } - class Zt { - constructor(t2) { - this.name = "ExpressionEvaluationError", this.message = t2; + ie.prototype.toString = function() { + return this.name; + }, ie.fromString = function(t2) { + return t2 ? new ie({ name: t2, available: false }) : null; + }, ie.prototype.serialize = function() { + return ["image", this.name]; + }; + var le = function(t2, e2) { + this.type = t2, this.value = e2; + }; + le.parse = function(t2, e2) { + if (2 !== t2.length) + return e2.error("'literal' expression requires exactly one argument, but found " + (t2.length - 1) + " instead."); + if (!oe(t2[1])) + return e2.error("invalid value"); + var r2 = t2[1], n2 = se(r2), i2 = e2.expectedType; + return "array" !== n2.kind || 0 !== n2.N || !i2 || "array" !== i2.kind || "number" == typeof i2.N && 0 !== i2.N || (n2 = i2), new le(n2, r2); + }, le.prototype.evaluate = function() { + return this.value; + }, le.prototype.eachChild = function() { + }, le.prototype.outputDefined = function() { + return true; + }, le.prototype.serialize = function() { + return "array" === this.type.kind || "object" === this.type.kind ? ["literal", this.value] : this.value instanceof te ? ["rgba"].concat(this.value.toArray()) : this.value instanceof ne ? this.value.serialize() : this.value; + }; + var pe = function(t2) { + this.name = "ExpressionEvaluationError", this.message = t2; + }; + pe.prototype.toJSON = function() { + return this.message; + }; + var ce = { string: Rt, number: Ot, boolean: Ut, object: qt }, he = function(t2, e2) { + this.type = t2, this.args = e2; + }; + he.parse = function(t2, e2) { + if (t2.length < 2) + return e2.error("Expected at least one argument."); + var r2, n2 = 1, i2 = t2[0]; + if ("array" === i2) { + var a2, o2; + if (t2.length > 2) { + var s2 = t2[1]; + if ("string" != typeof s2 || !(s2 in ce) || "object" === s2) + return e2.error('The item type argument of "array" must be one of string, number, boolean', 1); + a2 = ce[s2], n2++; + } else + a2 = Nt; + if (t2.length > 3) { + if (null !== t2[2] && ("number" != typeof t2[2] || t2[2] < 0 || t2[2] !== Math.floor(t2[2]))) + return e2.error('The length argument to "array" must be a positive integer literal', 2); + o2 = t2[2], n2++; + } + r2 = Xt(a2, o2); + } else + r2 = ce[i2]; + for (var u2 = []; n2 < t2.length; n2++) { + var l2 = e2.parse(t2[n2], n2, Nt); + if (!l2) + return null; + u2.push(l2); } - toJSON() { - return this.message; + return new he(r2, u2); + }, he.prototype.evaluate = function(t2) { + for (var e2 = 0; e2 < this.args.length; e2++) { + var r2 = this.args[e2].evaluate(t2); + if (!Yt(this.type, se(r2))) + return r2; + if (e2 === this.args.length - 1) + throw new pe("Expected value to be of type " + Jt(this.type) + ", but found " + Jt(se(r2)) + " instead."); } - } - const Kt = { string: ft, number: pt, boolean: dt, object: mt }; - class Gt { - constructor(t2, e2) { - this.type = t2, this.args = e2; + return null; + }, he.prototype.eachChild = function(t2) { + this.args.forEach(t2); + }, he.prototype.outputDefined = function() { + return this.args.every(function(t2) { + return t2.outputDefined(); + }); + }, he.prototype.serialize = function() { + var t2 = this.type, e2 = [t2.kind]; + if ("array" === t2.kind) { + var r2 = t2.itemType; + if ("string" === r2.kind || "number" === r2.kind || "boolean" === r2.kind) { + e2.push(r2.kind); + var n2 = t2.N; + ("number" == typeof n2 || this.args.length > 1) && e2.push(n2); + } } - static parse(t2, e2) { - if (t2.length < 2) - return e2.error("Expected at least one argument."); - let r2, n2 = 1; - const i2 = t2[0]; - if ("array" === i2) { - let i3, a3; - if (t2.length > 2) { - const r3 = t2[1]; - if ("string" != typeof r3 || !(r3 in Kt) || "object" === r3) - return e2.error('The item type argument of "array" must be one of string, number, boolean', 1); - i3 = Kt[r3], n2++; - } else - i3 = gt; - if (t2.length > 3) { - if (null !== t2[2] && ("number" != typeof t2[2] || t2[2] < 0 || t2[2] !== Math.floor(t2[2]))) - return e2.error('The length argument to "array" must be a positive integer literal', 2); - a3 = t2[2], n2++; - } - r2 = _t(i3, a3); - } else { - if (!Kt[i2]) - throw new Error(`Types doesn't contain name = ${i2}`); - r2 = Kt[i2]; - } - const a2 = []; - for (; n2 < t2.length; n2++) { - const r3 = e2.parse(t2[n2], n2, gt); - if (!r3) + return e2.concat(this.args.map(function(t3) { + return t3.serialize(); + })); + }; + var fe = function(t2) { + this.type = Gt, this.sections = t2; + }; + fe.parse = function(t2, e2) { + if (t2.length < 2) + return e2.error("Expected at least one argument."); + var r2 = t2[1]; + if (!Array.isArray(r2) && "object" == typeof r2) + return e2.error("First argument must be an image or text section."); + for (var n2 = [], i2 = false, a2 = 1; a2 <= t2.length - 1; ++a2) { + var o2 = t2[a2]; + if (i2 && "object" == typeof o2 && !Array.isArray(o2)) { + i2 = false; + var s2 = null; + if (o2["font-scale"] && !(s2 = e2.parse(o2["font-scale"], 1, Ot))) return null; - a2.push(r3); - } - return new Gt(r2, a2); - } - evaluate(t2) { - for (let e2 = 0; e2 < this.args.length; e2++) { - const r2 = this.args[e2].evaluate(t2); - if (!St(this.type, qt(r2))) - return r2; - if (e2 === this.args.length - 1) - throw new Zt(`Expected value to be of type ${At(this.type)}, but found ${At(qt(r2))} instead.`); - } - throw new Error(); - } - eachChild(t2) { - this.args.forEach(t2); - } - outputDefined() { - return this.args.every((t2) => t2.outputDefined()); - } - } - const Jt = { "to-boolean": dt, "to-color": yt, "to-number": pt, "to-string": ft }; - class Xt { - constructor(t2, e2) { - this.type = t2, this.args = e2; - } - static parse(t2, e2) { - if (t2.length < 2) - return e2.error("Expected at least one argument."); - const r2 = t2[0]; - if (!Jt[r2]) - throw new Error(`Can't parse ${r2} as it is not part of the known types`); - if (("to-boolean" === r2 || "to-string" === r2) && 2 !== t2.length) - return e2.error("Expected one argument."); - const n2 = Jt[r2], i2 = []; - for (let r3 = 1; r3 < t2.length; r3++) { - const n3 = e2.parse(t2[r3], r3, gt); - if (!n3) + var u2 = null; + if (o2["text-font"] && !(u2 = e2.parse(o2["text-font"], 1, Xt(Rt)))) return null; - i2.push(n3); - } - return new Xt(n2, i2); - } - evaluate(t2) { - if ("boolean" === this.type.kind) - return Boolean(this.args[0].evaluate(t2)); - if ("color" === this.type.kind) { - let e2, r2; - for (const n2 of this.args) { - if (e2 = n2.evaluate(t2), r2 = null, e2 instanceof Ft) - return e2; - if ("string" == typeof e2) { - const r3 = t2.parseColor(e2); - if (r3) - return r3; - } else if (Array.isArray(e2) && (r2 = e2.length < 3 || e2.length > 4 ? `Invalid rbga value ${JSON.stringify(e2)}: expected an array containing either three or four numeric values.` : Ot(e2[0], e2[1], e2[2], e2[3]), !r2)) - return new Ft(e2[0] / 255, e2[1] / 255, e2[2] / 255, e2[3]); - } - throw new Zt(r2 || `Could not parse color from value '${"string" == typeof e2 ? e2 : JSON.stringify(e2)}'`); - } - if ("padding" === this.type.kind) { - let e2; - for (const r2 of this.args) { - e2 = r2.evaluate(t2); - const n2 = $t.parse(e2); - if (n2) - return n2; - } - throw new Zt(`Could not parse padding from value '${"string" == typeof e2 ? e2 : JSON.stringify(e2)}'`); - } - if ("number" === this.type.kind) { - let e2 = null; - for (const r2 of this.args) { - if (e2 = r2.evaluate(t2), null === e2) - return 0; - const n2 = Number(e2); - if (!isNaN(n2)) - return n2; - } - throw new Zt(`Could not convert ${JSON.stringify(e2)} to number.`); + var l2 = null; + if (o2["text-color"] && !(l2 = e2.parse(o2["text-color"], 1, jt))) + return null; + var p3 = n2[n2.length - 1]; + p3.scale = s2, p3.font = u2, p3.textColor = l2; + } else { + var c3 = e2.parse(t2[a2], 1, Nt); + if (!c3) + return null; + var h3 = c3.type.kind; + if ("string" !== h3 && "value" !== h3 && "null" !== h3 && "resolvedImage" !== h3) + return e2.error("Formatted text type must be 'string', 'value', 'image' or 'null'."); + i2 = true, n2.push({ content: c3, scale: null, font: null, textColor: null }); } - return "formatted" === this.type.kind ? Dt.fromString(jt(this.args[0].evaluate(t2))) : "resolvedImage" === this.type.kind ? Rt.fromString(jt(this.args[0].evaluate(t2))) : jt(this.args[0].evaluate(t2)); - } - eachChild(t2) { - this.args.forEach(t2); - } - outputDefined() { - return this.args.every((t2) => t2.outputDefined()); - } - } - const Yt = ["Unknown", "Point", "LineString", "Polygon"]; - class Ht { - constructor() { - this.globals = null, this.feature = null, this.featureState = null, this.formattedSection = null, this._parseColorCache = {}, this.availableImages = null, this.canonical = null; - } - id() { - return this.feature && "id" in this.feature ? this.feature.id : null; - } - geometryType() { - return this.feature ? "number" == typeof this.feature.type ? Yt[this.feature.type] : this.feature.type : null; - } - geometry() { - return this.feature && "geometry" in this.feature ? this.feature.geometry : null; - } - canonicalID() { - return this.canonical; } - properties() { - return this.feature && this.feature.properties || {}; - } - parseColor(t2) { - let e2 = this._parseColorCache[t2]; - return e2 || (e2 = this._parseColorCache[t2] = Ft.parse(t2)), e2; - } - } - class Wt { - constructor(t2, e2, r2, n2) { - this.name = t2, this.type = e2, this._evaluate = r2, this.args = n2; - } - evaluate(t2) { - return this._evaluate(t2, this.args); - } - eachChild(t2) { - this.args.forEach(t2); + return new fe(n2); + }, fe.prototype.evaluate = function(t2) { + return new ne(this.sections.map(function(e2) { + var r2 = e2.content.evaluate(t2); + return se(r2) === Zt ? new re("", r2, null, null, null) : new re(ue(r2), null, e2.scale ? e2.scale.evaluate(t2) : null, e2.font ? e2.font.evaluate(t2).join(",") : null, e2.textColor ? e2.textColor.evaluate(t2) : null); + })); + }, fe.prototype.eachChild = function(t2) { + for (var e2 = 0, r2 = this.sections; e2 < r2.length; e2 += 1) { + var n2 = r2[e2]; + t2(n2.content), n2.scale && t2(n2.scale), n2.font && t2(n2.font), n2.textColor && t2(n2.textColor); } - outputDefined() { - return false; + }, fe.prototype.outputDefined = function() { + return false; + }, fe.prototype.serialize = function() { + for (var t2 = ["format"], e2 = 0, r2 = this.sections; e2 < r2.length; e2 += 1) { + var n2 = r2[e2]; + t2.push(n2.content.serialize()); + var i2 = {}; + n2.scale && (i2["font-scale"] = n2.scale.serialize()), n2.font && (i2["text-font"] = n2.font.serialize()), n2.textColor && (i2["text-color"] = n2.textColor.serialize()), t2.push(i2); } - static parse(t2, e2) { - const r2 = t2[0], n2 = Wt.definitions[r2]; - if (!n2) - return e2.error(`Unknown expression "${r2}". If you wanted a literal array, use ["literal", [...]].`, 0); - const i2 = Array.isArray(n2) ? n2[0] : n2.type, a2 = Array.isArray(n2) ? [[n2[1], n2[2]]] : n2.overloads, s2 = a2.filter(([e3]) => !Array.isArray(e3) || e3.length === t2.length - 1); - let o2 = null; - for (const [n3, a3] of s2) { - o2 = new we(e2.registry, e2.path, null, e2.scope); - const s3 = []; - let l2 = false; - for (let e3 = 1; e3 < t2.length; e3++) { - const r3 = t2[e3], i3 = Array.isArray(n3) ? n3[e3 - 1] : n3.type, a4 = o2.parse(r3, 1 + s3.length, i3); - if (!a4) { - l2 = true; - break; - } - s3.push(a4); + return t2; + }; + var ye = function(t2) { + this.type = Zt, this.input = t2; + }; + ye.parse = function(t2, e2) { + if (2 !== t2.length) + return e2.error("Expected two arguments."); + var r2 = e2.parse(t2[1], 1, Rt); + return r2 ? new ye(r2) : e2.error("No image name provided."); + }, ye.prototype.evaluate = function(t2) { + var e2 = this.input.evaluate(t2), r2 = ie.fromString(e2); + return r2 && t2.availableImages && (r2.available = t2.availableImages.indexOf(e2) > -1), r2; + }, ye.prototype.eachChild = function(t2) { + t2(this.input); + }, ye.prototype.outputDefined = function() { + return false; + }, ye.prototype.serialize = function() { + return ["image", this.input.serialize()]; + }; + var de = { "to-boolean": Ut, "to-color": jt, "to-number": Ot, "to-string": Rt }, me = function(t2, e2) { + this.type = t2, this.args = e2; + }; + me.parse = function(t2, e2) { + if (t2.length < 2) + return e2.error("Expected at least one argument."); + var r2 = t2[0]; + if (("to-boolean" === r2 || "to-string" === r2) && 2 !== t2.length) + return e2.error("Expected one argument."); + for (var n2 = de[r2], i2 = [], a2 = 1; a2 < t2.length; a2++) { + var o2 = e2.parse(t2[a2], a2, Nt); + if (!o2) + return null; + i2.push(o2); + } + return new me(n2, i2); + }, me.prototype.evaluate = function(t2) { + if ("boolean" === this.type.kind) + return Boolean(this.args[0].evaluate(t2)); + if ("color" === this.type.kind) { + for (var e2, r2, n2 = 0, i2 = this.args; n2 < i2.length; n2 += 1) { + if (r2 = null, (e2 = i2[n2].evaluate(t2)) instanceof te) + return e2; + if ("string" == typeof e2) { + var a2 = t2.parseColor(e2); + if (a2) + return a2; + } else if (Array.isArray(e2) && !(r2 = e2.length < 3 || e2.length > 4 ? "Invalid rbga value " + JSON.stringify(e2) + ": expected an array containing either three or four numeric values." : ae(e2[0], e2[1], e2[2], e2[3]))) + return new te(e2[0] / 255, e2[1] / 255, e2[2] / 255, e2[3]); + } + throw new pe(r2 || "Could not parse color from value '" + ("string" == typeof e2 ? e2 : String(JSON.stringify(e2))) + "'"); + } + if ("number" === this.type.kind) { + for (var o2 = null, s2 = 0, u2 = this.args; s2 < u2.length; s2 += 1) { + if (null === (o2 = u2[s2].evaluate(t2))) + return 0; + var l2 = Number(o2); + if (!isNaN(l2)) + return l2; + } + throw new pe("Could not convert " + JSON.stringify(o2) + " to number."); + } + return "formatted" === this.type.kind ? ne.fromString(ue(this.args[0].evaluate(t2))) : "resolvedImage" === this.type.kind ? ie.fromString(ue(this.args[0].evaluate(t2))) : ue(this.args[0].evaluate(t2)); + }, me.prototype.eachChild = function(t2) { + this.args.forEach(t2); + }, me.prototype.outputDefined = function() { + return this.args.every(function(t2) { + return t2.outputDefined(); + }); + }, me.prototype.serialize = function() { + if ("formatted" === this.type.kind) + return new fe([{ content: this.args[0], scale: null, font: null, textColor: null }]).serialize(); + if ("resolvedImage" === this.type.kind) + return new ye(this.args[0]).serialize(); + var t2 = ["to-" + this.type.kind]; + return this.eachChild(function(e2) { + t2.push(e2.serialize()); + }), t2; + }; + var ve = ["Unknown", "Point", "LineString", "Polygon"], ge = function() { + this.globals = null, this.feature = null, this.featureState = null, this.formattedSection = null, this._parseColorCache = {}, this.availableImages = null, this.canonical = null; + }; + ge.prototype.id = function() { + return this.feature && "id" in this.feature ? this.feature.id : null; + }, ge.prototype.geometryType = function() { + return this.feature ? "number" == typeof this.feature.type ? ve[this.feature.type] : this.feature.type : null; + }, ge.prototype.geometry = function() { + return this.feature && "geometry" in this.feature ? this.feature.geometry : null; + }, ge.prototype.canonicalID = function() { + return this.canonical; + }, ge.prototype.properties = function() { + return this.feature && this.feature.properties || {}; + }, ge.prototype.parseColor = function(t2) { + var e2 = this._parseColorCache[t2]; + return e2 || (e2 = this._parseColorCache[t2] = te.parse(t2)), e2; + }; + var xe = function(t2, e2, r2, n2) { + this.name = t2, this.type = e2, this._evaluate = r2, this.args = n2; + }; + xe.prototype.evaluate = function(t2) { + return this._evaluate(t2, this.args); + }, xe.prototype.eachChild = function(t2) { + this.args.forEach(t2); + }, xe.prototype.outputDefined = function() { + return false; + }, xe.prototype.serialize = function() { + return [this.name].concat(this.args.map(function(t2) { + return t2.serialize(); + })); + }, xe.parse = function(t2, e2) { + var r2, n2 = t2[0], i2 = xe.definitions[n2]; + if (!i2) + return e2.error('Unknown expression "' + n2 + '". If you wanted a literal array, use ["literal", [...]].', 0); + for (var a2 = Array.isArray(i2) ? i2[0] : i2.type, o2 = Array.isArray(i2) ? [[i2[1], i2[2]]] : i2.overloads, s2 = o2.filter(function(e3) { + var r3 = e3[0]; + return !Array.isArray(r3) || r3.length === t2.length - 1; + }), u2 = null, l2 = 0, p3 = s2; l2 < p3.length; l2 += 1) { + var c3 = p3[l2], h3 = c3[0], f2 = c3[1]; + u2 = new je(e2.registry, e2.path, null, e2.scope); + for (var y3 = [], d2 = false, m2 = 1; m2 < t2.length; m2++) { + var v3 = t2[m2], g2 = Array.isArray(h3) ? h3[m2 - 1] : h3.type, x2 = u2.parse(v3, 1 + y3.length, g2); + if (!x2) { + d2 = true; + break; } - if (!l2) - if (Array.isArray(n3) && n3.length !== s3.length) - o2.error(`Expected ${n3.length} arguments, but found ${s3.length} instead.`); - else { - for (let t3 = 0; t3 < s3.length; t3++) { - const e3 = Array.isArray(n3) ? n3[t3] : n3.type, r3 = s3[t3]; - o2.concat(t3 + 1).checkSubtype(e3, r3.type); - } - if (0 === o2.errors.length) - return new Wt(r2, i2, a3, s3); - } + y3.push(x2); } - if (1 === s2.length) - e2.errors.push(...o2.errors); - else { - const r3 = (s2.length ? s2 : a2).map(([t3]) => { - return e3 = t3, Array.isArray(e3) ? `(${e3.map(At).join(", ")})` : `(${At(e3.type)}...)`; - var e3; - }).join(" | "), n3 = []; - for (let r4 = 1; r4 < t2.length; r4++) { - const i3 = e2.parse(t2[r4], 1 + n3.length); - if (!i3) - return null; - n3.push(At(i3.type)); + if (!d2) + if (Array.isArray(h3) && h3.length !== y3.length) + u2.error("Expected " + h3.length + " arguments, but found " + y3.length + " instead."); + else { + for (var b2 = 0; b2 < y3.length; b2++) { + var w2 = Array.isArray(h3) ? h3[b2] : h3.type, _24 = y3[b2]; + u2.concat(b2 + 1).checkSubtype(w2, _24.type); + } + if (0 === u2.errors.length) + return new xe(n2, a2, f2, y3); } - e2.error(`Expected arguments of type ${r3}, but found (${n3.join(", ")}) instead.`); - } - return null; - } - static register(t2, e2) { - Wt.definitions = e2; - for (const r2 in e2) - t2[r2] = Wt; - } - } - class Qt { - constructor(t2, e2, r2) { - this.type = xt, this.locale = r2, this.caseSensitive = t2, this.diacriticSensitive = e2; - } - static parse(t2, e2) { - if (2 !== t2.length) - return e2.error("Expected one argument."); - const r2 = t2[1]; - if ("object" != typeof r2 || Array.isArray(r2)) - return e2.error("Collator options argument must be an object."); - const n2 = e2.parse(void 0 !== r2["case-sensitive"] && r2["case-sensitive"], 1, dt); - if (!n2) - return null; - const i2 = e2.parse(void 0 !== r2["diacritic-sensitive"] && r2["diacritic-sensitive"], 1, dt); - if (!i2) - return null; - let a2 = null; - return r2.locale && (a2 = e2.parse(r2.locale, 1, ft), !a2) ? null : new Qt(n2, i2, a2); - } - evaluate(t2) { - return new Tt(this.caseSensitive.evaluate(t2), this.diacriticSensitive.evaluate(t2), this.locale ? this.locale.evaluate(t2) : null); } - eachChild(t2) { - t2(this.caseSensitive), t2(this.diacriticSensitive), this.locale && t2(this.locale); - } - outputDefined() { - return false; + if (1 === s2.length) + (r2 = e2.errors).push.apply(r2, u2.errors); + else { + for (var A3 = (s2.length ? s2 : o2).map(function(t3) { + var e3; + return e3 = t3[0], Array.isArray(e3) ? "(" + e3.map(Jt).join(", ") + ")" : "(" + Jt(e3.type) + "...)"; + }).join(" | "), S2 = [], k2 = 1; k2 < t2.length; k2++) { + var I3 = e2.parse(t2[k2], 1 + S2.length); + if (!I3) + return null; + S2.push(Jt(I3.type)); + } + e2.error("Expected arguments of type " + A3 + ", but found (" + S2.join(", ") + ") instead."); } - } - const te = 8192; - function ee(t2, e2) { + return null; + }, xe.register = function(t2, e2) { + for (var r2 in xe.definitions = e2, e2) + t2[r2] = xe; + }; + var be = function(t2, e2, r2) { + this.type = Kt, this.locale = r2, this.caseSensitive = t2, this.diacriticSensitive = e2; + }; + function we(t2, e2) { t2[0] = Math.min(t2[0], e2[0]), t2[1] = Math.min(t2[1], e2[1]), t2[2] = Math.max(t2[2], e2[0]), t2[3] = Math.max(t2[3], e2[1]); } - function re(t2, e2) { + function _e(t2, e2) { return !(t2[0] <= e2[0] || t2[2] >= e2[2] || t2[1] <= e2[1] || t2[3] >= e2[3]); } - function ne(t2, e2) { - const r2 = (180 + t2[0]) / 360, n2 = (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + t2[1] * Math.PI / 360))) / 360, i2 = Math.pow(2, e2.z); - return [Math.round(r2 * i2 * te), Math.round(n2 * i2 * te)]; + function Ae(t2, e2) { + var r2 = (180 + t2[0]) / 360, n2 = (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + t2[1] * Math.PI / 360))) / 360, i2 = Math.pow(2, e2.z); + return [Math.round(r2 * i2 * 8192), Math.round(n2 * i2 * 8192)]; } - function ie(t2, e2, r2) { - const n2 = t2[0] - e2[0], i2 = t2[1] - e2[1], a2 = t2[0] - r2[0], s2 = t2[1] - r2[1]; - return n2 * s2 - a2 * i2 == 0 && n2 * a2 <= 0 && i2 * s2 <= 0; + function Se(t2, e2, r2) { + return e2[1] > t2[1] != r2[1] > t2[1] && t2[0] < (r2[0] - e2[0]) * (t2[1] - e2[1]) / (r2[1] - e2[1]) + e2[0]; } - function ae(t2, e2) { - let r2 = false; - for (let s2 = 0, o2 = e2.length; s2 < o2; s2++) { - const o3 = e2[s2]; - for (let e3 = 0, s3 = o3.length; e3 < s3 - 1; e3++) { - if (ie(t2, o3[e3], o3[e3 + 1])) + function ke(t2, e2) { + for (var r2, n2, i2, a2, o2, s2, u2, l2 = false, p3 = 0, c3 = e2.length; p3 < c3; p3++) + for (var h3 = e2[p3], f2 = 0, y3 = h3.length; f2 < y3 - 1; f2++) { + if ((a2 = (r2 = t2)[0] - (n2 = h3[f2])[0]) * (u2 = r2[1] - (i2 = h3[f2 + 1])[1]) - (s2 = r2[0] - i2[0]) * (o2 = r2[1] - n2[1]) == 0 && a2 * s2 <= 0 && o2 * u2 <= 0) return false; - (i2 = o3[e3])[1] > (n2 = t2)[1] != (a2 = o3[e3 + 1])[1] > n2[1] && n2[0] < (a2[0] - i2[0]) * (n2[1] - i2[1]) / (a2[1] - i2[1]) + i2[0] && (r2 = !r2); + Se(t2, h3[f2], h3[f2 + 1]) && (l2 = !l2); } - } - var n2, i2, a2; - return r2; + return l2; } - function se(t2, e2) { - for (let r2 = 0; r2 < e2.length; r2++) - if (ae(t2, e2[r2])) + function Ie(t2, e2) { + for (var r2 = 0; r2 < e2.length; r2++) + if (ke(t2, e2[r2])) return true; return false; } - function oe(t2, e2, r2, n2) { - const i2 = n2[0] - r2[0], a2 = n2[1] - r2[1], s2 = (t2[0] - r2[0]) * a2 - i2 * (t2[1] - r2[1]), o2 = (e2[0] - r2[0]) * a2 - i2 * (e2[1] - r2[1]); - return s2 > 0 && o2 < 0 || s2 < 0 && o2 > 0; + function ze(t2, e2, r2, n2) { + var i2 = n2[0] - r2[0], a2 = n2[1] - r2[1], o2 = (t2[0] - r2[0]) * a2 - i2 * (t2[1] - r2[1]), s2 = (e2[0] - r2[0]) * a2 - i2 * (e2[1] - r2[1]); + return o2 > 0 && s2 < 0 || o2 < 0 && s2 > 0; } - function le(t2, e2, r2) { - for (const u2 of r2) - for (let r3 = 0; r3 < u2.length - 1; ++r3) - if (0 != (o2 = [(s2 = u2[r3 + 1])[0] - (a2 = u2[r3])[0], s2[1] - a2[1]])[0] * (l2 = [(i2 = e2)[0] - (n2 = t2)[0], i2[1] - n2[1]])[1] - o2[1] * l2[0] && oe(n2, i2, a2, s2) && oe(a2, s2, n2, i2)) + function Ce(t2, e2, r2) { + for (var n2 = 0, i2 = r2; n2 < i2.length; n2 += 1) + for (var a2 = i2[n2], o2 = 0; o2 < a2.length - 1; ++o2) + if (0 != (c3 = [(p3 = a2[o2 + 1])[0] - (l2 = a2[o2])[0], p3[1] - l2[1]])[0] * (h3 = [(u2 = e2)[0] - (s2 = t2)[0], u2[1] - s2[1]])[1] - c3[1] * h3[0] && ze(s2, u2, l2, p3) && ze(l2, p3, s2, u2)) return true; - var n2, i2, a2, s2, o2, l2; + var s2, u2, l2, p3, c3, h3; return false; } - function ue(t2, e2) { - for (let r2 = 0; r2 < t2.length; ++r2) - if (!ae(t2[r2], e2)) + function Ee(t2, e2) { + for (var r2 = 0; r2 < t2.length; ++r2) + if (!ke(t2[r2], e2)) return false; - for (let r2 = 0; r2 < t2.length - 1; ++r2) - if (le(t2[r2], t2[r2 + 1], e2)) + for (var n2 = 0; n2 < t2.length - 1; ++n2) + if (Ce(t2[n2], t2[n2 + 1], e2)) return false; return true; } - function ce(t2, e2) { - for (let r2 = 0; r2 < e2.length; r2++) - if (ue(t2, e2[r2])) + function Pe(t2, e2) { + for (var r2 = 0; r2 < e2.length; r2++) + if (Ee(t2, e2[r2])) return true; return false; } - function he(t2, e2, r2) { - const n2 = []; - for (let i2 = 0; i2 < t2.length; i2++) { - const a2 = []; - for (let n3 = 0; n3 < t2[i2].length; n3++) { - const s2 = ne(t2[i2][n3], r2); - ee(e2, s2), a2.push(s2); + function Me(t2, e2, r2) { + for (var n2 = [], i2 = 0; i2 < t2.length; i2++) { + for (var a2 = [], o2 = 0; o2 < t2[i2].length; o2++) { + var s2 = Ae(t2[i2][o2], r2); + we(e2, s2), a2.push(s2); } n2.push(a2); } return n2; } - function pe(t2, e2, r2) { - const n2 = []; - for (let i2 = 0; i2 < t2.length; i2++) { - const a2 = he(t2[i2], e2, r2); + function Be(t2, e2, r2) { + for (var n2 = [], i2 = 0; i2 < t2.length; i2++) { + var a2 = Me(t2[i2], e2, r2); n2.push(a2); } return n2; } - function fe(t2, e2, r2, n2) { + function Te(t2, e2, r2, n2) { if (t2[0] < r2[0] || t2[0] > r2[2]) { - const e3 = 0.5 * n2; - let i2 = t2[0] - r2[0] > e3 ? -n2 : r2[0] - t2[0] > e3 ? n2 : 0; - 0 === i2 && (i2 = t2[0] - r2[2] > e3 ? -n2 : r2[2] - t2[0] > e3 ? n2 : 0), t2[0] += i2; + var i2 = 0.5 * n2, a2 = t2[0] - r2[0] > i2 ? -n2 : r2[0] - t2[0] > i2 ? n2 : 0; + 0 === a2 && (a2 = t2[0] - r2[2] > i2 ? -n2 : r2[2] - t2[0] > i2 ? n2 : 0), t2[0] += a2; } - ee(e2, t2); + we(e2, t2); } - function de(t2, e2, r2, n2) { - const i2 = Math.pow(2, n2.z) * te, a2 = [n2.x * te, n2.y * te], s2 = []; - for (const n3 of t2) - for (const t3 of n3) { - const n4 = [t3.x + a2[0], t3.y + a2[1]]; - fe(n4, e2, r2, i2), s2.push(n4); + function Ve(t2, e2, r2, n2) { + for (var i2 = 8192 * Math.pow(2, n2.z), a2 = [8192 * n2.x, 8192 * n2.y], o2 = [], s2 = 0, u2 = t2; s2 < u2.length; s2 += 1) + for (var l2 = 0, p3 = u2[s2]; l2 < p3.length; l2 += 1) { + var c3 = p3[l2], h3 = [c3.x + a2[0], c3.y + a2[1]]; + Te(h3, e2, r2, i2), o2.push(h3); } - return s2; + return o2; } - function ye(t2, e2, r2, n2) { - const i2 = Math.pow(2, n2.z) * te, a2 = [n2.x * te, n2.y * te], s2 = []; - for (const r3 of t2) { - const t3 = []; - for (const n3 of r3) { - const r4 = [n3.x + a2[0], n3.y + a2[1]]; - ee(e2, r4), t3.push(r4); + function Fe(t2, e2, r2, n2) { + for (var i2, a2 = 8192 * Math.pow(2, n2.z), o2 = [8192 * n2.x, 8192 * n2.y], s2 = [], u2 = 0, l2 = t2; u2 < l2.length; u2 += 1) { + for (var p3 = [], c3 = 0, h3 = l2[u2]; c3 < h3.length; c3 += 1) { + var f2 = h3[c3], y3 = [f2.x + o2[0], f2.y + o2[1]]; + we(e2, y3), p3.push(y3); } - s2.push(t3); + s2.push(p3); } - if (e2[2] - e2[0] <= i2 / 2) { - (o2 = e2)[0] = o2[1] = 1 / 0, o2[2] = o2[3] = -1 / 0; - for (const t3 of s2) - for (const n3 of t3) - fe(n3, e2, r2, i2); + if (e2[2] - e2[0] <= a2 / 2) { + (i2 = e2)[0] = i2[1] = 1 / 0, i2[2] = i2[3] = -1 / 0; + for (var d2 = 0, m2 = s2; d2 < m2.length; d2 += 1) + for (var v3 = 0, g2 = m2[d2]; v3 < g2.length; v3 += 1) + Te(g2[v3], e2, r2, a2); } - var o2; return s2; } - class me { - constructor(t2, e2) { - this.type = dt, this.geojson = t2, this.geometries = e2; - } - static parse(t2, e2) { - if (2 !== t2.length) - return e2.error(`'within' expression requires exactly one argument, but found ${t2.length - 1} instead.`); - if (Ut(t2[1])) { - const e3 = t2[1]; - if ("FeatureCollection" === e3.type) - for (let t3 = 0; t3 < e3.features.length; ++t3) { - const r2 = e3.features[t3].geometry.type; - if ("Polygon" === r2 || "MultiPolygon" === r2) - return new me(e3, e3.features[t3].geometry); - } - else if ("Feature" === e3.type) { - const t3 = e3.geometry.type; - if ("Polygon" === t3 || "MultiPolygon" === t3) - return new me(e3, e3.geometry); - } else if ("Polygon" === e3.type || "MultiPolygon" === e3.type) - return new me(e3, e3); - } - return e2.error("'within' expression requires valid geojson object that contains polygon geometry type."); - } - evaluate(t2) { - if (null != t2.geometry() && null != t2.canonicalID()) { - if ("Point" === t2.geometryType()) - return function(t3, e2) { - const r2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], n2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], i2 = t3.canonicalID(); - if ("Polygon" === e2.type) { - const a2 = he(e2.coordinates, n2, i2), s2 = de(t3.geometry(), r2, n2, i2); - if (!re(r2, n2)) - return false; - for (const t4 of s2) - if (!ae(t4, a2)) - return false; - } - if ("MultiPolygon" === e2.type) { - const a2 = pe(e2.coordinates, n2, i2), s2 = de(t3.geometry(), r2, n2, i2); - if (!re(r2, n2)) - return false; - for (const t4 of s2) - if (!se(t4, a2)) - return false; - } - return true; - }(t2, this.geometries); - if ("LineString" === t2.geometryType()) - return function(t3, e2) { - const r2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], n2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], i2 = t3.canonicalID(); - if ("Polygon" === e2.type) { - const a2 = he(e2.coordinates, n2, i2), s2 = ye(t3.geometry(), r2, n2, i2); - if (!re(r2, n2)) - return false; - for (const t4 of s2) - if (!ue(t4, a2)) - return false; - } - if ("MultiPolygon" === e2.type) { - const a2 = pe(e2.coordinates, n2, i2), s2 = ye(t3.geometry(), r2, n2, i2); - if (!re(r2, n2)) - return false; - for (const t4 of s2) - if (!ce(t4, a2)) - return false; - } - return true; - }(t2, this.geometries); - } - return false; - } - eachChild() { - } - outputDefined() { - return true; - } - } - function ge(t2) { - if (t2 instanceof Wt) { + be.parse = function(t2, e2) { + if (2 !== t2.length) + return e2.error("Expected one argument."); + var r2 = t2[1]; + if ("object" != typeof r2 || Array.isArray(r2)) + return e2.error("Collator options argument must be an object."); + var n2 = e2.parse(void 0 !== r2["case-sensitive"] && r2["case-sensitive"], 1, Ut); + if (!n2) + return null; + var i2 = e2.parse(void 0 !== r2["diacritic-sensitive"] && r2["diacritic-sensitive"], 1, Ut); + if (!i2) + return null; + var a2 = null; + return r2.locale && !(a2 = e2.parse(r2.locale, 1, Rt)) ? null : new be(n2, i2, a2); + }, be.prototype.evaluate = function(t2) { + return new ee(this.caseSensitive.evaluate(t2), this.diacriticSensitive.evaluate(t2), this.locale ? this.locale.evaluate(t2) : null); + }, be.prototype.eachChild = function(t2) { + t2(this.caseSensitive), t2(this.diacriticSensitive), this.locale && t2(this.locale); + }, be.prototype.outputDefined = function() { + return false; + }, be.prototype.serialize = function() { + var t2 = {}; + return t2["case-sensitive"] = this.caseSensitive.serialize(), t2["diacritic-sensitive"] = this.diacriticSensitive.serialize(), this.locale && (t2.locale = this.locale.serialize()), ["collator", t2]; + }; + var De = function(t2, e2) { + this.type = Ut, this.geojson = t2, this.geometries = e2; + }; + function Le(t2) { + if (t2 instanceof xe) { if ("get" === t2.name && 1 === t2.args.length) return false; if ("feature-state" === t2.name) @@ -16608,1268 +16888,1353 @@ var maplibreGl = { exports: {} }; if (/^filter-/.test(t2.name)) return false; } - if (t2 instanceof me) + if (t2 instanceof De) return false; - let e2 = true; - return t2.eachChild((t3) => { - e2 && !ge(t3) && (e2 = false); + var e2 = true; + return t2.eachChild(function(t3) { + e2 && !Le(t3) && (e2 = false); }), e2; } - function xe(t2) { - if (t2 instanceof Wt && "feature-state" === t2.name) + function Oe(t2) { + if (t2 instanceof xe && "feature-state" === t2.name) return false; - let e2 = true; - return t2.eachChild((t3) => { - e2 && !xe(t3) && (e2 = false); + var e2 = true; + return t2.eachChild(function(t3) { + e2 && !Oe(t3) && (e2 = false); }), e2; } - function ve(t2, e2) { - if (t2 instanceof Wt && e2.indexOf(t2.name) >= 0) + function Re(t2, e2) { + if (t2 instanceof xe && e2.indexOf(t2.name) >= 0) return false; - let r2 = true; - return t2.eachChild((t3) => { - r2 && !ve(t3, e2) && (r2 = false); + var r2 = true; + return t2.eachChild(function(t3) { + r2 && !Re(t3, e2) && (r2 = false); }), r2; } - class be { - constructor(t2, e2) { - this.type = e2.type, this.name = t2, this.boundExpression = e2; - } - static parse(t2, e2) { - if (2 !== t2.length || "string" != typeof t2[1]) - return e2.error("'var' expression requires exactly one string literal argument."); - const r2 = t2[1]; - return e2.scope.has(r2) ? new be(r2, e2.scope.get(r2)) : e2.error(`Unknown variable "${r2}". Make sure "${r2}" has been bound in an enclosing "let" expression before using it.`, 1); - } - evaluate(t2) { - return this.boundExpression.evaluate(t2); - } - eachChild() { - } - outputDefined() { - return false; - } - } - class we { - constructor(t2, e2 = [], r2, n2 = new ct(), i2 = []) { - this.registry = t2, this.path = e2, this.key = e2.map((t3) => `[${t3}]`).join(""), this.scope = n2, this.errors = i2, this.expectedType = r2; - } - parse(t2, e2, r2, n2, i2 = {}) { - return e2 ? this.concat(e2, r2, n2)._parse(t2, i2) : this._parse(t2, i2); - } - _parse(t2, e2) { - function r2(t3, e3, r3) { - return "assert" === r3 ? new Gt(e3, [t3]) : "coerce" === r3 ? new Xt(e3, [t3]) : t3; - } - if (null !== t2 && "string" != typeof t2 && "boolean" != typeof t2 && "number" != typeof t2 || (t2 = ["literal", t2]), Array.isArray(t2)) { - if (0 === t2.length) - return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].'); - const n2 = t2[0]; - if ("string" != typeof n2) - return this.error(`Expression name must be a string, but found ${typeof n2} instead. If you wanted a literal array, use ["literal", [...]].`, 0), null; - const i2 = this.registry[n2]; - if (i2) { - let n3 = i2.parse(t2, this); - if (!n3) - return null; - if (this.expectedType) { - const t3 = this.expectedType, i3 = n3.type; - if ("string" !== t3.kind && "number" !== t3.kind && "boolean" !== t3.kind && "object" !== t3.kind && "array" !== t3.kind || "value" !== i3.kind) - if ("color" !== t3.kind && "formatted" !== t3.kind && "resolvedImage" !== t3.kind || "value" !== i3.kind && "string" !== i3.kind) - if ("padding" !== t3.kind || "value" !== i3.kind && "number" !== i3.kind && "array" !== i3.kind) { - if (this.checkSubtype(t3, i3)) - return null; - } else - n3 = r2(n3, t3, e2.typeAnnotation || "coerce"); - else - n3 = r2(n3, t3, e2.typeAnnotation || "coerce"); - else - n3 = r2(n3, t3, e2.typeAnnotation || "assert"); + De.parse = function(t2, e2) { + if (2 !== t2.length) + return e2.error("'within' expression requires exactly one argument, but found " + (t2.length - 1) + " instead."); + if (oe(t2[1])) { + var r2 = t2[1]; + if ("FeatureCollection" === r2.type) + for (var n2 = 0; n2 < r2.features.length; ++n2) { + var i2 = r2.features[n2].geometry.type; + if ("Polygon" === i2 || "MultiPolygon" === i2) + return new De(r2, r2.features[n2].geometry); + } + else if ("Feature" === r2.type) { + var a2 = r2.geometry.type; + if ("Polygon" === a2 || "MultiPolygon" === a2) + return new De(r2, r2.geometry); + } else if ("Polygon" === r2.type || "MultiPolygon" === r2.type) + return new De(r2, r2); + } + return e2.error("'within' expression requires valid geojson object that contains polygon geometry type."); + }, De.prototype.evaluate = function(t2) { + if (null != t2.geometry() && null != t2.canonicalID()) { + if ("Point" === t2.geometryType()) + return function(t3, e2) { + var r2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], n2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], i2 = t3.canonicalID(); + if ("Polygon" === e2.type) { + var a2 = Me(e2.coordinates, n2, i2), o2 = Ve(t3.geometry(), r2, n2, i2); + if (!_e(r2, n2)) + return false; + for (var s2 = 0, u2 = o2; s2 < u2.length; s2 += 1) + if (!ke(u2[s2], a2)) + return false; } - if (!(n3 instanceof Nt) && "resolvedImage" !== n3.type.kind && _e(n3)) { - const t3 = new Ht(); - try { - n3 = new Nt(n3.type, n3.evaluate(t3)); - } catch (t4) { - return this.error(t4.message), null; - } + if ("MultiPolygon" === e2.type) { + var l2 = Be(e2.coordinates, n2, i2), p3 = Ve(t3.geometry(), r2, n2, i2); + if (!_e(r2, n2)) + return false; + for (var c3 = 0, h3 = p3; c3 < h3.length; c3 += 1) + if (!Ie(h3[c3], l2)) + return false; } - return n3; - } - return this.error(`Unknown expression "${n2}". If you wanted a literal array, use ["literal", [...]].`, 0); - } - return this.error(void 0 === t2 ? "'undefined' value invalid. Use null instead." : "object" == typeof t2 ? 'Bare objects invalid. Use ["literal", {...}] instead.' : `Expected an array, but found ${typeof t2} instead.`); - } - concat(t2, e2, r2) { - const n2 = "number" == typeof t2 ? this.path.concat(t2) : this.path, i2 = r2 ? this.scope.concat(r2) : this.scope; - return new we(this.registry, n2, e2 || null, i2, this.errors); - } - error(t2, ...e2) { - const r2 = `${this.key}${e2.map((t3) => `[${t3}]`).join("")}`; - this.errors.push(new ut(r2, t2)); - } - checkSubtype(t2, e2) { - const r2 = St(t2, e2); - return r2 && this.error(r2), r2; + return true; + }(t2, this.geometries); + if ("LineString" === t2.geometryType()) + return function(t3, e2) { + var r2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], n2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], i2 = t3.canonicalID(); + if ("Polygon" === e2.type) { + var a2 = Me(e2.coordinates, n2, i2), o2 = Fe(t3.geometry(), r2, n2, i2); + if (!_e(r2, n2)) + return false; + for (var s2 = 0, u2 = o2; s2 < u2.length; s2 += 1) + if (!Ee(u2[s2], a2)) + return false; + } + if ("MultiPolygon" === e2.type) { + var l2 = Be(e2.coordinates, n2, i2), p3 = Fe(t3.geometry(), r2, n2, i2); + if (!_e(r2, n2)) + return false; + for (var c3 = 0, h3 = p3; c3 < h3.length; c3 += 1) + if (!Pe(h3[c3], l2)) + return false; + } + return true; + }(t2, this.geometries); } - } - function _e(t2) { - if (t2 instanceof be) - return _e(t2.boundExpression); - if (t2 instanceof Wt && "error" === t2.name) - return false; - if (t2 instanceof Qt) - return false; - if (t2 instanceof me) - return false; - const e2 = t2 instanceof Xt || t2 instanceof Gt; - let r2 = true; - return t2.eachChild((t3) => { - r2 = e2 ? r2 && _e(t3) : r2 && t3 instanceof Nt; - }), !!r2 && ge(t2) && ve(t2, ["zoom", "heatmap-density", "line-progress", "accumulated", "is-supported-script"]); - } - function Ae(t2, e2) { - const r2 = t2.length - 1; - let n2, i2, a2 = 0, s2 = r2, o2 = 0; - for (; a2 <= s2; ) - if (o2 = Math.floor((a2 + s2) / 2), n2 = t2[o2], i2 = t2[o2 + 1], n2 <= e2) { - if (o2 === r2 || e2 < i2) + return false; + }, De.prototype.eachChild = function() { + }, De.prototype.outputDefined = function() { + return true; + }, De.prototype.serialize = function() { + return ["within", this.geojson]; + }; + var Ue = function(t2, e2) { + this.type = e2.type, this.name = t2, this.boundExpression = e2; + }; + Ue.parse = function(t2, e2) { + if (2 !== t2.length || "string" != typeof t2[1]) + return e2.error("'var' expression requires exactly one string literal argument."); + var r2 = t2[1]; + return e2.scope.has(r2) ? new Ue(r2, e2.scope.get(r2)) : e2.error('Unknown variable "' + r2 + '". Make sure "' + r2 + '" has been bound in an enclosing "let" expression before using it.', 1); + }, Ue.prototype.evaluate = function(t2) { + return this.boundExpression.evaluate(t2); + }, Ue.prototype.eachChild = function() { + }, Ue.prototype.outputDefined = function() { + return false; + }, Ue.prototype.serialize = function() { + return ["var", this.name]; + }; + var je = function(t2, e2, r2, n2, i2) { + void 0 === e2 && (e2 = []), void 0 === n2 && (n2 = new Dt()), void 0 === i2 && (i2 = []), this.registry = t2, this.path = e2, this.key = e2.map(function(t3) { + return "[" + t3 + "]"; + }).join(""), this.scope = n2, this.errors = i2, this.expectedType = r2; + }; + function qe(t2, e2) { + for (var r2, n2 = t2.length - 1, i2 = 0, a2 = n2, o2 = 0; i2 <= a2; ) + if ((r2 = t2[o2 = Math.floor((i2 + a2) / 2)]) <= e2) { + if (o2 === n2 || e2 < t2[o2 + 1]) return o2; - a2 = o2 + 1; + i2 = o2 + 1; } else { - if (!(n2 > e2)) - throw new Zt("Input is not a number."); - s2 = o2 - 1; + if (!(r2 > e2)) + throw new pe("Input is not a number."); + a2 = o2 - 1; } return 0; } - class ke { - constructor(t2, e2, r2) { - this.type = t2, this.input = e2, this.labels = [], this.outputs = []; - for (const [t3, e3] of r2) - this.labels.push(t3), this.outputs.push(e3); - } - static parse(t2, e2) { - if (t2.length - 1 < 4) - return e2.error(`Expected at least 4 arguments, but found only ${t2.length - 1}.`); - if ((t2.length - 1) % 2 != 0) - return e2.error("Expected an even number of arguments."); - const r2 = e2.parse(t2[1], 1, pt); - if (!r2) - return null; - const n2 = []; - let i2 = null; - e2.expectedType && "value" !== e2.expectedType.kind && (i2 = e2.expectedType); - for (let r3 = 1; r3 < t2.length; r3 += 2) { - const a2 = 1 === r3 ? -1 / 0 : t2[r3], s2 = t2[r3 + 1], o2 = r3, l2 = r3 + 1; - if ("number" != typeof a2) - return e2.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.', o2); - if (n2.length && n2[n2.length - 1][0] >= a2) - return e2.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.', o2); - const u2 = e2.parse(s2, l2, i2); - if (!u2) + je.prototype.parse = function(t2, e2, r2, n2, i2) { + return void 0 === i2 && (i2 = {}), e2 ? this.concat(e2, r2, n2)._parse(t2, i2) : this._parse(t2, i2); + }, je.prototype._parse = function(t2, e2) { + function r2(t3, e3, r3) { + return "assert" === r3 ? new he(e3, [t3]) : "coerce" === r3 ? new me(e3, [t3]) : t3; + } + if (null !== t2 && "string" != typeof t2 && "boolean" != typeof t2 && "number" != typeof t2 || (t2 = ["literal", t2]), Array.isArray(t2)) { + if (0 === t2.length) + return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].'); + var n2 = t2[0]; + if ("string" != typeof n2) + return this.error("Expression name must be a string, but found " + typeof n2 + ' instead. If you wanted a literal array, use ["literal", [...]].', 0), null; + var i2 = this.registry[n2]; + if (i2) { + var a2 = i2.parse(t2, this); + if (!a2) return null; - i2 = i2 || u2.type, n2.push([a2, u2]); + if (this.expectedType) { + var o2 = this.expectedType, s2 = a2.type; + if ("string" !== o2.kind && "number" !== o2.kind && "boolean" !== o2.kind && "object" !== o2.kind && "array" !== o2.kind || "value" !== s2.kind) + if ("color" !== o2.kind && "formatted" !== o2.kind && "resolvedImage" !== o2.kind || "value" !== s2.kind && "string" !== s2.kind) { + if (this.checkSubtype(o2, s2)) + return null; + } else + a2 = r2(a2, o2, e2.typeAnnotation || "coerce"); + else + a2 = r2(a2, o2, e2.typeAnnotation || "assert"); + } + if (!(a2 instanceof le) && "resolvedImage" !== a2.type.kind && function t3(e3) { + if (e3 instanceof Ue) + return t3(e3.boundExpression); + if (e3 instanceof xe && "error" === e3.name) + return false; + if (e3 instanceof be) + return false; + if (e3 instanceof De) + return false; + var r3 = e3 instanceof me || e3 instanceof he, n3 = true; + return e3.eachChild(function(e4) { + n3 = r3 ? n3 && t3(e4) : n3 && e4 instanceof le; + }), !!n3 && Le(e3) && Re(e3, ["zoom", "heatmap-density", "line-progress", "accumulated", "is-supported-script"]); + }(a2)) { + var u2 = new ge(); + try { + a2 = new le(a2.type, a2.evaluate(u2)); + } catch (t3) { + return this.error(t3.message), null; + } + } + return a2; } - return new ke(i2, r2, n2); - } - evaluate(t2) { - const e2 = this.labels, r2 = this.outputs; - if (1 === e2.length) - return r2[0].evaluate(t2); - const n2 = this.input.evaluate(t2); - if (n2 <= e2[0]) - return r2[0].evaluate(t2); - const i2 = e2.length; - return n2 >= e2[i2 - 1] ? r2[i2 - 1].evaluate(t2) : r2[Ae(e2, n2)].evaluate(t2); - } - eachChild(t2) { - t2(this.input); - for (const e2 of this.outputs) - t2(e2); - } - outputDefined() { - return this.outputs.every((t2) => t2.outputDefined()); + return this.error('Unknown expression "' + n2 + '". If you wanted a literal array, use ["literal", [...]].', 0); + } + return this.error(void 0 === t2 ? "'undefined' value invalid. Use null instead." : "object" == typeof t2 ? 'Bare objects invalid. Use ["literal", {...}] instead.' : "Expected an array, but found " + typeof t2 + " instead."); + }, je.prototype.concat = function(t2, e2, r2) { + var n2 = "number" == typeof t2 ? this.path.concat(t2) : this.path, i2 = r2 ? this.scope.concat(r2) : this.scope; + return new je(this.registry, n2, e2 || null, i2, this.errors); + }, je.prototype.error = function(t2) { + for (var e2 = [], r2 = arguments.length - 1; r2-- > 0; ) + e2[r2] = arguments[r2 + 1]; + var n2 = "" + this.key + e2.map(function(t3) { + return "[" + t3 + "]"; + }).join(""); + this.errors.push(new Ft(n2, t2)); + }, je.prototype.checkSubtype = function(t2, e2) { + var r2 = Yt(t2, e2); + return r2 && this.error(r2), r2; + }; + var Ne = function(t2, e2, r2) { + this.type = t2, this.input = e2, this.labels = [], this.outputs = []; + for (var n2 = 0, i2 = r2; n2 < i2.length; n2 += 1) { + var a2 = i2[n2], o2 = a2[1]; + this.labels.push(a2[0]), this.outputs.push(o2); } - } - function Se(t2, e2, r2) { + }; + function Ke(t2, e2, r2) { return t2 * (1 - r2) + e2 * r2; } - var Ie = Object.freeze({ __proto__: null, number: Se, color: function(t2, e2, r2) { - return new Ft(Se(t2.r, e2.r, r2), Se(t2.g, e2.g, r2), Se(t2.b, e2.b, r2), Se(t2.a, e2.a, r2)); + Ne.parse = function(t2, e2) { + if (t2.length - 1 < 4) + return e2.error("Expected at least 4 arguments, but found only " + (t2.length - 1) + "."); + if ((t2.length - 1) % 2 != 0) + return e2.error("Expected an even number of arguments."); + var r2 = e2.parse(t2[1], 1, Ot); + if (!r2) + return null; + var n2 = [], i2 = null; + e2.expectedType && "value" !== e2.expectedType.kind && (i2 = e2.expectedType); + for (var a2 = 1; a2 < t2.length; a2 += 2) { + var o2 = 1 === a2 ? -1 / 0 : t2[a2], s2 = t2[a2 + 1], u2 = a2, l2 = a2 + 1; + if ("number" != typeof o2) + return e2.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.', u2); + if (n2.length && n2[n2.length - 1][0] >= o2) + return e2.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.', u2); + var p3 = e2.parse(s2, l2, i2); + if (!p3) + return null; + i2 = i2 || p3.type, n2.push([o2, p3]); + } + return new Ne(i2, r2, n2); + }, Ne.prototype.evaluate = function(t2) { + var e2 = this.labels, r2 = this.outputs; + if (1 === e2.length) + return r2[0].evaluate(t2); + var n2 = this.input.evaluate(t2); + if (n2 <= e2[0]) + return r2[0].evaluate(t2); + var i2 = e2.length; + return n2 >= e2[i2 - 1] ? r2[i2 - 1].evaluate(t2) : r2[qe(e2, n2)].evaluate(t2); + }, Ne.prototype.eachChild = function(t2) { + t2(this.input); + for (var e2 = 0, r2 = this.outputs; e2 < r2.length; e2 += 1) + t2(r2[e2]); + }, Ne.prototype.outputDefined = function() { + return this.outputs.every(function(t2) { + return t2.outputDefined(); + }); + }, Ne.prototype.serialize = function() { + for (var t2 = ["step", this.input.serialize()], e2 = 0; e2 < this.labels.length; e2++) + e2 > 0 && t2.push(this.labels[e2]), t2.push(this.outputs[e2].serialize()); + return t2; + }; + var Ge = Object.freeze({ __proto__: null, number: Ke, color: function(t2, e2, r2) { + return new te(Ke(t2.r, e2.r, r2), Ke(t2.g, e2.g, r2), Ke(t2.b, e2.b, r2), Ke(t2.a, e2.a, r2)); }, array: function(t2, e2, r2) { - return t2.map((t3, n2) => Se(t3, e2[n2], r2)); - }, padding: function(t2, e2, r2) { - const n2 = t2.values, i2 = e2.values; - return new $t([Se(n2[0], i2[0], r2), Se(n2[1], i2[1], r2), Se(n2[2], i2[2], r2), Se(n2[3], i2[3], r2)]); - } }); - const Me = 0.95047, ze = 1.08883, Be = 4 / 29, Ce = 6 / 29, Pe = 3 * Ce * Ce, Ve = Math.PI / 180, Ee = 180 / Math.PI; - function Fe(t2) { - return t2 > 0.008856451679035631 ? Math.pow(t2, 1 / 3) : t2 / Pe + Be; - } - function Te(t2) { - return t2 > Ce ? t2 * t2 * t2 : Pe * (t2 - Be); + return t2.map(function(t3, n2) { + return Ke(t3, e2[n2], r2); + }); + } }), Ze = 6 / 29 * 3 * (6 / 29), Xe = Math.PI / 180, Je = 180 / Math.PI; + function He(t2) { + return t2 > 0.008856451679035631 ? Math.pow(t2, 1 / 3) : t2 / Ze + 4 / 29; } - function Le(t2) { + function Ye(t2) { + return t2 > 6 / 29 ? t2 * t2 * t2 : Ze * (t2 - 4 / 29); + } + function $e(t2) { return 255 * (t2 <= 31308e-7 ? 12.92 * t2 : 1.055 * Math.pow(t2, 1 / 2.4) - 0.055); } - function De(t2) { + function We(t2) { return (t2 /= 255) <= 0.04045 ? t2 / 12.92 : Math.pow((t2 + 0.055) / 1.055, 2.4); } - function $e(t2) { - const e2 = De(t2.r), r2 = De(t2.g), n2 = De(t2.b), i2 = Fe((0.4124564 * e2 + 0.3575761 * r2 + 0.1804375 * n2) / Me), a2 = Fe((0.2126729 * e2 + 0.7151522 * r2 + 0.072175 * n2) / 1); - return { l: 116 * a2 - 16, a: 500 * (i2 - a2), b: 200 * (a2 - Fe((0.0193339 * e2 + 0.119192 * r2 + 0.9503041 * n2) / ze)), alpha: t2.a }; + function Qe(t2) { + var e2 = We(t2.r), r2 = We(t2.g), n2 = We(t2.b), i2 = He((0.4124564 * e2 + 0.3575761 * r2 + 0.1804375 * n2) / 0.95047), a2 = He((0.2126729 * e2 + 0.7151522 * r2 + 0.072175 * n2) / 1); + return { l: 116 * a2 - 16, a: 500 * (i2 - a2), b: 200 * (a2 - He((0.0193339 * e2 + 0.119192 * r2 + 0.9503041 * n2) / 1.08883)), alpha: t2.a }; } - function Re(t2) { - let e2 = (t2.l + 16) / 116, r2 = isNaN(t2.a) ? e2 : e2 + t2.a / 500, n2 = isNaN(t2.b) ? e2 : e2 - t2.b / 200; - return e2 = 1 * Te(e2), r2 = Me * Te(r2), n2 = ze * Te(n2), new Ft(Le(3.2404542 * r2 - 1.5371385 * e2 - 0.4985314 * n2), Le(-0.969266 * r2 + 1.8760108 * e2 + 0.041556 * n2), Le(0.0556434 * r2 - 0.2040259 * e2 + 1.0572252 * n2), t2.alpha); + function tr(t2) { + var e2 = (t2.l + 16) / 116, r2 = isNaN(t2.a) ? e2 : e2 + t2.a / 500, n2 = isNaN(t2.b) ? e2 : e2 - t2.b / 200; + return e2 = 1 * Ye(e2), r2 = 0.95047 * Ye(r2), n2 = 1.08883 * Ye(n2), new te($e(3.2404542 * r2 - 1.5371385 * e2 - 0.4985314 * n2), $e(-0.969266 * r2 + 1.8760108 * e2 + 0.041556 * n2), $e(0.0556434 * r2 - 0.2040259 * e2 + 1.0572252 * n2), t2.alpha); } - function Oe(t2, e2, r2) { - const n2 = e2 - t2; + function er(t2, e2, r2) { + var n2 = e2 - t2; return t2 + r2 * (n2 > 180 || n2 < -180 ? n2 - 360 * Math.round(n2 / 360) : n2); } - const Ue = { forward: $e, reverse: Re, interpolate: function(t2, e2, r2) { - return { l: Se(t2.l, e2.l, r2), a: Se(t2.a, e2.a, r2), b: Se(t2.b, e2.b, r2), alpha: Se(t2.alpha, e2.alpha, r2) }; - } }, qe = { forward: function(t2) { - const { l: e2, a: r2, b: n2 } = $e(t2), i2 = Math.atan2(n2, r2) * Ee; - return { h: i2 < 0 ? i2 + 360 : i2, c: Math.sqrt(r2 * r2 + n2 * n2), l: e2, alpha: t2.a }; + var rr = { forward: Qe, reverse: tr, interpolate: function(t2, e2, r2) { + return { l: Ke(t2.l, e2.l, r2), a: Ke(t2.a, e2.a, r2), b: Ke(t2.b, e2.b, r2), alpha: Ke(t2.alpha, e2.alpha, r2) }; + } }, nr = { forward: function(t2) { + var e2 = Qe(t2), r2 = e2.l, n2 = e2.a, i2 = e2.b, a2 = Math.atan2(i2, n2) * Je; + return { h: a2 < 0 ? a2 + 360 : a2, c: Math.sqrt(n2 * n2 + i2 * i2), l: r2, alpha: t2.a }; }, reverse: function(t2) { - const e2 = t2.h * Ve, r2 = t2.c; - return Re({ l: t2.l, a: Math.cos(e2) * r2, b: Math.sin(e2) * r2, alpha: t2.alpha }); + var e2 = t2.h * Xe, r2 = t2.c; + return tr({ l: t2.l, a: Math.cos(e2) * r2, b: Math.sin(e2) * r2, alpha: t2.alpha }); }, interpolate: function(t2, e2, r2) { - return { h: Oe(t2.h, e2.h, r2), c: Se(t2.c, e2.c, r2), l: Se(t2.l, e2.l, r2), alpha: Se(t2.alpha, e2.alpha, r2) }; - } }; - var je = Object.freeze({ __proto__: null, lab: Ue, hcl: qe }); - class Ne { - constructor(t2, e2, r2, n2, i2) { - this.type = t2, this.operator = e2, this.interpolation = r2, this.input = n2, this.labels = [], this.outputs = []; - for (const [t3, e3] of i2) - this.labels.push(t3), this.outputs.push(e3); - } - static interpolationFactor(t2, r2, n2, i2) { - let a2 = 0; - if ("exponential" === t2.name) - a2 = Ze(r2, t2.base, n2, i2); - else if ("linear" === t2.name) - a2 = Ze(r2, 1, n2, i2); - else if ("cubic-bezier" === t2.name) { - const s2 = t2.controlPoints; - a2 = new e(s2[0], s2[1], s2[2], s2[3]).solve(Ze(r2, 1, n2, i2)); - } - return a2; + return { h: er(t2.h, e2.h, r2), c: Ke(t2.c, e2.c, r2), l: Ke(t2.l, e2.l, r2), alpha: Ke(t2.alpha, e2.alpha, r2) }; + } }, ir = Object.freeze({ __proto__: null, lab: rr, hcl: nr }), ar = function(t2, e2, r2, n2, i2) { + this.type = t2, this.operator = e2, this.interpolation = r2, this.input = n2, this.labels = [], this.outputs = []; + for (var a2 = 0, o2 = i2; a2 < o2.length; a2 += 1) { + var s2 = o2[a2], u2 = s2[1]; + this.labels.push(s2[0]), this.outputs.push(u2); } - static parse(t2, e2) { - let [r2, n2, i2, ...a2] = t2; - if (!Array.isArray(n2) || 0 === n2.length) - return e2.error("Expected an interpolation type expression.", 1); - if ("linear" === n2[0]) - n2 = { name: "linear" }; - else if ("exponential" === n2[0]) { - const t3 = n2[1]; - if ("number" != typeof t3) - return e2.error("Exponential interpolation requires a numeric base.", 1, 1); - n2 = { name: "exponential", base: t3 }; - } else { - if ("cubic-bezier" !== n2[0]) - return e2.error(`Unknown interpolation type ${String(n2[0])}`, 1, 0); - { - const t3 = n2.slice(1); - if (4 !== t3.length || t3.some((t4) => "number" != typeof t4 || t4 < 0 || t4 > 1)) - return e2.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.", 1); - n2 = { name: "cubic-bezier", controlPoints: t3 }; - } - } - if (t2.length - 1 < 4) - return e2.error(`Expected at least 4 arguments, but found only ${t2.length - 1}.`); - if ((t2.length - 1) % 2 != 0) - return e2.error("Expected an even number of arguments."); - if (i2 = e2.parse(i2, 2, pt), !i2) - return null; - const s2 = []; - let o2 = null; - "interpolate-hcl" === r2 || "interpolate-lab" === r2 ? o2 = yt : e2.expectedType && "value" !== e2.expectedType.kind && (o2 = e2.expectedType); - for (let t3 = 0; t3 < a2.length; t3 += 2) { - const r3 = a2[t3], n3 = a2[t3 + 1], i3 = t3 + 3, l2 = t3 + 4; - if ("number" != typeof r3) - return e2.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.', i3); - if (s2.length && s2[s2.length - 1][0] >= r3) - return e2.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.', i3); - const u2 = e2.parse(n3, l2, o2); - if (!u2) - return null; - o2 = o2 || u2.type, s2.push([r3, u2]); - } - return "number" === o2.kind || "color" === o2.kind || "padding" === o2.kind || "array" === o2.kind && "number" === o2.itemType.kind && "number" == typeof o2.N ? new Ne(o2, r2, n2, i2, s2) : e2.error(`Type ${At(o2)} is not interpolatable.`); - } - evaluate(t2) { - const e2 = this.labels, r2 = this.outputs; - if (1 === e2.length) - return r2[0].evaluate(t2); - const n2 = this.input.evaluate(t2); - if (n2 <= e2[0]) - return r2[0].evaluate(t2); - const i2 = e2.length; - if (n2 >= e2[i2 - 1]) - return r2[i2 - 1].evaluate(t2); - const a2 = Ae(e2, n2), s2 = Ne.interpolationFactor(this.interpolation, n2, e2[a2], e2[a2 + 1]), o2 = r2[a2].evaluate(t2), l2 = r2[a2 + 1].evaluate(t2); - return "interpolate" === this.operator ? Ie[this.type.kind.toLowerCase()](o2, l2, s2) : "interpolate-hcl" === this.operator ? qe.reverse(qe.interpolate(qe.forward(o2), qe.forward(l2), s2)) : Ue.reverse(Ue.interpolate(Ue.forward(o2), Ue.forward(l2), s2)); - } - eachChild(t2) { - t2(this.input); - for (const e2 of this.outputs) - t2(e2); - } - outputDefined() { - return this.outputs.every((t2) => t2.outputDefined()); - } - } - function Ze(t2, e2, r2, n2) { - const i2 = n2 - r2, a2 = t2 - r2; + }; + function or(t2, e2, r2, n2) { + var i2 = n2 - r2, a2 = t2 - r2; return 0 === i2 ? 0 : 1 === e2 ? a2 / i2 : (Math.pow(e2, a2) - 1) / (Math.pow(e2, i2) - 1); } - class Ke { - constructor(t2, e2) { - this.type = t2, this.args = e2; - } - static parse(t2, e2) { - if (t2.length < 2) - return e2.error("Expectected at least one argument."); - let r2 = null; - const n2 = e2.expectedType; - n2 && "value" !== n2.kind && (r2 = n2); - const i2 = []; - for (const n3 of t2.slice(1)) { - const t3 = e2.parse(n3, 1 + i2.length, r2, void 0, { typeAnnotation: "omit" }); - if (!t3) - return null; - r2 = r2 || t3.type, i2.push(t3); - } - if (!r2) - throw new Error("No output type"); - const a2 = n2 && i2.some((t3) => St(n2, t3.type)); - return new Ke(a2 ? gt : r2, i2); - } - evaluate(t2) { - let e2, r2 = null, n2 = 0; - for (const i2 of this.args) - if (n2++, r2 = i2.evaluate(t2), r2 && r2 instanceof Rt && !r2.available && (e2 || (e2 = r2.name), r2 = null, n2 === this.args.length && (r2 = e2)), null !== r2) - break; - return r2; - } - eachChild(t2) { - this.args.forEach(t2); - } - outputDefined() { - return this.args.every((t2) => t2.outputDefined()); - } - } - class Ge { - constructor(t2, e2) { - this.type = e2.type, this.bindings = [].concat(t2), this.result = e2; - } - evaluate(t2) { - return this.result.evaluate(t2); - } - eachChild(t2) { - for (const e2 of this.bindings) - t2(e2[1]); - t2(this.result); - } - static parse(t2, e2) { - if (t2.length < 4) - return e2.error(`Expected at least 3 arguments, but found ${t2.length - 1} instead.`); - const r2 = []; - for (let n3 = 1; n3 < t2.length - 1; n3 += 2) { - const i2 = t2[n3]; - if ("string" != typeof i2) - return e2.error(`Expected string, but found ${typeof i2} instead.`, n3); - if (/[^a-zA-Z0-9_]/.test(i2)) - return e2.error("Variable names must contain only alphanumeric characters or '_'.", n3); - const a2 = e2.parse(t2[n3 + 1], n3 + 1); - if (!a2) - return null; - r2.push([i2, a2]); - } - const n2 = e2.parse(t2[t2.length - 1], t2.length - 1, e2.expectedType, r2); - return n2 ? new Ge(r2, n2) : null; - } - outputDefined() { - return this.result.outputDefined(); - } - } - class Je { - constructor(t2, e2, r2) { - this.type = t2, this.index = e2, this.input = r2; - } - static parse(t2, e2) { - if (3 !== t2.length) - return e2.error(`Expected 2 arguments, but found ${t2.length - 1} instead.`); - const r2 = e2.parse(t2[1], 1, pt), n2 = e2.parse(t2[2], 2, _t(e2.expectedType || gt)); - return r2 && n2 ? new Je(n2.type.itemType, r2, n2) : null; - } - evaluate(t2) { - const e2 = this.index.evaluate(t2), r2 = this.input.evaluate(t2); - if (e2 < 0) - throw new Zt(`Array index out of bounds: ${e2} < 0.`); - if (e2 >= r2.length) - throw new Zt(`Array index out of bounds: ${e2} > ${r2.length - 1}.`); - if (e2 !== Math.floor(e2)) - throw new Zt(`Array index must be an integer, but found ${e2} instead.`); - return r2[e2]; - } - eachChild(t2) { - t2(this.index), t2(this.input); - } - outputDefined() { - return false; - } - } - class Xe { - constructor(t2, e2) { - this.type = dt, this.needle = t2, this.haystack = e2; + ar.interpolationFactor = function(t2, e2, n2, i2) { + var a2 = 0; + if ("exponential" === t2.name) + a2 = or(e2, t2.base, n2, i2); + else if ("linear" === t2.name) + a2 = or(e2, 1, n2, i2); + else if ("cubic-bezier" === t2.name) { + var o2 = t2.controlPoints; + a2 = new r(o2[0], o2[1], o2[2], o2[3]).solve(or(e2, 1, n2, i2)); } - static parse(t2, e2) { - if (3 !== t2.length) - return e2.error(`Expected 2 arguments, but found ${t2.length - 1} instead.`); - const r2 = e2.parse(t2[1], 1, gt), n2 = e2.parse(t2[2], 2, gt); - return r2 && n2 ? It(r2.type, [dt, ft, pt, ht, gt]) ? new Xe(r2, n2) : e2.error(`Expected first argument to be of type boolean, string, number or null, but found ${At(r2.type)} instead`) : null; - } - evaluate(t2) { - const e2 = this.needle.evaluate(t2), r2 = this.haystack.evaluate(t2); - if (!r2) - return false; - if (!Mt(e2, ["boolean", "string", "number", "null"])) - throw new Zt(`Expected first argument to be of type boolean, string, number or null, but found ${At(qt(e2))} instead.`); - if (!Mt(r2, ["string", "array"])) - throw new Zt(`Expected second argument to be of type array or string, but found ${At(qt(r2))} instead.`); - return r2.indexOf(e2) >= 0; - } - eachChild(t2) { - t2(this.needle), t2(this.haystack); - } - outputDefined() { - return true; - } - } - class Ye { - constructor(t2, e2, r2) { - this.type = pt, this.needle = t2, this.haystack = e2, this.fromIndex = r2; - } - static parse(t2, e2) { - if (t2.length <= 2 || t2.length >= 5) - return e2.error(`Expected 3 or 4 arguments, but found ${t2.length - 1} instead.`); - const r2 = e2.parse(t2[1], 1, gt), n2 = e2.parse(t2[2], 2, gt); - if (!r2 || !n2) + return a2; + }, ar.parse = function(t2, e2) { + var r2 = t2[0], n2 = t2[1], i2 = t2[2], a2 = t2.slice(3); + if (!Array.isArray(n2) || 0 === n2.length) + return e2.error("Expected an interpolation type expression.", 1); + if ("linear" === n2[0]) + n2 = { name: "linear" }; + else if ("exponential" === n2[0]) { + var o2 = n2[1]; + if ("number" != typeof o2) + return e2.error("Exponential interpolation requires a numeric base.", 1, 1); + n2 = { name: "exponential", base: o2 }; + } else { + if ("cubic-bezier" !== n2[0]) + return e2.error("Unknown interpolation type " + String(n2[0]), 1, 0); + var s2 = n2.slice(1); + if (4 !== s2.length || s2.some(function(t3) { + return "number" != typeof t3 || t3 < 0 || t3 > 1; + })) + return e2.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.", 1); + n2 = { name: "cubic-bezier", controlPoints: s2 }; + } + if (t2.length - 1 < 4) + return e2.error("Expected at least 4 arguments, but found only " + (t2.length - 1) + "."); + if ((t2.length - 1) % 2 != 0) + return e2.error("Expected an even number of arguments."); + if (!(i2 = e2.parse(i2, 2, Ot))) + return null; + var u2 = [], l2 = null; + "interpolate-hcl" === r2 || "interpolate-lab" === r2 ? l2 = jt : e2.expectedType && "value" !== e2.expectedType.kind && (l2 = e2.expectedType); + for (var p3 = 0; p3 < a2.length; p3 += 2) { + var c3 = a2[p3], h3 = a2[p3 + 1], f2 = p3 + 3, y3 = p3 + 4; + if ("number" != typeof c3) + return e2.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.', f2); + if (u2.length && u2[u2.length - 1][0] >= c3) + return e2.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.', f2); + var d2 = e2.parse(h3, y3, l2); + if (!d2) return null; - if (!It(r2.type, [dt, ft, pt, ht, gt])) - return e2.error(`Expected first argument to be of type boolean, string, number or null, but found ${At(r2.type)} instead`); - if (4 === t2.length) { - const i2 = e2.parse(t2[3], 3, pt); - return i2 ? new Ye(r2, n2, i2) : null; - } - return new Ye(r2, n2); - } - evaluate(t2) { - const e2 = this.needle.evaluate(t2), r2 = this.haystack.evaluate(t2); - if (!Mt(e2, ["boolean", "string", "number", "null"])) - throw new Zt(`Expected first argument to be of type boolean, string, number or null, but found ${At(qt(e2))} instead.`); - if (!Mt(r2, ["string", "array"])) - throw new Zt(`Expected second argument to be of type array or string, but found ${At(qt(r2))} instead.`); - if (this.fromIndex) { - const n2 = this.fromIndex.evaluate(t2); - return r2.indexOf(e2, n2); - } - return r2.indexOf(e2); - } - eachChild(t2) { - t2(this.needle), t2(this.haystack), this.fromIndex && t2(this.fromIndex); - } - outputDefined() { - return false; + l2 = l2 || d2.type, u2.push([c3, d2]); } - } - class He { - constructor(t2, e2, r2, n2, i2, a2) { - this.inputType = t2, this.type = e2, this.input = r2, this.cases = n2, this.outputs = i2, this.otherwise = a2; - } - static parse(t2, e2) { - if (t2.length < 5) - return e2.error(`Expected at least 4 arguments, but found only ${t2.length - 1}.`); - if (t2.length % 2 != 1) - return e2.error("Expected an even number of arguments."); - let r2, n2; - e2.expectedType && "value" !== e2.expectedType.kind && (n2 = e2.expectedType); - const i2 = {}, a2 = []; - for (let s3 = 2; s3 < t2.length - 1; s3 += 2) { - let o3 = t2[s3]; - const l2 = t2[s3 + 1]; - Array.isArray(o3) || (o3 = [o3]); - const u2 = e2.concat(s3); - if (0 === o3.length) - return u2.error("Expected at least one branch label."); - for (const t3 of o3) { - if ("number" != typeof t3 && "string" != typeof t3) - return u2.error("Branch labels must be numbers or strings."); - if ("number" == typeof t3 && Math.abs(t3) > Number.MAX_SAFE_INTEGER) - return u2.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`); - if ("number" == typeof t3 && Math.floor(t3) !== t3) - return u2.error("Numeric branch labels must be integer values."); - if (r2) { - if (u2.checkSubtype(r2, qt(t3))) - return null; - } else - r2 = qt(t3); - if (void 0 !== i2[String(t3)]) - return u2.error("Branch labels must be unique."); - i2[String(t3)] = a2.length; - } - const c3 = e2.parse(l2, s3, n2); - if (!c3) - return null; - n2 = n2 || c3.type, a2.push(c3); - } - const s2 = e2.parse(t2[1], 1, gt); + return "number" === l2.kind || "color" === l2.kind || "array" === l2.kind && "number" === l2.itemType.kind && "number" == typeof l2.N ? new ar(l2, r2, n2, i2, u2) : e2.error("Type " + Jt(l2) + " is not interpolatable."); + }, ar.prototype.evaluate = function(t2) { + var e2 = this.labels, r2 = this.outputs; + if (1 === e2.length) + return r2[0].evaluate(t2); + var n2 = this.input.evaluate(t2); + if (n2 <= e2[0]) + return r2[0].evaluate(t2); + var i2 = e2.length; + if (n2 >= e2[i2 - 1]) + return r2[i2 - 1].evaluate(t2); + var a2 = qe(e2, n2), o2 = ar.interpolationFactor(this.interpolation, n2, e2[a2], e2[a2 + 1]), s2 = r2[a2].evaluate(t2), u2 = r2[a2 + 1].evaluate(t2); + return "interpolate" === this.operator ? Ge[this.type.kind.toLowerCase()](s2, u2, o2) : "interpolate-hcl" === this.operator ? nr.reverse(nr.interpolate(nr.forward(s2), nr.forward(u2), o2)) : rr.reverse(rr.interpolate(rr.forward(s2), rr.forward(u2), o2)); + }, ar.prototype.eachChild = function(t2) { + t2(this.input); + for (var e2 = 0, r2 = this.outputs; e2 < r2.length; e2 += 1) + t2(r2[e2]); + }, ar.prototype.outputDefined = function() { + return this.outputs.every(function(t2) { + return t2.outputDefined(); + }); + }, ar.prototype.serialize = function() { + var t2; + t2 = "linear" === this.interpolation.name ? ["linear"] : "exponential" === this.interpolation.name ? 1 === this.interpolation.base ? ["linear"] : ["exponential", this.interpolation.base] : ["cubic-bezier"].concat(this.interpolation.controlPoints); + for (var e2 = [this.operator, t2, this.input.serialize()], r2 = 0; r2 < this.labels.length; r2++) + e2.push(this.labels[r2], this.outputs[r2].serialize()); + return e2; + }; + var sr = function(t2, e2) { + this.type = t2, this.args = e2; + }; + sr.parse = function(t2, e2) { + if (t2.length < 2) + return e2.error("Expectected at least one argument."); + var r2 = null, n2 = e2.expectedType; + n2 && "value" !== n2.kind && (r2 = n2); + for (var i2 = [], a2 = 0, o2 = t2.slice(1); a2 < o2.length; a2 += 1) { + var s2 = e2.parse(o2[a2], 1 + i2.length, r2, void 0, { typeAnnotation: "omit" }); if (!s2) return null; - const o2 = e2.parse(t2[t2.length - 1], t2.length - 1, n2); - return o2 ? "value" !== s2.type.kind && e2.concat(1).checkSubtype(r2, s2.type) ? null : new He(r2, n2, s2, i2, a2, o2) : null; - } - evaluate(t2) { - const e2 = this.input.evaluate(t2); - return (qt(e2) === this.inputType && this.outputs[this.cases[e2]] || this.otherwise).evaluate(t2); - } - eachChild(t2) { - t2(this.input), this.outputs.forEach(t2), t2(this.otherwise); - } - outputDefined() { - return this.outputs.every((t2) => t2.outputDefined()) && this.otherwise.outputDefined(); - } - } - class We { - constructor(t2, e2, r2) { - this.type = t2, this.branches = e2, this.otherwise = r2; - } - static parse(t2, e2) { - if (t2.length < 4) - return e2.error(`Expected at least 3 arguments, but found only ${t2.length - 1}.`); - if (t2.length % 2 != 0) - return e2.error("Expected an odd number of arguments."); - let r2; - e2.expectedType && "value" !== e2.expectedType.kind && (r2 = e2.expectedType); - const n2 = []; - for (let i3 = 1; i3 < t2.length - 1; i3 += 2) { - const a2 = e2.parse(t2[i3], i3, dt); - if (!a2) - return null; - const s2 = e2.parse(t2[i3 + 1], i3 + 1, r2); - if (!s2) - return null; - n2.push([a2, s2]), r2 = r2 || s2.type; - } - const i2 = e2.parse(t2[t2.length - 1], t2.length - 1, r2); - if (!i2) - return null; - if (!r2) - throw new Error("Can't infer output type"); - return new We(r2, n2, i2); + r2 = r2 || s2.type, i2.push(s2); } - evaluate(t2) { - for (const [e2, r2] of this.branches) - if (e2.evaluate(t2)) - return r2.evaluate(t2); - return this.otherwise.evaluate(t2); - } - eachChild(t2) { - for (const [e2, r2] of this.branches) - t2(e2), t2(r2); - t2(this.otherwise); - } - outputDefined() { - return this.branches.every(([t2, e2]) => e2.outputDefined()) && this.otherwise.outputDefined(); - } - } - class Qe { - constructor(t2, e2, r2, n2) { - this.type = t2, this.input = e2, this.beginIndex = r2, this.endIndex = n2; - } - static parse(t2, e2) { - if (t2.length <= 2 || t2.length >= 5) - return e2.error(`Expected 3 or 4 arguments, but found ${t2.length - 1} instead.`); - const r2 = e2.parse(t2[1], 1, gt), n2 = e2.parse(t2[2], 2, pt); - if (!r2 || !n2) + var u2 = n2 && i2.some(function(t3) { + return Yt(n2, t3.type); + }); + return new sr(u2 ? Nt : r2, i2); + }, sr.prototype.evaluate = function(t2) { + for (var e2, r2 = null, n2 = 0, i2 = 0, a2 = this.args; i2 < a2.length && (n2++, (r2 = a2[i2].evaluate(t2)) && r2 instanceof ie && !r2.available && (e2 || (e2 = r2.name), r2 = null, n2 === this.args.length && (r2 = e2)), null === r2); i2 += 1) + ; + return r2; + }, sr.prototype.eachChild = function(t2) { + this.args.forEach(t2); + }, sr.prototype.outputDefined = function() { + return this.args.every(function(t2) { + return t2.outputDefined(); + }); + }, sr.prototype.serialize = function() { + var t2 = ["coalesce"]; + return this.eachChild(function(e2) { + t2.push(e2.serialize()); + }), t2; + }; + var ur = function(t2, e2) { + this.type = e2.type, this.bindings = [].concat(t2), this.result = e2; + }; + ur.prototype.evaluate = function(t2) { + return this.result.evaluate(t2); + }, ur.prototype.eachChild = function(t2) { + for (var e2 = 0, r2 = this.bindings; e2 < r2.length; e2 += 1) + t2(r2[e2][1]); + t2(this.result); + }, ur.parse = function(t2, e2) { + if (t2.length < 4) + return e2.error("Expected at least 3 arguments, but found " + (t2.length - 1) + " instead."); + for (var r2 = [], n2 = 1; n2 < t2.length - 1; n2 += 2) { + var i2 = t2[n2]; + if ("string" != typeof i2) + return e2.error("Expected string, but found " + typeof i2 + " instead.", n2); + if (/[^a-zA-Z0-9_]/.test(i2)) + return e2.error("Variable names must contain only alphanumeric characters or '_'.", n2); + var a2 = e2.parse(t2[n2 + 1], n2 + 1); + if (!a2) return null; - if (!It(r2.type, [_t(gt), ft, gt])) - return e2.error(`Expected first argument to be of type array or string, but found ${At(r2.type)} instead`); - if (4 === t2.length) { - const i2 = e2.parse(t2[3], 3, pt); - return i2 ? new Qe(r2.type, r2, n2, i2) : null; - } - return new Qe(r2.type, r2, n2); + r2.push([i2, a2]); + } + var o2 = e2.parse(t2[t2.length - 1], t2.length - 1, e2.expectedType, r2); + return o2 ? new ur(r2, o2) : null; + }, ur.prototype.outputDefined = function() { + return this.result.outputDefined(); + }, ur.prototype.serialize = function() { + for (var t2 = ["let"], e2 = 0, r2 = this.bindings; e2 < r2.length; e2 += 1) { + var n2 = r2[e2]; + t2.push(n2[0], n2[1].serialize()); + } + return t2.push(this.result.serialize()), t2; + }; + var lr = function(t2, e2, r2) { + this.type = t2, this.index = e2, this.input = r2; + }; + lr.parse = function(t2, e2) { + if (3 !== t2.length) + return e2.error("Expected 2 arguments, but found " + (t2.length - 1) + " instead."); + var r2 = e2.parse(t2[1], 1, Ot), n2 = e2.parse(t2[2], 2, Xt(e2.expectedType || Nt)); + return r2 && n2 ? new lr(n2.type.itemType, r2, n2) : null; + }, lr.prototype.evaluate = function(t2) { + var e2 = this.index.evaluate(t2), r2 = this.input.evaluate(t2); + if (e2 < 0) + throw new pe("Array index out of bounds: " + e2 + " < 0."); + if (e2 >= r2.length) + throw new pe("Array index out of bounds: " + e2 + " > " + (r2.length - 1) + "."); + if (e2 !== Math.floor(e2)) + throw new pe("Array index must be an integer, but found " + e2 + " instead."); + return r2[e2]; + }, lr.prototype.eachChild = function(t2) { + t2(this.index), t2(this.input); + }, lr.prototype.outputDefined = function() { + return false; + }, lr.prototype.serialize = function() { + return ["at", this.index.serialize(), this.input.serialize()]; + }; + var pr = function(t2, e2) { + this.type = Ut, this.needle = t2, this.haystack = e2; + }; + pr.parse = function(t2, e2) { + if (3 !== t2.length) + return e2.error("Expected 2 arguments, but found " + (t2.length - 1) + " instead."); + var r2 = e2.parse(t2[1], 1, Nt), n2 = e2.parse(t2[2], 2, Nt); + return r2 && n2 ? $t(r2.type, [Ut, Rt, Ot, Lt, Nt]) ? new pr(r2, n2) : e2.error("Expected first argument to be of type boolean, string, number or null, but found " + Jt(r2.type) + " instead") : null; + }, pr.prototype.evaluate = function(t2) { + var e2 = this.needle.evaluate(t2), r2 = this.haystack.evaluate(t2); + if (!r2) + return false; + if (!Wt(e2, ["boolean", "string", "number", "null"])) + throw new pe("Expected first argument to be of type boolean, string, number or null, but found " + Jt(se(e2)) + " instead."); + if (!Wt(r2, ["string", "array"])) + throw new pe("Expected second argument to be of type array or string, but found " + Jt(se(r2)) + " instead."); + return r2.indexOf(e2) >= 0; + }, pr.prototype.eachChild = function(t2) { + t2(this.needle), t2(this.haystack); + }, pr.prototype.outputDefined = function() { + return true; + }, pr.prototype.serialize = function() { + return ["in", this.needle.serialize(), this.haystack.serialize()]; + }; + var cr = function(t2, e2, r2) { + this.type = Ot, this.needle = t2, this.haystack = e2, this.fromIndex = r2; + }; + cr.parse = function(t2, e2) { + if (t2.length <= 2 || t2.length >= 5) + return e2.error("Expected 3 or 4 arguments, but found " + (t2.length - 1) + " instead."); + var r2 = e2.parse(t2[1], 1, Nt), n2 = e2.parse(t2[2], 2, Nt); + if (!r2 || !n2) + return null; + if (!$t(r2.type, [Ut, Rt, Ot, Lt, Nt])) + return e2.error("Expected first argument to be of type boolean, string, number or null, but found " + Jt(r2.type) + " instead"); + if (4 === t2.length) { + var i2 = e2.parse(t2[3], 3, Ot); + return i2 ? new cr(r2, n2, i2) : null; + } + return new cr(r2, n2); + }, cr.prototype.evaluate = function(t2) { + var e2 = this.needle.evaluate(t2), r2 = this.haystack.evaluate(t2); + if (!Wt(e2, ["boolean", "string", "number", "null"])) + throw new pe("Expected first argument to be of type boolean, string, number or null, but found " + Jt(se(e2)) + " instead."); + if (!Wt(r2, ["string", "array"])) + throw new pe("Expected second argument to be of type array or string, but found " + Jt(se(r2)) + " instead."); + if (this.fromIndex) { + var n2 = this.fromIndex.evaluate(t2); + return r2.indexOf(e2, n2); + } + return r2.indexOf(e2); + }, cr.prototype.eachChild = function(t2) { + t2(this.needle), t2(this.haystack), this.fromIndex && t2(this.fromIndex); + }, cr.prototype.outputDefined = function() { + return false; + }, cr.prototype.serialize = function() { + if (null != this.fromIndex && void 0 !== this.fromIndex) { + var t2 = this.fromIndex.serialize(); + return ["index-of", this.needle.serialize(), this.haystack.serialize(), t2]; } - evaluate(t2) { - const e2 = this.input.evaluate(t2), r2 = this.beginIndex.evaluate(t2); - if (!Mt(e2, ["string", "array"])) - throw new Zt(`Expected first argument to be of type array or string, but found ${At(qt(e2))} instead.`); - if (this.endIndex) { - const n2 = this.endIndex.evaluate(t2); - return e2.slice(r2, n2); + return ["index-of", this.needle.serialize(), this.haystack.serialize()]; + }; + var hr = function(t2, e2, r2, n2, i2, a2) { + this.inputType = t2, this.type = e2, this.input = r2, this.cases = n2, this.outputs = i2, this.otherwise = a2; + }; + hr.parse = function(t2, e2) { + if (t2.length < 5) + return e2.error("Expected at least 4 arguments, but found only " + (t2.length - 1) + "."); + if (t2.length % 2 != 1) + return e2.error("Expected an even number of arguments."); + var r2, n2; + e2.expectedType && "value" !== e2.expectedType.kind && (n2 = e2.expectedType); + for (var i2 = {}, a2 = [], o2 = 2; o2 < t2.length - 1; o2 += 2) { + var s2 = t2[o2], u2 = t2[o2 + 1]; + Array.isArray(s2) || (s2 = [s2]); + var l2 = e2.concat(o2); + if (0 === s2.length) + return l2.error("Expected at least one branch label."); + for (var p3 = 0, c3 = s2; p3 < c3.length; p3 += 1) { + var h3 = c3[p3]; + if ("number" != typeof h3 && "string" != typeof h3) + return l2.error("Branch labels must be numbers or strings."); + if ("number" == typeof h3 && Math.abs(h3) > Number.MAX_SAFE_INTEGER) + return l2.error("Branch labels must be integers no larger than " + Number.MAX_SAFE_INTEGER + "."); + if ("number" == typeof h3 && Math.floor(h3) !== h3) + return l2.error("Numeric branch labels must be integer values."); + if (r2) { + if (l2.checkSubtype(r2, se(h3))) + return null; + } else + r2 = se(h3); + if (void 0 !== i2[String(h3)]) + return l2.error("Branch labels must be unique."); + i2[String(h3)] = a2.length; } - return e2.slice(r2); - } - eachChild(t2) { - t2(this.input), t2(this.beginIndex), this.endIndex && t2(this.endIndex); - } - outputDefined() { - return false; + var f2 = e2.parse(u2, o2, n2); + if (!f2) + return null; + n2 = n2 || f2.type, a2.push(f2); } - } - function tr(t2, e2) { + var y3 = e2.parse(t2[1], 1, Nt); + if (!y3) + return null; + var d2 = e2.parse(t2[t2.length - 1], t2.length - 1, n2); + return d2 ? "value" !== y3.type.kind && e2.concat(1).checkSubtype(r2, y3.type) ? null : new hr(r2, n2, y3, i2, a2, d2) : null; + }, hr.prototype.evaluate = function(t2) { + var e2 = this.input.evaluate(t2); + return (se(e2) === this.inputType && this.outputs[this.cases[e2]] || this.otherwise).evaluate(t2); + }, hr.prototype.eachChild = function(t2) { + t2(this.input), this.outputs.forEach(t2), t2(this.otherwise); + }, hr.prototype.outputDefined = function() { + return this.outputs.every(function(t2) { + return t2.outputDefined(); + }) && this.otherwise.outputDefined(); + }, hr.prototype.serialize = function() { + for (var t2 = this, e2 = ["match", this.input.serialize()], r2 = [], n2 = {}, i2 = 0, a2 = Object.keys(this.cases).sort(); i2 < a2.length; i2 += 1) { + var o2 = a2[i2]; + void 0 === (c3 = n2[this.cases[o2]]) ? (n2[this.cases[o2]] = r2.length, r2.push([this.cases[o2], [o2]])) : r2[c3][1].push(o2); + } + for (var s2 = function(e3) { + return "number" === t2.inputType.kind ? Number(e3) : e3; + }, u2 = 0, l2 = r2; u2 < l2.length; u2 += 1) { + var p3 = l2[u2], c3 = p3[0], h3 = p3[1]; + e2.push(1 === h3.length ? s2(h3[0]) : h3.map(s2)), e2.push(this.outputs[outputIndex$1].serialize()); + } + return e2.push(this.otherwise.serialize()), e2; + }; + var fr = function(t2, e2, r2) { + this.type = t2, this.branches = e2, this.otherwise = r2; + }; + fr.parse = function(t2, e2) { + if (t2.length < 4) + return e2.error("Expected at least 3 arguments, but found only " + (t2.length - 1) + "."); + if (t2.length % 2 != 0) + return e2.error("Expected an odd number of arguments."); + var r2; + e2.expectedType && "value" !== e2.expectedType.kind && (r2 = e2.expectedType); + for (var n2 = [], i2 = 1; i2 < t2.length - 1; i2 += 2) { + var a2 = e2.parse(t2[i2], i2, Ut); + if (!a2) + return null; + var o2 = e2.parse(t2[i2 + 1], i2 + 1, r2); + if (!o2) + return null; + n2.push([a2, o2]), r2 = r2 || o2.type; + } + var s2 = e2.parse(t2[t2.length - 1], t2.length - 1, r2); + return s2 ? new fr(r2, n2, s2) : null; + }, fr.prototype.evaluate = function(t2) { + for (var e2 = 0, r2 = this.branches; e2 < r2.length; e2 += 1) { + var n2 = r2[e2], i2 = n2[1]; + if (n2[0].evaluate(t2)) + return i2.evaluate(t2); + } + return this.otherwise.evaluate(t2); + }, fr.prototype.eachChild = function(t2) { + for (var e2 = 0, r2 = this.branches; e2 < r2.length; e2 += 1) { + var n2 = r2[e2], i2 = n2[1]; + t2(n2[0]), t2(i2); + } + t2(this.otherwise); + }, fr.prototype.outputDefined = function() { + return this.branches.every(function(t2) { + return t2[1].outputDefined(); + }) && this.otherwise.outputDefined(); + }, fr.prototype.serialize = function() { + var t2 = ["case"]; + return this.eachChild(function(e2) { + t2.push(e2.serialize()); + }), t2; + }; + var yr = function(t2, e2, r2, n2) { + this.type = t2, this.input = e2, this.beginIndex = r2, this.endIndex = n2; + }; + function dr(t2, e2) { return "==" === t2 || "!=" === t2 ? "boolean" === e2.kind || "string" === e2.kind || "number" === e2.kind || "null" === e2.kind || "value" === e2.kind : "string" === e2.kind || "number" === e2.kind || "value" === e2.kind; } - function er(t2, e2, r2, n2) { + function mr(t2, e2, r2, n2) { return 0 === n2.compare(e2, r2); } - function rr(t2, e2, r2) { - const n2 = "==" !== t2 && "!=" !== t2; - return class i2 { - constructor(t3, e3, r3) { - this.type = dt, this.lhs = t3, this.rhs = e3, this.collator = r3, this.hasUntypedArgument = "value" === t3.type.kind || "value" === e3.type.kind; + function vr(t2, e2, r2) { + var n2 = "==" !== t2 && "!=" !== t2; + return function() { + function i2(t3, e3, r3) { + this.type = Ut, this.lhs = t3, this.rhs = e3, this.collator = r3, this.hasUntypedArgument = "value" === t3.type.kind || "value" === e3.type.kind; } - static parse(t3, e3) { + return i2.parse = function(t3, e3) { if (3 !== t3.length && 4 !== t3.length) return e3.error("Expected two or three arguments."); - const r3 = t3[0]; - let a2 = e3.parse(t3[1], 1, gt); + var r3 = t3[0], a2 = e3.parse(t3[1], 1, Nt); if (!a2) return null; - if (!tr(r3, a2.type)) - return e3.concat(1).error(`"${r3}" comparisons are not supported for type '${At(a2.type)}'.`); - let s2 = e3.parse(t3[2], 2, gt); - if (!s2) + if (!dr(r3, a2.type)) + return e3.concat(1).error('"' + r3 + `" comparisons are not supported for type '` + Jt(a2.type) + "'."); + var o2 = e3.parse(t3[2], 2, Nt); + if (!o2) return null; - if (!tr(r3, s2.type)) - return e3.concat(2).error(`"${r3}" comparisons are not supported for type '${At(s2.type)}'.`); - if (a2.type.kind !== s2.type.kind && "value" !== a2.type.kind && "value" !== s2.type.kind) - return e3.error(`Cannot compare types '${At(a2.type)}' and '${At(s2.type)}'.`); - n2 && ("value" === a2.type.kind && "value" !== s2.type.kind ? a2 = new Gt(s2.type, [a2]) : "value" !== a2.type.kind && "value" === s2.type.kind && (s2 = new Gt(a2.type, [s2]))); - let o2 = null; + if (!dr(r3, o2.type)) + return e3.concat(2).error('"' + r3 + `" comparisons are not supported for type '` + Jt(o2.type) + "'."); + if (a2.type.kind !== o2.type.kind && "value" !== a2.type.kind && "value" !== o2.type.kind) + return e3.error("Cannot compare types '" + Jt(a2.type) + "' and '" + Jt(o2.type) + "'."); + n2 && ("value" === a2.type.kind && "value" !== o2.type.kind ? a2 = new he(o2.type, [a2]) : "value" !== a2.type.kind && "value" === o2.type.kind && (o2 = new he(a2.type, [o2]))); + var s2 = null; if (4 === t3.length) { - if ("string" !== a2.type.kind && "string" !== s2.type.kind && "value" !== a2.type.kind && "value" !== s2.type.kind) + if ("string" !== a2.type.kind && "string" !== o2.type.kind && "value" !== a2.type.kind && "value" !== o2.type.kind) return e3.error("Cannot use collator to compare non-string types."); - if (o2 = e3.parse(t3[3], 3, xt), !o2) + if (!(s2 = e3.parse(t3[3], 3, Kt))) return null; } - return new i2(a2, s2, o2); - } - evaluate(i3) { - const a2 = this.lhs.evaluate(i3), s2 = this.rhs.evaluate(i3); + return new i2(a2, o2, s2); + }, i2.prototype.evaluate = function(i3) { + var a2 = this.lhs.evaluate(i3), o2 = this.rhs.evaluate(i3); if (n2 && this.hasUntypedArgument) { - const e3 = qt(a2), r3 = qt(s2); - if (e3.kind !== r3.kind || "string" !== e3.kind && "number" !== e3.kind) - throw new Zt(`Expected arguments for "${t2}" to be (string, string) or (number, number), but found (${e3.kind}, ${r3.kind}) instead.`); + var s2 = se(a2), u2 = se(o2); + if (s2.kind !== u2.kind || "string" !== s2.kind && "number" !== s2.kind) + throw new pe('Expected arguments for "' + t2 + '" to be (string, string) or (number, number), but found (' + s2.kind + ", " + u2.kind + ") instead."); } if (this.collator && !n2 && this.hasUntypedArgument) { - const t3 = qt(a2), r3 = qt(s2); - if ("string" !== t3.kind || "string" !== r3.kind) - return e2(i3, a2, s2); + var l2 = se(a2), p3 = se(o2); + if ("string" !== l2.kind || "string" !== p3.kind) + return e2(i3, a2, o2); } - return this.collator ? r2(i3, a2, s2, this.collator.evaluate(i3)) : e2(i3, a2, s2); - } - eachChild(t3) { + return this.collator ? r2(i3, a2, o2, this.collator.evaluate(i3)) : e2(i3, a2, o2); + }, i2.prototype.eachChild = function(t3) { t3(this.lhs), t3(this.rhs), this.collator && t3(this.collator); - } - outputDefined() { + }, i2.prototype.outputDefined = function() { return true; - } - }; - } - const nr = rr("==", function(t2, e2, r2) { + }, i2.prototype.serialize = function() { + var e3 = [t2]; + return this.eachChild(function(t3) { + e3.push(t3.serialize()); + }), e3; + }, i2; + }(); + } + yr.parse = function(t2, e2) { + if (t2.length <= 2 || t2.length >= 5) + return e2.error("Expected 3 or 4 arguments, but found " + (t2.length - 1) + " instead."); + var r2 = e2.parse(t2[1], 1, Nt), n2 = e2.parse(t2[2], 2, Ot); + if (!r2 || !n2) + return null; + if (!$t(r2.type, [Xt(Nt), Rt, Nt])) + return e2.error("Expected first argument to be of type array or string, but found " + Jt(r2.type) + " instead"); + if (4 === t2.length) { + var i2 = e2.parse(t2[3], 3, Ot); + return i2 ? new yr(r2.type, r2, n2, i2) : null; + } + return new yr(r2.type, r2, n2); + }, yr.prototype.evaluate = function(t2) { + var e2 = this.input.evaluate(t2), r2 = this.beginIndex.evaluate(t2); + if (!Wt(e2, ["string", "array"])) + throw new pe("Expected first argument to be of type array or string, but found " + Jt(se(e2)) + " instead."); + if (this.endIndex) { + var n2 = this.endIndex.evaluate(t2); + return e2.slice(r2, n2); + } + return e2.slice(r2); + }, yr.prototype.eachChild = function(t2) { + t2(this.input), t2(this.beginIndex), this.endIndex && t2(this.endIndex); + }, yr.prototype.outputDefined = function() { + return false; + }, yr.prototype.serialize = function() { + if (null != this.endIndex && void 0 !== this.endIndex) { + var t2 = this.endIndex.serialize(); + return ["slice", this.input.serialize(), this.beginIndex.serialize(), t2]; + } + return ["slice", this.input.serialize(), this.beginIndex.serialize()]; + }; + var gr = vr("==", function(t2, e2, r2) { return e2 === r2; - }, er), ir = rr("!=", function(t2, e2, r2) { + }, mr), xr = vr("!=", function(t2, e2, r2) { return e2 !== r2; }, function(t2, e2, r2, n2) { - return !er(0, e2, r2, n2); - }), ar = rr("<", function(t2, e2, r2) { + return !mr(0, e2, r2, n2); + }), br = vr("<", function(t2, e2, r2) { return e2 < r2; }, function(t2, e2, r2, n2) { return n2.compare(e2, r2) < 0; - }), sr = rr(">", function(t2, e2, r2) { + }), wr = vr(">", function(t2, e2, r2) { return e2 > r2; }, function(t2, e2, r2, n2) { return n2.compare(e2, r2) > 0; - }), or = rr("<=", function(t2, e2, r2) { + }), _r = vr("<=", function(t2, e2, r2) { return e2 <= r2; }, function(t2, e2, r2, n2) { return n2.compare(e2, r2) <= 0; - }), lr = rr(">=", function(t2, e2, r2) { + }), Ar = vr(">=", function(t2, e2, r2) { return e2 >= r2; }, function(t2, e2, r2, n2) { return n2.compare(e2, r2) >= 0; - }); - class ur { - constructor(t2, e2, r2, n2, i2) { - this.type = ft, this.number = t2, this.locale = e2, this.currency = r2, this.minFractionDigits = n2, this.maxFractionDigits = i2; - } - static parse(t2, e2) { - if (3 !== t2.length) - return e2.error("Expected two arguments."); - const r2 = e2.parse(t2[1], 1, pt); - if (!r2) - return null; - const n2 = t2[2]; - if ("object" != typeof n2 || Array.isArray(n2)) - return e2.error("NumberFormat options argument must be an object."); - let i2 = null; - if (n2.locale && (i2 = e2.parse(n2.locale, 1, ft), !i2)) - return null; - let a2 = null; - if (n2.currency && (a2 = e2.parse(n2.currency, 1, ft), !a2)) - return null; - let s2 = null; - if (n2["min-fraction-digits"] && (s2 = e2.parse(n2["min-fraction-digits"], 1, pt), !s2)) - return null; - let o2 = null; - return n2["max-fraction-digits"] && (o2 = e2.parse(n2["max-fraction-digits"], 1, pt), !o2) ? null : new ur(r2, i2, a2, s2, o2); - } - evaluate(t2) { - return new Intl.NumberFormat(this.locale ? this.locale.evaluate(t2) : [], { style: this.currency ? "currency" : "decimal", currency: this.currency ? this.currency.evaluate(t2) : void 0, minimumFractionDigits: this.minFractionDigits ? this.minFractionDigits.evaluate(t2) : void 0, maximumFractionDigits: this.maxFractionDigits ? this.maxFractionDigits.evaluate(t2) : void 0 }).format(this.number.evaluate(t2)); - } - eachChild(t2) { - t2(this.number), this.locale && t2(this.locale), this.currency && t2(this.currency), this.minFractionDigits && t2(this.minFractionDigits), this.maxFractionDigits && t2(this.maxFractionDigits); - } - outputDefined() { - return false; - } - } - class cr { - constructor(t2) { - this.type = vt, this.sections = t2; - } - static parse(t2, e2) { - if (t2.length < 2) - return e2.error("Expected at least one argument."); - const r2 = t2[1]; - if (!Array.isArray(r2) && "object" == typeof r2) - return e2.error("First argument must be an image or text section."); - const n2 = []; - let i2 = false; - for (let r3 = 1; r3 <= t2.length - 1; ++r3) { - const a2 = t2[r3]; - if (i2 && "object" == typeof a2 && !Array.isArray(a2)) { - i2 = false; - let t3 = null; - if (a2["font-scale"] && (t3 = e2.parse(a2["font-scale"], 1, pt), !t3)) - return null; - let r4 = null; - if (a2["text-font"] && (r4 = e2.parse(a2["text-font"], 1, _t(ft)), !r4)) - return null; - let s2 = null; - if (a2["text-color"] && (s2 = e2.parse(a2["text-color"], 1, yt), !s2)) - return null; - const o2 = n2[n2.length - 1]; - o2.scale = t3, o2.font = r4, o2.textColor = s2; - } else { - const a3 = e2.parse(t2[r3], 1, gt); - if (!a3) - return null; - const s2 = a3.type.kind; - if ("string" !== s2 && "value" !== s2 && "null" !== s2 && "resolvedImage" !== s2) - return e2.error("Formatted text type must be 'string', 'value', 'image' or 'null'."); - i2 = true, n2.push({ content: a3, scale: null, font: null, textColor: null }); - } - } - return new cr(n2); - } - evaluate(t2) { - return new Dt(this.sections.map((e2) => { - const r2 = e2.content.evaluate(t2); - return qt(r2) === wt ? new Lt("", r2, null, null, null) : new Lt(jt(r2), null, e2.scale ? e2.scale.evaluate(t2) : null, e2.font ? e2.font.evaluate(t2).join(",") : null, e2.textColor ? e2.textColor.evaluate(t2) : null); - })); - } - eachChild(t2) { - for (const e2 of this.sections) - t2(e2.content), e2.scale && t2(e2.scale), e2.font && t2(e2.font), e2.textColor && t2(e2.textColor); - } - outputDefined() { - return false; - } - } - class hr { - constructor(t2) { - this.type = wt, this.input = t2; - } - static parse(t2, e2) { - if (2 !== t2.length) - return e2.error("Expected two arguments."); - const r2 = e2.parse(t2[1], 1, ft); - return r2 ? new hr(r2) : e2.error("No image name provided."); - } - evaluate(t2) { - const e2 = this.input.evaluate(t2), r2 = Rt.fromString(e2); - return r2 && t2.availableImages && (r2.available = t2.availableImages.indexOf(e2) > -1), r2; - } - eachChild(t2) { - t2(this.input); - } - outputDefined() { - return false; - } - } - class pr { - constructor(t2) { - this.type = pt, this.input = t2; - } - static parse(t2, e2) { - if (2 !== t2.length) - return e2.error(`Expected 1 argument, but found ${t2.length - 1} instead.`); - const r2 = e2.parse(t2[1], 1); - return r2 ? "array" !== r2.type.kind && "string" !== r2.type.kind && "value" !== r2.type.kind ? e2.error(`Expected argument of type string or array, but found ${At(r2.type)} instead.`) : new pr(r2) : null; - } - evaluate(t2) { - const e2 = this.input.evaluate(t2); - if ("string" == typeof e2) - return e2.length; - if (Array.isArray(e2)) - return e2.length; - throw new Zt(`Expected value to be of type string or array, but found ${At(qt(e2))} instead.`); - } - eachChild(t2) { - t2(this.input); - } - outputDefined() { - return false; - } - } - const fr = { "==": nr, "!=": ir, ">": sr, "<": ar, ">=": lr, "<=": or, array: Gt, at: Je, boolean: Gt, case: We, coalesce: Ke, collator: Qt, format: cr, image: hr, in: Xe, "index-of": Ye, interpolate: Ne, "interpolate-hcl": Ne, "interpolate-lab": Ne, length: pr, let: Ge, literal: Nt, match: He, number: Gt, "number-format": ur, object: Gt, slice: Qe, step: ke, string: Gt, "to-boolean": Xt, "to-color": Xt, "to-number": Xt, "to-string": Xt, var: be, within: me }; - function dr(t2, [e2, r2, n2, i2]) { - e2 = e2.evaluate(t2), r2 = r2.evaluate(t2), n2 = n2.evaluate(t2); - const a2 = i2 ? i2.evaluate(t2) : 1, s2 = Ot(e2, r2, n2, a2); + }), Sr = function(t2, e2, r2, n2, i2) { + this.type = Rt, this.number = t2, this.locale = e2, this.currency = r2, this.minFractionDigits = n2, this.maxFractionDigits = i2; + }; + Sr.parse = function(t2, e2) { + if (3 !== t2.length) + return e2.error("Expected two arguments."); + var r2 = e2.parse(t2[1], 1, Ot); + if (!r2) + return null; + var n2 = t2[2]; + if ("object" != typeof n2 || Array.isArray(n2)) + return e2.error("NumberFormat options argument must be an object."); + var i2 = null; + if (n2.locale && !(i2 = e2.parse(n2.locale, 1, Rt))) + return null; + var a2 = null; + if (n2.currency && !(a2 = e2.parse(n2.currency, 1, Rt))) + return null; + var o2 = null; + if (n2["min-fraction-digits"] && !(o2 = e2.parse(n2["min-fraction-digits"], 1, Ot))) + return null; + var s2 = null; + return n2["max-fraction-digits"] && !(s2 = e2.parse(n2["max-fraction-digits"], 1, Ot)) ? null : new Sr(r2, i2, a2, o2, s2); + }, Sr.prototype.evaluate = function(t2) { + return new Intl.NumberFormat(this.locale ? this.locale.evaluate(t2) : [], { style: this.currency ? "currency" : "decimal", currency: this.currency ? this.currency.evaluate(t2) : void 0, minimumFractionDigits: this.minFractionDigits ? this.minFractionDigits.evaluate(t2) : void 0, maximumFractionDigits: this.maxFractionDigits ? this.maxFractionDigits.evaluate(t2) : void 0 }).format(this.number.evaluate(t2)); + }, Sr.prototype.eachChild = function(t2) { + t2(this.number), this.locale && t2(this.locale), this.currency && t2(this.currency), this.minFractionDigits && t2(this.minFractionDigits), this.maxFractionDigits && t2(this.maxFractionDigits); + }, Sr.prototype.outputDefined = function() { + return false; + }, Sr.prototype.serialize = function() { + var t2 = {}; + return this.locale && (t2.locale = this.locale.serialize()), this.currency && (t2.currency = this.currency.serialize()), this.minFractionDigits && (t2["min-fraction-digits"] = this.minFractionDigits.serialize()), this.maxFractionDigits && (t2["max-fraction-digits"] = this.maxFractionDigits.serialize()), ["number-format", this.number.serialize(), t2]; + }; + var kr = function(t2) { + this.type = Ot, this.input = t2; + }; + kr.parse = function(t2, e2) { + if (2 !== t2.length) + return e2.error("Expected 1 argument, but found " + (t2.length - 1) + " instead."); + var r2 = e2.parse(t2[1], 1); + return r2 ? "array" !== r2.type.kind && "string" !== r2.type.kind && "value" !== r2.type.kind ? e2.error("Expected argument of type string or array, but found " + Jt(r2.type) + " instead.") : new kr(r2) : null; + }, kr.prototype.evaluate = function(t2) { + var e2 = this.input.evaluate(t2); + if ("string" == typeof e2) + return e2.length; + if (Array.isArray(e2)) + return e2.length; + throw new pe("Expected value to be of type string or array, but found " + Jt(se(e2)) + " instead."); + }, kr.prototype.eachChild = function(t2) { + t2(this.input); + }, kr.prototype.outputDefined = function() { + return false; + }, kr.prototype.serialize = function() { + var t2 = ["length"]; + return this.eachChild(function(e2) { + t2.push(e2.serialize()); + }), t2; + }; + var Ir = { "==": gr, "!=": xr, ">": wr, "<": br, ">=": Ar, "<=": _r, array: he, at: lr, boolean: he, case: fr, coalesce: sr, collator: be, format: fe, image: ye, in: pr, "index-of": cr, interpolate: ar, "interpolate-hcl": ar, "interpolate-lab": ar, length: kr, let: ur, literal: le, match: hr, number: he, "number-format": Sr, object: he, slice: yr, step: Ne, string: he, "to-boolean": me, "to-color": me, "to-number": me, "to-string": me, var: Ue, within: De }; + function zr(t2, e2) { + var r2 = e2[0], n2 = e2[1], i2 = e2[2], a2 = e2[3]; + r2 = r2.evaluate(t2), n2 = n2.evaluate(t2), i2 = i2.evaluate(t2); + var o2 = a2 ? a2.evaluate(t2) : 1, s2 = ae(r2, n2, i2, o2); if (s2) - throw new Zt(s2); - return new Ft(e2 / 255 * a2, r2 / 255 * a2, n2 / 255 * a2, a2); + throw new pe(s2); + return new te(r2 / 255 * o2, n2 / 255 * o2, i2 / 255 * o2, o2); } - function yr(t2, e2) { + function Cr(t2, e2) { return t2 in e2; } - function mr(t2, e2) { - const r2 = e2[t2]; + function Er(t2, e2) { + var r2 = e2[t2]; return void 0 === r2 ? null : r2; } - function gr(t2) { + function Pr(t2) { return { type: t2 }; } - function xr(t2) { + function Mr(t2) { return { result: "success", value: t2 }; } - function vr(t2) { + function Br(t2) { return { result: "error", value: t2 }; } - function br(t2) { + function Tr(t2) { return "data-driven" === t2["property-type"] || "cross-faded-data-driven" === t2["property-type"]; } - function wr(t2) { + function Vr(t2) { return !!t2.expression && t2.expression.parameters.indexOf("zoom") > -1; } - function _r(t2) { + function Fr(t2) { return !!t2.expression && t2.expression.interpolated; } - function Ar(t2) { + function Dr(t2) { return t2 instanceof Number ? "number" : t2 instanceof String ? "string" : t2 instanceof Boolean ? "boolean" : Array.isArray(t2) ? "array" : null === t2 ? "null" : typeof t2; } - function kr(t2) { + function Lr(t2) { return "object" == typeof t2 && null !== t2 && !Array.isArray(t2); } - function Sr(t2) { + function Or(t2) { return t2; } - function Ir(t2, e2) { - const r2 = "color" === e2.type, n2 = t2.stops && "object" == typeof t2.stops[0][0], i2 = n2 || !(n2 || void 0 !== t2.property), a2 = t2.type || (_r(e2) ? "exponential" : "interval"); - if (r2 || "padding" === e2.type) { - const n3 = r2 ? Ft.parse : $t.parse; - (t2 = st({}, t2)).stops && (t2.stops = t2.stops.map((t3) => [t3[0], n3(t3[1])])), t2.default = n3(t2.default ? t2.default : e2.default); - } - if (t2.colorSpace && "rgb" !== t2.colorSpace && !je[t2.colorSpace]) - throw new Error(`Unknown color space: ${t2.colorSpace}`); - let s2, o2, l2; - if ("exponential" === a2) - s2 = Cr; - else if ("interval" === a2) - s2 = Br; - else if ("categorical" === a2) { - s2 = zr, o2 = /* @__PURE__ */ Object.create(null); - for (const e3 of t2.stops) - o2[e3[0]] = e3[1]; - l2 = typeof t2.stops[0][0]; - } else { - if ("identity" !== a2) - throw new Error(`Unknown function type "${a2}"`); - s2 = Pr; - } - if (n2) { - const r3 = {}, n3 = []; - for (let e3 = 0; e3 < t2.stops.length; e3++) { - const i4 = t2.stops[e3], a4 = i4[0].zoom; - void 0 === r3[a4] && (r3[a4] = { zoom: a4, type: t2.type, property: t2.property, default: t2.default, stops: [] }, n3.push(a4)), r3[a4].stops.push([i4[0].value, i4[1]]); - } - const i3 = []; - for (const t3 of n3) - i3.push([r3[t3].zoom, Ir(r3[t3], e2)]); - const a3 = { name: "linear" }; - return { kind: "composite", interpolationType: a3, interpolationFactor: Ne.interpolationFactor.bind(void 0, a3), zoomStops: i3.map((t3) => t3[0]), evaluate: ({ zoom: r4 }, n4) => Cr({ stops: i3, base: t2.base }, e2, r4).evaluate(r4, n4) }; - } - if (i2) { - const r3 = "exponential" === a2 ? { name: "exponential", base: void 0 !== t2.base ? t2.base : 1 } : null; - return { kind: "camera", interpolationType: r3, interpolationFactor: Ne.interpolationFactor.bind(void 0, r3), zoomStops: t2.stops.map((t3) => t3[0]), evaluate: ({ zoom: r4 }) => s2(t2, e2, r4, o2, l2) }; - } - return { kind: "source", evaluate(r3, n3) { - const i3 = n3 && n3.properties ? n3.properties[t2.property] : void 0; - return void 0 === i3 ? Mr(t2.default, e2.default) : s2(t2, e2, i3, o2, l2); - } }; - } - function Mr(t2, e2, r2) { + function Rr(t2, e2, r2) { return void 0 !== t2 ? t2 : void 0 !== e2 ? e2 : void 0 !== r2 ? r2 : void 0; } - function zr(t2, e2, r2, n2, i2) { - return Mr(typeof r2 === i2 ? n2[r2] : void 0, t2.default, e2.default); + function Ur(t2, e2, r2, n2, i2) { + return Rr(typeof r2 === i2 ? n2[r2] : void 0, t2.default, e2.default); } - function Br(t2, e2, r2) { - if ("number" !== Ar(r2)) - return Mr(t2.default, e2.default); - const n2 = t2.stops.length; + function jr(t2, e2, r2) { + if ("number" !== Dr(r2)) + return Rr(t2.default, e2.default); + var n2 = t2.stops.length; if (1 === n2) return t2.stops[0][1]; if (r2 <= t2.stops[0][0]) return t2.stops[0][1]; if (r2 >= t2.stops[n2 - 1][0]) return t2.stops[n2 - 1][1]; - const i2 = Ae(t2.stops.map((t3) => t3[0]), r2); + var i2 = qe(t2.stops.map(function(t3) { + return t3[0]; + }), r2); return t2.stops[i2][1]; } - function Cr(t2, e2, r2) { - const n2 = void 0 !== t2.base ? t2.base : 1; - if ("number" !== Ar(r2)) - return Mr(t2.default, e2.default); - const i2 = t2.stops.length; + function qr(t2, e2, r2) { + var n2 = void 0 !== t2.base ? t2.base : 1; + if ("number" !== Dr(r2)) + return Rr(t2.default, e2.default); + var i2 = t2.stops.length; if (1 === i2) return t2.stops[0][1]; if (r2 <= t2.stops[0][0]) return t2.stops[0][1]; if (r2 >= t2.stops[i2 - 1][0]) return t2.stops[i2 - 1][1]; - const a2 = Ae(t2.stops.map((t3) => t3[0]), r2), s2 = function(t3, e3, r3, n3) { - const i3 = n3 - r3, a3 = t3 - r3; + var a2 = qe(t2.stops.map(function(t3) { + return t3[0]; + }), r2), o2 = function(t3, e3, r3, n3) { + var i3 = n3 - r3, a3 = t3 - r3; return 0 === i3 ? 0 : 1 === e3 ? a3 / i3 : (Math.pow(e3, a3) - 1) / (Math.pow(e3, i3) - 1); - }(r2, n2, t2.stops[a2][0], t2.stops[a2 + 1][0]), o2 = t2.stops[a2][1], l2 = t2.stops[a2 + 1][1]; - let u2 = Ie[e2.type] || Sr; + }(r2, n2, t2.stops[a2][0], t2.stops[a2 + 1][0]), s2 = t2.stops[a2][1], u2 = t2.stops[a2 + 1][1], l2 = Ge[e2.type] || Or; if (t2.colorSpace && "rgb" !== t2.colorSpace) { - const e3 = je[t2.colorSpace]; - u2 = (t3, r3) => e3.reverse(e3.interpolate(e3.forward(t3), e3.forward(r3), s2)); - } - return "function" == typeof o2.evaluate ? { evaluate(...t3) { - const e3 = o2.evaluate.apply(void 0, t3), r3 = l2.evaluate.apply(void 0, t3); - if (void 0 !== e3 && void 0 !== r3) - return u2(e3, r3, s2); - } } : u2(o2, l2, s2); - } - function Pr(t2, e2, r2) { - switch (e2.type) { - case "color": - r2 = Ft.parse(r2); - break; - case "formatted": - r2 = Dt.fromString(r2.toString()); - break; - case "resolvedImage": - r2 = Rt.fromString(r2.toString()); - break; - case "padding": - r2 = $t.parse(r2); - break; - default: - Ar(r2) === e2.type || "enum" === e2.type && e2.values[r2] || (r2 = void 0); + var p3 = ir[t2.colorSpace]; + l2 = function(t3, e3) { + return p3.reverse(p3.interpolate(p3.forward(t3), p3.forward(e3), o2)); + }; } - return Mr(r2, t2.default, e2.default); - } - Wt.register(fr, { error: [{ kind: "error" }, [ft], (t2, [e2]) => { - throw new Zt(e2.evaluate(t2)); - }], typeof: [ft, [gt], (t2, [e2]) => At(qt(e2.evaluate(t2)))], "to-rgba": [_t(pt, 4), [yt], (t2, [e2]) => e2.evaluate(t2).toArray()], rgb: [yt, [pt, pt, pt], dr], rgba: [yt, [pt, pt, pt, pt], dr], has: { type: dt, overloads: [[[ft], (t2, [e2]) => yr(e2.evaluate(t2), t2.properties())], [[ft, mt], (t2, [e2, r2]) => yr(e2.evaluate(t2), r2.evaluate(t2))]] }, get: { type: gt, overloads: [[[ft], (t2, [e2]) => mr(e2.evaluate(t2), t2.properties())], [[ft, mt], (t2, [e2, r2]) => mr(e2.evaluate(t2), r2.evaluate(t2))]] }, "feature-state": [gt, [ft], (t2, [e2]) => mr(e2.evaluate(t2), t2.featureState || {})], properties: [mt, [], (t2) => t2.properties()], "geometry-type": [ft, [], (t2) => t2.geometryType()], id: [gt, [], (t2) => t2.id()], zoom: [pt, [], (t2) => t2.globals.zoom], "heatmap-density": [pt, [], (t2) => t2.globals.heatmapDensity || 0], "line-progress": [pt, [], (t2) => t2.globals.lineProgress || 0], accumulated: [gt, [], (t2) => void 0 === t2.globals.accumulated ? null : t2.globals.accumulated], "+": [pt, gr(pt), (t2, e2) => { - let r2 = 0; - for (const n2 of e2) - r2 += n2.evaluate(t2); + return "function" == typeof s2.evaluate ? { evaluate: function() { + for (var t3 = [], e3 = arguments.length; e3--; ) + t3[e3] = arguments[e3]; + var r3 = s2.evaluate.apply(void 0, t3), n3 = u2.evaluate.apply(void 0, t3); + if (void 0 !== r3 && void 0 !== n3) + return l2(r3, n3, o2); + } } : l2(s2, u2, o2); + } + function Nr(t2, e2, r2) { + return "color" === e2.type ? r2 = te.parse(r2) : "formatted" === e2.type ? r2 = ne.fromString(r2.toString()) : "resolvedImage" === e2.type ? r2 = ie.fromString(r2.toString()) : Dr(r2) === e2.type || "enum" === e2.type && e2.values[r2] || (r2 = void 0), Rr(r2, t2.default, e2.default); + } + xe.register(Ir, { error: [{ kind: "error" }, [Rt], function(t2, e2) { + throw new pe(e2[0].evaluate(t2)); + }], typeof: [Rt, [Nt], function(t2, e2) { + return Jt(se(e2[0].evaluate(t2))); + }], "to-rgba": [Xt(Ot, 4), [jt], function(t2, e2) { + return e2[0].evaluate(t2).toArray(); + }], rgb: [jt, [Ot, Ot, Ot], zr], rgba: [jt, [Ot, Ot, Ot, Ot], zr], has: { type: Ut, overloads: [[[Rt], function(t2, e2) { + return Cr(e2[0].evaluate(t2), t2.properties()); + }], [[Rt, qt], function(t2, e2) { + var r2 = e2[1]; + return Cr(e2[0].evaluate(t2), r2.evaluate(t2)); + }]] }, get: { type: Nt, overloads: [[[Rt], function(t2, e2) { + return Er(e2[0].evaluate(t2), t2.properties()); + }], [[Rt, qt], function(t2, e2) { + var r2 = e2[1]; + return Er(e2[0].evaluate(t2), r2.evaluate(t2)); + }]] }, "feature-state": [Nt, [Rt], function(t2, e2) { + return Er(e2[0].evaluate(t2), t2.featureState || {}); + }], properties: [qt, [], function(t2) { + return t2.properties(); + }], "geometry-type": [Rt, [], function(t2) { + return t2.geometryType(); + }], id: [Nt, [], function(t2) { + return t2.id(); + }], zoom: [Ot, [], function(t2) { + return t2.globals.zoom; + }], "heatmap-density": [Ot, [], function(t2) { + return t2.globals.heatmapDensity || 0; + }], "line-progress": [Ot, [], function(t2) { + return t2.globals.lineProgress || 0; + }], accumulated: [Nt, [], function(t2) { + return void 0 === t2.globals.accumulated ? null : t2.globals.accumulated; + }], "+": [Ot, Pr(Ot), function(t2, e2) { + for (var r2 = 0, n2 = 0, i2 = e2; n2 < i2.length; n2 += 1) + r2 += i2[n2].evaluate(t2); return r2; - }], "*": [pt, gr(pt), (t2, e2) => { - let r2 = 1; - for (const n2 of e2) - r2 *= n2.evaluate(t2); + }], "*": [Ot, Pr(Ot), function(t2, e2) { + for (var r2 = 1, n2 = 0, i2 = e2; n2 < i2.length; n2 += 1) + r2 *= i2[n2].evaluate(t2); return r2; - }], "-": { type: pt, overloads: [[[pt, pt], (t2, [e2, r2]) => e2.evaluate(t2) - r2.evaluate(t2)], [[pt], (t2, [e2]) => -e2.evaluate(t2)]] }, "/": [pt, [pt, pt], (t2, [e2, r2]) => e2.evaluate(t2) / r2.evaluate(t2)], "%": [pt, [pt, pt], (t2, [e2, r2]) => e2.evaluate(t2) % r2.evaluate(t2)], ln2: [pt, [], () => Math.LN2], pi: [pt, [], () => Math.PI], e: [pt, [], () => Math.E], "^": [pt, [pt, pt], (t2, [e2, r2]) => Math.pow(e2.evaluate(t2), r2.evaluate(t2))], sqrt: [pt, [pt], (t2, [e2]) => Math.sqrt(e2.evaluate(t2))], log10: [pt, [pt], (t2, [e2]) => Math.log(e2.evaluate(t2)) / Math.LN10], ln: [pt, [pt], (t2, [e2]) => Math.log(e2.evaluate(t2))], log2: [pt, [pt], (t2, [e2]) => Math.log(e2.evaluate(t2)) / Math.LN2], sin: [pt, [pt], (t2, [e2]) => Math.sin(e2.evaluate(t2))], cos: [pt, [pt], (t2, [e2]) => Math.cos(e2.evaluate(t2))], tan: [pt, [pt], (t2, [e2]) => Math.tan(e2.evaluate(t2))], asin: [pt, [pt], (t2, [e2]) => Math.asin(e2.evaluate(t2))], acos: [pt, [pt], (t2, [e2]) => Math.acos(e2.evaluate(t2))], atan: [pt, [pt], (t2, [e2]) => Math.atan(e2.evaluate(t2))], min: [pt, gr(pt), (t2, e2) => Math.min(...e2.map((e3) => e3.evaluate(t2)))], max: [pt, gr(pt), (t2, e2) => Math.max(...e2.map((e3) => e3.evaluate(t2)))], abs: [pt, [pt], (t2, [e2]) => Math.abs(e2.evaluate(t2))], round: [pt, [pt], (t2, [e2]) => { - const r2 = e2.evaluate(t2); + }], "-": { type: Ot, overloads: [[[Ot, Ot], function(t2, e2) { + var r2 = e2[1]; + return e2[0].evaluate(t2) - r2.evaluate(t2); + }], [[Ot], function(t2, e2) { + return -e2[0].evaluate(t2); + }]] }, "/": [Ot, [Ot, Ot], function(t2, e2) { + var r2 = e2[1]; + return e2[0].evaluate(t2) / r2.evaluate(t2); + }], "%": [Ot, [Ot, Ot], function(t2, e2) { + var r2 = e2[1]; + return e2[0].evaluate(t2) % r2.evaluate(t2); + }], ln2: [Ot, [], function() { + return Math.LN2; + }], pi: [Ot, [], function() { + return Math.PI; + }], e: [Ot, [], function() { + return Math.E; + }], "^": [Ot, [Ot, Ot], function(t2, e2) { + var r2 = e2[1]; + return Math.pow(e2[0].evaluate(t2), r2.evaluate(t2)); + }], sqrt: [Ot, [Ot], function(t2, e2) { + return Math.sqrt(e2[0].evaluate(t2)); + }], log10: [Ot, [Ot], function(t2, e2) { + return Math.log(e2[0].evaluate(t2)) / Math.LN10; + }], ln: [Ot, [Ot], function(t2, e2) { + return Math.log(e2[0].evaluate(t2)); + }], log2: [Ot, [Ot], function(t2, e2) { + return Math.log(e2[0].evaluate(t2)) / Math.LN2; + }], sin: [Ot, [Ot], function(t2, e2) { + return Math.sin(e2[0].evaluate(t2)); + }], cos: [Ot, [Ot], function(t2, e2) { + return Math.cos(e2[0].evaluate(t2)); + }], tan: [Ot, [Ot], function(t2, e2) { + return Math.tan(e2[0].evaluate(t2)); + }], asin: [Ot, [Ot], function(t2, e2) { + return Math.asin(e2[0].evaluate(t2)); + }], acos: [Ot, [Ot], function(t2, e2) { + return Math.acos(e2[0].evaluate(t2)); + }], atan: [Ot, [Ot], function(t2, e2) { + return Math.atan(e2[0].evaluate(t2)); + }], min: [Ot, Pr(Ot), function(t2, e2) { + return Math.min.apply(Math, e2.map(function(e3) { + return e3.evaluate(t2); + })); + }], max: [Ot, Pr(Ot), function(t2, e2) { + return Math.max.apply(Math, e2.map(function(e3) { + return e3.evaluate(t2); + })); + }], abs: [Ot, [Ot], function(t2, e2) { + return Math.abs(e2[0].evaluate(t2)); + }], round: [Ot, [Ot], function(t2, e2) { + var r2 = e2[0].evaluate(t2); return r2 < 0 ? -Math.round(-r2) : Math.round(r2); - }], floor: [pt, [pt], (t2, [e2]) => Math.floor(e2.evaluate(t2))], ceil: [pt, [pt], (t2, [e2]) => Math.ceil(e2.evaluate(t2))], "filter-==": [dt, [ft, gt], (t2, [e2, r2]) => t2.properties()[e2.value] === r2.value], "filter-id-==": [dt, [gt], (t2, [e2]) => t2.id() === e2.value], "filter-type-==": [dt, [ft], (t2, [e2]) => t2.geometryType() === e2.value], "filter-<": [dt, [ft, gt], (t2, [e2, r2]) => { - const n2 = t2.properties()[e2.value], i2 = r2.value; + }], floor: [Ot, [Ot], function(t2, e2) { + return Math.floor(e2[0].evaluate(t2)); + }], ceil: [Ot, [Ot], function(t2, e2) { + return Math.ceil(e2[0].evaluate(t2)); + }], "filter-==": [Ut, [Rt, Nt], function(t2, e2) { + var r2 = e2[0], n2 = e2[1]; + return t2.properties()[r2.value] === n2.value; + }], "filter-id-==": [Ut, [Nt], function(t2, e2) { + var r2 = e2[0]; + return t2.id() === r2.value; + }], "filter-type-==": [Ut, [Rt], function(t2, e2) { + var r2 = e2[0]; + return t2.geometryType() === r2.value; + }], "filter-<": [Ut, [Rt, Nt], function(t2, e2) { + var r2 = e2[0], n2 = e2[1], i2 = t2.properties()[r2.value], a2 = n2.value; + return typeof i2 == typeof a2 && i2 < a2; + }], "filter-id-<": [Ut, [Nt], function(t2, e2) { + var r2 = e2[0], n2 = t2.id(), i2 = r2.value; return typeof n2 == typeof i2 && n2 < i2; - }], "filter-id-<": [dt, [gt], (t2, [e2]) => { - const r2 = t2.id(), n2 = e2.value; - return typeof r2 == typeof n2 && r2 < n2; - }], "filter->": [dt, [ft, gt], (t2, [e2, r2]) => { - const n2 = t2.properties()[e2.value], i2 = r2.value; + }], "filter->": [Ut, [Rt, Nt], function(t2, e2) { + var r2 = e2[0], n2 = e2[1], i2 = t2.properties()[r2.value], a2 = n2.value; + return typeof i2 == typeof a2 && i2 > a2; + }], "filter-id->": [Ut, [Nt], function(t2, e2) { + var r2 = e2[0], n2 = t2.id(), i2 = r2.value; return typeof n2 == typeof i2 && n2 > i2; - }], "filter-id->": [dt, [gt], (t2, [e2]) => { - const r2 = t2.id(), n2 = e2.value; - return typeof r2 == typeof n2 && r2 > n2; - }], "filter-<=": [dt, [ft, gt], (t2, [e2, r2]) => { - const n2 = t2.properties()[e2.value], i2 = r2.value; + }], "filter-<=": [Ut, [Rt, Nt], function(t2, e2) { + var r2 = e2[0], n2 = e2[1], i2 = t2.properties()[r2.value], a2 = n2.value; + return typeof i2 == typeof a2 && i2 <= a2; + }], "filter-id-<=": [Ut, [Nt], function(t2, e2) { + var r2 = e2[0], n2 = t2.id(), i2 = r2.value; return typeof n2 == typeof i2 && n2 <= i2; - }], "filter-id-<=": [dt, [gt], (t2, [e2]) => { - const r2 = t2.id(), n2 = e2.value; - return typeof r2 == typeof n2 && r2 <= n2; - }], "filter->=": [dt, [ft, gt], (t2, [e2, r2]) => { - const n2 = t2.properties()[e2.value], i2 = r2.value; + }], "filter->=": [Ut, [Rt, Nt], function(t2, e2) { + var r2 = e2[0], n2 = e2[1], i2 = t2.properties()[r2.value], a2 = n2.value; + return typeof i2 == typeof a2 && i2 >= a2; + }], "filter-id->=": [Ut, [Nt], function(t2, e2) { + var r2 = e2[0], n2 = t2.id(), i2 = r2.value; return typeof n2 == typeof i2 && n2 >= i2; - }], "filter-id->=": [dt, [gt], (t2, [e2]) => { - const r2 = t2.id(), n2 = e2.value; - return typeof r2 == typeof n2 && r2 >= n2; - }], "filter-has": [dt, [gt], (t2, [e2]) => e2.value in t2.properties()], "filter-has-id": [dt, [], (t2) => null !== t2.id() && void 0 !== t2.id()], "filter-type-in": [dt, [_t(ft)], (t2, [e2]) => e2.value.indexOf(t2.geometryType()) >= 0], "filter-id-in": [dt, [_t(gt)], (t2, [e2]) => e2.value.indexOf(t2.id()) >= 0], "filter-in-small": [dt, [ft, _t(gt)], (t2, [e2, r2]) => r2.value.indexOf(t2.properties()[e2.value]) >= 0], "filter-in-large": [dt, [ft, _t(gt)], (t2, [e2, r2]) => function(t3, e3, r3, n2) { - for (; r3 <= n2; ) { - const i2 = r3 + n2 >> 1; - if (e3[i2] === t3) - return true; - e3[i2] > t3 ? n2 = i2 - 1 : r3 = i2 + 1; - } - return false; - }(t2.properties()[e2.value], r2.value, 0, r2.value.length - 1)], all: { type: dt, overloads: [[[dt, dt], (t2, [e2, r2]) => e2.evaluate(t2) && r2.evaluate(t2)], [gr(dt), (t2, e2) => { - for (const r2 of e2) - if (!r2.evaluate(t2)) + }], "filter-has": [Ut, [Nt], function(t2, e2) { + return e2[0].value in t2.properties(); + }], "filter-has-id": [Ut, [], function(t2) { + return null !== t2.id() && void 0 !== t2.id(); + }], "filter-type-in": [Ut, [Xt(Rt)], function(t2, e2) { + return e2[0].value.indexOf(t2.geometryType()) >= 0; + }], "filter-id-in": [Ut, [Xt(Nt)], function(t2, e2) { + return e2[0].value.indexOf(t2.id()) >= 0; + }], "filter-in-small": [Ut, [Rt, Xt(Nt)], function(t2, e2) { + var r2 = e2[0]; + return e2[1].value.indexOf(t2.properties()[r2.value]) >= 0; + }], "filter-in-large": [Ut, [Rt, Xt(Nt)], function(t2, e2) { + var r2 = e2[0], n2 = e2[1]; + return function(t3, e3, r3, n3) { + for (; r3 <= n3; ) { + var i2 = r3 + n3 >> 1; + if (e3[i2] === t3) + return true; + e3[i2] > t3 ? n3 = i2 - 1 : r3 = i2 + 1; + } + return false; + }(t2.properties()[r2.value], n2.value, 0, n2.value.length - 1); + }], all: { type: Ut, overloads: [[[Ut, Ut], function(t2, e2) { + var r2 = e2[1]; + return e2[0].evaluate(t2) && r2.evaluate(t2); + }], [Pr(Ut), function(t2, e2) { + for (var r2 = 0, n2 = e2; r2 < n2.length; r2 += 1) + if (!n2[r2].evaluate(t2)) return false; return true; - }]] }, any: { type: dt, overloads: [[[dt, dt], (t2, [e2, r2]) => e2.evaluate(t2) || r2.evaluate(t2)], [gr(dt), (t2, e2) => { - for (const r2 of e2) - if (r2.evaluate(t2)) + }]] }, any: { type: Ut, overloads: [[[Ut, Ut], function(t2, e2) { + var r2 = e2[1]; + return e2[0].evaluate(t2) || r2.evaluate(t2); + }], [Pr(Ut), function(t2, e2) { + for (var r2 = 0, n2 = e2; r2 < n2.length; r2 += 1) + if (n2[r2].evaluate(t2)) return true; return false; - }]] }, "!": [dt, [dt], (t2, [e2]) => !e2.evaluate(t2)], "is-supported-script": [dt, [ft], (t2, [e2]) => { - const r2 = t2.globals && t2.globals.isSupportedScript; - return !r2 || r2(e2.evaluate(t2)); - }], upcase: [ft, [ft], (t2, [e2]) => e2.evaluate(t2).toUpperCase()], downcase: [ft, [ft], (t2, [e2]) => e2.evaluate(t2).toLowerCase()], concat: [ft, gr(gt), (t2, e2) => e2.map((e3) => jt(e3.evaluate(t2))).join("")], "resolved-locale": [ft, [xt], (t2, [e2]) => e2.evaluate(t2).resolvedLocale()] }); - class Vr { - constructor(t2, e2) { - this.expression = t2, this._warningHistory = {}, this._evaluator = new Ht(), this._defaultValue = e2 ? function(t3) { - return "color" === t3.type && kr(t3.default) ? new Ft(0, 0, 0, 0) : "color" === t3.type ? Ft.parse(t3.default) || null : "padding" === t3.type ? $t.parse(t3.default) || null : void 0 === t3.default ? null : t3.default; - }(e2) : null, this._enumValues = e2 && "enum" === e2.type ? e2.values : null; - } - evaluateWithoutErrorHandling(t2, e2, r2, n2, i2, a2) { - return this._evaluator.globals = t2, this._evaluator.feature = e2, this._evaluator.featureState = r2, this._evaluator.canonical = n2, this._evaluator.availableImages = i2 || null, this._evaluator.formattedSection = a2, this.expression.evaluate(this._evaluator); - } - evaluate(t2, e2, r2, n2, i2, a2) { - this._evaluator.globals = t2, this._evaluator.feature = e2 || null, this._evaluator.featureState = r2 || null, this._evaluator.canonical = n2, this._evaluator.availableImages = i2 || null, this._evaluator.formattedSection = a2 || null; - try { - const t3 = this.expression.evaluate(this._evaluator); - if (null == t3 || "number" == typeof t3 && t3 != t3) - return this._defaultValue; - if (this._enumValues && !(t3 in this._enumValues)) - throw new Zt(`Expected value to be one of ${Object.keys(this._enumValues).map((t4) => JSON.stringify(t4)).join(", ")}, but found ${JSON.stringify(t3)} instead.`); - return t3; - } catch (t3) { - return this._warningHistory[t3.message] || (this._warningHistory[t3.message] = true, "undefined" != typeof console && console.warn(t3.message)), this._defaultValue; - } - } - } - function Er(t2) { - return Array.isArray(t2) && t2.length > 0 && "string" == typeof t2[0] && t2[0] in fr; + }]] }, "!": [Ut, [Ut], function(t2, e2) { + return !e2[0].evaluate(t2); + }], "is-supported-script": [Ut, [Rt], function(t2, e2) { + var r2 = t2.globals && t2.globals.isSupportedScript; + return !r2 || r2(e2[0].evaluate(t2)); + }], upcase: [Rt, [Rt], function(t2, e2) { + return e2[0].evaluate(t2).toUpperCase(); + }], downcase: [Rt, [Rt], function(t2, e2) { + return e2[0].evaluate(t2).toLowerCase(); + }], concat: [Rt, Pr(Nt), function(t2, e2) { + return e2.map(function(e3) { + return ue(e3.evaluate(t2)); + }).join(""); + }], "resolved-locale": [Rt, [Kt], function(t2, e2) { + return e2[0].evaluate(t2).resolvedLocale(); + }] }); + var Kr = function(t2, e2) { + this.expression = t2, this._warningHistory = {}, this._evaluator = new ge(), this._defaultValue = e2 ? function(t3) { + return "color" === t3.type && Lr(t3.default) ? new te(0, 0, 0, 0) : "color" === t3.type ? te.parse(t3.default) || null : void 0 === t3.default ? null : t3.default; + }(e2) : null, this._enumValues = e2 && "enum" === e2.type ? e2.values : null; + }; + function Gr(t2) { + return Array.isArray(t2) && t2.length > 0 && "string" == typeof t2[0] && t2[0] in Ir; } - function Fr(t2, e2) { - const r2 = new we(fr, [], e2 ? function(t3) { - const e3 = { color: yt, string: ft, number: pt, enum: ft, boolean: dt, formatted: vt, padding: bt, resolvedImage: wt }; - return "array" === t3.type ? _t(e3[t3.value] || gt, t3.length) : e3[t3.type]; + function Zr(t2, e2) { + var r2 = new je(Ir, [], e2 ? function(t3) { + var e3 = { color: jt, string: Rt, number: Ot, enum: Rt, boolean: Ut, formatted: Gt, resolvedImage: Zt }; + return "array" === t3.type ? Xt(e3[t3.value] || Nt, t3.length) : e3[t3.type]; }(e2) : void 0), n2 = r2.parse(t2, void 0, void 0, void 0, e2 && "string" === e2.type ? { typeAnnotation: "coerce" } : void 0); - return n2 ? xr(new Vr(n2, e2)) : vr(r2.errors); - } - class Tr { - constructor(t2, e2) { - this.kind = t2, this._styleExpression = e2, this.isStateDependent = "constant" !== t2 && !xe(e2.expression); - } - evaluateWithoutErrorHandling(t2, e2, r2, n2, i2, a2) { - return this._styleExpression.evaluateWithoutErrorHandling(t2, e2, r2, n2, i2, a2); - } - evaluate(t2, e2, r2, n2, i2, a2) { - return this._styleExpression.evaluate(t2, e2, r2, n2, i2, a2); - } + return n2 ? Mr(new Kr(n2, e2)) : Br(r2.errors); } - class Lr { - constructor(t2, e2, r2, n2) { - this.kind = t2, this.zoomStops = r2, this._styleExpression = e2, this.isStateDependent = "camera" !== t2 && !xe(e2.expression), this.interpolationType = n2; - } - evaluateWithoutErrorHandling(t2, e2, r2, n2, i2, a2) { - return this._styleExpression.evaluateWithoutErrorHandling(t2, e2, r2, n2, i2, a2); - } - evaluate(t2, e2, r2, n2, i2, a2) { - return this._styleExpression.evaluate(t2, e2, r2, n2, i2, a2); - } - interpolationFactor(t2, e2, r2) { - return this.interpolationType ? Ne.interpolationFactor(this.interpolationType, t2, e2, r2) : 0; + Kr.prototype.evaluateWithoutErrorHandling = function(t2, e2, r2, n2, i2, a2) { + return this._evaluator.globals = t2, this._evaluator.feature = e2, this._evaluator.featureState = r2, this._evaluator.canonical = n2, this._evaluator.availableImages = i2 || null, this._evaluator.formattedSection = a2, this.expression.evaluate(this._evaluator); + }, Kr.prototype.evaluate = function(t2, e2, r2, n2, i2, a2) { + this._evaluator.globals = t2, this._evaluator.feature = e2 || null, this._evaluator.featureState = r2 || null, this._evaluator.canonical = n2, this._evaluator.availableImages = i2 || null, this._evaluator.formattedSection = a2 || null; + try { + var o2 = this.expression.evaluate(this._evaluator); + if (null == o2 || "number" == typeof o2 && o2 != o2) + return this._defaultValue; + if (this._enumValues && !(o2 in this._enumValues)) + throw new pe("Expected value to be one of " + Object.keys(this._enumValues).map(function(t3) { + return JSON.stringify(t3); + }).join(", ") + ", but found " + JSON.stringify(o2) + " instead."); + return o2; + } catch (t3) { + return this._warningHistory[t3.message] || (this._warningHistory[t3.message] = true, "undefined" != typeof console && console.warn(t3.message)), this._defaultValue; } - } - function Dr(t2, e2) { - const r2 = Fr(t2, e2); - if ("error" === r2.result) - return r2; - const n2 = r2.value.expression, i2 = ge(n2); - if (!i2 && !br(e2)) - return vr([new ut("", "data expressions not supported")]); - const a2 = ve(n2, ["zoom"]); - if (!a2 && !wr(e2)) - return vr([new ut("", "zoom expressions not supported")]); - const s2 = Rr(n2); - return s2 || a2 ? s2 instanceof ut ? vr([s2]) : s2 instanceof Ne && !_r(e2) ? vr([new ut("", '"interpolate" expressions cannot be used with this property')]) : xr(s2 ? new Lr(i2 ? "camera" : "composite", r2.value, s2.labels, s2 instanceof Ne ? s2.interpolation : void 0) : new Tr(i2 ? "constant" : "source", r2.value)) : vr([new ut("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]); - } - class $r { - constructor(t2, e2) { - this._parameters = t2, this._specification = e2, st(this, Ir(this._parameters, this._specification)); - } - static deserialize(t2) { - return new $r(t2._parameters, t2._specification); - } - static serialize(t2) { - return { _parameters: t2._parameters, _specification: t2._specification }; - } - } - function Rr(t2) { - let e2 = null; - if (t2 instanceof Ge) - e2 = Rr(t2.result); - else if (t2 instanceof Ke) { - for (const r2 of t2.args) - if (e2 = Rr(r2), e2) - break; - } else - (t2 instanceof ke || t2 instanceof Ne) && t2.input instanceof Wt && "zoom" === t2.input.name && (e2 = t2); - return e2 instanceof ut || t2.eachChild((t3) => { - const r2 = Rr(t3); - r2 instanceof ut ? e2 = r2 : !e2 && r2 ? e2 = new ut("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.') : e2 && r2 && e2 !== r2 && (e2 = new ut("", 'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.')); - }), e2; - } - function Or(t2) { - const e2 = t2.key, r2 = t2.value, n2 = t2.valueSpec || {}, i2 = t2.objectElementValidators || {}, a2 = t2.style, s2 = t2.styleSpec; - let o2 = []; - const l2 = Ar(r2); - if ("object" !== l2) - return [new it(e2, r2, `object expected, ${l2} found`)]; - for (const t3 in r2) { - const l3 = t3.split(".")[0], u2 = n2[l3] || n2["*"]; - let c3; - if (i2[l3]) - c3 = i2[l3]; - else if (n2[l3]) - c3 = yn; + }; + var Xr = function(t2, e2) { + this.kind = t2, this._styleExpression = e2, this.isStateDependent = "constant" !== t2 && !Oe(e2.expression); + }; + Xr.prototype.evaluateWithoutErrorHandling = function(t2, e2, r2, n2, i2, a2) { + return this._styleExpression.evaluateWithoutErrorHandling(t2, e2, r2, n2, i2, a2); + }, Xr.prototype.evaluate = function(t2, e2, r2, n2, i2, a2) { + return this._styleExpression.evaluate(t2, e2, r2, n2, i2, a2); + }; + var Jr = function(t2, e2, r2, n2) { + this.kind = t2, this.zoomStops = r2, this._styleExpression = e2, this.isStateDependent = "camera" !== t2 && !Oe(e2.expression), this.interpolationType = n2; + }; + function Hr(t2, e2) { + if ("error" === (t2 = Zr(t2, e2)).result) + return t2; + var r2 = t2.value.expression, n2 = Le(r2); + if (!n2 && !Tr(e2)) + return Br([new Ft("", "data expressions not supported")]); + var i2 = Re(r2, ["zoom"]); + if (!i2 && !Vr(e2)) + return Br([new Ft("", "zoom expressions not supported")]); + var a2 = function t3(e3) { + var r3 = null; + if (e3 instanceof ur) + r3 = t3(e3.result); + else if (e3 instanceof sr) + for (var n3 = 0, i3 = e3.args; n3 < i3.length && !(r3 = t3(i3[n3])); n3 += 1) + ; + else + (e3 instanceof Ne || e3 instanceof ar) && e3.input instanceof xe && "zoom" === e3.input.name && (r3 = e3); + return r3 instanceof Ft || e3.eachChild(function(e4) { + var n4 = t3(e4); + n4 instanceof Ft ? r3 = n4 : !r3 && n4 ? r3 = new Ft("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.') : r3 && n4 && r3 !== n4 && (r3 = new Ft("", 'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.')); + }), r3; + }(r2); + return a2 || i2 ? a2 instanceof Ft ? Br([a2]) : a2 instanceof ar && !Fr(e2) ? Br([new Ft("", '"interpolate" expressions cannot be used with this property')]) : Mr(a2 ? new Jr(n2 ? "camera" : "composite", t2.value, a2.labels, a2 instanceof ar ? a2.interpolation : void 0) : new Xr(n2 ? "constant" : "source", t2.value)) : Br([new Ft("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]); + } + Jr.prototype.evaluateWithoutErrorHandling = function(t2, e2, r2, n2, i2, a2) { + return this._styleExpression.evaluateWithoutErrorHandling(t2, e2, r2, n2, i2, a2); + }, Jr.prototype.evaluate = function(t2, e2, r2, n2, i2, a2) { + return this._styleExpression.evaluate(t2, e2, r2, n2, i2, a2); + }, Jr.prototype.interpolationFactor = function(t2, e2, r2) { + return this.interpolationType ? ar.interpolationFactor(this.interpolationType, t2, e2, r2) : 0; + }; + var Yr = function(t2, e2) { + this._parameters = t2, this._specification = e2, Bt(this, function t3(e3, r2) { + var n2, i2, a2, o2 = "color" === r2.type, s2 = e3.stops && "object" == typeof e3.stops[0][0], u2 = s2 || !(s2 || void 0 !== e3.property), l2 = e3.type || (Fr(r2) ? "exponential" : "interval"); + if (o2 && ((e3 = Bt({}, e3)).stops && (e3.stops = e3.stops.map(function(t4) { + return [t4[0], te.parse(t4[1])]; + })), e3.default = te.parse(e3.default ? e3.default : r2.default)), e3.colorSpace && "rgb" !== e3.colorSpace && !ir[e3.colorSpace]) + throw new Error("Unknown color space: " + e3.colorSpace); + if ("exponential" === l2) + n2 = qr; + else if ("interval" === l2) + n2 = jr; + else if ("categorical" === l2) { + n2 = Ur, i2 = /* @__PURE__ */ Object.create(null); + for (var p3 = 0, c3 = e3.stops; p3 < c3.length; p3 += 1) { + var h3 = c3[p3]; + i2[h3[0]] = h3[1]; + } + a2 = typeof e3.stops[0][0]; + } else { + if ("identity" !== l2) + throw new Error('Unknown function type "' + l2 + '"'); + n2 = Nr; + } + if (s2) { + for (var f2 = {}, y3 = [], d2 = 0; d2 < e3.stops.length; d2++) { + var m2 = e3.stops[d2], v3 = m2[0].zoom; + void 0 === f2[v3] && (f2[v3] = { zoom: v3, type: e3.type, property: e3.property, default: e3.default, stops: [] }, y3.push(v3)), f2[v3].stops.push([m2[0].value, m2[1]]); + } + for (var g2 = [], x2 = 0, b2 = y3; x2 < b2.length; x2 += 1) { + var w2 = b2[x2]; + g2.push([f2[w2].zoom, t3(f2[w2], r2)]); + } + var _24 = { name: "linear" }; + return { kind: "composite", interpolationType: _24, interpolationFactor: ar.interpolationFactor.bind(void 0, _24), zoomStops: g2.map(function(t4) { + return t4[0]; + }), evaluate: function(t4, n3) { + var i3 = t4.zoom; + return qr({ stops: g2, base: e3.base }, r2, i3).evaluate(i3, n3); + } }; + } + if (u2) { + var A3 = "exponential" === l2 ? { name: "exponential", base: void 0 !== e3.base ? e3.base : 1 } : null; + return { kind: "camera", interpolationType: A3, interpolationFactor: ar.interpolationFactor.bind(void 0, A3), zoomStops: e3.stops.map(function(t4) { + return t4[0]; + }), evaluate: function(t4) { + return n2(e3, r2, t4.zoom, i2, a2); + } }; + } + return { kind: "source", evaluate: function(t4, o3) { + var s3 = o3 && o3.properties ? o3.properties[e3.property] : void 0; + return void 0 === s3 ? Rr(e3.default, r2.default) : n2(e3, r2, s3, i2, a2); + } }; + }(this._parameters, this._specification)); + }; + function $r(t2) { + var e2 = t2.key, r2 = t2.value, n2 = t2.valueSpec || {}, i2 = t2.objectElementValidators || {}, a2 = t2.style, o2 = t2.styleSpec, s2 = [], u2 = Dr(r2); + if ("object" !== u2) + return [new Pt(e2, r2, "object expected, " + u2 + " found")]; + for (var l2 in r2) { + var p3 = l2.split(".")[0], c3 = n2[p3] || n2["*"], h3 = void 0; + if (i2[p3]) + h3 = i2[p3]; + else if (n2[p3]) + h3 = An; else if (i2["*"]) - c3 = i2["*"]; + h3 = i2["*"]; else { if (!n2["*"]) { - o2.push(new it(e2, r2[t3], `unknown property "${t3}"`)); + s2.push(new Pt(e2, r2[l2], 'unknown property "' + l2 + '"')); continue; } - c3 = yn; + h3 = An; } - o2 = o2.concat(c3({ key: (e2 ? `${e2}.` : e2) + t3, value: r2[t3], valueSpec: u2, style: a2, styleSpec: s2, object: r2, objectKey: t3 }, r2)); + s2 = s2.concat(h3({ key: (e2 ? e2 + "." : e2) + l2, value: r2[l2], valueSpec: c3, style: a2, styleSpec: o2, object: r2, objectKey: l2 }, r2)); } - for (const t3 in n2) - i2[t3] || n2[t3].required && void 0 === n2[t3].default && void 0 === r2[t3] && o2.push(new it(e2, r2, `missing required property "${t3}"`)); - return o2; + for (var f2 in n2) + i2[f2] || n2[f2].required && void 0 === n2[f2].default && void 0 === r2[f2] && s2.push(new Pt(e2, r2, 'missing required property "' + f2 + '"')); + return s2; } - function Ur(t2) { - const e2 = t2.value, r2 = t2.valueSpec, n2 = t2.style, i2 = t2.styleSpec, a2 = t2.key, s2 = t2.arrayElementValidator || yn; - if ("array" !== Ar(e2)) - return [new it(a2, e2, `array expected, ${Ar(e2)} found`)]; + function Wr(t2) { + var e2 = t2.value, r2 = t2.valueSpec, n2 = t2.style, i2 = t2.styleSpec, a2 = t2.key, o2 = t2.arrayElementValidator || An; + if ("array" !== Dr(e2)) + return [new Pt(a2, e2, "array expected, " + Dr(e2) + " found")]; if (r2.length && e2.length !== r2.length) - return [new it(a2, e2, `array length ${r2.length} expected, length ${e2.length} found`)]; + return [new Pt(a2, e2, "array length " + r2.length + " expected, length " + e2.length + " found")]; if (r2["min-length"] && e2.length < r2["min-length"]) - return [new it(a2, e2, `array length at least ${r2["min-length"]} expected, length ${e2.length} found`)]; - let o2 = { type: r2.value, values: r2.values }; - i2.$version < 7 && (o2.function = r2.function), "object" === Ar(r2.value) && (o2 = r2.value); - let l2 = []; - for (let t3 = 0; t3 < e2.length; t3++) - l2 = l2.concat(s2({ array: e2, arrayIndex: t3, value: e2[t3], valueSpec: o2, style: n2, styleSpec: i2, key: `${a2}[${t3}]` })); - return l2; + return [new Pt(a2, e2, "array length at least " + r2["min-length"] + " expected, length " + e2.length + " found")]; + var s2 = { type: r2.value, values: r2.values }; + i2.$version < 7 && (s2.function = r2.function), "object" === Dr(r2.value) && (s2 = r2.value); + for (var u2 = [], l2 = 0; l2 < e2.length; l2++) + u2 = u2.concat(o2({ array: e2, arrayIndex: l2, value: e2[l2], valueSpec: s2, style: n2, styleSpec: i2, key: a2 + "[" + l2 + "]" })); + return u2; } - function qr(t2) { - const e2 = t2.key, r2 = t2.value, n2 = t2.valueSpec; - let i2 = Ar(r2); - return "number" === i2 && r2 != r2 && (i2 = "NaN"), "number" !== i2 ? [new it(e2, r2, `number expected, ${i2} found`)] : "minimum" in n2 && r2 < n2.minimum ? [new it(e2, r2, `${r2} is less than the minimum value ${n2.minimum}`)] : "maximum" in n2 && r2 > n2.maximum ? [new it(e2, r2, `${r2} is greater than the maximum value ${n2.maximum}`)] : []; - } - function jr(t2) { - const e2 = t2.valueSpec, r2 = ot(t2.value.type); - let n2, i2, a2, s2 = {}; - const o2 = "categorical" !== r2 && void 0 === t2.value.property, l2 = !o2, u2 = "array" === Ar(t2.value.stops) && "array" === Ar(t2.value.stops[0]) && "object" === Ar(t2.value.stops[0][0]), c3 = Or({ key: t2.key, value: t2.value, valueSpec: t2.styleSpec.function, style: t2.style, styleSpec: t2.styleSpec, objectElementValidators: { stops: function(t3) { - if ("identity" === r2) - return [new it(t3.key, t3.value, 'identity function may not have a "stops" property')]; - let e3 = []; - const n3 = t3.value; - return e3 = e3.concat(Ur({ key: t3.key, value: n3, valueSpec: t3.valueSpec, style: t3.style, styleSpec: t3.styleSpec, arrayElementValidator: h3 })), "array" === Ar(n3) && 0 === n3.length && e3.push(new it(t3.key, n3, "array must have at least one stop")), e3; + function Qr(t2) { + var e2 = t2.key, r2 = t2.value, n2 = t2.valueSpec, i2 = Dr(r2); + return "number" === i2 && r2 != r2 && (i2 = "NaN"), "number" !== i2 ? [new Pt(e2, r2, "number expected, " + i2 + " found")] : "minimum" in n2 && r2 < n2.minimum ? [new Pt(e2, r2, r2 + " is less than the minimum value " + n2.minimum)] : "maximum" in n2 && r2 > n2.maximum ? [new Pt(e2, r2, r2 + " is greater than the maximum value " + n2.maximum)] : []; + } + function tn(t2) { + var e2, r2, n2, i2 = t2.valueSpec, a2 = Tt(t2.value.type), o2 = {}, s2 = "categorical" !== a2 && void 0 === t2.value.property, u2 = !s2, l2 = "array" === Dr(t2.value.stops) && "array" === Dr(t2.value.stops[0]) && "object" === Dr(t2.value.stops[0][0]), p3 = $r({ key: t2.key, value: t2.value, valueSpec: t2.styleSpec.function, style: t2.style, styleSpec: t2.styleSpec, objectElementValidators: { stops: function(t3) { + if ("identity" === a2) + return [new Pt(t3.key, t3.value, 'identity function may not have a "stops" property')]; + var e3 = [], r3 = t3.value; + return e3 = e3.concat(Wr({ key: t3.key, value: r3, valueSpec: t3.valueSpec, style: t3.style, styleSpec: t3.styleSpec, arrayElementValidator: c3 })), "array" === Dr(r3) && 0 === r3.length && e3.push(new Pt(t3.key, r3, "array must have at least one stop")), e3; }, default: function(t3) { - return yn({ key: t3.key, value: t3.value, valueSpec: e2, style: t3.style, styleSpec: t3.styleSpec }); + return An({ key: t3.key, value: t3.value, valueSpec: i2, style: t3.style, styleSpec: t3.styleSpec }); } } }); - return "identity" === r2 && o2 && c3.push(new it(t2.key, t2.value, 'missing required property "property"')), "identity" === r2 || t2.value.stops || c3.push(new it(t2.key, t2.value, 'missing required property "stops"')), "exponential" === r2 && t2.valueSpec.expression && !_r(t2.valueSpec) && c3.push(new it(t2.key, t2.value, "exponential functions not supported")), t2.styleSpec.$version >= 8 && (l2 && !br(t2.valueSpec) ? c3.push(new it(t2.key, t2.value, "property functions not supported")) : o2 && !wr(t2.valueSpec) && c3.push(new it(t2.key, t2.value, "zoom functions not supported"))), "categorical" !== r2 && !u2 || void 0 !== t2.value.property || c3.push(new it(t2.key, t2.value, '"property" property is required')), c3; - function h3(t3) { - let r3 = []; - const n3 = t3.value, o3 = t3.key; - if ("array" !== Ar(n3)) - return [new it(o3, n3, `array expected, ${Ar(n3)} found`)]; - if (2 !== n3.length) - return [new it(o3, n3, `array length 2 expected, length ${n3.length} found`)]; - if (u2) { - if ("object" !== Ar(n3[0])) - return [new it(o3, n3, `object expected, ${Ar(n3[0])} found`)]; - if (void 0 === n3[0].zoom) - return [new it(o3, n3, "object stop key must have zoom")]; - if (void 0 === n3[0].value) - return [new it(o3, n3, "object stop key must have value")]; - if (a2 && a2 > ot(n3[0].zoom)) - return [new it(o3, n3[0].zoom, "stop zoom values must appear in ascending order")]; - ot(n3[0].zoom) !== a2 && (a2 = ot(n3[0].zoom), i2 = void 0, s2 = {}), r3 = r3.concat(Or({ key: `${o3}[0]`, value: n3[0], valueSpec: { zoom: {} }, style: t3.style, styleSpec: t3.styleSpec, objectElementValidators: { zoom: qr, value: p3 } })); + return "identity" === a2 && s2 && p3.push(new Pt(t2.key, t2.value, 'missing required property "property"')), "identity" === a2 || t2.value.stops || p3.push(new Pt(t2.key, t2.value, 'missing required property "stops"')), "exponential" === a2 && t2.valueSpec.expression && !Fr(t2.valueSpec) && p3.push(new Pt(t2.key, t2.value, "exponential functions not supported")), t2.styleSpec.$version >= 8 && (u2 && !Tr(t2.valueSpec) ? p3.push(new Pt(t2.key, t2.value, "property functions not supported")) : s2 && !Vr(t2.valueSpec) && p3.push(new Pt(t2.key, t2.value, "zoom functions not supported"))), "categorical" !== a2 && !l2 || void 0 !== t2.value.property || p3.push(new Pt(t2.key, t2.value, '"property" property is required')), p3; + function c3(t3) { + var e3 = [], a3 = t3.value, s3 = t3.key; + if ("array" !== Dr(a3)) + return [new Pt(s3, a3, "array expected, " + Dr(a3) + " found")]; + if (2 !== a3.length) + return [new Pt(s3, a3, "array length 2 expected, length " + a3.length + " found")]; + if (l2) { + if ("object" !== Dr(a3[0])) + return [new Pt(s3, a3, "object expected, " + Dr(a3[0]) + " found")]; + if (void 0 === a3[0].zoom) + return [new Pt(s3, a3, "object stop key must have zoom")]; + if (void 0 === a3[0].value) + return [new Pt(s3, a3, "object stop key must have value")]; + if (n2 && n2 > Tt(a3[0].zoom)) + return [new Pt(s3, a3[0].zoom, "stop zoom values must appear in ascending order")]; + Tt(a3[0].zoom) !== n2 && (n2 = Tt(a3[0].zoom), r2 = void 0, o2 = {}), e3 = e3.concat($r({ key: s3 + "[0]", value: a3[0], valueSpec: { zoom: {} }, style: t3.style, styleSpec: t3.styleSpec, objectElementValidators: { zoom: Qr, value: h3 } })); } else - r3 = r3.concat(p3({ key: `${o3}[0]`, value: n3[0], valueSpec: {}, style: t3.style, styleSpec: t3.styleSpec }, n3)); - return Er(lt(n3[1])) ? r3.concat([new it(`${o3}[1]`, n3[1], "expressions are not allowed in function stops.")]) : r3.concat(yn({ key: `${o3}[1]`, value: n3[1], valueSpec: e2, style: t3.style, styleSpec: t3.styleSpec })); - } - function p3(t3, a3) { - const o3 = Ar(t3.value), l3 = ot(t3.value), u3 = null !== t3.value ? t3.value : a3; - if (n2) { - if (o3 !== n2) - return [new it(t3.key, u3, `${o3} stop domain type must match previous stop domain type ${n2}`)]; + e3 = e3.concat(h3({ key: s3 + "[0]", value: a3[0], valueSpec: {}, style: t3.style, styleSpec: t3.styleSpec }, a3)); + return Gr(Vt(a3[1])) ? e3.concat([new Pt(s3 + "[1]", a3[1], "expressions are not allowed in function stops.")]) : e3.concat(An({ key: s3 + "[1]", value: a3[1], valueSpec: i2, style: t3.style, styleSpec: t3.styleSpec })); + } + function h3(t3, n3) { + var s3 = Dr(t3.value), u3 = Tt(t3.value), l3 = null !== t3.value ? t3.value : n3; + if (e2) { + if (s3 !== e2) + return [new Pt(t3.key, l3, s3 + " stop domain type must match previous stop domain type " + e2)]; } else - n2 = o3; - if ("number" !== o3 && "string" !== o3 && "boolean" !== o3) - return [new it(t3.key, u3, "stop domain value must be a number, string, or boolean")]; - if ("number" !== o3 && "categorical" !== r2) { - let n3 = `number expected, ${o3} found`; - return br(e2) && void 0 === r2 && (n3 += '\nIf you intended to use a categorical function, specify `"type": "categorical"`.'), [new it(t3.key, u3, n3)]; + e2 = s3; + if ("number" !== s3 && "string" !== s3 && "boolean" !== s3) + return [new Pt(t3.key, l3, "stop domain value must be a number, string, or boolean")]; + if ("number" !== s3 && "categorical" !== a2) { + var p4 = "number expected, " + s3 + " found"; + return Tr(i2) && void 0 === a2 && (p4 += '\nIf you intended to use a categorical function, specify `"type": "categorical"`.'), [new Pt(t3.key, l3, p4)]; } - return "categorical" !== r2 || "number" !== o3 || isFinite(l3) && Math.floor(l3) === l3 ? "categorical" !== r2 && "number" === o3 && void 0 !== i2 && l3 < i2 ? [new it(t3.key, u3, "stop domain values must appear in ascending order")] : (i2 = l3, "categorical" === r2 && l3 in s2 ? [new it(t3.key, u3, "stop domain values must be unique")] : (s2[l3] = true, [])) : [new it(t3.key, u3, `integer expected, found ${l3}`)]; + return "categorical" !== a2 || "number" !== s3 || isFinite(u3) && Math.floor(u3) === u3 ? "categorical" !== a2 && "number" === s3 && void 0 !== r2 && u3 < r2 ? [new Pt(t3.key, l3, "stop domain values must appear in ascending order")] : (r2 = u3, "categorical" === a2 && u3 in o2 ? [new Pt(t3.key, l3, "stop domain values must be unique")] : (o2[u3] = true, [])) : [new Pt(t3.key, l3, "integer expected, found " + u3)]; } } - function Nr(t2) { - const e2 = ("property" === t2.expressionContext ? Dr : Fr)(lt(t2.value), t2.valueSpec); + function en(t2) { + var e2 = ("property" === t2.expressionContext ? Hr : Zr)(Vt(t2.value), t2.valueSpec); if ("error" === e2.result) - return e2.value.map((e3) => new it(`${t2.key}${e3.key}`, t2.value, e3.message)); - const r2 = e2.value.expression || e2.value._styleExpression.expression; + return e2.value.map(function(e3) { + return new Pt("" + t2.key + e3.key, t2.value, e3.message); + }); + var r2 = e2.value.expression || e2.value._styleExpression.expression; if ("property" === t2.expressionContext && "text-font" === t2.propertyKey && !r2.outputDefined()) - return [new it(t2.key, t2.value, `Invalid data expression for "${t2.propertyKey}". Output values must be contained as literals within the expression.`)]; - if ("property" === t2.expressionContext && "layout" === t2.propertyType && !xe(r2)) - return [new it(t2.key, t2.value, '"feature-state" data expressions are not supported with layout properties.')]; - if ("filter" === t2.expressionContext && !xe(r2)) - return [new it(t2.key, t2.value, '"feature-state" data expressions are not supported with filters.')]; + return [new Pt(t2.key, t2.value, 'Invalid data expression for "' + t2.propertyKey + '". Output values must be contained as literals within the expression.')]; + if ("property" === t2.expressionContext && "layout" === t2.propertyType && !Oe(r2)) + return [new Pt(t2.key, t2.value, '"feature-state" data expressions are not supported with layout properties.')]; + if ("filter" === t2.expressionContext && !Oe(r2)) + return [new Pt(t2.key, t2.value, '"feature-state" data expressions are not supported with filters.')]; if (t2.expressionContext && 0 === t2.expressionContext.indexOf("cluster")) { - if (!ve(r2, ["zoom", "feature-state"])) - return [new it(t2.key, t2.value, '"zoom" and "feature-state" expressions are not supported with cluster properties.')]; - if ("cluster-initial" === t2.expressionContext && !ge(r2)) - return [new it(t2.key, t2.value, "Feature data expressions are not supported with initial expression part of cluster properties.")]; + if (!Re(r2, ["zoom", "feature-state"])) + return [new Pt(t2.key, t2.value, '"zoom" and "feature-state" expressions are not supported with cluster properties.')]; + if ("cluster-initial" === t2.expressionContext && !Le(r2)) + return [new Pt(t2.key, t2.value, "Feature data expressions are not supported with initial expression part of cluster properties.")]; } return []; } - function Zr(t2) { - const e2 = t2.key, r2 = t2.value, n2 = t2.valueSpec, i2 = []; - return Array.isArray(n2.values) ? -1 === n2.values.indexOf(ot(r2)) && i2.push(new it(e2, r2, `expected one of [${n2.values.join(", ")}], ${JSON.stringify(r2)} found`)) : -1 === Object.keys(n2.values).indexOf(ot(r2)) && i2.push(new it(e2, r2, `expected one of [${Object.keys(n2.values).join(", ")}], ${JSON.stringify(r2)} found`)), i2; + function rn(t2) { + var e2 = t2.key, r2 = t2.value, n2 = t2.valueSpec, i2 = []; + return Array.isArray(n2.values) ? -1 === n2.values.indexOf(Tt(r2)) && i2.push(new Pt(e2, r2, "expected one of [" + n2.values.join(", ") + "], " + JSON.stringify(r2) + " found")) : -1 === Object.keys(n2.values).indexOf(Tt(r2)) && i2.push(new Pt(e2, r2, "expected one of [" + Object.keys(n2.values).join(", ") + "], " + JSON.stringify(r2) + " found")), i2; } - function Kr(t2) { + function nn(t2) { if (true === t2 || false === t2) return true; if (!Array.isArray(t2) || 0 === t2.length) @@ -17892,55 +18257,66 @@ var maplibreGl = { exports: {} }; return 3 !== t2.length || Array.isArray(t2[1]) || Array.isArray(t2[2]); case "any": case "all": - for (const e2 of t2.slice(1)) - if (!Kr(e2) && "boolean" != typeof e2) + for (var e2 = 0, r2 = t2.slice(1); e2 < r2.length; e2 += 1) { + var n2 = r2[e2]; + if (!nn(n2) && "boolean" != typeof n2) return false; + } return true; default: return true; } } - const Gr = { type: "boolean", default: false, transition: false, "property-type": "data-driven", expression: { interpolated: false, parameters: ["zoom", "feature"] } }; - function Jr(t2) { + Yr.deserialize = function(t2) { + return new Yr(t2._parameters, t2._specification); + }, Yr.serialize = function(t2) { + return { _parameters: t2._parameters, _specification: t2._specification }; + }; + var an = { type: "boolean", default: false, transition: false, "property-type": "data-driven", expression: { interpolated: false, parameters: ["zoom", "feature"] } }; + function on2(t2) { if (null == t2) - return { filter: () => true, needGeometry: false }; - Kr(t2) || (t2 = Hr(t2)); - const e2 = Fr(t2, Gr); + return { filter: function() { + return true; + }, needGeometry: false }; + nn(t2) || (t2 = un(t2)); + var e2 = Zr(t2, an); if ("error" === e2.result) - throw new Error(e2.value.map((t3) => `${t3.key}: ${t3.message}`).join(", ")); - return { filter: (t3, r2, n2) => e2.value.evaluate(t3, r2, {}, n2), needGeometry: Yr(t2) }; + throw new Error(e2.value.map(function(t3) { + return t3.key + ": " + t3.message; + }).join(", ")); + return { filter: function(t3, r2, n2) { + return e2.value.evaluate(t3, r2, {}, n2); + }, needGeometry: function t3(e3) { + if (!Array.isArray(e3)) + return false; + if ("within" === e3[0]) + return true; + for (var r2 = 1; r2 < e3.length; r2++) + if (t3(e3[r2])) + return true; + return false; + }(t2) }; } - function Xr(t2, e2) { + function sn(t2, e2) { return t2 < e2 ? -1 : t2 > e2 ? 1 : 0; } - function Yr(t2) { - if (!Array.isArray(t2)) - return false; - if ("within" === t2[0]) - return true; - for (let e2 = 1; e2 < t2.length; e2++) - if (Yr(t2[e2])) - return true; - return false; - } - function Hr(t2) { + function un(t2) { if (!t2) return true; - const e2 = t2[0]; - return t2.length <= 1 ? "any" !== e2 : "==" === e2 ? Wr(t2[1], t2[2], "==") : "!=" === e2 ? en(Wr(t2[1], t2[2], "==")) : "<" === e2 || ">" === e2 || "<=" === e2 || ">=" === e2 ? Wr(t2[1], t2[2], e2) : "any" === e2 ? (r2 = t2.slice(1), ["any"].concat(r2.map(Hr))) : "all" === e2 ? ["all"].concat(t2.slice(1).map(Hr)) : "none" === e2 ? ["all"].concat(t2.slice(1).map(Hr).map(en)) : "in" === e2 ? Qr(t2[1], t2.slice(2)) : "!in" === e2 ? en(Qr(t2[1], t2.slice(2))) : "has" === e2 ? tn(t2[1]) : "!has" === e2 ? en(tn(t2[1])) : "within" !== e2 || t2; - var r2; + var e2, r2 = t2[0]; + return t2.length <= 1 ? "any" !== r2 : "==" === r2 ? ln(t2[1], t2[2], "==") : "!=" === r2 ? hn(ln(t2[1], t2[2], "==")) : "<" === r2 || ">" === r2 || "<=" === r2 || ">=" === r2 ? ln(t2[1], t2[2], r2) : "any" === r2 ? (e2 = t2.slice(1), ["any"].concat(e2.map(un))) : "all" === r2 ? ["all"].concat(t2.slice(1).map(un)) : "none" === r2 ? ["all"].concat(t2.slice(1).map(un).map(hn)) : "in" === r2 ? pn(t2[1], t2.slice(2)) : "!in" === r2 ? hn(pn(t2[1], t2.slice(2))) : "has" === r2 ? cn(t2[1]) : "!has" === r2 ? hn(cn(t2[1])) : "within" !== r2 || t2; } - function Wr(t2, e2, r2) { + function ln(t2, e2, r2) { switch (t2) { case "$type": - return [`filter-type-${r2}`, e2]; + return ["filter-type-" + r2, e2]; case "$id": - return [`filter-id-${r2}`, e2]; + return ["filter-id-" + r2, e2]; default: - return [`filter-${r2}`, t2, e2]; + return ["filter-" + r2, t2, e2]; } } - function Qr(t2, e2) { + function pn(t2, e2) { if (0 === e2.length) return false; switch (t2) { @@ -17949,10 +18325,12 @@ var maplibreGl = { exports: {} }; case "$id": return ["filter-id-in", ["literal", e2]]; default: - return e2.length > 200 && !e2.some((t3) => typeof t3 != typeof e2[0]) ? ["filter-in-large", t2, ["literal", e2.sort(Xr)]] : ["filter-in-small", t2, ["literal", e2]]; + return e2.length > 200 && !e2.some(function(t3) { + return typeof t3 != typeof e2[0]; + }) ? ["filter-in-large", t2, ["literal", e2.sort(sn)]] : ["filter-in-small", t2, ["literal", e2]]; } } - function tn(t2) { + function cn(t2) { switch (t2) { case "$type": return true; @@ -17962,2610 +18340,2528 @@ var maplibreGl = { exports: {} }; return ["filter-has", t2]; } } - function en(t2) { + function hn(t2) { return ["!", t2]; } - function rn(t2) { - return Kr(lt(t2.value)) ? Nr(st({}, t2, { expressionContext: "filter", valueSpec: { value: "boolean" } })) : nn(t2); - } - function nn(t2) { - const e2 = t2.value, r2 = t2.key; - if ("array" !== Ar(e2)) - return [new it(r2, e2, `array expected, ${Ar(e2)} found`)]; - const n2 = t2.styleSpec; - let i2, a2 = []; - if (e2.length < 1) - return [new it(r2, e2, "filter array must have at least 1 element")]; - switch (a2 = a2.concat(Zr({ key: `${r2}[0]`, value: e2[0], valueSpec: n2.filter_operator, style: t2.style, styleSpec: t2.styleSpec })), ot(e2[0])) { - case "<": - case "<=": - case ">": - case ">=": - e2.length >= 2 && "$type" === ot(e2[1]) && a2.push(new it(r2, e2, `"$type" cannot be use with operator "${e2[0]}"`)); - case "==": - case "!=": - 3 !== e2.length && a2.push(new it(r2, e2, `filter array for operator "${e2[0]}" must have 3 elements`)); - case "in": - case "!in": - e2.length >= 2 && (i2 = Ar(e2[1]), "string" !== i2 && a2.push(new it(`${r2}[1]`, e2[1], `string expected, ${i2} found`))); - for (let s2 = 2; s2 < e2.length; s2++) - i2 = Ar(e2[s2]), "$type" === ot(e2[1]) ? a2 = a2.concat(Zr({ key: `${r2}[${s2}]`, value: e2[s2], valueSpec: n2.geometry_type, style: t2.style, styleSpec: t2.styleSpec })) : "string" !== i2 && "number" !== i2 && "boolean" !== i2 && a2.push(new it(`${r2}[${s2}]`, e2[s2], `string, number, or boolean expected, ${i2} found`)); - break; - case "any": - case "all": - case "none": - for (let n3 = 1; n3 < e2.length; n3++) - a2 = a2.concat(nn({ key: `${r2}[${n3}]`, value: e2[n3], style: t2.style, styleSpec: t2.styleSpec })); - break; - case "has": - case "!has": - i2 = Ar(e2[1]), 2 !== e2.length ? a2.push(new it(r2, e2, `filter array for "${e2[0]}" operator must have 2 elements`)) : "string" !== i2 && a2.push(new it(`${r2}[1]`, e2[1], `string expected, ${i2} found`)); - break; - case "within": - i2 = Ar(e2[1]), 2 !== e2.length ? a2.push(new it(r2, e2, `filter array for "${e2[0]}" operator must have 2 elements`)) : "object" !== i2 && a2.push(new it(`${r2}[1]`, e2[1], `object expected, ${i2} found`)); - } - return a2; + function fn(t2) { + return nn(Vt(t2.value)) ? en(Bt({}, t2, { expressionContext: "filter", valueSpec: { value: "boolean" } })) : function t3(e2) { + var r2 = e2.value, n2 = e2.key; + if ("array" !== Dr(r2)) + return [new Pt(n2, r2, "array expected, " + Dr(r2) + " found")]; + var i2, a2 = e2.styleSpec, o2 = []; + if (r2.length < 1) + return [new Pt(n2, r2, "filter array must have at least 1 element")]; + switch (o2 = o2.concat(rn({ key: n2 + "[0]", value: r2[0], valueSpec: a2.filter_operator, style: e2.style, styleSpec: e2.styleSpec })), Tt(r2[0])) { + case "<": + case "<=": + case ">": + case ">=": + r2.length >= 2 && "$type" === Tt(r2[1]) && o2.push(new Pt(n2, r2, '"$type" cannot be use with operator "' + r2[0] + '"')); + case "==": + case "!=": + 3 !== r2.length && o2.push(new Pt(n2, r2, 'filter array for operator "' + r2[0] + '" must have 3 elements')); + case "in": + case "!in": + r2.length >= 2 && "string" !== (i2 = Dr(r2[1])) && o2.push(new Pt(n2 + "[1]", r2[1], "string expected, " + i2 + " found")); + for (var s2 = 2; s2 < r2.length; s2++) + i2 = Dr(r2[s2]), "$type" === Tt(r2[1]) ? o2 = o2.concat(rn({ key: n2 + "[" + s2 + "]", value: r2[s2], valueSpec: a2.geometry_type, style: e2.style, styleSpec: e2.styleSpec })) : "string" !== i2 && "number" !== i2 && "boolean" !== i2 && o2.push(new Pt(n2 + "[" + s2 + "]", r2[s2], "string, number, or boolean expected, " + i2 + " found")); + break; + case "any": + case "all": + case "none": + for (var u2 = 1; u2 < r2.length; u2++) + o2 = o2.concat(t3({ key: n2 + "[" + u2 + "]", value: r2[u2], style: e2.style, styleSpec: e2.styleSpec })); + break; + case "has": + case "!has": + i2 = Dr(r2[1]), 2 !== r2.length ? o2.push(new Pt(n2, r2, 'filter array for "' + r2[0] + '" operator must have 2 elements')) : "string" !== i2 && o2.push(new Pt(n2 + "[1]", r2[1], "string expected, " + i2 + " found")); + break; + case "within": + i2 = Dr(r2[1]), 2 !== r2.length ? o2.push(new Pt(n2, r2, 'filter array for "' + r2[0] + '" operator must have 2 elements')) : "object" !== i2 && o2.push(new Pt(n2 + "[1]", r2[1], "object expected, " + i2 + " found")); + } + return o2; + }(t2); } - function an(t2, e2) { - const r2 = t2.key, n2 = t2.style, i2 = t2.styleSpec, a2 = t2.value, s2 = t2.objectKey, o2 = i2[`${e2}_${t2.layerType}`]; - if (!o2) + function yn(t2, e2) { + var r2 = t2.key, n2 = t2.style, i2 = t2.styleSpec, a2 = t2.value, o2 = t2.objectKey, s2 = i2[e2 + "_" + t2.layerType]; + if (!s2) return []; - const l2 = s2.match(/^(.*)-transition$/); - if ("paint" === e2 && l2 && o2[l2[1]] && o2[l2[1]].transition) - return yn({ key: r2, value: a2, valueSpec: i2.transition, style: n2, styleSpec: i2 }); - const u2 = t2.valueSpec || o2[s2]; - if (!u2) - return [new it(r2, a2, `unknown property "${s2}"`)]; - let c3; - if ("string" === Ar(a2) && br(u2) && !u2.tokens && (c3 = /^{([^}]+)}$/.exec(a2))) - return [new it(r2, a2, `"${s2}" does not support interpolation syntax -Use an identity property function instead: \`{ "type": "identity", "property": ${JSON.stringify(c3[1])} }\`.`)]; - const h3 = []; - return "symbol" === t2.layerType && ("text-field" === s2 && n2 && !n2.glyphs && h3.push(new it(r2, a2, 'use of "text-field" requires a style "glyphs" property')), "text-font" === s2 && kr(lt(a2)) && "identity" === ot(a2.type) && h3.push(new it(r2, a2, '"text-font" does not support identity functions'))), h3.concat(yn({ key: t2.key, value: a2, valueSpec: u2, style: n2, styleSpec: i2, expressionContext: "property", propertyType: e2, propertyKey: s2 })); - } - function sn(t2) { - return an(t2, "paint"); + var u2 = o2.match(/^(.*)-transition$/); + if ("paint" === e2 && u2 && s2[u2[1]] && s2[u2[1]].transition) + return An({ key: r2, value: a2, valueSpec: i2.transition, style: n2, styleSpec: i2 }); + var l2, p3 = t2.valueSpec || s2[o2]; + if (!p3) + return [new Pt(r2, a2, 'unknown property "' + o2 + '"')]; + if ("string" === Dr(a2) && Tr(p3) && !p3.tokens && (l2 = /^{([^}]+)}$/.exec(a2))) + return [new Pt(r2, a2, '"' + o2 + '" does not support interpolation syntax\nUse an identity property function instead: `{ "type": "identity", "property": ' + JSON.stringify(l2[1]) + " }`.")]; + var c3 = []; + return "symbol" === t2.layerType && ("text-field" === o2 && n2 && !n2.glyphs && c3.push(new Pt(r2, a2, 'use of "text-field" requires a style "glyphs" property')), "text-font" === o2 && Lr(Vt(a2)) && "identity" === Tt(a2.type) && c3.push(new Pt(r2, a2, '"text-font" does not support identity functions'))), c3.concat(An({ key: t2.key, value: a2, valueSpec: p3, style: n2, styleSpec: i2, expressionContext: "property", propertyType: e2, propertyKey: o2 })); + } + function dn(t2) { + return yn(t2, "paint"); } - function on2(t2) { - return an(t2, "layout"); - } - function ln(t2) { - let e2 = []; - const r2 = t2.value, n2 = t2.key, i2 = t2.style, a2 = t2.styleSpec; - r2.type || r2.ref || e2.push(new it(n2, r2, 'either "type" or "ref" is required')); - let s2 = ot(r2.type); - const o2 = ot(r2.ref); - if (r2.id) { - const a3 = ot(r2.id); - for (let s3 = 0; s3 < t2.arrayIndex; s3++) { - const t3 = i2.layers[s3]; - ot(t3.id) === a3 && e2.push(new it(n2, r2.id, `duplicate layer id "${r2.id}", previously used at line ${t3.id.__line__}`)); - } - } - if ("ref" in r2) { - let t3; - ["type", "source", "source-layer", "filter", "layout"].forEach((t4) => { - t4 in r2 && e2.push(new it(n2, r2[t4], `"${t4}" is prohibited for ref layers`)); - }), i2.layers.forEach((e3) => { - ot(e3.id) === o2 && (t3 = e3); - }), t3 ? t3.ref ? e2.push(new it(n2, r2.ref, "ref cannot reference another ref layer")) : s2 = ot(t3.type) : e2.push(new it(n2, r2.ref, `ref layer "${o2}" not found`)); - } else if ("background" !== s2) + function mn(t2) { + return yn(t2, "layout"); + } + function vn(t2) { + var e2 = [], r2 = t2.value, n2 = t2.key, i2 = t2.style, a2 = t2.styleSpec; + r2.type || r2.ref || e2.push(new Pt(n2, r2, 'either "type" or "ref" is required')); + var o2, s2 = Tt(r2.type), u2 = Tt(r2.ref); + if (r2.id) + for (var l2 = Tt(r2.id), p3 = 0; p3 < t2.arrayIndex; p3++) { + var c3 = i2.layers[p3]; + Tt(c3.id) === l2 && e2.push(new Pt(n2, r2.id, 'duplicate layer id "' + r2.id + '", previously used at line ' + c3.id.__line__)); + } + if ("ref" in r2) + ["type", "source", "source-layer", "filter", "layout"].forEach(function(t3) { + t3 in r2 && e2.push(new Pt(n2, r2[t3], '"' + t3 + '" is prohibited for ref layers')); + }), i2.layers.forEach(function(t3) { + Tt(t3.id) === u2 && (o2 = t3); + }), o2 ? o2.ref ? e2.push(new Pt(n2, r2.ref, "ref cannot reference another ref layer")) : s2 = Tt(o2.type) : e2.push(new Pt(n2, r2.ref, 'ref layer "' + u2 + '" not found')); + else if ("background" !== s2) if (r2.source) { - const t3 = i2.sources && i2.sources[r2.source], a3 = t3 && ot(t3.type); - t3 ? "vector" === a3 && "raster" === s2 ? e2.push(new it(n2, r2.source, `layer "${r2.id}" requires a raster source`)) : "raster" === a3 && "raster" !== s2 ? e2.push(new it(n2, r2.source, `layer "${r2.id}" requires a vector source`)) : "vector" !== a3 || r2["source-layer"] ? "raster-dem" === a3 && "hillshade" !== s2 ? e2.push(new it(n2, r2.source, "raster-dem source can only be used with layer type 'hillshade'.")) : "line" !== s2 || !r2.paint || !r2.paint["line-gradient"] || "geojson" === a3 && t3.lineMetrics || e2.push(new it(n2, r2, `layer "${r2.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)) : e2.push(new it(n2, r2, `layer "${r2.id}" must specify a "source-layer"`)) : e2.push(new it(n2, r2.source, `source "${r2.source}" not found`)); + var h3 = i2.sources && i2.sources[r2.source], f2 = h3 && Tt(h3.type); + h3 ? "vector" === f2 && "raster" === s2 ? e2.push(new Pt(n2, r2.source, 'layer "' + r2.id + '" requires a raster source')) : "raster" === f2 && "raster" !== s2 ? e2.push(new Pt(n2, r2.source, 'layer "' + r2.id + '" requires a vector source')) : "vector" !== f2 || r2["source-layer"] ? "raster-dem" === f2 && "hillshade" !== s2 ? e2.push(new Pt(n2, r2.source, "raster-dem source can only be used with layer type 'hillshade'.")) : "line" !== s2 || !r2.paint || !r2.paint["line-gradient"] || "geojson" === f2 && h3.lineMetrics || e2.push(new Pt(n2, r2, 'layer "' + r2.id + '" specifies a line-gradient, which requires a GeoJSON source with `lineMetrics` enabled.')) : e2.push(new Pt(n2, r2, 'layer "' + r2.id + '" must specify a "source-layer"')) : e2.push(new Pt(n2, r2.source, 'source "' + r2.source + '" not found')); } else - e2.push(new it(n2, r2, 'missing required property "source"')); - return e2 = e2.concat(Or({ key: n2, value: r2, valueSpec: a2.layer, style: t2.style, styleSpec: t2.styleSpec, objectElementValidators: { "*": () => [], type: () => yn({ key: `${n2}.type`, value: r2.type, valueSpec: a2.layer.type, style: t2.style, styleSpec: t2.styleSpec, object: r2, objectKey: "type" }), filter: rn, layout: (t3) => Or({ layer: r2, key: t3.key, value: t3.value, style: t3.style, styleSpec: t3.styleSpec, objectElementValidators: { "*": (t4) => on2(st({ layerType: s2 }, t4)) } }), paint: (t3) => Or({ layer: r2, key: t3.key, value: t3.value, style: t3.style, styleSpec: t3.styleSpec, objectElementValidators: { "*": (t4) => sn(st({ layerType: s2 }, t4)) } }) } })), e2; - } - function un(t2) { - const e2 = t2.value, r2 = t2.key, n2 = Ar(e2); - return "string" !== n2 ? [new it(r2, e2, `string expected, ${n2} found`)] : []; - } - const cn = { promoteId: function({ key: t2, value: e2 }) { - if ("string" === Ar(e2)) - return un({ key: t2, value: e2 }); - { - const r2 = []; - for (const n2 in e2) - r2.push(...un({ key: `${t2}.${n2}`, value: e2[n2] })); - return r2; - } + e2.push(new Pt(n2, r2, 'missing required property "source"')); + return e2 = e2.concat($r({ key: n2, value: r2, valueSpec: a2.layer, style: t2.style, styleSpec: t2.styleSpec, objectElementValidators: { "*": function() { + return []; + }, type: function() { + return An({ key: n2 + ".type", value: r2.type, valueSpec: a2.layer.type, style: t2.style, styleSpec: t2.styleSpec, object: r2, objectKey: "type" }); + }, filter: fn, layout: function(t3) { + return $r({ layer: r2, key: t3.key, value: t3.value, style: t3.style, styleSpec: t3.styleSpec, objectElementValidators: { "*": function(t4) { + return mn(Bt({ layerType: s2 }, t4)); + } } }); + }, paint: function(t3) { + return $r({ layer: r2, key: t3.key, value: t3.value, style: t3.style, styleSpec: t3.styleSpec, objectElementValidators: { "*": function(t4) { + return dn(Bt({ layerType: s2 }, t4)); + } } }); + } } })); + } + function gn(t2) { + var e2 = t2.value, r2 = t2.key, n2 = Dr(e2); + return "string" !== n2 ? [new Pt(r2, e2, "string expected, " + n2 + " found")] : []; + } + var xn = { promoteId: function(t2) { + var e2 = t2.key, r2 = t2.value; + if ("string" === Dr(r2)) + return gn({ key: e2, value: r2 }); + var n2 = []; + for (var i2 in r2) + n2.push.apply(n2, gn({ key: e2 + "." + i2, value: r2[i2] })); + return n2; } }; - function hn(t2) { - const e2 = t2.value, r2 = t2.key, n2 = t2.styleSpec, i2 = t2.style; + function bn(t2) { + var e2 = t2.value, r2 = t2.key, n2 = t2.styleSpec, i2 = t2.style; if (!e2.type) - return [new it(r2, e2, '"type" is required')]; - const a2 = ot(e2.type); - let s2; - switch (a2) { + return [new Pt(r2, e2, '"type" is required')]; + var a2, o2 = Tt(e2.type); + switch (o2) { case "vector": case "raster": case "raster-dem": - return s2 = Or({ key: r2, value: e2, valueSpec: n2[`source_${a2.replace("-", "_")}`], style: t2.style, styleSpec: n2, objectElementValidators: cn }), s2; + return $r({ key: r2, value: e2, valueSpec: n2["source_" + o2.replace("-", "_")], style: t2.style, styleSpec: n2, objectElementValidators: xn }); case "geojson": - if (s2 = Or({ key: r2, value: e2, valueSpec: n2.source_geojson, style: i2, styleSpec: n2, objectElementValidators: cn }), e2.cluster) - for (const t3 in e2.clusterProperties) { - const [n3, i3] = e2.clusterProperties[t3], a3 = "string" == typeof n3 ? [n3, ["accumulated"], ["get", t3]] : n3; - s2.push(...Nr({ key: `${r2}.${t3}.map`, value: i3, expressionContext: "cluster-map" })), s2.push(...Nr({ key: `${r2}.${t3}.reduce`, value: a3, expressionContext: "cluster-reduce" })); + if (a2 = $r({ key: r2, value: e2, valueSpec: n2.source_geojson, style: i2, styleSpec: n2, objectElementValidators: xn }), e2.cluster) + for (var s2 in e2.clusterProperties) { + var u2 = e2.clusterProperties[s2], l2 = u2[0], p3 = "string" == typeof l2 ? [l2, ["accumulated"], ["get", s2]] : l2; + a2.push.apply(a2, en({ key: r2 + "." + s2 + ".map", value: u2[1], expressionContext: "cluster-map" })), a2.push.apply(a2, en({ key: r2 + "." + s2 + ".reduce", value: p3, expressionContext: "cluster-reduce" })); } - return s2; + return a2; case "video": - return Or({ key: r2, value: e2, valueSpec: n2.source_video, style: i2, styleSpec: n2 }); + return $r({ key: r2, value: e2, valueSpec: n2.source_video, style: i2, styleSpec: n2 }); case "image": - return Or({ key: r2, value: e2, valueSpec: n2.source_image, style: i2, styleSpec: n2 }); + return $r({ key: r2, value: e2, valueSpec: n2.source_image, style: i2, styleSpec: n2 }); case "canvas": - return [new it(r2, null, "Please use runtime APIs to add canvas sources, rather than including them in stylesheets.", "source.canvas")]; + return [new Pt(r2, null, "Please use runtime APIs to add canvas sources, rather than including them in stylesheets.", "source.canvas")]; default: - return Zr({ key: `${r2}.type`, value: e2.type, valueSpec: { values: ["vector", "raster", "raster-dem", "geojson", "video", "image"] }, style: i2, styleSpec: n2 }); + return rn({ key: r2 + ".type", value: e2.type, valueSpec: { values: ["vector", "raster", "raster-dem", "geojson", "video", "image"] }, style: i2, styleSpec: n2 }); } } - function pn(t2) { - const e2 = t2.value, r2 = t2.styleSpec, n2 = r2.light, i2 = t2.style; - let a2 = []; - const s2 = Ar(e2); + function wn(t2) { + var e2 = t2.value, r2 = t2.styleSpec, n2 = r2.light, i2 = t2.style, a2 = [], o2 = Dr(e2); if (void 0 === e2) return a2; - if ("object" !== s2) - return a2 = a2.concat([new it("light", e2, `object expected, ${s2} found`)]), a2; - for (const t3 in e2) { - const s3 = t3.match(/^(.*)-transition$/); - a2 = a2.concat(s3 && n2[s3[1]] && n2[s3[1]].transition ? yn({ key: t3, value: e2[t3], valueSpec: r2.transition, style: i2, styleSpec: r2 }) : n2[t3] ? yn({ key: t3, value: e2[t3], valueSpec: n2[t3], style: i2, styleSpec: r2 }) : [new it(t3, e2[t3], `unknown property "${t3}"`)]); + if ("object" !== o2) + return a2.concat([new Pt("light", e2, "object expected, " + o2 + " found")]); + for (var s2 in e2) { + var u2 = s2.match(/^(.*)-transition$/); + a2 = a2.concat(u2 && n2[u2[1]] && n2[u2[1]].transition ? An({ key: s2, value: e2[s2], valueSpec: r2.transition, style: i2, styleSpec: r2 }) : n2[s2] ? An({ key: s2, value: e2[s2], valueSpec: n2[s2], style: i2, styleSpec: r2 }) : [new Pt(s2, e2[s2], 'unknown property "' + s2 + '"')]); } return a2; } - function fn(t2) { - const e2 = t2.value, r2 = t2.styleSpec, n2 = r2.terrain, i2 = t2.style; - let a2 = []; - const s2 = Ar(e2); - if (void 0 === e2) - return a2; - if ("object" !== s2) - return a2 = a2.concat([new it("terrain", e2, `object expected, ${s2} found`)]), a2; - for (const t3 in e2) - a2 = a2.concat(n2[t3] ? yn({ key: t3, value: e2[t3], valueSpec: n2[t3], style: i2, styleSpec: r2 }) : [new it(t3, e2[t3], `unknown property "${t3}"`)]); - return a2; - } - const dn = { "*": () => [], array: Ur, boolean: function(t2) { - const e2 = t2.value, r2 = t2.key, n2 = Ar(e2); - return "boolean" !== n2 ? [new it(r2, e2, `boolean expected, ${n2} found`)] : []; - }, number: qr, color: function(t2) { - const e2 = t2.key, r2 = t2.value, n2 = Ar(r2); - return "string" !== n2 ? [new it(e2, r2, `color expected, ${n2} found`)] : null === zt(r2) ? [new it(e2, r2, `color expected, "${r2}" found`)] : []; - }, constants: at, enum: Zr, filter: rn, function: jr, layer: ln, object: Or, source: hn, light: pn, terrain: fn, string: un, formatted: function(t2) { - return 0 === un(t2).length ? [] : Nr(t2); + var _n = { "*": function() { + return []; + }, array: Wr, boolean: function(t2) { + var e2 = t2.value, r2 = t2.key, n2 = Dr(e2); + return "boolean" !== n2 ? [new Pt(r2, e2, "boolean expected, " + n2 + " found")] : []; + }, number: Qr, color: function(t2) { + var e2 = t2.key, r2 = t2.value, n2 = Dr(r2); + return "string" !== n2 ? [new Pt(e2, r2, "color expected, " + n2 + " found")] : null === Qt(r2) ? [new Pt(e2, r2, 'color expected, "' + r2 + '" found')] : []; + }, constants: Mt, enum: rn, filter: fn, function: tn, layer: vn, object: $r, source: bn, light: wn, string: gn, formatted: function(t2) { + return 0 === gn(t2).length ? [] : en(t2); }, resolvedImage: function(t2) { - return 0 === un(t2).length ? [] : Nr(t2); - }, padding: function(t2) { - const e2 = t2.key, r2 = t2.value; - if ("array" === Ar(r2)) { - if (r2.length < 1 || r2.length > 4) - return [new it(e2, r2, `padding requires 1 to 4 values; ${r2.length} values found`)]; - const t3 = { type: "number" }; - let n2 = []; - for (let i2 = 0; i2 < r2.length; i2++) - n2 = n2.concat(yn({ key: `${e2}[${i2}]`, value: r2[i2], valueSpec: t3 })); - return n2; - } - return qr({ key: e2, value: r2, valueSpec: {} }); + return 0 === gn(t2).length ? [] : en(t2); } }; - function yn(t2) { - const e2 = t2.value, r2 = t2.valueSpec, n2 = t2.styleSpec; - return r2.expression && kr(ot(e2)) ? jr(t2) : r2.expression && Er(lt(e2)) ? Nr(t2) : r2.type && dn[r2.type] ? dn[r2.type](t2) : Or(st({}, t2, { valueSpec: r2.type ? n2[r2.type] : r2 })); + function An(t2) { + var e2 = t2.value, r2 = t2.valueSpec, n2 = t2.styleSpec; + return r2.expression && Lr(Tt(e2)) ? tn(t2) : r2.expression && Gr(Vt(e2)) ? en(t2) : r2.type && _n[r2.type] ? _n[r2.type](t2) : $r(Bt({}, t2, { valueSpec: r2.type ? n2[r2.type] : r2 })); } - function mn(t2) { - const e2 = t2.value, r2 = t2.key, n2 = un(t2); - return n2.length || (-1 === e2.indexOf("{fontstack}") && n2.push(new it(r2, e2, '"glyphs" url must include a "{fontstack}" token')), -1 === e2.indexOf("{range}") && n2.push(new it(r2, e2, '"glyphs" url must include a "{range}" token'))), n2; + function Sn(t2) { + var e2 = t2.value, r2 = t2.key, n2 = gn(t2); + return n2.length || (-1 === e2.indexOf("{fontstack}") && n2.push(new Pt(r2, e2, '"glyphs" url must include a "{fontstack}" token')), -1 === e2.indexOf("{range}") && n2.push(new Pt(r2, e2, '"glyphs" url must include a "{range}" token'))), n2; } - function gn(t2, e2 = nt) { - let r2 = []; - return r2 = r2.concat(yn({ key: "", value: t2, valueSpec: e2.$root, styleSpec: e2, style: t2, objectElementValidators: { glyphs: mn, "*": () => [] } })), t2.constants && (r2 = r2.concat(at({ key: "constants", value: t2.constants, style: t2, styleSpec: e2 }))), xn(r2); + function kn(t2, e2) { + void 0 === e2 && (e2 = Et); + var r2 = []; + return r2 = r2.concat(An({ key: "", value: t2, valueSpec: e2.$root, styleSpec: e2, style: t2, objectElementValidators: { glyphs: Sn, "*": function() { + return []; + } } })), t2.constants && (r2 = r2.concat(Mt({ key: "constants", value: t2.constants, style: t2, styleSpec: e2 }))), In(r2); } - function xn(t2) { - return [].concat(t2).sort((t3, e2) => t3.line - e2.line); + function In(t2) { + return [].concat(t2).sort(function(t3, e2) { + return t3.line - e2.line; + }); } - function vn(t2) { - return function(...e2) { - return xn(t2.apply(this, e2)); + function zn(t2) { + return function() { + for (var e2 = [], r2 = arguments.length; r2--; ) + e2[r2] = arguments[r2]; + return In(t2.apply(this, e2)); }; } - gn.source = vn(hn), gn.light = vn(pn), gn.terrain = vn(fn), gn.layer = vn(ln), gn.filter = vn(rn), gn.paintProperty = vn(sn), gn.layoutProperty = vn(on2); - const bn = gn, wn = bn.light, _n = bn.paintProperty, An = bn.layoutProperty; - function kn(t2, e2) { - let r2 = false; + kn.source = zn(bn), kn.light = zn(wn), kn.layer = zn(vn), kn.filter = zn(fn), kn.paintProperty = zn(dn), kn.layoutProperty = zn(mn); + var Cn = kn, En = Cn.light, Pn = Cn.paintProperty, Mn = Cn.layoutProperty; + function Bn(t2, e2) { + var r2 = false; if (e2 && e2.length) - for (const n2 of e2) - t2.fire(new et(new Error(n2.message))), r2 = true; + for (var n2 = 0, i2 = e2; n2 < i2.length; n2 += 1) + t2.fire(new zt(new Error(i2[n2].message))), r2 = true; return r2; } - class Sn { - constructor(t2, e2, r2) { - const n2 = this.cells = []; - if (t2 instanceof ArrayBuffer) { - this.arrayBuffer = t2; - const i3 = new Int32Array(this.arrayBuffer); - t2 = i3[0], this.d = (e2 = i3[1]) + 2 * (r2 = i3[2]); - for (let t3 = 0; t3 < this.d * this.d; t3++) { - const e3 = i3[3 + t3], r3 = i3[3 + t3 + 1]; - n2.push(e3 === r3 ? null : i3.subarray(e3, r3)); + var Tn = Vn; + function Vn(t2, e2, r2) { + var n2 = this.cells = []; + if (t2 instanceof ArrayBuffer) { + this.arrayBuffer = t2; + var i2 = new Int32Array(this.arrayBuffer); + t2 = i2[0], this.d = (e2 = i2[1]) + 2 * (r2 = i2[2]); + for (var a2 = 0; a2 < this.d * this.d; a2++) { + var o2 = i2[3 + a2], s2 = i2[3 + a2 + 1]; + n2.push(o2 === s2 ? null : i2.subarray(o2, s2)); + } + var u2 = i2[3 + n2.length + 1]; + this.keys = i2.subarray(i2[3 + n2.length], u2), this.bboxes = i2.subarray(u2), this.insert = this._insertReadonly; + } else { + this.d = e2 + 2 * r2; + for (var l2 = 0; l2 < this.d * this.d; l2++) + n2.push([]); + this.keys = [], this.bboxes = []; + } + this.n = e2, this.extent = t2, this.padding = r2, this.scale = e2 / t2, this.uid = 0; + var p3 = r2 / e2 * t2; + this.min = -p3, this.max = t2 + p3; + } + Vn.prototype.insert = function(t2, e2, r2, n2, i2) { + this._forEachCell(e2, r2, n2, i2, this._insertCell, this.uid++), this.keys.push(t2), this.bboxes.push(e2), this.bboxes.push(r2), this.bboxes.push(n2), this.bboxes.push(i2); + }, Vn.prototype._insertReadonly = function() { + throw "Cannot insert into a GridIndex created from an ArrayBuffer."; + }, Vn.prototype._insertCell = function(t2, e2, r2, n2, i2, a2) { + this.cells[i2].push(a2); + }, Vn.prototype.query = function(t2, e2, r2, n2, i2) { + var a2 = this.min, o2 = this.max; + if (t2 <= a2 && e2 <= a2 && o2 <= r2 && o2 <= n2 && !i2) + return Array.prototype.slice.call(this.keys); + var s2 = []; + return this._forEachCell(t2, e2, r2, n2, this._queryCell, s2, {}, i2), s2; + }, Vn.prototype._queryCell = function(t2, e2, r2, n2, i2, a2, o2, s2) { + var u2 = this.cells[i2]; + if (null !== u2) + for (var l2 = this.keys, p3 = this.bboxes, c3 = 0; c3 < u2.length; c3++) { + var h3 = u2[c3]; + if (void 0 === o2[h3]) { + var f2 = 4 * h3; + (s2 ? s2(p3[f2 + 0], p3[f2 + 1], p3[f2 + 2], p3[f2 + 3]) : t2 <= p3[f2 + 2] && e2 <= p3[f2 + 3] && r2 >= p3[f2 + 0] && n2 >= p3[f2 + 1]) ? (o2[h3] = true, a2.push(l2[h3])) : o2[h3] = false; } - const a2 = i3[3 + n2.length + 1]; - this.keys = i3.subarray(i3[3 + n2.length], a2), this.bboxes = i3.subarray(a2), this.insert = this._insertReadonly; - } else { - this.d = e2 + 2 * r2; - for (let t3 = 0; t3 < this.d * this.d; t3++) - n2.push([]); - this.keys = [], this.bboxes = []; } - this.n = e2, this.extent = t2, this.padding = r2, this.scale = e2 / t2, this.uid = 0; - const i2 = r2 / e2 * t2; - this.min = -i2, this.max = t2 + i2; - } - insert(t2, e2, r2, n2, i2) { - this._forEachCell(e2, r2, n2, i2, this._insertCell, this.uid++, void 0, void 0), this.keys.push(t2), this.bboxes.push(e2), this.bboxes.push(r2), this.bboxes.push(n2), this.bboxes.push(i2); - } - _insertReadonly() { - throw new Error("Cannot insert into a GridIndex created from an ArrayBuffer."); - } - _insertCell(t2, e2, r2, n2, i2, a2) { - this.cells[i2].push(a2); - } - query(t2, e2, r2, n2, i2) { - const a2 = this.min, s2 = this.max; - if (t2 <= a2 && e2 <= a2 && s2 <= r2 && s2 <= n2 && !i2) - return Array.prototype.slice.call(this.keys); - { - const a3 = []; - return this._forEachCell(t2, e2, r2, n2, this._queryCell, a3, {}, i2), a3; - } - } - _queryCell(t2, e2, r2, n2, i2, a2, s2, o2) { - const l2 = this.cells[i2]; - if (null !== l2) { - const i3 = this.keys, u2 = this.bboxes; - for (let c3 = 0; c3 < l2.length; c3++) { - const h3 = l2[c3]; - if (void 0 === s2[h3]) { - const l3 = 4 * h3; - (o2 ? o2(u2[l3 + 0], u2[l3 + 1], u2[l3 + 2], u2[l3 + 3]) : t2 <= u2[l3 + 2] && e2 <= u2[l3 + 3] && r2 >= u2[l3 + 0] && n2 >= u2[l3 + 1]) ? (s2[h3] = true, a2.push(i3[h3])) : s2[h3] = false; - } - } + }, Vn.prototype._forEachCell = function(t2, e2, r2, n2, i2, a2, o2, s2) { + for (var u2 = this._convertToCellCoord(t2), l2 = this._convertToCellCoord(e2), p3 = this._convertToCellCoord(r2), c3 = this._convertToCellCoord(n2), h3 = u2; h3 <= p3; h3++) + for (var f2 = l2; f2 <= c3; f2++) { + var y3 = this.d * f2 + h3; + if ((!s2 || s2(this._convertFromCellCoord(h3), this._convertFromCellCoord(f2), this._convertFromCellCoord(h3 + 1), this._convertFromCellCoord(f2 + 1))) && i2.call(this, t2, e2, r2, n2, y3, a2, o2, s2)) + return; } - } - _forEachCell(t2, e2, r2, n2, i2, a2, s2, o2) { - const l2 = this._convertToCellCoord(t2), u2 = this._convertToCellCoord(e2), c3 = this._convertToCellCoord(r2), h3 = this._convertToCellCoord(n2); - for (let p3 = l2; p3 <= c3; p3++) - for (let l3 = u2; l3 <= h3; l3++) { - const u3 = this.d * l3 + p3; - if ((!o2 || o2(this._convertFromCellCoord(p3), this._convertFromCellCoord(l3), this._convertFromCellCoord(p3 + 1), this._convertFromCellCoord(l3 + 1))) && i2.call(this, t2, e2, r2, n2, u3, a2, s2, o2)) - return; - } - } - _convertFromCellCoord(t2) { - return (t2 - this.padding) / this.scale; - } - _convertToCellCoord(t2) { - return Math.max(0, Math.min(this.d - 1, Math.floor(t2 * this.scale) + this.padding)); - } - toArrayBuffer() { - if (this.arrayBuffer) - return this.arrayBuffer; - const t2 = this.cells, e2 = 3 + this.cells.length + 1 + 1; - let r2 = 0; - for (let t3 = 0; t3 < this.cells.length; t3++) - r2 += this.cells[t3].length; - const n2 = new Int32Array(e2 + r2 + this.keys.length + this.bboxes.length); - n2[0] = this.extent, n2[1] = this.n, n2[2] = this.padding; - let i2 = e2; - for (let e3 = 0; e3 < t2.length; e3++) { - const r3 = t2[e3]; - n2[3 + e3] = i2, n2.set(r3, i2), i2 += r3.length; - } - return n2[3 + t2.length] = i2, n2.set(this.keys, i2), i2 += this.keys.length, n2[3 + t2.length + 1] = i2, n2.set(this.bboxes, i2), i2 += this.bboxes.length, n2.buffer; - } - static serialize(t2, e2) { - const r2 = t2.toArrayBuffer(); - return e2 && e2.push(r2), { buffer: r2 }; - } - static deserialize(t2) { - return new Sn(t2.buffer); - } - } - const In = {}; - function Mn(t2, e2, r2 = {}) { - if (In[t2]) - throw new Error(`${t2} is already registered.`); - Object.defineProperty(e2, "_classRegistryKey", { value: t2, writeable: false }), In[t2] = { klass: e2, omit: r2.omit || [], shallow: r2.shallow || [] }; - } - Mn("Object", Object), Mn("TransferableGridIndex", Sn), Mn("Color", Ft), Mn("Error", Error), Mn("AJAXError", q), Mn("ResolvedImage", Rt), Mn("StylePropertyFunction", $r), Mn("StyleExpression", Vr, { omit: ["_evaluator"] }), Mn("ZoomDependentExpression", Lr), Mn("ZoomConstantExpression", Tr), Mn("CompoundExpression", Wt, { omit: ["_evaluate"] }); - for (const t2 in fr) - fr[t2]._classRegistryKey || Mn(`Expression_${t2}`, fr[t2]); - function zn(t2) { + }, Vn.prototype._convertFromCellCoord = function(t2) { + return (t2 - this.padding) / this.scale; + }, Vn.prototype._convertToCellCoord = function(t2) { + return Math.max(0, Math.min(this.d - 1, Math.floor(t2 * this.scale) + this.padding)); + }, Vn.prototype.toArrayBuffer = function() { + if (this.arrayBuffer) + return this.arrayBuffer; + for (var t2 = this.cells, e2 = 3 + this.cells.length + 1 + 1, r2 = 0, n2 = 0; n2 < this.cells.length; n2++) + r2 += this.cells[n2].length; + var i2 = new Int32Array(e2 + r2 + this.keys.length + this.bboxes.length); + i2[0] = this.extent, i2[1] = this.n, i2[2] = this.padding; + for (var a2 = e2, o2 = 0; o2 < t2.length; o2++) { + var s2 = t2[o2]; + i2[3 + o2] = a2, i2.set(s2, a2), a2 += s2.length; + } + return i2[3 + t2.length] = a2, i2.set(this.keys, a2), i2[3 + t2.length + 1] = a2 += this.keys.length, i2.set(this.bboxes, a2), a2 += this.bboxes.length, i2.buffer; + }; + var Fn = o.ImageData, Dn = o.ImageBitmap, Ln = {}; + function On(t2, e2, r2) { + void 0 === r2 && (r2 = {}), Object.defineProperty(e2, "_classRegistryKey", { value: t2, writeable: false }), Ln[t2] = { klass: e2, omit: r2.omit || [], shallow: r2.shallow || [] }; + } + for (var Rn in On("Object", Object), Tn.serialize = function(t2, e2) { + var r2 = t2.toArrayBuffer(); + return e2 && e2.push(r2), { buffer: r2 }; + }, Tn.deserialize = function(t2) { + return new Tn(t2.buffer); + }, On("Grid", Tn), On("Color", te), On("Error", Error), On("ResolvedImage", ie), On("StylePropertyFunction", Yr), On("StyleExpression", Kr, { omit: ["_evaluator"] }), On("ZoomDependentExpression", Jr), On("ZoomConstantExpression", Xr), On("CompoundExpression", xe, { omit: ["_evaluate"] }), Ir) + Ir[Rn]._classRegistryKey || On("Expression_" + Rn, Ir[Rn]); + function Un(t2) { return t2 && "undefined" != typeof ArrayBuffer && (t2 instanceof ArrayBuffer || t2.constructor && "ArrayBuffer" === t2.constructor.name); } - function Bn(t2, e2) { - if (null == t2 || "boolean" == typeof t2 || "number" == typeof t2 || "string" == typeof t2 || t2 instanceof Boolean || t2 instanceof Number || t2 instanceof String || t2 instanceof Date || t2 instanceof RegExp || t2 instanceof Blob) + function jn(t2) { + return Dn && t2 instanceof Dn; + } + function qn(t2, e2) { + if (null == t2 || "boolean" == typeof t2 || "number" == typeof t2 || "string" == typeof t2 || t2 instanceof Boolean || t2 instanceof Number || t2 instanceof String || t2 instanceof Date || t2 instanceof RegExp) return t2; - if (zn(t2)) - return e2 && e2.push(t2), t2; - if (A2(t2)) + if (Un(t2) || jn(t2)) return e2 && e2.push(t2), t2; if (ArrayBuffer.isView(t2)) { - const r2 = t2; + var r2 = t2; return e2 && e2.push(r2.buffer), r2; } - if (t2 instanceof ImageData) + if (t2 instanceof Fn) return e2 && e2.push(t2.data.buffer), t2; if (Array.isArray(t2)) { - const r2 = []; - for (const n2 of t2) - r2.push(Bn(n2, e2)); - return r2; + for (var n2 = [], i2 = 0, a2 = t2; i2 < a2.length; i2 += 1) + n2.push(qn(a2[i2], e2)); + return n2; } if ("object" == typeof t2) { - const r2 = t2.constructor, n2 = r2._classRegistryKey; - if (!n2) + var o2 = t2.constructor, s2 = o2._classRegistryKey; + if (!s2) throw new Error("can't serialize object of unregistered class"); - if (!In[n2]) - throw new Error(`${n2} is not registered.`); - const i2 = r2.serialize ? r2.serialize(t2, e2) : {}; - if (r2.serialize) { - if (e2 && i2 === e2[e2.length - 1]) - throw new Error("statically serialized object won't survive transfer of $name property"); - } else { - for (const r3 in t2) { - if (!t2.hasOwnProperty(r3)) - continue; - if (In[n2].omit.indexOf(r3) >= 0) - continue; - const a2 = t2[r3]; - i2[r3] = In[n2].shallow.indexOf(r3) >= 0 ? a2 : Bn(a2, e2); - } - t2 instanceof Error && (i2.message = t2.message); + var u2 = o2.serialize ? o2.serialize(t2, e2) : {}; + if (!o2.serialize) { + for (var l2 in t2) + if (t2.hasOwnProperty(l2) && !(Ln[s2].omit.indexOf(l2) >= 0)) { + var p3 = t2[l2]; + u2[l2] = Ln[s2].shallow.indexOf(l2) >= 0 ? p3 : qn(p3, e2); + } + t2 instanceof Error && (u2.message = t2.message); } - if (i2.$name) + if (u2.$name) throw new Error("$name property is reserved for worker serialization logic."); - return "Object" !== n2 && (i2.$name = n2), i2; + return "Object" !== s2 && (u2.$name = s2), u2; } throw new Error("can't serialize object of type " + typeof t2); } - function Cn(t2) { - if (null == t2 || "boolean" == typeof t2 || "number" == typeof t2 || "string" == typeof t2 || t2 instanceof Boolean || t2 instanceof Number || t2 instanceof String || t2 instanceof Date || t2 instanceof RegExp || t2 instanceof Blob || zn(t2) || A2(t2) || ArrayBuffer.isView(t2) || t2 instanceof ImageData) + function Nn(t2) { + if (null == t2 || "boolean" == typeof t2 || "number" == typeof t2 || "string" == typeof t2 || t2 instanceof Boolean || t2 instanceof Number || t2 instanceof String || t2 instanceof Date || t2 instanceof RegExp || Un(t2) || jn(t2) || ArrayBuffer.isView(t2) || t2 instanceof Fn) return t2; if (Array.isArray(t2)) - return t2.map(Cn); + return t2.map(Nn); if ("object" == typeof t2) { - const e2 = t2.$name || "Object"; - if (!In[e2]) - throw new Error(`can't deserialize unregistered class ${e2}`); - const { klass: r2 } = In[e2]; + var e2 = t2.$name || "Object", r2 = Ln[e2].klass; if (!r2) - throw new Error(`can't deserialize unregistered class ${e2}`); + throw new Error("can't deserialize unregistered class " + e2); if (r2.deserialize) return r2.deserialize(t2); - const n2 = Object.create(r2.prototype); - for (const r3 of Object.keys(t2)) { - if ("$name" === r3) - continue; - const i2 = t2[r3]; - n2[r3] = In[e2].shallow.indexOf(r3) >= 0 ? i2 : Cn(i2); + for (var n2 = Object.create(r2.prototype), i2 = 0, a2 = Object.keys(t2); i2 < a2.length; i2 += 1) { + var o2 = a2[i2]; + if ("$name" !== o2) { + var s2 = t2[o2]; + n2[o2] = Ln[e2].shallow.indexOf(o2) >= 0 ? s2 : Nn(s2); + } } return n2; } throw new Error("can't deserialize object of type " + typeof t2); } - class Pn { - constructor() { - this.first = true; - } - update(t2, e2) { - const r2 = Math.floor(t2); - return this.first ? (this.first = false, this.lastIntegerZoom = r2, this.lastIntegerZoomTime = 0, this.lastZoom = t2, this.lastFloorZoom = r2, true) : (this.lastFloorZoom > r2 ? (this.lastIntegerZoom = r2 + 1, this.lastIntegerZoomTime = e2) : this.lastFloorZoom < r2 && (this.lastIntegerZoom = r2, this.lastIntegerZoomTime = e2), t2 !== this.lastZoom && (this.lastZoom = t2, this.lastFloorZoom = r2, true)); - } - } - const Vn = { "Latin-1 Supplement": (t2) => t2 >= 128 && t2 <= 255, Arabic: (t2) => t2 >= 1536 && t2 <= 1791, "Arabic Supplement": (t2) => t2 >= 1872 && t2 <= 1919, "Arabic Extended-A": (t2) => t2 >= 2208 && t2 <= 2303, "Hangul Jamo": (t2) => t2 >= 4352 && t2 <= 4607, "Unified Canadian Aboriginal Syllabics": (t2) => t2 >= 5120 && t2 <= 5759, Khmer: (t2) => t2 >= 6016 && t2 <= 6143, "Unified Canadian Aboriginal Syllabics Extended": (t2) => t2 >= 6320 && t2 <= 6399, "General Punctuation": (t2) => t2 >= 8192 && t2 <= 8303, "Letterlike Symbols": (t2) => t2 >= 8448 && t2 <= 8527, "Number Forms": (t2) => t2 >= 8528 && t2 <= 8591, "Miscellaneous Technical": (t2) => t2 >= 8960 && t2 <= 9215, "Control Pictures": (t2) => t2 >= 9216 && t2 <= 9279, "Optical Character Recognition": (t2) => t2 >= 9280 && t2 <= 9311, "Enclosed Alphanumerics": (t2) => t2 >= 9312 && t2 <= 9471, "Geometric Shapes": (t2) => t2 >= 9632 && t2 <= 9727, "Miscellaneous Symbols": (t2) => t2 >= 9728 && t2 <= 9983, "Miscellaneous Symbols and Arrows": (t2) => t2 >= 11008 && t2 <= 11263, "CJK Radicals Supplement": (t2) => t2 >= 11904 && t2 <= 12031, "Kangxi Radicals": (t2) => t2 >= 12032 && t2 <= 12255, "Ideographic Description Characters": (t2) => t2 >= 12272 && t2 <= 12287, "CJK Symbols and Punctuation": (t2) => t2 >= 12288 && t2 <= 12351, Hiragana: (t2) => t2 >= 12352 && t2 <= 12447, Katakana: (t2) => t2 >= 12448 && t2 <= 12543, Bopomofo: (t2) => t2 >= 12544 && t2 <= 12591, "Hangul Compatibility Jamo": (t2) => t2 >= 12592 && t2 <= 12687, Kanbun: (t2) => t2 >= 12688 && t2 <= 12703, "Bopomofo Extended": (t2) => t2 >= 12704 && t2 <= 12735, "CJK Strokes": (t2) => t2 >= 12736 && t2 <= 12783, "Katakana Phonetic Extensions": (t2) => t2 >= 12784 && t2 <= 12799, "Enclosed CJK Letters and Months": (t2) => t2 >= 12800 && t2 <= 13055, "CJK Compatibility": (t2) => t2 >= 13056 && t2 <= 13311, "CJK Unified Ideographs Extension A": (t2) => t2 >= 13312 && t2 <= 19903, "Yijing Hexagram Symbols": (t2) => t2 >= 19904 && t2 <= 19967, "CJK Unified Ideographs": (t2) => t2 >= 19968 && t2 <= 40959, "Yi Syllables": (t2) => t2 >= 40960 && t2 <= 42127, "Yi Radicals": (t2) => t2 >= 42128 && t2 <= 42191, "Hangul Jamo Extended-A": (t2) => t2 >= 43360 && t2 <= 43391, "Hangul Syllables": (t2) => t2 >= 44032 && t2 <= 55215, "Hangul Jamo Extended-B": (t2) => t2 >= 55216 && t2 <= 55295, "Private Use Area": (t2) => t2 >= 57344 && t2 <= 63743, "CJK Compatibility Ideographs": (t2) => t2 >= 63744 && t2 <= 64255, "Arabic Presentation Forms-A": (t2) => t2 >= 64336 && t2 <= 65023, "Vertical Forms": (t2) => t2 >= 65040 && t2 <= 65055, "CJK Compatibility Forms": (t2) => t2 >= 65072 && t2 <= 65103, "Small Form Variants": (t2) => t2 >= 65104 && t2 <= 65135, "Arabic Presentation Forms-B": (t2) => t2 >= 65136 && t2 <= 65279, "Halfwidth and Fullwidth Forms": (t2) => t2 >= 65280 && t2 <= 65519 }; - function En(t2) { - for (const e2 of t2) - if (Ln(e2.charCodeAt(0))) + var Kn = function() { + this.first = true; + }; + Kn.prototype.update = function(t2, e2) { + var r2 = Math.floor(t2); + return this.first ? (this.first = false, this.lastIntegerZoom = r2, this.lastIntegerZoomTime = 0, this.lastZoom = t2, this.lastFloorZoom = r2, true) : (this.lastFloorZoom > r2 ? (this.lastIntegerZoom = r2 + 1, this.lastIntegerZoomTime = e2) : this.lastFloorZoom < r2 && (this.lastIntegerZoom = r2, this.lastIntegerZoomTime = e2), t2 !== this.lastZoom && (this.lastZoom = t2, this.lastFloorZoom = r2, true)); + }; + var Gn = { "Latin-1 Supplement": function(t2) { + return t2 >= 128 && t2 <= 255; + }, Arabic: function(t2) { + return t2 >= 1536 && t2 <= 1791; + }, "Arabic Supplement": function(t2) { + return t2 >= 1872 && t2 <= 1919; + }, "Arabic Extended-A": function(t2) { + return t2 >= 2208 && t2 <= 2303; + }, "Hangul Jamo": function(t2) { + return t2 >= 4352 && t2 <= 4607; + }, "Unified Canadian Aboriginal Syllabics": function(t2) { + return t2 >= 5120 && t2 <= 5759; + }, Khmer: function(t2) { + return t2 >= 6016 && t2 <= 6143; + }, "Unified Canadian Aboriginal Syllabics Extended": function(t2) { + return t2 >= 6320 && t2 <= 6399; + }, "General Punctuation": function(t2) { + return t2 >= 8192 && t2 <= 8303; + }, "Letterlike Symbols": function(t2) { + return t2 >= 8448 && t2 <= 8527; + }, "Number Forms": function(t2) { + return t2 >= 8528 && t2 <= 8591; + }, "Miscellaneous Technical": function(t2) { + return t2 >= 8960 && t2 <= 9215; + }, "Control Pictures": function(t2) { + return t2 >= 9216 && t2 <= 9279; + }, "Optical Character Recognition": function(t2) { + return t2 >= 9280 && t2 <= 9311; + }, "Enclosed Alphanumerics": function(t2) { + return t2 >= 9312 && t2 <= 9471; + }, "Geometric Shapes": function(t2) { + return t2 >= 9632 && t2 <= 9727; + }, "Miscellaneous Symbols": function(t2) { + return t2 >= 9728 && t2 <= 9983; + }, "Miscellaneous Symbols and Arrows": function(t2) { + return t2 >= 11008 && t2 <= 11263; + }, "CJK Radicals Supplement": function(t2) { + return t2 >= 11904 && t2 <= 12031; + }, "Kangxi Radicals": function(t2) { + return t2 >= 12032 && t2 <= 12255; + }, "Ideographic Description Characters": function(t2) { + return t2 >= 12272 && t2 <= 12287; + }, "CJK Symbols and Punctuation": function(t2) { + return t2 >= 12288 && t2 <= 12351; + }, Hiragana: function(t2) { + return t2 >= 12352 && t2 <= 12447; + }, Katakana: function(t2) { + return t2 >= 12448 && t2 <= 12543; + }, Bopomofo: function(t2) { + return t2 >= 12544 && t2 <= 12591; + }, "Hangul Compatibility Jamo": function(t2) { + return t2 >= 12592 && t2 <= 12687; + }, Kanbun: function(t2) { + return t2 >= 12688 && t2 <= 12703; + }, "Bopomofo Extended": function(t2) { + return t2 >= 12704 && t2 <= 12735; + }, "CJK Strokes": function(t2) { + return t2 >= 12736 && t2 <= 12783; + }, "Katakana Phonetic Extensions": function(t2) { + return t2 >= 12784 && t2 <= 12799; + }, "Enclosed CJK Letters and Months": function(t2) { + return t2 >= 12800 && t2 <= 13055; + }, "CJK Compatibility": function(t2) { + return t2 >= 13056 && t2 <= 13311; + }, "CJK Unified Ideographs Extension A": function(t2) { + return t2 >= 13312 && t2 <= 19903; + }, "Yijing Hexagram Symbols": function(t2) { + return t2 >= 19904 && t2 <= 19967; + }, "CJK Unified Ideographs": function(t2) { + return t2 >= 19968 && t2 <= 40959; + }, "Yi Syllables": function(t2) { + return t2 >= 40960 && t2 <= 42127; + }, "Yi Radicals": function(t2) { + return t2 >= 42128 && t2 <= 42191; + }, "Hangul Jamo Extended-A": function(t2) { + return t2 >= 43360 && t2 <= 43391; + }, "Hangul Syllables": function(t2) { + return t2 >= 44032 && t2 <= 55215; + }, "Hangul Jamo Extended-B": function(t2) { + return t2 >= 55216 && t2 <= 55295; + }, "Private Use Area": function(t2) { + return t2 >= 57344 && t2 <= 63743; + }, "CJK Compatibility Ideographs": function(t2) { + return t2 >= 63744 && t2 <= 64255; + }, "Arabic Presentation Forms-A": function(t2) { + return t2 >= 64336 && t2 <= 65023; + }, "Vertical Forms": function(t2) { + return t2 >= 65040 && t2 <= 65055; + }, "CJK Compatibility Forms": function(t2) { + return t2 >= 65072 && t2 <= 65103; + }, "Small Form Variants": function(t2) { + return t2 >= 65104 && t2 <= 65135; + }, "Arabic Presentation Forms-B": function(t2) { + return t2 >= 65136 && t2 <= 65279; + }, "Halfwidth and Fullwidth Forms": function(t2) { + return t2 >= 65280 && t2 <= 65519; + } }; + function Zn(t2) { + for (var e2 = 0, r2 = t2; e2 < r2.length; e2 += 1) + if (Xn(r2[e2].charCodeAt(0))) return true; return false; } - function Fn(t2) { - for (const e2 of t2) - if (!Tn(e2.charCodeAt(0))) - return false; - return true; - } - function Tn(t2) { - return !(Vn.Arabic(t2) || Vn["Arabic Supplement"](t2) || Vn["Arabic Extended-A"](t2) || Vn["Arabic Presentation Forms-A"](t2) || Vn["Arabic Presentation Forms-B"](t2)); - } - function Ln(t2) { - return !(746 !== t2 && 747 !== t2 && (t2 < 4352 || !(Vn["Bopomofo Extended"](t2) || Vn.Bopomofo(t2) || Vn["CJK Compatibility Forms"](t2) && !(t2 >= 65097 && t2 <= 65103) || Vn["CJK Compatibility Ideographs"](t2) || Vn["CJK Compatibility"](t2) || Vn["CJK Radicals Supplement"](t2) || Vn["CJK Strokes"](t2) || !(!Vn["CJK Symbols and Punctuation"](t2) || t2 >= 12296 && t2 <= 12305 || t2 >= 12308 && t2 <= 12319 || 12336 === t2) || Vn["CJK Unified Ideographs Extension A"](t2) || Vn["CJK Unified Ideographs"](t2) || Vn["Enclosed CJK Letters and Months"](t2) || Vn["Hangul Compatibility Jamo"](t2) || Vn["Hangul Jamo Extended-A"](t2) || Vn["Hangul Jamo Extended-B"](t2) || Vn["Hangul Jamo"](t2) || Vn["Hangul Syllables"](t2) || Vn.Hiragana(t2) || Vn["Ideographic Description Characters"](t2) || Vn.Kanbun(t2) || Vn["Kangxi Radicals"](t2) || Vn["Katakana Phonetic Extensions"](t2) || Vn.Katakana(t2) && 12540 !== t2 || !(!Vn["Halfwidth and Fullwidth Forms"](t2) || 65288 === t2 || 65289 === t2 || 65293 === t2 || t2 >= 65306 && t2 <= 65310 || 65339 === t2 || 65341 === t2 || 65343 === t2 || t2 >= 65371 && t2 <= 65503 || 65507 === t2 || t2 >= 65512 && t2 <= 65519) || !(!Vn["Small Form Variants"](t2) || t2 >= 65112 && t2 <= 65118 || t2 >= 65123 && t2 <= 65126) || Vn["Unified Canadian Aboriginal Syllabics"](t2) || Vn["Unified Canadian Aboriginal Syllabics Extended"](t2) || Vn["Vertical Forms"](t2) || Vn["Yijing Hexagram Symbols"](t2) || Vn["Yi Syllables"](t2) || Vn["Yi Radicals"](t2)))); + function Xn(t2) { + return !(746 !== t2 && 747 !== t2 && (t2 < 4352 || !(Gn["Bopomofo Extended"](t2) || Gn.Bopomofo(t2) || Gn["CJK Compatibility Forms"](t2) && !(t2 >= 65097 && t2 <= 65103) || Gn["CJK Compatibility Ideographs"](t2) || Gn["CJK Compatibility"](t2) || Gn["CJK Radicals Supplement"](t2) || Gn["CJK Strokes"](t2) || !(!Gn["CJK Symbols and Punctuation"](t2) || t2 >= 12296 && t2 <= 12305 || t2 >= 12308 && t2 <= 12319 || 12336 === t2) || Gn["CJK Unified Ideographs Extension A"](t2) || Gn["CJK Unified Ideographs"](t2) || Gn["Enclosed CJK Letters and Months"](t2) || Gn["Hangul Compatibility Jamo"](t2) || Gn["Hangul Jamo Extended-A"](t2) || Gn["Hangul Jamo Extended-B"](t2) || Gn["Hangul Jamo"](t2) || Gn["Hangul Syllables"](t2) || Gn.Hiragana(t2) || Gn["Ideographic Description Characters"](t2) || Gn.Kanbun(t2) || Gn["Kangxi Radicals"](t2) || Gn["Katakana Phonetic Extensions"](t2) || Gn.Katakana(t2) && 12540 !== t2 || !(!Gn["Halfwidth and Fullwidth Forms"](t2) || 65288 === t2 || 65289 === t2 || 65293 === t2 || t2 >= 65306 && t2 <= 65310 || 65339 === t2 || 65341 === t2 || 65343 === t2 || t2 >= 65371 && t2 <= 65503 || 65507 === t2 || t2 >= 65512 && t2 <= 65519) || !(!Gn["Small Form Variants"](t2) || t2 >= 65112 && t2 <= 65118 || t2 >= 65123 && t2 <= 65126) || Gn["Unified Canadian Aboriginal Syllabics"](t2) || Gn["Unified Canadian Aboriginal Syllabics Extended"](t2) || Gn["Vertical Forms"](t2) || Gn["Yijing Hexagram Symbols"](t2) || Gn["Yi Syllables"](t2) || Gn["Yi Radicals"](t2)))); } - function Dn(t2) { - return !(Ln(t2) || function(t3) { - return !!(Vn["Latin-1 Supplement"](t3) && (167 === t3 || 169 === t3 || 174 === t3 || 177 === t3 || 188 === t3 || 189 === t3 || 190 === t3 || 215 === t3 || 247 === t3) || Vn["General Punctuation"](t3) && (8214 === t3 || 8224 === t3 || 8225 === t3 || 8240 === t3 || 8241 === t3 || 8251 === t3 || 8252 === t3 || 8258 === t3 || 8263 === t3 || 8264 === t3 || 8265 === t3 || 8273 === t3) || Vn["Letterlike Symbols"](t3) || Vn["Number Forms"](t3) || Vn["Miscellaneous Technical"](t3) && (t3 >= 8960 && t3 <= 8967 || t3 >= 8972 && t3 <= 8991 || t3 >= 8996 && t3 <= 9e3 || 9003 === t3 || t3 >= 9085 && t3 <= 9114 || t3 >= 9150 && t3 <= 9165 || 9167 === t3 || t3 >= 9169 && t3 <= 9179 || t3 >= 9186 && t3 <= 9215) || Vn["Control Pictures"](t3) && 9251 !== t3 || Vn["Optical Character Recognition"](t3) || Vn["Enclosed Alphanumerics"](t3) || Vn["Geometric Shapes"](t3) || Vn["Miscellaneous Symbols"](t3) && !(t3 >= 9754 && t3 <= 9759) || Vn["Miscellaneous Symbols and Arrows"](t3) && (t3 >= 11026 && t3 <= 11055 || t3 >= 11088 && t3 <= 11097 || t3 >= 11192 && t3 <= 11243) || Vn["CJK Symbols and Punctuation"](t3) || Vn.Katakana(t3) || Vn["Private Use Area"](t3) || Vn["CJK Compatibility Forms"](t3) || Vn["Small Form Variants"](t3) || Vn["Halfwidth and Fullwidth Forms"](t3) || 8734 === t3 || 8756 === t3 || 8757 === t3 || t3 >= 9984 && t3 <= 10087 || t3 >= 10102 && t3 <= 10131 || 65532 === t3 || 65533 === t3); + function Jn(t2) { + return !(Xn(t2) || function(t3) { + return !!(Gn["Latin-1 Supplement"](t3) && (167 === t3 || 169 === t3 || 174 === t3 || 177 === t3 || 188 === t3 || 189 === t3 || 190 === t3 || 215 === t3 || 247 === t3) || Gn["General Punctuation"](t3) && (8214 === t3 || 8224 === t3 || 8225 === t3 || 8240 === t3 || 8241 === t3 || 8251 === t3 || 8252 === t3 || 8258 === t3 || 8263 === t3 || 8264 === t3 || 8265 === t3 || 8273 === t3) || Gn["Letterlike Symbols"](t3) || Gn["Number Forms"](t3) || Gn["Miscellaneous Technical"](t3) && (t3 >= 8960 && t3 <= 8967 || t3 >= 8972 && t3 <= 8991 || t3 >= 8996 && t3 <= 9e3 || 9003 === t3 || t3 >= 9085 && t3 <= 9114 || t3 >= 9150 && t3 <= 9165 || 9167 === t3 || t3 >= 9169 && t3 <= 9179 || t3 >= 9186 && t3 <= 9215) || Gn["Control Pictures"](t3) && 9251 !== t3 || Gn["Optical Character Recognition"](t3) || Gn["Enclosed Alphanumerics"](t3) || Gn["Geometric Shapes"](t3) || Gn["Miscellaneous Symbols"](t3) && !(t3 >= 9754 && t3 <= 9759) || Gn["Miscellaneous Symbols and Arrows"](t3) && (t3 >= 11026 && t3 <= 11055 || t3 >= 11088 && t3 <= 11097 || t3 >= 11192 && t3 <= 11243) || Gn["CJK Symbols and Punctuation"](t3) || Gn.Katakana(t3) || Gn["Private Use Area"](t3) || Gn["CJK Compatibility Forms"](t3) || Gn["Small Form Variants"](t3) || Gn["Halfwidth and Fullwidth Forms"](t3) || 8734 === t3 || 8756 === t3 || 8757 === t3 || t3 >= 9984 && t3 <= 10087 || t3 >= 10102 && t3 <= 10131 || 65532 === t3 || 65533 === t3); }(t2)); } - function $n(t2) { - return t2 >= 1424 && t2 <= 2303 || Vn["Arabic Presentation Forms-A"](t2) || Vn["Arabic Presentation Forms-B"](t2); + function Hn(t2) { + return t2 >= 1424 && t2 <= 2303 || Gn["Arabic Presentation Forms-A"](t2) || Gn["Arabic Presentation Forms-B"](t2); } - function Rn(t2, e2) { - return !(!e2 && $n(t2) || t2 >= 2304 && t2 <= 3583 || t2 >= 3840 && t2 <= 4255 || Vn.Khmer(t2)); + function Yn(t2, e2) { + return !(!e2 && Hn(t2) || t2 >= 2304 && t2 <= 3583 || t2 >= 3840 && t2 <= 4255 || Gn.Khmer(t2)); } - function On(t2) { - for (const e2 of t2) - if ($n(e2.charCodeAt(0))) + function $n(t2) { + for (var e2 = 0, r2 = t2; e2 < r2.length; e2 += 1) + if (Hn(r2[e2].charCodeAt(0))) return true; return false; } - const Un = "deferred", qn = "loading", jn = "loaded"; - let Nn = null, Zn = "unavailable", Kn = null; - const Gn = function(t2) { - t2 && "string" == typeof t2 && t2.indexOf("NetworkError") > -1 && (Zn = "error"), Nn && Nn(t2); + var Wn = null, Qn = "unavailable", ti = null, ei = function(t2) { + t2 && "string" == typeof t2 && t2.indexOf("NetworkError") > -1 && (Qn = "error"), Wn && Wn(t2); }; - function Jn() { - Xn.fire(new tt("pluginStateChange", { pluginStatus: Zn, pluginURL: Kn })); + function ri() { + ni.fire(new It("pluginStateChange", { pluginStatus: Qn, pluginURL: ti })); } - const Xn = new rt(), Yn = function() { - return Zn; - }, Hn = function() { - if (Zn !== Un || !Kn) + var ni = new Ct(), ii = function() { + return Qn; + }, ai = function() { + if ("deferred" !== Qn || !ti) throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified"); - Zn = qn, Jn(), Kn && K({ url: Kn }, (t2) => { - t2 ? Gn(t2) : (Zn = jn, Jn()); + Qn = "loading", ri(), ti && bt({ url: ti }, function(t2) { + t2 ? ei(t2) : (Qn = "loaded", ri()); }); - }, Wn = { applyArabicShaping: null, processBidirectionalText: null, processStyledBidirectionalText: null, isLoaded: () => Zn === jn || null != Wn.applyArabicShaping, isLoading: () => Zn === qn, setState(t2) { - if (!g()) - throw new Error("Cannot set the state of the rtl-text-plugin when not in the web-worker context"); - Zn = t2.pluginStatus, Kn = t2.pluginURL; - }, isParsed() { - if (!g()) - throw new Error("rtl-text-plugin is only parsed on the worker-threads"); - return null != Wn.applyArabicShaping && null != Wn.processBidirectionalText && null != Wn.processStyledBidirectionalText; - }, getPluginURL() { - if (!g()) - throw new Error("rtl-text-plugin url can only be queried from the worker threads"); - return Kn; - } }; - class Qn { - constructor(t2, e2) { - this.zoom = t2, e2 ? (this.now = e2.now, this.fadeDuration = e2.fadeDuration, this.zoomHistory = e2.zoomHistory, this.transition = e2.transition) : (this.now = 0, this.fadeDuration = 0, this.zoomHistory = new Pn(), this.transition = {}); - } - isSupportedScript(t2) { - return function(t3, e2) { - for (const r2 of t3) - if (!Rn(r2.charCodeAt(0), e2)) - return false; - return true; - }(t2, Wn.isLoaded()); - } - crossFadingFactor() { - return 0 === this.fadeDuration ? 1 : Math.min((this.now - this.zoomHistory.lastIntegerZoomTime) / this.fadeDuration, 1); - } - getCrossfadeParameters() { - const t2 = this.zoom, e2 = t2 - Math.floor(t2), r2 = this.crossFadingFactor(); - return t2 > this.zoomHistory.lastIntegerZoom ? { fromScale: 2, toScale: 1, t: e2 + (1 - e2) * r2 } : { fromScale: 0.5, toScale: 1, t: 1 - (1 - r2) * e2 }; - } - } - class ti { - constructor(t2, e2) { - this.property = t2, this.value = e2, this.expression = function(t3, e3) { - if (kr(t3)) - return new $r(t3, e3); - if (Er(t3)) { - const r2 = Dr(t3, e3); - if ("error" === r2.result) - throw new Error(r2.value.map((t4) => `${t4.key}: ${t4.message}`).join(", ")); - return r2.value; - } - { - let r2 = t3; - return "color" === e3.type && "string" == typeof t3 ? r2 = Ft.parse(t3) : "padding" !== e3.type || "number" != typeof t3 && !Array.isArray(t3) || (r2 = $t.parse(t3)), { kind: "constant", evaluate: () => r2 }; - } - }(void 0 === e2 ? t2.specification.default : e2, t2.specification); - } - isDataDriven() { - return "source" === this.expression.kind || "composite" === this.expression.kind; - } - possiblyEvaluate(t2, e2, r2) { - return this.property.possiblyEvaluate(this, t2, e2, r2); - } - } - class ei { - constructor(t2) { - this.property = t2, this.value = new ti(t2, void 0); - } - transitioned(t2, e2) { - return new ni(this.property, this.value, e2, o({}, t2.transition, this.transition), t2.now); - } - untransitioned() { - return new ni(this.property, this.value, null, {}, 0); - } - } - class ri { - constructor(t2) { - this._properties = t2, this._values = Object.create(t2.defaultTransitionablePropertyValues); - } - getValue(t2) { - return p2(this._values[t2].value.value); - } - setValue(t2, e2) { - Object.prototype.hasOwnProperty.call(this._values, t2) || (this._values[t2] = new ei(this._values[t2].property)), this._values[t2].value = new ti(this._values[t2].property, null === e2 ? void 0 : p2(e2)); - } - getTransition(t2) { - return p2(this._values[t2].transition); - } - setTransition(t2, e2) { - Object.prototype.hasOwnProperty.call(this._values, t2) || (this._values[t2] = new ei(this._values[t2].property)), this._values[t2].transition = p2(e2) || void 0; - } - serialize() { - const t2 = {}; - for (const e2 of Object.keys(this._values)) { - const r2 = this.getValue(e2); - void 0 !== r2 && (t2[e2] = r2); - const n2 = this.getTransition(e2); - void 0 !== n2 && (t2[`${e2}-transition`] = n2); - } - return t2; - } - transitioned(t2, e2) { - const r2 = new ii(this._properties); - for (const n2 of Object.keys(this._values)) - r2._values[n2] = this._values[n2].transitioned(t2, e2._values[n2]); - return r2; - } - untransitioned() { - const t2 = new ii(this._properties); - for (const e2 of Object.keys(this._values)) - t2._values[e2] = this._values[e2].untransitioned(); - return t2; - } - } - class ni { - constructor(t2, e2, r2, n2, i2) { - this.property = t2, this.value = e2, this.begin = i2 + n2.delay || 0, this.end = this.begin + n2.duration || 0, t2.specification.transition && (n2.delay || n2.duration) && (this.prior = r2); - } - possiblyEvaluate(t2, e2, r2) { - const n2 = t2.now || 0, i2 = this.value.possiblyEvaluate(t2, e2, r2), a2 = this.prior; - if (a2) { - if (n2 > this.end) - return this.prior = null, i2; - if (this.value.isDataDriven()) - return this.prior = null, i2; - if (n2 < this.begin) - return a2.possiblyEvaluate(t2, e2, r2); - { - const s2 = (n2 - this.begin) / (this.end - this.begin); - return this.property.interpolate(a2.possiblyEvaluate(t2, e2, r2), i2, function(t3) { - if (t3 <= 0) - return 0; - if (t3 >= 1) - return 1; - const e3 = t3 * t3, r3 = e3 * t3; - return 4 * (t3 < 0.5 ? r3 : 3 * (t3 - e3) + r3 - 0.75); - }(s2)); - } - } - return i2; + }, oi = { applyArabicShaping: null, processBidirectionalText: null, processStyledBidirectionalText: null, isLoaded: function() { + return "loaded" === Qn || null != oi.applyArabicShaping; + }, isLoading: function() { + return "loading" === Qn; + }, setState: function(t2) { + Qn = t2.pluginStatus, ti = t2.pluginURL; + }, isParsed: function() { + return null != oi.applyArabicShaping && null != oi.processBidirectionalText && null != oi.processStyledBidirectionalText; + }, getPluginURL: function() { + return ti; + } }, si = function(t2, e2) { + this.zoom = t2, e2 ? (this.now = e2.now, this.fadeDuration = e2.fadeDuration, this.zoomHistory = e2.zoomHistory, this.transition = e2.transition) : (this.now = 0, this.fadeDuration = 0, this.zoomHistory = new Kn(), this.transition = {}); + }; + si.prototype.isSupportedScript = function(t2) { + return function(t3, e2) { + for (var r2 = 0, n2 = t3; r2 < n2.length; r2 += 1) + if (!Yn(n2[r2].charCodeAt(0), e2)) + return false; + return true; + }(t2, oi.isLoaded()); + }, si.prototype.crossFadingFactor = function() { + return 0 === this.fadeDuration ? 1 : Math.min((this.now - this.zoomHistory.lastIntegerZoomTime) / this.fadeDuration, 1); + }, si.prototype.getCrossfadeParameters = function() { + var t2 = this.zoom, e2 = t2 - Math.floor(t2), r2 = this.crossFadingFactor(); + return t2 > this.zoomHistory.lastIntegerZoom ? { fromScale: 2, toScale: 1, t: e2 + (1 - e2) * r2 } : { fromScale: 0.5, toScale: 1, t: 1 - (1 - r2) * e2 }; + }; + var ui = function(t2, e2) { + this.property = t2, this.value = e2, this.expression = function(t3, e3) { + if (Lr(t3)) + return new Yr(t3, e3); + if (Gr(t3)) { + var r2 = Hr(t3, e3); + if ("error" === r2.result) + throw new Error(r2.value.map(function(t4) { + return t4.key + ": " + t4.message; + }).join(", ")); + return r2.value; + } + var n2 = t3; + return "string" == typeof t3 && "color" === e3.type && (n2 = te.parse(t3)), { kind: "constant", evaluate: function() { + return n2; + } }; + }(void 0 === e2 ? t2.specification.default : e2, t2.specification); + }; + ui.prototype.isDataDriven = function() { + return "source" === this.expression.kind || "composite" === this.expression.kind; + }, ui.prototype.possiblyEvaluate = function(t2, e2, r2) { + return this.property.possiblyEvaluate(this, t2, e2, r2); + }; + var li = function(t2) { + this.property = t2, this.value = new ui(t2, void 0); + }; + li.prototype.transitioned = function(t2, e2) { + return new ci(this.property, this.value, e2, h2({}, t2.transition, this.transition), t2.now); + }, li.prototype.untransitioned = function() { + return new ci(this.property, this.value, null, {}, 0); + }; + var pi = function(t2) { + this._properties = t2, this._values = Object.create(t2.defaultTransitionablePropertyValues); + }; + pi.prototype.getValue = function(t2) { + return w(this._values[t2].value.value); + }, pi.prototype.setValue = function(t2, e2) { + this._values.hasOwnProperty(t2) || (this._values[t2] = new li(this._values[t2].property)), this._values[t2].value = new ui(this._values[t2].property, null === e2 ? void 0 : w(e2)); + }, pi.prototype.getTransition = function(t2) { + return w(this._values[t2].transition); + }, pi.prototype.setTransition = function(t2, e2) { + this._values.hasOwnProperty(t2) || (this._values[t2] = new li(this._values[t2].property)), this._values[t2].transition = w(e2) || void 0; + }, pi.prototype.serialize = function() { + for (var t2 = {}, e2 = 0, r2 = Object.keys(this._values); e2 < r2.length; e2 += 1) { + var n2 = r2[e2], i2 = this.getValue(n2); + void 0 !== i2 && (t2[n2] = i2); + var a2 = this.getTransition(n2); + void 0 !== a2 && (t2[n2 + "-transition"] = a2); } - } - class ii { - constructor(t2) { - this._properties = t2, this._values = Object.create(t2.defaultTransitioningPropertyValues); + return t2; + }, pi.prototype.transitioned = function(t2, e2) { + for (var r2 = new hi(this._properties), n2 = 0, i2 = Object.keys(this._values); n2 < i2.length; n2 += 1) { + var a2 = i2[n2]; + r2._values[a2] = this._values[a2].transitioned(t2, e2._values[a2]); } - possiblyEvaluate(t2, e2, r2) { - const n2 = new oi(this._properties); - for (const i2 of Object.keys(this._values)) - n2._values[i2] = this._values[i2].possiblyEvaluate(t2, e2, r2); - return n2; + return r2; + }, pi.prototype.untransitioned = function() { + for (var t2 = new hi(this._properties), e2 = 0, r2 = Object.keys(this._values); e2 < r2.length; e2 += 1) { + var n2 = r2[e2]; + t2._values[n2] = this._values[n2].untransitioned(); } - hasTransition() { - for (const t2 of Object.keys(this._values)) - if (this._values[t2].prior) - return true; - return false; + return t2; + }; + var ci = function(t2, e2, r2, n2, i2) { + this.property = t2, this.value = e2, this.begin = i2 + n2.delay || 0, this.end = this.begin + n2.duration || 0, t2.specification.transition && (n2.delay || n2.duration) && (this.prior = r2); + }; + ci.prototype.possiblyEvaluate = function(t2, e2, r2) { + var n2 = t2.now || 0, i2 = this.value.possiblyEvaluate(t2, e2, r2), a2 = this.prior; + if (a2) { + if (n2 > this.end) + return this.prior = null, i2; + if (this.value.isDataDriven()) + return this.prior = null, i2; + if (n2 < this.begin) + return a2.possiblyEvaluate(t2, e2, r2); + var o2 = (n2 - this.begin) / (this.end - this.begin); + return this.property.interpolate(a2.possiblyEvaluate(t2, e2, r2), i2, function(t3) { + if (t3 <= 0) + return 0; + if (t3 >= 1) + return 1; + var e3 = t3 * t3, r3 = e3 * t3; + return 4 * (t3 < 0.5 ? r3 : 3 * (t3 - e3) + r3 - 0.75); + }(o2)); } - } - class ai { - constructor(t2) { - this._properties = t2, this._values = Object.create(t2.defaultPropertyValues); + return i2; + }; + var hi = function(t2) { + this._properties = t2, this._values = Object.create(t2.defaultTransitioningPropertyValues); + }; + hi.prototype.possiblyEvaluate = function(t2, e2, r2) { + for (var n2 = new di(this._properties), i2 = 0, a2 = Object.keys(this._values); i2 < a2.length; i2 += 1) { + var o2 = a2[i2]; + n2._values[o2] = this._values[o2].possiblyEvaluate(t2, e2, r2); } - getValue(t2) { - return p2(this._values[t2].value); + return n2; + }, hi.prototype.hasTransition = function() { + for (var t2 = 0, e2 = Object.keys(this._values); t2 < e2.length; t2 += 1) + if (this._values[e2[t2]].prior) + return true; + return false; + }; + var fi = function(t2) { + this._properties = t2, this._values = Object.create(t2.defaultPropertyValues); + }; + fi.prototype.getValue = function(t2) { + return w(this._values[t2].value); + }, fi.prototype.setValue = function(t2, e2) { + this._values[t2] = new ui(this._values[t2].property, null === e2 ? void 0 : w(e2)); + }, fi.prototype.serialize = function() { + for (var t2 = {}, e2 = 0, r2 = Object.keys(this._values); e2 < r2.length; e2 += 1) { + var n2 = r2[e2], i2 = this.getValue(n2); + void 0 !== i2 && (t2[n2] = i2); } - setValue(t2, e2) { - this._values[t2] = new ti(this._values[t2].property, null === e2 ? void 0 : p2(e2)); + return t2; + }, fi.prototype.possiblyEvaluate = function(t2, e2, r2) { + for (var n2 = new di(this._properties), i2 = 0, a2 = Object.keys(this._values); i2 < a2.length; i2 += 1) { + var o2 = a2[i2]; + n2._values[o2] = this._values[o2].possiblyEvaluate(t2, e2, r2); } - serialize() { - const t2 = {}; - for (const e2 of Object.keys(this._values)) { - const r2 = this.getValue(e2); - void 0 !== r2 && (t2[e2] = r2); - } + return n2; + }; + var yi = function(t2, e2, r2) { + this.property = t2, this.value = e2, this.parameters = r2; + }; + yi.prototype.isConstant = function() { + return "constant" === this.value.kind; + }, yi.prototype.constantOr = function(t2) { + return "constant" === this.value.kind ? this.value.value : t2; + }, yi.prototype.evaluate = function(t2, e2, r2, n2) { + return this.property.evaluate(this.value, this.parameters, t2, e2, r2, n2); + }; + var di = function(t2) { + this._properties = t2, this._values = Object.create(t2.defaultPossiblyEvaluatedValues); + }; + di.prototype.get = function(t2) { + return this._values[t2]; + }; + var mi = function(t2) { + this.specification = t2; + }; + mi.prototype.possiblyEvaluate = function(t2, e2) { + return t2.expression.evaluate(e2); + }, mi.prototype.interpolate = function(t2, e2, r2) { + var n2 = Ge[this.specification.type]; + return n2 ? n2(t2, e2, r2) : t2; + }; + var vi = function(t2, e2) { + this.specification = t2, this.overrides = e2; + }; + vi.prototype.possiblyEvaluate = function(t2, e2, r2, n2) { + return new yi(this, "constant" === t2.expression.kind || "camera" === t2.expression.kind ? { kind: "constant", value: t2.expression.evaluate(e2, null, {}, r2, n2) } : t2.expression, e2); + }, vi.prototype.interpolate = function(t2, e2, r2) { + if ("constant" !== t2.value.kind || "constant" !== e2.value.kind) return t2; - } - possiblyEvaluate(t2, e2, r2) { - const n2 = new oi(this._properties); - for (const i2 of Object.keys(this._values)) - n2._values[i2] = this._values[i2].possiblyEvaluate(t2, e2, r2); - return n2; - } - } - class si { - constructor(t2, e2, r2) { - this.property = t2, this.value = e2, this.parameters = r2; - } - isConstant() { - return "constant" === this.value.kind; - } - constantOr(t2) { - return "constant" === this.value.kind ? this.value.value : t2; - } - evaluate(t2, e2, r2, n2) { - return this.property.evaluate(this.value, this.parameters, t2, e2, r2, n2); - } - } - class oi { - constructor(t2) { - this._properties = t2, this._values = Object.create(t2.defaultPossiblyEvaluatedValues); - } - get(t2) { - return this._values[t2]; - } - } - class li { - constructor(t2) { - this.specification = t2; - } - possiblyEvaluate(t2, e2) { - if (t2.isDataDriven()) - throw new Error("Value should not be data driven"); - return t2.expression.evaluate(e2); - } - interpolate(t2, e2, r2) { - const n2 = Ie[this.specification.type]; - return n2 ? n2(t2, e2, r2) : t2; - } - } - class ui { - constructor(t2, e2) { - this.specification = t2, this.overrides = e2; - } - possiblyEvaluate(t2, e2, r2, n2) { - return new si(this, "constant" === t2.expression.kind || "camera" === t2.expression.kind ? { kind: "constant", value: t2.expression.evaluate(e2, null, {}, r2, n2) } : t2.expression, e2); - } - interpolate(t2, e2, r2) { - if ("constant" !== t2.value.kind || "constant" !== e2.value.kind) - return t2; - if (void 0 === t2.value.value || void 0 === e2.value.value) - return new si(this, { kind: "constant", value: void 0 }, t2.parameters); - const n2 = Ie[this.specification.type]; - return n2 ? new si(this, { kind: "constant", value: n2(t2.value.value, e2.value.value, r2) }, t2.parameters) : t2; - } - evaluate(t2, e2, r2, n2, i2, a2) { - return "constant" === t2.kind ? t2.value : t2.evaluate(e2, r2, n2, i2, a2); - } - } - class ci extends ui { - possiblyEvaluate(t2, e2, r2, n2) { - if (void 0 === t2.value) - return new si(this, { kind: "constant", value: void 0 }, e2); + if (void 0 === t2.value.value || void 0 === e2.value.value) + return new yi(this, { kind: "constant", value: void 0 }, t2.parameters); + var n2 = Ge[this.specification.type]; + return n2 ? new yi(this, { kind: "constant", value: n2(t2.value.value, e2.value.value, r2) }, t2.parameters) : t2; + }, vi.prototype.evaluate = function(t2, e2, r2, n2, i2, a2) { + return "constant" === t2.kind ? t2.value : t2.evaluate(e2, r2, n2, i2, a2); + }; + var gi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.possiblyEvaluate = function(t3, e3, r2, n2) { + if (void 0 === t3.value) + return new yi(this, { kind: "constant", value: void 0 }, e3); + if ("constant" === t3.expression.kind) { + var i2 = t3.expression.evaluate(e3, null, {}, r2, n2), a2 = "resolvedImage" === t3.property.specification.type && "string" != typeof i2 ? i2.name : i2, o2 = this._calculate(a2, a2, a2, e3); + return new yi(this, { kind: "constant", value: o2 }, e3); + } + if ("camera" === t3.expression.kind) { + var s2 = this._calculate(t3.expression.evaluate({ zoom: e3.zoom - 1 }), t3.expression.evaluate({ zoom: e3.zoom }), t3.expression.evaluate({ zoom: e3.zoom + 1 }), e3); + return new yi(this, { kind: "constant", value: s2 }, e3); + } + return new yi(this, t3.expression, e3); + }, e2.prototype.evaluate = function(t3, e3, r2, n2, i2, a2) { + if ("source" === t3.kind) { + var o2 = t3.evaluate(e3, r2, n2, i2, a2); + return this._calculate(o2, o2, o2, e3); + } + return "composite" === t3.kind ? this._calculate(t3.evaluate({ zoom: Math.floor(e3.zoom) - 1 }, r2, n2), t3.evaluate({ zoom: Math.floor(e3.zoom) }, r2, n2), t3.evaluate({ zoom: Math.floor(e3.zoom) + 1 }, r2, n2), e3) : t3.value; + }, e2.prototype._calculate = function(t3, e3, r2, n2) { + return n2.zoom > n2.zoomHistory.lastIntegerZoom ? { from: t3, to: e3 } : { from: r2, to: e3 }; + }, e2.prototype.interpolate = function(t3) { + return t3; + }, e2; + }(vi), xi = function(t2) { + this.specification = t2; + }; + xi.prototype.possiblyEvaluate = function(t2, e2, r2, n2) { + if (void 0 !== t2.value) { if ("constant" === t2.expression.kind) { - const i2 = t2.expression.evaluate(e2, null, {}, r2, n2), a2 = "resolvedImage" === t2.property.specification.type && "string" != typeof i2 ? i2.name : i2, s2 = this._calculate(a2, a2, a2, e2); - return new si(this, { kind: "constant", value: s2 }, e2); - } - if ("camera" === t2.expression.kind) { - const r3 = this._calculate(t2.expression.evaluate({ zoom: e2.zoom - 1 }), t2.expression.evaluate({ zoom: e2.zoom }), t2.expression.evaluate({ zoom: e2.zoom + 1 }), e2); - return new si(this, { kind: "constant", value: r3 }, e2); + var i2 = t2.expression.evaluate(e2, null, {}, r2, n2); + return this._calculate(i2, i2, i2, e2); } - return new si(this, t2.expression, e2); - } - evaluate(t2, e2, r2, n2, i2, a2) { - if ("source" === t2.kind) { - const s2 = t2.evaluate(e2, r2, n2, i2, a2); - return this._calculate(s2, s2, s2, e2); - } - return "composite" === t2.kind ? this._calculate(t2.evaluate({ zoom: Math.floor(e2.zoom) - 1 }, r2, n2), t2.evaluate({ zoom: Math.floor(e2.zoom) }, r2, n2), t2.evaluate({ zoom: Math.floor(e2.zoom) + 1 }, r2, n2), e2) : t2.value; - } - _calculate(t2, e2, r2, n2) { - return n2.zoom > n2.zoomHistory.lastIntegerZoom ? { from: t2, to: e2 } : { from: r2, to: e2 }; - } - interpolate(t2) { - return t2; + return this._calculate(t2.expression.evaluate(new si(Math.floor(e2.zoom - 1), e2)), t2.expression.evaluate(new si(Math.floor(e2.zoom), e2)), t2.expression.evaluate(new si(Math.floor(e2.zoom + 1), e2)), e2); } - } - class hi { - constructor(t2) { - this.specification = t2; + }, xi.prototype._calculate = function(t2, e2, r2, n2) { + return n2.zoom > n2.zoomHistory.lastIntegerZoom ? { from: t2, to: e2 } : { from: r2, to: e2 }; + }, xi.prototype.interpolate = function(t2) { + return t2; + }; + var bi = function(t2) { + this.specification = t2; + }; + bi.prototype.possiblyEvaluate = function(t2, e2, r2, n2) { + return !!t2.expression.evaluate(e2, null, {}, r2, n2); + }, bi.prototype.interpolate = function() { + return false; + }; + var wi = function(t2) { + for (var e2 in this.properties = t2, this.defaultPropertyValues = {}, this.defaultTransitionablePropertyValues = {}, this.defaultTransitioningPropertyValues = {}, this.defaultPossiblyEvaluatedValues = {}, this.overridableProperties = [], t2) { + var r2 = t2[e2]; + r2.specification.overridable && this.overridableProperties.push(e2); + var n2 = this.defaultPropertyValues[e2] = new ui(r2, void 0), i2 = this.defaultTransitionablePropertyValues[e2] = new li(r2); + this.defaultTransitioningPropertyValues[e2] = i2.untransitioned(), this.defaultPossiblyEvaluatedValues[e2] = n2.possiblyEvaluate({}); } - possiblyEvaluate(t2, e2, r2, n2) { - if (void 0 !== t2.value) { - if ("constant" === t2.expression.kind) { - const i2 = t2.expression.evaluate(e2, null, {}, r2, n2); - return this._calculate(i2, i2, i2, e2); - } - return this._calculate(t2.expression.evaluate(new Qn(Math.floor(e2.zoom - 1), e2)), t2.expression.evaluate(new Qn(Math.floor(e2.zoom), e2)), t2.expression.evaluate(new Qn(Math.floor(e2.zoom + 1), e2)), e2); + }; + On("DataDrivenProperty", vi), On("DataConstantProperty", mi), On("CrossFadedDataDrivenProperty", gi), On("CrossFadedProperty", xi), On("ColorRampProperty", bi); + var _i = function(t2) { + function e2(e3, r2) { + if (t2.call(this), this.id = e3.id, this.type = e3.type, this._featureFilter = { filter: function() { + return true; + }, needGeometry: false }, "custom" !== e3.type && (this.metadata = (e3 = e3).metadata, this.minzoom = e3.minzoom, this.maxzoom = e3.maxzoom, "background" !== e3.type && (this.source = e3.source, this.sourceLayer = e3["source-layer"], this.filter = e3.filter), r2.layout && (this._unevaluatedLayout = new fi(r2.layout)), r2.paint)) { + for (var n2 in this._transitionablePaint = new pi(r2.paint), e3.paint) + this.setPaintProperty(n2, e3.paint[n2], { validate: false }); + for (var i2 in e3.layout) + this.setLayoutProperty(i2, e3.layout[i2], { validate: false }); + this._transitioningPaint = this._transitionablePaint.untransitioned(), this.paint = new di(r2.paint); } } - _calculate(t2, e2, r2, n2) { - return n2.zoom > n2.zoomHistory.lastIntegerZoom ? { from: t2, to: e2 } : { from: r2, to: e2 }; - } - interpolate(t2) { - return t2; - } - } - class pi { - constructor(t2) { - this.specification = t2; - } - possiblyEvaluate(t2, e2, r2, n2) { - return !!t2.expression.evaluate(e2, null, {}, r2, n2); - } - interpolate() { + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getCrossfadeParameters = function() { + return this._crossfadeParameters; + }, e2.prototype.getLayoutProperty = function(t3) { + return "visibility" === t3 ? this.visibility : this._unevaluatedLayout.getValue(t3); + }, e2.prototype.setLayoutProperty = function(t3, e3, r2) { + void 0 === r2 && (r2 = {}), null != e3 && this._validate(Mn, "layers." + this.id + ".layout." + t3, t3, e3, r2) || ("visibility" !== t3 ? this._unevaluatedLayout.setValue(t3, e3) : this.visibility = e3); + }, e2.prototype.getPaintProperty = function(t3) { + return g(t3, "-transition") ? this._transitionablePaint.getTransition(t3.slice(0, -"-transition".length)) : this._transitionablePaint.getValue(t3); + }, e2.prototype.setPaintProperty = function(t3, e3, r2) { + if (void 0 === r2 && (r2 = {}), null != e3 && this._validate(Pn, "layers." + this.id + ".paint." + t3, t3, e3, r2)) + return false; + if (g(t3, "-transition")) + return this._transitionablePaint.setTransition(t3.slice(0, -"-transition".length), e3 || void 0), false; + var n2 = this._transitionablePaint._values[t3], i2 = "cross-faded-data-driven" === n2.property.specification["property-type"], a2 = n2.value.isDataDriven(), o2 = n2.value; + this._transitionablePaint.setValue(t3, e3), this._handleSpecialPaintPropertyUpdate(t3); + var s2 = this._transitionablePaint._values[t3].value; + return s2.isDataDriven() || a2 || i2 || this._handleOverridablePaintPropertyUpdate(t3, o2, s2); + }, e2.prototype._handleSpecialPaintPropertyUpdate = function(t3) { + }, e2.prototype._handleOverridablePaintPropertyUpdate = function(t3, e3, r2) { return false; - } - } - class fi { - constructor(t2) { - this.properties = t2, this.defaultPropertyValues = {}, this.defaultTransitionablePropertyValues = {}, this.defaultTransitioningPropertyValues = {}, this.defaultPossiblyEvaluatedValues = {}, this.overridableProperties = []; - for (const e2 in t2) { - const r2 = t2[e2]; - r2.specification.overridable && this.overridableProperties.push(e2); - const n2 = this.defaultPropertyValues[e2] = new ti(r2, void 0), i2 = this.defaultTransitionablePropertyValues[e2] = new ei(r2); - this.defaultTransitioningPropertyValues[e2] = i2.untransitioned(), this.defaultPossiblyEvaluatedValues[e2] = n2.possiblyEvaluate({}); + }, e2.prototype.isHidden = function(t3) { + return !!(this.minzoom && t3 < this.minzoom) || !!(this.maxzoom && t3 >= this.maxzoom) || "none" === this.visibility; + }, e2.prototype.updateTransitions = function(t3) { + this._transitioningPaint = this._transitionablePaint.transitioned(t3, this._transitioningPaint); + }, e2.prototype.hasTransition = function() { + return this._transitioningPaint.hasTransition(); + }, e2.prototype.recalculate = function(t3, e3) { + t3.getCrossfadeParameters && (this._crossfadeParameters = t3.getCrossfadeParameters()), this._unevaluatedLayout && (this.layout = this._unevaluatedLayout.possiblyEvaluate(t3, void 0, e3)), this.paint = this._transitioningPaint.possiblyEvaluate(t3, void 0, e3); + }, e2.prototype.serialize = function() { + var t3 = { id: this.id, type: this.type, source: this.source, "source-layer": this.sourceLayer, metadata: this.metadata, minzoom: this.minzoom, maxzoom: this.maxzoom, filter: this.filter, layout: this._unevaluatedLayout && this._unevaluatedLayout.serialize(), paint: this._transitionablePaint && this._transitionablePaint.serialize() }; + return this.visibility && (t3.layout = t3.layout || {}, t3.layout.visibility = this.visibility), b(t3, function(t4, e3) { + return !(void 0 === t4 || "layout" === e3 && !Object.keys(t4).length || "paint" === e3 && !Object.keys(t4).length); + }); + }, e2.prototype._validate = function(t3, e3, r2, n2, i2) { + return void 0 === i2 && (i2 = {}), (!i2 || false !== i2.validate) && Bn(this, t3.call(Cn, { key: e3, layerType: this.type, objectKey: r2, value: n2, styleSpec: Et, style: { glyphs: true, sprite: true } })); + }, e2.prototype.is3D = function() { + return false; + }, e2.prototype.isTileClipped = function() { + return false; + }, e2.prototype.hasOffscreenPass = function() { + return false; + }, e2.prototype.resize = function() { + }, e2.prototype.isStateDependent = function() { + for (var t3 in this.paint._values) { + var e3 = this.paint.get(t3); + if (e3 instanceof yi && Tr(e3.property.specification) && ("source" === e3.value.kind || "composite" === e3.value.kind) && e3.value.isStateDependent) + return true; } - } + return false; + }, e2; + }(Ct), Ai = { Int8: Int8Array, Uint8: Uint8Array, Int16: Int16Array, Uint16: Uint16Array, Int32: Int32Array, Uint32: Uint32Array, Float32: Float32Array }, Si = function(t2, e2) { + this._structArray = t2, this._pos1 = e2 * this.size, this._pos2 = this._pos1 / 2, this._pos4 = this._pos1 / 4, this._pos8 = this._pos1 / 8; + }, ki = function() { + this.isTransferred = false, this.capacity = -1, this.resize(0); + }; + function Ii(t2, e2) { + void 0 === e2 && (e2 = 1); + var r2 = 0, n2 = 0; + return { members: t2.map(function(t3) { + var i2 = Ai[t3.type].BYTES_PER_ELEMENT, a2 = r2 = zi(r2, Math.max(e2, i2)), o2 = t3.components || 1; + return n2 = Math.max(n2, i2), r2 += i2 * o2, { name: t3.name, type: t3.type, components: o2, offset: a2 }; + }), size: zi(r2, Math.max(n2, e2)), alignment: e2 }; + } + function zi(t2, e2) { + return Math.ceil(t2 / e2) * e2; } - Mn("DataDrivenProperty", ui), Mn("DataConstantProperty", li), Mn("CrossFadedDataDrivenProperty", ci), Mn("CrossFadedProperty", hi), Mn("ColorRampProperty", pi); - const di = "-transition"; - class yi extends rt { - constructor(t2, e2) { - if (super(), this.id = t2.id, this.type = t2.type, this._featureFilter = { filter: () => true, needGeometry: false }, "custom" !== t2.type && (this.metadata = t2.metadata, this.minzoom = t2.minzoom, this.maxzoom = t2.maxzoom, "background" !== t2.type && (this.source = t2.source, this.sourceLayer = t2["source-layer"], this.filter = t2.filter), e2.layout && (this._unevaluatedLayout = new ai(e2.layout)), e2.paint)) { - this._transitionablePaint = new ri(e2.paint); - for (const e3 in t2.paint) - this.setPaintProperty(e3, t2.paint[e3], { validate: false }); - for (const e3 in t2.layout) - this.setLayoutProperty(e3, t2.layout[e3], { validate: false }); - this._transitioningPaint = this._transitionablePaint.untransitioned(), this.paint = new oi(e2.paint); - } + ki.serialize = function(t2, e2) { + return t2._trim(), e2 && (t2.isTransferred = true, e2.push(t2.arrayBuffer)), { length: t2.length, arrayBuffer: t2.arrayBuffer }; + }, ki.deserialize = function(t2) { + var e2 = Object.create(this.prototype); + return e2.arrayBuffer = t2.arrayBuffer, e2.length = t2.length, e2.capacity = t2.arrayBuffer.byteLength / e2.bytesPerElement, e2._refreshViews(), e2; + }, ki.prototype._trim = function() { + this.length !== this.capacity && (this.capacity = this.length, this.arrayBuffer = this.arrayBuffer.slice(0, this.length * this.bytesPerElement), this._refreshViews()); + }, ki.prototype.clear = function() { + this.length = 0; + }, ki.prototype.resize = function(t2) { + this.reserve(t2), this.length = t2; + }, ki.prototype.reserve = function(t2) { + if (t2 > this.capacity) { + this.capacity = Math.max(t2, Math.floor(5 * this.capacity), 128), this.arrayBuffer = new ArrayBuffer(this.capacity * this.bytesPerElement); + var e2 = this.uint8; + this._refreshViews(), e2 && this.uint8.set(e2); + } + }, ki.prototype._refreshViews = function() { + throw new Error("_refreshViews() must be implemented by each concrete StructArray layout"); + }; + var Ci = function(t2) { + function e2() { + t2.apply(this, arguments); } - getCrossfadeParameters() { - return this._crossfadeParameters; - } - getLayoutProperty(t2) { - return "visibility" === t2 ? this.visibility : this._unevaluatedLayout.getValue(t2); - } - setLayoutProperty(t2, e2, r2 = {}) { - null != e2 && this._validate(An, `layers.${this.id}.layout.${t2}`, t2, e2, r2) || ("visibility" !== t2 ? this._unevaluatedLayout.setValue(t2, e2) : this.visibility = e2); - } - getPaintProperty(t2) { - return t2.endsWith(di) ? this._transitionablePaint.getTransition(t2.slice(0, -di.length)) : this._transitionablePaint.getValue(t2); - } - setPaintProperty(t2, e2, r2 = {}) { - if (null != e2 && this._validate(_n, `layers.${this.id}.paint.${t2}`, t2, e2, r2)) - return false; - if (t2.endsWith(di)) - return this._transitionablePaint.setTransition(t2.slice(0, -di.length), e2 || void 0), false; - { - const r3 = this._transitionablePaint._values[t2], n2 = "cross-faded-data-driven" === r3.property.specification["property-type"], i2 = r3.value.isDataDriven(), a2 = r3.value; - this._transitionablePaint.setValue(t2, e2), this._handleSpecialPaintPropertyUpdate(t2); - const s2 = this._transitionablePaint._values[t2].value; - return s2.isDataDriven() || i2 || n2 || this._handleOverridablePaintPropertyUpdate(t2, a2, s2); - } - } - _handleSpecialPaintPropertyUpdate(t2) { - } - _handleOverridablePaintPropertyUpdate(t2, e2, r2) { - return false; - } - isHidden(t2) { - return !!(this.minzoom && t2 < this.minzoom) || !!(this.maxzoom && t2 >= this.maxzoom) || "none" === this.visibility; - } - updateTransitions(t2) { - this._transitioningPaint = this._transitionablePaint.transitioned(t2, this._transitioningPaint); - } - hasTransition() { - return this._transitioningPaint.hasTransition(); - } - recalculate(t2, e2) { - t2.getCrossfadeParameters && (this._crossfadeParameters = t2.getCrossfadeParameters()), this._unevaluatedLayout && (this.layout = this._unevaluatedLayout.possiblyEvaluate(t2, void 0, e2)), this.paint = this._transitioningPaint.possiblyEvaluate(t2, void 0, e2); - } - serialize() { - const t2 = { id: this.id, type: this.type, source: this.source, "source-layer": this.sourceLayer, metadata: this.metadata, minzoom: this.minzoom, maxzoom: this.maxzoom, filter: this.filter, layout: this._unevaluatedLayout && this._unevaluatedLayout.serialize(), paint: this._transitionablePaint && this._transitionablePaint.serialize() }; - return this.visibility && (t2.layout = t2.layout || {}, t2.layout.visibility = this.visibility), h2(t2, (t3, e2) => !(void 0 === t3 || "layout" === e2 && !Object.keys(t3).length || "paint" === e2 && !Object.keys(t3).length)); - } - _validate(t2, e2, r2, n2, i2 = {}) { - return (!i2 || false !== i2.validate) && kn(this, t2.call(bn, { key: e2, layerType: this.type, objectKey: r2, value: n2, styleSpec: nt, style: { glyphs: true, sprite: true } })); - } - is3D() { - return false; - } - isTileClipped() { - return false; - } - hasOffscreenPass() { - return false; - } - resize() { - } - isStateDependent() { - for (const t2 in this.paint._values) { - const e2 = this.paint.get(t2); - if (e2 instanceof si && br(e2.property.specification) && ("source" === e2.value.kind || "composite" === e2.value.kind) && e2.value.isStateDependent) - return true; - } - return false; - } - } - const mi = { Int8: Int8Array, Uint8: Uint8Array, Int16: Int16Array, Uint16: Uint16Array, Int32: Int32Array, Uint32: Uint32Array, Float32: Float32Array }; - class gi { - constructor(t2, e2) { - this._structArray = t2, this._pos1 = e2 * this.size, this._pos2 = this._pos1 / 2, this._pos4 = this._pos1 / 4, this._pos8 = this._pos1 / 8; - } - } - class xi { - constructor() { - this.isTransferred = false, this.capacity = -1, this.resize(0); - } - static serialize(t2, e2) { - return t2._trim(), e2 && (t2.isTransferred = true, e2.push(t2.arrayBuffer)), { length: t2.length, arrayBuffer: t2.arrayBuffer }; - } - static deserialize(t2) { - const e2 = Object.create(this.prototype); - return e2.arrayBuffer = t2.arrayBuffer, e2.length = t2.length, e2.capacity = t2.arrayBuffer.byteLength / e2.bytesPerElement, e2._refreshViews(), e2; - } - _trim() { - this.length !== this.capacity && (this.capacity = this.length, this.arrayBuffer = this.arrayBuffer.slice(0, this.length * this.bytesPerElement), this._refreshViews()); - } - clear() { - this.length = 0; - } - resize(t2) { - this.reserve(t2), this.length = t2; - } - reserve(t2) { - if (t2 > this.capacity) { - this.capacity = Math.max(t2, Math.floor(5 * this.capacity), 128), this.arrayBuffer = new ArrayBuffer(this.capacity * this.bytesPerElement); - const e2 = this.uint8; - this._refreshViews(), e2 && this.uint8.set(e2); - } - } - _refreshViews() { - throw new Error("_refreshViews() must be implemented by each concrete StructArray layout"); - } - } - function vi(t2, e2 = 1) { - let r2 = 0, n2 = 0; - return { members: t2.map((t3) => { - const i2 = mi[t3.type].BYTES_PER_ELEMENT, a2 = r2 = bi(r2, Math.max(e2, i2)), s2 = t3.components || 1; - return n2 = Math.max(n2, i2), r2 += i2 * s2, { name: t3.name, type: t3.type, components: s2, offset: a2 }; - }), size: bi(r2, Math.max(n2, e2)), alignment: e2 }; - } - function bi(t2, e2) { - return Math.ceil(t2 / e2) * e2; - } - class wi extends xi { - _refreshViews() { + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer); - } - emplaceBack(t2, e2) { - const r2 = this.length; - return this.resize(r2 + 1), this.emplace(r2, t2, e2); - } - emplace(t2, e2, r2) { - const n2 = 2 * t2; - return this.int16[n2 + 0] = e2, this.int16[n2 + 1] = r2, t2; - } - } - wi.prototype.bytesPerElement = 4, Mn("StructArrayLayout2i4", wi); - class _i extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3) { + var r2 = this.length; + return this.resize(r2 + 1), this.emplace(r2, t3, e3); + }, e2.prototype.emplace = function(t3, e3, r2) { + var n2 = 2 * t3; + return this.int16[n2 + 0] = e3, this.int16[n2 + 1] = r2, t3; + }, e2; + }(ki); + Ci.prototype.bytesPerElement = 4, On("StructArrayLayout2i4", Ci); + var Ei = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2) { - const i2 = this.length; - return this.resize(i2 + 1), this.emplace(i2, t2, e2, r2, n2); - } - emplace(t2, e2, r2, n2, i2) { - const a2 = 4 * t2; - return this.int16[a2 + 0] = e2, this.int16[a2 + 1] = r2, this.int16[a2 + 2] = n2, this.int16[a2 + 3] = i2, t2; - } - } - _i.prototype.bytesPerElement = 8, Mn("StructArrayLayout4i8", _i); - class Ai extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2) { + var i2 = this.length; + return this.resize(i2 + 1), this.emplace(i2, t3, e3, r2, n2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2) { + var a2 = 4 * t3; + return this.int16[a2 + 0] = e3, this.int16[a2 + 1] = r2, this.int16[a2 + 2] = n2, this.int16[a2 + 3] = i2, t3; + }, e2; + }(ki); + Ei.prototype.bytesPerElement = 8, On("StructArrayLayout4i8", Ei); + var Pi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2, a2) { - const s2 = this.length; - return this.resize(s2 + 1), this.emplace(s2, t2, e2, r2, n2, i2, a2); - } - emplace(t2, e2, r2, n2, i2, a2, s2) { - const o2 = 6 * t2; - return this.int16[o2 + 0] = e2, this.int16[o2 + 1] = r2, this.int16[o2 + 2] = n2, this.int16[o2 + 3] = i2, this.int16[o2 + 4] = a2, this.int16[o2 + 5] = s2, t2; - } - } - Ai.prototype.bytesPerElement = 12, Mn("StructArrayLayout2i4i12", Ai); - class ki extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2, a2) { + var o2 = this.length; + return this.resize(o2 + 1), this.emplace(o2, t3, e3, r2, n2, i2, a2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2, o2) { + var s2 = 6 * t3; + return this.int16[s2 + 0] = e3, this.int16[s2 + 1] = r2, this.int16[s2 + 2] = n2, this.int16[s2 + 3] = i2, this.int16[s2 + 4] = a2, this.int16[s2 + 5] = o2, t3; + }, e2; + }(ki); + Pi.prototype.bytesPerElement = 12, On("StructArrayLayout2i4i12", Pi); + var Mi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2, a2) { - const s2 = this.length; - return this.resize(s2 + 1), this.emplace(s2, t2, e2, r2, n2, i2, a2); - } - emplace(t2, e2, r2, n2, i2, a2, s2) { - const o2 = 4 * t2, l2 = 8 * t2; - return this.int16[o2 + 0] = e2, this.int16[o2 + 1] = r2, this.uint8[l2 + 4] = n2, this.uint8[l2 + 5] = i2, this.uint8[l2 + 6] = a2, this.uint8[l2 + 7] = s2, t2; - } - } - ki.prototype.bytesPerElement = 8, Mn("StructArrayLayout2i4ub8", ki); - class Si extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2, a2) { + var o2 = this.length; + return this.resize(o2 + 1), this.emplace(o2, t3, e3, r2, n2, i2, a2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2, o2) { + var s2 = 4 * t3, u2 = 8 * t3; + return this.int16[s2 + 0] = e3, this.int16[s2 + 1] = r2, this.uint8[u2 + 4] = n2, this.uint8[u2 + 5] = i2, this.uint8[u2 + 6] = a2, this.uint8[u2 + 7] = o2, t3; + }, e2; + }(ki); + Mi.prototype.bytesPerElement = 8, On("StructArrayLayout2i4ub8", Mi); + var Bi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer); - } - emplaceBack(t2, e2) { - const r2 = this.length; - return this.resize(r2 + 1), this.emplace(r2, t2, e2); - } - emplace(t2, e2, r2) { - const n2 = 2 * t2; - return this.float32[n2 + 0] = e2, this.float32[n2 + 1] = r2, t2; - } - } - Si.prototype.bytesPerElement = 8, Mn("StructArrayLayout2f8", Si); - class Ii extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3) { + var r2 = this.length; + return this.resize(r2 + 1), this.emplace(r2, t3, e3); + }, e2.prototype.emplace = function(t3, e3, r2) { + var n2 = 2 * t3; + return this.float32[n2 + 0] = e3, this.float32[n2 + 1] = r2, t3; + }, e2; + }(ki); + Bi.prototype.bytesPerElement = 8, On("StructArrayLayout2f8", Bi); + var Ti = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2) { - const c3 = this.length; - return this.resize(c3 + 1), this.emplace(c3, t2, e2, r2, n2, i2, a2, s2, o2, l2, u2); - } - emplace(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3) { - const h3 = 10 * t2; - return this.uint16[h3 + 0] = e2, this.uint16[h3 + 1] = r2, this.uint16[h3 + 2] = n2, this.uint16[h3 + 3] = i2, this.uint16[h3 + 4] = a2, this.uint16[h3 + 5] = s2, this.uint16[h3 + 6] = o2, this.uint16[h3 + 7] = l2, this.uint16[h3 + 8] = u2, this.uint16[h3 + 9] = c3, t2; - } - } - Ii.prototype.bytesPerElement = 20, Mn("StructArrayLayout10ui20", Ii); - class Mi extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2) { + var p3 = this.length; + return this.resize(p3 + 1), this.emplace(p3, t3, e3, r2, n2, i2, a2, o2, s2, u2, l2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3) { + var c3 = 10 * t3; + return this.uint16[c3 + 0] = e3, this.uint16[c3 + 1] = r2, this.uint16[c3 + 2] = n2, this.uint16[c3 + 3] = i2, this.uint16[c3 + 4] = a2, this.uint16[c3 + 5] = o2, this.uint16[c3 + 6] = s2, this.uint16[c3 + 7] = u2, this.uint16[c3 + 8] = l2, this.uint16[c3 + 9] = p3, t3; + }, e2; + }(ki); + Ti.prototype.bytesPerElement = 20, On("StructArrayLayout10ui20", Ti); + var Vi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3) { - const p3 = this.length; - return this.resize(p3 + 1), this.emplace(p3, t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3); - } - emplace(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3) { - const f2 = 12 * t2; - return this.int16[f2 + 0] = e2, this.int16[f2 + 1] = r2, this.int16[f2 + 2] = n2, this.int16[f2 + 3] = i2, this.uint16[f2 + 4] = a2, this.uint16[f2 + 5] = s2, this.uint16[f2 + 6] = o2, this.uint16[f2 + 7] = l2, this.int16[f2 + 8] = u2, this.int16[f2 + 9] = c3, this.int16[f2 + 10] = h3, this.int16[f2 + 11] = p3, t2; - } - } - Mi.prototype.bytesPerElement = 24, Mn("StructArrayLayout4i4ui4i24", Mi); - class zi extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3) { + var h3 = this.length; + return this.resize(h3 + 1), this.emplace(h3, t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3) { + var f2 = 12 * t3; + return this.int16[f2 + 0] = e3, this.int16[f2 + 1] = r2, this.int16[f2 + 2] = n2, this.int16[f2 + 3] = i2, this.uint16[f2 + 4] = a2, this.uint16[f2 + 5] = o2, this.uint16[f2 + 6] = s2, this.uint16[f2 + 7] = u2, this.int16[f2 + 8] = l2, this.int16[f2 + 9] = p3, this.int16[f2 + 10] = c3, this.int16[f2 + 11] = h3, t3; + }, e2; + }(ki); + Vi.prototype.bytesPerElement = 24, On("StructArrayLayout4i4ui4i24", Vi); + var Fi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2) { - const n2 = this.length; - return this.resize(n2 + 1), this.emplace(n2, t2, e2, r2); - } - emplace(t2, e2, r2, n2) { - const i2 = 3 * t2; - return this.float32[i2 + 0] = e2, this.float32[i2 + 1] = r2, this.float32[i2 + 2] = n2, t2; - } - } - zi.prototype.bytesPerElement = 12, Mn("StructArrayLayout3f12", zi); - class Bi extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2) { + var n2 = this.length; + return this.resize(n2 + 1), this.emplace(n2, t3, e3, r2); + }, e2.prototype.emplace = function(t3, e3, r2, n2) { + var i2 = 3 * t3; + return this.float32[i2 + 0] = e3, this.float32[i2 + 1] = r2, this.float32[i2 + 2] = n2, t3; + }, e2; + }(ki); + Fi.prototype.bytesPerElement = 12, On("StructArrayLayout3f12", Fi); + var Di = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer); - } - emplaceBack(t2) { - const e2 = this.length; - return this.resize(e2 + 1), this.emplace(e2, t2); - } - emplace(t2, e2) { - return this.uint32[1 * t2 + 0] = e2, t2; - } - } - Bi.prototype.bytesPerElement = 4, Mn("StructArrayLayout1ul4", Bi); - class Ci extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3) { + var e3 = this.length; + return this.resize(e3 + 1), this.emplace(e3, t3); + }, e2.prototype.emplace = function(t3, e3) { + return this.uint32[1 * t3 + 0] = e3, t3; + }, e2; + }(ki); + Di.prototype.bytesPerElement = 4, On("StructArrayLayout1ul4", Di); + var Li = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2, a2, s2, o2, l2) { - const u2 = this.length; - return this.resize(u2 + 1), this.emplace(u2, t2, e2, r2, n2, i2, a2, s2, o2, l2); - } - emplace(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2) { - const c3 = 10 * t2, h3 = 5 * t2; - return this.int16[c3 + 0] = e2, this.int16[c3 + 1] = r2, this.int16[c3 + 2] = n2, this.int16[c3 + 3] = i2, this.int16[c3 + 4] = a2, this.int16[c3 + 5] = s2, this.uint32[h3 + 3] = o2, this.uint16[c3 + 8] = l2, this.uint16[c3 + 9] = u2, t2; - } - } - Ci.prototype.bytesPerElement = 20, Mn("StructArrayLayout6i1ul2ui20", Ci); - class Pi extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2, a2, o2, s2, u2) { + var l2 = this.length; + return this.resize(l2 + 1), this.emplace(l2, t3, e3, r2, n2, i2, a2, o2, s2, u2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2) { + var p3 = 10 * t3, c3 = 5 * t3; + return this.int16[p3 + 0] = e3, this.int16[p3 + 1] = r2, this.int16[p3 + 2] = n2, this.int16[p3 + 3] = i2, this.int16[p3 + 4] = a2, this.int16[p3 + 5] = o2, this.uint32[c3 + 3] = s2, this.uint16[p3 + 8] = u2, this.uint16[p3 + 9] = l2, t3; + }, e2; + }(ki); + Li.prototype.bytesPerElement = 20, On("StructArrayLayout6i1ul2ui20", Li); + var Oi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2, a2) { - const s2 = this.length; - return this.resize(s2 + 1), this.emplace(s2, t2, e2, r2, n2, i2, a2); - } - emplace(t2, e2, r2, n2, i2, a2, s2) { - const o2 = 6 * t2; - return this.int16[o2 + 0] = e2, this.int16[o2 + 1] = r2, this.int16[o2 + 2] = n2, this.int16[o2 + 3] = i2, this.int16[o2 + 4] = a2, this.int16[o2 + 5] = s2, t2; - } - } - Pi.prototype.bytesPerElement = 12, Mn("StructArrayLayout2i2i2i12", Pi); - class Vi extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2, a2) { + var o2 = this.length; + return this.resize(o2 + 1), this.emplace(o2, t3, e3, r2, n2, i2, a2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2, o2) { + var s2 = 6 * t3; + return this.int16[s2 + 0] = e3, this.int16[s2 + 1] = r2, this.int16[s2 + 2] = n2, this.int16[s2 + 3] = i2, this.int16[s2 + 4] = a2, this.int16[s2 + 5] = o2, t3; + }, e2; + }(ki); + Oi.prototype.bytesPerElement = 12, On("StructArrayLayout2i2i2i12", Oi); + var Ri = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2) { - const a2 = this.length; - return this.resize(a2 + 1), this.emplace(a2, t2, e2, r2, n2, i2); - } - emplace(t2, e2, r2, n2, i2, a2) { - const s2 = 4 * t2, o2 = 8 * t2; - return this.float32[s2 + 0] = e2, this.float32[s2 + 1] = r2, this.float32[s2 + 2] = n2, this.int16[o2 + 6] = i2, this.int16[o2 + 7] = a2, t2; - } - } - Vi.prototype.bytesPerElement = 16, Mn("StructArrayLayout2f1f2i16", Vi); - class Ei extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2) { + var a2 = this.length; + return this.resize(a2 + 1), this.emplace(a2, t3, e3, r2, n2, i2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2) { + var o2 = 4 * t3, s2 = 8 * t3; + return this.float32[o2 + 0] = e3, this.float32[o2 + 1] = r2, this.float32[o2 + 2] = n2, this.int16[s2 + 6] = i2, this.int16[s2 + 7] = a2, t3; + }, e2; + }(ki); + Ri.prototype.bytesPerElement = 16, On("StructArrayLayout2f1f2i16", Ri); + var Ui = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2) { - const i2 = this.length; - return this.resize(i2 + 1), this.emplace(i2, t2, e2, r2, n2); - } - emplace(t2, e2, r2, n2, i2) { - const a2 = 12 * t2, s2 = 3 * t2; - return this.uint8[a2 + 0] = e2, this.uint8[a2 + 1] = r2, this.float32[s2 + 1] = n2, this.float32[s2 + 2] = i2, t2; - } - } - Ei.prototype.bytesPerElement = 12, Mn("StructArrayLayout2ub2f12", Ei); - class Fi extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2) { + var i2 = this.length; + return this.resize(i2 + 1), this.emplace(i2, t3, e3, r2, n2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2) { + var a2 = 12 * t3, o2 = 3 * t3; + return this.uint8[a2 + 0] = e3, this.uint8[a2 + 1] = r2, this.float32[o2 + 1] = n2, this.float32[o2 + 2] = i2, t3; + }, e2; + }(ki); + Ui.prototype.bytesPerElement = 12, On("StructArrayLayout2ub2f12", Ui); + var ji = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2) { - const n2 = this.length; - return this.resize(n2 + 1), this.emplace(n2, t2, e2, r2); - } - emplace(t2, e2, r2, n2) { - const i2 = 3 * t2; - return this.uint16[i2 + 0] = e2, this.uint16[i2 + 1] = r2, this.uint16[i2 + 2] = n2, t2; - } - } - Fi.prototype.bytesPerElement = 6, Mn("StructArrayLayout3ui6", Fi); - class Ti extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2) { + var n2 = this.length; + return this.resize(n2 + 1), this.emplace(n2, t3, e3, r2); + }, e2.prototype.emplace = function(t3, e3, r2, n2) { + var i2 = 3 * t3; + return this.uint16[i2 + 0] = e3, this.uint16[i2 + 1] = r2, this.uint16[i2 + 2] = n2, t3; + }, e2; + }(ki); + ji.prototype.bytesPerElement = 6, On("StructArrayLayout3ui6", ji); + var qi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, d2, y3, m2) { - const g2 = this.length; - return this.resize(g2 + 1), this.emplace(g2, t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, d2, y3, m2); - } - emplace(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, d2, y3, m2, g2) { - const x2 = 24 * t2, v3 = 12 * t2, b2 = 48 * t2; - return this.int16[x2 + 0] = e2, this.int16[x2 + 1] = r2, this.uint16[x2 + 2] = n2, this.uint16[x2 + 3] = i2, this.uint32[v3 + 2] = a2, this.uint32[v3 + 3] = s2, this.uint32[v3 + 4] = o2, this.uint16[x2 + 10] = l2, this.uint16[x2 + 11] = u2, this.uint16[x2 + 12] = c3, this.float32[v3 + 7] = h3, this.float32[v3 + 8] = p3, this.uint8[b2 + 36] = f2, this.uint8[b2 + 37] = d2, this.uint8[b2 + 38] = y3, this.uint32[v3 + 10] = m2, this.int16[x2 + 22] = g2, t2; - } - } - Ti.prototype.bytesPerElement = 48, Mn("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48", Ti); - class Li extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2, m2) { + var v3 = this.length; + return this.resize(v3 + 1), this.emplace(v3, t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2, m2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2, m2, v3) { + var g2 = 24 * t3, x2 = 12 * t3, b2 = 48 * t3; + return this.int16[g2 + 0] = e3, this.int16[g2 + 1] = r2, this.uint16[g2 + 2] = n2, this.uint16[g2 + 3] = i2, this.uint32[x2 + 2] = a2, this.uint32[x2 + 3] = o2, this.uint32[x2 + 4] = s2, this.uint16[g2 + 10] = u2, this.uint16[g2 + 11] = l2, this.uint16[g2 + 12] = p3, this.float32[x2 + 7] = c3, this.float32[x2 + 8] = h3, this.uint8[b2 + 36] = f2, this.uint8[b2 + 37] = y3, this.uint8[b2 + 38] = d2, this.uint32[x2 + 10] = m2, this.int16[g2 + 22] = v3, t3; + }, e2; + }(ki); + qi.prototype.bytesPerElement = 48, On("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48", qi); + var Ni = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, d2, y3, m2, g2, x2, v3, b2, w2, _24, A3, k2, S2, I3, M2) { - const z2 = this.length; - return this.resize(z2 + 1), this.emplace(z2, t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, d2, y3, m2, g2, x2, v3, b2, w2, _24, A3, k2, S2, I3, M2); - } - emplace(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, d2, y3, m2, g2, x2, v3, b2, w2, _24, A3, k2, S2, I3, M2, z2) { - const B2 = 34 * t2, C2 = 17 * t2; - return this.int16[B2 + 0] = e2, this.int16[B2 + 1] = r2, this.int16[B2 + 2] = n2, this.int16[B2 + 3] = i2, this.int16[B2 + 4] = a2, this.int16[B2 + 5] = s2, this.int16[B2 + 6] = o2, this.int16[B2 + 7] = l2, this.uint16[B2 + 8] = u2, this.uint16[B2 + 9] = c3, this.uint16[B2 + 10] = h3, this.uint16[B2 + 11] = p3, this.uint16[B2 + 12] = f2, this.uint16[B2 + 13] = d2, this.uint16[B2 + 14] = y3, this.uint16[B2 + 15] = m2, this.uint16[B2 + 16] = g2, this.uint16[B2 + 17] = x2, this.uint16[B2 + 18] = v3, this.uint16[B2 + 19] = b2, this.uint16[B2 + 20] = w2, this.uint16[B2 + 21] = _24, this.uint16[B2 + 22] = A3, this.uint32[C2 + 12] = k2, this.float32[C2 + 13] = S2, this.float32[C2 + 14] = I3, this.float32[C2 + 15] = M2, this.float32[C2 + 16] = z2, t2; - } - } - Li.prototype.bytesPerElement = 68, Mn("StructArrayLayout8i15ui1ul4f68", Li); - class Di extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2, m2, v3, g2, x2, b2, w2, _24, A3, S2, k2, I3, z2) { + var C2 = this.length; + return this.resize(C2 + 1), this.emplace(C2, t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2, m2, v3, g2, x2, b2, w2, _24, A3, S2, k2, I3, z2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2, m2, v3, g2, x2, b2, w2, _24, A3, S2, k2, I3, z2, C2) { + var E2 = 34 * t3, P2 = 17 * t3; + return this.int16[E2 + 0] = e3, this.int16[E2 + 1] = r2, this.int16[E2 + 2] = n2, this.int16[E2 + 3] = i2, this.int16[E2 + 4] = a2, this.int16[E2 + 5] = o2, this.int16[E2 + 6] = s2, this.int16[E2 + 7] = u2, this.uint16[E2 + 8] = l2, this.uint16[E2 + 9] = p3, this.uint16[E2 + 10] = c3, this.uint16[E2 + 11] = h3, this.uint16[E2 + 12] = f2, this.uint16[E2 + 13] = y3, this.uint16[E2 + 14] = d2, this.uint16[E2 + 15] = m2, this.uint16[E2 + 16] = v3, this.uint16[E2 + 17] = g2, this.uint16[E2 + 18] = x2, this.uint16[E2 + 19] = b2, this.uint16[E2 + 20] = w2, this.uint16[E2 + 21] = _24, this.uint16[E2 + 22] = A3, this.uint32[P2 + 12] = S2, this.float32[P2 + 13] = k2, this.float32[P2 + 14] = I3, this.float32[P2 + 15] = z2, this.float32[P2 + 16] = C2, t3; + }, e2; + }(ki); + Ni.prototype.bytesPerElement = 68, On("StructArrayLayout8i15ui1ul4f68", Ni); + var Ki = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer); - } - emplaceBack(t2) { - const e2 = this.length; - return this.resize(e2 + 1), this.emplace(e2, t2); - } - emplace(t2, e2) { - return this.float32[1 * t2 + 0] = e2, t2; - } - } - Di.prototype.bytesPerElement = 4, Mn("StructArrayLayout1f4", Di); - class $i extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3) { + var e3 = this.length; + return this.resize(e3 + 1), this.emplace(e3, t3); + }, e2.prototype.emplace = function(t3, e3) { + return this.float32[1 * t3 + 0] = e3, t3; + }, e2; + }(ki); + Ki.prototype.bytesPerElement = 4, On("StructArrayLayout1f4", Ki); + var Gi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2) { - const n2 = this.length; - return this.resize(n2 + 1), this.emplace(n2, t2, e2, r2); - } - emplace(t2, e2, r2, n2) { - const i2 = 3 * t2; - return this.int16[i2 + 0] = e2, this.int16[i2 + 1] = r2, this.int16[i2 + 2] = n2, t2; - } - } - $i.prototype.bytesPerElement = 6, Mn("StructArrayLayout3i6", $i); - class Ri extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2) { + var n2 = this.length; + return this.resize(n2 + 1), this.emplace(n2, t3, e3, r2); + }, e2.prototype.emplace = function(t3, e3, r2, n2) { + var i2 = 3 * t3; + return this.int16[i2 + 0] = e3, this.int16[i2 + 1] = r2, this.int16[i2 + 2] = n2, t3; + }, e2; + }(ki); + Gi.prototype.bytesPerElement = 6, On("StructArrayLayout3i6", Gi); + var Zi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2) { - const n2 = this.length; - return this.resize(n2 + 1), this.emplace(n2, t2, e2, r2); - } - emplace(t2, e2, r2, n2) { - const i2 = 4 * t2; - return this.uint32[2 * t2 + 0] = e2, this.uint16[i2 + 2] = r2, this.uint16[i2 + 3] = n2, t2; - } - } - Ri.prototype.bytesPerElement = 8, Mn("StructArrayLayout1ul2ui8", Ri); - class Oi extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2) { + var n2 = this.length; + return this.resize(n2 + 1), this.emplace(n2, t3, e3, r2); + }, e2.prototype.emplace = function(t3, e3, r2, n2) { + var i2 = 4 * t3; + return this.uint32[2 * t3 + 0] = e3, this.uint16[i2 + 2] = r2, this.uint16[i2 + 3] = n2, t3; + }, e2; + }(ki); + Zi.prototype.bytesPerElement = 8, On("StructArrayLayout1ul2ui8", Zi); + var Xi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer); - } - emplaceBack(t2, e2) { - const r2 = this.length; - return this.resize(r2 + 1), this.emplace(r2, t2, e2); - } - emplace(t2, e2, r2) { - const n2 = 2 * t2; - return this.uint16[n2 + 0] = e2, this.uint16[n2 + 1] = r2, t2; - } - } - Oi.prototype.bytesPerElement = 4, Mn("StructArrayLayout2ui4", Oi); - class Ui extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3) { + var r2 = this.length; + return this.resize(r2 + 1), this.emplace(r2, t3, e3); + }, e2.prototype.emplace = function(t3, e3, r2) { + var n2 = 2 * t3; + return this.uint16[n2 + 0] = e3, this.uint16[n2 + 1] = r2, t3; + }, e2; + }(ki); + Xi.prototype.bytesPerElement = 4, On("StructArrayLayout2ui4", Xi); + var Ji = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer); - } - emplaceBack(t2) { - const e2 = this.length; - return this.resize(e2 + 1), this.emplace(e2, t2); - } - emplace(t2, e2) { - return this.uint16[1 * t2 + 0] = e2, t2; - } - } - Ui.prototype.bytesPerElement = 2, Mn("StructArrayLayout1ui2", Ui); - class qi extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3) { + var e3 = this.length; + return this.resize(e3 + 1), this.emplace(e3, t3); + }, e2.prototype.emplace = function(t3, e3) { + return this.uint16[1 * t3 + 0] = e3, t3; + }, e2; + }(ki); + Ji.prototype.bytesPerElement = 2, On("StructArrayLayout1ui2", Ji); + var Hi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2) { - const i2 = this.length; - return this.resize(i2 + 1), this.emplace(i2, t2, e2, r2, n2); - } - emplace(t2, e2, r2, n2, i2) { - const a2 = 4 * t2; - return this.float32[a2 + 0] = e2, this.float32[a2 + 1] = r2, this.float32[a2 + 2] = n2, this.float32[a2 + 3] = i2, t2; - } - } - qi.prototype.bytesPerElement = 16, Mn("StructArrayLayout4f16", qi); - class ji extends gi { - get anchorPointX() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2) { + var i2 = this.length; + return this.resize(i2 + 1), this.emplace(i2, t3, e3, r2, n2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2) { + var a2 = 4 * t3; + return this.float32[a2 + 0] = e3, this.float32[a2 + 1] = r2, this.float32[a2 + 2] = n2, this.float32[a2 + 3] = i2, t3; + }, e2; + }(ki); + Hi.prototype.bytesPerElement = 16, On("StructArrayLayout4f16", Hi); + var Yi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2; + var r2 = { anchorPointX: { configurable: true }, anchorPointY: { configurable: true }, x1: { configurable: true }, y1: { configurable: true }, x2: { configurable: true }, y2: { configurable: true }, featureIndex: { configurable: true }, sourceLayerIndex: { configurable: true }, bucketIndex: { configurable: true }, anchorPoint: { configurable: true } }; + return r2.anchorPointX.get = function() { return this._structArray.int16[this._pos2 + 0]; - } - get anchorPointY() { + }, r2.anchorPointY.get = function() { return this._structArray.int16[this._pos2 + 1]; - } - get x1() { + }, r2.x1.get = function() { return this._structArray.int16[this._pos2 + 2]; - } - get y1() { + }, r2.y1.get = function() { return this._structArray.int16[this._pos2 + 3]; - } - get x2() { + }, r2.x2.get = function() { return this._structArray.int16[this._pos2 + 4]; - } - get y2() { + }, r2.y2.get = function() { return this._structArray.int16[this._pos2 + 5]; - } - get featureIndex() { + }, r2.featureIndex.get = function() { return this._structArray.uint32[this._pos4 + 3]; - } - get sourceLayerIndex() { + }, r2.sourceLayerIndex.get = function() { return this._structArray.uint16[this._pos2 + 8]; - } - get bucketIndex() { + }, r2.bucketIndex.get = function() { return this._structArray.uint16[this._pos2 + 9]; - } - get anchorPoint() { - return new S(this.anchorPointX, this.anchorPointY); - } - } - ji.prototype.size = 20; - class Ni extends Ci { - get(t2) { - return new ji(this, t2); - } - } - Mn("CollisionBoxArray", Ni); - class Zi extends gi { - get anchorX() { + }, r2.anchorPoint.get = function() { + return new i(this.anchorPointX, this.anchorPointY); + }, Object.defineProperties(e2.prototype, r2), e2; + }(Si); + Yi.prototype.size = 20; + var $i = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.get = function(t3) { + return new Yi(this, t3); + }, e2; + }(Li); + On("CollisionBoxArray", $i); + var Wi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2; + var r2 = { anchorX: { configurable: true }, anchorY: { configurable: true }, glyphStartIndex: { configurable: true }, numGlyphs: { configurable: true }, vertexStartIndex: { configurable: true }, lineStartIndex: { configurable: true }, lineLength: { configurable: true }, segment: { configurable: true }, lowerSize: { configurable: true }, upperSize: { configurable: true }, lineOffsetX: { configurable: true }, lineOffsetY: { configurable: true }, writingMode: { configurable: true }, placedOrientation: { configurable: true }, hidden: { configurable: true }, crossTileID: { configurable: true }, associatedIconIndex: { configurable: true } }; + return r2.anchorX.get = function() { return this._structArray.int16[this._pos2 + 0]; - } - get anchorY() { + }, r2.anchorY.get = function() { return this._structArray.int16[this._pos2 + 1]; - } - get glyphStartIndex() { + }, r2.glyphStartIndex.get = function() { return this._structArray.uint16[this._pos2 + 2]; - } - get numGlyphs() { + }, r2.numGlyphs.get = function() { return this._structArray.uint16[this._pos2 + 3]; - } - get vertexStartIndex() { + }, r2.vertexStartIndex.get = function() { return this._structArray.uint32[this._pos4 + 2]; - } - get lineStartIndex() { + }, r2.lineStartIndex.get = function() { return this._structArray.uint32[this._pos4 + 3]; - } - get lineLength() { + }, r2.lineLength.get = function() { return this._structArray.uint32[this._pos4 + 4]; - } - get segment() { + }, r2.segment.get = function() { return this._structArray.uint16[this._pos2 + 10]; - } - get lowerSize() { + }, r2.lowerSize.get = function() { return this._structArray.uint16[this._pos2 + 11]; - } - get upperSize() { + }, r2.upperSize.get = function() { return this._structArray.uint16[this._pos2 + 12]; - } - get lineOffsetX() { + }, r2.lineOffsetX.get = function() { return this._structArray.float32[this._pos4 + 7]; - } - get lineOffsetY() { + }, r2.lineOffsetY.get = function() { return this._structArray.float32[this._pos4 + 8]; - } - get writingMode() { + }, r2.writingMode.get = function() { return this._structArray.uint8[this._pos1 + 36]; - } - get placedOrientation() { + }, r2.placedOrientation.get = function() { return this._structArray.uint8[this._pos1 + 37]; - } - set placedOrientation(t2) { - this._structArray.uint8[this._pos1 + 37] = t2; - } - get hidden() { + }, r2.placedOrientation.set = function(t3) { + this._structArray.uint8[this._pos1 + 37] = t3; + }, r2.hidden.get = function() { return this._structArray.uint8[this._pos1 + 38]; - } - set hidden(t2) { - this._structArray.uint8[this._pos1 + 38] = t2; - } - get crossTileID() { + }, r2.hidden.set = function(t3) { + this._structArray.uint8[this._pos1 + 38] = t3; + }, r2.crossTileID.get = function() { return this._structArray.uint32[this._pos4 + 10]; - } - set crossTileID(t2) { - this._structArray.uint32[this._pos4 + 10] = t2; - } - get associatedIconIndex() { + }, r2.crossTileID.set = function(t3) { + this._structArray.uint32[this._pos4 + 10] = t3; + }, r2.associatedIconIndex.get = function() { return this._structArray.int16[this._pos2 + 22]; - } - } - Zi.prototype.size = 48; - class Ki extends Ti { - get(t2) { - return new Zi(this, t2); - } - } - Mn("PlacedSymbolArray", Ki); - class Gi extends gi { - get anchorX() { + }, Object.defineProperties(e2.prototype, r2), e2; + }(Si); + Wi.prototype.size = 48; + var Qi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.get = function(t3) { + return new Wi(this, t3); + }, e2; + }(qi); + On("PlacedSymbolArray", Qi); + var ta = function(t2) { + function e2() { + t2.apply(this, arguments); + } + t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2; + var r2 = { anchorX: { configurable: true }, anchorY: { configurable: true }, rightJustifiedTextSymbolIndex: { configurable: true }, centerJustifiedTextSymbolIndex: { configurable: true }, leftJustifiedTextSymbolIndex: { configurable: true }, verticalPlacedTextSymbolIndex: { configurable: true }, placedIconSymbolIndex: { configurable: true }, verticalPlacedIconSymbolIndex: { configurable: true }, key: { configurable: true }, textBoxStartIndex: { configurable: true }, textBoxEndIndex: { configurable: true }, verticalTextBoxStartIndex: { configurable: true }, verticalTextBoxEndIndex: { configurable: true }, iconBoxStartIndex: { configurable: true }, iconBoxEndIndex: { configurable: true }, verticalIconBoxStartIndex: { configurable: true }, verticalIconBoxEndIndex: { configurable: true }, featureIndex: { configurable: true }, numHorizontalGlyphVertices: { configurable: true }, numVerticalGlyphVertices: { configurable: true }, numIconVertices: { configurable: true }, numVerticalIconVertices: { configurable: true }, useRuntimeCollisionCircles: { configurable: true }, crossTileID: { configurable: true }, textBoxScale: { configurable: true }, textOffset0: { configurable: true }, textOffset1: { configurable: true }, collisionCircleDiameter: { configurable: true } }; + return r2.anchorX.get = function() { return this._structArray.int16[this._pos2 + 0]; - } - get anchorY() { + }, r2.anchorY.get = function() { return this._structArray.int16[this._pos2 + 1]; - } - get rightJustifiedTextSymbolIndex() { + }, r2.rightJustifiedTextSymbolIndex.get = function() { return this._structArray.int16[this._pos2 + 2]; - } - get centerJustifiedTextSymbolIndex() { + }, r2.centerJustifiedTextSymbolIndex.get = function() { return this._structArray.int16[this._pos2 + 3]; - } - get leftJustifiedTextSymbolIndex() { + }, r2.leftJustifiedTextSymbolIndex.get = function() { return this._structArray.int16[this._pos2 + 4]; - } - get verticalPlacedTextSymbolIndex() { + }, r2.verticalPlacedTextSymbolIndex.get = function() { return this._structArray.int16[this._pos2 + 5]; - } - get placedIconSymbolIndex() { + }, r2.placedIconSymbolIndex.get = function() { return this._structArray.int16[this._pos2 + 6]; - } - get verticalPlacedIconSymbolIndex() { + }, r2.verticalPlacedIconSymbolIndex.get = function() { return this._structArray.int16[this._pos2 + 7]; - } - get key() { + }, r2.key.get = function() { return this._structArray.uint16[this._pos2 + 8]; - } - get textBoxStartIndex() { + }, r2.textBoxStartIndex.get = function() { return this._structArray.uint16[this._pos2 + 9]; - } - get textBoxEndIndex() { + }, r2.textBoxEndIndex.get = function() { return this._structArray.uint16[this._pos2 + 10]; - } - get verticalTextBoxStartIndex() { + }, r2.verticalTextBoxStartIndex.get = function() { return this._structArray.uint16[this._pos2 + 11]; - } - get verticalTextBoxEndIndex() { + }, r2.verticalTextBoxEndIndex.get = function() { return this._structArray.uint16[this._pos2 + 12]; - } - get iconBoxStartIndex() { + }, r2.iconBoxStartIndex.get = function() { return this._structArray.uint16[this._pos2 + 13]; - } - get iconBoxEndIndex() { + }, r2.iconBoxEndIndex.get = function() { return this._structArray.uint16[this._pos2 + 14]; - } - get verticalIconBoxStartIndex() { + }, r2.verticalIconBoxStartIndex.get = function() { return this._structArray.uint16[this._pos2 + 15]; - } - get verticalIconBoxEndIndex() { + }, r2.verticalIconBoxEndIndex.get = function() { return this._structArray.uint16[this._pos2 + 16]; - } - get featureIndex() { + }, r2.featureIndex.get = function() { return this._structArray.uint16[this._pos2 + 17]; - } - get numHorizontalGlyphVertices() { + }, r2.numHorizontalGlyphVertices.get = function() { return this._structArray.uint16[this._pos2 + 18]; - } - get numVerticalGlyphVertices() { + }, r2.numVerticalGlyphVertices.get = function() { return this._structArray.uint16[this._pos2 + 19]; - } - get numIconVertices() { + }, r2.numIconVertices.get = function() { return this._structArray.uint16[this._pos2 + 20]; - } - get numVerticalIconVertices() { + }, r2.numVerticalIconVertices.get = function() { return this._structArray.uint16[this._pos2 + 21]; - } - get useRuntimeCollisionCircles() { + }, r2.useRuntimeCollisionCircles.get = function() { return this._structArray.uint16[this._pos2 + 22]; - } - get crossTileID() { + }, r2.crossTileID.get = function() { return this._structArray.uint32[this._pos4 + 12]; - } - set crossTileID(t2) { - this._structArray.uint32[this._pos4 + 12] = t2; - } - get textBoxScale() { + }, r2.crossTileID.set = function(t3) { + this._structArray.uint32[this._pos4 + 12] = t3; + }, r2.textBoxScale.get = function() { return this._structArray.float32[this._pos4 + 13]; - } - get textOffset0() { + }, r2.textOffset0.get = function() { return this._structArray.float32[this._pos4 + 14]; - } - get textOffset1() { + }, r2.textOffset1.get = function() { return this._structArray.float32[this._pos4 + 15]; - } - get collisionCircleDiameter() { + }, r2.collisionCircleDiameter.get = function() { return this._structArray.float32[this._pos4 + 16]; - } - } - Gi.prototype.size = 68; - class Ji extends Li { - get(t2) { - return new Gi(this, t2); - } - } - Mn("SymbolInstanceArray", Ji); - class Xi extends Di { - getoffsetX(t2) { - return this.float32[1 * t2 + 0]; - } - } - Mn("GlyphOffsetArray", Xi); - class Yi extends $i { - getx(t2) { - return this.int16[3 * t2 + 0]; - } - gety(t2) { - return this.int16[3 * t2 + 1]; - } - gettileUnitDistanceFromAnchor(t2) { - return this.int16[3 * t2 + 2]; - } - } - Mn("SymbolLineVertexArray", Yi); - class Hi extends gi { - get featureIndex() { + }, Object.defineProperties(e2.prototype, r2), e2; + }(Si); + ta.prototype.size = 68; + var ea = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.get = function(t3) { + return new ta(this, t3); + }, e2; + }(Ni); + On("SymbolInstanceArray", ea); + var ra = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getoffsetX = function(t3) { + return this.float32[1 * t3 + 0]; + }, e2; + }(Ki); + On("GlyphOffsetArray", ra); + var na = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getx = function(t3) { + return this.int16[3 * t3 + 0]; + }, e2.prototype.gety = function(t3) { + return this.int16[3 * t3 + 1]; + }, e2.prototype.gettileUnitDistanceFromAnchor = function(t3) { + return this.int16[3 * t3 + 2]; + }, e2; + }(Gi); + On("SymbolLineVertexArray", na); + var ia = function(t2) { + function e2() { + t2.apply(this, arguments); + } + t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2; + var r2 = { featureIndex: { configurable: true }, sourceLayerIndex: { configurable: true }, bucketIndex: { configurable: true } }; + return r2.featureIndex.get = function() { return this._structArray.uint32[this._pos4 + 0]; - } - get sourceLayerIndex() { + }, r2.sourceLayerIndex.get = function() { return this._structArray.uint16[this._pos2 + 2]; - } - get bucketIndex() { + }, r2.bucketIndex.get = function() { return this._structArray.uint16[this._pos2 + 3]; - } - } - Hi.prototype.size = 8; - class Wi extends Ri { - get(t2) { - return new Hi(this, t2); - } - } - Mn("FeatureIndexArray", Wi); - class Qi extends wi { - } - class ta extends wi { - } - class ea extends wi { - } - class ra extends Ai { - } - class na extends ki { - } - class ia extends Si { - } - class aa extends Ii { - } - class sa extends Mi { - } - class oa extends zi { - } - class la extends Bi { - } - class ua extends Pi { - } - class ca extends Ei { - } - class ha extends Fi { - } - class pa extends Oi { - } - const fa = vi([{ name: "a_pos", components: 2, type: "Int16" }], 4), { members: da } = fa; - class ya { - constructor(t2 = []) { - this.segments = t2; - } - prepareSegment(t2, e2, r2, n2) { - let i2 = this.segments[this.segments.length - 1]; - return t2 > ya.MAX_VERTEX_ARRAY_LENGTH && d(`Max vertices per segment is ${ya.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t2}`), (!i2 || i2.vertexLength + t2 > ya.MAX_VERTEX_ARRAY_LENGTH || i2.sortKey !== n2) && (i2 = { vertexOffset: e2.length, primitiveOffset: r2.length, vertexLength: 0, primitiveLength: 0 }, void 0 !== n2 && (i2.sortKey = n2), this.segments.push(i2)), i2; - } - get() { - return this.segments; - } - destroy() { - for (const t2 of this.segments) - for (const e2 in t2.vaos) - t2.vaos[e2].destroy(); - } - static simpleSegment(t2, e2, r2, n2) { - return new ya([{ vertexOffset: t2, primitiveOffset: e2, vertexLength: r2, primitiveLength: n2, vaos: {}, sortKey: 0 }]); - } - } - function ma(t2, e2) { - return 256 * (t2 = a(Math.floor(t2), 0, 255)) + a(Math.floor(e2), 0, 255); - } - ya.MAX_VERTEX_ARRAY_LENGTH = Math.pow(2, 16) - 1, Mn("SegmentVector", ya); - const ga = vi([{ name: "a_pattern_from", components: 4, type: "Uint16" }, { name: "a_pattern_to", components: 4, type: "Uint16" }, { name: "a_pixel_ratio_from", components: 1, type: "Uint16" }, { name: "a_pixel_ratio_to", components: 1, type: "Uint16" }]); - var xa = { exports: {} }, va = { exports: {} }; - va.exports = function(t2, e2) { - var r2, n2, i2, a2, s2, o2, l2, u2; - for (n2 = t2.length - (r2 = 3 & t2.length), i2 = e2, s2 = 3432918353, o2 = 461845907, u2 = 0; u2 < n2; ) - l2 = 255 & t2.charCodeAt(u2) | (255 & t2.charCodeAt(++u2)) << 8 | (255 & t2.charCodeAt(++u2)) << 16 | (255 & t2.charCodeAt(++u2)) << 24, ++u2, i2 = 27492 + (65535 & (a2 = 5 * (65535 & (i2 = (i2 ^= l2 = (65535 & (l2 = (l2 = (65535 & l2) * s2 + (((l2 >>> 16) * s2 & 65535) << 16) & 4294967295) << 15 | l2 >>> 17)) * o2 + (((l2 >>> 16) * o2 & 65535) << 16) & 4294967295) << 13 | i2 >>> 19)) + ((5 * (i2 >>> 16) & 65535) << 16) & 4294967295)) + ((58964 + (a2 >>> 16) & 65535) << 16); - switch (l2 = 0, r2) { - case 3: - l2 ^= (255 & t2.charCodeAt(u2 + 2)) << 16; - case 2: - l2 ^= (255 & t2.charCodeAt(u2 + 1)) << 8; - case 1: - i2 ^= l2 = (65535 & (l2 = (l2 = (65535 & (l2 ^= 255 & t2.charCodeAt(u2))) * s2 + (((l2 >>> 16) * s2 & 65535) << 16) & 4294967295) << 15 | l2 >>> 17)) * o2 + (((l2 >>> 16) * o2 & 65535) << 16) & 4294967295; - } - return i2 ^= t2.length, i2 = 2246822507 * (65535 & (i2 ^= i2 >>> 16)) + ((2246822507 * (i2 >>> 16) & 65535) << 16) & 4294967295, i2 = 3266489909 * (65535 & (i2 ^= i2 >>> 13)) + ((3266489909 * (i2 >>> 16) & 65535) << 16) & 4294967295, (i2 ^= i2 >>> 16) >>> 0; + }, Object.defineProperties(e2.prototype, r2), e2; + }(Si); + ia.prototype.size = 8; + var aa = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.get = function(t3) { + return new ia(this, t3); + }, e2; + }(Zi); + On("FeatureIndexArray", aa); + var oa = Ii([{ name: "a_pos", components: 2, type: "Int16" }], 4).members, sa = function(t2) { + void 0 === t2 && (t2 = []), this.segments = t2; }; - var ba = { exports: {} }; - ba.exports = function(t2, e2) { - for (var r2, n2 = t2.length, i2 = e2 ^ n2, a2 = 0; n2 >= 4; ) - r2 = 1540483477 * (65535 & (r2 = 255 & t2.charCodeAt(a2) | (255 & t2.charCodeAt(++a2)) << 8 | (255 & t2.charCodeAt(++a2)) << 16 | (255 & t2.charCodeAt(++a2)) << 24)) + ((1540483477 * (r2 >>> 16) & 65535) << 16), i2 = 1540483477 * (65535 & i2) + ((1540483477 * (i2 >>> 16) & 65535) << 16) ^ (r2 = 1540483477 * (65535 & (r2 ^= r2 >>> 24)) + ((1540483477 * (r2 >>> 16) & 65535) << 16)), n2 -= 4, ++a2; - switch (n2) { - case 3: - i2 ^= (255 & t2.charCodeAt(a2 + 2)) << 16; - case 2: - i2 ^= (255 & t2.charCodeAt(a2 + 1)) << 8; - case 1: - i2 = 1540483477 * (65535 & (i2 ^= 255 & t2.charCodeAt(a2))) + ((1540483477 * (i2 >>> 16) & 65535) << 16); - } - return i2 = 1540483477 * (65535 & (i2 ^= i2 >>> 13)) + ((1540483477 * (i2 >>> 16) & 65535) << 16), (i2 ^= i2 >>> 15) >>> 0; - }; - var wa = va.exports, _a = ba.exports; - xa.exports = wa, xa.exports.murmur3 = wa, xa.exports.murmur2 = _a; - class Aa { - constructor() { - this.ids = [], this.positions = [], this.indexed = false; - } - add(t2, e2, r2, n2) { - this.ids.push(ka(t2)), this.positions.push(e2, r2, n2); - } - getPositions(t2) { - if (!this.indexed) - throw new Error("Trying to get index, but feature positions are not indexed"); - const e2 = ka(t2); - let r2 = 0, n2 = this.ids.length - 1; - for (; r2 < n2; ) { - const t3 = r2 + n2 >> 1; - this.ids[t3] >= e2 ? n2 = t3 : r2 = t3 + 1; - } - const i2 = []; - for (; this.ids[r2] === e2; ) - i2.push({ index: this.positions[3 * r2], start: this.positions[3 * r2 + 1], end: this.positions[3 * r2 + 2] }), r2++; - return i2; - } - static serialize(t2, e2) { - const r2 = new Float64Array(t2.ids), n2 = new Uint32Array(t2.positions); - return Sa(r2, n2, 0, r2.length - 1), e2 && e2.push(r2.buffer, n2.buffer), { ids: r2, positions: n2 }; - } - static deserialize(t2) { - const e2 = new Aa(); - return e2.ids = t2.ids, e2.positions = t2.positions, e2.indexed = true, e2; - } - } - function ka(t2) { - const e2 = +t2; - return !isNaN(e2) && e2 <= Number.MAX_SAFE_INTEGER ? e2 : xa.exports(String(t2)); - } - function Sa(t2, e2, r2, n2) { - for (; r2 < n2; ) { - const i2 = t2[r2 + n2 >> 1]; - let a2 = r2 - 1, s2 = n2 + 1; - for (; ; ) { - do { - a2++; - } while (t2[a2] < i2); - do { - s2--; - } while (t2[s2] > i2); - if (a2 >= s2) - break; - Ia(t2, a2, s2), Ia(e2, 3 * a2, 3 * s2), Ia(e2, 3 * a2 + 1, 3 * s2 + 1), Ia(e2, 3 * a2 + 2, 3 * s2 + 2); + function ua(t2, e2) { + return 256 * (t2 = p2(Math.floor(t2), 0, 255)) + p2(Math.floor(e2), 0, 255); + } + sa.prototype.prepareSegment = function(t2, e2, r2, n2) { + var i2 = this.segments[this.segments.length - 1]; + return t2 > sa.MAX_VERTEX_ARRAY_LENGTH && A2("Max vertices per segment is " + sa.MAX_VERTEX_ARRAY_LENGTH + ": bucket requested " + t2), (!i2 || i2.vertexLength + t2 > sa.MAX_VERTEX_ARRAY_LENGTH || i2.sortKey !== n2) && (i2 = { vertexOffset: e2.length, primitiveOffset: r2.length, vertexLength: 0, primitiveLength: 0 }, void 0 !== n2 && (i2.sortKey = n2), this.segments.push(i2)), i2; + }, sa.prototype.get = function() { + return this.segments; + }, sa.prototype.destroy = function() { + for (var t2 = 0, e2 = this.segments; t2 < e2.length; t2 += 1) { + var r2 = e2[t2]; + for (var n2 in r2.vaos) + r2.vaos[n2].destroy(); + } + }, sa.simpleSegment = function(t2, e2, r2, n2) { + return new sa([{ vertexOffset: t2, primitiveOffset: e2, vertexLength: r2, primitiveLength: n2, vaos: {}, sortKey: 0 }]); + }, sa.MAX_VERTEX_ARRAY_LENGTH = Math.pow(2, 16) - 1, On("SegmentVector", sa); + var la = Ii([{ name: "a_pattern_from", components: 4, type: "Uint16" }, { name: "a_pattern_to", components: 4, type: "Uint16" }, { name: "a_pixel_ratio_from", components: 1, type: "Uint16" }, { name: "a_pixel_ratio_to", components: 1, type: "Uint16" }]), pa = e(function(t2) { + t2.exports = function(t3, e2) { + var r2, n2, i2, a2, o2, s2, u2, l2; + for (n2 = t3.length - (r2 = 3 & t3.length), i2 = e2, o2 = 3432918353, s2 = 461845907, l2 = 0; l2 < n2; ) + u2 = 255 & t3.charCodeAt(l2) | (255 & t3.charCodeAt(++l2)) << 8 | (255 & t3.charCodeAt(++l2)) << 16 | (255 & t3.charCodeAt(++l2)) << 24, ++l2, i2 = 27492 + (65535 & (a2 = 5 * (65535 & (i2 = (i2 ^= u2 = (65535 & (u2 = (u2 = (65535 & u2) * o2 + (((u2 >>> 16) * o2 & 65535) << 16) & 4294967295) << 15 | u2 >>> 17)) * s2 + (((u2 >>> 16) * s2 & 65535) << 16) & 4294967295) << 13 | i2 >>> 19)) + ((5 * (i2 >>> 16) & 65535) << 16) & 4294967295)) + ((58964 + (a2 >>> 16) & 65535) << 16); + switch (u2 = 0, r2) { + case 3: + u2 ^= (255 & t3.charCodeAt(l2 + 2)) << 16; + case 2: + u2 ^= (255 & t3.charCodeAt(l2 + 1)) << 8; + case 1: + i2 ^= u2 = (65535 & (u2 = (u2 = (65535 & (u2 ^= 255 & t3.charCodeAt(l2))) * o2 + (((u2 >>> 16) * o2 & 65535) << 16) & 4294967295) << 15 | u2 >>> 17)) * s2 + (((u2 >>> 16) * s2 & 65535) << 16) & 4294967295; } - s2 - r2 < n2 - s2 ? (Sa(t2, e2, r2, s2), r2 = s2 + 1) : (Sa(t2, e2, s2 + 1, n2), n2 = s2); - } - } - function Ia(t2, e2, r2) { - const n2 = t2[e2]; - t2[e2] = t2[r2], t2[r2] = n2; - } - Mn("FeaturePositionMap", Aa); - class Ma { - constructor(t2, e2) { - this.gl = t2.gl, this.location = e2; - } - } - class za extends Ma { - constructor(t2, e2) { - super(t2, e2), this.current = 0; - } - set(t2) { - this.current !== t2 && (this.current = t2, this.gl.uniform1f(this.location, t2)); - } - } - class Ba extends Ma { - constructor(t2, e2) { - super(t2, e2), this.current = [0, 0, 0, 0]; - } - set(t2) { - t2[0] === this.current[0] && t2[1] === this.current[1] && t2[2] === this.current[2] && t2[3] === this.current[3] || (this.current = t2, this.gl.uniform4f(this.location, t2[0], t2[1], t2[2], t2[3])); - } - } - class Ca extends Ma { - constructor(t2, e2) { - super(t2, e2), this.current = Ft.transparent; - } - set(t2) { - t2.r === this.current.r && t2.g === this.current.g && t2.b === this.current.b && t2.a === this.current.a || (this.current = t2, this.gl.uniform4f(this.location, t2.r, t2.g, t2.b, t2.a)); - } - } - const Pa = new Float32Array(16); - function Va(t2) { - return [ma(255 * t2.r, 255 * t2.g), ma(255 * t2.b, 255 * t2.a)]; - } - class Ea { - constructor(t2, e2, r2) { - this.value = t2, this.uniformNames = e2.map((t3) => `u_${t3}`), this.type = r2; - } - setUniform(t2, e2, r2) { - t2.set(r2.constantOr(this.value)); - } - getBinding(t2, e2, r2) { - return "color" === this.type ? new Ca(t2, e2) : new za(t2, e2); - } - } - class Fa { - constructor(t2, e2) { - this.uniformNames = e2.map((t3) => `u_${t3}`), this.patternFrom = null, this.patternTo = null, this.pixelRatioFrom = 1, this.pixelRatioTo = 1; - } - setConstantPatternPositions(t2, e2) { - this.pixelRatioFrom = e2.pixelRatio, this.pixelRatioTo = t2.pixelRatio, this.patternFrom = e2.tlbr, this.patternTo = t2.tlbr; - } - setUniform(t2, e2, r2, n2) { - const i2 = "u_pattern_to" === n2 ? this.patternTo : "u_pattern_from" === n2 ? this.patternFrom : "u_pixel_ratio_to" === n2 ? this.pixelRatioTo : "u_pixel_ratio_from" === n2 ? this.pixelRatioFrom : null; - i2 && t2.set(i2); - } - getBinding(t2, e2, r2) { - return "u_pattern" === r2.substr(0, 9) ? new Ba(t2, e2) : new za(t2, e2); - } - } - class Ta { - constructor(t2, e2, r2, n2) { - this.expression = t2, this.type = r2, this.maxValue = 0, this.paintVertexAttributes = e2.map((t3) => ({ name: `a_${t3}`, type: "Float32", components: "color" === r2 ? 2 : 1, offset: 0 })), this.paintVertexArray = new n2(); - } - populatePaintArray(t2, e2, r2, n2, i2) { - const a2 = this.paintVertexArray.length, s2 = this.expression.evaluate(new Qn(0), e2, {}, n2, [], i2); - this.paintVertexArray.resize(t2), this._setPaintValue(a2, t2, s2); - } - updatePaintArray(t2, e2, r2, n2) { - const i2 = this.expression.evaluate({ zoom: 0 }, r2, n2); - this._setPaintValue(t2, e2, i2); - } - _setPaintValue(t2, e2, r2) { - if ("color" === this.type) { - const n2 = Va(r2); - for (let r3 = t2; r3 < e2; r3++) - this.paintVertexArray.emplace(r3, n2[0], n2[1]); - } else { - for (let n2 = t2; n2 < e2; n2++) - this.paintVertexArray.emplace(n2, r2); - this.maxValue = Math.max(this.maxValue, Math.abs(r2)); + return i2 ^= t3.length, i2 = 2246822507 * (65535 & (i2 ^= i2 >>> 16)) + ((2246822507 * (i2 >>> 16) & 65535) << 16) & 4294967295, i2 = 3266489909 * (65535 & (i2 ^= i2 >>> 13)) + ((3266489909 * (i2 >>> 16) & 65535) << 16) & 4294967295, (i2 ^= i2 >>> 16) >>> 0; + }; + }), ca = e(function(t2) { + t2.exports = function(t3, e2) { + for (var r2, n2 = t3.length, i2 = e2 ^ n2, a2 = 0; n2 >= 4; ) + r2 = 1540483477 * (65535 & (r2 = 255 & t3.charCodeAt(a2) | (255 & t3.charCodeAt(++a2)) << 8 | (255 & t3.charCodeAt(++a2)) << 16 | (255 & t3.charCodeAt(++a2)) << 24)) + ((1540483477 * (r2 >>> 16) & 65535) << 16), i2 = 1540483477 * (65535 & i2) + ((1540483477 * (i2 >>> 16) & 65535) << 16) ^ (r2 = 1540483477 * (65535 & (r2 ^= r2 >>> 24)) + ((1540483477 * (r2 >>> 16) & 65535) << 16)), n2 -= 4, ++a2; + switch (n2) { + case 3: + i2 ^= (255 & t3.charCodeAt(a2 + 2)) << 16; + case 2: + i2 ^= (255 & t3.charCodeAt(a2 + 1)) << 8; + case 1: + i2 = 1540483477 * (65535 & (i2 ^= 255 & t3.charCodeAt(a2))) + ((1540483477 * (i2 >>> 16) & 65535) << 16); } - } - upload(t2) { - this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = t2.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent)); - } - destroy() { - this.paintVertexBuffer && this.paintVertexBuffer.destroy(); - } - } - class La { - constructor(t2, e2, r2, n2, i2, a2) { - this.expression = t2, this.uniformNames = e2.map((t3) => `u_${t3}_t`), this.type = r2, this.useIntegerZoom = n2, this.zoom = i2, this.maxValue = 0, this.paintVertexAttributes = e2.map((t3) => ({ name: `a_${t3}`, type: "Float32", components: "color" === r2 ? 4 : 2, offset: 0 })), this.paintVertexArray = new a2(); - } - populatePaintArray(t2, e2, r2, n2, i2) { - const a2 = this.expression.evaluate(new Qn(this.zoom), e2, {}, n2, [], i2), s2 = this.expression.evaluate(new Qn(this.zoom + 1), e2, {}, n2, [], i2), o2 = this.paintVertexArray.length; - this.paintVertexArray.resize(t2), this._setPaintValue(o2, t2, a2, s2); - } - updatePaintArray(t2, e2, r2, n2) { - const i2 = this.expression.evaluate({ zoom: this.zoom }, r2, n2), a2 = this.expression.evaluate({ zoom: this.zoom + 1 }, r2, n2); - this._setPaintValue(t2, e2, i2, a2); - } - _setPaintValue(t2, e2, r2, n2) { - if ("color" === this.type) { - const i2 = Va(r2), a2 = Va(n2); - for (let r3 = t2; r3 < e2; r3++) - this.paintVertexArray.emplace(r3, i2[0], i2[1], a2[0], a2[1]); - } else { - for (let i2 = t2; i2 < e2; i2++) - this.paintVertexArray.emplace(i2, r2, n2); - this.maxValue = Math.max(this.maxValue, Math.abs(r2), Math.abs(n2)); + return i2 = 1540483477 * (65535 & (i2 ^= i2 >>> 13)) + ((1540483477 * (i2 >>> 16) & 65535) << 16), (i2 ^= i2 >>> 15) >>> 0; + }; + }), ha = pa, fa = ca; + ha.murmur3 = pa, ha.murmur2 = fa; + var ya = function() { + this.ids = [], this.positions = [], this.indexed = false; + }; + ya.prototype.add = function(t2, e2, r2, n2) { + this.ids.push(ma(t2)), this.positions.push(e2, r2, n2); + }, ya.prototype.getPositions = function(t2) { + for (var e2 = ma(t2), r2 = 0, n2 = this.ids.length - 1; r2 < n2; ) { + var i2 = r2 + n2 >> 1; + this.ids[i2] >= e2 ? n2 = i2 : r2 = i2 + 1; + } + for (var a2 = []; this.ids[r2] === e2; ) + a2.push({ index: this.positions[3 * r2], start: this.positions[3 * r2 + 1], end: this.positions[3 * r2 + 2] }), r2++; + return a2; + }, ya.serialize = function(t2, e2) { + var r2 = new Float64Array(t2.ids), n2 = new Uint32Array(t2.positions); + return function t3(e3, r3, n3, i2) { + for (; n3 < i2; ) { + for (var a2 = e3[n3 + i2 >> 1], o2 = n3 - 1, s2 = i2 + 1; ; ) { + do { + o2++; + } while (e3[o2] < a2); + do { + s2--; + } while (e3[s2] > a2); + if (o2 >= s2) + break; + va(e3, o2, s2), va(r3, 3 * o2, 3 * s2), va(r3, 3 * o2 + 1, 3 * s2 + 1), va(r3, 3 * o2 + 2, 3 * s2 + 2); + } + s2 - n3 < i2 - s2 ? (t3(e3, r3, n3, s2), n3 = s2 + 1) : (t3(e3, r3, s2 + 1, i2), i2 = s2); } - } - upload(t2) { - this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = t2.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent)); - } - destroy() { - this.paintVertexBuffer && this.paintVertexBuffer.destroy(); - } - setUniform(t2, e2) { - const r2 = this.useIntegerZoom ? Math.floor(e2.zoom) : e2.zoom, n2 = a(this.expression.interpolationFactor(r2, this.zoom, this.zoom + 1), 0, 1); - t2.set(n2); - } - getBinding(t2, e2, r2) { - return new za(t2, e2); - } + }(r2, n2, 0, r2.length - 1), e2 && e2.push(r2.buffer, n2.buffer), { ids: r2, positions: n2 }; + }, ya.deserialize = function(t2) { + var e2 = new ya(); + return e2.ids = t2.ids, e2.positions = t2.positions, e2.indexed = true, e2; + }; + var da = Math.pow(2, 53) - 1; + function ma(t2) { + var e2 = +t2; + return !isNaN(e2) && e2 <= da ? e2 : ha(String(t2)); } - class Da { - constructor(t2, e2, r2, n2, i2, a2) { - this.expression = t2, this.type = e2, this.useIntegerZoom = r2, this.zoom = n2, this.layerId = a2, this.zoomInPaintVertexArray = new i2(), this.zoomOutPaintVertexArray = new i2(); - } - populatePaintArray(t2, e2, r2) { - const n2 = this.zoomInPaintVertexArray.length; - this.zoomInPaintVertexArray.resize(t2), this.zoomOutPaintVertexArray.resize(t2), this._setPaintValues(n2, t2, e2.patterns && e2.patterns[this.layerId], r2); - } - updatePaintArray(t2, e2, r2, n2, i2) { - this._setPaintValues(t2, e2, r2.patterns && r2.patterns[this.layerId], i2); - } - _setPaintValues(t2, e2, r2, n2) { - if (!n2 || !r2) - return; - const { min: i2, mid: a2, max: s2 } = r2, o2 = n2[i2], l2 = n2[a2], u2 = n2[s2]; - if (o2 && l2 && u2) - for (let r3 = t2; r3 < e2; r3++) - this.zoomInPaintVertexArray.emplace(r3, l2.tl[0], l2.tl[1], l2.br[0], l2.br[1], o2.tl[0], o2.tl[1], o2.br[0], o2.br[1], l2.pixelRatio, o2.pixelRatio), this.zoomOutPaintVertexArray.emplace(r3, l2.tl[0], l2.tl[1], l2.br[0], l2.br[1], u2.tl[0], u2.tl[1], u2.br[0], u2.br[1], l2.pixelRatio, u2.pixelRatio); - } - upload(t2) { - this.zoomInPaintVertexArray && this.zoomInPaintVertexArray.arrayBuffer && this.zoomOutPaintVertexArray && this.zoomOutPaintVertexArray.arrayBuffer && (this.zoomInPaintVertexBuffer = t2.createVertexBuffer(this.zoomInPaintVertexArray, ga.members, this.expression.isStateDependent), this.zoomOutPaintVertexBuffer = t2.createVertexBuffer(this.zoomOutPaintVertexArray, ga.members, this.expression.isStateDependent)); - } - destroy() { - this.zoomOutPaintVertexBuffer && this.zoomOutPaintVertexBuffer.destroy(), this.zoomInPaintVertexBuffer && this.zoomInPaintVertexBuffer.destroy(); - } + function va(t2, e2, r2) { + var n2 = t2[e2]; + t2[e2] = t2[r2], t2[r2] = n2; } - class $a { - constructor(t2, e2, r2) { - this.binders = {}, this._buffers = []; - const n2 = []; - for (const i2 in t2.paint._values) { - if (!r2(i2)) - continue; - const a2 = t2.paint.get(i2); - if (!(a2 instanceof si && br(a2.property.specification))) - continue; - const s2 = Oa(i2, t2.type), o2 = a2.value, l2 = a2.property.specification.type, u2 = a2.property.useIntegerZoom, c3 = a2.property.specification["property-type"], h3 = "cross-faded" === c3 || "cross-faded-data-driven" === c3; - if ("constant" === o2.kind) - this.binders[i2] = h3 ? new Fa(o2.value, s2) : new Ea(o2.value, s2, l2), n2.push(`/u_${i2}`); - else if ("source" === o2.kind || h3) { - const r3 = Ua(i2, l2, "source"); - this.binders[i2] = h3 ? new Da(o2, l2, u2, e2, r3, t2.id) : new Ta(o2, s2, l2, r3), n2.push(`/a_${i2}`); - } else { - const t3 = Ua(i2, l2, "composite"); - this.binders[i2] = new La(o2, s2, l2, u2, e2, t3), n2.push(`/z_${i2}`); + On("FeaturePositionMap", ya); + var ga = function(t2, e2) { + this.gl = t2.gl, this.location = e2; + }, xa = function(t2) { + function e2(e3, r2) { + t2.call(this, e3, r2), this.current = 0; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.set = function(t3) { + this.current !== t3 && (this.current = t3, this.gl.uniform1i(this.location, t3)); + }, e2; + }(ga), ba = function(t2) { + function e2(e3, r2) { + t2.call(this, e3, r2), this.current = 0; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.set = function(t3) { + this.current !== t3 && (this.current = t3, this.gl.uniform1f(this.location, t3)); + }, e2; + }(ga), wa = function(t2) { + function e2(e3, r2) { + t2.call(this, e3, r2), this.current = [0, 0]; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.set = function(t3) { + t3[0] === this.current[0] && t3[1] === this.current[1] || (this.current = t3, this.gl.uniform2f(this.location, t3[0], t3[1])); + }, e2; + }(ga), _a = function(t2) { + function e2(e3, r2) { + t2.call(this, e3, r2), this.current = [0, 0, 0]; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.set = function(t3) { + t3[0] === this.current[0] && t3[1] === this.current[1] && t3[2] === this.current[2] || (this.current = t3, this.gl.uniform3f(this.location, t3[0], t3[1], t3[2])); + }, e2; + }(ga), Aa = function(t2) { + function e2(e3, r2) { + t2.call(this, e3, r2), this.current = [0, 0, 0, 0]; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.set = function(t3) { + t3[0] === this.current[0] && t3[1] === this.current[1] && t3[2] === this.current[2] && t3[3] === this.current[3] || (this.current = t3, this.gl.uniform4f(this.location, t3[0], t3[1], t3[2], t3[3])); + }, e2; + }(ga), Sa = function(t2) { + function e2(e3, r2) { + t2.call(this, e3, r2), this.current = te.transparent; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.set = function(t3) { + t3.r === this.current.r && t3.g === this.current.g && t3.b === this.current.b && t3.a === this.current.a || (this.current = t3, this.gl.uniform4f(this.location, t3.r, t3.g, t3.b, t3.a)); + }, e2; + }(ga), ka = new Float32Array(16), Ia = function(t2) { + function e2(e3, r2) { + t2.call(this, e3, r2), this.current = ka; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.set = function(t3) { + if (t3[12] !== this.current[12] || t3[0] !== this.current[0]) + return this.current = t3, void this.gl.uniformMatrix4fv(this.location, false, t3); + for (var e3 = 1; e3 < 16; e3++) + if (t3[e3] !== this.current[e3]) { + this.current = t3, this.gl.uniformMatrix4fv(this.location, false, t3); + break; } - } - this.cacheKey = n2.sort().join(""); - } - getMaxValue(t2) { - const e2 = this.binders[t2]; - return e2 instanceof Ta || e2 instanceof La ? e2.maxValue : 0; - } - populatePaintArrays(t2, e2, r2, n2, i2) { - for (const a2 in this.binders) { - const s2 = this.binders[a2]; - (s2 instanceof Ta || s2 instanceof La || s2 instanceof Da) && s2.populatePaintArray(t2, e2, r2, n2, i2); - } - } - setConstantPatternPositions(t2, e2) { - for (const r2 in this.binders) { - const n2 = this.binders[r2]; - n2 instanceof Fa && n2.setConstantPatternPositions(t2, e2); - } - } - updatePaintArrays(t2, e2, r2, n2, i2) { - let a2 = false; - for (const s2 in t2) { - const o2 = e2.getPositions(s2); - for (const e3 of o2) { - const o3 = r2.feature(e3.index); - for (const r3 in this.binders) { - const l2 = this.binders[r3]; - if ((l2 instanceof Ta || l2 instanceof La || l2 instanceof Da) && true === l2.expression.isStateDependent) { - const u2 = n2.paint.get(r3); - l2.expression = u2.value, l2.updatePaintArray(e3.start, e3.end, o3, t2[s2], i2), a2 = true; - } + }, e2; + }(ga); + function za(t2) { + return [ua(255 * t2.r, 255 * t2.g), ua(255 * t2.b, 255 * t2.a)]; + } + var Ca = function(t2, e2, r2) { + this.value = t2, this.uniformNames = e2.map(function(t3) { + return "u_" + t3; + }), this.type = r2; + }; + Ca.prototype.setUniform = function(t2, e2, r2) { + t2.set(r2.constantOr(this.value)); + }, Ca.prototype.getBinding = function(t2, e2, r2) { + return "color" === this.type ? new Sa(t2, e2) : new ba(t2, e2); + }; + var Ea = function(t2, e2) { + this.uniformNames = e2.map(function(t3) { + return "u_" + t3; + }), this.patternFrom = null, this.patternTo = null, this.pixelRatioFrom = 1, this.pixelRatioTo = 1; + }; + Ea.prototype.setConstantPatternPositions = function(t2, e2) { + this.pixelRatioFrom = e2.pixelRatio, this.pixelRatioTo = t2.pixelRatio, this.patternFrom = e2.tlbr, this.patternTo = t2.tlbr; + }, Ea.prototype.setUniform = function(t2, e2, r2, n2) { + var i2 = "u_pattern_to" === n2 ? this.patternTo : "u_pattern_from" === n2 ? this.patternFrom : "u_pixel_ratio_to" === n2 ? this.pixelRatioTo : "u_pixel_ratio_from" === n2 ? this.pixelRatioFrom : null; + i2 && t2.set(i2); + }, Ea.prototype.getBinding = function(t2, e2, r2) { + return "u_pattern" === r2.substr(0, 9) ? new Aa(t2, e2) : new ba(t2, e2); + }; + var Pa = function(t2, e2, r2, n2) { + this.expression = t2, this.type = r2, this.maxValue = 0, this.paintVertexAttributes = e2.map(function(t3) { + return { name: "a_" + t3, type: "Float32", components: "color" === r2 ? 2 : 1, offset: 0 }; + }), this.paintVertexArray = new n2(); + }; + Pa.prototype.populatePaintArray = function(t2, e2, r2, n2, i2) { + var a2 = this.paintVertexArray.length, o2 = this.expression.evaluate(new si(0), e2, {}, n2, [], i2); + this.paintVertexArray.resize(t2), this._setPaintValue(a2, t2, o2); + }, Pa.prototype.updatePaintArray = function(t2, e2, r2, n2) { + var i2 = this.expression.evaluate({ zoom: 0 }, r2, n2); + this._setPaintValue(t2, e2, i2); + }, Pa.prototype._setPaintValue = function(t2, e2, r2) { + if ("color" === this.type) + for (var n2 = za(r2), i2 = t2; i2 < e2; i2++) + this.paintVertexArray.emplace(i2, n2[0], n2[1]); + else { + for (var a2 = t2; a2 < e2; a2++) + this.paintVertexArray.emplace(a2, r2); + this.maxValue = Math.max(this.maxValue, Math.abs(r2)); + } + }, Pa.prototype.upload = function(t2) { + this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = t2.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent)); + }, Pa.prototype.destroy = function() { + this.paintVertexBuffer && this.paintVertexBuffer.destroy(); + }; + var Ma = function(t2, e2, r2, n2, i2, a2) { + this.expression = t2, this.uniformNames = e2.map(function(t3) { + return "u_" + t3 + "_t"; + }), this.type = r2, this.useIntegerZoom = n2, this.zoom = i2, this.maxValue = 0, this.paintVertexAttributes = e2.map(function(t3) { + return { name: "a_" + t3, type: "Float32", components: "color" === r2 ? 4 : 2, offset: 0 }; + }), this.paintVertexArray = new a2(); + }; + Ma.prototype.populatePaintArray = function(t2, e2, r2, n2, i2) { + var a2 = this.expression.evaluate(new si(this.zoom), e2, {}, n2, [], i2), o2 = this.expression.evaluate(new si(this.zoom + 1), e2, {}, n2, [], i2), s2 = this.paintVertexArray.length; + this.paintVertexArray.resize(t2), this._setPaintValue(s2, t2, a2, o2); + }, Ma.prototype.updatePaintArray = function(t2, e2, r2, n2) { + var i2 = this.expression.evaluate({ zoom: this.zoom }, r2, n2), a2 = this.expression.evaluate({ zoom: this.zoom + 1 }, r2, n2); + this._setPaintValue(t2, e2, i2, a2); + }, Ma.prototype._setPaintValue = function(t2, e2, r2, n2) { + if ("color" === this.type) + for (var i2 = za(r2), a2 = za(n2), o2 = t2; o2 < e2; o2++) + this.paintVertexArray.emplace(o2, i2[0], i2[1], a2[0], a2[1]); + else { + for (var s2 = t2; s2 < e2; s2++) + this.paintVertexArray.emplace(s2, r2, n2); + this.maxValue = Math.max(this.maxValue, Math.abs(r2), Math.abs(n2)); + } + }, Ma.prototype.upload = function(t2) { + this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = t2.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent)); + }, Ma.prototype.destroy = function() { + this.paintVertexBuffer && this.paintVertexBuffer.destroy(); + }, Ma.prototype.setUniform = function(t2, e2) { + var r2 = this.useIntegerZoom ? Math.floor(e2.zoom) : e2.zoom, n2 = p2(this.expression.interpolationFactor(r2, this.zoom, this.zoom + 1), 0, 1); + t2.set(n2); + }, Ma.prototype.getBinding = function(t2, e2, r2) { + return new ba(t2, e2); + }; + var Ba = function(t2, e2, r2, n2, i2, a2) { + this.expression = t2, this.type = e2, this.useIntegerZoom = r2, this.zoom = n2, this.layerId = a2, this.zoomInPaintVertexArray = new i2(), this.zoomOutPaintVertexArray = new i2(); + }; + Ba.prototype.populatePaintArray = function(t2, e2, r2) { + var n2 = this.zoomInPaintVertexArray.length; + this.zoomInPaintVertexArray.resize(t2), this.zoomOutPaintVertexArray.resize(t2), this._setPaintValues(n2, t2, e2.patterns && e2.patterns[this.layerId], r2); + }, Ba.prototype.updatePaintArray = function(t2, e2, r2, n2, i2) { + this._setPaintValues(t2, e2, r2.patterns && r2.patterns[this.layerId], i2); + }, Ba.prototype._setPaintValues = function(t2, e2, r2, n2) { + if (n2 && r2) { + var i2 = n2[r2.min], a2 = n2[r2.mid], o2 = n2[r2.max]; + if (i2 && a2 && o2) + for (var s2 = t2; s2 < e2; s2++) + this.zoomInPaintVertexArray.emplace(s2, a2.tl[0], a2.tl[1], a2.br[0], a2.br[1], i2.tl[0], i2.tl[1], i2.br[0], i2.br[1], a2.pixelRatio, i2.pixelRatio), this.zoomOutPaintVertexArray.emplace(s2, a2.tl[0], a2.tl[1], a2.br[0], a2.br[1], o2.tl[0], o2.tl[1], o2.br[0], o2.br[1], a2.pixelRatio, o2.pixelRatio); + } + }, Ba.prototype.upload = function(t2) { + this.zoomInPaintVertexArray && this.zoomInPaintVertexArray.arrayBuffer && this.zoomOutPaintVertexArray && this.zoomOutPaintVertexArray.arrayBuffer && (this.zoomInPaintVertexBuffer = t2.createVertexBuffer(this.zoomInPaintVertexArray, la.members, this.expression.isStateDependent), this.zoomOutPaintVertexBuffer = t2.createVertexBuffer(this.zoomOutPaintVertexArray, la.members, this.expression.isStateDependent)); + }, Ba.prototype.destroy = function() { + this.zoomOutPaintVertexBuffer && this.zoomOutPaintVertexBuffer.destroy(), this.zoomInPaintVertexBuffer && this.zoomInPaintVertexBuffer.destroy(); + }; + var Ta = function(t2, e2, r2) { + this.binders = {}, this._buffers = []; + var n2 = []; + for (var i2 in t2.paint._values) + if (r2(i2)) { + var a2 = t2.paint.get(i2); + if (a2 instanceof yi && Tr(a2.property.specification)) { + var o2 = Fa(i2, t2.type), s2 = a2.value, u2 = a2.property.specification.type, l2 = a2.property.useIntegerZoom, p3 = a2.property.specification["property-type"], c3 = "cross-faded" === p3 || "cross-faded-data-driven" === p3; + if ("constant" === s2.kind) + this.binders[i2] = c3 ? new Ea(s2.value, o2) : new Ca(s2.value, o2, u2), n2.push("/u_" + i2); + else if ("source" === s2.kind || c3) { + var h3 = Da(i2, u2, "source"); + this.binders[i2] = c3 ? new Ba(s2, u2, l2, e2, h3, t2.id) : new Pa(s2, o2, u2, h3), n2.push("/a_" + i2); + } else { + var f2 = Da(i2, u2, "composite"); + this.binders[i2] = new Ma(s2, o2, u2, l2, e2, f2), n2.push("/z_" + i2); } } } - return a2; - } - defines() { - const t2 = []; - for (const e2 in this.binders) { - const r2 = this.binders[e2]; - (r2 instanceof Ea || r2 instanceof Fa) && t2.push(...r2.uniformNames.map((t3) => `#define HAS_UNIFORM_${t3}`)); - } - return t2; - } - getBinderAttributes() { - const t2 = []; - for (const e2 in this.binders) { - const r2 = this.binders[e2]; - if (r2 instanceof Ta || r2 instanceof La) - for (let e3 = 0; e3 < r2.paintVertexAttributes.length; e3++) - t2.push(r2.paintVertexAttributes[e3].name); - else if (r2 instanceof Da) - for (let e3 = 0; e3 < ga.members.length; e3++) - t2.push(ga.members[e3].name); - } - return t2; - } - getBinderUniforms() { - const t2 = []; - for (const e2 in this.binders) { - const r2 = this.binders[e2]; - if (r2 instanceof Ea || r2 instanceof Fa || r2 instanceof La) - for (const e3 of r2.uniformNames) - t2.push(e3); - } - return t2; - } - getPaintVertexBuffers() { - return this._buffers; - } - getUniforms(t2, e2) { - const r2 = []; - for (const n2 in this.binders) { - const i2 = this.binders[n2]; - if (i2 instanceof Ea || i2 instanceof Fa || i2 instanceof La) { - for (const a2 of i2.uniformNames) - if (e2[a2]) { - const s2 = i2.getBinding(t2, e2[a2], a2); - r2.push({ name: a2, property: n2, binding: s2 }); - } + this.cacheKey = n2.sort().join(""); + }; + Ta.prototype.getMaxValue = function(t2) { + var e2 = this.binders[t2]; + return e2 instanceof Pa || e2 instanceof Ma ? e2.maxValue : 0; + }, Ta.prototype.populatePaintArrays = function(t2, e2, r2, n2, i2) { + for (var a2 in this.binders) { + var o2 = this.binders[a2]; + (o2 instanceof Pa || o2 instanceof Ma || o2 instanceof Ba) && o2.populatePaintArray(t2, e2, r2, n2, i2); + } + }, Ta.prototype.setConstantPatternPositions = function(t2, e2) { + for (var r2 in this.binders) { + var n2 = this.binders[r2]; + n2 instanceof Ea && n2.setConstantPatternPositions(t2, e2); + } + }, Ta.prototype.updatePaintArrays = function(t2, e2, r2, n2, i2) { + var a2 = false; + for (var o2 in t2) + for (var s2 = 0, u2 = e2.getPositions(o2); s2 < u2.length; s2 += 1) { + var l2 = u2[s2], p3 = r2.feature(l2.index); + for (var c3 in this.binders) { + var h3 = this.binders[c3]; + if ((h3 instanceof Pa || h3 instanceof Ma || h3 instanceof Ba) && true === h3.expression.isStateDependent) { + var f2 = n2.paint.get(c3); + h3.expression = f2.value, h3.updatePaintArray(l2.start, l2.end, p3, t2[o2], i2), a2 = true; + } } } - return r2; - } - setUniforms(t2, e2, r2, n2) { - for (const { name: t3, property: i2, binding: a2 } of e2) - this.binders[i2].setUniform(a2, n2, r2.get(i2), t3); - } - updatePaintBuffers(t2) { - this._buffers = []; - for (const e2 in this.binders) { - const r2 = this.binders[e2]; - if (t2 && r2 instanceof Da) { - const e3 = 2 === t2.fromScale ? r2.zoomInPaintVertexBuffer : r2.zoomOutPaintVertexBuffer; - e3 && this._buffers.push(e3); - } else - (r2 instanceof Ta || r2 instanceof La) && r2.paintVertexBuffer && this._buffers.push(r2.paintVertexBuffer); - } - } - upload(t2) { - for (const e2 in this.binders) { - const r2 = this.binders[e2]; - (r2 instanceof Ta || r2 instanceof La || r2 instanceof Da) && r2.upload(t2); - } - this.updatePaintBuffers(); + return a2; + }, Ta.prototype.defines = function() { + var t2 = []; + for (var e2 in this.binders) { + var r2 = this.binders[e2]; + (r2 instanceof Ca || r2 instanceof Ea) && t2.push.apply(t2, r2.uniformNames.map(function(t3) { + return "#define HAS_UNIFORM_" + t3; + })); } - destroy() { - for (const t2 in this.binders) { - const e2 = this.binders[t2]; - (e2 instanceof Ta || e2 instanceof La || e2 instanceof Da) && e2.destroy(); - } + return t2; + }, Ta.prototype.getBinderAttributes = function() { + var t2 = []; + for (var e2 in this.binders) { + var r2 = this.binders[e2]; + if (r2 instanceof Pa || r2 instanceof Ma) + for (var n2 = 0; n2 < r2.paintVertexAttributes.length; n2++) + t2.push(r2.paintVertexAttributes[n2].name); + else if (r2 instanceof Ba) + for (var i2 = 0; i2 < la.members.length; i2++) + t2.push(la.members[i2].name); } - } - class Ra { - constructor(t2, e2, r2 = () => true) { - this.programConfigurations = {}; - for (const n2 of t2) - this.programConfigurations[n2.id] = new $a(n2, e2, r2); - this.needsUpload = false, this._featureMap = new Aa(), this._bufferOffset = 0; + return t2; + }, Ta.prototype.getBinderUniforms = function() { + var t2 = []; + for (var e2 in this.binders) { + var r2 = this.binders[e2]; + if (r2 instanceof Ca || r2 instanceof Ea || r2 instanceof Ma) + for (var n2 = 0, i2 = r2.uniformNames; n2 < i2.length; n2 += 1) + t2.push(i2[n2]); } - populatePaintArrays(t2, e2, r2, n2, i2, a2) { - for (const r3 in this.programConfigurations) - this.programConfigurations[r3].populatePaintArrays(t2, e2, n2, i2, a2); - void 0 !== e2.id && this._featureMap.add(e2.id, r2, this._bufferOffset, t2), this._bufferOffset = t2, this.needsUpload = true; + return t2; + }, Ta.prototype.getPaintVertexBuffers = function() { + return this._buffers; + }, Ta.prototype.getUniforms = function(t2, e2) { + var r2 = []; + for (var n2 in this.binders) { + var i2 = this.binders[n2]; + if (i2 instanceof Ca || i2 instanceof Ea || i2 instanceof Ma) + for (var a2 = 0, o2 = i2.uniformNames; a2 < o2.length; a2 += 1) { + var s2 = o2[a2]; + if (e2[s2]) { + var u2 = i2.getBinding(t2, e2[s2], s2); + r2.push({ name: s2, property: n2, binding: u2 }); + } + } } - updatePaintArrays(t2, e2, r2, n2) { - for (const i2 of r2) - this.needsUpload = this.programConfigurations[i2.id].updatePaintArrays(t2, this._featureMap, e2, i2, n2) || this.needsUpload; + return r2; + }, Ta.prototype.setUniforms = function(t2, e2, r2, n2) { + for (var i2 = 0, a2 = e2; i2 < a2.length; i2 += 1) { + var o2 = a2[i2], s2 = o2.name, u2 = o2.property; + this.binders[u2].setUniform(o2.binding, n2, r2.get(u2), s2); + } + }, Ta.prototype.updatePaintBuffers = function(t2) { + for (var e2 in this._buffers = [], this.binders) { + var r2 = this.binders[e2]; + if (t2 && r2 instanceof Ba) { + var n2 = 2 === t2.fromScale ? r2.zoomInPaintVertexBuffer : r2.zoomOutPaintVertexBuffer; + n2 && this._buffers.push(n2); + } else + (r2 instanceof Pa || r2 instanceof Ma) && r2.paintVertexBuffer && this._buffers.push(r2.paintVertexBuffer); } - get(t2) { - return this.programConfigurations[t2]; + }, Ta.prototype.upload = function(t2) { + for (var e2 in this.binders) { + var r2 = this.binders[e2]; + (r2 instanceof Pa || r2 instanceof Ma || r2 instanceof Ba) && r2.upload(t2); } - upload(t2) { - if (this.needsUpload) { - for (const e2 in this.programConfigurations) - this.programConfigurations[e2].upload(t2); - this.needsUpload = false; - } + this.updatePaintBuffers(); + }, Ta.prototype.destroy = function() { + for (var t2 in this.binders) { + var e2 = this.binders[t2]; + (e2 instanceof Pa || e2 instanceof Ma || e2 instanceof Ba) && e2.destroy(); } - destroy() { - for (const t2 in this.programConfigurations) - this.programConfigurations[t2].destroy(); + }; + var Va = function(t2, e2, r2) { + void 0 === r2 && (r2 = function() { + return true; + }), this.programConfigurations = {}; + for (var n2 = 0, i2 = t2; n2 < i2.length; n2 += 1) { + var a2 = i2[n2]; + this.programConfigurations[a2.id] = new Ta(a2, e2, r2); } + this.needsUpload = false, this._featureMap = new ya(), this._bufferOffset = 0; + }; + function Fa(t2, e2) { + return { "text-opacity": ["opacity"], "icon-opacity": ["opacity"], "text-color": ["fill_color"], "icon-color": ["fill_color"], "text-halo-color": ["halo_color"], "icon-halo-color": ["halo_color"], "text-halo-blur": ["halo_blur"], "icon-halo-blur": ["halo_blur"], "text-halo-width": ["halo_width"], "icon-halo-width": ["halo_width"], "line-gap-width": ["gapwidth"], "line-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"], "fill-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"], "fill-extrusion-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"] }[t2] || [t2.replace(e2 + "-", "").replace(/-/g, "_")]; } - function Oa(t2, e2) { - return { "text-opacity": ["opacity"], "icon-opacity": ["opacity"], "text-color": ["fill_color"], "icon-color": ["fill_color"], "text-halo-color": ["halo_color"], "icon-halo-color": ["halo_color"], "text-halo-blur": ["halo_blur"], "icon-halo-blur": ["halo_blur"], "text-halo-width": ["halo_width"], "icon-halo-width": ["halo_width"], "line-gap-width": ["gapwidth"], "line-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"], "fill-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"], "fill-extrusion-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"] }[t2] || [t2.replace(`${e2}-`, "").replace(/-/g, "_")]; - } - function Ua(t2, e2, r2) { - const n2 = { color: { source: Si, composite: qi }, number: { source: Di, composite: Si } }, i2 = function(t3) { - return { "line-pattern": { source: aa, composite: aa }, "fill-pattern": { source: aa, composite: aa }, "fill-extrusion-pattern": { source: aa, composite: aa } }[t3]; + function Da(t2, e2, r2) { + var n2 = { color: { source: Bi, composite: Hi }, number: { source: Ki, composite: Bi } }, i2 = function(t3) { + return { "line-pattern": { source: Ti, composite: Ti }, "fill-pattern": { source: Ti, composite: Ti }, "fill-extrusion-pattern": { source: Ti, composite: Ti } }[t3]; }(t2); return i2 && i2[r2] || n2[e2][r2]; } - Mn("ConstantBinder", Ea), Mn("CrossFadedConstantBinder", Fa), Mn("SourceExpressionBinder", Ta), Mn("CrossFadedCompositeBinder", Da), Mn("CompositeExpressionBinder", La), Mn("ProgramConfiguration", $a, { omit: ["_buffers"] }), Mn("ProgramConfigurationSet", Ra); - var qa = 8192; - const ja = Math.pow(2, 14) - 1, Na = -ja - 1; - function Za(t2) { - const e2 = qa / t2.extent, r2 = t2.loadGeometry(); - for (let t3 = 0; t3 < r2.length; t3++) { - const n2 = r2[t3]; - for (let t4 = 0; t4 < n2.length; t4++) { - const r3 = n2[t4], i2 = Math.round(r3.x * e2), s2 = Math.round(r3.y * e2); - r3.x = a(i2, Na, ja), r3.y = a(s2, Na, ja), (i2 < r3.x || i2 > r3.x + 1 || s2 < r3.y || s2 > r3.y + 1) && d("Geometry exceeds allowed extent, reduce your vector tile buffer size"); + Va.prototype.populatePaintArrays = function(t2, e2, r2, n2, i2, a2) { + for (var o2 in this.programConfigurations) + this.programConfigurations[o2].populatePaintArrays(t2, e2, n2, i2, a2); + void 0 !== e2.id && this._featureMap.add(e2.id, r2, this._bufferOffset, t2), this._bufferOffset = t2, this.needsUpload = true; + }, Va.prototype.updatePaintArrays = function(t2, e2, r2, n2) { + for (var i2 = 0, a2 = r2; i2 < a2.length; i2 += 1) { + var o2 = a2[i2]; + this.needsUpload = this.programConfigurations[o2.id].updatePaintArrays(t2, this._featureMap, e2, o2, n2) || this.needsUpload; + } + }, Va.prototype.get = function(t2) { + return this.programConfigurations[t2]; + }, Va.prototype.upload = function(t2) { + if (this.needsUpload) { + for (var e2 in this.programConfigurations) + this.programConfigurations[e2].upload(t2); + this.needsUpload = false; + } + }, Va.prototype.destroy = function() { + for (var t2 in this.programConfigurations) + this.programConfigurations[t2].destroy(); + }, On("ConstantBinder", Ca), On("CrossFadedConstantBinder", Ea), On("SourceExpressionBinder", Pa), On("CrossFadedCompositeBinder", Ba), On("CompositeExpressionBinder", Ma), On("ProgramConfiguration", Ta, { omit: ["_buffers"] }), On("ProgramConfigurationSet", Va); + var La = Math.pow(2, 14) - 1, Oa = -La - 1; + function Ra(t2) { + for (var e2 = 8192 / t2.extent, r2 = t2.loadGeometry(), n2 = 0; n2 < r2.length; n2++) + for (var i2 = r2[n2], a2 = 0; a2 < i2.length; a2++) { + var o2 = i2[a2], s2 = Math.round(o2.x * e2), u2 = Math.round(o2.y * e2); + o2.x = p2(s2, Oa, La), o2.y = p2(u2, Oa, La), (s2 < o2.x || s2 > o2.x + 1 || u2 < o2.y || u2 > o2.y + 1) && A2("Geometry exceeds allowed extent, reduce your vector tile buffer size"); } - } return r2; } - function Ka(t2, e2) { - return { type: t2.type, id: t2.id, properties: t2.properties, geometry: e2 ? Za(t2) : [] }; + function Ua(t2, e2) { + return { type: t2.type, id: t2.id, properties: t2.properties, geometry: e2 ? Ra(t2) : [] }; } - function Ga(t2, e2, r2, n2, i2) { + function ja(t2, e2, r2, n2, i2) { t2.emplaceBack(2 * e2 + (n2 + 1) / 2, 2 * r2 + (i2 + 1) / 2); } - class Ja { - constructor(t2) { - this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map((t3) => t3.id), this.index = t2.index, this.hasPattern = false, this.layoutVertexArray = new ta(), this.indexArray = new ha(), this.segments = new ya(), this.programConfigurations = new Ra(t2.layers, t2.zoom), this.stateDependentLayerIds = this.layers.filter((t3) => t3.isStateDependent()).map((t3) => t3.id); - } - populate(t2, e2, r2) { - const n2 = this.layers[0], i2 = []; - let a2 = null, s2 = false; - "circle" === n2.type && (a2 = n2.layout.get("circle-sort-key"), s2 = !a2.isConstant()); - for (const { feature: e3, id: n3, index: o2, sourceLayerIndex: l2 } of t2) { - const t3 = this.layers[0]._featureFilter.needGeometry, u2 = Ka(e3, t3); - if (!this.layers[0]._featureFilter.filter(new Qn(this.zoom), u2, r2)) - continue; - const c3 = s2 ? a2.evaluate(u2, {}, r2) : void 0, h3 = { id: n3, properties: e3.properties, type: e3.type, sourceLayerIndex: l2, index: o2, geometry: t3 ? u2.geometry : Za(e3), patterns: {}, sortKey: c3 }; - i2.push(h3); - } - s2 && i2.sort((t3, e3) => t3.sortKey - e3.sortKey); - for (const n3 of i2) { - const { geometry: i3, index: a3, sourceLayerIndex: s3 } = n3, o2 = t2[a3].feature; - this.addFeature(n3, i3, a3, r2), e2.featureIndex.insert(o2, i3, a3, s3, this.index); - } - } - update(t2, e2, r2) { - this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t2, e2, this.stateDependentLayers, r2); - } - isEmpty() { - return 0 === this.layoutVertexArray.length; - } - uploadPending() { - return !this.uploaded || this.programConfigurations.needsUpload; - } - upload(t2) { - this.uploaded || (this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, da), this.indexBuffer = t2.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t2), this.uploaded = true; - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy()); - } - addFeature(t2, e2, r2, n2) { - for (const r3 of e2) - for (const e3 of r3) { - const r4 = e3.x, n3 = e3.y; - if (r4 < 0 || r4 >= qa || n3 < 0 || n3 >= qa) - continue; - const i2 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray, t2.sortKey), a2 = i2.vertexLength; - Ga(this.layoutVertexArray, r4, n3, -1, -1), Ga(this.layoutVertexArray, r4, n3, 1, -1), Ga(this.layoutVertexArray, r4, n3, 1, 1), Ga(this.layoutVertexArray, r4, n3, -1, 1), this.indexArray.emplaceBack(a2, a2 + 1, a2 + 2), this.indexArray.emplaceBack(a2, a2 + 3, a2 + 2), i2.vertexLength += 4, i2.primitiveLength += 2; - } - this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t2, r2, {}, n2); - } - } - function Xa(t2, e2) { - for (let r2 = 0; r2 < t2.length; r2++) - if (is2(e2, t2[r2])) + var qa = function(t2) { + this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map(function(t3) { + return t3.id; + }), this.index = t2.index, this.hasPattern = false, this.layoutVertexArray = new Ci(), this.indexArray = new ji(), this.segments = new sa(), this.programConfigurations = new Va(t2.layers, t2.zoom), this.stateDependentLayerIds = this.layers.filter(function(t3) { + return t3.isStateDependent(); + }).map(function(t3) { + return t3.id; + }); + }; + function Na(t2, e2) { + for (var r2 = 0; r2 < t2.length; r2++) + if (Wa(e2, t2[r2])) return true; - for (let r2 = 0; r2 < e2.length; r2++) - if (is2(t2, e2[r2])) + for (var n2 = 0; n2 < e2.length; n2++) + if (Wa(t2, e2[n2])) return true; - return !!Qa(t2, e2); + return !!Xa(t2, e2); } - function Ya(t2, e2, r2) { - return !!is2(t2, e2) || !!es(e2, t2, r2); + function Ka(t2, e2, r2) { + return !!Wa(t2, e2) || !!Ha(e2, t2, r2); } - function Ha(t2, e2) { + function Ga(t2, e2) { if (1 === t2.length) - return ns(e2, t2[0]); - for (let r2 = 0; r2 < e2.length; r2++) { - const n2 = e2[r2]; - for (let e3 = 0; e3 < n2.length; e3++) - if (is2(t2, n2[e3])) + return $a(e2, t2[0]); + for (var r2 = 0; r2 < e2.length; r2++) + for (var n2 = e2[r2], i2 = 0; i2 < n2.length; i2++) + if (Wa(t2, n2[i2])) return true; - } - for (let r2 = 0; r2 < t2.length; r2++) - if (ns(e2, t2[r2])) + for (var a2 = 0; a2 < t2.length; a2++) + if ($a(e2, t2[a2])) return true; - for (let r2 = 0; r2 < e2.length; r2++) - if (Qa(t2, e2[r2])) + for (var o2 = 0; o2 < e2.length; o2++) + if (Xa(t2, e2[o2])) return true; return false; } - function Wa(t2, e2, r2) { + function Za(t2, e2, r2) { if (t2.length > 1) { - if (Qa(t2, e2)) + if (Xa(t2, e2)) return true; - for (let n2 = 0; n2 < e2.length; n2++) - if (es(e2[n2], t2, r2)) + for (var n2 = 0; n2 < e2.length; n2++) + if (Ha(e2[n2], t2, r2)) return true; } - for (let n2 = 0; n2 < t2.length; n2++) - if (es(t2[n2], e2, r2)) + for (var i2 = 0; i2 < t2.length; i2++) + if (Ha(t2[i2], e2, r2)) return true; return false; } - function Qa(t2, e2) { + function Xa(t2, e2) { if (0 === t2.length || 0 === e2.length) return false; - for (let r2 = 0; r2 < t2.length - 1; r2++) { - const n2 = t2[r2], i2 = t2[r2 + 1]; - for (let t3 = 0; t3 < e2.length - 1; t3++) - if (ts(n2, i2, e2[t3], e2[t3 + 1])) + for (var r2 = 0; r2 < t2.length - 1; r2++) + for (var n2 = t2[r2], i2 = t2[r2 + 1], a2 = 0; a2 < e2.length - 1; a2++) + if (Ja(n2, i2, e2[a2], e2[a2 + 1])) return true; - } return false; } - function ts(t2, e2, r2, n2) { - return y2(t2, r2, n2) !== y2(e2, r2, n2) && y2(t2, e2, r2) !== y2(t2, e2, n2); + function Ja(t2, e2, r2, n2) { + return S(t2, r2, n2) !== S(e2, r2, n2) && S(t2, e2, r2) !== S(t2, e2, n2); } - function es(t2, e2, r2) { - const n2 = r2 * r2; + function Ha(t2, e2, r2) { + var n2 = r2 * r2; if (1 === e2.length) return t2.distSqr(e2[0]) < n2; - for (let r3 = 1; r3 < e2.length; r3++) - if (rs(t2, e2[r3 - 1], e2[r3]) < n2) + for (var i2 = 1; i2 < e2.length; i2++) + if (Ya(t2, e2[i2 - 1], e2[i2]) < n2) return true; return false; } - function rs(t2, e2, r2) { - const n2 = e2.distSqr(r2); + function Ya(t2, e2, r2) { + var n2 = e2.distSqr(r2); if (0 === n2) return t2.distSqr(e2); - const i2 = ((t2.x - e2.x) * (r2.x - e2.x) + (t2.y - e2.y) * (r2.y - e2.y)) / n2; + var i2 = ((t2.x - e2.x) * (r2.x - e2.x) + (t2.y - e2.y) * (r2.y - e2.y)) / n2; return t2.distSqr(i2 < 0 ? e2 : i2 > 1 ? r2 : r2.sub(e2)._mult(i2)._add(e2)); } - function ns(t2, e2) { - let r2, n2, i2, a2 = false; - for (let s2 = 0; s2 < t2.length; s2++) { - r2 = t2[s2]; - for (let t3 = 0, s3 = r2.length - 1; t3 < r2.length; s3 = t3++) - n2 = r2[t3], i2 = r2[s3], n2.y > e2.y != i2.y > e2.y && e2.x < (i2.x - n2.x) * (e2.y - n2.y) / (i2.y - n2.y) + n2.x && (a2 = !a2); - } + function $a(t2, e2) { + for (var r2, n2, i2, a2 = false, o2 = 0; o2 < t2.length; o2++) + for (var s2 = 0, u2 = (r2 = t2[o2]).length - 1; s2 < r2.length; u2 = s2++) + (n2 = r2[s2]).y > e2.y != (i2 = r2[u2]).y > e2.y && e2.x < (i2.x - n2.x) * (e2.y - n2.y) / (i2.y - n2.y) + n2.x && (a2 = !a2); return a2; } - function is2(t2, e2) { - let r2 = false; - for (let n2 = 0, i2 = t2.length - 1; n2 < t2.length; i2 = n2++) { - const a2 = t2[n2], s2 = t2[i2]; - a2.y > e2.y != s2.y > e2.y && e2.x < (s2.x - a2.x) * (e2.y - a2.y) / (s2.y - a2.y) + a2.x && (r2 = !r2); + function Wa(t2, e2) { + for (var r2 = false, n2 = 0, i2 = t2.length - 1; n2 < t2.length; i2 = n2++) { + var a2 = t2[n2], o2 = t2[i2]; + a2.y > e2.y != o2.y > e2.y && e2.x < (o2.x - a2.x) * (e2.y - a2.y) / (o2.y - a2.y) + a2.x && (r2 = !r2); } return r2; } - function as(t2, e2, r2) { - const n2 = r2[0], i2 = r2[2]; + function Qa(t2, e2, r2) { + var n2 = r2[0], i2 = r2[2]; if (t2.x < n2.x && e2.x < n2.x || t2.x > i2.x && e2.x > i2.x || t2.y < n2.y && e2.y < n2.y || t2.y > i2.y && e2.y > i2.y) return false; - const a2 = y2(t2, e2, r2[0]); - return a2 !== y2(t2, e2, r2[1]) || a2 !== y2(t2, e2, r2[2]) || a2 !== y2(t2, e2, r2[3]); + var a2 = S(t2, e2, r2[0]); + return a2 !== S(t2, e2, r2[1]) || a2 !== S(t2, e2, r2[2]) || a2 !== S(t2, e2, r2[3]); } - function ss(t2, e2, r2) { - const n2 = e2.paint.get(t2).value; + function to(t2, e2, r2) { + var n2 = e2.paint.get(t2).value; return "constant" === n2.kind ? n2.value : r2.programConfigurations.get(e2.id).getMaxValue(t2); } - function os(t2) { + function eo(t2) { return Math.sqrt(t2[0] * t2[0] + t2[1] * t2[1]); } - function ls(t2, e2, r2, n2, i2) { + function ro(t2, e2, r2, n2, a2) { if (!e2[0] && !e2[1]) return t2; - const a2 = S.convert(e2)._mult(i2); - "viewport" === r2 && a2._rotate(-n2); - const s2 = []; - for (let e3 = 0; e3 < t2.length; e3++) - s2.push(t2[e3].sub(a2)); + var o2 = i.convert(e2)._mult(a2); + "viewport" === r2 && o2._rotate(-n2); + for (var s2 = [], u2 = 0; u2 < t2.length; u2++) + s2.push(t2[u2].sub(o2)); return s2; } - Mn("CircleBucket", Ja, { omit: ["layers"] }); - const us = new fi({ "circle-sort-key": new ui(nt.layout_circle["circle-sort-key"]) }); - var cs = { paint: new fi({ "circle-radius": new ui(nt.paint_circle["circle-radius"]), "circle-color": new ui(nt.paint_circle["circle-color"]), "circle-blur": new ui(nt.paint_circle["circle-blur"]), "circle-opacity": new ui(nt.paint_circle["circle-opacity"]), "circle-translate": new li(nt.paint_circle["circle-translate"]), "circle-translate-anchor": new li(nt.paint_circle["circle-translate-anchor"]), "circle-pitch-scale": new li(nt.paint_circle["circle-pitch-scale"]), "circle-pitch-alignment": new li(nt.paint_circle["circle-pitch-alignment"]), "circle-stroke-width": new ui(nt.paint_circle["circle-stroke-width"]), "circle-stroke-color": new ui(nt.paint_circle["circle-stroke-color"]), "circle-stroke-opacity": new ui(nt.paint_circle["circle-stroke-opacity"]) }), layout: us }, hs = 1e-6, ps = "undefined" != typeof Float32Array ? Float32Array : Array; - function fs() { - var t2 = new ps(9); - return ps != Float32Array && (t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[5] = 0, t2[6] = 0, t2[7] = 0), t2[0] = 1, t2[4] = 1, t2[8] = 1, t2; - } - function ds(t2) { + qa.prototype.populate = function(t2, e2, r2) { + var n2 = this.layers[0], i2 = [], a2 = null; + "circle" === n2.type && (a2 = n2.layout.get("circle-sort-key")); + for (var o2 = 0, s2 = t2; o2 < s2.length; o2 += 1) { + var u2 = s2[o2], l2 = u2.feature, p3 = u2.id, c3 = u2.index, h3 = u2.sourceLayerIndex, f2 = this.layers[0]._featureFilter.needGeometry, y3 = Ua(l2, f2); + if (this.layers[0]._featureFilter.filter(new si(this.zoom), y3, r2)) { + var d2 = a2 ? a2.evaluate(y3, {}, r2) : void 0, m2 = { id: p3, properties: l2.properties, type: l2.type, sourceLayerIndex: h3, index: c3, geometry: f2 ? y3.geometry : Ra(l2), patterns: {}, sortKey: d2 }; + i2.push(m2); + } + } + a2 && i2.sort(function(t3, e3) { + return t3.sortKey - e3.sortKey; + }); + for (var v3 = 0, g2 = i2; v3 < g2.length; v3 += 1) { + var x2 = g2[v3], b2 = x2.geometry, w2 = x2.index, _24 = x2.sourceLayerIndex, A3 = t2[w2].feature; + this.addFeature(x2, b2, w2, r2), e2.featureIndex.insert(A3, b2, w2, _24, this.index); + } + }, qa.prototype.update = function(t2, e2, r2) { + this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t2, e2, this.stateDependentLayers, r2); + }, qa.prototype.isEmpty = function() { + return 0 === this.layoutVertexArray.length; + }, qa.prototype.uploadPending = function() { + return !this.uploaded || this.programConfigurations.needsUpload; + }, qa.prototype.upload = function(t2) { + this.uploaded || (this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, oa), this.indexBuffer = t2.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t2), this.uploaded = true; + }, qa.prototype.destroy = function() { + this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy()); + }, qa.prototype.addFeature = function(t2, e2, r2, n2) { + for (var i2 = 0, a2 = e2; i2 < a2.length; i2 += 1) + for (var o2 = 0, s2 = a2[i2]; o2 < s2.length; o2 += 1) { + var u2 = s2[o2], l2 = u2.x, p3 = u2.y; + if (!(l2 < 0 || l2 >= 8192 || p3 < 0 || p3 >= 8192)) { + var c3 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray, t2.sortKey), h3 = c3.vertexLength; + ja(this.layoutVertexArray, l2, p3, -1, -1), ja(this.layoutVertexArray, l2, p3, 1, -1), ja(this.layoutVertexArray, l2, p3, 1, 1), ja(this.layoutVertexArray, l2, p3, -1, 1), this.indexArray.emplaceBack(h3, h3 + 1, h3 + 2), this.indexArray.emplaceBack(h3, h3 + 3, h3 + 2), c3.vertexLength += 4, c3.primitiveLength += 2; + } + } + this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t2, r2, {}, n2); + }, On("CircleBucket", qa, { omit: ["layers"] }); + var no = new wi({ "circle-sort-key": new vi(Et.layout_circle["circle-sort-key"]) }), io = { paint: new wi({ "circle-radius": new vi(Et.paint_circle["circle-radius"]), "circle-color": new vi(Et.paint_circle["circle-color"]), "circle-blur": new vi(Et.paint_circle["circle-blur"]), "circle-opacity": new vi(Et.paint_circle["circle-opacity"]), "circle-translate": new mi(Et.paint_circle["circle-translate"]), "circle-translate-anchor": new mi(Et.paint_circle["circle-translate-anchor"]), "circle-pitch-scale": new mi(Et.paint_circle["circle-pitch-scale"]), "circle-pitch-alignment": new mi(Et.paint_circle["circle-pitch-alignment"]), "circle-stroke-width": new vi(Et.paint_circle["circle-stroke-width"]), "circle-stroke-color": new vi(Et.paint_circle["circle-stroke-color"]), "circle-stroke-opacity": new vi(Et.paint_circle["circle-stroke-opacity"]) }), layout: no }, ao = "undefined" != typeof Float32Array ? Float32Array : Array; + function oo(t2) { return t2[0] = 1, t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[4] = 0, t2[5] = 1, t2[6] = 0, t2[7] = 0, t2[8] = 0, t2[9] = 0, t2[10] = 1, t2[11] = 0, t2[12] = 0, t2[13] = 0, t2[14] = 0, t2[15] = 1, t2; } - function ys(t2, e2, r2) { - var n2 = e2[0], i2 = e2[1], a2 = e2[2], s2 = e2[3], o2 = e2[4], l2 = e2[5], u2 = e2[6], c3 = e2[7], h3 = e2[8], p3 = e2[9], f2 = e2[10], d2 = e2[11], y3 = e2[12], m2 = e2[13], g2 = e2[14], x2 = e2[15], v3 = r2[0], b2 = r2[1], w2 = r2[2], _24 = r2[3]; - return t2[0] = v3 * n2 + b2 * o2 + w2 * h3 + _24 * y3, t2[1] = v3 * i2 + b2 * l2 + w2 * p3 + _24 * m2, t2[2] = v3 * a2 + b2 * u2 + w2 * f2 + _24 * g2, t2[3] = v3 * s2 + b2 * c3 + w2 * d2 + _24 * x2, t2[4] = (v3 = r2[4]) * n2 + (b2 = r2[5]) * o2 + (w2 = r2[6]) * h3 + (_24 = r2[7]) * y3, t2[5] = v3 * i2 + b2 * l2 + w2 * p3 + _24 * m2, t2[6] = v3 * a2 + b2 * u2 + w2 * f2 + _24 * g2, t2[7] = v3 * s2 + b2 * c3 + w2 * d2 + _24 * x2, t2[8] = (v3 = r2[8]) * n2 + (b2 = r2[9]) * o2 + (w2 = r2[10]) * h3 + (_24 = r2[11]) * y3, t2[9] = v3 * i2 + b2 * l2 + w2 * p3 + _24 * m2, t2[10] = v3 * a2 + b2 * u2 + w2 * f2 + _24 * g2, t2[11] = v3 * s2 + b2 * c3 + w2 * d2 + _24 * x2, t2[12] = (v3 = r2[12]) * n2 + (b2 = r2[13]) * o2 + (w2 = r2[14]) * h3 + (_24 = r2[15]) * y3, t2[13] = v3 * i2 + b2 * l2 + w2 * p3 + _24 * m2, t2[14] = v3 * a2 + b2 * u2 + w2 * f2 + _24 * g2, t2[15] = v3 * s2 + b2 * c3 + w2 * d2 + _24 * x2, t2; + function so(t2, e2, r2) { + var n2 = e2[0], i2 = e2[1], a2 = e2[2], o2 = e2[3], s2 = e2[4], u2 = e2[5], l2 = e2[6], p3 = e2[7], c3 = e2[8], h3 = e2[9], f2 = e2[10], y3 = e2[11], d2 = e2[12], m2 = e2[13], v3 = e2[14], g2 = e2[15], x2 = r2[0], b2 = r2[1], w2 = r2[2], _24 = r2[3]; + return t2[0] = x2 * n2 + b2 * s2 + w2 * c3 + _24 * d2, t2[1] = x2 * i2 + b2 * u2 + w2 * h3 + _24 * m2, t2[2] = x2 * a2 + b2 * l2 + w2 * f2 + _24 * v3, t2[3] = x2 * o2 + b2 * p3 + w2 * y3 + _24 * g2, t2[4] = (x2 = r2[4]) * n2 + (b2 = r2[5]) * s2 + (w2 = r2[6]) * c3 + (_24 = r2[7]) * d2, t2[5] = x2 * i2 + b2 * u2 + w2 * h3 + _24 * m2, t2[6] = x2 * a2 + b2 * l2 + w2 * f2 + _24 * v3, t2[7] = x2 * o2 + b2 * p3 + w2 * y3 + _24 * g2, t2[8] = (x2 = r2[8]) * n2 + (b2 = r2[9]) * s2 + (w2 = r2[10]) * c3 + (_24 = r2[11]) * d2, t2[9] = x2 * i2 + b2 * u2 + w2 * h3 + _24 * m2, t2[10] = x2 * a2 + b2 * l2 + w2 * f2 + _24 * v3, t2[11] = x2 * o2 + b2 * p3 + w2 * y3 + _24 * g2, t2[12] = (x2 = r2[12]) * n2 + (b2 = r2[13]) * s2 + (w2 = r2[14]) * c3 + (_24 = r2[15]) * d2, t2[13] = x2 * i2 + b2 * u2 + w2 * h3 + _24 * m2, t2[14] = x2 * a2 + b2 * l2 + w2 * f2 + _24 * v3, t2[15] = x2 * o2 + b2 * p3 + w2 * y3 + _24 * g2, t2; } Math.hypot || (Math.hypot = function() { - for (var t2 = 0, e2 = arguments.length; e2--; ) - t2 += arguments[e2] * arguments[e2]; - return Math.sqrt(t2); + for (var t2 = arguments, e2 = 0, r2 = arguments.length; r2--; ) + e2 += t2[r2] * t2[r2]; + return Math.sqrt(e2); }); - var ms, gs = ys; - function xs() { - var t2 = new ps(3); - return ps != Float32Array && (t2[0] = 0, t2[1] = 0, t2[2] = 0), t2; - } - function vs(t2, e2, r2) { - var n2 = new ps(3); - return n2[0] = t2, n2[1] = e2, n2[2] = r2, n2; - } - function bs(t2, e2, r2) { - var n2 = e2[0], i2 = e2[1], a2 = e2[2], s2 = e2[3]; - return t2[0] = r2[0] * n2 + r2[4] * i2 + r2[8] * a2 + r2[12] * s2, t2[1] = r2[1] * n2 + r2[5] * i2 + r2[9] * a2 + r2[13] * s2, t2[2] = r2[2] * n2 + r2[6] * i2 + r2[10] * a2 + r2[14] * s2, t2[3] = r2[3] * n2 + r2[7] * i2 + r2[11] * a2 + r2[15] * s2, t2; - } - function ws() { - var t2 = new ps(4); - return ps != Float32Array && (t2[0] = 0, t2[1] = 0, t2[2] = 0), t2[3] = 1, t2; - } - function _s(t2, e2) { - const r2 = bs([], [t2.x, t2.y, 0, 1], e2); - return new S(r2[0] / r2[3], r2[1] / r2[3]); - } - xs(), ms = new ps(4), ps != Float32Array && (ms[0] = 0, ms[1] = 0, ms[2] = 0, ms[3] = 0), xs(), vs(1, 0, 0), vs(0, 1, 0), ws(), ws(), fs(), function() { - var t2; - t2 = new ps(2), ps != Float32Array && (t2[0] = 0, t2[1] = 0); + var uo, lo = so; + function po(t2, e2, r2) { + var n2 = e2[0], i2 = e2[1], a2 = e2[2], o2 = e2[3]; + return t2[0] = r2[0] * n2 + r2[4] * i2 + r2[8] * a2 + r2[12] * o2, t2[1] = r2[1] * n2 + r2[5] * i2 + r2[9] * a2 + r2[13] * o2, t2[2] = r2[2] * n2 + r2[6] * i2 + r2[10] * a2 + r2[14] * o2, t2[3] = r2[3] * n2 + r2[7] * i2 + r2[11] * a2 + r2[15] * o2, t2; + } + uo = new ao(3), ao != Float32Array && (uo[0] = 0, uo[1] = 0, uo[2] = 0), function() { + var t2 = new ao(4); + ao != Float32Array && (t2[0] = 0, t2[1] = 0, t2[2] = 0, t2[3] = 0); }(); - class As extends Ja { + var co = (function() { + var t2 = new ao(2); + ao != Float32Array && (t2[0] = 0, t2[1] = 0); + }(), function(t2) { + function e2(e3) { + t2.call(this, e3, io); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.createBucket = function(t3) { + return new qa(t3); + }, e2.prototype.queryRadius = function(t3) { + var e3 = t3; + return to("circle-radius", this, e3) + to("circle-stroke-width", this, e3) + eo(this.paint.get("circle-translate")); + }, e2.prototype.queryIntersectsFeature = function(t3, e3, r2, n2, i2, a2, o2, s2) { + for (var u2 = ro(t3, this.paint.get("circle-translate"), this.paint.get("circle-translate-anchor"), a2.angle, o2), l2 = this.paint.get("circle-radius").evaluate(e3, r2) + this.paint.get("circle-stroke-width").evaluate(e3, r2), p3 = "map" === this.paint.get("circle-pitch-alignment"), c3 = p3 ? u2 : function(t4, e4) { + return t4.map(function(t5) { + return ho(t5, e4); + }); + }(u2, s2), h3 = p3 ? l2 * o2 : l2, f2 = 0, y3 = n2; f2 < y3.length; f2 += 1) + for (var d2 = 0, m2 = y3[f2]; d2 < m2.length; d2 += 1) { + var v3 = m2[d2], g2 = p3 ? v3 : ho(v3, s2), x2 = h3, b2 = po([], [v3.x, v3.y, 0, 1], s2); + if ("viewport" === this.paint.get("circle-pitch-scale") && "map" === this.paint.get("circle-pitch-alignment") ? x2 *= b2[3] / a2.cameraToCenterDistance : "map" === this.paint.get("circle-pitch-scale") && "viewport" === this.paint.get("circle-pitch-alignment") && (x2 *= a2.cameraToCenterDistance / b2[3]), Ka(c3, g2, x2)) + return true; + } + return false; + }, e2; + }(_i)); + function ho(t2, e2) { + var r2 = po([], [t2.x, t2.y, 0, 1], e2); + return new i(r2[0] / r2[3], r2[1] / r2[3]); } - Mn("HeatmapBucket", As, { omit: ["layers"] }); - var ks = { paint: new fi({ "heatmap-radius": new ui(nt.paint_heatmap["heatmap-radius"]), "heatmap-weight": new ui(nt.paint_heatmap["heatmap-weight"]), "heatmap-intensity": new li(nt.paint_heatmap["heatmap-intensity"]), "heatmap-color": new pi(nt.paint_heatmap["heatmap-color"]), "heatmap-opacity": new li(nt.paint_heatmap["heatmap-opacity"]) }) }; - function Ss(t2, { width: e2, height: r2 }, n2, i2) { - if (i2) { - if (i2 instanceof Uint8ClampedArray) - i2 = new Uint8Array(i2.buffer); - else if (i2.length !== e2 * r2 * n2) - throw new RangeError(`mismatched image size. expected: ${i2.length} but got: ${e2 * r2 * n2}`); + var fo = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2; + }(qa); + function yo(t2, e2, r2, n2) { + var i2 = e2.width, a2 = e2.height; + if (n2) { + if (n2 instanceof Uint8ClampedArray) + n2 = new Uint8Array(n2.buffer); + else if (n2.length !== i2 * a2 * r2) + throw new RangeError("mismatched image size"); } else - i2 = new Uint8Array(e2 * r2 * n2); - return t2.width = e2, t2.height = r2, t2.data = i2, t2; + n2 = new Uint8Array(i2 * a2 * r2); + return t2.width = i2, t2.height = a2, t2.data = n2, t2; } - function Is(t2, { width: e2, height: r2 }, n2) { - if (e2 === t2.width && r2 === t2.height) - return; - const i2 = Ss({}, { width: e2, height: r2 }, n2); - Ms(t2, i2, { x: 0, y: 0 }, { x: 0, y: 0 }, { width: Math.min(t2.width, e2), height: Math.min(t2.height, r2) }, n2), t2.width = e2, t2.height = r2, t2.data = i2.data; + function mo(t2, e2, r2) { + var n2 = e2.width, i2 = e2.height; + if (n2 !== t2.width || i2 !== t2.height) { + var a2 = yo({}, { width: n2, height: i2 }, r2); + vo(t2, a2, { x: 0, y: 0 }, { x: 0, y: 0 }, { width: Math.min(t2.width, n2), height: Math.min(t2.height, i2) }, r2), t2.width = n2, t2.height = i2, t2.data = a2.data; + } } - function Ms(t2, e2, r2, n2, i2, a2) { + function vo(t2, e2, r2, n2, i2, a2) { if (0 === i2.width || 0 === i2.height) return e2; if (i2.width > t2.width || i2.height > t2.height || r2.x > t2.width - i2.width || r2.y > t2.height - i2.height) throw new RangeError("out of range source coordinates for image copy"); if (i2.width > e2.width || i2.height > e2.height || n2.x > e2.width - i2.width || n2.y > e2.height - i2.height) throw new RangeError("out of range destination coordinates for image copy"); - const s2 = t2.data, o2 = e2.data; - if (s2 === o2) - throw new Error("srcData equals dstData, so image is already copied"); - for (let l2 = 0; l2 < i2.height; l2++) { - const u2 = ((r2.y + l2) * t2.width + r2.x) * a2, c3 = ((n2.y + l2) * e2.width + n2.x) * a2; - for (let t3 = 0; t3 < i2.width * a2; t3++) - o2[c3 + t3] = s2[u2 + t3]; - } + for (var o2 = t2.data, s2 = e2.data, u2 = 0; u2 < i2.height; u2++) + for (var l2 = ((r2.y + u2) * t2.width + r2.x) * a2, p3 = ((n2.y + u2) * e2.width + n2.x) * a2, c3 = 0; c3 < i2.width * a2; c3++) + s2[p3 + c3] = o2[l2 + c3]; return e2; } - class zs { - constructor(t2, e2) { - Ss(this, t2, 1, e2); - } - resize(t2) { - Is(this, t2, 1); - } - clone() { - return new zs({ width: this.width, height: this.height }, new Uint8Array(this.data)); - } - static copy(t2, e2, r2, n2, i2) { - Ms(t2, e2, r2, n2, i2, 1); - } - } - class Bs { - constructor(t2, e2) { - Ss(this, t2, 4, e2); - } - resize(t2) { - Is(this, t2, 4); - } - replace(t2, e2) { - e2 ? this.data.set(t2) : this.data = t2 instanceof Uint8ClampedArray ? new Uint8Array(t2.buffer) : t2; - } - clone() { - return new Bs({ width: this.width, height: this.height }, new Uint8Array(this.data)); - } - static copy(t2, e2, r2, n2, i2) { - Ms(t2, e2, r2, n2, i2, 4); - } - } - function Cs(t2) { - const e2 = {}, r2 = t2.resolution || 256, n2 = t2.clips ? t2.clips.length : 1, i2 = t2.image || new Bs({ width: r2, height: n2 }); - if (Math.log(r2) / Math.LN2 % 1 != 0) - throw new Error(`width is not a power of 2 - ${r2}`); - const a2 = (r3, n3, a3) => { + On("HeatmapBucket", fo, { omit: ["layers"] }); + var go = function(t2, e2) { + yo(this, t2, 1, e2); + }; + go.prototype.resize = function(t2) { + mo(this, t2, 1); + }, go.prototype.clone = function() { + return new go({ width: this.width, height: this.height }, new Uint8Array(this.data)); + }, go.copy = function(t2, e2, r2, n2, i2) { + vo(t2, e2, r2, n2, i2, 1); + }; + var xo = function(t2, e2) { + yo(this, t2, 4, e2); + }; + xo.prototype.resize = function(t2) { + mo(this, t2, 4); + }, xo.prototype.replace = function(t2, e2) { + e2 ? this.data.set(t2) : this.data = t2 instanceof Uint8ClampedArray ? new Uint8Array(t2.buffer) : t2; + }, xo.prototype.clone = function() { + return new xo({ width: this.width, height: this.height }, new Uint8Array(this.data)); + }, xo.copy = function(t2, e2, r2, n2, i2) { + vo(t2, e2, r2, n2, i2, 4); + }, On("AlphaImage", go), On("RGBAImage", xo); + var bo = { paint: new wi({ "heatmap-radius": new vi(Et.paint_heatmap["heatmap-radius"]), "heatmap-weight": new vi(Et.paint_heatmap["heatmap-weight"]), "heatmap-intensity": new mi(Et.paint_heatmap["heatmap-intensity"]), "heatmap-color": new bi(Et.paint_heatmap["heatmap-color"]), "heatmap-opacity": new mi(Et.paint_heatmap["heatmap-opacity"]) }) }; + function wo(t2) { + var e2 = {}, r2 = t2.resolution || 256, n2 = t2.clips ? t2.clips.length : 1, i2 = t2.image || new xo({ width: r2, height: n2 }), a2 = function(r3, n3, a3) { e2[t2.evaluationKey] = a3; - const s2 = t2.expression.evaluate(e2); - i2.data[r3 + n3 + 0] = Math.floor(255 * s2.r / s2.a), i2.data[r3 + n3 + 1] = Math.floor(255 * s2.g / s2.a), i2.data[r3 + n3 + 2] = Math.floor(255 * s2.b / s2.a), i2.data[r3 + n3 + 3] = Math.floor(255 * s2.a); + var o3 = t2.expression.evaluate(e2); + i2.data[r3 + n3 + 0] = Math.floor(255 * o3.r / o3.a), i2.data[r3 + n3 + 1] = Math.floor(255 * o3.g / o3.a), i2.data[r3 + n3 + 2] = Math.floor(255 * o3.b / o3.a), i2.data[r3 + n3 + 3] = Math.floor(255 * o3.a); }; if (t2.clips) - for (let e3 = 0, i3 = 0; e3 < n2; ++e3, i3 += 4 * r2) - for (let n3 = 0, s2 = 0; n3 < r2; n3++, s2 += 4) { - const o2 = n3 / (r2 - 1), { start: l2, end: u2 } = t2.clips[e3]; - a2(i3, s2, l2 * (1 - o2) + u2 * o2); + for (var o2 = 0, s2 = 0; o2 < n2; ++o2, s2 += 4 * r2) + for (var u2 = 0, l2 = 0; u2 < r2; u2++, l2 += 4) { + var p3 = u2 / (r2 - 1), c3 = t2.clips[o2]; + a2(s2, l2, c3.start * (1 - p3) + c3.end * p3); } else - for (let t3 = 0, e3 = 0; t3 < r2; t3++, e3 += 4) - a2(0, e3, t3 / (r2 - 1)); + for (var h3 = 0, f2 = 0; h3 < r2; h3++, f2 += 4) + a2(0, f2, h3 / (r2 - 1)); return i2; } - Mn("AlphaImage", zs), Mn("RGBAImage", Bs); - var Ps = { paint: new fi({ "hillshade-illumination-direction": new li(nt.paint_hillshade["hillshade-illumination-direction"]), "hillshade-illumination-anchor": new li(nt.paint_hillshade["hillshade-illumination-anchor"]), "hillshade-exaggeration": new li(nt.paint_hillshade["hillshade-exaggeration"]), "hillshade-shadow-color": new li(nt.paint_hillshade["hillshade-shadow-color"]), "hillshade-highlight-color": new li(nt.paint_hillshade["hillshade-highlight-color"]), "hillshade-accent-color": new li(nt.paint_hillshade["hillshade-accent-color"]) }) }; - const Vs = vi([{ name: "a_pos", components: 2, type: "Int16" }], 4), { members: Es } = Vs; - var Fs = { exports: {} }; - function Ts(t2, e2, r2) { + var _o = function(t2) { + function e2(e3) { + t2.call(this, e3, bo), this._updateColorRamp(); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.createBucket = function(t3) { + return new fo(t3); + }, e2.prototype._handleSpecialPaintPropertyUpdate = function(t3) { + "heatmap-color" === t3 && this._updateColorRamp(); + }, e2.prototype._updateColorRamp = function() { + this.colorRamp = wo({ expression: this._transitionablePaint._values["heatmap-color"].value.expression, evaluationKey: "heatmapDensity", image: this.colorRamp }), this.colorRampTexture = null; + }, e2.prototype.resize = function() { + this.heatmapFbo && (this.heatmapFbo.destroy(), this.heatmapFbo = null); + }, e2.prototype.queryRadius = function() { + return 0; + }, e2.prototype.queryIntersectsFeature = function() { + return false; + }, e2.prototype.hasOffscreenPass = function() { + return 0 !== this.paint.get("heatmap-opacity") && "none" !== this.visibility; + }, e2; + }(_i), Ao = { paint: new wi({ "hillshade-illumination-direction": new mi(Et.paint_hillshade["hillshade-illumination-direction"]), "hillshade-illumination-anchor": new mi(Et.paint_hillshade["hillshade-illumination-anchor"]), "hillshade-exaggeration": new mi(Et.paint_hillshade["hillshade-exaggeration"]), "hillshade-shadow-color": new mi(Et.paint_hillshade["hillshade-shadow-color"]), "hillshade-highlight-color": new mi(Et.paint_hillshade["hillshade-highlight-color"]), "hillshade-accent-color": new mi(Et.paint_hillshade["hillshade-accent-color"]) }) }, So = function(t2) { + function e2(e3) { + t2.call(this, e3, Ao); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.hasOffscreenPass = function() { + return 0 !== this.paint.get("hillshade-exaggeration") && "none" !== this.visibility; + }, e2; + }(_i), ko = Ii([{ name: "a_pos", components: 2, type: "Int16" }], 4).members, Io = Co, zo = Co; + function Co(t2, e2, r2) { r2 = r2 || 2; - var n2, i2, a2, s2, o2, l2, u2, c3 = e2 && e2.length, h3 = c3 ? e2[0] * r2 : t2.length, p3 = Ls(t2, 0, h3, r2, true), f2 = []; - if (!p3 || p3.next === p3.prev) + var n2, i2, a2, o2, s2, u2, l2, p3 = e2 && e2.length, c3 = p3 ? e2[0] * r2 : t2.length, h3 = Eo(t2, 0, c3, r2, true), f2 = []; + if (!h3 || h3.next === h3.prev) return f2; - if (c3 && (p3 = function(t3, e3, r3, n3) { - var i3, a3, s3, o3 = []; + if (p3 && (h3 = function(t3, e3, r3, n3) { + var i3, a3, o3, s3 = []; for (i3 = 0, a3 = e3.length; i3 < a3; i3++) - (s3 = Ls(t3, e3[i3] * n3, i3 < a3 - 1 ? e3[i3 + 1] * n3 : t3.length, n3, false)) === s3.next && (s3.steiner = true), o3.push(Gs(s3)); - for (o3.sort(js), i3 = 0; i3 < o3.length; i3++) - r3 = Ns(o3[i3], r3); + (o3 = Eo(t3, e3[i3] * n3, i3 < a3 - 1 ? e3[i3 + 1] * n3 : t3.length, n3, false)) === o3.next && (o3.steiner = true), s3.push(Uo(o3)); + for (s3.sort(Do), i3 = 0; i3 < s3.length; i3++) + Lo(s3[i3], r3), r3 = Po(r3, r3.next); return r3; - }(t2, e2, p3, r2)), t2.length > 80 * r2) { - n2 = a2 = t2[0], i2 = s2 = t2[1]; - for (var d2 = r2; d2 < h3; d2 += r2) - (o2 = t2[d2]) < n2 && (n2 = o2), (l2 = t2[d2 + 1]) < i2 && (i2 = l2), o2 > a2 && (a2 = o2), l2 > s2 && (s2 = l2); - u2 = 0 !== (u2 = Math.max(a2 - n2, s2 - i2)) ? 32767 / u2 : 0; + }(t2, e2, h3, r2)), t2.length > 80 * r2) { + n2 = a2 = t2[0], i2 = o2 = t2[1]; + for (var y3 = r2; y3 < c3; y3 += r2) + (s2 = t2[y3]) < n2 && (n2 = s2), (u2 = t2[y3 + 1]) < i2 && (i2 = u2), s2 > a2 && (a2 = s2), u2 > o2 && (o2 = u2); + l2 = 0 !== (l2 = Math.max(a2 - n2, o2 - i2)) ? 1 / l2 : 0; } - return $s(p3, f2, r2, n2, i2, u2, 0), f2; + return Mo(h3, f2, r2, n2, i2, l2), f2; } - function Ls(t2, e2, r2, n2, i2) { - var a2, s2; - if (i2 === so(t2, e2, r2, n2) > 0) + function Eo(t2, e2, r2, n2, i2) { + var a2, o2; + if (i2 === Qo(t2, e2, r2, n2) > 0) for (a2 = e2; a2 < r2; a2 += n2) - s2 = no(a2, t2[a2], t2[a2 + 1], s2); + o2 = Yo(a2, t2[a2], t2[a2 + 1], o2); else for (a2 = r2 - n2; a2 >= e2; a2 -= n2) - s2 = no(a2, t2[a2], t2[a2 + 1], s2); - return s2 && Hs(s2, s2.next) && (io(s2), s2 = s2.next), s2; + o2 = Yo(a2, t2[a2], t2[a2 + 1], o2); + return o2 && Ko(o2, o2.next) && ($o(o2), o2 = o2.next), o2; } - function Ds(t2, e2) { + function Po(t2, e2) { if (!t2) return t2; e2 || (e2 = t2); var r2, n2 = t2; do { - if (r2 = false, n2.steiner || !Hs(n2, n2.next) && 0 !== Ys(n2.prev, n2, n2.next)) + if (r2 = false, n2.steiner || !Ko(n2, n2.next) && 0 !== No(n2.prev, n2, n2.next)) n2 = n2.next; else { - if (io(n2), (n2 = e2 = n2.prev) === n2.next) + if ($o(n2), (n2 = e2 = n2.prev) === n2.next) break; r2 = true; } } while (r2 || n2 !== e2); return e2; } - function $s(t2, e2, r2, n2, i2, a2, s2) { + function Mo(t2, e2, r2, n2, i2, a2, o2) { if (t2) { - !s2 && a2 && function(t3, e3, r3, n3) { + !o2 && a2 && function(t3, e3, r3, n3) { var i3 = t3; do { - 0 === i3.z && (i3.z = Ks(i3.x, i3.y, e3, r3, n3)), i3.prevZ = i3.prev, i3.nextZ = i3.next, i3 = i3.next; + null === i3.z && (i3.z = Ro(i3.x, i3.y, e3, r3, n3)), i3.prevZ = i3.prev, i3.nextZ = i3.next, i3 = i3.next; } while (i3 !== t3); i3.prevZ.nextZ = null, i3.prevZ = null, function(t4) { - var e4, r4, n4, i4, a3, s3, o3, l3, u3 = 1; + var e4, r4, n4, i4, a3, o3, s3, u3, l3 = 1; do { - for (r4 = t4, t4 = null, a3 = null, s3 = 0; r4; ) { - for (s3++, n4 = r4, o3 = 0, e4 = 0; e4 < u3 && (o3++, n4 = n4.nextZ); e4++) + for (r4 = t4, t4 = null, a3 = null, o3 = 0; r4; ) { + for (o3++, n4 = r4, s3 = 0, e4 = 0; e4 < l3 && (s3++, n4 = n4.nextZ); e4++) ; - for (l3 = u3; o3 > 0 || l3 > 0 && n4; ) - 0 !== o3 && (0 === l3 || !n4 || r4.z <= n4.z) ? (i4 = r4, r4 = r4.nextZ, o3--) : (i4 = n4, n4 = n4.nextZ, l3--), a3 ? a3.nextZ = i4 : t4 = i4, i4.prevZ = a3, a3 = i4; + for (u3 = l3; s3 > 0 || u3 > 0 && n4; ) + 0 !== s3 && (0 === u3 || !n4 || r4.z <= n4.z) ? (i4 = r4, r4 = r4.nextZ, s3--) : (i4 = n4, n4 = n4.nextZ, u3--), a3 ? a3.nextZ = i4 : t4 = i4, i4.prevZ = a3, a3 = i4; r4 = n4; } - a3.nextZ = null, u3 *= 2; - } while (s3 > 1); + a3.nextZ = null, l3 *= 2; + } while (o3 > 1); }(i3); }(t2, n2, i2, a2); - for (var o2, l2, u2 = t2; t2.prev !== t2.next; ) - if (o2 = t2.prev, l2 = t2.next, a2 ? Os(t2, n2, i2, a2) : Rs(t2)) - e2.push(o2.i / r2 | 0), e2.push(t2.i / r2 | 0), e2.push(l2.i / r2 | 0), io(t2), t2 = l2.next, u2 = l2.next; - else if ((t2 = l2) === u2) { - s2 ? 1 === s2 ? $s(t2 = Us(Ds(t2), e2, r2), e2, r2, n2, i2, a2, 2) : 2 === s2 && qs(t2, e2, r2, n2, i2, a2) : $s(Ds(t2), e2, r2, n2, i2, a2, 1); + for (var s2, u2, l2 = t2; t2.prev !== t2.next; ) + if (s2 = t2.prev, u2 = t2.next, a2 ? To(t2, n2, i2, a2) : Bo(t2)) + e2.push(s2.i / r2), e2.push(t2.i / r2), e2.push(u2.i / r2), $o(t2), t2 = u2.next, l2 = u2.next; + else if ((t2 = u2) === l2) { + o2 ? 1 === o2 ? Mo(t2 = Vo(Po(t2), e2, r2), e2, r2, n2, i2, a2, 2) : 2 === o2 && Fo(t2, e2, r2, n2, i2, a2) : Mo(Po(t2), e2, r2, n2, i2, a2, 1); break; } } } - function Rs(t2) { + function Bo(t2) { var e2 = t2.prev, r2 = t2, n2 = t2.next; - if (Ys(e2, r2, n2) >= 0) + if (No(e2, r2, n2) >= 0) return false; - for (var i2 = e2.x, a2 = r2.x, s2 = n2.x, o2 = e2.y, l2 = r2.y, u2 = n2.y, c3 = i2 < a2 ? i2 < s2 ? i2 : s2 : a2 < s2 ? a2 : s2, h3 = o2 < l2 ? o2 < u2 ? o2 : u2 : l2 < u2 ? l2 : u2, p3 = i2 > a2 ? i2 > s2 ? i2 : s2 : a2 > s2 ? a2 : s2, f2 = o2 > l2 ? o2 > u2 ? o2 : u2 : l2 > u2 ? l2 : u2, d2 = n2.next; d2 !== e2; ) { - if (d2.x >= c3 && d2.x <= p3 && d2.y >= h3 && d2.y <= f2 && Js(i2, o2, a2, l2, s2, u2, d2.x, d2.y) && Ys(d2.prev, d2, d2.next) >= 0) + for (var i2 = t2.next.next; i2 !== t2.prev; ) { + if (jo(e2.x, e2.y, r2.x, r2.y, n2.x, n2.y, i2.x, i2.y) && No(i2.prev, i2, i2.next) >= 0) return false; - d2 = d2.next; + i2 = i2.next; } return true; } - function Os(t2, e2, r2, n2) { - var i2 = t2.prev, a2 = t2, s2 = t2.next; - if (Ys(i2, a2, s2) >= 0) + function To(t2, e2, r2, n2) { + var i2 = t2.prev, a2 = t2, o2 = t2.next; + if (No(i2, a2, o2) >= 0) return false; - for (var o2 = i2.x, l2 = a2.x, u2 = s2.x, c3 = i2.y, h3 = a2.y, p3 = s2.y, f2 = o2 < l2 ? o2 < u2 ? o2 : u2 : l2 < u2 ? l2 : u2, d2 = c3 < h3 ? c3 < p3 ? c3 : p3 : h3 < p3 ? h3 : p3, y3 = o2 > l2 ? o2 > u2 ? o2 : u2 : l2 > u2 ? l2 : u2, m2 = c3 > h3 ? c3 > p3 ? c3 : p3 : h3 > p3 ? h3 : p3, g2 = Ks(f2, d2, e2, r2, n2), x2 = Ks(y3, m2, e2, r2, n2), v3 = t2.prevZ, b2 = t2.nextZ; v3 && v3.z >= g2 && b2 && b2.z <= x2; ) { - if (v3.x >= f2 && v3.x <= y3 && v3.y >= d2 && v3.y <= m2 && v3 !== i2 && v3 !== s2 && Js(o2, c3, l2, h3, u2, p3, v3.x, v3.y) && Ys(v3.prev, v3, v3.next) >= 0) + for (var s2 = i2.x > a2.x ? i2.x > o2.x ? i2.x : o2.x : a2.x > o2.x ? a2.x : o2.x, u2 = i2.y > a2.y ? i2.y > o2.y ? i2.y : o2.y : a2.y > o2.y ? a2.y : o2.y, l2 = Ro(i2.x < a2.x ? i2.x < o2.x ? i2.x : o2.x : a2.x < o2.x ? a2.x : o2.x, i2.y < a2.y ? i2.y < o2.y ? i2.y : o2.y : a2.y < o2.y ? a2.y : o2.y, e2, r2, n2), p3 = Ro(s2, u2, e2, r2, n2), c3 = t2.prevZ, h3 = t2.nextZ; c3 && c3.z >= l2 && h3 && h3.z <= p3; ) { + if (c3 !== t2.prev && c3 !== t2.next && jo(i2.x, i2.y, a2.x, a2.y, o2.x, o2.y, c3.x, c3.y) && No(c3.prev, c3, c3.next) >= 0) return false; - if (v3 = v3.prevZ, b2.x >= f2 && b2.x <= y3 && b2.y >= d2 && b2.y <= m2 && b2 !== i2 && b2 !== s2 && Js(o2, c3, l2, h3, u2, p3, b2.x, b2.y) && Ys(b2.prev, b2, b2.next) >= 0) + if (c3 = c3.prevZ, h3 !== t2.prev && h3 !== t2.next && jo(i2.x, i2.y, a2.x, a2.y, o2.x, o2.y, h3.x, h3.y) && No(h3.prev, h3, h3.next) >= 0) return false; - b2 = b2.nextZ; + h3 = h3.nextZ; } - for (; v3 && v3.z >= g2; ) { - if (v3.x >= f2 && v3.x <= y3 && v3.y >= d2 && v3.y <= m2 && v3 !== i2 && v3 !== s2 && Js(o2, c3, l2, h3, u2, p3, v3.x, v3.y) && Ys(v3.prev, v3, v3.next) >= 0) + for (; c3 && c3.z >= l2; ) { + if (c3 !== t2.prev && c3 !== t2.next && jo(i2.x, i2.y, a2.x, a2.y, o2.x, o2.y, c3.x, c3.y) && No(c3.prev, c3, c3.next) >= 0) return false; - v3 = v3.prevZ; + c3 = c3.prevZ; } - for (; b2 && b2.z <= x2; ) { - if (b2.x >= f2 && b2.x <= y3 && b2.y >= d2 && b2.y <= m2 && b2 !== i2 && b2 !== s2 && Js(o2, c3, l2, h3, u2, p3, b2.x, b2.y) && Ys(b2.prev, b2, b2.next) >= 0) + for (; h3 && h3.z <= p3; ) { + if (h3 !== t2.prev && h3 !== t2.next && jo(i2.x, i2.y, a2.x, a2.y, o2.x, o2.y, h3.x, h3.y) && No(h3.prev, h3, h3.next) >= 0) return false; - b2 = b2.nextZ; + h3 = h3.nextZ; } return true; } - function Us(t2, e2, r2) { + function Vo(t2, e2, r2) { var n2 = t2; do { var i2 = n2.prev, a2 = n2.next.next; - !Hs(i2, a2) && Ws(i2, n2, n2.next, a2) && eo(i2, a2) && eo(a2, i2) && (e2.push(i2.i / r2 | 0), e2.push(n2.i / r2 | 0), e2.push(a2.i / r2 | 0), io(n2), io(n2.next), n2 = t2 = a2), n2 = n2.next; + !Ko(i2, a2) && Go(i2, n2, n2.next, a2) && Jo(i2, a2) && Jo(a2, i2) && (e2.push(i2.i / r2), e2.push(n2.i / r2), e2.push(a2.i / r2), $o(n2), $o(n2.next), n2 = t2 = a2), n2 = n2.next; } while (n2 !== t2); - return Ds(n2); + return Po(n2); } - function qs(t2, e2, r2, n2, i2, a2) { - var s2 = t2; + function Fo(t2, e2, r2, n2, i2, a2) { + var o2 = t2; do { - for (var o2 = s2.next.next; o2 !== s2.prev; ) { - if (s2.i !== o2.i && Xs(s2, o2)) { - var l2 = ro(s2, o2); - return s2 = Ds(s2, s2.next), l2 = Ds(l2, l2.next), $s(s2, e2, r2, n2, i2, a2, 0), void $s(l2, e2, r2, n2, i2, a2, 0); + for (var s2 = o2.next.next; s2 !== o2.prev; ) { + if (o2.i !== s2.i && qo(o2, s2)) { + var u2 = Ho(o2, s2); + return o2 = Po(o2, o2.next), u2 = Po(u2, u2.next), Mo(o2, e2, r2, n2, i2, a2), void Mo(u2, e2, r2, n2, i2, a2); } - o2 = o2.next; + s2 = s2.next; } - s2 = s2.next; - } while (s2 !== t2); + o2 = o2.next; + } while (o2 !== t2); } - function js(t2, e2) { + function Do(t2, e2) { return t2.x - e2.x; } - function Ns(t2, e2) { - var r2 = function(t3, e3) { - var r3, n3 = e3, i2 = t3.x, a2 = t3.y, s2 = -1 / 0; + function Lo(t2, e2) { + if (e2 = function(t3, e3) { + var r3, n2 = e3, i2 = t3.x, a2 = t3.y, o2 = -1 / 0; do { - if (a2 <= n3.y && a2 >= n3.next.y && n3.next.y !== n3.y) { - var o2 = n3.x + (a2 - n3.y) * (n3.next.x - n3.x) / (n3.next.y - n3.y); - if (o2 <= i2 && o2 > s2 && (s2 = o2, r3 = n3.x < n3.next.x ? n3 : n3.next, o2 === i2)) - return r3; + if (a2 <= n2.y && a2 >= n2.next.y && n2.next.y !== n2.y) { + var s2 = n2.x + (a2 - n2.y) * (n2.next.x - n2.x) / (n2.next.y - n2.y); + if (s2 <= i2 && s2 > o2) { + if (o2 = s2, s2 === i2) { + if (a2 === n2.y) + return n2; + if (a2 === n2.next.y) + return n2.next; + } + r3 = n2.x < n2.next.x ? n2 : n2.next; + } } - n3 = n3.next; - } while (n3 !== e3); + n2 = n2.next; + } while (n2 !== e3); if (!r3) return null; - var l2, u2 = r3, c3 = r3.x, h3 = r3.y, p3 = 1 / 0; - n3 = r3; + if (i2 === o2) + return r3; + var u2, l2 = r3, p3 = r3.x, c3 = r3.y, h3 = 1 / 0; + n2 = r3; do { - i2 >= n3.x && n3.x >= c3 && i2 !== n3.x && Js(a2 < h3 ? i2 : s2, a2, c3, h3, a2 < h3 ? s2 : i2, a2, n3.x, n3.y) && (l2 = Math.abs(a2 - n3.y) / (i2 - n3.x), eo(n3, t3) && (l2 < p3 || l2 === p3 && (n3.x > r3.x || n3.x === r3.x && Zs(r3, n3))) && (r3 = n3, p3 = l2)), n3 = n3.next; - } while (n3 !== u2); + i2 >= n2.x && n2.x >= p3 && i2 !== n2.x && jo(a2 < c3 ? i2 : o2, a2, p3, c3, a2 < c3 ? o2 : i2, a2, n2.x, n2.y) && (u2 = Math.abs(a2 - n2.y) / (i2 - n2.x), Jo(n2, t3) && (u2 < h3 || u2 === h3 && (n2.x > r3.x || n2.x === r3.x && Oo(r3, n2))) && (r3 = n2, h3 = u2)), n2 = n2.next; + } while (n2 !== l2); return r3; - }(t2, e2); - if (!r2) - return e2; - var n2 = ro(r2, t2); - return Ds(n2, n2.next), Ds(r2, r2.next); + }(t2, e2)) { + var r2 = Ho(e2, t2); + Po(e2, e2.next), Po(r2, r2.next); + } } - function Zs(t2, e2) { - return Ys(t2.prev, t2, e2.prev) < 0 && Ys(e2.next, t2, t2.next) < 0; + function Oo(t2, e2) { + return No(t2.prev, t2, e2.prev) < 0 && No(e2.next, t2, t2.next) < 0; } - function Ks(t2, e2, r2, n2, i2) { - return (t2 = 1431655765 & ((t2 = 858993459 & ((t2 = 252645135 & ((t2 = 16711935 & ((t2 = (t2 - r2) * i2 | 0) | t2 << 8)) | t2 << 4)) | t2 << 2)) | t2 << 1)) | (e2 = 1431655765 & ((e2 = 858993459 & ((e2 = 252645135 & ((e2 = 16711935 & ((e2 = (e2 - n2) * i2 | 0) | e2 << 8)) | e2 << 4)) | e2 << 2)) | e2 << 1)) << 1; + function Ro(t2, e2, r2, n2, i2) { + return (t2 = 1431655765 & ((t2 = 858993459 & ((t2 = 252645135 & ((t2 = 16711935 & ((t2 = 32767 * (t2 - r2) * i2) | t2 << 8)) | t2 << 4)) | t2 << 2)) | t2 << 1)) | (e2 = 1431655765 & ((e2 = 858993459 & ((e2 = 252645135 & ((e2 = 16711935 & ((e2 = 32767 * (e2 - n2) * i2) | e2 << 8)) | e2 << 4)) | e2 << 2)) | e2 << 1)) << 1; } - function Gs(t2) { + function Uo(t2) { var e2 = t2, r2 = t2; do { (e2.x < r2.x || e2.x === r2.x && e2.y < r2.y) && (r2 = e2), e2 = e2.next; } while (e2 !== t2); return r2; } - function Js(t2, e2, r2, n2, i2, a2, s2, o2) { - return (i2 - s2) * (e2 - o2) >= (t2 - s2) * (a2 - o2) && (t2 - s2) * (n2 - o2) >= (r2 - s2) * (e2 - o2) && (r2 - s2) * (a2 - o2) >= (i2 - s2) * (n2 - o2); + function jo(t2, e2, r2, n2, i2, a2, o2, s2) { + return (i2 - o2) * (e2 - s2) - (t2 - o2) * (a2 - s2) >= 0 && (t2 - o2) * (n2 - s2) - (r2 - o2) * (e2 - s2) >= 0 && (r2 - o2) * (a2 - s2) - (i2 - o2) * (n2 - s2) >= 0; } - function Xs(t2, e2) { + function qo(t2, e2) { return t2.next.i !== e2.i && t2.prev.i !== e2.i && !function(t3, e3) { var r2 = t3; do { - if (r2.i !== t3.i && r2.next.i !== t3.i && r2.i !== e3.i && r2.next.i !== e3.i && Ws(r2, r2.next, t3, e3)) + if (r2.i !== t3.i && r2.next.i !== t3.i && r2.i !== e3.i && r2.next.i !== e3.i && Go(r2, r2.next, t3, e3)) return true; r2 = r2.next; } while (r2 !== t3); return false; - }(t2, e2) && (eo(t2, e2) && eo(e2, t2) && function(t3, e3) { + }(t2, e2) && (Jo(t2, e2) && Jo(e2, t2) && function(t3, e3) { var r2 = t3, n2 = false, i2 = (t3.x + e3.x) / 2, a2 = (t3.y + e3.y) / 2; do { r2.y > a2 != r2.next.y > a2 && r2.next.y !== r2.y && i2 < (r2.next.x - r2.x) * (a2 - r2.y) / (r2.next.y - r2.y) + r2.x && (n2 = !n2), r2 = r2.next; } while (r2 !== t3); return n2; - }(t2, e2) && (Ys(t2.prev, t2, e2.prev) || Ys(t2, e2.prev, e2)) || Hs(t2, e2) && Ys(t2.prev, t2, t2.next) > 0 && Ys(e2.prev, e2, e2.next) > 0); + }(t2, e2) && (No(t2.prev, t2, e2.prev) || No(t2, e2.prev, e2)) || Ko(t2, e2) && No(t2.prev, t2, t2.next) > 0 && No(e2.prev, e2, e2.next) > 0); } - function Ys(t2, e2, r2) { + function No(t2, e2, r2) { return (e2.y - t2.y) * (r2.x - e2.x) - (e2.x - t2.x) * (r2.y - e2.y); } - function Hs(t2, e2) { + function Ko(t2, e2) { return t2.x === e2.x && t2.y === e2.y; } - function Ws(t2, e2, r2, n2) { - var i2 = to(Ys(t2, e2, r2)), a2 = to(Ys(t2, e2, n2)), s2 = to(Ys(r2, n2, t2)), o2 = to(Ys(r2, n2, e2)); - return i2 !== a2 && s2 !== o2 || !(0 !== i2 || !Qs(t2, r2, e2)) || !(0 !== a2 || !Qs(t2, n2, e2)) || !(0 !== s2 || !Qs(r2, t2, n2)) || !(0 !== o2 || !Qs(r2, e2, n2)); + function Go(t2, e2, r2, n2) { + var i2 = Xo(No(t2, e2, r2)), a2 = Xo(No(t2, e2, n2)), o2 = Xo(No(r2, n2, t2)), s2 = Xo(No(r2, n2, e2)); + return i2 !== a2 && o2 !== s2 || !(0 !== i2 || !Zo(t2, r2, e2)) || !(0 !== a2 || !Zo(t2, n2, e2)) || !(0 !== o2 || !Zo(r2, t2, n2)) || !(0 !== s2 || !Zo(r2, e2, n2)); } - function Qs(t2, e2, r2) { + function Zo(t2, e2, r2) { return e2.x <= Math.max(t2.x, r2.x) && e2.x >= Math.min(t2.x, r2.x) && e2.y <= Math.max(t2.y, r2.y) && e2.y >= Math.min(t2.y, r2.y); } - function to(t2) { + function Xo(t2) { return t2 > 0 ? 1 : t2 < 0 ? -1 : 0; } - function eo(t2, e2) { - return Ys(t2.prev, t2, t2.next) < 0 ? Ys(t2, e2, t2.next) >= 0 && Ys(t2, t2.prev, e2) >= 0 : Ys(t2, e2, t2.prev) < 0 || Ys(t2, t2.next, e2) < 0; + function Jo(t2, e2) { + return No(t2.prev, t2, t2.next) < 0 ? No(t2, e2, t2.next) >= 0 && No(t2, t2.prev, e2) >= 0 : No(t2, e2, t2.prev) < 0 || No(t2, t2.next, e2) < 0; } - function ro(t2, e2) { - var r2 = new ao(t2.i, t2.x, t2.y), n2 = new ao(e2.i, e2.x, e2.y), i2 = t2.next, a2 = e2.prev; + function Ho(t2, e2) { + var r2 = new Wo(t2.i, t2.x, t2.y), n2 = new Wo(e2.i, e2.x, e2.y), i2 = t2.next, a2 = e2.prev; return t2.next = e2, e2.prev = t2, r2.next = i2, i2.prev = r2, n2.next = r2, r2.prev = n2, a2.next = n2, n2.prev = a2, n2; } - function no(t2, e2, r2, n2) { - var i2 = new ao(t2, e2, r2); + function Yo(t2, e2, r2, n2) { + var i2 = new Wo(t2, e2, r2); return n2 ? (i2.next = n2.next, i2.prev = n2, n2.next.prev = i2, n2.next = i2) : (i2.prev = i2, i2.next = i2), i2; } - function io(t2) { + function $o(t2) { t2.next.prev = t2.prev, t2.prev.next = t2.next, t2.prevZ && (t2.prevZ.nextZ = t2.nextZ), t2.nextZ && (t2.nextZ.prevZ = t2.prevZ); } - function ao(t2, e2, r2) { - this.i = t2, this.x = e2, this.y = r2, this.prev = null, this.next = null, this.z = 0, this.prevZ = null, this.nextZ = null, this.steiner = false; + function Wo(t2, e2, r2) { + this.i = t2, this.x = e2, this.y = r2, this.prev = null, this.next = null, this.z = null, this.prevZ = null, this.nextZ = null, this.steiner = false; } - function so(t2, e2, r2, n2) { - for (var i2 = 0, a2 = e2, s2 = r2 - n2; a2 < r2; a2 += n2) - i2 += (t2[s2] - t2[a2]) * (t2[a2 + 1] + t2[s2 + 1]), s2 = a2; + function Qo(t2, e2, r2, n2) { + for (var i2 = 0, a2 = e2, o2 = r2 - n2; a2 < r2; a2 += n2) + i2 += (t2[o2] - t2[a2]) * (t2[a2 + 1] + t2[o2 + 1]), o2 = a2; return i2; } - function oo(t2, e2, r2, n2, i2) { - lo(t2, e2, r2 || 0, n2 || t2.length - 1, i2 || co); - } - function lo(t2, e2, r2, n2, i2) { - for (; n2 > r2; ) { - if (n2 - r2 > 600) { - var a2 = n2 - r2 + 1, s2 = e2 - r2 + 1, o2 = Math.log(a2), l2 = 0.5 * Math.exp(2 * o2 / 3), u2 = 0.5 * Math.sqrt(o2 * l2 * (a2 - l2) / a2) * (s2 - a2 / 2 < 0 ? -1 : 1); - lo(t2, e2, Math.max(r2, Math.floor(e2 - s2 * l2 / a2 + u2)), Math.min(n2, Math.floor(e2 + (a2 - s2) * l2 / a2 + u2)), i2); - } - var c3 = t2[e2], h3 = r2, p3 = n2; - for (uo(t2, r2, e2), i2(t2[n2], c3) > 0 && uo(t2, r2, n2); h3 < p3; ) { - for (uo(t2, h3, p3), h3++, p3--; i2(t2[h3], c3) < 0; ) - h3++; - for (; i2(t2[p3], c3) > 0; ) - p3--; + function ts(t2, e2, r2, n2, i2) { + !function t3(e3, r3, n3, i3, a2) { + for (; i3 > n3; ) { + if (i3 - n3 > 600) { + var o2 = i3 - n3 + 1, s2 = r3 - n3 + 1, u2 = Math.log(o2), l2 = 0.5 * Math.exp(2 * u2 / 3), p3 = 0.5 * Math.sqrt(u2 * l2 * (o2 - l2) / o2) * (s2 - o2 / 2 < 0 ? -1 : 1); + t3(e3, r3, Math.max(n3, Math.floor(r3 - s2 * l2 / o2 + p3)), Math.min(i3, Math.floor(r3 + (o2 - s2) * l2 / o2 + p3)), a2); + } + var c3 = e3[r3], h3 = n3, f2 = i3; + for (es(e3, n3, r3), a2(e3[i3], c3) > 0 && es(e3, n3, i3); h3 < f2; ) { + for (es(e3, h3, f2), h3++, f2--; a2(e3[h3], c3) < 0; ) + h3++; + for (; a2(e3[f2], c3) > 0; ) + f2--; + } + 0 === a2(e3[n3], c3) ? es(e3, n3, f2) : es(e3, ++f2, i3), f2 <= r3 && (n3 = f2 + 1), r3 <= f2 && (i3 = f2 - 1); } - 0 === i2(t2[r2], c3) ? uo(t2, r2, p3) : uo(t2, ++p3, n2), p3 <= e2 && (r2 = p3 + 1), e2 <= p3 && (n2 = p3 - 1); - } + }(t2, e2, r2 || 0, n2 || t2.length - 1, i2 || rs); } - function uo(t2, e2, r2) { + function es(t2, e2, r2) { var n2 = t2[e2]; t2[e2] = t2[r2], t2[r2] = n2; } - function co(t2, e2) { + function rs(t2, e2) { return t2 < e2 ? -1 : t2 > e2 ? 1 : 0; } - function ho(t2, e2) { - const r2 = t2.length; + function ns(t2, e2) { + var r2 = t2.length; if (r2 <= 1) return [t2]; - const n2 = []; - let i2, a2; - for (let e3 = 0; e3 < r2; e3++) { - const r3 = m(t2[e3]); - 0 !== r3 && (t2[e3].area = Math.abs(r3), void 0 === a2 && (a2 = r3 < 0), a2 === r3 < 0 ? (i2 && n2.push(i2), i2 = [t2[e3]]) : i2.push(t2[e3])); - } - if (i2 && n2.push(i2), e2 > 1) - for (let t3 = 0; t3 < n2.length; t3++) - n2[t3].length <= e2 || (oo(n2[t3], e2, 1, n2[t3].length - 1, po), n2[t3] = n2[t3].slice(0, e2)); - return n2; + for (var n2, i2, a2 = [], o2 = 0; o2 < r2; o2++) { + var s2 = k(t2[o2]); + 0 !== s2 && (t2[o2].area = Math.abs(s2), void 0 === i2 && (i2 = s2 < 0), i2 === s2 < 0 ? (n2 && a2.push(n2), n2 = [t2[o2]]) : n2.push(t2[o2])); + } + if (n2 && a2.push(n2), e2 > 1) + for (var u2 = 0; u2 < a2.length; u2++) + a2[u2].length <= e2 || (ts(a2[u2], e2, 1, a2[u2].length - 1, is2), a2[u2] = a2[u2].slice(0, e2)); + return a2; } - function po(t2, e2) { + function is2(t2, e2) { return e2.area - t2.area; } - function fo(t2, e2, r2) { - const n2 = r2.patternDependencies; - let i2 = false; - for (const r3 of e2) { - const e3 = r3.paint.get(`${t2}-pattern`); - e3.isConstant() || (i2 = true); - const a2 = e3.constantOr(null); - a2 && (i2 = true, n2[a2.to] = true, n2[a2.from] = true); + function as(t2, e2, r2) { + for (var n2 = r2.patternDependencies, i2 = false, a2 = 0, o2 = e2; a2 < o2.length; a2 += 1) { + var s2 = o2[a2].paint.get(t2 + "-pattern"); + s2.isConstant() || (i2 = true); + var u2 = s2.constantOr(null); + u2 && (i2 = true, n2[u2.to] = true, n2[u2.from] = true); } return i2; } - function yo(t2, e2, r2, n2, i2) { - const a2 = i2.patternDependencies; - for (const s2 of e2) { - const e3 = s2.paint.get(`${t2}-pattern`).value; - if ("constant" !== e3.kind) { - let t3 = e3.evaluate({ zoom: n2 - 1 }, r2, {}, i2.availableImages), o2 = e3.evaluate({ zoom: n2 }, r2, {}, i2.availableImages), l2 = e3.evaluate({ zoom: n2 + 1 }, r2, {}, i2.availableImages); - t3 = t3 && t3.name ? t3.name : t3, o2 = o2 && o2.name ? o2.name : o2, l2 = l2 && l2.name ? l2.name : l2, a2[t3] = true, a2[o2] = true, a2[l2] = true, r2.patterns[s2.id] = { min: t3, mid: o2, max: l2 }; + function os(t2, e2, r2, n2, i2) { + for (var a2 = i2.patternDependencies, o2 = 0, s2 = e2; o2 < s2.length; o2 += 1) { + var u2 = s2[o2], l2 = u2.paint.get(t2 + "-pattern").value; + if ("constant" !== l2.kind) { + var p3 = l2.evaluate({ zoom: n2 - 1 }, r2, {}, i2.availableImages), c3 = l2.evaluate({ zoom: n2 }, r2, {}, i2.availableImages), h3 = l2.evaluate({ zoom: n2 + 1 }, r2, {}, i2.availableImages); + c3 = c3 && c3.name ? c3.name : c3, h3 = h3 && h3.name ? h3.name : h3, a2[p3 = p3 && p3.name ? p3.name : p3] = true, a2[c3] = true, a2[h3] = true, r2.patterns[u2.id] = { min: p3, mid: c3, max: h3 }; } } return r2; } - Fs.exports = Ts, Fs.exports.default = Ts, Ts.deviation = function(t2, e2, r2, n2) { - var i2 = e2 && e2.length, a2 = Math.abs(so(t2, 0, i2 ? e2[0] * r2 : t2.length, r2)); + Co.deviation = function(t2, e2, r2, n2) { + var i2 = e2 && e2.length, a2 = Math.abs(Qo(t2, 0, i2 ? e2[0] * r2 : t2.length, r2)); if (i2) - for (var s2 = 0, o2 = e2.length; s2 < o2; s2++) - a2 -= Math.abs(so(t2, e2[s2] * r2, s2 < o2 - 1 ? e2[s2 + 1] * r2 : t2.length, r2)); - var l2 = 0; - for (s2 = 0; s2 < n2.length; s2 += 3) { - var u2 = n2[s2] * r2, c3 = n2[s2 + 1] * r2, h3 = n2[s2 + 2] * r2; - l2 += Math.abs((t2[u2] - t2[h3]) * (t2[c3 + 1] - t2[u2 + 1]) - (t2[u2] - t2[c3]) * (t2[h3 + 1] - t2[u2 + 1])); - } - return 0 === a2 && 0 === l2 ? 0 : Math.abs((l2 - a2) / a2); - }, Ts.flatten = function(t2) { + for (var o2 = 0, s2 = e2.length; o2 < s2; o2++) + a2 -= Math.abs(Qo(t2, e2[o2] * r2, o2 < s2 - 1 ? e2[o2 + 1] * r2 : t2.length, r2)); + var u2 = 0; + for (o2 = 0; o2 < n2.length; o2 += 3) { + var l2 = n2[o2] * r2, p3 = n2[o2 + 1] * r2, c3 = n2[o2 + 2] * r2; + u2 += Math.abs((t2[l2] - t2[c3]) * (t2[p3 + 1] - t2[l2 + 1]) - (t2[l2] - t2[p3]) * (t2[c3 + 1] - t2[l2 + 1])); + } + return 0 === a2 && 0 === u2 ? 0 : Math.abs((u2 - a2) / a2); + }, Co.flatten = function(t2) { for (var e2 = t2[0][0].length, r2 = { vertices: [], holes: [], dimensions: e2 }, n2 = 0, i2 = 0; i2 < t2.length; i2++) { for (var a2 = 0; a2 < t2[i2].length; a2++) - for (var s2 = 0; s2 < e2; s2++) - r2.vertices.push(t2[i2][a2][s2]); + for (var o2 = 0; o2 < e2; o2++) + r2.vertices.push(t2[i2][a2][o2]); i2 > 0 && r2.holes.push(n2 += t2[i2 - 1].length); } return r2; + }, Io.default = zo; + var ss = function(t2) { + this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map(function(t3) { + return t3.id; + }), this.index = t2.index, this.hasPattern = false, this.patternFeatures = [], this.layoutVertexArray = new Ci(), this.indexArray = new ji(), this.indexArray2 = new Xi(), this.programConfigurations = new Va(t2.layers, t2.zoom), this.segments = new sa(), this.segments2 = new sa(), this.stateDependentLayerIds = this.layers.filter(function(t3) { + return t3.isStateDependent(); + }).map(function(t3) { + return t3.id; + }); }; - class mo { - constructor(t2) { - this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map((t3) => t3.id), this.index = t2.index, this.hasPattern = false, this.patternFeatures = [], this.layoutVertexArray = new ea(), this.indexArray = new ha(), this.indexArray2 = new pa(), this.programConfigurations = new Ra(t2.layers, t2.zoom), this.segments = new ya(), this.segments2 = new ya(), this.stateDependentLayerIds = this.layers.filter((t3) => t3.isStateDependent()).map((t3) => t3.id); - } - populate(t2, e2, r2) { - this.hasPattern = fo("fill", this.layers, e2); - const n2 = this.layers[0].layout.get("fill-sort-key"), i2 = !n2.isConstant(), a2 = []; - for (const { feature: s2, id: o2, index: l2, sourceLayerIndex: u2 } of t2) { - const t3 = this.layers[0]._featureFilter.needGeometry, c3 = Ka(s2, t3); - if (!this.layers[0]._featureFilter.filter(new Qn(this.zoom), c3, r2)) - continue; - const h3 = i2 ? n2.evaluate(c3, {}, r2, e2.availableImages) : void 0, p3 = { id: o2, properties: s2.properties, type: s2.type, sourceLayerIndex: u2, index: l2, geometry: t3 ? c3.geometry : Za(s2), patterns: {}, sortKey: h3 }; - a2.push(p3); - } - i2 && a2.sort((t3, e3) => t3.sortKey - e3.sortKey); - for (const n3 of a2) { - const { geometry: i3, index: a3, sourceLayerIndex: s2 } = n3; - if (this.hasPattern) { - const t3 = yo("fill", this.layers, n3, this.zoom, e2); - this.patternFeatures.push(t3); - } else - this.addFeature(n3, i3, a3, r2, {}); - e2.featureIndex.insert(t2[a3].feature, i3, a3, s2, this.index); + ss.prototype.populate = function(t2, e2, r2) { + this.hasPattern = as("fill", this.layers, e2); + for (var n2 = this.layers[0].layout.get("fill-sort-key"), i2 = [], a2 = 0, o2 = t2; a2 < o2.length; a2 += 1) { + var s2 = o2[a2], u2 = s2.feature, l2 = s2.id, p3 = s2.index, c3 = s2.sourceLayerIndex, h3 = this.layers[0]._featureFilter.needGeometry, f2 = Ua(u2, h3); + if (this.layers[0]._featureFilter.filter(new si(this.zoom), f2, r2)) { + var y3 = n2 ? n2.evaluate(f2, {}, r2, e2.availableImages) : void 0, d2 = { id: l2, properties: u2.properties, type: u2.type, sourceLayerIndex: c3, index: p3, geometry: h3 ? f2.geometry : Ra(u2), patterns: {}, sortKey: y3 }; + i2.push(d2); } } - update(t2, e2, r2) { - this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t2, e2, this.stateDependentLayers, r2); - } - addFeatures(t2, e2, r2) { - for (const t3 of this.patternFeatures) - this.addFeature(t3, t3.geometry, t3.index, e2, r2); - } - isEmpty() { - return 0 === this.layoutVertexArray.length; - } - uploadPending() { - return !this.uploaded || this.programConfigurations.needsUpload; - } - upload(t2) { - this.uploaded || (this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, Es), this.indexBuffer = t2.createIndexBuffer(this.indexArray), this.indexBuffer2 = t2.createIndexBuffer(this.indexArray2)), this.programConfigurations.upload(t2), this.uploaded = true; - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.indexBuffer2.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.segments2.destroy()); - } - addFeature(t2, e2, r2, n2, i2) { - for (const t3 of ho(e2, 500)) { - let e3 = 0; - for (const r4 of t3) - e3 += r4.length; - const r3 = this.segments.prepareSegment(e3, this.layoutVertexArray, this.indexArray), n3 = r3.vertexLength, i3 = [], a2 = []; - for (const e4 of t3) { - if (0 === e4.length) - continue; - e4 !== t3[0] && a2.push(i3.length / 2); - const r4 = this.segments2.prepareSegment(e4.length, this.layoutVertexArray, this.indexArray2), n4 = r4.vertexLength; - this.layoutVertexArray.emplaceBack(e4[0].x, e4[0].y), this.indexArray2.emplaceBack(n4 + e4.length - 1, n4), i3.push(e4[0].x), i3.push(e4[0].y); - for (let t4 = 1; t4 < e4.length; t4++) - this.layoutVertexArray.emplaceBack(e4[t4].x, e4[t4].y), this.indexArray2.emplaceBack(n4 + t4 - 1, n4 + t4), i3.push(e4[t4].x), i3.push(e4[t4].y); - r4.vertexLength += e4.length, r4.primitiveLength += e4.length; + n2 && i2.sort(function(t3, e3) { + return t3.sortKey - e3.sortKey; + }); + for (var m2 = 0, v3 = i2; m2 < v3.length; m2 += 1) { + var g2 = v3[m2], x2 = g2.geometry, b2 = g2.index, w2 = g2.sourceLayerIndex; + if (this.hasPattern) { + var _24 = os("fill", this.layers, g2, this.zoom, e2); + this.patternFeatures.push(_24); + } else + this.addFeature(g2, x2, b2, r2, {}); + e2.featureIndex.insert(t2[b2].feature, x2, b2, w2, this.index); + } + }, ss.prototype.update = function(t2, e2, r2) { + this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t2, e2, this.stateDependentLayers, r2); + }, ss.prototype.addFeatures = function(t2, e2, r2) { + for (var n2 = 0, i2 = this.patternFeatures; n2 < i2.length; n2 += 1) { + var a2 = i2[n2]; + this.addFeature(a2, a2.geometry, a2.index, e2, r2); + } + }, ss.prototype.isEmpty = function() { + return 0 === this.layoutVertexArray.length; + }, ss.prototype.uploadPending = function() { + return !this.uploaded || this.programConfigurations.needsUpload; + }, ss.prototype.upload = function(t2) { + this.uploaded || (this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, ko), this.indexBuffer = t2.createIndexBuffer(this.indexArray), this.indexBuffer2 = t2.createIndexBuffer(this.indexArray2)), this.programConfigurations.upload(t2), this.uploaded = true; + }, ss.prototype.destroy = function() { + this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.indexBuffer2.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.segments2.destroy()); + }, ss.prototype.addFeature = function(t2, e2, r2, n2, i2) { + for (var a2 = 0, o2 = ns(e2, 500); a2 < o2.length; a2 += 1) { + for (var s2 = o2[a2], u2 = 0, l2 = 0, p3 = s2; l2 < p3.length; l2 += 1) + u2 += p3[l2].length; + for (var c3 = this.segments.prepareSegment(u2, this.layoutVertexArray, this.indexArray), h3 = c3.vertexLength, f2 = [], y3 = [], d2 = 0, m2 = s2; d2 < m2.length; d2 += 1) { + var v3 = m2[d2]; + if (0 !== v3.length) { + v3 !== s2[0] && y3.push(f2.length / 2); + var g2 = this.segments2.prepareSegment(v3.length, this.layoutVertexArray, this.indexArray2), x2 = g2.vertexLength; + this.layoutVertexArray.emplaceBack(v3[0].x, v3[0].y), this.indexArray2.emplaceBack(x2 + v3.length - 1, x2), f2.push(v3[0].x), f2.push(v3[0].y); + for (var b2 = 1; b2 < v3.length; b2++) + this.layoutVertexArray.emplaceBack(v3[b2].x, v3[b2].y), this.indexArray2.emplaceBack(x2 + b2 - 1, x2 + b2), f2.push(v3[b2].x), f2.push(v3[b2].y); + g2.vertexLength += v3.length, g2.primitiveLength += v3.length; } - const s2 = Fs.exports(i3, a2); - for (let t4 = 0; t4 < s2.length; t4 += 3) - this.indexArray.emplaceBack(n3 + s2[t4], n3 + s2[t4 + 1], n3 + s2[t4 + 2]); - r3.vertexLength += e3, r3.primitiveLength += s2.length / 3; } - this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t2, r2, i2, n2); - } - } - Mn("FillBucket", mo, { omit: ["layers", "patternFeatures"] }); - const go = new fi({ "fill-sort-key": new ui(nt.layout_fill["fill-sort-key"]) }); - var xo = { paint: new fi({ "fill-antialias": new li(nt.paint_fill["fill-antialias"]), "fill-opacity": new ui(nt.paint_fill["fill-opacity"]), "fill-color": new ui(nt.paint_fill["fill-color"]), "fill-outline-color": new ui(nt.paint_fill["fill-outline-color"]), "fill-translate": new li(nt.paint_fill["fill-translate"]), "fill-translate-anchor": new li(nt.paint_fill["fill-translate-anchor"]), "fill-pattern": new ci(nt.paint_fill["fill-pattern"]) }), layout: go }; - const vo = vi([{ name: "a_pos", components: 2, type: "Int16" }, { name: "a_normal_ed", components: 4, type: "Int16" }], 4), bo = vi([{ name: "a_centroid", components: 2, type: "Int16" }], 4), { members: wo } = vo; - var _o = {}, Ao = S, ko = So; - function So(t2, e2, r2, n2, i2) { - this.properties = {}, this.extent = r2, this.type = 0, this._pbf = t2, this._geometry = -1, this._keys = n2, this._values = i2, t2.readFields(Io, this, e2); + for (var w2 = Io(f2, y3), _24 = 0; _24 < w2.length; _24 += 3) + this.indexArray.emplaceBack(h3 + w2[_24], h3 + w2[_24 + 1], h3 + w2[_24 + 2]); + c3.vertexLength += u2, c3.primitiveLength += w2.length / 3; + } + this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t2, r2, i2, n2); + }, On("FillBucket", ss, { omit: ["layers", "patternFeatures"] }); + var us = new wi({ "fill-sort-key": new vi(Et.layout_fill["fill-sort-key"]) }), ls = { paint: new wi({ "fill-antialias": new mi(Et.paint_fill["fill-antialias"]), "fill-opacity": new vi(Et.paint_fill["fill-opacity"]), "fill-color": new vi(Et.paint_fill["fill-color"]), "fill-outline-color": new vi(Et.paint_fill["fill-outline-color"]), "fill-translate": new mi(Et.paint_fill["fill-translate"]), "fill-translate-anchor": new mi(Et.paint_fill["fill-translate-anchor"]), "fill-pattern": new gi(Et.paint_fill["fill-pattern"]) }), layout: us }, ps = function(t2) { + function e2(e3) { + t2.call(this, e3, ls); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.recalculate = function(e3, r2) { + t2.prototype.recalculate.call(this, e3, r2); + var n2 = this.paint._values["fill-outline-color"]; + "constant" === n2.value.kind && void 0 === n2.value.value && (this.paint._values["fill-outline-color"] = this.paint._values["fill-color"]); + }, e2.prototype.createBucket = function(t3) { + return new ss(t3); + }, e2.prototype.queryRadius = function() { + return eo(this.paint.get("fill-translate")); + }, e2.prototype.queryIntersectsFeature = function(t3, e3, r2, n2, i2, a2, o2) { + return Ga(ro(t3, this.paint.get("fill-translate"), this.paint.get("fill-translate-anchor"), a2.angle, o2), n2); + }, e2.prototype.isTileClipped = function() { + return true; + }, e2; + }(_i), cs = Ii([{ name: "a_pos", components: 2, type: "Int16" }, { name: "a_normal_ed", components: 4, type: "Int16" }], 4).members, hs = fs; + function fs(t2, e2, r2, n2, i2) { + this.properties = {}, this.extent = r2, this.type = 0, this._pbf = t2, this._geometry = -1, this._keys = n2, this._values = i2, t2.readFields(ys, this, e2); } - function Io(t2, e2, r2) { + function ys(t2, e2, r2) { 1 == t2 ? e2.id = r2.readVarint() : 2 == t2 ? function(t3, e3) { for (var r3 = t3.readVarint() + t3.pos; t3.pos < r3; ) { var n2 = e3._keys[t3.readVarint()], i2 = e3._values[t3.readVarint()]; @@ -20573,84 +20869,84 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ } }(r2, e2) : 3 == t2 ? e2.type = r2.readVarint() : 4 == t2 && (e2._geometry = r2.pos); } - function Mo(t2) { - for (var e2, r2, n2 = 0, i2 = 0, a2 = t2.length, s2 = a2 - 1; i2 < a2; s2 = i2++) - n2 += ((r2 = t2[s2]).x - (e2 = t2[i2]).x) * (e2.y + r2.y); + function ds(t2) { + for (var e2, r2, n2 = 0, i2 = 0, a2 = t2.length, o2 = a2 - 1; i2 < a2; o2 = i2++) + n2 += ((r2 = t2[o2]).x - (e2 = t2[i2]).x) * (e2.y + r2.y); return n2; } - So.types = ["Unknown", "Point", "LineString", "Polygon"], So.prototype.loadGeometry = function() { + fs.types = ["Unknown", "Point", "LineString", "Polygon"], fs.prototype.loadGeometry = function() { var t2 = this._pbf; t2.pos = this._geometry; - for (var e2, r2 = t2.readVarint() + t2.pos, n2 = 1, i2 = 0, a2 = 0, s2 = 0, o2 = []; t2.pos < r2; ) { - if (i2 <= 0) { + for (var e2, r2 = t2.readVarint() + t2.pos, n2 = 1, a2 = 0, o2 = 0, s2 = 0, u2 = []; t2.pos < r2; ) { + if (a2 <= 0) { var l2 = t2.readVarint(); - n2 = 7 & l2, i2 = l2 >> 3; + n2 = 7 & l2, a2 = l2 >> 3; } - if (i2--, 1 === n2 || 2 === n2) - a2 += t2.readSVarint(), s2 += t2.readSVarint(), 1 === n2 && (e2 && o2.push(e2), e2 = []), e2.push(new Ao(a2, s2)); + if (a2--, 1 === n2 || 2 === n2) + o2 += t2.readSVarint(), s2 += t2.readSVarint(), 1 === n2 && (e2 && u2.push(e2), e2 = []), e2.push(new i(o2, s2)); else { if (7 !== n2) throw new Error("unknown command " + n2); e2 && e2.push(e2[0].clone()); } } - return e2 && o2.push(e2), o2; - }, So.prototype.bbox = function() { + return e2 && u2.push(e2), u2; + }, fs.prototype.bbox = function() { var t2 = this._pbf; t2.pos = this._geometry; - for (var e2 = t2.readVarint() + t2.pos, r2 = 1, n2 = 0, i2 = 0, a2 = 0, s2 = 1 / 0, o2 = -1 / 0, l2 = 1 / 0, u2 = -1 / 0; t2.pos < e2; ) { + for (var e2 = t2.readVarint() + t2.pos, r2 = 1, n2 = 0, i2 = 0, a2 = 0, o2 = 1 / 0, s2 = -1 / 0, u2 = 1 / 0, l2 = -1 / 0; t2.pos < e2; ) { if (n2 <= 0) { - var c3 = t2.readVarint(); - r2 = 7 & c3, n2 = c3 >> 3; + var p3 = t2.readVarint(); + r2 = 7 & p3, n2 = p3 >> 3; } if (n2--, 1 === r2 || 2 === r2) - (i2 += t2.readSVarint()) < s2 && (s2 = i2), i2 > o2 && (o2 = i2), (a2 += t2.readSVarint()) < l2 && (l2 = a2), a2 > u2 && (u2 = a2); + (i2 += t2.readSVarint()) < o2 && (o2 = i2), i2 > s2 && (s2 = i2), (a2 += t2.readSVarint()) < u2 && (u2 = a2), a2 > l2 && (l2 = a2); else if (7 !== r2) throw new Error("unknown command " + r2); } - return [s2, l2, o2, u2]; - }, So.prototype.toGeoJSON = function(t2, e2, r2) { - var n2, i2, a2 = this.extent * Math.pow(2, r2), s2 = this.extent * t2, o2 = this.extent * e2, l2 = this.loadGeometry(), u2 = So.types[this.type]; - function c3(t3) { + return [o2, u2, s2, l2]; + }, fs.prototype.toGeoJSON = function(t2, e2, r2) { + var n2, i2, a2 = this.extent * Math.pow(2, r2), o2 = this.extent * t2, s2 = this.extent * e2, u2 = this.loadGeometry(), l2 = fs.types[this.type]; + function p3(t3) { for (var e3 = 0; e3 < t3.length; e3++) { var r3 = t3[e3]; - t3[e3] = [360 * (r3.x + s2) / a2 - 180, 360 / Math.PI * Math.atan(Math.exp((180 - 360 * (r3.y + o2) / a2) * Math.PI / 180)) - 90]; + t3[e3] = [360 * (r3.x + o2) / a2 - 180, 360 / Math.PI * Math.atan(Math.exp((180 - 360 * (r3.y + s2) / a2) * Math.PI / 180)) - 90]; } } switch (this.type) { case 1: - var h3 = []; - for (n2 = 0; n2 < l2.length; n2++) - h3[n2] = l2[n2][0]; - c3(l2 = h3); + var c3 = []; + for (n2 = 0; n2 < u2.length; n2++) + c3[n2] = u2[n2][0]; + p3(u2 = c3); break; case 2: - for (n2 = 0; n2 < l2.length; n2++) - c3(l2[n2]); + for (n2 = 0; n2 < u2.length; n2++) + p3(u2[n2]); break; case 3: - for (l2 = function(t3) { + for (u2 = function(t3) { var e3 = t3.length; if (e3 <= 1) return [t3]; for (var r3, n3, i3 = [], a3 = 0; a3 < e3; a3++) { - var s3 = Mo(t3[a3]); - 0 !== s3 && (void 0 === n3 && (n3 = s3 < 0), n3 === s3 < 0 ? (r3 && i3.push(r3), r3 = [t3[a3]]) : r3.push(t3[a3])); + var o3 = ds(t3[a3]); + 0 !== o3 && (void 0 === n3 && (n3 = o3 < 0), n3 === o3 < 0 ? (r3 && i3.push(r3), r3 = [t3[a3]]) : r3.push(t3[a3])); } return r3 && i3.push(r3), i3; - }(l2), n2 = 0; n2 < l2.length; n2++) - for (i2 = 0; i2 < l2[n2].length; i2++) - c3(l2[n2][i2]); + }(u2), n2 = 0; n2 < u2.length; n2++) + for (i2 = 0; i2 < u2[n2].length; i2++) + p3(u2[n2][i2]); } - 1 === l2.length ? l2 = l2[0] : u2 = "Multi" + u2; - var p3 = { type: "Feature", geometry: { type: u2, coordinates: l2 }, properties: this.properties }; - return "id" in this && (p3.id = this.id), p3; + 1 === u2.length ? u2 = u2[0] : l2 = "Multi" + l2; + var h3 = { type: "Feature", geometry: { type: l2, coordinates: u2 }, properties: this.properties }; + return "id" in this && (h3.id = this.id), h3; }; - var zo = ko, Bo = Co; - function Co(t2, e2) { - this.version = 1, this.name = null, this.extent = 4096, this.length = 0, this._pbf = t2, this._keys = [], this._values = [], this._features = [], t2.readFields(Po, this, e2), this.length = this._features.length; + var ms = vs; + function vs(t2, e2) { + this.version = 1, this.name = null, this.extent = 4096, this.length = 0, this._pbf = t2, this._keys = [], this._values = [], this._features = [], t2.readFields(gs, this, e2), this.length = this._features.length; } - function Po(t2, e2, r2) { + function gs(t2, e2, r2) { 15 === t2 ? e2.version = r2.readVarint() : 1 === t2 ? e2.name = r2.readString() : 5 === t2 ? e2.extent = r2.readVarint() : 2 === t2 ? e2._features.push(r2.pos) : 3 === t2 ? e2._keys.push(r2.readString()) : 4 === t2 && e2._values.push(function(t3) { for (var e3 = null, r3 = t3.readVarint() + t3.pos; t3.pos < r3; ) { var n2 = t3.readVarint() >> 3; @@ -20659,443 +20955,494 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ return e3; }(r2)); } - Co.prototype.feature = function(t2) { + function xs(t2, e2, r2) { + if (3 === t2) { + var n2 = new ms(r2, r2.readVarint() + r2.pos); + n2.length && (e2[n2.name] = n2); + } + } + vs.prototype.feature = function(t2) { if (t2 < 0 || t2 >= this._features.length) throw new Error("feature index out of bounds"); this._pbf.pos = this._features[t2]; var e2 = this._pbf.readVarint() + this._pbf.pos; - return new zo(this._pbf, e2, this.extent, this._keys, this._values); + return new hs(this._pbf, e2, this.extent, this._keys, this._values); }; - var Vo = Bo; - function Eo(t2, e2, r2) { - if (3 === t2) { - var n2 = new Vo(r2, r2.readVarint() + r2.pos); - n2.length && (e2[n2.name] = n2); - } - } - _o.VectorTile = function(t2, e2) { - this.layers = t2.readFields(Eo, {}, e2); - }, _o.VectorTileFeature = ko, _o.VectorTileLayer = Bo; - const Fo = _o.VectorTileFeature.types, To = Math.pow(2, 13); - function Lo(t2, e2, r2, n2, i2, a2, s2, o2) { - t2.emplaceBack(e2, r2, 2 * Math.floor(n2 * To) + s2, i2 * To * 2, a2 * To * 2, Math.round(o2)); - } - class Do { - constructor(t2) { - this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map((t3) => t3.id), this.index = t2.index, this.hasPattern = false, this.layoutVertexArray = new ra(), this.centroidVertexArray = new Qi(), this.indexArray = new ha(), this.programConfigurations = new Ra(t2.layers, t2.zoom), this.segments = new ya(), this.stateDependentLayerIds = this.layers.filter((t3) => t3.isStateDependent()).map((t3) => t3.id); - } - populate(t2, e2, r2) { - this.features = [], this.hasPattern = fo("fill-extrusion", this.layers, e2); - for (const { feature: n2, id: i2, index: a2, sourceLayerIndex: s2 } of t2) { - const t3 = this.layers[0]._featureFilter.needGeometry, o2 = Ka(n2, t3); - if (!this.layers[0]._featureFilter.filter(new Qn(this.zoom), o2, r2)) - continue; - const l2 = { id: i2, sourceLayerIndex: s2, index: a2, geometry: t3 ? o2.geometry : Za(n2), properties: n2.properties, type: n2.type, patterns: {} }; - this.hasPattern ? this.features.push(yo("fill-extrusion", this.layers, l2, this.zoom, e2)) : this.addFeature(l2, l2.geometry, a2, r2, {}), e2.featureIndex.insert(n2, l2.geometry, a2, s2, this.index, true); + var bs = { VectorTile: function(t2, e2) { + this.layers = t2.readFields(xs, {}, e2); + }, VectorTileFeature: hs, VectorTileLayer: ms }, ws = bs.VectorTileFeature.types, _s = Math.pow(2, 13); + function As(t2, e2, r2, n2, i2, a2, o2, s2) { + t2.emplaceBack(e2, r2, 2 * Math.floor(n2 * _s) + o2, i2 * _s * 2, a2 * _s * 2, Math.round(s2)); + } + var Ss = function(t2) { + this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map(function(t3) { + return t3.id; + }), this.index = t2.index, this.hasPattern = false, this.layoutVertexArray = new Pi(), this.indexArray = new ji(), this.programConfigurations = new Va(t2.layers, t2.zoom), this.segments = new sa(), this.stateDependentLayerIds = this.layers.filter(function(t3) { + return t3.isStateDependent(); + }).map(function(t3) { + return t3.id; + }); + }; + function ks(t2, e2) { + return t2.x === e2.x && (t2.x < 0 || t2.x > 8192) || t2.y === e2.y && (t2.y < 0 || t2.y > 8192); + } + Ss.prototype.populate = function(t2, e2, r2) { + this.features = [], this.hasPattern = as("fill-extrusion", this.layers, e2); + for (var n2 = 0, i2 = t2; n2 < i2.length; n2 += 1) { + var a2 = i2[n2], o2 = a2.feature, s2 = a2.id, u2 = a2.index, l2 = a2.sourceLayerIndex, p3 = this.layers[0]._featureFilter.needGeometry, c3 = Ua(o2, p3); + if (this.layers[0]._featureFilter.filter(new si(this.zoom), c3, r2)) { + var h3 = { id: s2, sourceLayerIndex: l2, index: u2, geometry: p3 ? c3.geometry : Ra(o2), properties: o2.properties, type: o2.type, patterns: {} }; + this.hasPattern ? this.features.push(os("fill-extrusion", this.layers, h3, this.zoom, e2)) : this.addFeature(h3, h3.geometry, u2, r2, {}), e2.featureIndex.insert(o2, h3.geometry, u2, l2, this.index, true); + } + } + }, Ss.prototype.addFeatures = function(t2, e2, r2) { + for (var n2 = 0, i2 = this.features; n2 < i2.length; n2 += 1) { + var a2 = i2[n2]; + this.addFeature(a2, a2.geometry, a2.index, e2, r2); + } + }, Ss.prototype.update = function(t2, e2, r2) { + this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t2, e2, this.stateDependentLayers, r2); + }, Ss.prototype.isEmpty = function() { + return 0 === this.layoutVertexArray.length; + }, Ss.prototype.uploadPending = function() { + return !this.uploaded || this.programConfigurations.needsUpload; + }, Ss.prototype.upload = function(t2) { + this.uploaded || (this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, cs), this.indexBuffer = t2.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t2), this.uploaded = true; + }, Ss.prototype.destroy = function() { + this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy()); + }, Ss.prototype.addFeature = function(t2, e2, r2, n2, i2) { + for (var a2 = 0, o2 = ns(e2, 500); a2 < o2.length; a2 += 1) { + for (var s2 = o2[a2], u2 = 0, l2 = 0, p3 = s2; l2 < p3.length; l2 += 1) + u2 += p3[l2].length; + for (var c3 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray), h3 = 0, f2 = s2; h3 < f2.length; h3 += 1) { + var y3 = f2[h3]; + if (0 !== y3.length && !((B2 = y3).every(function(t3) { + return t3.x < 0; + }) || B2.every(function(t3) { + return t3.x > 8192; + }) || B2.every(function(t3) { + return t3.y < 0; + }) || B2.every(function(t3) { + return t3.y > 8192; + }))) + for (var d2 = 0, m2 = 0; m2 < y3.length; m2++) { + var v3 = y3[m2]; + if (m2 >= 1) { + var g2 = y3[m2 - 1]; + if (!ks(v3, g2)) { + c3.vertexLength + 4 > sa.MAX_VERTEX_ARRAY_LENGTH && (c3 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray)); + var x2 = v3.sub(g2)._perp()._unit(), b2 = g2.dist(v3); + d2 + b2 > 32768 && (d2 = 0), As(this.layoutVertexArray, v3.x, v3.y, x2.x, x2.y, 0, 0, d2), As(this.layoutVertexArray, v3.x, v3.y, x2.x, x2.y, 0, 1, d2), As(this.layoutVertexArray, g2.x, g2.y, x2.x, x2.y, 0, 0, d2 += b2), As(this.layoutVertexArray, g2.x, g2.y, x2.x, x2.y, 0, 1, d2); + var w2 = c3.vertexLength; + this.indexArray.emplaceBack(w2, w2 + 2, w2 + 1), this.indexArray.emplaceBack(w2 + 1, w2 + 2, w2 + 3), c3.vertexLength += 4, c3.primitiveLength += 2; + } + } + } } - } - addFeatures(t2, e2, r2) { - for (const t3 of this.features) { - const { geometry: n2 } = t3; - this.addFeature(t3, n2, t3.index, e2, r2); - } - } - update(t2, e2, r2) { - this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t2, e2, this.stateDependentLayers, r2); - } - isEmpty() { - return 0 === this.layoutVertexArray.length && 0 === this.centroidVertexArray.length; - } - uploadPending() { - return !this.uploaded || this.programConfigurations.needsUpload; - } - upload(t2) { - this.uploaded || (this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, wo), this.centroidVertexBuffer = t2.createVertexBuffer(this.centroidVertexArray, bo.members, true), this.indexBuffer = t2.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t2), this.uploaded = true; - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.centroidVertexBuffer.destroy()); - } - addFeature(t2, e2, r2, n2, i2) { - const a2 = { x: 0, y: 0, vertexCount: 0 }; - for (const r3 of ho(e2, 500)) { - let e3 = 0; - for (const t3 of r3) - e3 += t3.length; - let n3 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray); - for (const t3 of r3) { - if (0 === t3.length) - continue; - if (Ro(t3)) - continue; - let e4 = 0; - for (let r4 = 0; r4 < t3.length; r4++) { - const i4 = t3[r4]; - if (r4 >= 1) { - const s3 = t3[r4 - 1]; - if (!$o(i4, s3)) { - n3.vertexLength + 4 > ya.MAX_VERTEX_ARRAY_LENGTH && (n3 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray)); - const t4 = i4.sub(s3)._perp()._unit(), r5 = s3.dist(i4); - e4 + r5 > 32768 && (e4 = 0), Lo(this.layoutVertexArray, i4.x, i4.y, t4.x, t4.y, 0, 0, e4), Lo(this.layoutVertexArray, i4.x, i4.y, t4.x, t4.y, 0, 1, e4), a2.x += 2 * i4.x, a2.y += 2 * i4.y, a2.vertexCount += 2, e4 += r5, Lo(this.layoutVertexArray, s3.x, s3.y, t4.x, t4.y, 0, 0, e4), Lo(this.layoutVertexArray, s3.x, s3.y, t4.x, t4.y, 0, 1, e4), a2.x += 2 * s3.x, a2.y += 2 * s3.y, a2.vertexCount += 2; - const o3 = n3.vertexLength; - this.indexArray.emplaceBack(o3, o3 + 2, o3 + 1), this.indexArray.emplaceBack(o3 + 1, o3 + 2, o3 + 3), n3.vertexLength += 4, n3.primitiveLength += 2; - } + if (c3.vertexLength + u2 > sa.MAX_VERTEX_ARRAY_LENGTH && (c3 = this.segments.prepareSegment(u2, this.layoutVertexArray, this.indexArray)), "Polygon" === ws[t2.type]) { + for (var _24 = [], A3 = [], S2 = c3.vertexLength, k2 = 0, I3 = s2; k2 < I3.length; k2 += 1) { + var z2 = I3[k2]; + if (0 !== z2.length) { + z2 !== s2[0] && A3.push(_24.length / 2); + for (var C2 = 0; C2 < z2.length; C2++) { + var E2 = z2[C2]; + As(this.layoutVertexArray, E2.x, E2.y, 0, 0, 1, 1, 0), _24.push(E2.x), _24.push(E2.y); } } } - if (n3.vertexLength + e3 > ya.MAX_VERTEX_ARRAY_LENGTH && (n3 = this.segments.prepareSegment(e3, this.layoutVertexArray, this.indexArray)), "Polygon" !== Fo[t2.type]) - continue; - const i3 = [], s2 = [], o2 = n3.vertexLength; - for (const t3 of r3) - if (0 !== t3.length) { - t3 !== r3[0] && s2.push(i3.length / 2); - for (let e4 = 0; e4 < t3.length; e4++) { - const r4 = t3[e4]; - Lo(this.layoutVertexArray, r4.x, r4.y, 0, 0, 1, 1, 0), a2.x += r4.x, a2.y += r4.y, a2.vertexCount += 1, i3.push(r4.x), i3.push(r4.y); - } + for (var P2 = Io(_24, A3), M2 = 0; M2 < P2.length; M2 += 3) + this.indexArray.emplaceBack(S2 + P2[M2], S2 + P2[M2 + 2], S2 + P2[M2 + 1]); + c3.primitiveLength += P2.length / 3, c3.vertexLength += u2; + } + } + var B2; + this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t2, r2, i2, n2); + }, On("FillExtrusionBucket", Ss, { omit: ["layers", "features"] }); + var Is = { paint: new wi({ "fill-extrusion-opacity": new mi(Et["paint_fill-extrusion"]["fill-extrusion-opacity"]), "fill-extrusion-color": new vi(Et["paint_fill-extrusion"]["fill-extrusion-color"]), "fill-extrusion-translate": new mi(Et["paint_fill-extrusion"]["fill-extrusion-translate"]), "fill-extrusion-translate-anchor": new mi(Et["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]), "fill-extrusion-pattern": new gi(Et["paint_fill-extrusion"]["fill-extrusion-pattern"]), "fill-extrusion-height": new vi(Et["paint_fill-extrusion"]["fill-extrusion-height"]), "fill-extrusion-base": new vi(Et["paint_fill-extrusion"]["fill-extrusion-base"]), "fill-extrusion-vertical-gradient": new mi(Et["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"]) }) }, zs = function(t2) { + function e2(e3) { + t2.call(this, e3, Is); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.createBucket = function(t3) { + return new Ss(t3); + }, e2.prototype.queryRadius = function() { + return eo(this.paint.get("fill-extrusion-translate")); + }, e2.prototype.is3D = function() { + return true; + }, e2.prototype.queryIntersectsFeature = function(t3, e3, r2, n2, a2, o2, s2, u2) { + var l2 = ro(t3, this.paint.get("fill-extrusion-translate"), this.paint.get("fill-extrusion-translate-anchor"), o2.angle, s2), p3 = this.paint.get("fill-extrusion-height").evaluate(e3, r2), c3 = this.paint.get("fill-extrusion-base").evaluate(e3, r2), h3 = function(t4, e4, r3, n3) { + for (var a3 = [], o3 = 0, s3 = t4; o3 < s3.length; o3 += 1) { + var u3 = s3[o3], l3 = [u3.x, u3.y, 0, 1]; + po(l3, l3, e4), a3.push(new i(l3[0] / l3[3], l3[1] / l3[3])); + } + return a3; + }(l2, u2), f2 = function(t4, e4, r3, n3) { + for (var a3 = [], o3 = [], s3 = n3[8] * e4, u3 = n3[9] * e4, l3 = n3[10] * e4, p4 = n3[11] * e4, c4 = n3[8] * r3, h4 = n3[9] * r3, f3 = n3[10] * r3, y3 = n3[11] * r3, d2 = 0, m2 = t4; d2 < m2.length; d2 += 1) { + for (var v3 = [], g2 = [], x2 = 0, b2 = m2[d2]; x2 < b2.length; x2 += 1) { + var w2 = b2[x2], _24 = w2.x, A3 = w2.y, S2 = n3[0] * _24 + n3[4] * A3 + n3[12], k2 = n3[1] * _24 + n3[5] * A3 + n3[13], I3 = n3[2] * _24 + n3[6] * A3 + n3[14], z2 = n3[3] * _24 + n3[7] * A3 + n3[15], C2 = I3 + l3, E2 = z2 + p4, P2 = S2 + c4, M2 = k2 + h4, B2 = I3 + f3, T2 = z2 + y3, V3 = new i((S2 + s3) / E2, (k2 + u3) / E2); + V3.z = C2 / E2, v3.push(V3); + var F2 = new i(P2 / T2, M2 / T2); + F2.z = B2 / T2, g2.push(F2); } - const l2 = Fs.exports(i3, s2); - for (let t3 = 0; t3 < l2.length; t3 += 3) - this.indexArray.emplaceBack(o2 + l2[t3], o2 + l2[t3 + 2], o2 + l2[t3 + 1]); - n3.primitiveLength += l2.length / 3, n3.vertexLength += e3; - } - for (let t3 = 0; t3 < a2.vertexCount; t3++) - this.centroidVertexArray.emplaceBack(Math.floor(a2.x / a2.vertexCount), Math.floor(a2.y / a2.vertexCount)); - this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t2, r2, i2, n2); - } - } - function $o(t2, e2) { - return t2.x === e2.x && (t2.x < 0 || t2.x > qa) || t2.y === e2.y && (t2.y < 0 || t2.y > qa); - } - function Ro(t2) { - return t2.every((t3) => t3.x < 0) || t2.every((t3) => t3.x > qa) || t2.every((t3) => t3.y < 0) || t2.every((t3) => t3.y > qa); - } - Mn("FillExtrusionBucket", Do, { omit: ["layers", "features"] }); - var Oo = { paint: new fi({ "fill-extrusion-opacity": new li(nt["paint_fill-extrusion"]["fill-extrusion-opacity"]), "fill-extrusion-color": new ui(nt["paint_fill-extrusion"]["fill-extrusion-color"]), "fill-extrusion-translate": new li(nt["paint_fill-extrusion"]["fill-extrusion-translate"]), "fill-extrusion-translate-anchor": new li(nt["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]), "fill-extrusion-pattern": new ci(nt["paint_fill-extrusion"]["fill-extrusion-pattern"]), "fill-extrusion-height": new ui(nt["paint_fill-extrusion"]["fill-extrusion-height"]), "fill-extrusion-base": new ui(nt["paint_fill-extrusion"]["fill-extrusion-base"]), "fill-extrusion-vertical-gradient": new li(nt["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"]) }) }; - function Uo(t2, e2) { + a3.push(v3), o3.push(g2); + } + return [a3, o3]; + }(n2, c3, p3, u2); + return function(t4, e4, r3) { + var n3 = 1 / 0; + Ga(r3, e4) && (n3 = Es(r3, e4[0])); + for (var i2 = 0; i2 < e4.length; i2++) + for (var a3 = e4[i2], o3 = t4[i2], s3 = 0; s3 < a3.length - 1; s3++) { + var u3 = a3[s3], l3 = [u3, a3[s3 + 1], o3[s3 + 1], o3[s3], u3]; + Na(r3, l3) && (n3 = Math.min(n3, Es(r3, l3))); + } + return n3 !== 1 / 0 && n3; + }(f2[0], f2[1], h3); + }, e2; + }(_i); + function Cs(t2, e2) { return t2.x * e2.x + t2.y * e2.y; } - function qo(t2, e2) { + function Es(t2, e2) { if (1 === t2.length) { - let r2 = 0; - const n2 = e2[r2++]; - let i2; - for (; !i2 || n2.equals(i2); ) - if (i2 = e2[r2++], !i2) + for (var r2, n2 = 0, i2 = e2[n2++]; !r2 || i2.equals(r2); ) + if (!(r2 = e2[n2++])) return 1 / 0; - for (; r2 < e2.length; r2++) { - const a2 = e2[r2], s2 = t2[0], o2 = i2.sub(n2), l2 = a2.sub(n2), u2 = s2.sub(n2), c3 = Uo(o2, o2), h3 = Uo(o2, l2), p3 = Uo(l2, l2), f2 = Uo(u2, o2), d2 = Uo(u2, l2), y3 = c3 * p3 - h3 * h3, m2 = (p3 * f2 - h3 * d2) / y3, g2 = (c3 * d2 - h3 * f2) / y3, x2 = n2.z * (1 - m2 - g2) + i2.z * m2 + a2.z * g2; - if (isFinite(x2)) - return x2; + for (; n2 < e2.length; n2++) { + var a2 = e2[n2], o2 = t2[0], s2 = r2.sub(i2), u2 = a2.sub(i2), l2 = o2.sub(i2), p3 = Cs(s2, s2), c3 = Cs(s2, u2), h3 = Cs(u2, u2), f2 = Cs(l2, s2), y3 = Cs(l2, u2), d2 = p3 * h3 - c3 * c3, m2 = (h3 * f2 - c3 * y3) / d2, v3 = (p3 * y3 - c3 * f2) / d2, g2 = i2.z * (1 - m2 - v3) + r2.z * m2 + a2.z * v3; + if (isFinite(g2)) + return g2; } return 1 / 0; } - { - let t3 = 1 / 0; - for (const r2 of e2) - t3 = Math.min(t3, r2.z); - return t3; - } - } - const jo = vi([{ name: "a_pos_normal", components: 2, type: "Int16" }, { name: "a_data", components: 4, type: "Uint8" }], 4), { members: No } = jo, Zo = vi([{ name: "a_uv_x", components: 1, type: "Float32" }, { name: "a_split_index", components: 1, type: "Float32" }]), { members: Ko } = Zo, Go = _o.VectorTileFeature.types, Jo = Math.cos(Math.PI / 180 * 37.5), Xo = Math.pow(2, 14) / 0.5; - class Yo { - constructor(t2) { - this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map((t3) => t3.id), this.index = t2.index, this.hasPattern = false, this.patternFeatures = [], this.lineClipsArray = [], this.gradients = {}, this.layers.forEach((t3) => { - this.gradients[t3.id] = {}; - }), this.layoutVertexArray = new na(), this.layoutVertexArray2 = new ia(), this.indexArray = new ha(), this.programConfigurations = new Ra(t2.layers, t2.zoom), this.segments = new ya(), this.maxLineLength = 0, this.stateDependentLayerIds = this.layers.filter((t3) => t3.isStateDependent()).map((t3) => t3.id); + for (var x2 = 1 / 0, b2 = 0, w2 = e2; b2 < w2.length; b2 += 1) + x2 = Math.min(x2, w2[b2].z); + return x2; + } + var Ps = Ii([{ name: "a_pos_normal", components: 2, type: "Int16" }, { name: "a_data", components: 4, type: "Uint8" }], 4).members, Ms = Ii([{ name: "a_uv_x", components: 1, type: "Float32" }, { name: "a_split_index", components: 1, type: "Float32" }]).members, Bs = bs.VectorTileFeature.types, Ts = Math.cos(Math.PI / 180 * 37.5), Vs = Math.pow(2, 14) / 0.5, Fs = function(t2) { + var e2 = this; + this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map(function(t3) { + return t3.id; + }), this.index = t2.index, this.hasPattern = false, this.patternFeatures = [], this.lineClipsArray = [], this.gradients = {}, this.layers.forEach(function(t3) { + e2.gradients[t3.id] = {}; + }), this.layoutVertexArray = new Mi(), this.layoutVertexArray2 = new Bi(), this.indexArray = new ji(), this.programConfigurations = new Va(t2.layers, t2.zoom), this.segments = new sa(), this.maxLineLength = 0, this.stateDependentLayerIds = this.layers.filter(function(t3) { + return t3.isStateDependent(); + }).map(function(t3) { + return t3.id; + }); + }; + Fs.prototype.populate = function(t2, e2, r2) { + this.hasPattern = as("line", this.layers, e2); + for (var n2 = this.layers[0].layout.get("line-sort-key"), i2 = [], a2 = 0, o2 = t2; a2 < o2.length; a2 += 1) { + var s2 = o2[a2], u2 = s2.feature, l2 = s2.id, p3 = s2.index, c3 = s2.sourceLayerIndex, h3 = this.layers[0]._featureFilter.needGeometry, f2 = Ua(u2, h3); + if (this.layers[0]._featureFilter.filter(new si(this.zoom), f2, r2)) { + var y3 = n2 ? n2.evaluate(f2, {}, r2) : void 0, d2 = { id: l2, properties: u2.properties, type: u2.type, sourceLayerIndex: c3, index: p3, geometry: h3 ? f2.geometry : Ra(u2), patterns: {}, sortKey: y3 }; + i2.push(d2); + } } - populate(t2, e2, r2) { - this.hasPattern = fo("line", this.layers, e2); - const n2 = this.layers[0].layout.get("line-sort-key"), i2 = !n2.isConstant(), a2 = []; - for (const { feature: e3, id: s2, index: o2, sourceLayerIndex: l2 } of t2) { - const t3 = this.layers[0]._featureFilter.needGeometry, u2 = Ka(e3, t3); - if (!this.layers[0]._featureFilter.filter(new Qn(this.zoom), u2, r2)) - continue; - const c3 = i2 ? n2.evaluate(u2, {}, r2) : void 0, h3 = { id: s2, properties: e3.properties, type: e3.type, sourceLayerIndex: l2, index: o2, geometry: t3 ? u2.geometry : Za(e3), patterns: {}, sortKey: c3 }; - a2.push(h3); - } - i2 && a2.sort((t3, e3) => t3.sortKey - e3.sortKey); - for (const n3 of a2) { - const { geometry: i3, index: a3, sourceLayerIndex: s2 } = n3; - if (this.hasPattern) { - const t3 = yo("line", this.layers, n3, this.zoom, e2); - this.patternFeatures.push(t3); - } else - this.addFeature(n3, i3, a3, r2, {}); - e2.featureIndex.insert(t2[a3].feature, i3, a3, s2, this.index); - } - } - update(t2, e2, r2) { - this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t2, e2, this.stateDependentLayers, r2); - } - addFeatures(t2, e2, r2) { - for (const t3 of this.patternFeatures) - this.addFeature(t3, t3.geometry, t3.index, e2, r2); - } - isEmpty() { - return 0 === this.layoutVertexArray.length; - } - uploadPending() { - return !this.uploaded || this.programConfigurations.needsUpload; - } - upload(t2) { - this.uploaded || (0 !== this.layoutVertexArray2.length && (this.layoutVertexBuffer2 = t2.createVertexBuffer(this.layoutVertexArray2, Ko)), this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, No), this.indexBuffer = t2.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t2), this.uploaded = true; - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy()); - } - lineFeatureClips(t2) { - if (t2.properties && Object.prototype.hasOwnProperty.call(t2.properties, "mapbox_clip_start") && Object.prototype.hasOwnProperty.call(t2.properties, "mapbox_clip_end")) - return { start: +t2.properties.mapbox_clip_start, end: +t2.properties.mapbox_clip_end }; - } - addFeature(t2, e2, r2, n2, i2) { - const a2 = this.layers[0].layout, s2 = a2.get("line-join").evaluate(t2, {}), o2 = a2.get("line-cap"), l2 = a2.get("line-miter-limit"), u2 = a2.get("line-round-limit"); - this.lineClips = this.lineFeatureClips(t2); - for (const r3 of e2) - this.addLine(r3, t2, s2, o2, l2, u2); - this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t2, r2, i2, n2); - } - addLine(t2, e2, r2, n2, i2, a2) { - if (this.distance = 0, this.scaledDistance = 0, this.totalDistance = 0, this.lineClips) { - this.lineClipsArray.push(this.lineClips); - for (let e3 = 0; e3 < t2.length - 1; e3++) - this.totalDistance += t2[e3].dist(t2[e3 + 1]); - this.updateScaledDistance(), this.maxLineLength = Math.max(this.maxLineLength, this.totalDistance); - } - const s2 = "Polygon" === Go[e2.type]; - let o2 = t2.length; - for (; o2 >= 2 && t2[o2 - 1].equals(t2[o2 - 2]); ) - o2--; - let l2 = 0; - for (; l2 < o2 - 1 && t2[l2].equals(t2[l2 + 1]); ) - l2++; - if (o2 < (s2 ? 3 : 2)) - return; + n2 && i2.sort(function(t3, e3) { + return t3.sortKey - e3.sortKey; + }); + for (var m2 = 0, v3 = i2; m2 < v3.length; m2 += 1) { + var g2 = v3[m2], x2 = g2.geometry, b2 = g2.index, w2 = g2.sourceLayerIndex; + if (this.hasPattern) { + var _24 = os("line", this.layers, g2, this.zoom, e2); + this.patternFeatures.push(_24); + } else + this.addFeature(g2, x2, b2, r2, {}); + e2.featureIndex.insert(t2[b2].feature, x2, b2, w2, this.index); + } + }, Fs.prototype.update = function(t2, e2, r2) { + this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t2, e2, this.stateDependentLayers, r2); + }, Fs.prototype.addFeatures = function(t2, e2, r2) { + for (var n2 = 0, i2 = this.patternFeatures; n2 < i2.length; n2 += 1) { + var a2 = i2[n2]; + this.addFeature(a2, a2.geometry, a2.index, e2, r2); + } + }, Fs.prototype.isEmpty = function() { + return 0 === this.layoutVertexArray.length; + }, Fs.prototype.uploadPending = function() { + return !this.uploaded || this.programConfigurations.needsUpload; + }, Fs.prototype.upload = function(t2) { + this.uploaded || (0 !== this.layoutVertexArray2.length && (this.layoutVertexBuffer2 = t2.createVertexBuffer(this.layoutVertexArray2, Ms)), this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, Ps), this.indexBuffer = t2.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t2), this.uploaded = true; + }, Fs.prototype.destroy = function() { + this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy()); + }, Fs.prototype.lineFeatureClips = function(t2) { + if (t2.properties && t2.properties.hasOwnProperty("mapbox_clip_start") && t2.properties.hasOwnProperty("mapbox_clip_end")) + return { start: +t2.properties.mapbox_clip_start, end: +t2.properties.mapbox_clip_end }; + }, Fs.prototype.addFeature = function(t2, e2, r2, n2, i2) { + var a2 = this.layers[0].layout, o2 = a2.get("line-join").evaluate(t2, {}), s2 = a2.get("line-cap"), u2 = a2.get("line-miter-limit"), l2 = a2.get("line-round-limit"); + this.lineClips = this.lineFeatureClips(t2); + for (var p3 = 0, c3 = e2; p3 < c3.length; p3 += 1) + this.addLine(c3[p3], t2, o2, s2, u2, l2); + this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t2, r2, i2, n2); + }, Fs.prototype.addLine = function(t2, e2, r2, n2, i2, a2) { + if (this.distance = 0, this.scaledDistance = 0, this.totalDistance = 0, this.lineClips) { + this.lineClipsArray.push(this.lineClips); + for (var o2 = 0; o2 < t2.length - 1; o2++) + this.totalDistance += t2[o2].dist(t2[o2 + 1]); + this.updateScaledDistance(), this.maxLineLength = Math.max(this.maxLineLength, this.totalDistance); + } + for (var s2 = "Polygon" === Bs[e2.type], u2 = t2.length; u2 >= 2 && t2[u2 - 1].equals(t2[u2 - 2]); ) + u2--; + for (var l2 = 0; l2 < u2 - 1 && t2[l2].equals(t2[l2 + 1]); ) + l2++; + if (!(u2 < (s2 ? 3 : 2))) { "bevel" === r2 && (i2 = 1.05); - const u2 = this.overscaling <= 16 ? 122880 / (512 * this.overscaling) : 0, c3 = this.segments.prepareSegment(10 * o2, this.layoutVertexArray, this.indexArray); - let h3, p3, f2, d2, y3; - this.e1 = this.e2 = -1, s2 && (h3 = t2[o2 - 2], y3 = t2[l2].sub(h3)._unit()._perp()); - for (let e3 = l2; e3 < o2; e3++) { - if (f2 = e3 === o2 - 1 ? s2 ? t2[l2 + 1] : void 0 : t2[e3 + 1], f2 && t2[e3].equals(f2)) - continue; - y3 && (d2 = y3), h3 && (p3 = h3), h3 = t2[e3], y3 = f2 ? f2.sub(h3)._unit()._perp() : d2, d2 = d2 || y3; - let m2 = d2.add(y3); - 0 === m2.x && 0 === m2.y || m2._unit(); - const g2 = d2.x * y3.x + d2.y * y3.y, x2 = m2.x * y3.x + m2.y * y3.y, v3 = 0 !== x2 ? 1 / x2 : 1 / 0, b2 = 2 * Math.sqrt(2 - 2 * x2), w2 = x2 < Jo && p3 && f2, _24 = d2.x * y3.y - d2.y * y3.x > 0; - if (w2 && e3 > l2) { - const t3 = h3.dist(p3); - if (t3 > 2 * u2) { - const e4 = h3.sub(h3.sub(p3)._mult(u2 / t3)._round()); - this.updateDistance(p3, e4), this.addCurrentVertex(e4, d2, 0, 0, c3), p3 = e4; - } - } - const A3 = p3 && f2; - let k2 = A3 ? r2 : s2 ? "butt" : n2; - if (A3 && "round" === k2 && (v3 < a2 ? k2 = "miter" : v3 <= 2 && (k2 = "fakeround")), "miter" === k2 && v3 > i2 && (k2 = "bevel"), "bevel" === k2 && (v3 > 2 && (k2 = "flipbevel"), v3 < i2 && (k2 = "miter")), p3 && this.updateDistance(p3, h3), "miter" === k2) - m2._mult(v3), this.addCurrentVertex(h3, m2, 0, 0, c3); - else if ("flipbevel" === k2) { - if (v3 > 100) - m2 = y3.mult(-1); - else { - const t3 = v3 * d2.add(y3).mag() / d2.sub(y3).mag(); - m2._perp()._mult(t3 * (_24 ? -1 : 1)); + var p3, c3 = this.overscaling <= 16 ? 122880 / (512 * this.overscaling) : 0, h3 = this.segments.prepareSegment(10 * u2, this.layoutVertexArray, this.indexArray), f2 = void 0, y3 = void 0, d2 = void 0, m2 = void 0; + this.e1 = this.e2 = -1, s2 && (m2 = t2[l2].sub(p3 = t2[u2 - 2])._unit()._perp()); + for (var v3 = l2; v3 < u2; v3++) + if (!(y3 = v3 === u2 - 1 ? s2 ? t2[l2 + 1] : void 0 : t2[v3 + 1]) || !t2[v3].equals(y3)) { + m2 && (d2 = m2), p3 && (f2 = p3), p3 = t2[v3], m2 = y3 ? y3.sub(p3)._unit()._perp() : d2; + var g2 = (d2 = d2 || m2).add(m2); + 0 === g2.x && 0 === g2.y || g2._unit(); + var x2 = d2.x * m2.x + d2.y * m2.y, b2 = g2.x * m2.x + g2.y * m2.y, w2 = 0 !== b2 ? 1 / b2 : 1 / 0, _24 = 2 * Math.sqrt(2 - 2 * b2), A3 = b2 < Ts && f2 && y3, S2 = d2.x * m2.y - d2.y * m2.x > 0; + if (A3 && v3 > l2) { + var k2 = p3.dist(f2); + if (k2 > 2 * c3) { + var I3 = p3.sub(p3.sub(f2)._mult(c3 / k2)._round()); + this.updateDistance(f2, I3), this.addCurrentVertex(I3, d2, 0, 0, h3), f2 = I3; + } } - this.addCurrentVertex(h3, m2, 0, 0, c3), this.addCurrentVertex(h3, m2.mult(-1), 0, 0, c3); - } else if ("bevel" === k2 || "fakeround" === k2) { - const t3 = -Math.sqrt(v3 * v3 - 1), e4 = _24 ? t3 : 0, r3 = _24 ? 0 : t3; - if (p3 && this.addCurrentVertex(h3, d2, e4, r3, c3), "fakeround" === k2) { - const t4 = Math.round(180 * b2 / Math.PI / 20); - for (let e5 = 1; e5 < t4; e5++) { - let r4 = e5 / t4; - if (0.5 !== r4) { - const t5 = r4 - 0.5; - r4 += r4 * t5 * (r4 - 1) * ((1.0904 + g2 * (g2 * (3.55645 - 1.43519 * g2) - 3.2452)) * t5 * t5 + (0.848013 + g2 * (0.215638 * g2 - 1.06021))); + var z2 = f2 && y3, C2 = z2 ? r2 : s2 ? "butt" : n2; + if (z2 && "round" === C2 && (w2 < a2 ? C2 = "miter" : w2 <= 2 && (C2 = "fakeround")), "miter" === C2 && w2 > i2 && (C2 = "bevel"), "bevel" === C2 && (w2 > 2 && (C2 = "flipbevel"), w2 < i2 && (C2 = "miter")), f2 && this.updateDistance(f2, p3), "miter" === C2) + g2._mult(w2), this.addCurrentVertex(p3, g2, 0, 0, h3); + else if ("flipbevel" === C2) { + if (w2 > 100) + g2 = m2.mult(-1); + else { + var E2 = w2 * d2.add(m2).mag() / d2.sub(m2).mag(); + g2._perp()._mult(E2 * (S2 ? -1 : 1)); + } + this.addCurrentVertex(p3, g2, 0, 0, h3), this.addCurrentVertex(p3, g2.mult(-1), 0, 0, h3); + } else if ("bevel" === C2 || "fakeround" === C2) { + var P2 = -Math.sqrt(w2 * w2 - 1), M2 = S2 ? P2 : 0, B2 = S2 ? 0 : P2; + if (f2 && this.addCurrentVertex(p3, d2, M2, B2, h3), "fakeround" === C2) + for (var T2 = Math.round(180 * _24 / Math.PI / 20), V3 = 1; V3 < T2; V3++) { + var F2 = V3 / T2; + if (0.5 !== F2) { + var D2 = F2 - 0.5; + F2 += F2 * D2 * (F2 - 1) * ((1.0904 + x2 * (x2 * (3.55645 - 1.43519 * x2) - 3.2452)) * D2 * D2 + (0.848013 + x2 * (0.215638 * x2 - 1.06021))); + } + var L2 = m2.sub(d2)._mult(F2)._add(d2)._unit()._mult(S2 ? -1 : 1); + this.addHalfVertex(p3, L2.x, L2.y, false, S2, 0, h3); } - const n3 = y3.sub(d2)._mult(r4)._add(d2)._unit()._mult(_24 ? -1 : 1); - this.addHalfVertex(h3, n3.x, n3.y, false, _24, 0, c3); + y3 && this.addCurrentVertex(p3, m2, -M2, -B2, h3); + } else if ("butt" === C2) + this.addCurrentVertex(p3, g2, 0, 0, h3); + else if ("square" === C2) { + var O3 = f2 ? 1 : -1; + this.addCurrentVertex(p3, g2, O3, O3, h3); + } else + "round" === C2 && (f2 && (this.addCurrentVertex(p3, d2, 0, 0, h3), this.addCurrentVertex(p3, d2, 1, 1, h3, true)), y3 && (this.addCurrentVertex(p3, m2, -1, -1, h3, true), this.addCurrentVertex(p3, m2, 0, 0, h3))); + if (A3 && v3 < u2 - 1) { + var R2 = p3.dist(y3); + if (R2 > 2 * c3) { + var U2 = p3.add(y3.sub(p3)._mult(c3 / R2)._round()); + this.updateDistance(p3, U2), this.addCurrentVertex(U2, m2, 0, 0, h3), p3 = U2; } } - f2 && this.addCurrentVertex(h3, y3, -e4, -r3, c3); - } else if ("butt" === k2) - this.addCurrentVertex(h3, m2, 0, 0, c3); - else if ("square" === k2) { - const t3 = p3 ? 1 : -1; - this.addCurrentVertex(h3, m2, t3, t3, c3); - } else - "round" === k2 && (p3 && (this.addCurrentVertex(h3, d2, 0, 0, c3), this.addCurrentVertex(h3, d2, 1, 1, c3, true)), f2 && (this.addCurrentVertex(h3, y3, -1, -1, c3, true), this.addCurrentVertex(h3, y3, 0, 0, c3))); - if (w2 && e3 < o2 - 1) { - const t3 = h3.dist(f2); - if (t3 > 2 * u2) { - const e4 = h3.add(f2.sub(h3)._mult(u2 / t3)._round()); - this.updateDistance(h3, e4), this.addCurrentVertex(e4, y3, 0, 0, c3), h3 = e4; - } } - } - } - addCurrentVertex(t2, e2, r2, n2, i2, a2 = false) { - const s2 = e2.y * n2 - e2.x, o2 = -e2.y - e2.x * n2; - this.addHalfVertex(t2, e2.x + e2.y * r2, e2.y - e2.x * r2, a2, false, r2, i2), this.addHalfVertex(t2, s2, o2, a2, true, -n2, i2), this.distance > Xo / 2 && 0 === this.totalDistance && (this.distance = 0, this.addCurrentVertex(t2, e2, r2, n2, i2, a2)); } - addHalfVertex({ x: t2, y: e2 }, r2, n2, i2, a2, s2, o2) { - const l2 = 0.5 * (this.lineClips ? this.scaledDistance * (Xo - 1) : this.scaledDistance); - this.layoutVertexArray.emplaceBack((t2 << 1) + (i2 ? 1 : 0), (e2 << 1) + (a2 ? 1 : 0), Math.round(63 * r2) + 128, Math.round(63 * n2) + 128, 1 + (0 === s2 ? 0 : s2 < 0 ? -1 : 1) | (63 & l2) << 2, l2 >> 6), this.lineClips && this.layoutVertexArray2.emplaceBack((this.scaledDistance - this.lineClips.start) / (this.lineClips.end - this.lineClips.start), this.lineClipsArray.length); - const u2 = o2.vertexLength++; - this.e1 >= 0 && this.e2 >= 0 && (this.indexArray.emplaceBack(this.e1, this.e2, u2), o2.primitiveLength++), a2 ? this.e2 = u2 : this.e1 = u2; - } - updateScaledDistance() { - this.scaledDistance = this.lineClips ? this.lineClips.start + (this.lineClips.end - this.lineClips.start) * this.distance / this.totalDistance : this.distance; - } - updateDistance(t2, e2) { - this.distance += t2.dist(e2), this.updateScaledDistance(); - } - } - Mn("LineBucket", Yo, { omit: ["layers", "patternFeatures"] }); - const Ho = new fi({ "line-cap": new li(nt.layout_line["line-cap"]), "line-join": new ui(nt.layout_line["line-join"]), "line-miter-limit": new li(nt.layout_line["line-miter-limit"]), "line-round-limit": new li(nt.layout_line["line-round-limit"]), "line-sort-key": new ui(nt.layout_line["line-sort-key"]) }); - var Wo = { paint: new fi({ "line-opacity": new ui(nt.paint_line["line-opacity"]), "line-color": new ui(nt.paint_line["line-color"]), "line-translate": new li(nt.paint_line["line-translate"]), "line-translate-anchor": new li(nt.paint_line["line-translate-anchor"]), "line-width": new ui(nt.paint_line["line-width"]), "line-gap-width": new ui(nt.paint_line["line-gap-width"]), "line-offset": new ui(nt.paint_line["line-offset"]), "line-blur": new ui(nt.paint_line["line-blur"]), "line-dasharray": new hi(nt.paint_line["line-dasharray"]), "line-pattern": new ci(nt.paint_line["line-pattern"]), "line-gradient": new pi(nt.paint_line["line-gradient"]) }), layout: Ho }; - const Qo = new class extends ui { - possiblyEvaluate(t2, e2) { - return e2 = new Qn(Math.floor(e2.zoom), { now: e2.now, fadeDuration: e2.fadeDuration, zoomHistory: e2.zoomHistory, transition: e2.transition }), super.possiblyEvaluate(t2, e2); - } - evaluate(t2, e2, r2, n2) { - return e2 = o({}, e2, { zoom: Math.floor(e2.zoom) }), super.evaluate(t2, e2, r2, n2); - } - }(Wo.paint.properties["line-width"].specification); - function tl(t2, e2) { + }, Fs.prototype.addCurrentVertex = function(t2, e2, r2, n2, i2, a2) { + void 0 === a2 && (a2 = false); + var o2 = e2.y * n2 - e2.x, s2 = -e2.y - e2.x * n2; + this.addHalfVertex(t2, e2.x + e2.y * r2, e2.y - e2.x * r2, a2, false, r2, i2), this.addHalfVertex(t2, o2, s2, a2, true, -n2, i2), this.distance > Vs / 2 && 0 === this.totalDistance && (this.distance = 0, this.addCurrentVertex(t2, e2, r2, n2, i2, a2)); + }, Fs.prototype.addHalfVertex = function(t2, e2, r2, n2, i2, a2, o2) { + var s2 = 0.5 * (this.lineClips ? this.scaledDistance * (Vs - 1) : this.scaledDistance); + this.layoutVertexArray.emplaceBack((t2.x << 1) + (n2 ? 1 : 0), (t2.y << 1) + (i2 ? 1 : 0), Math.round(63 * e2) + 128, Math.round(63 * r2) + 128, 1 + (0 === a2 ? 0 : a2 < 0 ? -1 : 1) | (63 & s2) << 2, s2 >> 6), this.lineClips && this.layoutVertexArray2.emplaceBack((this.scaledDistance - this.lineClips.start) / (this.lineClips.end - this.lineClips.start), this.lineClipsArray.length); + var u2 = o2.vertexLength++; + this.e1 >= 0 && this.e2 >= 0 && (this.indexArray.emplaceBack(this.e1, this.e2, u2), o2.primitiveLength++), i2 ? this.e2 = u2 : this.e1 = u2; + }, Fs.prototype.updateScaledDistance = function() { + this.scaledDistance = this.lineClips ? this.lineClips.start + (this.lineClips.end - this.lineClips.start) * this.distance / this.totalDistance : this.distance; + }, Fs.prototype.updateDistance = function(t2, e2) { + this.distance += t2.dist(e2), this.updateScaledDistance(); + }, On("LineBucket", Fs, { omit: ["layers", "patternFeatures"] }); + var Ds = new wi({ "line-cap": new mi(Et.layout_line["line-cap"]), "line-join": new vi(Et.layout_line["line-join"]), "line-miter-limit": new mi(Et.layout_line["line-miter-limit"]), "line-round-limit": new mi(Et.layout_line["line-round-limit"]), "line-sort-key": new vi(Et.layout_line["line-sort-key"]) }), Ls = { paint: new wi({ "line-opacity": new vi(Et.paint_line["line-opacity"]), "line-color": new vi(Et.paint_line["line-color"]), "line-translate": new mi(Et.paint_line["line-translate"]), "line-translate-anchor": new mi(Et.paint_line["line-translate-anchor"]), "line-width": new vi(Et.paint_line["line-width"]), "line-gap-width": new vi(Et.paint_line["line-gap-width"]), "line-offset": new vi(Et.paint_line["line-offset"]), "line-blur": new vi(Et.paint_line["line-blur"]), "line-dasharray": new xi(Et.paint_line["line-dasharray"]), "line-pattern": new gi(Et.paint_line["line-pattern"]), "line-gradient": new bi(Et.paint_line["line-gradient"]) }), layout: Ds }, Os = new (function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.possiblyEvaluate = function(e3, r2) { + return r2 = new si(Math.floor(r2.zoom), { now: r2.now, fadeDuration: r2.fadeDuration, zoomHistory: r2.zoomHistory, transition: r2.transition }), t2.prototype.possiblyEvaluate.call(this, e3, r2); + }, e2.prototype.evaluate = function(e3, r2, n2, i2) { + return r2 = h2({}, r2, { zoom: Math.floor(r2.zoom) }), t2.prototype.evaluate.call(this, e3, r2, n2, i2); + }, e2; + }(vi))(Ls.paint.properties["line-width"].specification); + Os.useIntegerZoom = true; + var Rs = function(t2) { + function e2(e3) { + t2.call(this, e3, Ls), this.gradientVersion = 0; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._handleSpecialPaintPropertyUpdate = function(t3) { + "line-gradient" === t3 && (this.stepInterpolant = this._transitionablePaint._values["line-gradient"].value.expression._styleExpression.expression instanceof Ne, this.gradientVersion = (this.gradientVersion + 1) % s); + }, e2.prototype.gradientExpression = function() { + return this._transitionablePaint._values["line-gradient"].value.expression; + }, e2.prototype.recalculate = function(e3, r2) { + t2.prototype.recalculate.call(this, e3, r2), this.paint._values["line-floorwidth"] = Os.possiblyEvaluate(this._transitioningPaint._values["line-width"].value, e3); + }, e2.prototype.createBucket = function(t3) { + return new Fs(t3); + }, e2.prototype.queryRadius = function(t3) { + var e3 = t3, r2 = Us(to("line-width", this, e3), to("line-gap-width", this, e3)), n2 = to("line-offset", this, e3); + return r2 / 2 + Math.abs(n2) + eo(this.paint.get("line-translate")); + }, e2.prototype.queryIntersectsFeature = function(t3, e3, r2, n2, a2, o2, s2) { + var u2 = ro(t3, this.paint.get("line-translate"), this.paint.get("line-translate-anchor"), o2.angle, s2), l2 = s2 / 2 * Us(this.paint.get("line-width").evaluate(e3, r2), this.paint.get("line-gap-width").evaluate(e3, r2)), p3 = this.paint.get("line-offset").evaluate(e3, r2); + return p3 && (n2 = function(t4, e4) { + for (var r3 = [], n3 = new i(0, 0), a3 = 0; a3 < t4.length; a3++) { + for (var o3 = t4[a3], s3 = [], u3 = 0; u3 < o3.length; u3++) { + var l3 = o3[u3], p4 = o3[u3 + 1], c3 = 0 === u3 ? n3 : l3.sub(o3[u3 - 1])._unit()._perp(), h3 = u3 === o3.length - 1 ? n3 : p4.sub(l3)._unit()._perp(), f2 = c3._add(h3)._unit(); + f2._mult(1 / (f2.x * h3.x + f2.y * h3.y)), s3.push(f2._mult(e4)._add(l3)); + } + r3.push(s3); + } + return r3; + }(n2, p3 * s2)), function(t4, e4, r3) { + for (var n3 = 0; n3 < e4.length; n3++) { + var i2 = e4[n3]; + if (t4.length >= 3) { + for (var a3 = 0; a3 < i2.length; a3++) + if (Wa(t4, i2[a3])) + return true; + } + if (Za(t4, i2, r3)) + return true; + } + return false; + }(u2, n2, l2); + }, e2.prototype.isTileClipped = function() { + return true; + }, e2; + }(_i); + function Us(t2, e2) { return e2 > 0 ? e2 + 2 * t2 : t2; } - Qo.useIntegerZoom = true; - const el = vi([{ name: "a_pos_offset", components: 4, type: "Int16" }, { name: "a_data", components: 4, type: "Uint16" }, { name: "a_pixeloffset", components: 4, type: "Int16" }], 4), rl = vi([{ name: "a_projected_pos", components: 3, type: "Float32" }], 4); - vi([{ name: "a_fade_opacity", components: 1, type: "Uint32" }], 4); - const nl = vi([{ name: "a_placed", components: 2, type: "Uint8" }, { name: "a_shift", components: 2, type: "Float32" }]); - vi([{ type: "Int16", name: "anchorPointX" }, { type: "Int16", name: "anchorPointY" }, { type: "Int16", name: "x1" }, { type: "Int16", name: "y1" }, { type: "Int16", name: "x2" }, { type: "Int16", name: "y2" }, { type: "Uint32", name: "featureIndex" }, { type: "Uint16", name: "sourceLayerIndex" }, { type: "Uint16", name: "bucketIndex" }]); - const il = vi([{ name: "a_pos", components: 2, type: "Int16" }, { name: "a_anchor_pos", components: 2, type: "Int16" }, { name: "a_extrude", components: 2, type: "Int16" }], 4), al = vi([{ name: "a_pos", components: 2, type: "Float32" }, { name: "a_radius", components: 1, type: "Float32" }, { name: "a_flags", components: 2, type: "Int16" }], 4); - function sl(t2, e2, r2) { - return t2.sections.forEach((t3) => { + var js = Ii([{ name: "a_pos_offset", components: 4, type: "Int16" }, { name: "a_data", components: 4, type: "Uint16" }, { name: "a_pixeloffset", components: 4, type: "Int16" }], 4), qs = Ii([{ name: "a_projected_pos", components: 3, type: "Float32" }], 4), Ns = (Ii([{ name: "a_fade_opacity", components: 1, type: "Uint32" }], 4), Ii([{ name: "a_placed", components: 2, type: "Uint8" }, { name: "a_shift", components: 2, type: "Float32" }])), Ks = (Ii([{ type: "Int16", name: "anchorPointX" }, { type: "Int16", name: "anchorPointY" }, { type: "Int16", name: "x1" }, { type: "Int16", name: "y1" }, { type: "Int16", name: "x2" }, { type: "Int16", name: "y2" }, { type: "Uint32", name: "featureIndex" }, { type: "Uint16", name: "sourceLayerIndex" }, { type: "Uint16", name: "bucketIndex" }]), Ii([{ name: "a_pos", components: 2, type: "Int16" }, { name: "a_anchor_pos", components: 2, type: "Int16" }, { name: "a_extrude", components: 2, type: "Int16" }], 4)), Gs = Ii([{ name: "a_pos", components: 2, type: "Float32" }, { name: "a_radius", components: 1, type: "Float32" }, { name: "a_flags", components: 2, type: "Int16" }], 4); + function Zs(t2, e2, r2) { + return t2.sections.forEach(function(t3) { t3.text = function(t4, e3, r3) { - const n2 = e3.layout.get("text-transform").evaluate(r3, {}); - return "uppercase" === n2 ? t4 = t4.toLocaleUpperCase() : "lowercase" === n2 && (t4 = t4.toLocaleLowerCase()), Wn.applyArabicShaping && (t4 = Wn.applyArabicShaping(t4)), t4; + var n2 = e3.layout.get("text-transform").evaluate(r3, {}); + return "uppercase" === n2 ? t4 = t4.toLocaleUpperCase() : "lowercase" === n2 && (t4 = t4.toLocaleLowerCase()), oi.applyArabicShaping && (t4 = oi.applyArabicShaping(t4)), t4; }(t3.text, e2, r2); }), t2; } - vi([{ name: "triangle", components: 3, type: "Uint16" }]), vi([{ type: "Int16", name: "anchorX" }, { type: "Int16", name: "anchorY" }, { type: "Uint16", name: "glyphStartIndex" }, { type: "Uint16", name: "numGlyphs" }, { type: "Uint32", name: "vertexStartIndex" }, { type: "Uint32", name: "lineStartIndex" }, { type: "Uint32", name: "lineLength" }, { type: "Uint16", name: "segment" }, { type: "Uint16", name: "lowerSize" }, { type: "Uint16", name: "upperSize" }, { type: "Float32", name: "lineOffsetX" }, { type: "Float32", name: "lineOffsetY" }, { type: "Uint8", name: "writingMode" }, { type: "Uint8", name: "placedOrientation" }, { type: "Uint8", name: "hidden" }, { type: "Uint32", name: "crossTileID" }, { type: "Int16", name: "associatedIconIndex" }]), vi([{ type: "Int16", name: "anchorX" }, { type: "Int16", name: "anchorY" }, { type: "Int16", name: "rightJustifiedTextSymbolIndex" }, { type: "Int16", name: "centerJustifiedTextSymbolIndex" }, { type: "Int16", name: "leftJustifiedTextSymbolIndex" }, { type: "Int16", name: "verticalPlacedTextSymbolIndex" }, { type: "Int16", name: "placedIconSymbolIndex" }, { type: "Int16", name: "verticalPlacedIconSymbolIndex" }, { type: "Uint16", name: "key" }, { type: "Uint16", name: "textBoxStartIndex" }, { type: "Uint16", name: "textBoxEndIndex" }, { type: "Uint16", name: "verticalTextBoxStartIndex" }, { type: "Uint16", name: "verticalTextBoxEndIndex" }, { type: "Uint16", name: "iconBoxStartIndex" }, { type: "Uint16", name: "iconBoxEndIndex" }, { type: "Uint16", name: "verticalIconBoxStartIndex" }, { type: "Uint16", name: "verticalIconBoxEndIndex" }, { type: "Uint16", name: "featureIndex" }, { type: "Uint16", name: "numHorizontalGlyphVertices" }, { type: "Uint16", name: "numVerticalGlyphVertices" }, { type: "Uint16", name: "numIconVertices" }, { type: "Uint16", name: "numVerticalIconVertices" }, { type: "Uint16", name: "useRuntimeCollisionCircles" }, { type: "Uint32", name: "crossTileID" }, { type: "Float32", name: "textBoxScale" }, { type: "Float32", components: 2, name: "textOffset" }, { type: "Float32", name: "collisionCircleDiameter" }]), vi([{ type: "Float32", name: "offsetX" }]), vi([{ type: "Int16", name: "x" }, { type: "Int16", name: "y" }, { type: "Int16", name: "tileUnitDistanceFromAnchor" }]); - const ol = { "!": "\uFE15", "#": "\uFF03", $: "\uFF04", "%": "\uFF05", "&": "\uFF06", "(": "\uFE35", ")": "\uFE36", "*": "\uFF0A", "+": "\uFF0B", ",": "\uFE10", "-": "\uFE32", ".": "\u30FB", "/": "\uFF0F", ":": "\uFE13", ";": "\uFE14", "<": "\uFE3F", "=": "\uFF1D", ">": "\uFE40", "?": "\uFE16", "@": "\uFF20", "[": "\uFE47", "\\": "\uFF3C", "]": "\uFE48", "^": "\uFF3E", _: "\uFE33", "`": "\uFF40", "{": "\uFE37", "|": "\u2015", "}": "\uFE38", "~": "\uFF5E", "\xA2": "\uFFE0", "\xA3": "\uFFE1", "\xA5": "\uFFE5", "\xA6": "\uFFE4", "\xAC": "\uFFE2", "\xAF": "\uFFE3", "\u2013": "\uFE32", "\u2014": "\uFE31", "\u2018": "\uFE43", "\u2019": "\uFE44", "\u201C": "\uFE41", "\u201D": "\uFE42", "\u2026": "\uFE19", "\u2027": "\u30FB", "\u20A9": "\uFFE6", "\u3001": "\uFE11", "\u3002": "\uFE12", "\u3008": "\uFE3F", "\u3009": "\uFE40", "\u300A": "\uFE3D", "\u300B": "\uFE3E", "\u300C": "\uFE41", "\u300D": "\uFE42", "\u300E": "\uFE43", "\u300F": "\uFE44", "\u3010": "\uFE3B", "\u3011": "\uFE3C", "\u3014": "\uFE39", "\u3015": "\uFE3A", "\u3016": "\uFE17", "\u3017": "\uFE18", "\uFF01": "\uFE15", "\uFF08": "\uFE35", "\uFF09": "\uFE36", "\uFF0C": "\uFE10", "\uFF0D": "\uFE32", "\uFF0E": "\u30FB", "\uFF1A": "\uFE13", "\uFF1B": "\uFE14", "\uFF1C": "\uFE3F", "\uFF1E": "\uFE40", "\uFF1F": "\uFE16", "\uFF3B": "\uFE47", "\uFF3D": "\uFE48", "\uFF3F": "\uFE33", "\uFF5B": "\uFE37", "\uFF5C": "\u2015", "\uFF5D": "\uFE38", "\uFF5F": "\uFE35", "\uFF60": "\uFE36", "\uFF61": "\uFE12", "\uFF62": "\uFE41", "\uFF63": "\uFE42" }; - var ll = 24, ul = pl, cl = function(t2, e2, r2, n2, i2) { - var a2, s2, o2 = 8 * i2 - n2 - 1, l2 = (1 << o2) - 1, u2 = l2 >> 1, c3 = -7, h3 = r2 ? i2 - 1 : 0, p3 = r2 ? -1 : 1, f2 = t2[e2 + h3]; - for (h3 += p3, a2 = f2 & (1 << -c3) - 1, f2 >>= -c3, c3 += o2; c3 > 0; a2 = 256 * a2 + t2[e2 + h3], h3 += p3, c3 -= 8) + Ii([{ name: "triangle", components: 3, type: "Uint16" }]), Ii([{ type: "Int16", name: "anchorX" }, { type: "Int16", name: "anchorY" }, { type: "Uint16", name: "glyphStartIndex" }, { type: "Uint16", name: "numGlyphs" }, { type: "Uint32", name: "vertexStartIndex" }, { type: "Uint32", name: "lineStartIndex" }, { type: "Uint32", name: "lineLength" }, { type: "Uint16", name: "segment" }, { type: "Uint16", name: "lowerSize" }, { type: "Uint16", name: "upperSize" }, { type: "Float32", name: "lineOffsetX" }, { type: "Float32", name: "lineOffsetY" }, { type: "Uint8", name: "writingMode" }, { type: "Uint8", name: "placedOrientation" }, { type: "Uint8", name: "hidden" }, { type: "Uint32", name: "crossTileID" }, { type: "Int16", name: "associatedIconIndex" }]), Ii([{ type: "Int16", name: "anchorX" }, { type: "Int16", name: "anchorY" }, { type: "Int16", name: "rightJustifiedTextSymbolIndex" }, { type: "Int16", name: "centerJustifiedTextSymbolIndex" }, { type: "Int16", name: "leftJustifiedTextSymbolIndex" }, { type: "Int16", name: "verticalPlacedTextSymbolIndex" }, { type: "Int16", name: "placedIconSymbolIndex" }, { type: "Int16", name: "verticalPlacedIconSymbolIndex" }, { type: "Uint16", name: "key" }, { type: "Uint16", name: "textBoxStartIndex" }, { type: "Uint16", name: "textBoxEndIndex" }, { type: "Uint16", name: "verticalTextBoxStartIndex" }, { type: "Uint16", name: "verticalTextBoxEndIndex" }, { type: "Uint16", name: "iconBoxStartIndex" }, { type: "Uint16", name: "iconBoxEndIndex" }, { type: "Uint16", name: "verticalIconBoxStartIndex" }, { type: "Uint16", name: "verticalIconBoxEndIndex" }, { type: "Uint16", name: "featureIndex" }, { type: "Uint16", name: "numHorizontalGlyphVertices" }, { type: "Uint16", name: "numVerticalGlyphVertices" }, { type: "Uint16", name: "numIconVertices" }, { type: "Uint16", name: "numVerticalIconVertices" }, { type: "Uint16", name: "useRuntimeCollisionCircles" }, { type: "Uint32", name: "crossTileID" }, { type: "Float32", name: "textBoxScale" }, { type: "Float32", components: 2, name: "textOffset" }, { type: "Float32", name: "collisionCircleDiameter" }]), Ii([{ type: "Float32", name: "offsetX" }]), Ii([{ type: "Int16", name: "x" }, { type: "Int16", name: "y" }, { type: "Int16", name: "tileUnitDistanceFromAnchor" }]); + var Xs = { "!": "\uFE15", "#": "\uFF03", $: "\uFF04", "%": "\uFF05", "&": "\uFF06", "(": "\uFE35", ")": "\uFE36", "*": "\uFF0A", "+": "\uFF0B", ",": "\uFE10", "-": "\uFE32", ".": "\u30FB", "/": "\uFF0F", ":": "\uFE13", ";": "\uFE14", "<": "\uFE3F", "=": "\uFF1D", ">": "\uFE40", "?": "\uFE16", "@": "\uFF20", "[": "\uFE47", "\\": "\uFF3C", "]": "\uFE48", "^": "\uFF3E", _: "\uFE33", "`": "\uFF40", "{": "\uFE37", "|": "\u2015", "}": "\uFE38", "~": "\uFF5E", "\xA2": "\uFFE0", "\xA3": "\uFFE1", "\xA5": "\uFFE5", "\xA6": "\uFFE4", "\xAC": "\uFFE2", "\xAF": "\uFFE3", "\u2013": "\uFE32", "\u2014": "\uFE31", "\u2018": "\uFE43", "\u2019": "\uFE44", "\u201C": "\uFE41", "\u201D": "\uFE42", "\u2026": "\uFE19", "\u2027": "\u30FB", "\u20A9": "\uFFE6", "\u3001": "\uFE11", "\u3002": "\uFE12", "\u3008": "\uFE3F", "\u3009": "\uFE40", "\u300A": "\uFE3D", "\u300B": "\uFE3E", "\u300C": "\uFE41", "\u300D": "\uFE42", "\u300E": "\uFE43", "\u300F": "\uFE44", "\u3010": "\uFE3B", "\u3011": "\uFE3C", "\u3014": "\uFE39", "\u3015": "\uFE3A", "\u3016": "\uFE17", "\u3017": "\uFE18", "\uFF01": "\uFE15", "\uFF08": "\uFE35", "\uFF09": "\uFE36", "\uFF0C": "\uFE10", "\uFF0D": "\uFE32", "\uFF0E": "\u30FB", "\uFF1A": "\uFE13", "\uFF1B": "\uFE14", "\uFF1C": "\uFE3F", "\uFF1E": "\uFE40", "\uFF1F": "\uFE16", "\uFF3B": "\uFE47", "\uFF3D": "\uFE48", "\uFF3F": "\uFE33", "\uFF5B": "\uFE37", "\uFF5C": "\u2015", "\uFF5D": "\uFE38", "\uFF5F": "\uFE35", "\uFF60": "\uFE36", "\uFF61": "\uFE12", "\uFF62": "\uFE41", "\uFF63": "\uFE42" }, Js = function(t2, e2, r2, n2, i2) { + var a2, o2, s2 = 8 * i2 - n2 - 1, u2 = (1 << s2) - 1, l2 = u2 >> 1, p3 = -7, c3 = r2 ? i2 - 1 : 0, h3 = r2 ? -1 : 1, f2 = t2[e2 + c3]; + for (c3 += h3, a2 = f2 & (1 << -p3) - 1, f2 >>= -p3, p3 += s2; p3 > 0; a2 = 256 * a2 + t2[e2 + c3], c3 += h3, p3 -= 8) ; - for (s2 = a2 & (1 << -c3) - 1, a2 >>= -c3, c3 += n2; c3 > 0; s2 = 256 * s2 + t2[e2 + h3], h3 += p3, c3 -= 8) + for (o2 = a2 & (1 << -p3) - 1, a2 >>= -p3, p3 += n2; p3 > 0; o2 = 256 * o2 + t2[e2 + c3], c3 += h3, p3 -= 8) ; if (0 === a2) - a2 = 1 - u2; + a2 = 1 - l2; else { - if (a2 === l2) - return s2 ? NaN : 1 / 0 * (f2 ? -1 : 1); - s2 += Math.pow(2, n2), a2 -= u2; - } - return (f2 ? -1 : 1) * s2 * Math.pow(2, a2 - n2); - }, hl = function(t2, e2, r2, n2, i2, a2) { - var s2, o2, l2, u2 = 8 * a2 - i2 - 1, c3 = (1 << u2) - 1, h3 = c3 >> 1, p3 = 23 === i2 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, f2 = n2 ? 0 : a2 - 1, d2 = n2 ? 1 : -1, y3 = e2 < 0 || 0 === e2 && 1 / e2 < 0 ? 1 : 0; - for (e2 = Math.abs(e2), isNaN(e2) || e2 === 1 / 0 ? (o2 = isNaN(e2) ? 1 : 0, s2 = c3) : (s2 = Math.floor(Math.log(e2) / Math.LN2), e2 * (l2 = Math.pow(2, -s2)) < 1 && (s2--, l2 *= 2), (e2 += s2 + h3 >= 1 ? p3 / l2 : p3 * Math.pow(2, 1 - h3)) * l2 >= 2 && (s2++, l2 /= 2), s2 + h3 >= c3 ? (o2 = 0, s2 = c3) : s2 + h3 >= 1 ? (o2 = (e2 * l2 - 1) * Math.pow(2, i2), s2 += h3) : (o2 = e2 * Math.pow(2, h3 - 1) * Math.pow(2, i2), s2 = 0)); i2 >= 8; t2[r2 + f2] = 255 & o2, f2 += d2, o2 /= 256, i2 -= 8) + if (a2 === u2) + return o2 ? NaN : 1 / 0 * (f2 ? -1 : 1); + o2 += Math.pow(2, n2), a2 -= l2; + } + return (f2 ? -1 : 1) * o2 * Math.pow(2, a2 - n2); + }, Hs = function(t2, e2, r2, n2, i2, a2) { + var o2, s2, u2, l2 = 8 * a2 - i2 - 1, p3 = (1 << l2) - 1, c3 = p3 >> 1, h3 = 23 === i2 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, f2 = n2 ? 0 : a2 - 1, y3 = n2 ? 1 : -1, d2 = e2 < 0 || 0 === e2 && 1 / e2 < 0 ? 1 : 0; + for (e2 = Math.abs(e2), isNaN(e2) || e2 === 1 / 0 ? (s2 = isNaN(e2) ? 1 : 0, o2 = p3) : (o2 = Math.floor(Math.log(e2) / Math.LN2), e2 * (u2 = Math.pow(2, -o2)) < 1 && (o2--, u2 *= 2), (e2 += o2 + c3 >= 1 ? h3 / u2 : h3 * Math.pow(2, 1 - c3)) * u2 >= 2 && (o2++, u2 /= 2), o2 + c3 >= p3 ? (s2 = 0, o2 = p3) : o2 + c3 >= 1 ? (s2 = (e2 * u2 - 1) * Math.pow(2, i2), o2 += c3) : (s2 = e2 * Math.pow(2, c3 - 1) * Math.pow(2, i2), o2 = 0)); i2 >= 8; t2[r2 + f2] = 255 & s2, f2 += y3, s2 /= 256, i2 -= 8) ; - for (s2 = s2 << i2 | o2, u2 += i2; u2 > 0; t2[r2 + f2] = 255 & s2, f2 += d2, s2 /= 256, u2 -= 8) + for (o2 = o2 << i2 | s2, l2 += i2; l2 > 0; t2[r2 + f2] = 255 & o2, f2 += y3, o2 /= 256, l2 -= 8) ; - t2[r2 + f2 - d2] |= 128 * y3; - }; - function pl(t2) { + t2[r2 + f2 - y3] |= 128 * d2; + }, Ys = $s; + function $s(t2) { this.buf = ArrayBuffer.isView && ArrayBuffer.isView(t2) ? t2 : new Uint8Array(t2 || 0), this.pos = 0, this.type = 0, this.length = this.buf.length; } - pl.Varint = 0, pl.Fixed64 = 1, pl.Bytes = 2, pl.Fixed32 = 5; - var fl, dl = 4294967296, yl = 1 / dl, ml = "undefined" == typeof TextDecoder ? null : new TextDecoder("utf8"); - function gl(t2) { - return t2.type === pl.Bytes ? t2.readVarint() + t2.pos : t2.pos + 1; + $s.Varint = 0, $s.Fixed64 = 1, $s.Bytes = 2, $s.Fixed32 = 5; + var Ws = "undefined" == typeof TextDecoder ? null : new TextDecoder("utf8"); + function Qs(t2) { + return t2.type === $s.Bytes ? t2.readVarint() + t2.pos : t2.pos + 1; } - function xl(t2, e2, r2) { + function tu(t2, e2, r2) { return r2 ? 4294967296 * e2 + (t2 >>> 0) : 4294967296 * (e2 >>> 0) + (t2 >>> 0); } - function vl(t2, e2, r2) { + function eu(t2, e2, r2) { var n2 = e2 <= 16383 ? 1 : e2 <= 2097151 ? 2 : e2 <= 268435455 ? 3 : Math.floor(Math.log(e2) / (7 * Math.LN2)); r2.realloc(n2); for (var i2 = r2.pos - 1; i2 >= t2; i2--) r2.buf[i2 + n2] = r2.buf[i2]; } - function bl(t2, e2) { + function ru(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeVarint(t2[r2]); } - function wl(t2, e2) { + function nu(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeSVarint(t2[r2]); } - function _l(t2, e2) { + function iu(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeFloat(t2[r2]); } - function Al(t2, e2) { + function au(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeDouble(t2[r2]); } - function kl(t2, e2) { + function ou(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeBoolean(t2[r2]); } - function Sl(t2, e2) { + function su(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeFixed32(t2[r2]); } - function Il(t2, e2) { + function uu(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeSFixed32(t2[r2]); } - function Ml(t2, e2) { + function lu(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeFixed64(t2[r2]); } - function zl(t2, e2) { + function pu(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeSFixed64(t2[r2]); } - function Bl(t2, e2) { + function cu(t2, e2) { return (t2[e2] | t2[e2 + 1] << 8 | t2[e2 + 2] << 16) + 16777216 * t2[e2 + 3]; } - function Cl(t2, e2, r2) { + function hu(t2, e2, r2) { t2[r2] = e2, t2[r2 + 1] = e2 >>> 8, t2[r2 + 2] = e2 >>> 16, t2[r2 + 3] = e2 >>> 24; } - function Pl(t2, e2) { + function fu(t2, e2) { return (t2[e2] | t2[e2 + 1] << 8 | t2[e2 + 2] << 16) + (t2[e2 + 3] << 24); } - function Vl(t2, e2, r2) { - 1 === t2 && r2.readMessage(El, e2); + function yu(t2, e2, r2) { + 1 === t2 && r2.readMessage(du, e2); } - function El(t2, e2, r2) { + function du(t2, e2, r2) { if (3 === t2) { - const { id: t3, bitmap: n2, width: i2, height: a2, left: s2, top: o2, advance: l2 } = r2.readMessage(Fl, {}); - e2.push({ id: t3, bitmap: new zs({ width: i2 + 6, height: a2 + 6 }, n2), metrics: { width: i2, height: a2, left: s2, top: o2, advance: l2 } }); + var n2 = r2.readMessage(mu, {}), i2 = n2.width, a2 = n2.height, o2 = n2.left, s2 = n2.top, u2 = n2.advance; + e2.push({ id: n2.id, bitmap: new go({ width: i2 + 6, height: a2 + 6 }, n2.bitmap), metrics: { width: i2, height: a2, left: o2, top: s2, advance: u2 } }); } } - function Fl(t2, e2, r2) { + function mu(t2, e2, r2) { 1 === t2 ? e2.id = r2.readVarint() : 2 === t2 ? e2.bitmap = r2.readBytes() : 3 === t2 ? e2.width = r2.readVarint() : 4 === t2 ? e2.height = r2.readVarint() : 5 === t2 ? e2.left = r2.readSVarint() : 6 === t2 ? e2.top = r2.readSVarint() : 7 === t2 && (e2.advance = r2.readVarint()); } - function Tl(t2) { - let e2 = 0, r2 = 0; - for (const n3 of t2) - e2 += n3.w * n3.h, r2 = Math.max(r2, n3.w); - t2.sort((t3, e3) => e3.h - t3.h); - const n2 = [{ x: 0, y: 0, w: Math.max(Math.ceil(Math.sqrt(e2 / 0.95)), r2), h: 1 / 0 }]; - let i2 = 0, a2 = 0; - for (const e3 of t2) - for (let t3 = n2.length - 1; t3 >= 0; t3--) { - const r3 = n2[t3]; - if (!(e3.w > r3.w || e3.h > r3.h)) { - if (e3.x = r3.x, e3.y = r3.y, a2 = Math.max(a2, e3.y + e3.h), i2 = Math.max(i2, e3.x + e3.w), e3.w === r3.w && e3.h === r3.h) { - const e4 = n2.pop(); - t3 < n2.length && (n2[t3] = e4); + function vu(t2) { + for (var e2 = 0, r2 = 0, n2 = 0, i2 = t2; n2 < i2.length; n2 += 1) { + var a2 = i2[n2]; + e2 += a2.w * a2.h, r2 = Math.max(r2, a2.w); + } + t2.sort(function(t3, e3) { + return e3.h - t3.h; + }); + for (var o2 = [{ x: 0, y: 0, w: Math.max(Math.ceil(Math.sqrt(e2 / 0.95)), r2), h: 1 / 0 }], s2 = 0, u2 = 0, l2 = 0, p3 = t2; l2 < p3.length; l2 += 1) + for (var c3 = p3[l2], h3 = o2.length - 1; h3 >= 0; h3--) { + var f2 = o2[h3]; + if (!(c3.w > f2.w || c3.h > f2.h)) { + if (c3.x = f2.x, c3.y = f2.y, u2 = Math.max(u2, c3.y + c3.h), s2 = Math.max(s2, c3.x + c3.w), c3.w === f2.w && c3.h === f2.h) { + var y3 = o2.pop(); + h3 < o2.length && (o2[h3] = y3); } else - e3.h === r3.h ? (r3.x += e3.w, r3.w -= e3.w) : e3.w === r3.w ? (r3.y += e3.h, r3.h -= e3.h) : (n2.push({ x: r3.x + e3.w, y: r3.y, w: r3.w - e3.w, h: e3.h }), r3.y += e3.h, r3.h -= e3.h); + c3.h === f2.h ? (f2.x += c3.w, f2.w -= c3.w) : c3.w === f2.w ? (f2.y += c3.h, f2.h -= c3.h) : (o2.push({ x: f2.x + c3.w, y: f2.y, w: f2.w - c3.w, h: c3.h }), f2.y += c3.h, f2.h -= c3.h); break; } } - return { w: i2, h: a2, fill: e2 / (i2 * a2) || 0 }; + return { w: s2, h: u2, fill: e2 / (s2 * u2) || 0 }; } - pl.prototype = { destroy: function() { + $s.prototype = { destroy: function() { this.buf = null; }, readFields: function(t2, e2, r2) { for (r2 = r2 || this.length; this.pos < r2; ) { @@ -21106,39 +21453,39 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ }, readMessage: function(t2, e2) { return this.readFields(t2, e2, this.readVarint() + this.pos); }, readFixed32: function() { - var t2 = Bl(this.buf, this.pos); + var t2 = cu(this.buf, this.pos); return this.pos += 4, t2; }, readSFixed32: function() { - var t2 = Pl(this.buf, this.pos); + var t2 = fu(this.buf, this.pos); return this.pos += 4, t2; }, readFixed64: function() { - var t2 = Bl(this.buf, this.pos) + Bl(this.buf, this.pos + 4) * dl; + var t2 = cu(this.buf, this.pos) + 4294967296 * cu(this.buf, this.pos + 4); return this.pos += 8, t2; }, readSFixed64: function() { - var t2 = Bl(this.buf, this.pos) + Pl(this.buf, this.pos + 4) * dl; + var t2 = cu(this.buf, this.pos) + 4294967296 * fu(this.buf, this.pos + 4); return this.pos += 8, t2; }, readFloat: function() { - var t2 = cl(this.buf, this.pos, true, 23, 4); + var t2 = Js(this.buf, this.pos, true, 23, 4); return this.pos += 4, t2; }, readDouble: function() { - var t2 = cl(this.buf, this.pos, true, 52, 8); + var t2 = Js(this.buf, this.pos, true, 52, 8); return this.pos += 8, t2; }, readVarint: function(t2) { var e2, r2, n2 = this.buf; return e2 = 127 & (r2 = n2[this.pos++]), r2 < 128 ? e2 : (e2 |= (127 & (r2 = n2[this.pos++])) << 7, r2 < 128 ? e2 : (e2 |= (127 & (r2 = n2[this.pos++])) << 14, r2 < 128 ? e2 : (e2 |= (127 & (r2 = n2[this.pos++])) << 21, r2 < 128 ? e2 : function(t3, e3, r3) { var n3, i2, a2 = r3.buf; if (n3 = (112 & (i2 = a2[r3.pos++])) >> 4, i2 < 128) - return xl(t3, n3, e3); + return tu(t3, n3, e3); if (n3 |= (127 & (i2 = a2[r3.pos++])) << 3, i2 < 128) - return xl(t3, n3, e3); + return tu(t3, n3, e3); if (n3 |= (127 & (i2 = a2[r3.pos++])) << 10, i2 < 128) - return xl(t3, n3, e3); + return tu(t3, n3, e3); if (n3 |= (127 & (i2 = a2[r3.pos++])) << 17, i2 < 128) - return xl(t3, n3, e3); + return tu(t3, n3, e3); if (n3 |= (127 & (i2 = a2[r3.pos++])) << 24, i2 < 128) - return xl(t3, n3, e3); + return tu(t3, n3, e3); if (n3 |= (1 & (i2 = a2[r3.pos++])) << 31, i2 < 128) - return xl(t3, n3, e3); + return tu(t3, n3, e3); throw new Error("Expected varint not more than 10 bytes"); }(e2 |= (15 & (r2 = n2[this.pos])) << 28, t2, this)))); }, readVarint64: function() { @@ -21150,14 +21497,14 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ return Boolean(this.readVarint()); }, readString: function() { var t2 = this.readVarint() + this.pos, e2 = this.pos; - return this.pos = t2, t2 - e2 >= 12 && ml ? function(t3, e3, r2) { - return ml.decode(t3.subarray(e3, r2)); + return this.pos = t2, t2 - e2 >= 12 && Ws ? function(t3, e3, r2) { + return Ws.decode(t3.subarray(e3, r2)); }(this.buf, e2, t2) : function(t3, e3, r2) { for (var n2 = "", i2 = e3; i2 < r2; ) { - var a2, s2, o2, l2 = t3[i2], u2 = null, c3 = l2 > 239 ? 4 : l2 > 223 ? 3 : l2 > 191 ? 2 : 1; - if (i2 + c3 > r2) + var a2, o2, s2, u2 = t3[i2], l2 = null, p3 = u2 > 239 ? 4 : u2 > 223 ? 3 : u2 > 191 ? 2 : 1; + if (i2 + p3 > r2) break; - 1 === c3 ? l2 < 128 && (u2 = l2) : 2 === c3 ? 128 == (192 & (a2 = t3[i2 + 1])) && (u2 = (31 & l2) << 6 | 63 & a2) <= 127 && (u2 = null) : 3 === c3 ? (s2 = t3[i2 + 2], 128 == (192 & (a2 = t3[i2 + 1])) && 128 == (192 & s2) && ((u2 = (15 & l2) << 12 | (63 & a2) << 6 | 63 & s2) <= 2047 || u2 >= 55296 && u2 <= 57343) && (u2 = null)) : 4 === c3 && (s2 = t3[i2 + 2], o2 = t3[i2 + 3], 128 == (192 & (a2 = t3[i2 + 1])) && 128 == (192 & s2) && 128 == (192 & o2) && ((u2 = (15 & l2) << 18 | (63 & a2) << 12 | (63 & s2) << 6 | 63 & o2) <= 65535 || u2 >= 1114112) && (u2 = null)), null === u2 ? (u2 = 65533, c3 = 1) : u2 > 65535 && (u2 -= 65536, n2 += String.fromCharCode(u2 >>> 10 & 1023 | 55296), u2 = 56320 | 1023 & u2), n2 += String.fromCharCode(u2), i2 += c3; + 1 === p3 ? u2 < 128 && (l2 = u2) : 2 === p3 ? 128 == (192 & (a2 = t3[i2 + 1])) && (l2 = (31 & u2) << 6 | 63 & a2) <= 127 && (l2 = null) : 3 === p3 ? (o2 = t3[i2 + 2], 128 == (192 & (a2 = t3[i2 + 1])) && 128 == (192 & o2) && ((l2 = (15 & u2) << 12 | (63 & a2) << 6 | 63 & o2) <= 2047 || l2 >= 55296 && l2 <= 57343) && (l2 = null)) : 4 === p3 && (o2 = t3[i2 + 2], s2 = t3[i2 + 3], 128 == (192 & (a2 = t3[i2 + 1])) && 128 == (192 & o2) && 128 == (192 & s2) && ((l2 = (15 & u2) << 18 | (63 & a2) << 12 | (63 & o2) << 6 | 63 & s2) <= 65535 || l2 >= 1114112) && (l2 = null)), null === l2 ? (l2 = 65533, p3 = 1) : l2 > 65535 && (l2 -= 65536, n2 += String.fromCharCode(l2 >>> 10 & 1023 | 55296), l2 = 56320 | 1023 & l2), n2 += String.fromCharCode(l2), i2 += p3; } return n2; }(this.buf, e2, t2); @@ -21165,79 +21512,79 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ var t2 = this.readVarint() + this.pos, e2 = this.buf.subarray(this.pos, t2); return this.pos = t2, e2; }, readPackedVarint: function(t2, e2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readVarint(e2)); - var r2 = gl(this); + var r2 = Qs(this); for (t2 = t2 || []; this.pos < r2; ) t2.push(this.readVarint(e2)); return t2; }, readPackedSVarint: function(t2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readSVarint()); - var e2 = gl(this); + var e2 = Qs(this); for (t2 = t2 || []; this.pos < e2; ) t2.push(this.readSVarint()); return t2; }, readPackedBoolean: function(t2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readBoolean()); - var e2 = gl(this); + var e2 = Qs(this); for (t2 = t2 || []; this.pos < e2; ) t2.push(this.readBoolean()); return t2; }, readPackedFloat: function(t2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readFloat()); - var e2 = gl(this); + var e2 = Qs(this); for (t2 = t2 || []; this.pos < e2; ) t2.push(this.readFloat()); return t2; }, readPackedDouble: function(t2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readDouble()); - var e2 = gl(this); + var e2 = Qs(this); for (t2 = t2 || []; this.pos < e2; ) t2.push(this.readDouble()); return t2; }, readPackedFixed32: function(t2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readFixed32()); - var e2 = gl(this); + var e2 = Qs(this); for (t2 = t2 || []; this.pos < e2; ) t2.push(this.readFixed32()); return t2; }, readPackedSFixed32: function(t2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readSFixed32()); - var e2 = gl(this); + var e2 = Qs(this); for (t2 = t2 || []; this.pos < e2; ) t2.push(this.readSFixed32()); return t2; }, readPackedFixed64: function(t2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readFixed64()); - var e2 = gl(this); + var e2 = Qs(this); for (t2 = t2 || []; this.pos < e2; ) t2.push(this.readFixed64()); return t2; }, readPackedSFixed64: function(t2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readSFixed64()); - var e2 = gl(this); + var e2 = Qs(this); for (t2 = t2 || []; this.pos < e2; ) t2.push(this.readSFixed64()); return t2; }, skip: function(t2) { var e2 = 7 & t2; - if (e2 === pl.Varint) + if (e2 === $s.Varint) for (; this.buf[this.pos++] > 127; ) ; - else if (e2 === pl.Bytes) + else if (e2 === $s.Bytes) this.pos = this.readVarint() + this.pos; - else if (e2 === pl.Fixed32) + else if (e2 === $s.Fixed32) this.pos += 4; else { - if (e2 !== pl.Fixed64) + if (e2 !== $s.Fixed64) throw new Error("Unimplemented type: " + e2); this.pos += 8; } @@ -21253,13 +21600,13 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ }, finish: function() { return this.length = this.pos, this.pos = 0, this.buf.subarray(0, this.length); }, writeFixed32: function(t2) { - this.realloc(4), Cl(this.buf, t2, this.pos), this.pos += 4; + this.realloc(4), hu(this.buf, t2, this.pos), this.pos += 4; }, writeSFixed32: function(t2) { - this.realloc(4), Cl(this.buf, t2, this.pos), this.pos += 4; + this.realloc(4), hu(this.buf, t2, this.pos), this.pos += 4; }, writeFixed64: function(t2) { - this.realloc(8), Cl(this.buf, -1 & t2, this.pos), Cl(this.buf, Math.floor(t2 * yl), this.pos + 4), this.pos += 8; + this.realloc(8), hu(this.buf, -1 & t2, this.pos), hu(this.buf, Math.floor(t2 * (1 / 4294967296)), this.pos + 4), this.pos += 8; }, writeSFixed64: function(t2) { - this.realloc(8), Cl(this.buf, -1 & t2, this.pos), Cl(this.buf, Math.floor(t2 * yl), this.pos + 4), this.pos += 8; + this.realloc(8), hu(this.buf, -1 & t2, this.pos), hu(this.buf, Math.floor(t2 * (1 / 4294967296)), this.pos + 4), this.pos += 8; }, writeVarint: function(t2) { (t2 = +t2 || 0) > 268435455 || t2 < 0 ? function(t3, e2) { var r2, n2; @@ -21298,11 +21645,11 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ return r3; }(this.buf, t2, this.pos); var r2 = this.pos - e2; - r2 >= 128 && vl(e2, r2, this), this.pos = e2 - 1, this.writeVarint(r2), this.pos += r2; + r2 >= 128 && eu(e2, r2, this), this.pos = e2 - 1, this.writeVarint(r2), this.pos += r2; }, writeFloat: function(t2) { - this.realloc(4), hl(this.buf, t2, this.pos, true, 23, 4), this.pos += 4; + this.realloc(4), Hs(this.buf, t2, this.pos, true, 23, 4), this.pos += 4; }, writeDouble: function(t2) { - this.realloc(8), hl(this.buf, t2, this.pos, true, 52, 8), this.pos += 8; + this.realloc(8), Hs(this.buf, t2, this.pos, true, 52, 8), this.pos += 8; }, writeBytes: function(t2) { var e2 = t2.length; this.writeVarint(e2), this.realloc(e2); @@ -21313,339 +21660,291 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ var r2 = this.pos; t2(e2, this); var n2 = this.pos - r2; - n2 >= 128 && vl(r2, n2, this), this.pos = r2 - 1, this.writeVarint(n2), this.pos += n2; + n2 >= 128 && eu(r2, n2, this), this.pos = r2 - 1, this.writeVarint(n2), this.pos += n2; }, writeMessage: function(t2, e2, r2) { - this.writeTag(t2, pl.Bytes), this.writeRawMessage(e2, r2); + this.writeTag(t2, $s.Bytes), this.writeRawMessage(e2, r2); }, writePackedVarint: function(t2, e2) { - e2.length && this.writeMessage(t2, bl, e2); + e2.length && this.writeMessage(t2, ru, e2); }, writePackedSVarint: function(t2, e2) { - e2.length && this.writeMessage(t2, wl, e2); + e2.length && this.writeMessage(t2, nu, e2); }, writePackedBoolean: function(t2, e2) { - e2.length && this.writeMessage(t2, kl, e2); + e2.length && this.writeMessage(t2, ou, e2); }, writePackedFloat: function(t2, e2) { - e2.length && this.writeMessage(t2, _l, e2); + e2.length && this.writeMessage(t2, iu, e2); }, writePackedDouble: function(t2, e2) { - e2.length && this.writeMessage(t2, Al, e2); + e2.length && this.writeMessage(t2, au, e2); }, writePackedFixed32: function(t2, e2) { - e2.length && this.writeMessage(t2, Sl, e2); + e2.length && this.writeMessage(t2, su, e2); }, writePackedSFixed32: function(t2, e2) { - e2.length && this.writeMessage(t2, Il, e2); + e2.length && this.writeMessage(t2, uu, e2); }, writePackedFixed64: function(t2, e2) { - e2.length && this.writeMessage(t2, Ml, e2); + e2.length && this.writeMessage(t2, lu, e2); }, writePackedSFixed64: function(t2, e2) { - e2.length && this.writeMessage(t2, zl, e2); + e2.length && this.writeMessage(t2, pu, e2); }, writeBytesField: function(t2, e2) { - this.writeTag(t2, pl.Bytes), this.writeBytes(e2); + this.writeTag(t2, $s.Bytes), this.writeBytes(e2); }, writeFixed32Field: function(t2, e2) { - this.writeTag(t2, pl.Fixed32), this.writeFixed32(e2); + this.writeTag(t2, $s.Fixed32), this.writeFixed32(e2); }, writeSFixed32Field: function(t2, e2) { - this.writeTag(t2, pl.Fixed32), this.writeSFixed32(e2); + this.writeTag(t2, $s.Fixed32), this.writeSFixed32(e2); }, writeFixed64Field: function(t2, e2) { - this.writeTag(t2, pl.Fixed64), this.writeFixed64(e2); + this.writeTag(t2, $s.Fixed64), this.writeFixed64(e2); }, writeSFixed64Field: function(t2, e2) { - this.writeTag(t2, pl.Fixed64), this.writeSFixed64(e2); + this.writeTag(t2, $s.Fixed64), this.writeSFixed64(e2); }, writeVarintField: function(t2, e2) { - this.writeTag(t2, pl.Varint), this.writeVarint(e2); + this.writeTag(t2, $s.Varint), this.writeVarint(e2); }, writeSVarintField: function(t2, e2) { - this.writeTag(t2, pl.Varint), this.writeSVarint(e2); + this.writeTag(t2, $s.Varint), this.writeSVarint(e2); }, writeStringField: function(t2, e2) { - this.writeTag(t2, pl.Bytes), this.writeString(e2); + this.writeTag(t2, $s.Bytes), this.writeString(e2); }, writeFloatField: function(t2, e2) { - this.writeTag(t2, pl.Fixed32), this.writeFloat(e2); + this.writeTag(t2, $s.Fixed32), this.writeFloat(e2); }, writeDoubleField: function(t2, e2) { - this.writeTag(t2, pl.Fixed64), this.writeDouble(e2); + this.writeTag(t2, $s.Fixed64), this.writeDouble(e2); }, writeBooleanField: function(t2, e2) { this.writeVarintField(t2, Boolean(e2)); } }; - class Ll { - constructor(t2, { pixelRatio: e2, version: r2, stretchX: n2, stretchY: i2, content: a2 }) { - this.paddedRect = t2, this.pixelRatio = e2, this.stretchX = n2, this.stretchY = i2, this.content = a2, this.version = r2; - } - get tl() { - return [this.paddedRect.x + 1, this.paddedRect.y + 1]; - } - get br() { - return [this.paddedRect.x + this.paddedRect.w - 1, this.paddedRect.y + this.paddedRect.h - 1]; - } - get tlbr() { - return this.tl.concat(this.br); - } - get displaySize() { - return [(this.paddedRect.w - 2) / this.pixelRatio, (this.paddedRect.h - 2) / this.pixelRatio]; - } - } - class Dl { - constructor(t2, e2) { - const r2 = {}, n2 = {}; - this.haveRenderCallbacks = []; - const i2 = []; - this.addImages(t2, r2, i2), this.addImages(e2, n2, i2); - const { w: a2, h: s2 } = Tl(i2), o2 = new Bs({ width: a2 || 1, height: s2 || 1 }); - for (const e3 in t2) { - const n3 = t2[e3], i3 = r2[e3].paddedRect; - Bs.copy(n3.data, o2, { x: 0, y: 0 }, { x: i3.x + 1, y: i3.y + 1 }, n3.data); - } - for (const t3 in e2) { - const r3 = e2[t3], i3 = n2[t3].paddedRect, a3 = i3.x + 1, s3 = i3.y + 1, l2 = r3.data.width, u2 = r3.data.height; - Bs.copy(r3.data, o2, { x: 0, y: 0 }, { x: a3, y: s3 }, r3.data), Bs.copy(r3.data, o2, { x: 0, y: u2 - 1 }, { x: a3, y: s3 - 1 }, { width: l2, height: 1 }), Bs.copy(r3.data, o2, { x: 0, y: 0 }, { x: a3, y: s3 + u2 }, { width: l2, height: 1 }), Bs.copy(r3.data, o2, { x: l2 - 1, y: 0 }, { x: a3 - 1, y: s3 }, { width: 1, height: u2 }), Bs.copy(r3.data, o2, { x: 0, y: 0 }, { x: a3 + l2, y: s3 }, { width: 1, height: u2 }); - } - this.image = o2, this.iconPositions = r2, this.patternPositions = n2; - } - addImages(t2, e2, r2) { - for (const n2 in t2) { - const i2 = t2[n2], a2 = { x: 0, y: 0, w: i2.data.width + 2, h: i2.data.height + 2 }; - r2.push(a2), e2[n2] = new Ll(a2, i2), i2.hasRenderCallback && this.haveRenderCallbacks.push(n2); - } - } - patchUpdatedImages(t2, e2) { - t2.dispatchRenderCallbacks(this.haveRenderCallbacks); - for (const r2 in t2.updatedImages) - this.patchUpdatedImage(this.iconPositions[r2], t2.getImage(r2), e2), this.patchUpdatedImage(this.patternPositions[r2], t2.getImage(r2), e2); - } - patchUpdatedImage(t2, e2, r2) { - if (!t2 || !e2) - return; - if (t2.version === e2.version) - return; + var gu = function(t2, e2) { + var r2 = e2.pixelRatio, n2 = e2.version, i2 = e2.stretchX, a2 = e2.stretchY, o2 = e2.content; + this.paddedRect = t2, this.pixelRatio = r2, this.stretchX = i2, this.stretchY = a2, this.content = o2, this.version = n2; + }, xu = { tl: { configurable: true }, br: { configurable: true }, tlbr: { configurable: true }, displaySize: { configurable: true } }; + xu.tl.get = function() { + return [this.paddedRect.x + 1, this.paddedRect.y + 1]; + }, xu.br.get = function() { + return [this.paddedRect.x + this.paddedRect.w - 1, this.paddedRect.y + this.paddedRect.h - 1]; + }, xu.tlbr.get = function() { + return this.tl.concat(this.br); + }, xu.displaySize.get = function() { + return [(this.paddedRect.w - 2) / this.pixelRatio, (this.paddedRect.h - 2) / this.pixelRatio]; + }, Object.defineProperties(gu.prototype, xu); + var bu = function(t2, e2) { + var r2 = {}, n2 = {}; + this.haveRenderCallbacks = []; + var i2 = []; + this.addImages(t2, r2, i2), this.addImages(e2, n2, i2); + var a2 = vu(i2), o2 = new xo({ width: a2.w || 1, height: a2.h || 1 }); + for (var s2 in t2) { + var u2 = t2[s2], l2 = r2[s2].paddedRect; + xo.copy(u2.data, o2, { x: 0, y: 0 }, { x: l2.x + 1, y: l2.y + 1 }, u2.data); + } + for (var p3 in e2) { + var c3 = e2[p3], h3 = n2[p3].paddedRect, f2 = h3.x + 1, y3 = h3.y + 1, d2 = c3.data.width, m2 = c3.data.height; + xo.copy(c3.data, o2, { x: 0, y: 0 }, { x: f2, y: y3 }, c3.data), xo.copy(c3.data, o2, { x: 0, y: m2 - 1 }, { x: f2, y: y3 - 1 }, { width: d2, height: 1 }), xo.copy(c3.data, o2, { x: 0, y: 0 }, { x: f2, y: y3 + m2 }, { width: d2, height: 1 }), xo.copy(c3.data, o2, { x: d2 - 1, y: 0 }, { x: f2 - 1, y: y3 }, { width: 1, height: m2 }), xo.copy(c3.data, o2, { x: 0, y: 0 }, { x: f2 + d2, y: y3 }, { width: 1, height: m2 }); + } + this.image = o2, this.iconPositions = r2, this.patternPositions = n2; + }; + bu.prototype.addImages = function(t2, e2, r2) { + for (var n2 in t2) { + var i2 = t2[n2], a2 = { x: 0, y: 0, w: i2.data.width + 2, h: i2.data.height + 2 }; + r2.push(a2), e2[n2] = new gu(a2, i2), i2.hasRenderCallback && this.haveRenderCallbacks.push(n2); + } + }, bu.prototype.patchUpdatedImages = function(t2, e2) { + for (var r2 in t2.dispatchRenderCallbacks(this.haveRenderCallbacks), t2.updatedImages) + this.patchUpdatedImage(this.iconPositions[r2], t2.getImage(r2), e2), this.patchUpdatedImage(this.patternPositions[r2], t2.getImage(r2), e2); + }, bu.prototype.patchUpdatedImage = function(t2, e2, r2) { + if (t2 && e2 && t2.version !== e2.version) { t2.version = e2.version; - const [n2, i2] = t2.tl; - r2.update(e2.data, void 0, { x: n2, y: i2 }); - } - } - Mn("ImagePosition", Ll), Mn("ImageAtlas", Dl), t.WritingMode = void 0, (fl = t.WritingMode || (t.WritingMode = {}))[fl.none = 0] = "none", fl[fl.horizontal = 1] = "horizontal", fl[fl.vertical = 2] = "vertical", fl[fl.horizontalOnly = 3] = "horizontalOnly"; - const $l = -17; - class Rl { - constructor() { - this.scale = 1, this.fontStack = "", this.imageName = null; - } - static forText(t2, e2) { - const r2 = new Rl(); - return r2.scale = t2 || 1, r2.fontStack = e2, r2; - } - static forImage(t2) { - const e2 = new Rl(); - return e2.imageName = t2, e2; - } - } - class Ol { - constructor() { - this.text = "", this.sectionIndex = [], this.sections = [], this.imageSectionID = null; - } - static fromFeature(t2, e2) { - const r2 = new Ol(); - for (let n2 = 0; n2 < t2.sections.length; n2++) { - const i2 = t2.sections[n2]; - i2.image ? r2.addImageSection(i2) : r2.addTextSection(i2, e2); - } - return r2; - } - length() { - return this.text.length; - } - getSection(t2) { - return this.sections[this.sectionIndex[t2]]; - } - getSectionIndex(t2) { - return this.sectionIndex[t2]; + var n2 = t2.tl; + r2.update(e2.data, void 0, { x: n2[0], y: n2[1] }); } - getCharCode(t2) { - return this.text.charCodeAt(t2); - } - verticalizePunctuation() { - this.text = function(t2) { - let e2 = ""; - for (let r2 = 0; r2 < t2.length; r2++) { - const n2 = t2.charCodeAt(r2 + 1) || null, i2 = t2.charCodeAt(r2 - 1) || null; - e2 += n2 && Dn(n2) && !ol[t2[r2 + 1]] || i2 && Dn(i2) && !ol[t2[r2 - 1]] || !ol[t2[r2]] ? t2[r2] : ol[t2[r2]]; - } - return e2; - }(this.text); - } - trim() { - let t2 = 0; - for (let e3 = 0; e3 < this.text.length && ql[this.text.charCodeAt(e3)]; e3++) - t2++; - let e2 = this.text.length; - for (let r2 = this.text.length - 1; r2 >= 0 && r2 >= t2 && ql[this.text.charCodeAt(r2)]; r2--) - e2--; - this.text = this.text.substring(t2, e2), this.sectionIndex = this.sectionIndex.slice(t2, e2); - } - substring(t2, e2) { - const r2 = new Ol(); - return r2.text = this.text.substring(t2, e2), r2.sectionIndex = this.sectionIndex.slice(t2, e2), r2.sections = this.sections, r2; - } - toString() { - return this.text; - } - getMaxScale() { - return this.sectionIndex.reduce((t2, e2) => Math.max(t2, this.sections[e2].scale), 0); - } - addTextSection(t2, e2) { - this.text += t2.text, this.sections.push(Rl.forText(t2.scale, t2.fontStack || e2)); - const r2 = this.sections.length - 1; - for (let e3 = 0; e3 < t2.text.length; ++e3) - this.sectionIndex.push(r2); - } - addImageSection(t2) { - const e2 = t2.image ? t2.image.name : ""; - if (0 === e2.length) - return void d("Can't add FormattedSection with an empty image."); - const r2 = this.getNextImageSectionCharCode(); - r2 ? (this.text += String.fromCharCode(r2), this.sections.push(Rl.forImage(e2)), this.sectionIndex.push(this.sections.length - 1)) : d("Reached maximum number of images 6401"); - } - getNextImageSectionCharCode() { - return this.imageSectionID ? this.imageSectionID >= 63743 ? null : ++this.imageSectionID : (this.imageSectionID = 57344, this.imageSectionID); - } - } - function Ul(e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, d2, y3, m2) { - const g2 = Ol.fromFeature(e2, a2); - let x2; - p3 === t.WritingMode.vertical && g2.verticalizePunctuation(); - const { processBidirectionalText: v3, processStyledBidirectionalText: b2 } = Wn; - if (v3 && 1 === g2.sections.length) { - x2 = []; - const t2 = v3(g2.toString(), Xl(g2, c3, s2, r2, i2, d2, y3)); - for (const e3 of t2) { - const t3 = new Ol(); - t3.text = e3, t3.sections = g2.sections; - for (let r3 = 0; r3 < e3.length; r3++) - t3.sectionIndex.push(0); - x2.push(t3); - } - } else if (b2) { - x2 = []; - const t2 = b2(g2.text, g2.sectionIndex, Xl(g2, c3, s2, r2, i2, d2, y3)); - for (const e3 of t2) { - const t3 = new Ol(); - t3.text = e3[0], t3.sectionIndex = e3[1], t3.sections = g2.sections, x2.push(t3); + }, On("ImagePosition", gu), On("ImageAtlas", bu); + var wu = { horizontal: 1, vertical: 2, horizontalOnly: 3 }, _u = function() { + this.scale = 1, this.fontStack = "", this.imageName = null; + }; + _u.forText = function(t2, e2) { + var r2 = new _u(); + return r2.scale = t2 || 1, r2.fontStack = e2, r2; + }, _u.forImage = function(t2) { + var e2 = new _u(); + return e2.imageName = t2, e2; + }; + var Au = function() { + this.text = "", this.sectionIndex = [], this.sections = [], this.imageSectionID = null; + }; + function Su(t2, e2, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2) { + var m2, v3 = Au.fromFeature(t2, i2); + c3 === wu.vertical && v3.verticalizePunctuation(); + var g2 = oi.processBidirectionalText, x2 = oi.processStyledBidirectionalText; + if (g2 && 1 === v3.sections.length) { + m2 = []; + for (var b2 = 0, w2 = g2(v3.toString(), Mu(v3, l2, a2, e2, n2, f2, y3)); b2 < w2.length; b2 += 1) { + var _24 = w2[b2], A3 = new Au(); + A3.text = _24, A3.sections = v3.sections; + for (var S2 = 0; S2 < _24.length; S2++) + A3.sectionIndex.push(0); + m2.push(A3); + } + } else if (x2) { + m2 = []; + for (var k2 = 0, I3 = x2(v3.text, v3.sectionIndex, Mu(v3, l2, a2, e2, n2, f2, y3)); k2 < I3.length; k2 += 1) { + var z2 = I3[k2], C2 = new Au(); + C2.text = z2[0], C2.sectionIndex = z2[1], C2.sections = v3.sections, m2.push(C2); } } else - x2 = function(t2, e3) { - const r3 = [], n3 = t2.text; - let i3 = 0; - for (const n4 of e3) - r3.push(t2.substring(i3, n4)), i3 = n4; - return i3 < n3.length && r3.push(t2.substring(i3, n3.length)), r3; - }(g2, Xl(g2, c3, s2, r2, i2, d2, y3)); - const w2 = [], _24 = { positionedLines: w2, text: g2.toString(), top: h3[1], bottom: h3[1], left: h3[0], right: h3[0], writingMode: p3, iconsInText: false, verticalizable: false }; - return function(e3, r3, n3, i3, a3, s3, o3, l3, u3, c4, h4, p4) { - let f3 = 0, d3 = $l, y4 = 0, m3 = 0; - const g3 = "right" === l3 ? 1 : "left" === l3 ? 0 : 0.5; - let x3 = 0; - for (const o4 of a3) { - o4.trim(); - const a4 = o4.getMaxScale(), l4 = (a4 - 1) * ll, b4 = { positionedGlyphs: [], lineOffset: 0 }; - e3.positionedLines[x3] = b4; - const w4 = b4.positionedGlyphs; - let _26 = 0; - if (!o4.length()) { - d3 += s3, ++x3; - continue; + m2 = function(t3, e3) { + for (var r3 = [], n3 = t3.text, i3 = 0, a3 = 0, o3 = e3; a3 < o3.length; a3 += 1) { + var s3 = o3[a3]; + r3.push(t3.substring(i3, s3)), i3 = s3; } - for (let s4 = 0; s4 < o4.length(); s4++) { - const y5 = o4.getSection(s4), m4 = o4.getSectionIndex(s4), g4 = o4.getCharCode(s4); - let x4 = 0, b5 = null, A4 = null, k2 = null, S2 = ll; - const I3 = !(u3 === t.WritingMode.horizontal || !h4 && !Ln(g4) || h4 && (ql[g4] || (v4 = g4, Vn.Arabic(v4) || Vn["Arabic Supplement"](v4) || Vn["Arabic Extended-A"](v4) || Vn["Arabic Presentation Forms-A"](v4) || Vn["Arabic Presentation Forms-B"](v4)))); - if (y5.imageName) { - const t2 = i3[y5.imageName]; - if (!t2) - continue; - k2 = y5.imageName, e3.iconsInText = e3.iconsInText || true, A4 = t2.paddedRect; - const r4 = t2.displaySize; - y5.scale = y5.scale * ll / p4, b5 = { width: r4[0], height: r4[1], left: 1, top: -3, advance: I3 ? r4[1] : r4[0] }, x4 = l4 + (ll - r4[1] * y5.scale), S2 = b5.advance; - const n4 = I3 ? r4[0] * y5.scale - ll * a4 : r4[1] * y5.scale - ll * a4; - n4 > 0 && n4 > _26 && (_26 = n4); - } else { - const t2 = n3[y5.fontStack], e4 = t2 && t2[g4]; - if (e4 && e4.rect) - A4 = e4.rect, b5 = e4.metrics; - else { - const t3 = r3[y5.fontStack], e5 = t3 && t3[g4]; - if (!e5) + return i3 < n3.length && r3.push(t3.substring(i3, n3.length)), r3; + }(v3, Mu(v3, l2, a2, e2, n2, f2, y3)); + var E2 = [], P2 = { positionedLines: E2, text: v3.toString(), top: p3[1], bottom: p3[1], left: p3[0], right: p3[0], writingMode: c3, iconsInText: false, verticalizable: false }; + return function(t3, e3, r3, n3, i3, a3, o3, s3, u3, l3, p4, c4) { + for (var h4 = 0, f3 = -17, y4 = 0, d3 = 0, m3 = "right" === s3 ? 1 : "left" === s3 ? 0 : 0.5, v4 = 0, g3 = 0, x3 = i3; g3 < x3.length; g3 += 1) { + var b3 = x3[g3]; + b3.trim(); + var w3 = b3.getMaxScale(), _25 = 24 * (w3 - 1), A4 = { positionedGlyphs: [], lineOffset: 0 }; + t3.positionedLines[v4] = A4; + var S3 = A4.positionedGlyphs, k3 = 0; + if (b3.length()) { + for (var I4 = 0; I4 < b3.length(); I4++) { + var z3 = b3.getSection(I4), C3 = b3.getSectionIndex(I4), E3 = b3.getCharCode(I4), P3 = 0, M2 = null, B2 = null, T2 = null, V3 = 24, F2 = !(u3 === wu.horizontal || !p4 && !Xn(E3) || p4 && (ku[E3] || (K2 = E3, Gn.Arabic(K2) || Gn["Arabic Supplement"](K2) || Gn["Arabic Extended-A"](K2) || Gn["Arabic Presentation Forms-A"](K2) || Gn["Arabic Presentation Forms-B"](K2)))); + if (z3.imageName) { + var D2 = n3[z3.imageName]; + if (!D2) continue; - b5 = e5.metrics; + T2 = z3.imageName, t3.iconsInText = t3.iconsInText || true, B2 = D2.paddedRect; + var L2 = D2.displaySize; + z3.scale = 24 * z3.scale / c4, P3 = _25 + (24 - L2[1] * z3.scale), V3 = (M2 = { width: L2[0], height: L2[1], left: 1, top: -3, advance: F2 ? L2[1] : L2[0] }).advance; + var O3 = F2 ? L2[0] * z3.scale - 24 * w3 : L2[1] * z3.scale - 24 * w3; + O3 > 0 && O3 > k3 && (k3 = O3); + } else { + var R2 = r3[z3.fontStack], U2 = R2 && R2[E3]; + if (U2 && U2.rect) + B2 = U2.rect, M2 = U2.metrics; + else { + var j2 = e3[z3.fontStack], q2 = j2 && j2[E3]; + if (!q2) + continue; + M2 = q2.metrics; + } + P3 = 24 * (w3 - z3.scale); } - x4 = (a4 - y5.scale) * ll; + F2 ? (t3.verticalizable = true, S3.push({ glyph: E3, imageName: T2, x: h4, y: f3 + P3, vertical: F2, scale: z3.scale, fontStack: z3.fontStack, sectionIndex: C3, metrics: M2, rect: B2 }), h4 += V3 * z3.scale + l3) : (S3.push({ glyph: E3, imageName: T2, x: h4, y: f3 + P3, vertical: F2, scale: z3.scale, fontStack: z3.fontStack, sectionIndex: C3, metrics: M2, rect: B2 }), h4 += M2.advance * z3.scale + l3); } - I3 ? (e3.verticalizable = true, w4.push({ glyph: g4, imageName: k2, x: f3, y: d3 + x4, vertical: I3, scale: y5.scale, fontStack: y5.fontStack, sectionIndex: m4, metrics: b5, rect: A4 }), f3 += S2 * y5.scale + c4) : (w4.push({ glyph: g4, imageName: k2, x: f3, y: d3 + x4, vertical: I3, scale: y5.scale, fontStack: y5.fontStack, sectionIndex: m4, metrics: b5, rect: A4 }), f3 += b5.advance * y5.scale + c4); - } - 0 !== w4.length && (y4 = Math.max(f3 - c4, y4), Hl(w4, 0, w4.length - 1, g3, _26)), f3 = 0; - const A3 = s3 * a4 + _26; - b4.lineOffset = Math.max(_26, l4), d3 += A3, m3 = Math.max(A3, m3), ++x3; - } - var v4; - const b3 = d3 - $l, { horizontalAlign: w3, verticalAlign: _25 } = Yl(o3); - (function(t2, e4, r4, n4, i4, a4, s4, o4, l4) { - const u4 = (e4 - r4) * i4; - let c5 = 0; - c5 = a4 !== s4 ? -o4 * n4 - $l : (-n4 * l4 + 0.5) * s4; - for (const e5 of t2) - for (const t3 of e5.positionedGlyphs) - t3.x += u4, t3.y += c5; - })(e3.positionedLines, g3, w3, _25, y4, m3, s3, b3, a3.length), e3.top += -_25 * b3, e3.bottom = e3.top + b3, e3.left += -w3 * y4, e3.right = e3.left + y4; - }(_24, r2, n2, i2, x2, o2, l2, u2, p3, c3, f2, m2), !function(t2) { - for (const e3 of t2) - if (0 !== e3.positionedGlyphs.length) + 0 !== S3.length && (y4 = Math.max(h4 - l3, y4), Tu(S3, 0, S3.length - 1, m3, k3)), h4 = 0; + var N2 = a3 * w3 + k3; + A4.lineOffset = Math.max(k3, _25), f3 += N2, d3 = Math.max(N2, d3), ++v4; + } else + f3 += a3, ++v4; + } + var K2, G2 = f3 - -17, Z3 = Bu(o3), X2 = Z3.horizontalAlign, J2 = Z3.verticalAlign; + (function(t4, e4, r4, n4, i4, a4, o4, s4, u4) { + var l4, p5 = (e4 - r4) * i4; + l4 = a4 !== o4 ? -s4 * n4 - -17 : (-n4 * u4 + 0.5) * o4; + for (var c5 = 0, h5 = t4; c5 < h5.length; c5 += 1) + for (var f4 = 0, y5 = h5[c5].positionedGlyphs; f4 < y5.length; f4 += 1) { + var d4 = y5[f4]; + d4.x += p5, d4.y += l4; + } + })(t3.positionedLines, m3, X2, J2, y4, d3, a3, G2, i3.length), t3.top += -J2 * G2, t3.bottom = t3.top + G2, t3.left += -X2 * y4, t3.right = t3.left + y4; + }(P2, e2, r2, n2, m2, o2, s2, u2, c3, l2, h3, d2), !function(t3) { + for (var e3 = 0, r3 = t3; e3 < r3.length; e3 += 1) + if (0 !== r3[e3].positionedGlyphs.length) return false; return true; - }(w2) && _24; + }(E2) && P2; } - const ql = { 9: true, 10: true, 11: true, 12: true, 13: true, 32: true }, jl = { 10: true, 32: true, 38: true, 40: true, 41: true, 43: true, 45: true, 47: true, 173: true, 183: true, 8203: true, 8208: true, 8211: true, 8231: true }; - function Nl(t2, e2, r2, n2, i2, a2) { - if (e2.imageName) { - const t3 = n2[e2.imageName]; - return t3 ? t3.displaySize[0] * e2.scale * ll / a2 + i2 : 0; + Au.fromFeature = function(t2, e2) { + for (var r2 = new Au(), n2 = 0; n2 < t2.sections.length; n2++) { + var i2 = t2.sections[n2]; + i2.image ? r2.addImageSection(i2) : r2.addTextSection(i2, e2); } - { - const n3 = r2[e2.fontStack], a3 = n3 && n3[t2]; - return a3 ? a3.metrics.advance * e2.scale + i2 : 0; + return r2; + }, Au.prototype.length = function() { + return this.text.length; + }, Au.prototype.getSection = function(t2) { + return this.sections[this.sectionIndex[t2]]; + }, Au.prototype.getSectionIndex = function(t2) { + return this.sectionIndex[t2]; + }, Au.prototype.getCharCode = function(t2) { + return this.text.charCodeAt(t2); + }, Au.prototype.verticalizePunctuation = function() { + this.text = function(t2) { + for (var e2 = "", r2 = 0; r2 < t2.length; r2++) { + var n2 = t2.charCodeAt(r2 + 1) || null, i2 = t2.charCodeAt(r2 - 1) || null; + e2 += n2 && Jn(n2) && !Xs[t2[r2 + 1]] || i2 && Jn(i2) && !Xs[t2[r2 - 1]] || !Xs[t2[r2]] ? t2[r2] : Xs[t2[r2]]; + } + return e2; + }(this.text); + }, Au.prototype.trim = function() { + for (var t2 = 0, e2 = 0; e2 < this.text.length && ku[this.text.charCodeAt(e2)]; e2++) + t2++; + for (var r2 = this.text.length, n2 = this.text.length - 1; n2 >= 0 && n2 >= t2 && ku[this.text.charCodeAt(n2)]; n2--) + r2--; + this.text = this.text.substring(t2, r2), this.sectionIndex = this.sectionIndex.slice(t2, r2); + }, Au.prototype.substring = function(t2, e2) { + var r2 = new Au(); + return r2.text = this.text.substring(t2, e2), r2.sectionIndex = this.sectionIndex.slice(t2, e2), r2.sections = this.sections, r2; + }, Au.prototype.toString = function() { + return this.text; + }, Au.prototype.getMaxScale = function() { + var t2 = this; + return this.sectionIndex.reduce(function(e2, r2) { + return Math.max(e2, t2.sections[r2].scale); + }, 0); + }, Au.prototype.addTextSection = function(t2, e2) { + this.text += t2.text, this.sections.push(_u.forText(t2.scale, t2.fontStack || e2)); + for (var r2 = this.sections.length - 1, n2 = 0; n2 < t2.text.length; ++n2) + this.sectionIndex.push(r2); + }, Au.prototype.addImageSection = function(t2) { + var e2 = t2.image ? t2.image.name : ""; + if (0 !== e2.length) { + var r2 = this.getNextImageSectionCharCode(); + r2 ? (this.text += String.fromCharCode(r2), this.sections.push(_u.forImage(e2)), this.sectionIndex.push(this.sections.length - 1)) : A2("Reached maximum number of images 6401"); + } else + A2("Can't add FormattedSection with an empty image."); + }, Au.prototype.getNextImageSectionCharCode = function() { + return this.imageSectionID ? this.imageSectionID >= 63743 ? null : ++this.imageSectionID : (this.imageSectionID = 57344, this.imageSectionID); + }; + var ku = { 9: true, 10: true, 11: true, 12: true, 13: true, 32: true }, Iu = {}; + function zu(t2, e2, r2, n2, i2, a2) { + if (e2.imageName) { + var o2 = n2[e2.imageName]; + return o2 ? o2.displaySize[0] * e2.scale * 24 / a2 + i2 : 0; } + var s2 = r2[e2.fontStack], u2 = s2 && s2[t2]; + return u2 ? u2.metrics.advance * e2.scale + i2 : 0; } - function Zl(t2, e2, r2, n2) { - const i2 = Math.pow(t2 - e2, 2); + function Cu(t2, e2, r2, n2) { + var i2 = Math.pow(t2 - e2, 2); return n2 ? t2 < e2 ? i2 / 2 : 2 * i2 : i2 + Math.abs(r2) * r2; } - function Kl(t2, e2, r2) { - let n2 = 0; + function Eu(t2, e2, r2) { + var n2 = 0; return 10 === t2 && (n2 -= 1e4), r2 && (n2 += 150), 40 !== t2 && 65288 !== t2 || (n2 += 50), 41 !== e2 && 65289 !== e2 || (n2 += 50), n2; } - function Gl(t2, e2, r2, n2, i2, a2) { - let s2 = null, o2 = Zl(e2, r2, i2, a2); - for (const t3 of n2) { - const n3 = Zl(e2 - t3.x, r2, i2, a2) + t3.badness; - n3 <= o2 && (s2 = t3, o2 = n3); + function Pu(t2, e2, r2, n2, i2, a2) { + for (var o2 = null, s2 = Cu(e2, r2, i2, a2), u2 = 0, l2 = n2; u2 < l2.length; u2 += 1) { + var p3 = l2[u2], c3 = Cu(e2 - p3.x, r2, i2, a2) + p3.badness; + c3 <= s2 && (o2 = p3, s2 = c3); } - return { index: t2, x: e2, priorBreak: s2, badness: o2 }; + return { index: t2, x: e2, priorBreak: o2, badness: s2 }; } - function Jl(t2) { - return t2 ? Jl(t2.priorBreak).concat(t2.index) : []; - } - function Xl(t2, e2, r2, n2, i2, a2, s2) { + function Mu(t2, e2, r2, n2, i2, a2, o2) { if ("point" !== a2) return []; if (!t2) return []; - const o2 = [], l2 = function(t3, e3, r3, n3, i3, a3) { - let s3 = 0; - for (let r4 = 0; r4 < t3.length(); r4++) { - const o3 = t3.getSection(r4); - s3 += Nl(t3.getCharCode(r4), o3, n3, i3, e3, a3); - } - return s3 / Math.max(1, Math.ceil(s3 / r3)); - }(t2, e2, r2, n2, i2, s2), u2 = t2.text.indexOf("\u200B") >= 0; - let c3 = 0; - for (let r3 = 0; r3 < t2.length(); r3++) { - const a3 = t2.getSection(r3), p3 = t2.getCharCode(r3); - if (ql[p3] || (c3 += Nl(p3, a3, n2, i2, e2, s2)), r3 < t2.length() - 1) { - const e3 = !((h3 = p3) < 11904 || !(Vn["Bopomofo Extended"](h3) || Vn.Bopomofo(h3) || Vn["CJK Compatibility Forms"](h3) || Vn["CJK Compatibility Ideographs"](h3) || Vn["CJK Compatibility"](h3) || Vn["CJK Radicals Supplement"](h3) || Vn["CJK Strokes"](h3) || Vn["CJK Symbols and Punctuation"](h3) || Vn["CJK Unified Ideographs Extension A"](h3) || Vn["CJK Unified Ideographs"](h3) || Vn["Enclosed CJK Letters and Months"](h3) || Vn["Halfwidth and Fullwidth Forms"](h3) || Vn.Hiragana(h3) || Vn["Ideographic Description Characters"](h3) || Vn["Kangxi Radicals"](h3) || Vn["Katakana Phonetic Extensions"](h3) || Vn.Katakana(h3) || Vn["Vertical Forms"](h3) || Vn["Yi Radicals"](h3) || Vn["Yi Syllables"](h3))); - (jl[p3] || e3 || a3.imageName) && o2.push(Gl(r3 + 1, c3, l2, o2, Kl(p3, t2.getCharCode(r3 + 1), e3 && u2), false)); - } - } - var h3; - return Jl(Gl(t2.length(), c3, l2, o2, 0, true)); - } - function Yl(t2) { - let e2 = 0.5, r2 = 0.5; + for (var s2, u2 = [], l2 = function(t3, e3, r3, n3, i3, a3) { + for (var o3 = 0, s3 = 0; s3 < t3.length(); s3++) { + var u3 = t3.getSection(s3); + o3 += zu(t3.getCharCode(s3), u3, n3, i3, e3, a3); + } + return o3 / Math.max(1, Math.ceil(o3 / r3)); + }(t2, e2, r2, n2, i2, o2), p3 = t2.text.indexOf("\u200B") >= 0, c3 = 0, h3 = 0; h3 < t2.length(); h3++) { + var f2 = t2.getSection(h3), y3 = t2.getCharCode(h3); + if (ku[y3] || (c3 += zu(y3, f2, n2, i2, e2, o2)), h3 < t2.length() - 1) { + var d2 = !((s2 = y3) < 11904 || !(Gn["Bopomofo Extended"](s2) || Gn.Bopomofo(s2) || Gn["CJK Compatibility Forms"](s2) || Gn["CJK Compatibility Ideographs"](s2) || Gn["CJK Compatibility"](s2) || Gn["CJK Radicals Supplement"](s2) || Gn["CJK Strokes"](s2) || Gn["CJK Symbols and Punctuation"](s2) || Gn["CJK Unified Ideographs Extension A"](s2) || Gn["CJK Unified Ideographs"](s2) || Gn["Enclosed CJK Letters and Months"](s2) || Gn["Halfwidth and Fullwidth Forms"](s2) || Gn.Hiragana(s2) || Gn["Ideographic Description Characters"](s2) || Gn["Kangxi Radicals"](s2) || Gn["Katakana Phonetic Extensions"](s2) || Gn.Katakana(s2) || Gn["Vertical Forms"](s2) || Gn["Yi Radicals"](s2) || Gn["Yi Syllables"](s2))); + (Iu[y3] || d2 || f2.imageName) && u2.push(Pu(h3 + 1, c3, l2, u2, Eu(y3, t2.getCharCode(h3 + 1), d2 && p3), false)); + } + } + return function t3(e3) { + return e3 ? t3(e3.priorBreak).concat(e3.index) : []; + }(Pu(t2.length(), c3, l2, u2, 0, true)); + } + function Bu(t2) { + var e2 = 0.5, r2 = 0.5; switch (t2) { case "right": case "top-right": @@ -21670,303 +21969,263 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ } return { horizontalAlign: e2, verticalAlign: r2 }; } - function Hl(t2, e2, r2, n2, i2) { - if (!n2 && !i2) - return; - const a2 = t2[r2], s2 = (t2[r2].x + a2.metrics.advance * a2.scale) * n2; - for (let n3 = e2; n3 <= r2; n3++) - t2[n3].x -= s2, t2[n3].y += i2; - } - function Wl(t2, e2, r2) { - const { horizontalAlign: n2, verticalAlign: i2 } = Yl(r2), a2 = e2[0] - t2.displaySize[0] * n2, s2 = e2[1] - t2.displaySize[1] * i2; - return { image: t2, top: s2, bottom: s2 + t2.displaySize[1], left: a2, right: a2 + t2.displaySize[0] }; + function Tu(t2, e2, r2, n2, i2) { + if (n2 || i2) + for (var a2 = t2[r2], o2 = (t2[r2].x + a2.metrics.advance * a2.scale) * n2, s2 = e2; s2 <= r2; s2++) + t2[s2].x -= o2, t2[s2].y += i2; } - function Ql(t2, e2, r2, n2, i2, a2) { - const s2 = t2.image; - let o2; + function Vu(t2, e2, r2, n2, i2, a2) { + var o2, s2 = t2.image; if (s2.content) { - const t3 = s2.content, e3 = s2.pixelRatio || 1; - o2 = [t3[0] / e3, t3[1] / e3, s2.displaySize[0] - t3[2] / e3, s2.displaySize[1] - t3[3] / e3]; - } - const l2 = e2.left * a2, u2 = e2.right * a2; - let c3, h3, p3, f2; - "width" === r2 || "both" === r2 ? (f2 = i2[0] + l2 - n2[3], h3 = i2[0] + u2 + n2[1]) : (f2 = i2[0] + (l2 + u2 - s2.displaySize[0]) / 2, h3 = f2 + s2.displaySize[0]); - const d2 = e2.top * a2, y3 = e2.bottom * a2; - return "height" === r2 || "both" === r2 ? (c3 = i2[1] + d2 - n2[0], p3 = i2[1] + y3 + n2[2]) : (c3 = i2[1] + (d2 + y3 - s2.displaySize[1]) / 2, p3 = c3 + s2.displaySize[1]), { image: s2, top: c3, right: h3, bottom: p3, left: f2, collisionPadding: o2 }; - } - const tu = 128; - function eu(t2, e2) { - const { expression: r2 } = e2; + var u2 = s2.content, l2 = s2.pixelRatio || 1; + o2 = [u2[0] / l2, u2[1] / l2, s2.displaySize[0] - u2[2] / l2, s2.displaySize[1] - u2[3] / l2]; + } + var p3, c3, h3, f2, y3 = e2.left * a2, d2 = e2.right * a2; + "width" === r2 || "both" === r2 ? (f2 = i2[0] + y3 - n2[3], c3 = i2[0] + d2 + n2[1]) : c3 = (f2 = i2[0] + (y3 + d2 - s2.displaySize[0]) / 2) + s2.displaySize[0]; + var m2 = e2.top * a2, v3 = e2.bottom * a2; + return "height" === r2 || "both" === r2 ? (p3 = i2[1] + m2 - n2[0], h3 = i2[1] + v3 + n2[2]) : h3 = (p3 = i2[1] + (m2 + v3 - s2.displaySize[1]) / 2) + s2.displaySize[1], { image: s2, top: p3, right: c3, bottom: h3, left: f2, collisionPadding: o2 }; + } + Iu[10] = true, Iu[32] = true, Iu[38] = true, Iu[40] = true, Iu[41] = true, Iu[43] = true, Iu[45] = true, Iu[47] = true, Iu[173] = true, Iu[183] = true, Iu[8203] = true, Iu[8208] = true, Iu[8211] = true, Iu[8231] = true; + var Fu = function(t2) { + function e2(e3, r2, n2, i2) { + t2.call(this, e3, r2), this.angle = n2, void 0 !== i2 && (this.segment = i2); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.clone = function() { + return new e2(this.x, this.y, this.angle, this.segment); + }, e2; + }(i); + function Du(t2, e2) { + var r2 = e2.expression; if ("constant" === r2.kind) - return { kind: "constant", layoutSize: r2.evaluate(new Qn(t2 + 1)) }; + return { kind: "constant", layoutSize: r2.evaluate(new si(t2 + 1)) }; if ("source" === r2.kind) return { kind: "source" }; - { - const { zoomStops: e3, interpolationType: n2 } = r2; - let i2 = 0; - for (; i2 < e3.length && e3[i2] <= t2; ) - i2++; - i2 = Math.max(0, i2 - 1); - let a2 = i2; - for (; a2 < e3.length && e3[a2] < t2 + 1; ) - a2++; - a2 = Math.min(e3.length - 1, a2); - const s2 = e3[i2], o2 = e3[a2]; - return "composite" === r2.kind ? { kind: "composite", minZoom: s2, maxZoom: o2, interpolationType: n2 } : { kind: "camera", minZoom: s2, maxZoom: o2, minSize: r2.evaluate(new Qn(s2)), maxSize: r2.evaluate(new Qn(o2)), interpolationType: n2 }; - } - } - class ru extends S { - constructor(t2, e2, r2, n2) { - super(t2, e2), this.angle = r2, void 0 !== n2 && (this.segment = n2); - } - clone() { - return new ru(this.x, this.y, this.angle, this.segment); + for (var n2 = r2.zoomStops, i2 = r2.interpolationType, a2 = 0; a2 < n2.length && n2[a2] <= t2; ) + a2++; + for (var o2 = a2 = Math.max(0, a2 - 1); o2 < n2.length && n2[o2] < t2 + 1; ) + o2++; + o2 = Math.min(n2.length - 1, o2); + var s2 = n2[a2], u2 = n2[o2]; + return "composite" === r2.kind ? { kind: "composite", minZoom: s2, maxZoom: u2, interpolationType: i2 } : { kind: "camera", minZoom: s2, maxZoom: u2, minSize: r2.evaluate(new si(s2)), maxSize: r2.evaluate(new si(u2)), interpolationType: i2 }; + } + function Lu(t2, e2, r2) { + var n2 = e2.uSize, i2 = r2.lowerSize; + return "source" === t2.kind ? i2 / 128 : "composite" === t2.kind ? Ke(i2 / 128, r2.upperSize / 128, e2.uSizeT) : n2; + } + function Ou(t2, e2) { + var r2 = 0, n2 = 0; + if ("constant" === t2.kind) + n2 = t2.layoutSize; + else if ("source" !== t2.kind) { + var i2 = t2.interpolationType, a2 = i2 ? p2(ar.interpolationFactor(i2, e2, t2.minZoom, t2.maxZoom), 0, 1) : 0; + "camera" === t2.kind ? n2 = Ke(t2.minSize, t2.maxSize, a2) : r2 = a2; } + return { uSizeT: r2, uSize: n2 }; } - function nu(t2, e2, r2, n2, i2) { + On("Anchor", Fu); + var Ru = Object.freeze({ __proto__: null, getSizeData: Du, evaluateSizeForFeature: Lu, evaluateSizeForZoom: Ou, SIZE_PACK_FACTOR: 128 }); + function Uu(t2, e2, r2, n2, i2) { if (void 0 === e2.segment) return true; - let a2 = e2, s2 = e2.segment + 1, o2 = 0; - for (; o2 > -r2 / 2; ) { - if (s2--, s2 < 0) + for (var a2 = e2, o2 = e2.segment + 1, s2 = 0; s2 > -r2 / 2; ) { + if (--o2 < 0) return false; - o2 -= t2[s2].dist(a2), a2 = t2[s2]; + s2 -= t2[o2].dist(a2), a2 = t2[o2]; } - o2 += t2[s2].dist(t2[s2 + 1]), s2++; - const l2 = []; - let u2 = 0; - for (; o2 < r2 / 2; ) { - const e3 = t2[s2], r3 = t2[s2 + 1]; - if (!r3) + s2 += t2[o2].dist(t2[o2 + 1]), o2++; + for (var u2 = [], l2 = 0; s2 < r2 / 2; ) { + var p3 = t2[o2], c3 = t2[o2 + 1]; + if (!c3) return false; - let a3 = t2[s2 - 1].angleTo(e3) - e3.angleTo(r3); - for (a3 = Math.abs((a3 + 3 * Math.PI) % (2 * Math.PI) - Math.PI), l2.push({ distance: o2, angleDelta: a3 }), u2 += a3; o2 - l2[0].distance > n2; ) - u2 -= l2.shift().angleDelta; - if (u2 > i2) + var h3 = t2[o2 - 1].angleTo(p3) - p3.angleTo(c3); + for (h3 = Math.abs((h3 + 3 * Math.PI) % (2 * Math.PI) - Math.PI), u2.push({ distance: s2, angleDelta: h3 }), l2 += h3; s2 - u2[0].distance > n2; ) + l2 -= u2.shift().angleDelta; + if (l2 > i2) return false; - s2++, o2 += e3.dist(r3); + o2++, s2 += p3.dist(c3); } return true; } - function iu(t2) { - let e2 = 0; - for (let r2 = 0; r2 < t2.length - 1; r2++) + function ju(t2) { + for (var e2 = 0, r2 = 0; r2 < t2.length - 1; r2++) e2 += t2[r2].dist(t2[r2 + 1]); return e2; } - function au(t2, e2, r2) { + function qu(t2, e2, r2) { return t2 ? 0.6 * e2 * r2 : 0; } - function su(t2, e2) { + function Nu(t2, e2) { return Math.max(t2 ? t2.right - t2.left : 0, e2 ? e2.right - e2.left : 0); } - function ou(t2, e2, r2, n2, i2, a2) { - const s2 = au(r2, i2, a2), o2 = su(r2, n2) * a2; - let l2 = 0; - const u2 = iu(t2) / 2; - for (let r3 = 0; r3 < t2.length - 1; r3++) { - const n3 = t2[r3], i3 = t2[r3 + 1], a3 = n3.dist(i3); - if (l2 + a3 > u2) { - const c3 = (u2 - l2) / a3, h3 = Se(n3.x, i3.x, c3), p3 = Se(n3.y, i3.y, c3), f2 = new ru(h3, p3, i3.angleTo(n3), r3); - return f2._round(), !s2 || nu(t2, f2, o2, s2, e2) ? f2 : void 0; - } - l2 += a3; - } - } - function lu(t2, e2, r2, n2, i2, a2, s2, o2, l2) { - const u2 = au(n2, a2, s2), c3 = su(n2, i2), h3 = c3 * s2, p3 = 0 === t2[0].x || t2[0].x === l2 || 0 === t2[0].y || t2[0].y === l2; - return e2 - h3 < e2 / 4 && (e2 = h3 + e2 / 4), uu(t2, p3 ? e2 / 2 * o2 % e2 : (c3 / 2 + 2 * a2) * s2 * o2 % e2, e2, u2, r2, h3, p3, false, l2); - } - function uu(t2, e2, r2, n2, i2, a2, s2, o2, l2) { - const u2 = a2 / 2, c3 = iu(t2); - let h3 = 0, p3 = e2 - r2, f2 = []; - for (let e3 = 0; e3 < t2.length - 1; e3++) { - const s3 = t2[e3], o3 = t2[e3 + 1], d2 = s3.dist(o3), y3 = o3.angleTo(s3); - for (; p3 + r2 < h3 + d2; ) { - p3 += r2; - const m2 = (p3 - h3) / d2, g2 = Se(s3.x, o3.x, m2), x2 = Se(s3.y, o3.y, m2); - if (g2 >= 0 && g2 < l2 && x2 >= 0 && x2 < l2 && p3 - u2 >= 0 && p3 + u2 <= c3) { - const r3 = new ru(g2, x2, y3, e3); - r3._round(), n2 && !nu(t2, r3, a2, n2, i2) || f2.push(r3); + function Ku(t2, e2, r2, n2, i2, a2) { + for (var o2 = qu(r2, i2, a2), s2 = Nu(r2, n2) * a2, u2 = 0, l2 = ju(t2) / 2, p3 = 0; p3 < t2.length - 1; p3++) { + var c3 = t2[p3], h3 = t2[p3 + 1], f2 = c3.dist(h3); + if (u2 + f2 > l2) { + var y3 = (l2 - u2) / f2, d2 = Ke(c3.x, h3.x, y3), m2 = Ke(c3.y, h3.y, y3), v3 = new Fu(d2, m2, h3.angleTo(c3), p3); + return v3._round(), !o2 || Uu(t2, v3, s2, o2, e2) ? v3 : void 0; + } + u2 += f2; + } + } + function Gu(t2, e2, r2, n2, i2, a2, o2, s2, u2) { + var l2 = qu(n2, a2, o2), p3 = Nu(n2, i2), c3 = p3 * o2, h3 = 0 === t2[0].x || t2[0].x === u2 || 0 === t2[0].y || t2[0].y === u2; + return e2 - c3 < e2 / 4 && (e2 = c3 + e2 / 4), function t3(e3, r3, n3, i3, a3, o3, s3, u3, l3) { + for (var p4 = o3 / 2, c4 = ju(e3), h4 = 0, f2 = r3 - n3, y3 = [], d2 = 0; d2 < e3.length - 1; d2++) { + for (var m2 = e3[d2], v3 = e3[d2 + 1], g2 = m2.dist(v3), x2 = v3.angleTo(m2); f2 + n3 < h4 + g2; ) { + var b2 = ((f2 += n3) - h4) / g2, w2 = Ke(m2.x, v3.x, b2), _24 = Ke(m2.y, v3.y, b2); + if (w2 >= 0 && w2 < l3 && _24 >= 0 && _24 < l3 && f2 - p4 >= 0 && f2 + p4 <= c4) { + var A3 = new Fu(w2, _24, x2, d2); + A3._round(), i3 && !Uu(e3, A3, o3, i3, a3) || y3.push(A3); + } } + h4 += g2; } - h3 += d2; - } - return o2 || f2.length || s2 || (f2 = uu(t2, h3 / 2, r2, n2, i2, a2, s2, true, l2)), f2; + return u3 || y3.length || s3 || (y3 = t3(e3, h4 / 2, n3, i3, a3, o3, s3, true, l3)), y3; + }(t2, h3 ? e2 / 2 * s2 % e2 : (p3 / 2 + 2 * a2) * o2 * s2 % e2, e2, l2, r2, c3, h3, false, u2); } - function cu(t2, e2, r2, n2, i2) { - const a2 = []; - for (let s2 = 0; s2 < t2.length; s2++) { - const o2 = t2[s2]; - let l2; - for (let t3 = 0; t3 < o2.length - 1; t3++) { - let s3 = o2[t3], u2 = o2[t3 + 1]; - s3.x < e2 && u2.x < e2 || (s3.x < e2 ? s3 = new S(e2, s3.y + (e2 - s3.x) / (u2.x - s3.x) * (u2.y - s3.y))._round() : u2.x < e2 && (u2 = new S(e2, s3.y + (e2 - s3.x) / (u2.x - s3.x) * (u2.y - s3.y))._round()), s3.y < r2 && u2.y < r2 || (s3.y < r2 ? s3 = new S(s3.x + (r2 - s3.y) / (u2.y - s3.y) * (u2.x - s3.x), r2)._round() : u2.y < r2 && (u2 = new S(s3.x + (r2 - s3.y) / (u2.y - s3.y) * (u2.x - s3.x), r2)._round()), s3.x >= n2 && u2.x >= n2 || (s3.x >= n2 ? s3 = new S(n2, s3.y + (n2 - s3.x) / (u2.x - s3.x) * (u2.y - s3.y))._round() : u2.x >= n2 && (u2 = new S(n2, s3.y + (n2 - s3.x) / (u2.x - s3.x) * (u2.y - s3.y))._round()), s3.y >= i2 && u2.y >= i2 || (s3.y >= i2 ? s3 = new S(s3.x + (i2 - s3.y) / (u2.y - s3.y) * (u2.x - s3.x), i2)._round() : u2.y >= i2 && (u2 = new S(s3.x + (i2 - s3.y) / (u2.y - s3.y) * (u2.x - s3.x), i2)._round()), l2 && s3.equals(l2[l2.length - 1]) || (l2 = [s3], a2.push(l2)), l2.push(u2))))); + function Zu(t2, e2, r2, n2, a2) { + for (var o2 = [], s2 = 0; s2 < t2.length; s2++) + for (var u2 = t2[s2], l2 = void 0, p3 = 0; p3 < u2.length - 1; p3++) { + var c3 = u2[p3], h3 = u2[p3 + 1]; + c3.x < e2 && h3.x < e2 || (c3.x < e2 ? c3 = new i(e2, c3.y + (e2 - c3.x) / (h3.x - c3.x) * (h3.y - c3.y))._round() : h3.x < e2 && (h3 = new i(e2, c3.y + (e2 - c3.x) / (h3.x - c3.x) * (h3.y - c3.y))._round()), c3.y < r2 && h3.y < r2 || (c3.y < r2 ? c3 = new i(c3.x + (r2 - c3.y) / (h3.y - c3.y) * (h3.x - c3.x), r2)._round() : h3.y < r2 && (h3 = new i(c3.x + (r2 - c3.y) / (h3.y - c3.y) * (h3.x - c3.x), r2)._round()), c3.x >= n2 && h3.x >= n2 || (c3.x >= n2 ? c3 = new i(n2, c3.y + (n2 - c3.x) / (h3.x - c3.x) * (h3.y - c3.y))._round() : h3.x >= n2 && (h3 = new i(n2, c3.y + (n2 - c3.x) / (h3.x - c3.x) * (h3.y - c3.y))._round()), c3.y >= a2 && h3.y >= a2 || (c3.y >= a2 ? c3 = new i(c3.x + (a2 - c3.y) / (h3.y - c3.y) * (h3.x - c3.x), a2)._round() : h3.y >= a2 && (h3 = new i(c3.x + (a2 - c3.y) / (h3.y - c3.y) * (h3.x - c3.x), a2)._round()), l2 && c3.equals(l2[l2.length - 1]) || o2.push(l2 = [c3]), l2.push(h3))))); } - } - return a2; + return o2; } - function hu(t2, e2, r2, n2) { - const i2 = [], a2 = t2.image, s2 = a2.pixelRatio, o2 = a2.paddedRect.w - 2, l2 = a2.paddedRect.h - 2, u2 = t2.right - t2.left, c3 = t2.bottom - t2.top, h3 = a2.stretchX || [[0, o2]], p3 = a2.stretchY || [[0, l2]], f2 = (t3, e3) => t3 + e3[1] - e3[0], d2 = h3.reduce(f2, 0), y3 = p3.reduce(f2, 0), m2 = o2 - d2, g2 = l2 - y3; - let x2 = 0, v3 = d2, b2 = 0, w2 = y3, _24 = 0, A3 = m2, k2 = 0, I3 = g2; - if (a2.content && n2) { - const t3 = a2.content; - x2 = pu(h3, 0, t3[0]), b2 = pu(p3, 0, t3[1]), v3 = pu(h3, t3[0], t3[2]), w2 = pu(p3, t3[1], t3[3]), _24 = t3[0] - x2, k2 = t3[1] - b2, A3 = t3[2] - t3[0] - v3, I3 = t3[3] - t3[1] - w2; - } - const M2 = (n3, i3, o3, l3) => { - const h4 = du(n3.stretch - x2, v3, u2, t2.left), p4 = yu(n3.fixed - _24, A3, n3.stretch, d2), f3 = du(i3.stretch - b2, w2, c3, t2.top), m3 = yu(i3.fixed - k2, I3, i3.stretch, y3), g3 = du(o3.stretch - x2, v3, u2, t2.left), M3 = yu(o3.fixed - _24, A3, o3.stretch, d2), z2 = du(l3.stretch - b2, w2, c3, t2.top), B2 = yu(l3.fixed - k2, I3, l3.stretch, y3), C2 = new S(h4, f3), P2 = new S(g3, f3), V3 = new S(g3, z2), E2 = new S(h4, z2), F2 = new S(p4 / s2, m3 / s2), T2 = new S(M3 / s2, B2 / s2), L2 = e2 * Math.PI / 180; - if (L2) { - const t3 = Math.sin(L2), e3 = Math.cos(L2), r3 = [e3, -t3, t3, e3]; - C2._matMult(r3), P2._matMult(r3), E2._matMult(r3), V3._matMult(r3); - } - const D2 = n3.stretch + n3.fixed, $2 = i3.stretch + i3.fixed; - return { tl: C2, tr: P2, bl: E2, br: V3, tex: { x: a2.paddedRect.x + 1 + D2, y: a2.paddedRect.y + 1 + $2, w: o3.stretch + o3.fixed - D2, h: l3.stretch + l3.fixed - $2 }, writingMode: void 0, glyphOffset: [0, 0], sectionIndex: 0, pixelOffsetTL: F2, pixelOffsetBR: T2, minFontScaleX: A3 / s2 / u2, minFontScaleY: I3 / s2 / c3, isSDF: r2 }; + function Xu(t2, e2, r2, n2) { + var a2 = [], o2 = t2.image, s2 = o2.pixelRatio, u2 = o2.paddedRect.w - 2, l2 = o2.paddedRect.h - 2, p3 = t2.right - t2.left, c3 = t2.bottom - t2.top, h3 = o2.stretchX || [[0, u2]], f2 = o2.stretchY || [[0, l2]], y3 = function(t3, e3) { + return t3 + e3[1] - e3[0]; + }, d2 = h3.reduce(y3, 0), m2 = f2.reduce(y3, 0), v3 = u2 - d2, g2 = l2 - m2, x2 = 0, b2 = d2, w2 = 0, _24 = m2, A3 = 0, S2 = v3, k2 = 0, I3 = g2; + if (o2.content && n2) { + var z2 = o2.content; + x2 = Ju(h3, 0, z2[0]), w2 = Ju(f2, 0, z2[1]), b2 = Ju(h3, z2[0], z2[2]), _24 = Ju(f2, z2[1], z2[3]), A3 = z2[0] - x2, k2 = z2[1] - w2, S2 = z2[2] - z2[0] - b2, I3 = z2[3] - z2[1] - _24; + } + var C2 = function(n3, a3, u3, l3) { + var h4 = Yu(n3.stretch - x2, b2, p3, t2.left), f3 = $u(n3.fixed - A3, S2, n3.stretch, d2), y4 = Yu(a3.stretch - w2, _24, c3, t2.top), v4 = $u(a3.fixed - k2, I3, a3.stretch, m2), g3 = Yu(u3.stretch - x2, b2, p3, t2.left), z3 = $u(u3.fixed - A3, S2, u3.stretch, d2), C3 = Yu(l3.stretch - w2, _24, c3, t2.top), E3 = $u(l3.fixed - k2, I3, l3.stretch, m2), P3 = new i(h4, y4), M3 = new i(g3, y4), B3 = new i(g3, C3), T3 = new i(h4, C3), V4 = new i(f3 / s2, v4 / s2), F2 = new i(z3 / s2, E3 / s2), D2 = e2 * Math.PI / 180; + if (D2) { + var L2 = Math.sin(D2), O3 = Math.cos(D2), R2 = [O3, -L2, L2, O3]; + P3._matMult(R2), M3._matMult(R2), T3._matMult(R2), B3._matMult(R2); + } + var U2 = n3.stretch + n3.fixed, j2 = a3.stretch + a3.fixed; + return { tl: P3, tr: M3, bl: T3, br: B3, tex: { x: o2.paddedRect.x + 1 + U2, y: o2.paddedRect.y + 1 + j2, w: u3.stretch + u3.fixed - U2, h: l3.stretch + l3.fixed - j2 }, writingMode: void 0, glyphOffset: [0, 0], sectionIndex: 0, pixelOffsetTL: V4, pixelOffsetBR: F2, minFontScaleX: S2 / s2 / p3, minFontScaleY: I3 / s2 / c3, isSDF: r2 }; }; - if (n2 && (a2.stretchX || a2.stretchY)) { - const t3 = fu(h3, m2, d2), e3 = fu(p3, g2, y3); - for (let r3 = 0; r3 < t3.length - 1; r3++) { - const n3 = t3[r3], a3 = t3[r3 + 1]; - for (let t4 = 0; t4 < e3.length - 1; t4++) - i2.push(M2(n3, e3[t4], a3, e3[t4 + 1])); - } - } else - i2.push(M2({ fixed: 0, stretch: -1 }, { fixed: 0, stretch: -1 }, { fixed: 0, stretch: o2 + 1 }, { fixed: 0, stretch: l2 + 1 })); - return i2; + if (n2 && (o2.stretchX || o2.stretchY)) + for (var E2 = Hu(h3, v3, d2), P2 = Hu(f2, g2, m2), M2 = 0; M2 < E2.length - 1; M2++) + for (var B2 = E2[M2], T2 = E2[M2 + 1], V3 = 0; V3 < P2.length - 1; V3++) + a2.push(C2(B2, P2[V3], T2, P2[V3 + 1])); + else + a2.push(C2({ fixed: 0, stretch: -1 }, { fixed: 0, stretch: -1 }, { fixed: 0, stretch: u2 + 1 }, { fixed: 0, stretch: l2 + 1 })); + return a2; } - function pu(t2, e2, r2) { - let n2 = 0; - for (const i2 of t2) - n2 += Math.max(e2, Math.min(r2, i2[1])) - Math.max(e2, Math.min(r2, i2[0])); + function Ju(t2, e2, r2) { + for (var n2 = 0, i2 = 0, a2 = t2; i2 < a2.length; i2 += 1) { + var o2 = a2[i2]; + n2 += Math.max(e2, Math.min(r2, o2[1])) - Math.max(e2, Math.min(r2, o2[0])); + } return n2; } - function fu(t2, e2, r2) { - const n2 = [{ fixed: -1, stretch: 0 }]; - for (const [e3, r3] of t2) { - const t3 = n2[n2.length - 1]; - n2.push({ fixed: e3 - t3.stretch, stretch: t3.stretch }), n2.push({ fixed: e3 - t3.stretch, stretch: t3.stretch + (r3 - e3) }); + function Hu(t2, e2, r2) { + for (var n2 = [{ fixed: -1, stretch: 0 }], i2 = 0, a2 = t2; i2 < a2.length; i2 += 1) { + var o2 = a2[i2], s2 = o2[0], u2 = o2[1], l2 = n2[n2.length - 1]; + n2.push({ fixed: s2 - l2.stretch, stretch: l2.stretch }), n2.push({ fixed: s2 - l2.stretch, stretch: l2.stretch + (u2 - s2) }); } return n2.push({ fixed: e2 + 1, stretch: r2 }), n2; } - function du(t2, e2, r2, n2) { + function Yu(t2, e2, r2, n2) { return t2 / e2 * r2 + n2; } - function yu(t2, e2, r2, n2) { + function $u(t2, e2, r2, n2) { return t2 - e2 * r2 / n2; } - Mn("Anchor", ru); - class mu { - constructor(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2) { - if (this.boxStartIndex = t2.length, l2) { - let t3 = a2.top, e3 = a2.bottom; - const r3 = a2.collisionPadding; - r3 && (t3 -= r3[1], e3 += r3[3]); - let n3 = e3 - t3; - n3 > 0 && (n3 = Math.max(10, n3), this.circleDiameter = n3); - } else { - let l3 = a2.top * s2 - o2[0], c3 = a2.bottom * s2 + o2[2], h3 = a2.left * s2 - o2[3], p3 = a2.right * s2 + o2[1]; - const f2 = a2.collisionPadding; - if (f2 && (h3 -= f2[0] * s2, l3 -= f2[1] * s2, p3 += f2[2] * s2, c3 += f2[3] * s2), u2) { - const t3 = new S(h3, l3), e3 = new S(p3, l3), r3 = new S(h3, c3), n3 = new S(p3, c3), i3 = u2 * Math.PI / 180; - t3._rotate(i3), e3._rotate(i3), r3._rotate(i3), n3._rotate(i3), h3 = Math.min(t3.x, e3.x, r3.x, n3.x), p3 = Math.max(t3.x, e3.x, r3.x, n3.x), l3 = Math.min(t3.y, e3.y, r3.y, n3.y), c3 = Math.max(t3.y, e3.y, r3.y, n3.y); - } - t2.emplaceBack(e2.x, e2.y, h3, l3, p3, c3, r2, n2, i2); - } - this.boxEndIndex = t2.length; - } - } - class gu { - constructor(t2 = [], e2 = xu) { - if (this.data = t2, this.length = this.data.length, this.compare = e2, this.length > 0) - for (let t3 = (this.length >> 1) - 1; t3 >= 0; t3--) - this._down(t3); - } - push(t2) { - this.data.push(t2), this.length++, this._up(this.length - 1); - } - pop() { - if (0 === this.length) - return; - const t2 = this.data[0], e2 = this.data.pop(); - return this.length--, this.length > 0 && (this.data[0] = e2, this._down(0)), t2; - } - peek() { - return this.data[0]; - } - _up(t2) { - const { data: e2, compare: r2 } = this, n2 = e2[t2]; - for (; t2 > 0; ) { - const i2 = t2 - 1 >> 1, a2 = e2[i2]; - if (r2(n2, a2) >= 0) - break; - e2[t2] = a2, t2 = i2; - } - e2[t2] = n2; - } - _down(t2) { - const { data: e2, compare: r2 } = this, n2 = this.length >> 1, i2 = e2[t2]; - for (; t2 < n2; ) { - let n3 = 1 + (t2 << 1), a2 = e2[n3]; - const s2 = n3 + 1; - if (s2 < this.length && r2(e2[s2], a2) < 0 && (n3 = s2, a2 = e2[s2]), r2(a2, i2) >= 0) - break; - e2[t2] = a2, t2 = n3; - } - e2[t2] = i2; - } - } - function xu(t2, e2) { + var Wu = function(t2, e2, r2, n2, a2, o2, s2, u2, l2, p3) { + if (this.boxStartIndex = t2.length, l2) { + var c3 = o2.top, h3 = o2.bottom, f2 = o2.collisionPadding; + f2 && (c3 -= f2[1], h3 += f2[3]); + var y3 = h3 - c3; + y3 > 0 && (y3 = Math.max(10, y3), this.circleDiameter = y3); + } else { + var d2 = o2.top * s2 - u2, m2 = o2.bottom * s2 + u2, v3 = o2.left * s2 - u2, g2 = o2.right * s2 + u2, x2 = o2.collisionPadding; + if (x2 && (v3 -= x2[0] * s2, d2 -= x2[1] * s2, g2 += x2[2] * s2, m2 += x2[3] * s2), p3) { + var b2 = new i(v3, d2), w2 = new i(g2, d2), _24 = new i(v3, m2), A3 = new i(g2, m2), S2 = p3 * Math.PI / 180; + b2._rotate(S2), w2._rotate(S2), _24._rotate(S2), A3._rotate(S2), v3 = Math.min(b2.x, w2.x, _24.x, A3.x), g2 = Math.max(b2.x, w2.x, _24.x, A3.x), d2 = Math.min(b2.y, w2.y, _24.y, A3.y), m2 = Math.max(b2.y, w2.y, _24.y, A3.y); + } + t2.emplaceBack(e2.x, e2.y, v3, d2, g2, m2, r2, n2, a2); + } + this.boxEndIndex = t2.length; + }, Qu = function(t2, e2) { + if (void 0 === t2 && (t2 = []), void 0 === e2 && (e2 = tl), this.data = t2, this.length = this.data.length, this.compare = e2, this.length > 0) + for (var r2 = (this.length >> 1) - 1; r2 >= 0; r2--) + this._down(r2); + }; + function tl(t2, e2) { return t2 < e2 ? -1 : t2 > e2 ? 1 : 0; } - function vu(t2, e2 = 1, r2 = false) { - let n2 = 1 / 0, i2 = 1 / 0, a2 = -1 / 0, s2 = -1 / 0; - const o2 = t2[0]; - for (let t3 = 0; t3 < o2.length; t3++) { - const e3 = o2[t3]; - (!t3 || e3.x < n2) && (n2 = e3.x), (!t3 || e3.y < i2) && (i2 = e3.y), (!t3 || e3.x > a2) && (a2 = e3.x), (!t3 || e3.y > s2) && (s2 = e3.y); - } - const l2 = Math.min(a2 - n2, s2 - i2); - let u2 = l2 / 2; - const c3 = new gu([], bu); - if (0 === l2) - return new S(n2, i2); - for (let e3 = n2; e3 < a2; e3 += l2) - for (let r3 = i2; r3 < s2; r3 += l2) - c3.push(new wu(e3 + u2, r3 + u2, u2, t2)); - let h3 = function(t3) { - let e3 = 0, r3 = 0, n3 = 0; - const i3 = t3[0]; - for (let t4 = 0, a3 = i3.length, s3 = a3 - 1; t4 < a3; s3 = t4++) { - const a4 = i3[t4], o3 = i3[s3], l3 = a4.x * o3.y - o3.x * a4.y; - r3 += (a4.x + o3.x) * l3, n3 += (a4.y + o3.y) * l3, e3 += 3 * l3; - } - return new wu(r3 / e3, n3 / e3, 0, t3); - }(t2), p3 = c3.length; - for (; c3.length; ) { - const n3 = c3.pop(); - (n3.d > h3.d || !h3.d) && (h3 = n3, r2 && console.log("found best %d after %d probes", Math.round(1e4 * n3.d) / 1e4, p3)), n3.max - h3.d <= e2 || (u2 = n3.h / 2, c3.push(new wu(n3.p.x - u2, n3.p.y - u2, u2, t2)), c3.push(new wu(n3.p.x + u2, n3.p.y - u2, u2, t2)), c3.push(new wu(n3.p.x - u2, n3.p.y + u2, u2, t2)), c3.push(new wu(n3.p.x + u2, n3.p.y + u2, u2, t2)), p3 += 4); - } - return r2 && (console.log(`num probes: ${p3}`), console.log(`best distance: ${h3.d}`)), h3.p; - } - function bu(t2, e2) { + function el(t2, e2, r2) { + void 0 === e2 && (e2 = 1), void 0 === r2 && (r2 = false); + for (var n2 = 1 / 0, a2 = 1 / 0, o2 = -1 / 0, s2 = -1 / 0, u2 = t2[0], l2 = 0; l2 < u2.length; l2++) { + var p3 = u2[l2]; + (!l2 || p3.x < n2) && (n2 = p3.x), (!l2 || p3.y < a2) && (a2 = p3.y), (!l2 || p3.x > o2) && (o2 = p3.x), (!l2 || p3.y > s2) && (s2 = p3.y); + } + var c3 = Math.min(o2 - n2, s2 - a2), h3 = c3 / 2, f2 = new Qu([], rl); + if (0 === c3) + return new i(n2, a2); + for (var y3 = n2; y3 < o2; y3 += c3) + for (var d2 = a2; d2 < s2; d2 += c3) + f2.push(new nl(y3 + h3, d2 + h3, h3, t2)); + for (var m2 = function(t3) { + for (var e3 = 0, r3 = 0, n3 = 0, i2 = t3[0], a3 = 0, o3 = i2.length, s3 = o3 - 1; a3 < o3; s3 = a3++) { + var u3 = i2[a3], l3 = i2[s3], p4 = u3.x * l3.y - l3.x * u3.y; + r3 += (u3.x + l3.x) * p4, n3 += (u3.y + l3.y) * p4, e3 += 3 * p4; + } + return new nl(r3 / e3, n3 / e3, 0, t3); + }(t2), v3 = f2.length; f2.length; ) { + var g2 = f2.pop(); + (g2.d > m2.d || !m2.d) && (m2 = g2, r2 && console.log("found best %d after %d probes", Math.round(1e4 * g2.d) / 1e4, v3)), g2.max - m2.d <= e2 || (f2.push(new nl(g2.p.x - (h3 = g2.h / 2), g2.p.y - h3, h3, t2)), f2.push(new nl(g2.p.x + h3, g2.p.y - h3, h3, t2)), f2.push(new nl(g2.p.x - h3, g2.p.y + h3, h3, t2)), f2.push(new nl(g2.p.x + h3, g2.p.y + h3, h3, t2)), v3 += 4); + } + return r2 && (console.log("num probes: " + v3), console.log("best distance: " + m2.d)), m2.p; + } + function rl(t2, e2) { return e2.max - t2.max; } - function wu(t2, e2, r2, n2) { - this.p = new S(t2, e2), this.h = r2, this.d = function(t3, e3) { - let r3 = false, n3 = 1 / 0; - for (let i2 = 0; i2 < e3.length; i2++) { - const a2 = e3[i2]; - for (let e4 = 0, i3 = a2.length, s2 = i3 - 1; e4 < i3; s2 = e4++) { - const i4 = a2[e4], o2 = a2[s2]; - i4.y > t3.y != o2.y > t3.y && t3.x < (o2.x - i4.x) * (t3.y - i4.y) / (o2.y - i4.y) + i4.x && (r3 = !r3), n3 = Math.min(n3, rs(t3, i4, o2)); + function nl(t2, e2, r2, n2) { + this.p = new i(t2, e2), this.h = r2, this.d = function(t3, e3) { + for (var r3 = false, n3 = 1 / 0, i2 = 0; i2 < e3.length; i2++) + for (var a2 = e3[i2], o2 = 0, s2 = a2.length, u2 = s2 - 1; o2 < s2; u2 = o2++) { + var l2 = a2[o2], p3 = a2[u2]; + l2.y > t3.y != p3.y > t3.y && t3.x < (p3.x - l2.x) * (t3.y - l2.y) / (p3.y - l2.y) + l2.x && (r3 = !r3), n3 = Math.min(n3, Ya(t3, l2, p3)); } - } return (r3 ? 1 : -1) * Math.sqrt(n3); }(this.p, n2), this.max = this.d + this.h * Math.SQRT2; } - const _u = Number.POSITIVE_INFINITY; - function Au(t2, e2) { - return e2[1] !== _u ? function(t3, e3, r2) { - let n2 = 0, i2 = 0; + Qu.prototype.push = function(t2) { + this.data.push(t2), this.length++, this._up(this.length - 1); + }, Qu.prototype.pop = function() { + if (0 !== this.length) { + var t2 = this.data[0], e2 = this.data.pop(); + return this.length--, this.length > 0 && (this.data[0] = e2, this._down(0)), t2; + } + }, Qu.prototype.peek = function() { + return this.data[0]; + }, Qu.prototype._up = function(t2) { + for (var e2 = this.data, r2 = this.compare, n2 = e2[t2]; t2 > 0; ) { + var i2 = t2 - 1 >> 1, a2 = e2[i2]; + if (r2(n2, a2) >= 0) + break; + e2[t2] = a2, t2 = i2; + } + e2[t2] = n2; + }, Qu.prototype._down = function(t2) { + for (var e2 = this.data, r2 = this.compare, n2 = this.length >> 1, i2 = e2[t2]; t2 < n2; ) { + var a2 = 1 + (t2 << 1), o2 = e2[a2], s2 = a2 + 1; + if (s2 < this.length && r2(e2[s2], o2) < 0 && (a2 = s2, o2 = e2[s2]), r2(o2, i2) >= 0) + break; + e2[t2] = o2, t2 = a2; + } + e2[t2] = i2; + }; + var il = Number.POSITIVE_INFINITY; + function al(t2, e2) { + return e2[1] !== il ? function(t3, e3, r2) { + var n2 = 0, i2 = 0; switch (e3 = Math.abs(e3), r2 = Math.abs(r2), t3) { case "top-right": case "top-left": @@ -21991,9 +22250,9 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ } return [n2, i2]; }(t2, e2[0], e2[1]) : function(t3, e3) { - let r2 = 0, n2 = 0; + var r2 = 0, n2 = 0; e3 < 0 && (e3 = 0); - const i2 = e3 / Math.sqrt(2); + var i2 = e3 / Math.sqrt(2); switch (t3) { case "top-right": case "top-left": @@ -22027,7 +22286,7 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ return [r2, n2]; }(t2, e2[0]); } - function ku(t2) { + function ol(t2) { switch (t2) { case "right": case "top-right": @@ -22040,10322 +22299,8476 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ } return "center"; } - function Su(e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3) { - let p3 = s2.textMaxSize.evaluate(r2, {}); - void 0 === p3 && (p3 = o2); - const f2 = e2.layers[0].layout, y3 = f2.get("icon-offset").evaluate(r2, {}, h3), m2 = zu(n2.horizontal), g2 = o2 / 24, x2 = e2.tilePixelRatio * g2, v3 = e2.tilePixelRatio * p3 / 24, b2 = e2.tilePixelRatio * l2, w2 = e2.tilePixelRatio * f2.get("symbol-spacing"), _24 = f2.get("text-padding") * e2.tilePixelRatio, A3 = function(t2, e3, r3, n3 = 1) { - const i3 = t2.get("icon-padding").evaluate(e3, {}, r3), a3 = i3 && i3.values; - return [a3[0] * n3, a3[1] * n3, a3[2] * n3, a3[3] * n3]; - }(f2, r2, h3, e2.tilePixelRatio), k2 = f2.get("text-max-angle") / 180 * Math.PI, S2 = "viewport" !== f2.get("text-rotation-alignment") && "point" !== f2.get("symbol-placement"), I3 = "map" === f2.get("icon-rotation-alignment") && "point" !== f2.get("symbol-placement"), M2 = f2.get("symbol-placement"), z2 = w2 / 2, B2 = f2.get("icon-text-fit"); - let C2; - i2 && "none" !== B2 && (e2.allowVerticalPlacement && n2.vertical && (C2 = Ql(i2, n2.vertical, B2, f2.get("icon-text-fit-padding"), y3, g2)), m2 && (i2 = Ql(i2, m2, B2, f2.get("icon-text-fit-padding"), y3, g2))); - const P2 = (l3, p4) => { - p4.x < 0 || p4.x >= qa || p4.y < 0 || p4.y >= qa || function(e3, r3, n3, i3, a3, s3, o3, l4, u3, c4, h4, p5, f3, y4, m3, g3, x3, v4, b3, w3, _25, A4, k3, S3, I4) { - const M3 = e3.addToLineVertexArray(r3, n3); - let z3, B3, C3, P3, V3 = 0, E2 = 0, F2 = 0, T2 = 0, L2 = -1, D2 = -1; - const $2 = {}; - let R2 = xa.exports(""), O3 = 0, U2 = 0; - if (void 0 === l4._unevaluatedLayout.getValue("text-radial-offset") ? [O3, U2] = l4.layout.get("text-offset").evaluate(_25, {}, S3).map((t2) => t2 * ll) : (O3 = l4.layout.get("text-radial-offset").evaluate(_25, {}, S3) * ll, U2 = _u), e3.allowVerticalPlacement && i3.vertical) { - const t2 = l4.layout.get("text-rotate").evaluate(_25, {}, S3) + 90; - C3 = new mu(u3, r3, c4, h4, p5, i3.vertical, f3, y4, m3, t2), o3 && (P3 = new mu(u3, r3, c4, h4, p5, o3, x3, v4, m3, t2)); - } - if (a3) { - const n4 = l4.layout.get("icon-rotate").evaluate(_25, {}), i4 = "none" !== l4.layout.get("icon-text-fit"), s4 = hu(a3, n4, k3, i4), f4 = o3 ? hu(o3, n4, k3, i4) : void 0; - B3 = new mu(u3, r3, c4, h4, p5, a3, x3, v4, false, n4), V3 = 4 * s4.length; - const y5 = e3.iconSizeData; - let m4 = null; - "source" === y5.kind ? (m4 = [tu * l4.layout.get("icon-size").evaluate(_25, {})], m4[0] > Iu && d(`${e3.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)) : "composite" === y5.kind && (m4 = [tu * A4.compositeIconSizes[0].evaluate(_25, {}, S3), tu * A4.compositeIconSizes[1].evaluate(_25, {}, S3)], (m4[0] > Iu || m4[1] > Iu) && d(`${e3.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)), e3.addSymbols(e3.icon, s4, m4, w3, b3, _25, t.WritingMode.none, r3, M3.lineStartIndex, M3.lineLength, -1, S3), L2 = e3.icon.placedSymbolArray.length - 1, f4 && (E2 = 4 * f4.length, e3.addSymbols(e3.icon, f4, m4, w3, b3, _25, t.WritingMode.vertical, r3, M3.lineStartIndex, M3.lineLength, -1, S3), D2 = e3.icon.placedSymbolArray.length - 1); - } - const q2 = Object.keys(i3.horizontal); - for (const n4 of q2) { - const a4 = i3.horizontal[n4]; - if (!z3) { - R2 = xa.exports(a4.text); - const t2 = l4.layout.get("text-rotate").evaluate(_25, {}, S3); - z3 = new mu(u3, r3, c4, h4, p5, a4, f3, y4, m3, t2); - } - const o4 = 1 === a4.positionedLines.length; - if (F2 += Mu(e3, r3, a4, s3, l4, m3, _25, g3, M3, i3.vertical ? t.WritingMode.horizontal : t.WritingMode.horizontalOnly, o4 ? q2 : [n4], $2, L2, A4, S3), o4) - break; - } - i3.vertical && (T2 += Mu(e3, r3, i3.vertical, s3, l4, m3, _25, g3, M3, t.WritingMode.vertical, ["vertical"], $2, D2, A4, S3)); - const j2 = z3 ? z3.boxStartIndex : e3.collisionBoxArray.length, N2 = z3 ? z3.boxEndIndex : e3.collisionBoxArray.length, Z3 = C3 ? C3.boxStartIndex : e3.collisionBoxArray.length, K2 = C3 ? C3.boxEndIndex : e3.collisionBoxArray.length, G2 = B3 ? B3.boxStartIndex : e3.collisionBoxArray.length, J2 = B3 ? B3.boxEndIndex : e3.collisionBoxArray.length, X2 = P3 ? P3.boxStartIndex : e3.collisionBoxArray.length, Y2 = P3 ? P3.boxEndIndex : e3.collisionBoxArray.length; - let H2 = -1; - const W2 = (t2, e4) => t2 && t2.circleDiameter ? Math.max(t2.circleDiameter, e4) : e4; - H2 = W2(z3, H2), H2 = W2(C3, H2), H2 = W2(B3, H2), H2 = W2(P3, H2); - const Q2 = H2 > -1 ? 1 : 0; - Q2 && (H2 *= I4 / ll), e3.glyphOffsetArray.length >= Du.MAX_GLYPHS && d("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"), void 0 !== _25.sortKey && e3.addToSortKeyRanges(e3.symbolInstances.length, _25.sortKey), e3.symbolInstances.emplaceBack(r3.x, r3.y, $2.right >= 0 ? $2.right : -1, $2.center >= 0 ? $2.center : -1, $2.left >= 0 ? $2.left : -1, $2.vertical || -1, L2, D2, R2, j2, N2, Z3, K2, G2, J2, X2, Y2, c4, F2, T2, V3, E2, Q2, 0, f3, O3, U2, H2); - }(e2, p4, l3, n2, i2, a2, C2, e2.layers[0], e2.collisionBoxArray, r2.index, r2.sourceLayerIndex, e2.index, x2, [_24, _24, _24, _24], S2, u2, b2, A3, I3, y3, r2, s2, c3, h3, o2); - }; - if ("line" === M2) - for (const t2 of cu(r2.geometry, 0, 0, qa, qa)) { - const r3 = lu(t2, w2, k2, n2.vertical || m2, i2, 24, v3, e2.overscaling, qa); - for (const n3 of r3) { - const r4 = m2; - r4 && Bu(e2, r4.text, z2, n3) || P2(t2, n3); - } - } - else if ("line-center" === M2) { - for (const t2 of r2.geometry) - if (t2.length > 1) { - const e3 = ou(t2, k2, n2.vertical || m2, i2, 24, v3); - e3 && P2(t2, e3); - } - } else if ("Polygon" === r2.type) - for (const t2 of ho(r2.geometry, 0)) { - const e3 = vu(t2, 16); - P2(t2[0], new ru(e3.x, e3.y, 0)); - } - else if ("LineString" === r2.type) - for (const t2 of r2.geometry) - P2(t2, new ru(t2[0].x, t2[0].y, 0)); - else if ("Point" === r2.type) - for (const t2 of r2.geometry) - for (const e3 of t2) - P2([e3], new ru(e3.x, e3.y, 0)); - } - const Iu = 32640; - function Mu(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, y3) { - const m2 = function(t3, e3, r3, n3, i3, a3, s3, o3) { - const l3 = n3.layout.get("text-rotate").evaluate(a3, {}) * Math.PI / 180, u3 = []; - for (const t4 of e3.positionedLines) - for (const n4 of t4.positionedGlyphs) { - if (!n4.rect) - continue; - const a4 = n4.rect || {}; - let c4 = 4, h4 = true, p4 = 1, f3 = 0; - const d2 = (i3 || o3) && n4.vertical, y4 = n4.metrics.advance * n4.scale / 2; - if (o3 && e3.verticalizable) { - const e4 = (n4.scale - 1) * ll, r4 = (ll - n4.metrics.width * n4.scale) / 2; - f3 = t4.lineOffset / 2 - (n4.imageName ? -r4 : e4); - } - if (n4.imageName) { - const t5 = s3[n4.imageName]; - h4 = t5.sdf, p4 = t5.pixelRatio, c4 = 1 / p4; - } - const m3 = i3 ? [n4.x + y4, n4.y] : [0, 0]; - let g3 = i3 ? [0, 0] : [n4.x + y4 + r3[0], n4.y + r3[1] - f3], x3 = [0, 0]; - d2 && (x3 = g3, g3 = [0, 0]); - const v3 = (n4.metrics.left - c4) * n4.scale - y4 + g3[0], b2 = (-n4.metrics.top - c4) * n4.scale + g3[1], w2 = v3 + a4.w * n4.scale / p4, _24 = b2 + a4.h * n4.scale / p4, A3 = new S(v3, b2), k2 = new S(w2, b2), I3 = new S(v3, _24), M2 = new S(w2, _24); - if (d2) { - const t5 = new S(-y4, y4 - $l), e4 = -Math.PI / 2, r4 = 12 - y4, i4 = new S(22 - r4, -(n4.imageName ? r4 : 0)), a5 = new S(...x3); - A3._rotateAround(e4, t5)._add(i4)._add(a5), k2._rotateAround(e4, t5)._add(i4)._add(a5), I3._rotateAround(e4, t5)._add(i4)._add(a5), M2._rotateAround(e4, t5)._add(i4)._add(a5); - } - if (l3) { - const t5 = Math.sin(l3), e4 = Math.cos(l3), r4 = [e4, -t5, t5, e4]; - A3._matMult(r4), k2._matMult(r4), I3._matMult(r4), M2._matMult(r4); + function sl(t2, e2, r2, n2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2) { + var m2 = function(t3, e3, r3, n3, a3, o3, s3, u3) { + for (var l3 = n3.layout.get("text-rotate").evaluate(o3, {}) * Math.PI / 180, p4 = [], c4 = 0, h4 = e3.positionedLines; c4 < h4.length; c4 += 1) + for (var f3 = h4[c4], y4 = 0, d3 = f3.positionedGlyphs; y4 < d3.length; y4 += 1) { + var m3 = d3[y4]; + if (m3.rect) { + var v4 = m3.rect || {}, g3 = 4, x3 = true, b3 = 1, w2 = 0, _24 = (a3 || u3) && m3.vertical, A3 = m3.metrics.advance * m3.scale / 2; + if (u3 && e3.verticalizable && (w2 = f3.lineOffset / 2 - (m3.imageName ? -(24 - m3.metrics.width * m3.scale) / 2 : 24 * (m3.scale - 1))), m3.imageName) { + var S2 = s3[m3.imageName]; + x3 = S2.sdf, g3 = 1 / (b3 = S2.pixelRatio); + } + var k2 = a3 ? [m3.x + A3, m3.y] : [0, 0], I3 = a3 ? [0, 0] : [m3.x + A3 + r3[0], m3.y + r3[1] - w2], z2 = [0, 0]; + _24 && (z2 = I3, I3 = [0, 0]); + var C2 = (m3.metrics.left - g3) * m3.scale - A3 + I3[0], E2 = (-m3.metrics.top - g3) * m3.scale + I3[1], P2 = C2 + v4.w * m3.scale / b3, M2 = E2 + v4.h * m3.scale / b3, B2 = new i(C2, E2), T2 = new i(P2, E2), V3 = new i(C2, M2), F2 = new i(P2, M2); + if (_24) { + var D2 = new i(-A3, A3 - -17), L2 = -Math.PI / 2, O3 = 12 - A3, R2 = new i(22 - O3, -(m3.imageName ? O3 : 0)), U2 = new (Function.prototype.bind.apply(i, [null].concat(z2)))(); + B2._rotateAround(L2, D2)._add(R2)._add(U2), T2._rotateAround(L2, D2)._add(R2)._add(U2), V3._rotateAround(L2, D2)._add(R2)._add(U2), F2._rotateAround(L2, D2)._add(R2)._add(U2); + } + if (l3) { + var j2 = Math.sin(l3), q2 = Math.cos(l3), N2 = [q2, -j2, j2, q2]; + B2._matMult(N2), T2._matMult(N2), V3._matMult(N2), F2._matMult(N2); + } + var K2 = new i(0, 0), G2 = new i(0, 0); + p4.push({ tl: B2, tr: T2, bl: V3, br: F2, tex: v4, writingMode: e3.writingMode, glyphOffset: k2, sectionIndex: m3.sectionIndex, isSDF: x3, pixelOffsetTL: K2, pixelOffsetBR: G2, minFontScaleX: 0, minFontScaleY: 0 }); } - const z2 = new S(0, 0), B2 = new S(0, 0); - u3.push({ tl: A3, tr: k2, bl: I3, br: M2, tex: a4, writingMode: e3.writingMode, glyphOffset: m3, sectionIndex: n4.sectionIndex, isSDF: h4, pixelOffsetTL: z2, pixelOffsetBR: B2, minFontScaleX: 0, minFontScaleY: 0 }); } - return u3; - }(0, r2, o2, i2, a2, s2, n2, t2.allowVerticalPlacement), g2 = t2.textSizeData; - let x2 = null; - "source" === g2.kind ? (x2 = [tu * i2.layout.get("text-size").evaluate(s2, {})], x2[0] > Iu && d(`${t2.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)) : "composite" === g2.kind && (x2 = [tu * f2.compositeTextSizes[0].evaluate(s2, {}, y3), tu * f2.compositeTextSizes[1].evaluate(s2, {}, y3)], (x2[0] > Iu || x2[1] > Iu) && d(`${t2.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)), t2.addSymbols(t2.text, m2, x2, o2, a2, s2, u2, e2, l2.lineStartIndex, l2.lineLength, p3, y3); - for (const e3 of c3) - h3[e3] = t2.text.placedSymbolArray.length - 1; + return p4; + }(0, r2, u2, a2, o2, s2, n2, t2.allowVerticalPlacement), v3 = t2.textSizeData, g2 = null; + "source" === v3.kind ? (g2 = [128 * a2.layout.get("text-size").evaluate(s2, {})])[0] > 32640 && A2(t2.layerIds[0] + ': Value for "text-size" is >= 255. Reduce your "text-size".') : "composite" === v3.kind && ((g2 = [128 * y3.compositeTextSizes[0].evaluate(s2, {}, d2), 128 * y3.compositeTextSizes[1].evaluate(s2, {}, d2)])[0] > 32640 || g2[1] > 32640) && A2(t2.layerIds[0] + ': Value for "text-size" is >= 255. Reduce your "text-size".'), t2.addSymbols(t2.text, m2, g2, u2, o2, s2, p3, e2, l2.lineStartIndex, l2.lineLength, f2, d2); + for (var x2 = 0, b2 = c3; x2 < b2.length; x2 += 1) + h3[b2[x2]] = t2.text.placedSymbolArray.length - 1; return 4 * m2.length; } - function zu(t2) { - for (const e2 in t2) + function ul(t2) { + for (var e2 in t2) return t2[e2]; return null; } - function Bu(t2, e2, r2, n2) { - const i2 = t2.compareText; + function ll(t2, e2, r2, n2) { + var i2 = t2.compareText; if (e2 in i2) { - const t3 = i2[e2]; - for (let e3 = t3.length - 1; e3 >= 0; e3--) - if (n2.dist(t3[e3]) < r2) + for (var a2 = i2[e2], o2 = a2.length - 1; o2 >= 0; o2--) + if (n2.dist(a2[o2]) < r2) return true; } else i2[e2] = []; return i2[e2].push(n2), false; } - const Cu = _o.VectorTileFeature.types, Pu = [{ name: "a_fade_opacity", components: 1, type: "Uint8", offset: 0 }]; - function Vu(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3) { - const f2 = o2 ? Math.min(Iu, Math.round(o2[0])) : 0, d2 = o2 ? Math.min(Iu, Math.round(o2[1])) : 0; - t2.emplaceBack(e2, r2, Math.round(32 * n2), Math.round(32 * i2), a2, s2, (f2 << 1) + (l2 ? 1 : 0), d2, 16 * u2, 16 * c3, 256 * h3, 256 * p3); + var pl = bs.VectorTileFeature.types, cl = [{ name: "a_fade_opacity", components: 1, type: "Uint8", offset: 0 }]; + function hl(t2, e2, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3) { + var f2 = s2 ? Math.min(32640, Math.round(s2[0])) : 0, y3 = s2 ? Math.min(32640, Math.round(s2[1])) : 0; + t2.emplaceBack(e2, r2, Math.round(32 * n2), Math.round(32 * i2), a2, o2, (f2 << 1) + (u2 ? 1 : 0), y3, 16 * l2, 16 * p3, 256 * c3, 256 * h3); } - function Eu(t2, e2, r2) { + function fl(t2, e2, r2) { t2.emplaceBack(e2.x, e2.y, r2), t2.emplaceBack(e2.x, e2.y, r2), t2.emplaceBack(e2.x, e2.y, r2), t2.emplaceBack(e2.x, e2.y, r2); } - function Fu(t2) { - for (const e2 of t2.sections) - if (On(e2.text)) + function yl(t2) { + for (var e2 = 0, r2 = t2.sections; e2 < r2.length; e2 += 1) + if ($n(r2[e2].text)) return true; return false; } - class Tu { - constructor(t2) { - this.layoutVertexArray = new sa(), this.indexArray = new ha(), this.programConfigurations = t2, this.segments = new ya(), this.dynamicLayoutVertexArray = new oa(), this.opacityVertexArray = new la(), this.placedSymbolArray = new Ki(); - } - isEmpty() { - return 0 === this.layoutVertexArray.length && 0 === this.indexArray.length && 0 === this.dynamicLayoutVertexArray.length && 0 === this.opacityVertexArray.length; - } - upload(t2, e2, r2, n2) { - this.isEmpty() || (r2 && (this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, el.members), this.indexBuffer = t2.createIndexBuffer(this.indexArray, e2), this.dynamicLayoutVertexBuffer = t2.createVertexBuffer(this.dynamicLayoutVertexArray, rl.members, true), this.opacityVertexBuffer = t2.createVertexBuffer(this.opacityVertexArray, Pu, true), this.opacityVertexBuffer.itemSize = 1), (r2 || n2) && this.programConfigurations.upload(t2)); - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.dynamicLayoutVertexBuffer.destroy(), this.opacityVertexBuffer.destroy()); - } - } - Mn("SymbolBuffers", Tu); - class Lu { - constructor(t2, e2, r2) { - this.layoutVertexArray = new t2(), this.layoutAttributes = e2, this.indexArray = new r2(), this.segments = new ya(), this.collisionVertexArray = new ca(); - } - upload(t2) { - this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, this.layoutAttributes), this.indexBuffer = t2.createIndexBuffer(this.indexArray), this.collisionVertexBuffer = t2.createVertexBuffer(this.collisionVertexArray, nl.members, true); - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.segments.destroy(), this.collisionVertexBuffer.destroy()); - } - } - Mn("CollisionBuffers", Lu); - class Du { - constructor(e2) { - this.collisionBoxArray = e2.collisionBoxArray, this.zoom = e2.zoom, this.overscaling = e2.overscaling, this.layers = e2.layers, this.layerIds = this.layers.map((t2) => t2.id), this.index = e2.index, this.pixelRatio = e2.pixelRatio, this.sourceLayerIndex = e2.sourceLayerIndex, this.hasPattern = false, this.hasRTLText = false, this.sortKeyRanges = [], this.collisionCircleArray = [], this.placementInvProjMatrix = ds([]), this.placementViewportMatrix = ds([]); - const r2 = this.layers[0]._unevaluatedLayout._values; - this.textSizeData = eu(this.zoom, r2["text-size"]), this.iconSizeData = eu(this.zoom, r2["icon-size"]); - const n2 = this.layers[0].layout, i2 = n2.get("symbol-sort-key"), a2 = n2.get("symbol-z-order"); - this.canOverlap = "never" !== qu(n2, "text-overlap", "text-allow-overlap") || "never" !== qu(n2, "icon-overlap", "icon-allow-overlap") || n2.get("text-ignore-placement") || n2.get("icon-ignore-placement"), this.sortFeaturesByKey = "viewport-y" !== a2 && !i2.isConstant(), this.sortFeaturesByY = ("viewport-y" === a2 || "auto" === a2 && !this.sortFeaturesByKey) && this.canOverlap, "point" === n2.get("symbol-placement") && (this.writingModes = n2.get("text-writing-mode").map((e3) => t.WritingMode[e3])), this.stateDependentLayerIds = this.layers.filter((t2) => t2.isStateDependent()).map((t2) => t2.id), this.sourceID = e2.sourceID; - } - createArrays() { - this.text = new Tu(new Ra(this.layers, this.zoom, (t2) => /^text/.test(t2))), this.icon = new Tu(new Ra(this.layers, this.zoom, (t2) => /^icon/.test(t2))), this.glyphOffsetArray = new Xi(), this.lineVertexArray = new Yi(), this.symbolInstances = new Ji(); - } - calculateGlyphDependencies(t2, e2, r2, n2, i2) { - for (let a2 = 0; a2 < t2.length; a2++) - if (e2[t2.charCodeAt(a2)] = true, (r2 || n2) && i2) { - const r3 = ol[t2.charAt(a2)]; - r3 && (e2[r3.charCodeAt(0)] = true); - } - } - populate(e2, r2, n2) { - const i2 = this.layers[0], a2 = i2.layout, s2 = a2.get("text-font"), o2 = a2.get("text-field"), l2 = a2.get("icon-image"), u2 = ("constant" !== o2.value.kind || o2.value.value instanceof Dt && !o2.value.value.isEmpty() || o2.value.value.toString().length > 0) && ("constant" !== s2.value.kind || s2.value.value.length > 0), c3 = "constant" !== l2.value.kind || !!l2.value.value || Object.keys(l2.parameters).length > 0, h3 = a2.get("symbol-sort-key"); - if (this.features = [], !u2 && !c3) - return; - const p3 = r2.iconDependencies, f2 = r2.glyphDependencies, d2 = r2.availableImages, y3 = new Qn(this.zoom); - for (const { feature: r3, id: o3, index: l3, sourceLayerIndex: m2 } of e2) { - const e3 = i2._featureFilter.needGeometry, g2 = Ka(r3, e3); - if (!i2._featureFilter.filter(y3, g2, n2)) - continue; - let x2, v3; - if (e3 || (g2.geometry = Za(r3)), u2) { - const t2 = i2.getValueAndResolveTokens("text-field", g2, n2, d2), e4 = Dt.factory(t2); - Fu(e4) && (this.hasRTLText = true), (!this.hasRTLText || "unavailable" === Yn() || this.hasRTLText && Wn.isParsed()) && (x2 = sl(e4, i2, g2)); - } - if (c3) { - const t2 = i2.getValueAndResolveTokens("icon-image", g2, n2, d2); - v3 = t2 instanceof Rt ? t2 : Rt.fromString(t2); - } - if (!x2 && !v3) - continue; - const b2 = this.sortFeaturesByKey ? h3.evaluate(g2, {}, n2) : void 0; - if (this.features.push({ id: o3, text: x2, icon: v3, index: l3, sourceLayerIndex: m2, geometry: g2.geometry, properties: r3.properties, type: Cu[r3.type], sortKey: b2 }), v3 && (p3[v3.name] = true), x2) { - const e4 = s2.evaluate(g2, {}, n2).join(","), r4 = "viewport" !== a2.get("text-rotation-alignment") && "point" !== a2.get("symbol-placement"); - this.allowVerticalPlacement = this.writingModes && this.writingModes.indexOf(t.WritingMode.vertical) >= 0; - for (const t2 of x2.sections) - if (t2.image) - p3[t2.image.name] = true; - else { - const n3 = En(x2.toString()), i3 = t2.fontStack || e4, a3 = f2[i3] = f2[i3] || {}; - this.calculateGlyphDependencies(t2.text, a3, r4, this.allowVerticalPlacement, n3); + var dl = function(t2) { + this.layoutVertexArray = new Vi(), this.indexArray = new ji(), this.programConfigurations = t2, this.segments = new sa(), this.dynamicLayoutVertexArray = new Fi(), this.opacityVertexArray = new Di(), this.placedSymbolArray = new Qi(); + }; + dl.prototype.isEmpty = function() { + return 0 === this.layoutVertexArray.length && 0 === this.indexArray.length && 0 === this.dynamicLayoutVertexArray.length && 0 === this.opacityVertexArray.length; + }, dl.prototype.upload = function(t2, e2, r2, n2) { + this.isEmpty() || (r2 && (this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, js.members), this.indexBuffer = t2.createIndexBuffer(this.indexArray, e2), this.dynamicLayoutVertexBuffer = t2.createVertexBuffer(this.dynamicLayoutVertexArray, qs.members, true), this.opacityVertexBuffer = t2.createVertexBuffer(this.opacityVertexArray, cl, true), this.opacityVertexBuffer.itemSize = 1), (r2 || n2) && this.programConfigurations.upload(t2)); + }, dl.prototype.destroy = function() { + this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.dynamicLayoutVertexBuffer.destroy(), this.opacityVertexBuffer.destroy()); + }, On("SymbolBuffers", dl); + var ml = function(t2, e2, r2) { + this.layoutVertexArray = new t2(), this.layoutAttributes = e2, this.indexArray = new r2(), this.segments = new sa(), this.collisionVertexArray = new Ui(); + }; + ml.prototype.upload = function(t2) { + this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, this.layoutAttributes), this.indexBuffer = t2.createIndexBuffer(this.indexArray), this.collisionVertexBuffer = t2.createVertexBuffer(this.collisionVertexArray, Ns.members, true); + }, ml.prototype.destroy = function() { + this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.segments.destroy(), this.collisionVertexBuffer.destroy()); + }, On("CollisionBuffers", ml); + var vl = function(t2) { + this.collisionBoxArray = t2.collisionBoxArray, this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map(function(t3) { + return t3.id; + }), this.index = t2.index, this.pixelRatio = t2.pixelRatio, this.sourceLayerIndex = t2.sourceLayerIndex, this.hasPattern = false, this.hasRTLText = false, this.sortKeyRanges = [], this.collisionCircleArray = [], this.placementInvProjMatrix = oo([]), this.placementViewportMatrix = oo([]); + var e2 = this.layers[0]._unevaluatedLayout._values; + this.textSizeData = Du(this.zoom, e2["text-size"]), this.iconSizeData = Du(this.zoom, e2["icon-size"]); + var r2 = this.layers[0].layout, n2 = r2.get("symbol-sort-key"), i2 = r2.get("symbol-z-order"); + this.canOverlap = r2.get("text-allow-overlap") || r2.get("icon-allow-overlap") || r2.get("text-ignore-placement") || r2.get("icon-ignore-placement"), this.sortFeaturesByKey = "viewport-y" !== i2 && void 0 !== n2.constantOr(1), this.sortFeaturesByY = ("viewport-y" === i2 || "auto" === i2 && !this.sortFeaturesByKey) && this.canOverlap, "point" === r2.get("symbol-placement") && (this.writingModes = r2.get("text-writing-mode").map(function(t3) { + return wu[t3]; + })), this.stateDependentLayerIds = this.layers.filter(function(t3) { + return t3.isStateDependent(); + }).map(function(t3) { + return t3.id; + }), this.sourceID = t2.sourceID; + }; + vl.prototype.createArrays = function() { + this.text = new dl(new Va(this.layers, this.zoom, function(t2) { + return /^text/.test(t2); + })), this.icon = new dl(new Va(this.layers, this.zoom, function(t2) { + return /^icon/.test(t2); + })), this.glyphOffsetArray = new ra(), this.lineVertexArray = new na(), this.symbolInstances = new ea(); + }, vl.prototype.calculateGlyphDependencies = function(t2, e2, r2, n2, i2) { + for (var a2 = 0; a2 < t2.length; a2++) + if (e2[t2.charCodeAt(a2)] = true, (r2 || n2) && i2) { + var o2 = Xs[t2.charAt(a2)]; + o2 && (e2[o2.charCodeAt(0)] = true); + } + }, vl.prototype.populate = function(t2, e2, r2) { + var n2 = this.layers[0], i2 = n2.layout, a2 = i2.get("text-font"), o2 = i2.get("text-field"), s2 = i2.get("icon-image"), u2 = ("constant" !== o2.value.kind || o2.value.value instanceof ne && !o2.value.value.isEmpty() || o2.value.value.toString().length > 0) && ("constant" !== a2.value.kind || a2.value.value.length > 0), l2 = "constant" !== s2.value.kind || !!s2.value.value || Object.keys(s2.parameters).length > 0, p3 = i2.get("symbol-sort-key"); + if (this.features = [], u2 || l2) { + for (var c3 = e2.iconDependencies, h3 = e2.glyphDependencies, f2 = e2.availableImages, y3 = new si(this.zoom), d2 = 0, m2 = t2; d2 < m2.length; d2 += 1) { + var v3 = m2[d2], g2 = v3.feature, x2 = v3.id, b2 = v3.index, w2 = v3.sourceLayerIndex, _24 = n2._featureFilter.needGeometry, A3 = Ua(g2, _24); + if (n2._featureFilter.filter(y3, A3, r2)) { + _24 || (A3.geometry = Ra(g2)); + var S2 = void 0; + if (u2) { + var k2 = n2.getValueAndResolveTokens("text-field", A3, r2, f2), I3 = ne.factory(k2); + yl(I3) && (this.hasRTLText = true), (!this.hasRTLText || "unavailable" === ii() || this.hasRTLText && oi.isParsed()) && (S2 = Zs(I3, n2, A3)); + } + var z2 = void 0; + if (l2) { + var C2 = n2.getValueAndResolveTokens("icon-image", A3, r2, f2); + z2 = C2 instanceof ie ? C2 : ie.fromString(C2); + } + if (S2 || z2) { + var E2 = this.sortFeaturesByKey ? p3.evaluate(A3, {}, r2) : void 0; + if (this.features.push({ id: x2, text: S2, icon: z2, index: b2, sourceLayerIndex: w2, geometry: A3.geometry, properties: g2.properties, type: pl[g2.type], sortKey: E2 }), z2 && (c3[z2.name] = true), S2) { + var P2 = a2.evaluate(A3, {}, r2).join(","), M2 = "map" === i2.get("text-rotation-alignment") && "point" !== i2.get("symbol-placement"); + this.allowVerticalPlacement = this.writingModes && this.writingModes.indexOf(wu.vertical) >= 0; + for (var B2 = 0, T2 = S2.sections; B2 < T2.length; B2 += 1) { + var V3 = T2[B2]; + if (V3.image) + c3[V3.image.name] = true; + else { + var F2 = Zn(S2.toString()), D2 = V3.fontStack || P2, L2 = h3[D2] = h3[D2] || {}; + this.calculateGlyphDependencies(V3.text, L2, M2, this.allowVerticalPlacement, F2); + } + } } + } } } - "line" === a2.get("symbol-placement") && (this.features = function(t2) { - const e3 = {}, r3 = {}, n3 = []; - let i3 = 0; + "line" === i2.get("symbol-placement") && (this.features = function(t3) { + var e3 = {}, r3 = {}, n3 = [], i3 = 0; function a3(e4) { - n3.push(t2[e4]), i3++; + n3.push(t3[e4]), i3++; } - function s3(t3, e4, i4) { - const a4 = r3[t3]; - return delete r3[t3], r3[e4] = a4, n3[a4].geometry[0].pop(), n3[a4].geometry[0] = n3[a4].geometry[0].concat(i4[0]), a4; + function o3(t4, e4, i4) { + var a4 = r3[t4]; + return delete r3[t4], r3[e4] = a4, n3[a4].geometry[0].pop(), n3[a4].geometry[0] = n3[a4].geometry[0].concat(i4[0]), a4; } - function o3(t3, r4, i4) { - const a4 = e3[r4]; - return delete e3[r4], e3[t3] = a4, n3[a4].geometry[0].shift(), n3[a4].geometry[0] = i4[0].concat(n3[a4].geometry[0]), a4; + function s3(t4, r4, i4) { + var a4 = e3[r4]; + return delete e3[r4], e3[t4] = a4, n3[a4].geometry[0].shift(), n3[a4].geometry[0] = i4[0].concat(n3[a4].geometry[0]), a4; } - function l3(t3, e4, r4) { - const n4 = r4 ? e4[0][e4[0].length - 1] : e4[0][0]; - return `${t3}:${n4.x}:${n4.y}`; + function u3(t4, e4, r4) { + var n4 = r4 ? e4[0][e4[0].length - 1] : e4[0][0]; + return t4 + ":" + n4.x + ":" + n4.y; } - for (let u3 = 0; u3 < t2.length; u3++) { - const c4 = t2[u3], h4 = c4.geometry, p4 = c4.text ? c4.text.toString() : null; - if (!p4) { - a3(u3); - continue; - } - const f3 = l3(p4, h4), d3 = l3(p4, h4, true); - if (f3 in r3 && d3 in e3 && r3[f3] !== e3[d3]) { - const t3 = o3(f3, d3, h4), i4 = s3(f3, d3, n3[t3].geometry); - delete e3[f3], delete r3[d3], r3[l3(p4, n3[i4].geometry, true)] = i4, n3[t3].geometry = null; + for (var l3 = 0; l3 < t3.length; l3++) { + var p4 = t3[l3], c4 = p4.geometry, h4 = p4.text ? p4.text.toString() : null; + if (h4) { + var f3 = u3(h4, c4), y4 = u3(h4, c4, true); + if (f3 in r3 && y4 in e3 && r3[f3] !== e3[y4]) { + var d3 = s3(f3, y4, c4), m3 = o3(f3, y4, n3[d3].geometry); + delete e3[f3], delete r3[y4], r3[u3(h4, n3[m3].geometry, true)] = m3, n3[d3].geometry = null; + } else + f3 in r3 ? o3(f3, y4, c4) : y4 in e3 ? s3(f3, y4, c4) : (a3(l3), e3[f3] = i3 - 1, r3[y4] = i3 - 1); } else - f3 in r3 ? s3(f3, d3, h4) : d3 in e3 ? o3(f3, d3, h4) : (a3(u3), e3[f3] = i3 - 1, r3[d3] = i3 - 1); - } - return n3.filter((t3) => t3.geometry); - }(this.features)), this.sortFeaturesByKey && this.features.sort((t2, e3) => t2.sortKey - e3.sortKey); - } - update(t2, e2, r2) { - this.stateDependentLayers.length && (this.text.programConfigurations.updatePaintArrays(t2, e2, this.layers, r2), this.icon.programConfigurations.updatePaintArrays(t2, e2, this.layers, r2)); - } - isEmpty() { - return 0 === this.symbolInstances.length && !this.hasRTLText; - } - uploadPending() { - return !this.uploaded || this.text.programConfigurations.needsUpload || this.icon.programConfigurations.needsUpload; - } - upload(t2) { - !this.uploaded && this.hasDebugData() && (this.textCollisionBox.upload(t2), this.iconCollisionBox.upload(t2)), this.text.upload(t2, this.sortFeaturesByY, !this.uploaded, this.text.programConfigurations.needsUpload), this.icon.upload(t2, this.sortFeaturesByY, !this.uploaded, this.icon.programConfigurations.needsUpload), this.uploaded = true; - } - destroyDebugData() { - this.textCollisionBox.destroy(), this.iconCollisionBox.destroy(); - } - destroy() { - this.text.destroy(), this.icon.destroy(), this.hasDebugData() && this.destroyDebugData(); - } - addToLineVertexArray(t2, e2) { - const r2 = this.lineVertexArray.length; - if (void 0 !== t2.segment) { - let r3 = t2.dist(e2[t2.segment + 1]), n2 = t2.dist(e2[t2.segment]); - const i2 = {}; - for (let n3 = t2.segment + 1; n3 < e2.length; n3++) - i2[n3] = { x: e2[n3].x, y: e2[n3].y, tileUnitDistanceFromAnchor: r3 }, n3 < e2.length - 1 && (r3 += e2[n3 + 1].dist(e2[n3])); - for (let r4 = t2.segment || 0; r4 >= 0; r4--) - i2[r4] = { x: e2[r4].x, y: e2[r4].y, tileUnitDistanceFromAnchor: n2 }, r4 > 0 && (n2 += e2[r4 - 1].dist(e2[r4])); - for (let t3 = 0; t3 < e2.length; t3++) { - const e3 = i2[t3]; - this.lineVertexArray.emplaceBack(e3.x, e3.y, e3.tileUnitDistanceFromAnchor); - } - } - return { lineStartIndex: r2, lineLength: this.lineVertexArray.length - r2 }; - } - addSymbols(e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3) { - const f2 = e2.indexArray, d2 = e2.layoutVertexArray, y3 = e2.segments.prepareSegment(4 * r2.length, d2, f2, this.canOverlap ? s2.sortKey : void 0), m2 = this.glyphOffsetArray.length, g2 = y3.vertexLength, x2 = this.allowVerticalPlacement && o2 === t.WritingMode.vertical ? Math.PI / 2 : 0, v3 = s2.text && s2.text.sections; - for (let t2 = 0; t2 < r2.length; t2++) { - const { tl: i3, tr: a3, bl: o3, br: u3, tex: c4, pixelOffsetTL: h4, pixelOffsetBR: m3, minFontScaleX: g3, minFontScaleY: b2, glyphOffset: w2, isSDF: _24, sectionIndex: A3 } = r2[t2], k2 = y3.vertexLength, S2 = w2[1]; - Vu(d2, l2.x, l2.y, i3.x, S2 + i3.y, c4.x, c4.y, n2, _24, h4.x, h4.y, g3, b2), Vu(d2, l2.x, l2.y, a3.x, S2 + a3.y, c4.x + c4.w, c4.y, n2, _24, m3.x, h4.y, g3, b2), Vu(d2, l2.x, l2.y, o3.x, S2 + o3.y, c4.x, c4.y + c4.h, n2, _24, h4.x, m3.y, g3, b2), Vu(d2, l2.x, l2.y, u3.x, S2 + u3.y, c4.x + c4.w, c4.y + c4.h, n2, _24, m3.x, m3.y, g3, b2), Eu(e2.dynamicLayoutVertexArray, l2, x2), f2.emplaceBack(k2, k2 + 1, k2 + 2), f2.emplaceBack(k2 + 1, k2 + 2, k2 + 3), y3.vertexLength += 4, y3.primitiveLength += 2, this.glyphOffsetArray.emplaceBack(w2[0]), t2 !== r2.length - 1 && A3 === r2[t2 + 1].sectionIndex || e2.programConfigurations.populatePaintArrays(d2.length, s2, s2.index, {}, p3, v3 && v3[A3]); - } - e2.placedSymbolArray.emplaceBack(l2.x, l2.y, m2, this.glyphOffsetArray.length - m2, g2, u2, c3, l2.segment, n2 ? n2[0] : 0, n2 ? n2[1] : 0, i2[0], i2[1], o2, 0, false, 0, h3); - } - _addCollisionDebugVertex(t2, e2, r2, n2, i2, a2) { - return e2.emplaceBack(0, 0), t2.emplaceBack(r2.x, r2.y, n2, i2, Math.round(a2.x), Math.round(a2.y)); - } - addCollisionDebugVertices(t2, e2, r2, n2, i2, a2, s2) { - const o2 = i2.segments.prepareSegment(4, i2.layoutVertexArray, i2.indexArray), l2 = o2.vertexLength, u2 = i2.layoutVertexArray, c3 = i2.collisionVertexArray, h3 = s2.anchorX, p3 = s2.anchorY; - this._addCollisionDebugVertex(u2, c3, a2, h3, p3, new S(t2, e2)), this._addCollisionDebugVertex(u2, c3, a2, h3, p3, new S(r2, e2)), this._addCollisionDebugVertex(u2, c3, a2, h3, p3, new S(r2, n2)), this._addCollisionDebugVertex(u2, c3, a2, h3, p3, new S(t2, n2)), o2.vertexLength += 4; - const f2 = i2.indexArray; - f2.emplaceBack(l2, l2 + 1), f2.emplaceBack(l2 + 1, l2 + 2), f2.emplaceBack(l2 + 2, l2 + 3), f2.emplaceBack(l2 + 3, l2), o2.primitiveLength += 4; - } - addDebugCollisionBoxes(t2, e2, r2, n2) { - for (let i2 = t2; i2 < e2; i2++) { - const t3 = this.collisionBoxArray.get(i2); - this.addCollisionDebugVertices(t3.x1, t3.y1, t3.x2, t3.y2, n2 ? this.textCollisionBox : this.iconCollisionBox, t3.anchorPoint, r2); - } - } - generateCollisionDebugBuffers() { - this.hasDebugData() && this.destroyDebugData(), this.textCollisionBox = new Lu(ua, il.members, pa), this.iconCollisionBox = new Lu(ua, il.members, pa); - for (let t2 = 0; t2 < this.symbolInstances.length; t2++) { - const e2 = this.symbolInstances.get(t2); - this.addDebugCollisionBoxes(e2.textBoxStartIndex, e2.textBoxEndIndex, e2, true), this.addDebugCollisionBoxes(e2.verticalTextBoxStartIndex, e2.verticalTextBoxEndIndex, e2, true), this.addDebugCollisionBoxes(e2.iconBoxStartIndex, e2.iconBoxEndIndex, e2, false), this.addDebugCollisionBoxes(e2.verticalIconBoxStartIndex, e2.verticalIconBoxEndIndex, e2, false); - } - } - _deserializeCollisionBoxesForSymbol(t2, e2, r2, n2, i2, a2, s2, o2, l2) { - const u2 = {}; - for (let n3 = e2; n3 < r2; n3++) { - const e3 = t2.get(n3); - u2.textBox = { x1: e3.x1, y1: e3.y1, x2: e3.x2, y2: e3.y2, anchorPointX: e3.anchorPointX, anchorPointY: e3.anchorPointY }, u2.textFeatureIndex = e3.featureIndex; - break; - } - for (let e3 = n2; e3 < i2; e3++) { - const r3 = t2.get(e3); - u2.verticalTextBox = { x1: r3.x1, y1: r3.y1, x2: r3.x2, y2: r3.y2, anchorPointX: r3.anchorPointX, anchorPointY: r3.anchorPointY }, u2.verticalTextFeatureIndex = r3.featureIndex; - break; - } - for (let e3 = a2; e3 < s2; e3++) { - const r3 = t2.get(e3); - u2.iconBox = { x1: r3.x1, y1: r3.y1, x2: r3.x2, y2: r3.y2, anchorPointX: r3.anchorPointX, anchorPointY: r3.anchorPointY }, u2.iconFeatureIndex = r3.featureIndex; - break; - } - for (let e3 = o2; e3 < l2; e3++) { - const r3 = t2.get(e3); - u2.verticalIconBox = { x1: r3.x1, y1: r3.y1, x2: r3.x2, y2: r3.y2, anchorPointX: r3.anchorPointX, anchorPointY: r3.anchorPointY }, u2.verticalIconFeatureIndex = r3.featureIndex; - break; - } - return u2; - } - deserializeCollisionBoxes(t2) { - this.collisionArrays = []; - for (let e2 = 0; e2 < this.symbolInstances.length; e2++) { - const r2 = this.symbolInstances.get(e2); - this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(t2, r2.textBoxStartIndex, r2.textBoxEndIndex, r2.verticalTextBoxStartIndex, r2.verticalTextBoxEndIndex, r2.iconBoxStartIndex, r2.iconBoxEndIndex, r2.verticalIconBoxStartIndex, r2.verticalIconBoxEndIndex)); - } - } - hasTextData() { - return this.text.segments.get().length > 0; - } - hasIconData() { - return this.icon.segments.get().length > 0; - } - hasDebugData() { - return this.textCollisionBox && this.iconCollisionBox; - } - hasTextCollisionBoxData() { - return this.hasDebugData() && this.textCollisionBox.segments.get().length > 0; - } - hasIconCollisionBoxData() { - return this.hasDebugData() && this.iconCollisionBox.segments.get().length > 0; - } - addIndicesForPlacedSymbol(t2, e2) { - const r2 = t2.placedSymbolArray.get(e2), n2 = r2.vertexStartIndex + 4 * r2.numGlyphs; - for (let e3 = r2.vertexStartIndex; e3 < n2; e3 += 4) - t2.indexArray.emplaceBack(e3, e3 + 1, e3 + 2), t2.indexArray.emplaceBack(e3 + 1, e3 + 2, e3 + 3); - } - getSortedSymbolIndexes(t2) { - if (this.sortedAngle === t2 && void 0 !== this.symbolInstanceIndexes) - return this.symbolInstanceIndexes; - const e2 = Math.sin(t2), r2 = Math.cos(t2), n2 = [], i2 = [], a2 = []; - for (let t3 = 0; t3 < this.symbolInstances.length; ++t3) { - a2.push(t3); - const s2 = this.symbolInstances.get(t3); - n2.push(0 | Math.round(e2 * s2.anchorX + r2 * s2.anchorY)), i2.push(s2.featureIndex); - } - return a2.sort((t3, e3) => n2[t3] - n2[e3] || i2[e3] - i2[t3]), a2; - } - addToSortKeyRanges(t2, e2) { - const r2 = this.sortKeyRanges[this.sortKeyRanges.length - 1]; - r2 && r2.sortKey === e2 ? r2.symbolInstanceEnd = t2 + 1 : this.sortKeyRanges.push({ sortKey: e2, symbolInstanceStart: t2, symbolInstanceEnd: t2 + 1 }); - } - sortFeatures(t2) { - if (this.sortFeaturesByY && this.sortedAngle !== t2 && !(this.text.segments.get().length > 1 || this.icon.segments.get().length > 1)) { - this.symbolInstanceIndexes = this.getSortedSymbolIndexes(t2), this.sortedAngle = t2, this.text.indexArray.clear(), this.icon.indexArray.clear(), this.featureSortOrder = []; - for (const t3 of this.symbolInstanceIndexes) { - const e2 = this.symbolInstances.get(t3); - this.featureSortOrder.push(e2.featureIndex), [e2.rightJustifiedTextSymbolIndex, e2.centerJustifiedTextSymbolIndex, e2.leftJustifiedTextSymbolIndex].forEach((t4, e3, r2) => { - t4 >= 0 && r2.indexOf(t4) === e3 && this.addIndicesForPlacedSymbol(this.text, t4); - }), e2.verticalPlacedTextSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.text, e2.verticalPlacedTextSymbolIndex), e2.placedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, e2.placedIconSymbolIndex), e2.verticalPlacedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, e2.verticalPlacedIconSymbolIndex); + a3(l3); } - this.text.indexBuffer && this.text.indexBuffer.updateData(this.text.indexArray), this.icon.indexBuffer && this.icon.indexBuffer.updateData(this.icon.indexArray); - } - } - } - Mn("SymbolBucket", Du, { omit: ["layers", "collisionBoxArray", "features", "compareText"] }), Du.MAX_GLYPHS = 65535, Du.addDynamicAttributes = Eu; - const $u = new fi({ "symbol-placement": new li(nt.layout_symbol["symbol-placement"]), "symbol-spacing": new li(nt.layout_symbol["symbol-spacing"]), "symbol-avoid-edges": new li(nt.layout_symbol["symbol-avoid-edges"]), "symbol-sort-key": new ui(nt.layout_symbol["symbol-sort-key"]), "symbol-z-order": new li(nt.layout_symbol["symbol-z-order"]), "icon-allow-overlap": new li(nt.layout_symbol["icon-allow-overlap"]), "icon-overlap": new li(nt.layout_symbol["icon-overlap"]), "icon-ignore-placement": new li(nt.layout_symbol["icon-ignore-placement"]), "icon-optional": new li(nt.layout_symbol["icon-optional"]), "icon-rotation-alignment": new li(nt.layout_symbol["icon-rotation-alignment"]), "icon-size": new ui(nt.layout_symbol["icon-size"]), "icon-text-fit": new li(nt.layout_symbol["icon-text-fit"]), "icon-text-fit-padding": new li(nt.layout_symbol["icon-text-fit-padding"]), "icon-image": new ui(nt.layout_symbol["icon-image"]), "icon-rotate": new ui(nt.layout_symbol["icon-rotate"]), "icon-padding": new ui(nt.layout_symbol["icon-padding"]), "icon-keep-upright": new li(nt.layout_symbol["icon-keep-upright"]), "icon-offset": new ui(nt.layout_symbol["icon-offset"]), "icon-anchor": new ui(nt.layout_symbol["icon-anchor"]), "icon-pitch-alignment": new li(nt.layout_symbol["icon-pitch-alignment"]), "text-pitch-alignment": new li(nt.layout_symbol["text-pitch-alignment"]), "text-rotation-alignment": new li(nt.layout_symbol["text-rotation-alignment"]), "text-field": new ui(nt.layout_symbol["text-field"]), "text-font": new ui(nt.layout_symbol["text-font"]), "text-size": new ui(nt.layout_symbol["text-size"]), "text-max-width": new ui(nt.layout_symbol["text-max-width"]), "text-line-height": new li(nt.layout_symbol["text-line-height"]), "text-letter-spacing": new ui(nt.layout_symbol["text-letter-spacing"]), "text-justify": new ui(nt.layout_symbol["text-justify"]), "text-radial-offset": new ui(nt.layout_symbol["text-radial-offset"]), "text-variable-anchor": new li(nt.layout_symbol["text-variable-anchor"]), "text-anchor": new ui(nt.layout_symbol["text-anchor"]), "text-max-angle": new li(nt.layout_symbol["text-max-angle"]), "text-writing-mode": new li(nt.layout_symbol["text-writing-mode"]), "text-rotate": new ui(nt.layout_symbol["text-rotate"]), "text-padding": new li(nt.layout_symbol["text-padding"]), "text-keep-upright": new li(nt.layout_symbol["text-keep-upright"]), "text-transform": new ui(nt.layout_symbol["text-transform"]), "text-offset": new ui(nt.layout_symbol["text-offset"]), "text-allow-overlap": new li(nt.layout_symbol["text-allow-overlap"]), "text-overlap": new li(nt.layout_symbol["text-overlap"]), "text-ignore-placement": new li(nt.layout_symbol["text-ignore-placement"]), "text-optional": new li(nt.layout_symbol["text-optional"]) }); - var Ru = { paint: new fi({ "icon-opacity": new ui(nt.paint_symbol["icon-opacity"]), "icon-color": new ui(nt.paint_symbol["icon-color"]), "icon-halo-color": new ui(nt.paint_symbol["icon-halo-color"]), "icon-halo-width": new ui(nt.paint_symbol["icon-halo-width"]), "icon-halo-blur": new ui(nt.paint_symbol["icon-halo-blur"]), "icon-translate": new li(nt.paint_symbol["icon-translate"]), "icon-translate-anchor": new li(nt.paint_symbol["icon-translate-anchor"]), "text-opacity": new ui(nt.paint_symbol["text-opacity"]), "text-color": new ui(nt.paint_symbol["text-color"], { runtimeType: yt, getOverride: (t2) => t2.textColor, hasOverride: (t2) => !!t2.textColor }), "text-halo-color": new ui(nt.paint_symbol["text-halo-color"]), "text-halo-width": new ui(nt.paint_symbol["text-halo-width"]), "text-halo-blur": new ui(nt.paint_symbol["text-halo-blur"]), "text-translate": new li(nt.paint_symbol["text-translate"]), "text-translate-anchor": new li(nt.paint_symbol["text-translate-anchor"]) }), layout: $u }; - class Ou { - constructor(t2) { - if (void 0 === t2.property.overrides) - throw new Error("overrides must be provided to instantiate FormatSectionOverride class"); - this.type = t2.property.overrides ? t2.property.overrides.runtimeType : ht, this.defaultValue = t2; - } - evaluate(t2) { - if (t2.formattedSection) { - const e2 = this.defaultValue.property.overrides; - if (e2 && e2.hasOverride(t2.formattedSection)) - return e2.getOverride(t2.formattedSection); - } - return t2.feature && t2.featureState ? this.defaultValue.evaluate(t2.feature, t2.featureState) : this.defaultValue.property.specification.default; + return n3.filter(function(t4) { + return t4.geometry; + }); + }(this.features)), this.sortFeaturesByKey && this.features.sort(function(t3, e3) { + return t3.sortKey - e3.sortKey; + }); } - eachChild(t2) { - this.defaultValue.isConstant() || t2(this.defaultValue.value._styleExpression.expression); + }, vl.prototype.update = function(t2, e2, r2) { + this.stateDependentLayers.length && (this.text.programConfigurations.updatePaintArrays(t2, e2, this.layers, r2), this.icon.programConfigurations.updatePaintArrays(t2, e2, this.layers, r2)); + }, vl.prototype.isEmpty = function() { + return 0 === this.symbolInstances.length && !this.hasRTLText; + }, vl.prototype.uploadPending = function() { + return !this.uploaded || this.text.programConfigurations.needsUpload || this.icon.programConfigurations.needsUpload; + }, vl.prototype.upload = function(t2) { + !this.uploaded && this.hasDebugData() && (this.textCollisionBox.upload(t2), this.iconCollisionBox.upload(t2)), this.text.upload(t2, this.sortFeaturesByY, !this.uploaded, this.text.programConfigurations.needsUpload), this.icon.upload(t2, this.sortFeaturesByY, !this.uploaded, this.icon.programConfigurations.needsUpload), this.uploaded = true; + }, vl.prototype.destroyDebugData = function() { + this.textCollisionBox.destroy(), this.iconCollisionBox.destroy(); + }, vl.prototype.destroy = function() { + this.text.destroy(), this.icon.destroy(), this.hasDebugData() && this.destroyDebugData(); + }, vl.prototype.addToLineVertexArray = function(t2, e2) { + var r2 = this.lineVertexArray.length; + if (void 0 !== t2.segment) { + for (var n2 = t2.dist(e2[t2.segment + 1]), i2 = t2.dist(e2[t2.segment]), a2 = {}, o2 = t2.segment + 1; o2 < e2.length; o2++) + a2[o2] = { x: e2[o2].x, y: e2[o2].y, tileUnitDistanceFromAnchor: n2 }, o2 < e2.length - 1 && (n2 += e2[o2 + 1].dist(e2[o2])); + for (var s2 = t2.segment || 0; s2 >= 0; s2--) + a2[s2] = { x: e2[s2].x, y: e2[s2].y, tileUnitDistanceFromAnchor: i2 }, s2 > 0 && (i2 += e2[s2 - 1].dist(e2[s2])); + for (var u2 = 0; u2 < e2.length; u2++) { + var l2 = a2[u2]; + this.lineVertexArray.emplaceBack(l2.x, l2.y, l2.tileUnitDistanceFromAnchor); + } + } + return { lineStartIndex: r2, lineLength: this.lineVertexArray.length - r2 }; + }, vl.prototype.addSymbols = function(t2, e2, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3) { + for (var h3 = t2.indexArray, f2 = t2.layoutVertexArray, y3 = t2.segments.prepareSegment(4 * e2.length, f2, h3, this.canOverlap ? a2.sortKey : void 0), d2 = this.glyphOffsetArray.length, m2 = y3.vertexLength, v3 = this.allowVerticalPlacement && o2 === wu.vertical ? Math.PI / 2 : 0, g2 = a2.text && a2.text.sections, x2 = 0; x2 < e2.length; x2++) { + var b2 = e2[x2], w2 = b2.tl, _24 = b2.tr, A3 = b2.bl, S2 = b2.br, k2 = b2.tex, I3 = b2.pixelOffsetTL, z2 = b2.pixelOffsetBR, C2 = b2.minFontScaleX, E2 = b2.minFontScaleY, P2 = b2.glyphOffset, M2 = b2.isSDF, B2 = b2.sectionIndex, T2 = y3.vertexLength, V3 = P2[1]; + hl(f2, s2.x, s2.y, w2.x, V3 + w2.y, k2.x, k2.y, r2, M2, I3.x, I3.y, C2, E2), hl(f2, s2.x, s2.y, _24.x, V3 + _24.y, k2.x + k2.w, k2.y, r2, M2, z2.x, I3.y, C2, E2), hl(f2, s2.x, s2.y, A3.x, V3 + A3.y, k2.x, k2.y + k2.h, r2, M2, I3.x, z2.y, C2, E2), hl(f2, s2.x, s2.y, S2.x, V3 + S2.y, k2.x + k2.w, k2.y + k2.h, r2, M2, z2.x, z2.y, C2, E2), fl(t2.dynamicLayoutVertexArray, s2, v3), h3.emplaceBack(T2, T2 + 1, T2 + 2), h3.emplaceBack(T2 + 1, T2 + 2, T2 + 3), y3.vertexLength += 4, y3.primitiveLength += 2, this.glyphOffsetArray.emplaceBack(P2[0]), x2 !== e2.length - 1 && B2 === e2[x2 + 1].sectionIndex || t2.programConfigurations.populatePaintArrays(f2.length, a2, a2.index, {}, c3, g2 && g2[B2]); + } + t2.placedSymbolArray.emplaceBack(s2.x, s2.y, d2, this.glyphOffsetArray.length - d2, m2, u2, l2, s2.segment, r2 ? r2[0] : 0, r2 ? r2[1] : 0, n2[0], n2[1], o2, 0, false, 0, p3); + }, vl.prototype._addCollisionDebugVertex = function(t2, e2, r2, n2, i2, a2) { + return e2.emplaceBack(0, 0), t2.emplaceBack(r2.x, r2.y, n2, i2, Math.round(a2.x), Math.round(a2.y)); + }, vl.prototype.addCollisionDebugVertices = function(t2, e2, r2, n2, a2, o2, s2) { + var u2 = a2.segments.prepareSegment(4, a2.layoutVertexArray, a2.indexArray), l2 = u2.vertexLength, p3 = a2.layoutVertexArray, c3 = a2.collisionVertexArray, h3 = s2.anchorX, f2 = s2.anchorY; + this._addCollisionDebugVertex(p3, c3, o2, h3, f2, new i(t2, e2)), this._addCollisionDebugVertex(p3, c3, o2, h3, f2, new i(r2, e2)), this._addCollisionDebugVertex(p3, c3, o2, h3, f2, new i(r2, n2)), this._addCollisionDebugVertex(p3, c3, o2, h3, f2, new i(t2, n2)), u2.vertexLength += 4; + var y3 = a2.indexArray; + y3.emplaceBack(l2, l2 + 1), y3.emplaceBack(l2 + 1, l2 + 2), y3.emplaceBack(l2 + 2, l2 + 3), y3.emplaceBack(l2 + 3, l2), u2.primitiveLength += 4; + }, vl.prototype.addDebugCollisionBoxes = function(t2, e2, r2, n2) { + for (var i2 = t2; i2 < e2; i2++) { + var a2 = this.collisionBoxArray.get(i2); + this.addCollisionDebugVertices(a2.x1, a2.y1, a2.x2, a2.y2, n2 ? this.textCollisionBox : this.iconCollisionBox, a2.anchorPoint, r2); + } + }, vl.prototype.generateCollisionDebugBuffers = function() { + this.hasDebugData() && this.destroyDebugData(), this.textCollisionBox = new ml(Oi, Ks.members, Xi), this.iconCollisionBox = new ml(Oi, Ks.members, Xi); + for (var t2 = 0; t2 < this.symbolInstances.length; t2++) { + var e2 = this.symbolInstances.get(t2); + this.addDebugCollisionBoxes(e2.textBoxStartIndex, e2.textBoxEndIndex, e2, true), this.addDebugCollisionBoxes(e2.verticalTextBoxStartIndex, e2.verticalTextBoxEndIndex, e2, true), this.addDebugCollisionBoxes(e2.iconBoxStartIndex, e2.iconBoxEndIndex, e2, false), this.addDebugCollisionBoxes(e2.verticalIconBoxStartIndex, e2.verticalIconBoxEndIndex, e2, false); + } + }, vl.prototype._deserializeCollisionBoxesForSymbol = function(t2, e2, r2, n2, i2, a2, o2, s2, u2) { + for (var l2 = {}, p3 = e2; p3 < r2; p3++) { + var c3 = t2.get(p3); + l2.textBox = { x1: c3.x1, y1: c3.y1, x2: c3.x2, y2: c3.y2, anchorPointX: c3.anchorPointX, anchorPointY: c3.anchorPointY }, l2.textFeatureIndex = c3.featureIndex; + break; } - outputDefined() { - return false; + for (var h3 = n2; h3 < i2; h3++) { + var f2 = t2.get(h3); + l2.verticalTextBox = { x1: f2.x1, y1: f2.y1, x2: f2.x2, y2: f2.y2, anchorPointX: f2.anchorPointX, anchorPointY: f2.anchorPointY }, l2.verticalTextFeatureIndex = f2.featureIndex; + break; } - serialize() { - return null; + for (var y3 = a2; y3 < o2; y3++) { + var d2 = t2.get(y3); + l2.iconBox = { x1: d2.x1, y1: d2.y1, x2: d2.x2, y2: d2.y2, anchorPointX: d2.anchorPointX, anchorPointY: d2.anchorPointY }, l2.iconFeatureIndex = d2.featureIndex; + break; } - } - Mn("FormatSectionOverride", Ou, { omit: ["defaultValue"] }); - class Uu extends yi { - constructor(t2) { - super(t2, Ru); + for (var m2 = s2; m2 < u2; m2++) { + var v3 = t2.get(m2); + l2.verticalIconBox = { x1: v3.x1, y1: v3.y1, x2: v3.x2, y2: v3.y2, anchorPointX: v3.anchorPointX, anchorPointY: v3.anchorPointY }, l2.verticalIconFeatureIndex = v3.featureIndex; + break; } - recalculate(t2, e2) { - if (super.recalculate(t2, e2), "auto" === this.layout.get("icon-rotation-alignment") && (this.layout._values["icon-rotation-alignment"] = "point" !== this.layout.get("symbol-placement") ? "map" : "viewport"), "auto" === this.layout.get("text-rotation-alignment") && (this.layout._values["text-rotation-alignment"] = "point" !== this.layout.get("symbol-placement") ? "map" : "viewport"), "auto" === this.layout.get("text-pitch-alignment") && (this.layout._values["text-pitch-alignment"] = "map" === this.layout.get("text-rotation-alignment") ? "map" : "viewport"), "auto" === this.layout.get("icon-pitch-alignment") && (this.layout._values["icon-pitch-alignment"] = this.layout.get("icon-rotation-alignment")), "point" === this.layout.get("symbol-placement")) { - const t3 = this.layout.get("text-writing-mode"); - if (t3) { - const e3 = []; - for (const r2 of t3) - e3.indexOf(r2) < 0 && e3.push(r2); - this.layout._values["text-writing-mode"] = e3; + return l2; + }, vl.prototype.deserializeCollisionBoxes = function(t2) { + this.collisionArrays = []; + for (var e2 = 0; e2 < this.symbolInstances.length; e2++) { + var r2 = this.symbolInstances.get(e2); + this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(t2, r2.textBoxStartIndex, r2.textBoxEndIndex, r2.verticalTextBoxStartIndex, r2.verticalTextBoxEndIndex, r2.iconBoxStartIndex, r2.iconBoxEndIndex, r2.verticalIconBoxStartIndex, r2.verticalIconBoxEndIndex)); + } + }, vl.prototype.hasTextData = function() { + return this.text.segments.get().length > 0; + }, vl.prototype.hasIconData = function() { + return this.icon.segments.get().length > 0; + }, vl.prototype.hasDebugData = function() { + return this.textCollisionBox && this.iconCollisionBox; + }, vl.prototype.hasTextCollisionBoxData = function() { + return this.hasDebugData() && this.textCollisionBox.segments.get().length > 0; + }, vl.prototype.hasIconCollisionBoxData = function() { + return this.hasDebugData() && this.iconCollisionBox.segments.get().length > 0; + }, vl.prototype.addIndicesForPlacedSymbol = function(t2, e2) { + for (var r2 = t2.placedSymbolArray.get(e2), n2 = r2.vertexStartIndex + 4 * r2.numGlyphs, i2 = r2.vertexStartIndex; i2 < n2; i2 += 4) + t2.indexArray.emplaceBack(i2, i2 + 1, i2 + 2), t2.indexArray.emplaceBack(i2 + 1, i2 + 2, i2 + 3); + }, vl.prototype.getSortedSymbolIndexes = function(t2) { + if (this.sortedAngle === t2 && void 0 !== this.symbolInstanceIndexes) + return this.symbolInstanceIndexes; + for (var e2 = Math.sin(t2), r2 = Math.cos(t2), n2 = [], i2 = [], a2 = [], o2 = 0; o2 < this.symbolInstances.length; ++o2) { + a2.push(o2); + var s2 = this.symbolInstances.get(o2); + n2.push(0 | Math.round(e2 * s2.anchorX + r2 * s2.anchorY)), i2.push(s2.featureIndex); + } + return a2.sort(function(t3, e3) { + return n2[t3] - n2[e3] || i2[e3] - i2[t3]; + }), a2; + }, vl.prototype.addToSortKeyRanges = function(t2, e2) { + var r2 = this.sortKeyRanges[this.sortKeyRanges.length - 1]; + r2 && r2.sortKey === e2 ? r2.symbolInstanceEnd = t2 + 1 : this.sortKeyRanges.push({ sortKey: e2, symbolInstanceStart: t2, symbolInstanceEnd: t2 + 1 }); + }, vl.prototype.sortFeatures = function(t2) { + var e2 = this; + if (this.sortFeaturesByY && this.sortedAngle !== t2 && !(this.text.segments.get().length > 1 || this.icon.segments.get().length > 1)) { + this.symbolInstanceIndexes = this.getSortedSymbolIndexes(t2), this.sortedAngle = t2, this.text.indexArray.clear(), this.icon.indexArray.clear(), this.featureSortOrder = []; + for (var r2 = 0, n2 = this.symbolInstanceIndexes; r2 < n2.length; r2 += 1) { + var i2 = this.symbolInstances.get(n2[r2]); + this.featureSortOrder.push(i2.featureIndex), [i2.rightJustifiedTextSymbolIndex, i2.centerJustifiedTextSymbolIndex, i2.leftJustifiedTextSymbolIndex].forEach(function(t3, r3, n3) { + t3 >= 0 && n3.indexOf(t3) === r3 && e2.addIndicesForPlacedSymbol(e2.text, t3); + }), i2.verticalPlacedTextSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.text, i2.verticalPlacedTextSymbolIndex), i2.placedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, i2.placedIconSymbolIndex), i2.verticalPlacedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, i2.verticalPlacedIconSymbolIndex); + } + this.text.indexBuffer && this.text.indexBuffer.updateData(this.text.indexArray), this.icon.indexBuffer && this.icon.indexBuffer.updateData(this.icon.indexArray); + } + }, On("SymbolBucket", vl, { omit: ["layers", "collisionBoxArray", "features", "compareText"] }), vl.MAX_GLYPHS = 65535, vl.addDynamicAttributes = fl; + var gl = new wi({ "symbol-placement": new mi(Et.layout_symbol["symbol-placement"]), "symbol-spacing": new mi(Et.layout_symbol["symbol-spacing"]), "symbol-avoid-edges": new mi(Et.layout_symbol["symbol-avoid-edges"]), "symbol-sort-key": new vi(Et.layout_symbol["symbol-sort-key"]), "symbol-z-order": new mi(Et.layout_symbol["symbol-z-order"]), "icon-allow-overlap": new mi(Et.layout_symbol["icon-allow-overlap"]), "icon-ignore-placement": new mi(Et.layout_symbol["icon-ignore-placement"]), "icon-optional": new mi(Et.layout_symbol["icon-optional"]), "icon-rotation-alignment": new mi(Et.layout_symbol["icon-rotation-alignment"]), "icon-size": new vi(Et.layout_symbol["icon-size"]), "icon-text-fit": new mi(Et.layout_symbol["icon-text-fit"]), "icon-text-fit-padding": new mi(Et.layout_symbol["icon-text-fit-padding"]), "icon-image": new vi(Et.layout_symbol["icon-image"]), "icon-rotate": new vi(Et.layout_symbol["icon-rotate"]), "icon-padding": new mi(Et.layout_symbol["icon-padding"]), "icon-keep-upright": new mi(Et.layout_symbol["icon-keep-upright"]), "icon-offset": new vi(Et.layout_symbol["icon-offset"]), "icon-anchor": new vi(Et.layout_symbol["icon-anchor"]), "icon-pitch-alignment": new mi(Et.layout_symbol["icon-pitch-alignment"]), "text-pitch-alignment": new mi(Et.layout_symbol["text-pitch-alignment"]), "text-rotation-alignment": new mi(Et.layout_symbol["text-rotation-alignment"]), "text-field": new vi(Et.layout_symbol["text-field"]), "text-font": new vi(Et.layout_symbol["text-font"]), "text-size": new vi(Et.layout_symbol["text-size"]), "text-max-width": new vi(Et.layout_symbol["text-max-width"]), "text-line-height": new mi(Et.layout_symbol["text-line-height"]), "text-letter-spacing": new vi(Et.layout_symbol["text-letter-spacing"]), "text-justify": new vi(Et.layout_symbol["text-justify"]), "text-radial-offset": new vi(Et.layout_symbol["text-radial-offset"]), "text-variable-anchor": new mi(Et.layout_symbol["text-variable-anchor"]), "text-anchor": new vi(Et.layout_symbol["text-anchor"]), "text-max-angle": new mi(Et.layout_symbol["text-max-angle"]), "text-writing-mode": new mi(Et.layout_symbol["text-writing-mode"]), "text-rotate": new vi(Et.layout_symbol["text-rotate"]), "text-padding": new mi(Et.layout_symbol["text-padding"]), "text-keep-upright": new mi(Et.layout_symbol["text-keep-upright"]), "text-transform": new vi(Et.layout_symbol["text-transform"]), "text-offset": new vi(Et.layout_symbol["text-offset"]), "text-allow-overlap": new mi(Et.layout_symbol["text-allow-overlap"]), "text-ignore-placement": new mi(Et.layout_symbol["text-ignore-placement"]), "text-optional": new mi(Et.layout_symbol["text-optional"]) }), xl = { paint: new wi({ "icon-opacity": new vi(Et.paint_symbol["icon-opacity"]), "icon-color": new vi(Et.paint_symbol["icon-color"]), "icon-halo-color": new vi(Et.paint_symbol["icon-halo-color"]), "icon-halo-width": new vi(Et.paint_symbol["icon-halo-width"]), "icon-halo-blur": new vi(Et.paint_symbol["icon-halo-blur"]), "icon-translate": new mi(Et.paint_symbol["icon-translate"]), "icon-translate-anchor": new mi(Et.paint_symbol["icon-translate-anchor"]), "text-opacity": new vi(Et.paint_symbol["text-opacity"]), "text-color": new vi(Et.paint_symbol["text-color"], { runtimeType: jt, getOverride: function(t2) { + return t2.textColor; + }, hasOverride: function(t2) { + return !!t2.textColor; + } }), "text-halo-color": new vi(Et.paint_symbol["text-halo-color"]), "text-halo-width": new vi(Et.paint_symbol["text-halo-width"]), "text-halo-blur": new vi(Et.paint_symbol["text-halo-blur"]), "text-translate": new mi(Et.paint_symbol["text-translate"]), "text-translate-anchor": new mi(Et.paint_symbol["text-translate-anchor"]) }), layout: gl }, bl = function(t2) { + this.type = t2.property.overrides ? t2.property.overrides.runtimeType : Lt, this.defaultValue = t2; + }; + bl.prototype.evaluate = function(t2) { + if (t2.formattedSection) { + var e2 = this.defaultValue.property.overrides; + if (e2 && e2.hasOverride(t2.formattedSection)) + return e2.getOverride(t2.formattedSection); + } + return t2.feature && t2.featureState ? this.defaultValue.evaluate(t2.feature, t2.featureState) : this.defaultValue.property.specification.default; + }, bl.prototype.eachChild = function(t2) { + this.defaultValue.isConstant() || t2(this.defaultValue.value._styleExpression.expression); + }, bl.prototype.outputDefined = function() { + return false; + }, bl.prototype.serialize = function() { + return null; + }, On("FormatSectionOverride", bl, { omit: ["defaultValue"] }); + var wl = function(t2) { + function e2(e3) { + t2.call(this, e3, xl); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.recalculate = function(e3, r2) { + if (t2.prototype.recalculate.call(this, e3, r2), "auto" === this.layout.get("icon-rotation-alignment") && (this.layout._values["icon-rotation-alignment"] = "point" !== this.layout.get("symbol-placement") ? "map" : "viewport"), "auto" === this.layout.get("text-rotation-alignment") && (this.layout._values["text-rotation-alignment"] = "point" !== this.layout.get("symbol-placement") ? "map" : "viewport"), "auto" === this.layout.get("text-pitch-alignment") && (this.layout._values["text-pitch-alignment"] = this.layout.get("text-rotation-alignment")), "auto" === this.layout.get("icon-pitch-alignment") && (this.layout._values["icon-pitch-alignment"] = this.layout.get("icon-rotation-alignment")), "point" === this.layout.get("symbol-placement")) { + var n2 = this.layout.get("text-writing-mode"); + if (n2) { + for (var i2 = [], a2 = 0, o2 = n2; a2 < o2.length; a2 += 1) { + var s2 = o2[a2]; + i2.indexOf(s2) < 0 && i2.push(s2); + } + this.layout._values["text-writing-mode"] = i2; } else this.layout._values["text-writing-mode"] = ["horizontal"]; } this._setPaintOverrides(); - } - getValueAndResolveTokens(t2, e2, r2, n2) { - const i2 = this.layout.get(t2).evaluate(e2, {}, r2, n2), a2 = this._unevaluatedLayout._values[t2]; - return a2.isDataDriven() || Er(a2.value) || !i2 ? i2 : function(t3, e3) { - return e3.replace(/{([^{}]+)}/g, (e4, r3) => r3 in t3 ? String(t3[r3]) : ""); - }(e2.properties, i2); - } - createBucket(t2) { - return new Du(t2); - } - queryRadius() { + }, e2.prototype.getValueAndResolveTokens = function(t3, e3, r2, n2) { + var i2 = this.layout.get(t3).evaluate(e3, {}, r2, n2), a2 = this._unevaluatedLayout._values[t3]; + return a2.isDataDriven() || Gr(a2.value) || !i2 ? i2 : function(t4, e4) { + return e4.replace(/{([^{}]+)}/g, function(e5, r3) { + return r3 in t4 ? String(t4[r3]) : ""; + }); + }(e3.properties, i2); + }, e2.prototype.createBucket = function(t3) { + return new vl(t3); + }, e2.prototype.queryRadius = function() { return 0; - } - queryIntersectsFeature() { - throw new Error("Should take a different path in FeatureIndex"); - } - _setPaintOverrides() { - for (const t2 of Ru.paint.overridableProperties) { - if (!Uu.hasPaintOverride(this.layout, t2)) - continue; - const e2 = this.paint.get(t2), r2 = new Ou(e2), n2 = new Vr(r2, e2.property.specification); - let i2 = null; - i2 = "constant" === e2.value.kind || "source" === e2.value.kind ? new Tr("source", n2) : new Lr("composite", n2, e2.value.zoomStops), this.paint._values[t2] = new si(e2.property, i2, e2.parameters); + }, e2.prototype.queryIntersectsFeature = function() { + return false; + }, e2.prototype._setPaintOverrides = function() { + for (var t3 = 0, r2 = xl.paint.overridableProperties; t3 < r2.length; t3 += 1) { + var n2 = r2[t3]; + if (e2.hasPaintOverride(this.layout, n2)) { + var i2, a2 = this.paint.get(n2), o2 = new bl(a2), s2 = new Kr(o2, a2.property.specification); + i2 = "constant" === a2.value.kind || "source" === a2.value.kind ? new Xr("source", s2) : new Jr("composite", s2, a2.value.zoomStops, a2.value._interpolationType), this.paint._values[n2] = new yi(a2.property, i2, a2.parameters); + } } - } - _handleOverridablePaintPropertyUpdate(t2, e2, r2) { - return !(!this.layout || e2.isDataDriven() || r2.isDataDriven()) && Uu.hasPaintOverride(this.layout, t2); - } - static hasPaintOverride(t2, e2) { - const r2 = t2.get("text-field"), n2 = Ru.paint.properties[e2]; - let i2 = false; - const a2 = (t3) => { - for (const e3 of t3) - if (n2.overrides && n2.overrides.hasOverride(e3)) + }, e2.prototype._handleOverridablePaintPropertyUpdate = function(t3, r2, n2) { + return !(!this.layout || r2.isDataDriven() || n2.isDataDriven()) && e2.hasPaintOverride(this.layout, t3); + }, e2.hasPaintOverride = function(t3, e3) { + var r2 = t3.get("text-field"), n2 = xl.paint.properties[e3], i2 = false, a2 = function(t4) { + for (var e4 = 0, r3 = t4; e4 < r3.length; e4 += 1) + if (n2.overrides && n2.overrides.hasOverride(r3[e4])) return void (i2 = true); }; - if ("constant" === r2.value.kind && r2.value.value instanceof Dt) + if ("constant" === r2.value.kind && r2.value.value instanceof ne) a2(r2.value.value.sections); else if ("source" === r2.value.kind) { - const t3 = (e4) => { - i2 || (e4 instanceof Nt && qt(e4.value) === vt ? a2(e4.value.sections) : e4 instanceof cr ? a2(e4.sections) : e4.eachChild(t3)); - }, e3 = r2.value; - e3._styleExpression && t3(e3._styleExpression.expression); + var o2 = function(t4) { + i2 || (t4 instanceof le && se(t4.value) === Gt ? a2(t4.value.sections) : t4 instanceof fe ? a2(t4.sections) : t4.eachChild(o2)); + }, s2 = r2.value; + s2._styleExpression && o2(s2._styleExpression.expression); } return i2; - } - } - function qu(t2, e2, r2) { - let n2 = "never"; - const i2 = t2.get(e2); - return i2 ? n2 = i2 : t2.get(r2) && (n2 = "always"), n2; - } - var ju = { paint: new fi({ "background-color": new li(nt.paint_background["background-color"]), "background-pattern": new hi(nt.paint_background["background-pattern"]), "background-opacity": new li(nt.paint_background["background-opacity"]) }) }, Nu = { paint: new fi({ "raster-opacity": new li(nt.paint_raster["raster-opacity"]), "raster-hue-rotate": new li(nt.paint_raster["raster-hue-rotate"]), "raster-brightness-min": new li(nt.paint_raster["raster-brightness-min"]), "raster-brightness-max": new li(nt.paint_raster["raster-brightness-max"]), "raster-saturation": new li(nt.paint_raster["raster-saturation"]), "raster-contrast": new li(nt.paint_raster["raster-contrast"]), "raster-resampling": new li(nt.paint_raster["raster-resampling"]), "raster-fade-duration": new li(nt.paint_raster["raster-fade-duration"]) }) }; - class Zu extends yi { - constructor(t2) { - super(t2, {}), this.onAdd = (t3) => { - this.implementation.onAdd && this.implementation.onAdd(t3, t3.painter.context.gl); - }, this.onRemove = (t3) => { - this.implementation.onRemove && this.implementation.onRemove(t3, t3.painter.context.gl); - }, this.implementation = t2; - } - is3D() { + }, e2; + }(_i), _l = { paint: new wi({ "background-color": new mi(Et.paint_background["background-color"]), "background-pattern": new xi(Et.paint_background["background-pattern"]), "background-opacity": new mi(Et.paint_background["background-opacity"]) }) }, Al = function(t2) { + function e2(e3) { + t2.call(this, e3, _l); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2; + }(_i), Sl = { paint: new wi({ "raster-opacity": new mi(Et.paint_raster["raster-opacity"]), "raster-hue-rotate": new mi(Et.paint_raster["raster-hue-rotate"]), "raster-brightness-min": new mi(Et.paint_raster["raster-brightness-min"]), "raster-brightness-max": new mi(Et.paint_raster["raster-brightness-max"]), "raster-saturation": new mi(Et.paint_raster["raster-saturation"]), "raster-contrast": new mi(Et.paint_raster["raster-contrast"]), "raster-resampling": new mi(Et.paint_raster["raster-resampling"]), "raster-fade-duration": new mi(Et.paint_raster["raster-fade-duration"]) }) }, kl = function(t2) { + function e2(e3) { + t2.call(this, e3, Sl); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2; + }(_i), Il = function(t2) { + function e2(e3) { + t2.call(this, e3, {}), this.implementation = e3; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.is3D = function() { return "3d" === this.implementation.renderingMode; - } - hasOffscreenPass() { + }, e2.prototype.hasOffscreenPass = function() { return void 0 !== this.implementation.prerender; - } - recalculate() { - } - updateTransitions() { - } - hasTransition() { - return false; - } - serialize() { - throw new Error("Custom layers cannot be serialized"); - } - } - const Ku = { circle: class extends yi { - constructor(t2) { - super(t2, cs); - } - createBucket(t2) { - return new Ja(t2); - } - queryRadius(t2) { - const e2 = t2; - return ss("circle-radius", this, e2) + ss("circle-stroke-width", this, e2) + os(this.paint.get("circle-translate")); - } - queryIntersectsFeature(t2, e2, r2, n2, i2, a2, s2, o2) { - const l2 = ls(t2, this.paint.get("circle-translate"), this.paint.get("circle-translate-anchor"), a2.angle, s2), u2 = this.paint.get("circle-radius").evaluate(e2, r2) + this.paint.get("circle-stroke-width").evaluate(e2, r2), c3 = "map" === this.paint.get("circle-pitch-alignment"), h3 = c3 ? l2 : function(t3, e3) { - return t3.map((t4) => _s(t4, e3)); - }(l2, o2), p3 = c3 ? u2 * s2 : u2; - for (const t3 of n2) - for (const e3 of t3) { - const t4 = c3 ? e3 : _s(e3, o2); - let r3 = p3; - const n3 = bs([], [e3.x, e3.y, 0, 1], o2); - if ("viewport" === this.paint.get("circle-pitch-scale") && "map" === this.paint.get("circle-pitch-alignment") ? r3 *= n3[3] / a2.cameraToCenterDistance : "map" === this.paint.get("circle-pitch-scale") && "viewport" === this.paint.get("circle-pitch-alignment") && (r3 *= a2.cameraToCenterDistance / n3[3]), Ya(h3, t4, r3)) - return true; - } - return false; - } - }, heatmap: class extends yi { - constructor(t2) { - super(t2, ks), this._updateColorRamp(); - } - createBucket(t2) { - return new As(t2); - } - _handleSpecialPaintPropertyUpdate(t2) { - "heatmap-color" === t2 && this._updateColorRamp(); - } - _updateColorRamp() { - this.colorRamp = Cs({ expression: this._transitionablePaint._values["heatmap-color"].value.expression, evaluationKey: "heatmapDensity", image: this.colorRamp }), this.colorRampTexture = null; - } - resize() { - this.heatmapFbo && (this.heatmapFbo.destroy(), this.heatmapFbo = null); - } - queryRadius() { - return 0; - } - queryIntersectsFeature() { - return false; - } - hasOffscreenPass() { - return 0 !== this.paint.get("heatmap-opacity") && "none" !== this.visibility; - } - }, hillshade: class extends yi { - constructor(t2) { - super(t2, Ps); - } - hasOffscreenPass() { - return 0 !== this.paint.get("hillshade-exaggeration") && "none" !== this.visibility; - } - }, fill: class extends yi { - constructor(t2) { - super(t2, xo); - } - recalculate(t2, e2) { - super.recalculate(t2, e2); - const r2 = this.paint._values["fill-outline-color"]; - "constant" === r2.value.kind && void 0 === r2.value.value && (this.paint._values["fill-outline-color"] = this.paint._values["fill-color"]); - } - createBucket(t2) { - return new mo(t2); - } - queryRadius() { - return os(this.paint.get("fill-translate")); - } - queryIntersectsFeature(t2, e2, r2, n2, i2, a2, s2) { - return Ha(ls(t2, this.paint.get("fill-translate"), this.paint.get("fill-translate-anchor"), a2.angle, s2), n2); - } - isTileClipped() { - return true; - } - }, "fill-extrusion": class extends yi { - constructor(t2) { - super(t2, Oo); - } - createBucket(t2) { - return new Do(t2); - } - queryRadius() { - return os(this.paint.get("fill-extrusion-translate")); - } - is3D() { - return true; - } - queryIntersectsFeature(t2, e2, r2, n2, i2, a2, s2, o2) { - const l2 = ls(t2, this.paint.get("fill-extrusion-translate"), this.paint.get("fill-extrusion-translate-anchor"), a2.angle, s2), u2 = this.paint.get("fill-extrusion-height").evaluate(e2, r2), c3 = this.paint.get("fill-extrusion-base").evaluate(e2, r2), h3 = function(t3, e3, r3, n3) { - const i3 = []; - for (const r4 of t3) { - const t4 = [r4.x, r4.y, 0, 1]; - bs(t4, t4, e3), i3.push(new S(t4[0] / t4[3], t4[1] / t4[3])); - } - return i3; - }(l2, o2), p3 = function(t3, e3, r3, n3) { - const i3 = [], a3 = [], s3 = n3[8] * e3, o3 = n3[9] * e3, l3 = n3[10] * e3, u3 = n3[11] * e3, c4 = n3[8] * r3, h4 = n3[9] * r3, p4 = n3[10] * r3, f2 = n3[11] * r3; - for (const e4 of t3) { - const t4 = [], r4 = []; - for (const i4 of e4) { - const e5 = i4.x, a4 = i4.y, d2 = n3[0] * e5 + n3[4] * a4 + n3[12], y3 = n3[1] * e5 + n3[5] * a4 + n3[13], m2 = n3[2] * e5 + n3[6] * a4 + n3[14], g2 = n3[3] * e5 + n3[7] * a4 + n3[15], x2 = m2 + l3, v3 = g2 + u3, b2 = d2 + c4, w2 = y3 + h4, _24 = m2 + p4, A3 = g2 + f2, k2 = new S((d2 + s3) / v3, (y3 + o3) / v3); - k2.z = x2 / v3, t4.push(k2); - const I3 = new S(b2 / A3, w2 / A3); - I3.z = _24 / A3, r4.push(I3); - } - i3.push(t4), a3.push(r4); - } - return [i3, a3]; - }(n2, c3, u2, o2); - return function(t3, e3, r3) { - let n3 = 1 / 0; - Ha(r3, e3) && (n3 = qo(r3, e3[0])); - for (let i3 = 0; i3 < e3.length; i3++) { - const a3 = e3[i3], s3 = t3[i3]; - for (let t4 = 0; t4 < a3.length - 1; t4++) { - const e4 = a3[t4], i4 = [e4, a3[t4 + 1], s3[t4 + 1], s3[t4], e4]; - Xa(r3, i4) && (n3 = Math.min(n3, qo(r3, i4))); - } - } - return n3 !== 1 / 0 && n3; - }(p3[0], p3[1], h3); - } - }, line: class extends yi { - constructor(t2) { - super(t2, Wo), this.gradientVersion = 0; - } - _handleSpecialPaintPropertyUpdate(t2) { - "line-gradient" === t2 && (this.stepInterpolant = this._transitionablePaint._values["line-gradient"].value.expression._styleExpression.expression instanceof ke, this.gradientVersion = (this.gradientVersion + 1) % Number.MAX_SAFE_INTEGER); - } - gradientExpression() { - return this._transitionablePaint._values["line-gradient"].value.expression; - } - recalculate(t2, e2) { - super.recalculate(t2, e2), this.paint._values["line-floorwidth"] = Qo.possiblyEvaluate(this._transitioningPaint._values["line-width"].value, t2); - } - createBucket(t2) { - return new Yo(t2); - } - queryRadius(t2) { - const e2 = t2, r2 = tl(ss("line-width", this, e2), ss("line-gap-width", this, e2)), n2 = ss("line-offset", this, e2); - return r2 / 2 + Math.abs(n2) + os(this.paint.get("line-translate")); - } - queryIntersectsFeature(t2, e2, r2, n2, i2, a2, s2) { - const o2 = ls(t2, this.paint.get("line-translate"), this.paint.get("line-translate-anchor"), a2.angle, s2), l2 = s2 / 2 * tl(this.paint.get("line-width").evaluate(e2, r2), this.paint.get("line-gap-width").evaluate(e2, r2)), u2 = this.paint.get("line-offset").evaluate(e2, r2); - return u2 && (n2 = function(t3, e3) { - const r3 = []; - for (let n3 = 0; n3 < t3.length; n3++) { - const i3 = t3[n3], a3 = []; - for (let t4 = 0; t4 < i3.length; t4++) { - const r4 = i3[t4 - 1], n4 = i3[t4], s3 = i3[t4 + 1], o3 = 0 === t4 ? new S(0, 0) : n4.sub(r4)._unit()._perp(), l3 = t4 === i3.length - 1 ? new S(0, 0) : s3.sub(n4)._unit()._perp(), u3 = o3._add(l3)._unit(), c3 = u3.x * l3.x + u3.y * l3.y; - 0 !== c3 && u3._mult(1 / c3), a3.push(u3._mult(e3)._add(n4)); - } - r3.push(a3); - } - return r3; - }(n2, u2 * s2)), function(t3, e3, r3) { - for (let n3 = 0; n3 < e3.length; n3++) { - const i3 = e3[n3]; - if (t3.length >= 3) { - for (let e4 = 0; e4 < i3.length; e4++) - if (is2(t3, i3[e4])) - return true; - } - if (Wa(t3, i3, r3)) - return true; - } - return false; - }(o2, n2, l2); - } - isTileClipped() { - return true; - } - }, symbol: Uu, background: class extends yi { - constructor(t2) { - super(t2, ju); - } - }, raster: class extends yi { - constructor(t2) { - super(t2, Nu); - } - } }; - class Gu { - constructor(t2) { - this._callback = t2, this._triggered = false, "undefined" != typeof MessageChannel && (this._channel = new MessageChannel(), this._channel.port2.onmessage = () => { - this._triggered = false, this._callback(); - }); - } - trigger() { - this._triggered || (this._triggered = true, this._channel ? this._channel.port1.postMessage(true) : setTimeout(() => { - this._triggered = false, this._callback(); - }, 0)); - } - remove() { - delete this._channel, this._callback = () => { - }; - } - } - const Ju = 63710088e-1; - class Xu { - constructor(t2, e2) { - if (isNaN(t2) || isNaN(e2)) - throw new Error(`Invalid LngLat object: (${t2}, ${e2})`); - if (this.lng = +t2, this.lat = +e2, this.lat > 90 || this.lat < -90) - throw new Error("Invalid LngLat latitude value: must be between -90 and 90"); - } - wrap() { - return new Xu(s(this.lng, -180, 180), this.lat); - } - toArray() { - return [this.lng, this.lat]; - } - toString() { - return `LngLat(${this.lng}, ${this.lat})`; - } - distanceTo(t2) { - const e2 = Math.PI / 180, r2 = this.lat * e2, n2 = t2.lat * e2, i2 = Math.sin(r2) * Math.sin(n2) + Math.cos(r2) * Math.cos(n2) * Math.cos((t2.lng - this.lng) * e2); - return Ju * Math.acos(Math.min(i2, 1)); - } - toBounds(t2 = 0) { - const e2 = 360 * t2 / 40075017, r2 = e2 / Math.cos(Math.PI / 180 * this.lat); - return new Yu(new Xu(this.lng - r2, this.lat - e2), new Xu(this.lng + r2, this.lat + e2)); - } - static convert(t2) { - if (t2 instanceof Xu) - return t2; - if (Array.isArray(t2) && (2 === t2.length || 3 === t2.length)) - return new Xu(Number(t2[0]), Number(t2[1])); - if (!Array.isArray(t2) && "object" == typeof t2 && null !== t2) - return new Xu(Number("lng" in t2 ? t2.lng : t2.lon), Number(t2.lat)); - throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]"); - } + }, e2.prototype.recalculate = function() { + }, e2.prototype.updateTransitions = function() { + }, e2.prototype.hasTransition = function() { + }, e2.prototype.serialize = function() { + }, e2.prototype.onAdd = function(t3) { + this.implementation.onAdd && this.implementation.onAdd(t3, t3.painter.context.gl); + }, e2.prototype.onRemove = function(t3) { + this.implementation.onRemove && this.implementation.onRemove(t3, t3.painter.context.gl); + }, e2; + }(_i), zl = { circle: co, heatmap: _o, hillshade: So, fill: ps, "fill-extrusion": zs, line: Rs, symbol: wl, background: Al, raster: kl }, Cl = o.HTMLImageElement, El = o.HTMLCanvasElement, Pl = o.HTMLVideoElement, Ml = o.ImageData, Bl = o.ImageBitmap, Tl = function(t2, e2, r2, n2) { + this.context = t2, this.format = r2, this.texture = t2.gl.createTexture(), this.update(e2, n2); + }; + Tl.prototype.update = function(t2, e2, r2) { + var n2 = t2.width, i2 = t2.height, a2 = !(this.size && this.size[0] === n2 && this.size[1] === i2 || r2), o2 = this.context, s2 = o2.gl; + if (this.useMipmap = Boolean(e2 && e2.useMipmap), s2.bindTexture(s2.TEXTURE_2D, this.texture), o2.pixelStoreUnpackFlipY.set(false), o2.pixelStoreUnpack.set(1), o2.pixelStoreUnpackPremultiplyAlpha.set(this.format === s2.RGBA && (!e2 || false !== e2.premultiply)), a2) + this.size = [n2, i2], t2 instanceof Cl || t2 instanceof El || t2 instanceof Pl || t2 instanceof Ml || Bl && t2 instanceof Bl ? s2.texImage2D(s2.TEXTURE_2D, 0, this.format, this.format, s2.UNSIGNED_BYTE, t2) : s2.texImage2D(s2.TEXTURE_2D, 0, this.format, n2, i2, 0, this.format, s2.UNSIGNED_BYTE, t2.data); + else { + var u2 = r2 || { x: 0, y: 0 }, l2 = u2.x, p3 = u2.y; + t2 instanceof Cl || t2 instanceof El || t2 instanceof Pl || t2 instanceof Ml || Bl && t2 instanceof Bl ? s2.texSubImage2D(s2.TEXTURE_2D, 0, l2, p3, s2.RGBA, s2.UNSIGNED_BYTE, t2) : s2.texSubImage2D(s2.TEXTURE_2D, 0, l2, p3, n2, i2, s2.RGBA, s2.UNSIGNED_BYTE, t2.data); + } + this.useMipmap && this.isSizePowerOfTwo() && s2.generateMipmap(s2.TEXTURE_2D); + }, Tl.prototype.bind = function(t2, e2, r2) { + var n2 = this.context.gl; + n2.bindTexture(n2.TEXTURE_2D, this.texture), r2 !== n2.LINEAR_MIPMAP_NEAREST || this.isSizePowerOfTwo() || (r2 = n2.LINEAR), t2 !== this.filter && (n2.texParameteri(n2.TEXTURE_2D, n2.TEXTURE_MAG_FILTER, t2), n2.texParameteri(n2.TEXTURE_2D, n2.TEXTURE_MIN_FILTER, r2 || t2), this.filter = t2), e2 !== this.wrap && (n2.texParameteri(n2.TEXTURE_2D, n2.TEXTURE_WRAP_S, e2), n2.texParameteri(n2.TEXTURE_2D, n2.TEXTURE_WRAP_T, e2), this.wrap = e2); + }, Tl.prototype.isSizePowerOfTwo = function() { + return this.size[0] === this.size[1] && Math.log(this.size[0]) / Math.LN2 % 1 == 0; + }, Tl.prototype.destroy = function() { + this.context.gl.deleteTexture(this.texture), this.texture = null; + }; + var Vl = function(t2) { + var e2 = this; + this._callback = t2, this._triggered = false, "undefined" != typeof MessageChannel && (this._channel = new MessageChannel(), this._channel.port2.onmessage = function() { + e2._triggered = false, e2._callback(); + }); + }; + Vl.prototype.trigger = function() { + var t2 = this; + this._triggered || (this._triggered = true, this._channel ? this._channel.port1.postMessage(true) : setTimeout(function() { + t2._triggered = false, t2._callback(); + }, 0)); + }, Vl.prototype.remove = function() { + delete this._channel, this._callback = function() { + }; + }; + var Fl = function(t2, e2, r2) { + this.target = t2, this.parent = e2, this.mapId = r2, this.callbacks = {}, this.tasks = {}, this.taskQueue = [], this.cancelCallbacks = {}, v2(["receive", "process"], this), this.invoker = new Vl(this.process), this.target.addEventListener("message", this.receive, false), this.globalScope = I2() ? t2 : o; + }; + function Dl(t2, e2, r2) { + var n2 = 2 * Math.PI * 6378137 / 256 / Math.pow(2, r2); + return [t2 * n2 - 2 * Math.PI * 6378137 / 2, e2 * n2 - 2 * Math.PI * 6378137 / 2]; } - class Yu { - constructor(t2, e2) { - t2 && (e2 ? this.setSouthWest(t2).setNorthEast(e2) : 4 === t2.length ? this.setSouthWest([t2[0], t2[1]]).setNorthEast([t2[2], t2[3]]) : this.setSouthWest(t2[0]).setNorthEast(t2[1])); - } - setNorthEast(t2) { - return this._ne = t2 instanceof Xu ? new Xu(t2.lng, t2.lat) : Xu.convert(t2), this; - } - setSouthWest(t2) { - return this._sw = t2 instanceof Xu ? new Xu(t2.lng, t2.lat) : Xu.convert(t2), this; - } - extend(t2) { - const e2 = this._sw, r2 = this._ne; - let n2, i2; - if (t2 instanceof Xu) - n2 = t2, i2 = t2; - else { - if (!(t2 instanceof Yu)) - return Array.isArray(t2) ? 4 === t2.length || t2.every(Array.isArray) ? this.extend(Yu.convert(t2)) : this.extend(Xu.convert(t2)) : this; - if (n2 = t2._sw, i2 = t2._ne, !n2 || !i2) - return this; - } - return e2 || r2 ? (e2.lng = Math.min(n2.lng, e2.lng), e2.lat = Math.min(n2.lat, e2.lat), r2.lng = Math.max(i2.lng, r2.lng), r2.lat = Math.max(i2.lat, r2.lat)) : (this._sw = new Xu(n2.lng, n2.lat), this._ne = new Xu(i2.lng, i2.lat)), this; - } - getCenter() { - return new Xu((this._sw.lng + this._ne.lng) / 2, (this._sw.lat + this._ne.lat) / 2); - } - getSouthWest() { - return this._sw; - } - getNorthEast() { - return this._ne; - } - getNorthWest() { - return new Xu(this.getWest(), this.getNorth()); - } - getSouthEast() { - return new Xu(this.getEast(), this.getSouth()); - } - getWest() { - return this._sw.lng; - } - getSouth() { - return this._sw.lat; - } - getEast() { - return this._ne.lng; - } - getNorth() { - return this._ne.lat; - } - toArray() { - return [this._sw.toArray(), this._ne.toArray()]; - } - toString() { - return `LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`; - } - isEmpty() { - return !(this._sw && this._ne); + Fl.prototype.send = function(t2, e2, r2, n2, i2) { + var a2 = this; + void 0 === i2 && (i2 = false); + var o2 = Math.round(1e18 * Math.random()).toString(36).substring(0, 10); + r2 && (this.callbacks[o2] = r2); + var s2 = E(this.globalScope) ? void 0 : []; + return this.target.postMessage({ id: o2, type: t2, hasCallback: !!r2, targetMapId: n2, mustQueue: i2, sourceMapId: this.mapId, data: qn(e2, s2) }, s2), { cancel: function() { + r2 && delete a2.callbacks[o2], a2.target.postMessage({ id: o2, type: "", targetMapId: n2, sourceMapId: a2.mapId }); + } }; + }, Fl.prototype.receive = function(t2) { + var e2 = t2.data, r2 = e2.id; + if (r2 && (!e2.targetMapId || this.mapId === e2.targetMapId)) + if ("" === e2.type) { + delete this.tasks[r2]; + var n2 = this.cancelCallbacks[r2]; + delete this.cancelCallbacks[r2], n2 && n2(); + } else + I2() || e2.mustQueue ? (this.tasks[r2] = e2, this.taskQueue.push(r2), this.invoker.trigger()) : this.processTask(r2, e2); + }, Fl.prototype.process = function() { + if (this.taskQueue.length) { + var t2 = this.taskQueue.shift(), e2 = this.tasks[t2]; + delete this.tasks[t2], this.taskQueue.length && this.invoker.trigger(), e2 && this.processTask(t2, e2); } - contains(t2) { - const { lng: e2, lat: r2 } = Xu.convert(t2); - let n2 = this._sw.lng <= e2 && e2 <= this._ne.lng; - return this._sw.lng > this._ne.lng && (n2 = this._sw.lng >= e2 && e2 >= this._ne.lng), this._sw.lat <= r2 && r2 <= this._ne.lat && n2; + }, Fl.prototype.processTask = function(t2, e2) { + var r2 = this; + if ("" === e2.type) { + var n2 = this.callbacks[t2]; + delete this.callbacks[t2], n2 && (e2.error ? n2(Nn(e2.error)) : n2(null, Nn(e2.data))); + } else { + var i2 = false, a2 = E(this.globalScope) ? void 0 : [], o2 = e2.hasCallback ? function(e3, n3) { + i2 = true, delete r2.cancelCallbacks[t2], r2.target.postMessage({ id: t2, type: "", sourceMapId: r2.mapId, error: e3 ? qn(e3) : null, data: qn(n3, a2) }, a2); + } : function(t3) { + i2 = true; + }, s2 = null, u2 = Nn(e2.data); + if (this.parent[e2.type]) + s2 = this.parent[e2.type](e2.sourceMapId, u2, o2); + else if (this.parent.getWorkerSource) { + var l2 = e2.type.split("."); + s2 = this.parent.getWorkerSource(e2.sourceMapId, l2[0], u2.source)[l2[1]](u2, o2); + } else + o2(new Error("Could not find function " + e2.type)); + !i2 && s2 && s2.cancel && (this.cancelCallbacks[t2] = s2.cancel); } - static convert(t2) { - return t2 instanceof Yu ? t2 : t2 ? new Yu(t2) : t2; + }, Fl.prototype.remove = function() { + this.invoker.remove(), this.target.removeEventListener("message", this.receive, false); + }; + var Ll = function(t2, e2) { + t2 && (e2 ? this.setSouthWest(t2).setNorthEast(e2) : 4 === t2.length ? this.setSouthWest([t2[0], t2[1]]).setNorthEast([t2[2], t2[3]]) : this.setSouthWest(t2[0]).setNorthEast(t2[1])); + }; + Ll.prototype.setNorthEast = function(t2) { + return this._ne = t2 instanceof Ol ? new Ol(t2.lng, t2.lat) : Ol.convert(t2), this; + }, Ll.prototype.setSouthWest = function(t2) { + return this._sw = t2 instanceof Ol ? new Ol(t2.lng, t2.lat) : Ol.convert(t2), this; + }, Ll.prototype.extend = function(t2) { + var e2, r2, n2 = this._sw, i2 = this._ne; + if (t2 instanceof Ol) + e2 = t2, r2 = t2; + else { + if (!(t2 instanceof Ll)) + return Array.isArray(t2) ? 4 === t2.length || t2.every(Array.isArray) ? this.extend(Ll.convert(t2)) : this.extend(Ol.convert(t2)) : this; + if (r2 = t2._ne, !(e2 = t2._sw) || !r2) + return this; } + return n2 || i2 ? (n2.lng = Math.min(e2.lng, n2.lng), n2.lat = Math.min(e2.lat, n2.lat), i2.lng = Math.max(r2.lng, i2.lng), i2.lat = Math.max(r2.lat, i2.lat)) : (this._sw = new Ol(e2.lng, e2.lat), this._ne = new Ol(r2.lng, r2.lat)), this; + }, Ll.prototype.getCenter = function() { + return new Ol((this._sw.lng + this._ne.lng) / 2, (this._sw.lat + this._ne.lat) / 2); + }, Ll.prototype.getSouthWest = function() { + return this._sw; + }, Ll.prototype.getNorthEast = function() { + return this._ne; + }, Ll.prototype.getNorthWest = function() { + return new Ol(this.getWest(), this.getNorth()); + }, Ll.prototype.getSouthEast = function() { + return new Ol(this.getEast(), this.getSouth()); + }, Ll.prototype.getWest = function() { + return this._sw.lng; + }, Ll.prototype.getSouth = function() { + return this._sw.lat; + }, Ll.prototype.getEast = function() { + return this._ne.lng; + }, Ll.prototype.getNorth = function() { + return this._ne.lat; + }, Ll.prototype.toArray = function() { + return [this._sw.toArray(), this._ne.toArray()]; + }, Ll.prototype.toString = function() { + return "LngLatBounds(" + this._sw.toString() + ", " + this._ne.toString() + ")"; + }, Ll.prototype.isEmpty = function() { + return !(this._sw && this._ne); + }, Ll.prototype.contains = function(t2) { + var e2 = Ol.convert(t2), r2 = e2.lng, n2 = e2.lat, i2 = this._sw.lng <= r2 && r2 <= this._ne.lng; + return this._sw.lng > this._ne.lng && (i2 = this._sw.lng >= r2 && r2 >= this._ne.lng), this._sw.lat <= n2 && n2 <= this._ne.lat && i2; + }, Ll.convert = function(t2) { + return !t2 || t2 instanceof Ll ? t2 : new Ll(t2); + }; + var Ol = function(t2, e2) { + if (isNaN(t2) || isNaN(e2)) + throw new Error("Invalid LngLat object: (" + t2 + ", " + e2 + ")"); + if (this.lng = +t2, this.lat = +e2, this.lat > 90 || this.lat < -90) + throw new Error("Invalid LngLat latitude value: must be between -90 and 90"); + }; + Ol.prototype.wrap = function() { + return new Ol(c2(this.lng, -180, 180), this.lat); + }, Ol.prototype.toArray = function() { + return [this.lng, this.lat]; + }, Ol.prototype.toString = function() { + return "LngLat(" + this.lng + ", " + this.lat + ")"; + }, Ol.prototype.distanceTo = function(t2) { + var e2 = Math.PI / 180, r2 = this.lat * e2, n2 = t2.lat * e2, i2 = Math.sin(r2) * Math.sin(n2) + Math.cos(r2) * Math.cos(n2) * Math.cos((t2.lng - this.lng) * e2); + return 63710088e-1 * Math.acos(Math.min(i2, 1)); + }, Ol.prototype.toBounds = function(t2) { + void 0 === t2 && (t2 = 0); + var e2 = 360 * t2 / 40075017, r2 = e2 / Math.cos(Math.PI / 180 * this.lat); + return new Ll(new Ol(this.lng - r2, this.lat - e2), new Ol(this.lng + r2, this.lat + e2)); + }, Ol.convert = function(t2) { + if (t2 instanceof Ol) + return t2; + if (Array.isArray(t2) && (2 === t2.length || 3 === t2.length)) + return new Ol(Number(t2[0]), Number(t2[1])); + if (!Array.isArray(t2) && "object" == typeof t2 && null !== t2) + return new Ol(Number("lng" in t2 ? t2.lng : t2.lon), Number(t2.lat)); + throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]"); + }; + var Rl = 2 * Math.PI * 63710088e-1; + function Ul(t2) { + return Rl * Math.cos(t2 * Math.PI / 180); } - const Hu = 2 * Math.PI * Ju; - function Wu(t2) { - return Hu * Math.cos(t2 * Math.PI / 180); - } - function Qu(t2) { + function jl(t2) { return (180 + t2) / 360; } - function tc(t2) { + function ql(t2) { return (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + t2 * Math.PI / 360))) / 360; } - function ec(t2, e2) { - return t2 / Wu(e2); + function Nl(t2, e2) { + return t2 / Ul(e2); } - function rc(t2) { + function Kl(t2) { return 360 / Math.PI * Math.atan(Math.exp((180 - 360 * t2) * Math.PI / 180)) - 90; } - class nc { - constructor(t2, e2, r2 = 0) { - this.x = +t2, this.y = +e2, this.z = +r2; - } - static fromLngLat(t2, e2 = 0) { - const r2 = Xu.convert(t2); - return new nc(Qu(r2.lng), tc(r2.lat), ec(e2, r2.lat)); - } - toLngLat() { - return new Xu(360 * this.x - 180, rc(this.y)); - } - toAltitude() { - return this.z * Wu(rc(this.y)); - } - meterInMercatorCoordinateUnits() { - return 1 / Hu * (t2 = rc(this.y), 1 / Math.cos(t2 * Math.PI / 180)); - var t2; - } - } - function ic(t2, e2, r2) { - var n2 = 2 * Math.PI * 6378137 / 256 / Math.pow(2, r2); - return [t2 * n2 - 2 * Math.PI * 6378137 / 2, e2 * n2 - 2 * Math.PI * 6378137 / 2]; - } - class ac { - constructor(t2, e2, r2) { - if (t2 < 0 || t2 > 25 || r2 < 0 || r2 >= Math.pow(2, t2) || e2 < 0 || e2 >= Math.pow(2, t2)) - throw new Error(`x=${e2}, y=${r2}, z=${t2} outside of bounds. 0<=x<${Math.pow(2, t2)}, 0<=y<${Math.pow(2, t2)} 0<=z<=25 `); - this.z = t2, this.x = e2, this.y = r2, this.key = lc(0, t2, t2, e2, r2); - } - equals(t2) { - return this.z === t2.z && this.x === t2.x && this.y === t2.y; - } - url(t2, e2, r2) { - const n2 = (a2 = this.y, s2 = this.z, o2 = ic(256 * (i2 = this.x), 256 * (a2 = Math.pow(2, s2) - a2 - 1), s2), l2 = ic(256 * (i2 + 1), 256 * (a2 + 1), s2), o2[0] + "," + o2[1] + "," + l2[0] + "," + l2[1]); - var i2, a2, s2, o2, l2; - const u2 = function(t3, e3, r3) { - let n3, i3 = ""; - for (let a3 = t3; a3 > 0; a3--) - n3 = 1 << a3 - 1, i3 += (e3 & n3 ? 1 : 0) + (r3 & n3 ? 2 : 0); - return i3; - }(this.z, this.x, this.y); - return t2[(this.x + this.y) % t2.length].replace(/{prefix}/g, (this.x % 16).toString(16) + (this.y % 16).toString(16)).replace(/{z}/g, String(this.z)).replace(/{x}/g, String(this.x)).replace(/{y}/g, String("tms" === r2 ? Math.pow(2, this.z) - this.y - 1 : this.y)).replace(/{ratio}/g, e2 > 1 ? "@2x" : "").replace(/{quadkey}/g, u2).replace(/{bbox-epsg-3857}/g, n2); - } - isChildOf(t2) { - const e2 = this.z - t2.z; - return e2 > 0 && t2.x === this.x >> e2 && t2.y === this.y >> e2; - } - getTilePoint(t2) { - const e2 = Math.pow(2, this.z); - return new S((t2.x * e2 - this.x) * qa, (t2.y * e2 - this.y) * qa); - } - toString() { - return `${this.z}/${this.x}/${this.y}`; - } - } - class sc { - constructor(t2, e2) { - this.wrap = t2, this.canonical = e2, this.key = lc(t2, e2.z, e2.z, e2.x, e2.y); - } - } - class oc { - constructor(t2, e2, r2, n2, i2) { - if (t2 < r2) - throw new Error(`overscaledZ should be >= z; overscaledZ = ${t2}; z = ${r2}`); - this.overscaledZ = t2, this.wrap = e2, this.canonical = new ac(r2, +n2, +i2), this.key = lc(e2, t2, r2, n2, i2); - } - clone() { - return new oc(this.overscaledZ, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y); - } - equals(t2) { - return this.overscaledZ === t2.overscaledZ && this.wrap === t2.wrap && this.canonical.equals(t2.canonical); - } - scaledTo(t2) { - if (t2 > this.overscaledZ) - throw new Error(`targetZ > this.overscaledZ; targetZ = ${t2}; overscaledZ = ${this.overscaledZ}`); - const e2 = this.canonical.z - t2; - return t2 > this.canonical.z ? new oc(t2, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y) : new oc(t2, this.wrap, t2, this.canonical.x >> e2, this.canonical.y >> e2); - } - calculateScaledKey(t2, e2) { - if (t2 > this.overscaledZ) - throw new Error(`targetZ > this.overscaledZ; targetZ = ${t2}; overscaledZ = ${this.overscaledZ}`); - const r2 = this.canonical.z - t2; - return t2 > this.canonical.z ? lc(this.wrap * +e2, t2, this.canonical.z, this.canonical.x, this.canonical.y) : lc(this.wrap * +e2, t2, t2, this.canonical.x >> r2, this.canonical.y >> r2); - } - isChildOf(t2) { - if (t2.wrap !== this.wrap) - return false; - const e2 = this.canonical.z - t2.canonical.z; - return 0 === t2.overscaledZ || t2.overscaledZ < this.overscaledZ && t2.canonical.x === this.canonical.x >> e2 && t2.canonical.y === this.canonical.y >> e2; - } - children(t2) { - if (this.overscaledZ >= t2) - return [new oc(this.overscaledZ + 1, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y)]; - const e2 = this.canonical.z + 1, r2 = 2 * this.canonical.x, n2 = 2 * this.canonical.y; - return [new oc(e2, this.wrap, e2, r2, n2), new oc(e2, this.wrap, e2, r2 + 1, n2), new oc(e2, this.wrap, e2, r2, n2 + 1), new oc(e2, this.wrap, e2, r2 + 1, n2 + 1)]; - } - isLessThan(t2) { - return this.wrap < t2.wrap || !(this.wrap > t2.wrap) && (this.overscaledZ < t2.overscaledZ || !(this.overscaledZ > t2.overscaledZ) && (this.canonical.x < t2.canonical.x || !(this.canonical.x > t2.canonical.x) && this.canonical.y < t2.canonical.y)); - } - wrapped() { - return new oc(this.overscaledZ, 0, this.canonical.z, this.canonical.x, this.canonical.y); - } - unwrapTo(t2) { - return new oc(this.overscaledZ, t2, this.canonical.z, this.canonical.x, this.canonical.y); - } - overscaleFactor() { - return Math.pow(2, this.overscaledZ - this.canonical.z); - } - toUnwrapped() { - return new sc(this.wrap, this.canonical); - } - toString() { - return `${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`; - } - getTilePoint(t2) { - return this.canonical.getTilePoint(new nc(t2.x - this.wrap, t2.y)); - } - } - function lc(t2, e2, r2, n2, i2) { + var Gl = function(t2, e2, r2) { + void 0 === r2 && (r2 = 0), this.x = +t2, this.y = +e2, this.z = +r2; + }; + Gl.fromLngLat = function(t2, e2) { + void 0 === e2 && (e2 = 0); + var r2 = Ol.convert(t2); + return new Gl(jl(r2.lng), ql(r2.lat), Nl(e2, r2.lat)); + }, Gl.prototype.toLngLat = function() { + return new Ol(360 * this.x - 180, Kl(this.y)); + }, Gl.prototype.toAltitude = function() { + return this.z * Ul(Kl(this.y)); + }, Gl.prototype.meterInMercatorCoordinateUnits = function() { + return 1 / Rl * (t2 = Kl(this.y), 1 / Math.cos(t2 * Math.PI / 180)); + var t2; + }; + var Zl = function(t2, e2, r2) { + this.z = t2, this.x = e2, this.y = r2, this.key = Hl(0, t2, t2, e2, r2); + }; + Zl.prototype.equals = function(t2) { + return this.z === t2.z && this.x === t2.x && this.y === t2.y; + }, Zl.prototype.url = function(t2, e2) { + var r2, n2, i2, a2, o2, s2 = (n2 = this.y, i2 = this.z, a2 = Dl(256 * (r2 = this.x), 256 * (n2 = Math.pow(2, i2) - n2 - 1), i2), o2 = Dl(256 * (r2 + 1), 256 * (n2 + 1), i2), a2[0] + "," + a2[1] + "," + o2[0] + "," + o2[1]), u2 = function(t3, e3, r3) { + for (var n3, i3 = "", a3 = t3; a3 > 0; a3--) + i3 += (e3 & (n3 = 1 << a3 - 1) ? 1 : 0) + (r3 & n3 ? 2 : 0); + return i3; + }(this.z, this.x, this.y); + return t2[(this.x + this.y) % t2.length].replace("{prefix}", (this.x % 16).toString(16) + (this.y % 16).toString(16)).replace("{z}", String(this.z)).replace("{x}", String(this.x)).replace("{y}", String("tms" === e2 ? Math.pow(2, this.z) - this.y - 1 : this.y)).replace("{quadkey}", u2).replace("{bbox-epsg-3857}", s2); + }, Zl.prototype.getTilePoint = function(t2) { + var e2 = Math.pow(2, this.z); + return new i(8192 * (t2.x * e2 - this.x), 8192 * (t2.y * e2 - this.y)); + }, Zl.prototype.toString = function() { + return this.z + "/" + this.x + "/" + this.y; + }; + var Xl = function(t2, e2) { + this.wrap = t2, this.canonical = e2, this.key = Hl(t2, e2.z, e2.z, e2.x, e2.y); + }, Jl = function(t2, e2, r2, n2, i2) { + this.overscaledZ = t2, this.wrap = e2, this.canonical = new Zl(r2, +n2, +i2), this.key = Hl(e2, t2, r2, n2, i2); + }; + function Hl(t2, e2, r2, n2, i2) { (t2 *= 2) < 0 && (t2 = -1 * t2 - 1); - const a2 = 1 << r2; + var a2 = 1 << r2; return (a2 * a2 * t2 + a2 * i2 + n2).toString(36) + r2.toString(36) + e2.toString(36); } - Mn("CanonicalTileID", ac), Mn("OverscaledTileID", oc, { omit: ["posMatrix"] }); - class uc { - constructor(t2, e2, r2) { - if (this.uid = t2, e2.height !== e2.width) - throw new RangeError("DEM tiles must be square"); - if (r2 && "mapbox" !== r2 && "terrarium" !== r2) - return void d(`"${r2}" is not a valid encoding type. Valid types include "mapbox" and "terrarium".`); - this.stride = e2.height; - const n2 = this.dim = e2.height - 2; - this.data = new Uint32Array(e2.data.buffer), this.encoding = r2 || "mapbox"; - for (let t3 = 0; t3 < n2; t3++) - this.data[this._idx(-1, t3)] = this.data[this._idx(0, t3)], this.data[this._idx(n2, t3)] = this.data[this._idx(n2 - 1, t3)], this.data[this._idx(t3, -1)] = this.data[this._idx(t3, 0)], this.data[this._idx(t3, n2)] = this.data[this._idx(t3, n2 - 1)]; - this.data[this._idx(-1, -1)] = this.data[this._idx(0, 0)], this.data[this._idx(n2, -1)] = this.data[this._idx(n2 - 1, 0)], this.data[this._idx(-1, n2)] = this.data[this._idx(0, n2 - 1)], this.data[this._idx(n2, n2)] = this.data[this._idx(n2 - 1, n2 - 1)], this.min = Number.MAX_SAFE_INTEGER, this.max = Number.MIN_SAFE_INTEGER; - for (let t3 = 0; t3 < n2; t3++) - for (let e3 = 0; e3 < n2; e3++) { - const r3 = this.get(t3, e3); - r3 > this.max && (this.max = r3), r3 < this.min && (this.min = r3); - } - } - get(t2, e2) { - const r2 = new Uint8Array(this.data.buffer), n2 = 4 * this._idx(t2, e2); - return ("terrarium" === this.encoding ? this._unpackTerrarium : this._unpackMapbox)(r2[n2], r2[n2 + 1], r2[n2 + 2]); - } - getUnpackVector() { - return "terrarium" === this.encoding ? [256, 1, 1 / 256, 32768] : [6553.6, 25.6, 0.1, 1e4]; - } - _idx(t2, e2) { - if (t2 < -1 || t2 >= this.dim + 1 || e2 < -1 || e2 >= this.dim + 1) - throw new RangeError("out of range source coordinates for DEM data"); - return (e2 + 1) * this.stride + (t2 + 1); + Jl.prototype.equals = function(t2) { + return this.overscaledZ === t2.overscaledZ && this.wrap === t2.wrap && this.canonical.equals(t2.canonical); + }, Jl.prototype.scaledTo = function(t2) { + var e2 = this.canonical.z - t2; + return t2 > this.canonical.z ? new Jl(t2, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y) : new Jl(t2, this.wrap, t2, this.canonical.x >> e2, this.canonical.y >> e2); + }, Jl.prototype.calculateScaledKey = function(t2, e2) { + var r2 = this.canonical.z - t2; + return t2 > this.canonical.z ? Hl(this.wrap * +e2, t2, this.canonical.z, this.canonical.x, this.canonical.y) : Hl(this.wrap * +e2, t2, t2, this.canonical.x >> r2, this.canonical.y >> r2); + }, Jl.prototype.isChildOf = function(t2) { + if (t2.wrap !== this.wrap) + return false; + var e2 = this.canonical.z - t2.canonical.z; + return 0 === t2.overscaledZ || t2.overscaledZ < this.overscaledZ && t2.canonical.x === this.canonical.x >> e2 && t2.canonical.y === this.canonical.y >> e2; + }, Jl.prototype.children = function(t2) { + if (this.overscaledZ >= t2) + return [new Jl(this.overscaledZ + 1, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y)]; + var e2 = this.canonical.z + 1, r2 = 2 * this.canonical.x, n2 = 2 * this.canonical.y; + return [new Jl(e2, this.wrap, e2, r2, n2), new Jl(e2, this.wrap, e2, r2 + 1, n2), new Jl(e2, this.wrap, e2, r2, n2 + 1), new Jl(e2, this.wrap, e2, r2 + 1, n2 + 1)]; + }, Jl.prototype.isLessThan = function(t2) { + return this.wrap < t2.wrap || !(this.wrap > t2.wrap) && (this.overscaledZ < t2.overscaledZ || !(this.overscaledZ > t2.overscaledZ) && (this.canonical.x < t2.canonical.x || !(this.canonical.x > t2.canonical.x) && this.canonical.y < t2.canonical.y)); + }, Jl.prototype.wrapped = function() { + return new Jl(this.overscaledZ, 0, this.canonical.z, this.canonical.x, this.canonical.y); + }, Jl.prototype.unwrapTo = function(t2) { + return new Jl(this.overscaledZ, t2, this.canonical.z, this.canonical.x, this.canonical.y); + }, Jl.prototype.overscaleFactor = function() { + return Math.pow(2, this.overscaledZ - this.canonical.z); + }, Jl.prototype.toUnwrapped = function() { + return new Xl(this.wrap, this.canonical); + }, Jl.prototype.toString = function() { + return this.overscaledZ + "/" + this.canonical.x + "/" + this.canonical.y; + }, Jl.prototype.getTilePoint = function(t2) { + return this.canonical.getTilePoint(new Gl(t2.x - this.wrap, t2.y)); + }, On("CanonicalTileID", Zl), On("OverscaledTileID", Jl, { omit: ["posMatrix"] }); + var Yl = function(t2, e2, r2) { + if (this.uid = t2, e2.height !== e2.width) + throw new RangeError("DEM tiles must be square"); + if (r2 && "mapbox" !== r2 && "terrarium" !== r2) + return A2('"' + r2 + '" is not a valid encoding type. Valid types include "mapbox" and "terrarium".'); + this.stride = e2.height; + var n2 = this.dim = e2.height - 2; + this.data = new Uint32Array(e2.data.buffer), this.encoding = r2 || "mapbox"; + for (var i2 = 0; i2 < n2; i2++) + this.data[this._idx(-1, i2)] = this.data[this._idx(0, i2)], this.data[this._idx(n2, i2)] = this.data[this._idx(n2 - 1, i2)], this.data[this._idx(i2, -1)] = this.data[this._idx(i2, 0)], this.data[this._idx(i2, n2)] = this.data[this._idx(i2, n2 - 1)]; + this.data[this._idx(-1, -1)] = this.data[this._idx(0, 0)], this.data[this._idx(n2, -1)] = this.data[this._idx(n2 - 1, 0)], this.data[this._idx(-1, n2)] = this.data[this._idx(0, n2 - 1)], this.data[this._idx(n2, n2)] = this.data[this._idx(n2 - 1, n2 - 1)]; + }; + Yl.prototype.get = function(t2, e2) { + var r2 = new Uint8Array(this.data.buffer), n2 = 4 * this._idx(t2, e2); + return ("terrarium" === this.encoding ? this._unpackTerrarium : this._unpackMapbox)(r2[n2], r2[n2 + 1], r2[n2 + 2]); + }, Yl.prototype.getUnpackVector = function() { + return "terrarium" === this.encoding ? [256, 1, 1 / 256, 32768] : [6553.6, 25.6, 0.1, 1e4]; + }, Yl.prototype._idx = function(t2, e2) { + if (t2 < -1 || t2 >= this.dim + 1 || e2 < -1 || e2 >= this.dim + 1) + throw new RangeError("out of range source coordinates for DEM data"); + return (e2 + 1) * this.stride + (t2 + 1); + }, Yl.prototype._unpackMapbox = function(t2, e2, r2) { + return (256 * t2 * 256 + 256 * e2 + r2) / 10 - 1e4; + }, Yl.prototype._unpackTerrarium = function(t2, e2, r2) { + return 256 * t2 + e2 + r2 / 256 - 32768; + }, Yl.prototype.getPixels = function() { + return new xo({ width: this.stride, height: this.stride }, new Uint8Array(this.data.buffer)); + }, Yl.prototype.backfillBorder = function(t2, e2, r2) { + if (this.dim !== t2.dim) + throw new Error("dem dimension mismatch"); + var n2 = e2 * this.dim, i2 = e2 * this.dim + this.dim, a2 = r2 * this.dim, o2 = r2 * this.dim + this.dim; + switch (e2) { + case -1: + n2 = i2 - 1; + break; + case 1: + i2 = n2 + 1; } - _unpackMapbox(t2, e2, r2) { - return (256 * t2 * 256 + 256 * e2 + r2) / 10 - 1e4; + switch (r2) { + case -1: + a2 = o2 - 1; + break; + case 1: + o2 = a2 + 1; + } + for (var s2 = -e2 * this.dim, u2 = -r2 * this.dim, l2 = a2; l2 < o2; l2++) + for (var p3 = n2; p3 < i2; p3++) + this.data[this._idx(p3, l2)] = t2.data[this._idx(p3 + s2, l2 + u2)]; + }, On("DEMData", Yl); + var $l = function(t2) { + this._stringToNumber = {}, this._numberToString = []; + for (var e2 = 0; e2 < t2.length; e2++) { + var r2 = t2[e2]; + this._stringToNumber[r2] = e2, this._numberToString[e2] = r2; } - _unpackTerrarium(t2, e2, r2) { - return 256 * t2 + e2 + r2 / 256 - 32768; + }; + $l.prototype.encode = function(t2) { + return this._stringToNumber[t2]; + }, $l.prototype.decode = function(t2) { + return this._numberToString[t2]; + }; + var Wl = function(t2, e2, r2, n2, i2) { + this.type = "Feature", this._vectorTileFeature = t2, t2._z = e2, t2._x = r2, t2._y = n2, this.properties = t2.properties, this.id = i2; + }, Ql = { geometry: { configurable: true } }; + Ql.geometry.get = function() { + return void 0 === this._geometry && (this._geometry = this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x, this._vectorTileFeature._y, this._vectorTileFeature._z).geometry), this._geometry; + }, Ql.geometry.set = function(t2) { + this._geometry = t2; + }, Wl.prototype.toJSON = function() { + var t2 = { geometry: this.geometry }; + for (var e2 in this) + "_geometry" !== e2 && "_vectorTileFeature" !== e2 && (t2[e2] = this[e2]); + return t2; + }, Object.defineProperties(Wl.prototype, Ql); + var tp = function() { + this.state = {}, this.stateChanges = {}, this.deletedStates = {}; + }; + tp.prototype.updateState = function(t2, e2, r2) { + var n2 = String(e2); + if (this.stateChanges[t2] = this.stateChanges[t2] || {}, this.stateChanges[t2][n2] = this.stateChanges[t2][n2] || {}, h2(this.stateChanges[t2][n2], r2), null === this.deletedStates[t2]) + for (var i2 in this.deletedStates[t2] = {}, this.state[t2]) + i2 !== n2 && (this.deletedStates[t2][i2] = null); + else if (this.deletedStates[t2] && null === this.deletedStates[t2][n2]) + for (var a2 in this.deletedStates[t2][n2] = {}, this.state[t2][n2]) + r2[a2] || (this.deletedStates[t2][n2][a2] = null); + else + for (var o2 in r2) + this.deletedStates[t2] && this.deletedStates[t2][n2] && null === this.deletedStates[t2][n2][o2] && delete this.deletedStates[t2][n2][o2]; + }, tp.prototype.removeFeatureState = function(t2, e2, r2) { + if (null !== this.deletedStates[t2]) { + var n2 = String(e2); + if (this.deletedStates[t2] = this.deletedStates[t2] || {}, r2 && void 0 !== e2) + null !== this.deletedStates[t2][n2] && (this.deletedStates[t2][n2] = this.deletedStates[t2][n2] || {}, this.deletedStates[t2][n2][r2] = null); + else if (void 0 !== e2) + if (this.stateChanges[t2] && this.stateChanges[t2][n2]) + for (r2 in this.deletedStates[t2][n2] = {}, this.stateChanges[t2][n2]) + this.deletedStates[t2][n2][r2] = null; + else + this.deletedStates[t2][n2] = null; + else + this.deletedStates[t2] = null; } - getPixels() { - return new Bs({ width: this.stride, height: this.stride }, new Uint8Array(this.data.buffer)); + }, tp.prototype.getState = function(t2, e2) { + var r2 = String(e2), n2 = h2({}, (this.state[t2] || {})[r2], (this.stateChanges[t2] || {})[r2]); + if (null === this.deletedStates[t2]) + return {}; + if (this.deletedStates[t2]) { + var i2 = this.deletedStates[t2][e2]; + if (null === i2) + return {}; + for (var a2 in i2) + delete n2[a2]; } - backfillBorder(t2, e2, r2) { - if (this.dim !== t2.dim) - throw new Error("dem dimension mismatch"); - let n2 = e2 * this.dim, i2 = e2 * this.dim + this.dim, a2 = r2 * this.dim, s2 = r2 * this.dim + this.dim; - switch (e2) { - case -1: - n2 = i2 - 1; - break; - case 1: - i2 = n2 + 1; - } - switch (r2) { - case -1: - a2 = s2 - 1; - break; - case 1: - s2 = a2 + 1; - } - const o2 = -e2 * this.dim, l2 = -r2 * this.dim; - for (let e3 = a2; e3 < s2; e3++) - for (let r3 = n2; r3 < i2; r3++) - this.data[this._idx(r3, e3)] = t2.data[this._idx(r3 + o2, e3 + l2)]; + return n2; + }, tp.prototype.initializeTileState = function(t2, e2) { + t2.setFeatureState(this.state, e2); + }, tp.prototype.coalesceChanges = function(t2, e2) { + var r2 = {}; + for (var n2 in this.stateChanges) { + this.state[n2] = this.state[n2] || {}; + var i2 = {}; + for (var a2 in this.stateChanges[n2]) + this.state[n2][a2] || (this.state[n2][a2] = {}), h2(this.state[n2][a2], this.stateChanges[n2][a2]), i2[a2] = this.state[n2][a2]; + r2[n2] = i2; + } + for (var o2 in this.deletedStates) { + this.state[o2] = this.state[o2] || {}; + var s2 = {}; + if (null === this.deletedStates[o2]) + for (var u2 in this.state[o2]) + s2[u2] = {}, this.state[o2][u2] = {}; + else + for (var l2 in this.deletedStates[o2]) { + if (null === this.deletedStates[o2][l2]) + this.state[o2][l2] = {}; + else + for (var p3 = 0, c3 = Object.keys(this.deletedStates[o2][l2]); p3 < c3.length; p3 += 1) + delete this.state[o2][l2][c3[p3]]; + s2[l2] = this.state[o2][l2]; + } + r2[o2] = r2[o2] || {}, h2(r2[o2], s2); } + if (this.stateChanges = {}, this.deletedStates = {}, 0 !== Object.keys(r2).length) + for (var f2 in t2) + t2[f2].setFeatureState(r2, e2); + }; + var ep = function(t2, e2) { + this.tileID = t2, this.x = t2.canonical.x, this.y = t2.canonical.y, this.z = t2.canonical.z, this.grid = new Tn(8192, 16, 0), this.grid3D = new Tn(8192, 16, 0), this.featureIndexArray = new aa(), this.promoteId = e2; + }; + function rp(t2, e2, r2, n2, i2) { + return x(t2, function(t3, a2) { + var o2 = e2 instanceof di ? e2.get(a2) : null; + return o2 && o2.evaluate ? o2.evaluate(r2, n2, i2) : o2; + }); } - Mn("DEMData", uc); - class cc { - constructor(t2) { - this._stringToNumber = {}, this._numberToString = []; - for (let e2 = 0; e2 < t2.length; e2++) { - const r2 = t2[e2]; - this._stringToNumber[r2] = e2, this._numberToString[e2] = r2; - } - } - encode(t2) { - return this._stringToNumber[t2]; - } - decode(t2) { - if (t2 >= this._numberToString.length) - throw new Error(`Out of bounds. Index requested n=${t2} can't be >= this._numberToString.length ${this._numberToString.length}`); - return this._numberToString[t2]; + function np(t2) { + for (var e2 = 1 / 0, r2 = 1 / 0, n2 = -1 / 0, i2 = -1 / 0, a2 = 0, o2 = t2; a2 < o2.length; a2 += 1) { + var s2 = o2[a2]; + e2 = Math.min(e2, s2.x), r2 = Math.min(r2, s2.y), n2 = Math.max(n2, s2.x), i2 = Math.max(i2, s2.y); } + return { minX: e2, minY: r2, maxX: n2, maxY: i2 }; } - class hc { - constructor(t2, e2, r2, n2, i2) { - this.type = "Feature", this._vectorTileFeature = t2, t2._z = e2, t2._x = r2, t2._y = n2, this.properties = t2.properties, this.id = i2; - } - get geometry() { - return void 0 === this._geometry && (this._geometry = this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x, this._vectorTileFeature._y, this._vectorTileFeature._z).geometry), this._geometry; - } - set geometry(t2) { - this._geometry = t2; - } - toJSON() { - const t2 = { geometry: this.geometry }; - for (const e2 in this) - "_geometry" !== e2 && "_vectorTileFeature" !== e2 && (t2[e2] = this[e2]); - return t2; - } + function ip(t2, e2) { + return e2 - t2; } - class pc { - constructor(t2, e2) { - this.tileID = t2, this.x = t2.canonical.x, this.y = t2.canonical.y, this.z = t2.canonical.z, this.grid = new Sn(qa, 16, 0), this.grid3D = new Sn(qa, 16, 0), this.featureIndexArray = new Wi(), this.promoteId = e2; - } - insert(t2, e2, r2, n2, i2, a2) { - const s2 = this.featureIndexArray.length; - this.featureIndexArray.emplaceBack(r2, n2, i2); - const o2 = a2 ? this.grid3D : this.grid; - for (let t3 = 0; t3 < e2.length; t3++) { - const r3 = e2[t3], n3 = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; - for (let t4 = 0; t4 < r3.length; t4++) { - const e3 = r3[t4]; - n3[0] = Math.min(n3[0], e3.x), n3[1] = Math.min(n3[1], e3.y), n3[2] = Math.max(n3[2], e3.x), n3[3] = Math.max(n3[3], e3.y); - } - n3[0] < qa && n3[1] < qa && n3[2] >= 0 && n3[3] >= 0 && o2.insert(s2, n3[0], n3[1], n3[2], n3[3]); - } - } - loadVTLayers() { - return this.vtLayers || (this.vtLayers = new _o.VectorTile(new ul(this.rawTileData)).layers, this.sourceLayerCoder = new cc(this.vtLayers ? Object.keys(this.vtLayers).sort() : ["_geojsonTileLayer"])), this.vtLayers; - } - query(t2, e2, r2, n2) { - this.loadVTLayers(); - const i2 = t2.params || {}, a2 = qa / t2.tileSize / t2.scale, s2 = Jr(i2.filter), o2 = t2.queryGeometry, l2 = t2.queryPadding * a2, u2 = dc(o2), c3 = this.grid.query(u2.minX - l2, u2.minY - l2, u2.maxX + l2, u2.maxY + l2), h3 = dc(t2.cameraQueryGeometry), p3 = this.grid3D.query(h3.minX - l2, h3.minY - l2, h3.maxX + l2, h3.maxY + l2, (e3, r3, n3, i3) => function(t3, e4, r4, n4, i4) { - for (const a4 of t3) - if (e4 <= a4.x && r4 <= a4.y && n4 >= a4.x && i4 >= a4.y) + ep.prototype.insert = function(t2, e2, r2, n2, i2, a2) { + var o2 = this.featureIndexArray.length; + this.featureIndexArray.emplaceBack(r2, n2, i2); + for (var s2 = a2 ? this.grid3D : this.grid, u2 = 0; u2 < e2.length; u2++) { + for (var l2 = e2[u2], p3 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], c3 = 0; c3 < l2.length; c3++) { + var h3 = l2[c3]; + p3[0] = Math.min(p3[0], h3.x), p3[1] = Math.min(p3[1], h3.y), p3[2] = Math.max(p3[2], h3.x), p3[3] = Math.max(p3[3], h3.y); + } + p3[0] < 8192 && p3[1] < 8192 && p3[2] >= 0 && p3[3] >= 0 && s2.insert(o2, p3[0], p3[1], p3[2], p3[3]); + } + }, ep.prototype.loadVTLayers = function() { + return this.vtLayers || (this.vtLayers = new bs.VectorTile(new Ys(this.rawTileData)).layers, this.sourceLayerCoder = new $l(this.vtLayers ? Object.keys(this.vtLayers).sort() : ["_geojsonTileLayer"])), this.vtLayers; + }, ep.prototype.query = function(t2, e2, r2, n2) { + var a2 = this; + this.loadVTLayers(); + for (var o2 = t2.params || {}, s2 = 8192 / t2.tileSize / t2.scale, u2 = on2(o2.filter), l2 = t2.queryGeometry, p3 = t2.queryPadding * s2, c3 = np(l2), h3 = this.grid.query(c3.minX - p3, c3.minY - p3, c3.maxX + p3, c3.maxY + p3), f2 = np(t2.cameraQueryGeometry), y3 = this.grid3D.query(f2.minX - p3, f2.minY - p3, f2.maxX + p3, f2.maxY + p3, function(e3, r3, n3, a3) { + return function(t3, e4, r4, n4, a4) { + for (var o3 = 0, s3 = t3; o3 < s3.length; o3 += 1) { + var u3 = s3[o3]; + if (e4 <= u3.x && r4 <= u3.y && n4 >= u3.x && a4 >= u3.y) return true; - const a3 = [new S(e4, r4), new S(e4, i4), new S(n4, i4), new S(n4, r4)]; + } + var l3 = [new i(e4, r4), new i(e4, a4), new i(n4, a4), new i(n4, r4)]; if (t3.length > 2) { - for (const e5 of a3) - if (is2(t3, e5)) + for (var p4 = 0, c4 = l3; p4 < c4.length; p4 += 1) + if (Wa(t3, c4[p4])) return true; } - for (let e5 = 0; e5 < t3.length - 1; e5++) - if (as(t3[e5], t3[e5 + 1], a3)) + for (var h4 = 0; h4 < t3.length - 1; h4++) + if (Qa(t3[h4], t3[h4 + 1], l3)) return true; return false; - }(t2.cameraQueryGeometry, e3 - l2, r3 - l2, n3 + l2, i3 + l2)); - for (const t3 of p3) - c3.push(t3); - c3.sort(yc); - const f2 = {}; - let d2; - for (let l3 = 0; l3 < c3.length; l3++) { - const u3 = c3[l3]; - if (u3 === d2) - continue; - d2 = u3; - const h4 = this.featureIndexArray.get(u3); - let p4 = null; - this.loadMatchingFeature(f2, h4.bucketIndex, h4.sourceLayerIndex, h4.featureIndex, s2, i2.layers, i2.availableImages, e2, r2, n2, (e3, r3, n3) => (p4 || (p4 = Za(e3)), r3.queryIntersectsFeature(o2, e3, n3, p4, this.z, t2.transform, a2, t2.pixelPosMatrix))); + }(t2.cameraQueryGeometry, e3 - p3, r3 - p3, n3 + p3, a3 + p3); + }), d2 = 0, m2 = y3; d2 < m2.length; d2 += 1) + h3.push(m2[d2]); + h3.sort(ip); + for (var v3, g2 = {}, x2 = function(i2) { + var p4 = h3[i2]; + if (p4 !== v3) { + v3 = p4; + var c4 = a2.featureIndexArray.get(p4), f3 = null; + a2.loadMatchingFeature(g2, c4.bucketIndex, c4.sourceLayerIndex, c4.featureIndex, u2, o2.layers, o2.availableImages, e2, r2, n2, function(e3, r3, n3) { + return f3 || (f3 = Ra(e3)), r3.queryIntersectsFeature(l2, e3, n3, f3, a2.z, t2.transform, s2, t2.pixelPosMatrix); + }); } - return f2; - } - loadMatchingFeature(t2, e2, r2, n2, i2, a2, s2, l2, u2, c3, h3) { - const p3 = this.bucketLayerIDs[e2]; - if (a2 && !function(t3, e3) { - for (let r3 = 0; r3 < t3.length; r3++) - if (e3.indexOf(t3[r3]) >= 0) - return true; - return false; - }(a2, p3)) - return; - const f2 = this.sourceLayerCoder.decode(r2), d2 = this.vtLayers[f2].feature(n2); + }, b2 = 0; b2 < h3.length; b2++) + x2(b2); + return g2; + }, ep.prototype.loadMatchingFeature = function(t2, e2, r2, n2, i2, a2, o2, s2, u2, l2, p3) { + var c3 = this.bucketLayerIDs[e2]; + if (!a2 || function(t3, e3) { + for (var r3 = 0; r3 < t3.length; r3++) + if (e3.indexOf(t3[r3]) >= 0) + return true; + return false; + }(a2, c3)) { + var f2 = this.sourceLayerCoder.decode(r2), y3 = this.vtLayers[f2].feature(n2); if (i2.needGeometry) { - const t3 = Ka(d2, true); - if (!i2.filter(new Qn(this.tileID.overscaledZ), t3, this.tileID.canonical)) + var d2 = Ua(y3, true); + if (!i2.filter(new si(this.tileID.overscaledZ), d2, this.tileID.canonical)) return; - } else if (!i2.filter(new Qn(this.tileID.overscaledZ), d2)) - return; - const y3 = this.getId(d2, f2); - for (let e3 = 0; e3 < p3.length; e3++) { - const r3 = p3[e3]; - if (a2 && a2.indexOf(r3) < 0) - continue; - const i3 = l2[r3]; - if (!i3) - continue; - let f3 = {}; - y3 && c3 && (f3 = c3.getState(i3.sourceLayer || "_geojsonTileLayer", y3)); - const m2 = o({}, u2[r3]); - m2.paint = fc(m2.paint, i3.paint, d2, f3, s2), m2.layout = fc(m2.layout, i3.layout, d2, f3, s2); - const g2 = !h3 || h3(d2, i3, f3); - if (!g2) - continue; - const x2 = new hc(d2, this.z, this.x, this.y, y3); - x2.layer = m2; - let v3 = t2[r3]; - void 0 === v3 && (v3 = t2[r3] = []), v3.push({ featureIndex: n2, feature: x2, intersectionZ: g2 }); - } - } - lookupSymbolFeatures(t2, e2, r2, n2, i2, a2, s2, o2) { - const l2 = {}; - this.loadVTLayers(); - const u2 = Jr(i2); - for (const i3 of t2) - this.loadMatchingFeature(l2, r2, n2, i3, u2, a2, s2, o2, e2); - return l2; - } - hasLayer(t2) { - for (const e2 of this.bucketLayerIDs) - for (const r2 of e2) - if (t2 === r2) - return true; - return false; - } - getId(t2, e2) { - let r2 = t2.id; - return this.promoteId && (r2 = t2.properties["string" == typeof this.promoteId ? this.promoteId : this.promoteId[e2]], "boolean" == typeof r2 && (r2 = Number(r2))), r2; - } - } - function fc(t2, e2, r2, n2, i2) { - return c2(t2, (t3, a2) => { - const s2 = e2 instanceof oi ? e2.get(a2) : null; - return s2 && s2.evaluate ? s2.evaluate(r2, n2, i2) : s2; - }); - } - function dc(t2) { - let e2 = 1 / 0, r2 = 1 / 0, n2 = -1 / 0, i2 = -1 / 0; - for (const a2 of t2) - e2 = Math.min(e2, a2.x), r2 = Math.min(r2, a2.y), n2 = Math.max(n2, a2.x), i2 = Math.max(i2, a2.y); - return { minX: e2, minY: r2, maxX: n2, maxY: i2 }; - } - function yc(t2, e2) { - return e2 - t2; - } - var mc; - Mn("FeatureIndex", pc, { omit: ["rawTileData", "sourceLayerCoder"] }), t.PerformanceMarkers = void 0, (mc = t.PerformanceMarkers || (t.PerformanceMarkers = {})).create = "create", mc.load = "load", mc.fullLoad = "fullLoad"; - let gc = null, xc = []; - const vc = 1e3 / 30, bc = { mark(t2) { - performance.mark(t2); - }, frame(t2) { - const e2 = t2; - null != gc && xc.push(e2 - gc), gc = e2; - }, clearMetrics() { - gc = null, xc = [], performance.clearMeasures("loadTime"), performance.clearMeasures("fullLoadTime"); - for (const e2 in t.PerformanceMarkers) - performance.clearMarks(t.PerformanceMarkers[e2]); - }, getPerformanceMetrics() { - performance.measure("loadTime", t.PerformanceMarkers.create, t.PerformanceMarkers.load), performance.measure("fullLoadTime", t.PerformanceMarkers.create, t.PerformanceMarkers.fullLoad); - const e2 = performance.getEntriesByName("loadTime")[0].duration, r2 = performance.getEntriesByName("fullLoadTime")[0].duration, n2 = xc.length, i2 = 1 / (xc.reduce((t2, e3) => t2 + e3, 0) / n2 / 1e3), a2 = xc.filter((t2) => t2 > vc).reduce((t2, e3) => t2 + (e3 - vc) / vc, 0); - return { loadTime: e2, fullLoadTime: r2, fps: i2, percentDroppedFrames: a2 / (n2 + a2) * 100 }; - } }; - t.AJAXError = q, t.ARRAY_TYPE = ps, t.Actor = class { - constructor(t2, e2, r2) { - this.target = t2, this.parent = e2, this.mapId = r2, this.callbacks = {}, this.tasks = {}, this.taskQueue = [], this.cancelCallbacks = {}, u(["receive", "process"], this), this.invoker = new Gu(this.process), this.target.addEventListener("message", this.receive, false), this.globalScope = g() ? t2 : window; - } - send(t2, e2, r2, n2, i2 = false) { - const a2 = Math.round(1e18 * Math.random()).toString(36).substring(0, 10); - r2 && (this.callbacks[a2] = r2); - const s2 = _23(this.globalScope) ? void 0 : []; - return this.target.postMessage({ id: a2, type: t2, hasCallback: !!r2, targetMapId: n2, mustQueue: i2, sourceMapId: this.mapId, data: Bn(e2, s2) }, s2), { cancel: () => { - r2 && delete this.callbacks[a2], this.target.postMessage({ id: a2, type: "", targetMapId: n2, sourceMapId: this.mapId }); - } }; - } - receive(t2) { - const e2 = t2.data, r2 = e2.id; - if (r2 && (!e2.targetMapId || this.mapId === e2.targetMapId)) - if ("" === e2.type) { - delete this.tasks[r2]; - const t3 = this.cancelCallbacks[r2]; - delete this.cancelCallbacks[r2], t3 && t3(); - } else - g() || e2.mustQueue ? (this.tasks[r2] = e2, this.taskQueue.push(r2), this.invoker.trigger()) : this.processTask(r2, e2); - } - process() { - if (!this.taskQueue.length) + } else if (!i2.filter(new si(this.tileID.overscaledZ), y3)) return; - const t2 = this.taskQueue.shift(), e2 = this.tasks[t2]; - delete this.tasks[t2], this.taskQueue.length && this.invoker.trigger(), e2 && this.processTask(t2, e2); - } - processTask(t2, e2) { - if ("" === e2.type) { - const r2 = this.callbacks[t2]; - delete this.callbacks[t2], r2 && (e2.error ? r2(Cn(e2.error)) : r2(null, Cn(e2.data))); - } else { - let r2 = false; - const n2 = _23(this.globalScope) ? void 0 : [], i2 = e2.hasCallback ? (e3, i3) => { - r2 = true, delete this.cancelCallbacks[t2], this.target.postMessage({ id: t2, type: "", sourceMapId: this.mapId, error: e3 ? Bn(e3) : null, data: Bn(i3, n2) }, n2); - } : (t3) => { - r2 = true; - }; - let a2 = null; - const s2 = Cn(e2.data); - if (this.parent[e2.type]) - a2 = this.parent[e2.type](e2.sourceMapId, s2, i2); - else if (this.parent.getWorkerSource) { - const t3 = e2.type.split("."); - a2 = this.parent.getWorkerSource(e2.sourceMapId, t3[0], s2.source)[t3[1]](s2, i2); - } else - i2(new Error(`Could not find function ${e2.type}`)); - !r2 && a2 && a2.cancel && (this.cancelCallbacks[t2] = a2.cancel); + for (var m2 = this.getId(y3, f2), v3 = 0; v3 < c3.length; v3++) { + var g2 = c3[v3]; + if (!(a2 && a2.indexOf(g2) < 0)) { + var x2 = s2[g2]; + if (x2) { + var b2 = {}; + void 0 !== m2 && l2 && (b2 = l2.getState(x2.sourceLayer || "_geojsonTileLayer", m2)); + var w2 = h2({}, u2[g2]); + w2.paint = rp(w2.paint, x2.paint, y3, b2, o2), w2.layout = rp(w2.layout, x2.layout, y3, b2, o2); + var _24 = !p3 || p3(y3, x2, b2); + if (_24) { + var A3 = new Wl(y3, this.z, this.x, this.y, m2); + A3.layer = w2; + var S2 = t2[g2]; + void 0 === S2 && (S2 = t2[g2] = []), S2.push({ featureIndex: n2, feature: A3, intersectionZ: _24 }); + } + } + } } } - remove() { - this.invoker.remove(), this.target.removeEventListener("message", this.receive, false); - } - }, t.AlphaImage = zs, t.CanonicalTileID = ac, t.CollisionBoxArray = Ni, t.CollisionCircleLayoutArray = class extends Vi { - }, t.Color = Ft, t.DEMData = uc, t.DataConstantProperty = li, t.DictionaryCoder = cc, t.EXTENT = qa, t.ErrorEvent = et, t.EvaluationParameters = Qn, t.Event = tt, t.Evented = rt, t.FeatureIndex = pc, t.FillBucket = mo, t.FillExtrusionBucket = Do, t.GeoJSONFeature = hc, t.ImageAtlas = Dl, t.ImagePosition = Ll, t.LineBucket = Yo, t.LineStripIndexArray = class extends Ui { - }, t.LngLat = Xu, t.LngLatBounds = Yu, t.MercatorCoordinate = nc, t.ONE_EM = ll, t.OverscaledTileID = oc, t.PerformanceUtils = bc, t.PosArray = Qi, t.Properties = fi, t.QuadTriangleArray = class extends Fi { - }, t.RGBAImage = Bs, t.RasterBoundsArray = class extends _i { - }, t.RequestPerformance = class { - constructor(t2) { - this._marks = { start: [t2.url, "start"].join("#"), end: [t2.url, "end"].join("#"), measure: t2.url.toString() }, performance.mark(this._marks.start); - } - finish() { - performance.mark(this._marks.end); - let t2 = performance.getEntriesByName(this._marks.measure); - return 0 === t2.length && (performance.measure(this._marks.measure, this._marks.start, this._marks.end), t2 = performance.getEntriesByName(this._marks.measure), performance.clearMarks(this._marks.start), performance.clearMarks(this._marks.end), performance.clearMeasures(this._marks.measure)), t2; - } - }, t.ResourceType = U, t.SegmentVector = ya, t.SymbolBucket = Du, t.Transitionable = ri, t.TriangleIndexArray = ha, t.Uniform1f = za, t.Uniform1i = class extends Ma { - constructor(t2, e2) { - super(t2, e2), this.current = 0; - } - set(t2) { - this.current !== t2 && (this.current = t2, this.gl.uniform1i(this.location, t2)); - } - }, t.Uniform2f = class extends Ma { - constructor(t2, e2) { - super(t2, e2), this.current = [0, 0]; - } - set(t2) { - t2[0] === this.current[0] && t2[1] === this.current[1] || (this.current = t2, this.gl.uniform2f(this.location, t2[0], t2[1])); - } - }, t.Uniform3f = class extends Ma { - constructor(t2, e2) { - super(t2, e2), this.current = [0, 0, 0]; - } - set(t2) { - t2[0] === this.current[0] && t2[1] === this.current[1] && t2[2] === this.current[2] || (this.current = t2, this.gl.uniform3f(this.location, t2[0], t2[1], t2[2])); - } - }, t.Uniform4f = Ba, t.UniformColor = Ca, t.UniformMatrix4f = class extends Ma { - constructor(t2, e2) { - super(t2, e2), this.current = Pa; + }, ep.prototype.lookupSymbolFeatures = function(t2, e2, r2, n2, i2, a2, o2, s2) { + var u2 = {}; + this.loadVTLayers(); + for (var l2 = on2(i2), p3 = 0, c3 = t2; p3 < c3.length; p3 += 1) + this.loadMatchingFeature(u2, r2, n2, c3[p3], l2, a2, o2, s2, e2); + return u2; + }, ep.prototype.hasLayer = function(t2) { + for (var e2 = 0, r2 = this.bucketLayerIDs; e2 < r2.length; e2 += 1) + for (var n2 = 0, i2 = r2[e2]; n2 < i2.length; n2 += 1) + if (t2 === i2[n2]) + return true; + return false; + }, ep.prototype.getId = function(t2, e2) { + var r2 = t2.id; + return this.promoteId && "boolean" == typeof (r2 = t2.properties["string" == typeof this.promoteId ? this.promoteId : this.promoteId[e2]]) && (r2 = Number(r2)), r2; + }, On("FeatureIndex", ep, { omit: ["rawTileData", "sourceLayerCoder"] }); + var ap = function(t2, e2) { + this.tileID = t2, this.uid = y2(), this.uses = 0, this.tileSize = e2, this.buckets = {}, this.expirationTime = null, this.queryPadding = 0, this.hasSymbolBuckets = false, this.hasRTLText = false, this.dependencies = {}, this.expiredRequestCount = 0, this.state = "loading"; + }; + ap.prototype.registerFadeDuration = function(t2) { + var e2 = t2 + this.timeAdded; + e2 < O2.now() || this.fadeEndTime && e2 < this.fadeEndTime || (this.fadeEndTime = e2); + }, ap.prototype.wasRequested = function() { + return "errored" === this.state || "loaded" === this.state || "reloading" === this.state; + }, ap.prototype.loadVectorData = function(t2, e2, r2) { + if (this.hasData() && this.unloadVectorData(), this.state = "loaded", t2) { + for (var n2 in t2.featureIndex && (this.latestFeatureIndex = t2.featureIndex, t2.rawTileData ? (this.latestRawTileData = t2.rawTileData, this.latestFeatureIndex.rawTileData = t2.rawTileData) : this.latestRawTileData && (this.latestFeatureIndex.rawTileData = this.latestRawTileData)), this.collisionBoxArray = t2.collisionBoxArray, this.buckets = function(t3, e3) { + var r3 = {}; + if (!e3) + return r3; + for (var n3 = function() { + var t4 = a3[i3], n4 = t4.layerIds.map(function(t5) { + return e3.getLayer(t5); + }).filter(Boolean); + if (0 !== n4.length) { + t4.layers = n4, t4.stateDependentLayerIds && (t4.stateDependentLayers = t4.stateDependentLayerIds.map(function(t5) { + return n4.filter(function(e4) { + return e4.id === t5; + })[0]; + })); + for (var o3 = 0, s3 = n4; o3 < s3.length; o3 += 1) + r3[s3[o3].id] = t4; + } + }, i3 = 0, a3 = t3; i3 < a3.length; i3 += 1) + n3(); + return r3; + }(t2.buckets, e2.style), this.hasSymbolBuckets = false, this.buckets) { + var i2 = this.buckets[n2]; + if (i2 instanceof vl) { + if (this.hasSymbolBuckets = true, !r2) + break; + i2.justReloaded = true; + } + } + if (this.hasRTLText = false, this.hasSymbolBuckets) + for (var a2 in this.buckets) { + var o2 = this.buckets[a2]; + if (o2 instanceof vl && o2.hasRTLText) { + this.hasRTLText = true, oi.isLoading() || oi.isLoaded() || "deferred" !== ii() || ai(); + break; + } + } + for (var s2 in this.queryPadding = 0, this.buckets) { + var u2 = this.buckets[s2]; + this.queryPadding = Math.max(this.queryPadding, e2.style.getLayer(s2).queryRadius(u2)); + } + t2.imageAtlas && (this.imageAtlas = t2.imageAtlas), t2.glyphAtlasImage && (this.glyphAtlasImage = t2.glyphAtlasImage); + } else + this.collisionBoxArray = new $i(); + }, ap.prototype.unloadVectorData = function() { + for (var t2 in this.buckets) + this.buckets[t2].destroy(); + this.buckets = {}, this.imageAtlasTexture && this.imageAtlasTexture.destroy(), this.imageAtlas && (this.imageAtlas = null), this.glyphAtlasTexture && this.glyphAtlasTexture.destroy(), this.latestFeatureIndex = null, this.state = "unloaded"; + }, ap.prototype.getBucket = function(t2) { + return this.buckets[t2.id]; + }, ap.prototype.upload = function(t2) { + for (var e2 in this.buckets) { + var r2 = this.buckets[e2]; + r2.uploadPending() && r2.upload(t2); + } + var n2 = t2.gl; + this.imageAtlas && !this.imageAtlas.uploaded && (this.imageAtlasTexture = new Tl(t2, this.imageAtlas.image, n2.RGBA), this.imageAtlas.uploaded = true), this.glyphAtlasImage && (this.glyphAtlasTexture = new Tl(t2, this.glyphAtlasImage, n2.ALPHA), this.glyphAtlasImage = null); + }, ap.prototype.prepare = function(t2) { + this.imageAtlas && this.imageAtlas.patchUpdatedImages(t2, this.imageAtlasTexture); + }, ap.prototype.queryRenderedFeatures = function(t2, e2, r2, n2, i2, a2, o2, s2, u2, l2) { + return this.latestFeatureIndex && this.latestFeatureIndex.rawTileData ? this.latestFeatureIndex.query({ queryGeometry: n2, cameraQueryGeometry: i2, scale: a2, tileSize: this.tileSize, pixelPosMatrix: l2, transform: s2, params: o2, queryPadding: this.queryPadding * u2 }, t2, e2, r2) : {}; + }, ap.prototype.querySourceFeatures = function(t2, e2) { + var r2 = this.latestFeatureIndex; + if (r2 && r2.rawTileData) { + var n2 = r2.loadVTLayers(), i2 = e2 ? e2.sourceLayer : "", a2 = n2._geojsonTileLayer || n2[i2]; + if (a2) + for (var o2 = on2(e2 && e2.filter), s2 = this.tileID.canonical, u2 = s2.z, l2 = s2.x, p3 = s2.y, c3 = { z: u2, x: l2, y: p3 }, h3 = 0; h3 < a2.length; h3++) { + var f2 = a2.feature(h3); + if (o2.needGeometry) { + var y3 = Ua(f2, true); + if (!o2.filter(new si(this.tileID.overscaledZ), y3, this.tileID.canonical)) + continue; + } else if (!o2.filter(new si(this.tileID.overscaledZ), f2)) + continue; + var d2 = r2.getId(f2, i2), m2 = new Wl(f2, u2, l2, p3, d2); + m2.tile = c3, t2.push(m2); + } } - set(t2) { - if (t2[12] !== this.current[12] || t2[0] !== this.current[0]) - return this.current = t2, void this.gl.uniformMatrix4fv(this.location, false, t2); - for (let e2 = 1; e2 < 16; e2++) - if (t2[e2] !== this.current[e2]) { - this.current = t2, this.gl.uniformMatrix4fv(this.location, false, t2); - break; + }, ap.prototype.hasData = function() { + return "loaded" === this.state || "reloading" === this.state || "expired" === this.state; + }, ap.prototype.patternsLoaded = function() { + return this.imageAtlas && !!Object.keys(this.imageAtlas.patternPositions).length; + }, ap.prototype.setExpiryData = function(t2) { + var e2 = this.expirationTime; + if (t2.cacheControl) { + var r2 = z(t2.cacheControl); + r2["max-age"] && (this.expirationTime = Date.now() + 1e3 * r2["max-age"]); + } else + t2.expires && (this.expirationTime = new Date(t2.expires).getTime()); + if (this.expirationTime) { + var n2 = Date.now(), i2 = false; + if (this.expirationTime > n2) + i2 = false; + else if (e2) + if (this.expirationTime < e2) + i2 = true; + else { + var a2 = this.expirationTime - e2; + a2 ? this.expirationTime = n2 + Math.max(a2, 3e4) : i2 = true; + } + else + i2 = true; + i2 ? (this.expiredRequestCount++, this.state = "expired") : this.expiredRequestCount = 0; + } + }, ap.prototype.getExpiryTimeout = function() { + if (this.expirationTime) + return this.expiredRequestCount ? 1e3 * (1 << Math.min(this.expiredRequestCount - 1, 31)) : Math.min(this.expirationTime - new Date().getTime(), Math.pow(2, 31) - 1); + }, ap.prototype.setFeatureState = function(t2, e2) { + if (this.latestFeatureIndex && this.latestFeatureIndex.rawTileData && 0 !== Object.keys(t2).length) { + var r2 = this.latestFeatureIndex.loadVTLayers(); + for (var n2 in this.buckets) + if (e2.style.hasLayer(n2)) { + var i2 = this.buckets[n2], a2 = i2.layers[0].sourceLayer || "_geojsonTileLayer", o2 = r2[a2], s2 = t2[a2]; + if (o2 && s2 && 0 !== Object.keys(s2).length) { + i2.update(s2, o2, this.imageAtlas && this.imageAtlas.patternPositions || {}); + var u2 = e2 && e2.style && e2.style.getLayer(n2); + u2 && (this.queryPadding = Math.max(this.queryPadding, u2.queryRadius(i2))); + } } } - }, t.UnwrappedTileID = sc, t.ValidationError = it, t.ZoomHistory = Pn, t.add = function(t2, e2, r2) { + }, ap.prototype.holdingForFade = function() { + return void 0 !== this.symbolFadeHoldUntil; + }, ap.prototype.symbolFadeFinished = function() { + return !this.symbolFadeHoldUntil || this.symbolFadeHoldUntil < O2.now(); + }, ap.prototype.clearFadeHold = function() { + this.symbolFadeHoldUntil = void 0; + }, ap.prototype.setHoldDuration = function(t2) { + this.symbolFadeHoldUntil = O2.now() + t2; + }, ap.prototype.setDependencies = function(t2, e2) { + for (var r2 = {}, n2 = 0, i2 = e2; n2 < i2.length; n2 += 1) + r2[i2[n2]] = true; + this.dependencies[t2] = r2; + }, ap.prototype.hasDependency = function(t2, e2) { + for (var r2 = 0, n2 = t2; r2 < n2.length; r2 += 1) { + var i2 = this.dependencies[n2[r2]]; + if (i2) { + for (var a2 = 0, o2 = e2; a2 < o2.length; a2 += 1) + if (i2[o2[a2]]) + return true; + } + } + return false; + }; + var op = o.performance, sp = function(t2) { + this._marks = { start: [t2.url, "start"].join("#"), end: [t2.url, "end"].join("#"), measure: t2.url.toString() }, op.mark(this._marks.start); + }; + sp.prototype.finish = function() { + op.mark(this._marks.end); + var t2 = op.getEntriesByName(this._marks.measure); + return 0 === t2.length && (op.measure(this._marks.measure, this._marks.start, this._marks.end), t2 = op.getEntriesByName(this._marks.measure), op.clearMarks(this._marks.start), op.clearMarks(this._marks.end), op.clearMeasures(this._marks.measure)), t2; + }, t.Actor = Fl, t.AlphaImage = go, t.CanonicalTileID = Zl, t.CollisionBoxArray = $i, t.Color = te, t.DEMData = Yl, t.DataConstantProperty = mi, t.DictionaryCoder = $l, t.EXTENT = 8192, t.ErrorEvent = zt, t.EvaluationParameters = si, t.Event = It, t.Evented = Ct, t.FeatureIndex = ep, t.FillBucket = ss, t.FillExtrusionBucket = Ss, t.ImageAtlas = bu, t.ImagePosition = gu, t.LineBucket = Fs, t.LngLat = Ol, t.LngLatBounds = Ll, t.MercatorCoordinate = Gl, t.ONE_EM = 24, t.OverscaledTileID = Jl, t.Point = i, t.Point$1 = i, t.Properties = wi, t.Protobuf = Ys, t.RGBAImage = xo, t.RequestManager = G, t.RequestPerformance = sp, t.ResourceType = yt, t.SegmentVector = sa, t.SourceFeatureState = tp, t.StructArrayLayout1ui2 = Ji, t.StructArrayLayout2f1f2i16 = Ri, t.StructArrayLayout2i4 = Ci, t.StructArrayLayout3ui6 = ji, t.StructArrayLayout4i8 = Ei, t.SymbolBucket = vl, t.Texture = Tl, t.Tile = ap, t.Transitionable = pi, t.Uniform1f = ba, t.Uniform1i = xa, t.Uniform2f = wa, t.Uniform3f = _a, t.Uniform4f = Aa, t.UniformColor = Sa, t.UniformMatrix4f = Ia, t.UnwrappedTileID = Xl, t.ValidationError = Pt, t.WritingMode = wu, t.ZoomHistory = Kn, t.add = function(t2, e2, r2) { return t2[0] = e2[0] + r2[0], t2[1] = e2[1] + r2[1], t2[2] = e2[2] + r2[2], t2; - }, t.addDynamicAttributes = Eu, t.asyncAll = function(t2, e2, r2) { + }, t.addDynamicAttributes = fl, t.asyncAll = function(t2, e2, r2) { if (!t2.length) return r2(null, []); - let n2 = t2.length; - const i2 = new Array(t2.length); - let a2 = null; - t2.forEach((t3, s2) => { - e2(t3, (t4, e3) => { - t4 && (a2 = t4), i2[s2] = e3, 0 == --n2 && r2(a2, i2); + var n2 = t2.length, i2 = new Array(t2.length), a2 = null; + t2.forEach(function(t3, o2) { + e2(t3, function(t4, e3) { + t4 && (a2 = t4), i2[o2] = e3, 0 == --n2 && r2(a2, i2); }); }); - }, t.bezier = n, t.bindAll = u, t.cacheEntryPossiblyAdded = function(t2) { - F++, F > V2 && (t2.getActor().send("enforceCacheSizeLimit", P), F = 0); - }, t.clamp = a, t.clearTileCache = function(t2) { - const e2 = caches.delete(z); - t2 && e2.catch(t2).then(() => t2()); - }, t.clipLine = cu, t.clone = function(t2) { - var e2 = new ps(16); + }, t.bezier = u, t.bindAll = v2, t.browser = O2, t.cacheEntryPossiblyAdded = function(t2) { + ++ht > ut && (t2.getActor().send("enforceCacheSizeLimit", st), ht = 0); + }, t.clamp = p2, t.clearTileCache = function(t2) { + var e2 = o.caches.delete("mapbox-tiles"); + t2 && e2.catch(t2).then(function() { + return t2(); + }); + }, t.clipLine = Zu, t.clone = function(t2) { + var e2 = new ao(16); return e2[0] = t2[0], e2[1] = t2[1], e2[2] = t2[2], e2[3] = t2[3], e2[4] = t2[4], e2[5] = t2[5], e2[6] = t2[6], e2[7] = t2[7], e2[8] = t2[8], e2[9] = t2[9], e2[10] = t2[10], e2[11] = t2[11], e2[12] = t2[12], e2[13] = t2[13], e2[14] = t2[14], e2[15] = t2[15], e2; - }, t.clone$1 = p2, t.clone$2 = function(t2) { - var e2 = new ps(3); + }, t.clone$1 = w, t.clone$2 = function(t2) { + var e2 = new ao(3); return e2[0] = t2[0], e2[1] = t2[1], e2[2] = t2[2], e2; - }, t.collisionCircleLayout = al, t.config = M, t.copy = function(t2, e2) { - return t2[0] = e2[0], t2[1] = e2[1], t2[2] = e2[2], t2[3] = e2[3], t2[4] = e2[4], t2[5] = e2[5], t2[6] = e2[6], t2[7] = e2[7], t2[8] = e2[8], t2[9] = e2[9], t2[10] = e2[10], t2[11] = e2[11], t2[12] = e2[12], t2[13] = e2[13], t2[14] = e2[14], t2[15] = e2[15], t2; - }, t.create = function() { - var t2 = new ps(16); - return ps != Float32Array && (t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[4] = 0, t2[6] = 0, t2[7] = 0, t2[8] = 0, t2[9] = 0, t2[11] = 0, t2[12] = 0, t2[13] = 0, t2[14] = 0), t2[0] = 1, t2[5] = 1, t2[10] = 1, t2[15] = 1, t2; - }, t.create$1 = fs, t.createExpression = Fr, t.createFilter = Jr, t.createLayout = vi, t.createStyleLayer = function(t2) { - return "custom" === t2.type ? new Zu(t2) : new Ku[t2.type](t2); + }, t.collisionCircleLayout = Gs, t.config = R, t.create = function() { + var t2 = new ao(16); + return ao != Float32Array && (t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[4] = 0, t2[6] = 0, t2[7] = 0, t2[8] = 0, t2[9] = 0, t2[11] = 0, t2[12] = 0, t2[13] = 0, t2[14] = 0), t2[0] = 1, t2[5] = 1, t2[10] = 1, t2[15] = 1, t2; + }, t.create$1 = function() { + var t2 = new ao(9); + return ao != Float32Array && (t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[5] = 0, t2[6] = 0, t2[7] = 0), t2[0] = 1, t2[4] = 1, t2[8] = 1, t2; + }, t.create$2 = function() { + var t2 = new ao(4); + return ao != Float32Array && (t2[1] = 0, t2[2] = 0), t2[0] = 1, t2[3] = 1, t2; + }, t.createCommonjsModule = e, t.createExpression = Zr, t.createLayout = Ii, t.createStyleLayer = function(t2) { + return "custom" === t2.type ? new Il(t2) : new zl[t2.type](t2); }, t.cross = function(t2, e2, r2) { - var n2 = e2[0], i2 = e2[1], a2 = e2[2], s2 = r2[0], o2 = r2[1], l2 = r2[2]; - return t2[0] = i2 * l2 - a2 * o2, t2[1] = a2 * s2 - n2 * l2, t2[2] = n2 * o2 - i2 * s2, t2; + var n2 = e2[0], i2 = e2[1], a2 = e2[2], o2 = r2[0], s2 = r2[1], u2 = r2[2]; + return t2[0] = i2 * u2 - a2 * s2, t2[1] = a2 * o2 - n2 * u2, t2[2] = n2 * s2 - i2 * o2, t2; + }, t.deepEqual = function t2(e2, r2) { + if (Array.isArray(e2)) { + if (!Array.isArray(r2) || e2.length !== r2.length) + return false; + for (var n2 = 0; n2 < e2.length; n2++) + if (!t2(e2[n2], r2[n2])) + return false; + return true; + } + if ("object" == typeof e2 && null !== e2 && null !== r2) { + if ("object" != typeof r2) + return false; + if (Object.keys(e2).length !== Object.keys(r2).length) + return false; + for (var i2 in e2) + if (!t2(e2[i2], r2[i2])) + return false; + return true; + } + return e2 === r2; }, t.dot = function(t2, e2) { return t2[0] * e2[0] + t2[1] * e2[1] + t2[2] * e2[2]; }, t.dot$1 = function(t2, e2) { return t2[0] * e2[0] + t2[1] * e2[1] + t2[2] * e2[2] + t2[3] * e2[3]; - }, t.ease = i, t.emitValidationErrors = kn, t.enforceCacheSizeLimit = function(t2) { - E(), B && B.then((e2) => { - e2.keys().then((r2) => { - for (let n2 = 0; n2 < r2.length - t2; n2++) + }, t.ease = l, t.emitValidationErrors = Bn, t.endsWith = g, t.enforceCacheSizeLimit = function(t2) { + lt(), tt && tt.then(function(e2) { + e2.keys().then(function(r2) { + for (var n2 = 0; n2 < r2.length - t2; n2++) e2.delete(r2[n2]); }); }); - }, t.equals = function(t2, e2) { - var r2 = t2[0], n2 = t2[1], i2 = t2[2], a2 = t2[3], s2 = t2[4], o2 = t2[5], l2 = t2[6], u2 = t2[7], c3 = t2[8], h3 = t2[9], p3 = t2[10], f2 = t2[11], d2 = t2[12], y3 = t2[13], m2 = t2[14], g2 = t2[15], x2 = e2[0], v3 = e2[1], b2 = e2[2], w2 = e2[3], _24 = e2[4], A3 = e2[5], k2 = e2[6], S2 = e2[7], I3 = e2[8], M2 = e2[9], z2 = e2[10], B2 = e2[11], C2 = e2[12], P2 = e2[13], V3 = e2[14], E2 = e2[15]; - return Math.abs(r2 - x2) <= hs * Math.max(1, Math.abs(r2), Math.abs(x2)) && Math.abs(n2 - v3) <= hs * Math.max(1, Math.abs(n2), Math.abs(v3)) && Math.abs(i2 - b2) <= hs * Math.max(1, Math.abs(i2), Math.abs(b2)) && Math.abs(a2 - w2) <= hs * Math.max(1, Math.abs(a2), Math.abs(w2)) && Math.abs(s2 - _24) <= hs * Math.max(1, Math.abs(s2), Math.abs(_24)) && Math.abs(o2 - A3) <= hs * Math.max(1, Math.abs(o2), Math.abs(A3)) && Math.abs(l2 - k2) <= hs * Math.max(1, Math.abs(l2), Math.abs(k2)) && Math.abs(u2 - S2) <= hs * Math.max(1, Math.abs(u2), Math.abs(S2)) && Math.abs(c3 - I3) <= hs * Math.max(1, Math.abs(c3), Math.abs(I3)) && Math.abs(h3 - M2) <= hs * Math.max(1, Math.abs(h3), Math.abs(M2)) && Math.abs(p3 - z2) <= hs * Math.max(1, Math.abs(p3), Math.abs(z2)) && Math.abs(f2 - B2) <= hs * Math.max(1, Math.abs(f2), Math.abs(B2)) && Math.abs(d2 - C2) <= hs * Math.max(1, Math.abs(d2), Math.abs(C2)) && Math.abs(y3 - P2) <= hs * Math.max(1, Math.abs(y3), Math.abs(P2)) && Math.abs(m2 - V3) <= hs * Math.max(1, Math.abs(m2), Math.abs(V3)) && Math.abs(g2 - E2) <= hs * Math.max(1, Math.abs(g2), Math.abs(E2)); - }, t.evaluateSizeForFeature = function(t2, { uSize: e2, uSizeT: r2 }, { lowerSize: n2, upperSize: i2 }) { - return "source" === t2.kind ? n2 / tu : "composite" === t2.kind ? Se(n2 / tu, i2 / tu, r2) : e2; - }, t.evaluateSizeForZoom = function(t2, e2) { - let r2 = 0, n2 = 0; - if ("constant" === t2.kind) - n2 = t2.layoutSize; - else if ("source" !== t2.kind) { - const { interpolationType: i2, minZoom: s2, maxZoom: o2 } = t2, l2 = i2 ? a(Ne.interpolationFactor(i2, e2, s2, o2), 0, 1) : 0; - "camera" === t2.kind ? n2 = Se(t2.minSize, t2.maxSize, l2) : r2 = l2; - } - return { uSizeT: r2, uSize: n2 }; - }, t.evaluateVariableOffset = Au, t.evented = Xn, t.exported = k, t.exported$1 = T, t.extend = o, t.filterObject = h2, t.fromRotation = function(t2, e2) { + }, t.evaluateSizeForFeature = Lu, t.evaluateSizeForZoom = Ou, t.evaluateVariableOffset = al, t.evented = ni, t.extend = h2, t.featureFilter = on2, t.filterObject = b, t.fromRotation = function(t2, e2) { var r2 = Math.sin(e2), n2 = Math.cos(e2); return t2[0] = n2, t2[1] = r2, t2[2] = 0, t2[3] = -r2, t2[4] = n2, t2[5] = 0, t2[6] = 0, t2[7] = 0, t2[8] = 1, t2; - }, t.fromScaling = function(t2, e2) { - return t2[0] = e2[0], t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[4] = 0, t2[5] = e2[1], t2[6] = 0, t2[7] = 0, t2[8] = 0, t2[9] = 0, t2[10] = e2[2], t2[11] = 0, t2[12] = 0, t2[13] = 0, t2[14] = 0, t2[15] = 1, t2; - }, t.getAnchorAlignment = Yl, t.getAnchorJustification = ku, t.getArrayBuffer = K, t.getImage = H, t.getJSON = function(t2, e2) { - return Z2(o(t2, { type: "json" }), e2); - }, t.getOverlapMode = qu, t.getRTLTextPluginStatus = Yn, t.getReferrer = j, t.getVideo = function(t2, e2) { - const r2 = window.document.createElement("video"); - r2.muted = true, r2.onloadstart = function() { - e2(null, r2); + }, t.getAnchorAlignment = Bu, t.getAnchorJustification = ol, t.getArrayBuffer = bt, t.getImage = At, t.getJSON = function(t2, e2) { + return xt(h2(t2, { type: "json" }), e2); + }, t.getRTLTextPluginStatus = ii, t.getReferrer = mt, t.getVideo = function(t2, e2) { + var r2, n2, i2 = o.document.createElement("video"); + i2.muted = true, i2.onloadstart = function() { + e2(null, i2); }; - for (let e3 = 0; e3 < t2.length; e3++) { - const n2 = window.document.createElement("source"); - G(t2[e3]) || (r2.crossOrigin = "Anonymous"), n2.src = t2[e3], r2.appendChild(n2); + for (var a2 = 0; a2 < t2.length; a2++) { + var s2 = o.document.createElement("source"); + r2 = t2[a2], n2 = void 0, (n2 = o.document.createElement("a")).href = r2, (n2.protocol !== o.document.location.protocol || n2.host !== o.document.location.host) && (i2.crossOrigin = "Anonymous"), s2.src = t2[a2], i2.appendChild(s2); } - return { cancel: () => { + return { cancel: function() { } }; - }, t.identity = ds, t.invert = function(t2, e2) { - var r2 = e2[0], n2 = e2[1], i2 = e2[2], a2 = e2[3], s2 = e2[4], o2 = e2[5], l2 = e2[6], u2 = e2[7], c3 = e2[8], h3 = e2[9], p3 = e2[10], f2 = e2[11], d2 = e2[12], y3 = e2[13], m2 = e2[14], g2 = e2[15], x2 = r2 * o2 - n2 * s2, v3 = r2 * l2 - i2 * s2, b2 = r2 * u2 - a2 * s2, w2 = n2 * l2 - i2 * o2, _24 = n2 * u2 - a2 * o2, A3 = i2 * u2 - a2 * l2, k2 = c3 * y3 - h3 * d2, S2 = c3 * m2 - p3 * d2, I3 = c3 * g2 - f2 * d2, M2 = h3 * m2 - p3 * y3, z2 = h3 * g2 - f2 * y3, B2 = p3 * g2 - f2 * m2, C2 = x2 * B2 - v3 * z2 + b2 * M2 + w2 * I3 - _24 * S2 + A3 * k2; - return C2 ? (t2[0] = (o2 * B2 - l2 * z2 + u2 * M2) * (C2 = 1 / C2), t2[1] = (i2 * z2 - n2 * B2 - a2 * M2) * C2, t2[2] = (y3 * A3 - m2 * _24 + g2 * w2) * C2, t2[3] = (p3 * _24 - h3 * A3 - f2 * w2) * C2, t2[4] = (l2 * I3 - s2 * B2 - u2 * S2) * C2, t2[5] = (r2 * B2 - i2 * I3 + a2 * S2) * C2, t2[6] = (m2 * b2 - d2 * A3 - g2 * v3) * C2, t2[7] = (c3 * A3 - p3 * b2 + f2 * v3) * C2, t2[8] = (s2 * z2 - o2 * I3 + u2 * k2) * C2, t2[9] = (n2 * I3 - r2 * z2 - a2 * k2) * C2, t2[10] = (d2 * _24 - y3 * b2 + g2 * x2) * C2, t2[11] = (h3 * b2 - c3 * _24 - f2 * x2) * C2, t2[12] = (o2 * S2 - s2 * M2 - l2 * k2) * C2, t2[13] = (r2 * M2 - n2 * S2 + i2 * k2) * C2, t2[14] = (y3 * v3 - d2 * w2 - m2 * x2) * C2, t2[15] = (c3 * w2 - h3 * v3 + p3 * x2) * C2, t2) : null; - }, t.isImageBitmap = A2, t.isSafari = _23, t.isWorker = g, t.keysDifference = function(t2, e2) { - const r2 = []; - for (const n2 in t2) + }, t.identity = oo, t.invert = function(t2, e2) { + var r2 = e2[0], n2 = e2[1], i2 = e2[2], a2 = e2[3], o2 = e2[4], s2 = e2[5], u2 = e2[6], l2 = e2[7], p3 = e2[8], c3 = e2[9], h3 = e2[10], f2 = e2[11], y3 = e2[12], d2 = e2[13], m2 = e2[14], v3 = e2[15], g2 = r2 * s2 - n2 * o2, x2 = r2 * u2 - i2 * o2, b2 = r2 * l2 - a2 * o2, w2 = n2 * u2 - i2 * s2, _24 = n2 * l2 - a2 * s2, A3 = i2 * l2 - a2 * u2, S2 = p3 * d2 - c3 * y3, k2 = p3 * m2 - h3 * y3, I3 = p3 * v3 - f2 * y3, z2 = c3 * m2 - h3 * d2, C2 = c3 * v3 - f2 * d2, E2 = h3 * v3 - f2 * m2, P2 = g2 * E2 - x2 * C2 + b2 * z2 + w2 * I3 - _24 * k2 + A3 * S2; + return P2 ? (t2[0] = (s2 * E2 - u2 * C2 + l2 * z2) * (P2 = 1 / P2), t2[1] = (i2 * C2 - n2 * E2 - a2 * z2) * P2, t2[2] = (d2 * A3 - m2 * _24 + v3 * w2) * P2, t2[3] = (h3 * _24 - c3 * A3 - f2 * w2) * P2, t2[4] = (u2 * I3 - o2 * E2 - l2 * k2) * P2, t2[5] = (r2 * E2 - i2 * I3 + a2 * k2) * P2, t2[6] = (m2 * b2 - y3 * A3 - v3 * x2) * P2, t2[7] = (p3 * A3 - h3 * b2 + f2 * x2) * P2, t2[8] = (o2 * C2 - s2 * I3 + l2 * S2) * P2, t2[9] = (n2 * I3 - r2 * C2 - a2 * S2) * P2, t2[10] = (y3 * _24 - d2 * b2 + v3 * g2) * P2, t2[11] = (c3 * b2 - p3 * _24 - f2 * g2) * P2, t2[12] = (s2 * k2 - o2 * z2 - u2 * S2) * P2, t2[13] = (r2 * z2 - n2 * k2 + i2 * S2) * P2, t2[14] = (d2 * x2 - y3 * w2 - m2 * g2) * P2, t2[15] = (p3 * w2 - c3 * x2 + h3 * g2) * P2, t2) : null; + }, t.isChar = Gn, t.isMapboxURL = Z2, t.keysDifference = function(t2, e2) { + var r2 = []; + for (var n2 in t2) n2 in e2 || r2.push(n2); return r2; - }, t.lazyLoadRTLTextPlugin = function() { - Wn.isLoading() || Wn.isLoaded() || "deferred" !== Yn() || Hn(); - }, t.makeRequest = Z2, t.mapObject = c2, t.mercatorXfromLng = Qu, t.mercatorYfromLat = tc, t.mercatorZfromAltitude = ec, t.mul = gs, t.mul$1 = function(t2, e2, r2) { - return t2[0] = e2[0] * r2[0], t2[1] = e2[1] * r2[1], t2[2] = e2[2] * r2[2], t2[3] = e2[3] * r2[3], t2; - }, t.multiply = ys, t.nextPowerOfTwo = function(t2) { + }, t.makeRequest = xt, t.mapObject = x, t.mercatorXfromLng = jl, t.mercatorYfromLat = ql, t.mercatorZfromAltitude = Nl, t.mul = lo, t.multiply = so, t.mvt = bs, t.nextPowerOfTwo = function(t2) { return t2 <= 1 ? 1 : Math.pow(2, Math.ceil(Math.log(t2) / Math.LN2)); }, t.normalize = function(t2, e2) { var r2 = e2[0], n2 = e2[1], i2 = e2[2], a2 = r2 * r2 + n2 * n2 + i2 * i2; return a2 > 0 && (a2 = 1 / Math.sqrt(a2)), t2[0] = e2[0] * a2, t2[1] = e2[1] * a2, t2[2] = e2[2] * a2, t2; - }, t.number = Se, t.ortho = function(t2, e2, r2, n2, i2, a2, s2) { - var o2 = 1 / (e2 - r2), l2 = 1 / (n2 - i2), u2 = 1 / (a2 - s2); - return t2[0] = -2 * o2, t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[4] = 0, t2[5] = -2 * l2, t2[6] = 0, t2[7] = 0, t2[8] = 0, t2[9] = 0, t2[10] = 2 * u2, t2[11] = 0, t2[12] = (e2 + r2) * o2, t2[13] = (i2 + n2) * l2, t2[14] = (s2 + a2) * u2, t2[15] = 1, t2; - }, t.parseCacheControl = x, t.parseGlyphPbf = function(t2) { - return new ul(t2).readFields(Vl, []); - }, t.pbf = ul, t.performSymbolLayout = function(e2) { - e2.bucket.createArrays(), e2.bucket.tilePixelRatio = qa / (512 * e2.bucket.overscaling), e2.bucket.compareText = {}, e2.bucket.iconsNeedLinear = false; - const r2 = e2.bucket.layers[0].layout, n2 = e2.bucket.layers[0]._unevaluatedLayout._values, i2 = { layoutIconSize: n2["icon-size"].possiblyEvaluate(new Qn(e2.bucket.zoom + 1), e2.canonical), layoutTextSize: n2["text-size"].possiblyEvaluate(new Qn(e2.bucket.zoom + 1), e2.canonical), textMaxSize: n2["text-size"].possiblyEvaluate(new Qn(18)) }; - if ("composite" === e2.bucket.textSizeData.kind) { - const { minZoom: t2, maxZoom: r3 } = e2.bucket.textSizeData; - i2.compositeTextSizes = [n2["text-size"].possiblyEvaluate(new Qn(t2), e2.canonical), n2["text-size"].possiblyEvaluate(new Qn(r3), e2.canonical)]; - } - if ("composite" === e2.bucket.iconSizeData.kind) { - const { minZoom: t2, maxZoom: r3 } = e2.bucket.iconSizeData; - i2.compositeIconSizes = [n2["icon-size"].possiblyEvaluate(new Qn(t2), e2.canonical), n2["icon-size"].possiblyEvaluate(new Qn(r3), e2.canonical)]; - } - const a2 = r2.get("text-line-height") * ll, s2 = "viewport" !== r2.get("text-rotation-alignment") && "point" !== r2.get("symbol-placement"), o2 = r2.get("text-keep-upright"), l2 = r2.get("text-size"); - for (const n3 of e2.bucket.features) { - const u2 = r2.get("text-font").evaluate(n3, {}, e2.canonical).join(","), c3 = l2.evaluate(n3, {}, e2.canonical), h3 = i2.layoutTextSize.evaluate(n3, {}, e2.canonical), p3 = i2.layoutIconSize.evaluate(n3, {}, e2.canonical), f2 = { horizontal: {}, vertical: void 0 }, y3 = n3.text; - let m2, g2 = [0, 0]; - if (y3) { - const i3 = y3.toString(), l3 = r2.get("text-letter-spacing").evaluate(n3, {}, e2.canonical) * ll, p4 = Fn(i3) ? l3 : 0, d2 = r2.get("text-anchor").evaluate(n3, {}, e2.canonical), m3 = r2.get("text-variable-anchor"); - if (!m3) { - const t2 = r2.get("text-radial-offset").evaluate(n3, {}, e2.canonical); - g2 = t2 ? Au(d2, [t2 * ll, _u]) : r2.get("text-offset").evaluate(n3, {}, e2.canonical).map((t3) => t3 * ll); + }, t.number = Ke, t.offscreenCanvasSupported = ft, t.ortho = function(t2, e2, r2, n2, i2, a2, o2) { + var s2 = 1 / (e2 - r2), u2 = 1 / (n2 - i2), l2 = 1 / (a2 - o2); + return t2[0] = -2 * s2, t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[4] = 0, t2[5] = -2 * u2, t2[6] = 0, t2[7] = 0, t2[8] = 0, t2[9] = 0, t2[10] = 2 * l2, t2[11] = 0, t2[12] = (e2 + r2) * s2, t2[13] = (i2 + n2) * u2, t2[14] = (o2 + a2) * l2, t2[15] = 1, t2; + }, t.parseGlyphPBF = function(t2) { + return new Ys(t2).readFields(yu, []); + }, t.pbf = Ys, t.performSymbolLayout = function(t2, e2, r2, n2, i2, a2, o2) { + t2.createArrays(), t2.tilePixelRatio = 8192 / (512 * t2.overscaling), t2.compareText = {}, t2.iconsNeedLinear = false; + var s2 = t2.layers[0].layout, u2 = t2.layers[0]._unevaluatedLayout._values, l2 = {}; + if ("composite" === t2.textSizeData.kind) { + var p3 = t2.textSizeData, c3 = p3.maxZoom; + l2.compositeTextSizes = [u2["text-size"].possiblyEvaluate(new si(p3.minZoom), o2), u2["text-size"].possiblyEvaluate(new si(c3), o2)]; + } + if ("composite" === t2.iconSizeData.kind) { + var h3 = t2.iconSizeData, f2 = h3.maxZoom; + l2.compositeIconSizes = [u2["icon-size"].possiblyEvaluate(new si(h3.minZoom), o2), u2["icon-size"].possiblyEvaluate(new si(f2), o2)]; + } + l2.layoutTextSize = u2["text-size"].possiblyEvaluate(new si(t2.zoom + 1), o2), l2.layoutIconSize = u2["icon-size"].possiblyEvaluate(new si(t2.zoom + 1), o2), l2.textMaxSize = u2["text-size"].possiblyEvaluate(new si(18)); + for (var y3 = 24 * s2.get("text-line-height"), d2 = "map" === s2.get("text-rotation-alignment") && "point" !== s2.get("symbol-placement"), m2 = s2.get("text-keep-upright"), v3 = s2.get("text-size"), g2 = function() { + var a3 = b2[x2], u3 = s2.get("text-font").evaluate(a3, {}, o2).join(","), p4 = v3.evaluate(a3, {}, o2), c4 = l2.layoutTextSize.evaluate(a3, {}, o2), h4 = l2.layoutIconSize.evaluate(a3, {}, o2), f3 = { horizontal: {}, vertical: void 0 }, g3 = a3.text, w2 = [0, 0]; + if (g3) { + var _24 = g3.toString(), S2 = 24 * s2.get("text-letter-spacing").evaluate(a3, {}, o2), k2 = function(t3) { + for (var e3 = 0, r3 = t3; e3 < r3.length; e3 += 1) + if (n3 = r3[e3].charCodeAt(0), Gn.Arabic(n3) || Gn["Arabic Supplement"](n3) || Gn["Arabic Extended-A"](n3) || Gn["Arabic Presentation Forms-A"](n3) || Gn["Arabic Presentation Forms-B"](n3)) + return false; + var n3; + return true; + }(_24) ? S2 : 0, I3 = s2.get("text-anchor").evaluate(a3, {}, o2), z2 = s2.get("text-variable-anchor"); + if (!z2) { + var C2 = s2.get("text-radial-offset").evaluate(a3, {}, o2); + w2 = C2 ? al(I3, [24 * C2, il]) : s2.get("text-offset").evaluate(a3, {}, o2).map(function(t3) { + return 24 * t3; + }); } - let x3 = s2 ? "center" : r2.get("text-justify").evaluate(n3, {}, e2.canonical); - const v4 = r2.get("symbol-placement"), b2 = "point" === v4 ? r2.get("text-max-width").evaluate(n3, {}, e2.canonical) * ll : 0, w2 = () => { - e2.bucket.allowVerticalPlacement && En(i3) && (f2.vertical = Ul(y3, e2.glyphMap, e2.glyphPositions, e2.imagePositions, u2, b2, a2, d2, "left", p4, g2, t.WritingMode.vertical, true, v4, h3, c3)); + var E2 = d2 ? "center" : s2.get("text-justify").evaluate(a3, {}, o2), P2 = s2.get("symbol-placement"), M2 = "point" === P2 ? 24 * s2.get("text-max-width").evaluate(a3, {}, o2) : 0, B2 = function() { + t2.allowVerticalPlacement && Zn(_24) && (f3.vertical = Su(g3, e2, r2, i2, u3, M2, y3, I3, "left", k2, w2, wu.vertical, true, P2, c4, p4)); }; - if (!s2 && m3) { - const r3 = "auto" === x3 ? m3.map((t2) => ku(t2)) : [x3]; - let n4 = false; - for (let i4 = 0; i4 < r3.length; i4++) { - const s3 = r3[i4]; - if (!f2.horizontal[s3]) - if (n4) - f2.horizontal[s3] = f2.horizontal[0]; + if (!d2 && z2) { + for (var T2 = "auto" === E2 ? z2.map(function(t3) { + return ol(t3); + }) : [E2], V3 = false, F2 = 0; F2 < T2.length; F2++) { + var D2 = T2[F2]; + if (!f3.horizontal[D2]) + if (V3) + f3.horizontal[D2] = f3.horizontal[0]; else { - const r4 = Ul(y3, e2.glyphMap, e2.glyphPositions, e2.imagePositions, u2, b2, a2, "center", s3, p4, g2, t.WritingMode.horizontal, false, v4, h3, c3); - r4 && (f2.horizontal[s3] = r4, n4 = 1 === r4.positionedLines.length); + var L2 = Su(g3, e2, r2, i2, u3, M2, y3, "center", D2, k2, w2, wu.horizontal, false, P2, c4, p4); + L2 && (f3.horizontal[D2] = L2, V3 = 1 === L2.positionedLines.length); } } - w2(); + B2(); } else { - "auto" === x3 && (x3 = ku(d2)); - const r3 = Ul(y3, e2.glyphMap, e2.glyphPositions, e2.imagePositions, u2, b2, a2, d2, x3, p4, g2, t.WritingMode.horizontal, false, v4, h3, c3); - r3 && (f2.horizontal[x3] = r3), w2(), En(i3) && s2 && o2 && (f2.vertical = Ul(y3, e2.glyphMap, e2.glyphPositions, e2.imagePositions, u2, b2, a2, d2, x3, p4, g2, t.WritingMode.vertical, false, v4, h3, c3)); + "auto" === E2 && (E2 = ol(I3)); + var O3 = Su(g3, e2, r2, i2, u3, M2, y3, I3, E2, k2, w2, wu.horizontal, false, P2, c4, p4); + O3 && (f3.horizontal[E2] = O3), B2(), Zn(_24) && d2 && m2 && (f3.vertical = Su(g3, e2, r2, i2, u3, M2, y3, I3, E2, k2, w2, wu.vertical, false, P2, c4, p4)); } } - let x2 = false; - if (n3.icon && n3.icon.name) { - const t2 = e2.imageMap[n3.icon.name]; - t2 && (m2 = Wl(e2.imagePositions[n3.icon.name], r2.get("icon-offset").evaluate(n3, {}, e2.canonical), r2.get("icon-anchor").evaluate(n3, {}, e2.canonical)), x2 = !!t2.sdf, void 0 === e2.bucket.sdfIcons ? e2.bucket.sdfIcons = x2 : e2.bucket.sdfIcons !== x2 && d("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"), (t2.pixelRatio !== e2.bucket.pixelRatio || 0 !== r2.get("icon-rotate").constantOr(1)) && (e2.bucket.iconsNeedLinear = true)); - } - const v3 = zu(f2.horizontal) || f2.vertical; - e2.bucket.iconsInText = !!v3 && v3.iconsInText, (v3 || m2) && Su(e2.bucket, n3, f2, m2, e2.imageMap, i2, h3, p3, g2, x2, e2.canonical); - } - e2.showCollisionBoxes && e2.bucket.generateCollisionDebugBuffers(); + var R2 = void 0, U2 = false; + if (a3.icon && a3.icon.name) { + var j2 = n2[a3.icon.name]; + j2 && (R2 = function(t3, e3, r3) { + var n3 = Bu(r3), i3 = e3[0] - t3.displaySize[0] * n3.horizontalAlign, a4 = e3[1] - t3.displaySize[1] * n3.verticalAlign; + return { image: t3, top: a4, bottom: a4 + t3.displaySize[1], left: i3, right: i3 + t3.displaySize[0] }; + }(i2[a3.icon.name], s2.get("icon-offset").evaluate(a3, {}, o2), s2.get("icon-anchor").evaluate(a3, {}, o2)), U2 = j2.sdf, void 0 === t2.sdfIcons ? t2.sdfIcons = j2.sdf : t2.sdfIcons !== j2.sdf && A2("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"), (j2.pixelRatio !== t2.pixelRatio || 0 !== s2.get("icon-rotate").constantOr(1)) && (t2.iconsNeedLinear = true)); + } + var q2 = ul(f3.horizontal) || f3.vertical; + t2.iconsInText = !!q2 && q2.iconsInText, (q2 || R2) && function(t3, e3, r3, n3, i3, a4, o3, s3, u4, l3, p5) { + var c5 = a4.textMaxSize.evaluate(e3, {}); + void 0 === c5 && (c5 = o3); + var h5, f4 = t3.layers[0].layout, y4 = f4.get("icon-offset").evaluate(e3, {}, p5), d3 = ul(r3.horizontal), m3 = o3 / 24, v4 = t3.tilePixelRatio * m3, g4 = t3.tilePixelRatio * c5 / 24, x3 = t3.tilePixelRatio * s3, b3 = t3.tilePixelRatio * f4.get("symbol-spacing"), w3 = f4.get("text-padding") * t3.tilePixelRatio, _25 = f4.get("icon-padding") * t3.tilePixelRatio, S3 = f4.get("text-max-angle") / 180 * Math.PI, k3 = "map" === f4.get("text-rotation-alignment") && "point" !== f4.get("symbol-placement"), I4 = "map" === f4.get("icon-rotation-alignment") && "point" !== f4.get("symbol-placement"), z3 = f4.get("symbol-placement"), C3 = b3 / 2, E3 = f4.get("icon-text-fit"); + n3 && "none" !== E3 && (t3.allowVerticalPlacement && r3.vertical && (h5 = Vu(n3, r3.vertical, E3, f4.get("icon-text-fit-padding"), y4, m3)), d3 && (n3 = Vu(n3, d3, E3, f4.get("icon-text-fit-padding"), y4, m3))); + var P3 = function(s4, c6) { + c6.x < 0 || c6.x >= 8192 || c6.y < 0 || c6.y >= 8192 || function(t4, e4, r4, n4, i4, a5, o4, s5, u5, l4, p6, c7, h6, f5, y5, d4, m4, v5, g5, x4, b4, w4, _26, S4, k4) { + var I5, z4, C4, E4, P4, M4 = t4.addToLineVertexArray(e4, r4), B4 = 0, T4 = 0, V5 = 0, F4 = 0, D4 = -1, L4 = -1, O5 = {}, R4 = ha(""), U4 = 0, j4 = 0; + if (void 0 === s5._unevaluatedLayout.getValue("text-radial-offset") ? (U4 = (I5 = s5.layout.get("text-offset").evaluate(b4, {}, S4).map(function(t5) { + return 24 * t5; + }))[0], j4 = I5[1]) : (U4 = 24 * s5.layout.get("text-radial-offset").evaluate(b4, {}, S4), j4 = il), t4.allowVerticalPlacement && n4.vertical) { + var q4 = s5.layout.get("text-rotate").evaluate(b4, {}, S4) + 90; + E4 = new Wu(u5, e4, l4, p6, c7, n4.vertical, h6, f5, y5, q4), o4 && (P4 = new Wu(u5, e4, l4, p6, c7, o4, m4, v5, y5, q4)); + } + if (i4) { + var N3 = s5.layout.get("icon-rotate").evaluate(b4, {}), K3 = "none" !== s5.layout.get("icon-text-fit"), G3 = Xu(i4, N3, _26, K3), Z4 = o4 ? Xu(o4, N3, _26, K3) : void 0; + C4 = new Wu(u5, e4, l4, p6, c7, i4, m4, v5, false, N3), B4 = 4 * G3.length; + var X3 = t4.iconSizeData, J3 = null; + "source" === X3.kind ? (J3 = [128 * s5.layout.get("icon-size").evaluate(b4, {})])[0] > 32640 && A2(t4.layerIds[0] + ': Value for "icon-size" is >= 255. Reduce your "icon-size".') : "composite" === X3.kind && ((J3 = [128 * w4.compositeIconSizes[0].evaluate(b4, {}, S4), 128 * w4.compositeIconSizes[1].evaluate(b4, {}, S4)])[0] > 32640 || J3[1] > 32640) && A2(t4.layerIds[0] + ': Value for "icon-size" is >= 255. Reduce your "icon-size".'), t4.addSymbols(t4.icon, G3, J3, x4, g5, b4, false, e4, M4.lineStartIndex, M4.lineLength, -1, S4), D4 = t4.icon.placedSymbolArray.length - 1, Z4 && (T4 = 4 * Z4.length, t4.addSymbols(t4.icon, Z4, J3, x4, g5, b4, wu.vertical, e4, M4.lineStartIndex, M4.lineLength, -1, S4), L4 = t4.icon.placedSymbolArray.length - 1); + } + for (var H3 in n4.horizontal) { + var Y3 = n4.horizontal[H3]; + if (!z4) { + R4 = ha(Y3.text); + var $3 = s5.layout.get("text-rotate").evaluate(b4, {}, S4); + z4 = new Wu(u5, e4, l4, p6, c7, Y3, h6, f5, y5, $3); + } + var W3 = 1 === Y3.positionedLines.length; + if (V5 += sl(t4, e4, Y3, a5, s5, y5, b4, d4, M4, n4.vertical ? wu.horizontal : wu.horizontalOnly, W3 ? Object.keys(n4.horizontal) : [H3], O5, D4, w4, S4), W3) + break; + } + n4.vertical && (F4 += sl(t4, e4, n4.vertical, a5, s5, y5, b4, d4, M4, wu.vertical, ["vertical"], O5, L4, w4, S4)); + var Q2 = z4 ? z4.boxStartIndex : t4.collisionBoxArray.length, tt2 = z4 ? z4.boxEndIndex : t4.collisionBoxArray.length, et2 = E4 ? E4.boxStartIndex : t4.collisionBoxArray.length, rt2 = E4 ? E4.boxEndIndex : t4.collisionBoxArray.length, nt2 = C4 ? C4.boxStartIndex : t4.collisionBoxArray.length, it2 = C4 ? C4.boxEndIndex : t4.collisionBoxArray.length, at2 = P4 ? P4.boxStartIndex : t4.collisionBoxArray.length, ot2 = P4 ? P4.boxEndIndex : t4.collisionBoxArray.length, st2 = -1, ut2 = function(t5, e5) { + return t5 && t5.circleDiameter ? Math.max(t5.circleDiameter, e5) : e5; + }; + st2 = ut2(z4, st2), st2 = ut2(E4, st2), st2 = ut2(C4, st2); + var lt2 = (st2 = ut2(P4, st2)) > -1 ? 1 : 0; + lt2 && (st2 *= k4 / 24), t4.glyphOffsetArray.length >= vl.MAX_GLYPHS && A2("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"), void 0 !== b4.sortKey && t4.addToSortKeyRanges(t4.symbolInstances.length, b4.sortKey), t4.symbolInstances.emplaceBack(e4.x, e4.y, O5.right >= 0 ? O5.right : -1, O5.center >= 0 ? O5.center : -1, O5.left >= 0 ? O5.left : -1, O5.vertical || -1, D4, L4, R4, Q2, tt2, et2, rt2, nt2, it2, at2, ot2, l4, V5, F4, B4, T4, lt2, 0, h6, U4, j4, st2); + }(t3, c6, s4, r3, n3, i3, h5, t3.layers[0], t3.collisionBoxArray, e3.index, e3.sourceLayerIndex, t3.index, v4, w3, k3, u4, x3, _25, I4, y4, e3, a4, l3, p5, o3); + }; + if ("line" === z3) + for (var M3 = 0, B3 = Zu(e3.geometry, 0, 0, 8192, 8192); M3 < B3.length; M3 += 1) + for (var T3 = B3[M3], V4 = 0, F3 = Gu(T3, b3, S3, r3.vertical || d3, n3, 24, g4, t3.overscaling, 8192); V4 < F3.length; V4 += 1) { + var D3 = F3[V4]; + d3 && ll(t3, d3.text, C3, D3) || P3(T3, D3); + } + else if ("line-center" === z3) + for (var L3 = 0, O4 = e3.geometry; L3 < O4.length; L3 += 1) { + var R3 = O4[L3]; + if (R3.length > 1) { + var U3 = Ku(R3, S3, r3.vertical || d3, n3, 24, g4); + U3 && P3(R3, U3); + } + } + else if ("Polygon" === e3.type) + for (var j3 = 0, q3 = ns(e3.geometry, 0); j3 < q3.length; j3 += 1) { + var N2 = q3[j3], K2 = el(N2, 16); + P3(N2[0], new Fu(K2.x, K2.y, 0)); + } + else if ("LineString" === e3.type) + for (var G2 = 0, Z3 = e3.geometry; G2 < Z3.length; G2 += 1) { + var X2 = Z3[G2]; + P3(X2, new Fu(X2[0].x, X2[0].y, 0)); + } + else if ("Point" === e3.type) + for (var J2 = 0, H2 = e3.geometry; J2 < H2.length; J2 += 1) + for (var Y2 = 0, $2 = H2[J2]; Y2 < $2.length; Y2 += 1) { + var W2 = $2[Y2]; + P3([W2], new Fu(W2.x, W2.y, 0)); + } + }(t2, a3, f3, R2, n2, l2, c4, h4, w2, U2, o2); + }, x2 = 0, b2 = t2.features; x2 < b2.length; x2 += 1) + g2(); + a2 && t2.generateCollisionDebugBuffers(); }, t.perspective = function(t2, e2, r2, n2, i2) { - var a2, s2 = 1 / Math.tan(e2 / 2); - return t2[0] = s2 / r2, t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[4] = 0, t2[5] = s2, t2[6] = 0, t2[7] = 0, t2[8] = 0, t2[9] = 0, t2[11] = -1, t2[12] = 0, t2[13] = 0, t2[15] = 0, null != i2 && i2 !== 1 / 0 ? (t2[10] = (i2 + n2) * (a2 = 1 / (n2 - i2)), t2[14] = 2 * i2 * n2 * a2) : (t2[10] = -1, t2[14] = -2 * n2), t2; + var a2, o2 = 1 / Math.tan(e2 / 2); + return t2[0] = o2 / r2, t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[4] = 0, t2[5] = o2, t2[6] = 0, t2[7] = 0, t2[8] = 0, t2[9] = 0, t2[11] = -1, t2[12] = 0, t2[13] = 0, t2[15] = 0, null != i2 && i2 !== 1 / 0 ? (t2[10] = (i2 + n2) * (a2 = 1 / (n2 - i2)), t2[14] = 2 * i2 * n2 * a2) : (t2[10] = -1, t2[14] = -2 * n2), t2; }, t.pick = function(t2, e2) { - const r2 = {}; - for (let n2 = 0; n2 < e2.length; n2++) { - const i2 = e2[n2]; + for (var r2 = {}, n2 = 0; n2 < e2.length; n2++) { + var i2 = e2[n2]; i2 in t2 && (r2[i2] = t2[i2]); } return r2; - }, t.plugin = Wn, t.pointGeometry = S, t.polygonIntersectsPolygon = Xa, t.potpack = Tl, t.refProperties = ["type", "source", "source-layer", "minzoom", "maxzoom", "filter", "layout"], t.register = Mn, t.registerForPluginStateChange = function(t2) { - return t2({ pluginStatus: Zn, pluginURL: Kn }), Xn.on("pluginStateChange", t2), t2; - }, t.renderColorRamp = Cs, t.rotateX = function(t2, e2, r2) { - var n2 = Math.sin(r2), i2 = Math.cos(r2), a2 = e2[4], s2 = e2[5], o2 = e2[6], l2 = e2[7], u2 = e2[8], c3 = e2[9], h3 = e2[10], p3 = e2[11]; - return e2 !== t2 && (t2[0] = e2[0], t2[1] = e2[1], t2[2] = e2[2], t2[3] = e2[3], t2[12] = e2[12], t2[13] = e2[13], t2[14] = e2[14], t2[15] = e2[15]), t2[4] = a2 * i2 + u2 * n2, t2[5] = s2 * i2 + c3 * n2, t2[6] = o2 * i2 + h3 * n2, t2[7] = l2 * i2 + p3 * n2, t2[8] = u2 * i2 - a2 * n2, t2[9] = c3 * i2 - s2 * n2, t2[10] = h3 * i2 - o2 * n2, t2[11] = p3 * i2 - l2 * n2, t2; + }, t.plugin = oi, t.polygonIntersectsPolygon = Na, t.postMapLoadEvent = ot, t.postTurnstileEvent = it, t.potpack = vu, t.refProperties = ["type", "source", "source-layer", "minzoom", "maxzoom", "filter", "layout"], t.register = On, t.registerForPluginStateChange = function(t2) { + return t2({ pluginStatus: Qn, pluginURL: ti }), ni.on("pluginStateChange", t2), t2; + }, t.renderColorRamp = wo, t.rotate = function(t2, e2, r2) { + var n2 = e2[0], i2 = e2[1], a2 = e2[2], o2 = e2[3], s2 = Math.sin(r2), u2 = Math.cos(r2); + return t2[0] = n2 * u2 + a2 * s2, t2[1] = i2 * u2 + o2 * s2, t2[2] = n2 * -s2 + a2 * u2, t2[3] = i2 * -s2 + o2 * u2, t2; + }, t.rotateX = function(t2, e2, r2) { + var n2 = Math.sin(r2), i2 = Math.cos(r2), a2 = e2[4], o2 = e2[5], s2 = e2[6], u2 = e2[7], l2 = e2[8], p3 = e2[9], c3 = e2[10], h3 = e2[11]; + return e2 !== t2 && (t2[0] = e2[0], t2[1] = e2[1], t2[2] = e2[2], t2[3] = e2[3], t2[12] = e2[12], t2[13] = e2[13], t2[14] = e2[14], t2[15] = e2[15]), t2[4] = a2 * i2 + l2 * n2, t2[5] = o2 * i2 + p3 * n2, t2[6] = s2 * i2 + c3 * n2, t2[7] = u2 * i2 + h3 * n2, t2[8] = l2 * i2 - a2 * n2, t2[9] = p3 * i2 - o2 * n2, t2[10] = c3 * i2 - s2 * n2, t2[11] = h3 * i2 - u2 * n2, t2; }, t.rotateZ = function(t2, e2, r2) { - var n2 = Math.sin(r2), i2 = Math.cos(r2), a2 = e2[0], s2 = e2[1], o2 = e2[2], l2 = e2[3], u2 = e2[4], c3 = e2[5], h3 = e2[6], p3 = e2[7]; - return e2 !== t2 && (t2[8] = e2[8], t2[9] = e2[9], t2[10] = e2[10], t2[11] = e2[11], t2[12] = e2[12], t2[13] = e2[13], t2[14] = e2[14], t2[15] = e2[15]), t2[0] = a2 * i2 + u2 * n2, t2[1] = s2 * i2 + c3 * n2, t2[2] = o2 * i2 + h3 * n2, t2[3] = l2 * i2 + p3 * n2, t2[4] = u2 * i2 - a2 * n2, t2[5] = c3 * i2 - s2 * n2, t2[6] = h3 * i2 - o2 * n2, t2[7] = p3 * i2 - l2 * n2, t2; + var n2 = Math.sin(r2), i2 = Math.cos(r2), a2 = e2[0], o2 = e2[1], s2 = e2[2], u2 = e2[3], l2 = e2[4], p3 = e2[5], c3 = e2[6], h3 = e2[7]; + return e2 !== t2 && (t2[8] = e2[8], t2[9] = e2[9], t2[10] = e2[10], t2[11] = e2[11], t2[12] = e2[12], t2[13] = e2[13], t2[14] = e2[14], t2[15] = e2[15]), t2[0] = a2 * i2 + l2 * n2, t2[1] = o2 * i2 + p3 * n2, t2[2] = s2 * i2 + c3 * n2, t2[3] = u2 * i2 + h3 * n2, t2[4] = l2 * i2 - a2 * n2, t2[5] = p3 * i2 - o2 * n2, t2[6] = c3 * i2 - s2 * n2, t2[7] = h3 * i2 - u2 * n2, t2; }, t.scale = function(t2, e2, r2) { var n2 = r2[0], i2 = r2[1], a2 = r2[2]; return t2[0] = e2[0] * n2, t2[1] = e2[1] * n2, t2[2] = e2[2] * n2, t2[3] = e2[3] * n2, t2[4] = e2[4] * i2, t2[5] = e2[5] * i2, t2[6] = e2[6] * i2, t2[7] = e2[7] * i2, t2[8] = e2[8] * a2, t2[9] = e2[9] * a2, t2[10] = e2[10] * a2, t2[11] = e2[11] * a2, t2[12] = e2[12], t2[13] = e2[13], t2[14] = e2[14], t2[15] = e2[15], t2; }, t.scale$1 = function(t2, e2, r2) { + return t2[0] = e2[0] * r2, t2[1] = e2[1] * r2, t2[2] = e2[2] * r2, t2[3] = e2[3] * r2, t2; + }, t.scale$2 = function(t2, e2, r2) { return t2[0] = e2[0] * r2, t2[1] = e2[1] * r2, t2[2] = e2[2] * r2, t2; }, t.setCacheLimits = function(t2, e2) { - P = t2, V2 = e2; - }, t.setRTLTextPlugin = function(t2, e2, r2 = false) { - if (Zn === Un || Zn === qn || Zn === jn) + st = t2, ut = e2; + }, t.setRTLTextPlugin = function(t2, e2, r2) { + if (void 0 === r2 && (r2 = false), "deferred" === Qn || "loading" === Qn || "loaded" === Qn) throw new Error("setRTLTextPlugin cannot be called multiple times."); - Kn = k.resolveURL(t2), Zn = Un, Nn = e2, Jn(), r2 || Hn(); - }, t.spec = nt, t.sphericalToCartesian = function([t2, e2, r2]) { - return e2 += 90, e2 *= Math.PI / 180, r2 *= Math.PI / 180, { x: t2 * Math.cos(e2) * Math.sin(r2), y: t2 * Math.sin(e2) * Math.sin(r2), z: t2 * Math.cos(r2) }; + ti = O2.resolveURL(t2), Qn = "deferred", Wn = e2, ri(), r2 || ai(); + }, t.sphericalToCartesian = function(t2) { + var e2 = t2[0], r2 = t2[1], n2 = t2[2]; + return r2 += 90, r2 *= Math.PI / 180, n2 *= Math.PI / 180, { x: e2 * Math.cos(r2) * Math.sin(n2), y: e2 * Math.sin(r2) * Math.sin(n2), z: e2 * Math.cos(n2) }; }, t.sqrLen = function(t2) { var e2 = t2[0], r2 = t2[1]; return e2 * e2 + r2 * r2; - }, t.sub = function(t2, e2, r2) { + }, t.styleSpec = Et, t.sub = function(t2, e2, r2) { return t2[0] = e2[0] - r2[0], t2[1] = e2[1] - r2[1], t2[2] = e2[2] - r2[2], t2; - }, t.toEvaluationFeature = Ka, t.transformMat3 = function(t2, e2, r2) { + }, t.symbolSize = Ru, t.transformMat3 = function(t2, e2, r2) { var n2 = e2[0], i2 = e2[1], a2 = e2[2]; return t2[0] = n2 * r2[0] + i2 * r2[3] + a2 * r2[6], t2[1] = n2 * r2[1] + i2 * r2[4] + a2 * r2[7], t2[2] = n2 * r2[2] + i2 * r2[5] + a2 * r2[8], t2; - }, t.transformMat4 = bs, t.transformMat4$1 = function(t2, e2, r2) { - var n2 = e2[0], i2 = e2[1]; - return t2[0] = r2[0] * n2 + r2[4] * i2 + r2[12], t2[1] = r2[1] * n2 + r2[5] * i2 + r2[13], t2; - }, t.translate = function(t2, e2, r2) { - var n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, d2, y3 = r2[0], m2 = r2[1], g2 = r2[2]; - return e2 === t2 ? (t2[12] = e2[0] * y3 + e2[4] * m2 + e2[8] * g2 + e2[12], t2[13] = e2[1] * y3 + e2[5] * m2 + e2[9] * g2 + e2[13], t2[14] = e2[2] * y3 + e2[6] * m2 + e2[10] * g2 + e2[14], t2[15] = e2[3] * y3 + e2[7] * m2 + e2[11] * g2 + e2[15]) : (i2 = e2[1], a2 = e2[2], s2 = e2[3], o2 = e2[4], l2 = e2[5], u2 = e2[6], c3 = e2[7], h3 = e2[8], p3 = e2[9], f2 = e2[10], d2 = e2[11], t2[0] = n2 = e2[0], t2[1] = i2, t2[2] = a2, t2[3] = s2, t2[4] = o2, t2[5] = l2, t2[6] = u2, t2[7] = c3, t2[8] = h3, t2[9] = p3, t2[10] = f2, t2[11] = d2, t2[12] = n2 * y3 + o2 * m2 + h3 * g2 + e2[12], t2[13] = i2 * y3 + l2 * m2 + p3 * g2 + e2[13], t2[14] = a2 * y3 + u2 * m2 + f2 * g2 + e2[14], t2[15] = s2 * y3 + c3 * m2 + d2 * g2 + e2[15]), t2; - }, t.triggerPluginCompletionEvent = Gn, t.unicodeBlockLookup = Vn, t.uniqueId = function() { - return l++; - }, t.validateCustomStyleLayer = function(t2) { - const e2 = [], r2 = t2.id; - return void 0 === r2 && e2.push({ message: `layers.${r2}: missing required property "id"` }), void 0 === t2.render && e2.push({ message: `layers.${r2}: missing required method "render"` }), t2.renderingMode && "2d" !== t2.renderingMode && "3d" !== t2.renderingMode && e2.push({ message: `layers.${r2}: property "renderingMode" must be either "2d" or "3d"` }), e2; - }, t.validateLight = wn, t.validateStyle = bn, t.vectorTile = _o, t.warnOnce = d, t.wrap = s; + }, t.transformMat4 = po, t.translate = function(t2, e2, r2) { + var n2, i2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2 = r2[0], m2 = r2[1], v3 = r2[2]; + return e2 === t2 ? (t2[12] = e2[0] * d2 + e2[4] * m2 + e2[8] * v3 + e2[12], t2[13] = e2[1] * d2 + e2[5] * m2 + e2[9] * v3 + e2[13], t2[14] = e2[2] * d2 + e2[6] * m2 + e2[10] * v3 + e2[14], t2[15] = e2[3] * d2 + e2[7] * m2 + e2[11] * v3 + e2[15]) : (i2 = e2[1], a2 = e2[2], o2 = e2[3], s2 = e2[4], u2 = e2[5], l2 = e2[6], p3 = e2[7], c3 = e2[8], h3 = e2[9], f2 = e2[10], y3 = e2[11], t2[0] = n2 = e2[0], t2[1] = i2, t2[2] = a2, t2[3] = o2, t2[4] = s2, t2[5] = u2, t2[6] = l2, t2[7] = p3, t2[8] = c3, t2[9] = h3, t2[10] = f2, t2[11] = y3, t2[12] = n2 * d2 + s2 * m2 + c3 * v3 + e2[12], t2[13] = i2 * d2 + u2 * m2 + h3 * v3 + e2[13], t2[14] = a2 * d2 + l2 * m2 + f2 * v3 + e2[14], t2[15] = o2 * d2 + p3 * m2 + y3 * v3 + e2[15]), t2; + }, t.triggerPluginCompletionEvent = ei, t.uniqueId = y2, t.validateCustomStyleLayer = function(t2) { + var e2 = [], r2 = t2.id; + return void 0 === r2 && e2.push({ message: "layers." + r2 + ': missing required property "id"' }), void 0 === t2.render && e2.push({ message: "layers." + r2 + ': missing required method "render"' }), t2.renderingMode && "2d" !== t2.renderingMode && "3d" !== t2.renderingMode && e2.push({ message: "layers." + r2 + ': property "renderingMode" must be either "2d" or "3d"' }), e2; + }, t.validateLight = En, t.validateStyle = Cn, t.values = function(t2) { + var e2 = []; + for (var r2 in t2) + e2.push(t2[r2]); + return e2; + }, t.vectorTile = bs, t.version = "1.13.3", t.warnOnce = A2, t.webpSupported = U, t.window = o, t.wrap = c2; }); define(["./shared"], function(e) { function t(e2) { - const o2 = typeof e2; - if ("number" === o2 || "boolean" === o2 || "string" === o2 || null == e2) + var r2 = typeof e2; + if ("number" === r2 || "boolean" === r2 || "string" === r2 || null == e2) return JSON.stringify(e2); if (Array.isArray(e2)) { - let o3 = "["; - for (const i3 of e2) - o3 += `${t(i3)},`; - return `${o3}]`; - } - const i2 = Object.keys(e2).sort(); - let r2 = "{"; - for (let o3 = 0; o3 < i2.length; o3++) - r2 += `${JSON.stringify(i2[o3])}:${t(e2[i2[o3]])},`; - return `${r2}}`; - } - function o(o2) { - let i2 = ""; - for (const r2 of e.refProperties) - i2 += `/${t(o2[r2])}`; + for (var i2 = "[", o2 = 0, n2 = e2; o2 < n2.length; o2 += 1) + i2 += t(n2[o2]) + ","; + return i2 + "]"; + } + for (var a2 = Object.keys(e2).sort(), s2 = "{", l2 = 0; l2 < a2.length; l2++) + s2 += JSON.stringify(a2[l2]) + ":" + t(e2[a2[l2]]) + ","; + return s2 + "}"; + } + function r(r2) { + for (var i2 = "", o2 = 0, n2 = e.refProperties; o2 < n2.length; o2 += 1) + i2 += "/" + t(r2[n2[o2]]); return i2; } - class i { - constructor(e2) { - this.keyCache = {}, e2 && this.replace(e2); - } - replace(e2) { - this._layerConfigs = {}, this._layers = {}, this.update(e2, []); - } - update(t2, i2) { - for (const o2 of t2) { - this._layerConfigs[o2.id] = o2; - const t3 = this._layers[o2.id] = e.createStyleLayer(o2); - t3._featureFilter = e.createFilter(t3.filter), this.keyCache[o2.id] && delete this.keyCache[o2.id]; - } - for (const e2 of i2) - delete this.keyCache[e2], delete this._layerConfigs[e2], delete this._layers[e2]; - this.familiesBySource = {}; - const r2 = function(e2, t3) { - const i3 = {}; - for (let r4 = 0; r4 < e2.length; r4++) { - const n2 = t3 && t3[e2[r4].id] || o(e2[r4]); - t3 && (t3[e2[r4].id] = n2); - let s2 = i3[n2]; - s2 || (s2 = i3[n2] = []), s2.push(e2[r4]); - } - const r3 = []; - for (const e3 in i3) - r3.push(i3[e3]); - return r3; - }(Object.values(this._layerConfigs), this.keyCache); - for (const e2 of r2) { - const t3 = e2.map((e3) => this._layers[e3.id]), o2 = t3[0]; - if ("none" === o2.visibility) - continue; - const i3 = o2.source || ""; - let r3 = this.familiesBySource[i3]; - r3 || (r3 = this.familiesBySource[i3] = {}); - const n2 = o2.sourceLayer || "_geojsonTileLayer"; - let s2 = r3[n2]; - s2 || (s2 = r3[n2] = []), s2.push(t3); - } - } - } - class r { - constructor(t2) { - const o2 = {}, i2 = []; - for (const e2 in t2) { - const r3 = t2[e2], n3 = o2[e2] = {}; - for (const e3 in r3) { - const t3 = r3[+e3]; - if (!t3 || 0 === t3.bitmap.width || 0 === t3.bitmap.height) - continue; - const o3 = { x: 0, y: 0, w: t3.bitmap.width + 2, h: t3.bitmap.height + 2 }; - i2.push(o3), n3[e3] = { rect: o3, metrics: t3.metrics }; - } - } - const { w: r2, h: n2 } = e.potpack(i2), s2 = new e.AlphaImage({ width: r2 || 1, height: n2 || 1 }); - for (const i3 in t2) { - const r3 = t2[i3]; - for (const t3 in r3) { - const n3 = r3[+t3]; - if (!n3 || 0 === n3.bitmap.width || 0 === n3.bitmap.height) - continue; - const a2 = o2[i3][t3].rect; - e.AlphaImage.copy(n3.bitmap, s2, { x: 0, y: 0 }, { x: a2.x + 1, y: a2.y + 1 }, n3.bitmap); - } + var i = function(e2) { + this.keyCache = {}, e2 && this.replace(e2); + }; + i.prototype.replace = function(e2) { + this._layerConfigs = {}, this._layers = {}, this.update(e2, []); + }, i.prototype.update = function(t2, i2) { + for (var o2 = this, n2 = 0, a2 = t2; n2 < a2.length; n2 += 1) { + var s2 = a2[n2]; + this._layerConfigs[s2.id] = s2; + var l2 = this._layers[s2.id] = e.createStyleLayer(s2); + l2._featureFilter = e.featureFilter(l2.filter), this.keyCache[s2.id] && delete this.keyCache[s2.id]; + } + for (var u2 = 0, h3 = i2; u2 < h3.length; u2 += 1) { + var c3 = h3[u2]; + delete this.keyCache[c3], delete this._layerConfigs[c3], delete this._layers[c3]; + } + this.familiesBySource = {}; + for (var p3 = 0, f2 = function(e2, t3) { + for (var i3 = {}, o3 = 0; o3 < e2.length; o3++) { + var n3 = t3 && t3[e2[o3].id] || r(e2[o3]); + t3 && (t3[e2[o3].id] = n3); + var a3 = i3[n3]; + a3 || (a3 = i3[n3] = []), a3.push(e2[o3]); + } + var s3 = []; + for (var l3 in i3) + s3.push(i3[l3]); + return s3; + }(e.values(this._layerConfigs), this.keyCache); p3 < f2.length; p3 += 1) { + var d2 = f2[p3].map(function(e2) { + return o2._layers[e2.id]; + }), g2 = d2[0]; + if ("none" !== g2.visibility) { + var v3 = g2.source || "", m2 = this.familiesBySource[v3]; + m2 || (m2 = this.familiesBySource[v3] = {}); + var y3 = g2.sourceLayer || "_geojsonTileLayer", x2 = m2[y3]; + x2 || (x2 = m2[y3] = []), x2.push(d2); } - this.image = s2, this.positions = o2; - } - } - e.register("GlyphAtlas", r); - class n { - constructor(t2) { - this.tileID = new e.OverscaledTileID(t2.tileID.overscaledZ, t2.tileID.wrap, t2.tileID.canonical.z, t2.tileID.canonical.x, t2.tileID.canonical.y), this.uid = t2.uid, this.zoom = t2.zoom, this.pixelRatio = t2.pixelRatio, this.tileSize = t2.tileSize, this.source = t2.source, this.overscaling = this.tileID.overscaleFactor(), this.showCollisionBoxes = t2.showCollisionBoxes, this.collectResourceTiming = !!t2.collectResourceTiming, this.returnDependencies = !!t2.returnDependencies, this.promoteId = t2.promoteId; } - parse(t2, o2, i2, n2, a2) { - this.status = "parsing", this.data = t2, this.collisionBoxArray = new e.CollisionBoxArray(); - const l2 = new e.DictionaryCoder(Object.keys(t2.layers).sort()), c3 = new e.FeatureIndex(this.tileID, this.promoteId); - c3.bucketLayerIDs = []; - const u2 = {}, h3 = { featureIndex: c3, iconDependencies: {}, patternDependencies: {}, glyphDependencies: {}, availableImages: i2 }, p3 = o2.familiesBySource[this.source]; - for (const o3 in p3) { - const r2 = t2.layers[o3]; - if (!r2) - continue; - 1 === r2.version && e.warnOnce(`Vector tile source "${this.source}" layer "${o3}" does not use vector tile spec v2 and therefore may have some rendering errors.`); - const n3 = l2.encode(o3), a3 = []; - for (let e2 = 0; e2 < r2.length; e2++) { - const t3 = r2.feature(e2), i3 = c3.getId(t3, o3); - a3.push({ feature: t3, id: i3, index: e2, sourceLayerIndex: n3 }); - } - for (const t3 of p3[o3]) { - const o4 = t3[0]; - o4.source !== this.source && e.warnOnce(`layer.source = ${o4.source} does not equal this.source = ${this.source}`), o4.minzoom && this.zoom < Math.floor(o4.minzoom) || o4.maxzoom && this.zoom >= o4.maxzoom || "none" !== o4.visibility && (s(t3, this.zoom, i2), (u2[o4.id] = o4.createBucket({ index: c3.bucketLayerIDs.length, layers: t3, zoom: this.zoom, pixelRatio: this.pixelRatio, overscaling: this.overscaling, collisionBoxArray: this.collisionBoxArray, sourceLayerIndex: n3, sourceID: this.source })).populate(a3, h3, this.tileID.canonical), c3.bucketLayerIDs.push(t3.map((e2) => e2.id))); + }; + var o = function(t2) { + var r2 = {}, i2 = []; + for (var o2 in t2) { + var n2 = t2[o2], a2 = r2[o2] = {}; + for (var s2 in n2) { + var l2 = n2[+s2]; + if (l2 && 0 !== l2.bitmap.width && 0 !== l2.bitmap.height) { + var u2 = { x: 0, y: 0, w: l2.bitmap.width + 2, h: l2.bitmap.height + 2 }; + i2.push(u2), a2[s2] = { rect: u2, metrics: l2.metrics }; } } - let f2, d2, g2, m2; - const y3 = e.mapObject(h3.glyphDependencies, (e2) => Object.keys(e2).map(Number)); - Object.keys(y3).length ? n2.send("getGlyphs", { uid: this.uid, stacks: y3 }, (e2, t3) => { - f2 || (f2 = e2, d2 = t3, w2.call(this)); - }) : d2 = {}; - const v3 = Object.keys(h3.iconDependencies); - v3.length ? n2.send("getImages", { icons: v3, source: this.source, tileID: this.tileID, type: "icons" }, (e2, t3) => { - f2 || (f2 = e2, g2 = t3, w2.call(this)); - }) : g2 = {}; - const x2 = Object.keys(h3.patternDependencies); - function w2() { - if (f2) - return a2(f2); - if (d2 && g2 && m2) { - const t3 = new r(d2), o3 = new e.ImageAtlas(g2, m2); - for (const r2 in u2) { - const n3 = u2[r2]; - n3 instanceof e.SymbolBucket ? (s(n3.layers, this.zoom, i2), e.performSymbolLayout({ bucket: n3, glyphMap: d2, glyphPositions: t3.positions, imageMap: g2, imagePositions: o3.iconPositions, showCollisionBoxes: this.showCollisionBoxes, canonical: this.tileID.canonical })) : n3.hasPattern && (n3 instanceof e.LineBucket || n3 instanceof e.FillBucket || n3 instanceof e.FillExtrusionBucket) && (s(n3.layers, this.zoom, i2), n3.addFeatures(h3, this.tileID.canonical, o3.patternPositions)); - } - this.status = "done", a2(null, { buckets: Object.values(u2).filter((e2) => !e2.isEmpty()), featureIndex: c3, collisionBoxArray: this.collisionBoxArray, glyphAtlasImage: t3.image, imageAtlas: o3, glyphMap: this.returnDependencies ? d2 : null, iconMap: this.returnDependencies ? g2 : null, glyphPositions: this.returnDependencies ? t3.positions : null }); + } + var h3 = e.potpack(i2), c3 = new e.AlphaImage({ width: h3.w || 1, height: h3.h || 1 }); + for (var p3 in t2) { + var f2 = t2[p3]; + for (var d2 in f2) { + var g2 = f2[+d2]; + if (g2 && 0 !== g2.bitmap.width && 0 !== g2.bitmap.height) { + var v3 = r2[p3][d2].rect; + e.AlphaImage.copy(g2.bitmap, c3, { x: 0, y: 0 }, { x: v3.x + 1, y: v3.y + 1 }, g2.bitmap); } } - x2.length ? n2.send("getImages", { icons: x2, source: this.source, tileID: this.tileID, type: "patterns" }, (e2, t3) => { - f2 || (f2 = e2, m2 = t3, w2.call(this)); - }) : m2 = {}, w2.call(this); } + this.image = c3, this.positions = r2; + }; + e.register("GlyphAtlas", o); + var n = function(t2) { + this.tileID = new e.OverscaledTileID(t2.tileID.overscaledZ, t2.tileID.wrap, t2.tileID.canonical.z, t2.tileID.canonical.x, t2.tileID.canonical.y), this.uid = t2.uid, this.zoom = t2.zoom, this.pixelRatio = t2.pixelRatio, this.tileSize = t2.tileSize, this.source = t2.source, this.overscaling = this.tileID.overscaleFactor(), this.showCollisionBoxes = t2.showCollisionBoxes, this.collectResourceTiming = !!t2.collectResourceTiming, this.returnDependencies = !!t2.returnDependencies, this.promoteId = t2.promoteId; + }; + function a(t2, r2, i2) { + for (var o2 = new e.EvaluationParameters(r2), n2 = 0, a2 = t2; n2 < a2.length; n2 += 1) + a2[n2].recalculate(o2, i2); } - function s(t2, o2, i2) { - const r2 = new e.EvaluationParameters(o2); - for (const e2 of t2) - e2.recalculate(r2, i2); - } - function a(t2, o2) { - const i2 = e.getArrayBuffer(t2.request, (t3, i3, r2, n2) => { - t3 ? o2(t3) : i3 && o2(null, { vectorTile: new e.vectorTile.VectorTile(new e.pbf(i3)), rawData: i3, cacheControl: r2, expires: n2 }); + function s(t2, r2) { + var i2 = e.getArrayBuffer(t2.request, function(t3, i3, o2, n2) { + t3 ? r2(t3) : i3 && r2(null, { vectorTile: new e.vectorTile.VectorTile(new e.pbf(i3)), rawData: i3, cacheControl: o2, expires: n2 }); }); - return () => { - i2.cancel(), o2(); + return function() { + i2.cancel(), r2(); }; } - class l { - constructor(e2, t2, o2, i2) { - this.actor = e2, this.layerIndex = t2, this.availableImages = o2, this.loadVectorData = i2 || a, this.loading = {}, this.loaded = {}; - } - loadTile(t2, o2) { - const i2 = t2.uid; - this.loading || (this.loading = {}); - const r2 = !!(t2 && t2.request && t2.request.collectResourceTiming) && new e.RequestPerformance(t2.request), s2 = this.loading[i2] = new n(t2); - s2.abort = this.loadVectorData(t2, (t3, n2) => { - if (delete this.loading[i2], t3 || !n2) - return s2.status = "done", this.loaded[i2] = s2, o2(t3); - const a2 = n2.rawData, l2 = {}; - n2.expires && (l2.expires = n2.expires), n2.cacheControl && (l2.cacheControl = n2.cacheControl); - const c3 = {}; - if (r2) { - const e2 = r2.finish(); - e2 && (c3.resourceTiming = JSON.parse(JSON.stringify(e2))); + n.prototype.parse = function(t2, r2, i2, n2, s2) { + var l2 = this; + this.status = "parsing", this.data = t2, this.collisionBoxArray = new e.CollisionBoxArray(); + var u2 = new e.DictionaryCoder(Object.keys(t2.layers).sort()), h3 = new e.FeatureIndex(this.tileID, this.promoteId); + h3.bucketLayerIDs = []; + var c3, p3, f2, d2, g2 = {}, v3 = { featureIndex: h3, iconDependencies: {}, patternDependencies: {}, glyphDependencies: {}, availableImages: i2 }, m2 = r2.familiesBySource[this.source]; + for (var y3 in m2) { + var x2 = t2.layers[y3]; + if (x2) { + 1 === x2.version && e.warnOnce('Vector tile source "' + this.source + '" layer "' + y3 + '" does not use vector tile spec v2 and therefore may have some rendering errors.'); + for (var w2 = u2.encode(y3), S2 = [], I3 = 0; I3 < x2.length; I3++) { + var M2 = x2.feature(I3), b2 = h3.getId(M2, y3); + S2.push({ feature: M2, id: b2, index: I3, sourceLayerIndex: w2 }); } - s2.vectorTile = n2.vectorTile, s2.parse(n2.vectorTile, this.layerIndex, this.availableImages, this.actor, (t4, i3) => { - if (t4 || !i3) - return o2(t4); - o2(null, e.extend({ rawTileData: a2.slice(0) }, i3, l2, c3)); - }), this.loaded = this.loaded || {}, this.loaded[i2] = s2; - }); + for (var _24 = 0, k2 = m2[y3]; _24 < k2.length; _24 += 1) { + var P2 = k2[_24], T2 = P2[0]; + T2.minzoom && this.zoom < Math.floor(T2.minzoom) || T2.maxzoom && this.zoom >= T2.maxzoom || "none" !== T2.visibility && (a(P2, this.zoom, i2), (g2[T2.id] = T2.createBucket({ index: h3.bucketLayerIDs.length, layers: P2, zoom: this.zoom, pixelRatio: this.pixelRatio, overscaling: this.overscaling, collisionBoxArray: this.collisionBoxArray, sourceLayerIndex: w2, sourceID: this.source })).populate(S2, v3, this.tileID.canonical), h3.bucketLayerIDs.push(P2.map(function(e2) { + return e2.id; + }))); + } + } } - reloadTile(e2, t2) { - const o2 = this.loaded, i2 = e2.uid, r2 = this; - if (o2 && o2[i2]) { - const n2 = o2[i2]; - n2.showCollisionBoxes = e2.showCollisionBoxes; - const s2 = (e3, o3) => { - const i3 = n2.reloadCallback; - i3 && (delete n2.reloadCallback, n2.parse(n2.vectorTile, r2.layerIndex, this.availableImages, r2.actor, i3)), t2(e3, o3); - }; - "parsing" === n2.status ? n2.reloadCallback = s2 : "done" === n2.status && (n2.vectorTile ? n2.parse(n2.vectorTile, this.layerIndex, this.availableImages, this.actor, s2) : s2()); - } - } - abortTile(e2, t2) { - const o2 = this.loading, i2 = e2.uid; - o2 && o2[i2] && o2[i2].abort && (o2[i2].abort(), delete o2[i2]), t2(); - } - removeTile(e2, t2) { - const o2 = this.loaded, i2 = e2.uid; - o2 && o2[i2] && delete o2[i2], t2(); - } - } - class c2 { - constructor() { - this.loaded = {}; - } - loadTile(t2, o2) { - const { uid: i2, encoding: r2, rawImageData: n2 } = t2, s2 = e.isImageBitmap(n2) ? this.getImageData(n2) : n2, a2 = new e.DEMData(i2, s2, r2); - this.loaded = this.loaded || {}, this.loaded[i2] = a2, o2(null, a2); - } - getImageData(t2) { - this.offscreenCanvas && this.offscreenCanvasContext || (this.offscreenCanvas = new OffscreenCanvas(t2.width, t2.height), this.offscreenCanvasContext = this.offscreenCanvas.getContext("2d")), this.offscreenCanvas.width = t2.width, this.offscreenCanvas.height = t2.height, this.offscreenCanvasContext.drawImage(t2, 0, 0, t2.width, t2.height); - const o2 = this.offscreenCanvasContext.getImageData(-1, -1, t2.width + 2, t2.height + 2); - return this.offscreenCanvasContext.clearRect(0, 0, this.offscreenCanvas.width, this.offscreenCanvas.height), new e.RGBAImage({ width: o2.width, height: o2.height }, o2.data); - } - removeTile(e2) { - const t2 = this.loaded, o2 = e2.uid; - t2 && t2[o2] && delete t2[o2]; - } - } - var u = function e2(t2, o2) { - var i2, r2 = t2 && t2.type; - if ("FeatureCollection" === r2) - for (i2 = 0; i2 < t2.features.length; i2++) - e2(t2.features[i2], o2); - else if ("GeometryCollection" === r2) - for (i2 = 0; i2 < t2.geometries.length; i2++) - e2(t2.geometries[i2], o2); - else if ("Feature" === r2) - e2(t2.geometry, o2); - else if ("Polygon" === r2) - h2(t2.coordinates, o2); - else if ("MultiPolygon" === r2) - for (i2 = 0; i2 < t2.coordinates.length; i2++) - h2(t2.coordinates[i2], o2); - return t2; + var C2 = e.mapObject(v3.glyphDependencies, function(e2) { + return Object.keys(e2).map(Number); + }); + Object.keys(C2).length ? n2.send("getGlyphs", { uid: this.uid, stacks: C2 }, function(e2, t3) { + c3 || (c3 = e2, p3 = t3, z2.call(l2)); + }) : p3 = {}; + var D2 = Object.keys(v3.iconDependencies); + D2.length ? n2.send("getImages", { icons: D2, source: this.source, tileID: this.tileID, type: "icons" }, function(e2, t3) { + c3 || (c3 = e2, f2 = t3, z2.call(l2)); + }) : f2 = {}; + var L2 = Object.keys(v3.patternDependencies); + function z2() { + if (c3) + return s2(c3); + if (p3 && f2 && d2) { + var t3 = new o(p3), r3 = new e.ImageAtlas(f2, d2); + for (var n3 in g2) { + var l3 = g2[n3]; + l3 instanceof e.SymbolBucket ? (a(l3.layers, this.zoom, i2), e.performSymbolLayout(l3, p3, t3.positions, f2, r3.iconPositions, this.showCollisionBoxes, this.tileID.canonical)) : l3.hasPattern && (l3 instanceof e.LineBucket || l3 instanceof e.FillBucket || l3 instanceof e.FillExtrusionBucket) && (a(l3.layers, this.zoom, i2), l3.addFeatures(v3, this.tileID.canonical, r3.patternPositions)); + } + this.status = "done", s2(null, { buckets: e.values(g2).filter(function(e2) { + return !e2.isEmpty(); + }), featureIndex: h3, collisionBoxArray: this.collisionBoxArray, glyphAtlasImage: t3.image, imageAtlas: r3, glyphMap: this.returnDependencies ? p3 : null, iconMap: this.returnDependencies ? f2 : null, glyphPositions: this.returnDependencies ? t3.positions : null }); + } + } + L2.length ? n2.send("getImages", { icons: L2, source: this.source, tileID: this.tileID, type: "patterns" }, function(e2, t3) { + c3 || (c3 = e2, d2 = t3, z2.call(l2)); + }) : d2 = {}, z2.call(this); + }; + var l = function(e2, t2, r2, i2) { + this.actor = e2, this.layerIndex = t2, this.availableImages = r2, this.loadVectorData = i2 || s, this.loading = {}, this.loaded = {}; + }; + l.prototype.loadTile = function(t2, r2) { + var i2 = this, o2 = t2.uid; + this.loading || (this.loading = {}); + var a2 = !!(t2 && t2.request && t2.request.collectResourceTiming) && new e.RequestPerformance(t2.request), s2 = this.loading[o2] = new n(t2); + s2.abort = this.loadVectorData(t2, function(t3, n2) { + if (delete i2.loading[o2], t3 || !n2) + return s2.status = "done", i2.loaded[o2] = s2, r2(t3); + var l2 = n2.rawData, u2 = {}; + n2.expires && (u2.expires = n2.expires), n2.cacheControl && (u2.cacheControl = n2.cacheControl); + var h3 = {}; + if (a2) { + var c3 = a2.finish(); + c3 && (h3.resourceTiming = JSON.parse(JSON.stringify(c3))); + } + s2.vectorTile = n2.vectorTile, s2.parse(n2.vectorTile, i2.layerIndex, i2.availableImages, i2.actor, function(t4, i3) { + if (t4 || !i3) + return r2(t4); + r2(null, e.extend({ rawTileData: l2.slice(0) }, i3, u2, h3)); + }), i2.loaded = i2.loaded || {}, i2.loaded[o2] = s2; + }); + }, l.prototype.reloadTile = function(e2, t2) { + var r2 = this, i2 = this.loaded, o2 = e2.uid, n2 = this; + if (i2 && i2[o2]) { + var a2 = i2[o2]; + a2.showCollisionBoxes = e2.showCollisionBoxes; + var s2 = function(e3, i3) { + var o3 = a2.reloadCallback; + o3 && (delete a2.reloadCallback, a2.parse(a2.vectorTile, n2.layerIndex, r2.availableImages, n2.actor, o3)), t2(e3, i3); + }; + "parsing" === a2.status ? a2.reloadCallback = s2 : "done" === a2.status && (a2.vectorTile ? a2.parse(a2.vectorTile, this.layerIndex, this.availableImages, this.actor, s2) : s2()); + } + }, l.prototype.abortTile = function(e2, t2) { + var r2 = this.loading, i2 = e2.uid; + r2 && r2[i2] && r2[i2].abort && (r2[i2].abort(), delete r2[i2]), t2(); + }, l.prototype.removeTile = function(e2, t2) { + var r2 = this.loaded, i2 = e2.uid; + r2 && r2[i2] && delete r2[i2], t2(); + }; + var u = e.window.ImageBitmap, h2 = function() { + this.loaded = {}; }; - function h2(e2, t2) { + function c2(e2, t2) { if (0 !== e2.length) { p2(e2[0], t2); - for (var o2 = 1; o2 < e2.length; o2++) - p2(e2[o2], !t2); + for (var r2 = 1; r2 < e2.length; r2++) + p2(e2[r2], !t2); } } function p2(e2, t2) { - for (var o2 = 0, i2 = 0, r2 = 0, n2 = e2.length, s2 = n2 - 1; r2 < n2; s2 = r2++) { - var a2 = (e2[r2][0] - e2[s2][0]) * (e2[s2][1] + e2[r2][1]), l2 = o2 + a2; - i2 += Math.abs(o2) >= Math.abs(a2) ? o2 - l2 + a2 : a2 - l2 + o2, o2 = l2; - } - o2 + i2 >= 0 != !!t2 && e2.reverse(); - } - const f = e.vectorTile.VectorTileFeature.prototype.toGeoJSON; - class d { - constructor(t2) { - this._feature = t2, this.extent = e.EXTENT, this.type = t2.type, this.properties = t2.tags, "id" in t2 && !isNaN(t2.id) && (this.id = parseInt(t2.id, 10)); - } - loadGeometry() { - if (1 === this._feature.type) { - const t2 = []; - for (const o2 of this._feature.geometry) - t2.push([new e.pointGeometry(o2[0], o2[1])]); - return t2; - } - { - const t2 = []; - for (const o2 of this._feature.geometry) { - const i2 = []; - for (const t3 of o2) - i2.push(new e.pointGeometry(t3[0], t3[1])); - t2.push(i2); - } - return t2; + for (var r2 = 0, i2 = 0, o2 = 0, n2 = e2.length, a2 = n2 - 1; o2 < n2; a2 = o2++) { + var s2 = (e2[o2][0] - e2[a2][0]) * (e2[a2][1] + e2[o2][1]), l2 = r2 + s2; + i2 += Math.abs(r2) >= Math.abs(s2) ? r2 - l2 + s2 : s2 - l2 + r2, r2 = l2; + } + r2 + i2 >= 0 != !!t2 && e2.reverse(); + } + h2.prototype.loadTile = function(t2, r2) { + var i2 = t2.uid, o2 = t2.encoding, n2 = t2.rawImageData, a2 = u && n2 instanceof u ? this.getImageData(n2) : n2, s2 = new e.DEMData(i2, a2, o2); + this.loaded = this.loaded || {}, this.loaded[i2] = s2, r2(null, s2); + }, h2.prototype.getImageData = function(t2) { + this.offscreenCanvas && this.offscreenCanvasContext || (this.offscreenCanvas = new OffscreenCanvas(t2.width, t2.height), this.offscreenCanvasContext = this.offscreenCanvas.getContext("2d")), this.offscreenCanvas.width = t2.width, this.offscreenCanvas.height = t2.height, this.offscreenCanvasContext.drawImage(t2, 0, 0, t2.width, t2.height); + var r2 = this.offscreenCanvasContext.getImageData(-1, -1, t2.width + 2, t2.height + 2); + return this.offscreenCanvasContext.clearRect(0, 0, this.offscreenCanvas.width, this.offscreenCanvas.height), new e.RGBAImage({ width: r2.width, height: r2.height }, r2.data); + }, h2.prototype.removeTile = function(e2) { + var t2 = this.loaded, r2 = e2.uid; + t2 && t2[r2] && delete t2[r2]; + }; + var f = e.vectorTile.VectorTileFeature.prototype.toGeoJSON, d = function(t2) { + this._feature = t2, this.extent = e.EXTENT, this.type = t2.type, this.properties = t2.tags, "id" in t2 && !isNaN(t2.id) && (this.id = parseInt(t2.id, 10)); + }; + d.prototype.loadGeometry = function() { + if (1 === this._feature.type) { + for (var t2 = [], r2 = 0, i2 = this._feature.geometry; r2 < i2.length; r2 += 1) { + var o2 = i2[r2]; + t2.push([new e.Point$1(o2[0], o2[1])]); } + return t2; } - toGeoJSON(e2, t2, o2) { - return f.call(this, e2, t2, o2); - } - } - class g { - constructor(t2) { - this.layers = { _geojsonTileLayer: this }, this.name = "_geojsonTileLayer", this.extent = e.EXTENT, this.length = t2.length, this._features = t2; - } - feature(e2) { - return new d(this._features[e2]); + for (var n2 = [], a2 = 0, s2 = this._feature.geometry; a2 < s2.length; a2 += 1) { + for (var l2 = [], u2 = 0, h3 = s2[a2]; u2 < h3.length; u2 += 1) { + var c3 = h3[u2]; + l2.push(new e.Point$1(c3[0], c3[1])); + } + n2.push(l2); } - } - var m = { exports: {} }, y2 = e.pointGeometry, v2 = e.vectorTile.VectorTileFeature, x = w; - function w(e2, t2) { + return n2; + }, d.prototype.toGeoJSON = function(e2, t2, r2) { + return f.call(this, e2, t2, r2); + }; + var g = function(t2) { + this.layers = { _geojsonTileLayer: this }, this.name = "_geojsonTileLayer", this.extent = e.EXTENT, this.length = t2.length, this._features = t2; + }; + g.prototype.feature = function(e2) { + return new d(this._features[e2]); + }; + var v2 = e.vectorTile.VectorTileFeature, m = y2; + function y2(e2, t2) { this.options = t2 || {}, this.features = e2, this.length = e2.length; } - function S(e2, t2) { + function x(e2, t2) { this.id = "number" == typeof e2.id ? e2.id : void 0, this.type = e2.type, this.rawGeometry = 1 === e2.type ? [e2.geometry] : e2.geometry, this.properties = e2.tags, this.extent = t2 || 4096; } - w.prototype.feature = function(e2) { - return new S(this.features[e2], this.options.extent); - }, S.prototype.loadGeometry = function() { - var e2 = this.rawGeometry; + y2.prototype.feature = function(e2) { + return new x(this.features[e2], this.options.extent); + }, x.prototype.loadGeometry = function() { + var t2 = this.rawGeometry; this.geometry = []; - for (var t2 = 0; t2 < e2.length; t2++) { - for (var o2 = e2[t2], i2 = [], r2 = 0; r2 < o2.length; r2++) - i2.push(new y2(o2[r2][0], o2[r2][1])); - this.geometry.push(i2); + for (var r2 = 0; r2 < t2.length; r2++) { + for (var i2 = t2[r2], o2 = [], n2 = 0; n2 < i2.length; n2++) + o2.push(new e.Point$1(i2[n2][0], i2[n2][1])); + this.geometry.push(o2); } return this.geometry; - }, S.prototype.bbox = function() { + }, x.prototype.bbox = function() { this.geometry || this.loadGeometry(); - for (var e2 = this.geometry, t2 = 1 / 0, o2 = -1 / 0, i2 = 1 / 0, r2 = -1 / 0, n2 = 0; n2 < e2.length; n2++) - for (var s2 = e2[n2], a2 = 0; a2 < s2.length; a2++) { - var l2 = s2[a2]; - t2 = Math.min(t2, l2.x), o2 = Math.max(o2, l2.x), i2 = Math.min(i2, l2.y), r2 = Math.max(r2, l2.y); - } - return [t2, i2, o2, r2]; - }, S.prototype.toGeoJSON = v2.prototype.toGeoJSON; - var M = e.pbf, I2 = x; - function b(e2) { - var t2 = new M(); - return function(e3, t3) { - for (var o2 in e3.layers) - t3.writeMessage(3, k, e3.layers[o2]); - }(e2, t2), t2.finish(); - } - function k(e2, t2) { - var o2; + for (var e2 = this.geometry, t2 = 1 / 0, r2 = -1 / 0, i2 = 1 / 0, o2 = -1 / 0, n2 = 0; n2 < e2.length; n2++) + for (var a2 = e2[n2], s2 = 0; s2 < a2.length; s2++) { + var l2 = a2[s2]; + t2 = Math.min(t2, l2.x), r2 = Math.max(r2, l2.x), i2 = Math.min(i2, l2.y), o2 = Math.max(o2, l2.y); + } + return [t2, i2, r2, o2]; + }, x.prototype.toGeoJSON = v2.prototype.toGeoJSON; + var w = I2, S = m; + function I2(t2) { + var r2 = new e.pbf(); + return function(e2, t3) { + for (var r3 in e2.layers) + t3.writeMessage(3, M, e2.layers[r3]); + }(t2, r2), r2.finish(); + } + function M(e2, t2) { + var r2; t2.writeVarintField(15, e2.version || 1), t2.writeStringField(1, e2.name || ""), t2.writeVarintField(5, e2.extent || 4096); var i2 = { keys: [], values: [], keycache: {}, valuecache: {} }; - for (o2 = 0; o2 < e2.length; o2++) - i2.feature = e2.feature(o2), t2.writeMessage(2, P, i2); - var r2 = i2.keys; - for (o2 = 0; o2 < r2.length; o2++) - t2.writeStringField(3, r2[o2]); + for (r2 = 0; r2 < e2.length; r2++) + i2.feature = e2.feature(r2), t2.writeMessage(2, b, i2); + var o2 = i2.keys; + for (r2 = 0; r2 < o2.length; r2++) + t2.writeStringField(3, o2[r2]); var n2 = i2.values; - for (o2 = 0; o2 < n2.length; o2++) - t2.writeMessage(4, L, n2[o2]); + for (r2 = 0; r2 < n2.length; r2++) + t2.writeMessage(4, C, n2[r2]); } - function P(e2, t2) { - var o2 = e2.feature; - void 0 !== o2.id && t2.writeVarintField(1, o2.id), t2.writeMessage(2, T, e2), t2.writeVarintField(3, o2.type), t2.writeMessage(4, D, o2); + function b(e2, t2) { + var r2 = e2.feature; + void 0 !== r2.id && t2.writeVarintField(1, r2.id), t2.writeMessage(2, _23, e2), t2.writeVarintField(3, r2.type), t2.writeMessage(4, T, r2); } - function T(e2, t2) { - var o2 = e2.feature, i2 = e2.keys, r2 = e2.values, n2 = e2.keycache, s2 = e2.valuecache; - for (var a2 in o2.properties) { - var l2 = o2.properties[a2], c3 = n2[a2]; - if (null !== l2) { - void 0 === c3 && (i2.push(a2), n2[a2] = c3 = i2.length - 1), t2.writeVarint(c3); - var u2 = typeof l2; - "string" !== u2 && "boolean" !== u2 && "number" !== u2 && (l2 = JSON.stringify(l2)); - var h3 = u2 + ":" + l2, p3 = s2[h3]; - void 0 === p3 && (r2.push(l2), s2[h3] = p3 = r2.length - 1), t2.writeVarint(p3); - } + function _23(e2, t2) { + var r2 = e2.feature, i2 = e2.keys, o2 = e2.values, n2 = e2.keycache, a2 = e2.valuecache; + for (var s2 in r2.properties) { + var l2 = n2[s2]; + void 0 === l2 && (i2.push(s2), n2[s2] = l2 = i2.length - 1), t2.writeVarint(l2); + var u2 = r2.properties[s2], h3 = typeof u2; + "string" !== h3 && "boolean" !== h3 && "number" !== h3 && (u2 = JSON.stringify(u2)); + var c3 = h3 + ":" + u2, p3 = a2[c3]; + void 0 === p3 && (o2.push(u2), a2[c3] = p3 = o2.length - 1), t2.writeVarint(p3); } } - function C(e2, t2) { + function k(e2, t2) { return (t2 << 3) + (7 & e2); } - function _23(e2) { + function P(e2) { return e2 << 1 ^ e2 >> 31; } - function D(e2, t2) { - for (var o2 = e2.loadGeometry(), i2 = e2.type, r2 = 0, n2 = 0, s2 = o2.length, a2 = 0; a2 < s2; a2++) { - var l2 = o2[a2], c3 = 1; - 1 === i2 && (c3 = l2.length), t2.writeVarint(C(1, c3)); - for (var u2 = 3 === i2 ? l2.length - 1 : l2.length, h3 = 0; h3 < u2; h3++) { - 1 === h3 && 1 !== i2 && t2.writeVarint(C(2, u2 - 1)); - var p3 = l2[h3].x - r2, f2 = l2[h3].y - n2; - t2.writeVarint(_23(p3)), t2.writeVarint(_23(f2)), r2 += p3, n2 += f2; + function T(e2, t2) { + for (var r2 = e2.loadGeometry(), i2 = e2.type, o2 = 0, n2 = 0, a2 = r2.length, s2 = 0; s2 < a2; s2++) { + var l2 = r2[s2], u2 = 1; + 1 === i2 && (u2 = l2.length), t2.writeVarint(k(1, u2)); + for (var h3 = 3 === i2 ? l2.length - 1 : l2.length, c3 = 0; c3 < h3; c3++) { + 1 === c3 && 1 !== i2 && t2.writeVarint(k(2, h3 - 1)); + var p3 = l2[c3].x - o2, f2 = l2[c3].y - n2; + t2.writeVarint(P(p3)), t2.writeVarint(P(f2)), o2 += p3, n2 += f2; } - 3 === i2 && t2.writeVarint(C(7, 1)); + 3 === i2 && t2.writeVarint(k(7, 1)); } } - function L(e2, t2) { - var o2 = typeof e2; - "string" === o2 ? t2.writeStringField(1, e2) : "boolean" === o2 ? t2.writeBooleanField(7, e2) : "number" === o2 && (e2 % 1 != 0 ? t2.writeDoubleField(3, e2) : e2 < 0 ? t2.writeSVarintField(6, e2) : t2.writeVarintField(5, e2)); - } - function z(e2, t2, o2, i2, r2, n2) { - if (r2 - i2 <= o2) - return; - const s2 = i2 + r2 >> 1; - O2(e2, t2, s2, i2, r2, n2 % 2), z(e2, t2, o2, i2, s2 - 1, n2 + 1), z(e2, t2, o2, s2 + 1, r2, n2 + 1); - } - function O2(e2, t2, o2, i2, r2, n2) { - for (; r2 > i2; ) { - if (r2 - i2 > 600) { - const s3 = r2 - i2 + 1, a3 = o2 - i2 + 1, l3 = Math.log(s3), c3 = 0.5 * Math.exp(2 * l3 / 3), u2 = 0.5 * Math.sqrt(l3 * c3 * (s3 - c3) / s3) * (a3 - s3 / 2 < 0 ? -1 : 1); - O2(e2, t2, o2, Math.max(i2, Math.floor(o2 - a3 * c3 / s3 + u2)), Math.min(r2, Math.floor(o2 + (s3 - a3) * c3 / s3 + u2)), n2); - } - const s2 = t2[2 * o2 + n2]; - let a2 = i2, l2 = r2; - for (E(e2, t2, i2, o2), t2[2 * r2 + n2] > s2 && E(e2, t2, i2, r2); a2 < l2; ) { - for (E(e2, t2, a2, l2), a2++, l2--; t2[2 * a2 + n2] < s2; ) - a2++; - for (; t2[2 * l2 + n2] > s2; ) - l2--; - } - t2[2 * i2 + n2] === s2 ? E(e2, t2, i2, l2) : (l2++, E(e2, t2, l2, r2)), l2 <= o2 && (i2 = l2 + 1), o2 <= l2 && (r2 = l2 - 1); - } + function C(e2, t2) { + var r2 = typeof e2; + "string" === r2 ? t2.writeStringField(1, e2) : "boolean" === r2 ? t2.writeBooleanField(7, e2) : "number" === r2 && (e2 % 1 != 0 ? t2.writeDoubleField(3, e2) : e2 < 0 ? t2.writeSVarintField(6, e2) : t2.writeVarintField(5, e2)); } - function E(e2, t2, o2, i2) { - F(e2, o2, i2), F(t2, 2 * o2, 2 * i2), F(t2, 2 * o2 + 1, 2 * i2 + 1); + function D(e2, t2, r2, i2) { + L(e2, r2, i2), L(t2, 2 * r2, 2 * i2), L(t2, 2 * r2 + 1, 2 * i2 + 1); } - function F(e2, t2, o2) { - const i2 = e2[t2]; - e2[t2] = e2[o2], e2[o2] = i2; + function L(e2, t2, r2) { + var i2 = e2[t2]; + e2[t2] = e2[r2], e2[r2] = i2; } - function N(e2, t2, o2, i2) { - const r2 = e2 - o2, n2 = t2 - i2; - return r2 * r2 + n2 * n2; + function z(e2, t2, r2, i2) { + var o2 = e2 - r2, n2 = t2 - i2; + return o2 * o2 + n2 * n2; } - m.exports = b, m.exports.fromVectorTileJs = b, m.exports.fromGeojsonVt = function(e2, t2) { + w.fromVectorTileJs = I2, w.fromGeojsonVt = function(e2, t2) { t2 = t2 || {}; - var o2 = {}; + var r2 = {}; for (var i2 in e2) - o2[i2] = new I2(e2[i2].features, t2), o2[i2].name = i2, o2[i2].version = t2.version, o2[i2].extent = t2.extent; - return b({ layers: o2 }); - }, m.exports.GeoJSONWrapper = I2; - const A2 = (e2) => e2[0], B = (e2) => e2[1]; - class J { - constructor(e2, t2 = A2, o2 = B, i2 = 64, r2 = Float64Array) { - this.nodeSize = i2, this.points = e2; - const n2 = e2.length < 65536 ? Uint16Array : Uint32Array, s2 = this.ids = new n2(e2.length), a2 = this.coords = new r2(2 * e2.length); - for (let i3 = 0; i3 < e2.length; i3++) - s2[i3] = i3, a2[2 * i3] = t2(e2[i3]), a2[2 * i3 + 1] = o2(e2[i3]); - z(s2, a2, i2, 0, s2.length - 1, 0); - } - range(e2, t2, o2, i2) { - return function(e3, t3, o3, i3, r2, n2, s2) { - const a2 = [0, e3.length - 1, 0], l2 = []; - let c3, u2; - for (; a2.length; ) { - const h3 = a2.pop(), p3 = a2.pop(), f2 = a2.pop(); - if (p3 - f2 <= s2) { - for (let s3 = f2; s3 <= p3; s3++) - c3 = t3[2 * s3], u2 = t3[2 * s3 + 1], c3 >= o3 && c3 <= r2 && u2 >= i3 && u2 <= n2 && l2.push(e3[s3]); - continue; - } - const d2 = Math.floor((f2 + p3) / 2); - c3 = t3[2 * d2], u2 = t3[2 * d2 + 1], c3 >= o3 && c3 <= r2 && u2 >= i3 && u2 <= n2 && l2.push(e3[d2]); - const g2 = (h3 + 1) % 2; - (0 === h3 ? o3 <= c3 : i3 <= u2) && (a2.push(f2), a2.push(d2 - 1), a2.push(g2)), (0 === h3 ? r2 >= c3 : n2 >= u2) && (a2.push(d2 + 1), a2.push(p3), a2.push(g2)); - } - return l2; - }(this.ids, this.coords, e2, t2, o2, i2, this.nodeSize); - } - within(e2, t2, o2) { - return function(e3, t3, o3, i2, r2, n2) { - const s2 = [0, e3.length - 1, 0], a2 = [], l2 = r2 * r2; - for (; s2.length; ) { - const c3 = s2.pop(), u2 = s2.pop(), h3 = s2.pop(); - if (u2 - h3 <= n2) { - for (let r3 = h3; r3 <= u2; r3++) - N(t3[2 * r3], t3[2 * r3 + 1], o3, i2) <= l2 && a2.push(e3[r3]); - continue; + r2[i2] = new m(e2[i2].features, t2), r2[i2].name = i2, r2[i2].version = t2.version, r2[i2].extent = t2.extent; + return I2({ layers: r2 }); + }, w.GeoJSONWrapper = S; + var O2 = function(e2) { + return e2[0]; + }, E = function(e2) { + return e2[1]; + }, F = function(e2, t2, r2, i2, o2) { + void 0 === t2 && (t2 = O2), void 0 === r2 && (r2 = E), void 0 === i2 && (i2 = 64), void 0 === o2 && (o2 = Float64Array), this.nodeSize = i2, this.points = e2; + for (var n2 = e2.length < 65536 ? Uint16Array : Uint32Array, a2 = this.ids = new n2(e2.length), s2 = this.coords = new o2(2 * e2.length), l2 = 0; l2 < e2.length; l2++) + a2[l2] = l2, s2[2 * l2] = t2(e2[l2]), s2[2 * l2 + 1] = r2(e2[l2]); + !function e3(t3, r3, i3, o3, n3, a3) { + if (!(n3 - o3 <= i3)) { + var s3 = o3 + n3 >> 1; + !function e4(t4, r4, i4, o4, n4, a4) { + for (; n4 > o4; ) { + if (n4 - o4 > 600) { + var s4 = n4 - o4 + 1, l3 = i4 - o4 + 1, u2 = Math.log(s4), h3 = 0.5 * Math.exp(2 * u2 / 3), c3 = 0.5 * Math.sqrt(u2 * h3 * (s4 - h3) / s4) * (l3 - s4 / 2 < 0 ? -1 : 1); + e4(t4, r4, i4, Math.max(o4, Math.floor(i4 - l3 * h3 / s4 + c3)), Math.min(n4, Math.floor(i4 + (s4 - l3) * h3 / s4 + c3)), a4); + } + var p3 = r4[2 * i4 + a4], f2 = o4, d2 = n4; + for (D(t4, r4, o4, i4), r4[2 * n4 + a4] > p3 && D(t4, r4, o4, n4); f2 < d2; ) { + for (D(t4, r4, f2, d2), f2++, d2--; r4[2 * f2 + a4] < p3; ) + f2++; + for (; r4[2 * d2 + a4] > p3; ) + d2--; + } + r4[2 * o4 + a4] === p3 ? D(t4, r4, o4, d2) : D(t4, r4, ++d2, n4), d2 <= i4 && (o4 = d2 + 1), i4 <= d2 && (n4 = d2 - 1); } - const p3 = Math.floor((h3 + u2) / 2), f2 = t3[2 * p3], d2 = t3[2 * p3 + 1]; - N(f2, d2, o3, i2) <= l2 && a2.push(e3[p3]); - const g2 = (c3 + 1) % 2; - (0 === c3 ? o3 - r2 <= f2 : i2 - r2 <= d2) && (s2.push(h3), s2.push(p3 - 1), s2.push(g2)), (0 === c3 ? o3 + r2 >= f2 : i2 + r2 >= d2) && (s2.push(p3 + 1), s2.push(u2), s2.push(g2)); - } - return a2; - }(this.ids, this.coords, e2, t2, o2, this.nodeSize); - } - } - const Z2 = { minZoom: 0, maxZoom: 16, minPoints: 2, radius: 40, extent: 512, nodeSize: 64, log: false, generateId: false, reduce: null, map: (e2) => e2 }, G = Math.fround || (j = new Float32Array(1), (e2) => (j[0] = +e2, j[0])); - var j; - class Y { - constructor(e2) { - this.options = H(Object.create(Z2), e2), this.trees = new Array(this.options.maxZoom + 1); - } - load(e2) { - const { log: t2, minZoom: o2, maxZoom: i2, nodeSize: r2 } = this.options; - t2 && console.time("total time"); - const n2 = `prepare ${e2.length} points`; - t2 && console.time(n2), this.points = e2; - let s2 = []; - for (let t3 = 0; t3 < e2.length; t3++) - e2[t3].geometry && s2.push(X(e2[t3], t3)); - this.trees[i2 + 1] = new J(s2, K, Q, r2, Float32Array), t2 && console.timeEnd(n2); - for (let e3 = i2; e3 >= o2; e3--) { - const o3 = +Date.now(); - s2 = this._cluster(s2, e3), this.trees[e3] = new J(s2, K, Q, r2, Float32Array), t2 && console.log("z%d: %d clusters in %dms", e3, s2.length, +Date.now() - o3); - } - return t2 && console.timeEnd("total time"), this; - } - getClusters(e2, t2) { - let o2 = ((e2[0] + 180) % 360 + 360) % 360 - 180; - const i2 = Math.max(-90, Math.min(90, e2[1])); - let r2 = 180 === e2[2] ? 180 : ((e2[2] + 180) % 360 + 360) % 360 - 180; - const n2 = Math.max(-90, Math.min(90, e2[3])); - if (e2[2] - e2[0] >= 360) - o2 = -180, r2 = 180; - else if (o2 > r2) { - const e3 = this.getClusters([o2, i2, 180, n2], t2), s3 = this.getClusters([-180, i2, r2, n2], t2); - return e3.concat(s3); - } - const s2 = this.trees[this._limitZoom(t2)], a2 = s2.range($(o2), q(n2), $(r2), q(i2)), l2 = []; - for (const e3 of a2) { - const t3 = s2.points[e3]; - l2.push(t3.numPoints ? R(t3) : this.points[t3.index]); - } - return l2; - } - getChildren(e2) { - const t2 = this._getOriginId(e2), o2 = this._getOriginZoom(e2), i2 = "No cluster with the specified id.", r2 = this.trees[o2]; - if (!r2) - throw new Error(i2); - const n2 = r2.points[t2]; - if (!n2) - throw new Error(i2); - const s2 = this.options.radius / (this.options.extent * Math.pow(2, o2 - 1)), a2 = r2.within(n2.x, n2.y, s2), l2 = []; - for (const t3 of a2) { - const o3 = r2.points[t3]; - o3.parentId === e2 && l2.push(o3.numPoints ? R(o3) : this.points[o3.index]); - } - if (0 === l2.length) - throw new Error(i2); - return l2; - } - getLeaves(e2, t2, o2) { - const i2 = []; - return this._appendLeaves(i2, e2, t2 = t2 || 10, o2 = o2 || 0, 0), i2; - } - getTile(e2, t2, o2) { - const i2 = this.trees[this._limitZoom(e2)], r2 = Math.pow(2, e2), { extent: n2, radius: s2 } = this.options, a2 = s2 / n2, l2 = (o2 - a2) / r2, c3 = (o2 + 1 + a2) / r2, u2 = { features: [] }; - return this._addTileFeatures(i2.range((t2 - a2) / r2, l2, (t2 + 1 + a2) / r2, c3), i2.points, t2, o2, r2, u2), 0 === t2 && this._addTileFeatures(i2.range(1 - a2 / r2, l2, 1, c3), i2.points, r2, o2, r2, u2), t2 === r2 - 1 && this._addTileFeatures(i2.range(0, l2, a2 / r2, c3), i2.points, -1, o2, r2, u2), u2.features.length ? u2 : null; - } - getClusterExpansionZoom(e2) { - let t2 = this._getOriginZoom(e2) - 1; - for (; t2 <= this.options.maxZoom; ) { - const o2 = this.getChildren(e2); - if (t2++, 1 !== o2.length) - break; - e2 = o2[0].properties.cluster_id; - } - return t2; - } - _appendLeaves(e2, t2, o2, i2, r2) { - const n2 = this.getChildren(t2); - for (const t3 of n2) { - const n3 = t3.properties; - if (n3 && n3.cluster ? r2 + n3.point_count <= i2 ? r2 += n3.point_count : r2 = this._appendLeaves(e2, n3.cluster_id, o2, i2, r2) : r2 < i2 ? r2++ : e2.push(t3), e2.length === o2) - break; + }(t3, r3, s3, o3, n3, a3 % 2), e3(t3, r3, i3, o3, s3 - 1, a3 + 1), e3(t3, r3, i3, s3 + 1, n3, a3 + 1); } - return r2; - } - _addTileFeatures(e2, t2, o2, i2, r2, n2) { - for (const s2 of e2) { - const e3 = t2[s2], a2 = e3.numPoints; - let l2, c3, u2; - if (a2) - l2 = W(e3), c3 = e3.x, u2 = e3.y; + }(a2, s2, i2, 0, a2.length - 1, 0); + }; + F.prototype.range = function(e2, t2, r2, i2) { + return function(e3, t3, r3, i3, o2, n2, a2) { + for (var s2, l2, u2 = [0, e3.length - 1, 0], h3 = []; u2.length; ) { + var c3 = u2.pop(), p3 = u2.pop(), f2 = u2.pop(); + if (p3 - f2 <= a2) + for (var d2 = f2; d2 <= p3; d2++) + l2 = t3[2 * d2 + 1], (s2 = t3[2 * d2]) >= r3 && s2 <= o2 && l2 >= i3 && l2 <= n2 && h3.push(e3[d2]); else { - const t3 = this.points[e3.index]; - l2 = t3.properties, c3 = $(t3.geometry.coordinates[0]), u2 = q(t3.geometry.coordinates[1]); + var g2 = Math.floor((f2 + p3) / 2); + l2 = t3[2 * g2 + 1], (s2 = t3[2 * g2]) >= r3 && s2 <= o2 && l2 >= i3 && l2 <= n2 && h3.push(e3[g2]); + var v3 = (c3 + 1) % 2; + (0 === c3 ? r3 <= s2 : i3 <= l2) && (u2.push(f2), u2.push(g2 - 1), u2.push(v3)), (0 === c3 ? o2 >= s2 : n2 >= l2) && (u2.push(g2 + 1), u2.push(p3), u2.push(v3)); } - const h3 = { type: 1, geometry: [[Math.round(this.options.extent * (c3 * r2 - o2)), Math.round(this.options.extent * (u2 * r2 - i2))]], tags: l2 }; - let p3; - a2 ? p3 = e3.id : this.options.generateId ? p3 = e3.index : this.points[e3.index].id && (p3 = this.points[e3.index].id), void 0 !== p3 && (h3.id = p3), n2.features.push(h3); } - } - _limitZoom(e2) { - return Math.max(this.options.minZoom, Math.min(Math.floor(+e2), this.options.maxZoom + 1)); - } - _cluster(e2, t2) { - const o2 = [], { radius: i2, extent: r2, reduce: n2, minPoints: s2 } = this.options, a2 = i2 / (r2 * Math.pow(2, t2)); - for (let i3 = 0; i3 < e2.length; i3++) { - const r3 = e2[i3]; - if (r3.zoom <= t2) - continue; - r3.zoom = t2; - const l2 = this.trees[t2 + 1], c3 = l2.within(r3.x, r3.y, a2), u2 = r3.numPoints || 1; - let h3 = u2; - for (const e3 of c3) { - const o3 = l2.points[e3]; - o3.zoom > t2 && (h3 += o3.numPoints || 1); + return h3; + }(this.ids, this.coords, e2, t2, r2, i2, this.nodeSize); + }, F.prototype.within = function(e2, t2, r2) { + return function(e3, t3, r3, i2, o2, n2) { + for (var a2 = [0, e3.length - 1, 0], s2 = [], l2 = o2 * o2; a2.length; ) { + var u2 = a2.pop(), h3 = a2.pop(), c3 = a2.pop(); + if (h3 - c3 <= n2) + for (var p3 = c3; p3 <= h3; p3++) + z(t3[2 * p3], t3[2 * p3 + 1], r3, i2) <= l2 && s2.push(e3[p3]); + else { + var f2 = Math.floor((c3 + h3) / 2), d2 = t3[2 * f2], g2 = t3[2 * f2 + 1]; + z(d2, g2, r3, i2) <= l2 && s2.push(e3[f2]); + var v3 = (u2 + 1) % 2; + (0 === u2 ? r3 - o2 <= d2 : i2 - o2 <= g2) && (a2.push(c3), a2.push(f2 - 1), a2.push(v3)), (0 === u2 ? r3 + o2 >= d2 : i2 + o2 >= g2) && (a2.push(f2 + 1), a2.push(h3), a2.push(v3)); } - if (h3 > u2 && h3 >= s2) { - let e3 = r3.x * u2, s3 = r3.y * u2, a3 = n2 && u2 > 1 ? this._map(r3, true) : null; - const p3 = (i3 << 5) + (t2 + 1) + this.points.length; - for (const o3 of c3) { - const i4 = l2.points[o3]; - if (i4.zoom <= t2) - continue; - i4.zoom = t2; - const c4 = i4.numPoints || 1; - e3 += i4.x * c4, s3 += i4.y * c4, i4.parentId = p3, n2 && (a3 || (a3 = this._map(r3, true)), n2(a3, this._map(i4))); - } - r3.parentId = p3, o2.push(V2(e3 / h3, s3 / h3, p3, h3, a3)); - } else if (o2.push(r3), h3 > 1) - for (const e3 of c3) { - const i4 = l2.points[e3]; - i4.zoom <= t2 || (i4.zoom = t2, o2.push(i4)); - } } - return o2; - } - _getOriginId(e2) { - return e2 - this.points.length >> 5; - } - _getOriginZoom(e2) { - return (e2 - this.points.length) % 32; - } - _map(e2, t2) { - if (e2.numPoints) - return t2 ? H({}, e2.properties) : e2.properties; - const o2 = this.points[e2.index].properties, i2 = this.options.map(o2); - return t2 && i2 === o2 ? H({}, i2) : i2; - } - } - function V2(e2, t2, o2, i2, r2) { - return { x: G(e2), y: G(t2), zoom: 1 / 0, id: o2, parentId: -1, numPoints: i2, properties: r2 }; + return s2; + }(this.ids, this.coords, e2, t2, r2, this.nodeSize); + }; + var N = { minZoom: 0, maxZoom: 16, minPoints: 2, radius: 40, extent: 512, nodeSize: 64, log: false, generateId: false, reduce: null, map: function(e2) { + return e2; + } }, J = function(e2) { + this.options = V2(Object.create(N), e2), this.trees = new Array(this.options.maxZoom + 1); + }; + function Z2(e2, t2, r2, i2, o2) { + return { x: e2, y: t2, zoom: 1 / 0, id: r2, parentId: -1, numPoints: i2, properties: o2 }; } - function X(e2, t2) { - const [o2, i2] = e2.geometry.coordinates; - return { x: G($(o2)), y: G(q(i2)), zoom: 1 / 0, index: t2, parentId: -1 }; + function A2(e2, t2) { + var r2 = e2.geometry.coordinates, i2 = r2[1]; + return { x: Y(r2[0]), y: j(i2), zoom: 1 / 0, index: t2, parentId: -1 }; } - function R(e2) { - return { type: "Feature", id: e2.id, properties: W(e2), geometry: { type: "Point", coordinates: [(t2 = e2.x, 360 * (t2 - 0.5)), U(e2.y)] } }; - var t2; + function B(e2) { + return { type: "Feature", id: e2.id, properties: G(e2), geometry: { type: "Point", coordinates: [(i2 = e2.x, 360 * (i2 - 0.5)), (t2 = e2.y, r2 = (180 - 360 * t2) * Math.PI / 180, 360 * Math.atan(Math.exp(r2)) / Math.PI - 90)] } }; + var t2, r2, i2; } - function W(e2) { - const t2 = e2.numPoints, o2 = t2 >= 1e4 ? `${Math.round(t2 / 1e3)}k` : t2 >= 1e3 ? Math.round(t2 / 100) / 10 + "k" : t2; - return H(H({}, e2.properties), { cluster: true, cluster_id: e2.id, point_count: t2, point_count_abbreviated: o2 }); + function G(e2) { + var t2 = e2.numPoints, r2 = t2 >= 1e4 ? Math.round(t2 / 1e3) + "k" : t2 >= 1e3 ? Math.round(t2 / 100) / 10 + "k" : t2; + return V2(V2({}, e2.properties), { cluster: true, cluster_id: e2.id, point_count: t2, point_count_abbreviated: r2 }); } - function $(e2) { + function Y(e2) { return e2 / 360 + 0.5; } - function q(e2) { - const t2 = Math.sin(e2 * Math.PI / 180), o2 = 0.5 - 0.25 * Math.log((1 + t2) / (1 - t2)) / Math.PI; - return o2 < 0 ? 0 : o2 > 1 ? 1 : o2; + function j(e2) { + var t2 = Math.sin(e2 * Math.PI / 180), r2 = 0.5 - 0.25 * Math.log((1 + t2) / (1 - t2)) / Math.PI; + return r2 < 0 ? 0 : r2 > 1 ? 1 : r2; } - function U(e2) { - const t2 = (180 - 360 * e2) * Math.PI / 180; - return 360 * Math.atan(Math.exp(t2)) / Math.PI - 90; - } - function H(e2, t2) { - for (const o2 in t2) - e2[o2] = t2[o2]; + function V2(e2, t2) { + for (var r2 in t2) + e2[r2] = t2[r2]; return e2; } - function K(e2) { + function X(e2) { return e2.x; } - function Q(e2) { + function W(e2) { return e2.y; } - function ee(e2, t2, o2, i2) { - for (var r2, n2 = i2, s2 = o2 - t2 >> 1, a2 = o2 - t2, l2 = e2[t2], c3 = e2[t2 + 1], u2 = e2[o2], h3 = e2[o2 + 1], p3 = t2 + 3; p3 < o2; p3 += 3) { - var f2 = te(e2[p3], e2[p3 + 1], l2, c3, u2, h3); - if (f2 > n2) - r2 = p3, n2 = f2; - else if (f2 === n2) { - var d2 = Math.abs(p3 - s2); - d2 < a2 && (r2 = p3, a2 = d2); - } - } - n2 > i2 && (r2 - t2 > 3 && ee(e2, t2, r2, i2), e2[r2 + 2] = n2, o2 - r2 > 3 && ee(e2, r2, o2, i2)); - } - function te(e2, t2, o2, i2, r2, n2) { - var s2 = r2 - o2, a2 = n2 - i2; - if (0 !== s2 || 0 !== a2) { - var l2 = ((e2 - o2) * s2 + (t2 - i2) * a2) / (s2 * s2 + a2 * a2); - l2 > 1 ? (o2 = r2, i2 = n2) : l2 > 0 && (o2 += s2 * l2, i2 += a2 * l2); + function R(e2, t2, r2, i2, o2, n2) { + var a2 = o2 - r2, s2 = n2 - i2; + if (0 !== a2 || 0 !== s2) { + var l2 = ((e2 - r2) * a2 + (t2 - i2) * s2) / (a2 * a2 + s2 * s2); + l2 > 1 ? (r2 = o2, i2 = n2) : l2 > 0 && (r2 += a2 * l2, i2 += s2 * l2); } - return (s2 = e2 - o2) * s2 + (a2 = t2 - i2) * a2; + return (a2 = e2 - r2) * a2 + (s2 = t2 - i2) * s2; } - function oe(e2, t2, o2, i2) { - var r2 = { id: void 0 === e2 ? null : e2, type: t2, geometry: o2, tags: i2, minX: 1 / 0, minY: 1 / 0, maxX: -1 / 0, maxY: -1 / 0 }; + function q(e2, t2, r2, i2) { + var o2 = { id: void 0 === e2 ? null : e2, type: t2, geometry: r2, tags: i2, minX: 1 / 0, minY: 1 / 0, maxX: -1 / 0, maxY: -1 / 0 }; return function(e3) { - var t3 = e3.geometry, o3 = e3.type; - if ("Point" === o3 || "MultiPoint" === o3 || "LineString" === o3) - ie(e3, t3); - else if ("Polygon" === o3 || "MultiLineString" === o3) + var t3 = e3.geometry, r3 = e3.type; + if ("Point" === r3 || "MultiPoint" === r3 || "LineString" === r3) + U(e3, t3); + else if ("Polygon" === r3 || "MultiLineString" === r3) for (var i3 = 0; i3 < t3.length; i3++) - ie(e3, t3[i3]); - else if ("MultiPolygon" === o3) + U(e3, t3[i3]); + else if ("MultiPolygon" === r3) for (i3 = 0; i3 < t3.length; i3++) - for (var r3 = 0; r3 < t3[i3].length; r3++) - ie(e3, t3[i3][r3]); - }(r2), r2; + for (var o3 = 0; o3 < t3[i3].length; o3++) + U(e3, t3[i3][o3]); + }(o2), o2; } - function ie(e2, t2) { - for (var o2 = 0; o2 < t2.length; o2 += 3) - e2.minX = Math.min(e2.minX, t2[o2]), e2.minY = Math.min(e2.minY, t2[o2 + 1]), e2.maxX = Math.max(e2.maxX, t2[o2]), e2.maxY = Math.max(e2.maxY, t2[o2 + 1]); + function U(e2, t2) { + for (var r2 = 0; r2 < t2.length; r2 += 3) + e2.minX = Math.min(e2.minX, t2[r2]), e2.minY = Math.min(e2.minY, t2[r2 + 1]), e2.maxX = Math.max(e2.maxX, t2[r2]), e2.maxY = Math.max(e2.maxY, t2[r2 + 1]); } - function re(e2, t2, o2, i2) { + function $(e2, t2, r2, i2) { if (t2.geometry) { - var r2 = t2.geometry.coordinates, n2 = t2.geometry.type, s2 = Math.pow(o2.tolerance / ((1 << o2.maxZoom) * o2.extent), 2), a2 = [], l2 = t2.id; - if (o2.promoteId ? l2 = t2.properties[o2.promoteId] : o2.generateId && (l2 = i2 || 0), "Point" === n2) - ne(r2, a2); + var o2 = t2.geometry.coordinates, n2 = t2.geometry.type, a2 = Math.pow(r2.tolerance / ((1 << r2.maxZoom) * r2.extent), 2), s2 = [], l2 = t2.id; + if (r2.promoteId ? l2 = t2.properties[r2.promoteId] : r2.generateId && (l2 = i2 || 0), "Point" === n2) + H(o2, s2); else if ("MultiPoint" === n2) - for (var c3 = 0; c3 < r2.length; c3++) - ne(r2[c3], a2); + for (var u2 = 0; u2 < o2.length; u2++) + H(o2[u2], s2); else if ("LineString" === n2) - se(r2, a2, s2, false); + K(o2, s2, a2, false); else if ("MultiLineString" === n2) { - if (o2.lineMetrics) { - for (c3 = 0; c3 < r2.length; c3++) - se(r2[c3], a2 = [], s2, false), e2.push(oe(l2, "LineString", a2, t2.properties)); + if (r2.lineMetrics) { + for (u2 = 0; u2 < o2.length; u2++) + K(o2[u2], s2 = [], a2, false), e2.push(q(l2, "LineString", s2, t2.properties)); return; } - ae(r2, a2, s2, false); + Q(o2, s2, a2, false); } else if ("Polygon" === n2) - ae(r2, a2, s2, true); + Q(o2, s2, a2, true); else { if ("MultiPolygon" !== n2) { if ("GeometryCollection" === n2) { - for (c3 = 0; c3 < t2.geometry.geometries.length; c3++) - re(e2, { id: l2, geometry: t2.geometry.geometries[c3], properties: t2.properties }, o2, i2); + for (u2 = 0; u2 < t2.geometry.geometries.length; u2++) + $(e2, { id: l2, geometry: t2.geometry.geometries[u2], properties: t2.properties }, r2, i2); return; } throw new Error("Input data is not a valid GeoJSON object."); } - for (c3 = 0; c3 < r2.length; c3++) { - var u2 = []; - ae(r2[c3], u2, s2, true), a2.push(u2); + for (u2 = 0; u2 < o2.length; u2++) { + var h3 = []; + Q(o2[u2], h3, a2, true), s2.push(h3); } } - e2.push(oe(l2, n2, a2, t2.properties)); + e2.push(q(l2, n2, s2, t2.properties)); } } - function ne(e2, t2) { - t2.push(le(e2[0])), t2.push(ce(e2[1])), t2.push(0); - } - function se(e2, t2, o2, i2) { - for (var r2, n2, s2 = 0, a2 = 0; a2 < e2.length; a2++) { - var l2 = le(e2[a2][0]), c3 = ce(e2[a2][1]); - t2.push(l2), t2.push(c3), t2.push(0), a2 > 0 && (s2 += i2 ? (r2 * c3 - l2 * n2) / 2 : Math.sqrt(Math.pow(l2 - r2, 2) + Math.pow(c3 - n2, 2))), r2 = l2, n2 = c3; - } - var u2 = t2.length - 3; - t2[2] = 1, ee(t2, 0, u2, o2), t2[u2 + 2] = 1, t2.size = Math.abs(s2), t2.start = 0, t2.end = t2.size; + function H(e2, t2) { + t2.push(ee(e2[0])), t2.push(te(e2[1])), t2.push(0); + } + function K(e2, t2, r2, i2) { + for (var o2, n2, a2 = 0, s2 = 0; s2 < e2.length; s2++) { + var l2 = ee(e2[s2][0]), u2 = te(e2[s2][1]); + t2.push(l2), t2.push(u2), t2.push(0), s2 > 0 && (a2 += i2 ? (o2 * u2 - l2 * n2) / 2 : Math.sqrt(Math.pow(l2 - o2, 2) + Math.pow(u2 - n2, 2))), o2 = l2, n2 = u2; + } + var h3 = t2.length - 3; + t2[2] = 1, function e3(t3, r3, i3, o3) { + for (var n3, a3 = o3, s3 = i3 - r3 >> 1, l3 = i3 - r3, u3 = t3[r3], h4 = t3[r3 + 1], c3 = t3[i3], p3 = t3[i3 + 1], f2 = r3 + 3; f2 < i3; f2 += 3) { + var d2 = R(t3[f2], t3[f2 + 1], u3, h4, c3, p3); + if (d2 > a3) + n3 = f2, a3 = d2; + else if (d2 === a3) { + var g2 = Math.abs(f2 - s3); + g2 < l3 && (n3 = f2, l3 = g2); + } + } + a3 > o3 && (n3 - r3 > 3 && e3(t3, r3, n3, o3), t3[n3 + 2] = a3, i3 - n3 > 3 && e3(t3, n3, i3, o3)); + }(t2, 0, h3, r2), t2[h3 + 2] = 1, t2.size = Math.abs(a2), t2.start = 0, t2.end = t2.size; } - function ae(e2, t2, o2, i2) { - for (var r2 = 0; r2 < e2.length; r2++) { + function Q(e2, t2, r2, i2) { + for (var o2 = 0; o2 < e2.length; o2++) { var n2 = []; - se(e2[r2], n2, o2, i2), t2.push(n2); + K(e2[o2], n2, r2, i2), t2.push(n2); } } - function le(e2) { + function ee(e2) { return e2 / 360 + 0.5; } - function ce(e2) { - var t2 = Math.sin(e2 * Math.PI / 180), o2 = 0.5 - 0.25 * Math.log((1 + t2) / (1 - t2)) / Math.PI; - return o2 < 0 ? 0 : o2 > 1 ? 1 : o2; + function te(e2) { + var t2 = Math.sin(e2 * Math.PI / 180), r2 = 0.5 - 0.25 * Math.log((1 + t2) / (1 - t2)) / Math.PI; + return r2 < 0 ? 0 : r2 > 1 ? 1 : r2; } - function ue(e2, t2, o2, i2, r2, n2, s2, a2) { - if (i2 /= t2, n2 >= (o2 /= t2) && s2 < i2) + function re(e2, t2, r2, i2, o2, n2, a2, s2) { + if (i2 /= t2, n2 >= (r2 /= t2) && a2 < i2) return e2; - if (s2 < o2 || n2 >= i2) + if (a2 < r2 || n2 >= i2) return null; - for (var l2 = [], c3 = 0; c3 < e2.length; c3++) { - var u2 = e2[c3], h3 = u2.geometry, p3 = u2.type, f2 = 0 === r2 ? u2.minX : u2.minY, d2 = 0 === r2 ? u2.maxX : u2.maxY; - if (f2 >= o2 && d2 < i2) - l2.push(u2); - else if (!(d2 < o2 || f2 >= i2)) { + for (var l2 = [], u2 = 0; u2 < e2.length; u2++) { + var h3 = e2[u2], c3 = h3.geometry, p3 = h3.type, f2 = 0 === o2 ? h3.minX : h3.minY, d2 = 0 === o2 ? h3.maxX : h3.maxY; + if (f2 >= r2 && d2 < i2) + l2.push(h3); + else if (!(d2 < r2 || f2 >= i2)) { var g2 = []; if ("Point" === p3 || "MultiPoint" === p3) - he(h3, g2, o2, i2, r2); + ie(c3, g2, r2, i2, o2); else if ("LineString" === p3) - pe(h3, g2, o2, i2, r2, false, a2.lineMetrics); + oe(c3, g2, r2, i2, o2, false, s2.lineMetrics); else if ("MultiLineString" === p3) - de(h3, g2, o2, i2, r2, false); + ae(c3, g2, r2, i2, o2, false); else if ("Polygon" === p3) - de(h3, g2, o2, i2, r2, true); + ae(c3, g2, r2, i2, o2, true); else if ("MultiPolygon" === p3) - for (var m2 = 0; m2 < h3.length; m2++) { - var y3 = []; - de(h3[m2], y3, o2, i2, r2, true), y3.length && g2.push(y3); + for (var v3 = 0; v3 < c3.length; v3++) { + var m2 = []; + ae(c3[v3], m2, r2, i2, o2, true), m2.length && g2.push(m2); } if (g2.length) { - if (a2.lineMetrics && "LineString" === p3) { - for (m2 = 0; m2 < g2.length; m2++) - l2.push(oe(u2.id, p3, g2[m2], u2.tags)); + if (s2.lineMetrics && "LineString" === p3) { + for (v3 = 0; v3 < g2.length; v3++) + l2.push(q(h3.id, p3, g2[v3], h3.tags)); continue; } - "LineString" !== p3 && "MultiLineString" !== p3 || (1 === g2.length ? (p3 = "LineString", g2 = g2[0]) : p3 = "MultiLineString"), "Point" !== p3 && "MultiPoint" !== p3 || (p3 = 3 === g2.length ? "Point" : "MultiPoint"), l2.push(oe(u2.id, p3, g2, u2.tags)); + "LineString" !== p3 && "MultiLineString" !== p3 || (1 === g2.length ? (p3 = "LineString", g2 = g2[0]) : p3 = "MultiLineString"), "Point" !== p3 && "MultiPoint" !== p3 || (p3 = 3 === g2.length ? "Point" : "MultiPoint"), l2.push(q(h3.id, p3, g2, h3.tags)); } } } return l2.length ? l2 : null; } - function he(e2, t2, o2, i2, r2) { + function ie(e2, t2, r2, i2, o2) { for (var n2 = 0; n2 < e2.length; n2 += 3) { - var s2 = e2[n2 + r2]; - s2 >= o2 && s2 <= i2 && (t2.push(e2[n2]), t2.push(e2[n2 + 1]), t2.push(e2[n2 + 2])); + var a2 = e2[n2 + o2]; + a2 >= r2 && a2 <= i2 && (t2.push(e2[n2]), t2.push(e2[n2 + 1]), t2.push(e2[n2 + 2])); } } - function pe(e2, t2, o2, i2, r2, n2, s2) { - for (var a2, l2, c3 = fe(e2), u2 = 0 === r2 ? me : ye, h3 = e2.start, p3 = 0; p3 < e2.length - 3; p3 += 3) { - var f2 = e2[p3], d2 = e2[p3 + 1], g2 = e2[p3 + 2], m2 = e2[p3 + 3], y3 = e2[p3 + 4], v3 = 0 === r2 ? f2 : d2, x2 = 0 === r2 ? m2 : y3, w2 = false; - s2 && (a2 = Math.sqrt(Math.pow(f2 - m2, 2) + Math.pow(d2 - y3, 2))), v3 < o2 ? x2 > o2 && (l2 = u2(c3, f2, d2, m2, y3, o2), s2 && (c3.start = h3 + a2 * l2)) : v3 > i2 ? x2 < i2 && (l2 = u2(c3, f2, d2, m2, y3, i2), s2 && (c3.start = h3 + a2 * l2)) : ge(c3, f2, d2, g2), x2 < o2 && v3 >= o2 && (l2 = u2(c3, f2, d2, m2, y3, o2), w2 = true), x2 > i2 && v3 <= i2 && (l2 = u2(c3, f2, d2, m2, y3, i2), w2 = true), !n2 && w2 && (s2 && (c3.end = h3 + a2 * l2), t2.push(c3), c3 = fe(e2)), s2 && (h3 += a2); + function oe(e2, t2, r2, i2, o2, n2, a2) { + for (var s2, l2, u2 = ne(e2), h3 = 0 === o2 ? le : ue, c3 = e2.start, p3 = 0; p3 < e2.length - 3; p3 += 3) { + var f2 = e2[p3], d2 = e2[p3 + 1], g2 = e2[p3 + 2], v3 = e2[p3 + 3], m2 = e2[p3 + 4], y3 = 0 === o2 ? f2 : d2, x2 = 0 === o2 ? v3 : m2, w2 = false; + a2 && (s2 = Math.sqrt(Math.pow(f2 - v3, 2) + Math.pow(d2 - m2, 2))), y3 < r2 ? x2 > r2 && (l2 = h3(u2, f2, d2, v3, m2, r2), a2 && (u2.start = c3 + s2 * l2)) : y3 > i2 ? x2 < i2 && (l2 = h3(u2, f2, d2, v3, m2, i2), a2 && (u2.start = c3 + s2 * l2)) : se(u2, f2, d2, g2), x2 < r2 && y3 >= r2 && (l2 = h3(u2, f2, d2, v3, m2, r2), w2 = true), x2 > i2 && y3 <= i2 && (l2 = h3(u2, f2, d2, v3, m2, i2), w2 = true), !n2 && w2 && (a2 && (u2.end = c3 + s2 * l2), t2.push(u2), u2 = ne(e2)), a2 && (c3 += s2); } var S2 = e2.length - 3; - f2 = e2[S2], d2 = e2[S2 + 1], g2 = e2[S2 + 2], (v3 = 0 === r2 ? f2 : d2) >= o2 && v3 <= i2 && ge(c3, f2, d2, g2), S2 = c3.length - 3, n2 && S2 >= 3 && (c3[S2] !== c3[0] || c3[S2 + 1] !== c3[1]) && ge(c3, c3[0], c3[1], c3[2]), c3.length && t2.push(c3); + f2 = e2[S2], d2 = e2[S2 + 1], g2 = e2[S2 + 2], (y3 = 0 === o2 ? f2 : d2) >= r2 && y3 <= i2 && se(u2, f2, d2, g2), S2 = u2.length - 3, n2 && S2 >= 3 && (u2[S2] !== u2[0] || u2[S2 + 1] !== u2[1]) && se(u2, u2[0], u2[1], u2[2]), u2.length && t2.push(u2); } - function fe(e2) { + function ne(e2) { var t2 = []; return t2.size = e2.size, t2.start = e2.start, t2.end = e2.end, t2; } - function de(e2, t2, o2, i2, r2, n2) { - for (var s2 = 0; s2 < e2.length; s2++) - pe(e2[s2], t2, o2, i2, r2, n2, false); - } - function ge(e2, t2, o2, i2) { - e2.push(t2), e2.push(o2), e2.push(i2); - } - function me(e2, t2, o2, i2, r2, n2) { - var s2 = (n2 - t2) / (i2 - t2); - return e2.push(n2), e2.push(o2 + (r2 - o2) * s2), e2.push(1), s2; - } - function ye(e2, t2, o2, i2, r2, n2) { - var s2 = (n2 - o2) / (r2 - o2); - return e2.push(t2 + (i2 - t2) * s2), e2.push(n2), e2.push(1), s2; - } - function ve(e2, t2) { - for (var o2 = [], i2 = 0; i2 < e2.length; i2++) { - var r2, n2 = e2[i2], s2 = n2.type; - if ("Point" === s2 || "MultiPoint" === s2 || "LineString" === s2) - r2 = xe(n2.geometry, t2); - else if ("MultiLineString" === s2 || "Polygon" === s2) { - r2 = []; - for (var a2 = 0; a2 < n2.geometry.length; a2++) - r2.push(xe(n2.geometry[a2], t2)); - } else if ("MultiPolygon" === s2) - for (r2 = [], a2 = 0; a2 < n2.geometry.length; a2++) { - for (var l2 = [], c3 = 0; c3 < n2.geometry[a2].length; c3++) - l2.push(xe(n2.geometry[a2][c3], t2)); - r2.push(l2); + function ae(e2, t2, r2, i2, o2, n2) { + for (var a2 = 0; a2 < e2.length; a2++) + oe(e2[a2], t2, r2, i2, o2, n2, false); + } + function se(e2, t2, r2, i2) { + e2.push(t2), e2.push(r2), e2.push(i2); + } + function le(e2, t2, r2, i2, o2, n2) { + var a2 = (n2 - t2) / (i2 - t2); + return e2.push(n2), e2.push(r2 + (o2 - r2) * a2), e2.push(1), a2; + } + function ue(e2, t2, r2, i2, o2, n2) { + var a2 = (n2 - r2) / (o2 - r2); + return e2.push(t2 + (i2 - t2) * a2), e2.push(n2), e2.push(1), a2; + } + function he(e2, t2) { + for (var r2 = [], i2 = 0; i2 < e2.length; i2++) { + var o2, n2 = e2[i2], a2 = n2.type; + if ("Point" === a2 || "MultiPoint" === a2 || "LineString" === a2) + o2 = ce(n2.geometry, t2); + else if ("MultiLineString" === a2 || "Polygon" === a2) { + o2 = []; + for (var s2 = 0; s2 < n2.geometry.length; s2++) + o2.push(ce(n2.geometry[s2], t2)); + } else if ("MultiPolygon" === a2) + for (o2 = [], s2 = 0; s2 < n2.geometry.length; s2++) { + for (var l2 = [], u2 = 0; u2 < n2.geometry[s2].length; u2++) + l2.push(ce(n2.geometry[s2][u2], t2)); + o2.push(l2); } - o2.push(oe(n2.id, s2, r2, n2.tags)); + r2.push(q(n2.id, a2, o2, n2.tags)); } - return o2; + return r2; } - function xe(e2, t2) { - var o2 = []; - o2.size = e2.size, void 0 !== e2.start && (o2.start = e2.start, o2.end = e2.end); + function ce(e2, t2) { + var r2 = []; + r2.size = e2.size, void 0 !== e2.start && (r2.start = e2.start, r2.end = e2.end); for (var i2 = 0; i2 < e2.length; i2 += 3) - o2.push(e2[i2] + t2, e2[i2 + 1], e2[i2 + 2]); - return o2; + r2.push(e2[i2] + t2, e2[i2 + 1], e2[i2 + 2]); + return r2; } - function we(e2, t2) { + function pe(e2, t2) { if (e2.transformed) return e2; - var o2, i2, r2, n2 = 1 << e2.z, s2 = e2.x, a2 = e2.y; - for (o2 = 0; o2 < e2.features.length; o2++) { - var l2 = e2.features[o2], c3 = l2.geometry, u2 = l2.type; - if (l2.geometry = [], 1 === u2) - for (i2 = 0; i2 < c3.length; i2 += 2) - l2.geometry.push(Se(c3[i2], c3[i2 + 1], t2, n2, s2, a2)); + var r2, i2, o2, n2 = 1 << e2.z, a2 = e2.x, s2 = e2.y; + for (r2 = 0; r2 < e2.features.length; r2++) { + var l2 = e2.features[r2], u2 = l2.geometry, h3 = l2.type; + if (l2.geometry = [], 1 === h3) + for (i2 = 0; i2 < u2.length; i2 += 2) + l2.geometry.push(fe(u2[i2], u2[i2 + 1], t2, n2, a2, s2)); else - for (i2 = 0; i2 < c3.length; i2++) { - var h3 = []; - for (r2 = 0; r2 < c3[i2].length; r2 += 2) - h3.push(Se(c3[i2][r2], c3[i2][r2 + 1], t2, n2, s2, a2)); - l2.geometry.push(h3); + for (i2 = 0; i2 < u2.length; i2++) { + var c3 = []; + for (o2 = 0; o2 < u2[i2].length; o2 += 2) + c3.push(fe(u2[i2][o2], u2[i2][o2 + 1], t2, n2, a2, s2)); + l2.geometry.push(c3); } } return e2.transformed = true, e2; } - function Se(e2, t2, o2, i2, r2, n2) { - return [Math.round(o2 * (e2 * i2 - r2)), Math.round(o2 * (t2 * i2 - n2))]; + function fe(e2, t2, r2, i2, o2, n2) { + return [Math.round(r2 * (e2 * i2 - o2)), Math.round(r2 * (t2 * i2 - n2))]; } - function Me(e2, t2, o2, i2, r2) { - for (var n2 = t2 === r2.maxZoom ? 0 : r2.tolerance / ((1 << t2) * r2.extent), s2 = { features: [], numPoints: 0, numSimplified: 0, numFeatures: 0, source: null, x: o2, y: i2, z: t2, transformed: false, minX: 2, minY: 1, maxX: -1, maxY: 0 }, a2 = 0; a2 < e2.length; a2++) { - s2.numFeatures++, Ie(s2, e2[a2], n2, r2); - var l2 = e2[a2].minX, c3 = e2[a2].minY, u2 = e2[a2].maxX, h3 = e2[a2].maxY; - l2 < s2.minX && (s2.minX = l2), c3 < s2.minY && (s2.minY = c3), u2 > s2.maxX && (s2.maxX = u2), h3 > s2.maxY && (s2.maxY = h3); + function de(e2, t2, r2, i2, o2) { + for (var n2 = t2 === o2.maxZoom ? 0 : o2.tolerance / ((1 << t2) * o2.extent), a2 = { features: [], numPoints: 0, numSimplified: 0, numFeatures: 0, source: null, x: r2, y: i2, z: t2, transformed: false, minX: 2, minY: 1, maxX: -1, maxY: 0 }, s2 = 0; s2 < e2.length; s2++) { + a2.numFeatures++, ge(a2, e2[s2], n2, o2); + var l2 = e2[s2].minX, u2 = e2[s2].minY, h3 = e2[s2].maxX, c3 = e2[s2].maxY; + l2 < a2.minX && (a2.minX = l2), u2 < a2.minY && (a2.minY = u2), h3 > a2.maxX && (a2.maxX = h3), c3 > a2.maxY && (a2.maxY = c3); } - return s2; + return a2; } - function Ie(e2, t2, o2, i2) { - var r2 = t2.geometry, n2 = t2.type, s2 = []; + function ge(e2, t2, r2, i2) { + var o2 = t2.geometry, n2 = t2.type, a2 = []; if ("Point" === n2 || "MultiPoint" === n2) - for (var a2 = 0; a2 < r2.length; a2 += 3) - s2.push(r2[a2]), s2.push(r2[a2 + 1]), e2.numPoints++, e2.numSimplified++; + for (var s2 = 0; s2 < o2.length; s2 += 3) + a2.push(o2[s2]), a2.push(o2[s2 + 1]), e2.numPoints++, e2.numSimplified++; else if ("LineString" === n2) - be(s2, r2, e2, o2, false, false); + ve(a2, o2, e2, r2, false, false); else if ("MultiLineString" === n2 || "Polygon" === n2) - for (a2 = 0; a2 < r2.length; a2++) - be(s2, r2[a2], e2, o2, "Polygon" === n2, 0 === a2); + for (s2 = 0; s2 < o2.length; s2++) + ve(a2, o2[s2], e2, r2, "Polygon" === n2, 0 === s2); else if ("MultiPolygon" === n2) - for (var l2 = 0; l2 < r2.length; l2++) { - var c3 = r2[l2]; - for (a2 = 0; a2 < c3.length; a2++) - be(s2, c3[a2], e2, o2, true, 0 === a2); + for (var l2 = 0; l2 < o2.length; l2++) { + var u2 = o2[l2]; + for (s2 = 0; s2 < u2.length; s2++) + ve(a2, u2[s2], e2, r2, true, 0 === s2); } - if (s2.length) { - var u2 = t2.tags || null; + if (a2.length) { + var h3 = t2.tags || null; if ("LineString" === n2 && i2.lineMetrics) { - for (var h3 in u2 = {}, t2.tags) - u2[h3] = t2.tags[h3]; - u2.mapbox_clip_start = r2.start / r2.size, u2.mapbox_clip_end = r2.end / r2.size; + for (var c3 in h3 = {}, t2.tags) + h3[c3] = t2.tags[c3]; + h3.mapbox_clip_start = o2.start / o2.size, h3.mapbox_clip_end = o2.end / o2.size; } - var p3 = { geometry: s2, type: "Polygon" === n2 || "MultiPolygon" === n2 ? 3 : "LineString" === n2 || "MultiLineString" === n2 ? 2 : 1, tags: u2 }; + var p3 = { geometry: a2, type: "Polygon" === n2 || "MultiPolygon" === n2 ? 3 : "LineString" === n2 || "MultiLineString" === n2 ? 2 : 1, tags: h3 }; null !== t2.id && (p3.id = t2.id), e2.features.push(p3); } } - function be(e2, t2, o2, i2, r2, n2) { - var s2 = i2 * i2; - if (i2 > 0 && t2.size < (r2 ? s2 : i2)) - o2.numPoints += t2.length / 3; + function ve(e2, t2, r2, i2, o2, n2) { + var a2 = i2 * i2; + if (i2 > 0 && t2.size < (o2 ? a2 : i2)) + r2.numPoints += t2.length / 3; else { - for (var a2 = [], l2 = 0; l2 < t2.length; l2 += 3) - (0 === i2 || t2[l2 + 2] > s2) && (o2.numSimplified++, a2.push(t2[l2]), a2.push(t2[l2 + 1])), o2.numPoints++; - r2 && function(e3, t3) { - for (var o3 = 0, i3 = 0, r3 = e3.length, n3 = r3 - 2; i3 < r3; n3 = i3, i3 += 2) - o3 += (e3[i3] - e3[n3]) * (e3[i3 + 1] + e3[n3 + 1]); - if (o3 > 0 === t3) - for (i3 = 0, r3 = e3.length; i3 < r3 / 2; i3 += 2) { - var s3 = e3[i3], a3 = e3[i3 + 1]; - e3[i3] = e3[r3 - 2 - i3], e3[i3 + 1] = e3[r3 - 1 - i3], e3[r3 - 2 - i3] = s3, e3[r3 - 1 - i3] = a3; + for (var s2 = [], l2 = 0; l2 < t2.length; l2 += 3) + (0 === i2 || t2[l2 + 2] > a2) && (r2.numSimplified++, s2.push(t2[l2]), s2.push(t2[l2 + 1])), r2.numPoints++; + o2 && function(e3, t3) { + for (var r3 = 0, i3 = 0, o3 = e3.length, n3 = o3 - 2; i3 < o3; n3 = i3, i3 += 2) + r3 += (e3[i3] - e3[n3]) * (e3[i3 + 1] + e3[n3 + 1]); + if (r3 > 0 === t3) + for (i3 = 0, o3 = e3.length; i3 < o3 / 2; i3 += 2) { + var a3 = e3[i3], s3 = e3[i3 + 1]; + e3[i3] = e3[o3 - 2 - i3], e3[i3 + 1] = e3[o3 - 1 - i3], e3[o3 - 2 - i3] = a3, e3[o3 - 1 - i3] = s3; } - }(a2, n2), e2.push(a2); + }(s2, n2), e2.push(s2); } } - function ke(e2, t2) { - var o2 = (t2 = this.options = function(e3, t3) { - for (var o3 in t3) - e3[o3] = t3[o3]; + function me(e2, t2) { + var r2 = (t2 = this.options = function(e3, t3) { + for (var r3 in t3) + e3[r3] = t3[r3]; return e3; }(Object.create(this.options), t2)).debug; - if (o2 && console.time("preprocess data"), t2.maxZoom < 0 || t2.maxZoom > 24) + if (r2 && console.time("preprocess data"), t2.maxZoom < 0 || t2.maxZoom > 24) throw new Error("maxZoom should be in the 0-24 range"); if (t2.promoteId && t2.generateId) throw new Error("promoteId and generateId cannot be used together."); var i2 = function(e3, t3) { - var o3 = []; + var r3 = []; if ("FeatureCollection" === e3.type) for (var i3 = 0; i3 < e3.features.length; i3++) - re(o3, e3.features[i3], t3, i3); + $(r3, e3.features[i3], t3, i3); else - re(o3, "Feature" === e3.type ? e3 : { geometry: e3 }, t3); - return o3; + $(r3, "Feature" === e3.type ? e3 : { geometry: e3 }, t3); + return r3; }(e2, t2); - this.tiles = {}, this.tileCoords = [], o2 && (console.timeEnd("preprocess data"), console.log("index: maxZoom: %d, maxPoints: %d", t2.indexMaxZoom, t2.indexMaxPoints), console.time("generate tiles"), this.stats = {}, this.total = 0), i2 = function(e3, t3) { - var o3 = t3.buffer / t3.extent, i3 = e3, r2 = ue(e3, 1, -1 - o3, o3, 0, -1, 2, t3), n2 = ue(e3, 1, 1 - o3, 2 + o3, 0, -1, 2, t3); - return (r2 || n2) && (i3 = ue(e3, 1, -o3, 1 + o3, 0, -1, 2, t3) || [], r2 && (i3 = ve(r2, 1).concat(i3)), n2 && (i3 = i3.concat(ve(n2, -1)))), i3; - }(i2, t2), i2.length && this.splitTile(i2, 0, 0, 0), o2 && (i2.length && console.log("features: %d, points: %d", this.tiles[0].numFeatures, this.tiles[0].numPoints), console.timeEnd("generate tiles"), console.log("tiles generated:", this.total, JSON.stringify(this.stats))); + this.tiles = {}, this.tileCoords = [], r2 && (console.timeEnd("preprocess data"), console.log("index: maxZoom: %d, maxPoints: %d", t2.indexMaxZoom, t2.indexMaxPoints), console.time("generate tiles"), this.stats = {}, this.total = 0), (i2 = function(e3, t3) { + var r3 = t3.buffer / t3.extent, i3 = e3, o2 = re(e3, 1, -1 - r3, r3, 0, -1, 2, t3), n2 = re(e3, 1, 1 - r3, 2 + r3, 0, -1, 2, t3); + return (o2 || n2) && (i3 = re(e3, 1, -r3, 1 + r3, 0, -1, 2, t3) || [], o2 && (i3 = he(o2, 1).concat(i3)), n2 && (i3 = i3.concat(he(n2, -1)))), i3; + }(i2, t2)).length && this.splitTile(i2, 0, 0, 0), r2 && (i2.length && console.log("features: %d, points: %d", this.tiles[0].numFeatures, this.tiles[0].numPoints), console.timeEnd("generate tiles"), console.log("tiles generated:", this.total, JSON.stringify(this.stats))); } - function Pe(e2, t2, o2) { - return 32 * ((1 << e2) * o2 + t2) + e2; + function ye(e2, t2, r2) { + return 32 * ((1 << e2) * r2 + t2) + e2; } - function Te(e2, t2) { - const o2 = e2.tileID.canonical; + function xe(e2, t2) { + var r2 = e2.tileID.canonical; if (!this._geoJSONIndex) return t2(null, null); - const i2 = this._geoJSONIndex.getTile(o2.z, o2.x, o2.y); + var i2 = this._geoJSONIndex.getTile(r2.z, r2.x, r2.y); if (!i2) return t2(null, null); - const r2 = new g(i2.features); - let n2 = m.exports(r2); - 0 === n2.byteOffset && n2.byteLength === n2.buffer.byteLength || (n2 = new Uint8Array(n2)), t2(null, { vectorTile: r2, rawData: n2.buffer }); - } - ke.prototype.options = { maxZoom: 14, indexMaxZoom: 5, indexMaxPoints: 1e5, tolerance: 3, extent: 4096, buffer: 64, lineMetrics: false, promoteId: null, generateId: false, debug: 0 }, ke.prototype.splitTile = function(e2, t2, o2, i2, r2, n2, s2) { - for (var a2 = [e2, t2, o2, i2], l2 = this.options, c3 = l2.debug; a2.length; ) { - i2 = a2.pop(), o2 = a2.pop(), t2 = a2.pop(), e2 = a2.pop(); - var u2 = 1 << t2, h3 = Pe(t2, o2, i2), p3 = this.tiles[h3]; - if (!p3 && (c3 > 1 && console.time("creation"), p3 = this.tiles[h3] = Me(e2, t2, o2, i2, l2), this.tileCoords.push({ z: t2, x: o2, y: i2 }), c3)) { - c3 > 1 && (console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)", t2, o2, i2, p3.numFeatures, p3.numPoints, p3.numSimplified), console.timeEnd("creation")); + var o2 = new g(i2.features), n2 = w(o2); + 0 === n2.byteOffset && n2.byteLength === n2.buffer.byteLength || (n2 = new Uint8Array(n2)), t2(null, { vectorTile: o2, rawData: n2.buffer }); + } + J.prototype.load = function(e2) { + var t2 = this.options, r2 = t2.log, i2 = t2.minZoom, o2 = t2.maxZoom, n2 = t2.nodeSize; + r2 && console.time("total time"); + var a2 = "prepare " + e2.length + " points"; + r2 && console.time(a2), this.points = e2; + for (var s2 = [], l2 = 0; l2 < e2.length; l2++) + e2[l2].geometry && s2.push(A2(e2[l2], l2)); + this.trees[o2 + 1] = new F(s2, X, W, n2, Float32Array), r2 && console.timeEnd(a2); + for (var u2 = o2; u2 >= i2; u2--) { + var h3 = +Date.now(); + s2 = this._cluster(s2, u2), this.trees[u2] = new F(s2, X, W, n2, Float32Array), r2 && console.log("z%d: %d clusters in %dms", u2, s2.length, +Date.now() - h3); + } + return r2 && console.timeEnd("total time"), this; + }, J.prototype.getClusters = function(e2, t2) { + var r2 = ((e2[0] + 180) % 360 + 360) % 360 - 180, i2 = Math.max(-90, Math.min(90, e2[1])), o2 = 180 === e2[2] ? 180 : ((e2[2] + 180) % 360 + 360) % 360 - 180, n2 = Math.max(-90, Math.min(90, e2[3])); + if (e2[2] - e2[0] >= 360) + r2 = -180, o2 = 180; + else if (r2 > o2) { + var a2 = this.getClusters([r2, i2, 180, n2], t2), s2 = this.getClusters([-180, i2, o2, n2], t2); + return a2.concat(s2); + } + for (var l2 = this.trees[this._limitZoom(t2)], u2 = [], h3 = 0, c3 = l2.range(Y(r2), j(n2), Y(o2), j(i2)); h3 < c3.length; h3 += 1) { + var p3 = l2.points[c3[h3]]; + u2.push(p3.numPoints ? B(p3) : this.points[p3.index]); + } + return u2; + }, J.prototype.getChildren = function(e2) { + var t2 = this._getOriginId(e2), r2 = this._getOriginZoom(e2), i2 = "No cluster with the specified id.", o2 = this.trees[r2]; + if (!o2) + throw new Error(i2); + var n2 = o2.points[t2]; + if (!n2) + throw new Error(i2); + for (var a2 = this.options.radius / (this.options.extent * Math.pow(2, r2 - 1)), s2 = [], l2 = 0, u2 = o2.within(n2.x, n2.y, a2); l2 < u2.length; l2 += 1) { + var h3 = o2.points[u2[l2]]; + h3.parentId === e2 && s2.push(h3.numPoints ? B(h3) : this.points[h3.index]); + } + if (0 === s2.length) + throw new Error(i2); + return s2; + }, J.prototype.getLeaves = function(e2, t2, r2) { + var i2 = []; + return this._appendLeaves(i2, e2, t2 = t2 || 10, r2 = r2 || 0, 0), i2; + }, J.prototype.getTile = function(e2, t2, r2) { + var i2 = this.trees[this._limitZoom(e2)], o2 = Math.pow(2, e2), n2 = this.options, a2 = n2.radius / n2.extent, s2 = (r2 - a2) / o2, l2 = (r2 + 1 + a2) / o2, u2 = { features: [] }; + return this._addTileFeatures(i2.range((t2 - a2) / o2, s2, (t2 + 1 + a2) / o2, l2), i2.points, t2, r2, o2, u2), 0 === t2 && this._addTileFeatures(i2.range(1 - a2 / o2, s2, 1, l2), i2.points, o2, r2, o2, u2), t2 === o2 - 1 && this._addTileFeatures(i2.range(0, s2, a2 / o2, l2), i2.points, -1, r2, o2, u2), u2.features.length ? u2 : null; + }, J.prototype.getClusterExpansionZoom = function(e2) { + for (var t2 = this._getOriginZoom(e2) - 1; t2 <= this.options.maxZoom; ) { + var r2 = this.getChildren(e2); + if (t2++, 1 !== r2.length) + break; + e2 = r2[0].properties.cluster_id; + } + return t2; + }, J.prototype._appendLeaves = function(e2, t2, r2, i2, o2) { + for (var n2 = 0, a2 = this.getChildren(t2); n2 < a2.length; n2 += 1) { + var s2 = a2[n2], l2 = s2.properties; + if (l2 && l2.cluster ? o2 + l2.point_count <= i2 ? o2 += l2.point_count : o2 = this._appendLeaves(e2, l2.cluster_id, r2, i2, o2) : o2 < i2 ? o2++ : e2.push(s2), e2.length === r2) + break; + } + return o2; + }, J.prototype._addTileFeatures = function(e2, t2, r2, i2, o2, n2) { + for (var a2 = 0, s2 = e2; a2 < s2.length; a2 += 1) { + var l2 = t2[s2[a2]], u2 = l2.numPoints, h3 = { type: 1, geometry: [[Math.round(this.options.extent * (l2.x * o2 - r2)), Math.round(this.options.extent * (l2.y * o2 - i2))]], tags: u2 ? G(l2) : this.points[l2.index].properties }, c3 = void 0; + u2 ? c3 = l2.id : this.options.generateId ? c3 = l2.index : this.points[l2.index].id && (c3 = this.points[l2.index].id), void 0 !== c3 && (h3.id = c3), n2.features.push(h3); + } + }, J.prototype._limitZoom = function(e2) { + return Math.max(this.options.minZoom, Math.min(+e2, this.options.maxZoom + 1)); + }, J.prototype._cluster = function(e2, t2) { + for (var r2 = [], i2 = this.options, o2 = i2.reduce, n2 = i2.minPoints, a2 = i2.radius / (i2.extent * Math.pow(2, t2)), s2 = 0; s2 < e2.length; s2++) { + var l2 = e2[s2]; + if (!(l2.zoom <= t2)) { + l2.zoom = t2; + for (var u2 = this.trees[t2 + 1], h3 = u2.within(l2.x, l2.y, a2), c3 = l2.numPoints || 1, p3 = c3, f2 = 0, d2 = h3; f2 < d2.length; f2 += 1) { + var g2 = u2.points[d2[f2]]; + g2.zoom > t2 && (p3 += g2.numPoints || 1); + } + if (p3 >= n2) { + for (var v3 = l2.x * c3, m2 = l2.y * c3, y3 = o2 && c3 > 1 ? this._map(l2, true) : null, x2 = (s2 << 5) + (t2 + 1) + this.points.length, w2 = 0, S2 = h3; w2 < S2.length; w2 += 1) { + var I3 = u2.points[S2[w2]]; + if (!(I3.zoom <= t2)) { + I3.zoom = t2; + var M2 = I3.numPoints || 1; + v3 += I3.x * M2, m2 += I3.y * M2, I3.parentId = x2, o2 && (y3 || (y3 = this._map(l2, true)), o2(y3, this._map(I3))); + } + } + l2.parentId = x2, r2.push(Z2(v3 / p3, m2 / p3, x2, p3, y3)); + } else if (r2.push(l2), p3 > 1) + for (var b2 = 0, _24 = h3; b2 < _24.length; b2 += 1) { + var k2 = u2.points[_24[b2]]; + k2.zoom <= t2 || (k2.zoom = t2, r2.push(k2)); + } + } + } + return r2; + }, J.prototype._getOriginId = function(e2) { + return e2 - this.points.length >> 5; + }, J.prototype._getOriginZoom = function(e2) { + return (e2 - this.points.length) % 32; + }, J.prototype._map = function(e2, t2) { + if (e2.numPoints) + return t2 ? V2({}, e2.properties) : e2.properties; + var r2 = this.points[e2.index].properties, i2 = this.options.map(r2); + return t2 && i2 === r2 ? V2({}, i2) : i2; + }, me.prototype.options = { maxZoom: 14, indexMaxZoom: 5, indexMaxPoints: 1e5, tolerance: 3, extent: 4096, buffer: 64, lineMetrics: false, promoteId: null, generateId: false, debug: 0 }, me.prototype.splitTile = function(e2, t2, r2, i2, o2, n2, a2) { + for (var s2 = [e2, t2, r2, i2], l2 = this.options, u2 = l2.debug; s2.length; ) { + i2 = s2.pop(), r2 = s2.pop(), t2 = s2.pop(), e2 = s2.pop(); + var h3 = 1 << t2, c3 = ye(t2, r2, i2), p3 = this.tiles[c3]; + if (!p3 && (u2 > 1 && console.time("creation"), p3 = this.tiles[c3] = de(e2, t2, r2, i2, l2), this.tileCoords.push({ z: t2, x: r2, y: i2 }), u2)) { + u2 > 1 && (console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)", t2, r2, i2, p3.numFeatures, p3.numPoints, p3.numSimplified), console.timeEnd("creation")); var f2 = "z" + t2; this.stats[f2] = (this.stats[f2] || 0) + 1, this.total++; } - if (p3.source = e2, r2) { - if (t2 === l2.maxZoom || t2 === r2) + if (p3.source = e2, o2) { + if (t2 === l2.maxZoom || t2 === o2) continue; - var d2 = 1 << r2 - t2; - if (o2 !== Math.floor(n2 / d2) || i2 !== Math.floor(s2 / d2)) + var d2 = 1 << o2 - t2; + if (r2 !== Math.floor(n2 / d2) || i2 !== Math.floor(a2 / d2)) continue; } else if (t2 === l2.indexMaxZoom || p3.numPoints <= l2.indexMaxPoints) continue; if (p3.source = null, 0 !== e2.length) { - c3 > 1 && console.time("clipping"); - var g2, m2, y3, v3, x2, w2, S2 = 0.5 * l2.buffer / l2.extent, M2 = 0.5 - S2, I3 = 0.5 + S2, b2 = 1 + S2; - g2 = m2 = y3 = v3 = null, x2 = ue(e2, u2, o2 - S2, o2 + I3, 0, p3.minX, p3.maxX, l2), w2 = ue(e2, u2, o2 + M2, o2 + b2, 0, p3.minX, p3.maxX, l2), e2 = null, x2 && (g2 = ue(x2, u2, i2 - S2, i2 + I3, 1, p3.minY, p3.maxY, l2), m2 = ue(x2, u2, i2 + M2, i2 + b2, 1, p3.minY, p3.maxY, l2), x2 = null), w2 && (y3 = ue(w2, u2, i2 - S2, i2 + I3, 1, p3.minY, p3.maxY, l2), v3 = ue(w2, u2, i2 + M2, i2 + b2, 1, p3.minY, p3.maxY, l2), w2 = null), c3 > 1 && console.timeEnd("clipping"), a2.push(g2 || [], t2 + 1, 2 * o2, 2 * i2), a2.push(m2 || [], t2 + 1, 2 * o2, 2 * i2 + 1), a2.push(y3 || [], t2 + 1, 2 * o2 + 1, 2 * i2), a2.push(v3 || [], t2 + 1, 2 * o2 + 1, 2 * i2 + 1); + u2 > 1 && console.time("clipping"); + var g2, v3, m2, y3, x2, w2, S2 = 0.5 * l2.buffer / l2.extent, I3 = 0.5 - S2, M2 = 0.5 + S2, b2 = 1 + S2; + g2 = v3 = m2 = y3 = null, x2 = re(e2, h3, r2 - S2, r2 + M2, 0, p3.minX, p3.maxX, l2), w2 = re(e2, h3, r2 + I3, r2 + b2, 0, p3.minX, p3.maxX, l2), e2 = null, x2 && (g2 = re(x2, h3, i2 - S2, i2 + M2, 1, p3.minY, p3.maxY, l2), v3 = re(x2, h3, i2 + I3, i2 + b2, 1, p3.minY, p3.maxY, l2), x2 = null), w2 && (m2 = re(w2, h3, i2 - S2, i2 + M2, 1, p3.minY, p3.maxY, l2), y3 = re(w2, h3, i2 + I3, i2 + b2, 1, p3.minY, p3.maxY, l2), w2 = null), u2 > 1 && console.timeEnd("clipping"), s2.push(g2 || [], t2 + 1, 2 * r2, 2 * i2), s2.push(v3 || [], t2 + 1, 2 * r2, 2 * i2 + 1), s2.push(m2 || [], t2 + 1, 2 * r2 + 1, 2 * i2), s2.push(y3 || [], t2 + 1, 2 * r2 + 1, 2 * i2 + 1); } } - }, ke.prototype.getTile = function(e2, t2, o2) { - var i2 = this.options, r2 = i2.extent, n2 = i2.debug; + }, me.prototype.getTile = function(e2, t2, r2) { + var i2 = this.options, o2 = i2.extent, n2 = i2.debug; if (e2 < 0 || e2 > 24) return null; - var s2 = 1 << e2, a2 = Pe(e2, t2 = (t2 % s2 + s2) % s2, o2); - if (this.tiles[a2]) - return we(this.tiles[a2], r2); - n2 > 1 && console.log("drilling down to z%d-%d-%d", e2, t2, o2); - for (var l2, c3 = e2, u2 = t2, h3 = o2; !l2 && c3 > 0; ) - c3--, u2 = Math.floor(u2 / 2), h3 = Math.floor(h3 / 2), l2 = this.tiles[Pe(c3, u2, h3)]; - return l2 && l2.source ? (n2 > 1 && console.log("found parent tile z%d-%d-%d", c3, u2, h3), n2 > 1 && console.time("drilling down"), this.splitTile(l2.source, c3, u2, h3, e2, t2, o2), n2 > 1 && console.timeEnd("drilling down"), this.tiles[a2] ? we(this.tiles[a2], r2) : null) : null; - }; - class Ce extends l { - constructor(e2, t2, o2, i2) { - super(e2, t2, o2, Te), i2 && (this.loadGeoJSON = i2); - } - loadData(t2, o2) { - var i2; - null === (i2 = this._pendingRequest) || void 0 === i2 || i2.cancel(), this._pendingCallback && this._pendingCallback(null, { abandoned: true }); - const r2 = !!(t2 && t2.request && t2.request.collectResourceTiming) && new e.RequestPerformance(t2.request); - this._pendingCallback = o2, this._pendingRequest = this.loadGeoJSON(t2, (i3, n2) => { - if (delete this._pendingCallback, delete this._pendingRequest, i3 || !n2) - return o2(i3); - if ("object" != typeof n2) - return o2(new Error(`Input data given to '${t2.source}' is not a valid GeoJSON object.`)); - { - u(n2, true); + var a2 = 1 << e2, s2 = ye(e2, t2 = (t2 % a2 + a2) % a2, r2); + if (this.tiles[s2]) + return pe(this.tiles[s2], o2); + n2 > 1 && console.log("drilling down to z%d-%d-%d", e2, t2, r2); + for (var l2, u2 = e2, h3 = t2, c3 = r2; !l2 && u2 > 0; ) + u2--, h3 = Math.floor(h3 / 2), c3 = Math.floor(c3 / 2), l2 = this.tiles[ye(u2, h3, c3)]; + return l2 && l2.source ? (n2 > 1 && console.log("found parent tile z%d-%d-%d", u2, h3, c3), n2 > 1 && console.time("drilling down"), this.splitTile(l2.source, u2, h3, c3, e2, t2, r2), n2 > 1 && console.timeEnd("drilling down"), this.tiles[s2] ? pe(this.tiles[s2], o2) : null) : null; + }; + var we = function(t2) { + function r2(e2, r3, i2, o2) { + t2.call(this, e2, r3, i2, xe), o2 && (this.loadGeoJSON = o2); + } + return t2 && (r2.__proto__ = t2), (r2.prototype = Object.create(t2 && t2.prototype)).constructor = r2, r2.prototype.loadData = function(e2, t3) { + this._pendingCallback && this._pendingCallback(null, { abandoned: true }), this._pendingCallback = t3, this._pendingLoadDataParams = e2, this._state && "Idle" !== this._state ? this._state = "NeedsLoadData" : (this._state = "Coalescing", this._loadData()); + }, r2.prototype._loadData = function() { + var t3 = this; + if (this._pendingCallback && this._pendingLoadDataParams) { + var r3 = this._pendingCallback, i2 = this._pendingLoadDataParams; + delete this._pendingCallback, delete this._pendingLoadDataParams; + var o2 = !!(i2 && i2.request && i2.request.collectResourceTiming) && new e.RequestPerformance(i2.request); + this.loadGeoJSON(i2, function(n2, a2) { + if (n2 || !a2) + return r3(n2); + if ("object" != typeof a2) + return r3(new Error("Input data given to '" + i2.source + "' is not a valid GeoJSON object.")); + !function e2(t4, r4) { + var i3, o3 = t4 && t4.type; + if ("FeatureCollection" === o3) + for (i3 = 0; i3 < t4.features.length; i3++) + e2(t4.features[i3], r4); + else if ("GeometryCollection" === o3) + for (i3 = 0; i3 < t4.geometries.length; i3++) + e2(t4.geometries[i3], r4); + else if ("Feature" === o3) + e2(t4.geometry, r4); + else if ("Polygon" === o3) + c2(t4.coordinates, r4); + else if ("MultiPolygon" === o3) + for (i3 = 0; i3 < t4.coordinates.length; i3++) + c2(t4.coordinates[i3], r4); + return t4; + }(a2, true); try { - if (t2.filter) { - const o3 = e.createExpression(t2.filter, { type: "boolean", "property-type": "data-driven", overridable: false, transition: false }); - if ("error" === o3.result) - throw new Error(o3.value.map((e2) => `${e2.key}: ${e2.message}`).join(", ")); - const i4 = n2.features.filter((e2) => o3.value.evaluate({ zoom: 0 }, e2)); - n2 = { type: "FeatureCollection", features: i4 }; + if (i2.filter) { + var s2 = e.createExpression(i2.filter, { type: "boolean", "property-type": "data-driven", overridable: false, transition: false }); + if ("error" === s2.result) + throw new Error(s2.value.map(function(e2) { + return e2.key + ": " + e2.message; + }).join(", ")); + var l2 = a2.features.filter(function(e2) { + return s2.value.evaluate({ zoom: 0 }, e2); + }); + a2 = { type: "FeatureCollection", features: l2 }; } - this._geoJSONIndex = t2.cluster ? new Y(function({ superclusterOptions: t3, clusterProperties: o3 }) { - if (!o3 || !t3) - return t3; - const i4 = {}, r3 = {}, n3 = { accumulated: null, zoom: 0 }, s3 = { properties: null }, a2 = Object.keys(o3); - for (const t4 of a2) { - const [n4, s4] = o3[t4], a3 = e.createExpression(s4), l2 = e.createExpression("string" == typeof n4 ? [n4, ["accumulated"], ["get", t4]] : n4); - i4[t4] = a3.value, r3[t4] = l2.value; + t3._geoJSONIndex = i2.cluster ? new J(function(t4) { + var r4 = t4.superclusterOptions, i3 = t4.clusterProperties; + if (!i3 || !r4) + return r4; + for (var o3 = {}, n3 = {}, a3 = { accumulated: null, zoom: 0 }, s3 = { properties: null }, l3 = Object.keys(i3), u3 = 0, h4 = l3; u3 < h4.length; u3 += 1) { + var c3 = h4[u3], p3 = i3[c3], f2 = p3[0], d2 = e.createExpression(p3[1]), g2 = e.createExpression("string" == typeof f2 ? [f2, ["accumulated"], ["get", c3]] : f2); + o3[c3] = d2.value, n3[c3] = g2.value; } - return t3.map = (e2) => { + return r4.map = function(e2) { s3.properties = e2; - const t4 = {}; - for (const e3 of a2) - t4[e3] = i4[e3].evaluate(n3, s3); - return t4; - }, t3.reduce = (e2, t4) => { - s3.properties = t4; - for (const t5 of a2) - n3.accumulated = e2[t5], e2[t5] = r3[t5].evaluate(n3, s3); - }, t3; - }(t2)).load(n2.features) : function(e2, t3) { - return new ke(e2, t3); - }(n2, t2.geojsonVtOptions); - } catch (i4) { - return o2(i4); + for (var t5 = {}, r5 = 0, i4 = l3; r5 < i4.length; r5 += 1) { + var n4 = i4[r5]; + t5[n4] = o3[n4].evaluate(a3, s3); + } + return t5; + }, r4.reduce = function(e2, t5) { + s3.properties = t5; + for (var r5 = 0, i4 = l3; r5 < i4.length; r5 += 1) { + var o4 = i4[r5]; + a3.accumulated = e2[o4], e2[o4] = n3[o4].evaluate(a3, s3); + } + }, r4; + }(i2)).load(a2.features) : function(e2, t4) { + return new me(e2, t4); + }(a2, i2.geojsonVtOptions); + } catch (n3) { + return r3(n3); } - this.loaded = {}; - const s2 = {}; - if (r2) { - const e2 = r2.finish(); - e2 && (s2.resourceTiming = {}, s2.resourceTiming[t2.source] = JSON.parse(JSON.stringify(e2))); + t3.loaded = {}; + var u2 = {}; + if (o2) { + var h3 = o2.finish(); + h3 && (u2.resourceTiming = {}, u2.resourceTiming[i2.source] = JSON.parse(JSON.stringify(h3))); } - o2(null, s2); - } - }); - } - reloadTile(e2, t2) { - const o2 = this.loaded; - return o2 && o2[e2.uid] ? super.reloadTile(e2, t2) : this.loadTile(e2, t2); - } - loadGeoJSON(t2, o2) { - if (t2.request) - return e.getJSON(t2.request, o2); - if ("string" == typeof t2.data) + r3(null, u2); + }); + } + }, r2.prototype.coalesce = function() { + "Coalescing" === this._state ? this._state = "Idle" : "NeedsLoadData" === this._state && (this._state = "Coalescing", this._loadData()); + }, r2.prototype.reloadTile = function(e2, r3) { + var i2 = this.loaded; + return i2 && i2[e2.uid] ? t2.prototype.reloadTile.call(this, e2, r3) : this.loadTile(e2, r3); + }, r2.prototype.loadGeoJSON = function(t3, r3) { + if (t3.request) + e.getJSON(t3.request, r3); + else { + if ("string" != typeof t3.data) + return r3(new Error("Input data given to '" + t3.source + "' is not a valid GeoJSON object.")); try { - o2(null, JSON.parse(t2.data)); + return r3(null, JSON.parse(t3.data)); } catch (e2) { - o2(new Error(`Input data given to '${t2.source}' is not a valid GeoJSON object.`)); + return r3(new Error("Input data given to '" + t3.source + "' is not a valid GeoJSON object.")); } - else - o2(new Error(`Input data given to '${t2.source}' is not a valid GeoJSON object.`)); - return { cancel: () => { - } }; - } - removeSource(e2, t2) { - this._pendingCallback && this._pendingCallback(null, { abandoned: true }), t2(); - } - getClusterExpansionZoom(e2, t2) { - try { - t2(null, this._geoJSONIndex.getClusterExpansionZoom(e2.clusterId)); - } catch (e3) { - t2(e3); } - } - getClusterChildren(e2, t2) { + }, r2.prototype.removeSource = function(e2, t3) { + this._pendingCallback && this._pendingCallback(null, { abandoned: true }), t3(); + }, r2.prototype.getClusterExpansionZoom = function(e2, t3) { try { - t2(null, this._geoJSONIndex.getChildren(e2.clusterId)); + t3(null, this._geoJSONIndex.getClusterExpansionZoom(e2.clusterId)); } catch (e3) { - t2(e3); + t3(e3); } - } - getClusterLeaves(e2, t2) { + }, r2.prototype.getClusterChildren = function(e2, t3) { try { - t2(null, this._geoJSONIndex.getLeaves(e2.clusterId, e2.limit, e2.offset)); + t3(null, this._geoJSONIndex.getChildren(e2.clusterId)); } catch (e3) { - t2(e3); + t3(e3); } - } - } - class _e { - constructor(t2) { - this.self = t2, this.actor = new e.Actor(t2, this), this.layerIndexes = {}, this.availableImages = {}, this.workerSourceTypes = { vector: l, geojson: Ce }, this.workerSources = {}, this.demWorkerSources = {}, this.self.registerWorkerSource = (e2, t3) => { - if (this.workerSourceTypes[e2]) - throw new Error(`Worker source with name "${e2}" already registered.`); - this.workerSourceTypes[e2] = t3; - }, this.self.registerRTLTextPlugin = (t3) => { - if (e.plugin.isParsed()) - throw new Error("RTL text plugin already registered."); - e.plugin.applyArabicShaping = t3.applyArabicShaping, e.plugin.processBidirectionalText = t3.processBidirectionalText, e.plugin.processStyledBidirectionalText = t3.processStyledBidirectionalText; - }; - } - setReferrer(e2, t2) { - this.referrer = t2; - } - setImages(e2, t2, o2) { - this.availableImages[e2] = t2; - for (const o3 in this.workerSources[e2]) { - const i2 = this.workerSources[e2][o3]; - for (const e3 in i2) - i2[e3].availableImages = t2; - } - o2(); - } - setLayers(e2, t2, o2) { - this.getLayerIndex(e2).replace(t2), o2(); - } - updateLayers(e2, t2, o2) { - this.getLayerIndex(e2).update(t2.layers, t2.removedIds), o2(); - } - loadTile(e2, t2, o2) { - this.getWorkerSource(e2, t2.type, t2.source).loadTile(t2, o2); - } - loadDEMTile(e2, t2, o2) { - this.getDEMWorkerSource(e2, t2.source).loadTile(t2, o2); - } - reloadTile(e2, t2, o2) { - this.getWorkerSource(e2, t2.type, t2.source).reloadTile(t2, o2); - } - abortTile(e2, t2, o2) { - this.getWorkerSource(e2, t2.type, t2.source).abortTile(t2, o2); - } - removeTile(e2, t2, o2) { - this.getWorkerSource(e2, t2.type, t2.source).removeTile(t2, o2); - } - removeDEMTile(e2, t2) { - this.getDEMWorkerSource(e2, t2.source).removeTile(t2); - } - removeSource(e2, t2, o2) { - if (!this.workerSources[e2] || !this.workerSources[e2][t2.type] || !this.workerSources[e2][t2.type][t2.source]) - return; - const i2 = this.workerSources[e2][t2.type][t2.source]; - delete this.workerSources[e2][t2.type][t2.source], void 0 !== i2.removeSource ? i2.removeSource(t2, o2) : o2(); - } - loadWorkerSource(e2, t2, o2) { + }, r2.prototype.getClusterLeaves = function(e2, t3) { try { - this.self.importScripts(t2.url), o2(); + t3(null, this._geoJSONIndex.getLeaves(e2.clusterId, e2.limit, e2.offset)); } catch (e3) { - o2(e3.toString()); - } - } - syncRTLPluginState(t2, o2, i2) { - try { - e.plugin.setState(o2); - const t3 = e.plugin.getPluginURL(); - if (e.plugin.isLoaded() && !e.plugin.isParsed() && null != t3) { - this.self.importScripts(t3); - const o3 = e.plugin.isParsed(); - i2(o3 ? void 0 : new Error(`RTL Text Plugin failed to import scripts from ${t3}`), o3); - } - } catch (e2) { - i2(e2.toString()); - } - } - getAvailableImages(e2) { - let t2 = this.availableImages[e2]; - return t2 || (t2 = []), t2; - } - getLayerIndex(e2) { - let t2 = this.layerIndexes[e2]; - return t2 || (t2 = this.layerIndexes[e2] = new i()), t2; - } - getWorkerSource(e2, t2, o2) { - if (this.workerSources[e2] || (this.workerSources[e2] = {}), this.workerSources[e2][t2] || (this.workerSources[e2][t2] = {}), !this.workerSources[e2][t2][o2]) { - const i2 = { send: (t3, o3, i3) => { - this.actor.send(t3, o3, i3, e2); - } }; - this.workerSources[e2][t2][o2] = new this.workerSourceTypes[t2](i2, this.getLayerIndex(e2), this.getAvailableImages(e2)); - } - return this.workerSources[e2][t2][o2]; - } - getDEMWorkerSource(e2, t2) { - return this.demWorkerSources[e2] || (this.demWorkerSources[e2] = {}), this.demWorkerSources[e2][t2] || (this.demWorkerSources[e2][t2] = new c2()), this.demWorkerSources[e2][t2]; - } - enforceCacheSizeLimit(t2, o2) { - e.enforceCacheSizeLimit(o2); + t3(e3); + } + }, r2; + }(l), Se = function(t2) { + var r2 = this; + this.self = t2, this.actor = new e.Actor(t2, this), this.layerIndexes = {}, this.availableImages = {}, this.workerSourceTypes = { vector: l, geojson: we }, this.workerSources = {}, this.demWorkerSources = {}, this.self.registerWorkerSource = function(e2, t3) { + if (r2.workerSourceTypes[e2]) + throw new Error('Worker source with name "' + e2 + '" already registered.'); + r2.workerSourceTypes[e2] = t3; + }, this.self.registerRTLTextPlugin = function(t3) { + if (e.plugin.isParsed()) + throw new Error("RTL text plugin already registered."); + e.plugin.applyArabicShaping = t3.applyArabicShaping, e.plugin.processBidirectionalText = t3.processBidirectionalText, e.plugin.processStyledBidirectionalText = t3.processStyledBidirectionalText; + }; + }; + return Se.prototype.setReferrer = function(e2, t2) { + this.referrer = t2; + }, Se.prototype.setImages = function(e2, t2, r2) { + for (var i2 in this.availableImages[e2] = t2, this.workerSources[e2]) { + var o2 = this.workerSources[e2][i2]; + for (var n2 in o2) + o2[n2].availableImages = t2; + } + r2(); + }, Se.prototype.setLayers = function(e2, t2, r2) { + this.getLayerIndex(e2).replace(t2), r2(); + }, Se.prototype.updateLayers = function(e2, t2, r2) { + this.getLayerIndex(e2).update(t2.layers, t2.removedIds), r2(); + }, Se.prototype.loadTile = function(e2, t2, r2) { + this.getWorkerSource(e2, t2.type, t2.source).loadTile(t2, r2); + }, Se.prototype.loadDEMTile = function(e2, t2, r2) { + this.getDEMWorkerSource(e2, t2.source).loadTile(t2, r2); + }, Se.prototype.reloadTile = function(e2, t2, r2) { + this.getWorkerSource(e2, t2.type, t2.source).reloadTile(t2, r2); + }, Se.prototype.abortTile = function(e2, t2, r2) { + this.getWorkerSource(e2, t2.type, t2.source).abortTile(t2, r2); + }, Se.prototype.removeTile = function(e2, t2, r2) { + this.getWorkerSource(e2, t2.type, t2.source).removeTile(t2, r2); + }, Se.prototype.removeDEMTile = function(e2, t2) { + this.getDEMWorkerSource(e2, t2.source).removeTile(t2); + }, Se.prototype.removeSource = function(e2, t2, r2) { + if (this.workerSources[e2] && this.workerSources[e2][t2.type] && this.workerSources[e2][t2.type][t2.source]) { + var i2 = this.workerSources[e2][t2.type][t2.source]; + delete this.workerSources[e2][t2.type][t2.source], void 0 !== i2.removeSource ? i2.removeSource(t2, r2) : r2(); + } + }, Se.prototype.loadWorkerSource = function(e2, t2, r2) { + try { + this.self.importScripts(t2.url), r2(); + } catch (e3) { + r2(e3.toString()); } - } - return e.isWorker() && (self.worker = new _e(self)), _e; + }, Se.prototype.syncRTLPluginState = function(t2, r2, i2) { + try { + e.plugin.setState(r2); + var o2 = e.plugin.getPluginURL(); + if (e.plugin.isLoaded() && !e.plugin.isParsed() && null != o2) { + this.self.importScripts(o2); + var n2 = e.plugin.isParsed(); + i2(n2 ? void 0 : new Error("RTL Text Plugin failed to import scripts from " + o2), n2); + } + } catch (e2) { + i2(e2.toString()); + } + }, Se.prototype.getAvailableImages = function(e2) { + var t2 = this.availableImages[e2]; + return t2 || (t2 = []), t2; + }, Se.prototype.getLayerIndex = function(e2) { + var t2 = this.layerIndexes[e2]; + return t2 || (t2 = this.layerIndexes[e2] = new i()), t2; + }, Se.prototype.getWorkerSource = function(e2, t2, r2) { + var i2 = this; + return this.workerSources[e2] || (this.workerSources[e2] = {}), this.workerSources[e2][t2] || (this.workerSources[e2][t2] = {}), this.workerSources[e2][t2][r2] || (this.workerSources[e2][t2][r2] = new this.workerSourceTypes[t2]({ send: function(t3, r3, o2) { + i2.actor.send(t3, r3, o2, e2); + } }, this.getLayerIndex(e2), this.getAvailableImages(e2))), this.workerSources[e2][t2][r2]; + }, Se.prototype.getDEMWorkerSource = function(e2, t2) { + return this.demWorkerSources[e2] || (this.demWorkerSources[e2] = {}), this.demWorkerSources[e2][t2] || (this.demWorkerSources[e2][t2] = new h2()), this.demWorkerSources[e2][t2]; + }, Se.prototype.enforceCacheSizeLimit = function(t2, r2) { + e.enforceCacheSizeLimit(r2); + }, "undefined" != typeof WorkerGlobalScope && "undefined" != typeof self && self instanceof WorkerGlobalScope && (self.worker = new Se(self)), Se; }); define(["./shared"], function(t) { - var e = i; - function i(t2) { - return !function(t3) { + var e = t.createCommonjsModule(function(t2) { + function e2(t3) { + return !i2(t3); + } + function i2(t3) { return "undefined" == typeof window || "undefined" == typeof document ? "not a browser" : Array.prototype && Array.prototype.every && Array.prototype.filter && Array.prototype.forEach && Array.prototype.indexOf && Array.prototype.lastIndexOf && Array.prototype.map && Array.prototype.some && Array.prototype.reduce && Array.prototype.reduceRight && Array.isArray ? Function.prototype && Function.prototype.bind ? Object.keys && Object.create && Object.getPrototypeOf && Object.getOwnPropertyNames && Object.isSealed && Object.isFrozen && Object.isExtensible && Object.getOwnPropertyDescriptor && Object.defineProperty && Object.defineProperties && Object.seal && Object.freeze && Object.preventExtensions ? "JSON" in window && "parse" in JSON && "stringify" in JSON ? function() { if (!("Worker" in window && "Blob" in window && "URL" in window)) return false; - var t4, e3, i2 = new Blob([""], { type: "text/javascript" }), o2 = URL.createObjectURL(i2); + var t4, e3, i4 = new Blob([""], { type: "text/javascript" }), o3 = URL.createObjectURL(i4); try { - e3 = new Worker(o2), t4 = true; + e3 = new Worker(o3), t4 = true; } catch (e4) { t4 = false; } - return e3 && e3.terminate(), URL.revokeObjectURL(o2), t4; + return e3 && e3.terminate(), URL.revokeObjectURL(o3), t4; }() ? "Uint8ClampedArray" in window ? ArrayBuffer.isView ? function() { var t4 = document.createElement("canvas"); t4.width = t4.height = 1; var e3 = t4.getContext("2d"); if (!e3) return false; - var i2 = e3.getImageData(0, 0, 1, 1); - return i2 && i2.width === t4.width; - }() ? (void 0 === o[e2 = t3 && t3.failIfMajorPerformanceCaveat] && (o[e2] = function(t4) { - var e3, o2 = function(t5) { - var e4 = document.createElement("canvas"), o3 = Object.create(i.webGLContextAttributes); - return o3.failIfMajorPerformanceCaveat = t5, e4.getContext("webgl", o3) || e4.getContext("experimental-webgl", o3); + var i4 = e3.getImageData(0, 0, 1, 1); + return i4 && i4.width === t4.width; + }() ? (void 0 === o2[i3 = t3 && t3.failIfMajorPerformanceCaveat] && (o2[i3] = function(t4) { + var i4 = function(t5) { + var i5 = document.createElement("canvas"), o4 = Object.create(e2.webGLContextAttributes); + return o4.failIfMajorPerformanceCaveat = t5, i5.probablySupportsContext ? i5.probablySupportsContext("webgl", o4) || i5.probablySupportsContext("experimental-webgl", o4) : i5.supportsContext ? i5.supportsContext("webgl", o4) || i5.supportsContext("experimental-webgl", o4) : i5.getContext("webgl", o4) || i5.getContext("experimental-webgl", o4); }(t4); - if (!o2) - return false; - try { - e3 = o2.createShader(o2.VERTEX_SHADER); - } catch (t5) { - return false; - } - return !(!e3 || o2.isContextLost()) && (o2.shaderSource(e3, "void main() {}"), o2.compileShader(e3), true === o2.getShaderParameter(e3, o2.COMPILE_STATUS)); - }(e2)), o[e2] ? document.documentMode ? "insufficient ECMAScript 6 support" : void 0 : "insufficient WebGL support") : "insufficient Canvas/getImageData support" : "insufficient ArrayBuffer support" : "insufficient Uint8ClampedArray support" : "insufficient worker support" : "insufficient JSON support" : "insufficient Object support" : "insufficient Function support" : "insufficent Array support"; - var e2; - }(t2); - } - var o = {}; - function a(t2, e2) { - if (Array.isArray(t2)) { - if (!Array.isArray(e2) || t2.length !== e2.length) - return false; - for (let i2 = 0; i2 < t2.length; i2++) - if (!a(t2[i2], e2[i2])) - return false; - return true; - } - if ("object" == typeof t2 && null !== t2 && null !== e2) { - if ("object" != typeof e2) - return false; - if (Object.keys(t2).length !== Object.keys(e2).length) - return false; - for (const i2 in t2) - if (!a(t2[i2], e2[i2])) + if (!i4) return false; - return true; + var o3 = i4.createShader(i4.VERTEX_SHADER); + return !(!o3 || i4.isContextLost()) && (i4.shaderSource(o3, "void main() {}"), i4.compileShader(o3), true === i4.getShaderParameter(o3, i4.COMPILE_STATUS)); + }(i3)), o2[i3] ? void 0 : "insufficient WebGL support") : "insufficient Canvas/getImageData support" : "insufficient ArrayBuffer support" : "insufficient Uint8ClampedArray support" : "insufficient worker support" : "insufficient JSON support" : "insufficient Object support" : "insufficient Function support" : "insufficent Array support"; + var i3; } - return t2 === e2; - } - i.webGLContextAttributes = { antialias: false, alpha: true, stencil: true, depth: true }; - class r { - static testProp(t2) { - if (!r.docStyle) - return t2[0]; - for (let e2 = 0; e2 < t2.length; e2++) - if (t2[e2] in r.docStyle) - return t2[e2]; + t2.exports ? t2.exports = e2 : window && (window.mapboxgl = window.mapboxgl || {}, window.mapboxgl.supported = e2, window.mapboxgl.notSupportedReason = i2); + var o2 = {}; + e2.webGLContextAttributes = { antialias: false, alpha: true, stencil: true, depth: true }; + }), i = { create: function(e2, i2, o2) { + var r2 = t.window.document.createElement(e2); + return void 0 !== i2 && (r2.className = i2), o2 && o2.appendChild(r2), r2; + }, createNS: function(e2, i2) { + return t.window.document.createElementNS(e2, i2); + } }, o = t.window.document && t.window.document.documentElement.style; + function r(t2) { + if (!o) return t2[0]; - } - static create(t2, e2, i2) { - const o2 = window.document.createElement(t2); - return void 0 !== e2 && (o2.className = e2), i2 && i2.appendChild(o2), o2; - } - static createNS(t2, e2) { - return window.document.createElementNS(t2, e2); - } - static disableDrag() { - r.docStyle && r.selectProp && (r.userSelect = r.docStyle[r.selectProp], r.docStyle[r.selectProp] = "none"); - } - static enableDrag() { - r.docStyle && r.selectProp && (r.docStyle[r.selectProp] = r.userSelect); - } - static setTransform(t2, e2) { - t2.style[r.transformProp] = e2; - } - static addEventListener(t2, e2, i2, o2 = {}) { - t2.addEventListener(e2, i2, "passive" in o2 ? o2 : o2.capture); - } - static removeEventListener(t2, e2, i2, o2 = {}) { - t2.removeEventListener(e2, i2, "passive" in o2 ? o2 : o2.capture); - } - static suppressClickInternal(t2) { - t2.preventDefault(), t2.stopPropagation(), window.removeEventListener("click", r.suppressClickInternal, true); - } - static suppressClick() { - window.addEventListener("click", r.suppressClickInternal, true), window.setTimeout(() => { - window.removeEventListener("click", r.suppressClickInternal, true); - }, 0); - } - static mousePos(e2, i2) { - const o2 = e2.getBoundingClientRect(); - return new t.pointGeometry(i2.clientX - o2.left - e2.clientLeft, i2.clientY - o2.top - e2.clientTop); - } - static touchPos(e2, i2) { - const o2 = e2.getBoundingClientRect(), a2 = []; - for (let r2 = 0; r2 < i2.length; r2++) - a2.push(new t.pointGeometry(i2[r2].clientX - o2.left - e2.clientLeft, i2[r2].clientY - o2.top - e2.clientTop)); - return a2; - } - static mouseButton(t2) { - return t2.button; - } - static remove(t2) { - t2.parentNode && t2.parentNode.removeChild(t2); - } - } - r.docStyle = "undefined" != typeof window && window.document && window.document.documentElement.style, r.selectProp = r.testProp(["userSelect", "MozUserSelect", "WebkitUserSelect", "msUserSelect"]), r.transformProp = r.testProp(["transform", "WebkitTransform"]); - class s { - constructor(t2) { - this._transformRequestFn = t2; - } - transformRequest(t2, e2) { - return this._transformRequestFn && this._transformRequestFn(t2, e2) || { url: t2 }; - } - normalizeSpriteURL(t2, e2, i2) { - const o2 = function(t3) { - const e3 = t3.match(n); - if (!e3) - throw new Error(`Unable to parse URL "${t3}"`); - return { protocol: e3[1], authority: e3[2], path: e3[3] || "/", params: e3[4] ? e3[4].split("&") : [] }; - }(t2); - return o2.path += `${e2}${i2}`, function(t3) { - const e3 = t3.params.length ? `?${t3.params.join("&")}` : ""; - return `${t3.protocol}://${t3.authority}${t3.path}${e3}`; - }(o2); - } - setTransformRequest(t2) { - this._transformRequestFn = t2; - } - } - const n = /^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/; - class l { - constructor(t2, e2, i2, o2) { - this.context = t2, this.format = i2, this.texture = t2.gl.createTexture(), this.update(e2, o2); - } - update(e2, i2, o2) { - const { width: a2, height: r2 } = e2, s2 = !(this.size && this.size[0] === a2 && this.size[1] === r2 || o2), { context: n2 } = this, { gl: l2 } = n2; - if (this.useMipmap = Boolean(i2 && i2.useMipmap), l2.bindTexture(l2.TEXTURE_2D, this.texture), n2.pixelStoreUnpackFlipY.set(false), n2.pixelStoreUnpack.set(1), n2.pixelStoreUnpackPremultiplyAlpha.set(this.format === l2.RGBA && (!i2 || false !== i2.premultiply)), s2) - this.size = [a2, r2], e2 instanceof HTMLImageElement || e2 instanceof HTMLCanvasElement || e2 instanceof HTMLVideoElement || e2 instanceof ImageData || t.isImageBitmap(e2) ? l2.texImage2D(l2.TEXTURE_2D, 0, this.format, this.format, l2.UNSIGNED_BYTE, e2) : l2.texImage2D(l2.TEXTURE_2D, 0, this.format, a2, r2, 0, this.format, l2.UNSIGNED_BYTE, e2.data); - else { - const { x: i3, y: s3 } = o2 || { x: 0, y: 0 }; - e2 instanceof HTMLImageElement || e2 instanceof HTMLCanvasElement || e2 instanceof HTMLVideoElement || e2 instanceof ImageData || t.isImageBitmap(e2) ? l2.texSubImage2D(l2.TEXTURE_2D, 0, i3, s3, l2.RGBA, l2.UNSIGNED_BYTE, e2) : l2.texSubImage2D(l2.TEXTURE_2D, 0, i3, s3, a2, r2, l2.RGBA, l2.UNSIGNED_BYTE, e2.data); - } - this.useMipmap && this.isSizePowerOfTwo() && l2.generateMipmap(l2.TEXTURE_2D); - } - bind(t2, e2, i2) { - const { context: o2 } = this, { gl: a2 } = o2; - a2.bindTexture(a2.TEXTURE_2D, this.texture), i2 !== a2.LINEAR_MIPMAP_NEAREST || this.isSizePowerOfTwo() || (i2 = a2.LINEAR), t2 !== this.filter && (a2.texParameteri(a2.TEXTURE_2D, a2.TEXTURE_MAG_FILTER, t2), a2.texParameteri(a2.TEXTURE_2D, a2.TEXTURE_MIN_FILTER, i2 || t2), this.filter = t2), e2 !== this.wrap && (a2.texParameteri(a2.TEXTURE_2D, a2.TEXTURE_WRAP_S, e2), a2.texParameteri(a2.TEXTURE_2D, a2.TEXTURE_WRAP_T, e2), this.wrap = e2); - } - isSizePowerOfTwo() { - return this.size[0] === this.size[1] && Math.log(this.size[0]) / Math.LN2 % 1 == 0; - } - destroy() { - const { gl: t2 } = this.context; - t2.deleteTexture(this.texture), this.texture = null; - } + for (var e2 = 0; e2 < t2.length; e2++) + if (t2[e2] in o) + return t2[e2]; + return t2[0]; + } + var a, n = r(["userSelect", "MozUserSelect", "WebkitUserSelect", "msUserSelect"]); + i.disableDrag = function() { + o && n && (a = o[n], o[n] = "none"); + }, i.enableDrag = function() { + o && n && (o[n] = a); + }; + var s = r(["transform", "WebkitTransform"]); + i.setTransform = function(t2, e2) { + t2.style[s] = e2; + }; + var l = false; + try { + var c2 = Object.defineProperty({}, "passive", { get: function() { + l = true; + } }); + t.window.addEventListener("test", c2, c2), t.window.removeEventListener("test", c2, c2); + } catch (t2) { + l = false; } - function c2(t2) { - const { userImage: e2 } = t2; + i.addEventListener = function(t2, e2, i2, o2) { + void 0 === o2 && (o2 = {}), t2.addEventListener(e2, i2, "passive" in o2 && l ? o2 : o2.capture); + }, i.removeEventListener = function(t2, e2, i2, o2) { + void 0 === o2 && (o2 = {}), t2.removeEventListener(e2, i2, "passive" in o2 && l ? o2 : o2.capture); + }; + var u = function(e2) { + e2.preventDefault(), e2.stopPropagation(), t.window.removeEventListener("click", u, true); + }; + function h2(t2) { + var e2 = t2.userImage; return !!(e2 && e2.render && e2.render()) && (t2.data.replace(new Uint8Array(e2.data.buffer)), true); } - class h2 extends t.Evented { - constructor() { - super(), this.images = {}, this.updatedImages = {}, this.callbackDispatchedThisFrame = {}, this.loaded = false, this.requestors = [], this.patterns = {}, this.atlasImage = new t.RGBAImage({ width: 1, height: 1 }), this.dirty = true; + i.suppressClick = function() { + t.window.addEventListener("click", u, true), t.window.setTimeout(function() { + t.window.removeEventListener("click", u, true); + }, 0); + }, i.mousePos = function(e2, i2) { + var o2 = e2.getBoundingClientRect(); + return new t.Point(i2.clientX - o2.left - e2.clientLeft, i2.clientY - o2.top - e2.clientTop); + }, i.touchPos = function(e2, i2) { + for (var o2 = e2.getBoundingClientRect(), r2 = [], a2 = 0; a2 < i2.length; a2++) + r2.push(new t.Point(i2[a2].clientX - o2.left - e2.clientLeft, i2[a2].clientY - o2.top - e2.clientTop)); + return r2; + }, i.mouseButton = function(e2) { + return void 0 !== t.window.InstallTrigger && 2 === e2.button && e2.ctrlKey && t.window.navigator.platform.toUpperCase().indexOf("MAC") >= 0 ? 0 : e2.button; + }, i.remove = function(t2) { + t2.parentNode && t2.parentNode.removeChild(t2); + }; + var p2 = function(e2) { + function i2() { + e2.call(this), this.images = {}, this.updatedImages = {}, this.callbackDispatchedThisFrame = {}, this.loaded = false, this.requestors = [], this.patterns = {}, this.atlasImage = new t.RGBAImage({ width: 1, height: 1 }), this.dirty = true; } - isLoaded() { + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.isLoaded = function() { return this.loaded; - } - setLoaded(t2) { + }, i2.prototype.setLoaded = function(t2) { if (this.loaded !== t2 && (this.loaded = t2, t2)) { - for (const { ids: t3, callback: e2 } of this.requestors) - this._notify(t3, e2); + for (var e3 = 0, i3 = this.requestors; e3 < i3.length; e3 += 1) { + var o2 = i3[e3]; + this._notify(o2.ids, o2.callback); + } this.requestors = []; } - } - getImage(t2) { + }, i2.prototype.getImage = function(t2) { return this.images[t2]; - } - addImage(t2, e2) { - if (this.images[t2]) - throw new Error(`Image id ${t2} already exist, use updateImage instead`); - this._validate(t2, e2) && (this.images[t2] = e2); - } - _validate(e2, i2) { - let o2 = true; - return this._validateStretch(i2.stretchX, i2.data && i2.data.width) || (this.fire(new t.ErrorEvent(new Error(`Image "${e2}" has invalid "stretchX" value`))), o2 = false), this._validateStretch(i2.stretchY, i2.data && i2.data.height) || (this.fire(new t.ErrorEvent(new Error(`Image "${e2}" has invalid "stretchY" value`))), o2 = false), this._validateContent(i2.content, i2) || (this.fire(new t.ErrorEvent(new Error(`Image "${e2}" has invalid "content" value`))), o2 = false), o2; - } - _validateStretch(t2, e2) { + }, i2.prototype.addImage = function(t2, e3) { + this._validate(t2, e3) && (this.images[t2] = e3); + }, i2.prototype._validate = function(e3, i3) { + var o2 = true; + return this._validateStretch(i3.stretchX, i3.data && i3.data.width) || (this.fire(new t.ErrorEvent(new Error('Image "' + e3 + '" has invalid "stretchX" value'))), o2 = false), this._validateStretch(i3.stretchY, i3.data && i3.data.height) || (this.fire(new t.ErrorEvent(new Error('Image "' + e3 + '" has invalid "stretchY" value'))), o2 = false), this._validateContent(i3.content, i3) || (this.fire(new t.ErrorEvent(new Error('Image "' + e3 + '" has invalid "content" value'))), o2 = false), o2; + }, i2.prototype._validateStretch = function(t2, e3) { if (!t2) return true; - let i2 = 0; - for (const o2 of t2) { - if (o2[0] < i2 || o2[1] < o2[0] || e2 < o2[1]) + for (var i3 = 0, o2 = 0, r2 = t2; o2 < r2.length; o2 += 1) { + var a2 = r2[o2]; + if (a2[0] < i3 || a2[1] < a2[0] || e3 < a2[1]) return false; - i2 = o2[1]; + i3 = a2[1]; } return true; - } - _validateContent(t2, e2) { - return !(t2 && (4 !== t2.length || t2[0] < 0 || e2.data.width < t2[0] || t2[1] < 0 || e2.data.height < t2[1] || t2[2] < 0 || e2.data.width < t2[2] || t2[3] < 0 || e2.data.height < t2[3] || t2[2] < t2[0] || t2[3] < t2[1])); - } - updateImage(t2, e2) { - const i2 = this.images[t2]; - if (i2.data.width !== e2.data.width || i2.data.height !== e2.data.height) - throw new Error(`size mismatch between old image (${i2.data.width}x${i2.data.height}) and new image (${e2.data.width}x${e2.data.height}).`); - e2.version = i2.version + 1, this.images[t2] = e2, this.updatedImages[t2] = true; - } - removeImage(t2) { - const e2 = this.images[t2]; - delete this.images[t2], delete this.patterns[t2], e2.userImage && e2.userImage.onRemove && e2.userImage.onRemove(); - } - listImages() { + }, i2.prototype._validateContent = function(t2, e3) { + return !(t2 && (4 !== t2.length || t2[0] < 0 || e3.data.width < t2[0] || t2[1] < 0 || e3.data.height < t2[1] || t2[2] < 0 || e3.data.width < t2[2] || t2[3] < 0 || e3.data.height < t2[3] || t2[2] < t2[0] || t2[3] < t2[1])); + }, i2.prototype.updateImage = function(t2, e3) { + e3.version = this.images[t2].version + 1, this.images[t2] = e3, this.updatedImages[t2] = true; + }, i2.prototype.removeImage = function(t2) { + var e3 = this.images[t2]; + delete this.images[t2], delete this.patterns[t2], e3.userImage && e3.userImage.onRemove && e3.userImage.onRemove(); + }, i2.prototype.listImages = function() { return Object.keys(this.images); - } - getImages(t2, e2) { - let i2 = true; + }, i2.prototype.getImages = function(t2, e3) { + var i3 = true; if (!this.isLoaded()) - for (const e3 of t2) - this.images[e3] || (i2 = false); - this.isLoaded() || i2 ? this._notify(t2, e2) : this.requestors.push({ ids: t2, callback: e2 }); - } - _notify(e2, i2) { - const o2 = {}; - for (const i3 of e2) { - this.images[i3] || this.fire(new t.Event("styleimagemissing", { id: i3 })); - const e3 = this.images[i3]; - e3 ? o2[i3] = { data: e3.data.clone(), pixelRatio: e3.pixelRatio, sdf: e3.sdf, version: e3.version, stretchX: e3.stretchX, stretchY: e3.stretchY, content: e3.content, hasRenderCallback: Boolean(e3.userImage && e3.userImage.render) } : t.warnOnce(`Image "${i3}" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.`); - } - i2(null, o2); - } - getPixelSize() { - const { width: t2, height: e2 } = this.atlasImage; - return { width: t2, height: e2 }; - } - getPattern(e2) { - const i2 = this.patterns[e2], o2 = this.getImage(e2); + for (var o2 = 0, r2 = t2; o2 < r2.length; o2 += 1) + this.images[r2[o2]] || (i3 = false); + this.isLoaded() || i3 ? this._notify(t2, e3) : this.requestors.push({ ids: t2, callback: e3 }); + }, i2.prototype._notify = function(e3, i3) { + for (var o2 = {}, r2 = 0, a2 = e3; r2 < a2.length; r2 += 1) { + var n2 = a2[r2]; + this.images[n2] || this.fire(new t.Event("styleimagemissing", { id: n2 })); + var s2 = this.images[n2]; + s2 ? o2[n2] = { data: s2.data.clone(), pixelRatio: s2.pixelRatio, sdf: s2.sdf, version: s2.version, stretchX: s2.stretchX, stretchY: s2.stretchY, content: s2.content, hasRenderCallback: Boolean(s2.userImage && s2.userImage.render) } : t.warnOnce('Image "' + n2 + '" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.'); + } + i3(null, o2); + }, i2.prototype.getPixelSize = function() { + var t2 = this.atlasImage; + return { width: t2.width, height: t2.height }; + }, i2.prototype.getPattern = function(e3) { + var i3 = this.patterns[e3], o2 = this.getImage(e3); if (!o2) return null; - if (i2 && i2.position.version === o2.version) - return i2.position; - if (i2) - i2.position.version = o2.version; + if (i3 && i3.position.version === o2.version) + return i3.position; + if (i3) + i3.position.version = o2.version; else { - const i3 = { w: o2.data.width + 2, h: o2.data.height + 2, x: 0, y: 0 }, a2 = new t.ImagePosition(i3, o2); - this.patterns[e2] = { bin: i3, position: a2 }; - } - return this._updatePatternAtlas(), this.patterns[e2].position; - } - bind(t2) { - const e2 = t2.gl; - this.atlasTexture ? this.dirty && (this.atlasTexture.update(this.atlasImage), this.dirty = false) : this.atlasTexture = new l(t2, this.atlasImage, e2.RGBA), this.atlasTexture.bind(e2.LINEAR, e2.CLAMP_TO_EDGE); - } - _updatePatternAtlas() { - const e2 = []; - for (const t2 in this.patterns) - e2.push(this.patterns[t2].bin); - const { w: i2, h: o2 } = t.potpack(e2), a2 = this.atlasImage; - a2.resize({ width: i2 || 1, height: o2 || 1 }); - for (const e3 in this.patterns) { - const { bin: i3 } = this.patterns[e3], o3 = i3.x + 1, r2 = i3.y + 1, s2 = this.images[e3].data, n2 = s2.width, l2 = s2.height; - t.RGBAImage.copy(s2, a2, { x: 0, y: 0 }, { x: o3, y: r2 }, { width: n2, height: l2 }), t.RGBAImage.copy(s2, a2, { x: 0, y: l2 - 1 }, { x: o3, y: r2 - 1 }, { width: n2, height: 1 }), t.RGBAImage.copy(s2, a2, { x: 0, y: 0 }, { x: o3, y: r2 + l2 }, { width: n2, height: 1 }), t.RGBAImage.copy(s2, a2, { x: n2 - 1, y: 0 }, { x: o3 - 1, y: r2 }, { width: 1, height: l2 }), t.RGBAImage.copy(s2, a2, { x: 0, y: 0 }, { x: o3 + n2, y: r2 }, { width: 1, height: l2 }); + var r2 = { w: o2.data.width + 2, h: o2.data.height + 2, x: 0, y: 0 }, a2 = new t.ImagePosition(r2, o2); + this.patterns[e3] = { bin: r2, position: a2 }; + } + return this._updatePatternAtlas(), this.patterns[e3].position; + }, i2.prototype.bind = function(e3) { + var i3 = e3.gl; + this.atlasTexture ? this.dirty && (this.atlasTexture.update(this.atlasImage), this.dirty = false) : this.atlasTexture = new t.Texture(e3, this.atlasImage, i3.RGBA), this.atlasTexture.bind(i3.LINEAR, i3.CLAMP_TO_EDGE); + }, i2.prototype._updatePatternAtlas = function() { + var e3 = []; + for (var i3 in this.patterns) + e3.push(this.patterns[i3].bin); + var o2 = t.potpack(e3), r2 = o2.w, a2 = o2.h, n2 = this.atlasImage; + for (var s2 in n2.resize({ width: r2 || 1, height: a2 || 1 }), this.patterns) { + var l2 = this.patterns[s2].bin, c3 = l2.x + 1, u2 = l2.y + 1, h3 = this.images[s2].data, p3 = h3.width, d2 = h3.height; + t.RGBAImage.copy(h3, n2, { x: 0, y: 0 }, { x: c3, y: u2 }, { width: p3, height: d2 }), t.RGBAImage.copy(h3, n2, { x: 0, y: d2 - 1 }, { x: c3, y: u2 - 1 }, { width: p3, height: 1 }), t.RGBAImage.copy(h3, n2, { x: 0, y: 0 }, { x: c3, y: u2 + d2 }, { width: p3, height: 1 }), t.RGBAImage.copy(h3, n2, { x: p3 - 1, y: 0 }, { x: c3 - 1, y: u2 }, { width: 1, height: d2 }), t.RGBAImage.copy(h3, n2, { x: 0, y: 0 }, { x: c3 + p3, y: u2 }, { width: 1, height: d2 }); } this.dirty = true; - } - beginFrame() { + }, i2.prototype.beginFrame = function() { this.callbackDispatchedThisFrame = {}; - } - dispatchRenderCallbacks(e2) { - for (const i2 of e2) { - if (this.callbackDispatchedThisFrame[i2]) - continue; - this.callbackDispatchedThisFrame[i2] = true; - const e3 = this.images[i2]; - e3 || t.warnOnce(`Image with ID: "${i2}" was not found`), c2(e3) && this.updateImage(i2, e3); + }, i2.prototype.dispatchRenderCallbacks = function(t2) { + for (var e3 = 0, i3 = t2; e3 < i3.length; e3 += 1) { + var o2 = i3[e3]; + if (!this.callbackDispatchedThisFrame[o2]) { + this.callbackDispatchedThisFrame[o2] = true; + var r2 = this.images[o2]; + h2(r2) && this.updateImage(o2, r2); + } } - } - } - const u = 1e20; - function d(t2, e2, i2, o2, a2, r2, s2, n2, l2) { - for (let c3 = e2; c3 < e2 + o2; c3++) - m(t2, i2 * r2 + c3, r2, a2, s2, n2, l2); - for (let c3 = i2; c3 < i2 + a2; c3++) - m(t2, c3 * r2 + e2, 1, o2, s2, n2, l2); - } - function m(t2, e2, i2, o2, a2, r2, s2) { - r2[0] = 0, s2[0] = -u, s2[1] = u, a2[0] = t2[e2]; - for (let n2 = 1, l2 = 0, c3 = 0; n2 < o2; n2++) { - a2[n2] = t2[e2 + n2 * i2]; - const o3 = n2 * n2; - do { - const t3 = r2[l2]; - c3 = (a2[n2] - a2[t3] + o3 - t3 * t3) / (n2 - t3) / 2; - } while (c3 <= s2[l2] && --l2 > -1); - l2++, r2[l2] = n2, s2[l2] = c3, s2[l2 + 1] = u; - } - for (let n2 = 0, l2 = 0; n2 < o2; n2++) { - for (; s2[l2 + 1] < n2; ) - l2++; - const o3 = r2[l2], c3 = n2 - o3; - t2[e2 + n2 * i2] = a2[o3] + c3 * c3; - } - } - class _23 { - constructor(t2, e2) { - this.requestManager = t2, this.localIdeographFontFamily = e2, this.entries = {}; - } - setURL(t2) { - this.url = t2; - } - getGlyphs(e2, i2) { - const o2 = []; - for (const t2 in e2) - for (const i3 of e2[t2]) - o2.push({ stack: t2, id: i3 }); - t.asyncAll(o2, ({ stack: t2, id: e3 }, i3) => { - let o3 = this.entries[t2]; - o3 || (o3 = this.entries[t2] = { glyphs: {}, requests: {}, ranges: {} }); - let a2 = o3.glyphs[e3]; - if (void 0 !== a2) - return void i3(null, { stack: t2, id: e3, glyph: a2 }); - if (a2 = this._tinySDF(o3, t2, e3), a2) - return o3.glyphs[e3] = a2, void i3(null, { stack: t2, id: e3, glyph: a2 }); - const r2 = Math.floor(e3 / 256); - if (256 * r2 > 65535) - return void i3(new Error("glyphs > 65535 not supported")); - if (o3.ranges[r2]) - return void i3(null, { stack: t2, id: e3, glyph: a2 }); - let s2 = o3.requests[r2]; - s2 || (s2 = o3.requests[r2] = [], _23.loadGlyphRange(t2, r2, this.url, this.requestManager, (t3, e4) => { - if (e4) { - for (const t4 in e4) - this._doesCharSupportLocalGlyph(+t4) || (o3.glyphs[+t4] = e4[+t4]); - o3.ranges[r2] = true; - } - for (const i4 of s2) - i4(t3, e4); - delete o3.requests[r2]; - })), s2.push((o4, a3) => { - o4 ? i3(o4) : a3 && i3(null, { stack: t2, id: e3, glyph: a3[e3] || null }); - }); - }, (t2, e3) => { - if (t2) - i2(t2); - else if (e3) { - const t3 = {}; - for (const { stack: i3, id: o3, glyph: a2 } of e3) - (t3[i3] || (t3[i3] = {}))[o3] = a2 && { id: a2.id, bitmap: a2.bitmap.clone(), metrics: a2.metrics }; - i2(null, t3); + }, i2; + }(t.Evented), d = m, _23 = m, f = 1e20; + function m(t2, e2, i2, o2, r2, a2) { + this.fontSize = t2 || 24, this.buffer = void 0 === e2 ? 3 : e2, this.cutoff = o2 || 0.25, this.fontFamily = r2 || "sans-serif", this.fontWeight = a2 || "normal", this.radius = i2 || 8; + var n2 = this.size = this.fontSize + 2 * this.buffer; + this.canvas = document.createElement("canvas"), this.canvas.width = this.canvas.height = n2, this.ctx = this.canvas.getContext("2d"), this.ctx.font = this.fontWeight + " " + this.fontSize + "px " + this.fontFamily, this.ctx.textBaseline = "middle", this.ctx.fillStyle = "black", this.gridOuter = new Float64Array(n2 * n2), this.gridInner = new Float64Array(n2 * n2), this.f = new Float64Array(n2), this.d = new Float64Array(n2), this.z = new Float64Array(n2 + 1), this.v = new Int16Array(n2), this.middle = Math.round(n2 / 2 * (navigator.userAgent.indexOf("Gecko/") >= 0 ? 1.2 : 1)); + } + function g(t2, e2, i2, o2, r2, a2, n2) { + for (var s2 = 0; s2 < e2; s2++) { + for (var l2 = 0; l2 < i2; l2++) + o2[l2] = t2[l2 * e2 + s2]; + for (v2(o2, r2, a2, n2, i2), l2 = 0; l2 < i2; l2++) + t2[l2 * e2 + s2] = r2[l2]; + } + for (l2 = 0; l2 < i2; l2++) { + for (s2 = 0; s2 < e2; s2++) + o2[s2] = t2[l2 * e2 + s2]; + for (v2(o2, r2, a2, n2, e2), s2 = 0; s2 < e2; s2++) + t2[l2 * e2 + s2] = Math.sqrt(r2[s2]); + } + } + function v2(t2, e2, i2, o2, r2) { + i2[0] = 0, o2[0] = -f, o2[1] = +f; + for (var a2 = 1, n2 = 0; a2 < r2; a2++) { + for (var s2 = (t2[a2] + a2 * a2 - (t2[i2[n2]] + i2[n2] * i2[n2])) / (2 * a2 - 2 * i2[n2]); s2 <= o2[n2]; ) + n2--, s2 = (t2[a2] + a2 * a2 - (t2[i2[n2]] + i2[n2] * i2[n2])) / (2 * a2 - 2 * i2[n2]); + i2[++n2] = a2, o2[n2] = s2, o2[n2 + 1] = +f; + } + for (a2 = 0, n2 = 0; a2 < r2; a2++) { + for (; o2[n2 + 1] < a2; ) + n2++; + e2[a2] = (a2 - i2[n2]) * (a2 - i2[n2]) + t2[i2[n2]]; + } + } + m.prototype.draw = function(t2) { + this.ctx.clearRect(0, 0, this.size, this.size), this.ctx.fillText(t2, this.buffer, this.middle); + for (var e2 = this.ctx.getImageData(0, 0, this.size, this.size), i2 = new Uint8ClampedArray(this.size * this.size), o2 = 0; o2 < this.size * this.size; o2++) { + var r2 = e2.data[4 * o2 + 3] / 255; + this.gridOuter[o2] = 1 === r2 ? 0 : 0 === r2 ? f : Math.pow(Math.max(0, 0.5 - r2), 2), this.gridInner[o2] = 1 === r2 ? f : 0 === r2 ? 0 : Math.pow(Math.max(0, r2 - 0.5), 2); + } + for (g(this.gridOuter, this.size, this.size, this.f, this.d, this.v, this.z), g(this.gridInner, this.size, this.size, this.f, this.d, this.v, this.z), o2 = 0; o2 < this.size * this.size; o2++) + i2[o2] = Math.max(0, Math.min(255, Math.round(255 - 255 * ((this.gridOuter[o2] - this.gridInner[o2]) / this.radius + this.cutoff)))); + return i2; + }, d.default = _23; + var y2 = function(t2, e2) { + this.requestManager = t2, this.localIdeographFontFamily = e2, this.entries = {}; + }; + y2.prototype.setURL = function(t2) { + this.url = t2; + }, y2.prototype.getGlyphs = function(e2, i2) { + var o2 = this, r2 = []; + for (var a2 in e2) + for (var n2 = 0, s2 = e2[a2]; n2 < s2.length; n2 += 1) + r2.push({ stack: a2, id: s2[n2] }); + t.asyncAll(r2, function(t2, e3) { + var i3 = t2.stack, r3 = t2.id, a3 = o2.entries[i3]; + a3 || (a3 = o2.entries[i3] = { glyphs: {}, requests: {}, ranges: {} }); + var n3 = a3.glyphs[r3]; + if (void 0 === n3) { + if (n3 = o2._tinySDF(a3, i3, r3)) + return a3.glyphs[r3] = n3, void e3(null, { stack: i3, id: r3, glyph: n3 }); + var s3 = Math.floor(r3 / 256); + if (256 * s3 > 65535) + e3(new Error("glyphs > 65535 not supported")); + else if (a3.ranges[s3]) + e3(null, { stack: i3, id: r3, glyph: n3 }); + else { + var l2 = a3.requests[s3]; + l2 || (l2 = a3.requests[s3] = [], y2.loadGlyphRange(i3, s3, o2.url, o2.requestManager, function(t3, e4) { + if (e4) { + for (var i4 in e4) + o2._doesCharSupportLocalGlyph(+i4) || (a3.glyphs[+i4] = e4[+i4]); + a3.ranges[s3] = true; + } + for (var r4 = 0, n4 = l2; r4 < n4.length; r4 += 1) + (0, n4[r4])(t3, e4); + delete a3.requests[s3]; + })), l2.push(function(t3, o3) { + t3 ? e3(t3) : o3 && e3(null, { stack: i3, id: r3, glyph: o3[r3] || null }); + }); } - }); - } - _doesCharSupportLocalGlyph(e2) { - return !!this.localIdeographFontFamily && (t.unicodeBlockLookup["CJK Unified Ideographs"](e2) || t.unicodeBlockLookup["Hangul Syllables"](e2) || t.unicodeBlockLookup.Hiragana(e2) || t.unicodeBlockLookup.Katakana(e2)); - } - _tinySDF(e2, i2, o2) { - const a2 = this.localIdeographFontFamily; - if (!a2) - return; - if (!this._doesCharSupportLocalGlyph(o2)) - return; - let r2 = e2.tinySDF; - if (!r2) { - let t2 = "400"; - /bold/i.test(i2) ? t2 = "900" : /medium/i.test(i2) ? t2 = "500" : /light/i.test(i2) && (t2 = "200"), r2 = e2.tinySDF = new _23.TinySDF({ fontSize: 24, buffer: 3, radius: 8, cutoff: 0.25, fontFamily: a2, fontWeight: t2 }); + } else + e3(null, { stack: i3, id: r3, glyph: n3 }); + }, function(t2, e3) { + if (t2) + i2(t2); + else if (e3) { + for (var o3 = {}, r3 = 0, a3 = e3; r3 < a3.length; r3 += 1) { + var n3 = a3[r3], s3 = n3.stack, l2 = n3.id, c3 = n3.glyph; + (o3[s3] || (o3[s3] = {}))[l2] = c3 && { id: c3.id, bitmap: c3.bitmap.clone(), metrics: c3.metrics }; + } + i2(null, o3); } - const s2 = r2.draw(String.fromCharCode(o2)); - return { id: o2, bitmap: new t.AlphaImage({ width: s2.width || 30, height: s2.height || 30 }, s2.data), metrics: { width: s2.glyphWidth || 24, height: s2.glyphHeight || 24, left: s2.glyphLeft || 0, top: s2.glyphTop - 27 || -8, advance: s2.glyphAdvance || 24 } }; - } - } - _23.loadGlyphRange = function(e2, i2, o2, a2, r2) { - const s2 = 256 * i2, n2 = s2 + 255, l2 = a2.transformRequest(o2.replace("{fontstack}", e2).replace("{range}", `${s2}-${n2}`), t.ResourceType.Glyphs); - t.getArrayBuffer(l2, (e3, i3) => { + }); + }, y2.prototype._doesCharSupportLocalGlyph = function(e2) { + return !!this.localIdeographFontFamily && (t.isChar["CJK Unified Ideographs"](e2) || t.isChar["Hangul Syllables"](e2) || t.isChar.Hiragana(e2) || t.isChar.Katakana(e2)); + }, y2.prototype._tinySDF = function(e2, i2, o2) { + var r2 = this.localIdeographFontFamily; + if (r2 && this._doesCharSupportLocalGlyph(o2)) { + var a2 = e2.tinySDF; + if (!a2) { + var n2 = "400"; + /bold/i.test(i2) ? n2 = "900" : /medium/i.test(i2) ? n2 = "500" : /light/i.test(i2) && (n2 = "200"), a2 = e2.tinySDF = new y2.TinySDF(24, 3, 8, 0.25, r2, n2); + } + return { id: o2, bitmap: new t.AlphaImage({ width: 30, height: 30 }, a2.draw(String.fromCharCode(o2))), metrics: { width: 24, height: 24, left: 0, top: -8, advance: 24 } }; + } + }, y2.loadGlyphRange = function(e2, i2, o2, r2, a2) { + var n2 = 256 * i2, s2 = n2 + 255, l2 = r2.transformRequest(r2.normalizeGlyphsURL(o2).replace("{fontstack}", e2).replace("{range}", n2 + "-" + s2), t.ResourceType.Glyphs); + t.getArrayBuffer(l2, function(e3, i3) { if (e3) - r2(e3); + a2(e3); else if (i3) { - const e4 = {}; - for (const o3 of t.parseGlyphPbf(i3)) - e4[o3.id] = o3; - r2(null, e4); - } - }); - }, _23.TinySDF = class { - constructor({ fontSize: t2 = 24, buffer: e2 = 3, radius: i2 = 8, cutoff: o2 = 0.25, fontFamily: a2 = "sans-serif", fontWeight: r2 = "normal", fontStyle: s2 = "normal" } = {}) { - this.buffer = e2, this.cutoff = o2, this.radius = i2; - const n2 = this.size = t2 + 4 * e2, l2 = this._createCanvas(n2), c3 = this.ctx = l2.getContext("2d", { willReadFrequently: true }); - c3.font = `${s2} ${r2} ${t2}px ${a2}`, c3.textBaseline = "alphabetic", c3.textAlign = "left", c3.fillStyle = "black", this.gridOuter = new Float64Array(n2 * n2), this.gridInner = new Float64Array(n2 * n2), this.f = new Float64Array(n2), this.z = new Float64Array(n2 + 1), this.v = new Uint16Array(n2); - } - _createCanvas(t2) { - const e2 = document.createElement("canvas"); - return e2.width = e2.height = t2, e2; - } - draw(t2) { - const { width: e2, actualBoundingBoxAscent: i2, actualBoundingBoxDescent: o2, actualBoundingBoxLeft: a2, actualBoundingBoxRight: r2 } = this.ctx.measureText(t2), s2 = Math.ceil(i2), n2 = Math.min(this.size - this.buffer, Math.ceil(r2 - a2)), l2 = Math.min(this.size - this.buffer, s2 + Math.ceil(o2)), c3 = n2 + 2 * this.buffer, h3 = l2 + 2 * this.buffer, m2 = Math.max(c3 * h3, 0), _24 = new Uint8ClampedArray(m2), p3 = { data: _24, width: c3, height: h3, glyphWidth: n2, glyphHeight: l2, glyphTop: s2, glyphLeft: 0, glyphAdvance: e2 }; - if (0 === n2 || 0 === l2) - return p3; - const { ctx: f2, buffer: g2, gridInner: x2, gridOuter: v3 } = this; - f2.clearRect(g2, g2, n2, l2), f2.fillText(t2, g2, g2 + s2); - const y3 = f2.getImageData(g2, g2, n2, l2); - v3.fill(u, 0, m2), x2.fill(0, 0, m2); - for (let t3 = 0; t3 < l2; t3++) - for (let e3 = 0; e3 < n2; e3++) { - const i3 = y3.data[4 * (t3 * n2 + e3) + 3] / 255; - if (0 === i3) - continue; - const o3 = (t3 + g2) * c3 + e3 + g2; - if (1 === i3) - v3[o3] = 0, x2[o3] = u; - else { - const t4 = 0.5 - i3; - v3[o3] = t4 > 0 ? t4 * t4 : 0, x2[o3] = t4 < 0 ? t4 * t4 : 0; - } + for (var o3 = {}, r3 = 0, n3 = t.parseGlyphPBF(i3); r3 < n3.length; r3 += 1) { + var s3 = n3[r3]; + o3[s3.id] = s3; } - d(v3, 0, 0, c3, h3, c3, this.f, this.v, this.z), d(x2, g2, g2, n2, l2, c3, this.f, this.v, this.z); - for (let t3 = 0; t3 < m2; t3++) { - const e3 = Math.sqrt(v3[t3]) - Math.sqrt(x2[t3]); - _24[t3] = Math.round(255 - 255 * (e3 / this.radius + this.cutoff)); + a2(null, o3); } - return p3; - } + }); + }, y2.TinySDF = d; + var x = function() { + this.specification = t.styleSpec.light.position; }; - const p2 = new t.Properties({ anchor: new t.DataConstantProperty(t.spec.light.anchor), position: new class { - constructor() { - this.specification = t.spec.light.position; - } - possiblyEvaluate(e2, i2) { - return t.sphericalToCartesian(e2.expression.evaluate(i2)); - } - interpolate(e2, i2, o2) { - return { x: t.number(e2.x, i2.x, o2), y: t.number(e2.y, i2.y, o2), z: t.number(e2.z, i2.z, o2) }; - } - }(), color: new t.DataConstantProperty(t.spec.light.color), intensity: new t.DataConstantProperty(t.spec.light.intensity) }), f = "-transition"; - class g extends t.Evented { - constructor(e2) { - super(), this._transitionable = new t.Transitionable(p2), this.setLight(e2), this._transitioning = this._transitionable.untransitioned(); + x.prototype.possiblyEvaluate = function(e2, i2) { + return t.sphericalToCartesian(e2.expression.evaluate(i2)); + }, x.prototype.interpolate = function(e2, i2, o2) { + return { x: t.number(e2.x, i2.x, o2), y: t.number(e2.y, i2.y, o2), z: t.number(e2.z, i2.z, o2) }; + }; + var b = new t.Properties({ anchor: new t.DataConstantProperty(t.styleSpec.light.anchor), position: new x(), color: new t.DataConstantProperty(t.styleSpec.light.color), intensity: new t.DataConstantProperty(t.styleSpec.light.intensity) }), w = function(e2) { + function i2(i3) { + e2.call(this), this._transitionable = new t.Transitionable(b), this.setLight(i3), this._transitioning = this._transitionable.untransitioned(); } - getLight() { + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.getLight = function() { return this._transitionable.serialize(); - } - setLight(e2, i2 = {}) { - if (!this._validate(t.validateLight, e2, i2)) - for (const t2 in e2) { - const i3 = e2[t2]; - t2.endsWith(f) ? this._transitionable.setTransition(t2.slice(0, -f.length), i3) : this._transitionable.setValue(t2, i3); + }, i2.prototype.setLight = function(e3, i3) { + if (void 0 === i3 && (i3 = {}), !this._validate(t.validateLight, e3, i3)) + for (var o2 in e3) { + var r2 = e3[o2]; + t.endsWith(o2, "-transition") ? this._transitionable.setTransition(o2.slice(0, -"-transition".length), r2) : this._transitionable.setValue(o2, r2); } - } - updateTransitions(t2) { + }, i2.prototype.updateTransitions = function(t2) { this._transitioning = this._transitionable.transitioned(t2, this._transitioning); - } - hasTransition() { + }, i2.prototype.hasTransition = function() { return this._transitioning.hasTransition(); - } - recalculate(t2) { + }, i2.prototype.recalculate = function(t2) { this.properties = this._transitioning.possiblyEvaluate(t2); + }, i2.prototype._validate = function(e3, i3, o2) { + return (!o2 || false !== o2.validate) && t.emitValidationErrors(this, e3.call(t.validateStyle, t.extend({ value: i3, style: { glyphs: true, sprite: true }, styleSpec: t.styleSpec }))); + }, i2; + }(t.Evented), T = function(t2, e2) { + this.width = t2, this.height = e2, this.nextRow = 0, this.data = new Uint8Array(this.width * this.height), this.dashEntry = {}; + }; + T.prototype.getDash = function(t2, e2) { + var i2 = t2.join(",") + String(e2); + return this.dashEntry[i2] || (this.dashEntry[i2] = this.addDash(t2, e2)), this.dashEntry[i2]; + }, T.prototype.getDashRanges = function(t2, e2, i2) { + var o2 = [], r2 = t2.length % 2 == 1 ? -t2[t2.length - 1] * i2 : 0, a2 = t2[0] * i2, n2 = true; + o2.push({ left: r2, right: a2, isDash: n2, zeroLength: 0 === t2[0] }); + for (var s2 = t2[0], l2 = 1; l2 < t2.length; l2++) { + var c3 = t2[l2]; + o2.push({ left: r2 = s2 * i2, right: a2 = (s2 += c3) * i2, isDash: n2 = !n2, zeroLength: 0 === c3 }); } - _validate(e2, i2, o2) { - return (!o2 || false !== o2.validate) && t.emitValidationErrors(this, e2.call(t.validateStyle, t.extend({ value: i2, style: { glyphs: true, sprite: true }, styleSpec: t.spec }))); - } - } - class x { - constructor(t2, e2) { - this.width = t2, this.height = e2, this.nextRow = 0, this.data = new Uint8Array(this.width * this.height), this.dashEntry = {}; - } - getDash(t2, e2) { - const i2 = t2.join(",") + String(e2); - return this.dashEntry[i2] || (this.dashEntry[i2] = this.addDash(t2, e2)), this.dashEntry[i2]; - } - getDashRanges(t2, e2, i2) { - const o2 = []; - let a2 = t2.length % 2 == 1 ? -t2[t2.length - 1] * i2 : 0, r2 = t2[0] * i2, s2 = true; - o2.push({ left: a2, right: r2, isDash: s2, zeroLength: 0 === t2[0] }); - let n2 = t2[0]; - for (let e3 = 1; e3 < t2.length; e3++) { - s2 = !s2; - const l2 = t2[e3]; - a2 = n2 * i2, n2 += l2, r2 = n2 * i2, o2.push({ left: a2, right: r2, isDash: s2, zeroLength: 0 === l2 }); - } - return o2; - } - addRoundDash(t2, e2, i2) { - const o2 = e2 / 2; - for (let e3 = -i2; e3 <= i2; e3++) { - const a2 = this.width * (this.nextRow + i2 + e3); - let r2 = 0, s2 = t2[r2]; - for (let n2 = 0; n2 < this.width; n2++) { - n2 / s2.right > 1 && (s2 = t2[++r2]); - const l2 = Math.abs(n2 - s2.left), c3 = Math.abs(n2 - s2.right), h3 = Math.min(l2, c3); - let u2; - const d2 = e3 / i2 * (o2 + 1); - if (s2.isDash) { - const t3 = o2 - Math.abs(d2); - u2 = Math.sqrt(h3 * h3 + t3 * t3); - } else - u2 = o2 - Math.sqrt(h3 * h3 + d2 * d2); - this.data[a2 + n2] = Math.max(0, Math.min(255, u2 + 128)); - } - } - } - addRegularDash(t2) { - for (let e3 = t2.length - 1; e3 >= 0; --e3) { - const i3 = t2[e3], o3 = t2[e3 + 1]; - i3.zeroLength ? t2.splice(e3, 1) : o3 && o3.isDash === i3.isDash && (o3.left = i3.left, t2.splice(e3, 1)); - } - const e2 = t2[0], i2 = t2[t2.length - 1]; - e2.isDash === i2.isDash && (e2.left = i2.left - this.width, i2.right = e2.right + this.width); - const o2 = this.width * this.nextRow; - let a2 = 0, r2 = t2[a2]; - for (let e3 = 0; e3 < this.width; e3++) { - e3 / r2.right > 1 && (r2 = t2[++a2]); - const i3 = Math.abs(e3 - r2.left), s2 = Math.abs(e3 - r2.right), n2 = Math.min(i3, s2); - this.data[o2 + e3] = Math.max(0, Math.min(255, (r2.isDash ? n2 : -n2) + 128)); - } - } - addDash(e2, i2) { - const o2 = i2 ? 7 : 0, a2 = 2 * o2 + 1; - if (this.nextRow + a2 > this.height) - return t.warnOnce("LineAtlas out of space"), null; - let r2 = 0; - for (let t2 = 0; t2 < e2.length; t2++) - r2 += e2[t2]; - if (0 !== r2) { - const t2 = this.width / r2, a3 = this.getDashRanges(e2, this.width, t2); - i2 ? this.addRoundDash(a3, t2, o2) : this.addRegularDash(a3); - } - const s2 = { y: (this.nextRow + o2 + 0.5) / this.height, height: 2 * o2 / this.height, width: r2 }; - return this.nextRow += a2, this.dirty = true, s2; - } - bind(t2) { - const e2 = t2.gl; - this.texture ? (e2.bindTexture(e2.TEXTURE_2D, this.texture), this.dirty && (this.dirty = false, e2.texSubImage2D(e2.TEXTURE_2D, 0, 0, 0, this.width, this.height, e2.ALPHA, e2.UNSIGNED_BYTE, this.data))) : (this.texture = e2.createTexture(), e2.bindTexture(e2.TEXTURE_2D, this.texture), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_WRAP_S, e2.REPEAT), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_WRAP_T, e2.REPEAT), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_MIN_FILTER, e2.LINEAR), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_MAG_FILTER, e2.LINEAR), e2.texImage2D(e2.TEXTURE_2D, 0, e2.ALPHA, this.width, this.height, 0, e2.ALPHA, e2.UNSIGNED_BYTE, this.data)); - } - } - class v2 { - constructor(e2, i2) { - this.workerPool = e2, this.actors = [], this.currentActor = 0, this.id = t.uniqueId(); - const o2 = this.workerPool.acquire(this.id); - for (let t2 = 0; t2 < o2.length; t2++) { - const e3 = new v2.Actor(o2[t2], i2, this.id); - e3.name = `Worker ${t2}`, this.actors.push(e3); - } - if (!this.actors.length) - throw new Error("No actors found"); - } - broadcast(e2, i2, o2) { - t.asyncAll(this.actors, (t2, o3) => { - t2.send(e2, i2, o3); - }, o2 = o2 || function() { - }); - } - getActor() { - return this.currentActor = (this.currentActor + 1) % this.actors.length, this.actors[this.currentActor]; - } - remove() { - this.actors.forEach((t2) => { - t2.remove(); - }), this.actors = [], this.workerPool.release(this.id); + return o2; + }, T.prototype.addRoundDash = function(t2, e2, i2) { + for (var o2 = e2 / 2, r2 = -i2; r2 <= i2; r2++) + for (var a2 = this.width * (this.nextRow + i2 + r2), n2 = 0, s2 = t2[n2], l2 = 0; l2 < this.width; l2++) { + l2 / s2.right > 1 && (s2 = t2[++n2]); + var c3 = Math.abs(l2 - s2.left), u2 = Math.abs(l2 - s2.right), h3 = Math.min(c3, u2), p3 = void 0, d2 = r2 / i2 * (o2 + 1); + if (s2.isDash) { + var _24 = o2 - Math.abs(d2); + p3 = Math.sqrt(h3 * h3 + _24 * _24); + } else + p3 = o2 - Math.sqrt(h3 * h3 + d2 * d2); + this.data[a2 + l2] = Math.max(0, Math.min(255, p3 + 128)); + } + }, T.prototype.addRegularDash = function(t2) { + for (var e2 = t2.length - 1; e2 >= 0; --e2) { + var i2 = t2[e2], o2 = t2[e2 + 1]; + i2.zeroLength ? t2.splice(e2, 1) : o2 && o2.isDash === i2.isDash && (o2.left = i2.left, t2.splice(e2, 1)); + } + var r2 = t2[0], a2 = t2[t2.length - 1]; + r2.isDash === a2.isDash && (r2.left = a2.left - this.width, a2.right = r2.right + this.width); + for (var n2 = this.width * this.nextRow, s2 = 0, l2 = t2[s2], c3 = 0; c3 < this.width; c3++) { + c3 / l2.right > 1 && (l2 = t2[++s2]); + var u2 = Math.abs(c3 - l2.left), h3 = Math.abs(c3 - l2.right), p3 = Math.min(u2, h3); + this.data[n2 + c3] = Math.max(0, Math.min(255, (l2.isDash ? p3 : -p3) + 128)); + } + }, T.prototype.addDash = function(e2, i2) { + var o2 = i2 ? 7 : 0, r2 = 2 * o2 + 1; + if (this.nextRow + r2 > this.height) + return t.warnOnce("LineAtlas out of space"), null; + for (var a2 = 0, n2 = 0; n2 < e2.length; n2++) + a2 += e2[n2]; + if (0 !== a2) { + var s2 = this.width / a2, l2 = this.getDashRanges(e2, this.width, s2); + i2 ? this.addRoundDash(l2, s2, o2) : this.addRegularDash(l2); + } + var c3 = { y: (this.nextRow + o2 + 0.5) / this.height, height: 2 * o2 / this.height, width: a2 }; + return this.nextRow += r2, this.dirty = true, c3; + }, T.prototype.bind = function(t2) { + var e2 = t2.gl; + this.texture ? (e2.bindTexture(e2.TEXTURE_2D, this.texture), this.dirty && (this.dirty = false, e2.texSubImage2D(e2.TEXTURE_2D, 0, 0, 0, this.width, this.height, e2.ALPHA, e2.UNSIGNED_BYTE, this.data))) : (this.texture = e2.createTexture(), e2.bindTexture(e2.TEXTURE_2D, this.texture), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_WRAP_S, e2.REPEAT), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_WRAP_T, e2.REPEAT), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_MIN_FILTER, e2.LINEAR), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_MAG_FILTER, e2.LINEAR), e2.texImage2D(e2.TEXTURE_2D, 0, e2.ALPHA, this.width, this.height, 0, e2.ALPHA, e2.UNSIGNED_BYTE, this.data)); + }; + var E = function e2(i2, o2) { + this.workerPool = i2, this.actors = [], this.currentActor = 0, this.id = t.uniqueId(); + for (var r2 = this.workerPool.acquire(this.id), a2 = 0; a2 < r2.length; a2++) { + var n2 = new e2.Actor(r2[a2], o2, this.id); + n2.name = "Worker " + a2, this.actors.push(n2); } - } - function y2(e2, i2, o2) { - const a2 = function(i3, a3) { - if (i3) - return o2(i3); - if (a3) { - const i4 = t.pick(t.extend(a3, e2), ["tiles", "minzoom", "maxzoom", "attribution", "bounds", "scheme", "tileSize", "encoding"]); - a3.vector_layers && (i4.vectorLayers = a3.vector_layers, i4.vectorLayerIds = i4.vectorLayers.map((t2) => t2.id)), o2(null, i4); + }; + function I2(e2, i2, o2) { + var r2 = function(r3, a2) { + if (r3) + return o2(r3); + if (a2) { + var n2 = t.pick(t.extend(a2, e2), ["tiles", "minzoom", "maxzoom", "attribution", "mapbox_logo", "bounds", "scheme", "tileSize", "encoding"]); + a2.vector_layers && (n2.vectorLayers = a2.vector_layers, n2.vectorLayerIds = n2.vectorLayers.map(function(t2) { + return t2.id; + })), n2.tiles = i2.canonicalizeTileset(n2, e2.url), o2(null, n2); } }; - return e2.url ? t.getJSON(i2.transformRequest(e2.url, t.ResourceType.Source), a2) : t.exported.frame(() => a2(null, e2)); - } - v2.Actor = t.Actor; - class b { - constructor(e2, i2, o2) { - this.bounds = t.LngLatBounds.convert(this.validateBounds(e2)), this.minzoom = i2 || 0, this.maxzoom = o2 || 24; - } - validateBounds(t2) { - return Array.isArray(t2) && 4 === t2.length ? [Math.max(-180, t2[0]), Math.max(-90, t2[1]), Math.min(180, t2[2]), Math.min(90, t2[3])] : [-180, -90, 180, 90]; - } - contains(e2) { - const i2 = Math.pow(2, e2.z), o2 = Math.floor(t.mercatorXfromLng(this.bounds.getWest()) * i2), a2 = Math.floor(t.mercatorYfromLat(this.bounds.getNorth()) * i2), r2 = Math.ceil(t.mercatorXfromLng(this.bounds.getEast()) * i2), s2 = Math.ceil(t.mercatorYfromLat(this.bounds.getSouth()) * i2); - return e2.x >= o2 && e2.x < r2 && e2.y >= a2 && e2.y < s2; - } + return e2.url ? t.getJSON(i2.transformRequest(i2.normalizeSourceURL(e2.url), t.ResourceType.Source), r2) : t.browser.frame(function() { + return r2(null, e2); + }); } - class w extends t.Evented { - constructor(e2, i2, o2, a2) { - if (super(), this.id = e2, this.dispatcher = o2, this.type = "vector", this.minzoom = 0, this.maxzoom = 22, this.scheme = "xyz", this.tileSize = 512, this.reparseOverscaled = true, this.isTileClipped = true, this._loaded = false, t.extend(this, t.pick(i2, ["url", "scheme", "tileSize", "promoteId"])), this._options = t.extend({ type: "vector" }, i2), this._collectResourceTiming = i2.collectResourceTiming, 512 !== this.tileSize) + E.prototype.broadcast = function(e2, i2, o2) { + t.asyncAll(this.actors, function(t2, o3) { + t2.send(e2, i2, o3); + }, o2 = o2 || function() { + }); + }, E.prototype.getActor = function() { + return this.currentActor = (this.currentActor + 1) % this.actors.length, this.actors[this.currentActor]; + }, E.prototype.remove = function() { + this.actors.forEach(function(t2) { + t2.remove(); + }), this.actors = [], this.workerPool.release(this.id); + }, E.Actor = t.Actor; + var P = function(e2, i2, o2) { + this.bounds = t.LngLatBounds.convert(this.validateBounds(e2)), this.minzoom = i2 || 0, this.maxzoom = o2 || 24; + }; + P.prototype.validateBounds = function(t2) { + return Array.isArray(t2) && 4 === t2.length ? [Math.max(-180, t2[0]), Math.max(-90, t2[1]), Math.min(180, t2[2]), Math.min(90, t2[3])] : [-180, -90, 180, 90]; + }, P.prototype.contains = function(e2) { + var i2 = Math.pow(2, e2.z), o2 = Math.floor(t.mercatorXfromLng(this.bounds.getWest()) * i2), r2 = Math.floor(t.mercatorYfromLat(this.bounds.getNorth()) * i2), a2 = Math.ceil(t.mercatorXfromLng(this.bounds.getEast()) * i2), n2 = Math.ceil(t.mercatorYfromLat(this.bounds.getSouth()) * i2); + return e2.x >= o2 && e2.x < a2 && e2.y >= r2 && e2.y < n2; + }; + var S = function(e2) { + function i2(i3, o2, r2, a2) { + if (e2.call(this), this.id = i3, this.dispatcher = r2, this.type = "vector", this.minzoom = 0, this.maxzoom = 22, this.scheme = "xyz", this.tileSize = 512, this.reparseOverscaled = true, this.isTileClipped = true, this._loaded = false, t.extend(this, t.pick(o2, ["url", "scheme", "tileSize", "promoteId"])), this._options = t.extend({ type: "vector" }, o2), this._collectResourceTiming = o2.collectResourceTiming, 512 !== this.tileSize) throw new Error("vector tile sources must have a tileSize of 512"); this.setEventedParent(a2); } - load() { - this._loaded = false, this.fire(new t.Event("dataloading", { dataType: "source" })), this._tileJSONRequest = y2(this._options, this.map._requestManager, (e2, i2) => { - this._tileJSONRequest = null, this._loaded = true, this.map.style.sourceCaches[this.id].clearTiles(), e2 ? this.fire(new t.ErrorEvent(e2)) : i2 && (t.extend(this, i2), i2.bounds && (this.tileBounds = new b(i2.bounds, this.minzoom, this.maxzoom)), this.fire(new t.Event("data", { dataType: "source", sourceDataType: "metadata" })), this.fire(new t.Event("data", { dataType: "source", sourceDataType: "content" }))); + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.load = function() { + var e3 = this; + this._loaded = false, this.fire(new t.Event("dataloading", { dataType: "source" })), this._tileJSONRequest = I2(this._options, this.map._requestManager, function(i3, o2) { + e3._tileJSONRequest = null, e3._loaded = true, i3 ? e3.fire(new t.ErrorEvent(i3)) : o2 && (t.extend(e3, o2), o2.bounds && (e3.tileBounds = new P(o2.bounds, e3.minzoom, e3.maxzoom)), t.postTurnstileEvent(o2.tiles, e3.map._requestManager._customAccessToken), t.postMapLoadEvent(o2.tiles, e3.map._getMapId(), e3.map._requestManager._skuToken, e3.map._requestManager._customAccessToken), e3.fire(new t.Event("data", { dataType: "source", sourceDataType: "metadata" })), e3.fire(new t.Event("data", { dataType: "source", sourceDataType: "content" }))); }); - } - loaded() { + }, i2.prototype.loaded = function() { return this._loaded; - } - hasTile(t2) { + }, i2.prototype.hasTile = function(t2) { return !this.tileBounds || this.tileBounds.contains(t2.canonical); - } - onAdd(t2) { + }, i2.prototype.onAdd = function(t2) { this.map = t2, this.load(); - } - setSourceProperty(t2) { - this._tileJSONRequest && this._tileJSONRequest.cancel(), t2(), this.load(); - } - setTiles(t2) { - return this.setSourceProperty(() => { - this._options.tiles = t2; + }, i2.prototype.setSourceProperty = function(t2) { + this._tileJSONRequest && this._tileJSONRequest.cancel(), t2(), this.map.style.sourceCaches[this.id].clearTiles(), this.load(); + }, i2.prototype.setTiles = function(t2) { + var e3 = this; + return this.setSourceProperty(function() { + e3._options.tiles = t2; }), this; - } - setUrl(t2) { - return this.setSourceProperty(() => { - this.url = t2, this._options.url = t2; + }, i2.prototype.setUrl = function(t2) { + var e3 = this; + return this.setSourceProperty(function() { + e3.url = t2, e3._options.url = t2; }), this; - } - onRemove() { + }, i2.prototype.onRemove = function() { this._tileJSONRequest && (this._tileJSONRequest.cancel(), this._tileJSONRequest = null); - } - serialize() { + }, i2.prototype.serialize = function() { return t.extend({}, this._options); - } - loadTile(e2, i2) { - const o2 = e2.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme), a2 = { request: this.map._requestManager.transformRequest(o2, t.ResourceType.Tile), uid: e2.uid, tileID: e2.tileID, zoom: e2.tileID.overscaledZ, tileSize: this.tileSize * e2.tileID.overscaleFactor(), type: this.type, source: this.id, pixelRatio: this.map.getPixelRatio(), showCollisionBoxes: this.map.showCollisionBoxes, promoteId: this.promoteId }; - function r2(o3, a3) { - return delete e2.request, e2.aborted ? i2(null) : o3 && 404 !== o3.status ? i2(o3) : (a3 && a3.resourceTiming && (e2.resourceTiming = a3.resourceTiming), this.map._refreshExpiredTiles && a3 && e2.setExpiryData(a3), e2.loadVectorData(a3, this.map.painter), t.cacheEntryPossiblyAdded(this.dispatcher), i2(null), void (e2.reloadCallback && (this.loadTile(e2, e2.reloadCallback), e2.reloadCallback = null))); + }, i2.prototype.loadTile = function(e3, i3) { + var o2 = this.map._requestManager.normalizeTileURL(e3.tileID.canonical.url(this.tiles, this.scheme)), r2 = { request: this.map._requestManager.transformRequest(o2, t.ResourceType.Tile), uid: e3.uid, tileID: e3.tileID, zoom: e3.tileID.overscaledZ, tileSize: this.tileSize * e3.tileID.overscaleFactor(), type: this.type, source: this.id, pixelRatio: t.browser.devicePixelRatio, showCollisionBoxes: this.map.showCollisionBoxes, promoteId: this.promoteId }; + function a2(o3, r3) { + return delete e3.request, e3.aborted ? i3(null) : o3 && 404 !== o3.status ? i3(o3) : (r3 && r3.resourceTiming && (e3.resourceTiming = r3.resourceTiming), this.map._refreshExpiredTiles && r3 && e3.setExpiryData(r3), e3.loadVectorData(r3, this.map.painter), t.cacheEntryPossiblyAdded(this.dispatcher), i3(null), void (e3.reloadCallback && (this.loadTile(e3, e3.reloadCallback), e3.reloadCallback = null))); } - a2.request.collectResourceTiming = this._collectResourceTiming, e2.actor && "expired" !== e2.state ? "loading" === e2.state ? e2.reloadCallback = i2 : e2.request = e2.actor.send("reloadTile", a2, r2.bind(this)) : (e2.actor = this.dispatcher.getActor(), e2.request = e2.actor.send("loadTile", a2, r2.bind(this))); - } - abortTile(t2) { + r2.request.collectResourceTiming = this._collectResourceTiming, e3.actor && "expired" !== e3.state ? "loading" === e3.state ? e3.reloadCallback = i3 : e3.request = e3.actor.send("reloadTile", r2, a2.bind(this)) : (e3.actor = this.dispatcher.getActor(), e3.request = e3.actor.send("loadTile", r2, a2.bind(this))); + }, i2.prototype.abortTile = function(t2) { t2.request && (t2.request.cancel(), delete t2.request), t2.actor && t2.actor.send("abortTile", { uid: t2.uid, type: this.type, source: this.id }, void 0); - } - unloadTile(t2) { + }, i2.prototype.unloadTile = function(t2) { t2.unloadVectorData(), t2.actor && t2.actor.send("removeTile", { uid: t2.uid, type: this.type, source: this.id }, void 0); - } - hasTransition() { + }, i2.prototype.hasTransition = function() { return false; - } - } - class T extends t.Evented { - constructor(e2, i2, o2, a2) { - super(), this.id = e2, this.dispatcher = o2, this.setEventedParent(a2), this.type = "raster", this.minzoom = 0, this.maxzoom = 22, this.roundZoom = true, this.scheme = "xyz", this.tileSize = 512, this._loaded = false, this._options = t.extend({ type: "raster" }, i2), t.extend(this, t.pick(i2, ["url", "scheme", "tileSize"])); - } - load() { - this._loaded = false, this.fire(new t.Event("dataloading", { dataType: "source" })), this._tileJSONRequest = y2(this._options, this.map._requestManager, (e2, i2) => { - this._tileJSONRequest = null, this._loaded = true, e2 ? this.fire(new t.ErrorEvent(e2)) : i2 && (t.extend(this, i2), i2.bounds && (this.tileBounds = new b(i2.bounds, this.minzoom, this.maxzoom)), this.fire(new t.Event("data", { dataType: "source", sourceDataType: "metadata" })), this.fire(new t.Event("data", { dataType: "source", sourceDataType: "content" }))); + }, i2; + }(t.Evented), C = function(e2) { + function i2(i3, o2, r2, a2) { + e2.call(this), this.id = i3, this.dispatcher = r2, this.setEventedParent(a2), this.type = "raster", this.minzoom = 0, this.maxzoom = 22, this.roundZoom = true, this.scheme = "xyz", this.tileSize = 512, this._loaded = false, this._options = t.extend({ type: "raster" }, o2), t.extend(this, t.pick(o2, ["url", "scheme", "tileSize"])); + } + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.load = function() { + var e3 = this; + this._loaded = false, this.fire(new t.Event("dataloading", { dataType: "source" })), this._tileJSONRequest = I2(this._options, this.map._requestManager, function(i3, o2) { + e3._tileJSONRequest = null, e3._loaded = true, i3 ? e3.fire(new t.ErrorEvent(i3)) : o2 && (t.extend(e3, o2), o2.bounds && (e3.tileBounds = new P(o2.bounds, e3.minzoom, e3.maxzoom)), t.postTurnstileEvent(o2.tiles), t.postMapLoadEvent(o2.tiles, e3.map._getMapId(), e3.map._requestManager._skuToken), e3.fire(new t.Event("data", { dataType: "source", sourceDataType: "metadata" })), e3.fire(new t.Event("data", { dataType: "source", sourceDataType: "content" }))); }); - } - loaded() { + }, i2.prototype.loaded = function() { return this._loaded; - } - onAdd(t2) { + }, i2.prototype.onAdd = function(t2) { this.map = t2, this.load(); - } - onRemove() { + }, i2.prototype.onRemove = function() { this._tileJSONRequest && (this._tileJSONRequest.cancel(), this._tileJSONRequest = null); - } - serialize() { + }, i2.prototype.serialize = function() { return t.extend({}, this._options); - } - hasTile(t2) { + }, i2.prototype.hasTile = function(t2) { return !this.tileBounds || this.tileBounds.contains(t2.canonical); - } - loadTile(e2, i2) { - const o2 = e2.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme); - e2.request = t.getImage(this.map._requestManager.transformRequest(o2, t.ResourceType.Tile), (o3, a2, r2) => { - if (delete e2.request, e2.aborted) - e2.state = "unloaded", i2(null); - else if (o3) - e2.state = "errored", i2(o3); + }, i2.prototype.loadTile = function(e3, i3) { + var o2 = this, r2 = this.map._requestManager.normalizeTileURL(e3.tileID.canonical.url(this.tiles, this.scheme), this.tileSize); + e3.request = t.getImage(this.map._requestManager.transformRequest(r2, t.ResourceType.Tile), function(r3, a2) { + if (delete e3.request, e3.aborted) + e3.state = "unloaded", i3(null); + else if (r3) + e3.state = "errored", i3(r3); else if (a2) { - this.map._refreshExpiredTiles && e2.setExpiryData(r2); - const o4 = this.map.painter.context, s2 = o4.gl; - e2.texture = this.map.painter.getTileTexture(a2.width), e2.texture ? e2.texture.update(a2, { useMipmap: true }) : (e2.texture = new l(o4, a2, s2.RGBA, { useMipmap: true }), e2.texture.bind(s2.LINEAR, s2.CLAMP_TO_EDGE, s2.LINEAR_MIPMAP_NEAREST), o4.extTextureFilterAnisotropic && s2.texParameterf(s2.TEXTURE_2D, o4.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT, o4.extTextureFilterAnisotropicMax)), e2.state = "loaded", t.cacheEntryPossiblyAdded(this.dispatcher), i2(null); + o2.map._refreshExpiredTiles && e3.setExpiryData(a2), delete a2.cacheControl, delete a2.expires; + var n2 = o2.map.painter.context, s2 = n2.gl; + e3.texture = o2.map.painter.getTileTexture(a2.width), e3.texture ? e3.texture.update(a2, { useMipmap: true }) : (e3.texture = new t.Texture(n2, a2, s2.RGBA, { useMipmap: true }), e3.texture.bind(s2.LINEAR, s2.CLAMP_TO_EDGE, s2.LINEAR_MIPMAP_NEAREST), n2.extTextureFilterAnisotropic && s2.texParameterf(s2.TEXTURE_2D, n2.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT, n2.extTextureFilterAnisotropicMax)), e3.state = "loaded", t.cacheEntryPossiblyAdded(o2.dispatcher), i3(null); } }); - } - abortTile(t2, e2) { - t2.request && (t2.request.cancel(), delete t2.request), e2(); - } - unloadTile(t2, e2) { - t2.texture && this.map.painter.saveTileTexture(t2.texture), e2(); - } - hasTransition() { + }, i2.prototype.abortTile = function(t2, e3) { + t2.request && (t2.request.cancel(), delete t2.request), e3(); + }, i2.prototype.unloadTile = function(t2, e3) { + t2.texture && this.map.painter.saveTileTexture(t2.texture), e3(); + }, i2.prototype.hasTransition = function() { return false; + }, i2; + }(t.Evented), z = function(e2) { + function i2(i3, o2, r2, a2) { + e2.call(this, i3, o2, r2, a2), this.type = "raster-dem", this.maxzoom = 22, this._options = t.extend({ type: "raster-dem" }, o2), this.encoding = o2.encoding || "mapbox"; } - } - let E; - class I2 extends T { - constructor(e2, i2, o2, a2) { - super(e2, i2, o2, a2), this.type = "raster-dem", this.maxzoom = 22, this._options = t.extend({ type: "raster-dem" }, i2), this.encoding = i2.encoding || "mapbox"; - } - serialize() { + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.serialize = function() { return { type: "raster-dem", url: this.url, tileSize: this.tileSize, tiles: this.tiles, bounds: this.bounds, encoding: this.encoding }; - } - loadTile(e2, i2) { - const o2 = e2.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme); - function a2(t2, o3) { - t2 && (e2.state = "errored", i2(t2)), o3 && (e2.dem = o3, e2.needsHillshadePrepare = true, e2.needsTerrainPrepare = true, e2.state = "loaded", i2(null)); - } - e2.request = t.getImage(this.map._requestManager.transformRequest(o2, t.ResourceType.Tile), function(o3, r2) { - if (delete e2.request, e2.aborted) - e2.state = "unloaded", i2(null); + }, i2.prototype.loadTile = function(e3, i3) { + var o2 = this.map._requestManager.normalizeTileURL(e3.tileID.canonical.url(this.tiles, this.scheme), this.tileSize); + function r2(t2, o3) { + t2 && (e3.state = "errored", i3(t2)), o3 && (e3.dem = o3, e3.needsHillshadePrepare = true, e3.state = "loaded", i3(null)); + } + e3.request = t.getImage(this.map._requestManager.transformRequest(o2, t.ResourceType.Tile), function(o3, a2) { + if (delete e3.request, e3.aborted) + e3.state = "unloaded", i3(null); else if (o3) - e2.state = "errored", i2(o3); - else if (r2) { - this.map._refreshExpiredTiles && e2.setExpiryData(r2), delete r2.cacheControl, delete r2.expires; - const i3 = t.isImageBitmap(r2) && (null == E && (E = "undefined" != typeof OffscreenCanvas && new OffscreenCanvas(1, 1).getContext("2d") && "function" == typeof createImageBitmap), E) ? r2 : t.exported.getImageData(r2, 1), o4 = { uid: e2.uid, coord: e2.tileID, source: this.id, rawImageData: i3, encoding: this.encoding }; - e2.actor && "expired" !== e2.state || (e2.actor = this.dispatcher.getActor(), e2.actor.send("loadDEMTile", o4, a2.bind(this))); + e3.state = "errored", i3(o3); + else if (a2) { + this.map._refreshExpiredTiles && e3.setExpiryData(a2), delete a2.cacheControl, delete a2.expires; + var n2 = t.window.ImageBitmap && a2 instanceof t.window.ImageBitmap && t.offscreenCanvasSupported() ? a2 : t.browser.getImageData(a2, 1), s2 = { uid: e3.uid, coord: e3.tileID, source: this.id, rawImageData: n2, encoding: this.encoding }; + e3.actor && "expired" !== e3.state || (e3.actor = this.dispatcher.getActor(), e3.actor.send("loadDEMTile", s2, r2.bind(this))); } - }.bind(this)), e2.neighboringTiles = this._getNeighboringTiles(e2.tileID); - } - _getNeighboringTiles(e2) { - const i2 = e2.canonical, o2 = Math.pow(2, i2.z), a2 = (i2.x - 1 + o2) % o2, r2 = 0 === i2.x ? e2.wrap - 1 : e2.wrap, s2 = (i2.x + 1 + o2) % o2, n2 = i2.x + 1 === o2 ? e2.wrap + 1 : e2.wrap, l2 = {}; - return l2[new t.OverscaledTileID(e2.overscaledZ, r2, i2.z, a2, i2.y).key] = { backfilled: false }, l2[new t.OverscaledTileID(e2.overscaledZ, n2, i2.z, s2, i2.y).key] = { backfilled: false }, i2.y > 0 && (l2[new t.OverscaledTileID(e2.overscaledZ, r2, i2.z, a2, i2.y - 1).key] = { backfilled: false }, l2[new t.OverscaledTileID(e2.overscaledZ, e2.wrap, i2.z, i2.x, i2.y - 1).key] = { backfilled: false }, l2[new t.OverscaledTileID(e2.overscaledZ, n2, i2.z, s2, i2.y - 1).key] = { backfilled: false }), i2.y + 1 < o2 && (l2[new t.OverscaledTileID(e2.overscaledZ, r2, i2.z, a2, i2.y + 1).key] = { backfilled: false }, l2[new t.OverscaledTileID(e2.overscaledZ, e2.wrap, i2.z, i2.x, i2.y + 1).key] = { backfilled: false }, l2[new t.OverscaledTileID(e2.overscaledZ, n2, i2.z, s2, i2.y + 1).key] = { backfilled: false }), l2; - } - unloadTile(t2) { + }.bind(this)), e3.neighboringTiles = this._getNeighboringTiles(e3.tileID); + }, i2.prototype._getNeighboringTiles = function(e3) { + var i3 = e3.canonical, o2 = Math.pow(2, i3.z), r2 = (i3.x - 1 + o2) % o2, a2 = 0 === i3.x ? e3.wrap - 1 : e3.wrap, n2 = (i3.x + 1 + o2) % o2, s2 = i3.x + 1 === o2 ? e3.wrap + 1 : e3.wrap, l2 = {}; + return l2[new t.OverscaledTileID(e3.overscaledZ, a2, i3.z, r2, i3.y).key] = { backfilled: false }, l2[new t.OverscaledTileID(e3.overscaledZ, s2, i3.z, n2, i3.y).key] = { backfilled: false }, i3.y > 0 && (l2[new t.OverscaledTileID(e3.overscaledZ, a2, i3.z, r2, i3.y - 1).key] = { backfilled: false }, l2[new t.OverscaledTileID(e3.overscaledZ, e3.wrap, i3.z, i3.x, i3.y - 1).key] = { backfilled: false }, l2[new t.OverscaledTileID(e3.overscaledZ, s2, i3.z, n2, i3.y - 1).key] = { backfilled: false }), i3.y + 1 < o2 && (l2[new t.OverscaledTileID(e3.overscaledZ, a2, i3.z, r2, i3.y + 1).key] = { backfilled: false }, l2[new t.OverscaledTileID(e3.overscaledZ, e3.wrap, i3.z, i3.x, i3.y + 1).key] = { backfilled: false }, l2[new t.OverscaledTileID(e3.overscaledZ, s2, i3.z, n2, i3.y + 1).key] = { backfilled: false }), l2; + }, i2.prototype.unloadTile = function(t2) { t2.demTexture && this.map.painter.saveTileTexture(t2.demTexture), t2.fbo && (t2.fbo.destroy(), delete t2.fbo), t2.dem && delete t2.dem, delete t2.neighboringTiles, t2.state = "unloaded", t2.actor && t2.actor.send("removeDEMTile", { uid: t2.uid, source: this.id }); - } - } - class C extends t.Evented { - constructor(e2, i2, o2, a2) { - super(), this.id = e2, this.type = "geojson", this.minzoom = 0, this.maxzoom = 18, this.tileSize = 512, this.isTileClipped = true, this.reparseOverscaled = true, this._removed = false, this._pendingLoads = 0, this.actor = o2.getActor(), this.setEventedParent(a2), this._data = i2.data, this._options = t.extend({}, i2), this._collectResourceTiming = i2.collectResourceTiming, void 0 !== i2.maxzoom && (this.maxzoom = i2.maxzoom), i2.type && (this.type = i2.type), i2.attribution && (this.attribution = i2.attribution), this.promoteId = i2.promoteId; - const r2 = t.EXTENT / this.tileSize; - this.workerOptions = t.extend({ source: this.id, cluster: i2.cluster || false, geojsonVtOptions: { buffer: (void 0 !== i2.buffer ? i2.buffer : 128) * r2, tolerance: (void 0 !== i2.tolerance ? i2.tolerance : 0.375) * r2, extent: t.EXTENT, maxZoom: this.maxzoom, lineMetrics: i2.lineMetrics || false, generateId: i2.generateId || false }, superclusterOptions: { maxZoom: void 0 !== i2.clusterMaxZoom ? i2.clusterMaxZoom : this.maxzoom - 1, minPoints: Math.max(2, i2.clusterMinPoints || 2), extent: t.EXTENT, radius: (i2.clusterRadius || 50) * r2, log: false, generateId: i2.generateId || false }, clusterProperties: i2.clusterProperties, filter: i2.filter }, i2.workerOptions); - } - load() { - this._updateWorkerData("metadata"); - } - onAdd(t2) { + }, i2; + }(C), D = function(e2) { + function i2(i3, o2, r2, a2) { + e2.call(this), this.id = i3, this.type = "geojson", this.minzoom = 0, this.maxzoom = 18, this.tileSize = 512, this.isTileClipped = true, this.reparseOverscaled = true, this._removed = false, this._loaded = false, this.actor = r2.getActor(), this.setEventedParent(a2), this._data = o2.data, this._options = t.extend({}, o2), this._collectResourceTiming = o2.collectResourceTiming, this._resourceTiming = [], void 0 !== o2.maxzoom && (this.maxzoom = o2.maxzoom), o2.type && (this.type = o2.type), o2.attribution && (this.attribution = o2.attribution), this.promoteId = o2.promoteId; + var n2 = t.EXTENT / this.tileSize; + this.workerOptions = t.extend({ source: this.id, cluster: o2.cluster || false, geojsonVtOptions: { buffer: (void 0 !== o2.buffer ? o2.buffer : 128) * n2, tolerance: (void 0 !== o2.tolerance ? o2.tolerance : 0.375) * n2, extent: t.EXTENT, maxZoom: this.maxzoom, lineMetrics: o2.lineMetrics || false, generateId: o2.generateId || false }, superclusterOptions: { maxZoom: void 0 !== o2.clusterMaxZoom ? Math.min(o2.clusterMaxZoom, this.maxzoom - 1) : this.maxzoom - 1, minPoints: Math.max(2, o2.clusterMinPoints || 2), extent: t.EXTENT, radius: (o2.clusterRadius || 50) * n2, log: false, generateId: o2.generateId || false }, clusterProperties: o2.clusterProperties, filter: o2.filter }, o2.workerOptions); + } + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.load = function() { + var e3 = this; + this.fire(new t.Event("dataloading", { dataType: "source" })), this._updateWorkerData(function(i3) { + if (i3) + e3.fire(new t.ErrorEvent(i3)); + else { + var o2 = { dataType: "source", sourceDataType: "metadata" }; + e3._collectResourceTiming && e3._resourceTiming && e3._resourceTiming.length > 0 && (o2.resourceTiming = e3._resourceTiming, e3._resourceTiming = []), e3.fire(new t.Event("data", o2)); + } + }); + }, i2.prototype.onAdd = function(t2) { this.map = t2, this.load(); - } - setData(t2) { - return this._data = t2, this._updateWorkerData("content"), this; - } - getClusterExpansionZoom(t2, e2) { - return this.actor.send("geojson.getClusterExpansionZoom", { clusterId: t2, source: this.id }, e2), this; - } - getClusterChildren(t2, e2) { - return this.actor.send("geojson.getClusterChildren", { clusterId: t2, source: this.id }, e2), this; - } - getClusterLeaves(t2, e2, i2, o2) { - return this.actor.send("geojson.getClusterLeaves", { source: this.id, clusterId: t2, limit: e2, offset: i2 }, o2), this; - } - _updateWorkerData(e2) { - const i2 = t.extend({}, this.workerOptions), o2 = this._data; - "string" == typeof o2 ? (i2.request = this.map._requestManager.transformRequest(t.exported.resolveURL(o2), t.ResourceType.Source), i2.request.collectResourceTiming = this._collectResourceTiming) : i2.data = JSON.stringify(o2), this._pendingLoads++, this.fire(new t.Event("dataloading", { dataType: "source" })), this.actor.send(`${this.type}.loadData`, i2, (i3, o3) => { - if (this._pendingLoads--, this._removed || o3 && o3.abandoned) - return void this.fire(new t.Event("dataabort", { dataType: "source", sourceDataType: e2 })); - let a2 = null; - if (o3 && o3.resourceTiming && o3.resourceTiming[this.id] && (a2 = o3.resourceTiming[this.id].slice(0)), i3) - return void this.fire(new t.ErrorEvent(i3)); - const r2 = { dataType: "source", sourceDataType: e2 }; - this._collectResourceTiming && a2 && a2.length > 0 && t.extend(r2, { resourceTiming: a2 }), this.fire(new t.Event("data", r2)); + }, i2.prototype.setData = function(e3) { + var i3 = this; + return this._data = e3, this.fire(new t.Event("dataloading", { dataType: "source" })), this._updateWorkerData(function(e4) { + if (e4) + i3.fire(new t.ErrorEvent(e4)); + else { + var o2 = { dataType: "source", sourceDataType: "content" }; + i3._collectResourceTiming && i3._resourceTiming && i3._resourceTiming.length > 0 && (o2.resourceTiming = i3._resourceTiming, i3._resourceTiming = []), i3.fire(new t.Event("data", o2)); + } + }), this; + }, i2.prototype.getClusterExpansionZoom = function(t2, e3) { + return this.actor.send("geojson.getClusterExpansionZoom", { clusterId: t2, source: this.id }, e3), this; + }, i2.prototype.getClusterChildren = function(t2, e3) { + return this.actor.send("geojson.getClusterChildren", { clusterId: t2, source: this.id }, e3), this; + }, i2.prototype.getClusterLeaves = function(t2, e3, i3, o2) { + return this.actor.send("geojson.getClusterLeaves", { source: this.id, clusterId: t2, limit: e3, offset: i3 }, o2), this; + }, i2.prototype._updateWorkerData = function(e3) { + var i3 = this; + this._loaded = false; + var o2 = t.extend({}, this.workerOptions), r2 = this._data; + "string" == typeof r2 ? (o2.request = this.map._requestManager.transformRequest(t.browser.resolveURL(r2), t.ResourceType.Source), o2.request.collectResourceTiming = this._collectResourceTiming) : o2.data = JSON.stringify(r2), this.actor.send(this.type + ".loadData", o2, function(t2, r3) { + i3._removed || r3 && r3.abandoned || (i3._loaded = true, r3 && r3.resourceTiming && r3.resourceTiming[i3.id] && (i3._resourceTiming = r3.resourceTiming[i3.id].slice(0)), i3.actor.send(i3.type + ".coalesce", { source: o2.source }, null), e3(t2)); }); - } - loaded() { - return 0 === this._pendingLoads; - } - loadTile(t2, e2) { - const i2 = t2.actor ? "reloadTile" : "loadTile"; - t2.actor = this.actor; - const o2 = { type: this.type, uid: t2.uid, tileID: t2.tileID, zoom: t2.tileID.overscaledZ, maxZoom: this.maxzoom, tileSize: this.tileSize, source: this.id, pixelRatio: this.map.getPixelRatio(), showCollisionBoxes: this.map.showCollisionBoxes, promoteId: this.promoteId }; - t2.request = this.actor.send(i2, o2, (o3, a2) => (delete t2.request, t2.unloadVectorData(), t2.aborted ? e2(null) : o3 ? e2(o3) : (t2.loadVectorData(a2, this.map.painter, "reloadTile" === i2), e2(null)))); - } - abortTile(t2) { + }, i2.prototype.loaded = function() { + return this._loaded; + }, i2.prototype.loadTile = function(e3, i3) { + var o2 = this, r2 = e3.actor ? "reloadTile" : "loadTile"; + e3.actor = this.actor, e3.request = this.actor.send(r2, { type: this.type, uid: e3.uid, tileID: e3.tileID, zoom: e3.tileID.overscaledZ, maxZoom: this.maxzoom, tileSize: this.tileSize, source: this.id, pixelRatio: t.browser.devicePixelRatio, showCollisionBoxes: this.map.showCollisionBoxes, promoteId: this.promoteId }, function(t2, a2) { + return delete e3.request, e3.unloadVectorData(), e3.aborted ? i3(null) : t2 ? i3(t2) : (e3.loadVectorData(a2, o2.map.painter, "reloadTile" === r2), i3(null)); + }); + }, i2.prototype.abortTile = function(t2) { t2.request && (t2.request.cancel(), delete t2.request), t2.aborted = true; - } - unloadTile(t2) { + }, i2.prototype.unloadTile = function(t2) { t2.unloadVectorData(), this.actor.send("removeTile", { uid: t2.uid, type: this.type, source: this.id }); - } - onRemove() { + }, i2.prototype.onRemove = function() { this._removed = true, this.actor.send("removeSource", { type: this.type, source: this.id }); - } - serialize() { + }, i2.prototype.serialize = function() { return t.extend({}, this._options, { type: this.type, data: this._data }); - } - hasTransition() { + }, i2.prototype.hasTransition = function() { return false; - } - } - var S = t.createLayout([{ name: "a_pos", type: "Int16", components: 2 }, { name: "a_texture_pos", type: "Int16", components: 2 }]); - class D extends t.Evented { - constructor(t2, e2, i2, o2) { - super(), this.id = t2, this.dispatcher = i2, this.coordinates = e2.coordinates, this.type = "image", this.minzoom = 0, this.maxzoom = 22, this.tileSize = 512, this.tiles = {}, this._loaded = false, this.setEventedParent(o2), this.options = e2; - } - load(e2, i2) { - this._loaded = false, this.fire(new t.Event("dataloading", { dataType: "source" })), this.url = this.options.url, t.getImage(this.map._requestManager.transformRequest(this.url, t.ResourceType.Image), (o2, a2) => { - this._loaded = true, o2 ? this.fire(new t.ErrorEvent(o2)) : a2 && (this.image = a2, e2 && (this.coordinates = e2), i2 && i2(), this._finishLoading()); + }, i2; + }(t.Evented), A2 = t.createLayout([{ name: "a_pos", type: "Int16", components: 2 }, { name: "a_texture_pos", type: "Int16", components: 2 }]), M = function(e2) { + function i2(t2, i3, o2, r2) { + e2.call(this), this.id = t2, this.dispatcher = o2, this.coordinates = i3.coordinates, this.type = "image", this.minzoom = 0, this.maxzoom = 22, this.tileSize = 512, this.tiles = {}, this._loaded = false, this.setEventedParent(r2), this.options = i3; + } + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.load = function(e3, i3) { + var o2 = this; + this._loaded = false, this.fire(new t.Event("dataloading", { dataType: "source" })), this.url = this.options.url, t.getImage(this.map._requestManager.transformRequest(this.url, t.ResourceType.Image), function(r2, a2) { + o2._loaded = true, r2 ? o2.fire(new t.ErrorEvent(r2)) : a2 && (o2.image = a2, e3 && (o2.coordinates = e3), i3 && i3(), o2._finishLoading()); }); - } - loaded() { + }, i2.prototype.loaded = function() { return this._loaded; - } - updateImage(t2) { - return this.image && t2.url ? (this.options.url = t2.url, this.load(t2.coordinates, () => { - this.texture = null; + }, i2.prototype.updateImage = function(t2) { + var e3 = this; + return this.image && t2.url ? (this.options.url = t2.url, this.load(t2.coordinates, function() { + e3.texture = null; }), this) : this; - } - _finishLoading() { + }, i2.prototype._finishLoading = function() { this.map && (this.setCoordinates(this.coordinates), this.fire(new t.Event("data", { dataType: "source", sourceDataType: "metadata" }))); - } - onAdd(t2) { + }, i2.prototype.onAdd = function(t2) { this.map = t2, this.load(); - } - setCoordinates(e2) { - this.coordinates = e2; - const i2 = e2.map(t.MercatorCoordinate.fromLngLat); - this.tileID = function(e3) { - let i3 = 1 / 0, o3 = 1 / 0, a2 = -1 / 0, r2 = -1 / 0; - for (const t2 of e3) - i3 = Math.min(i3, t2.x), o3 = Math.min(o3, t2.y), a2 = Math.max(a2, t2.x), r2 = Math.max(r2, t2.y); - const s2 = Math.max(a2 - i3, r2 - o3), n2 = Math.max(0, Math.floor(-Math.log(s2) / Math.LN2)), l2 = Math.pow(2, n2); - return new t.CanonicalTileID(n2, Math.floor((i3 + a2) / 2 * l2), Math.floor((o3 + r2) / 2 * l2)); - }(i2), this.minzoom = this.maxzoom = this.tileID.z; - const o2 = i2.map((t2) => this.tileID.getTilePoint(t2)._round()); - return this._boundsArray = new t.RasterBoundsArray(), this._boundsArray.emplaceBack(o2[0].x, o2[0].y, 0, 0), this._boundsArray.emplaceBack(o2[1].x, o2[1].y, t.EXTENT, 0), this._boundsArray.emplaceBack(o2[3].x, o2[3].y, 0, t.EXTENT), this._boundsArray.emplaceBack(o2[2].x, o2[2].y, t.EXTENT, t.EXTENT), this.boundsBuffer && (this.boundsBuffer.destroy(), delete this.boundsBuffer), this.fire(new t.Event("data", { dataType: "source", sourceDataType: "content" })), this; - } - prepare() { - if (0 === Object.keys(this.tiles).length || !this.image) - return; - const e2 = this.map.painter.context, i2 = e2.gl; - this.boundsBuffer || (this.boundsBuffer = e2.createVertexBuffer(this._boundsArray, S.members)), this.boundsSegments || (this.boundsSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2)), this.texture || (this.texture = new l(e2, this.image, i2.RGBA), this.texture.bind(i2.LINEAR, i2.CLAMP_TO_EDGE)); - for (const t2 in this.tiles) { - const e3 = this.tiles[t2]; - "loaded" !== e3.state && (e3.state = "loaded", e3.texture = this.texture); + }, i2.prototype.setCoordinates = function(e3) { + var i3 = this; + this.coordinates = e3; + var o2 = e3.map(t.MercatorCoordinate.fromLngLat); + this.tileID = function(e4) { + for (var i4 = 1 / 0, o3 = 1 / 0, r3 = -1 / 0, a2 = -1 / 0, n2 = 0, s2 = e4; n2 < s2.length; n2 += 1) { + var l2 = s2[n2]; + i4 = Math.min(i4, l2.x), o3 = Math.min(o3, l2.y), r3 = Math.max(r3, l2.x), a2 = Math.max(a2, l2.y); + } + var c3 = Math.max(r3 - i4, a2 - o3), u2 = Math.max(0, Math.floor(-Math.log(c3) / Math.LN2)), h3 = Math.pow(2, u2); + return new t.CanonicalTileID(u2, Math.floor((i4 + r3) / 2 * h3), Math.floor((o3 + a2) / 2 * h3)); + }(o2), this.minzoom = this.maxzoom = this.tileID.z; + var r2 = o2.map(function(t2) { + return i3.tileID.getTilePoint(t2)._round(); + }); + return this._boundsArray = new t.StructArrayLayout4i8(), this._boundsArray.emplaceBack(r2[0].x, r2[0].y, 0, 0), this._boundsArray.emplaceBack(r2[1].x, r2[1].y, t.EXTENT, 0), this._boundsArray.emplaceBack(r2[3].x, r2[3].y, 0, t.EXTENT), this._boundsArray.emplaceBack(r2[2].x, r2[2].y, t.EXTENT, t.EXTENT), this.boundsBuffer && (this.boundsBuffer.destroy(), delete this.boundsBuffer), this.fire(new t.Event("data", { dataType: "source", sourceDataType: "content" })), this; + }, i2.prototype.prepare = function() { + if (0 !== Object.keys(this.tiles).length && this.image) { + var e3 = this.map.painter.context, i3 = e3.gl; + for (var o2 in this.boundsBuffer || (this.boundsBuffer = e3.createVertexBuffer(this._boundsArray, A2.members)), this.boundsSegments || (this.boundsSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2)), this.texture || (this.texture = new t.Texture(e3, this.image, i3.RGBA), this.texture.bind(i3.LINEAR, i3.CLAMP_TO_EDGE)), this.tiles) { + var r2 = this.tiles[o2]; + "loaded" !== r2.state && (r2.state = "loaded", r2.texture = this.texture); + } } - } - loadTile(t2, e2) { - this.tileID && this.tileID.equals(t2.tileID.canonical) ? (this.tiles[String(t2.tileID.wrap)] = t2, t2.buckets = {}, e2(null)) : (t2.state = "errored", e2(null)); - } - serialize() { + }, i2.prototype.loadTile = function(t2, e3) { + this.tileID && this.tileID.equals(t2.tileID.canonical) ? (this.tiles[String(t2.tileID.wrap)] = t2, t2.buckets = {}, e3(null)) : (t2.state = "errored", e3(null)); + }, i2.prototype.serialize = function() { return { type: "image", url: this.options.url, coordinates: this.coordinates }; - } - hasTransition() { + }, i2.prototype.hasTransition = function() { return false; + }, i2; + }(t.Evented), L = function(e2) { + function i2(t2, i3, o2, r2) { + e2.call(this, t2, i3, o2, r2), this.roundZoom = true, this.type = "video", this.options = i3; } - } - class z extends D { - constructor(t2, e2, i2, o2) { - super(t2, e2, i2, o2), this.roundZoom = true, this.type = "video", this.options = e2; - } - load() { + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.load = function() { + var e3 = this; this._loaded = false; - const e2 = this.options; + var i3 = this.options; this.urls = []; - for (const i2 of e2.urls) - this.urls.push(this.map._requestManager.transformRequest(i2, t.ResourceType.Source).url); - t.getVideo(this.urls, (e3, i2) => { - this._loaded = true, e3 ? this.fire(new t.ErrorEvent(e3)) : i2 && (this.video = i2, this.video.loop = true, this.video.addEventListener("playing", () => { - this.map.triggerRepaint(); - }), this.map && this.video.play(), this._finishLoading()); + for (var o2 = 0, r2 = i3.urls; o2 < r2.length; o2 += 1) + this.urls.push(this.map._requestManager.transformRequest(r2[o2], t.ResourceType.Source).url); + t.getVideo(this.urls, function(i4, o3) { + e3._loaded = true, i4 ? e3.fire(new t.ErrorEvent(i4)) : o3 && (e3.video = o3, e3.video.loop = true, e3.video.setAttribute("playsinline", ""), e3.video.addEventListener("playing", function() { + e3.map.triggerRepaint(); + }), e3.map && e3.video.play(), e3._finishLoading()); }); - } - pause() { + }, i2.prototype.pause = function() { this.video && this.video.pause(); - } - play() { + }, i2.prototype.play = function() { this.video && this.video.play(); - } - seek(e2) { + }, i2.prototype.seek = function(e3) { if (this.video) { - const i2 = this.video.seekable; - e2 < i2.start(0) || e2 > i2.end(0) ? this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${this.id}`, null, `Playback for this video can be set only between the ${i2.start(0)} and ${i2.end(0)}-second mark.`))) : this.video.currentTime = e2; + var i3 = this.video.seekable; + e3 < i3.start(0) || e3 > i3.end(0) ? this.fire(new t.ErrorEvent(new t.ValidationError("sources." + this.id, null, "Playback for this video can be set only between the " + i3.start(0) + " and " + i3.end(0) + "-second mark."))) : this.video.currentTime = e3; } - } - getVideo() { + }, i2.prototype.getVideo = function() { return this.video; - } - onAdd(t2) { + }, i2.prototype.onAdd = function(t2) { this.map || (this.map = t2, this.load(), this.video && (this.video.play(), this.setCoordinates(this.coordinates))); - } - prepare() { - if (0 === Object.keys(this.tiles).length || this.video.readyState < 2) - return; - const e2 = this.map.painter.context, i2 = e2.gl; - this.boundsBuffer || (this.boundsBuffer = e2.createVertexBuffer(this._boundsArray, S.members)), this.boundsSegments || (this.boundsSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2)), this.texture ? this.video.paused || (this.texture.bind(i2.LINEAR, i2.CLAMP_TO_EDGE), i2.texSubImage2D(i2.TEXTURE_2D, 0, 0, 0, i2.RGBA, i2.UNSIGNED_BYTE, this.video)) : (this.texture = new l(e2, this.video, i2.RGBA), this.texture.bind(i2.LINEAR, i2.CLAMP_TO_EDGE)); - for (const t2 in this.tiles) { - const e3 = this.tiles[t2]; - "loaded" !== e3.state && (e3.state = "loaded", e3.texture = this.texture); + }, i2.prototype.prepare = function() { + if (!(0 === Object.keys(this.tiles).length || this.video.readyState < 2)) { + var e3 = this.map.painter.context, i3 = e3.gl; + for (var o2 in this.boundsBuffer || (this.boundsBuffer = e3.createVertexBuffer(this._boundsArray, A2.members)), this.boundsSegments || (this.boundsSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2)), this.texture ? this.video.paused || (this.texture.bind(i3.LINEAR, i3.CLAMP_TO_EDGE), i3.texSubImage2D(i3.TEXTURE_2D, 0, 0, 0, i3.RGBA, i3.UNSIGNED_BYTE, this.video)) : (this.texture = new t.Texture(e3, this.video, i3.RGBA), this.texture.bind(i3.LINEAR, i3.CLAMP_TO_EDGE)), this.tiles) { + var r2 = this.tiles[o2]; + "loaded" !== r2.state && (r2.state = "loaded", r2.texture = this.texture); + } } - } - serialize() { + }, i2.prototype.serialize = function() { return { type: "video", urls: this.urls, coordinates: this.coordinates }; - } - hasTransition() { + }, i2.prototype.hasTransition = function() { return this.video && !this.video.paused; + }, i2; + }(M), R = function(e2) { + function i2(i3, o2, r2, a2) { + e2.call(this, i3, o2, r2, a2), o2.coordinates ? Array.isArray(o2.coordinates) && 4 === o2.coordinates.length && !o2.coordinates.some(function(t2) { + return !Array.isArray(t2) || 2 !== t2.length || t2.some(function(t3) { + return "number" != typeof t3; + }); + }) || this.fire(new t.ErrorEvent(new t.ValidationError("sources." + i3, null, '"coordinates" property must be an array of 4 longitude/latitude array pairs'))) : this.fire(new t.ErrorEvent(new t.ValidationError("sources." + i3, null, 'missing required property "coordinates"'))), o2.animate && "boolean" != typeof o2.animate && this.fire(new t.ErrorEvent(new t.ValidationError("sources." + i3, null, 'optional "animate" property must be a boolean value'))), o2.canvas ? "string" == typeof o2.canvas || o2.canvas instanceof t.window.HTMLCanvasElement || this.fire(new t.ErrorEvent(new t.ValidationError("sources." + i3, null, '"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))) : this.fire(new t.ErrorEvent(new t.ValidationError("sources." + i3, null, 'missing required property "canvas"'))), this.options = o2, this.animate = void 0 === o2.animate || o2.animate; } - } - class P extends D { - constructor(e2, i2, o2, a2) { - super(e2, i2, o2, a2), i2.coordinates ? Array.isArray(i2.coordinates) && 4 === i2.coordinates.length && !i2.coordinates.some((t2) => !Array.isArray(t2) || 2 !== t2.length || t2.some((t3) => "number" != typeof t3)) || this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${e2}`, null, '"coordinates" property must be an array of 4 longitude/latitude array pairs'))) : this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${e2}`, null, 'missing required property "coordinates"'))), i2.animate && "boolean" != typeof i2.animate && this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${e2}`, null, 'optional "animate" property must be a boolean value'))), i2.canvas ? "string" == typeof i2.canvas || i2.canvas instanceof HTMLCanvasElement || this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${e2}`, null, '"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))) : this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${e2}`, null, 'missing required property "canvas"'))), this.options = i2, this.animate = void 0 === i2.animate || i2.animate; - } - load() { - this._loaded = true, this.canvas || (this.canvas = this.options.canvas instanceof HTMLCanvasElement ? this.options.canvas : document.getElementById(this.options.canvas)), this.width = this.canvas.width, this.height = this.canvas.height, this._hasInvalidDimensions() ? this.fire(new t.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))) : (this.play = function() { + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.load = function() { + this._loaded = true, this.canvas || (this.canvas = this.options.canvas instanceof t.window.HTMLCanvasElement ? this.options.canvas : t.window.document.getElementById(this.options.canvas)), this.width = this.canvas.width, this.height = this.canvas.height, this._hasInvalidDimensions() ? this.fire(new t.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))) : (this.play = function() { this._playing = true, this.map.triggerRepaint(); }, this.pause = function() { this._playing && (this.prepare(), this._playing = false); }, this._finishLoading()); - } - getCanvas() { + }, i2.prototype.getCanvas = function() { return this.canvas; - } - onAdd(t2) { + }, i2.prototype.onAdd = function(t2) { this.map = t2, this.load(), this.canvas && this.animate && this.play(); - } - onRemove() { + }, i2.prototype.onRemove = function() { this.pause(); - } - prepare() { - let e2 = false; - if (this.canvas.width !== this.width && (this.width = this.canvas.width, e2 = true), this.canvas.height !== this.height && (this.height = this.canvas.height, e2 = true), this._hasInvalidDimensions()) - return; - if (0 === Object.keys(this.tiles).length) - return; - const i2 = this.map.painter.context, o2 = i2.gl; - this.boundsBuffer || (this.boundsBuffer = i2.createVertexBuffer(this._boundsArray, S.members)), this.boundsSegments || (this.boundsSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2)), this.texture ? (e2 || this._playing) && this.texture.update(this.canvas, { premultiply: true }) : this.texture = new l(i2, this.canvas, o2.RGBA, { premultiply: true }); - for (const t2 in this.tiles) { - const e3 = this.tiles[t2]; - "loaded" !== e3.state && (e3.state = "loaded", e3.texture = this.texture); + }, i2.prototype.prepare = function() { + var e3 = false; + if (this.canvas.width !== this.width && (this.width = this.canvas.width, e3 = true), this.canvas.height !== this.height && (this.height = this.canvas.height, e3 = true), !this._hasInvalidDimensions() && 0 !== Object.keys(this.tiles).length) { + var i3 = this.map.painter.context, o2 = i3.gl; + for (var r2 in this.boundsBuffer || (this.boundsBuffer = i3.createVertexBuffer(this._boundsArray, A2.members)), this.boundsSegments || (this.boundsSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2)), this.texture ? (e3 || this._playing) && this.texture.update(this.canvas, { premultiply: true }) : this.texture = new t.Texture(i3, this.canvas, o2.RGBA, { premultiply: true }), this.tiles) { + var a2 = this.tiles[r2]; + "loaded" !== a2.state && (a2.state = "loaded", a2.texture = this.texture); + } } - } - serialize() { + }, i2.prototype.serialize = function() { return { type: "canvas", coordinates: this.coordinates }; - } - hasTransition() { + }, i2.prototype.hasTransition = function() { return this._playing; - } - _hasInvalidDimensions() { - for (const t2 of [this.canvas.width, this.canvas.height]) - if (isNaN(t2) || t2 <= 0) + }, i2.prototype._hasInvalidDimensions = function() { + for (var t2 = 0, e3 = [this.canvas.width, this.canvas.height]; t2 < e3.length; t2 += 1) { + var i3 = e3[t2]; + if (isNaN(i3) || i3 <= 0) return true; + } return false; - } - } - const M = { vector: w, raster: T, "raster-dem": I2, geojson: C, video: z, image: D, canvas: P }; - function A2(e2, i2) { - const o2 = t.create(); + }, i2; + }(M), k = { vector: S, raster: C, "raster-dem": z, geojson: D, video: L, image: M, canvas: R }; + function B(e2, i2) { + var o2 = t.identity([]); return t.translate(o2, o2, [1, 1, 0]), t.scale(o2, o2, [0.5 * e2.width, 0.5 * e2.height, 1]), t.multiply(o2, o2, e2.calculatePosMatrix(i2.toUnwrapped())); } - function L(t2, e2, i2, o2, a2, r2) { - const s2 = function(t3, e3, i3) { + function O2(t2, e2, i2, o2, r2, a2) { + var n2 = function(t3, e3, i3) { if (t3) - for (const o3 of t3) { - const t4 = e3[o3]; - if (t4 && t4.source === i3 && "fill-extrusion" === t4.type) + for (var o3 = 0, r3 = t3; o3 < r3.length; o3 += 1) { + var a3 = e3[r3[o3]]; + if (a3 && a3.source === i3 && "fill-extrusion" === a3.type) return true; } else - for (const t4 in e3) { - const o3 = e3[t4]; - if (o3.source === i3 && "fill-extrusion" === o3.type) + for (var n3 in e3) { + var s3 = e3[n3]; + if (s3.source === i3 && "fill-extrusion" === s3.type) return true; } return false; - }(a2 && a2.layers, e2, t2.id), n2 = r2.maxPitchScaleFactor(), l2 = t2.tilesIn(o2, n2, s2); - l2.sort(R); - const c3 = []; - for (const o3 of l2) - c3.push({ wrappedTileID: o3.tileID.wrapped().key, queryResults: o3.tile.queryRenderedFeatures(e2, i2, t2._state, o3.queryGeometry, o3.cameraQueryGeometry, o3.scale, a2, r2, n2, A2(t2.transform, o3.tileID)) }); - const h3 = function(t3) { - const e3 = {}, i3 = {}; - for (const o3 of t3) { - const t4 = o3.queryResults, a3 = o3.wrappedTileID, r3 = i3[a3] = i3[a3] || {}; - for (const i4 in t4) { - const o4 = t4[i4], a4 = r3[i4] = r3[i4] || {}, s3 = e3[i4] = e3[i4] || []; - for (const t5 of o4) - a4[t5.featureIndex] || (a4[t5.featureIndex] = true, s3.push(t5)); - } + }(r2 && r2.layers, e2, t2.id), s2 = a2.maxPitchScaleFactor(), l2 = t2.tilesIn(o2, s2, n2); + l2.sort(F); + for (var c3 = [], u2 = 0, h3 = l2; u2 < h3.length; u2 += 1) { + var p3 = h3[u2]; + c3.push({ wrappedTileID: p3.tileID.wrapped().key, queryResults: p3.tile.queryRenderedFeatures(e2, i2, t2._state, p3.queryGeometry, p3.cameraQueryGeometry, p3.scale, r2, a2, s2, B(t2.transform, p3.tileID)) }); + } + var d2 = function(t3) { + for (var e3 = {}, i3 = {}, o3 = 0, r3 = t3; o3 < r3.length; o3 += 1) { + var a3 = r3[o3], n3 = a3.queryResults, s3 = a3.wrappedTileID, l3 = i3[s3] = i3[s3] || {}; + for (var c4 in n3) + for (var u3 = n3[c4], h4 = l3[c4] = l3[c4] || {}, p4 = e3[c4] = e3[c4] || [], d3 = 0, _25 = u3; d3 < _25.length; d3 += 1) { + var f2 = _25[d3]; + h4[f2.featureIndex] || (h4[f2.featureIndex] = true, p4.push(f2)); + } } return e3; }(c3); - for (const e3 in h3) - h3[e3].forEach((e4) => { - const i3 = e4.feature, o3 = t2.getFeatureState(i3.layer["source-layer"], i3.id); + for (var _24 in d2) + d2[_24].forEach(function(e3) { + var i3 = e3.feature, o3 = t2.getFeatureState(i3.layer["source-layer"], i3.id); i3.source = i3.layer.source, i3.layer["source-layer"] && (i3.sourceLayer = i3.layer["source-layer"]), i3.state = o3; }); - return h3; + return d2; } - function R(t2, e2) { - const i2 = t2.tileID, o2 = e2.tileID; + function F(t2, e2) { + var i2 = t2.tileID, o2 = e2.tileID; return i2.overscaledZ - o2.overscaledZ || i2.canonical.y - o2.canonical.y || i2.wrap - o2.wrap || i2.canonical.x - o2.canonical.x; } - class k { - constructor(e2, i2) { - this.tileID = e2, this.uid = t.uniqueId(), this.uses = 0, this.tileSize = i2, this.buckets = {}, this.expirationTime = null, this.queryPadding = 0, this.hasSymbolBuckets = false, this.hasRTLText = false, this.dependencies = {}, this.textures = [], this.textureCoords = {}, this.expiredRequestCount = 0, this.state = "loading"; - } - registerFadeDuration(e2) { - const i2 = e2 + this.timeAdded; - i2 < t.exported.now() || this.fadeEndTime && i2 < this.fadeEndTime || (this.fadeEndTime = i2); - } - wasRequested() { - return "errored" === this.state || "loaded" === this.state || "reloading" === this.state; - } - clearTextures(t2) { - this.demTexture && t2.saveTileTexture(this.demTexture), this.textures.forEach((e2) => t2.saveTileTexture(e2)), this.demTexture = null, this.textures = [], this.textureCoords = {}; - } - loadVectorData(e2, i2, o2) { - if (this.hasData() && this.unloadVectorData(), this.state = "loaded", e2) { - e2.featureIndex && (this.latestFeatureIndex = e2.featureIndex, e2.rawTileData ? (this.latestRawTileData = e2.rawTileData, this.latestFeatureIndex.rawTileData = e2.rawTileData) : this.latestRawTileData && (this.latestFeatureIndex.rawTileData = this.latestRawTileData)), this.collisionBoxArray = e2.collisionBoxArray, this.buckets = function(t2, e3) { - const i3 = {}; - if (!e3) - return i3; - for (const o3 of t2) { - const t3 = o3.layerIds.map((t4) => e3.getLayer(t4)).filter(Boolean); - if (0 !== t3.length) { - o3.layers = t3, o3.stateDependentLayerIds && (o3.stateDependentLayers = o3.stateDependentLayerIds.map((e4) => t3.filter((t4) => t4.id === e4)[0])); - for (const e4 of t3) - i3[e4.id] = o3; - } - } - return i3; - }(e2.buckets, i2.style), this.hasSymbolBuckets = false; - for (const e3 in this.buckets) { - const i3 = this.buckets[e3]; - if (i3 instanceof t.SymbolBucket) { - if (this.hasSymbolBuckets = true, !o2) - break; - i3.justReloaded = true; - } - } - if (this.hasRTLText = false, this.hasSymbolBuckets) - for (const e3 in this.buckets) { - const i3 = this.buckets[e3]; - if (i3 instanceof t.SymbolBucket && i3.hasRTLText) { - this.hasRTLText = true, t.lazyLoadRTLTextPlugin(); - break; - } - } - this.queryPadding = 0; - for (const t2 in this.buckets) { - const e3 = this.buckets[t2]; - this.queryPadding = Math.max(this.queryPadding, i2.style.getLayer(t2).queryRadius(e3)); - } - e2.imageAtlas && (this.imageAtlas = e2.imageAtlas), e2.glyphAtlasImage && (this.glyphAtlasImage = e2.glyphAtlasImage); - } else - this.collisionBoxArray = new t.CollisionBoxArray(); - } - unloadVectorData() { - for (const t2 in this.buckets) - this.buckets[t2].destroy(); - this.buckets = {}, this.imageAtlasTexture && this.imageAtlasTexture.destroy(), this.imageAtlas && (this.imageAtlas = null), this.glyphAtlasTexture && this.glyphAtlasTexture.destroy(), this.latestFeatureIndex = null, this.state = "unloaded"; + var U = function(t2, e2) { + this.max = t2, this.onRemove = e2, this.reset(); + }; + U.prototype.reset = function() { + for (var t2 in this.data) + for (var e2 = 0, i2 = this.data[t2]; e2 < i2.length; e2 += 1) { + var o2 = i2[e2]; + o2.timeout && clearTimeout(o2.timeout), this.onRemove(o2.value); + } + return this.data = {}, this.order = [], this; + }, U.prototype.add = function(t2, e2, i2) { + var o2 = this, r2 = t2.wrapped().key; + void 0 === this.data[r2] && (this.data[r2] = []); + var a2 = { value: e2, timeout: void 0 }; + if (void 0 !== i2 && (a2.timeout = setTimeout(function() { + o2.remove(t2, a2); + }, i2)), this.data[r2].push(a2), this.order.push(r2), this.order.length > this.max) { + var n2 = this._getAndRemoveByKey(this.order[0]); + n2 && this.onRemove(n2); } - getBucket(t2) { - return this.buckets[t2.id]; + return this; + }, U.prototype.has = function(t2) { + return t2.wrapped().key in this.data; + }, U.prototype.getAndRemove = function(t2) { + return this.has(t2) ? this._getAndRemoveByKey(t2.wrapped().key) : null; + }, U.prototype._getAndRemoveByKey = function(t2) { + var e2 = this.data[t2].shift(); + return e2.timeout && clearTimeout(e2.timeout), 0 === this.data[t2].length && delete this.data[t2], this.order.splice(this.order.indexOf(t2), 1), e2.value; + }, U.prototype.getByKey = function(t2) { + var e2 = this.data[t2]; + return e2 ? e2[0].value : null; + }, U.prototype.get = function(t2) { + return this.has(t2) ? this.data[t2.wrapped().key][0].value : null; + }, U.prototype.remove = function(t2, e2) { + if (!this.has(t2)) + return this; + var i2 = t2.wrapped().key, o2 = void 0 === e2 ? 0 : this.data[i2].indexOf(e2), r2 = this.data[i2][o2]; + return this.data[i2].splice(o2, 1), r2.timeout && clearTimeout(r2.timeout), 0 === this.data[i2].length && delete this.data[i2], this.onRemove(r2.value), this.order.splice(this.order.indexOf(i2), 1), this; + }, U.prototype.setMaxSize = function(t2) { + for (this.max = t2; this.order.length > this.max; ) { + var e2 = this._getAndRemoveByKey(this.order[0]); + e2 && this.onRemove(e2); } - upload(t2) { - for (const e3 in this.buckets) { - const i2 = this.buckets[e3]; - i2.uploadPending() && i2.upload(t2); + return this; + }, U.prototype.filter = function(t2) { + var e2 = []; + for (var i2 in this.data) + for (var o2 = 0, r2 = this.data[i2]; o2 < r2.length; o2 += 1) { + var a2 = r2[o2]; + t2(a2.value) || e2.push(a2); } - const e2 = t2.gl; - this.imageAtlas && !this.imageAtlas.uploaded && (this.imageAtlasTexture = new l(t2, this.imageAtlas.image, e2.RGBA), this.imageAtlas.uploaded = true), this.glyphAtlasImage && (this.glyphAtlasTexture = new l(t2, this.glyphAtlasImage, e2.ALPHA), this.glyphAtlasImage = null); - } - prepare(t2) { - this.imageAtlas && this.imageAtlas.patchUpdatedImages(t2, this.imageAtlasTexture); + for (var n2 = 0, s2 = e2; n2 < s2.length; n2 += 1) { + var l2 = s2[n2]; + this.remove(l2.value.tileID, l2); } - queryRenderedFeatures(t2, e2, i2, o2, a2, r2, s2, n2, l2, c3) { - return this.latestFeatureIndex && this.latestFeatureIndex.rawTileData ? this.latestFeatureIndex.query({ queryGeometry: o2, cameraQueryGeometry: a2, scale: r2, tileSize: this.tileSize, pixelPosMatrix: c3, transform: n2, params: s2, queryPadding: this.queryPadding * l2 }, t2, e2, i2) : {}; + }; + var N = function(t2, e2, i2) { + this.context = t2; + var o2 = t2.gl; + this.buffer = o2.createBuffer(), this.dynamicDraw = Boolean(i2), this.context.unbindVAO(), t2.bindElementBuffer.set(this.buffer), o2.bufferData(o2.ELEMENT_ARRAY_BUFFER, e2.arrayBuffer, this.dynamicDraw ? o2.DYNAMIC_DRAW : o2.STATIC_DRAW), this.dynamicDraw || delete e2.arrayBuffer; + }; + N.prototype.bind = function() { + this.context.bindElementBuffer.set(this.buffer); + }, N.prototype.updateData = function(t2) { + var e2 = this.context.gl; + this.context.unbindVAO(), this.bind(), e2.bufferSubData(e2.ELEMENT_ARRAY_BUFFER, 0, t2.arrayBuffer); + }, N.prototype.destroy = function() { + this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer); + }; + var Z2 = { Int8: "BYTE", Uint8: "UNSIGNED_BYTE", Int16: "SHORT", Uint16: "UNSIGNED_SHORT", Int32: "INT", Uint32: "UNSIGNED_INT", Float32: "FLOAT" }, q = function(t2, e2, i2, o2) { + this.length = e2.length, this.attributes = i2, this.itemSize = e2.bytesPerElement, this.dynamicDraw = o2, this.context = t2; + var r2 = t2.gl; + this.buffer = r2.createBuffer(), t2.bindVertexBuffer.set(this.buffer), r2.bufferData(r2.ARRAY_BUFFER, e2.arrayBuffer, this.dynamicDraw ? r2.DYNAMIC_DRAW : r2.STATIC_DRAW), this.dynamicDraw || delete e2.arrayBuffer; + }; + q.prototype.bind = function() { + this.context.bindVertexBuffer.set(this.buffer); + }, q.prototype.updateData = function(t2) { + var e2 = this.context.gl; + this.bind(), e2.bufferSubData(e2.ARRAY_BUFFER, 0, t2.arrayBuffer); + }, q.prototype.enableAttributes = function(t2, e2) { + for (var i2 = 0; i2 < this.attributes.length; i2++) { + var o2 = e2.attributes[this.attributes[i2].name]; + void 0 !== o2 && t2.enableVertexAttribArray(o2); + } + }, q.prototype.setVertexAttribPointers = function(t2, e2, i2) { + for (var o2 = 0; o2 < this.attributes.length; o2++) { + var r2 = this.attributes[o2], a2 = e2.attributes[r2.name]; + void 0 !== a2 && t2.vertexAttribPointer(a2, r2.components, t2[Z2[r2.type]], false, this.itemSize, r2.offset + this.itemSize * (i2 || 0)); + } + }, q.prototype.destroy = function() { + this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer); + }; + var j = function(t2) { + this.gl = t2.gl, this.default = this.getDefault(), this.current = this.default, this.dirty = false; + }; + j.prototype.get = function() { + return this.current; + }, j.prototype.set = function(t2) { + }, j.prototype.getDefault = function() { + return this.default; + }, j.prototype.setDefault = function() { + this.set(this.default); + }; + var V2 = function(e2) { + function i2() { + e2.apply(this, arguments); } - querySourceFeatures(e2, i2) { - const o2 = this.latestFeatureIndex; - if (!o2 || !o2.rawTileData) - return; - const a2 = o2.loadVTLayers(), r2 = i2 ? i2.sourceLayer : "", s2 = a2._geojsonTileLayer || a2[r2]; - if (!s2) - return; - const n2 = t.createFilter(i2 && i2.filter), { z: l2, x: c3, y: h3 } = this.tileID.canonical, u2 = { z: l2, x: c3, y: h3 }; - for (let i3 = 0; i3 < s2.length; i3++) { - const a3 = s2.feature(i3); - if (n2.needGeometry) { - const e3 = t.toEvaluationFeature(a3, true); - if (!n2.filter(new t.EvaluationParameters(this.tileID.overscaledZ), e3, this.tileID.canonical)) - continue; - } else if (!n2.filter(new t.EvaluationParameters(this.tileID.overscaledZ), a3)) - continue; - const d2 = o2.getId(a3, r2), m2 = new t.GeoJSONFeature(a3, l2, c3, h3, d2); - m2.tile = u2, e2.push(m2); + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.getDefault = function() { + return t.Color.transparent; + }, i2.prototype.set = function(t2) { + var e3 = this.current; + (t2.r !== e3.r || t2.g !== e3.g || t2.b !== e3.b || t2.a !== e3.a || this.dirty) && (this.gl.clearColor(t2.r, t2.g, t2.b, t2.a), this.current = t2, this.dirty = false); + }, i2; + }(j), G = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return 1; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.clearDepth(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), W = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return 0; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.clearStencil(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), X = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return [true, true, true, true]; + }, e2.prototype.set = function(t3) { + var e3 = this.current; + (t3[0] !== e3[0] || t3[1] !== e3[1] || t3[2] !== e3[2] || t3[3] !== e3[3] || this.dirty) && (this.gl.colorMask(t3[0], t3[1], t3[2], t3[3]), this.current = t3, this.dirty = false); + }, e2; + }(j), H = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return true; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.depthMask(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), K = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return 255; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.stencilMask(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), Y = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return { func: this.gl.ALWAYS, ref: 0, mask: 255 }; + }, e2.prototype.set = function(t3) { + var e3 = this.current; + (t3.func !== e3.func || t3.ref !== e3.ref || t3.mask !== e3.mask || this.dirty) && (this.gl.stencilFunc(t3.func, t3.ref, t3.mask), this.current = t3, this.dirty = false); + }, e2; + }(j), J = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + var t3 = this.gl; + return [t3.KEEP, t3.KEEP, t3.KEEP]; + }, e2.prototype.set = function(t3) { + var e3 = this.current; + (t3[0] !== e3[0] || t3[1] !== e3[1] || t3[2] !== e3[2] || this.dirty) && (this.gl.stencilOp(t3[0], t3[1], t3[2]), this.current = t3, this.dirty = false); + }, e2; + }(j), Q = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return false; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + t3 ? e3.enable(e3.STENCIL_TEST) : e3.disable(e3.STENCIL_TEST), this.current = t3, this.dirty = false; } + }, e2; + }(j), $ = function(t2) { + function e2() { + t2.apply(this, arguments); } - hasData() { - return "loaded" === this.state || "reloading" === this.state || "expired" === this.state; - } - patternsLoaded() { - return this.imageAtlas && !!Object.keys(this.imageAtlas.patternPositions).length; - } - setExpiryData(e2) { - const i2 = this.expirationTime; - if (e2.cacheControl) { - const i3 = t.parseCacheControl(e2.cacheControl); - i3["max-age"] && (this.expirationTime = Date.now() + 1e3 * i3["max-age"]); - } else - e2.expires && (this.expirationTime = new Date(e2.expires).getTime()); - if (this.expirationTime) { - const t2 = Date.now(); - let e3 = false; - if (this.expirationTime > t2) - e3 = false; - else if (i2) - if (this.expirationTime < i2) - e3 = true; - else { - const o2 = this.expirationTime - i2; - o2 ? this.expirationTime = t2 + Math.max(o2, 3e4) : e3 = true; - } - else - e3 = true; - e3 ? (this.expiredRequestCount++, this.state = "expired") : this.expiredRequestCount = 0; + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return [0, 1]; + }, e2.prototype.set = function(t3) { + var e3 = this.current; + (t3[0] !== e3[0] || t3[1] !== e3[1] || this.dirty) && (this.gl.depthRange(t3[0], t3[1]), this.current = t3, this.dirty = false); + }, e2; + }(j), tt = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return false; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + t3 ? e3.enable(e3.DEPTH_TEST) : e3.disable(e3.DEPTH_TEST), this.current = t3, this.dirty = false; } + }, e2; + }(j), et = function(t2) { + function e2() { + t2.apply(this, arguments); } - getExpiryTimeout() { - if (this.expirationTime) - return this.expiredRequestCount ? 1e3 * (1 << Math.min(this.expiredRequestCount - 1, 31)) : Math.min(this.expirationTime - new Date().getTime(), Math.pow(2, 31) - 1); - } - setFeatureState(t2, e2) { - if (!this.latestFeatureIndex || !this.latestFeatureIndex.rawTileData || 0 === Object.keys(t2).length) - return; - const i2 = this.latestFeatureIndex.loadVTLayers(); - for (const o2 in this.buckets) { - if (!e2.style.hasLayer(o2)) - continue; - const a2 = this.buckets[o2], r2 = a2.layers[0].sourceLayer || "_geojsonTileLayer", s2 = i2[r2], n2 = t2[r2]; - if (!s2 || !n2 || 0 === Object.keys(n2).length) - continue; - a2.update(n2, s2, this.imageAtlas && this.imageAtlas.patternPositions || {}); - const l2 = e2 && e2.style && e2.style.getLayer(o2); - l2 && (this.queryPadding = Math.max(this.queryPadding, l2.queryRadius(a2))); + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return this.gl.LESS; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.depthFunc(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), it = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return false; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + t3 ? e3.enable(e3.BLEND) : e3.disable(e3.BLEND), this.current = t3, this.dirty = false; + } + }, e2; + }(j), ot = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + var t3 = this.gl; + return [t3.ONE, t3.ZERO]; + }, e2.prototype.set = function(t3) { + var e3 = this.current; + (t3[0] !== e3[0] || t3[1] !== e3[1] || this.dirty) && (this.gl.blendFunc(t3[0], t3[1]), this.current = t3, this.dirty = false); + }, e2; + }(j), rt = function(e2) { + function i2() { + e2.apply(this, arguments); + } + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.getDefault = function() { + return t.Color.transparent; + }, i2.prototype.set = function(t2) { + var e3 = this.current; + (t2.r !== e3.r || t2.g !== e3.g || t2.b !== e3.b || t2.a !== e3.a || this.dirty) && (this.gl.blendColor(t2.r, t2.g, t2.b, t2.a), this.current = t2, this.dirty = false); + }, i2; + }(j), at = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return this.gl.FUNC_ADD; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.blendEquation(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), nt = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return false; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + t3 ? e3.enable(e3.CULL_FACE) : e3.disable(e3.CULL_FACE), this.current = t3, this.dirty = false; } + }, e2; + }(j), st = function(t2) { + function e2() { + t2.apply(this, arguments); } - holdingForFade() { - return void 0 !== this.symbolFadeHoldUntil; - } - symbolFadeFinished() { - return !this.symbolFadeHoldUntil || this.symbolFadeHoldUntil < t.exported.now(); - } - clearFadeHold() { - this.symbolFadeHoldUntil = void 0; - } - setHoldDuration(e2) { - this.symbolFadeHoldUntil = t.exported.now() + e2; - } - setDependencies(t2, e2) { - const i2 = {}; - for (const t3 of e2) - i2[t3] = true; - this.dependencies[t2] = i2; - } - hasDependency(t2, e2) { - for (const i2 of t2) { - const t3 = this.dependencies[i2]; - if (t3) { - for (const i3 of e2) - if (t3[i3]) - return true; - } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return this.gl.BACK; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.cullFace(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), lt = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return this.gl.CCW; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.frontFace(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), ct = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return null; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.useProgram(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), ut = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return this.gl.TEXTURE0; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.activeTexture(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), ht = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + var t3 = this.gl; + return [0, 0, t3.drawingBufferWidth, t3.drawingBufferHeight]; + }, e2.prototype.set = function(t3) { + var e3 = this.current; + (t3[0] !== e3[0] || t3[1] !== e3[1] || t3[2] !== e3[2] || t3[3] !== e3[3] || this.dirty) && (this.gl.viewport(t3[0], t3[1], t3[2], t3[3]), this.current = t3, this.dirty = false); + }, e2; + }(j), pt = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return null; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + e3.bindFramebuffer(e3.FRAMEBUFFER, t3), this.current = t3, this.dirty = false; } - return false; - } - } - class B { - constructor(t2, e2) { - this.max = t2, this.onRemove = e2, this.reset(); + }, e2; + }(j), dt = function(t2) { + function e2() { + t2.apply(this, arguments); } - reset() { - for (const t2 in this.data) - for (const e2 of this.data[t2]) - e2.timeout && clearTimeout(e2.timeout), this.onRemove(e2.value); - return this.data = {}, this.order = [], this; - } - add(t2, e2, i2) { - const o2 = t2.wrapped().key; - void 0 === this.data[o2] && (this.data[o2] = []); - const a2 = { value: e2, timeout: void 0 }; - if (void 0 !== i2 && (a2.timeout = setTimeout(() => { - this.remove(t2, a2); - }, i2)), this.data[o2].push(a2), this.order.push(o2), this.order.length > this.max) { - const t3 = this._getAndRemoveByKey(this.order[0]); - t3 && this.onRemove(t3); + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return null; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + e3.bindRenderbuffer(e3.RENDERBUFFER, t3), this.current = t3, this.dirty = false; } - return this; - } - has(t2) { - return t2.wrapped().key in this.data; + }, e2; + }(j), _t = function(t2) { + function e2() { + t2.apply(this, arguments); } - getAndRemove(t2) { - return this.has(t2) ? this._getAndRemoveByKey(t2.wrapped().key) : null; - } - _getAndRemoveByKey(t2) { - const e2 = this.data[t2].shift(); - return e2.timeout && clearTimeout(e2.timeout), 0 === this.data[t2].length && delete this.data[t2], this.order.splice(this.order.indexOf(t2), 1), e2.value; - } - getByKey(t2) { - const e2 = this.data[t2]; - return e2 ? e2[0].value : null; - } - get(t2) { - return this.has(t2) ? this.data[t2.wrapped().key][0].value : null; - } - remove(t2, e2) { - if (!this.has(t2)) - return this; - const i2 = t2.wrapped().key, o2 = void 0 === e2 ? 0 : this.data[i2].indexOf(e2), a2 = this.data[i2][o2]; - return this.data[i2].splice(o2, 1), a2.timeout && clearTimeout(a2.timeout), 0 === this.data[i2].length && delete this.data[i2], this.onRemove(a2.value), this.order.splice(this.order.indexOf(i2), 1), this; + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return null; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + e3.bindTexture(e3.TEXTURE_2D, t3), this.current = t3, this.dirty = false; + } + }, e2; + }(j), ft = function(t2) { + function e2() { + t2.apply(this, arguments); } - setMaxSize(t2) { - for (this.max = t2; this.order.length > this.max; ) { - const t3 = this._getAndRemoveByKey(this.order[0]); - t3 && this.onRemove(t3); + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return null; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + e3.bindBuffer(e3.ARRAY_BUFFER, t3), this.current = t3, this.dirty = false; } - return this; + }, e2; + }(j), mt = function(t2) { + function e2() { + t2.apply(this, arguments); } - filter(t2) { - const e2 = []; - for (const i2 in this.data) - for (const o2 of this.data[i2]) - t2(o2.value) || e2.push(o2); - for (const t3 of e2) - this.remove(t3.value.tileID, t3); - } - } - class F { - constructor() { - this.state = {}, this.stateChanges = {}, this.deletedStates = {}; - } - updateState(e2, i2, o2) { - const a2 = String(i2); - if (this.stateChanges[e2] = this.stateChanges[e2] || {}, this.stateChanges[e2][a2] = this.stateChanges[e2][a2] || {}, t.extend(this.stateChanges[e2][a2], o2), null === this.deletedStates[e2]) { - this.deletedStates[e2] = {}; - for (const t2 in this.state[e2]) - t2 !== a2 && (this.deletedStates[e2][t2] = null); - } else if (this.deletedStates[e2] && null === this.deletedStates[e2][a2]) { - this.deletedStates[e2][a2] = {}; - for (const t2 in this.state[e2][a2]) - o2[t2] || (this.deletedStates[e2][a2][t2] = null); - } else - for (const t2 in o2) - this.deletedStates[e2] && this.deletedStates[e2][a2] && null === this.deletedStates[e2][a2][t2] && delete this.deletedStates[e2][a2][t2]; + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return null; + }, e2.prototype.set = function(t3) { + var e3 = this.gl; + e3.bindBuffer(e3.ELEMENT_ARRAY_BUFFER, t3), this.current = t3, this.dirty = false; + }, e2; + }(j), gt = function(t2) { + function e2(e3) { + t2.call(this, e3), this.vao = e3.extVertexArrayObject; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return null; + }, e2.prototype.set = function(t3) { + this.vao && (t3 !== this.current || this.dirty) && (this.vao.bindVertexArrayOES(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), vt = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return 4; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + e3.pixelStorei(e3.UNPACK_ALIGNMENT, t3), this.current = t3, this.dirty = false; + } + }, e2; + }(j), yt = function(t2) { + function e2() { + t2.apply(this, arguments); } - removeFeatureState(t2, e2, i2) { - if (null === this.deletedStates[t2]) - return; - const o2 = String(e2); - if (this.deletedStates[t2] = this.deletedStates[t2] || {}, i2 && void 0 !== e2) - null !== this.deletedStates[t2][o2] && (this.deletedStates[t2][o2] = this.deletedStates[t2][o2] || {}, this.deletedStates[t2][o2][i2] = null); - else if (void 0 !== e2) - if (this.stateChanges[t2] && this.stateChanges[t2][o2]) - for (i2 in this.deletedStates[t2][o2] = {}, this.stateChanges[t2][o2]) - this.deletedStates[t2][o2][i2] = null; - else - this.deletedStates[t2][o2] = null; - else - this.deletedStates[t2] = null; + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return false; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + e3.pixelStorei(e3.UNPACK_PREMULTIPLY_ALPHA_WEBGL, t3), this.current = t3, this.dirty = false; + } + }, e2; + }(j), xt = function(t2) { + function e2() { + t2.apply(this, arguments); } - getState(e2, i2) { - const o2 = String(i2), a2 = t.extend({}, (this.state[e2] || {})[o2], (this.stateChanges[e2] || {})[o2]); - if (null === this.deletedStates[e2]) - return {}; - if (this.deletedStates[e2]) { - const t2 = this.deletedStates[e2][i2]; - if (null === t2) - return {}; - for (const e3 in t2) - delete a2[e3]; + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return false; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + e3.pixelStorei(e3.UNPACK_FLIP_Y_WEBGL, t3), this.current = t3, this.dirty = false; } - return a2; + }, e2; + }(j), bt = function(t2) { + function e2(e3, i2) { + t2.call(this, e3), this.context = e3, this.parent = i2; } - initializeTileState(t2, e2) { - t2.setFeatureState(this.state, e2); - } - coalesceChanges(e2, i2) { - const o2 = {}; - for (const e3 in this.stateChanges) { - this.state[e3] = this.state[e3] || {}; - const i3 = {}; - for (const o3 in this.stateChanges[e3]) - this.state[e3][o3] || (this.state[e3][o3] = {}), t.extend(this.state[e3][o3], this.stateChanges[e3][o3]), i3[o3] = this.state[e3][o3]; - o2[e3] = i3; - } - for (const e3 in this.deletedStates) { - this.state[e3] = this.state[e3] || {}; - const i3 = {}; - if (null === this.deletedStates[e3]) - for (const t2 in this.state[e3]) - i3[t2] = {}, this.state[e3][t2] = {}; - else - for (const t2 in this.deletedStates[e3]) { - if (null === this.deletedStates[e3][t2]) - this.state[e3][t2] = {}; - else - for (const i4 of Object.keys(this.deletedStates[e3][t2])) - delete this.state[e3][t2][i4]; - i3[t2] = this.state[e3][t2]; - } - o2[e3] = o2[e3] || {}, t.extend(o2[e3], i3); - } - if (this.stateChanges = {}, this.deletedStates = {}, 0 !== Object.keys(o2).length) - for (const t2 in e2) - e2[t2].setFeatureState(o2, i2); - } - } - class O2 extends t.Evented { - constructor(e2, i2, o2) { - super(), this.id = e2, this.dispatcher = o2, this.on("data", (t2) => { - "source" === t2.dataType && "metadata" === t2.sourceDataType && (this._sourceLoaded = true), this._sourceLoaded && !this._paused && "source" === t2.dataType && "content" === t2.sourceDataType && (this.reload(), this.transform && this.update(this.transform, this.terrain)); - }), this.on("dataloading", () => { - this._sourceErrored = false; - }), this.on("error", () => { - this._sourceErrored = this._source.loaded(); - }), this._source = function(e3, i3, o3, a2) { - const r2 = new M[i3.type](e3, i3, o3, a2); - if (r2.id !== e3) - throw new Error(`Expected Source id to be ${e3} instead of ${r2.id}`); - return t.bindAll(["load", "abort", "unload", "serialize", "prepare"], r2), r2; - }(e2, i2, o2, this), this._tiles = {}, this._cache = new B(0, this._unloadTile.bind(this)), this._timers = {}, this._cacheTimers = {}, this._maxTileCacheSize = null, this._loadedParentTiles = {}, this._coveredTiles = {}, this._state = new F(); - } - onAdd(t2) { - this.map = t2, this._maxTileCacheSize = t2 ? t2._maxTileCacheSize : null, this._source && this._source.onAdd && this._source.onAdd(t2); + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return null; + }, e2; + }(j), wt = function(t2) { + function e2() { + t2.apply(this, arguments); } - onRemove(t2) { - this.clearTiles(), this._source && this._source.onRemove && this._source.onRemove(t2); + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.setDirty = function() { + this.dirty = true; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + this.context.bindFramebuffer.set(this.parent); + var e3 = this.gl; + e3.framebufferTexture2D(e3.FRAMEBUFFER, e3.COLOR_ATTACHMENT0, e3.TEXTURE_2D, t3, 0), this.current = t3, this.dirty = false; + } + }, e2; + }(bt), Tt = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + this.context.bindFramebuffer.set(this.parent); + var e3 = this.gl; + e3.framebufferRenderbuffer(e3.FRAMEBUFFER, e3.DEPTH_ATTACHMENT, e3.RENDERBUFFER, t3), this.current = t3, this.dirty = false; + } + }, e2; + }(bt), Et = function(t2, e2, i2, o2) { + this.context = t2, this.width = e2, this.height = i2; + var r2 = this.framebuffer = t2.gl.createFramebuffer(); + this.colorAttachment = new wt(t2, r2), o2 && (this.depthAttachment = new Tt(t2, r2)); + }; + Et.prototype.destroy = function() { + var t2 = this.context.gl, e2 = this.colorAttachment.get(); + if (e2 && t2.deleteTexture(e2), this.depthAttachment) { + var i2 = this.depthAttachment.get(); + i2 && t2.deleteRenderbuffer(i2); } - loaded() { + t2.deleteFramebuffer(this.framebuffer); + }; + var It = function(t2, e2, i2) { + this.func = t2, this.mask = e2, this.range = i2; + }; + It.ReadOnly = false, It.ReadWrite = true, It.disabled = new It(519, It.ReadOnly, [0, 1]); + var Pt = function(t2, e2, i2, o2, r2, a2) { + this.test = t2, this.ref = e2, this.mask = i2, this.fail = o2, this.depthFail = r2, this.pass = a2; + }; + Pt.disabled = new Pt({ func: 519, mask: 0 }, 0, 0, 7680, 7680, 7680); + var St = function(t2, e2, i2) { + this.blendFunction = t2, this.blendColor = e2, this.mask = i2; + }; + St.disabled = new St(St.Replace = [1, 0], t.Color.transparent, [false, false, false, false]), St.unblended = new St(St.Replace, t.Color.transparent, [true, true, true, true]), St.alphaBlended = new St([1, 771], t.Color.transparent, [true, true, true, true]); + var Ct = function(t2, e2, i2) { + this.enable = t2, this.mode = e2, this.frontFace = i2; + }; + Ct.disabled = new Ct(false, 1029, 2305), Ct.backCCW = new Ct(true, 1029, 2305); + var zt = function(t2) { + this.gl = t2, this.extVertexArrayObject = this.gl.getExtension("OES_vertex_array_object"), this.clearColor = new V2(this), this.clearDepth = new G(this), this.clearStencil = new W(this), this.colorMask = new X(this), this.depthMask = new H(this), this.stencilMask = new K(this), this.stencilFunc = new Y(this), this.stencilOp = new J(this), this.stencilTest = new Q(this), this.depthRange = new $(this), this.depthTest = new tt(this), this.depthFunc = new et(this), this.blend = new it(this), this.blendFunc = new ot(this), this.blendColor = new rt(this), this.blendEquation = new at(this), this.cullFace = new nt(this), this.cullFaceSide = new st(this), this.frontFace = new lt(this), this.program = new ct(this), this.activeTexture = new ut(this), this.viewport = new ht(this), this.bindFramebuffer = new pt(this), this.bindRenderbuffer = new dt(this), this.bindTexture = new _t(this), this.bindVertexBuffer = new ft(this), this.bindElementBuffer = new mt(this), this.bindVertexArrayOES = this.extVertexArrayObject && new gt(this), this.pixelStoreUnpack = new vt(this), this.pixelStoreUnpackPremultiplyAlpha = new yt(this), this.pixelStoreUnpackFlipY = new xt(this), this.extTextureFilterAnisotropic = t2.getExtension("EXT_texture_filter_anisotropic") || t2.getExtension("MOZ_EXT_texture_filter_anisotropic") || t2.getExtension("WEBKIT_EXT_texture_filter_anisotropic"), this.extTextureFilterAnisotropic && (this.extTextureFilterAnisotropicMax = t2.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)), this.extTextureHalfFloat = t2.getExtension("OES_texture_half_float"), this.extTextureHalfFloat && (t2.getExtension("OES_texture_half_float_linear"), this.extRenderToTextureHalfFloat = t2.getExtension("EXT_color_buffer_half_float")), this.extTimerQuery = t2.getExtension("EXT_disjoint_timer_query"), this.maxTextureSize = t2.getParameter(t2.MAX_TEXTURE_SIZE); + }; + zt.prototype.setDefault = function() { + this.unbindVAO(), this.clearColor.setDefault(), this.clearDepth.setDefault(), this.clearStencil.setDefault(), this.colorMask.setDefault(), this.depthMask.setDefault(), this.stencilMask.setDefault(), this.stencilFunc.setDefault(), this.stencilOp.setDefault(), this.stencilTest.setDefault(), this.depthRange.setDefault(), this.depthTest.setDefault(), this.depthFunc.setDefault(), this.blend.setDefault(), this.blendFunc.setDefault(), this.blendColor.setDefault(), this.blendEquation.setDefault(), this.cullFace.setDefault(), this.cullFaceSide.setDefault(), this.frontFace.setDefault(), this.program.setDefault(), this.activeTexture.setDefault(), this.bindFramebuffer.setDefault(), this.pixelStoreUnpack.setDefault(), this.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.pixelStoreUnpackFlipY.setDefault(); + }, zt.prototype.setDirty = function() { + this.clearColor.dirty = true, this.clearDepth.dirty = true, this.clearStencil.dirty = true, this.colorMask.dirty = true, this.depthMask.dirty = true, this.stencilMask.dirty = true, this.stencilFunc.dirty = true, this.stencilOp.dirty = true, this.stencilTest.dirty = true, this.depthRange.dirty = true, this.depthTest.dirty = true, this.depthFunc.dirty = true, this.blend.dirty = true, this.blendFunc.dirty = true, this.blendColor.dirty = true, this.blendEquation.dirty = true, this.cullFace.dirty = true, this.cullFaceSide.dirty = true, this.frontFace.dirty = true, this.program.dirty = true, this.activeTexture.dirty = true, this.viewport.dirty = true, this.bindFramebuffer.dirty = true, this.bindRenderbuffer.dirty = true, this.bindTexture.dirty = true, this.bindVertexBuffer.dirty = true, this.bindElementBuffer.dirty = true, this.extVertexArrayObject && (this.bindVertexArrayOES.dirty = true), this.pixelStoreUnpack.dirty = true, this.pixelStoreUnpackPremultiplyAlpha.dirty = true, this.pixelStoreUnpackFlipY.dirty = true; + }, zt.prototype.createIndexBuffer = function(t2, e2) { + return new N(this, t2, e2); + }, zt.prototype.createVertexBuffer = function(t2, e2, i2) { + return new q(this, t2, e2, i2); + }, zt.prototype.createRenderbuffer = function(t2, e2, i2) { + var o2 = this.gl, r2 = o2.createRenderbuffer(); + return this.bindRenderbuffer.set(r2), o2.renderbufferStorage(o2.RENDERBUFFER, t2, e2, i2), this.bindRenderbuffer.set(null), r2; + }, zt.prototype.createFramebuffer = function(t2, e2, i2) { + return new Et(this, t2, e2, i2); + }, zt.prototype.clear = function(t2) { + var e2 = t2.color, i2 = t2.depth, o2 = this.gl, r2 = 0; + e2 && (r2 |= o2.COLOR_BUFFER_BIT, this.clearColor.set(e2), this.colorMask.set([true, true, true, true])), void 0 !== i2 && (r2 |= o2.DEPTH_BUFFER_BIT, this.depthRange.set([0, 1]), this.clearDepth.set(i2), this.depthMask.set(true)), o2.clear(r2); + }, zt.prototype.setCullFace = function(t2) { + false === t2.enable ? this.cullFace.set(false) : (this.cullFace.set(true), this.cullFaceSide.set(t2.mode), this.frontFace.set(t2.frontFace)); + }, zt.prototype.setDepthMode = function(t2) { + t2.func !== this.gl.ALWAYS || t2.mask ? (this.depthTest.set(true), this.depthFunc.set(t2.func), this.depthMask.set(t2.mask), this.depthRange.set(t2.range)) : this.depthTest.set(false); + }, zt.prototype.setStencilMode = function(t2) { + t2.test.func !== this.gl.ALWAYS || t2.mask ? (this.stencilTest.set(true), this.stencilMask.set(t2.mask), this.stencilOp.set([t2.fail, t2.depthFail, t2.pass]), this.stencilFunc.set({ func: t2.test.func, ref: t2.ref, mask: t2.test.mask })) : this.stencilTest.set(false); + }, zt.prototype.setColorMode = function(e2) { + t.deepEqual(e2.blendFunction, St.Replace) ? this.blend.set(false) : (this.blend.set(true), this.blendFunc.set(e2.blendFunction), this.blendColor.set(e2.blendColor)), this.colorMask.set(e2.mask); + }, zt.prototype.unbindVAO = function() { + this.extVertexArrayObject && this.bindVertexArrayOES.set(null); + }; + var Dt = function(e2) { + function i2(i3, o2, r2) { + var a2 = this; + e2.call(this), this.id = i3, this.dispatcher = r2, this.on("data", function(t2) { + "source" === t2.dataType && "metadata" === t2.sourceDataType && (a2._sourceLoaded = true), a2._sourceLoaded && !a2._paused && "source" === t2.dataType && "content" === t2.sourceDataType && (a2.reload(), a2.transform && a2.update(a2.transform)); + }), this.on("error", function() { + a2._sourceErrored = true; + }), this._source = function(e3, i4, o3, r3) { + var a3 = new k[i4.type](e3, i4, o3, r3); + if (a3.id !== e3) + throw new Error("Expected Source id to be " + e3 + " instead of " + a3.id); + return t.bindAll(["load", "abort", "unload", "serialize", "prepare"], a3), a3; + }(i3, o2, r2, this), this._tiles = {}, this._cache = new U(0, this._unloadTile.bind(this)), this._timers = {}, this._cacheTimers = {}, this._maxTileCacheSize = null, this._loadedParentTiles = {}, this._coveredTiles = {}, this._state = new t.SourceFeatureState(); + } + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.onAdd = function(t2) { + this.map = t2, this._maxTileCacheSize = t2 ? t2._maxTileCacheSize : null, this._source && this._source.onAdd && this._source.onAdd(t2); + }, i2.prototype.onRemove = function(t2) { + this._source && this._source.onRemove && this._source.onRemove(t2); + }, i2.prototype.loaded = function() { if (this._sourceErrored) return true; if (!this._sourceLoaded) return false; if (!this._source.loaded()) return false; - for (const t2 in this._tiles) { - const e2 = this._tiles[t2]; - if ("loaded" !== e2.state && "errored" !== e2.state) + for (var t2 in this._tiles) { + var e3 = this._tiles[t2]; + if ("loaded" !== e3.state && "errored" !== e3.state) return false; } return true; - } - getSource() { + }, i2.prototype.getSource = function() { return this._source; - } - pause() { + }, i2.prototype.pause = function() { this._paused = true; - } - resume() { - if (!this._paused) - return; - const t2 = this._shouldReloadOnResume; - this._paused = false, this._shouldReloadOnResume = false, t2 && this.reload(), this.transform && this.update(this.transform, this.terrain); - } - _loadTile(t2, e2) { - return this._source.loadTile(t2, e2); - } - _unloadTile(t2) { + }, i2.prototype.resume = function() { + if (this._paused) { + var t2 = this._shouldReloadOnResume; + this._paused = false, this._shouldReloadOnResume = false, t2 && this.reload(), this.transform && this.update(this.transform); + } + }, i2.prototype._loadTile = function(t2, e3) { + return this._source.loadTile(t2, e3); + }, i2.prototype._unloadTile = function(t2) { if (this._source.unloadTile) - return this._source.unloadTile(t2, () => { + return this._source.unloadTile(t2, function() { }); - } - _abortTile(e2) { - this._source.abortTile && this._source.abortTile(e2, () => { - }), this._source.fire(new t.Event("dataabort", { tile: e2, coord: e2.tileID, dataType: "source" })); - } - serialize() { + }, i2.prototype._abortTile = function(t2) { + if (this._source.abortTile) + return this._source.abortTile(t2, function() { + }); + }, i2.prototype.serialize = function() { return this._source.serialize(); - } - prepare(t2) { - this._source.prepare && this._source.prepare(), this._state.coalesceChanges(this._tiles, this.map ? this.map.painter : null); - for (const e2 in this._tiles) { - const i2 = this._tiles[e2]; - i2.upload(t2), i2.prepare(this.map.style.imageManager); - } - } - getIds() { - return Object.values(this._tiles).map((t2) => t2.tileID).sort(U).map((t2) => t2.key); - } - getRenderableIds(e2) { - const i2 = []; - for (const t2 in this._tiles) - this._isIdRenderable(t2, e2) && i2.push(this._tiles[t2]); - return e2 ? i2.sort((e3, i3) => { - const o2 = e3.tileID, a2 = i3.tileID, r2 = new t.pointGeometry(o2.canonical.x, o2.canonical.y)._rotate(this.transform.angle), s2 = new t.pointGeometry(a2.canonical.x, a2.canonical.y)._rotate(this.transform.angle); - return o2.overscaledZ - a2.overscaledZ || s2.y - r2.y || s2.x - r2.x; - }).map((t2) => t2.tileID.key) : i2.map((t2) => t2.tileID).sort(U).map((t2) => t2.key); - } - hasRenderableParent(t2) { - const e2 = this.findLoadedParent(t2, 0); - return !!e2 && this._isIdRenderable(e2.tileID.key); - } - _isIdRenderable(t2, e2) { - return this._tiles[t2] && this._tiles[t2].hasData() && !this._coveredTiles[t2] && (e2 || !this._tiles[t2].holdingForFade()); - } - reload() { + }, i2.prototype.prepare = function(t2) { + for (var e3 in this._source.prepare && this._source.prepare(), this._state.coalesceChanges(this._tiles, this.map ? this.map.painter : null), this._tiles) { + var i3 = this._tiles[e3]; + i3.upload(t2), i3.prepare(this.map.style.imageManager); + } + }, i2.prototype.getIds = function() { + return t.values(this._tiles).map(function(t2) { + return t2.tileID; + }).sort(At).map(function(t2) { + return t2.key; + }); + }, i2.prototype.getRenderableIds = function(e3) { + var i3 = this, o2 = []; + for (var r2 in this._tiles) + this._isIdRenderable(r2, e3) && o2.push(this._tiles[r2]); + return e3 ? o2.sort(function(e4, o3) { + var r3 = e4.tileID, a2 = o3.tileID, n2 = new t.Point(r3.canonical.x, r3.canonical.y)._rotate(i3.transform.angle), s2 = new t.Point(a2.canonical.x, a2.canonical.y)._rotate(i3.transform.angle); + return r3.overscaledZ - a2.overscaledZ || s2.y - n2.y || s2.x - n2.x; + }).map(function(t2) { + return t2.tileID.key; + }) : o2.map(function(t2) { + return t2.tileID; + }).sort(At).map(function(t2) { + return t2.key; + }); + }, i2.prototype.hasRenderableParent = function(t2) { + var e3 = this.findLoadedParent(t2, 0); + return !!e3 && this._isIdRenderable(e3.tileID.key); + }, i2.prototype._isIdRenderable = function(t2, e3) { + return this._tiles[t2] && this._tiles[t2].hasData() && !this._coveredTiles[t2] && (e3 || !this._tiles[t2].holdingForFade()); + }, i2.prototype.reload = function() { if (this._paused) this._shouldReloadOnResume = true; - else { - this._cache.reset(); - for (const t2 in this._tiles) + else + for (var t2 in this._cache.reset(), this._tiles) "errored" !== this._tiles[t2].state && this._reloadTile(t2, "reloading"); - } - } - _reloadTile(t2, e2) { - const i2 = this._tiles[t2]; - i2 && ("loading" !== i2.state && (i2.state = e2), this._loadTile(i2, this._tileLoaded.bind(this, i2, t2, e2))); - } - _tileLoaded(e2, i2, o2, a2) { - if (a2) - return e2.state = "errored", void (404 !== a2.status ? this._source.fire(new t.ErrorEvent(a2, { tile: e2 })) : this.update(this.transform, this.terrain)); - e2.timeAdded = t.exported.now(), "expired" === o2 && (e2.refreshedUponExpiration = true), this._setTileReloadTimer(i2, e2), "raster-dem" === this.getSource().type && e2.dem && this._backfillDEM(e2), this._state.initializeTileState(e2, this.map ? this.map.painter : null), e2.aborted || this._source.fire(new t.Event("data", { dataType: "source", tile: e2, coord: e2.tileID })); - } - _backfillDEM(t2) { - const e2 = this.getRenderableIds(); - for (let o2 = 0; o2 < e2.length; o2++) { - const a2 = e2[o2]; - if (t2.neighboringTiles && t2.neighboringTiles[a2]) { - const e3 = this.getTileByID(a2); - i2(t2, e3), i2(e3, t2); + }, i2.prototype._reloadTile = function(t2, e3) { + var i3 = this._tiles[t2]; + i3 && ("loading" !== i3.state && (i3.state = e3), this._loadTile(i3, this._tileLoaded.bind(this, i3, t2, e3))); + }, i2.prototype._tileLoaded = function(e3, i3, o2, r2) { + if (r2) + return e3.state = "errored", void (404 !== r2.status ? this._source.fire(new t.ErrorEvent(r2, { tile: e3 })) : this.update(this.transform)); + e3.timeAdded = t.browser.now(), "expired" === o2 && (e3.refreshedUponExpiration = true), this._setTileReloadTimer(i3, e3), "raster-dem" === this.getSource().type && e3.dem && this._backfillDEM(e3), this._state.initializeTileState(e3, this.map ? this.map.painter : null), this._source.fire(new t.Event("data", { dataType: "source", tile: e3, coord: e3.tileID })); + }, i2.prototype._backfillDEM = function(t2) { + for (var e3 = this.getRenderableIds(), i3 = 0; i3 < e3.length; i3++) { + var o2 = e3[i3]; + if (t2.neighboringTiles && t2.neighboringTiles[o2]) { + var r2 = this.getTileByID(o2); + a2(t2, r2), a2(r2, t2); } } - function i2(t3, e3) { - t3.needsHillshadePrepare = true, t3.needsTerrainPrepare = true; - let i3 = e3.tileID.canonical.x - t3.tileID.canonical.x; - const o2 = e3.tileID.canonical.y - t3.tileID.canonical.y, a2 = Math.pow(2, t3.tileID.canonical.z), r2 = e3.tileID.key; - 0 === i3 && 0 === o2 || Math.abs(o2) > 1 || (Math.abs(i3) > 1 && (1 === Math.abs(i3 + a2) ? i3 += a2 : 1 === Math.abs(i3 - a2) && (i3 -= a2)), e3.dem && t3.dem && (t3.dem.backfillBorder(e3.dem, i3, o2), t3.neighboringTiles && t3.neighboringTiles[r2] && (t3.neighboringTiles[r2].backfilled = true))); + function a2(t3, e4) { + t3.needsHillshadePrepare = true; + var i4 = e4.tileID.canonical.x - t3.tileID.canonical.x, o3 = e4.tileID.canonical.y - t3.tileID.canonical.y, r3 = Math.pow(2, t3.tileID.canonical.z), a3 = e4.tileID.key; + 0 === i4 && 0 === o3 || Math.abs(o3) > 1 || (Math.abs(i4) > 1 && (1 === Math.abs(i4 + r3) ? i4 += r3 : 1 === Math.abs(i4 - r3) && (i4 -= r3)), e4.dem && t3.dem && (t3.dem.backfillBorder(e4.dem, i4, o3), t3.neighboringTiles && t3.neighboringTiles[a3] && (t3.neighboringTiles[a3].backfilled = true))); } - } - getTile(t2) { + }, i2.prototype.getTile = function(t2) { return this.getTileByID(t2.key); - } - getTileByID(t2) { + }, i2.prototype.getTileByID = function(t2) { return this._tiles[t2]; - } - _retainLoadedChildren(t2, e2, i2, o2) { - for (const a2 in this._tiles) { - let r2 = this._tiles[a2]; - if (o2[a2] || !r2.hasData() || r2.tileID.overscaledZ <= e2 || r2.tileID.overscaledZ > i2) - continue; - let s2 = r2.tileID; - for (; r2 && r2.tileID.overscaledZ > e2 + 1; ) { - const t3 = r2.tileID.scaledTo(r2.tileID.overscaledZ - 1); - r2 = this._tiles[t3.key], r2 && r2.hasData() && (s2 = t3); - } - let n2 = s2; - for (; n2.overscaledZ > e2; ) - if (n2 = n2.scaledTo(n2.overscaledZ - 1), t2[n2.key]) { - o2[s2.key] = s2; - break; + }, i2.prototype._retainLoadedChildren = function(t2, e3, i3, o2) { + for (var r2 in this._tiles) { + var a2 = this._tiles[r2]; + if (!(o2[r2] || !a2.hasData() || a2.tileID.overscaledZ <= e3 || a2.tileID.overscaledZ > i3)) { + for (var n2 = a2.tileID; a2 && a2.tileID.overscaledZ > e3 + 1; ) { + var s2 = a2.tileID.scaledTo(a2.tileID.overscaledZ - 1); + (a2 = this._tiles[s2.key]) && a2.hasData() && (n2 = s2); } + for (var l2 = n2; l2.overscaledZ > e3; ) + if (t2[(l2 = l2.scaledTo(l2.overscaledZ - 1)).key]) { + o2[n2.key] = n2; + break; + } + } } - } - findLoadedParent(t2, e2) { + }, i2.prototype.findLoadedParent = function(t2, e3) { if (t2.key in this._loadedParentTiles) { - const i2 = this._loadedParentTiles[t2.key]; - return i2 && i2.tileID.overscaledZ >= e2 ? i2 : null; - } - for (let i2 = t2.overscaledZ - 1; i2 >= e2; i2--) { - const e3 = t2.scaledTo(i2), o2 = this._getLoadedTile(e3); - if (o2) - return o2; - } - } - _getLoadedTile(t2) { - const e2 = this._tiles[t2.key]; - return e2 && e2.hasData() ? e2 : this._cache.getByKey(t2.wrapped().key); - } - updateCacheSize(t2) { - const e2 = Math.ceil(t2.width / this._source.tileSize) + 1, i2 = Math.ceil(t2.height / this._source.tileSize) + 1, o2 = Math.floor(e2 * i2 * 5), a2 = "number" == typeof this._maxTileCacheSize ? Math.min(this._maxTileCacheSize, o2) : o2; - this._cache.setMaxSize(a2); - } - handleWrapJump(t2) { - const e2 = Math.round((t2 - (void 0 === this._prevLng ? t2 : this._prevLng)) / 360); - if (this._prevLng = t2, e2) { - const t3 = {}; - for (const i2 in this._tiles) { - const o2 = this._tiles[i2]; - o2.tileID = o2.tileID.unwrapTo(o2.tileID.wrap + e2), t3[o2.tileID.key] = o2; - } - this._tiles = t3; - for (const t4 in this._timers) - clearTimeout(this._timers[t4]), delete this._timers[t4]; - for (const t4 in this._tiles) - this._setTileReloadTimer(t4, this._tiles[t4]); + var i3 = this._loadedParentTiles[t2.key]; + return i3 && i3.tileID.overscaledZ >= e3 ? i3 : null; } - } - update(e2, i2) { - if (this.transform = e2, this.terrain = i2, !this._sourceLoaded || this._paused) - return; - let o2; - this.updateCacheSize(e2), this.handleWrapJump(this.transform.center.lng), this._coveredTiles = {}, this.used || this.usedForTerrain ? this._source.tileID ? o2 = e2.getVisibleUnwrappedCoordinates(this._source.tileID).map((e3) => new t.OverscaledTileID(e3.canonical.z, e3.wrap, e3.canonical.z, e3.canonical.x, e3.canonical.y)) : (o2 = e2.coveringTiles({ tileSize: this.usedForTerrain ? this.tileSize : this._source.tileSize, minzoom: this._source.minzoom, maxzoom: this._source.maxzoom, roundZoom: !this.usedForTerrain && this._source.roundZoom, reparseOverscaled: this._source.reparseOverscaled, terrain: i2 }), this._source.hasTile && (o2 = o2.filter((t2) => this._source.hasTile(t2)))) : o2 = []; - const a2 = e2.coveringZoomLevel(this._source), r2 = Math.max(a2 - O2.maxOverzooming, this._source.minzoom), s2 = Math.max(a2 + O2.maxUnderzooming, this._source.minzoom); - if (this.usedForTerrain) { - const t2 = {}; - for (const e3 of o2) - if (e3.canonical.z > this._source.minzoom) { - const i3 = e3.scaledTo(e3.canonical.z - 1); - t2[i3.key] = i3; - const o3 = e3.scaledTo(Math.max(this._source.minzoom, Math.min(e3.canonical.z, 5))); - t2[o3.key] = o3; - } - o2 = o2.concat(Object.values(t2)); - } - const n2 = this._updateRetainedTiles(o2, a2); - if (N(this._source.type)) { - const e3 = {}, l3 = {}, c3 = Object.keys(n2); - for (const i3 of c3) { - const o3 = n2[i3], a3 = this._tiles[i3]; - if (!a3 || a3.fadeEndTime && a3.fadeEndTime <= t.exported.now()) - continue; - const s3 = this.findLoadedParent(o3, r2); - s3 && (this._addTile(s3.tileID), e3[s3.tileID.key] = s3.tileID), l3[i3] = o3; + for (var o2 = t2.overscaledZ - 1; o2 >= e3; o2--) { + var r2 = t2.scaledTo(o2), a2 = this._getLoadedTile(r2); + if (a2) + return a2; + } + }, i2.prototype._getLoadedTile = function(t2) { + var e3 = this._tiles[t2.key]; + return e3 && e3.hasData() ? e3 : this._cache.getByKey(t2.wrapped().key); + }, i2.prototype.updateCacheSize = function(t2) { + var e3 = Math.ceil(t2.width / this._source.tileSize) + 1, i3 = Math.ceil(t2.height / this._source.tileSize) + 1, o2 = Math.floor(e3 * i3 * 5), r2 = "number" == typeof this._maxTileCacheSize ? Math.min(this._maxTileCacheSize, o2) : o2; + this._cache.setMaxSize(r2); + }, i2.prototype.handleWrapJump = function(t2) { + var e3 = Math.round((t2 - (void 0 === this._prevLng ? t2 : this._prevLng)) / 360); + if (this._prevLng = t2, e3) { + var i3 = {}; + for (var o2 in this._tiles) { + var r2 = this._tiles[o2]; + r2.tileID = r2.tileID.unwrapTo(r2.tileID.wrap + e3), i3[r2.tileID.key] = r2; } - this._retainLoadedChildren(l3, a2, s2, n2); - for (const t2 in e3) - n2[t2] || (this._coveredTiles[t2] = true, n2[t2] = e3[t2]); - if (i2) { - const t2 = {}, e4 = {}; - for (const i3 of o2) - this._tiles[i3.key].hasData() ? t2[i3.key] = i3 : e4[i3.key] = i3; - for (const i3 in e4) { - const o3 = e4[i3].children(this._source.maxzoom); - this._tiles[o3[0].key] && this._tiles[o3[1].key] && this._tiles[o3[2].key] && this._tiles[o3[3].key] && (t2[o3[0].key] = n2[o3[0].key] = o3[0], t2[o3[1].key] = n2[o3[1].key] = o3[1], t2[o3[2].key] = n2[o3[2].key] = o3[2], t2[o3[3].key] = n2[o3[3].key] = o3[3], delete e4[i3]); - } - for (const i3 in e4) { - const o3 = this.findLoadedParent(e4[i3], this._source.minzoom); - if (o3) { - t2[o3.tileID.key] = n2[o3.tileID.key] = o3.tileID; - for (const e5 in t2) - t2[e5].isChildOf(o3.tileID) && delete t2[e5]; + for (var a2 in this._tiles = i3, this._timers) + clearTimeout(this._timers[a2]), delete this._timers[a2]; + for (var n2 in this._tiles) + this._setTileReloadTimer(n2, this._tiles[n2]); + } + }, i2.prototype.update = function(e3) { + var o2 = this; + if (this.transform = e3, this._sourceLoaded && !this._paused) { + var r2; + this.updateCacheSize(e3), this.handleWrapJump(this.transform.center.lng), this._coveredTiles = {}, this.used ? this._source.tileID ? r2 = e3.getVisibleUnwrappedCoordinates(this._source.tileID).map(function(e4) { + return new t.OverscaledTileID(e4.canonical.z, e4.wrap, e4.canonical.z, e4.canonical.x, e4.canonical.y); + }) : (r2 = e3.coveringTiles({ tileSize: this._source.tileSize, minzoom: this._source.minzoom, maxzoom: this._source.maxzoom, roundZoom: this._source.roundZoom, reparseOverscaled: this._source.reparseOverscaled }), this._source.hasTile && (r2 = r2.filter(function(t2) { + return o2._source.hasTile(t2); + }))) : r2 = []; + var a2 = e3.coveringZoomLevel(this._source), n2 = Math.max(a2 - i2.maxOverzooming, this._source.minzoom), s2 = Math.max(a2 + i2.maxUnderzooming, this._source.minzoom), l2 = this._updateRetainedTiles(r2, a2); + if (Mt(this._source.type)) { + for (var c3 = {}, u2 = {}, h3 = 0, p3 = Object.keys(l2); h3 < p3.length; h3 += 1) { + var d2 = p3[h3], _24 = l2[d2], f2 = this._tiles[d2]; + if (f2 && !(f2.fadeEndTime && f2.fadeEndTime <= t.browser.now())) { + var m2 = this.findLoadedParent(_24, n2); + m2 && (this._addTile(m2.tileID), c3[m2.tileID.key] = m2.tileID), u2[d2] = _24; } } - for (const e5 in this._tiles) - t2[e5] || (this._coveredTiles[e5] = true); + for (var g2 in this._retainLoadedChildren(u2, a2, s2, l2), c3) + l2[g2] || (this._coveredTiles[g2] = true, l2[g2] = c3[g2]); } + for (var v3 in l2) + this._tiles[v3].clearFadeHold(); + for (var y3 = 0, x2 = t.keysDifference(this._tiles, l2); y3 < x2.length; y3 += 1) { + var b2 = x2[y3], w2 = this._tiles[b2]; + w2.hasSymbolBuckets && !w2.holdingForFade() ? w2.setHoldDuration(this.map._fadeDuration) : w2.hasSymbolBuckets && !w2.symbolFadeFinished() || this._removeTile(b2); + } + this._updateLoadedParentTileCache(); } - for (const t2 in n2) - this._tiles[t2].clearFadeHold(); - const l2 = t.keysDifference(this._tiles, n2); - for (const t2 of l2) { - const e3 = this._tiles[t2]; - e3.hasSymbolBuckets && !e3.holdingForFade() ? e3.setHoldDuration(this.map._fadeDuration) : e3.hasSymbolBuckets && !e3.symbolFadeFinished() || this._removeTile(t2); - } - this._updateLoadedParentTileCache(); - } - releaseSymbolFadeTiles() { - for (const t2 in this._tiles) + }, i2.prototype.releaseSymbolFadeTiles = function() { + for (var t2 in this._tiles) this._tiles[t2].holdingForFade() && this._removeTile(t2); - } - _updateRetainedTiles(t2, e2) { - const i2 = {}, o2 = {}, a2 = Math.max(e2 - O2.maxOverzooming, this._source.minzoom), r2 = Math.max(e2 + O2.maxUnderzooming, this._source.minzoom), s2 = {}; - for (const o3 of t2) { - const t3 = this._addTile(o3); - i2[o3.key] = o3, t3.hasData() || e2 < this._source.maxzoom && (s2[o3.key] = o3); - } - this._retainLoadedChildren(s2, e2, r2, i2); - for (const r3 of t2) { - let t3 = this._tiles[r3.key]; - if (t3.hasData()) - continue; - if (e2 + 1 > this._source.maxzoom) { - const t4 = r3.children(this._source.maxzoom)[0], e3 = this.getTile(t4); - if (e3 && e3.hasData()) { - i2[t4.key] = t4; - continue; + }, i2.prototype._updateRetainedTiles = function(t2, e3) { + for (var o2 = {}, r2 = {}, a2 = Math.max(e3 - i2.maxOverzooming, this._source.minzoom), n2 = Math.max(e3 + i2.maxUnderzooming, this._source.minzoom), s2 = {}, l2 = 0, c3 = t2; l2 < c3.length; l2 += 1) { + var u2 = c3[l2], h3 = this._addTile(u2); + o2[u2.key] = u2, h3.hasData() || e3 < this._source.maxzoom && (s2[u2.key] = u2); + } + this._retainLoadedChildren(s2, e3, n2, o2); + for (var p3 = 0, d2 = t2; p3 < d2.length; p3 += 1) { + var _24 = d2[p3], f2 = this._tiles[_24.key]; + if (!f2.hasData()) { + if (e3 + 1 > this._source.maxzoom) { + var m2 = _24.children(this._source.maxzoom)[0], g2 = this.getTile(m2); + if (g2 && g2.hasData()) { + o2[m2.key] = m2; + continue; + } + } else { + var v3 = _24.children(this._source.maxzoom); + if (o2[v3[0].key] && o2[v3[1].key] && o2[v3[2].key] && o2[v3[3].key]) + continue; + } + for (var y3 = f2.wasRequested(), x2 = _24.overscaledZ - 1; x2 >= a2; --x2) { + var b2 = _24.scaledTo(x2); + if (r2[b2.key]) + break; + if (r2[b2.key] = true, !(f2 = this.getTile(b2)) && y3 && (f2 = this._addTile(b2)), f2 && (o2[b2.key] = b2, y3 = f2.wasRequested(), f2.hasData())) + break; } - } else { - const t4 = r3.children(this._source.maxzoom); - if (i2[t4[0].key] && i2[t4[1].key] && i2[t4[2].key] && i2[t4[3].key]) - continue; - } - let s3 = t3.wasRequested(); - for (let e3 = r3.overscaledZ - 1; e3 >= a2; --e3) { - const a3 = r3.scaledTo(e3); - if (o2[a3.key]) - break; - if (o2[a3.key] = true, t3 = this.getTile(a3), !t3 && s3 && (t3 = this._addTile(a3)), t3 && (i2[a3.key] = a3, s3 = t3.wasRequested(), t3.hasData())) - break; } } - return i2; - } - _updateLoadedParentTileCache() { - this._loadedParentTiles = {}; - for (const t2 in this._tiles) { - const e2 = []; - let i2, o2 = this._tiles[t2].tileID; - for (; o2.overscaledZ > 0; ) { + return o2; + }, i2.prototype._updateLoadedParentTileCache = function() { + for (var t2 in this._loadedParentTiles = {}, this._tiles) { + for (var e3 = [], i3 = void 0, o2 = this._tiles[t2].tileID; o2.overscaledZ > 0; ) { if (o2.key in this._loadedParentTiles) { - i2 = this._loadedParentTiles[o2.key]; + i3 = this._loadedParentTiles[o2.key]; break; } - e2.push(o2.key); - const t3 = o2.scaledTo(o2.overscaledZ - 1); - if (i2 = this._getLoadedTile(t3), i2) + e3.push(o2.key); + var r2 = o2.scaledTo(o2.overscaledZ - 1); + if (i3 = this._getLoadedTile(r2)) break; - o2 = t3; + o2 = r2; } - for (const t3 of e2) - this._loadedParentTiles[t3] = i2; + for (var a2 = 0, n2 = e3; a2 < n2.length; a2 += 1) + this._loadedParentTiles[n2[a2]] = i3; } - } - _addTile(e2) { - let i2 = this._tiles[e2.key]; - if (i2) - return i2; - i2 = this._cache.getAndRemove(e2), i2 && (this._setTileReloadTimer(e2.key, i2), i2.tileID = e2, this._state.initializeTileState(i2, this.map ? this.map.painter : null), this._cacheTimers[e2.key] && (clearTimeout(this._cacheTimers[e2.key]), delete this._cacheTimers[e2.key], this._setTileReloadTimer(e2.key, i2))); - const o2 = i2; - return i2 || (i2 = new k(e2, this._source.tileSize * e2.overscaleFactor()), this._loadTile(i2, this._tileLoaded.bind(this, i2, e2.key, i2.state))), i2.uses++, this._tiles[e2.key] = i2, o2 || this._source.fire(new t.Event("dataloading", { tile: i2, coord: i2.tileID, dataType: "source" })), i2; - } - _setTileReloadTimer(t2, e2) { + }, i2.prototype._addTile = function(e3) { + var i3 = this._tiles[e3.key]; + if (i3) + return i3; + (i3 = this._cache.getAndRemove(e3)) && (this._setTileReloadTimer(e3.key, i3), i3.tileID = e3, this._state.initializeTileState(i3, this.map ? this.map.painter : null), this._cacheTimers[e3.key] && (clearTimeout(this._cacheTimers[e3.key]), delete this._cacheTimers[e3.key], this._setTileReloadTimer(e3.key, i3))); + var o2 = Boolean(i3); + return o2 || (i3 = new t.Tile(e3, this._source.tileSize * e3.overscaleFactor()), this._loadTile(i3, this._tileLoaded.bind(this, i3, e3.key, i3.state))), i3 ? (i3.uses++, this._tiles[e3.key] = i3, o2 || this._source.fire(new t.Event("dataloading", { tile: i3, coord: i3.tileID, dataType: "source" })), i3) : null; + }, i2.prototype._setTileReloadTimer = function(t2, e3) { + var i3 = this; t2 in this._timers && (clearTimeout(this._timers[t2]), delete this._timers[t2]); - const i2 = e2.getExpiryTimeout(); - i2 && (this._timers[t2] = setTimeout(() => { - this._reloadTile(t2, "expired"), delete this._timers[t2]; - }, i2)); - } - _removeTile(t2) { - const e2 = this._tiles[t2]; - e2 && (e2.uses--, delete this._tiles[t2], this._timers[t2] && (clearTimeout(this._timers[t2]), delete this._timers[t2]), e2.uses > 0 || (e2.hasData() && "reloading" !== e2.state ? this._cache.add(e2.tileID, e2, e2.getExpiryTimeout()) : (e2.aborted = true, this._abortTile(e2), this._unloadTile(e2)))); - } - clearTiles() { - this._shouldReloadOnResume = false, this._paused = false; - for (const t2 in this._tiles) + var o2 = e3.getExpiryTimeout(); + o2 && (this._timers[t2] = setTimeout(function() { + i3._reloadTile(t2, "expired"), delete i3._timers[t2]; + }, o2)); + }, i2.prototype._removeTile = function(t2) { + var e3 = this._tiles[t2]; + e3 && (e3.uses--, delete this._tiles[t2], this._timers[t2] && (clearTimeout(this._timers[t2]), delete this._timers[t2]), e3.uses > 0 || (e3.hasData() && "reloading" !== e3.state ? this._cache.add(e3.tileID, e3, e3.getExpiryTimeout()) : (e3.aborted = true, this._abortTile(e3), this._unloadTile(e3)))); + }, i2.prototype.clearTiles = function() { + for (var t2 in this._shouldReloadOnResume = false, this._paused = false, this._tiles) this._removeTile(t2); this._cache.reset(); - } - tilesIn(e2, i2, o2) { - const a2 = [], r2 = this.transform; - if (!r2) + }, i2.prototype.tilesIn = function(e3, i3, o2) { + var r2 = this, a2 = [], n2 = this.transform; + if (!n2) return a2; - const s2 = o2 ? r2.getCameraQueryGeometry(e2) : e2, n2 = e2.map((t2) => r2.pointCoordinate(t2, this.terrain)), l2 = s2.map((t2) => r2.pointCoordinate(t2, this.terrain)), c3 = this.getIds(); - let h3 = 1 / 0, u2 = 1 / 0, d2 = -1 / 0, m2 = -1 / 0; - for (const t2 of l2) - h3 = Math.min(h3, t2.x), u2 = Math.min(u2, t2.y), d2 = Math.max(d2, t2.x), m2 = Math.max(m2, t2.y); - for (let e3 = 0; e3 < c3.length; e3++) { - const o3 = this._tiles[c3[e3]]; - if (o3.holdingForFade()) - continue; - const s3 = o3.tileID, _24 = Math.pow(2, r2.zoom - o3.tileID.overscaledZ), p3 = i2 * o3.queryPadding * t.EXTENT / o3.tileSize / _24, f2 = [s3.getTilePoint(new t.MercatorCoordinate(h3, u2)), s3.getTilePoint(new t.MercatorCoordinate(d2, m2))]; - if (f2[0].x - p3 < t.EXTENT && f2[0].y - p3 < t.EXTENT && f2[1].x + p3 >= 0 && f2[1].y + p3 >= 0) { - const t2 = n2.map((t3) => s3.getTilePoint(t3)), e4 = l2.map((t3) => s3.getTilePoint(t3)); - a2.push({ tile: o3, tileID: s3, queryGeometry: t2, cameraQueryGeometry: e4, scale: _24 }); + for (var s2 = o2 ? n2.getCameraQueryGeometry(e3) : e3, l2 = e3.map(function(t2) { + return n2.pointCoordinate(t2); + }), c3 = s2.map(function(t2) { + return n2.pointCoordinate(t2); + }), u2 = this.getIds(), h3 = 1 / 0, p3 = 1 / 0, d2 = -1 / 0, _24 = -1 / 0, f2 = 0, m2 = c3; f2 < m2.length; f2 += 1) { + var g2 = m2[f2]; + h3 = Math.min(h3, g2.x), p3 = Math.min(p3, g2.y), d2 = Math.max(d2, g2.x), _24 = Math.max(_24, g2.y); + } + for (var v3 = function(e4) { + var o3 = r2._tiles[u2[e4]]; + if (!o3.holdingForFade()) { + var s3 = o3.tileID, f3 = Math.pow(2, n2.zoom - o3.tileID.overscaledZ), m3 = i3 * o3.queryPadding * t.EXTENT / o3.tileSize / f3, g3 = [s3.getTilePoint(new t.MercatorCoordinate(h3, p3)), s3.getTilePoint(new t.MercatorCoordinate(d2, _24))]; + if (g3[0].x - m3 < t.EXTENT && g3[0].y - m3 < t.EXTENT && g3[1].x + m3 >= 0 && g3[1].y + m3 >= 0) { + var v4 = l2.map(function(t2) { + return s3.getTilePoint(t2); + }), y4 = c3.map(function(t2) { + return s3.getTilePoint(t2); + }); + a2.push({ tile: o3, tileID: s3, queryGeometry: v4, cameraQueryGeometry: y4, scale: f3 }); + } } - } + }, y3 = 0; y3 < u2.length; y3++) + v3(y3); return a2; - } - getVisibleCoordinates(t2) { - const e2 = this.getRenderableIds(t2).map((t3) => this._tiles[t3].tileID); - for (const t3 of e2) - t3.posMatrix = this.transform.calculatePosMatrix(t3.toUnwrapped()); - return e2; - } - hasTransition() { + }, i2.prototype.getVisibleCoordinates = function(t2) { + for (var e3 = this, i3 = this.getRenderableIds(t2).map(function(t3) { + return e3._tiles[t3].tileID; + }), o2 = 0, r2 = i3; o2 < r2.length; o2 += 1) { + var a2 = r2[o2]; + a2.posMatrix = this.transform.calculatePosMatrix(a2.toUnwrapped()); + } + return i3; + }, i2.prototype.hasTransition = function() { if (this._source.hasTransition()) return true; - if (N(this._source.type)) - for (const e2 in this._tiles) { - const i2 = this._tiles[e2]; - if (void 0 !== i2.fadeEndTime && i2.fadeEndTime >= t.exported.now()) + if (Mt(this._source.type)) + for (var e3 in this._tiles) { + var i3 = this._tiles[e3]; + if (void 0 !== i3.fadeEndTime && i3.fadeEndTime >= t.browser.now()) return true; } return false; - } - setFeatureState(t2, e2, i2) { - this._state.updateState(t2 = t2 || "_geojsonTileLayer", e2, i2); - } - removeFeatureState(t2, e2, i2) { - this._state.removeFeatureState(t2 = t2 || "_geojsonTileLayer", e2, i2); - } - getFeatureState(t2, e2) { - return this._state.getState(t2 = t2 || "_geojsonTileLayer", e2); - } - setDependencies(t2, e2, i2) { - const o2 = this._tiles[t2]; - o2 && o2.setDependencies(e2, i2); - } - reloadTilesForDependencies(t2, e2) { - for (const i2 in this._tiles) - this._tiles[i2].hasDependency(t2, e2) && this._reloadTile(i2, "reloading"); - this._cache.filter((i2) => !i2.hasDependency(t2, e2)); - } - } - function U(t2, e2) { - const i2 = Math.abs(2 * t2.wrap) - +(t2.wrap < 0), o2 = Math.abs(2 * e2.wrap) - +(e2.wrap < 0); + }, i2.prototype.setFeatureState = function(t2, e3, i3) { + this._state.updateState(t2 = t2 || "_geojsonTileLayer", e3, i3); + }, i2.prototype.removeFeatureState = function(t2, e3, i3) { + this._state.removeFeatureState(t2 = t2 || "_geojsonTileLayer", e3, i3); + }, i2.prototype.getFeatureState = function(t2, e3) { + return this._state.getState(t2 = t2 || "_geojsonTileLayer", e3); + }, i2.prototype.setDependencies = function(t2, e3, i3) { + var o2 = this._tiles[t2]; + o2 && o2.setDependencies(e3, i3); + }, i2.prototype.reloadTilesForDependencies = function(t2, e3) { + for (var i3 in this._tiles) + this._tiles[i3].hasDependency(t2, e3) && this._reloadTile(i3, "reloading"); + this._cache.filter(function(i4) { + return !i4.hasDependency(t2, e3); + }); + }, i2; + }(t.Evented); + function At(t2, e2) { + var i2 = Math.abs(2 * t2.wrap) - +(t2.wrap < 0), o2 = Math.abs(2 * e2.wrap) - +(e2.wrap < 0); return t2.overscaledZ - e2.overscaledZ || o2 - i2 || e2.canonical.y - t2.canonical.y || e2.canonical.x - t2.canonical.x; } - function N(t2) { + function Mt(t2) { return "raster" === t2 || "image" === t2 || "video" === t2; } - O2.maxOverzooming = 10, O2.maxUnderzooming = 3; - const G = "mapboxgl_preloaded_worker_pool"; - class Z2 { - constructor() { - this.active = {}; - } - acquire(t2) { - if (!this.workers) - for (this.workers = []; this.workers.length < Z2.workerCount; ) - this.workers.push(new Worker(ba.workerUrl)); - return this.active[t2] = true, this.workers.slice(); - } - release(t2) { - delete this.active[t2], 0 === this.numActive() && (this.workers.forEach((t3) => { - t3.terminate(); - }), this.workers = null); - } - isPreloaded() { - return !!this.active[G]; - } - numActive() { - return Object.keys(this.active).length; - } + function Lt() { + return new t.window.Worker(Kr.workerUrl); } - const V2 = Math.floor(t.exported.hardwareConcurrency / 2); - let q; - function j() { - return q || (q = new Z2()), q; + Dt.maxOverzooming = 10, Dt.maxUnderzooming = 3; + var Rt = "mapboxgl_preloaded_worker_pool", kt = function() { + this.active = {}; + }; + kt.prototype.acquire = function(t2) { + if (!this.workers) + for (this.workers = []; this.workers.length < kt.workerCount; ) + this.workers.push(new Lt()); + return this.active[t2] = true, this.workers.slice(); + }, kt.prototype.release = function(t2) { + delete this.active[t2], 0 === this.numActive() && (this.workers.forEach(function(t3) { + t3.terminate(); + }), this.workers = null); + }, kt.prototype.isPreloaded = function() { + return !!this.active[Rt]; + }, kt.prototype.numActive = function() { + return Object.keys(this.active).length; + }; + var Bt, Ot = Math.floor(t.browser.hardwareConcurrency / 2); + function Ft() { + return Bt || (Bt = new kt()), Bt; } - function $(e2, i2) { - const o2 = {}; - for (const t2 in e2) - "ref" !== t2 && (o2[t2] = e2[t2]); - return t.refProperties.forEach((t2) => { + function Ut(e2, i2) { + var o2 = {}; + for (var r2 in e2) + "ref" !== r2 && (o2[r2] = e2[r2]); + return t.refProperties.forEach(function(t2) { t2 in i2 && (o2[t2] = i2[t2]); }), o2; } - function X(t2) { + function Nt(t2) { t2 = t2.slice(); - const e2 = /* @__PURE__ */ Object.create(null); - for (let i2 = 0; i2 < t2.length; i2++) + for (var e2 = /* @__PURE__ */ Object.create(null), i2 = 0; i2 < t2.length; i2++) e2[t2[i2].id] = t2[i2]; - for (let i2 = 0; i2 < t2.length; i2++) - "ref" in t2[i2] && (t2[i2] = $(t2[i2], e2[t2[i2].ref])); + for (var o2 = 0; o2 < t2.length; o2++) + "ref" in t2[o2] && (t2[o2] = Ut(t2[o2], e2[t2[o2].ref])); return t2; } - Z2.workerCount = Math.max(Math.min(V2, 6), 1); - const W = { setStyle: "setStyle", addLayer: "addLayer", removeLayer: "removeLayer", setPaintProperty: "setPaintProperty", setLayoutProperty: "setLayoutProperty", setFilter: "setFilter", addSource: "addSource", removeSource: "removeSource", setGeoJSONSourceData: "setGeoJSONSourceData", setLayerZoomRange: "setLayerZoomRange", setLayerProperty: "setLayerProperty", setCenter: "setCenter", setZoom: "setZoom", setBearing: "setBearing", setPitch: "setPitch", setSprite: "setSprite", setGlyphs: "setGlyphs", setTransition: "setTransition", setLight: "setLight" }; - function H(t2, e2, i2) { - i2.push({ command: W.addSource, args: [t2, e2[t2]] }); + kt.workerCount = Math.max(Math.min(Ot, 6), 1); + var Zt = { setStyle: "setStyle", addLayer: "addLayer", removeLayer: "removeLayer", setPaintProperty: "setPaintProperty", setLayoutProperty: "setLayoutProperty", setFilter: "setFilter", addSource: "addSource", removeSource: "removeSource", setGeoJSONSourceData: "setGeoJSONSourceData", setLayerZoomRange: "setLayerZoomRange", setLayerProperty: "setLayerProperty", setCenter: "setCenter", setZoom: "setZoom", setBearing: "setBearing", setPitch: "setPitch", setSprite: "setSprite", setGlyphs: "setGlyphs", setTransition: "setTransition", setLight: "setLight" }; + function qt(t2, e2, i2) { + i2.push({ command: Zt.addSource, args: [t2, e2[t2]] }); } - function K(t2, e2, i2) { - e2.push({ command: W.removeSource, args: [t2] }), i2[t2] = true; + function jt(t2, e2, i2) { + e2.push({ command: Zt.removeSource, args: [t2] }), i2[t2] = true; } - function Y(t2, e2, i2, o2) { - K(t2, i2, o2), H(t2, e2, i2); + function Vt(t2, e2, i2, o2) { + jt(t2, i2, o2), qt(t2, e2, i2); } - function J(t2, e2, i2) { - let o2; - for (o2 in t2[i2]) - if (Object.prototype.hasOwnProperty.call(t2[i2], o2) && "data" !== o2 && !a(t2[i2][o2], e2[i2][o2])) + function Gt(e2, i2, o2) { + var r2; + for (r2 in e2[o2]) + if (e2[o2].hasOwnProperty(r2) && "data" !== r2 && !t.deepEqual(e2[o2][r2], i2[o2][r2])) return false; - for (o2 in e2[i2]) - if (Object.prototype.hasOwnProperty.call(e2[i2], o2) && "data" !== o2 && !a(t2[i2][o2], e2[i2][o2])) + for (r2 in i2[o2]) + if (i2[o2].hasOwnProperty(r2) && "data" !== r2 && !t.deepEqual(e2[o2][r2], i2[o2][r2])) return false; return true; } - function Q(t2, e2, i2, o2, r2, s2) { - let n2; - for (n2 in e2 = e2 || {}, t2 = t2 || {}) - Object.prototype.hasOwnProperty.call(t2, n2) && (a(t2[n2], e2[n2]) || i2.push({ command: s2, args: [o2, n2, e2[n2], r2] })); - for (n2 in e2) - Object.prototype.hasOwnProperty.call(e2, n2) && !Object.prototype.hasOwnProperty.call(t2, n2) && (a(t2[n2], e2[n2]) || i2.push({ command: s2, args: [o2, n2, e2[n2], r2] })); + function Wt(e2, i2, o2, r2, a2, n2) { + var s2; + for (s2 in i2 = i2 || {}, e2 = e2 || {}) + e2.hasOwnProperty(s2) && (t.deepEqual(e2[s2], i2[s2]) || o2.push({ command: n2, args: [r2, s2, i2[s2], a2] })); + for (s2 in i2) + i2.hasOwnProperty(s2) && !e2.hasOwnProperty(s2) && (t.deepEqual(e2[s2], i2[s2]) || o2.push({ command: n2, args: [r2, s2, i2[s2], a2] })); } - function tt(t2) { + function Xt(t2) { return t2.id; } - function et(t2, e2) { + function Ht(t2, e2) { return t2[e2.id] = e2, t2; } - class it { - constructor(t2, e2) { - this.reset(t2, e2); - } - reset(t2, e2) { - this.points = t2 || [], this._distances = [0]; - for (let t3 = 1; t3 < this.points.length; t3++) - this._distances[t3] = this._distances[t3 - 1] + this.points[t3].dist(this.points[t3 - 1]); - this.length = this._distances[this._distances.length - 1], this.padding = Math.min(e2 || 0, 0.5 * this.length), this.paddedLength = this.length - 2 * this.padding; - } - lerp(e2) { - if (1 === this.points.length) - return this.points[0]; - e2 = t.clamp(e2, 0, 1); - let i2 = 1, o2 = this._distances[i2]; - const a2 = e2 * this.paddedLength + this.padding; - for (; o2 < a2 && i2 < this._distances.length; ) - o2 = this._distances[++i2]; - const r2 = i2 - 1, s2 = this._distances[r2], n2 = o2 - s2, l2 = n2 > 0 ? (a2 - s2) / n2 : 0; - return this.points[r2].mult(1 - l2).add(this.points[i2].mult(l2)); - } - } - function ot(t2, e2) { - let i2 = true; - return "always" === t2 || "never" !== t2 && "never" !== e2 || (i2 = false), i2; - } - class at { - constructor(t2, e2, i2) { - const o2 = this.boxCells = [], a2 = this.circleCells = []; - this.xCellCount = Math.ceil(t2 / i2), this.yCellCount = Math.ceil(e2 / i2); - for (let t3 = 0; t3 < this.xCellCount * this.yCellCount; t3++) - o2.push([]), a2.push([]); - this.circleKeys = [], this.boxKeys = [], this.bboxes = [], this.circles = [], this.width = t2, this.height = e2, this.xScale = this.xCellCount / t2, this.yScale = this.yCellCount / e2, this.boxUid = 0, this.circleUid = 0; - } - keysLength() { - return this.boxKeys.length + this.circleKeys.length; - } - insert(t2, e2, i2, o2, a2) { - this._forEachCell(e2, i2, o2, a2, this._insertBoxCell, this.boxUid++), this.boxKeys.push(t2), this.bboxes.push(e2), this.bboxes.push(i2), this.bboxes.push(o2), this.bboxes.push(a2); - } - insertCircle(t2, e2, i2, o2) { - this._forEachCell(e2 - o2, i2 - o2, e2 + o2, i2 + o2, this._insertCircleCell, this.circleUid++), this.circleKeys.push(t2), this.circles.push(e2), this.circles.push(i2), this.circles.push(o2); - } - _insertBoxCell(t2, e2, i2, o2, a2, r2) { - this.boxCells[a2].push(r2); - } - _insertCircleCell(t2, e2, i2, o2, a2, r2) { - this.circleCells[a2].push(r2); - } - _query(t2, e2, i2, o2, a2, r2, s2) { - if (i2 < 0 || t2 > this.width || o2 < 0 || e2 > this.height) - return []; - const n2 = []; - if (t2 <= 0 && e2 <= 0 && this.width <= i2 && this.height <= o2) { - if (a2) - return [{ key: null, x1: t2, y1: e2, x2: i2, y2: o2 }]; - for (let t3 = 0; t3 < this.boxKeys.length; t3++) - n2.push({ key: this.boxKeys[t3], x1: this.bboxes[4 * t3], y1: this.bboxes[4 * t3 + 1], x2: this.bboxes[4 * t3 + 2], y2: this.bboxes[4 * t3 + 3] }); - for (let t3 = 0; t3 < this.circleKeys.length; t3++) { - const e3 = this.circles[3 * t3], i3 = this.circles[3 * t3 + 1], o3 = this.circles[3 * t3 + 2]; - n2.push({ key: this.circleKeys[t3], x1: e3 - o3, y1: i3 - o3, x2: e3 + o3, y2: i3 + o3 }); - } - } else - this._forEachCell(t2, e2, i2, o2, this._queryCell, n2, { hitTest: a2, overlapMode: r2, seenUids: { box: {}, circle: {} } }, s2); - return n2; - } - query(t2, e2, i2, o2) { - return this._query(t2, e2, i2, o2, false, null); - } - hitTest(t2, e2, i2, o2, a2, r2) { - return this._query(t2, e2, i2, o2, true, a2, r2).length > 0; - } - hitTestCircle(t2, e2, i2, o2, a2) { - const r2 = t2 - i2, s2 = t2 + i2, n2 = e2 - i2, l2 = e2 + i2; - if (s2 < 0 || r2 > this.width || l2 < 0 || n2 > this.height) - return false; - const c3 = []; - return this._forEachCell(r2, n2, s2, l2, this._queryCellCircle, c3, { hitTest: true, overlapMode: o2, circle: { x: t2, y: e2, radius: i2 }, seenUids: { box: {}, circle: {} } }, a2), c3.length > 0; - } - _queryCell(t2, e2, i2, o2, a2, r2, s2, n2) { - const { seenUids: l2, hitTest: c3, overlapMode: h3 } = s2, u2 = this.boxCells[a2]; - if (null !== u2) { - const a3 = this.bboxes; - for (const s3 of u2) - if (!l2.box[s3]) { - l2.box[s3] = true; - const u3 = 4 * s3, d3 = this.boxKeys[s3]; - if (t2 <= a3[u3 + 2] && e2 <= a3[u3 + 3] && i2 >= a3[u3 + 0] && o2 >= a3[u3 + 1] && (!n2 || n2(d3)) && (!c3 || !ot(h3, d3.overlapMode)) && (r2.push({ key: d3, x1: a3[u3], y1: a3[u3 + 1], x2: a3[u3 + 2], y2: a3[u3 + 3] }), c3)) - return true; - } - } - const d2 = this.circleCells[a2]; - if (null !== d2) { - const a3 = this.circles; - for (const s3 of d2) - if (!l2.circle[s3]) { - l2.circle[s3] = true; - const u3 = 3 * s3, d3 = this.circleKeys[s3]; - if (this._circleAndRectCollide(a3[u3], a3[u3 + 1], a3[u3 + 2], t2, e2, i2, o2) && (!n2 || n2(d3)) && (!c3 || !ot(h3, d3.overlapMode))) { - const t3 = a3[u3], e3 = a3[u3 + 1], i3 = a3[u3 + 2]; - if (r2.push({ key: d3, x1: t3 - i3, y1: e3 - i3, x2: t3 + i3, y2: e3 + i3 }), c3) - return true; - } - } - } - return false; - } - _queryCellCircle(t2, e2, i2, o2, a2, r2, s2, n2) { - const { circle: l2, seenUids: c3, overlapMode: h3 } = s2, u2 = this.boxCells[a2]; - if (null !== u2) { - const t3 = this.bboxes; - for (const e3 of u2) - if (!c3.box[e3]) { - c3.box[e3] = true; - const i3 = 4 * e3, o3 = this.boxKeys[e3]; - if (this._circleAndRectCollide(l2.x, l2.y, l2.radius, t3[i3 + 0], t3[i3 + 1], t3[i3 + 2], t3[i3 + 3]) && (!n2 || n2(o3)) && !ot(h3, o3.overlapMode)) - return r2.push(true), true; - } - } - const d2 = this.circleCells[a2]; - if (null !== d2) { - const t3 = this.circles; - for (const e3 of d2) - if (!c3.circle[e3]) { - c3.circle[e3] = true; - const i3 = 3 * e3, o3 = this.circleKeys[e3]; - if (this._circlesCollide(t3[i3], t3[i3 + 1], t3[i3 + 2], l2.x, l2.y, l2.radius) && (!n2 || n2(o3)) && !ot(h3, o3.overlapMode)) - return r2.push(true), true; - } - } - } - _forEachCell(t2, e2, i2, o2, a2, r2, s2, n2) { - const l2 = this._convertToXCellCoord(t2), c3 = this._convertToYCellCoord(e2), h3 = this._convertToXCellCoord(i2), u2 = this._convertToYCellCoord(o2); - for (let d2 = l2; d2 <= h3; d2++) - for (let l3 = c3; l3 <= u2; l3++) - if (a2.call(this, t2, e2, i2, o2, this.xCellCount * l3 + d2, r2, s2, n2)) - return; - } - _convertToXCellCoord(t2) { - return Math.max(0, Math.min(this.xCellCount - 1, Math.floor(t2 * this.xScale))); - } - _convertToYCellCoord(t2) { - return Math.max(0, Math.min(this.yCellCount - 1, Math.floor(t2 * this.yScale))); - } - _circlesCollide(t2, e2, i2, o2, a2, r2) { - const s2 = o2 - t2, n2 = a2 - e2, l2 = i2 + r2; - return l2 * l2 > s2 * s2 + n2 * n2; - } - _circleAndRectCollide(t2, e2, i2, o2, a2, r2, s2) { - const n2 = (r2 - o2) / 2, l2 = Math.abs(t2 - (o2 + n2)); - if (l2 > n2 + i2) - return false; - const c3 = (s2 - a2) / 2, h3 = Math.abs(e2 - (a2 + c3)); - if (h3 > c3 + i2) - return false; - if (l2 <= n2 || h3 <= c3) - return true; - const u2 = l2 - n2, d2 = h3 - c3; - return u2 * u2 + d2 * d2 <= i2 * i2; - } - } - function rt(e2, i2, o2, a2, r2) { - const s2 = t.create(); - return i2 ? (t.scale(s2, s2, [1 / r2, 1 / r2, 1]), o2 || t.rotateZ(s2, s2, a2.angle)) : t.multiply(s2, a2.labelPlaneMatrix, e2), s2; + var Kt = function(t2, e2) { + this.reset(t2, e2); + }; + Kt.prototype.reset = function(t2, e2) { + this.points = t2 || [], this._distances = [0]; + for (var i2 = 1; i2 < this.points.length; i2++) + this._distances[i2] = this._distances[i2 - 1] + this.points[i2].dist(this.points[i2 - 1]); + this.length = this._distances[this._distances.length - 1], this.padding = Math.min(e2 || 0, 0.5 * this.length), this.paddedLength = this.length - 2 * this.padding; + }, Kt.prototype.lerp = function(e2) { + if (1 === this.points.length) + return this.points[0]; + e2 = t.clamp(e2, 0, 1); + for (var i2 = 1, o2 = this._distances[i2], r2 = e2 * this.paddedLength + this.padding; o2 < r2 && i2 < this._distances.length; ) + o2 = this._distances[++i2]; + var a2 = i2 - 1, n2 = this._distances[a2], s2 = o2 - n2, l2 = s2 > 0 ? (r2 - n2) / s2 : 0; + return this.points[a2].mult(1 - l2).add(this.points[i2].mult(l2)); + }; + var Yt = function(t2, e2, i2) { + var o2 = this.boxCells = [], r2 = this.circleCells = []; + this.xCellCount = Math.ceil(t2 / i2), this.yCellCount = Math.ceil(e2 / i2); + for (var a2 = 0; a2 < this.xCellCount * this.yCellCount; a2++) + o2.push([]), r2.push([]); + this.circleKeys = [], this.boxKeys = [], this.bboxes = [], this.circles = [], this.width = t2, this.height = e2, this.xScale = this.xCellCount / t2, this.yScale = this.yCellCount / e2, this.boxUid = 0, this.circleUid = 0; + }; + function Jt(e2, i2, o2, r2, a2) { + var n2 = t.create(); + return i2 ? (t.scale(n2, n2, [1 / a2, 1 / a2, 1]), o2 || t.rotateZ(n2, n2, r2.angle)) : t.multiply(n2, r2.labelPlaneMatrix, e2), n2; } - function st(e2, i2, o2, a2, r2) { + function Qt(e2, i2, o2, r2, a2) { if (i2) { - const i3 = t.clone(e2); - return t.scale(i3, i3, [r2, r2, 1]), o2 || t.rotateZ(i3, i3, -a2.angle), i3; + var n2 = t.clone(e2); + return t.scale(n2, n2, [a2, a2, 1]), o2 || t.rotateZ(n2, n2, -r2.angle), n2; } - return a2.glCoordMatrix; + return r2.glCoordMatrix; } - function nt(e2, i2, o2) { - let a2; - o2 ? (a2 = [e2.x, e2.y, o2(e2.x, e2.y), 1], t.transformMat4(a2, a2, i2)) : (a2 = [e2.x, e2.y, 0, 1], xt(a2, a2, i2)); - const r2 = a2[3]; - return { point: new t.pointGeometry(a2[0] / r2, a2[1] / r2), signedDistanceFromCamera: r2 }; + function $t(e2, i2) { + var o2 = [e2.x, e2.y, 0, 1]; + ue(o2, o2, i2); + var r2 = o2[3]; + return { point: new t.Point(o2[0] / r2, o2[1] / r2), signedDistanceFromCamera: r2 }; } - function lt(t2, e2) { + function te(t2, e2) { return 0.5 + t2 / e2 * 0.5; } - function ct(t2, e2) { - const i2 = t2[0] / t2[3], o2 = t2[1] / t2[3]; + function ee(t2, e2) { + var i2 = t2[0] / t2[3], o2 = t2[1] / t2[3]; return i2 >= -e2[0] && i2 <= e2[0] && o2 >= -e2[1] && o2 <= e2[1]; } - function ht(e2, i2, o2, a2, r2, s2, n2, l2, c3, h3) { - const u2 = a2 ? e2.textSizeData : e2.iconSizeData, d2 = t.evaluateSizeForZoom(u2, o2.transform.zoom), m2 = [256 / o2.width * 2 + 1, 256 / o2.height * 2 + 1], _24 = a2 ? e2.text.dynamicLayoutVertexArray : e2.icon.dynamicLayoutVertexArray; - _24.clear(); - const p3 = e2.lineVertexArray, f2 = a2 ? e2.text.placedSymbolArray : e2.icon.placedSymbolArray, g2 = o2.transform.width / o2.transform.height; - let x2 = false; - for (let a3 = 0; a3 < f2.length; a3++) { - const v3 = f2.get(a3); - if (v3.hidden || v3.writingMode === t.WritingMode.vertical && !x2) { - gt(v3.numGlyphs, _24); - continue; - } - let y3; - if (x2 = false, h3 ? (y3 = [v3.anchorX, v3.anchorY, h3(v3.anchorX, v3.anchorY), 1], t.transformMat4(y3, y3, i2)) : (y3 = [v3.anchorX, v3.anchorY, 0, 1], xt(y3, y3, i2)), !ct(y3, m2)) { - gt(v3.numGlyphs, _24); - continue; + function ie(e2, i2, o2, r2, a2, n2, s2, l2) { + var c3 = r2 ? e2.textSizeData : e2.iconSizeData, u2 = t.evaluateSizeForZoom(c3, o2.transform.zoom), h3 = [256 / o2.width * 2 + 1, 256 / o2.height * 2 + 1], p3 = r2 ? e2.text.dynamicLayoutVertexArray : e2.icon.dynamicLayoutVertexArray; + p3.clear(); + for (var d2 = e2.lineVertexArray, _24 = r2 ? e2.text.placedSymbolArray : e2.icon.placedSymbolArray, f2 = o2.transform.width / o2.transform.height, m2 = false, g2 = 0; g2 < _24.length; g2++) { + var v3 = _24.get(g2); + if (v3.hidden || v3.writingMode === t.WritingMode.vertical && !m2) + ce(v3.numGlyphs, p3); + else { + m2 = false; + var y3 = [v3.anchorX, v3.anchorY, 0, 1]; + if (t.transformMat4(y3, y3, i2), ee(y3, h3)) { + var x2 = te(o2.transform.cameraToCenterDistance, y3[3]), b2 = t.evaluateSizeForFeature(c3, u2, v3), w2 = s2 ? b2 / x2 : b2 * x2, T2 = new t.Point(v3.anchorX, v3.anchorY), E2 = $t(T2, a2).point, I3 = {}, P2 = ae(v3, w2, false, l2, i2, a2, n2, e2.glyphOffsetArray, d2, p3, E2, T2, I3, f2); + m2 = P2.useVertical, (P2.notEnoughRoom || m2 || P2.needsFlipping && ae(v3, w2, true, l2, i2, a2, n2, e2.glyphOffsetArray, d2, p3, E2, T2, I3, f2).notEnoughRoom) && ce(v3.numGlyphs, p3); + } else + ce(v3.numGlyphs, p3); } - const b2 = lt(o2.transform.cameraToCenterDistance, y3[3]), w2 = t.evaluateSizeForFeature(u2, d2, v3), T2 = n2 ? w2 / b2 : w2 * b2, E2 = new t.pointGeometry(v3.anchorX, v3.anchorY), I3 = nt(E2, r2, h3).point, C2 = {}, S2 = mt(v3, T2, false, l2, i2, r2, s2, e2.glyphOffsetArray, p3, _24, I3, E2, C2, g2, c3, h3); - x2 = S2.useVertical, (S2.notEnoughRoom || x2 || S2.needsFlipping && mt(v3, T2, true, l2, i2, r2, s2, e2.glyphOffsetArray, p3, _24, I3, E2, C2, g2, c3, h3).notEnoughRoom) && gt(v3.numGlyphs, _24); } - a2 ? e2.text.dynamicLayoutVertexBuffer.updateData(_24) : e2.icon.dynamicLayoutVertexBuffer.updateData(_24); + r2 ? e2.text.dynamicLayoutVertexBuffer.updateData(p3) : e2.icon.dynamicLayoutVertexBuffer.updateData(p3); } - function ut(t2, e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2, d2) { - const m2 = n2.glyphStartIndex + n2.numGlyphs, _24 = n2.lineStartIndex, p3 = n2.lineStartIndex + n2.lineLength, f2 = e2.getoffsetX(n2.glyphStartIndex), g2 = e2.getoffsetX(m2 - 1), x2 = pt(t2 * f2, i2, o2, a2, r2, s2, n2.segment, _24, p3, l2, c3, h3, u2, d2); - if (!x2) + function oe(t2, e2, i2, o2, r2, a2, n2, s2, l2, c3, u2) { + var h3 = s2.glyphStartIndex + s2.numGlyphs, p3 = s2.lineStartIndex, d2 = s2.lineStartIndex + s2.lineLength, _24 = e2.getoffsetX(s2.glyphStartIndex), f2 = e2.getoffsetX(h3 - 1), m2 = se(t2 * _24, i2, o2, r2, a2, n2, s2.segment, p3, d2, l2, c3, u2); + if (!m2) return null; - const v3 = pt(t2 * g2, i2, o2, a2, r2, s2, n2.segment, _24, p3, l2, c3, h3, u2, d2); - return v3 ? { first: x2, last: v3 } : null; + var g2 = se(t2 * f2, i2, o2, r2, a2, n2, s2.segment, p3, d2, l2, c3, u2); + return g2 ? { first: m2, last: g2 } : null; } - function dt(e2, i2, o2, a2) { - return e2 === t.WritingMode.horizontal && Math.abs(o2.y - i2.y) > Math.abs(o2.x - i2.x) * a2 ? { useVertical: true } : (e2 === t.WritingMode.vertical ? i2.y < o2.y : i2.x > o2.x) ? { needsFlipping: true } : null; + function re(e2, i2, o2, r2) { + return e2 === t.WritingMode.horizontal && Math.abs(o2.y - i2.y) > Math.abs(o2.x - i2.x) * r2 ? { useVertical: true } : (e2 === t.WritingMode.vertical ? i2.y < o2.y : i2.x > o2.x) ? { needsFlipping: true } : null; } - function mt(e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2, d2, m2, _24, p3, f2) { - const g2 = i2 / 24, x2 = e2.lineOffsetX * g2, v3 = e2.lineOffsetY * g2; - let y3; + function ae(e2, i2, o2, r2, a2, n2, s2, l2, c3, u2, h3, p3, d2, _24) { + var f2, m2 = i2 / 24, g2 = e2.lineOffsetX * m2, v3 = e2.lineOffsetY * m2; if (e2.numGlyphs > 1) { - const t2 = e2.glyphStartIndex + e2.numGlyphs, i3 = e2.lineStartIndex, r3 = e2.lineStartIndex + e2.lineLength, h4 = ut(g2, l2, x2, v3, o2, u2, d2, e2, c3, s2, m2, p3, f2); - if (!h4) + var y3 = e2.glyphStartIndex + e2.numGlyphs, x2 = e2.lineStartIndex, b2 = e2.lineStartIndex + e2.lineLength, w2 = oe(m2, l2, g2, v3, o2, h3, p3, e2, c3, n2, d2); + if (!w2) return { notEnoughRoom: true }; - const b2 = nt(h4.first.point, n2, f2).point, w2 = nt(h4.last.point, n2, f2).point; - if (a2 && !o2) { - const t3 = dt(e2.writingMode, b2, w2, _24); - if (t3) - return t3; - } - y3 = [h4.first]; - for (let a3 = e2.glyphStartIndex + 1; a3 < t2 - 1; a3++) - y3.push(pt(g2 * l2.getoffsetX(a3), x2, v3, o2, u2, d2, e2.segment, i3, r3, c3, s2, m2, p3, f2)); - y3.push(h4.last); + var T2 = $t(w2.first.point, s2).point, E2 = $t(w2.last.point, s2).point; + if (r2 && !o2) { + var I3 = re(e2.writingMode, T2, E2, _24); + if (I3) + return I3; + } + f2 = [w2.first]; + for (var P2 = e2.glyphStartIndex + 1; P2 < y3 - 1; P2++) + f2.push(se(m2 * l2.getoffsetX(P2), g2, v3, o2, h3, p3, e2.segment, x2, b2, c3, n2, d2)); + f2.push(w2.last); } else { - if (a2 && !o2) { - const i4 = nt(d2, r2, f2).point, o3 = e2.lineStartIndex + e2.segment + 1, a3 = new t.pointGeometry(c3.getx(o3), c3.gety(o3)), s3 = nt(a3, r2, f2), n3 = s3.signedDistanceFromCamera > 0 ? s3.point : _t(d2, a3, i4, 1, r2, f2), l3 = dt(e2.writingMode, i4, n3, _24); - if (l3) - return l3; + if (r2 && !o2) { + var S2 = $t(p3, a2).point, C2 = e2.lineStartIndex + e2.segment + 1, z2 = new t.Point(c3.getx(C2), c3.gety(C2)), D2 = $t(z2, a2), A3 = D2.signedDistanceFromCamera > 0 ? D2.point : ne(p3, z2, S2, 1, a2), M2 = re(e2.writingMode, S2, A3, _24); + if (M2) + return M2; } - const i3 = pt(g2 * l2.getoffsetX(e2.glyphStartIndex), x2, v3, o2, u2, d2, e2.segment, e2.lineStartIndex, e2.lineStartIndex + e2.lineLength, c3, s2, m2, p3, f2); - if (!i3) + var L2 = se(m2 * l2.getoffsetX(e2.glyphStartIndex), g2, v3, o2, h3, p3, e2.segment, e2.lineStartIndex, e2.lineStartIndex + e2.lineLength, c3, n2, d2); + if (!L2) return { notEnoughRoom: true }; - y3 = [i3]; + f2 = [L2]; + } + for (var R2 = 0, k2 = f2; R2 < k2.length; R2 += 1) { + var B2 = k2[R2]; + t.addDynamicAttributes(u2, B2.point, B2.angle); } - for (const e3 of y3) - t.addDynamicAttributes(h3, e3.point, e3.angle); return {}; } - function _t(t2, e2, i2, o2, a2, r2) { - const s2 = nt(t2.add(t2.sub(e2)._unit()), a2, r2).point, n2 = i2.sub(s2); + function ne(t2, e2, i2, o2, r2) { + var a2 = $t(t2.add(t2.sub(e2)._unit()), r2).point, n2 = i2.sub(a2); return i2.add(n2._mult(o2 / n2.mag())); } - function pt(e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2, d2, m2, _24) { - const p3 = a2 ? e2 - i2 : e2 + i2; - let f2 = p3 > 0 ? 1 : -1, g2 = 0; - a2 && (f2 *= -1, g2 = Math.PI), f2 < 0 && (g2 += Math.PI); - let x2 = f2 > 0 ? l2 + n2 : l2 + n2 + 1, v3 = r2, y3 = r2, b2 = 0, w2 = 0; - const T2 = Math.abs(p3), E2 = []; - for (; b2 + w2 <= T2; ) { - if (x2 += f2, x2 < l2 || x2 >= c3) + function se(e2, i2, o2, r2, a2, n2, s2, l2, c3, u2, h3, p3) { + var d2 = r2 ? e2 - i2 : e2 + i2, _24 = d2 > 0 ? 1 : -1, f2 = 0; + r2 && (_24 *= -1, f2 = Math.PI), _24 < 0 && (f2 += Math.PI); + for (var m2 = _24 > 0 ? l2 + s2 : l2 + s2 + 1, g2 = a2, v3 = a2, y3 = 0, x2 = 0, b2 = Math.abs(d2), w2 = []; y3 + x2 <= b2; ) { + if ((m2 += _24) < l2 || m2 >= c3) return null; - if (y3 = v3, E2.push(v3), v3 = d2[x2], void 0 === v3) { - const e3 = new t.pointGeometry(h3.getx(x2), h3.gety(x2)), i3 = nt(e3, u2, _24); - if (i3.signedDistanceFromCamera > 0) - v3 = d2[x2] = i3.point; + if (v3 = g2, w2.push(g2), void 0 === (g2 = p3[m2])) { + var T2 = new t.Point(u2.getx(m2), u2.gety(m2)), E2 = $t(T2, h3); + if (E2.signedDistanceFromCamera > 0) + g2 = p3[m2] = E2.point; else { - const i4 = x2 - f2; - v3 = _t(0 === b2 ? s2 : new t.pointGeometry(h3.getx(i4), h3.gety(i4)), e3, y3, T2 - b2 + 1, u2, _24); + var I3 = m2 - _24; + g2 = ne(0 === y3 ? n2 : new t.Point(u2.getx(I3), u2.gety(I3)), T2, v3, b2 - y3 + 1, h3); } } - b2 += w2, w2 = y3.dist(v3); - } - const I3 = (T2 - b2) / w2, C2 = v3.sub(y3), S2 = C2.mult(I3)._add(y3); - S2._add(C2._unit()._perp()._mult(o2 * f2)); - const D2 = g2 + Math.atan2(v3.y - y3.y, v3.x - y3.x); - return E2.push(S2), { point: S2, angle: m2 ? D2 : 0, path: E2 }; - } - const ft = new Float32Array([-1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0]); - function gt(t2, e2) { - for (let i2 = 0; i2 < t2; i2++) { - const t3 = e2.length; - e2.resize(t3 + 4), e2.float32.set(ft, 3 * t3); - } - } - function xt(t2, e2, i2) { - const o2 = e2[0], a2 = e2[1]; - return t2[0] = i2[0] * o2 + i2[4] * a2 + i2[12], t2[1] = i2[1] * o2 + i2[5] * a2 + i2[13], t2[3] = i2[3] * o2 + i2[7] * a2 + i2[15], t2; - } - const vt = 100; - class yt { - constructor(t2, e2 = new at(t2.width + 200, t2.height + 200, 25), i2 = new at(t2.width + 200, t2.height + 200, 25)) { - this.transform = t2, this.grid = e2, this.ignoredGrid = i2, this.pitchfactor = Math.cos(t2._pitch) * t2.cameraToCenterDistance, this.screenRightBoundary = t2.width + vt, this.screenBottomBoundary = t2.height + vt, this.gridRightBoundary = t2.width + 200, this.gridBottomBoundary = t2.height + 200, this.perspectiveRatioCutoff = 0.6; - } - placeCollisionBox(t2, e2, i2, o2, a2, r2) { - const s2 = this.projectAndGetPerspectiveRatio(o2, t2.anchorPointX, t2.anchorPointY, r2), n2 = i2 * s2.perspectiveRatio, l2 = t2.x1 * n2 + s2.point.x, c3 = t2.y1 * n2 + s2.point.y, h3 = t2.x2 * n2 + s2.point.x, u2 = t2.y2 * n2 + s2.point.y; - return !this.isInsideGrid(l2, c3, h3, u2) || "always" !== e2 && this.grid.hitTest(l2, c3, h3, u2, e2, a2) || s2.perspectiveRatio < this.perspectiveRatioCutoff ? { box: [], offscreen: false } : { box: [l2, c3, h3, u2], offscreen: this.isOffscreen(l2, c3, h3, u2) }; - } - placeCollisionCircles(e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2, d2, m2, _24) { - const p3 = [], f2 = new t.pointGeometry(i2.anchorX, i2.anchorY), g2 = nt(f2, s2, _24), x2 = lt(this.transform.cameraToCenterDistance, g2.signedDistanceFromCamera), v3 = (h3 ? r2 / x2 : r2 * x2) / t.ONE_EM, y3 = nt(f2, n2, _24).point, b2 = ut(v3, a2, i2.lineOffsetX * v3, i2.lineOffsetY * v3, false, y3, f2, i2, o2, n2, {}, false, _24); - let w2 = false, T2 = false, E2 = true; - if (b2) { - const i3 = 0.5 * d2 * x2 + m2, o3 = new t.pointGeometry(-100, -100), a3 = new t.pointGeometry(this.screenRightBoundary, this.screenBottomBoundary), r3 = new it(), s3 = b2.first, n3 = b2.last; - let h4 = []; - for (let t2 = s3.path.length - 1; t2 >= 1; t2--) - h4.push(s3.path[t2]); - for (let t2 = 1; t2 < n3.path.length; t2++) - h4.push(n3.path[t2]); - const f3 = 2.5 * i3; - if (l2) { - const t2 = h4.map((t3) => nt(t3, l2, _24)); - h4 = t2.some((t3) => t3.signedDistanceFromCamera <= 0) ? [] : t2.map((t3) => t3.point); - } - let g3 = []; - if (h4.length > 0) { - const e3 = h4[0].clone(), i4 = h4[0].clone(); - for (let t2 = 1; t2 < h4.length; t2++) - e3.x = Math.min(e3.x, h4[t2].x), e3.y = Math.min(e3.y, h4[t2].y), i4.x = Math.max(i4.x, h4[t2].x), i4.y = Math.max(i4.y, h4[t2].y); - g3 = e3.x >= o3.x && i4.x <= a3.x && e3.y >= o3.y && i4.y <= a3.y ? [h4] : i4.x < o3.x || e3.x > a3.x || i4.y < o3.y || e3.y > a3.y ? [] : t.clipLine([h4], o3.x, o3.y, a3.x, a3.y); + y3 += x2, x2 = v3.dist(g2); + } + var P2 = (b2 - y3) / x2, S2 = g2.sub(v3), C2 = S2.mult(P2)._add(v3); + C2._add(S2._unit()._perp()._mult(o2 * _24)); + var z2 = f2 + Math.atan2(g2.y - v3.y, g2.x - v3.x); + return w2.push(C2), { point: C2, angle: z2, path: w2 }; + } + Yt.prototype.keysLength = function() { + return this.boxKeys.length + this.circleKeys.length; + }, Yt.prototype.insert = function(t2, e2, i2, o2, r2) { + this._forEachCell(e2, i2, o2, r2, this._insertBoxCell, this.boxUid++), this.boxKeys.push(t2), this.bboxes.push(e2), this.bboxes.push(i2), this.bboxes.push(o2), this.bboxes.push(r2); + }, Yt.prototype.insertCircle = function(t2, e2, i2, o2) { + this._forEachCell(e2 - o2, i2 - o2, e2 + o2, i2 + o2, this._insertCircleCell, this.circleUid++), this.circleKeys.push(t2), this.circles.push(e2), this.circles.push(i2), this.circles.push(o2); + }, Yt.prototype._insertBoxCell = function(t2, e2, i2, o2, r2, a2) { + this.boxCells[r2].push(a2); + }, Yt.prototype._insertCircleCell = function(t2, e2, i2, o2, r2, a2) { + this.circleCells[r2].push(a2); + }, Yt.prototype._query = function(t2, e2, i2, o2, r2, a2) { + if (i2 < 0 || t2 > this.width || o2 < 0 || e2 > this.height) + return !r2 && []; + var n2 = []; + if (t2 <= 0 && e2 <= 0 && this.width <= i2 && this.height <= o2) { + if (r2) + return true; + for (var s2 = 0; s2 < this.boxKeys.length; s2++) + n2.push({ key: this.boxKeys[s2], x1: this.bboxes[4 * s2], y1: this.bboxes[4 * s2 + 1], x2: this.bboxes[4 * s2 + 2], y2: this.bboxes[4 * s2 + 3] }); + for (var l2 = 0; l2 < this.circleKeys.length; l2++) { + var c3 = this.circles[3 * l2], u2 = this.circles[3 * l2 + 1], h3 = this.circles[3 * l2 + 2]; + n2.push({ key: this.circleKeys[l2], x1: c3 - h3, y1: u2 - h3, x2: c3 + h3, y2: u2 + h3 }); + } + return a2 ? n2.filter(a2) : n2; + } + return this._forEachCell(t2, e2, i2, o2, this._queryCell, n2, { hitTest: r2, seenUids: { box: {}, circle: {} } }, a2), r2 ? n2.length > 0 : n2; + }, Yt.prototype._queryCircle = function(t2, e2, i2, o2, r2) { + var a2 = t2 - i2, n2 = t2 + i2, s2 = e2 - i2, l2 = e2 + i2; + if (n2 < 0 || a2 > this.width || l2 < 0 || s2 > this.height) + return !o2 && []; + var c3 = []; + return this._forEachCell(a2, s2, n2, l2, this._queryCellCircle, c3, { hitTest: o2, circle: { x: t2, y: e2, radius: i2 }, seenUids: { box: {}, circle: {} } }, r2), o2 ? c3.length > 0 : c3; + }, Yt.prototype.query = function(t2, e2, i2, o2, r2) { + return this._query(t2, e2, i2, o2, false, r2); + }, Yt.prototype.hitTest = function(t2, e2, i2, o2, r2) { + return this._query(t2, e2, i2, o2, true, r2); + }, Yt.prototype.hitTestCircle = function(t2, e2, i2, o2) { + return this._queryCircle(t2, e2, i2, true, o2); + }, Yt.prototype._queryCell = function(t2, e2, i2, o2, r2, a2, n2, s2) { + var l2 = n2.seenUids, c3 = this.boxCells[r2]; + if (null !== c3) + for (var u2 = this.bboxes, h3 = 0, p3 = c3; h3 < p3.length; h3 += 1) { + var d2 = p3[h3]; + if (!l2.box[d2]) { + l2.box[d2] = true; + var _24 = 4 * d2; + if (t2 <= u2[_24 + 2] && e2 <= u2[_24 + 3] && i2 >= u2[_24 + 0] && o2 >= u2[_24 + 1] && (!s2 || s2(this.boxKeys[d2]))) { + if (n2.hitTest) + return a2.push(true), true; + a2.push({ key: this.boxKeys[d2], x1: u2[_24], y1: u2[_24 + 1], x2: u2[_24 + 2], y2: u2[_24 + 3] }); + } } - for (const t2 of g3) { - r3.reset(t2, 0.25 * i3); - let o4 = 0; - o4 = r3.length <= 0.5 * i3 ? 1 : Math.ceil(r3.paddedLength / f3) + 1; - for (let t3 = 0; t3 < o4; t3++) { - const a4 = t3 / Math.max(o4 - 1, 1), s4 = r3.lerp(a4), n4 = s4.x + vt, l3 = s4.y + vt; - p3.push(n4, l3, i3, 0); - const h5 = n4 - i3, d3 = l3 - i3, m3 = n4 + i3, _25 = l3 + i3; - if (E2 = E2 && this.isOffscreen(h5, d3, m3, _25), T2 = T2 || this.isInsideGrid(h5, d3, m3, _25), "always" !== e2 && this.grid.hitTestCircle(n4, l3, i3, e2, u2) && (w2 = true, !c3)) - return { circles: [], offscreen: false, collisionDetected: w2 }; + } + var f2 = this.circleCells[r2]; + if (null !== f2) + for (var m2 = this.circles, g2 = 0, v3 = f2; g2 < v3.length; g2 += 1) { + var y3 = v3[g2]; + if (!l2.circle[y3]) { + l2.circle[y3] = true; + var x2 = 3 * y3; + if (this._circleAndRectCollide(m2[x2], m2[x2 + 1], m2[x2 + 2], t2, e2, i2, o2) && (!s2 || s2(this.circleKeys[y3]))) { + if (n2.hitTest) + return a2.push(true), true; + var b2 = m2[x2], w2 = m2[x2 + 1], T2 = m2[x2 + 2]; + a2.push({ key: this.circleKeys[y3], x1: b2 - T2, y1: w2 - T2, x2: b2 + T2, y2: w2 + T2 }); } } } - return { circles: !c3 && w2 || !T2 || x2 < this.perspectiveRatioCutoff ? [] : p3, offscreen: E2, collisionDetected: w2 }; - } - queryRenderedSymbols(e2) { - if (0 === e2.length || 0 === this.grid.keysLength() && 0 === this.ignoredGrid.keysLength()) - return {}; - const i2 = []; - let o2 = 1 / 0, a2 = 1 / 0, r2 = -1 / 0, s2 = -1 / 0; - for (const n3 of e2) { - const e3 = new t.pointGeometry(n3.x + vt, n3.y + vt); - o2 = Math.min(o2, e3.x), a2 = Math.min(a2, e3.y), r2 = Math.max(r2, e3.x), s2 = Math.max(s2, e3.y), i2.push(e3); - } - const n2 = this.grid.query(o2, a2, r2, s2).concat(this.ignoredGrid.query(o2, a2, r2, s2)), l2 = {}, c3 = {}; - for (const e3 of n2) { - const o3 = e3.key; - if (void 0 === l2[o3.bucketInstanceId] && (l2[o3.bucketInstanceId] = {}), l2[o3.bucketInstanceId][o3.featureIndex]) - continue; - const a3 = [new t.pointGeometry(e3.x1, e3.y1), new t.pointGeometry(e3.x2, e3.y1), new t.pointGeometry(e3.x2, e3.y2), new t.pointGeometry(e3.x1, e3.y2)]; - t.polygonIntersectsPolygon(i2, a3) && (l2[o3.bucketInstanceId][o3.featureIndex] = true, void 0 === c3[o3.bucketInstanceId] && (c3[o3.bucketInstanceId] = []), c3[o3.bucketInstanceId].push(o3.featureIndex)); + }, Yt.prototype._queryCellCircle = function(t2, e2, i2, o2, r2, a2, n2, s2) { + var l2 = n2.circle, c3 = n2.seenUids, u2 = this.boxCells[r2]; + if (null !== u2) + for (var h3 = this.bboxes, p3 = 0, d2 = u2; p3 < d2.length; p3 += 1) { + var _24 = d2[p3]; + if (!c3.box[_24]) { + c3.box[_24] = true; + var f2 = 4 * _24; + if (this._circleAndRectCollide(l2.x, l2.y, l2.radius, h3[f2 + 0], h3[f2 + 1], h3[f2 + 2], h3[f2 + 3]) && (!s2 || s2(this.boxKeys[_24]))) + return a2.push(true), true; + } } - return c3; - } - insertCollisionBox(t2, e2, i2, o2, a2, r2) { - (i2 ? this.ignoredGrid : this.grid).insert({ bucketInstanceId: o2, featureIndex: a2, collisionGroupID: r2, overlapMode: e2 }, t2[0], t2[1], t2[2], t2[3]); - } - insertCollisionCircles(t2, e2, i2, o2, a2, r2) { - const s2 = i2 ? this.ignoredGrid : this.grid, n2 = { bucketInstanceId: o2, featureIndex: a2, collisionGroupID: r2, overlapMode: e2 }; - for (let e3 = 0; e3 < t2.length; e3 += 4) - s2.insertCircle(n2, t2[e3], t2[e3 + 1], t2[e3 + 2]); - } - projectAndGetPerspectiveRatio(e2, i2, o2, a2) { - let r2; - return a2 ? (r2 = [i2, o2, a2(i2, o2), 1], t.transformMat4(r2, r2, e2)) : (r2 = [i2, o2, 0, 1], xt(r2, r2, e2)), { point: new t.pointGeometry((r2[0] / r2[3] + 1) / 2 * this.transform.width + vt, (-r2[1] / r2[3] + 1) / 2 * this.transform.height + vt), perspectiveRatio: 0.5 + this.transform.cameraToCenterDistance / r2[3] * 0.5 }; - } - isOffscreen(t2, e2, i2, o2) { - return i2 < vt || t2 >= this.screenRightBoundary || o2 < vt || e2 > this.screenBottomBoundary; - } - isInsideGrid(t2, e2, i2, o2) { - return i2 >= 0 && t2 < this.gridRightBoundary && o2 >= 0 && e2 < this.gridBottomBoundary; - } - getViewportMatrix() { - const e2 = t.identity([]); - return t.translate(e2, e2, [-100, -100, 0]), e2; - } - } - function bt(e2, i2, o2) { - return i2 * (t.EXTENT / (e2.tileSize * Math.pow(2, o2 - e2.tileID.overscaledZ))); - } - class wt { - constructor(t2, e2, i2, o2) { - this.opacity = t2 ? Math.max(0, Math.min(1, t2.opacity + (t2.placed ? e2 : -e2))) : o2 && i2 ? 1 : 0, this.placed = i2; - } - isHidden() { - return 0 === this.opacity && !this.placed; - } - } - class Tt { - constructor(t2, e2, i2, o2, a2) { - this.text = new wt(t2 ? t2.text : null, e2, i2, a2), this.icon = new wt(t2 ? t2.icon : null, e2, o2, a2); - } - isHidden() { - return this.text.isHidden() && this.icon.isHidden(); - } - } - class Et { - constructor(t2, e2, i2) { - this.text = t2, this.icon = e2, this.skipFade = i2; + var m2 = this.circleCells[r2]; + if (null !== m2) + for (var g2 = this.circles, v3 = 0, y3 = m2; v3 < y3.length; v3 += 1) { + var x2 = y3[v3]; + if (!c3.circle[x2]) { + c3.circle[x2] = true; + var b2 = 3 * x2; + if (this._circlesCollide(g2[b2], g2[b2 + 1], g2[b2 + 2], l2.x, l2.y, l2.radius) && (!s2 || s2(this.circleKeys[x2]))) + return a2.push(true), true; + } + } + }, Yt.prototype._forEachCell = function(t2, e2, i2, o2, r2, a2, n2, s2) { + for (var l2 = this._convertToXCellCoord(t2), c3 = this._convertToYCellCoord(e2), u2 = this._convertToXCellCoord(i2), h3 = this._convertToYCellCoord(o2), p3 = l2; p3 <= u2; p3++) + for (var d2 = c3; d2 <= h3; d2++) + if (r2.call(this, t2, e2, i2, o2, this.xCellCount * d2 + p3, a2, n2, s2)) + return; + }, Yt.prototype._convertToXCellCoord = function(t2) { + return Math.max(0, Math.min(this.xCellCount - 1, Math.floor(t2 * this.xScale))); + }, Yt.prototype._convertToYCellCoord = function(t2) { + return Math.max(0, Math.min(this.yCellCount - 1, Math.floor(t2 * this.yScale))); + }, Yt.prototype._circlesCollide = function(t2, e2, i2, o2, r2, a2) { + var n2 = o2 - t2, s2 = r2 - e2, l2 = i2 + a2; + return l2 * l2 > n2 * n2 + s2 * s2; + }, Yt.prototype._circleAndRectCollide = function(t2, e2, i2, o2, r2, a2, n2) { + var s2 = (a2 - o2) / 2, l2 = Math.abs(t2 - (o2 + s2)); + if (l2 > s2 + i2) + return false; + var c3 = (n2 - r2) / 2, u2 = Math.abs(e2 - (r2 + c3)); + if (u2 > c3 + i2) + return false; + if (l2 <= s2 || u2 <= c3) + return true; + var h3 = l2 - s2, p3 = u2 - c3; + return h3 * h3 + p3 * p3 <= i2 * i2; + }; + var le = new Float32Array([-1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0]); + function ce(t2, e2) { + for (var i2 = 0; i2 < t2; i2++) { + var o2 = e2.length; + e2.resize(o2 + 4), e2.float32.set(le, 3 * o2); } } - class It { - constructor() { - this.invProjMatrix = t.create(), this.viewportMatrix = t.create(), this.circles = []; - } + function ue(t2, e2, i2) { + var o2 = e2[0], r2 = e2[1]; + return t2[0] = i2[0] * o2 + i2[4] * r2 + i2[12], t2[1] = i2[1] * o2 + i2[5] * r2 + i2[13], t2[3] = i2[3] * o2 + i2[7] * r2 + i2[15], t2; } - class Ct { - constructor(t2, e2, i2, o2, a2) { - this.bucketInstanceId = t2, this.featureIndex = e2, this.sourceLayerIndex = i2, this.bucketIndex = o2, this.tileID = a2; - } + var he = function(t2, e2, i2) { + void 0 === e2 && (e2 = new Yt(t2.width + 200, t2.height + 200, 25)), void 0 === i2 && (i2 = new Yt(t2.width + 200, t2.height + 200, 25)), this.transform = t2, this.grid = e2, this.ignoredGrid = i2, this.pitchfactor = Math.cos(t2._pitch) * t2.cameraToCenterDistance, this.screenRightBoundary = t2.width + 100, this.screenBottomBoundary = t2.height + 100, this.gridRightBoundary = t2.width + 200, this.gridBottomBoundary = t2.height + 200; + }; + function pe(e2, i2, o2) { + return i2 * (t.EXTENT / (e2.tileSize * Math.pow(2, o2 - e2.tileID.overscaledZ))); } - class St { - constructor(t2) { - this.crossSourceCollisions = t2, this.maxGroupID = 0, this.collisionGroups = {}; - } - get(t2) { - if (this.crossSourceCollisions) - return { ID: 0, predicate: null }; - if (!this.collisionGroups[t2]) { - const e2 = ++this.maxGroupID; - this.collisionGroups[t2] = { ID: e2, predicate: (t3) => t3.collisionGroupID === e2 }; + he.prototype.placeCollisionBox = function(t2, e2, i2, o2, r2) { + var a2 = this.projectAndGetPerspectiveRatio(o2, t2.anchorPointX, t2.anchorPointY), n2 = i2 * a2.perspectiveRatio, s2 = t2.x1 * n2 + a2.point.x, l2 = t2.y1 * n2 + a2.point.y, c3 = t2.x2 * n2 + a2.point.x, u2 = t2.y2 * n2 + a2.point.y; + return !this.isInsideGrid(s2, l2, c3, u2) || !e2 && this.grid.hitTest(s2, l2, c3, u2, r2) ? { box: [], offscreen: false } : { box: [s2, l2, c3, u2], offscreen: this.isOffscreen(s2, l2, c3, u2) }; + }, he.prototype.placeCollisionCircles = function(e2, i2, o2, r2, a2, n2, s2, l2, c3, u2, h3, p3, d2) { + var _24 = [], f2 = new t.Point(i2.anchorX, i2.anchorY), m2 = $t(f2, n2), g2 = te(this.transform.cameraToCenterDistance, m2.signedDistanceFromCamera), v3 = (u2 ? a2 / g2 : a2 * g2) / t.ONE_EM, y3 = $t(f2, s2).point, x2 = oe(v3, r2, i2.lineOffsetX * v3, i2.lineOffsetY * v3, false, y3, f2, i2, o2, s2, {}), b2 = false, w2 = false, T2 = true; + if (x2) { + for (var E2 = 0.5 * p3 * g2 + d2, I3 = new t.Point(-100, -100), P2 = new t.Point(this.screenRightBoundary, this.screenBottomBoundary), S2 = new Kt(), C2 = x2.first, z2 = x2.last, D2 = [], A3 = C2.path.length - 1; A3 >= 1; A3--) + D2.push(C2.path[A3]); + for (var M2 = 1; M2 < z2.path.length; M2++) + D2.push(z2.path[M2]); + var L2 = 2.5 * E2; + if (l2) { + var R2 = D2.map(function(t2) { + return $t(t2, l2); + }); + D2 = R2.some(function(t2) { + return t2.signedDistanceFromCamera <= 0; + }) ? [] : R2.map(function(t2) { + return t2.point; + }); + } + var k2 = []; + if (D2.length > 0) { + for (var B2 = D2[0].clone(), O3 = D2[0].clone(), F2 = 1; F2 < D2.length; F2++) + B2.x = Math.min(B2.x, D2[F2].x), B2.y = Math.min(B2.y, D2[F2].y), O3.x = Math.max(O3.x, D2[F2].x), O3.y = Math.max(O3.y, D2[F2].y); + k2 = B2.x >= I3.x && O3.x <= P2.x && B2.y >= I3.y && O3.y <= P2.y ? [D2] : O3.x < I3.x || B2.x > P2.x || O3.y < I3.y || B2.y > P2.y ? [] : t.clipLine([D2], I3.x, I3.y, P2.x, P2.y); + } + for (var U2 = 0, N2 = k2; U2 < N2.length; U2 += 1) { + var Z3; + S2.reset(N2[U2], 0.25 * E2), Z3 = S2.length <= 0.5 * E2 ? 1 : Math.ceil(S2.paddedLength / L2) + 1; + for (var q2 = 0; q2 < Z3; q2++) { + var j2 = q2 / Math.max(Z3 - 1, 1), V3 = S2.lerp(j2), G2 = V3.x + 100, W2 = V3.y + 100; + _24.push(G2, W2, E2, 0); + var X2 = G2 - E2, H2 = W2 - E2, K2 = G2 + E2, Y2 = W2 + E2; + if (T2 = T2 && this.isOffscreen(X2, H2, K2, Y2), w2 = w2 || this.isInsideGrid(X2, H2, K2, Y2), !e2 && this.grid.hitTestCircle(G2, W2, E2, h3) && (b2 = true, !c3)) + return { circles: [], offscreen: false, collisionDetected: b2 }; + } } - return this.collisionGroups[t2]; } - } - function Dt(e2, i2, o2, a2, r2) { - const { horizontalAlign: s2, verticalAlign: n2 } = t.getAnchorAlignment(e2), l2 = -(s2 - 0.5) * i2, c3 = -(n2 - 0.5) * o2, h3 = t.evaluateVariableOffset(e2, a2); - return new t.pointGeometry(l2 + h3[0] * r2, c3 + h3[1] * r2); - } - function zt(e2, i2, o2, a2, r2, s2) { - const { x1: n2, x2: l2, y1: c3, y2: h3, anchorPointX: u2, anchorPointY: d2 } = e2, m2 = new t.pointGeometry(i2, o2); - return a2 && m2._rotate(r2 ? s2 : -s2), { x1: n2 + m2.x, y1: c3 + m2.y, x2: l2 + m2.x, y2: h3 + m2.y, anchorPointX: u2, anchorPointY: d2 }; - } - class Pt { - constructor(t2, e2, i2, o2, a2) { - this.transform = t2.clone(), this.terrain = e2, this.collisionIndex = new yt(this.transform), this.placements = {}, this.opacities = {}, this.variableOffsets = {}, this.stale = false, this.commitTime = 0, this.fadeDuration = i2, this.retainedQueryData = {}, this.collisionGroups = new St(o2), this.collisionCircleArrays = {}, this.prevPlacement = a2, a2 && (a2.prevPlacement = void 0), this.placedOrientations = {}; + return { circles: !c3 && b2 || !w2 ? [] : _24, offscreen: T2, collisionDetected: b2 }; + }, he.prototype.queryRenderedSymbols = function(e2) { + if (0 === e2.length || 0 === this.grid.keysLength() && 0 === this.ignoredGrid.keysLength()) + return {}; + for (var i2 = [], o2 = 1 / 0, r2 = 1 / 0, a2 = -1 / 0, n2 = -1 / 0, s2 = 0, l2 = e2; s2 < l2.length; s2 += 1) { + var c3 = l2[s2], u2 = new t.Point(c3.x + 100, c3.y + 100); + o2 = Math.min(o2, u2.x), r2 = Math.min(r2, u2.y), a2 = Math.max(a2, u2.x), n2 = Math.max(n2, u2.y), i2.push(u2); + } + for (var h3 = {}, p3 = {}, d2 = 0, _24 = this.grid.query(o2, r2, a2, n2).concat(this.ignoredGrid.query(o2, r2, a2, n2)); d2 < _24.length; d2 += 1) { + var f2 = _24[d2], m2 = f2.key; + if (void 0 === h3[m2.bucketInstanceId] && (h3[m2.bucketInstanceId] = {}), !h3[m2.bucketInstanceId][m2.featureIndex]) { + var g2 = [new t.Point(f2.x1, f2.y1), new t.Point(f2.x2, f2.y1), new t.Point(f2.x2, f2.y2), new t.Point(f2.x1, f2.y2)]; + t.polygonIntersectsPolygon(i2, g2) && (h3[m2.bucketInstanceId][m2.featureIndex] = true, void 0 === p3[m2.bucketInstanceId] && (p3[m2.bucketInstanceId] = []), p3[m2.bucketInstanceId].push(m2.featureIndex)); + } + } + return p3; + }, he.prototype.insertCollisionBox = function(t2, e2, i2, o2, r2) { + (e2 ? this.ignoredGrid : this.grid).insert({ bucketInstanceId: i2, featureIndex: o2, collisionGroupID: r2 }, t2[0], t2[1], t2[2], t2[3]); + }, he.prototype.insertCollisionCircles = function(t2, e2, i2, o2, r2) { + for (var a2 = e2 ? this.ignoredGrid : this.grid, n2 = { bucketInstanceId: i2, featureIndex: o2, collisionGroupID: r2 }, s2 = 0; s2 < t2.length; s2 += 4) + a2.insertCircle(n2, t2[s2], t2[s2 + 1], t2[s2 + 2]); + }, he.prototype.projectAndGetPerspectiveRatio = function(e2, i2, o2) { + var r2 = [i2, o2, 0, 1]; + return ue(r2, r2, e2), { point: new t.Point((r2[0] / r2[3] + 1) / 2 * this.transform.width + 100, (-r2[1] / r2[3] + 1) / 2 * this.transform.height + 100), perspectiveRatio: 0.5 + this.transform.cameraToCenterDistance / r2[3] * 0.5 }; + }, he.prototype.isOffscreen = function(t2, e2, i2, o2) { + return i2 < 100 || t2 >= this.screenRightBoundary || o2 < 100 || e2 > this.screenBottomBoundary; + }, he.prototype.isInsideGrid = function(t2, e2, i2, o2) { + return i2 >= 0 && t2 < this.gridRightBoundary && o2 >= 0 && e2 < this.gridBottomBoundary; + }, he.prototype.getViewportMatrix = function() { + var e2 = t.identity([]); + return t.translate(e2, e2, [-100, -100, 0]), e2; + }; + var de = function(t2, e2, i2, o2) { + this.opacity = t2 ? Math.max(0, Math.min(1, t2.opacity + (t2.placed ? e2 : -e2))) : o2 && i2 ? 1 : 0, this.placed = i2; + }; + de.prototype.isHidden = function() { + return 0 === this.opacity && !this.placed; + }; + var _e = function(t2, e2, i2, o2, r2) { + this.text = new de(t2 ? t2.text : null, e2, i2, r2), this.icon = new de(t2 ? t2.icon : null, e2, o2, r2); + }; + _e.prototype.isHidden = function() { + return this.text.isHidden() && this.icon.isHidden(); + }; + var fe = function(t2, e2, i2) { + this.text = t2, this.icon = e2, this.skipFade = i2; + }, me = function() { + this.invProjMatrix = t.create(), this.viewportMatrix = t.create(), this.circles = []; + }, ge = function(t2, e2, i2, o2, r2) { + this.bucketInstanceId = t2, this.featureIndex = e2, this.sourceLayerIndex = i2, this.bucketIndex = o2, this.tileID = r2; + }, ve = function(t2) { + this.crossSourceCollisions = t2, this.maxGroupID = 0, this.collisionGroups = {}; + }; + function ye(e2, i2, o2, r2, a2) { + var n2 = t.getAnchorAlignment(e2), s2 = -(n2.horizontalAlign - 0.5) * i2, l2 = -(n2.verticalAlign - 0.5) * o2, c3 = t.evaluateVariableOffset(e2, r2); + return new t.Point(s2 + c3[0] * a2, l2 + c3[1] * a2); + } + function xe(e2, i2, o2, r2, a2, n2) { + var s2 = e2.x1, l2 = e2.x2, c3 = e2.y1, u2 = e2.y2, h3 = e2.anchorPointX, p3 = e2.anchorPointY, d2 = new t.Point(i2, o2); + return r2 && d2._rotate(a2 ? n2 : -n2), { x1: s2 + d2.x, y1: c3 + d2.y, x2: l2 + d2.x, y2: u2 + d2.y, anchorPointX: h3, anchorPointY: p3 }; + } + ve.prototype.get = function(t2) { + if (this.crossSourceCollisions) + return { ID: 0, predicate: null }; + if (!this.collisionGroups[t2]) { + var e2 = ++this.maxGroupID; + this.collisionGroups[t2] = { ID: e2, predicate: function(t3) { + return t3.collisionGroupID === e2; + } }; } - getBucketParts(e2, i2, o2, a2) { - const r2 = o2.getBucket(i2), s2 = o2.latestFeatureIndex; - if (!r2 || !s2 || i2.id !== r2.layerIds[0]) - return; - const n2 = o2.collisionBoxArray, l2 = r2.layers[0].layout, c3 = Math.pow(2, this.transform.zoom - o2.tileID.overscaledZ), h3 = o2.tileSize / t.EXTENT, u2 = this.transform.calculatePosMatrix(o2.tileID.toUnwrapped()), d2 = "map" === l2.get("text-pitch-alignment"), m2 = "map" === l2.get("text-rotation-alignment"), _24 = bt(o2, 1, this.transform.zoom), p3 = rt(u2, d2, m2, this.transform, _24); - let f2 = null; - if (d2) { - const e3 = st(u2, d2, m2, this.transform, _24); - f2 = t.multiply([], this.transform.labelPlaneMatrix, e3); - } - this.retainedQueryData[r2.bucketInstanceId] = new Ct(r2.bucketInstanceId, s2, r2.sourceLayerIndex, r2.index, o2.tileID); - const g2 = { bucket: r2, layout: l2, posMatrix: u2, textLabelPlaneMatrix: p3, labelToScreenMatrix: f2, scale: c3, textPixelRatio: h3, holdingForFade: o2.holdingForFade(), collisionBoxArray: n2, partiallyEvaluatedTextSize: t.evaluateSizeForZoom(r2.textSizeData, this.transform.zoom), collisionGroup: this.collisionGroups.get(r2.sourceID) }; - if (a2) - for (const t2 of r2.sortKeyRanges) { - const { sortKey: i3, symbolInstanceStart: o3, symbolInstanceEnd: a3 } = t2; - e2.push({ sortKey: i3, symbolInstanceStart: o3, symbolInstanceEnd: a3, parameters: g2 }); + return this.collisionGroups[t2]; + }; + var be = function(t2, e2, i2, o2) { + this.transform = t2.clone(), this.collisionIndex = new he(this.transform), this.placements = {}, this.opacities = {}, this.variableOffsets = {}, this.stale = false, this.commitTime = 0, this.fadeDuration = e2, this.retainedQueryData = {}, this.collisionGroups = new ve(i2), this.collisionCircleArrays = {}, this.prevPlacement = o2, o2 && (o2.prevPlacement = void 0), this.placedOrientations = {}; + }; + function we(t2, e2, i2, o2, r2) { + t2.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, o2 || 0, r2 || 0), t2.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, o2 || 0, r2 || 0), t2.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, o2 || 0, r2 || 0), t2.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, o2 || 0, r2 || 0); + } + be.prototype.getBucketParts = function(e2, i2, o2, r2) { + var a2 = o2.getBucket(i2), n2 = o2.latestFeatureIndex; + if (a2 && n2 && i2.id === a2.layerIds[0]) { + var s2 = o2.collisionBoxArray, l2 = a2.layers[0].layout, c3 = Math.pow(2, this.transform.zoom - o2.tileID.overscaledZ), u2 = o2.tileSize / t.EXTENT, h3 = this.transform.calculatePosMatrix(o2.tileID.toUnwrapped()), p3 = "map" === l2.get("text-pitch-alignment"), d2 = "map" === l2.get("text-rotation-alignment"), _24 = pe(o2, 1, this.transform.zoom), f2 = Jt(h3, p3, d2, this.transform, _24), m2 = null; + if (p3) { + var g2 = Qt(h3, p3, d2, this.transform, _24); + m2 = t.multiply([], this.transform.labelPlaneMatrix, g2); + } + this.retainedQueryData[a2.bucketInstanceId] = new ge(a2.bucketInstanceId, n2, a2.sourceLayerIndex, a2.index, o2.tileID); + var v3 = { bucket: a2, layout: l2, posMatrix: h3, textLabelPlaneMatrix: f2, labelToScreenMatrix: m2, scale: c3, textPixelRatio: u2, holdingForFade: o2.holdingForFade(), collisionBoxArray: s2, partiallyEvaluatedTextSize: t.evaluateSizeForZoom(a2.textSizeData, this.transform.zoom), collisionGroup: this.collisionGroups.get(a2.sourceID) }; + if (r2) + for (var y3 = 0, x2 = a2.sortKeyRanges; y3 < x2.length; y3 += 1) { + var b2 = x2[y3]; + e2.push({ sortKey: b2.sortKey, symbolInstanceStart: b2.symbolInstanceStart, symbolInstanceEnd: b2.symbolInstanceEnd, parameters: v3 }); } else - e2.push({ symbolInstanceStart: 0, symbolInstanceEnd: r2.symbolInstances.length, parameters: g2 }); - } - attemptAnchorPlacement(t2, e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2, d2, m2, _24, p3) { - const f2 = [u2.textOffset0, u2.textOffset1], g2 = Dt(t2, i2, o2, f2, a2), x2 = this.collisionIndex.placeCollisionBox(zt(e2, g2.x, g2.y, r2, s2, this.transform.angle), h3, n2, l2, c3.predicate, p3); - if ((!_24 || 0 !== this.collisionIndex.placeCollisionBox(zt(_24, g2.x, g2.y, r2, s2, this.transform.angle), h3, n2, l2, c3.predicate, p3).box.length) && x2.box.length > 0) { - let e3; - if (this.prevPlacement && this.prevPlacement.variableOffsets[u2.crossTileID] && this.prevPlacement.placements[u2.crossTileID] && this.prevPlacement.placements[u2.crossTileID].text && (e3 = this.prevPlacement.variableOffsets[u2.crossTileID].anchor), 0 === u2.crossTileID) - throw new Error("symbolInstance.crossTileID can't be 0"); - return this.variableOffsets[u2.crossTileID] = { textOffset: f2, width: i2, height: o2, anchor: t2, textBoxScale: a2, prevAnchor: e3 }, this.markUsedJustification(d2, t2, u2, m2), d2.allowVerticalPlacement && (this.markUsedOrientation(d2, m2, u2), this.placedOrientations[u2.crossTileID] = m2), { shift: g2, placedGlyphBoxes: x2 }; - } - } - placeLayerBucketPart(e2, i2, o2) { - const { bucket: a2, layout: r2, posMatrix: s2, textLabelPlaneMatrix: n2, labelToScreenMatrix: l2, textPixelRatio: c3, holdingForFade: h3, collisionBoxArray: u2, partiallyEvaluatedTextSize: d2, collisionGroup: m2 } = e2.parameters, _24 = r2.get("text-optional"), p3 = r2.get("icon-optional"), f2 = t.getOverlapMode(r2, "text-overlap", "text-allow-overlap"), g2 = "always" === f2, x2 = t.getOverlapMode(r2, "icon-overlap", "icon-allow-overlap"), v3 = "always" === x2, y3 = "map" === r2.get("text-rotation-alignment"), b2 = "map" === r2.get("text-pitch-alignment"), w2 = "none" !== r2.get("icon-text-fit"), T2 = "viewport-y" === r2.get("symbol-z-order"), E2 = g2 && (v3 || !a2.hasIconData() || p3), I3 = v3 && (g2 || !a2.hasTextData() || _24); - !a2.collisionArrays && u2 && a2.deserializeCollisionBoxes(u2); - const C2 = (e3, u3) => { - if (i2[e3.crossTileID]) - return; - if (h3) - return void (this.placements[e3.crossTileID] = new Et(false, false, false)); - let v4 = false, T3 = false, C3 = true, S2 = null, D2 = { box: null, offscreen: null }, z2 = { box: null, offscreen: null }, P2 = null, M2 = null, A3 = null, L2 = 0, R2 = 0, k2 = 0; - u3.textFeatureIndex ? L2 = u3.textFeatureIndex : e3.useRuntimeCollisionCircles && (L2 = e3.featureIndex), u3.verticalTextFeatureIndex && (R2 = u3.verticalTextFeatureIndex); - const B2 = this.retainedQueryData[a2.bucketInstanceId].tileID, F2 = this.terrain ? (t2, e4) => this.terrain.getElevation(B2, t2, e4) : null; - for (const t2 of ["textBox", "verticalTextBox", "iconBox", "verticalIconBox"]) { - const e4 = u3[t2]; - e4 && (e4.elevation = F2 ? F2(e4.anchorPointX, e4.anchorPointY) : 0); - } - const O3 = u3.textBox; - if (O3) { - const i3 = (i4) => { - let o4 = t.WritingMode.horizontal; - if (a2.allowVerticalPlacement && !i4 && this.prevPlacement) { - const t2 = this.prevPlacement.placedOrientations[e3.crossTileID]; - t2 && (this.placedOrientations[e3.crossTileID] = t2, o4 = t2, this.markUsedOrientation(a2, o4, e3)); - } - return o4; - }, o3 = (i4, o4) => { - if (a2.allowVerticalPlacement && e3.numVerticalGlyphVertices > 0 && u3.verticalTextBox) { - for (const e4 of a2.writingModes) - if (e4 === t.WritingMode.vertical ? (D2 = o4(), z2 = D2) : D2 = i4(), D2 && D2.box && D2.box.length) - break; - } else - D2 = i4(); - }; - if (r2.get("text-variable-anchor")) { - let n3 = r2.get("text-variable-anchor"); - if (this.prevPlacement && this.prevPlacement.variableOffsets[e3.crossTileID]) { - const t2 = this.prevPlacement.variableOffsets[e3.crossTileID]; - n3.indexOf(t2.anchor) > 0 && (n3 = n3.filter((e4) => e4 !== t2.anchor), n3.unshift(t2.anchor)); - } - const l3 = (t2, i4, o4) => { - const r3 = t2.x2 - t2.x1, l4 = t2.y2 - t2.y1, h5 = e3.textBoxScale, u4 = w2 && "never" === x2 ? i4 : null; - let d3 = { box: [], offscreen: false }; - const _25 = "never" !== f2 ? 2 * n3.length : n3.length; - for (let i5 = 0; i5 < _25; ++i5) { - const _26 = this.attemptAnchorPlacement(n3[i5 % n3.length], t2, r3, l4, h5, y3, b2, c3, s2, m2, i5 >= n3.length ? f2 : "never", e3, a2, o4, u4, F2); - if (_26 && (d3 = _26.placedGlyphBoxes, d3 && d3.box && d3.box.length)) { - v4 = true, S2 = _26.shift; - break; - } + e2.push({ symbolInstanceStart: 0, symbolInstanceEnd: a2.symbolInstances.length, parameters: v3 }); + } + }, be.prototype.attemptAnchorPlacement = function(t2, e2, i2, o2, r2, a2, n2, s2, l2, c3, u2, h3, p3, d2, _24) { + var f2, m2 = [h3.textOffset0, h3.textOffset1], g2 = ye(t2, i2, o2, m2, r2), v3 = this.collisionIndex.placeCollisionBox(xe(e2, g2.x, g2.y, a2, n2, this.transform.angle), u2, s2, l2, c3.predicate); + if (!_24 || 0 !== this.collisionIndex.placeCollisionBox(xe(_24, g2.x, g2.y, a2, n2, this.transform.angle), u2, s2, l2, c3.predicate).box.length) + return v3.box.length > 0 ? (this.prevPlacement && this.prevPlacement.variableOffsets[h3.crossTileID] && this.prevPlacement.placements[h3.crossTileID] && this.prevPlacement.placements[h3.crossTileID].text && (f2 = this.prevPlacement.variableOffsets[h3.crossTileID].anchor), this.variableOffsets[h3.crossTileID] = { textOffset: m2, width: i2, height: o2, anchor: t2, textBoxScale: r2, prevAnchor: f2 }, this.markUsedJustification(p3, t2, h3, d2), p3.allowVerticalPlacement && (this.markUsedOrientation(p3, d2, h3), this.placedOrientations[h3.crossTileID] = d2), { shift: g2, placedGlyphBoxes: v3 }) : void 0; + }, be.prototype.placeLayerBucketPart = function(e2, i2, o2) { + var r2 = this, a2 = e2.parameters, n2 = a2.bucket, s2 = a2.layout, l2 = a2.posMatrix, c3 = a2.textLabelPlaneMatrix, u2 = a2.labelToScreenMatrix, h3 = a2.textPixelRatio, p3 = a2.holdingForFade, d2 = a2.collisionBoxArray, _24 = a2.partiallyEvaluatedTextSize, f2 = a2.collisionGroup, m2 = s2.get("text-optional"), g2 = s2.get("icon-optional"), v3 = s2.get("text-allow-overlap"), y3 = s2.get("icon-allow-overlap"), x2 = "map" === s2.get("text-rotation-alignment"), b2 = "map" === s2.get("text-pitch-alignment"), w2 = "none" !== s2.get("icon-text-fit"), T2 = "viewport-y" === s2.get("symbol-z-order"), E2 = v3 && (y3 || !n2.hasIconData() || g2), I3 = y3 && (v3 || !n2.hasTextData() || m2); + !n2.collisionArrays && d2 && n2.deserializeCollisionBoxes(d2); + var P2 = function(e3, a3) { + if (!i2[e3.crossTileID]) + if (p3) + r2.placements[e3.crossTileID] = new fe(false, false, false); + else { + var d3, T3 = false, P3 = false, S3 = true, C3 = null, z3 = { box: null, offscreen: null }, D3 = { box: null, offscreen: null }, A4 = null, M2 = null, L2 = 0, R2 = 0, k2 = 0; + a3.textFeatureIndex ? L2 = a3.textFeatureIndex : e3.useRuntimeCollisionCircles && (L2 = e3.featureIndex), a3.verticalTextFeatureIndex && (R2 = a3.verticalTextFeatureIndex); + var B2 = a3.textBox; + if (B2) { + var O3 = function(i3) { + var o3 = t.WritingMode.horizontal; + if (n2.allowVerticalPlacement && !i3 && r2.prevPlacement) { + var a4 = r2.prevPlacement.placedOrientations[e3.crossTileID]; + a4 && (r2.placedOrientations[e3.crossTileID] = a4, r2.markUsedOrientation(n2, o3 = a4, e3)); } - return d3; + return o3; + }, F2 = function(i3, o3) { + if (n2.allowVerticalPlacement && e3.numVerticalGlyphVertices > 0 && a3.verticalTextBox) + for (var r3 = 0, s3 = n2.writingModes; r3 < s3.length && (s3[r3] === t.WritingMode.vertical ? (z3 = o3(), D3 = z3) : z3 = i3(), !(z3 && z3.box && z3.box.length)); r3 += 1) + ; + else + z3 = i3(); }; - o3(() => l3(O3, u3.iconBox, t.WritingMode.horizontal), () => { - const i4 = u3.verticalTextBox; - return a2.allowVerticalPlacement && !(D2 && D2.box && D2.box.length) && e3.numVerticalGlyphVertices > 0 && i4 ? l3(i4, u3.verticalIconBox, t.WritingMode.vertical) : { box: null, offscreen: null }; - }), D2 && (v4 = D2.box, C3 = D2.offscreen); - const h4 = i3(D2 && D2.box); - if (!v4 && this.prevPlacement) { - const t2 = this.prevPlacement.variableOffsets[e3.crossTileID]; - t2 && (this.variableOffsets[e3.crossTileID] = t2, this.markUsedJustification(a2, t2.anchor, e3, h4)); + if (s2.get("text-variable-anchor")) { + var U2 = s2.get("text-variable-anchor"); + if (r2.prevPlacement && r2.prevPlacement.variableOffsets[e3.crossTileID]) { + var N2 = r2.prevPlacement.variableOffsets[e3.crossTileID]; + U2.indexOf(N2.anchor) > 0 && (U2 = U2.filter(function(t2) { + return t2 !== N2.anchor; + })).unshift(N2.anchor); + } + var Z3 = function(t2, i3, o3) { + for (var a4 = t2.x2 - t2.x1, s3 = t2.y2 - t2.y1, c4 = e3.textBoxScale, u3 = w2 && !y3 ? i3 : null, p4 = { box: [], offscreen: false }, d4 = v3 ? 2 * U2.length : U2.length, _25 = 0; _25 < d4; ++_25) { + var m3 = r2.attemptAnchorPlacement(U2[_25 % U2.length], t2, a4, s3, c4, x2, b2, h3, l2, f2, _25 >= U2.length, e3, n2, o3, u3); + if (m3 && (p4 = m3.placedGlyphBoxes) && p4.box && p4.box.length) { + T3 = true, C3 = m3.shift; + break; + } + } + return p4; + }; + F2(function() { + return Z3(B2, a3.iconBox, t.WritingMode.horizontal); + }, function() { + var i3 = a3.verticalTextBox; + return n2.allowVerticalPlacement && !(z3 && z3.box && z3.box.length) && e3.numVerticalGlyphVertices > 0 && i3 ? Z3(i3, a3.verticalIconBox, t.WritingMode.vertical) : { box: null, offscreen: null }; + }), z3 && (T3 = z3.box, S3 = z3.offscreen); + var q2 = O3(z3 && z3.box); + if (!T3 && r2.prevPlacement) { + var j2 = r2.prevPlacement.variableOffsets[e3.crossTileID]; + j2 && (r2.variableOffsets[e3.crossTileID] = j2, r2.markUsedJustification(n2, j2.anchor, e3, q2)); + } + } else { + var V3 = function(t2, i3) { + var o3 = r2.collisionIndex.placeCollisionBox(t2, v3, h3, l2, f2.predicate); + return o3 && o3.box && o3.box.length && (r2.markUsedOrientation(n2, i3, e3), r2.placedOrientations[e3.crossTileID] = i3), o3; + }; + F2(function() { + return V3(B2, t.WritingMode.horizontal); + }, function() { + var i3 = a3.verticalTextBox; + return n2.allowVerticalPlacement && e3.numVerticalGlyphVertices > 0 && i3 ? V3(i3, t.WritingMode.vertical) : { box: null, offscreen: null }; + }), O3(z3 && z3.box && z3.box.length); } - } else { - const r3 = (t2, i4) => { - const o4 = this.collisionIndex.placeCollisionBox(t2, f2, c3, s2, m2.predicate, F2); - return o4 && o4.box && o4.box.length && (this.markUsedOrientation(a2, i4, e3), this.placedOrientations[e3.crossTileID] = i4), o4; + } + if (T3 = (d3 = z3) && d3.box && d3.box.length > 0, S3 = d3 && d3.offscreen, e3.useRuntimeCollisionCircles) { + var G2 = n2.text.placedSymbolArray.get(e3.centerJustifiedTextSymbolIndex), W2 = t.evaluateSizeForFeature(n2.textSizeData, _24, G2), X2 = s2.get("text-padding"); + A4 = r2.collisionIndex.placeCollisionCircles(v3, G2, n2.lineVertexArray, n2.glyphOffsetArray, W2, l2, c3, u2, o2, b2, f2.predicate, e3.collisionCircleDiameter, X2), T3 = v3 || A4.circles.length > 0 && !A4.collisionDetected, S3 = S3 && A4.offscreen; + } + if (a3.iconFeatureIndex && (k2 = a3.iconFeatureIndex), a3.iconBox) { + var H2 = function(t2) { + var e4 = w2 && C3 ? xe(t2, C3.x, C3.y, x2, b2, r2.transform.angle) : t2; + return r2.collisionIndex.placeCollisionBox(e4, y3, h3, l2, f2.predicate); }; - o3(() => r3(O3, t.WritingMode.horizontal), () => { - const i4 = u3.verticalTextBox; - return a2.allowVerticalPlacement && e3.numVerticalGlyphVertices > 0 && i4 ? r3(i4, t.WritingMode.vertical) : { box: null, offscreen: null }; - }), i3(D2 && D2.box && D2.box.length); + P3 = D3 && D3.box && D3.box.length && a3.verticalIconBox ? (M2 = H2(a3.verticalIconBox)).box.length > 0 : (M2 = H2(a3.iconBox)).box.length > 0, S3 = S3 && M2.offscreen; } + var K2 = m2 || 0 === e3.numHorizontalGlyphVertices && 0 === e3.numVerticalGlyphVertices, Y2 = g2 || 0 === e3.numIconVertices; + if (K2 || Y2 ? Y2 ? K2 || (P3 = P3 && T3) : T3 = P3 && T3 : P3 = T3 = P3 && T3, T3 && d3 && d3.box && r2.collisionIndex.insertCollisionBox(d3.box, s2.get("text-ignore-placement"), n2.bucketInstanceId, D3 && D3.box && R2 ? R2 : L2, f2.ID), P3 && M2 && r2.collisionIndex.insertCollisionBox(M2.box, s2.get("icon-ignore-placement"), n2.bucketInstanceId, k2, f2.ID), A4 && (T3 && r2.collisionIndex.insertCollisionCircles(A4.circles, s2.get("text-ignore-placement"), n2.bucketInstanceId, L2, f2.ID), o2)) { + var J2 = n2.bucketInstanceId, Q2 = r2.collisionCircleArrays[J2]; + void 0 === Q2 && (Q2 = r2.collisionCircleArrays[J2] = new me()); + for (var $2 = 0; $2 < A4.circles.length; $2 += 4) + Q2.circles.push(A4.circles[$2 + 0]), Q2.circles.push(A4.circles[$2 + 1]), Q2.circles.push(A4.circles[$2 + 2]), Q2.circles.push(A4.collisionDetected ? 1 : 0); + } + r2.placements[e3.crossTileID] = new fe(T3 || E2, P3 || I3, S3 || n2.justReloaded), i2[e3.crossTileID] = true; } - if (P2 = D2, v4 = P2 && P2.box && P2.box.length > 0, C3 = P2 && P2.offscreen, e3.useRuntimeCollisionCircles) { - const i3 = a2.text.placedSymbolArray.get(e3.centerJustifiedTextSymbolIndex), c4 = t.evaluateSizeForFeature(a2.textSizeData, d2, i3), h4 = r2.get("text-padding"); - M2 = this.collisionIndex.placeCollisionCircles(f2, i3, a2.lineVertexArray, a2.glyphOffsetArray, c4, s2, n2, l2, o2, b2, m2.predicate, e3.collisionCircleDiameter, h4, F2), M2.circles.length && M2.collisionDetected && !o2 && t.warnOnce("Collisions detected, but collision boxes are not shown"), v4 = g2 || M2.circles.length > 0 && !M2.collisionDetected, C3 = C3 && M2.offscreen; - } - if (u3.iconFeatureIndex && (k2 = u3.iconFeatureIndex), u3.iconBox) { - const t2 = (t3) => { - const e4 = w2 && S2 ? zt(t3, S2.x, S2.y, y3, b2, this.transform.angle) : t3; - return this.collisionIndex.placeCollisionBox(e4, x2, c3, s2, m2.predicate, F2); - }; - z2 && z2.box && z2.box.length && u3.verticalIconBox ? (A3 = t2(u3.verticalIconBox), T3 = A3.box.length > 0) : (A3 = t2(u3.iconBox), T3 = A3.box.length > 0), C3 = C3 && A3.offscreen; - } - const U2 = _24 || 0 === e3.numHorizontalGlyphVertices && 0 === e3.numVerticalGlyphVertices, N2 = p3 || 0 === e3.numIconVertices; - if (U2 || N2 ? N2 ? U2 || (T3 = T3 && v4) : v4 = T3 && v4 : T3 = v4 = T3 && v4, v4 && P2 && P2.box && this.collisionIndex.insertCollisionBox(P2.box, f2, r2.get("text-ignore-placement"), a2.bucketInstanceId, z2 && z2.box && R2 ? R2 : L2, m2.ID), T3 && A3 && this.collisionIndex.insertCollisionBox(A3.box, x2, r2.get("icon-ignore-placement"), a2.bucketInstanceId, k2, m2.ID), M2 && (v4 && this.collisionIndex.insertCollisionCircles(M2.circles, f2, r2.get("text-ignore-placement"), a2.bucketInstanceId, L2, m2.ID), o2)) { - const t2 = a2.bucketInstanceId; - let e4 = this.collisionCircleArrays[t2]; - void 0 === e4 && (e4 = this.collisionCircleArrays[t2] = new It()); - for (let t3 = 0; t3 < M2.circles.length; t3 += 4) - e4.circles.push(M2.circles[t3 + 0]), e4.circles.push(M2.circles[t3 + 1]), e4.circles.push(M2.circles[t3 + 2]), e4.circles.push(M2.collisionDetected ? 1 : 0); - } - if (0 === e3.crossTileID) - throw new Error("symbolInstance.crossTileID can't be 0"); - if (0 === a2.bucketInstanceId) - throw new Error("bucket.bucketInstanceId can't be 0"); - this.placements[e3.crossTileID] = new Et(v4 || E2, T3 || I3, C3 || a2.justReloaded), i2[e3.crossTileID] = true; - }; - if (T2) { - if (0 !== e2.symbolInstanceStart) - throw new Error("bucket.bucketInstanceId should be 0"); - const t2 = a2.getSortedSymbolIndexes(this.transform.angle); - for (let e3 = t2.length - 1; e3 >= 0; --e3) { - const i3 = t2[e3]; - C2(a2.symbolInstances.get(i3), a2.collisionArrays[i3]); - } - } else - for (let t2 = e2.symbolInstanceStart; t2 < e2.symbolInstanceEnd; t2++) - C2(a2.symbolInstances.get(t2), a2.collisionArrays[t2]); - if (o2 && a2.bucketInstanceId in this.collisionCircleArrays) { - const e3 = this.collisionCircleArrays[a2.bucketInstanceId]; - t.invert(e3.invProjMatrix, s2), e3.viewportMatrix = this.collisionIndex.getViewportMatrix(); - } - a2.justReloaded = false; - } - markUsedJustification(e2, i2, o2, a2) { - let r2; - r2 = a2 === t.WritingMode.vertical ? o2.verticalPlacedTextSymbolIndex : { left: o2.leftJustifiedTextSymbolIndex, center: o2.centerJustifiedTextSymbolIndex, right: o2.rightJustifiedTextSymbolIndex }[t.getAnchorJustification(i2)]; - const s2 = [o2.leftJustifiedTextSymbolIndex, o2.centerJustifiedTextSymbolIndex, o2.rightJustifiedTextSymbolIndex, o2.verticalPlacedTextSymbolIndex]; - for (const t2 of s2) - t2 >= 0 && (e2.text.placedSymbolArray.get(t2).crossTileID = r2 >= 0 && t2 !== r2 ? 0 : o2.crossTileID); - } - markUsedOrientation(e2, i2, o2) { - const a2 = i2 === t.WritingMode.horizontal || i2 === t.WritingMode.horizontalOnly ? i2 : 0, r2 = i2 === t.WritingMode.vertical ? i2 : 0, s2 = [o2.leftJustifiedTextSymbolIndex, o2.centerJustifiedTextSymbolIndex, o2.rightJustifiedTextSymbolIndex]; - for (const t2 of s2) - e2.text.placedSymbolArray.get(t2).placedOrientation = a2; - o2.verticalPlacedTextSymbolIndex && (e2.text.placedSymbolArray.get(o2.verticalPlacedTextSymbolIndex).placedOrientation = r2); - } - commit(t2) { - this.commitTime = t2, this.zoomAtLastRecencyCheck = this.transform.zoom; - const e2 = this.prevPlacement; - let i2 = false; - this.prevZoomAdjustment = e2 ? e2.zoomAdjustment(this.transform.zoom) : 0; - const o2 = e2 ? e2.symbolFadeChange(t2) : 1, a2 = e2 ? e2.opacities : {}, r2 = e2 ? e2.variableOffsets : {}, s2 = e2 ? e2.placedOrientations : {}; - for (const t3 in this.placements) { - const e3 = this.placements[t3], r3 = a2[t3]; - r3 ? (this.opacities[t3] = new Tt(r3, o2, e3.text, e3.icon), i2 = i2 || e3.text !== r3.text.placed || e3.icon !== r3.icon.placed) : (this.opacities[t3] = new Tt(null, o2, e3.text, e3.icon, e3.skipFade), i2 = i2 || e3.text || e3.icon); - } - for (const t3 in a2) { - const e3 = a2[t3]; - if (!this.opacities[t3]) { - const a3 = new Tt(e3, o2, false, false); - a3.isHidden() || (this.opacities[t3] = a3, i2 = i2 || e3.text.placed || e3.icon.placed); - } + }; + if (T2) + for (var S2 = n2.getSortedSymbolIndexes(this.transform.angle), C2 = S2.length - 1; C2 >= 0; --C2) { + var z2 = S2[C2]; + P2(n2.symbolInstances.get(z2), n2.collisionArrays[z2]); } - for (const t3 in r2) - this.variableOffsets[t3] || !this.opacities[t3] || this.opacities[t3].isHidden() || (this.variableOffsets[t3] = r2[t3]); - for (const t3 in s2) - this.placedOrientations[t3] || !this.opacities[t3] || this.opacities[t3].isHidden() || (this.placedOrientations[t3] = s2[t3]); - if (e2 && void 0 === e2.lastPlacementChangeTime) - throw new Error("Last placement time for previous placement is not defined"); - i2 ? this.lastPlacementChangeTime = t2 : "number" != typeof this.lastPlacementChangeTime && (this.lastPlacementChangeTime = e2 ? e2.lastPlacementChangeTime : t2); - } - updateLayerOpacities(t2, e2) { - const i2 = {}; - for (const o2 of e2) { - const e3 = o2.getBucket(t2); - e3 && o2.latestFeatureIndex && t2.id === e3.layerIds[0] && this.updateBucketOpacities(e3, i2, o2.collisionBoxArray); - } - } - updateBucketOpacities(e2, i2, o2) { - e2.hasTextData() && e2.text.opacityVertexArray.clear(), e2.hasIconData() && e2.icon.opacityVertexArray.clear(), e2.hasIconCollisionBoxData() && e2.iconCollisionBox.collisionVertexArray.clear(), e2.hasTextCollisionBoxData() && e2.textCollisionBox.collisionVertexArray.clear(); - const a2 = e2.layers[0].layout, r2 = new Tt(null, 0, false, false, true), s2 = a2.get("text-allow-overlap"), n2 = a2.get("icon-allow-overlap"), l2 = a2.get("text-variable-anchor"), c3 = "map" === a2.get("text-rotation-alignment"), h3 = "map" === a2.get("text-pitch-alignment"), u2 = "none" !== a2.get("icon-text-fit"), d2 = new Tt(null, 0, s2 && (n2 || !e2.hasIconData() || a2.get("icon-optional")), n2 && (s2 || !e2.hasTextData() || a2.get("text-optional")), true); - !e2.collisionArrays && o2 && (e2.hasIconCollisionBoxData() || e2.hasTextCollisionBoxData()) && e2.deserializeCollisionBoxes(o2); - const m2 = (t2, e3, i3) => { - for (let o3 = 0; o3 < e3 / 4; o3++) - t2.opacityVertexArray.emplaceBack(i3); - }; - for (let o3 = 0; o3 < e2.symbolInstances.length; o3++) { - const a3 = e2.symbolInstances.get(o3), { numHorizontalGlyphVertices: s3, numVerticalGlyphVertices: n3, crossTileID: _24 } = a3; - let p3 = this.opacities[_24]; - i2[_24] ? p3 = r2 : p3 || (p3 = d2, this.opacities[_24] = p3), i2[_24] = true; - const f2 = a3.numIconVertices > 0, g2 = this.placedOrientations[a3.crossTileID], x2 = g2 === t.WritingMode.vertical, v3 = g2 === t.WritingMode.horizontal || g2 === t.WritingMode.horizontalOnly; - if (s3 > 0 || n3 > 0) { - const t2 = Ut(p3.text); - m2(e2.text, s3, x2 ? Nt : t2), m2(e2.text, n3, v3 ? Nt : t2); - const i3 = p3.text.isHidden(); - [a3.rightJustifiedTextSymbolIndex, a3.centerJustifiedTextSymbolIndex, a3.leftJustifiedTextSymbolIndex].forEach((t3) => { - t3 >= 0 && (e2.text.placedSymbolArray.get(t3).hidden = i3 || x2 ? 1 : 0); - }), a3.verticalPlacedTextSymbolIndex >= 0 && (e2.text.placedSymbolArray.get(a3.verticalPlacedTextSymbolIndex).hidden = i3 || v3 ? 1 : 0); - const o4 = this.variableOffsets[a3.crossTileID]; - o4 && this.markUsedJustification(e2, o4.anchor, a3, g2); - const r3 = this.placedOrientations[a3.crossTileID]; - r3 && (this.markUsedJustification(e2, "left", a3, r3), this.markUsedOrientation(e2, r3, a3)); - } - if (f2) { - const t2 = Ut(p3.icon), i3 = !(u2 && a3.verticalPlacedIconSymbolIndex && x2); - a3.placedIconSymbolIndex >= 0 && (m2(e2.icon, a3.numIconVertices, i3 ? t2 : Nt), e2.icon.placedSymbolArray.get(a3.placedIconSymbolIndex).hidden = p3.icon.isHidden()), a3.verticalPlacedIconSymbolIndex >= 0 && (m2(e2.icon, a3.numVerticalIconVertices, i3 ? Nt : t2), e2.icon.placedSymbolArray.get(a3.verticalPlacedIconSymbolIndex).hidden = p3.icon.isHidden()); - } - if (e2.hasIconCollisionBoxData() || e2.hasTextCollisionBoxData()) { - const i3 = e2.collisionArrays[o3]; - if (i3) { - let o4 = new t.pointGeometry(0, 0); - if (i3.textBox || i3.verticalTextBox) { - let t2 = true; - if (l2) { - const e3 = this.variableOffsets[_24]; - e3 ? (o4 = Dt(e3.anchor, e3.width, e3.height, e3.textOffset, e3.textBoxScale), c3 && o4._rotate(h3 ? this.transform.angle : -this.transform.angle)) : t2 = false; - } - i3.textBox && Mt(e2.textCollisionBox.collisionVertexArray, p3.text.placed, !t2 || x2, o4.x, o4.y), i3.verticalTextBox && Mt(e2.textCollisionBox.collisionVertexArray, p3.text.placed, !t2 || v3, o4.x, o4.y); + else + for (var D2 = e2.symbolInstanceStart; D2 < e2.symbolInstanceEnd; D2++) + P2(n2.symbolInstances.get(D2), n2.collisionArrays[D2]); + if (o2 && n2.bucketInstanceId in this.collisionCircleArrays) { + var A3 = this.collisionCircleArrays[n2.bucketInstanceId]; + t.invert(A3.invProjMatrix, l2), A3.viewportMatrix = this.collisionIndex.getViewportMatrix(); + } + n2.justReloaded = false; + }, be.prototype.markUsedJustification = function(e2, i2, o2, r2) { + var a2; + a2 = r2 === t.WritingMode.vertical ? o2.verticalPlacedTextSymbolIndex : { left: o2.leftJustifiedTextSymbolIndex, center: o2.centerJustifiedTextSymbolIndex, right: o2.rightJustifiedTextSymbolIndex }[t.getAnchorJustification(i2)]; + for (var n2 = 0, s2 = [o2.leftJustifiedTextSymbolIndex, o2.centerJustifiedTextSymbolIndex, o2.rightJustifiedTextSymbolIndex, o2.verticalPlacedTextSymbolIndex]; n2 < s2.length; n2 += 1) { + var l2 = s2[n2]; + l2 >= 0 && (e2.text.placedSymbolArray.get(l2).crossTileID = a2 >= 0 && l2 !== a2 ? 0 : o2.crossTileID); + } + }, be.prototype.markUsedOrientation = function(e2, i2, o2) { + for (var r2 = i2 === t.WritingMode.horizontal || i2 === t.WritingMode.horizontalOnly ? i2 : 0, a2 = i2 === t.WritingMode.vertical ? i2 : 0, n2 = 0, s2 = [o2.leftJustifiedTextSymbolIndex, o2.centerJustifiedTextSymbolIndex, o2.rightJustifiedTextSymbolIndex]; n2 < s2.length; n2 += 1) + e2.text.placedSymbolArray.get(s2[n2]).placedOrientation = r2; + o2.verticalPlacedTextSymbolIndex && (e2.text.placedSymbolArray.get(o2.verticalPlacedTextSymbolIndex).placedOrientation = a2); + }, be.prototype.commit = function(t2) { + this.commitTime = t2, this.zoomAtLastRecencyCheck = this.transform.zoom; + var e2 = this.prevPlacement, i2 = false; + this.prevZoomAdjustment = e2 ? e2.zoomAdjustment(this.transform.zoom) : 0; + var o2 = e2 ? e2.symbolFadeChange(t2) : 1, r2 = e2 ? e2.opacities : {}, a2 = e2 ? e2.variableOffsets : {}, n2 = e2 ? e2.placedOrientations : {}; + for (var s2 in this.placements) { + var l2 = this.placements[s2], c3 = r2[s2]; + c3 ? (this.opacities[s2] = new _e(c3, o2, l2.text, l2.icon), i2 = i2 || l2.text !== c3.text.placed || l2.icon !== c3.icon.placed) : (this.opacities[s2] = new _e(null, o2, l2.text, l2.icon, l2.skipFade), i2 = i2 || l2.text || l2.icon); + } + for (var u2 in r2) { + var h3 = r2[u2]; + if (!this.opacities[u2]) { + var p3 = new _e(h3, o2, false, false); + p3.isHidden() || (this.opacities[u2] = p3, i2 = i2 || h3.text.placed || h3.icon.placed); + } + } + for (var d2 in a2) + this.variableOffsets[d2] || !this.opacities[d2] || this.opacities[d2].isHidden() || (this.variableOffsets[d2] = a2[d2]); + for (var _24 in n2) + this.placedOrientations[_24] || !this.opacities[_24] || this.opacities[_24].isHidden() || (this.placedOrientations[_24] = n2[_24]); + i2 ? this.lastPlacementChangeTime = t2 : "number" != typeof this.lastPlacementChangeTime && (this.lastPlacementChangeTime = e2 ? e2.lastPlacementChangeTime : t2); + }, be.prototype.updateLayerOpacities = function(t2, e2) { + for (var i2 = {}, o2 = 0, r2 = e2; o2 < r2.length; o2 += 1) { + var a2 = r2[o2], n2 = a2.getBucket(t2); + n2 && a2.latestFeatureIndex && t2.id === n2.layerIds[0] && this.updateBucketOpacities(n2, i2, a2.collisionBoxArray); + } + }, be.prototype.updateBucketOpacities = function(e2, i2, o2) { + var r2 = this; + e2.hasTextData() && e2.text.opacityVertexArray.clear(), e2.hasIconData() && e2.icon.opacityVertexArray.clear(), e2.hasIconCollisionBoxData() && e2.iconCollisionBox.collisionVertexArray.clear(), e2.hasTextCollisionBoxData() && e2.textCollisionBox.collisionVertexArray.clear(); + var a2 = e2.layers[0].layout, n2 = new _e(null, 0, false, false, true), s2 = a2.get("text-allow-overlap"), l2 = a2.get("icon-allow-overlap"), c3 = a2.get("text-variable-anchor"), u2 = "map" === a2.get("text-rotation-alignment"), h3 = "map" === a2.get("text-pitch-alignment"), p3 = "none" !== a2.get("icon-text-fit"), d2 = new _e(null, 0, s2 && (l2 || !e2.hasIconData() || a2.get("icon-optional")), l2 && (s2 || !e2.hasTextData() || a2.get("text-optional")), true); + !e2.collisionArrays && o2 && (e2.hasIconCollisionBoxData() || e2.hasTextCollisionBoxData()) && e2.deserializeCollisionBoxes(o2); + for (var _24 = function(t2, e3, i3) { + for (var o3 = 0; o3 < e3 / 4; o3++) + t2.opacityVertexArray.emplaceBack(i3); + }, f2 = function(o3) { + var a3 = e2.symbolInstances.get(o3), s3 = a3.numHorizontalGlyphVertices, l3 = a3.numVerticalGlyphVertices, f3 = a3.crossTileID, m3 = r2.opacities[f3]; + i2[f3] ? m3 = n2 : m3 || (r2.opacities[f3] = m3 = d2), i2[f3] = true; + var g3 = a3.numIconVertices > 0, v3 = r2.placedOrientations[a3.crossTileID], y3 = v3 === t.WritingMode.vertical, x2 = v3 === t.WritingMode.horizontal || v3 === t.WritingMode.horizontalOnly; + if (s3 > 0 || l3 > 0) { + var b2 = De(m3.text); + _24(e2.text, s3, y3 ? Ae : b2), _24(e2.text, l3, x2 ? Ae : b2); + var w2 = m3.text.isHidden(); + [a3.rightJustifiedTextSymbolIndex, a3.centerJustifiedTextSymbolIndex, a3.leftJustifiedTextSymbolIndex].forEach(function(t2) { + t2 >= 0 && (e2.text.placedSymbolArray.get(t2).hidden = w2 || y3 ? 1 : 0); + }), a3.verticalPlacedTextSymbolIndex >= 0 && (e2.text.placedSymbolArray.get(a3.verticalPlacedTextSymbolIndex).hidden = w2 || x2 ? 1 : 0); + var T2 = r2.variableOffsets[a3.crossTileID]; + T2 && r2.markUsedJustification(e2, T2.anchor, a3, v3); + var E2 = r2.placedOrientations[a3.crossTileID]; + E2 && (r2.markUsedJustification(e2, "left", a3, E2), r2.markUsedOrientation(e2, E2, a3)); + } + if (g3) { + var I3 = De(m3.icon), P2 = !(p3 && a3.verticalPlacedIconSymbolIndex && y3); + a3.placedIconSymbolIndex >= 0 && (_24(e2.icon, a3.numIconVertices, P2 ? I3 : Ae), e2.icon.placedSymbolArray.get(a3.placedIconSymbolIndex).hidden = m3.icon.isHidden()), a3.verticalPlacedIconSymbolIndex >= 0 && (_24(e2.icon, a3.numVerticalIconVertices, P2 ? Ae : I3), e2.icon.placedSymbolArray.get(a3.verticalPlacedIconSymbolIndex).hidden = m3.icon.isHidden()); + } + if (e2.hasIconCollisionBoxData() || e2.hasTextCollisionBoxData()) { + var S2 = e2.collisionArrays[o3]; + if (S2) { + var C2 = new t.Point(0, 0); + if (S2.textBox || S2.verticalTextBox) { + var z2 = true; + if (c3) { + var D2 = r2.variableOffsets[f3]; + D2 ? (C2 = ye(D2.anchor, D2.width, D2.height, D2.textOffset, D2.textBoxScale), u2 && C2._rotate(h3 ? r2.transform.angle : -r2.transform.angle)) : z2 = false; } - const a4 = Boolean(!v3 && i3.verticalIconBox); - i3.iconBox && Mt(e2.iconCollisionBox.collisionVertexArray, p3.icon.placed, a4, u2 ? o4.x : 0, u2 ? o4.y : 0), i3.verticalIconBox && Mt(e2.iconCollisionBox.collisionVertexArray, p3.icon.placed, !a4, u2 ? o4.x : 0, u2 ? o4.y : 0); + S2.textBox && we(e2.textCollisionBox.collisionVertexArray, m3.text.placed, !z2 || y3, C2.x, C2.y), S2.verticalTextBox && we(e2.textCollisionBox.collisionVertexArray, m3.text.placed, !z2 || x2, C2.x, C2.y); } + var A3 = Boolean(!x2 && S2.verticalIconBox); + S2.iconBox && we(e2.iconCollisionBox.collisionVertexArray, m3.icon.placed, A3, p3 ? C2.x : 0, p3 ? C2.y : 0), S2.verticalIconBox && we(e2.iconCollisionBox.collisionVertexArray, m3.icon.placed, !A3, p3 ? C2.x : 0, p3 ? C2.y : 0); } } - if (e2.sortFeatures(this.transform.angle), this.retainedQueryData[e2.bucketInstanceId] && (this.retainedQueryData[e2.bucketInstanceId].featureSortOrder = e2.featureSortOrder), e2.hasTextData() && e2.text.opacityVertexBuffer && e2.text.opacityVertexBuffer.updateData(e2.text.opacityVertexArray), e2.hasIconData() && e2.icon.opacityVertexBuffer && e2.icon.opacityVertexBuffer.updateData(e2.icon.opacityVertexArray), e2.hasIconCollisionBoxData() && e2.iconCollisionBox.collisionVertexBuffer && e2.iconCollisionBox.collisionVertexBuffer.updateData(e2.iconCollisionBox.collisionVertexArray), e2.hasTextCollisionBoxData() && e2.textCollisionBox.collisionVertexBuffer && e2.textCollisionBox.collisionVertexBuffer.updateData(e2.textCollisionBox.collisionVertexArray), e2.text.opacityVertexArray.length !== e2.text.layoutVertexArray.length / 4) - throw new Error(`bucket.text.opacityVertexArray.length (= ${e2.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${e2.text.layoutVertexArray.length}) / 4`); - if (e2.icon.opacityVertexArray.length !== e2.icon.layoutVertexArray.length / 4) - throw new Error(`bucket.icon.opacityVertexArray.length (= ${e2.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${e2.icon.layoutVertexArray.length}) / 4`); - if (e2.bucketInstanceId in this.collisionCircleArrays) { - const t2 = this.collisionCircleArrays[e2.bucketInstanceId]; - e2.placementInvProjMatrix = t2.invProjMatrix, e2.placementViewportMatrix = t2.viewportMatrix, e2.collisionCircleArray = t2.circles, delete this.collisionCircleArrays[e2.bucketInstanceId]; - } - } - symbolFadeChange(t2) { - return 0 === this.fadeDuration ? 1 : (t2 - this.commitTime) / this.fadeDuration + this.prevZoomAdjustment; - } - zoomAdjustment(t2) { - return Math.max(0, (this.transform.zoom - t2) / 1.5); - } - hasTransitions(t2) { - return this.stale || t2 - this.lastPlacementChangeTime < this.fadeDuration; - } - stillRecent(t2, e2) { - const i2 = this.zoomAtLastRecencyCheck === e2 ? 1 - this.zoomAdjustment(e2) : 1; - return this.zoomAtLastRecencyCheck = e2, this.commitTime + this.fadeDuration * i2 > t2; - } - setStale() { - this.stale = true; - } - } - function Mt(t2, e2, i2, o2, a2) { - t2.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, o2 || 0, a2 || 0), t2.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, o2 || 0, a2 || 0), t2.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, o2 || 0, a2 || 0), t2.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, o2 || 0, a2 || 0); - } - const At = Math.pow(2, 25), Lt = Math.pow(2, 24), Rt = Math.pow(2, 17), kt = Math.pow(2, 16), Bt = Math.pow(2, 9), Ft = Math.pow(2, 8), Ot = Math.pow(2, 1); - function Ut(t2) { + }, m2 = 0; m2 < e2.symbolInstances.length; m2++) + f2(m2); + if (e2.sortFeatures(this.transform.angle), this.retainedQueryData[e2.bucketInstanceId] && (this.retainedQueryData[e2.bucketInstanceId].featureSortOrder = e2.featureSortOrder), e2.hasTextData() && e2.text.opacityVertexBuffer && e2.text.opacityVertexBuffer.updateData(e2.text.opacityVertexArray), e2.hasIconData() && e2.icon.opacityVertexBuffer && e2.icon.opacityVertexBuffer.updateData(e2.icon.opacityVertexArray), e2.hasIconCollisionBoxData() && e2.iconCollisionBox.collisionVertexBuffer && e2.iconCollisionBox.collisionVertexBuffer.updateData(e2.iconCollisionBox.collisionVertexArray), e2.hasTextCollisionBoxData() && e2.textCollisionBox.collisionVertexBuffer && e2.textCollisionBox.collisionVertexBuffer.updateData(e2.textCollisionBox.collisionVertexArray), e2.bucketInstanceId in this.collisionCircleArrays) { + var g2 = this.collisionCircleArrays[e2.bucketInstanceId]; + e2.placementInvProjMatrix = g2.invProjMatrix, e2.placementViewportMatrix = g2.viewportMatrix, e2.collisionCircleArray = g2.circles, delete this.collisionCircleArrays[e2.bucketInstanceId]; + } + }, be.prototype.symbolFadeChange = function(t2) { + return 0 === this.fadeDuration ? 1 : (t2 - this.commitTime) / this.fadeDuration + this.prevZoomAdjustment; + }, be.prototype.zoomAdjustment = function(t2) { + return Math.max(0, (this.transform.zoom - t2) / 1.5); + }, be.prototype.hasTransitions = function(t2) { + return this.stale || t2 - this.lastPlacementChangeTime < this.fadeDuration; + }, be.prototype.stillRecent = function(t2, e2) { + var i2 = this.zoomAtLastRecencyCheck === e2 ? 1 - this.zoomAdjustment(e2) : 1; + return this.zoomAtLastRecencyCheck = e2, this.commitTime + this.fadeDuration * i2 > t2; + }, be.prototype.setStale = function() { + this.stale = true; + }; + var Te = Math.pow(2, 25), Ee = Math.pow(2, 24), Ie = Math.pow(2, 17), Pe = Math.pow(2, 16), Se = Math.pow(2, 9), Ce = Math.pow(2, 8), ze = Math.pow(2, 1); + function De(t2) { if (0 === t2.opacity && !t2.placed) return 0; if (1 === t2.opacity && t2.placed) return 4294967295; - const e2 = t2.placed ? 1 : 0, i2 = Math.floor(127 * t2.opacity); - return i2 * At + e2 * Lt + i2 * Rt + e2 * kt + i2 * Bt + e2 * Ft + i2 * Ot + e2; - } - const Nt = 0; - class Gt { - constructor(t2) { - this._sortAcrossTiles = "viewport-y" !== t2.layout.get("symbol-z-order") && !t2.layout.get("symbol-sort-key").isConstant(), this._currentTileIndex = 0, this._currentPartIndex = 0, this._seenCrossTileIDs = {}, this._bucketParts = []; - } - continuePlacement(t2, e2, i2, o2, a2) { - const r2 = this._bucketParts; - for (; this._currentTileIndex < t2.length; ) - if (e2.getBucketParts(r2, o2, t2[this._currentTileIndex], this._sortAcrossTiles), this._currentTileIndex++, a2()) - return true; - for (this._sortAcrossTiles && (this._sortAcrossTiles = false, r2.sort((t3, e3) => t3.sortKey - e3.sortKey)); this._currentPartIndex < r2.length; ) - if (e2.placeLayerBucketPart(r2[this._currentPartIndex], this._seenCrossTileIDs, i2), this._currentPartIndex++, a2()) - return true; - return false; - } - } - class Zt { - constructor(t2, e2, i2, o2, a2, r2, s2, n2) { - this.placement = new Pt(t2, e2, r2, s2, n2), this._currentPlacementIndex = i2.length - 1, this._forceFullPlacement = o2, this._showCollisionBoxes = a2, this._done = false; - } - isDone() { - return this._done; - } - continuePlacement(e2, i2, o2) { - const a2 = t.exported.now(), r2 = () => { - const e3 = t.exported.now() - a2; - return !this._forceFullPlacement && e3 > 2; - }; - for (; this._currentPlacementIndex >= 0; ) { - const t2 = i2[e2[this._currentPlacementIndex]], a3 = this.placement.collisionIndex.transform.zoom; - if ("symbol" === t2.type && (!t2.minzoom || t2.minzoom <= a3) && (!t2.maxzoom || t2.maxzoom > a3)) { - if (this._inProgressLayer || (this._inProgressLayer = new Gt(t2)), this._inProgressLayer.continuePlacement(o2[t2.source], this.placement, this._showCollisionBoxes, t2, r2)) - return; - delete this._inProgressLayer; - } - this._currentPlacementIndex--; - } - this._done = true; - } - commit(t2) { - return this.placement.commit(t2), this.placement; - } + var e2 = t2.placed ? 1 : 0, i2 = Math.floor(127 * t2.opacity); + return i2 * Te + e2 * Ee + i2 * Ie + e2 * Pe + i2 * Se + e2 * Ce + i2 * ze + e2; } - const Vt = 512 / t.EXTENT / 2; - class qt { - constructor(t2, e2, i2) { - this.tileID = t2, this.indexedSymbolInstances = {}, this.bucketInstanceId = i2; - for (let i3 = 0; i3 < e2.length; i3++) { - const o2 = e2.get(i3), a2 = o2.key; - this.indexedSymbolInstances[a2] || (this.indexedSymbolInstances[a2] = []), this.indexedSymbolInstances[a2].push({ crossTileID: o2.crossTileID, coord: this.getScaledCoordinates(o2, t2) }); + var Ae = 0, Me = function(t2) { + this._sortAcrossTiles = "viewport-y" !== t2.layout.get("symbol-z-order") && void 0 !== t2.layout.get("symbol-sort-key").constantOr(1), this._currentTileIndex = 0, this._currentPartIndex = 0, this._seenCrossTileIDs = {}, this._bucketParts = []; + }; + Me.prototype.continuePlacement = function(t2, e2, i2, o2, r2) { + for (var a2 = this._bucketParts; this._currentTileIndex < t2.length; ) + if (e2.getBucketParts(a2, o2, t2[this._currentTileIndex], this._sortAcrossTiles), this._currentTileIndex++, r2()) + return true; + for (this._sortAcrossTiles && (this._sortAcrossTiles = false, a2.sort(function(t3, e3) { + return t3.sortKey - e3.sortKey; + })); this._currentPartIndex < a2.length; ) + if (e2.placeLayerBucketPart(a2[this._currentPartIndex], this._seenCrossTileIDs, i2), this._currentPartIndex++, r2()) + return true; + return false; + }; + var Le = function(t2, e2, i2, o2, r2, a2, n2) { + this.placement = new be(t2, r2, a2, n2), this._currentPlacementIndex = e2.length - 1, this._forceFullPlacement = i2, this._showCollisionBoxes = o2, this._done = false; + }; + Le.prototype.isDone = function() { + return this._done; + }, Le.prototype.continuePlacement = function(e2, i2, o2) { + for (var r2 = this, a2 = t.browser.now(), n2 = function() { + var e3 = t.browser.now() - a2; + return !r2._forceFullPlacement && e3 > 2; + }; this._currentPlacementIndex >= 0; ) { + var s2 = i2[e2[this._currentPlacementIndex]], l2 = this.placement.collisionIndex.transform.zoom; + if ("symbol" === s2.type && (!s2.minzoom || s2.minzoom <= l2) && (!s2.maxzoom || s2.maxzoom > l2)) { + if (this._inProgressLayer || (this._inProgressLayer = new Me(s2)), this._inProgressLayer.continuePlacement(o2[s2.source], this.placement, this._showCollisionBoxes, s2, n2)) + return; + delete this._inProgressLayer; } + this._currentPlacementIndex--; } - getScaledCoordinates(e2, i2) { - const o2 = Vt / Math.pow(2, i2.canonical.z - this.tileID.canonical.z); - return { x: Math.floor((i2.canonical.x * t.EXTENT + e2.anchorX) * o2), y: Math.floor((i2.canonical.y * t.EXTENT + e2.anchorY) * o2) }; + this._done = true; + }, Le.prototype.commit = function(t2) { + return this.placement.commit(t2), this.placement; + }; + var Re = 512 / t.EXTENT / 2, ke = function(t2, e2, i2) { + this.tileID = t2, this.indexedSymbolInstances = {}, this.bucketInstanceId = i2; + for (var o2 = 0; o2 < e2.length; o2++) { + var r2 = e2.get(o2), a2 = r2.key; + this.indexedSymbolInstances[a2] || (this.indexedSymbolInstances[a2] = []), this.indexedSymbolInstances[a2].push({ crossTileID: r2.crossTileID, coord: this.getScaledCoordinates(r2, t2) }); } - findMatches(t2, e2, i2) { - const o2 = this.tileID.canonical.z < e2.canonical.z ? 1 : Math.pow(2, this.tileID.canonical.z - e2.canonical.z); - for (let a2 = 0; a2 < t2.length; a2++) { - const r2 = t2.get(a2); - if (r2.crossTileID) - continue; - const s2 = this.indexedSymbolInstances[r2.key]; - if (!s2) - continue; - const n2 = this.getScaledCoordinates(r2, e2); - for (const t3 of s2) - if (Math.abs(t3.coord.x - n2.x) <= o2 && Math.abs(t3.coord.y - n2.y) <= o2 && !i2[t3.crossTileID]) { - i2[t3.crossTileID] = true, r2.crossTileID = t3.crossTileID; - break; + }; + ke.prototype.getScaledCoordinates = function(e2, i2) { + var o2 = Re / Math.pow(2, i2.canonical.z - this.tileID.canonical.z); + return { x: Math.floor((i2.canonical.x * t.EXTENT + e2.anchorX) * o2), y: Math.floor((i2.canonical.y * t.EXTENT + e2.anchorY) * o2) }; + }, ke.prototype.findMatches = function(t2, e2, i2) { + for (var o2 = this.tileID.canonical.z < e2.canonical.z ? 1 : Math.pow(2, this.tileID.canonical.z - e2.canonical.z), r2 = 0; r2 < t2.length; r2++) { + var a2 = t2.get(r2); + if (!a2.crossTileID) { + var n2 = this.indexedSymbolInstances[a2.key]; + if (n2) + for (var s2 = this.getScaledCoordinates(a2, e2), l2 = 0, c3 = n2; l2 < c3.length; l2 += 1) { + var u2 = c3[l2]; + if (Math.abs(u2.coord.x - s2.x) <= o2 && Math.abs(u2.coord.y - s2.y) <= o2 && !i2[u2.crossTileID]) { + i2[u2.crossTileID] = true, a2.crossTileID = u2.crossTileID; + break; + } } } } - } - class jt { - constructor() { - this.maxCrossTileID = 0; - } - generate() { - return ++this.maxCrossTileID; - } - } - class $t { - constructor() { - this.indexes = {}, this.usedCrossTileIDs = {}, this.lng = 0; - } - handleWrapJump(t2) { - const e2 = Math.round((t2 - this.lng) / 360); - if (0 !== e2) - for (const t3 in this.indexes) { - const i2 = this.indexes[t3], o2 = {}; - for (const t4 in i2) { - const a2 = i2[t4]; - a2.tileID = a2.tileID.unwrapTo(a2.tileID.wrap + e2), o2[a2.tileID.key] = a2; - } - this.indexes[t3] = o2; - } - this.lng = t2; - } - addBucket(t2, e2, i2) { - if (this.indexes[t2.overscaledZ] && this.indexes[t2.overscaledZ][t2.key]) { - if (this.indexes[t2.overscaledZ][t2.key].bucketInstanceId === e2.bucketInstanceId) - return false; - this.removeBucketCrossTileIDs(t2.overscaledZ, this.indexes[t2.overscaledZ][t2.key]); - } - for (let t3 = 0; t3 < e2.symbolInstances.length; t3++) - e2.symbolInstances.get(t3).crossTileID = 0; - this.usedCrossTileIDs[t2.overscaledZ] || (this.usedCrossTileIDs[t2.overscaledZ] = {}); - const o2 = this.usedCrossTileIDs[t2.overscaledZ]; - for (const i3 in this.indexes) { - const a2 = this.indexes[i3]; - if (Number(i3) > t2.overscaledZ) - for (const i4 in a2) { - const r2 = a2[i4]; - r2.tileID.isChildOf(t2) && r2.findMatches(e2.symbolInstances, t2, o2); - } - else { - const r2 = a2[t2.scaledTo(Number(i3)).key]; - r2 && r2.findMatches(e2.symbolInstances, t2, o2); + }; + var Be = function() { + this.maxCrossTileID = 0; + }; + Be.prototype.generate = function() { + return ++this.maxCrossTileID; + }; + var Oe = function() { + this.indexes = {}, this.usedCrossTileIDs = {}, this.lng = 0; + }; + Oe.prototype.handleWrapJump = function(t2) { + var e2 = Math.round((t2 - this.lng) / 360); + if (0 !== e2) + for (var i2 in this.indexes) { + var o2 = this.indexes[i2], r2 = {}; + for (var a2 in o2) { + var n2 = o2[a2]; + n2.tileID = n2.tileID.unwrapTo(n2.tileID.wrap + e2), r2[n2.tileID.key] = n2; } + this.indexes[i2] = r2; } - for (let t3 = 0; t3 < e2.symbolInstances.length; t3++) { - const a2 = e2.symbolInstances.get(t3); - a2.crossTileID || (a2.crossTileID = i2.generate(), o2[a2.crossTileID] = true); - } - return void 0 === this.indexes[t2.overscaledZ] && (this.indexes[t2.overscaledZ] = {}), this.indexes[t2.overscaledZ][t2.key] = new qt(t2, e2.symbolInstances, e2.bucketInstanceId), true; - } - removeBucketCrossTileIDs(t2, e2) { - for (const i2 in e2.indexedSymbolInstances) - for (const o2 of e2.indexedSymbolInstances[i2]) - delete this.usedCrossTileIDs[t2][o2.crossTileID]; - } - removeStaleBuckets(t2) { - let e2 = false; - for (const i2 in this.indexes) { - const o2 = this.indexes[i2]; - for (const a2 in o2) - t2[o2[a2].bucketInstanceId] || (this.removeBucketCrossTileIDs(i2, o2[a2]), delete o2[a2], e2 = true); - } - return e2; - } - } - class Xt { - constructor() { - this.layerIndexes = {}, this.crossTileIDs = new jt(), this.maxBucketInstanceId = 0, this.bucketsInCurrentPlacement = {}; - } - addLayer(t2, e2, i2) { - let o2 = this.layerIndexes[t2.id]; - void 0 === o2 && (o2 = this.layerIndexes[t2.id] = new $t()); - let a2 = false; - const r2 = {}; - o2.handleWrapJump(i2); - for (const i3 of e2) { - const e3 = i3.getBucket(t2); - e3 && t2.id === e3.layerIds[0] && (e3.bucketInstanceId || (e3.bucketInstanceId = ++this.maxBucketInstanceId), o2.addBucket(i3.tileID, e3, this.crossTileIDs) && (a2 = true), r2[e3.bucketInstanceId] = true); - } - return o2.removeStaleBuckets(r2) && (a2 = true), a2; - } - pruneUnusedLayers(t2) { - const e2 = {}; - t2.forEach((t3) => { - e2[t3] = true; - }); - for (const t3 in this.layerIndexes) - e2[t3] || delete this.layerIndexes[t3]; - } - } - var Wt = t.createLayout([{ name: "a_pos", type: "Int16", components: 2 }]); - class Ht extends t.Evented { - constructor(t2) { - super(), this.sourceCache = t2, this._tiles = {}, this._renderableTilesKeys = [], this._sourceTileCache = {}, this.renderHistory = [], this.minzoom = 0, this.maxzoom = 22, this.tileSize = 512, this.deltaZoom = 1, this.renderHistorySize = t2._cache.max, t2.usedForTerrain = true, t2.tileSize = this.tileSize * 2 ** this.deltaZoom; - } - destruct() { - this.sourceCache.usedForTerrain = false, this.sourceCache.tileSize = null; - for (const t2 in this._tiles) { - const e2 = this._tiles[t2]; - e2.textures.forEach((t3) => t3.destroy()), e2.textures = []; - } - } - update(e2, i2) { - this.sourceCache.update(e2, i2), this._renderableTilesKeys = []; - for (const o2 of e2.coveringTiles({ tileSize: this.tileSize, minzoom: this.minzoom, maxzoom: this.maxzoom, reparseOverscaled: false, terrain: i2 })) - this._renderableTilesKeys.push(o2.key), this._tiles[o2.key] || (o2.posMatrix = new Float64Array(16), t.ortho(o2.posMatrix, 0, t.EXTENT, 0, t.EXTENT, 0, 1), this._tiles[o2.key] = new k(o2, this.tileSize)); - } - removeOutdated(t2) { - const e2 = {}; - this.renderHistory = this.renderHistory.filter((t3, e3) => this.renderHistory.indexOf(t3) === e3).slice(0, this.renderHistorySize); - for (const t3 of this._renderableTilesKeys) - e2[t3] = true; - for (const t3 of this.renderHistory) - e2[t3] = true; - for (const i2 in this._tiles) - e2[i2] || (this._tiles[i2].clearTextures(t2), delete this._tiles[i2]); - } - getRenderableTiles() { - return this._renderableTilesKeys.map((t2) => this.getTileByID(t2)); - } - getTileByID(t2) { - return this._tiles[t2]; - } - getTerrainCoords(e2) { - const i2 = {}; - for (const o2 of this._renderableTilesKeys) { - const a2 = this._tiles[o2].tileID; - if (a2.canonical.equals(e2.canonical)) { - const a3 = e2.clone(); - a3.posMatrix = new Float64Array(16), t.ortho(a3.posMatrix, 0, t.EXTENT, 0, t.EXTENT, 0, 1), i2[o2] = a3; - } else if (a2.canonical.isChildOf(e2.canonical)) { - const r2 = e2.clone(); - r2.posMatrix = new Float64Array(16); - const s2 = a2.canonical.z - e2.canonical.z, n2 = a2.canonical.x - (a2.canonical.x >> s2 << s2), l2 = a2.canonical.y - (a2.canonical.y >> s2 << s2), c3 = t.EXTENT >> s2; - t.ortho(r2.posMatrix, 0, c3, 0, c3, 0, 1), t.translate(r2.posMatrix, r2.posMatrix, [-n2 * c3, -l2 * c3, 0]), i2[o2] = r2; - } else if (e2.canonical.isChildOf(a2.canonical)) { - const r2 = e2.clone(); - r2.posMatrix = new Float64Array(16); - const s2 = e2.canonical.z - a2.canonical.z, n2 = e2.canonical.x - (e2.canonical.x >> s2 << s2), l2 = e2.canonical.y - (e2.canonical.y >> s2 << s2), c3 = t.EXTENT >> s2; - t.ortho(r2.posMatrix, 0, t.EXTENT, 0, t.EXTENT, 0, 1), t.translate(r2.posMatrix, r2.posMatrix, [n2 * c3, l2 * c3, 0]), t.scale(r2.posMatrix, r2.posMatrix, [1 / 2 ** s2, 1 / 2 ** s2, 0]), i2[o2] = r2; + this.lng = t2; + }, Oe.prototype.addBucket = function(t2, e2, i2) { + if (this.indexes[t2.overscaledZ] && this.indexes[t2.overscaledZ][t2.key]) { + if (this.indexes[t2.overscaledZ][t2.key].bucketInstanceId === e2.bucketInstanceId) + return false; + this.removeBucketCrossTileIDs(t2.overscaledZ, this.indexes[t2.overscaledZ][t2.key]); + } + for (var o2 = 0; o2 < e2.symbolInstances.length; o2++) + e2.symbolInstances.get(o2).crossTileID = 0; + this.usedCrossTileIDs[t2.overscaledZ] || (this.usedCrossTileIDs[t2.overscaledZ] = {}); + var r2 = this.usedCrossTileIDs[t2.overscaledZ]; + for (var a2 in this.indexes) { + var n2 = this.indexes[a2]; + if (Number(a2) > t2.overscaledZ) + for (var s2 in n2) { + var l2 = n2[s2]; + l2.tileID.isChildOf(t2) && l2.findMatches(e2.symbolInstances, t2, r2); } - } - return i2; - } - getSourceTile(t2, e2) { - const i2 = this.sourceCache._source; - let o2 = t2.overscaledZ - this.deltaZoom; - if (o2 > i2.maxzoom && (o2 = i2.maxzoom), o2 < i2.minzoom) - return null; - this._sourceTileCache[t2.key] || (this._sourceTileCache[t2.key] = t2.scaledTo(o2).key); - let a2 = this.sourceCache.getTileByID(this._sourceTileCache[t2.key]); - if ((!a2 || !a2.dem) && e2) - for (; o2 >= i2.minzoom && (!a2 || !a2.dem); ) - a2 = this.sourceCache.getTileByID(t2.scaledTo(o2--).key); - return a2; - } - tilesAfterTime(t2 = Date.now()) { - return Object.values(this._tiles).filter((e2) => e2.timeLoaded >= t2); - } - } - class Kt { - constructor(t2, e2, i2) { - this.style = t2, this.sourceCache = new Ht(e2), this.options = i2, this.exaggeration = "number" == typeof i2.exaggeration ? i2.exaggeration : 1, this.elevationOffset = "number" == typeof i2.elevationOffset ? i2.elevationOffset : 450, this.qualityFactor = 2, this.meshSize = 128, this._demMatrixCache = {}, this.coordsIndex = [], this._coordsTextureSize = 1024, this.clearRerenderCache(); - } - getDEMElevation(e2, i2, o2, a2 = t.EXTENT) { - if (!(i2 >= 0 && i2 < a2 && o2 >= 0 && o2 < a2)) - return this.elevationOffset; - let r2 = 0; - const s2 = this.getTerrainData(e2); - if (s2.tile && s2.tile.dem) { - const e3 = t.transformMat4$1([], [i2 / a2 * t.EXTENT, o2 / a2 * t.EXTENT], s2.u_terrain_matrix), n2 = [e3[0] * s2.tile.dem.dim, e3[1] * s2.tile.dem.dim], l2 = [Math.floor(n2[0]), Math.floor(n2[1])], c3 = s2.tile.dem.get(l2[0], l2[1]), h3 = s2.tile.dem.get(l2[0], l2[1] + 1), u2 = s2.tile.dem.get(l2[0] + 1, l2[1]), d2 = s2.tile.dem.get(l2[0] + 1, l2[1] + 1); - r2 = t.number(t.number(c3, h3, n2[0] - l2[0]), t.number(u2, d2, n2[0] - l2[0]), n2[1] - l2[1]); - } - return r2; + else { + var c3 = n2[t2.scaledTo(Number(a2)).key]; + c3 && c3.findMatches(e2.symbolInstances, t2, r2); + } + } + for (var u2 = 0; u2 < e2.symbolInstances.length; u2++) { + var h3 = e2.symbolInstances.get(u2); + h3.crossTileID || (h3.crossTileID = i2.generate(), r2[h3.crossTileID] = true); + } + return void 0 === this.indexes[t2.overscaledZ] && (this.indexes[t2.overscaledZ] = {}), this.indexes[t2.overscaledZ][t2.key] = new ke(t2, e2.symbolInstances, e2.bucketInstanceId), true; + }, Oe.prototype.removeBucketCrossTileIDs = function(t2, e2) { + for (var i2 in e2.indexedSymbolInstances) + for (var o2 = 0, r2 = e2.indexedSymbolInstances[i2]; o2 < r2.length; o2 += 1) + delete this.usedCrossTileIDs[t2][r2[o2].crossTileID]; + }, Oe.prototype.removeStaleBuckets = function(t2) { + var e2 = false; + for (var i2 in this.indexes) { + var o2 = this.indexes[i2]; + for (var r2 in o2) + t2[o2[r2].bucketInstanceId] || (this.removeBucketCrossTileIDs(i2, o2[r2]), delete o2[r2], e2 = true); } - rememberForRerender(t2, e2) { - for (const i2 in this.sourceCache._tiles) { - const o2 = this.sourceCache._tiles[i2]; - (o2.tileID.equals(e2) || o2.tileID.isChildOf(e2)) && (t2 === this.sourceCache.sourceCache.id && (o2.timeLoaded = Date.now()), this._rerender[t2] = this._rerender[t2] || {}, this._rerender[t2][o2.tileID.key] = true); - } - } - needsRerender(t2, e2) { - return this._rerender[t2] && this._rerender[t2][e2.key]; - } - clearRerenderCache() { - this._rerender = {}; - } - getElevation(e2, i2, o2, a2 = t.EXTENT) { - return (this.getDEMElevation(e2, i2, o2, a2) + this.elevationOffset) * this.exaggeration; - } - getTerrainData(e2) { - if (!this._emptyDemTexture) { - const e3 = this.style.map.painter.context, i3 = new t.RGBAImage({ width: 1, height: 1 }, new Uint8Array(4)); - this._emptyDepthTexture = new l(e3, i3, e3.gl.RGBA, { premultiply: false }), this._emptyDemUnpack = [0, 0, 0, 0], this._emptyDemTexture = new l(e3, new t.RGBAImage({ width: 1, height: 1 }), e3.gl.RGBA, { premultiply: false }), this._emptyDemTexture.bind(e3.gl.NEAREST, e3.gl.CLAMP_TO_EDGE), this._emptyDemMatrix = t.identity([]); - } - const i2 = this.sourceCache.getSourceTile(e2, true); - if (i2 && i2.dem && (!i2.demTexture || i2.needsTerrainPrepare)) { - const t2 = this.style.map.painter.context; - i2.demTexture = this.style.map.painter.getTileTexture(i2.dem.stride), i2.demTexture ? i2.demTexture.update(i2.dem.getPixels(), { premultiply: false }) : i2.demTexture = new l(t2, i2.dem.getPixels(), t2.gl.RGBA, { premultiply: false }), i2.demTexture.bind(t2.gl.NEAREST, t2.gl.CLAMP_TO_EDGE), i2.needsTerrainPrepare = false; - } - const o2 = i2 && i2 + i2.tileID.key + e2.key; - if (o2 && !this._demMatrixCache[o2]) { - const o3 = this.sourceCache.sourceCache._source.maxzoom; - let a2 = e2.canonical.z - i2.tileID.canonical.z; - e2.overscaledZ > e2.canonical.z && (e2.canonical.z >= o3 ? a2 = e2.canonical.z - o3 : t.warnOnce("cannot calculate elevation if elevation maxzoom > source.maxzoom")); - const r2 = e2.canonical.x - (e2.canonical.x >> a2 << a2), s2 = e2.canonical.y - (e2.canonical.y >> a2 << a2), n2 = t.fromScaling(new Float64Array(16), [1 / (t.EXTENT << a2), 1 / (t.EXTENT << a2), 0]); - t.translate(n2, n2, [r2 * t.EXTENT, s2 * t.EXTENT, 0]), this._demMatrixCache[e2.key] = { matrix: n2, coord: e2 }; - } - return { u_depth: 2, u_terrain: 3, u_terrain_dim: i2 && i2.dem && i2.dem.dim || 1, u_terrain_matrix: o2 ? this._demMatrixCache[e2.key].matrix : this._emptyDemMatrix, u_terrain_unpack: i2 && i2.dem && i2.dem.getUnpackVector() || this._emptyDemUnpack, u_terrain_offset: this.elevationOffset, u_terrain_exaggeration: this.exaggeration, texture: (i2 && i2.demTexture || this._emptyDemTexture).texture, depthTexture: (this._fboDepthTexture || this._emptyDepthTexture).texture, tile: i2 }; - } - getRTTFramebuffer() { - const t2 = this.style.map.painter; - if (!this._rttFramebuffer) { - const e2 = this.sourceCache.tileSize * this.qualityFactor; - this._rttFramebuffer = t2.context.createFramebuffer(e2, e2, true), this._rttFramebuffer.depthAttachment.set(t2.context.createRenderbuffer(t2.context.gl.DEPTH_COMPONENT16, e2, e2)); - } - return this._rttFramebuffer; - } - getFramebuffer(t2) { - const e2 = this.style.map.painter, i2 = e2.width / devicePixelRatio, o2 = e2.height / devicePixelRatio; - return !this._fbo || this._fbo.width === i2 && this._fbo.height === o2 || (this._fbo.destroy(), this._fboCoordsTexture.destroy(), this._fboDepthTexture.destroy(), delete this._fbo, delete this._fboDepthTexture, delete this._fboCoordsTexture), this._fboCoordsTexture || (this._fboCoordsTexture = new l(e2.context, { width: i2, height: o2, data: null }, e2.context.gl.RGBA, { premultiply: false }), this._fboCoordsTexture.bind(e2.context.gl.NEAREST, e2.context.gl.CLAMP_TO_EDGE)), this._fboDepthTexture || (this._fboDepthTexture = new l(e2.context, { width: i2, height: o2, data: null }, e2.context.gl.RGBA, { premultiply: false }), this._fboDepthTexture.bind(e2.context.gl.NEAREST, e2.context.gl.CLAMP_TO_EDGE)), this._fbo || (this._fbo = e2.context.createFramebuffer(i2, o2, true), this._fbo.depthAttachment.set(e2.context.createRenderbuffer(e2.context.gl.DEPTH_COMPONENT16, i2, o2))), this._fbo.colorAttachment.set("coords" === t2 ? this._fboCoordsTexture.texture : this._fboDepthTexture.texture), this._fbo; - } - getCoordsTexture() { - const e2 = this.style.map.painter.context; - if (this._coordsTexture) - return this._coordsTexture; - const i2 = new Uint8Array(this._coordsTextureSize * this._coordsTextureSize * 4); - for (let t2 = 0, e3 = 0; t2 < this._coordsTextureSize; t2++) - for (let o3 = 0; o3 < this._coordsTextureSize; o3++, e3 += 4) - i2[e3 + 0] = 255 & o3, i2[e3 + 1] = 255 & t2, i2[e3 + 2] = o3 >> 8 << 4 | t2 >> 8, i2[e3 + 3] = 0; - const o2 = new t.RGBAImage({ width: this._coordsTextureSize, height: this._coordsTextureSize }, new Uint8Array(i2.buffer)), a2 = new l(e2, o2, e2.gl.RGBA, { premultiply: false }); - return a2.bind(e2.gl.NEAREST, e2.gl.CLAMP_TO_EDGE), this._coordsTexture = a2, a2; - } - pointCoordinate(e2) { - const i2 = new Uint8Array(4), o2 = this.style.map.painter, a2 = o2.context, r2 = a2.gl; - a2.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer), r2.readPixels(e2.x, o2.height / devicePixelRatio - e2.y - 1, 1, 1, r2.RGBA, r2.UNSIGNED_BYTE, i2), a2.bindFramebuffer.set(null); - const s2 = i2[0] + (i2[2] >> 4 << 8), n2 = i2[1] + ((15 & i2[2]) << 8), l2 = this.coordsIndex[255 - i2[3]], c3 = l2 && this.sourceCache.getTileByID(l2); - if (!c3) - return null; - const h3 = this._coordsTextureSize, u2 = (1 << c3.tileID.canonical.z) * h3; - return new t.MercatorCoordinate((c3.tileID.canonical.x * h3 + s2) / u2, (c3.tileID.canonical.y * h3 + n2) / u2, this.getElevation(c3.tileID, s2, n2, h3)); - } - getTerrainMesh() { - if (this._mesh) - return this._mesh; - const e2 = this.style.map.painter.context, i2 = new t.PosArray(), o2 = new t.TriangleIndexArray(), a2 = this.meshSize, r2 = t.EXTENT / a2, s2 = a2 * a2; - for (let t2 = 0; t2 <= a2; t2++) - for (let e3 = 0; e3 <= a2; e3++) - i2.emplaceBack(e3 * r2, t2 * r2); - for (let t2 = 0; t2 < s2; t2 += a2 + 1) - for (let e3 = 0; e3 < a2; e3++) - o2.emplaceBack(e3 + t2, a2 + e3 + t2 + 1, a2 + e3 + t2 + 2), o2.emplaceBack(e3 + t2, a2 + e3 + t2 + 2, e3 + t2 + 1); - return this._mesh = { indexBuffer: e2.createIndexBuffer(o2), vertexBuffer: e2.createVertexBuffer(i2, Wt.members), segments: t.SegmentVector.simpleSegment(0, 0, i2.length, o2.length) }, this._mesh; - } - getMinMaxElevation(t2) { - const e2 = this.getTerrainData(t2).tile, i2 = { minElevation: null, maxElevation: null }; - return e2 && e2.dem && (i2.minElevation = (e2.dem.min + this.elevationOffset) * this.exaggeration, i2.maxElevation = (e2.dem.max + this.elevationOffset) * this.exaggeration), i2; - } - } - const Yt = (e2, i2) => t.emitValidationErrors(e2, i2 && i2.filter((t2) => "source.canvas" !== t2.identifier)), Jt = t.pick(W, ["addLayer", "removeLayer", "setPaintProperty", "setLayoutProperty", "setFilter", "addSource", "removeSource", "setLayerZoomRange", "setLight", "setTransition", "setGeoJSONSourceData"]), Qt = t.pick(W, ["setCenter", "setZoom", "setBearing", "setPitch"]), te = function() { - const e2 = {}, i2 = t.spec.$version; - for (const o2 in t.spec.$root) { - const a2 = t.spec.$root[o2]; - if (a2.required) { - let t2 = null; - t2 = "version" === o2 ? i2 : "array" === a2.type ? [] : {}, null != t2 && (e2[o2] = t2); - } + return e2; + }; + var Fe = function() { + this.layerIndexes = {}, this.crossTileIDs = new Be(), this.maxBucketInstanceId = 0, this.bucketsInCurrentPlacement = {}; + }; + Fe.prototype.addLayer = function(t2, e2, i2) { + var o2 = this.layerIndexes[t2.id]; + void 0 === o2 && (o2 = this.layerIndexes[t2.id] = new Oe()); + var r2 = false, a2 = {}; + o2.handleWrapJump(i2); + for (var n2 = 0, s2 = e2; n2 < s2.length; n2 += 1) { + var l2 = s2[n2], c3 = l2.getBucket(t2); + c3 && t2.id === c3.layerIds[0] && (c3.bucketInstanceId || (c3.bucketInstanceId = ++this.maxBucketInstanceId), o2.addBucket(l2.tileID, c3, this.crossTileIDs) && (r2 = true), a2[c3.bucketInstanceId] = true); + } + return o2.removeStaleBuckets(a2) && (r2 = true), r2; + }, Fe.prototype.pruneUnusedLayers = function(t2) { + var e2 = {}; + for (var i2 in t2.forEach(function(t3) { + e2[t3] = true; + }), this.layerIndexes) + e2[i2] || delete this.layerIndexes[i2]; + }; + var Ue = function(e2, i2) { + return t.emitValidationErrors(e2, i2 && i2.filter(function(t2) { + return "source.canvas" !== t2.identifier; + })); + }, Ne = t.pick(Zt, ["addLayer", "removeLayer", "setPaintProperty", "setLayoutProperty", "setFilter", "addSource", "removeSource", "setLayerZoomRange", "setLight", "setTransition", "setGeoJSONSourceData"]), Ze = t.pick(Zt, ["setCenter", "setZoom", "setBearing", "setPitch"]), qe = function() { + var e2 = {}, i2 = t.styleSpec.$version; + for (var o2 in t.styleSpec.$root) { + var r2, a2 = t.styleSpec.$root[o2]; + if (a2.required) + null != (r2 = "version" === o2 ? i2 : "array" === a2.type ? [] : {}) && (e2[o2] = r2); } return e2; - }(); - class ee extends t.Evented { - constructor(e2, i2 = {}) { - super(), this.map = e2, this.dispatcher = new v2(j(), this), this.imageManager = new h2(), this.imageManager.setEventedParent(this), this.glyphManager = new _23(e2._requestManager, i2.localIdeographFontFamily), this.lineAtlas = new x(256, 512), this.crossTileSymbolIndex = new Xt(), this._layers = {}, this._serializedLayers = {}, this._order = [], this.sourceCaches = {}, this.zoomHistory = new t.ZoomHistory(), this._loaded = false, this._availableImages = [], this._resetUpdates(), this.dispatcher.broadcast("setReferrer", t.getReferrer()); - const o2 = this; - this._rtlTextPluginCallback = ee.registerForPluginStateChange((e3) => { - o2.dispatcher.broadcast("syncRTLPluginState", { pluginStatus: e3.pluginStatus, pluginURL: e3.pluginURL }, (e4, i3) => { - if (t.triggerPluginCompletionEvent(e4), i3 && i3.every((t2) => t2)) - for (const t2 in o2.sourceCaches) - o2.sourceCaches[t2].reload(); + }(), je = function(e2) { + function i2(o2, r2) { + var a2 = this; + void 0 === r2 && (r2 = {}), e2.call(this), this.map = o2, this.dispatcher = new E(Ft(), this), this.imageManager = new p2(), this.imageManager.setEventedParent(this), this.glyphManager = new y2(o2._requestManager, r2.localIdeographFontFamily), this.lineAtlas = new T(256, 512), this.crossTileSymbolIndex = new Fe(), this._layers = {}, this._serializedLayers = {}, this._order = [], this.sourceCaches = {}, this.zoomHistory = new t.ZoomHistory(), this._loaded = false, this._availableImages = [], this._resetUpdates(), this.dispatcher.broadcast("setReferrer", t.getReferrer()); + var n2 = this; + this._rtlTextPluginCallback = i2.registerForPluginStateChange(function(e3) { + n2.dispatcher.broadcast("syncRTLPluginState", { pluginStatus: e3.pluginStatus, pluginURL: e3.pluginURL }, function(e4, i3) { + if (t.triggerPluginCompletionEvent(e4), i3 && i3.every(function(t2) { + return t2; + })) + for (var o3 in n2.sourceCaches) + n2.sourceCaches[o3].reload(); }); - }), this.on("data", (t2) => { - if ("source" !== t2.dataType || "metadata" !== t2.sourceDataType) - return; - const e3 = this.sourceCaches[t2.sourceId]; - if (!e3) - return; - const i3 = e3.getSource(); - if (i3 && i3.vectorLayerIds) - for (const t3 in this._layers) { - const e4 = this._layers[t3]; - e4.source === i3.id && this._validateLayer(e4); + }), this.on("data", function(t2) { + if ("source" === t2.dataType && "metadata" === t2.sourceDataType) { + var e3 = a2.sourceCaches[t2.sourceId]; + if (e3) { + var i3 = e3.getSource(); + if (i3 && i3.vectorLayerIds) + for (var o3 in a2._layers) { + var r3 = a2._layers[o3]; + r3.source === i3.id && a2._validateLayer(r3); + } } + } }); } - loadURL(e2, i2 = {}) { - this.fire(new t.Event("dataloading", { dataType: "style" })); - const o2 = "boolean" != typeof i2.validate || i2.validate, a2 = this.map._requestManager.transformRequest(e2, t.ResourceType.Style); - this._request = t.getJSON(a2, (e3, i3) => { - this._request = null, e3 ? this.fire(new t.ErrorEvent(e3)) : i3 && this._load(i3, o2); + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.loadURL = function(e3, i3) { + var o2 = this; + void 0 === i3 && (i3 = {}), this.fire(new t.Event("dataloading", { dataType: "style" })); + var r2 = "boolean" == typeof i3.validate ? i3.validate : !t.isMapboxURL(e3); + e3 = this.map._requestManager.normalizeStyleURL(e3, i3.accessToken); + var a2 = this.map._requestManager.transformRequest(e3, t.ResourceType.Style); + this._request = t.getJSON(a2, function(e4, i4) { + o2._request = null, e4 ? o2.fire(new t.ErrorEvent(e4)) : i4 && o2._load(i4, r2); }); - } - loadJSON(e2, i2 = {}) { - this.fire(new t.Event("dataloading", { dataType: "style" })), this._request = t.exported.frame(() => { - this._request = null, this._load(e2, false !== i2.validate); + }, i2.prototype.loadJSON = function(e3, i3) { + var o2 = this; + void 0 === i3 && (i3 = {}), this.fire(new t.Event("dataloading", { dataType: "style" })), this._request = t.browser.frame(function() { + o2._request = null, o2._load(e3, false !== i3.validate); }); - } - loadEmpty() { - this.fire(new t.Event("dataloading", { dataType: "style" })), this._load(te, false); - } - _load(e2, i2) { - if (i2 && Yt(this, t.validateStyle(e2))) - return; - this._loaded = true, this.stylesheet = e2; - for (const t2 in e2.sources) - this.addSource(t2, e2.sources[t2], { validate: false }); - e2.sprite ? this._loadSprite(e2.sprite) : this.imageManager.setLoaded(true), this.glyphManager.setURL(e2.glyphs); - const o2 = X(this.stylesheet.layers); - this._order = o2.map((t2) => t2.id), this._layers = {}, this._serializedLayers = {}; - for (let e3 of o2) - e3 = t.createStyleLayer(e3), e3.setEventedParent(this, { layer: { id: e3.id } }), this._layers[e3.id] = e3, this._serializedLayers[e3.id] = e3.serialize(); - this.dispatcher.broadcast("setLayers", this._serializeLayers(this._order)), this.light = new g(this.stylesheet.light), this.setTerrain(this.stylesheet.terrain), this.fire(new t.Event("data", { dataType: "style" })), this.fire(new t.Event("style.load")); - } - _loadSprite(e2) { - this._spriteRequest = function(e3, i2, o2, a2) { - let r2, s2, n2; - const l2 = o2 > 1 ? "@2x" : ""; - let c3 = t.getJSON(i2.transformRequest(i2.normalizeSpriteURL(e3, l2, ".json"), t.ResourceType.SpriteJSON), (t2, e4) => { - c3 = null, n2 || (n2 = t2, r2 = e4, u2()); - }), h3 = t.getImage(i2.transformRequest(i2.normalizeSpriteURL(e3, l2, ".png"), t.ResourceType.SpriteImage), (t2, e4) => { - h3 = null, n2 || (n2 = t2, s2 = e4, u2()); + }, i2.prototype.loadEmpty = function() { + this.fire(new t.Event("dataloading", { dataType: "style" })), this._load(qe, false); + }, i2.prototype._load = function(e3, i3) { + if (!i3 || !Ue(this, t.validateStyle(e3))) { + for (var o2 in this._loaded = true, this.stylesheet = e3, e3.sources) + this.addSource(o2, e3.sources[o2], { validate: false }); + e3.sprite ? this._loadSprite(e3.sprite) : this.imageManager.setLoaded(true), this.glyphManager.setURL(e3.glyphs); + var r2 = Nt(this.stylesheet.layers); + this._order = r2.map(function(t2) { + return t2.id; + }), this._layers = {}, this._serializedLayers = {}; + for (var a2 = 0, n2 = r2; a2 < n2.length; a2 += 1) { + var s2 = n2[a2]; + (s2 = t.createStyleLayer(s2)).setEventedParent(this, { layer: { id: s2.id } }), this._layers[s2.id] = s2, this._serializedLayers[s2.id] = s2.serialize(); + } + this.dispatcher.broadcast("setLayers", this._serializeLayers(this._order)), this.light = new w(this.stylesheet.light), this.fire(new t.Event("data", { dataType: "style" })), this.fire(new t.Event("style.load")); + } + }, i2.prototype._loadSprite = function(e3) { + var i3 = this; + this._spriteRequest = function(e4, i4, o2) { + var r2, a2, n2, s2 = t.browser.devicePixelRatio > 1 ? "@2x" : "", l2 = t.getJSON(i4.transformRequest(i4.normalizeSpriteURL(e4, s2, ".json"), t.ResourceType.SpriteJSON), function(t2, e5) { + l2 = null, n2 || (n2 = t2, r2 = e5, u2()); + }), c3 = t.getImage(i4.transformRequest(i4.normalizeSpriteURL(e4, s2, ".png"), t.ResourceType.SpriteImage), function(t2, e5) { + c3 = null, n2 || (n2 = t2, a2 = e5, u2()); }); function u2() { if (n2) - a2(n2); - else if (r2 && s2) { - const e4 = t.exported.getImageData(s2), i3 = {}; - for (const o3 in r2) { - const { width: a3, height: s3, x: n3, y: l3, sdf: c4, pixelRatio: h4, stretchX: u3, stretchY: d2, content: m2 } = r2[o3], _24 = new t.RGBAImage({ width: a3, height: s3 }); - t.RGBAImage.copy(e4, _24, { x: n3, y: l3 }, { x: 0, y: 0 }, { width: a3, height: s3 }), i3[o3] = { data: _24, pixelRatio: h4, sdf: c4, stretchX: u3, stretchY: d2, content: m2 }; + o2(n2); + else if (r2 && a2) { + var e5 = t.browser.getImageData(a2), i5 = {}; + for (var s3 in r2) { + var l3 = r2[s3], c4 = l3.width, u3 = l3.height, h3 = l3.x, p3 = l3.y, d2 = l3.sdf, _24 = l3.pixelRatio, f2 = l3.stretchX, m2 = l3.stretchY, g2 = l3.content, v3 = new t.RGBAImage({ width: c4, height: u3 }); + t.RGBAImage.copy(e5, v3, { x: h3, y: p3 }, { x: 0, y: 0 }, { width: c4, height: u3 }), i5[s3] = { data: v3, pixelRatio: _24, sdf: d2, stretchX: f2, stretchY: m2, content: g2 }; } - a2(null, i3); + o2(null, i5); } } - return { cancel() { - c3 && (c3.cancel(), c3 = null), h3 && (h3.cancel(), h3 = null); + return { cancel: function() { + l2 && (l2.cancel(), l2 = null), c3 && (c3.cancel(), c3 = null); } }; - }(e2, this.map._requestManager, this.map.getPixelRatio(), (e3, i2) => { - if (this._spriteRequest = null, e3) - this.fire(new t.ErrorEvent(e3)); - else if (i2) - for (const t2 in i2) - this.imageManager.addImage(t2, i2[t2]); - this.imageManager.setLoaded(true), this._availableImages = this.imageManager.listImages(), this.dispatcher.broadcast("setImages", this._availableImages), this.fire(new t.Event("data", { dataType: "style" })); + }(e3, this.map._requestManager, function(e4, o2) { + if (i3._spriteRequest = null, e4) + i3.fire(new t.ErrorEvent(e4)); + else if (o2) + for (var r2 in o2) + i3.imageManager.addImage(r2, o2[r2]); + i3.imageManager.setLoaded(true), i3._availableImages = i3.imageManager.listImages(), i3.dispatcher.broadcast("setImages", i3._availableImages), i3.fire(new t.Event("data", { dataType: "style" })); }); - } - _validateLayer(e2) { - const i2 = this.sourceCaches[e2.source]; - if (!i2) - return; - const o2 = e2.sourceLayer; - if (!o2) - return; - const a2 = i2.getSource(); - ("geojson" === a2.type || a2.vectorLayerIds && -1 === a2.vectorLayerIds.indexOf(o2)) && this.fire(new t.ErrorEvent(new Error(`Source layer "${o2}" does not exist on source "${a2.id}" as specified by style layer "${e2.id}".`))); - } - loaded() { + }, i2.prototype._validateLayer = function(e3) { + var i3 = this.sourceCaches[e3.source]; + if (i3) { + var o2 = e3.sourceLayer; + if (o2) { + var r2 = i3.getSource(); + ("geojson" === r2.type || r2.vectorLayerIds && -1 === r2.vectorLayerIds.indexOf(o2)) && this.fire(new t.ErrorEvent(new Error('Source layer "' + o2 + '" does not exist on source "' + r2.id + '" as specified by style layer "' + e3.id + '"'))); + } + } + }, i2.prototype.loaded = function() { if (!this._loaded) return false; if (Object.keys(this._updatedSources).length) return false; - for (const t2 in this.sourceCaches) + for (var t2 in this.sourceCaches) if (!this.sourceCaches[t2].loaded()) return false; return !!this.imageManager.isLoaded(); - } - _serializeLayers(t2) { - const e2 = []; - for (const i2 of t2) { - const t3 = this._layers[i2]; - "custom" !== t3.type && e2.push(t3.serialize()); + }, i2.prototype._serializeLayers = function(t2) { + for (var e3 = [], i3 = 0, o2 = t2; i3 < o2.length; i3 += 1) { + var r2 = this._layers[o2[i3]]; + "custom" !== r2.type && e3.push(r2.serialize()); } - return e2; - } - hasTransitions() { + return e3; + }, i2.prototype.hasTransitions = function() { if (this.light && this.light.hasTransition()) return true; - for (const t2 in this.sourceCaches) + for (var t2 in this.sourceCaches) if (this.sourceCaches[t2].hasTransition()) return true; - for (const t2 in this._layers) - if (this._layers[t2].hasTransition()) + for (var e3 in this._layers) + if (this._layers[e3].hasTransition()) return true; return false; - } - _checkLoaded() { - if (!this._loaded) - throw new Error("Style is not done loading."); - } - update(e2) { + }, i2.prototype._checkLoaded = function() { if (!this._loaded) - return; - const i2 = this._changed; - if (this._changed) { - const t2 = Object.keys(this._updatedLayers), i3 = Object.keys(this._removedLayers); - (t2.length || i3.length) && this._updateWorkerLayers(t2, i3); - for (const t3 in this._updatedSources) { - const e3 = this._updatedSources[t3]; - if ("reload" === e3) - this._reloadSource(t3); - else { - if ("clear" !== e3) - throw new Error(`Invalid action ${e3}`); - this._clearSource(t3); + throw new Error("Style is not done loading"); + }, i2.prototype.update = function(e3) { + if (this._loaded) { + var i3 = this._changed; + if (this._changed) { + var o2 = Object.keys(this._updatedLayers), r2 = Object.keys(this._removedLayers); + for (var a2 in (o2.length || r2.length) && this._updateWorkerLayers(o2, r2), this._updatedSources) { + var n2 = this._updatedSources[a2]; + "reload" === n2 ? this._reloadSource(a2) : "clear" === n2 && this._clearSource(a2); } + for (var s2 in this._updateTilesForChangedImages(), this._updatedPaintProps) + this._layers[s2].updateTransitions(e3); + this.light.updateTransitions(e3), this._resetUpdates(); } - this._updateTilesForChangedImages(); - for (const t3 in this._updatedPaintProps) - this._layers[t3].updateTransitions(e2); - this.light.updateTransitions(e2), this._resetUpdates(); - } - const o2 = {}; - for (const t2 in this.sourceCaches) { - const e3 = this.sourceCaches[t2]; - o2[t2] = e3.used, e3.used = false; + var l2 = {}; + for (var c3 in this.sourceCaches) { + var u2 = this.sourceCaches[c3]; + l2[c3] = u2.used, u2.used = false; + } + for (var h3 = 0, p3 = this._order; h3 < p3.length; h3 += 1) { + var d2 = this._layers[p3[h3]]; + d2.recalculate(e3, this._availableImages), !d2.isHidden(e3.zoom) && d2.source && (this.sourceCaches[d2.source].used = true); + } + for (var _24 in l2) { + var f2 = this.sourceCaches[_24]; + l2[_24] !== f2.used && f2.fire(new t.Event("data", { sourceDataType: "visibility", dataType: "source", sourceId: _24 })); + } + this.light.recalculate(e3), this.z = e3.zoom, i3 && this.fire(new t.Event("data", { dataType: "style" })); } - for (const t2 of this._order) { - const i3 = this._layers[t2]; - i3.recalculate(e2, this._availableImages), !i3.isHidden(e2.zoom) && i3.source && (this.sourceCaches[i3.source].used = true); + }, i2.prototype._updateTilesForChangedImages = function() { + var t2 = Object.keys(this._changedImages); + if (t2.length) { + for (var e3 in this.sourceCaches) + this.sourceCaches[e3].reloadTilesForDependencies(["icons", "patterns"], t2); + this._changedImages = {}; } - for (const e3 in o2) { - const i3 = this.sourceCaches[e3]; - o2[e3] !== i3.used && i3.fire(new t.Event("data", { sourceDataType: "visibility", dataType: "source", sourceId: e3 })); - } - this.light.recalculate(e2), this.z = e2.zoom, i2 && this.fire(new t.Event("data", { dataType: "style" })); - } - _updateTilesForChangedImages() { - const t2 = Object.keys(this._changedImages); - if (t2.length) { - for (const e2 in this.sourceCaches) - this.sourceCaches[e2].reloadTilesForDependencies(["icons", "patterns"], t2); - this._changedImages = {}; - } - } - _updateWorkerLayers(t2, e2) { - this.dispatcher.broadcast("updateLayers", { layers: this._serializeLayers(t2), removedIds: e2 }); - } - _resetUpdates() { + }, i2.prototype._updateWorkerLayers = function(t2, e3) { + this.dispatcher.broadcast("updateLayers", { layers: this._serializeLayers(t2), removedIds: e3 }); + }, i2.prototype._resetUpdates = function() { this._changed = false, this._updatedLayers = {}, this._removedLayers = {}, this._updatedSources = {}, this._updatedPaintProps = {}, this._changedImages = {}; - } - setTerrain(e2) { - if (this._checkLoaded(), this._terrainDataCallback && this.off("data", this._terrainDataCallback), this._terrainfreezeElevationCallback && this.map.off("freezeElevation", this._terrainfreezeElevationCallback), e2) { - const t2 = this.sourceCaches[e2.source]; - if (!t2) - throw new Error(`cannot load terrain, because there exists no source with ID: ${e2.source}`); - this.terrain = new Kt(this, t2, e2), this.map.transform.updateElevation(this.terrain), this._terrainfreezeElevationCallback = (t3) => { - t3.freeze ? this.map.transform.freezeElevation = true : (this.map.transform.freezeElevation = false, this.map.transform.recalculateZoom(this.terrain)); - }, this._terrainDataCallback = (t3) => { - t3.tile && (t3.sourceId === e2.source ? (this.map.transform.updateElevation(this.terrain), this.terrain.rememberForRerender(t3.sourceId, t3.tile.tileID)) : "geojson" === t3.source.type && this.terrain.rememberForRerender(t3.sourceId, t3.tile.tileID)); - }, this.on("data", this._terrainDataCallback), this.map.on("freezeElevation", this._terrainfreezeElevationCallback); - } else - this.terrain && this.terrain.sourceCache.destruct(), this.terrain = null, this.map.transform.updateElevation(this.terrain); - this.map.fire(new t.Event("terrain", { terrain: e2 })); - } - setState(e2) { - if (this._checkLoaded(), Yt(this, t.validateStyle(e2))) + }, i2.prototype.setState = function(e3) { + var i3 = this; + if (this._checkLoaded(), Ue(this, t.validateStyle(e3))) return false; - (e2 = t.clone$1(e2)).layers = X(e2.layers); - const i2 = function(t2, e3) { - if (!t2) - return [{ command: W.setStyle, args: [e3] }]; - let i3 = []; + (e3 = t.clone$1(e3)).layers = Nt(e3.layers); + var o2 = function(e4, i4) { + if (!e4) + return [{ command: Zt.setStyle, args: [i4] }]; + var o3 = []; try { - if (!a(t2.version, e3.version)) - return [{ command: W.setStyle, args: [e3] }]; - a(t2.center, e3.center) || i3.push({ command: W.setCenter, args: [e3.center] }), a(t2.zoom, e3.zoom) || i3.push({ command: W.setZoom, args: [e3.zoom] }), a(t2.bearing, e3.bearing) || i3.push({ command: W.setBearing, args: [e3.bearing] }), a(t2.pitch, e3.pitch) || i3.push({ command: W.setPitch, args: [e3.pitch] }), a(t2.sprite, e3.sprite) || i3.push({ command: W.setSprite, args: [e3.sprite] }), a(t2.glyphs, e3.glyphs) || i3.push({ command: W.setGlyphs, args: [e3.glyphs] }), a(t2.transition, e3.transition) || i3.push({ command: W.setTransition, args: [e3.transition] }), a(t2.light, e3.light) || i3.push({ command: W.setLight, args: [e3.light] }); - const o3 = {}, r2 = []; - !function(t3, e4, i4, o4) { - let r3; - for (r3 in e4 = e4 || {}, t3 = t3 || {}) - Object.prototype.hasOwnProperty.call(t3, r3) && (Object.prototype.hasOwnProperty.call(e4, r3) || K(r3, i4, o4)); - for (r3 in e4) - Object.prototype.hasOwnProperty.call(e4, r3) && (Object.prototype.hasOwnProperty.call(t3, r3) ? a(t3[r3], e4[r3]) || ("geojson" === t3[r3].type && "geojson" === e4[r3].type && J(t3, e4, r3) ? i4.push({ command: W.setGeoJSONSourceData, args: [r3, e4[r3].data] }) : Y(r3, e4, i4, o4)) : H(r3, e4, i4)); - }(t2.sources, e3.sources, r2, o3); - const s2 = []; - t2.layers && t2.layers.forEach((t3) => { - o3[t3.source] ? i3.push({ command: W.removeLayer, args: [t3.id] }) : s2.push(t3); - }), i3 = i3.concat(r2), function(t3, e4, i4) { - e4 = e4 || []; - const o4 = (t3 = t3 || []).map(tt), r3 = e4.map(tt), s3 = t3.reduce(et, {}), n2 = e4.reduce(et, {}), l2 = o4.slice(), c3 = /* @__PURE__ */ Object.create(null); - let h3, u2, d2, m2, _24, p3, f2; - for (h3 = 0, u2 = 0; h3 < o4.length; h3++) - d2 = o4[h3], Object.prototype.hasOwnProperty.call(n2, d2) ? u2++ : (i4.push({ command: W.removeLayer, args: [d2] }), l2.splice(l2.indexOf(d2, u2), 1)); - for (h3 = 0, u2 = 0; h3 < r3.length; h3++) - d2 = r3[r3.length - 1 - h3], l2[l2.length - 1 - h3] !== d2 && (Object.prototype.hasOwnProperty.call(s3, d2) ? (i4.push({ command: W.removeLayer, args: [d2] }), l2.splice(l2.lastIndexOf(d2, l2.length - u2), 1)) : u2++, p3 = l2[l2.length - h3], i4.push({ command: W.addLayer, args: [n2[d2], p3] }), l2.splice(l2.length - h3, 0, d2), c3[d2] = true); - for (h3 = 0; h3 < r3.length; h3++) - if (d2 = r3[h3], m2 = s3[d2], _24 = n2[d2], !c3[d2] && !a(m2, _24)) - if (a(m2.source, _24.source) && a(m2["source-layer"], _24["source-layer"]) && a(m2.type, _24.type)) { - for (f2 in Q(m2.layout, _24.layout, i4, d2, null, W.setLayoutProperty), Q(m2.paint, _24.paint, i4, d2, null, W.setPaintProperty), a(m2.filter, _24.filter) || i4.push({ command: W.setFilter, args: [d2, _24.filter] }), a(m2.minzoom, _24.minzoom) && a(m2.maxzoom, _24.maxzoom) || i4.push({ command: W.setLayerZoomRange, args: [d2, _24.minzoom, _24.maxzoom] }), m2) - Object.prototype.hasOwnProperty.call(m2, f2) && "layout" !== f2 && "paint" !== f2 && "filter" !== f2 && "metadata" !== f2 && "minzoom" !== f2 && "maxzoom" !== f2 && (0 === f2.indexOf("paint.") ? Q(m2[f2], _24[f2], i4, d2, f2.slice(6), W.setPaintProperty) : a(m2[f2], _24[f2]) || i4.push({ command: W.setLayerProperty, args: [d2, f2, _24[f2]] })); - for (f2 in _24) - Object.prototype.hasOwnProperty.call(_24, f2) && !Object.prototype.hasOwnProperty.call(m2, f2) && "layout" !== f2 && "paint" !== f2 && "filter" !== f2 && "metadata" !== f2 && "minzoom" !== f2 && "maxzoom" !== f2 && (0 === f2.indexOf("paint.") ? Q(m2[f2], _24[f2], i4, d2, f2.slice(6), W.setPaintProperty) : a(m2[f2], _24[f2]) || i4.push({ command: W.setLayerProperty, args: [d2, f2, _24[f2]] })); + if (!t.deepEqual(e4.version, i4.version)) + return [{ command: Zt.setStyle, args: [i4] }]; + t.deepEqual(e4.center, i4.center) || o3.push({ command: Zt.setCenter, args: [i4.center] }), t.deepEqual(e4.zoom, i4.zoom) || o3.push({ command: Zt.setZoom, args: [i4.zoom] }), t.deepEqual(e4.bearing, i4.bearing) || o3.push({ command: Zt.setBearing, args: [i4.bearing] }), t.deepEqual(e4.pitch, i4.pitch) || o3.push({ command: Zt.setPitch, args: [i4.pitch] }), t.deepEqual(e4.sprite, i4.sprite) || o3.push({ command: Zt.setSprite, args: [i4.sprite] }), t.deepEqual(e4.glyphs, i4.glyphs) || o3.push({ command: Zt.setGlyphs, args: [i4.glyphs] }), t.deepEqual(e4.transition, i4.transition) || o3.push({ command: Zt.setTransition, args: [i4.transition] }), t.deepEqual(e4.light, i4.light) || o3.push({ command: Zt.setLight, args: [i4.light] }); + var r3 = {}, a2 = []; + !function(e5, i5, o4, r4) { + var a3; + for (a3 in i5 = i5 || {}, e5 = e5 || {}) + e5.hasOwnProperty(a3) && (i5.hasOwnProperty(a3) || jt(a3, o4, r4)); + for (a3 in i5) + i5.hasOwnProperty(a3) && (e5.hasOwnProperty(a3) ? t.deepEqual(e5[a3], i5[a3]) || ("geojson" === e5[a3].type && "geojson" === i5[a3].type && Gt(e5, i5, a3) ? o4.push({ command: Zt.setGeoJSONSourceData, args: [a3, i5[a3].data] }) : Vt(a3, i5, o4, r4)) : qt(a3, i5, o4)); + }(e4.sources, i4.sources, a2, r3); + var n2 = []; + e4.layers && e4.layers.forEach(function(t2) { + r3[t2.source] ? o3.push({ command: Zt.removeLayer, args: [t2.id] }) : n2.push(t2); + }), o3 = o3.concat(a2), function(e5, i5, o4) { + i5 = i5 || []; + var r4, a3, n3, s2, l2, c3, u2, h3 = (e5 = e5 || []).map(Xt), p3 = i5.map(Xt), d2 = e5.reduce(Ht, {}), _24 = i5.reduce(Ht, {}), f2 = h3.slice(), m2 = /* @__PURE__ */ Object.create(null); + for (r4 = 0, a3 = 0; r4 < h3.length; r4++) + _24.hasOwnProperty(n3 = h3[r4]) ? a3++ : (o4.push({ command: Zt.removeLayer, args: [n3] }), f2.splice(f2.indexOf(n3, a3), 1)); + for (r4 = 0, a3 = 0; r4 < p3.length; r4++) + f2[f2.length - 1 - r4] !== (n3 = p3[p3.length - 1 - r4]) && (d2.hasOwnProperty(n3) ? (o4.push({ command: Zt.removeLayer, args: [n3] }), f2.splice(f2.lastIndexOf(n3, f2.length - a3), 1)) : a3++, o4.push({ command: Zt.addLayer, args: [_24[n3], c3 = f2[f2.length - r4]] }), f2.splice(f2.length - r4, 0, n3), m2[n3] = true); + for (r4 = 0; r4 < p3.length; r4++) + if (s2 = d2[n3 = p3[r4]], l2 = _24[n3], !m2[n3] && !t.deepEqual(s2, l2)) + if (t.deepEqual(s2.source, l2.source) && t.deepEqual(s2["source-layer"], l2["source-layer"]) && t.deepEqual(s2.type, l2.type)) { + for (u2 in Wt(s2.layout, l2.layout, o4, n3, null, Zt.setLayoutProperty), Wt(s2.paint, l2.paint, o4, n3, null, Zt.setPaintProperty), t.deepEqual(s2.filter, l2.filter) || o4.push({ command: Zt.setFilter, args: [n3, l2.filter] }), t.deepEqual(s2.minzoom, l2.minzoom) && t.deepEqual(s2.maxzoom, l2.maxzoom) || o4.push({ command: Zt.setLayerZoomRange, args: [n3, l2.minzoom, l2.maxzoom] }), s2) + s2.hasOwnProperty(u2) && "layout" !== u2 && "paint" !== u2 && "filter" !== u2 && "metadata" !== u2 && "minzoom" !== u2 && "maxzoom" !== u2 && (0 === u2.indexOf("paint.") ? Wt(s2[u2], l2[u2], o4, n3, u2.slice(6), Zt.setPaintProperty) : t.deepEqual(s2[u2], l2[u2]) || o4.push({ command: Zt.setLayerProperty, args: [n3, u2, l2[u2]] })); + for (u2 in l2) + l2.hasOwnProperty(u2) && !s2.hasOwnProperty(u2) && "layout" !== u2 && "paint" !== u2 && "filter" !== u2 && "metadata" !== u2 && "minzoom" !== u2 && "maxzoom" !== u2 && (0 === u2.indexOf("paint.") ? Wt(s2[u2], l2[u2], o4, n3, u2.slice(6), Zt.setPaintProperty) : t.deepEqual(s2[u2], l2[u2]) || o4.push({ command: Zt.setLayerProperty, args: [n3, u2, l2[u2]] })); } else - i4.push({ command: W.removeLayer, args: [d2] }), p3 = l2[l2.lastIndexOf(d2) + 1], i4.push({ command: W.addLayer, args: [_24, p3] }); - }(s2, e3.layers, i3); - } catch (t3) { - console.warn("Unable to compute style diff:", t3), i3 = [{ command: W.setStyle, args: [e3] }]; + o4.push({ command: Zt.removeLayer, args: [n3] }), c3 = f2[f2.lastIndexOf(n3) + 1], o4.push({ command: Zt.addLayer, args: [l2, c3] }); + }(n2, i4.layers, o3); + } catch (t2) { + console.warn("Unable to compute style diff:", t2), o3 = [{ command: Zt.setStyle, args: [i4] }]; } - return i3; - }(this.serialize(), e2).filter((t2) => !(t2.command in Qt)); - if (0 === i2.length) + return o3; + }(this.serialize(), e3).filter(function(t2) { + return !(t2.command in Ze); + }); + if (0 === o2.length) return false; - const o2 = i2.filter((t2) => !(t2.command in Jt)); - if (o2.length > 0) - throw new Error(`Unimplemented: ${o2.map((t2) => t2.command).join(", ")}.`); - return i2.forEach((t2) => { - "setTransition" !== t2.command && this[t2.command].apply(this, t2.args); - }), this.stylesheet = e2, true; - } - addImage(e2, i2) { - if (this.getImage(e2)) - return this.fire(new t.ErrorEvent(new Error(`An image named "${e2}" already exists.`))); - this.imageManager.addImage(e2, i2), this._afterImageUpdated(e2); - } - updateImage(t2, e2) { - this.imageManager.updateImage(t2, e2); - } - getImage(t2) { + var r2 = o2.filter(function(t2) { + return !(t2.command in Ne); + }); + if (r2.length > 0) + throw new Error("Unimplemented: " + r2.map(function(t2) { + return t2.command; + }).join(", ") + "."); + return o2.forEach(function(t2) { + "setTransition" !== t2.command && i3[t2.command].apply(i3, t2.args); + }), this.stylesheet = e3, true; + }, i2.prototype.addImage = function(e3, i3) { + if (this.getImage(e3)) + return this.fire(new t.ErrorEvent(new Error("An image with this name already exists."))); + this.imageManager.addImage(e3, i3), this._afterImageUpdated(e3); + }, i2.prototype.updateImage = function(t2, e3) { + this.imageManager.updateImage(t2, e3); + }, i2.prototype.getImage = function(t2) { return this.imageManager.getImage(t2); - } - removeImage(e2) { - if (!this.getImage(e2)) - return this.fire(new t.ErrorEvent(new Error(`An image named "${e2}" does not exist.`))); - this.imageManager.removeImage(e2), this._afterImageUpdated(e2); - } - _afterImageUpdated(e2) { - this._availableImages = this.imageManager.listImages(), this._changedImages[e2] = true, this._changed = true, this.dispatcher.broadcast("setImages", this._availableImages), this.fire(new t.Event("data", { dataType: "style" })); - } - listImages() { + }, i2.prototype.removeImage = function(e3) { + if (!this.getImage(e3)) + return this.fire(new t.ErrorEvent(new Error("No image with this name exists."))); + this.imageManager.removeImage(e3), this._afterImageUpdated(e3); + }, i2.prototype._afterImageUpdated = function(e3) { + this._availableImages = this.imageManager.listImages(), this._changedImages[e3] = true, this._changed = true, this.dispatcher.broadcast("setImages", this._availableImages), this.fire(new t.Event("data", { dataType: "style" })); + }, i2.prototype.listImages = function() { return this._checkLoaded(), this.imageManager.listImages(); - } - addSource(e2, i2, o2 = {}) { - if (this._checkLoaded(), void 0 !== this.sourceCaches[e2]) - throw new Error(`Source "${e2}" already exists.`); - if (!i2.type) - throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(i2).join(", ")}.`); - if (["vector", "raster", "geojson", "video", "image"].indexOf(i2.type) >= 0 && this._validate(t.validateStyle.source, `sources.${e2}`, i2, null, o2)) - return; - this.map && this.map._collectResourceTiming && (i2.collectResourceTiming = true); - const a2 = this.sourceCaches[e2] = new O2(e2, i2, this.dispatcher); - a2.style = this, a2.setEventedParent(this, () => ({ isSourceLoaded: this.loaded(), source: a2.serialize(), sourceId: e2 })), a2.onAdd(this.map), this._changed = true; - } - removeSource(e2) { - if (this._checkLoaded(), void 0 === this.sourceCaches[e2]) + }, i2.prototype.addSource = function(e3, i3, o2) { + var r2 = this; + if (void 0 === o2 && (o2 = {}), this._checkLoaded(), void 0 !== this.sourceCaches[e3]) + throw new Error("There is already a source with this ID"); + if (!i3.type) + throw new Error("The type property must be defined, but only the following properties were given: " + Object.keys(i3).join(", ") + "."); + if (!(["vector", "raster", "geojson", "video", "image"].indexOf(i3.type) >= 0 && this._validate(t.validateStyle.source, "sources." + e3, i3, null, o2))) { + this.map && this.map._collectResourceTiming && (i3.collectResourceTiming = true); + var a2 = this.sourceCaches[e3] = new Dt(e3, i3, this.dispatcher); + a2.style = this, a2.setEventedParent(this, function() { + return { isSourceLoaded: r2.loaded(), source: a2.serialize(), sourceId: e3 }; + }), a2.onAdd(this.map), this._changed = true; + } + }, i2.prototype.removeSource = function(e3) { + if (this._checkLoaded(), void 0 === this.sourceCaches[e3]) throw new Error("There is no source with this ID"); - for (const i3 in this._layers) - if (this._layers[i3].source === e2) - return this.fire(new t.ErrorEvent(new Error(`Source "${e2}" cannot be removed while layer "${i3}" is using it.`))); - const i2 = this.sourceCaches[e2]; - delete this.sourceCaches[e2], delete this._updatedSources[e2], i2.fire(new t.Event("data", { sourceDataType: "metadata", dataType: "source", sourceId: e2 })), i2.setEventedParent(null), i2.onRemove(this.map), this._changed = true; - } - setGeoJSONSourceData(t2, e2) { - if (this._checkLoaded(), void 0 === this.sourceCaches[t2]) - throw new Error(`There is no source with this ID=${t2}`); - const i2 = this.sourceCaches[t2].getSource(); - if ("geojson" !== i2.type) - throw new Error(`geojsonSource.type is ${i2.type}, which is !== 'geojson`); - i2.setData(e2), this._changed = true; - } - getSource(t2) { + for (var i3 in this._layers) + if (this._layers[i3].source === e3) + return this.fire(new t.ErrorEvent(new Error('Source "' + e3 + '" cannot be removed while layer "' + i3 + '" is using it.'))); + var o2 = this.sourceCaches[e3]; + delete this.sourceCaches[e3], delete this._updatedSources[e3], o2.fire(new t.Event("data", { sourceDataType: "metadata", dataType: "source", sourceId: e3 })), o2.setEventedParent(null), o2.clearTiles(), o2.onRemove && o2.onRemove(this.map), this._changed = true; + }, i2.prototype.setGeoJSONSourceData = function(t2, e3) { + this._checkLoaded(), this.sourceCaches[t2].getSource().setData(e3), this._changed = true; + }, i2.prototype.getSource = function(t2) { return this.sourceCaches[t2] && this.sourceCaches[t2].getSource(); - } - addLayer(e2, i2, o2 = {}) { - this._checkLoaded(); - const a2 = e2.id; - if (this.getLayer(a2)) - return void this.fire(new t.ErrorEvent(new Error(`Layer "${a2}" already exists on this map.`))); - let r2; - if ("custom" === e2.type) { - if (Yt(this, t.validateCustomStyleLayer(e2))) - return; - r2 = t.createStyleLayer(e2); - } else { - if ("object" == typeof e2.source && (this.addSource(a2, e2.source), e2 = t.clone$1(e2), e2 = t.extend(e2, { source: a2 })), this._validate(t.validateStyle.layer, `layers.${a2}`, e2, { arrayIndex: -1 }, o2)) - return; - r2 = t.createStyleLayer(e2), this._validateLayer(r2), r2.setEventedParent(this, { layer: { id: a2 } }), this._serializedLayers[r2.id] = r2.serialize(); - } - const s2 = i2 ? this._order.indexOf(i2) : this._order.length; - if (i2 && -1 === s2) - this.fire(new t.ErrorEvent(new Error(`Cannot add layer "${a2}" before non-existing layer "${i2}".`))); + }, i2.prototype.addLayer = function(e3, i3, o2) { + void 0 === o2 && (o2 = {}), this._checkLoaded(); + var r2 = e3.id; + if (this.getLayer(r2)) + this.fire(new t.ErrorEvent(new Error('Layer with id "' + r2 + '" already exists on this map'))); else { - if (this._order.splice(s2, 0, a2), this._layerOrderChanged = true, this._layers[a2] = r2, this._removedLayers[a2] && r2.source && "custom" !== r2.type) { - const t2 = this._removedLayers[a2]; - delete this._removedLayers[a2], t2.type !== r2.type ? this._updatedSources[r2.source] = "clear" : (this._updatedSources[r2.source] = "reload", this.sourceCaches[r2.source].pause()); + var a2; + if ("custom" === e3.type) { + if (Ue(this, t.validateCustomStyleLayer(e3))) + return; + a2 = t.createStyleLayer(e3); + } else { + if ("object" == typeof e3.source && (this.addSource(r2, e3.source), e3 = t.clone$1(e3), e3 = t.extend(e3, { source: r2 })), this._validate(t.validateStyle.layer, "layers." + r2, e3, { arrayIndex: -1 }, o2)) + return; + a2 = t.createStyleLayer(e3), this._validateLayer(a2), a2.setEventedParent(this, { layer: { id: r2 } }), this._serializedLayers[a2.id] = a2.serialize(); + } + var n2 = i3 ? this._order.indexOf(i3) : this._order.length; + if (i3 && -1 === n2) + this.fire(new t.ErrorEvent(new Error('Layer with id "' + i3 + '" does not exist on this map.'))); + else { + if (this._order.splice(n2, 0, r2), this._layerOrderChanged = true, this._layers[r2] = a2, this._removedLayers[r2] && a2.source && "custom" !== a2.type) { + var s2 = this._removedLayers[r2]; + delete this._removedLayers[r2], s2.type !== a2.type ? this._updatedSources[a2.source] = "clear" : (this._updatedSources[a2.source] = "reload", this.sourceCaches[a2.source].pause()); + } + this._updateLayer(a2), a2.onAdd && a2.onAdd(this.map); } - this._updateLayer(r2), r2.onAdd && r2.onAdd(this.map); } - } - moveLayer(e2, i2) { - if (this._checkLoaded(), this._changed = true, !this._layers[e2]) - return void this.fire(new t.ErrorEvent(new Error(`The layer '${e2}' does not exist in the map's style and cannot be moved.`))); - if (e2 === i2) - return; - const o2 = this._order.indexOf(e2); - this._order.splice(o2, 1); - const a2 = i2 ? this._order.indexOf(i2) : this._order.length; - i2 && -1 === a2 ? this.fire(new t.ErrorEvent(new Error(`Cannot move layer "${e2}" before non-existing layer "${i2}".`))) : (this._order.splice(a2, 0, e2), this._layerOrderChanged = true); - } - removeLayer(e2) { + }, i2.prototype.moveLayer = function(e3, i3) { + if (this._checkLoaded(), this._changed = true, this._layers[e3]) { + if (e3 !== i3) { + var o2 = this._order.indexOf(e3); + this._order.splice(o2, 1); + var r2 = i3 ? this._order.indexOf(i3) : this._order.length; + i3 && -1 === r2 ? this.fire(new t.ErrorEvent(new Error('Layer with id "' + i3 + '" does not exist on this map.'))) : (this._order.splice(r2, 0, e3), this._layerOrderChanged = true); + } + } else + this.fire(new t.ErrorEvent(new Error("The layer '" + e3 + "' does not exist in the map's style and cannot be moved."))); + }, i2.prototype.removeLayer = function(e3) { this._checkLoaded(); - const i2 = this._layers[e2]; - if (!i2) - return void this.fire(new t.ErrorEvent(new Error(`Cannot remove non-existing layer "${e2}".`))); - i2.setEventedParent(null); - const o2 = this._order.indexOf(e2); - this._order.splice(o2, 1), this._layerOrderChanged = true, this._changed = true, this._removedLayers[e2] = i2, delete this._layers[e2], delete this._serializedLayers[e2], delete this._updatedLayers[e2], delete this._updatedPaintProps[e2], i2.onRemove && i2.onRemove(this.map); - } - getLayer(t2) { + var i3 = this._layers[e3]; + if (i3) { + i3.setEventedParent(null); + var o2 = this._order.indexOf(e3); + this._order.splice(o2, 1), this._layerOrderChanged = true, this._changed = true, this._removedLayers[e3] = i3, delete this._layers[e3], delete this._serializedLayers[e3], delete this._updatedLayers[e3], delete this._updatedPaintProps[e3], i3.onRemove && i3.onRemove(this.map); + } else + this.fire(new t.ErrorEvent(new Error("The layer '" + e3 + "' does not exist in the map's style and cannot be removed."))); + }, i2.prototype.getLayer = function(t2) { return this._layers[t2]; - } - hasLayer(t2) { + }, i2.prototype.hasLayer = function(t2) { return t2 in this._layers; - } - setLayerZoomRange(e2, i2, o2) { + }, i2.prototype.setLayerZoomRange = function(e3, i3, o2) { this._checkLoaded(); - const a2 = this.getLayer(e2); - a2 ? a2.minzoom === i2 && a2.maxzoom === o2 || (null != i2 && (a2.minzoom = i2), null != o2 && (a2.maxzoom = o2), this._updateLayer(a2)) : this.fire(new t.ErrorEvent(new Error(`Cannot set the zoom range of non-existing layer "${e2}".`))); - } - setFilter(e2, i2, o2 = {}) { - this._checkLoaded(); - const r2 = this.getLayer(e2); + var r2 = this.getLayer(e3); + r2 ? r2.minzoom === i3 && r2.maxzoom === o2 || (null != i3 && (r2.minzoom = i3), null != o2 && (r2.maxzoom = o2), this._updateLayer(r2)) : this.fire(new t.ErrorEvent(new Error("The layer '" + e3 + "' does not exist in the map's style and cannot have zoom extent."))); + }, i2.prototype.setFilter = function(e3, i3, o2) { + void 0 === o2 && (o2 = {}), this._checkLoaded(); + var r2 = this.getLayer(e3); if (r2) { - if (!a(r2.filter, i2)) - return null == i2 ? (r2.filter = void 0, void this._updateLayer(r2)) : void (this._validate(t.validateStyle.filter, `layers.${r2.id}.filter`, i2, null, o2) || (r2.filter = t.clone$1(i2), this._updateLayer(r2))); + if (!t.deepEqual(r2.filter, i3)) + return null == i3 ? (r2.filter = void 0, void this._updateLayer(r2)) : void (this._validate(t.validateStyle.filter, "layers." + r2.id + ".filter", i3, null, o2) || (r2.filter = t.clone$1(i3), this._updateLayer(r2))); } else - this.fire(new t.ErrorEvent(new Error(`Cannot filter non-existing layer "${e2}".`))); - } - getFilter(e2) { - return t.clone$1(this.getLayer(e2).filter); - } - setLayoutProperty(e2, i2, o2, r2 = {}) { - this._checkLoaded(); - const s2 = this.getLayer(e2); - s2 ? a(s2.getLayoutProperty(i2), o2) || (s2.setLayoutProperty(i2, o2, r2), this._updateLayer(s2)) : this.fire(new t.ErrorEvent(new Error(`Cannot style non-existing layer "${e2}".`))); - } - getLayoutProperty(e2, i2) { - const o2 = this.getLayer(e2); + this.fire(new t.ErrorEvent(new Error("The layer '" + e3 + "' does not exist in the map's style and cannot be filtered."))); + }, i2.prototype.getFilter = function(e3) { + return t.clone$1(this.getLayer(e3).filter); + }, i2.prototype.setLayoutProperty = function(e3, i3, o2, r2) { + void 0 === r2 && (r2 = {}), this._checkLoaded(); + var a2 = this.getLayer(e3); + a2 ? t.deepEqual(a2.getLayoutProperty(i3), o2) || (a2.setLayoutProperty(i3, o2, r2), this._updateLayer(a2)) : this.fire(new t.ErrorEvent(new Error("The layer '" + e3 + "' does not exist in the map's style and cannot be styled."))); + }, i2.prototype.getLayoutProperty = function(e3, i3) { + var o2 = this.getLayer(e3); if (o2) - return o2.getLayoutProperty(i2); - this.fire(new t.ErrorEvent(new Error(`Cannot get style of non-existing layer "${e2}".`))); - } - setPaintProperty(e2, i2, o2, r2 = {}) { - this._checkLoaded(); - const s2 = this.getLayer(e2); - s2 ? a(s2.getPaintProperty(i2), o2) || (s2.setPaintProperty(i2, o2, r2) && this._updateLayer(s2), this._changed = true, this._updatedPaintProps[e2] = true) : this.fire(new t.ErrorEvent(new Error(`Cannot style non-existing layer "${e2}".`))); - } - getPaintProperty(t2, e2) { - return this.getLayer(t2).getPaintProperty(e2); - } - setFeatureState(e2, i2) { + return o2.getLayoutProperty(i3); + this.fire(new t.ErrorEvent(new Error("The layer '" + e3 + "' does not exist in the map's style."))); + }, i2.prototype.setPaintProperty = function(e3, i3, o2, r2) { + void 0 === r2 && (r2 = {}), this._checkLoaded(); + var a2 = this.getLayer(e3); + a2 ? t.deepEqual(a2.getPaintProperty(i3), o2) || (a2.setPaintProperty(i3, o2, r2) && this._updateLayer(a2), this._changed = true, this._updatedPaintProps[e3] = true) : this.fire(new t.ErrorEvent(new Error("The layer '" + e3 + "' does not exist in the map's style and cannot be styled."))); + }, i2.prototype.getPaintProperty = function(t2, e3) { + return this.getLayer(t2).getPaintProperty(e3); + }, i2.prototype.setFeatureState = function(e3, i3) { this._checkLoaded(); - const o2 = e2.source, a2 = e2.sourceLayer, r2 = this.sourceCaches[o2]; - if (void 0 === r2) - return void this.fire(new t.ErrorEvent(new Error(`The source '${o2}' does not exist in the map's style.`))); - const s2 = r2.getSource().type; - "geojson" === s2 && a2 ? this.fire(new t.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))) : "vector" !== s2 || a2 ? (void 0 === e2.id && this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))), r2.setFeatureState(a2, e2.id, i2)) : this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types."))); - } - removeFeatureState(e2, i2) { + var o2 = e3.source, r2 = e3.sourceLayer, a2 = this.sourceCaches[o2]; + if (void 0 !== a2) { + var n2 = a2.getSource().type; + "geojson" === n2 && r2 ? this.fire(new t.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))) : "vector" !== n2 || r2 ? (void 0 === e3.id && this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))), a2.setFeatureState(r2, e3.id, i3)) : this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types."))); + } else + this.fire(new t.ErrorEvent(new Error("The source '" + o2 + "' does not exist in the map's style."))); + }, i2.prototype.removeFeatureState = function(e3, i3) { this._checkLoaded(); - const o2 = e2.source, a2 = this.sourceCaches[o2]; - if (void 0 === a2) - return void this.fire(new t.ErrorEvent(new Error(`The source '${o2}' does not exist in the map's style.`))); - const r2 = a2.getSource().type, s2 = "vector" === r2 ? e2.sourceLayer : void 0; - "vector" !== r2 || s2 ? i2 && "string" != typeof e2.id && "number" != typeof e2.id ? this.fire(new t.ErrorEvent(new Error("A feature id is required to remove its specific state property."))) : a2.removeFeatureState(s2, e2.id, i2) : this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types."))); - } - getFeatureState(e2) { + var o2 = e3.source, r2 = this.sourceCaches[o2]; + if (void 0 !== r2) { + var a2 = r2.getSource().type, n2 = "vector" === a2 ? e3.sourceLayer : void 0; + "vector" !== a2 || n2 ? i3 && "string" != typeof e3.id && "number" != typeof e3.id ? this.fire(new t.ErrorEvent(new Error("A feature id is required to remove its specific state property."))) : r2.removeFeatureState(n2, e3.id, i3) : this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types."))); + } else + this.fire(new t.ErrorEvent(new Error("The source '" + o2 + "' does not exist in the map's style."))); + }, i2.prototype.getFeatureState = function(e3) { this._checkLoaded(); - const i2 = e2.source, o2 = e2.sourceLayer, a2 = this.sourceCaches[i2]; - if (void 0 !== a2) - return "vector" !== a2.getSource().type || o2 ? (void 0 === e2.id && this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))), a2.getFeatureState(o2, e2.id)) : void this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types."))); - this.fire(new t.ErrorEvent(new Error(`The source '${i2}' does not exist in the map's style.`))); - } - getTransition() { + var i3 = e3.source, o2 = e3.sourceLayer, r2 = this.sourceCaches[i3]; + if (void 0 !== r2) { + if ("vector" !== r2.getSource().type || o2) + return void 0 === e3.id && this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))), r2.getFeatureState(o2, e3.id); + this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types."))); + } else + this.fire(new t.ErrorEvent(new Error("The source '" + i3 + "' does not exist in the map's style."))); + }, i2.prototype.getTransition = function() { return t.extend({ duration: 300, delay: 0 }, this.stylesheet && this.stylesheet.transition); - } - serialize() { - return t.filterObject({ version: this.stylesheet.version, name: this.stylesheet.name, metadata: this.stylesheet.metadata, light: this.stylesheet.light, center: this.stylesheet.center, zoom: this.stylesheet.zoom, bearing: this.stylesheet.bearing, pitch: this.stylesheet.pitch, sprite: this.stylesheet.sprite, glyphs: this.stylesheet.glyphs, transition: this.stylesheet.transition, sources: t.mapObject(this.sourceCaches, (t2) => t2.serialize()), layers: this._serializeLayers(this._order) }, (t2) => void 0 !== t2); - } - _updateLayer(t2) { + }, i2.prototype.serialize = function() { + return t.filterObject({ version: this.stylesheet.version, name: this.stylesheet.name, metadata: this.stylesheet.metadata, light: this.stylesheet.light, center: this.stylesheet.center, zoom: this.stylesheet.zoom, bearing: this.stylesheet.bearing, pitch: this.stylesheet.pitch, sprite: this.stylesheet.sprite, glyphs: this.stylesheet.glyphs, transition: this.stylesheet.transition, sources: t.mapObject(this.sourceCaches, function(t2) { + return t2.serialize(); + }), layers: this._serializeLayers(this._order) }, function(t2) { + return void 0 !== t2; + }); + }, i2.prototype._updateLayer = function(t2) { this._updatedLayers[t2.id] = true, t2.source && !this._updatedSources[t2.source] && "raster" !== this.sourceCaches[t2.source].getSource().type && (this._updatedSources[t2.source] = "reload", this.sourceCaches[t2.source].pause()), this._changed = true; - } - _flattenAndSortRenderedFeatures(t2) { - const e2 = (t3) => "fill-extrusion" === this._layers[t3].type, i2 = {}, o2 = []; - for (let a3 = this._order.length - 1; a3 >= 0; a3--) { - const r2 = this._order[a3]; - if (e2(r2)) { - i2[r2] = a3; - for (const e3 of t2) { - const t3 = e3[r2]; - if (t3) - for (const e4 of t3) - o2.push(e4); + }, i2.prototype._flattenAndSortRenderedFeatures = function(t2) { + for (var e3 = this, i3 = function(t3) { + return "fill-extrusion" === e3._layers[t3].type; + }, o2 = {}, r2 = [], a2 = this._order.length - 1; a2 >= 0; a2--) { + var n2 = this._order[a2]; + if (i3(n2)) { + o2[n2] = a2; + for (var s2 = 0, l2 = t2; s2 < l2.length; s2 += 1) { + var c3 = l2[s2][n2]; + if (c3) + for (var u2 = 0, h3 = c3; u2 < h3.length; u2 += 1) + r2.push(h3[u2]); } } } - o2.sort((t3, e3) => e3.intersectionZ - t3.intersectionZ); - const a2 = []; - for (let r2 = this._order.length - 1; r2 >= 0; r2--) { - const s2 = this._order[r2]; - if (e2(s2)) - for (let t3 = o2.length - 1; t3 >= 0; t3--) { - const e3 = o2[t3].feature; - if (i2[e3.layer.id] < r2) + r2.sort(function(t3, e4) { + return e4.intersectionZ - t3.intersectionZ; + }); + for (var p3 = [], d2 = this._order.length - 1; d2 >= 0; d2--) { + var _24 = this._order[d2]; + if (i3(_24)) + for (var f2 = r2.length - 1; f2 >= 0; f2--) { + var m2 = r2[f2].feature; + if (o2[m2.layer.id] < d2) break; - a2.push(e3), o2.pop(); + p3.push(m2), r2.pop(); } else - for (const e3 of t2) { - const t3 = e3[s2]; - if (t3) - for (const e4 of t3) - a2.push(e4.feature); + for (var g2 = 0, v3 = t2; g2 < v3.length; g2 += 1) { + var y3 = v3[g2][_24]; + if (y3) + for (var x2 = 0, b2 = y3; x2 < b2.length; x2 += 1) + p3.push(b2[x2].feature); } } - return a2; - } - queryRenderedFeatures(e2, i2, o2) { - i2 && i2.filter && this._validate(t.validateStyle.filter, "queryRenderedFeatures.filter", i2.filter, null, i2); - const a2 = {}; - if (i2 && i2.layers) { - if (!Array.isArray(i2.layers)) + return p3; + }, i2.prototype.queryRenderedFeatures = function(e3, i3, o2) { + i3 && i3.filter && this._validate(t.validateStyle.filter, "queryRenderedFeatures.filter", i3.filter, null, i3); + var r2 = {}; + if (i3 && i3.layers) { + if (!Array.isArray(i3.layers)) return this.fire(new t.ErrorEvent(new Error("parameters.layers must be an Array."))), []; - for (const e3 of i2.layers) { - const i3 = this._layers[e3]; - if (!i3) - return this.fire(new t.ErrorEvent(new Error(`The layer '${e3}' does not exist in the map's style and cannot be queried for features.`))), []; - a2[i3.source] = true; + for (var a2 = 0, n2 = i3.layers; a2 < n2.length; a2 += 1) { + var s2 = n2[a2], l2 = this._layers[s2]; + if (!l2) + return this.fire(new t.ErrorEvent(new Error("The layer '" + s2 + "' does not exist in the map's style and cannot be queried for features."))), []; + r2[l2.source] = true; } } - const r2 = []; - i2.availableImages = this._availableImages; - for (const t2 in this.sourceCaches) - i2.layers && !a2[t2] || r2.push(L(this.sourceCaches[t2], this._layers, this._serializedLayers, e2, i2, o2)); - return this.placement && r2.push(function(t2, e3, i3, o3, a3, r3, s2) { - const n2 = {}, l2 = r3.queryRenderedSymbols(o3), c3 = []; - for (const t3 of Object.keys(l2).map(Number)) - c3.push(s2[t3]); - c3.sort(R); - for (const i4 of c3) { - const o4 = i4.featureIndex.lookupSymbolFeatures(l2[i4.bucketInstanceId], e3, i4.bucketIndex, i4.sourceLayerIndex, a3.filter, a3.layers, a3.availableImages, t2); - for (const t3 in o4) { - const e4 = n2[t3] = n2[t3] || [], a4 = o4[t3]; - a4.sort((t4, e5) => { - const o5 = i4.featureSortOrder; + var c3 = []; + for (var u2 in i3.availableImages = this._availableImages, this.sourceCaches) + i3.layers && !r2[u2] || c3.push(O2(this.sourceCaches[u2], this._layers, this._serializedLayers, e3, i3, o2)); + return this.placement && c3.push(function(t2, e4, i4, o3, r3, a3, n3) { + for (var s3 = {}, l3 = a3.queryRenderedSymbols(o3), c4 = [], u3 = 0, h3 = Object.keys(l3).map(Number); u3 < h3.length; u3 += 1) + c4.push(n3[h3[u3]]); + c4.sort(F); + for (var p3 = function() { + var i5 = _24[d2], o4 = i5.featureIndex.lookupSymbolFeatures(l3[i5.bucketInstanceId], e4, i5.bucketIndex, i5.sourceLayerIndex, r3.filter, r3.layers, r3.availableImages, t2); + for (var a4 in o4) { + var n4 = s3[a4] = s3[a4] || [], c5 = o4[a4]; + c5.sort(function(t3, e5) { + var o5 = i5.featureSortOrder; if (o5) { - const i5 = o5.indexOf(t4.featureIndex); - return o5.indexOf(e5.featureIndex) - i5; + var r4 = o5.indexOf(t3.featureIndex); + return o5.indexOf(e5.featureIndex) - r4; } - return e5.featureIndex - t4.featureIndex; + return e5.featureIndex - t3.featureIndex; }); - for (const t4 of a4) - e4.push(t4); + for (var u4 = 0, h4 = c5; u4 < h4.length; u4 += 1) + n4.push(h4[u4]); } - } - for (const e4 in n2) - n2[e4].forEach((o4) => { - const a4 = o4.feature, r4 = i3[t2[e4].source].getFeatureState(a4.layer["source-layer"], a4.id); - a4.source = a4.layer.source, a4.layer["source-layer"] && (a4.sourceLayer = a4.layer["source-layer"]), a4.state = r4; + }, d2 = 0, _24 = c4; d2 < _24.length; d2 += 1) + p3(); + var f2 = function(e5) { + s3[e5].forEach(function(o4) { + var r4 = o4.feature, a4 = i4[t2[e5].source].getFeatureState(r4.layer["source-layer"], r4.id); + r4.source = r4.layer.source, r4.layer["source-layer"] && (r4.sourceLayer = r4.layer["source-layer"]), r4.state = a4; }); - return n2; - }(this._layers, this._serializedLayers, this.sourceCaches, e2, i2, this.placement.collisionIndex, this.placement.retainedQueryData)), this._flattenAndSortRenderedFeatures(r2); - } - querySourceFeatures(e2, i2) { - i2 && i2.filter && this._validate(t.validateStyle.filter, "querySourceFeatures.filter", i2.filter, null, i2); - const o2 = this.sourceCaches[e2]; - return o2 ? function(t2, e3) { - const i3 = t2.getRenderableIds().map((e4) => t2.getTileByID(e4)), o3 = [], a2 = {}; - for (let t3 = 0; t3 < i3.length; t3++) { - const r2 = i3[t3], s2 = r2.tileID.canonical.key; - a2[s2] || (a2[s2] = true, r2.querySourceFeatures(o3, e3)); + }; + for (var m2 in s3) + f2(m2); + return s3; + }(this._layers, this._serializedLayers, this.sourceCaches, e3, i3, this.placement.collisionIndex, this.placement.retainedQueryData)), this._flattenAndSortRenderedFeatures(c3); + }, i2.prototype.querySourceFeatures = function(e3, i3) { + i3 && i3.filter && this._validate(t.validateStyle.filter, "querySourceFeatures.filter", i3.filter, null, i3); + var o2 = this.sourceCaches[e3]; + return o2 ? function(t2, e4) { + for (var i4 = t2.getRenderableIds().map(function(e5) { + return t2.getTileByID(e5); + }), o3 = [], r2 = {}, a2 = 0; a2 < i4.length; a2++) { + var n2 = i4[a2], s2 = n2.tileID.canonical.key; + r2[s2] || (r2[s2] = true, n2.querySourceFeatures(o3, e4)); } return o3; - }(o2, i2) : []; - } - addSourceType(t2, e2, i2) { - return ee.getSourceType(t2) ? i2(new Error(`A source type called "${t2}" already exists.`)) : (ee.setSourceType(t2, e2), e2.workerSourceURL ? void this.dispatcher.broadcast("loadWorkerSource", { name: t2, url: e2.workerSourceURL }, i2) : i2(null, null)); - } - getLight() { + }(o2, i3) : []; + }, i2.prototype.addSourceType = function(t2, e3, o2) { + return i2.getSourceType(t2) ? o2(new Error('A source type called "' + t2 + '" already exists.')) : (i2.setSourceType(t2, e3), e3.workerSourceURL ? void this.dispatcher.broadcast("loadWorkerSource", { name: t2, url: e3.workerSourceURL }, o2) : o2(null, null)); + }, i2.prototype.getLight = function() { return this.light.getLight(); - } - setLight(e2, i2 = {}) { - this._checkLoaded(); - const o2 = this.light.getLight(); - let r2 = false; - for (const t2 in e2) - if (!a(e2[t2], o2[t2])) { + }, i2.prototype.setLight = function(e3, i3) { + void 0 === i3 && (i3 = {}), this._checkLoaded(); + var o2 = this.light.getLight(), r2 = false; + for (var a2 in e3) + if (!t.deepEqual(e3[a2], o2[a2])) { r2 = true; break; } - if (!r2) - return; - const s2 = { now: t.exported.now(), transition: t.extend({ duration: 300, delay: 0 }, this.stylesheet.transition) }; - this.light.setLight(e2, i2), this.light.updateTransitions(s2); - } - _validate(e2, i2, o2, a2, r2 = {}) { - return (!r2 || false !== r2.validate) && Yt(this, e2.call(t.validateStyle, t.extend({ key: i2, style: this.serialize(), value: o2, styleSpec: t.spec }, a2))); - } - _remove() { - this._request && (this._request.cancel(), this._request = null), this._spriteRequest && (this._spriteRequest.cancel(), this._spriteRequest = null), t.evented.off("pluginStateChange", this._rtlTextPluginCallback); - for (const t2 in this._layers) - this._layers[t2].setEventedParent(null); - for (const t2 in this.sourceCaches) { - const e2 = this.sourceCaches[t2]; - e2.setEventedParent(null), e2.onRemove(this.map); - } + if (r2) { + var n2 = { now: t.browser.now(), transition: t.extend({ duration: 300, delay: 0 }, this.stylesheet.transition) }; + this.light.setLight(e3, i3), this.light.updateTransitions(n2); + } + }, i2.prototype._validate = function(e3, i3, o2, r2, a2) { + return void 0 === a2 && (a2 = {}), (!a2 || false !== a2.validate) && Ue(this, e3.call(t.validateStyle, t.extend({ key: i3, style: this.serialize(), value: o2, styleSpec: t.styleSpec }, r2))); + }, i2.prototype._remove = function() { + for (var e3 in this._request && (this._request.cancel(), this._request = null), this._spriteRequest && (this._spriteRequest.cancel(), this._spriteRequest = null), t.evented.off("pluginStateChange", this._rtlTextPluginCallback), this._layers) + this._layers[e3].setEventedParent(null); + for (var i3 in this.sourceCaches) + this.sourceCaches[i3].clearTiles(), this.sourceCaches[i3].setEventedParent(null); this.imageManager.setEventedParent(null), this.setEventedParent(null), this.dispatcher.remove(); - } - _clearSource(t2) { + }, i2.prototype._clearSource = function(t2) { this.sourceCaches[t2].clearTiles(); - } - _reloadSource(t2) { + }, i2.prototype._reloadSource = function(t2) { this.sourceCaches[t2].resume(), this.sourceCaches[t2].reload(); - } - _updateSources(t2) { - for (const e2 in this.sourceCaches) - this.sourceCaches[e2].update(t2, this.terrain); - } - _generateCollisionBoxes() { - for (const t2 in this.sourceCaches) + }, i2.prototype._updateSources = function(t2) { + for (var e3 in this.sourceCaches) + this.sourceCaches[e3].update(t2); + }, i2.prototype._generateCollisionBoxes = function() { + for (var t2 in this.sourceCaches) this._reloadSource(t2); - } - _updatePlacement(e2, i2, o2, a2, r2 = false) { - let s2 = false, n2 = false; - const l2 = {}; - for (const t2 of this._order) { - const i3 = this._layers[t2]; - if ("symbol" !== i3.type) - continue; - if (!l2[i3.source]) { - const t3 = this.sourceCaches[i3.source]; - l2[i3.source] = t3.getRenderableIds(true).map((e3) => t3.getTileByID(e3)).sort((t4, e3) => e3.tileID.overscaledZ - t4.tileID.overscaledZ || (t4.tileID.isLessThan(e3.tileID) ? -1 : 1)); + }, i2.prototype._updatePlacement = function(e3, i3, o2, r2, a2) { + void 0 === a2 && (a2 = false); + for (var n2 = false, s2 = false, l2 = {}, c3 = 0, u2 = this._order; c3 < u2.length; c3 += 1) { + var h3 = this._layers[u2[c3]]; + if ("symbol" === h3.type) { + if (!l2[h3.source]) { + var p3 = this.sourceCaches[h3.source]; + l2[h3.source] = p3.getRenderableIds(true).map(function(t2) { + return p3.getTileByID(t2); + }).sort(function(t2, e4) { + return e4.tileID.overscaledZ - t2.tileID.overscaledZ || (t2.tileID.isLessThan(e4.tileID) ? -1 : 1); + }); + } + var d2 = this.crossTileSymbolIndex.addLayer(h3, l2[h3.source], e3.center.lng); + n2 = n2 || d2; } - const o3 = this.crossTileSymbolIndex.addLayer(i3, l2[i3.source], e2.center.lng); - s2 = s2 || o3; } - if (this.crossTileSymbolIndex.pruneUnusedLayers(this._order), ((r2 = r2 || this._layerOrderChanged || 0 === o2) || !this.pauseablePlacement || this.pauseablePlacement.isDone() && !this.placement.stillRecent(t.exported.now(), e2.zoom)) && (this.pauseablePlacement = new Zt(e2, this.terrain, this._order, r2, i2, o2, a2, this.placement), this._layerOrderChanged = false), this.pauseablePlacement.isDone() ? this.placement.setStale() : (this.pauseablePlacement.continuePlacement(this._order, this._layers, l2), this.pauseablePlacement.isDone() && (this.placement = this.pauseablePlacement.commit(t.exported.now()), n2 = true), s2 && this.pauseablePlacement.placement.setStale()), n2 || s2) - for (const t2 of this._order) { - const e3 = this._layers[t2]; - "symbol" === e3.type && this.placement.updateLayerOpacities(e3, l2[e3.source]); + if (this.crossTileSymbolIndex.pruneUnusedLayers(this._order), ((a2 = a2 || this._layerOrderChanged || 0 === o2) || !this.pauseablePlacement || this.pauseablePlacement.isDone() && !this.placement.stillRecent(t.browser.now(), e3.zoom)) && (this.pauseablePlacement = new Le(e3, this._order, a2, i3, o2, r2, this.placement), this._layerOrderChanged = false), this.pauseablePlacement.isDone() ? this.placement.setStale() : (this.pauseablePlacement.continuePlacement(this._order, this._layers, l2), this.pauseablePlacement.isDone() && (this.placement = this.pauseablePlacement.commit(t.browser.now()), s2 = true), n2 && this.pauseablePlacement.placement.setStale()), s2 || n2) + for (var _24 = 0, f2 = this._order; _24 < f2.length; _24 += 1) { + var m2 = this._layers[f2[_24]]; + "symbol" === m2.type && this.placement.updateLayerOpacities(m2, l2[m2.source]); } - return !this.pauseablePlacement.isDone() || this.placement.hasTransitions(t.exported.now()); - } - _releaseSymbolFadeTiles() { - for (const t2 in this.sourceCaches) + return !this.pauseablePlacement.isDone() || this.placement.hasTransitions(t.browser.now()); + }, i2.prototype._releaseSymbolFadeTiles = function() { + for (var t2 in this.sourceCaches) this.sourceCaches[t2].releaseSymbolFadeTiles(); - } - getImages(t2, e2, i2) { - this.imageManager.getImages(e2.icons, i2), this._updateTilesForChangedImages(); - const o2 = this.sourceCaches[e2.source]; - o2 && o2.setDependencies(e2.tileID.key, e2.type, e2.icons); - } - getGlyphs(t2, e2, i2) { - this.glyphManager.getGlyphs(e2.stacks, i2); - } - getResource(e2, i2, o2) { - return t.makeRequest(i2, o2); - } - } - ee.getSourceType = function(t2) { - return M[t2]; - }, ee.setSourceType = function(t2, e2) { - M[t2] = e2; - }, ee.registerForPluginStateChange = t.registerForPluginStateChange; - var ie = "attribute vec2 a_pos;uniform mat4 u_matrix;varying vec2 v_texture_pos;varying float v_depth;void main() {v_texture_pos=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos,get_elevation(a_pos),1.0);v_depth=gl_Position.z/gl_Position.w;}"; - const oe = { prelude: ae("#ifdef GL_ES\nprecision mediump float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif", "#ifdef GL_ES\nprecision highp float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}\n#ifdef TERRAIN3D\nuniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_offset;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth;\n#endif\nconst highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {\n#ifdef TERRAIN3D\nhighp float d=unpack(texture2D(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));\n#else\nreturn 1.0;\n#endif\n}float calculate_visibility(vec4 pos) {\n#ifdef TERRAIN3D\nvec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;\n#else\nreturn 1.0;\n#endif\n}float ele(vec2 pos) {\n#ifdef TERRAIN3D\nvec4 rgb=(texture2D(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;\n#else\nreturn 0.0;\n#endif\n}float get_elevation(vec2 pos) {\n#ifdef TERRAIN3D\nvec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return (elevation+u_terrain_offset)*u_terrain_exaggeration;\n#else\nreturn 0.0;\n#endif\n}"), background: ae("uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"), backgroundPattern: ae("uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"), circle: ae("varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);float ele=get_elevation(circle_center);v_visibility=calculate_visibility(u_matrix*vec4(circle_center,ele,1.0));if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,ele,1);} else {gl_Position=u_matrix*vec4(circle_center,ele,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}"), clippingMask: ae("void main() {gl_FragColor=vec4(1.0);}", "attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"), heatmap: ae("uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}"), heatmapTexture: ae("uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}"), collisionBox: ae("varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}", "attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,get_elevation(a_pos),1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"), collisionCircle: ae("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}", "attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"), debug: ae("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}", "attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,get_elevation(a_pos),1);}"), fill: ae("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}"), fillOutline: ae("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"), fillOutlinePattern: ae("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"), fillPattern: ae("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}"), fillExtrusion: ae("varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\n#ifdef TERRAIN3D\nattribute vec2 a_centroid;\n#endif\nvarying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;\n#ifdef TERRAIN3D\nfloat baseDelta=10.0;float ele=get_elevation(a_centroid);\n#else\nfloat baseDelta=0.0;float ele=0.0;\n#endif\nbase=max(0.0,ele+base-baseDelta);height=max(0.0,ele+height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}"), fillExtrusionPattern: ae("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\n#ifdef TERRAIN3D\nattribute vec2 a_centroid;\n#endif\nvarying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;\n#ifdef TERRAIN3D\nfloat baseDelta=10.0;float ele=get_elevation(a_centroid);\n#else\nfloat baseDelta=0.0;float ele=0.0;\n#endif\nbase=max(0.0,ele+base-baseDelta);height=max(0.0,ele+height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}"), hillshadePrepare: ae("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"), hillshade: ae("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"), line: ae("uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}"), lineGradient: ae("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}"), linePattern: ae("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}"), lineSDF: ae("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}"), raster: ae("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"), symbolIcon: ae("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),z,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}"), symbolSDF: ae("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}"), symbolTextAndIcon: ae("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}"), terrain: ae("uniform sampler2D u_texture;varying vec2 v_texture_pos;void main() {gl_FragColor=texture2D(u_texture,v_texture_pos);}", ie), terrainDepth: ae("varying float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {gl_FragColor=pack(v_depth);}", ie), terrainCoords: ae("precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;varying vec2 v_texture_pos;void main() {vec4 rgba=texture2D(u_texture,v_texture_pos);gl_FragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}", ie) }; - function ae(t2, e2) { - const i2 = /#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g, o2 = e2.match(/attribute ([\w]+) ([\w]+)/g), a2 = t2.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), r2 = e2.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), s2 = r2 ? r2.concat(a2) : a2, n2 = {}; - return { fragmentSource: t2 = t2.replace(i2, (t3, e3, i3, o3, a3) => (n2[a3] = true, "define" === e3 ? ` -#ifndef HAS_UNIFORM_u_${a3} -varying ${i3} ${o3} ${a3}; -#else -uniform ${i3} ${o3} u_${a3}; -#endif -` : ` -#ifdef HAS_UNIFORM_u_${a3} - ${i3} ${o3} ${a3} = u_${a3}; -#endif -`)), vertexSource: e2 = e2.replace(i2, (t3, e3, i3, o3, a3) => { - const r3 = "float" === o3 ? "vec2" : "vec4", s3 = a3.match(/color/) ? "color" : r3; - return n2[a3] ? "define" === e3 ? ` -#ifndef HAS_UNIFORM_u_${a3} -uniform lowp float u_${a3}_t; -attribute ${i3} ${r3} a_${a3}; -varying ${i3} ${o3} ${a3}; -#else -uniform ${i3} ${o3} u_${a3}; -#endif -` : "vec4" === s3 ? ` -#ifndef HAS_UNIFORM_u_${a3} - ${a3} = a_${a3}; -#else - ${i3} ${o3} ${a3} = u_${a3}; -#endif -` : ` -#ifndef HAS_UNIFORM_u_${a3} - ${a3} = unpack_mix_${s3}(a_${a3}, u_${a3}_t); -#else - ${i3} ${o3} ${a3} = u_${a3}; -#endif -` : "define" === e3 ? ` -#ifndef HAS_UNIFORM_u_${a3} -uniform lowp float u_${a3}_t; -attribute ${i3} ${r3} a_${a3}; -#else -uniform ${i3} ${o3} u_${a3}; -#endif -` : "vec4" === s3 ? ` -#ifndef HAS_UNIFORM_u_${a3} - ${i3} ${o3} ${a3} = a_${a3}; -#else - ${i3} ${o3} ${a3} = u_${a3}; -#endif -` : ` -#ifndef HAS_UNIFORM_u_${a3} - ${i3} ${o3} ${a3} = unpack_mix_${s3}(a_${a3}, u_${a3}_t); -#else - ${i3} ${o3} ${a3} = u_${a3}; -#endif -`; - }), staticAttributes: o2, staticUniforms: s2 }; - } - class re { - constructor() { - this.boundProgram = null, this.boundLayoutVertexBuffer = null, this.boundPaintVertexBuffers = [], this.boundIndexBuffer = null, this.boundVertexOffset = null, this.boundDynamicVertexBuffer = null, this.vao = null; - } - bind(t2, e2, i2, o2, a2, r2, s2, n2, l2) { - this.context = t2; - let c3 = this.boundPaintVertexBuffers.length !== o2.length; - for (let t3 = 0; !c3 && t3 < o2.length; t3++) - this.boundPaintVertexBuffers[t3] !== o2[t3] && (c3 = true); - t2.extVertexArrayObject && this.vao && this.boundProgram === e2 && this.boundLayoutVertexBuffer === i2 && !c3 && this.boundIndexBuffer === a2 && this.boundVertexOffset === r2 && this.boundDynamicVertexBuffer === s2 && this.boundDynamicVertexBuffer2 === n2 && this.boundDynamicVertexBuffer3 === l2 ? (t2.bindVertexArrayOES.set(this.vao), s2 && s2.bind(), a2 && a2.dynamicDraw && a2.bind(), n2 && n2.bind(), l2 && l2.bind()) : this.freshBind(e2, i2, o2, a2, r2, s2, n2, l2); - } - freshBind(t2, e2, i2, o2, a2, r2, s2, n2) { - let l2; - const c3 = t2.numAttributes, h3 = this.context, u2 = h3.gl; - if (h3.extVertexArrayObject) - this.vao && this.destroy(), this.vao = h3.extVertexArrayObject.createVertexArrayOES(), h3.bindVertexArrayOES.set(this.vao), l2 = 0, this.boundProgram = t2, this.boundLayoutVertexBuffer = e2, this.boundPaintVertexBuffers = i2, this.boundIndexBuffer = o2, this.boundVertexOffset = a2, this.boundDynamicVertexBuffer = r2, this.boundDynamicVertexBuffer2 = s2, this.boundDynamicVertexBuffer3 = n2; - else { - l2 = h3.currentNumAttributes || 0; - for (let t3 = c3; t3 < l2; t3++) - u2.disableVertexAttribArray(t3); + }, i2.prototype.getImages = function(t2, e3, i3) { + this.imageManager.getImages(e3.icons, i3), this._updateTilesForChangedImages(); + var o2 = this.sourceCaches[e3.source]; + o2 && o2.setDependencies(e3.tileID.key, e3.type, e3.icons); + }, i2.prototype.getGlyphs = function(t2, e3, i3) { + this.glyphManager.getGlyphs(e3.stacks, i3); + }, i2.prototype.getResource = function(e3, i3, o2) { + return t.makeRequest(i3, o2); + }, i2; + }(t.Evented); + je.getSourceType = function(t2) { + return k[t2]; + }, je.setSourceType = function(t2, e2) { + k[t2] = e2; + }, je.registerForPluginStateChange = t.registerForPluginStateChange; + var Ve = t.createLayout([{ name: "a_pos", type: "Int16", components: 2 }]), Ge = gi("#ifdef GL_ES\nprecision mediump float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif", "#ifdef GL_ES\nprecision highp float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}"), We = gi("uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"), Xe = gi("uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"), He = gi("varying vec3 v_data;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,0,1);} else {gl_Position=u_matrix*vec4(circle_center,0,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}"), Ke = gi("void main() {gl_FragColor=vec4(1.0);}", "attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"), Ye = gi("uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}"), Je = gi("uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}"), Qe = gi("varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}", "attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"), $e = gi("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}", "attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"), ti = gi("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}", "attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,0,1);}"), ei = gi("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}"), ii = gi("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"), oi = gi("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"), ri = gi("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}"), ai = gi("varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}"), ni = gi("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}"), si = gi("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"), li = gi("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"), ci = gi("uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"), ui = gi("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"), hi = gi("uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}"), pi = gi("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}"), di = gi("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"), _i = gi("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}"), fi = gi("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}"), mi = gi("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}"); + function gi(t2, e2) { + var i2 = /#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g, o2 = e2.match(/attribute ([\w]+) ([\w]+)/g), r2 = t2.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), a2 = e2.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), n2 = a2 ? a2.concat(r2) : r2, s2 = {}; + return { fragmentSource: t2 = t2.replace(i2, function(t3, e3, i3, o3, r3) { + return s2[r3] = true, "define" === e3 ? "\n#ifndef HAS_UNIFORM_u_" + r3 + "\nvarying " + i3 + " " + o3 + " " + r3 + ";\n#else\nuniform " + i3 + " " + o3 + " u_" + r3 + ";\n#endif\n" : "\n#ifdef HAS_UNIFORM_u_" + r3 + "\n " + i3 + " " + o3 + " " + r3 + " = u_" + r3 + ";\n#endif\n"; + }), vertexSource: e2 = e2.replace(i2, function(t3, e3, i3, o3, r3) { + var a3 = "float" === o3 ? "vec2" : "vec4", n3 = r3.match(/color/) ? "color" : a3; + return s2[r3] ? "define" === e3 ? "\n#ifndef HAS_UNIFORM_u_" + r3 + "\nuniform lowp float u_" + r3 + "_t;\nattribute " + i3 + " " + a3 + " a_" + r3 + ";\nvarying " + i3 + " " + o3 + " " + r3 + ";\n#else\nuniform " + i3 + " " + o3 + " u_" + r3 + ";\n#endif\n" : "vec4" === n3 ? "\n#ifndef HAS_UNIFORM_u_" + r3 + "\n " + r3 + " = a_" + r3 + ";\n#else\n " + i3 + " " + o3 + " " + r3 + " = u_" + r3 + ";\n#endif\n" : "\n#ifndef HAS_UNIFORM_u_" + r3 + "\n " + r3 + " = unpack_mix_" + n3 + "(a_" + r3 + ", u_" + r3 + "_t);\n#else\n " + i3 + " " + o3 + " " + r3 + " = u_" + r3 + ";\n#endif\n" : "define" === e3 ? "\n#ifndef HAS_UNIFORM_u_" + r3 + "\nuniform lowp float u_" + r3 + "_t;\nattribute " + i3 + " " + a3 + " a_" + r3 + ";\n#else\nuniform " + i3 + " " + o3 + " u_" + r3 + ";\n#endif\n" : "vec4" === n3 ? "\n#ifndef HAS_UNIFORM_u_" + r3 + "\n " + i3 + " " + o3 + " " + r3 + " = a_" + r3 + ";\n#else\n " + i3 + " " + o3 + " " + r3 + " = u_" + r3 + ";\n#endif\n" : "\n#ifndef HAS_UNIFORM_u_" + r3 + "\n " + i3 + " " + o3 + " " + r3 + " = unpack_mix_" + n3 + "(a_" + r3 + ", u_" + r3 + "_t);\n#else\n " + i3 + " " + o3 + " " + r3 + " = u_" + r3 + ";\n#endif\n"; + }), staticAttributes: o2, staticUniforms: n2 }; + } + var vi = Object.freeze({ __proto__: null, prelude: Ge, background: We, backgroundPattern: Xe, circle: He, clippingMask: Ke, heatmap: Ye, heatmapTexture: Je, collisionBox: Qe, collisionCircle: $e, debug: ti, fill: ei, fillOutline: ii, fillOutlinePattern: oi, fillPattern: ri, fillExtrusion: ai, fillExtrusionPattern: ni, hillshadePrepare: si, hillshade: li, line: ci, lineGradient: ui, linePattern: hi, lineSDF: pi, raster: di, symbolIcon: _i, symbolSDF: fi, symbolTextAndIcon: mi }), yi = function() { + this.boundProgram = null, this.boundLayoutVertexBuffer = null, this.boundPaintVertexBuffers = [], this.boundIndexBuffer = null, this.boundVertexOffset = null, this.boundDynamicVertexBuffer = null, this.vao = null; + }; + function xi(t2) { + for (var e2 = [], i2 = 0; i2 < t2.length; i2++) + if (null !== t2[i2]) { + var o2 = t2[i2].split(" "); + e2.push(o2.pop()); } - e2.enableAttributes(u2, t2); - for (const e3 of i2) - e3.enableAttributes(u2, t2); - r2 && r2.enableAttributes(u2, t2), s2 && s2.enableAttributes(u2, t2), n2 && n2.enableAttributes(u2, t2), e2.bind(), e2.setVertexAttribPointers(u2, t2, a2); - for (const e3 of i2) - e3.bind(), e3.setVertexAttribPointers(u2, t2, a2); - r2 && (r2.bind(), r2.setVertexAttribPointers(u2, t2, a2)), o2 && o2.bind(), s2 && (s2.bind(), s2.setVertexAttribPointers(u2, t2, a2)), n2 && (n2.bind(), n2.setVertexAttribPointers(u2, t2, a2)), h3.currentNumAttributes = c3; - } - destroy() { - this.vao && (this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao), this.vao = null); - } - } - function se(t2) { - const e2 = []; - for (let i2 = 0; i2 < t2.length; i2++) { - if (null === t2[i2]) - continue; - const o2 = t2[i2].split(" "); - e2.push(o2.pop()); - } return e2; } - class ne { - constructor(e2, i2, o2, a2, r2, s2, n2) { - const l2 = e2.gl; - this.program = l2.createProgram(); - const c3 = se(o2.staticAttributes), h3 = a2 ? a2.getBinderAttributes() : [], u2 = c3.concat(h3), d2 = oe.prelude.staticUniforms ? se(oe.prelude.staticUniforms) : [], m2 = o2.staticUniforms ? se(o2.staticUniforms) : [], _24 = a2 ? a2.getBinderUniforms() : [], p3 = d2.concat(m2).concat(_24), f2 = []; - for (const t2 of p3) - f2.indexOf(t2) < 0 && f2.push(t2); - const g2 = a2 ? a2.defines() : []; - s2 && g2.push("#define OVERDRAW_INSPECTOR;"), n2 && g2.push("#define TERRAIN3D;"); - const x2 = g2.concat(oe.prelude.fragmentSource, o2.fragmentSource).join("\n"), v3 = g2.concat(oe.prelude.vertexSource, o2.vertexSource).join("\n"), y3 = l2.createShader(l2.FRAGMENT_SHADER); - if (l2.isContextLost()) - return void (this.failedToCreate = true); - l2.shaderSource(y3, x2), l2.compileShader(y3), l2.attachShader(this.program, y3); - const b2 = l2.createShader(l2.VERTEX_SHADER); - if (l2.isContextLost()) - return void (this.failedToCreate = true); - l2.shaderSource(b2, v3), l2.compileShader(b2), l2.attachShader(this.program, b2), this.attributes = {}; - const w2 = {}; - this.numAttributes = u2.length; - for (let t2 = 0; t2 < this.numAttributes; t2++) - u2[t2] && (l2.bindAttribLocation(this.program, t2, u2[t2]), this.attributes[u2[t2]] = t2); - l2.linkProgram(this.program), l2.deleteShader(b2), l2.deleteShader(y3); - for (let t2 = 0; t2 < f2.length; t2++) { - const e3 = f2[t2]; - if (e3 && !w2[e3]) { - const t3 = l2.getUniformLocation(this.program, e3); - t3 && (w2[e3] = t3); + yi.prototype.bind = function(t2, e2, i2, o2, r2, a2, n2, s2) { + this.context = t2; + for (var l2 = this.boundPaintVertexBuffers.length !== o2.length, c3 = 0; !l2 && c3 < o2.length; c3++) + this.boundPaintVertexBuffers[c3] !== o2[c3] && (l2 = true); + t2.extVertexArrayObject && this.vao && this.boundProgram === e2 && this.boundLayoutVertexBuffer === i2 && !l2 && this.boundIndexBuffer === r2 && this.boundVertexOffset === a2 && this.boundDynamicVertexBuffer === n2 && this.boundDynamicVertexBuffer2 === s2 ? (t2.bindVertexArrayOES.set(this.vao), n2 && n2.bind(), r2 && r2.dynamicDraw && r2.bind(), s2 && s2.bind()) : this.freshBind(e2, i2, o2, r2, a2, n2, s2); + }, yi.prototype.freshBind = function(t2, e2, i2, o2, r2, a2, n2) { + var s2, l2 = t2.numAttributes, c3 = this.context, u2 = c3.gl; + if (c3.extVertexArrayObject) + this.vao && this.destroy(), this.vao = c3.extVertexArrayObject.createVertexArrayOES(), c3.bindVertexArrayOES.set(this.vao), s2 = 0, this.boundProgram = t2, this.boundLayoutVertexBuffer = e2, this.boundPaintVertexBuffers = i2, this.boundIndexBuffer = o2, this.boundVertexOffset = r2, this.boundDynamicVertexBuffer = a2, this.boundDynamicVertexBuffer2 = n2; + else { + s2 = c3.currentNumAttributes || 0; + for (var h3 = l2; h3 < s2; h3++) + u2.disableVertexAttribArray(h3); + } + e2.enableAttributes(u2, t2); + for (var p3 = 0, d2 = i2; p3 < d2.length; p3 += 1) + d2[p3].enableAttributes(u2, t2); + a2 && a2.enableAttributes(u2, t2), n2 && n2.enableAttributes(u2, t2), e2.bind(), e2.setVertexAttribPointers(u2, t2, r2); + for (var _24 = 0, f2 = i2; _24 < f2.length; _24 += 1) { + var m2 = f2[_24]; + m2.bind(), m2.setVertexAttribPointers(u2, t2, r2); + } + a2 && (a2.bind(), a2.setVertexAttribPointers(u2, t2, r2)), o2 && o2.bind(), n2 && (n2.bind(), n2.setVertexAttribPointers(u2, t2, r2)), c3.currentNumAttributes = l2; + }, yi.prototype.destroy = function() { + this.vao && (this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao), this.vao = null); + }; + var bi = function(t2, e2, i2, o2, r2, a2) { + var n2 = t2.gl; + this.program = n2.createProgram(); + for (var s2 = xi(i2.staticAttributes), l2 = o2 ? o2.getBinderAttributes() : [], c3 = s2.concat(l2), u2 = i2.staticUniforms ? xi(i2.staticUniforms) : [], h3 = o2 ? o2.getBinderUniforms() : [], p3 = [], d2 = 0, _24 = u2.concat(h3); d2 < _24.length; d2 += 1) { + var f2 = _24[d2]; + p3.indexOf(f2) < 0 && p3.push(f2); + } + var m2 = o2 ? o2.defines() : []; + a2 && m2.push("#define OVERDRAW_INSPECTOR;"); + var g2 = m2.concat(Ge.fragmentSource, i2.fragmentSource).join("\n"), v3 = m2.concat(Ge.vertexSource, i2.vertexSource).join("\n"), y3 = n2.createShader(n2.FRAGMENT_SHADER); + if (n2.isContextLost()) + this.failedToCreate = true; + else { + n2.shaderSource(y3, g2), n2.compileShader(y3), n2.attachShader(this.program, y3); + var x2 = n2.createShader(n2.VERTEX_SHADER); + if (n2.isContextLost()) + this.failedToCreate = true; + else { + n2.shaderSource(x2, v3), n2.compileShader(x2), n2.attachShader(this.program, x2), this.attributes = {}; + var b2 = {}; + this.numAttributes = c3.length; + for (var w2 = 0; w2 < this.numAttributes; w2++) + c3[w2] && (n2.bindAttribLocation(this.program, w2, c3[w2]), this.attributes[c3[w2]] = w2); + n2.linkProgram(this.program), n2.deleteShader(x2), n2.deleteShader(y3); + for (var T2 = 0; T2 < p3.length; T2++) { + var E2 = p3[T2]; + if (E2 && !b2[E2]) { + var I3 = n2.getUniformLocation(this.program, E2); + I3 && (b2[E2] = I3); + } } + this.fixedUniforms = r2(t2, b2), this.binderUniforms = o2 ? o2.getUniforms(t2, b2) : []; } - this.fixedUniforms = r2(e2, w2), this.terrainUniforms = ((e3, i3) => ({ u_depth: new t.Uniform1i(e3, i3.u_depth), u_terrain: new t.Uniform1i(e3, i3.u_terrain), u_terrain_dim: new t.Uniform1f(e3, i3.u_terrain_dim), u_terrain_matrix: new t.UniformMatrix4f(e3, i3.u_terrain_matrix), u_terrain_unpack: new t.Uniform4f(e3, i3.u_terrain_unpack), u_terrain_offset: new t.Uniform1f(e3, i3.u_terrain_offset), u_terrain_exaggeration: new t.Uniform1f(e3, i3.u_terrain_exaggeration) }))(e2, w2), this.binderUniforms = a2 ? a2.getUniforms(e2, w2) : []; } - draw(t2, e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2, d2, m2, _24, p3, f2, g2) { - const x2 = t2.gl; - if (this.failedToCreate) - return; - if (t2.program.set(this.program), t2.setDepthMode(i2), t2.setStencilMode(o2), t2.setColorMode(a2), t2.setCullFace(r2), n2) { - t2.activeTexture.set(x2.TEXTURE2), x2.bindTexture(x2.TEXTURE_2D, n2.depthTexture), t2.activeTexture.set(x2.TEXTURE3), x2.bindTexture(x2.TEXTURE_2D, n2.texture); - for (const t3 in this.terrainUniforms) - this.terrainUniforms[t3].set(n2[t3]); - } - for (const t3 in this.fixedUniforms) - this.fixedUniforms[t3].set(s2[t3]); - _24 && _24.setUniforms(t2, this.binderUniforms, d2, { zoom: m2 }); - let v3 = 0; - switch (e2) { - case x2.LINES: - v3 = 2; - break; - case x2.TRIANGLES: - v3 = 3; - break; - case x2.LINE_STRIP: - v3 = 1; - } - for (const i3 of u2.get()) { - const o3 = i3.vaos || (i3.vaos = {}); - (o3[l2] || (o3[l2] = new re())).bind(t2, this, c3, _24 ? _24.getPaintVertexBuffers() : [], h3, i3.vertexOffset, p3, f2, g2), x2.drawElements(e2, i3.primitiveLength * v3, x2.UNSIGNED_SHORT, i3.primitiveOffset * v3 * 2); - } - } - } - function le(t2, e2, i2) { - const o2 = 1 / bt(i2, 1, e2.transform.tileZoom), a2 = Math.pow(2, i2.tileID.overscaledZ), r2 = i2.tileSize * Math.pow(2, e2.transform.tileZoom) / a2, s2 = r2 * (i2.tileID.canonical.x + i2.tileID.wrap * a2), n2 = r2 * i2.tileID.canonical.y; - return { u_image: 0, u_texsize: i2.imageAtlasTexture.size, u_scale: [o2, t2.fromScale, t2.toScale], u_fade: t2.t, u_pixel_coord_upper: [s2 >> 16, n2 >> 16], u_pixel_coord_lower: [65535 & s2, 65535 & n2] }; - } - const ce = (e2, i2, o2, a2) => { - const r2 = i2.style.light, s2 = r2.properties.get("position"), n2 = [s2.x, s2.y, s2.z], l2 = t.create$1(); - "viewport" === r2.properties.get("anchor") && t.fromRotation(l2, -i2.transform.angle), t.transformMat3(n2, n2, l2); - const c3 = r2.properties.get("color"); - return { u_matrix: e2, u_lightpos: n2, u_lightintensity: r2.properties.get("intensity"), u_lightcolor: [c3.r, c3.g, c3.b], u_vertical_gradient: +o2, u_opacity: a2 }; - }, he = (e2, i2, o2, a2, r2, s2, n2) => t.extend(ce(e2, i2, o2, a2), le(s2, i2, n2), { u_height_factor: -Math.pow(2, r2.overscaledZ) / n2.tileSize / 8 }), ue = (t2) => ({ u_matrix: t2 }), de = (e2, i2, o2, a2) => t.extend(ue(e2), le(o2, i2, a2)), me = (t2, e2) => ({ u_matrix: t2, u_world: e2 }), _e = (e2, i2, o2, a2, r2) => t.extend(de(e2, i2, o2, a2), { u_world: r2 }), pe = (t2, e2, i2, o2) => { - const a2 = t2.transform; - let r2, s2; - if ("map" === o2.paint.get("circle-pitch-alignment")) { - const t3 = bt(i2, 1, a2.zoom); - r2 = true, s2 = [t3, t3]; + }; + function wi(t2, e2, i2) { + var o2 = 1 / pe(i2, 1, e2.transform.tileZoom), r2 = Math.pow(2, i2.tileID.overscaledZ), a2 = i2.tileSize * Math.pow(2, e2.transform.tileZoom) / r2, n2 = a2 * (i2.tileID.canonical.x + i2.tileID.wrap * r2), s2 = a2 * i2.tileID.canonical.y; + return { u_image: 0, u_texsize: i2.imageAtlasTexture.size, u_scale: [o2, t2.fromScale, t2.toScale], u_fade: t2.t, u_pixel_coord_upper: [n2 >> 16, s2 >> 16], u_pixel_coord_lower: [65535 & n2, 65535 & s2] }; + } + bi.prototype.draw = function(t2, e2, i2, o2, r2, a2, n2, s2, l2, c3, u2, h3, p3, d2, _24, f2) { + var m2, g2 = t2.gl; + if (!this.failedToCreate) { + for (var v3 in t2.program.set(this.program), t2.setDepthMode(i2), t2.setStencilMode(o2), t2.setColorMode(r2), t2.setCullFace(a2), this.fixedUniforms) + this.fixedUniforms[v3].set(n2[v3]); + d2 && d2.setUniforms(t2, this.binderUniforms, h3, { zoom: p3 }); + for (var y3 = (m2 = {}, m2[g2.LINES] = 2, m2[g2.TRIANGLES] = 3, m2[g2.LINE_STRIP] = 1, m2)[e2], x2 = 0, b2 = u2.get(); x2 < b2.length; x2 += 1) { + var w2 = b2[x2], T2 = w2.vaos || (w2.vaos = {}); + (T2[s2] || (T2[s2] = new yi())).bind(t2, this, l2, d2 ? d2.getPaintVertexBuffers() : [], c3, w2.vertexOffset, _24, f2), g2.drawElements(e2, w2.primitiveLength * y3, g2.UNSIGNED_SHORT, w2.primitiveOffset * y3 * 2); + } + } + }; + var Ti = function(e2, i2, o2, r2) { + var a2 = i2.style.light, n2 = a2.properties.get("position"), s2 = [n2.x, n2.y, n2.z], l2 = t.create$1(); + "viewport" === a2.properties.get("anchor") && t.fromRotation(l2, -i2.transform.angle), t.transformMat3(s2, s2, l2); + var c3 = a2.properties.get("color"); + return { u_matrix: e2, u_lightpos: s2, u_lightintensity: a2.properties.get("intensity"), u_lightcolor: [c3.r, c3.g, c3.b], u_vertical_gradient: +o2, u_opacity: r2 }; + }, Ei = function(e2, i2, o2, r2, a2, n2, s2) { + return t.extend(Ti(e2, i2, o2, r2), wi(n2, i2, s2), { u_height_factor: -Math.pow(2, a2.overscaledZ) / s2.tileSize / 8 }); + }, Ii = function(t2) { + return { u_matrix: t2 }; + }, Pi = function(e2, i2, o2, r2) { + return t.extend(Ii(e2), wi(o2, i2, r2)); + }, Si = function(t2, e2) { + return { u_matrix: t2, u_world: e2 }; + }, Ci = function(e2, i2, o2, r2, a2) { + return t.extend(Pi(e2, i2, o2, r2), { u_world: a2 }); + }, zi = function(e2, i2, o2, r2) { + var a2, n2, s2 = e2.transform; + if ("map" === r2.paint.get("circle-pitch-alignment")) { + var l2 = pe(o2, 1, s2.zoom); + a2 = true, n2 = [l2, l2]; } else - r2 = false, s2 = a2.pixelsToGLUnits; - return { u_camera_to_center_distance: a2.cameraToCenterDistance, u_scale_with_map: +("map" === o2.paint.get("circle-pitch-scale")), u_matrix: t2.translatePosMatrix(e2.posMatrix, i2, o2.paint.get("circle-translate"), o2.paint.get("circle-translate-anchor")), u_pitch_with_map: +r2, u_device_pixel_ratio: t2.pixelRatio, u_extrude_scale: s2 }; - }, fe = (t2, e2, i2) => { - const o2 = bt(i2, 1, e2.zoom), a2 = Math.pow(2, e2.zoom - i2.tileID.overscaledZ), r2 = i2.tileID.overscaleFactor(); - return { u_matrix: t2, u_camera_to_center_distance: e2.cameraToCenterDistance, u_pixels_to_tile_units: o2, u_extrude_scale: [e2.pixelsToGLUnits[0] / (o2 * a2), e2.pixelsToGLUnits[1] / (o2 * a2)], u_overscale_factor: r2 }; - }, ge = (t2, e2, i2 = 1) => ({ u_matrix: t2, u_color: e2, u_overlay: 0, u_overlay_scale: i2 }), xe = (t2) => ({ u_matrix: t2 }), ve = (t2, e2, i2, o2) => ({ u_matrix: t2, u_extrude_scale: bt(e2, 1, i2), u_intensity: o2 }); - function ye(e2, i2) { - const o2 = Math.pow(2, i2.canonical.z), a2 = i2.canonical.y; - return [new t.MercatorCoordinate(0, a2 / o2).toLngLat().lat, new t.MercatorCoordinate(0, (a2 + 1) / o2).toLngLat().lat]; - } - const be = (t2, e2, i2, o2) => { - const a2 = t2.transform; - return { u_matrix: Ce(t2, e2, i2, o2), u_ratio: 1 / bt(e2, 1, a2.zoom), u_device_pixel_ratio: t2.pixelRatio, u_units_to_pixels: [1 / a2.pixelsToGLUnits[0], 1 / a2.pixelsToGLUnits[1]] }; - }, we = (e2, i2, o2, a2, r2) => t.extend(be(e2, i2, o2, r2), { u_image: 0, u_image_height: a2 }), Te = (t2, e2, i2, o2, a2) => { - const r2 = t2.transform, s2 = Ie(e2, r2); - return { u_matrix: Ce(t2, e2, i2, a2), u_texsize: e2.imageAtlasTexture.size, u_ratio: 1 / bt(e2, 1, r2.zoom), u_device_pixel_ratio: t2.pixelRatio, u_image: 0, u_scale: [s2, o2.fromScale, o2.toScale], u_fade: o2.t, u_units_to_pixels: [1 / r2.pixelsToGLUnits[0], 1 / r2.pixelsToGLUnits[1]] }; - }, Ee = (e2, i2, o2, a2, r2, s2) => { - const n2 = e2.lineAtlas, l2 = Ie(i2, e2.transform), c3 = "round" === o2.layout.get("line-cap"), h3 = n2.getDash(a2.from, c3), u2 = n2.getDash(a2.to, c3), d2 = h3.width * r2.fromScale, m2 = u2.width * r2.toScale; - return t.extend(be(e2, i2, o2, s2), { u_patternscale_a: [l2 / d2, -h3.height / 2], u_patternscale_b: [l2 / m2, -u2.height / 2], u_sdfgamma: n2.width / (256 * Math.min(d2, m2) * e2.pixelRatio) / 2, u_image: 0, u_tex_y_a: h3.y, u_tex_y_b: u2.y, u_mix: r2.t }); + a2 = false, n2 = s2.pixelsToGLUnits; + return { u_camera_to_center_distance: s2.cameraToCenterDistance, u_scale_with_map: +("map" === r2.paint.get("circle-pitch-scale")), u_matrix: e2.translatePosMatrix(i2.posMatrix, o2, r2.paint.get("circle-translate"), r2.paint.get("circle-translate-anchor")), u_pitch_with_map: +a2, u_device_pixel_ratio: t.browser.devicePixelRatio, u_extrude_scale: n2 }; + }, Di = function(t2, e2, i2) { + var o2 = pe(i2, 1, e2.zoom), r2 = Math.pow(2, e2.zoom - i2.tileID.overscaledZ), a2 = i2.tileID.overscaleFactor(); + return { u_matrix: t2, u_camera_to_center_distance: e2.cameraToCenterDistance, u_pixels_to_tile_units: o2, u_extrude_scale: [e2.pixelsToGLUnits[0] / (o2 * r2), e2.pixelsToGLUnits[1] / (o2 * r2)], u_overscale_factor: a2 }; + }, Ai = function(t2, e2, i2) { + return { u_matrix: t2, u_inv_matrix: e2, u_camera_to_center_distance: i2.cameraToCenterDistance, u_viewport_size: [i2.width, i2.height] }; + }, Mi = function(t2, e2, i2) { + return void 0 === i2 && (i2 = 1), { u_matrix: t2, u_color: e2, u_overlay: 0, u_overlay_scale: i2 }; + }, Li = function(t2) { + return { u_matrix: t2 }; + }, Ri = function(t2, e2, i2, o2) { + return { u_matrix: t2, u_extrude_scale: pe(e2, 1, i2), u_intensity: o2 }; + }, ki = function(e2, i2, o2) { + var r2 = e2.transform; + return { u_matrix: Ni(e2, i2, o2), u_ratio: 1 / pe(i2, 1, r2.zoom), u_device_pixel_ratio: t.browser.devicePixelRatio, u_units_to_pixels: [1 / r2.pixelsToGLUnits[0], 1 / r2.pixelsToGLUnits[1]] }; + }, Bi = function(e2, i2, o2, r2) { + return t.extend(ki(e2, i2, o2), { u_image: 0, u_image_height: r2 }); + }, Oi = function(e2, i2, o2, r2) { + var a2 = e2.transform, n2 = Ui(i2, a2); + return { u_matrix: Ni(e2, i2, o2), u_texsize: i2.imageAtlasTexture.size, u_ratio: 1 / pe(i2, 1, a2.zoom), u_device_pixel_ratio: t.browser.devicePixelRatio, u_image: 0, u_scale: [n2, r2.fromScale, r2.toScale], u_fade: r2.t, u_units_to_pixels: [1 / a2.pixelsToGLUnits[0], 1 / a2.pixelsToGLUnits[1]] }; + }, Fi = function(e2, i2, o2, r2, a2) { + var n2 = e2.lineAtlas, s2 = Ui(i2, e2.transform), l2 = "round" === o2.layout.get("line-cap"), c3 = n2.getDash(r2.from, l2), u2 = n2.getDash(r2.to, l2), h3 = c3.width * a2.fromScale, p3 = u2.width * a2.toScale; + return t.extend(ki(e2, i2, o2), { u_patternscale_a: [s2 / h3, -c3.height / 2], u_patternscale_b: [s2 / p3, -u2.height / 2], u_sdfgamma: n2.width / (256 * Math.min(h3, p3) * t.browser.devicePixelRatio) / 2, u_image: 0, u_tex_y_a: c3.y, u_tex_y_b: u2.y, u_mix: a2.t }); }; - function Ie(t2, e2) { - return 1 / bt(t2, 1, e2.tileZoom); + function Ui(t2, e2) { + return 1 / pe(t2, 1, e2.tileZoom); } - function Ce(t2, e2, i2, o2) { - return t2.translatePosMatrix(o2 ? o2.posMatrix : e2.tileID.posMatrix, e2, i2.paint.get("line-translate"), i2.paint.get("line-translate-anchor")); + function Ni(t2, e2, i2) { + return t2.translatePosMatrix(e2.tileID.posMatrix, e2, i2.paint.get("line-translate"), i2.paint.get("line-translate-anchor")); } - const Se = (t2, e2, i2, o2, a2) => { - return { u_matrix: t2, u_tl_parent: e2, u_scale_parent: i2, u_buffer_scale: 1, u_fade_t: o2.mix, u_opacity: o2.opacity * a2.paint.get("raster-opacity"), u_image0: 0, u_image1: 1, u_brightness_low: a2.paint.get("raster-brightness-min"), u_brightness_high: a2.paint.get("raster-brightness-max"), u_saturation_factor: (s2 = a2.paint.get("raster-saturation"), s2 > 0 ? 1 - 1 / (1.001 - s2) : -s2), u_contrast_factor: (r2 = a2.paint.get("raster-contrast"), r2 > 0 ? 1 / (1 - r2) : 1 + r2), u_spin_weights: De(a2.paint.get("raster-hue-rotate")) }; - var r2, s2; + var Zi = function(t2, e2, i2, o2, r2) { + return { u_matrix: t2, u_tl_parent: e2, u_scale_parent: i2, u_buffer_scale: 1, u_fade_t: o2.mix, u_opacity: o2.opacity * r2.paint.get("raster-opacity"), u_image0: 0, u_image1: 1, u_brightness_low: r2.paint.get("raster-brightness-min"), u_brightness_high: r2.paint.get("raster-brightness-max"), u_saturation_factor: (n2 = r2.paint.get("raster-saturation"), n2 > 0 ? 1 - 1 / (1.001 - n2) : -n2), u_contrast_factor: (a2 = r2.paint.get("raster-contrast"), a2 > 0 ? 1 / (1 - a2) : 1 + a2), u_spin_weights: qi(r2.paint.get("raster-hue-rotate")) }; + var a2, n2; }; - function De(t2) { + function qi(t2) { t2 *= Math.PI / 180; - const e2 = Math.sin(t2), i2 = Math.cos(t2); + var e2 = Math.sin(t2), i2 = Math.cos(t2); return [(2 * i2 + 1) / 3, (-Math.sqrt(3) * e2 - i2 + 1) / 3, (Math.sqrt(3) * e2 - i2 + 1) / 3]; } - const ze = (t2, e2, i2, o2, a2, r2, s2, n2, l2, c3) => { - const h3 = a2.transform; - return { u_is_size_zoom_constant: +("constant" === t2 || "source" === t2), u_is_size_feature_constant: +("constant" === t2 || "camera" === t2), u_size_t: e2 ? e2.uSizeT : 0, u_size: e2 ? e2.uSize : 0, u_camera_to_center_distance: h3.cameraToCenterDistance, u_pitch: h3.pitch / 360 * 2 * Math.PI, u_rotate_symbol: +i2, u_aspect_ratio: h3.width / h3.height, u_fade_change: a2.options.fadeDuration ? a2.symbolFadeChange : 1, u_matrix: r2, u_label_plane_matrix: s2, u_coord_matrix: n2, u_is_text: +l2, u_pitch_with_map: +o2, u_texsize: c3, u_texture: 0 }; - }, Pe = (e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2) => { - const d2 = r2.transform; - return t.extend(ze(e2, i2, o2, a2, r2, s2, n2, l2, c3, h3), { u_gamma_scale: a2 ? Math.cos(d2._pitch) * d2.cameraToCenterDistance : 1, u_device_pixel_ratio: r2.pixelRatio, u_is_halo: +u2 }); - }, Me = (e2, i2, o2, a2, r2, s2, n2, l2, c3, h3) => t.extend(Pe(e2, i2, o2, a2, r2, s2, n2, l2, true, c3, true), { u_texsize_icon: h3, u_texture_icon: 1 }), Ae = (t2, e2, i2) => ({ u_matrix: t2, u_opacity: e2, u_color: i2 }), Le = (e2, i2, o2, a2, r2, s2) => t.extend(function(t2, e3, i3, o3) { - const a3 = i3.imageManager.getPattern(t2.from.toString()), r3 = i3.imageManager.getPattern(t2.to.toString()), { width: s3, height: n2 } = i3.imageManager.getPixelSize(), l2 = Math.pow(2, o3.tileID.overscaledZ), c3 = o3.tileSize * Math.pow(2, i3.transform.tileZoom) / l2, h3 = c3 * (o3.tileID.canonical.x + o3.tileID.wrap * l2), u2 = c3 * o3.tileID.canonical.y; - return { u_image: 0, u_pattern_tl_a: a3.tl, u_pattern_br_a: a3.br, u_pattern_tl_b: r3.tl, u_pattern_br_b: r3.br, u_texsize: [s3, n2], u_mix: e3.t, u_pattern_size_a: a3.displaySize, u_pattern_size_b: r3.displaySize, u_scale_a: e3.fromScale, u_scale_b: e3.toScale, u_tile_units_to_pixels: 1 / bt(o3, 1, i3.transform.tileZoom), u_pixel_coord_upper: [h3 >> 16, u2 >> 16], u_pixel_coord_lower: [65535 & h3, 65535 & u2] }; - }(a2, s2, o2, r2), { u_matrix: e2, u_opacity: i2 }), Re = { fillExtrusion: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_lightpos: new t.Uniform3f(e2, i2.u_lightpos), u_lightintensity: new t.Uniform1f(e2, i2.u_lightintensity), u_lightcolor: new t.Uniform3f(e2, i2.u_lightcolor), u_vertical_gradient: new t.Uniform1f(e2, i2.u_vertical_gradient), u_opacity: new t.Uniform1f(e2, i2.u_opacity) }), fillExtrusionPattern: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_lightpos: new t.Uniform3f(e2, i2.u_lightpos), u_lightintensity: new t.Uniform1f(e2, i2.u_lightintensity), u_lightcolor: new t.Uniform3f(e2, i2.u_lightcolor), u_vertical_gradient: new t.Uniform1f(e2, i2.u_vertical_gradient), u_height_factor: new t.Uniform1f(e2, i2.u_height_factor), u_image: new t.Uniform1i(e2, i2.u_image), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_pixel_coord_upper: new t.Uniform2f(e2, i2.u_pixel_coord_upper), u_pixel_coord_lower: new t.Uniform2f(e2, i2.u_pixel_coord_lower), u_scale: new t.Uniform3f(e2, i2.u_scale), u_fade: new t.Uniform1f(e2, i2.u_fade), u_opacity: new t.Uniform1f(e2, i2.u_opacity) }), fill: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }), fillPattern: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_image: new t.Uniform1i(e2, i2.u_image), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_pixel_coord_upper: new t.Uniform2f(e2, i2.u_pixel_coord_upper), u_pixel_coord_lower: new t.Uniform2f(e2, i2.u_pixel_coord_lower), u_scale: new t.Uniform3f(e2, i2.u_scale), u_fade: new t.Uniform1f(e2, i2.u_fade) }), fillOutline: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_world: new t.Uniform2f(e2, i2.u_world) }), fillOutlinePattern: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_world: new t.Uniform2f(e2, i2.u_world), u_image: new t.Uniform1i(e2, i2.u_image), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_pixel_coord_upper: new t.Uniform2f(e2, i2.u_pixel_coord_upper), u_pixel_coord_lower: new t.Uniform2f(e2, i2.u_pixel_coord_lower), u_scale: new t.Uniform3f(e2, i2.u_scale), u_fade: new t.Uniform1f(e2, i2.u_fade) }), circle: (e2, i2) => ({ u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_scale_with_map: new t.Uniform1i(e2, i2.u_scale_with_map), u_pitch_with_map: new t.Uniform1i(e2, i2.u_pitch_with_map), u_extrude_scale: new t.Uniform2f(e2, i2.u_extrude_scale), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }), collisionBox: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_pixels_to_tile_units: new t.Uniform1f(e2, i2.u_pixels_to_tile_units), u_extrude_scale: new t.Uniform2f(e2, i2.u_extrude_scale), u_overscale_factor: new t.Uniform1f(e2, i2.u_overscale_factor) }), collisionCircle: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_inv_matrix: new t.UniformMatrix4f(e2, i2.u_inv_matrix), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_viewport_size: new t.Uniform2f(e2, i2.u_viewport_size) }), debug: (e2, i2) => ({ u_color: new t.UniformColor(e2, i2.u_color), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_overlay: new t.Uniform1i(e2, i2.u_overlay), u_overlay_scale: new t.Uniform1f(e2, i2.u_overlay_scale) }), clippingMask: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }), heatmap: (e2, i2) => ({ u_extrude_scale: new t.Uniform1f(e2, i2.u_extrude_scale), u_intensity: new t.Uniform1f(e2, i2.u_intensity), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }), heatmapTexture: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_world: new t.Uniform2f(e2, i2.u_world), u_image: new t.Uniform1i(e2, i2.u_image), u_color_ramp: new t.Uniform1i(e2, i2.u_color_ramp), u_opacity: new t.Uniform1f(e2, i2.u_opacity) }), hillshade: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_image: new t.Uniform1i(e2, i2.u_image), u_latrange: new t.Uniform2f(e2, i2.u_latrange), u_light: new t.Uniform2f(e2, i2.u_light), u_shadow: new t.UniformColor(e2, i2.u_shadow), u_highlight: new t.UniformColor(e2, i2.u_highlight), u_accent: new t.UniformColor(e2, i2.u_accent) }), hillshadePrepare: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_image: new t.Uniform1i(e2, i2.u_image), u_dimension: new t.Uniform2f(e2, i2.u_dimension), u_zoom: new t.Uniform1f(e2, i2.u_zoom), u_unpack: new t.Uniform4f(e2, i2.u_unpack) }), line: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_ratio: new t.Uniform1f(e2, i2.u_ratio), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_units_to_pixels: new t.Uniform2f(e2, i2.u_units_to_pixels) }), lineGradient: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_ratio: new t.Uniform1f(e2, i2.u_ratio), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_units_to_pixels: new t.Uniform2f(e2, i2.u_units_to_pixels), u_image: new t.Uniform1i(e2, i2.u_image), u_image_height: new t.Uniform1f(e2, i2.u_image_height) }), linePattern: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_ratio: new t.Uniform1f(e2, i2.u_ratio), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_image: new t.Uniform1i(e2, i2.u_image), u_units_to_pixels: new t.Uniform2f(e2, i2.u_units_to_pixels), u_scale: new t.Uniform3f(e2, i2.u_scale), u_fade: new t.Uniform1f(e2, i2.u_fade) }), lineSDF: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_ratio: new t.Uniform1f(e2, i2.u_ratio), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_units_to_pixels: new t.Uniform2f(e2, i2.u_units_to_pixels), u_patternscale_a: new t.Uniform2f(e2, i2.u_patternscale_a), u_patternscale_b: new t.Uniform2f(e2, i2.u_patternscale_b), u_sdfgamma: new t.Uniform1f(e2, i2.u_sdfgamma), u_image: new t.Uniform1i(e2, i2.u_image), u_tex_y_a: new t.Uniform1f(e2, i2.u_tex_y_a), u_tex_y_b: new t.Uniform1f(e2, i2.u_tex_y_b), u_mix: new t.Uniform1f(e2, i2.u_mix) }), raster: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_tl_parent: new t.Uniform2f(e2, i2.u_tl_parent), u_scale_parent: new t.Uniform1f(e2, i2.u_scale_parent), u_buffer_scale: new t.Uniform1f(e2, i2.u_buffer_scale), u_fade_t: new t.Uniform1f(e2, i2.u_fade_t), u_opacity: new t.Uniform1f(e2, i2.u_opacity), u_image0: new t.Uniform1i(e2, i2.u_image0), u_image1: new t.Uniform1i(e2, i2.u_image1), u_brightness_low: new t.Uniform1f(e2, i2.u_brightness_low), u_brightness_high: new t.Uniform1f(e2, i2.u_brightness_high), u_saturation_factor: new t.Uniform1f(e2, i2.u_saturation_factor), u_contrast_factor: new t.Uniform1f(e2, i2.u_contrast_factor), u_spin_weights: new t.Uniform3f(e2, i2.u_spin_weights) }), symbolIcon: (e2, i2) => ({ u_is_size_zoom_constant: new t.Uniform1i(e2, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new t.Uniform1i(e2, i2.u_is_size_feature_constant), u_size_t: new t.Uniform1f(e2, i2.u_size_t), u_size: new t.Uniform1f(e2, i2.u_size), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_pitch: new t.Uniform1f(e2, i2.u_pitch), u_rotate_symbol: new t.Uniform1i(e2, i2.u_rotate_symbol), u_aspect_ratio: new t.Uniform1f(e2, i2.u_aspect_ratio), u_fade_change: new t.Uniform1f(e2, i2.u_fade_change), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_label_plane_matrix: new t.UniformMatrix4f(e2, i2.u_label_plane_matrix), u_coord_matrix: new t.UniformMatrix4f(e2, i2.u_coord_matrix), u_is_text: new t.Uniform1i(e2, i2.u_is_text), u_pitch_with_map: new t.Uniform1i(e2, i2.u_pitch_with_map), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_texture: new t.Uniform1i(e2, i2.u_texture) }), symbolSDF: (e2, i2) => ({ u_is_size_zoom_constant: new t.Uniform1i(e2, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new t.Uniform1i(e2, i2.u_is_size_feature_constant), u_size_t: new t.Uniform1f(e2, i2.u_size_t), u_size: new t.Uniform1f(e2, i2.u_size), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_pitch: new t.Uniform1f(e2, i2.u_pitch), u_rotate_symbol: new t.Uniform1i(e2, i2.u_rotate_symbol), u_aspect_ratio: new t.Uniform1f(e2, i2.u_aspect_ratio), u_fade_change: new t.Uniform1f(e2, i2.u_fade_change), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_label_plane_matrix: new t.UniformMatrix4f(e2, i2.u_label_plane_matrix), u_coord_matrix: new t.UniformMatrix4f(e2, i2.u_coord_matrix), u_is_text: new t.Uniform1i(e2, i2.u_is_text), u_pitch_with_map: new t.Uniform1i(e2, i2.u_pitch_with_map), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_texture: new t.Uniform1i(e2, i2.u_texture), u_gamma_scale: new t.Uniform1f(e2, i2.u_gamma_scale), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_is_halo: new t.Uniform1i(e2, i2.u_is_halo) }), symbolTextAndIcon: (e2, i2) => ({ u_is_size_zoom_constant: new t.Uniform1i(e2, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new t.Uniform1i(e2, i2.u_is_size_feature_constant), u_size_t: new t.Uniform1f(e2, i2.u_size_t), u_size: new t.Uniform1f(e2, i2.u_size), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_pitch: new t.Uniform1f(e2, i2.u_pitch), u_rotate_symbol: new t.Uniform1i(e2, i2.u_rotate_symbol), u_aspect_ratio: new t.Uniform1f(e2, i2.u_aspect_ratio), u_fade_change: new t.Uniform1f(e2, i2.u_fade_change), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_label_plane_matrix: new t.UniformMatrix4f(e2, i2.u_label_plane_matrix), u_coord_matrix: new t.UniformMatrix4f(e2, i2.u_coord_matrix), u_is_text: new t.Uniform1i(e2, i2.u_is_text), u_pitch_with_map: new t.Uniform1i(e2, i2.u_pitch_with_map), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_texsize_icon: new t.Uniform2f(e2, i2.u_texsize_icon), u_texture: new t.Uniform1i(e2, i2.u_texture), u_texture_icon: new t.Uniform1i(e2, i2.u_texture_icon), u_gamma_scale: new t.Uniform1f(e2, i2.u_gamma_scale), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_is_halo: new t.Uniform1i(e2, i2.u_is_halo) }), background: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_opacity: new t.Uniform1f(e2, i2.u_opacity), u_color: new t.UniformColor(e2, i2.u_color) }), backgroundPattern: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_opacity: new t.Uniform1f(e2, i2.u_opacity), u_image: new t.Uniform1i(e2, i2.u_image), u_pattern_tl_a: new t.Uniform2f(e2, i2.u_pattern_tl_a), u_pattern_br_a: new t.Uniform2f(e2, i2.u_pattern_br_a), u_pattern_tl_b: new t.Uniform2f(e2, i2.u_pattern_tl_b), u_pattern_br_b: new t.Uniform2f(e2, i2.u_pattern_br_b), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_mix: new t.Uniform1f(e2, i2.u_mix), u_pattern_size_a: new t.Uniform2f(e2, i2.u_pattern_size_a), u_pattern_size_b: new t.Uniform2f(e2, i2.u_pattern_size_b), u_scale_a: new t.Uniform1f(e2, i2.u_scale_a), u_scale_b: new t.Uniform1f(e2, i2.u_scale_b), u_pixel_coord_upper: new t.Uniform2f(e2, i2.u_pixel_coord_upper), u_pixel_coord_lower: new t.Uniform2f(e2, i2.u_pixel_coord_lower), u_tile_units_to_pixels: new t.Uniform1f(e2, i2.u_tile_units_to_pixels) }), terrain: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_texture: new t.Uniform1i(e2, i2.u_texture) }), terrainDepth: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }), terrainCoords: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_texture: new t.Uniform1i(e2, i2.u_texture), u_terrain_coords_id: new t.Uniform1f(e2, i2.u_terrain_coords_id) }) }; - class ke { - constructor(t2, e2, i2) { - this.context = t2; - const o2 = t2.gl; - this.buffer = o2.createBuffer(), this.dynamicDraw = Boolean(i2), this.context.unbindVAO(), t2.bindElementBuffer.set(this.buffer), o2.bufferData(o2.ELEMENT_ARRAY_BUFFER, e2.arrayBuffer, this.dynamicDraw ? o2.DYNAMIC_DRAW : o2.STATIC_DRAW), this.dynamicDraw || delete e2.arrayBuffer; - } - bind() { - this.context.bindElementBuffer.set(this.buffer); - } - updateData(t2) { - const e2 = this.context.gl; - if (!this.dynamicDraw) - throw new Error("Attempted to update data while not in dynamic mode."); - this.context.unbindVAO(), this.bind(), e2.bufferSubData(e2.ELEMENT_ARRAY_BUFFER, 0, t2.arrayBuffer); - } - destroy() { - this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer); - } - } - const Be = { Int8: "BYTE", Uint8: "UNSIGNED_BYTE", Int16: "SHORT", Uint16: "UNSIGNED_SHORT", Int32: "INT", Uint32: "UNSIGNED_INT", Float32: "FLOAT" }; - class Fe { - constructor(t2, e2, i2, o2) { - this.length = e2.length, this.attributes = i2, this.itemSize = e2.bytesPerElement, this.dynamicDraw = o2, this.context = t2; - const a2 = t2.gl; - this.buffer = a2.createBuffer(), t2.bindVertexBuffer.set(this.buffer), a2.bufferData(a2.ARRAY_BUFFER, e2.arrayBuffer, this.dynamicDraw ? a2.DYNAMIC_DRAW : a2.STATIC_DRAW), this.dynamicDraw || delete e2.arrayBuffer; - } - bind() { - this.context.bindVertexBuffer.set(this.buffer); - } - updateData(t2) { - if (t2.length !== this.length) - throw new Error(`Length of new data is ${t2.length}, which doesn't match current length of ${this.length}`); - const e2 = this.context.gl; - this.bind(), e2.bufferSubData(e2.ARRAY_BUFFER, 0, t2.arrayBuffer); - } - enableAttributes(t2, e2) { - for (let i2 = 0; i2 < this.attributes.length; i2++) { - const o2 = e2.attributes[this.attributes[i2].name]; - void 0 !== o2 && t2.enableVertexAttribArray(o2); - } - } - setVertexAttribPointers(t2, e2, i2) { - for (let o2 = 0; o2 < this.attributes.length; o2++) { - const a2 = this.attributes[o2], r2 = e2.attributes[a2.name]; - void 0 !== r2 && t2.vertexAttribPointer(r2, a2.components, t2[Be[a2.type]], false, this.itemSize, a2.offset + this.itemSize * (i2 || 0)); - } - } - destroy() { - this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer); - } - } - class Oe { - constructor(t2) { - this.gl = t2.gl, this.default = this.getDefault(), this.current = this.default, this.dirty = false; - } - get() { - return this.current; - } - set(t2) { - } - getDefault() { - return this.default; - } - setDefault() { - this.set(this.default); - } - } - class Ue extends Oe { - getDefault() { - return t.Color.transparent; - } - set(t2) { - const e2 = this.current; - (t2.r !== e2.r || t2.g !== e2.g || t2.b !== e2.b || t2.a !== e2.a || this.dirty) && (this.gl.clearColor(t2.r, t2.g, t2.b, t2.a), this.current = t2, this.dirty = false); - } - } - class Ne extends Oe { - getDefault() { - return 1; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.clearDepth(t2), this.current = t2, this.dirty = false); - } - } - class Ge extends Oe { - getDefault() { - return 0; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.clearStencil(t2), this.current = t2, this.dirty = false); - } - } - class Ze extends Oe { - getDefault() { - return [true, true, true, true]; - } - set(t2) { - const e2 = this.current; - (t2[0] !== e2[0] || t2[1] !== e2[1] || t2[2] !== e2[2] || t2[3] !== e2[3] || this.dirty) && (this.gl.colorMask(t2[0], t2[1], t2[2], t2[3]), this.current = t2, this.dirty = false); - } - } - class Ve extends Oe { - getDefault() { - return true; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.depthMask(t2), this.current = t2, this.dirty = false); - } - } - class qe extends Oe { - getDefault() { - return 255; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.stencilMask(t2), this.current = t2, this.dirty = false); - } - } - class je extends Oe { - getDefault() { - return { func: this.gl.ALWAYS, ref: 0, mask: 255 }; - } - set(t2) { - const e2 = this.current; - (t2.func !== e2.func || t2.ref !== e2.ref || t2.mask !== e2.mask || this.dirty) && (this.gl.stencilFunc(t2.func, t2.ref, t2.mask), this.current = t2, this.dirty = false); - } - } - class $e extends Oe { - getDefault() { - const t2 = this.gl; - return [t2.KEEP, t2.KEEP, t2.KEEP]; - } - set(t2) { - const e2 = this.current; - (t2[0] !== e2[0] || t2[1] !== e2[1] || t2[2] !== e2[2] || this.dirty) && (this.gl.stencilOp(t2[0], t2[1], t2[2]), this.current = t2, this.dirty = false); - } - } - class Xe extends Oe { - getDefault() { - return false; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - t2 ? e2.enable(e2.STENCIL_TEST) : e2.disable(e2.STENCIL_TEST), this.current = t2, this.dirty = false; - } - } - class We extends Oe { - getDefault() { - return [0, 1]; - } - set(t2) { - const e2 = this.current; - (t2[0] !== e2[0] || t2[1] !== e2[1] || this.dirty) && (this.gl.depthRange(t2[0], t2[1]), this.current = t2, this.dirty = false); - } - } - class He extends Oe { - getDefault() { - return false; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - t2 ? e2.enable(e2.DEPTH_TEST) : e2.disable(e2.DEPTH_TEST), this.current = t2, this.dirty = false; - } - } - class Ke extends Oe { - getDefault() { - return this.gl.LESS; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.depthFunc(t2), this.current = t2, this.dirty = false); - } - } - class Ye extends Oe { - getDefault() { - return false; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - t2 ? e2.enable(e2.BLEND) : e2.disable(e2.BLEND), this.current = t2, this.dirty = false; - } - } - class Je extends Oe { - getDefault() { - const t2 = this.gl; - return [t2.ONE, t2.ZERO]; - } - set(t2) { - const e2 = this.current; - (t2[0] !== e2[0] || t2[1] !== e2[1] || this.dirty) && (this.gl.blendFunc(t2[0], t2[1]), this.current = t2, this.dirty = false); - } - } - class Qe extends Oe { - getDefault() { - return t.Color.transparent; - } - set(t2) { - const e2 = this.current; - (t2.r !== e2.r || t2.g !== e2.g || t2.b !== e2.b || t2.a !== e2.a || this.dirty) && (this.gl.blendColor(t2.r, t2.g, t2.b, t2.a), this.current = t2, this.dirty = false); - } - } - class ti extends Oe { - getDefault() { - return this.gl.FUNC_ADD; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.blendEquation(t2), this.current = t2, this.dirty = false); - } - } - class ei extends Oe { - getDefault() { - return false; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - t2 ? e2.enable(e2.CULL_FACE) : e2.disable(e2.CULL_FACE), this.current = t2, this.dirty = false; - } - } - class ii extends Oe { - getDefault() { - return this.gl.BACK; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.cullFace(t2), this.current = t2, this.dirty = false); - } - } - class oi extends Oe { - getDefault() { - return this.gl.CCW; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.frontFace(t2), this.current = t2, this.dirty = false); - } - } - class ai extends Oe { - getDefault() { - return null; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.useProgram(t2), this.current = t2, this.dirty = false); - } - } - class ri extends Oe { - getDefault() { - return this.gl.TEXTURE0; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.activeTexture(t2), this.current = t2, this.dirty = false); - } - } - class si extends Oe { - getDefault() { - const t2 = this.gl; - return [0, 0, t2.drawingBufferWidth, t2.drawingBufferHeight]; - } - set(t2) { - const e2 = this.current; - (t2[0] !== e2[0] || t2[1] !== e2[1] || t2[2] !== e2[2] || t2[3] !== e2[3] || this.dirty) && (this.gl.viewport(t2[0], t2[1], t2[2], t2[3]), this.current = t2, this.dirty = false); - } - } - class ni extends Oe { - getDefault() { - return null; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - e2.bindFramebuffer(e2.FRAMEBUFFER, t2), this.current = t2, this.dirty = false; - } - } - class li extends Oe { - getDefault() { - return null; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - e2.bindRenderbuffer(e2.RENDERBUFFER, t2), this.current = t2, this.dirty = false; - } - } - class ci extends Oe { - getDefault() { - return null; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - e2.bindTexture(e2.TEXTURE_2D, t2), this.current = t2, this.dirty = false; - } - } - class hi extends Oe { - getDefault() { - return null; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - e2.bindBuffer(e2.ARRAY_BUFFER, t2), this.current = t2, this.dirty = false; - } - } - class ui extends Oe { - getDefault() { - return null; - } - set(t2) { - const e2 = this.gl; - e2.bindBuffer(e2.ELEMENT_ARRAY_BUFFER, t2), this.current = t2, this.dirty = false; - } - } - class di extends Oe { - constructor(t2) { - super(t2), this.vao = t2.extVertexArrayObject; - } - getDefault() { - return null; - } - set(t2) { - this.vao && (t2 !== this.current || this.dirty) && (this.vao.bindVertexArrayOES(t2), this.current = t2, this.dirty = false); - } - } - class mi extends Oe { - getDefault() { - return 4; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - e2.pixelStorei(e2.UNPACK_ALIGNMENT, t2), this.current = t2, this.dirty = false; - } - } - class _i extends Oe { - getDefault() { - return false; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - e2.pixelStorei(e2.UNPACK_PREMULTIPLY_ALPHA_WEBGL, t2), this.current = t2, this.dirty = false; - } - } - class pi extends Oe { - getDefault() { - return false; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - e2.pixelStorei(e2.UNPACK_FLIP_Y_WEBGL, t2), this.current = t2, this.dirty = false; - } - } - class fi extends Oe { - constructor(t2, e2) { - super(t2), this.context = t2, this.parent = e2; - } - getDefault() { - return null; - } - } - class gi extends fi { - setDirty() { - this.dirty = true; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - this.context.bindFramebuffer.set(this.parent); - const e2 = this.gl; - e2.framebufferTexture2D(e2.FRAMEBUFFER, e2.COLOR_ATTACHMENT0, e2.TEXTURE_2D, t2, 0), this.current = t2, this.dirty = false; - } - } - class xi extends fi { - set(t2) { - if (t2 === this.current && !this.dirty) - return; - this.context.bindFramebuffer.set(this.parent); - const e2 = this.gl; - e2.framebufferRenderbuffer(e2.FRAMEBUFFER, e2.DEPTH_ATTACHMENT, e2.RENDERBUFFER, t2), this.current = t2, this.dirty = false; - } - } - class vi { - constructor(t2, e2, i2, o2) { - this.context = t2, this.width = e2, this.height = i2; - const a2 = t2.gl, r2 = this.framebuffer = a2.createFramebuffer(); - if (this.colorAttachment = new gi(t2, r2), o2 && (this.depthAttachment = new xi(t2, r2)), a2.checkFramebufferStatus(a2.FRAMEBUFFER) !== a2.FRAMEBUFFER_COMPLETE) - throw new Error("Framebuffer is not complete"); - } - destroy() { - const t2 = this.context.gl, e2 = this.colorAttachment.get(); - if (e2 && t2.deleteTexture(e2), this.depthAttachment) { - const e3 = this.depthAttachment.get(); - e3 && t2.deleteRenderbuffer(e3); - } - t2.deleteFramebuffer(this.framebuffer); - } - } - class yi { - constructor(t2, e2, i2) { - this.blendFunction = t2, this.blendColor = e2, this.mask = i2; - } - } - yi.Replace = [1, 0], yi.disabled = new yi(yi.Replace, t.Color.transparent, [false, false, false, false]), yi.unblended = new yi(yi.Replace, t.Color.transparent, [true, true, true, true]), yi.alphaBlended = new yi([1, 771], t.Color.transparent, [true, true, true, true]); - class bi { - constructor(t2) { - this.gl = t2, this.extVertexArrayObject = this.gl.getExtension("OES_vertex_array_object"), this.clearColor = new Ue(this), this.clearDepth = new Ne(this), this.clearStencil = new Ge(this), this.colorMask = new Ze(this), this.depthMask = new Ve(this), this.stencilMask = new qe(this), this.stencilFunc = new je(this), this.stencilOp = new $e(this), this.stencilTest = new Xe(this), this.depthRange = new We(this), this.depthTest = new He(this), this.depthFunc = new Ke(this), this.blend = new Ye(this), this.blendFunc = new Je(this), this.blendColor = new Qe(this), this.blendEquation = new ti(this), this.cullFace = new ei(this), this.cullFaceSide = new ii(this), this.frontFace = new oi(this), this.program = new ai(this), this.activeTexture = new ri(this), this.viewport = new si(this), this.bindFramebuffer = new ni(this), this.bindRenderbuffer = new li(this), this.bindTexture = new ci(this), this.bindVertexBuffer = new hi(this), this.bindElementBuffer = new ui(this), this.bindVertexArrayOES = this.extVertexArrayObject && new di(this), this.pixelStoreUnpack = new mi(this), this.pixelStoreUnpackPremultiplyAlpha = new _i(this), this.pixelStoreUnpackFlipY = new pi(this), this.extTextureFilterAnisotropic = t2.getExtension("EXT_texture_filter_anisotropic") || t2.getExtension("MOZ_EXT_texture_filter_anisotropic") || t2.getExtension("WEBKIT_EXT_texture_filter_anisotropic"), this.extTextureFilterAnisotropic && (this.extTextureFilterAnisotropicMax = t2.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)), this.extTextureHalfFloat = t2.getExtension("OES_texture_half_float"), this.extTextureHalfFloat && (t2.getExtension("OES_texture_half_float_linear"), this.extRenderToTextureHalfFloat = t2.getExtension("EXT_color_buffer_half_float")), this.extTimerQuery = t2.getExtension("EXT_disjoint_timer_query"), this.maxTextureSize = t2.getParameter(t2.MAX_TEXTURE_SIZE); - } - setDefault() { - this.unbindVAO(), this.clearColor.setDefault(), this.clearDepth.setDefault(), this.clearStencil.setDefault(), this.colorMask.setDefault(), this.depthMask.setDefault(), this.stencilMask.setDefault(), this.stencilFunc.setDefault(), this.stencilOp.setDefault(), this.stencilTest.setDefault(), this.depthRange.setDefault(), this.depthTest.setDefault(), this.depthFunc.setDefault(), this.blend.setDefault(), this.blendFunc.setDefault(), this.blendColor.setDefault(), this.blendEquation.setDefault(), this.cullFace.setDefault(), this.cullFaceSide.setDefault(), this.frontFace.setDefault(), this.program.setDefault(), this.activeTexture.setDefault(), this.bindFramebuffer.setDefault(), this.pixelStoreUnpack.setDefault(), this.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.pixelStoreUnpackFlipY.setDefault(); - } - setDirty() { - this.clearColor.dirty = true, this.clearDepth.dirty = true, this.clearStencil.dirty = true, this.colorMask.dirty = true, this.depthMask.dirty = true, this.stencilMask.dirty = true, this.stencilFunc.dirty = true, this.stencilOp.dirty = true, this.stencilTest.dirty = true, this.depthRange.dirty = true, this.depthTest.dirty = true, this.depthFunc.dirty = true, this.blend.dirty = true, this.blendFunc.dirty = true, this.blendColor.dirty = true, this.blendEquation.dirty = true, this.cullFace.dirty = true, this.cullFaceSide.dirty = true, this.frontFace.dirty = true, this.program.dirty = true, this.activeTexture.dirty = true, this.viewport.dirty = true, this.bindFramebuffer.dirty = true, this.bindRenderbuffer.dirty = true, this.bindTexture.dirty = true, this.bindVertexBuffer.dirty = true, this.bindElementBuffer.dirty = true, this.extVertexArrayObject && (this.bindVertexArrayOES.dirty = true), this.pixelStoreUnpack.dirty = true, this.pixelStoreUnpackPremultiplyAlpha.dirty = true, this.pixelStoreUnpackFlipY.dirty = true; - } - createIndexBuffer(t2, e2) { - return new ke(this, t2, e2); - } - createVertexBuffer(t2, e2, i2) { - return new Fe(this, t2, e2, i2); - } - createRenderbuffer(t2, e2, i2) { - const o2 = this.gl, a2 = o2.createRenderbuffer(); - return this.bindRenderbuffer.set(a2), o2.renderbufferStorage(o2.RENDERBUFFER, t2, e2, i2), this.bindRenderbuffer.set(null), a2; - } - createFramebuffer(t2, e2, i2) { - return new vi(this, t2, e2, i2); - } - clear({ color: t2, depth: e2 }) { - const i2 = this.gl; - let o2 = 0; - t2 && (o2 |= i2.COLOR_BUFFER_BIT, this.clearColor.set(t2), this.colorMask.set([true, true, true, true])), void 0 !== e2 && (o2 |= i2.DEPTH_BUFFER_BIT, this.depthRange.set([0, 1]), this.clearDepth.set(e2), this.depthMask.set(true)), i2.clear(o2); - } - setCullFace(t2) { - false === t2.enable ? this.cullFace.set(false) : (this.cullFace.set(true), this.cullFaceSide.set(t2.mode), this.frontFace.set(t2.frontFace)); - } - setDepthMode(t2) { - t2.func !== this.gl.ALWAYS || t2.mask ? (this.depthTest.set(true), this.depthFunc.set(t2.func), this.depthMask.set(t2.mask), this.depthRange.set(t2.range)) : this.depthTest.set(false); - } - setStencilMode(t2) { - t2.test.func !== this.gl.ALWAYS || t2.mask ? (this.stencilTest.set(true), this.stencilMask.set(t2.mask), this.stencilOp.set([t2.fail, t2.depthFail, t2.pass]), this.stencilFunc.set({ func: t2.test.func, ref: t2.ref, mask: t2.test.mask })) : this.stencilTest.set(false); - } - setColorMode(t2) { - a(t2.blendFunction, yi.Replace) ? this.blend.set(false) : (this.blend.set(true), this.blendFunc.set(t2.blendFunction), this.blendColor.set(t2.blendColor)), this.colorMask.set(t2.mask); - } - unbindVAO() { - this.extVertexArrayObject && this.bindVertexArrayOES.set(null); - } - } - class wi { - constructor(t2, e2, i2) { - this.func = t2, this.mask = e2, this.range = i2; - } - } - wi.ReadOnly = false, wi.ReadWrite = true, wi.disabled = new wi(519, wi.ReadOnly, [0, 1]); - const Ti = 7680; - class Ei { - constructor(t2, e2, i2, o2, a2, r2) { - this.test = t2, this.ref = e2, this.mask = i2, this.fail = o2, this.depthFail = a2, this.pass = r2; - } - } - Ei.disabled = new Ei({ func: 519, mask: 0 }, 0, 0, Ti, Ti, Ti); - class Ii { - constructor(t2, e2, i2) { - this.enable = t2, this.mode = e2, this.frontFace = i2; - } - } - let Ci; - function Si(e2, i2, o2, a2, r2, s2, n2) { - const l2 = e2.context, c3 = l2.gl, h3 = e2.useProgram("collisionBox"), u2 = []; - let d2 = 0, m2 = 0; - for (let _25 = 0; _25 < a2.length; _25++) { - const p4 = a2[_25], f3 = i2.getTile(p4), g3 = f3.getBucket(o2); - if (!g3) - continue; - let x3 = p4.posMatrix; - 0 === r2[0] && 0 === r2[1] || (x3 = e2.translatePosMatrix(p4.posMatrix, f3, r2, s2)); - const v4 = n2 ? g3.textCollisionBox : g3.iconCollisionBox, y3 = g3.collisionCircleArray; - if (y3.length > 0) { - const i3 = t.create(), o3 = x3; - t.mul(i3, g3.placementInvProjMatrix, e2.transform.glCoordMatrix), t.mul(i3, i3, g3.placementViewportMatrix), u2.push({ circleArray: y3, circleOffset: m2, transform: o3, invTransform: i3, coord: p4 }), d2 += y3.length / 4, m2 = d2; + var ji, Vi = function(t2, e2, i2, o2, r2, a2, n2, s2, l2, c3) { + var u2 = r2.transform; + return { u_is_size_zoom_constant: +("constant" === t2 || "source" === t2), u_is_size_feature_constant: +("constant" === t2 || "camera" === t2), u_size_t: e2 ? e2.uSizeT : 0, u_size: e2 ? e2.uSize : 0, u_camera_to_center_distance: u2.cameraToCenterDistance, u_pitch: u2.pitch / 360 * 2 * Math.PI, u_rotate_symbol: +i2, u_aspect_ratio: u2.width / u2.height, u_fade_change: r2.options.fadeDuration ? r2.symbolFadeChange : 1, u_matrix: a2, u_label_plane_matrix: n2, u_coord_matrix: s2, u_is_text: +l2, u_pitch_with_map: +o2, u_texsize: c3, u_texture: 0 }; + }, Gi = function(e2, i2, o2, r2, a2, n2, s2, l2, c3, u2, h3) { + var p3 = a2.transform; + return t.extend(Vi(e2, i2, o2, r2, a2, n2, s2, l2, c3, u2), { u_gamma_scale: r2 ? Math.cos(p3._pitch) * p3.cameraToCenterDistance : 1, u_device_pixel_ratio: t.browser.devicePixelRatio, u_is_halo: +h3 }); + }, Wi = function(e2, i2, o2, r2, a2, n2, s2, l2, c3, u2) { + return t.extend(Gi(e2, i2, o2, r2, a2, n2, s2, l2, true, c3, true), { u_texsize_icon: u2, u_texture_icon: 1 }); + }, Xi = function(t2, e2, i2) { + return { u_matrix: t2, u_opacity: e2, u_color: i2 }; + }, Hi = function(e2, i2, o2, r2, a2, n2) { + return t.extend(function(t2, e3, i3, o3) { + var r3 = i3.imageManager.getPattern(t2.from.toString()), a3 = i3.imageManager.getPattern(t2.to.toString()), n3 = i3.imageManager.getPixelSize(), s2 = n3.width, l2 = n3.height, c3 = Math.pow(2, o3.tileID.overscaledZ), u2 = o3.tileSize * Math.pow(2, i3.transform.tileZoom) / c3, h3 = u2 * (o3.tileID.canonical.x + o3.tileID.wrap * c3), p3 = u2 * o3.tileID.canonical.y; + return { u_image: 0, u_pattern_tl_a: r3.tl, u_pattern_br_a: r3.br, u_pattern_tl_b: a3.tl, u_pattern_br_b: a3.br, u_texsize: [s2, l2], u_mix: e3.t, u_pattern_size_a: r3.displaySize, u_pattern_size_b: a3.displaySize, u_scale_a: e3.fromScale, u_scale_b: e3.toScale, u_tile_units_to_pixels: 1 / pe(o3, 1, i3.transform.tileZoom), u_pixel_coord_upper: [h3 >> 16, p3 >> 16], u_pixel_coord_lower: [65535 & h3, 65535 & p3] }; + }(r2, n2, o2, a2), { u_matrix: e2, u_opacity: i2 }); + }, Ki = { fillExtrusion: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_lightpos: new t.Uniform3f(e2, i2.u_lightpos), u_lightintensity: new t.Uniform1f(e2, i2.u_lightintensity), u_lightcolor: new t.Uniform3f(e2, i2.u_lightcolor), u_vertical_gradient: new t.Uniform1f(e2, i2.u_vertical_gradient), u_opacity: new t.Uniform1f(e2, i2.u_opacity) }; + }, fillExtrusionPattern: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_lightpos: new t.Uniform3f(e2, i2.u_lightpos), u_lightintensity: new t.Uniform1f(e2, i2.u_lightintensity), u_lightcolor: new t.Uniform3f(e2, i2.u_lightcolor), u_vertical_gradient: new t.Uniform1f(e2, i2.u_vertical_gradient), u_height_factor: new t.Uniform1f(e2, i2.u_height_factor), u_image: new t.Uniform1i(e2, i2.u_image), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_pixel_coord_upper: new t.Uniform2f(e2, i2.u_pixel_coord_upper), u_pixel_coord_lower: new t.Uniform2f(e2, i2.u_pixel_coord_lower), u_scale: new t.Uniform3f(e2, i2.u_scale), u_fade: new t.Uniform1f(e2, i2.u_fade), u_opacity: new t.Uniform1f(e2, i2.u_opacity) }; + }, fill: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }; + }, fillPattern: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_image: new t.Uniform1i(e2, i2.u_image), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_pixel_coord_upper: new t.Uniform2f(e2, i2.u_pixel_coord_upper), u_pixel_coord_lower: new t.Uniform2f(e2, i2.u_pixel_coord_lower), u_scale: new t.Uniform3f(e2, i2.u_scale), u_fade: new t.Uniform1f(e2, i2.u_fade) }; + }, fillOutline: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_world: new t.Uniform2f(e2, i2.u_world) }; + }, fillOutlinePattern: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_world: new t.Uniform2f(e2, i2.u_world), u_image: new t.Uniform1i(e2, i2.u_image), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_pixel_coord_upper: new t.Uniform2f(e2, i2.u_pixel_coord_upper), u_pixel_coord_lower: new t.Uniform2f(e2, i2.u_pixel_coord_lower), u_scale: new t.Uniform3f(e2, i2.u_scale), u_fade: new t.Uniform1f(e2, i2.u_fade) }; + }, circle: function(e2, i2) { + return { u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_scale_with_map: new t.Uniform1i(e2, i2.u_scale_with_map), u_pitch_with_map: new t.Uniform1i(e2, i2.u_pitch_with_map), u_extrude_scale: new t.Uniform2f(e2, i2.u_extrude_scale), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }; + }, collisionBox: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_pixels_to_tile_units: new t.Uniform1f(e2, i2.u_pixels_to_tile_units), u_extrude_scale: new t.Uniform2f(e2, i2.u_extrude_scale), u_overscale_factor: new t.Uniform1f(e2, i2.u_overscale_factor) }; + }, collisionCircle: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_inv_matrix: new t.UniformMatrix4f(e2, i2.u_inv_matrix), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_viewport_size: new t.Uniform2f(e2, i2.u_viewport_size) }; + }, debug: function(e2, i2) { + return { u_color: new t.UniformColor(e2, i2.u_color), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_overlay: new t.Uniform1i(e2, i2.u_overlay), u_overlay_scale: new t.Uniform1f(e2, i2.u_overlay_scale) }; + }, clippingMask: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }; + }, heatmap: function(e2, i2) { + return { u_extrude_scale: new t.Uniform1f(e2, i2.u_extrude_scale), u_intensity: new t.Uniform1f(e2, i2.u_intensity), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }; + }, heatmapTexture: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_world: new t.Uniform2f(e2, i2.u_world), u_image: new t.Uniform1i(e2, i2.u_image), u_color_ramp: new t.Uniform1i(e2, i2.u_color_ramp), u_opacity: new t.Uniform1f(e2, i2.u_opacity) }; + }, hillshade: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_image: new t.Uniform1i(e2, i2.u_image), u_latrange: new t.Uniform2f(e2, i2.u_latrange), u_light: new t.Uniform2f(e2, i2.u_light), u_shadow: new t.UniformColor(e2, i2.u_shadow), u_highlight: new t.UniformColor(e2, i2.u_highlight), u_accent: new t.UniformColor(e2, i2.u_accent) }; + }, hillshadePrepare: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_image: new t.Uniform1i(e2, i2.u_image), u_dimension: new t.Uniform2f(e2, i2.u_dimension), u_zoom: new t.Uniform1f(e2, i2.u_zoom), u_unpack: new t.Uniform4f(e2, i2.u_unpack) }; + }, line: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_ratio: new t.Uniform1f(e2, i2.u_ratio), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_units_to_pixels: new t.Uniform2f(e2, i2.u_units_to_pixels) }; + }, lineGradient: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_ratio: new t.Uniform1f(e2, i2.u_ratio), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_units_to_pixels: new t.Uniform2f(e2, i2.u_units_to_pixels), u_image: new t.Uniform1i(e2, i2.u_image), u_image_height: new t.Uniform1f(e2, i2.u_image_height) }; + }, linePattern: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_ratio: new t.Uniform1f(e2, i2.u_ratio), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_image: new t.Uniform1i(e2, i2.u_image), u_units_to_pixels: new t.Uniform2f(e2, i2.u_units_to_pixels), u_scale: new t.Uniform3f(e2, i2.u_scale), u_fade: new t.Uniform1f(e2, i2.u_fade) }; + }, lineSDF: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_ratio: new t.Uniform1f(e2, i2.u_ratio), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_units_to_pixels: new t.Uniform2f(e2, i2.u_units_to_pixels), u_patternscale_a: new t.Uniform2f(e2, i2.u_patternscale_a), u_patternscale_b: new t.Uniform2f(e2, i2.u_patternscale_b), u_sdfgamma: new t.Uniform1f(e2, i2.u_sdfgamma), u_image: new t.Uniform1i(e2, i2.u_image), u_tex_y_a: new t.Uniform1f(e2, i2.u_tex_y_a), u_tex_y_b: new t.Uniform1f(e2, i2.u_tex_y_b), u_mix: new t.Uniform1f(e2, i2.u_mix) }; + }, raster: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_tl_parent: new t.Uniform2f(e2, i2.u_tl_parent), u_scale_parent: new t.Uniform1f(e2, i2.u_scale_parent), u_buffer_scale: new t.Uniform1f(e2, i2.u_buffer_scale), u_fade_t: new t.Uniform1f(e2, i2.u_fade_t), u_opacity: new t.Uniform1f(e2, i2.u_opacity), u_image0: new t.Uniform1i(e2, i2.u_image0), u_image1: new t.Uniform1i(e2, i2.u_image1), u_brightness_low: new t.Uniform1f(e2, i2.u_brightness_low), u_brightness_high: new t.Uniform1f(e2, i2.u_brightness_high), u_saturation_factor: new t.Uniform1f(e2, i2.u_saturation_factor), u_contrast_factor: new t.Uniform1f(e2, i2.u_contrast_factor), u_spin_weights: new t.Uniform3f(e2, i2.u_spin_weights) }; + }, symbolIcon: function(e2, i2) { + return { u_is_size_zoom_constant: new t.Uniform1i(e2, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new t.Uniform1i(e2, i2.u_is_size_feature_constant), u_size_t: new t.Uniform1f(e2, i2.u_size_t), u_size: new t.Uniform1f(e2, i2.u_size), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_pitch: new t.Uniform1f(e2, i2.u_pitch), u_rotate_symbol: new t.Uniform1i(e2, i2.u_rotate_symbol), u_aspect_ratio: new t.Uniform1f(e2, i2.u_aspect_ratio), u_fade_change: new t.Uniform1f(e2, i2.u_fade_change), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_label_plane_matrix: new t.UniformMatrix4f(e2, i2.u_label_plane_matrix), u_coord_matrix: new t.UniformMatrix4f(e2, i2.u_coord_matrix), u_is_text: new t.Uniform1i(e2, i2.u_is_text), u_pitch_with_map: new t.Uniform1i(e2, i2.u_pitch_with_map), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_texture: new t.Uniform1i(e2, i2.u_texture) }; + }, symbolSDF: function(e2, i2) { + return { u_is_size_zoom_constant: new t.Uniform1i(e2, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new t.Uniform1i(e2, i2.u_is_size_feature_constant), u_size_t: new t.Uniform1f(e2, i2.u_size_t), u_size: new t.Uniform1f(e2, i2.u_size), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_pitch: new t.Uniform1f(e2, i2.u_pitch), u_rotate_symbol: new t.Uniform1i(e2, i2.u_rotate_symbol), u_aspect_ratio: new t.Uniform1f(e2, i2.u_aspect_ratio), u_fade_change: new t.Uniform1f(e2, i2.u_fade_change), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_label_plane_matrix: new t.UniformMatrix4f(e2, i2.u_label_plane_matrix), u_coord_matrix: new t.UniformMatrix4f(e2, i2.u_coord_matrix), u_is_text: new t.Uniform1i(e2, i2.u_is_text), u_pitch_with_map: new t.Uniform1i(e2, i2.u_pitch_with_map), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_texture: new t.Uniform1i(e2, i2.u_texture), u_gamma_scale: new t.Uniform1f(e2, i2.u_gamma_scale), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_is_halo: new t.Uniform1i(e2, i2.u_is_halo) }; + }, symbolTextAndIcon: function(e2, i2) { + return { u_is_size_zoom_constant: new t.Uniform1i(e2, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new t.Uniform1i(e2, i2.u_is_size_feature_constant), u_size_t: new t.Uniform1f(e2, i2.u_size_t), u_size: new t.Uniform1f(e2, i2.u_size), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_pitch: new t.Uniform1f(e2, i2.u_pitch), u_rotate_symbol: new t.Uniform1i(e2, i2.u_rotate_symbol), u_aspect_ratio: new t.Uniform1f(e2, i2.u_aspect_ratio), u_fade_change: new t.Uniform1f(e2, i2.u_fade_change), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_label_plane_matrix: new t.UniformMatrix4f(e2, i2.u_label_plane_matrix), u_coord_matrix: new t.UniformMatrix4f(e2, i2.u_coord_matrix), u_is_text: new t.Uniform1i(e2, i2.u_is_text), u_pitch_with_map: new t.Uniform1i(e2, i2.u_pitch_with_map), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_texsize_icon: new t.Uniform2f(e2, i2.u_texsize_icon), u_texture: new t.Uniform1i(e2, i2.u_texture), u_texture_icon: new t.Uniform1i(e2, i2.u_texture_icon), u_gamma_scale: new t.Uniform1f(e2, i2.u_gamma_scale), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_is_halo: new t.Uniform1i(e2, i2.u_is_halo) }; + }, background: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_opacity: new t.Uniform1f(e2, i2.u_opacity), u_color: new t.UniformColor(e2, i2.u_color) }; + }, backgroundPattern: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_opacity: new t.Uniform1f(e2, i2.u_opacity), u_image: new t.Uniform1i(e2, i2.u_image), u_pattern_tl_a: new t.Uniform2f(e2, i2.u_pattern_tl_a), u_pattern_br_a: new t.Uniform2f(e2, i2.u_pattern_br_a), u_pattern_tl_b: new t.Uniform2f(e2, i2.u_pattern_tl_b), u_pattern_br_b: new t.Uniform2f(e2, i2.u_pattern_br_b), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_mix: new t.Uniform1f(e2, i2.u_mix), u_pattern_size_a: new t.Uniform2f(e2, i2.u_pattern_size_a), u_pattern_size_b: new t.Uniform2f(e2, i2.u_pattern_size_b), u_scale_a: new t.Uniform1f(e2, i2.u_scale_a), u_scale_b: new t.Uniform1f(e2, i2.u_scale_b), u_pixel_coord_upper: new t.Uniform2f(e2, i2.u_pixel_coord_upper), u_pixel_coord_lower: new t.Uniform2f(e2, i2.u_pixel_coord_lower), u_tile_units_to_pixels: new t.Uniform1f(e2, i2.u_tile_units_to_pixels) }; + } }; + function Yi(e2, i2, o2, r2, a2, n2, s2) { + for (var l2 = e2.context, c3 = l2.gl, u2 = e2.useProgram("collisionBox"), h3 = [], p3 = 0, d2 = 0, _24 = 0; _24 < r2.length; _24++) { + var f2 = r2[_24], m2 = i2.getTile(f2), g2 = m2.getBucket(o2); + if (g2) { + var v3 = f2.posMatrix; + 0 === a2[0] && 0 === a2[1] || (v3 = e2.translatePosMatrix(f2.posMatrix, m2, a2, n2)); + var y3 = s2 ? g2.textCollisionBox : g2.iconCollisionBox, x2 = g2.collisionCircleArray; + if (x2.length > 0) { + var b2 = t.create(), w2 = v3; + t.mul(b2, g2.placementInvProjMatrix, e2.transform.glCoordMatrix), t.mul(b2, b2, g2.placementViewportMatrix), h3.push({ circleArray: x2, circleOffset: d2, transform: w2, invTransform: b2 }), d2 = p3 += x2.length / 4; + } + y3 && u2.draw(l2, c3.LINES, It.disabled, Pt.disabled, e2.colorModeForRenderPass(), Ct.disabled, Di(v3, e2.transform, m2), o2.id, y3.layoutVertexBuffer, y3.indexBuffer, y3.segments, null, e2.transform.zoom, null, null, y3.collisionVertexBuffer); } - v4 && h3.draw(l2, c3.LINES, wi.disabled, Ei.disabled, e2.colorModeForRenderPass(), Ii.disabled, fe(x3, e2.transform, f3), e2.style.terrain && e2.style.terrain.getTerrainData(p4), o2.id, v4.layoutVertexBuffer, v4.indexBuffer, v4.segments, null, e2.transform.zoom, null, null, v4.collisionVertexBuffer); } - if (!n2 || !u2.length) - return; - const _24 = e2.useProgram("collisionCircle"), p3 = new t.CollisionCircleLayoutArray(); - p3.resize(4 * d2), p3._trim(); - let f2 = 0; - for (const t2 of u2) - for (let e3 = 0; e3 < t2.circleArray.length / 4; e3++) { - const i3 = 4 * e3, o3 = t2.circleArray[i3 + 0], a3 = t2.circleArray[i3 + 1], r3 = t2.circleArray[i3 + 2], s3 = t2.circleArray[i3 + 3]; - p3.emplace(f2++, o3, a3, r3, s3, 0), p3.emplace(f2++, o3, a3, r3, s3, 1), p3.emplace(f2++, o3, a3, r3, s3, 2), p3.emplace(f2++, o3, a3, r3, s3, 3); - } - (!Ci || Ci.length < 2 * d2) && (Ci = function(e3) { - const i3 = 2 * e3, o3 = new t.QuadTriangleArray(); - o3.resize(i3), o3._trim(); - for (let t2 = 0; t2 < i3; t2++) { - const e4 = 6 * t2; - o3.uint16[e4 + 0] = 4 * t2 + 0, o3.uint16[e4 + 1] = 4 * t2 + 1, o3.uint16[e4 + 2] = 4 * t2 + 2, o3.uint16[e4 + 3] = 4 * t2 + 2, o3.uint16[e4 + 4] = 4 * t2 + 3, o3.uint16[e4 + 5] = 4 * t2 + 0; - } - return o3; - }(d2)); - const g2 = l2.createIndexBuffer(Ci, true), x2 = l2.createVertexBuffer(p3, t.collisionCircleLayout.members, true); - for (const i3 of u2) { - const a3 = { u_matrix: i3.transform, u_inv_matrix: i3.invTransform, u_camera_to_center_distance: (v3 = e2.transform).cameraToCenterDistance, u_viewport_size: [v3.width, v3.height] }; - _24.draw(l2, c3.TRIANGLES, wi.disabled, Ei.disabled, e2.colorModeForRenderPass(), Ii.disabled, a3, e2.style.terrain && e2.style.terrain.getTerrainData(i3.coord), o2.id, x2, g2, t.SegmentVector.simpleSegment(0, 2 * i3.circleOffset, i3.circleArray.length, i3.circleArray.length / 2), null, e2.transform.zoom, null, null, null); - } - var v3; - x2.destroy(), g2.destroy(); - } - Ii.disabled = new Ii(false, 1029, 2305), Ii.backCCW = new Ii(true, 1029, 2305); - const Di = t.identity(new Float32Array(16)); - function zi(e2, i2, o2, a2, r2, s2) { - const { horizontalAlign: n2, verticalAlign: l2 } = t.getAnchorAlignment(e2), c3 = -(n2 - 0.5) * i2, h3 = -(l2 - 0.5) * o2, u2 = t.evaluateVariableOffset(e2, a2); - return new t.pointGeometry((c3 / r2 + u2[0]) * s2, (h3 / r2 + u2[1]) * s2); - } - function Pi(e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2) { - const d2 = e2.text.placedSymbolArray, m2 = e2.text.dynamicLayoutVertexArray, _24 = e2.icon.dynamicLayoutVertexArray, p3 = {}; - m2.clear(); - for (let _25 = 0; _25 < d2.length; _25++) { - const f2 = d2.get(_25), g2 = e2.allowVerticalPlacement && !f2.placedOrientation, x2 = f2.hidden || !f2.crossTileID || g2 ? null : a2[f2.crossTileID]; - if (x2) { - const a3 = new t.pointGeometry(f2.anchorX, f2.anchorY), d3 = nt(a3, o2 ? n2 : s2, u2), _26 = lt(r2.cameraToCenterDistance, d3.signedDistanceFromCamera); - let g3 = t.evaluateSizeForFeature(e2.textSizeData, c3, f2) * _26 / t.ONE_EM; - o2 && (g3 *= e2.tilePixelRatio / l2); - const { width: v3, height: y3, anchor: b2, textOffset: w2, textBoxScale: T2 } = x2, E2 = zi(b2, v3, y3, w2, T2, g3), I3 = o2 ? nt(a3.add(E2), s2, u2).point : d3.point.add(i2 ? E2.rotate(-r2.angle) : E2), C2 = e2.allowVerticalPlacement && f2.placedOrientation === t.WritingMode.vertical ? Math.PI / 2 : 0; - for (let e3 = 0; e3 < f2.numGlyphs; e3++) - t.addDynamicAttributes(m2, I3, C2); - h3 && f2.associatedIconIndex >= 0 && (p3[f2.associatedIconIndex] = { shiftedAnchor: I3, angle: C2 }); + if (s2 && h3.length) { + var T2 = e2.useProgram("collisionCircle"), E2 = new t.StructArrayLayout2f1f2i16(); + E2.resize(4 * p3), E2._trim(); + for (var I3 = 0, P2 = 0, S2 = h3; P2 < S2.length; P2 += 1) + for (var C2 = S2[P2], z2 = 0; z2 < C2.circleArray.length / 4; z2++) { + var D2 = 4 * z2, A3 = C2.circleArray[D2 + 0], M2 = C2.circleArray[D2 + 1], L2 = C2.circleArray[D2 + 2], R2 = C2.circleArray[D2 + 3]; + E2.emplace(I3++, A3, M2, L2, R2, 0), E2.emplace(I3++, A3, M2, L2, R2, 1), E2.emplace(I3++, A3, M2, L2, R2, 2), E2.emplace(I3++, A3, M2, L2, R2, 3); + } + (!ji || ji.length < 2 * p3) && (ji = function(e3) { + var i3 = 2 * e3, o3 = new t.StructArrayLayout3ui6(); + o3.resize(i3), o3._trim(); + for (var r3 = 0; r3 < i3; r3++) { + var a3 = 6 * r3; + o3.uint16[a3 + 0] = 4 * r3 + 0, o3.uint16[a3 + 1] = 4 * r3 + 1, o3.uint16[a3 + 2] = 4 * r3 + 2, o3.uint16[a3 + 3] = 4 * r3 + 2, o3.uint16[a3 + 4] = 4 * r3 + 3, o3.uint16[a3 + 5] = 4 * r3 + 0; + } + return o3; + }(p3)); + for (var k2 = l2.createIndexBuffer(ji, true), B2 = l2.createVertexBuffer(E2, t.collisionCircleLayout.members, true), O3 = 0, F2 = h3; O3 < F2.length; O3 += 1) { + var U2 = F2[O3], N2 = Ai(U2.transform, U2.invTransform, e2.transform); + T2.draw(l2, c3.TRIANGLES, It.disabled, Pt.disabled, e2.colorModeForRenderPass(), Ct.disabled, N2, o2.id, B2, k2, t.SegmentVector.simpleSegment(0, 2 * U2.circleOffset, U2.circleArray.length, U2.circleArray.length / 2), null, e2.transform.zoom, null, null, null); + } + B2.destroy(), k2.destroy(); + } + } + var Ji = t.identity(new Float32Array(16)); + function Qi(e2, i2, o2, r2, a2, n2) { + var s2 = t.getAnchorAlignment(e2), l2 = -(s2.horizontalAlign - 0.5) * i2, c3 = -(s2.verticalAlign - 0.5) * o2, u2 = t.evaluateVariableOffset(e2, r2); + return new t.Point((l2 / a2 + u2[0]) * n2, (c3 / a2 + u2[1]) * n2); + } + function $i(e2, i2, o2, r2, a2, n2, s2, l2, c3, u2, h3) { + var p3 = e2.text.placedSymbolArray, d2 = e2.text.dynamicLayoutVertexArray, _24 = e2.icon.dynamicLayoutVertexArray, f2 = {}; + d2.clear(); + for (var m2 = 0; m2 < p3.length; m2++) { + var g2 = p3.get(m2), v3 = g2.hidden || !g2.crossTileID || e2.allowVerticalPlacement && !g2.placedOrientation ? null : r2[g2.crossTileID]; + if (v3) { + var y3 = new t.Point(g2.anchorX, g2.anchorY), x2 = $t(y3, o2 ? l2 : s2), b2 = te(n2.cameraToCenterDistance, x2.signedDistanceFromCamera), w2 = a2.evaluateSizeForFeature(e2.textSizeData, u2, g2) * b2 / t.ONE_EM; + o2 && (w2 *= e2.tilePixelRatio / c3); + for (var T2 = Qi(v3.anchor, v3.width, v3.height, v3.textOffset, v3.textBoxScale, w2), E2 = o2 ? $t(y3.add(T2), s2).point : x2.point.add(i2 ? T2.rotate(-n2.angle) : T2), I3 = e2.allowVerticalPlacement && g2.placedOrientation === t.WritingMode.vertical ? Math.PI / 2 : 0, P2 = 0; P2 < g2.numGlyphs; P2++) + t.addDynamicAttributes(d2, E2, I3); + h3 && g2.associatedIconIndex >= 0 && (f2[g2.associatedIconIndex] = { shiftedAnchor: E2, angle: I3 }); } else - gt(f2.numGlyphs, m2); + ce(g2.numGlyphs, d2); } if (h3) { _24.clear(); - const i3 = e2.icon.placedSymbolArray; - for (let e3 = 0; e3 < i3.length; e3++) { - const o3 = i3.get(e3); - if (o3.hidden) - gt(o3.numGlyphs, _24); + for (var S2 = e2.icon.placedSymbolArray, C2 = 0; C2 < S2.length; C2++) { + var z2 = S2.get(C2); + if (z2.hidden) + ce(z2.numGlyphs, _24); else { - const i4 = p3[e3]; - if (i4) - for (let e4 = 0; e4 < o3.numGlyphs; e4++) - t.addDynamicAttributes(_24, i4.shiftedAnchor, i4.angle); + var D2 = f2[C2]; + if (D2) + for (var A3 = 0; A3 < z2.numGlyphs; A3++) + t.addDynamicAttributes(_24, D2.shiftedAnchor, D2.angle); else - gt(o3.numGlyphs, _24); + ce(z2.numGlyphs, _24); } } e2.icon.dynamicLayoutVertexBuffer.updateData(_24); } - e2.text.dynamicLayoutVertexBuffer.updateData(m2); + e2.text.dynamicLayoutVertexBuffer.updateData(d2); } - function Mi(t2, e2, i2) { + function to(t2, e2, i2) { return i2.iconsInText && e2 ? "symbolTextAndIcon" : t2 ? "symbolSDF" : "symbolIcon"; } - function Ai(e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2, d2) { - const m2 = e2.context, _24 = m2.gl, p3 = e2.transform, f2 = "map" === l2, g2 = "map" === c3, x2 = "viewport" !== l2 && "point" !== o2.layout.get("symbol-placement"), v3 = f2 && !g2 && !x2, y3 = !o2.layout.get("symbol-sort-key").isConstant(); - let b2 = false; - const w2 = e2.depthModeForSublayer(0, wi.ReadOnly), T2 = o2.layout.get("text-variable-anchor"), E2 = []; - for (const l3 of a2) { - const a3 = i2.getTile(l3), c4 = a3.getBucket(o2); - if (!c4) - continue; - const u3 = r2 ? c4.text : c4.icon; - if (!u3 || !u3.segments.get().length) - continue; - const d3 = u3.programConfigurations.get(o2.id), m3 = r2 || c4.sdfIcons, w3 = r2 ? c4.textSizeData : c4.iconSizeData, I3 = g2 || 0 !== p3.pitch, C2 = e2.useProgram(Mi(m3, r2, c4), d3), S2 = t.evaluateSizeForZoom(w3, p3.zoom), D2 = e2.style.terrain && e2.style.terrain.getTerrainData(l3); - let z2, P2, M2, A3, L2 = [0, 0], R2 = null; - if (r2) { - if (P2 = a3.glyphAtlasTexture, M2 = _24.LINEAR, z2 = a3.glyphAtlasTexture.size, c4.iconsInText) { - L2 = a3.imageAtlasTexture.size, R2 = a3.imageAtlasTexture; - const t2 = "composite" === w3.kind || "camera" === w3.kind; - A3 = I3 || e2.options.rotating || e2.options.zooming || t2 ? _24.LINEAR : _24.NEAREST; + function eo(e2, i2, o2, r2, a2, n2, s2, l2, c3, u2, h3, p3) { + for (var d2 = e2.context, _24 = d2.gl, f2 = e2.transform, m2 = "map" === l2, g2 = "map" === c3, v3 = m2 && "point" !== o2.layout.get("symbol-placement"), y3 = m2 && !g2 && !v3, x2 = void 0 !== o2.layout.get("symbol-sort-key").constantOr(1), b2 = false, w2 = e2.depthModeForSublayer(0, It.ReadOnly), T2 = o2.layout.get("text-variable-anchor"), E2 = [], I3 = 0, P2 = r2; I3 < P2.length; I3 += 1) { + var S2 = P2[I3], C2 = i2.getTile(S2), z2 = C2.getBucket(o2); + if (z2) { + var D2 = a2 ? z2.text : z2.icon; + if (D2 && D2.segments.get().length) { + var A3 = D2.programConfigurations.get(o2.id), M2 = a2 || z2.sdfIcons, L2 = a2 ? z2.textSizeData : z2.iconSizeData, R2 = g2 || 0 !== f2.pitch, k2 = e2.useProgram(to(M2, a2, z2), A3), B2 = t.evaluateSizeForZoom(L2, f2.zoom), O3 = void 0, F2 = [0, 0], U2 = void 0, N2 = void 0, Z3 = null, q2 = void 0; + if (a2) + U2 = C2.glyphAtlasTexture, N2 = _24.LINEAR, O3 = C2.glyphAtlasTexture.size, z2.iconsInText && (F2 = C2.imageAtlasTexture.size, Z3 = C2.imageAtlasTexture, q2 = R2 || e2.options.rotating || e2.options.zooming || "composite" === L2.kind || "camera" === L2.kind ? _24.LINEAR : _24.NEAREST); + else { + var j2 = 1 !== o2.layout.get("icon-size").constantOr(0) || z2.iconsNeedLinear; + U2 = C2.imageAtlasTexture, N2 = M2 || e2.options.rotating || e2.options.zooming || j2 || R2 ? _24.LINEAR : _24.NEAREST, O3 = C2.imageAtlasTexture.size; + } + var V3 = pe(C2, 1, e2.transform.zoom), G2 = Jt(S2.posMatrix, g2, m2, e2.transform, V3), W2 = Qt(S2.posMatrix, g2, m2, e2.transform, V3), X2 = T2 && z2.hasTextData(), H2 = "none" !== o2.layout.get("icon-text-fit") && X2 && z2.hasIconData(); + v3 && ie(z2, S2.posMatrix, e2, a2, G2, W2, g2, u2); + var K2 = e2.translatePosMatrix(S2.posMatrix, C2, n2, s2), Y2 = v3 || a2 && T2 || H2 ? Ji : G2, J2 = e2.translatePosMatrix(W2, C2, n2, s2, true), Q2 = M2 && 0 !== o2.paint.get(a2 ? "text-halo-width" : "icon-halo-width").constantOr(1), $2 = { program: k2, buffers: D2, uniformValues: M2 ? z2.iconsInText ? Wi(L2.kind, B2, y3, g2, e2, K2, Y2, J2, O3, F2) : Gi(L2.kind, B2, y3, g2, e2, K2, Y2, J2, a2, O3, true) : Vi(L2.kind, B2, y3, g2, e2, K2, Y2, J2, a2, O3), atlasTexture: U2, atlasTextureIcon: Z3, atlasInterpolation: N2, atlasInterpolationIcon: q2, isSDF: M2, hasHalo: Q2 }; + if (x2 && z2.canOverlap) { + b2 = true; + for (var tt2 = 0, et2 = D2.segments.get(); tt2 < et2.length; tt2 += 1) { + var it2 = et2[tt2]; + E2.push({ segments: new t.SegmentVector([it2]), sortKey: it2.sortKey, state: $2 }); + } + } else + E2.push({ segments: D2.segments, sortKey: 0, state: $2 }); } - } else { - const t2 = 1 !== o2.layout.get("icon-size").constantOr(0) || c4.iconsNeedLinear; - P2 = a3.imageAtlasTexture, M2 = m3 || e2.options.rotating || e2.options.zooming || t2 || I3 ? _24.LINEAR : _24.NEAREST, z2 = a3.imageAtlasTexture.size; - } - const k2 = bt(a3, 1, e2.transform.zoom), B2 = rt(l3.posMatrix, g2, f2, e2.transform, k2), F2 = st(l3.posMatrix, g2, f2, e2.transform, k2), O3 = T2 && c4.hasTextData(), U2 = "none" !== o2.layout.get("icon-text-fit") && O3 && c4.hasIconData(); - if (x2) { - const t2 = e2.style.terrain ? (t3, i4) => e2.style.terrain.getElevation(l3, t3, i4) : null, i3 = "map" === o2.layout.get("text-rotation-alignment"); - ht(c4, l3.posMatrix, e2, r2, B2, F2, g2, h3, i3, t2); - } - const N2 = e2.translatePosMatrix(l3.posMatrix, a3, s2, n2), G2 = x2 || r2 && T2 || U2 ? Di : B2, Z3 = e2.translatePosMatrix(F2, a3, s2, n2, true), V3 = m3 && 0 !== o2.paint.get(r2 ? "text-halo-width" : "icon-halo-width").constantOr(1); - let q2; - q2 = m3 ? c4.iconsInText ? Me(w3.kind, S2, v3, g2, e2, N2, G2, Z3, z2, L2) : Pe(w3.kind, S2, v3, g2, e2, N2, G2, Z3, r2, z2, true) : ze(w3.kind, S2, v3, g2, e2, N2, G2, Z3, r2, z2); - const j2 = { program: C2, buffers: u3, uniformValues: q2, atlasTexture: P2, atlasTextureIcon: R2, atlasInterpolation: M2, atlasInterpolationIcon: A3, isSDF: m3, hasHalo: V3 }; - if (y3 && c4.canOverlap) { - b2 = true; - const e3 = u3.segments.get(); - for (const i3 of e3) - E2.push({ segments: new t.SegmentVector([i3]), sortKey: i3.sortKey, state: j2, terrainData: D2 }); - } else - E2.push({ segments: u3.segments, sortKey: 0, state: j2, terrainData: D2 }); - } - b2 && E2.sort((t2, e3) => t2.sortKey - e3.sortKey); - for (const t2 of E2) { - const i3 = t2.state; - if (m2.activeTexture.set(_24.TEXTURE0), i3.atlasTexture.bind(i3.atlasInterpolation, _24.CLAMP_TO_EDGE), i3.atlasTextureIcon && (m2.activeTexture.set(_24.TEXTURE1), i3.atlasTextureIcon && i3.atlasTextureIcon.bind(i3.atlasInterpolationIcon, _24.CLAMP_TO_EDGE)), i3.isSDF) { - const a3 = i3.uniformValues; - i3.hasHalo && (a3.u_is_halo = 1, Li(i3.buffers, t2.segments, o2, e2, i3.program, w2, u2, d2, a3, t2.terrainData)), a3.u_is_halo = 0; } - Li(i3.buffers, t2.segments, o2, e2, i3.program, w2, u2, d2, i3.uniformValues, t2.terrainData); - } - } - function Li(t2, e2, i2, o2, a2, r2, s2, n2, l2, c3) { - const h3 = o2.context; - a2.draw(h3, h3.gl.TRIANGLES, r2, s2, n2, Ii.disabled, l2, c3, i2.id, t2.layoutVertexBuffer, t2.indexBuffer, e2, i2.paint, o2.transform.zoom, t2.programConfigurations.get(i2.id), t2.dynamicLayoutVertexBuffer, t2.opacityVertexBuffer); - } - function Ri(t2, e2, i2, o2, a2, r2, s2) { - const n2 = t2.context.gl, l2 = i2.paint.get("fill-pattern"), c3 = l2 && l2.constantOr(1), h3 = i2.getCrossfadeParameters(); - let u2, d2, m2, _24, p3; - s2 ? (d2 = c3 && !i2.getPaintProperty("fill-outline-color") ? "fillOutlinePattern" : "fillOutline", u2 = n2.LINES) : (d2 = c3 ? "fillPattern" : "fill", u2 = n2.TRIANGLES); - for (const f2 of o2) { - const o3 = e2.getTile(f2); - if (c3 && !o3.patternsLoaded()) - continue; - const g2 = o3.getBucket(i2); - if (!g2) - continue; - const x2 = g2.programConfigurations.get(i2.id), v3 = t2.useProgram(d2, x2), y3 = t2.style.terrain && t2.style.terrain.getTerrainData(f2); - c3 && (t2.context.activeTexture.set(n2.TEXTURE0), o3.imageAtlasTexture.bind(n2.LINEAR, n2.CLAMP_TO_EDGE), x2.updatePaintBuffers(h3)); - const b2 = l2.constantOr(null); - if (b2 && o3.imageAtlas) { - const t3 = o3.imageAtlas, e3 = t3.patternPositions[b2.to.toString()], i3 = t3.patternPositions[b2.from.toString()]; - e3 && i3 && x2.setConstantPatternPositions(e3, i3); - } - const w2 = y3 ? f2 : null, T2 = t2.translatePosMatrix(w2 ? w2.posMatrix : f2.posMatrix, o3, i2.paint.get("fill-translate"), i2.paint.get("fill-translate-anchor")); - if (s2) { - _24 = g2.indexBuffer2, p3 = g2.segments2; - const e3 = [n2.drawingBufferWidth, n2.drawingBufferHeight]; - m2 = "fillOutlinePattern" === d2 && c3 ? _e(T2, t2, h3, o3, e3) : me(T2, e3); - } else - _24 = g2.indexBuffer, p3 = g2.segments, m2 = c3 ? de(T2, t2, h3, o3) : ue(T2); - v3.draw(t2.context, u2, a2, t2.stencilModeForClipping(f2), r2, Ii.disabled, m2, y3, i2.id, g2.layoutVertexBuffer, _24, p3, i2.paint, t2.transform.zoom, x2); } - } - function ki(t2, e2, i2, o2, a2, r2, s2) { - const n2 = t2.context, l2 = n2.gl, c3 = i2.paint.get("fill-extrusion-pattern"), h3 = c3.constantOr(1), u2 = i2.getCrossfadeParameters(), d2 = i2.paint.get("fill-extrusion-opacity"); - for (const m2 of o2) { - const o3 = e2.getTile(m2), _24 = o3.getBucket(i2); - if (!_24) - continue; - const p3 = t2.style.terrain && t2.style.terrain.getTerrainData(m2), f2 = _24.programConfigurations.get(i2.id), g2 = t2.useProgram(h3 ? "fillExtrusionPattern" : "fillExtrusion", f2); - h3 && (t2.context.activeTexture.set(l2.TEXTURE0), o3.imageAtlasTexture.bind(l2.LINEAR, l2.CLAMP_TO_EDGE), f2.updatePaintBuffers(u2)); - const x2 = c3.constantOr(null); - if (x2 && o3.imageAtlas) { - const t3 = o3.imageAtlas, e3 = t3.patternPositions[x2.to.toString()], i3 = t3.patternPositions[x2.from.toString()]; - e3 && i3 && f2.setConstantPatternPositions(e3, i3); + b2 && E2.sort(function(t2, e3) { + return t2.sortKey - e3.sortKey; + }); + for (var ot2 = 0, rt2 = E2; ot2 < rt2.length; ot2 += 1) { + var at2 = rt2[ot2], nt2 = at2.state; + if (d2.activeTexture.set(_24.TEXTURE0), nt2.atlasTexture.bind(nt2.atlasInterpolation, _24.CLAMP_TO_EDGE), nt2.atlasTextureIcon && (d2.activeTexture.set(_24.TEXTURE1), nt2.atlasTextureIcon && nt2.atlasTextureIcon.bind(nt2.atlasInterpolationIcon, _24.CLAMP_TO_EDGE)), nt2.isSDF) { + var st2 = nt2.uniformValues; + nt2.hasHalo && (st2.u_is_halo = 1, io(nt2.buffers, at2.segments, o2, e2, nt2.program, w2, h3, p3, st2)), st2.u_is_halo = 0; + } + io(nt2.buffers, at2.segments, o2, e2, nt2.program, w2, h3, p3, nt2.uniformValues); + } + } + function io(t2, e2, i2, o2, r2, a2, n2, s2, l2) { + var c3 = o2.context; + r2.draw(c3, c3.gl.TRIANGLES, a2, n2, s2, Ct.disabled, l2, i2.id, t2.layoutVertexBuffer, t2.indexBuffer, e2, i2.paint, o2.transform.zoom, t2.programConfigurations.get(i2.id), t2.dynamicLayoutVertexBuffer, t2.opacityVertexBuffer); + } + function oo(t2, e2, i2, o2, r2, a2, n2) { + var s2, l2, c3, u2, h3, p3 = t2.context.gl, d2 = i2.paint.get("fill-pattern"), _24 = d2 && d2.constantOr(1), f2 = i2.getCrossfadeParameters(); + n2 ? (l2 = _24 && !i2.getPaintProperty("fill-outline-color") ? "fillOutlinePattern" : "fillOutline", s2 = p3.LINES) : (l2 = _24 ? "fillPattern" : "fill", s2 = p3.TRIANGLES); + for (var m2 = 0, g2 = o2; m2 < g2.length; m2 += 1) { + var v3 = g2[m2], y3 = e2.getTile(v3); + if (!_24 || y3.patternsLoaded()) { + var x2 = y3.getBucket(i2); + if (x2) { + var b2 = x2.programConfigurations.get(i2.id), w2 = t2.useProgram(l2, b2); + _24 && (t2.context.activeTexture.set(p3.TEXTURE0), y3.imageAtlasTexture.bind(p3.LINEAR, p3.CLAMP_TO_EDGE), b2.updatePaintBuffers(f2)); + var T2 = d2.constantOr(null); + if (T2 && y3.imageAtlas) { + var E2 = y3.imageAtlas, I3 = E2.patternPositions[T2.to.toString()], P2 = E2.patternPositions[T2.from.toString()]; + I3 && P2 && b2.setConstantPatternPositions(I3, P2); + } + var S2 = t2.translatePosMatrix(v3.posMatrix, y3, i2.paint.get("fill-translate"), i2.paint.get("fill-translate-anchor")); + if (n2) { + u2 = x2.indexBuffer2, h3 = x2.segments2; + var C2 = [p3.drawingBufferWidth, p3.drawingBufferHeight]; + c3 = "fillOutlinePattern" === l2 && _24 ? Ci(S2, t2, f2, y3, C2) : Si(S2, C2); + } else + u2 = x2.indexBuffer, h3 = x2.segments, c3 = _24 ? Pi(S2, t2, f2, y3) : Ii(S2); + w2.draw(t2.context, s2, r2, t2.stencilModeForClipping(v3), a2, Ct.disabled, c3, i2.id, x2.layoutVertexBuffer, u2, h3, i2.paint, t2.transform.zoom, b2); + } } - const v3 = t2.translatePosMatrix(m2.posMatrix, o3, i2.paint.get("fill-extrusion-translate"), i2.paint.get("fill-extrusion-translate-anchor")), y3 = i2.paint.get("fill-extrusion-vertical-gradient"), b2 = h3 ? he(v3, t2, y3, d2, m2, u2, o3) : ce(v3, t2, y3, d2); - g2.draw(n2, n2.gl.TRIANGLES, a2, r2, s2, Ii.backCCW, b2, p3, i2.id, _24.layoutVertexBuffer, _24.indexBuffer, _24.segments, i2.paint, t2.transform.zoom, f2, t2.style.terrain && _24.centroidVertexBuffer); } } - function Bi(t2, e2, i2, o2, a2, r2, s2) { - const n2 = t2.context, l2 = n2.gl, c3 = i2.fbo; - if (!c3) - return; - const h3 = t2.useProgram("hillshade"), u2 = t2.style.terrain && t2.style.terrain.getTerrainData(e2); - n2.activeTexture.set(l2.TEXTURE0), l2.bindTexture(l2.TEXTURE_2D, c3.colorAttachment.get()), h3.draw(n2, l2.TRIANGLES, a2, r2, s2, Ii.disabled, ((t3, e3, i3, o3) => { - const a3 = i3.paint.get("hillshade-shadow-color"), r3 = i3.paint.get("hillshade-highlight-color"), s3 = i3.paint.get("hillshade-accent-color"); - let n3 = i3.paint.get("hillshade-illumination-direction") * (Math.PI / 180); - "viewport" === i3.paint.get("hillshade-illumination-anchor") && (n3 -= t3.transform.angle); - const l3 = !t3.options.moving; - return { u_matrix: o3 ? o3.posMatrix : t3.transform.calculatePosMatrix(e3.tileID.toUnwrapped(), l3), u_image: 0, u_latrange: ye(0, e3.tileID), u_light: [i3.paint.get("hillshade-exaggeration"), n3], u_shadow: a3, u_highlight: r3, u_accent: s3 }; - })(t2, i2, o2, u2 ? e2 : null), u2, o2.id, t2.rasterBoundsBuffer, t2.quadTriangleIndexBuffer, t2.rasterBoundsSegments); - } - function Fi(e2, i2, o2, a2, r2, s2) { - const n2 = e2.context, c3 = n2.gl, h3 = i2.dem; - if (h3 && h3.data) { - const u2 = h3.dim, d2 = h3.stride, m2 = h3.getPixels(); - if (n2.activeTexture.set(c3.TEXTURE1), n2.pixelStoreUnpackPremultiplyAlpha.set(false), i2.demTexture = i2.demTexture || e2.getTileTexture(d2), i2.demTexture) { - const t2 = i2.demTexture; - t2.update(m2, { premultiply: false }), t2.bind(c3.NEAREST, c3.CLAMP_TO_EDGE); + function ro(t2, e2, i2, o2, r2, a2, n2) { + for (var s2 = t2.context, l2 = s2.gl, c3 = i2.paint.get("fill-extrusion-pattern"), u2 = c3.constantOr(1), h3 = i2.getCrossfadeParameters(), p3 = i2.paint.get("fill-extrusion-opacity"), d2 = 0, _24 = o2; d2 < _24.length; d2 += 1) { + var f2 = _24[d2], m2 = e2.getTile(f2), g2 = m2.getBucket(i2); + if (g2) { + var v3 = g2.programConfigurations.get(i2.id), y3 = t2.useProgram(u2 ? "fillExtrusionPattern" : "fillExtrusion", v3); + u2 && (t2.context.activeTexture.set(l2.TEXTURE0), m2.imageAtlasTexture.bind(l2.LINEAR, l2.CLAMP_TO_EDGE), v3.updatePaintBuffers(h3)); + var x2 = c3.constantOr(null); + if (x2 && m2.imageAtlas) { + var b2 = m2.imageAtlas, w2 = b2.patternPositions[x2.to.toString()], T2 = b2.patternPositions[x2.from.toString()]; + w2 && T2 && v3.setConstantPatternPositions(w2, T2); + } + var E2 = t2.translatePosMatrix(f2.posMatrix, m2, i2.paint.get("fill-extrusion-translate"), i2.paint.get("fill-extrusion-translate-anchor")), I3 = i2.paint.get("fill-extrusion-vertical-gradient"), P2 = u2 ? Ei(E2, t2, I3, p3, f2, h3, m2) : Ti(E2, t2, I3, p3); + y3.draw(s2, s2.gl.TRIANGLES, r2, a2, n2, Ct.backCCW, P2, i2.id, g2.layoutVertexBuffer, g2.indexBuffer, g2.segments, i2.paint, t2.transform.zoom, v3); + } + } + } + function ao(e2, i2, o2, r2, a2, n2) { + var s2 = e2.context, l2 = s2.gl, c3 = i2.fbo; + if (c3) { + var u2 = e2.useProgram("hillshade"); + s2.activeTexture.set(l2.TEXTURE0), l2.bindTexture(l2.TEXTURE_2D, c3.colorAttachment.get()); + var h3 = function(e3, i3, o3) { + var r3 = o3.paint.get("hillshade-shadow-color"), a3 = o3.paint.get("hillshade-highlight-color"), n3 = o3.paint.get("hillshade-accent-color"), s3 = o3.paint.get("hillshade-illumination-direction") * (Math.PI / 180); + "viewport" === o3.paint.get("hillshade-illumination-anchor") && (s3 -= e3.transform.angle); + var l3, c4, u3, h4 = !e3.options.moving; + return { u_matrix: e3.transform.calculatePosMatrix(i3.tileID.toUnwrapped(), h4), u_image: 0, u_latrange: (l3 = i3.tileID, c4 = Math.pow(2, l3.canonical.z), u3 = l3.canonical.y, [new t.MercatorCoordinate(0, u3 / c4).toLngLat().lat, new t.MercatorCoordinate(0, (u3 + 1) / c4).toLngLat().lat]), u_light: [o3.paint.get("hillshade-exaggeration"), s3], u_shadow: r3, u_highlight: a3, u_accent: n3 }; + }(e2, i2, o2); + u2.draw(s2, l2.TRIANGLES, r2, a2, n2, Ct.disabled, h3, o2.id, e2.rasterBoundsBuffer, e2.quadTriangleIndexBuffer, e2.rasterBoundsSegments); + } + } + function no(e2, i2, o2, r2, a2, n2) { + var s2 = e2.context, l2 = s2.gl, c3 = i2.dem; + if (c3 && c3.data) { + var u2 = c3.dim, h3 = c3.stride, p3 = c3.getPixels(); + if (s2.activeTexture.set(l2.TEXTURE1), s2.pixelStoreUnpackPremultiplyAlpha.set(false), i2.demTexture = i2.demTexture || e2.getTileTexture(h3), i2.demTexture) { + var d2 = i2.demTexture; + d2.update(p3, { premultiply: false }), d2.bind(l2.NEAREST, l2.CLAMP_TO_EDGE); } else - i2.demTexture = new l(n2, m2, c3.RGBA, { premultiply: false }), i2.demTexture.bind(c3.NEAREST, c3.CLAMP_TO_EDGE); - n2.activeTexture.set(c3.TEXTURE0); - let _24 = i2.fbo; + i2.demTexture = new t.Texture(s2, p3, l2.RGBA, { premultiply: false }), i2.demTexture.bind(l2.NEAREST, l2.CLAMP_TO_EDGE); + s2.activeTexture.set(l2.TEXTURE0); + var _24 = i2.fbo; if (!_24) { - const t2 = new l(n2, { width: u2, height: u2, data: null }, c3.RGBA); - t2.bind(c3.LINEAR, c3.CLAMP_TO_EDGE), _24 = i2.fbo = n2.createFramebuffer(u2, u2, true), _24.colorAttachment.set(t2.texture); + var f2 = new t.Texture(s2, { width: u2, height: u2, data: null }, l2.RGBA); + f2.bind(l2.LINEAR, l2.CLAMP_TO_EDGE), (_24 = i2.fbo = s2.createFramebuffer(u2, u2, true)).colorAttachment.set(f2.texture); } - n2.bindFramebuffer.set(_24.framebuffer), n2.viewport.set([0, 0, u2, u2]), e2.useProgram("hillshadePrepare").draw(n2, c3.TRIANGLES, a2, r2, s2, Ii.disabled, ((e3, i3) => { - const o3 = i3.stride, a3 = t.create(); - return t.ortho(a3, 0, t.EXTENT, -t.EXTENT, 0, 0, 1), t.translate(a3, a3, [0, -t.EXTENT, 0]), { u_matrix: a3, u_image: 1, u_dimension: [o3, o3], u_zoom: e3.overscaledZ, u_unpack: i3.getUnpackVector() }; - })(i2.tileID, h3), null, o2.id, e2.rasterBoundsBuffer, e2.quadTriangleIndexBuffer, e2.rasterBoundsSegments), i2.needsHillshadePrepare = false; + s2.bindFramebuffer.set(_24.framebuffer), s2.viewport.set([0, 0, u2, u2]), e2.useProgram("hillshadePrepare").draw(s2, l2.TRIANGLES, r2, a2, n2, Ct.disabled, function(e3, i3) { + var o3 = i3.stride, r3 = t.create(); + return t.ortho(r3, 0, t.EXTENT, -t.EXTENT, 0, 0, 1), t.translate(r3, r3, [0, -t.EXTENT, 0]), { u_matrix: r3, u_image: 1, u_dimension: [o3, o3], u_zoom: e3.overscaledZ, u_unpack: i3.getUnpackVector() }; + }(i2.tileID, c3), o2.id, e2.rasterBoundsBuffer, e2.quadTriangleIndexBuffer, e2.rasterBoundsSegments), i2.needsHillshadePrepare = false; } } - function Oi(e2, i2, o2, a2, r2, s2) { - const n2 = a2.paint.get("raster-fade-duration"); - if (!s2 && n2 > 0) { - const a3 = t.exported.now(), s3 = (a3 - e2.timeAdded) / n2, l2 = i2 ? (a3 - i2.timeAdded) / n2 : -1, c3 = o2.getSource(), h3 = r2.coveringZoomLevel({ tileSize: c3.tileSize, roundZoom: c3.roundZoom }), u2 = !i2 || Math.abs(i2.tileID.overscaledZ - h3) > Math.abs(e2.tileID.overscaledZ - h3), d2 = u2 && e2.refreshedUponExpiration ? 1 : t.clamp(u2 ? s3 : 1 - l2, 0, 1); - return e2.refreshedUponExpiration && s3 >= 1 && (e2.refreshedUponExpiration = false), i2 ? { opacity: 1, mix: 1 - d2 } : { opacity: d2, mix: 0 }; + function so(e2, i2, o2, r2, a2) { + var n2 = r2.paint.get("raster-fade-duration"); + if (n2 > 0) { + var s2 = t.browser.now(), l2 = (s2 - e2.timeAdded) / n2, c3 = i2 ? (s2 - i2.timeAdded) / n2 : -1, u2 = o2.getSource(), h3 = a2.coveringZoomLevel({ tileSize: u2.tileSize, roundZoom: u2.roundZoom }), p3 = !i2 || Math.abs(i2.tileID.overscaledZ - h3) > Math.abs(e2.tileID.overscaledZ - h3), d2 = p3 && e2.refreshedUponExpiration ? 1 : t.clamp(p3 ? l2 : 1 - c3, 0, 1); + return e2.refreshedUponExpiration && l2 >= 1 && (e2.refreshedUponExpiration = false), i2 ? { opacity: 1, mix: 1 - d2 } : { opacity: d2, mix: 0 }; } return { opacity: 1, mix: 0 }; } - const Ui = new t.Color(1, 0, 0, 1), Ni = new t.Color(0, 1, 0, 1), Gi = new t.Color(0, 0, 1, 1), Zi = new t.Color(1, 0, 1, 1), Vi = new t.Color(0, 1, 1, 1); - function qi(t2, e2, i2, o2) { - $i(t2, 0, e2 + i2 / 2, t2.transform.width, i2, o2); + var lo = new t.Color(1, 0, 0, 1), co = new t.Color(0, 1, 0, 1), uo = new t.Color(0, 0, 1, 1), ho = new t.Color(1, 0, 1, 1), po = new t.Color(0, 1, 1, 1); + function _o(t2, e2, i2, o2) { + mo(t2, 0, e2 + i2 / 2, t2.transform.width, i2, o2); } - function ji(t2, e2, i2, o2) { - $i(t2, e2 - i2 / 2, 0, i2, t2.transform.height, o2); + function fo(t2, e2, i2, o2) { + mo(t2, e2 - i2 / 2, 0, i2, t2.transform.height, o2); } - function $i(t2, e2, i2, o2, a2, r2) { - const s2 = t2.context, n2 = s2.gl; - n2.enable(n2.SCISSOR_TEST), n2.scissor(e2 * t2.pixelRatio, i2 * t2.pixelRatio, o2 * t2.pixelRatio, a2 * t2.pixelRatio), s2.clear({ color: r2 }), n2.disable(n2.SCISSOR_TEST); + function mo(e2, i2, o2, r2, a2, n2) { + var s2 = e2.context, l2 = s2.gl; + l2.enable(l2.SCISSOR_TEST), l2.scissor(i2 * t.browser.devicePixelRatio, o2 * t.browser.devicePixelRatio, r2 * t.browser.devicePixelRatio, a2 * t.browser.devicePixelRatio), s2.clear({ color: n2 }), l2.disable(l2.SCISSOR_TEST); } - function Xi(e2, i2, o2) { - const a2 = e2.context, r2 = a2.gl, s2 = o2.posMatrix, n2 = e2.useProgram("debug"), l2 = wi.disabled, c3 = Ei.disabled, h3 = e2.colorModeForRenderPass(), u2 = "$debug", d2 = e2.style.terrain && e2.style.terrain.getTerrainData(o2); - a2.activeTexture.set(r2.TEXTURE0), e2.emptyTexture.bind(r2.LINEAR, r2.CLAMP_TO_EDGE); - const m2 = i2.getTileByID(o2.key).latestRawTileData, _24 = Math.floor((m2 && m2.byteLength || 0) / 1024), p3 = i2.getTile(o2).tileSize, f2 = 512 / Math.min(p3, 512) * (o2.overscaledZ / e2.transform.zoom) * 0.5; - let g2 = o2.canonical.toString(); - o2.overscaledZ !== o2.canonical.z && (g2 += ` => ${o2.overscaledZ}`), function(t2, e3) { + function go(e2, i2, o2) { + var r2 = e2.context, a2 = r2.gl, n2 = o2.posMatrix, s2 = e2.useProgram("debug"), l2 = It.disabled, c3 = Pt.disabled, u2 = e2.colorModeForRenderPass(); + r2.activeTexture.set(a2.TEXTURE0), e2.emptyTexture.bind(a2.LINEAR, a2.CLAMP_TO_EDGE), s2.draw(r2, a2.LINE_STRIP, l2, c3, u2, Ct.disabled, Mi(n2, t.Color.red), "$debug", e2.debugBuffer, e2.tileBorderIndexBuffer, e2.debugSegments); + var h3 = i2.getTileByID(o2.key).latestRawTileData, p3 = Math.floor((h3 && h3.byteLength || 0) / 1024), d2 = i2.getTile(o2).tileSize, _24 = 512 / Math.min(d2, 512) * (o2.overscaledZ / e2.transform.zoom) * 0.5, f2 = o2.canonical.toString(); + o2.overscaledZ !== o2.canonical.z && (f2 += " => " + o2.overscaledZ), function(t2, e3) { t2.initDebugOverlayCanvas(); - const i3 = t2.debugOverlayCanvas, o3 = t2.context.gl, a3 = t2.debugOverlayCanvas.getContext("2d"); - a3.clearRect(0, 0, i3.width, i3.height), a3.shadowColor = "white", a3.shadowBlur = 2, a3.lineWidth = 1.5, a3.strokeStyle = "white", a3.textBaseline = "top", a3.font = "bold 36px Open Sans, sans-serif", a3.fillText(e3, 5, 5), a3.strokeText(e3, 5, 5), t2.debugOverlayTexture.update(i3), t2.debugOverlayTexture.bind(o3.LINEAR, o3.CLAMP_TO_EDGE); - }(e2, `${g2} ${_24}kB`), n2.draw(a2, r2.TRIANGLES, l2, c3, yi.alphaBlended, Ii.disabled, ge(s2, t.Color.transparent, f2), null, u2, e2.debugBuffer, e2.quadTriangleIndexBuffer, e2.debugSegments), n2.draw(a2, r2.LINE_STRIP, l2, c3, h3, Ii.disabled, ge(s2, t.Color.red), d2, u2, e2.debugBuffer, e2.tileBorderIndexBuffer, e2.debugSegments); - } - function Wi(t2, e2, i2) { - const o2 = t2.context, a2 = o2.gl, r2 = t2.colorModeForRenderPass(), s2 = new wi(a2.LEQUAL, wi.ReadWrite, t2.depthRangeFor3D), n2 = t2.useProgram("terrain"), l2 = e2.getTerrainMesh(), c3 = e2.getTerrainData(i2.tileID); - o2.bindFramebuffer.set(null), o2.viewport.set([0, 0, t2.width, t2.height]), o2.activeTexture.set(a2.TEXTURE0), a2.bindTexture(a2.TEXTURE_2D, e2.getRTTFramebuffer().colorAttachment.get()); - const h3 = t2.transform.calculatePosMatrix(i2.tileID.toUnwrapped()); - n2.draw(o2, a2.TRIANGLES, s2, Ei.disabled, r2, Ii.backCCW, { u_matrix: h3, u_texture: 0 }, c3, "terrain", l2.vertexBuffer, l2.indexBuffer, l2.segments); - } - function Hi(t2, e2, i2, o2) { - const a2 = t2.context, r2 = i2.tileSize * e2.qualityFactor; - i2.textures[o2] || (i2.textures[o2] = t2.getTileTexture(r2) || new l(a2, { width: r2, height: r2, data: null }, a2.gl.RGBA), i2.textures[o2].bind(a2.gl.LINEAR, a2.gl.CLAMP_TO_EDGE), 0 === o2 && e2.sourceCache.renderHistory.unshift(i2.tileID.key)); - const s2 = e2.getRTTFramebuffer(); - s2.colorAttachment.set(i2.textures[o2].texture), a2.bindFramebuffer.set(s2.framebuffer), a2.viewport.set([0, 0, r2, r2]); - } - class Ki { - constructor(t2) { - this._coordsDescendingInv = {}, this._coordsDescendingInvStr = {}, this.painter = t2, this._renderToTexture = { background: true, fill: true, line: true, raster: true }, this._coordsDescendingInv = {}, this._coordsDescendingInvStr = {}, this._stacks = [], this._prevType = null, this._rerender = {}, this._renderableTiles = t2.style.terrain.sourceCache.getRenderableTiles(), this._init(); - } - _init() { - const t2 = this.painter.style, e2 = t2.terrain; - for (const i2 in t2.sourceCaches) { - this._coordsDescendingInv[i2] = {}; - const o2 = t2.sourceCaches[i2].getVisibleCoordinates(); - for (const t3 of o2) { - const o3 = e2.sourceCache.getTerrainCoords(t3); - for (const t4 in o3) - this._coordsDescendingInv[i2][t4] || (this._coordsDescendingInv[i2][t4] = []), this._coordsDescendingInv[i2][t4].push(o3[t4]); - } - } - for (const e3 of t2._order) { - const i2 = t2._layers[e3], o2 = i2.source; - if (this._renderToTexture[i2.type] && !this._coordsDescendingInvStr[o2]) { - this._coordsDescendingInvStr[o2] = {}; - for (const t3 in this._coordsDescendingInv[o2]) - this._coordsDescendingInvStr[o2][t3] = this._coordsDescendingInv[o2][t3].map((t4) => t4.key).sort().join(); - } - } - return this._renderableTiles.forEach((t3) => { - for (const i2 in this._coordsDescendingInvStr) { - const o2 = this._coordsDescendingInvStr[i2][t3.tileID.key]; - o2 && o2 !== t3.textureCoords[i2] && t3.clearTextures(this.painter), e2.needsRerender(i2, t3.tileID) && t3.clearTextures(this.painter); - } - this._rerender[t3.tileID.key] = !t3.textures.length; - }), e2.clearRerenderCache(), e2.sourceCache.removeOutdated(this.painter), this; - } - renderLayer(e2) { - const i2 = e2.type, o2 = this.painter, a2 = o2.style._order, r2 = o2.currentLayer, s2 = r2 + 1 === a2.length; - if (this._renderToTexture[i2] && (this._prevType && this._renderToTexture[this._prevType] || this._stacks.push([]), this._prevType = i2, this._stacks[this._stacks.length - 1].push(a2[r2]), !s2)) - return true; - if (this._renderToTexture[this._prevType] || "hillshade" === i2 || this._renderToTexture[i2] && s2) { - this._prevType = i2; - const s3 = this._stacks.length - 1, n2 = this._stacks[s3] || []; - for (const e3 of this._renderableTiles) { - if (Hi(o2, o2.style.terrain, e3, s3), this._rerender[e3.tileID.key]) { - o2.context.clear({ color: t.Color.transparent }); - for (let t2 = 0; t2 < n2.length; t2++) { - const i3 = o2.style._layers[n2[t2]], a3 = i3.source ? this._coordsDescendingInv[i3.source][e3.tileID.key] : [e3.tileID]; - o2._renderTileClippingMasks(i3, a3), o2.renderLayer(o2, o2.style.sourceCaches[i3.source], i3, a3), i3.source && (e3.textureCoords[i3.source] = this._coordsDescendingInvStr[i3.source][e3.tileID.key]); + var i3 = t2.debugOverlayCanvas, o3 = t2.context.gl, r3 = t2.debugOverlayCanvas.getContext("2d"); + r3.clearRect(0, 0, i3.width, i3.height), r3.shadowColor = "white", r3.shadowBlur = 2, r3.lineWidth = 1.5, r3.strokeStyle = "white", r3.textBaseline = "top", r3.font = "bold 36px Open Sans, sans-serif", r3.fillText(e3, 5, 5), r3.strokeText(e3, 5, 5), t2.debugOverlayTexture.update(i3), t2.debugOverlayTexture.bind(o3.LINEAR, o3.CLAMP_TO_EDGE); + }(e2, f2 + " " + p3 + "kb"), s2.draw(r2, a2.TRIANGLES, l2, c3, St.alphaBlended, Ct.disabled, Mi(n2, t.Color.transparent, _24), "$debug", e2.debugBuffer, e2.quadTriangleIndexBuffer, e2.debugSegments); + } + var vo = { symbol: function(e2, i2, o2, r2, a2) { + if ("translucent" === e2.renderPass) { + var n2 = Pt.disabled, s2 = e2.colorModeForRenderPass(); + o2.layout.get("text-variable-anchor") && function(e3, i3, o3, r3, a3, n3, s3) { + for (var l2 = i3.transform, c3 = "map" === a3, u2 = "map" === n3, h3 = 0, p3 = e3; h3 < p3.length; h3 += 1) { + var d2 = p3[h3], _24 = r3.getTile(d2), f2 = _24.getBucket(o3); + if (f2 && f2.text && f2.text.segments.get().length) { + var m2 = t.evaluateSizeForZoom(f2.textSizeData, l2.zoom), g2 = pe(_24, 1, i3.transform.zoom), v3 = Jt(d2.posMatrix, u2, c3, i3.transform, g2), y3 = "none" !== o3.layout.get("icon-text-fit") && f2.hasIconData(); + if (m2) { + var x2 = Math.pow(2, l2.zoom - _24.tileID.overscaledZ); + $i(f2, c3, u2, s3, t.symbolSize, l2, v3, d2.posMatrix, x2, m2, y3); } } - Wi(o2, o2.style.terrain, e3); } - if ("hillshade" === i2) { - this._stacks.push([a2[r2]]); - for (const i3 of this._renderableTiles) { - const a3 = this._coordsDescendingInv[e2.source][i3.tileID.key]; - Hi(o2, o2.style.terrain, i3, this._stacks.length - 1), o2.context.clear({ color: t.Color.transparent }), o2._renderTileClippingMasks(e2, a3), o2.renderLayer(o2, o2.style.sourceCaches[e2.source], e2, a3), Wi(o2, o2.style.terrain, i3); + }(r2, e2, o2, i2, o2.layout.get("text-rotation-alignment"), o2.layout.get("text-pitch-alignment"), a2), 0 !== o2.paint.get("icon-opacity").constantOr(1) && eo(e2, i2, o2, r2, false, o2.paint.get("icon-translate"), o2.paint.get("icon-translate-anchor"), o2.layout.get("icon-rotation-alignment"), o2.layout.get("icon-pitch-alignment"), o2.layout.get("icon-keep-upright"), n2, s2), 0 !== o2.paint.get("text-opacity").constantOr(1) && eo(e2, i2, o2, r2, true, o2.paint.get("text-translate"), o2.paint.get("text-translate-anchor"), o2.layout.get("text-rotation-alignment"), o2.layout.get("text-pitch-alignment"), o2.layout.get("text-keep-upright"), n2, s2), i2.map.showCollisionBoxes && (Yi(e2, i2, o2, r2, o2.paint.get("text-translate"), o2.paint.get("text-translate-anchor"), true), Yi(e2, i2, o2, r2, o2.paint.get("icon-translate"), o2.paint.get("icon-translate-anchor"), false)); + } + }, circle: function(e2, i2, o2, r2) { + if ("translucent" === e2.renderPass) { + var a2 = o2.paint.get("circle-opacity"), n2 = o2.paint.get("circle-stroke-width"), s2 = o2.paint.get("circle-stroke-opacity"), l2 = void 0 !== o2.layout.get("circle-sort-key").constantOr(1); + if (0 !== a2.constantOr(1) || 0 !== n2.constantOr(1) && 0 !== s2.constantOr(1)) { + for (var c3 = e2.context, u2 = c3.gl, h3 = e2.depthModeForSublayer(0, It.ReadOnly), p3 = Pt.disabled, d2 = e2.colorModeForRenderPass(), _24 = [], f2 = 0; f2 < r2.length; f2++) { + var m2 = r2[f2], g2 = i2.getTile(m2), v3 = g2.getBucket(o2); + if (v3) { + var y3 = v3.programConfigurations.get(o2.id), x2 = { programConfiguration: y3, program: e2.useProgram("circle", y3), layoutVertexBuffer: v3.layoutVertexBuffer, indexBuffer: v3.indexBuffer, uniformValues: zi(e2, m2, g2, o2) }; + if (l2) + for (var b2 = 0, w2 = v3.segments.get(); b2 < w2.length; b2 += 1) { + var T2 = w2[b2]; + _24.push({ segments: new t.SegmentVector([T2]), sortKey: T2.sortKey, state: x2 }); + } + else + _24.push({ segments: v3.segments, sortKey: 0, state: x2 }); } - return true; } - return this._renderToTexture[i2]; - } - return false; - } - } - const Yi = { symbol: function(e2, i2, o2, a2, r2) { - if ("translucent" !== e2.renderPass) - return; - const s2 = Ei.disabled, n2 = e2.colorModeForRenderPass(); - o2.layout.get("text-variable-anchor") && function(e3, i3, o3, a3, r3, s3, n3) { - const l2 = i3.transform, c3 = "map" === r3, h3 = "map" === s3; - for (const r4 of e3) { - const e4 = a3.getTile(r4), s4 = e4.getBucket(o3); - if (!s4 || !s4.text || !s4.text.segments.get().length) - continue; - const u2 = t.evaluateSizeForZoom(s4.textSizeData, l2.zoom), d2 = bt(e4, 1, i3.transform.zoom), m2 = rt(r4.posMatrix, h3, c3, i3.transform, d2), _24 = "none" !== o3.layout.get("icon-text-fit") && s4.hasIconData(); - if (u2) { - const t2 = Math.pow(2, l2.zoom - e4.tileID.overscaledZ); - Pi(s4, c3, h3, n3, l2, m2, r4.posMatrix, t2, u2, _24, i3.style.terrain ? (t3, e5) => i3.style.terrain.getElevation(r4, t3, e5) : null); + l2 && _24.sort(function(t2, e3) { + return t2.sortKey - e3.sortKey; + }); + for (var E2 = 0, I3 = _24; E2 < I3.length; E2 += 1) { + var P2 = I3[E2], S2 = P2.state; + S2.program.draw(c3, u2.TRIANGLES, h3, p3, d2, Ct.disabled, S2.uniformValues, o2.id, S2.layoutVertexBuffer, S2.indexBuffer, P2.segments, o2.paint, e2.transform.zoom, S2.programConfiguration); } } - }(a2, e2, o2, i2, o2.layout.get("text-rotation-alignment"), o2.layout.get("text-pitch-alignment"), r2), 0 !== o2.paint.get("icon-opacity").constantOr(1) && Ai(e2, i2, o2, a2, false, o2.paint.get("icon-translate"), o2.paint.get("icon-translate-anchor"), o2.layout.get("icon-rotation-alignment"), o2.layout.get("icon-pitch-alignment"), o2.layout.get("icon-keep-upright"), s2, n2), 0 !== o2.paint.get("text-opacity").constantOr(1) && Ai(e2, i2, o2, a2, true, o2.paint.get("text-translate"), o2.paint.get("text-translate-anchor"), o2.layout.get("text-rotation-alignment"), o2.layout.get("text-pitch-alignment"), o2.layout.get("text-keep-upright"), s2, n2), i2.map.showCollisionBoxes && (Si(e2, i2, o2, a2, o2.paint.get("text-translate"), o2.paint.get("text-translate-anchor"), true), Si(e2, i2, o2, a2, o2.paint.get("icon-translate"), o2.paint.get("icon-translate-anchor"), false)); - }, circle: function(e2, i2, o2, a2) { - if ("translucent" !== e2.renderPass) - return; - const r2 = o2.paint.get("circle-opacity"), s2 = o2.paint.get("circle-stroke-width"), n2 = o2.paint.get("circle-stroke-opacity"), l2 = !o2.layout.get("circle-sort-key").isConstant(); - if (0 === r2.constantOr(1) && (0 === s2.constantOr(1) || 0 === n2.constantOr(1))) - return; - const c3 = e2.context, h3 = c3.gl, u2 = e2.depthModeForSublayer(0, wi.ReadOnly), d2 = Ei.disabled, m2 = e2.colorModeForRenderPass(), _24 = []; - for (let r3 = 0; r3 < a2.length; r3++) { - const s3 = a2[r3], n3 = i2.getTile(s3), c4 = n3.getBucket(o2); - if (!c4) - continue; - const h4 = c4.programConfigurations.get(o2.id), u3 = e2.useProgram("circle", h4), d3 = c4.layoutVertexBuffer, m3 = c4.indexBuffer, p3 = e2.style.terrain && e2.style.terrain.getTerrainData(s3), f2 = { programConfiguration: h4, program: u3, layoutVertexBuffer: d3, indexBuffer: m3, uniformValues: pe(e2, s3, n3, o2), terrainData: p3 }; - if (l2) { - const e3 = c4.segments.get(); - for (const i3 of e3) - _24.push({ segments: new t.SegmentVector([i3]), sortKey: i3.sortKey, state: f2 }); - } else - _24.push({ segments: c4.segments, sortKey: 0, state: f2 }); - } - l2 && _24.sort((t2, e3) => t2.sortKey - e3.sortKey); - for (const t2 of _24) { - const { programConfiguration: i3, program: a3, layoutVertexBuffer: r3, indexBuffer: s3, uniformValues: n3, terrainData: l3 } = t2.state; - a3.draw(c3, h3.TRIANGLES, u2, d2, m2, Ii.disabled, n3, l3, o2.id, r3, s3, t2.segments, o2.paint, e2.transform.zoom, i3); } - }, heatmap: function(e2, i2, o2, a2) { + }, heatmap: function(e2, i2, o2, r2) { if (0 !== o2.paint.get("heatmap-opacity")) if ("offscreen" === e2.renderPass) { - const r2 = e2.context, s2 = r2.gl, n2 = Ei.disabled, l2 = new yi([s2.ONE, s2.ONE], t.Color.transparent, [true, true, true, true]); + var a2 = e2.context, n2 = a2.gl, s2 = Pt.disabled, l2 = new St([n2.ONE, n2.ONE], t.Color.transparent, [true, true, true, true]); !function(t2, e3, i3) { - const o3 = t2.gl; + var o3 = t2.gl; t2.activeTexture.set(o3.TEXTURE1), t2.viewport.set([0, 0, e3.width / 4, e3.height / 4]); - let a3 = i3.heatmapFbo; - if (a3) - o3.bindTexture(o3.TEXTURE_2D, a3.colorAttachment.get()), t2.bindFramebuffer.set(a3.framebuffer); + var r3 = i3.heatmapFbo; + if (r3) + o3.bindTexture(o3.TEXTURE_2D, r3.colorAttachment.get()), t2.bindFramebuffer.set(r3.framebuffer); else { - const r3 = o3.createTexture(); - o3.bindTexture(o3.TEXTURE_2D, r3), o3.texParameteri(o3.TEXTURE_2D, o3.TEXTURE_WRAP_S, o3.CLAMP_TO_EDGE), o3.texParameteri(o3.TEXTURE_2D, o3.TEXTURE_WRAP_T, o3.CLAMP_TO_EDGE), o3.texParameteri(o3.TEXTURE_2D, o3.TEXTURE_MIN_FILTER, o3.LINEAR), o3.texParameteri(o3.TEXTURE_2D, o3.TEXTURE_MAG_FILTER, o3.LINEAR), a3 = i3.heatmapFbo = t2.createFramebuffer(e3.width / 4, e3.height / 4, false), function(t3, e4, i4, o4) { - const a4 = t3.gl; - a4.texImage2D(a4.TEXTURE_2D, 0, a4.RGBA, e4.width / 4, e4.height / 4, 0, a4.RGBA, t3.extRenderToTextureHalfFloat ? t3.extTextureHalfFloat.HALF_FLOAT_OES : a4.UNSIGNED_BYTE, null), o4.colorAttachment.set(i4); - }(t2, e3, r3, a3); + var a3 = o3.createTexture(); + o3.bindTexture(o3.TEXTURE_2D, a3), o3.texParameteri(o3.TEXTURE_2D, o3.TEXTURE_WRAP_S, o3.CLAMP_TO_EDGE), o3.texParameteri(o3.TEXTURE_2D, o3.TEXTURE_WRAP_T, o3.CLAMP_TO_EDGE), o3.texParameteri(o3.TEXTURE_2D, o3.TEXTURE_MIN_FILTER, o3.LINEAR), o3.texParameteri(o3.TEXTURE_2D, o3.TEXTURE_MAG_FILTER, o3.LINEAR), r3 = i3.heatmapFbo = t2.createFramebuffer(e3.width / 4, e3.height / 4, false), function(t3, e4, i4, o4) { + var r4 = t3.gl; + r4.texImage2D(r4.TEXTURE_2D, 0, r4.RGBA, e4.width / 4, e4.height / 4, 0, r4.RGBA, t3.extRenderToTextureHalfFloat ? t3.extTextureHalfFloat.HALF_FLOAT_OES : r4.UNSIGNED_BYTE, null), o4.colorAttachment.set(i4); + }(t2, e3, a3, r3); + } + }(a2, e2, o2), a2.clear({ color: t.Color.transparent }); + for (var c3 = 0; c3 < r2.length; c3++) { + var u2 = r2[c3]; + if (!i2.hasRenderableParent(u2)) { + var h3 = i2.getTile(u2), p3 = h3.getBucket(o2); + if (p3) { + var d2 = p3.programConfigurations.get(o2.id); + e2.useProgram("heatmap", d2).draw(a2, n2.TRIANGLES, It.disabled, s2, l2, Ct.disabled, Ri(u2.posMatrix, h3, e2.transform.zoom, o2.paint.get("heatmap-intensity")), o2.id, p3.layoutVertexBuffer, p3.indexBuffer, p3.segments, o2.paint, e2.transform.zoom, d2); + } } - }(r2, e2, o2), r2.clear({ color: t.Color.transparent }); - for (let t2 = 0; t2 < a2.length; t2++) { - const c3 = a2[t2]; - if (i2.hasRenderableParent(c3)) - continue; - const h3 = i2.getTile(c3), u2 = h3.getBucket(o2); - if (!u2) - continue; - const d2 = u2.programConfigurations.get(o2.id), m2 = e2.useProgram("heatmap", d2), { zoom: _24 } = e2.transform; - m2.draw(r2, s2.TRIANGLES, wi.disabled, n2, l2, Ii.disabled, ve(c3.posMatrix, h3, _24, o2.paint.get("heatmap-intensity")), null, o2.id, u2.layoutVertexBuffer, u2.indexBuffer, u2.segments, o2.paint, e2.transform.zoom, d2); } - r2.viewport.set([0, 0, e2.width, e2.height]); + a2.viewport.set([0, 0, e2.width, e2.height]); } else "translucent" === e2.renderPass && (e2.context.setColorMode(e2.colorModeForRenderPass()), function(e3, i3) { - const o3 = e3.context, a3 = o3.gl, r2 = i3.heatmapFbo; - if (!r2) - return; - o3.activeTexture.set(a3.TEXTURE0), a3.bindTexture(a3.TEXTURE_2D, r2.colorAttachment.get()), o3.activeTexture.set(a3.TEXTURE1); - let s2 = i3.colorRampTexture; - s2 || (s2 = i3.colorRampTexture = new l(o3, i3.colorRamp, a3.RGBA)), s2.bind(a3.LINEAR, a3.CLAMP_TO_EDGE), e3.useProgram("heatmapTexture").draw(o3, a3.TRIANGLES, wi.disabled, Ei.disabled, e3.colorModeForRenderPass(), Ii.disabled, ((e4, i4, o4, a4) => { - const r3 = t.create(); - t.ortho(r3, 0, e4.width, e4.height, 0, 0, 1); - const s3 = e4.context.gl; - return { u_matrix: r3, u_world: [s3.drawingBufferWidth, s3.drawingBufferHeight], u_image: 0, u_color_ramp: 1, u_opacity: i4.paint.get("heatmap-opacity") }; - })(e3, i3), null, i3.id, e3.viewportBuffer, e3.quadTriangleIndexBuffer, e3.viewportSegments, i3.paint, e3.transform.zoom); + var o3 = e3.context, r3 = o3.gl, a3 = i3.heatmapFbo; + if (a3) { + o3.activeTexture.set(r3.TEXTURE0), r3.bindTexture(r3.TEXTURE_2D, a3.colorAttachment.get()), o3.activeTexture.set(r3.TEXTURE1); + var n3 = i3.colorRampTexture; + n3 || (n3 = i3.colorRampTexture = new t.Texture(o3, i3.colorRamp, r3.RGBA)), n3.bind(r3.LINEAR, r3.CLAMP_TO_EDGE), e3.useProgram("heatmapTexture").draw(o3, r3.TRIANGLES, It.disabled, Pt.disabled, e3.colorModeForRenderPass(), Ct.disabled, function(e4, i4, o4, r4) { + var a4 = t.create(); + t.ortho(a4, 0, e4.width, e4.height, 0, 0, 1); + var n4 = e4.context.gl; + return { u_matrix: a4, u_world: [n4.drawingBufferWidth, n4.drawingBufferHeight], u_image: 0, u_color_ramp: 1, u_opacity: i4.paint.get("heatmap-opacity") }; + }(e3, i3), i3.id, e3.viewportBuffer, e3.quadTriangleIndexBuffer, e3.viewportSegments, i3.paint, e3.transform.zoom); + } }(e2, o2)); - }, line: function(e2, i2, o2, a2) { - if ("translucent" !== e2.renderPass) - return; - const r2 = o2.paint.get("line-opacity"), s2 = o2.paint.get("line-width"); - if (0 === r2.constantOr(1) || 0 === s2.constantOr(1)) - return; - const n2 = e2.depthModeForSublayer(0, wi.ReadOnly), c3 = e2.colorModeForRenderPass(), h3 = o2.paint.get("line-dasharray"), u2 = o2.paint.get("line-pattern"), d2 = u2.constantOr(1), m2 = o2.paint.get("line-gradient"), _24 = o2.getCrossfadeParameters(), p3 = d2 ? "linePattern" : h3 ? "lineSDF" : m2 ? "lineGradient" : "line", f2 = e2.context, g2 = f2.gl; - let x2 = true; - for (const r3 of a2) { - const a3 = i2.getTile(r3); - if (d2 && !a3.patternsLoaded()) - continue; - const s3 = a3.getBucket(o2); - if (!s3) - continue; - const v3 = s3.programConfigurations.get(o2.id), y3 = e2.context.program.get(), b2 = e2.useProgram(p3, v3), w2 = x2 || b2.program !== y3, T2 = e2.style.terrain && e2.style.terrain.getTerrainData(r3), E2 = u2.constantOr(null); - if (E2 && a3.imageAtlas) { - const t2 = a3.imageAtlas, e3 = t2.patternPositions[E2.to.toString()], i3 = t2.patternPositions[E2.from.toString()]; - e3 && i3 && v3.setConstantPatternPositions(e3, i3); - } - const I3 = T2 ? r3 : null, C2 = d2 ? Te(e2, a3, o2, _24, I3) : h3 ? Ee(e2, a3, o2, h3, _24, I3) : m2 ? we(e2, a3, o2, s3.lineClipsArray.length, I3) : be(e2, a3, o2, I3); - if (d2) - f2.activeTexture.set(g2.TEXTURE0), a3.imageAtlasTexture.bind(g2.LINEAR, g2.CLAMP_TO_EDGE), v3.updatePaintBuffers(_24); - else if (h3 && (w2 || e2.lineAtlas.dirty)) - f2.activeTexture.set(g2.TEXTURE0), e2.lineAtlas.bind(f2); - else if (m2) { - const a4 = s3.gradients[o2.id]; - let n3 = a4.texture; - if (o2.gradientVersion !== a4.version) { - let c4 = 256; - if (o2.stepInterpolant) { - const o3 = i2.getSource().maxzoom, a5 = r3.canonical.z === o3 ? Math.ceil(1 << e2.transform.maxZoom - r3.canonical.z) : 1; - c4 = t.clamp(t.nextPowerOfTwo(s3.maxLineLength / t.EXTENT * 1024 * a5), 256, f2.maxTextureSize); + }, line: function(e2, i2, o2, r2) { + if ("translucent" === e2.renderPass) { + var a2 = o2.paint.get("line-opacity"), n2 = o2.paint.get("line-width"); + if (0 !== a2.constantOr(1) && 0 !== n2.constantOr(1)) + for (var s2 = e2.depthModeForSublayer(0, It.ReadOnly), l2 = e2.colorModeForRenderPass(), c3 = o2.paint.get("line-dasharray"), u2 = o2.paint.get("line-pattern"), h3 = u2.constantOr(1), p3 = o2.paint.get("line-gradient"), d2 = o2.getCrossfadeParameters(), _24 = h3 ? "linePattern" : c3 ? "lineSDF" : p3 ? "lineGradient" : "line", f2 = e2.context, m2 = f2.gl, g2 = true, v3 = 0, y3 = r2; v3 < y3.length; v3 += 1) { + var x2 = y3[v3], b2 = i2.getTile(x2); + if (!h3 || b2.patternsLoaded()) { + var w2 = b2.getBucket(o2); + if (w2) { + var T2 = w2.programConfigurations.get(o2.id), E2 = e2.context.program.get(), I3 = e2.useProgram(_24, T2), P2 = g2 || I3.program !== E2, S2 = u2.constantOr(null); + if (S2 && b2.imageAtlas) { + var C2 = b2.imageAtlas, z2 = C2.patternPositions[S2.to.toString()], D2 = C2.patternPositions[S2.from.toString()]; + z2 && D2 && T2.setConstantPatternPositions(z2, D2); + } + var A3 = h3 ? Oi(e2, b2, o2, d2) : c3 ? Fi(e2, b2, o2, c3, d2) : p3 ? Bi(e2, b2, o2, w2.lineClipsArray.length) : ki(e2, b2, o2); + if (h3) + f2.activeTexture.set(m2.TEXTURE0), b2.imageAtlasTexture.bind(m2.LINEAR, m2.CLAMP_TO_EDGE), T2.updatePaintBuffers(d2); + else if (c3 && (P2 || e2.lineAtlas.dirty)) + f2.activeTexture.set(m2.TEXTURE0), e2.lineAtlas.bind(f2); + else if (p3) { + var M2 = w2.gradients[o2.id], L2 = M2.texture; + if (o2.gradientVersion !== M2.version) { + var R2 = 256; + if (o2.stepInterpolant) { + var k2 = i2.getSource().maxzoom, B2 = x2.canonical.z === k2 ? Math.ceil(1 << e2.transform.maxZoom - x2.canonical.z) : 1; + R2 = t.clamp(t.nextPowerOfTwo(w2.maxLineLength / t.EXTENT * 1024 * B2), 256, f2.maxTextureSize); + } + M2.gradient = t.renderColorRamp({ expression: o2.gradientExpression(), evaluationKey: "lineProgress", resolution: R2, image: M2.gradient || void 0, clips: w2.lineClipsArray }), M2.texture ? M2.texture.update(M2.gradient) : M2.texture = new t.Texture(f2, M2.gradient, m2.RGBA), M2.version = o2.gradientVersion, L2 = M2.texture; + } + f2.activeTexture.set(m2.TEXTURE0), L2.bind(o2.stepInterpolant ? m2.NEAREST : m2.LINEAR, m2.CLAMP_TO_EDGE); + } + I3.draw(f2, m2.TRIANGLES, s2, e2.stencilModeForClipping(x2), l2, Ct.disabled, A3, o2.id, w2.layoutVertexBuffer, w2.indexBuffer, w2.segments, o2.paint, e2.transform.zoom, T2, w2.layoutVertexBuffer2), g2 = false; + } } - a4.gradient = t.renderColorRamp({ expression: o2.gradientExpression(), evaluationKey: "lineProgress", resolution: c4, image: a4.gradient || void 0, clips: s3.lineClipsArray }), a4.texture ? a4.texture.update(a4.gradient) : a4.texture = new l(f2, a4.gradient, g2.RGBA), a4.version = o2.gradientVersion, n3 = a4.texture; } - f2.activeTexture.set(g2.TEXTURE0), n3.bind(o2.stepInterpolant ? g2.NEAREST : g2.LINEAR, g2.CLAMP_TO_EDGE); - } - b2.draw(f2, g2.TRIANGLES, n2, e2.stencilModeForClipping(r3), c3, Ii.disabled, C2, T2, o2.id, s3.layoutVertexBuffer, s3.indexBuffer, s3.segments, o2.paint, e2.transform.zoom, v3, s3.layoutVertexBuffer2), x2 = false; - } - }, fill: function(e2, i2, o2, a2) { - const r2 = o2.paint.get("fill-color"), s2 = o2.paint.get("fill-opacity"); - if (0 === s2.constantOr(1)) - return; - const n2 = e2.colorModeForRenderPass(), l2 = o2.paint.get("fill-pattern"), c3 = e2.opaquePassEnabledForLayer() && !l2.constantOr(1) && 1 === r2.constantOr(t.Color.transparent).a && 1 === s2.constantOr(0) ? "opaque" : "translucent"; - if (e2.renderPass === c3) { - const t2 = e2.depthModeForSublayer(1, "opaque" === e2.renderPass ? wi.ReadWrite : wi.ReadOnly); - Ri(e2, i2, o2, a2, t2, n2, false); } - if ("translucent" === e2.renderPass && o2.paint.get("fill-antialias")) { - const t2 = e2.depthModeForSublayer(o2.getPaintProperty("fill-outline-color") ? 2 : 0, wi.ReadOnly); - Ri(e2, i2, o2, a2, t2, n2, true); + }, fill: function(e2, i2, o2, r2) { + var a2 = o2.paint.get("fill-color"), n2 = o2.paint.get("fill-opacity"); + if (0 !== n2.constantOr(1)) { + var s2 = e2.colorModeForRenderPass(), l2 = o2.paint.get("fill-pattern"), c3 = e2.opaquePassEnabledForLayer() && !l2.constantOr(1) && 1 === a2.constantOr(t.Color.transparent).a && 1 === n2.constantOr(0) ? "opaque" : "translucent"; + if (e2.renderPass === c3) { + var u2 = e2.depthModeForSublayer(1, "opaque" === e2.renderPass ? It.ReadWrite : It.ReadOnly); + oo(e2, i2, o2, r2, u2, s2, false); + } + if ("translucent" === e2.renderPass && o2.paint.get("fill-antialias")) { + var h3 = e2.depthModeForSublayer(o2.getPaintProperty("fill-outline-color") ? 2 : 0, It.ReadOnly); + oo(e2, i2, o2, r2, h3, s2, true); + } } }, "fill-extrusion": function(t2, e2, i2, o2) { - const a2 = i2.paint.get("fill-extrusion-opacity"); - if (0 !== a2 && "translucent" === t2.renderPass) { - const r2 = new wi(t2.context.gl.LEQUAL, wi.ReadWrite, t2.depthRangeFor3D); - if (1 !== a2 || i2.paint.get("fill-extrusion-pattern").constantOr(1)) - ki(t2, e2, i2, o2, r2, Ei.disabled, yi.disabled), ki(t2, e2, i2, o2, r2, t2.stencilModeFor3D(), t2.colorModeForRenderPass()); + var r2 = i2.paint.get("fill-extrusion-opacity"); + if (0 !== r2 && "translucent" === t2.renderPass) { + var a2 = new It(t2.context.gl.LEQUAL, It.ReadWrite, t2.depthRangeFor3D); + if (1 !== r2 || i2.paint.get("fill-extrusion-pattern").constantOr(1)) + ro(t2, e2, i2, o2, a2, Pt.disabled, St.disabled), ro(t2, e2, i2, o2, a2, t2.stencilModeFor3D(), t2.colorModeForRenderPass()); else { - const a3 = t2.colorModeForRenderPass(); - ki(t2, e2, i2, o2, r2, Ei.disabled, a3); + var n2 = t2.colorModeForRenderPass(); + ro(t2, e2, i2, o2, a2, Pt.disabled, n2); } } }, hillshade: function(t2, e2, i2, o2) { - if ("offscreen" !== t2.renderPass && "translucent" !== t2.renderPass) - return; - const a2 = t2.context, r2 = t2.depthModeForSublayer(0, wi.ReadOnly), s2 = t2.colorModeForRenderPass(), [n2, l2] = "translucent" === t2.renderPass ? t2.stencilConfigForOverlap(o2) : [{}, o2]; - for (const o3 of l2) { - const a3 = e2.getTile(o3); - void 0 !== a3.needsHillshadePrepare && a3.needsHillshadePrepare && "offscreen" === t2.renderPass ? Fi(t2, a3, i2, r2, Ei.disabled, s2) : "translucent" === t2.renderPass && Bi(t2, o3, a3, i2, r2, n2[o3.overscaledZ], s2); + if ("offscreen" === t2.renderPass || "translucent" === t2.renderPass) { + for (var r2 = t2.context, a2 = t2.depthModeForSublayer(0, It.ReadOnly), n2 = t2.colorModeForRenderPass(), s2 = "translucent" === t2.renderPass ? t2.stencilConfigForOverlap(o2) : [{}, o2], l2 = s2[0], c3 = 0, u2 = s2[1]; c3 < u2.length; c3 += 1) { + var h3 = u2[c3], p3 = e2.getTile(h3); + p3.needsHillshadePrepare && "offscreen" === t2.renderPass ? no(t2, p3, i2, a2, Pt.disabled, n2) : "translucent" === t2.renderPass && ao(t2, p3, i2, a2, l2[h3.overscaledZ], n2); + } + r2.viewport.set([0, 0, t2.width, t2.height]); } - a2.viewport.set([0, 0, t2.width, t2.height]); }, raster: function(t2, e2, i2, o2) { - if ("translucent" !== t2.renderPass) - return; - if (0 === i2.paint.get("raster-opacity")) - return; - if (!o2.length) - return; - const a2 = t2.context, r2 = a2.gl, s2 = e2.getSource(), n2 = t2.useProgram("raster"), l2 = t2.colorModeForRenderPass(), [c3, h3] = s2 instanceof D ? [{}, o2] : t2.stencilConfigForOverlap(o2), u2 = h3[h3.length - 1].overscaledZ, d2 = !t2.options.moving; - for (const o3 of h3) { - const h4 = t2.depthModeForSublayer(o3.overscaledZ - u2, 1 === i2.paint.get("raster-opacity") ? wi.ReadWrite : wi.ReadOnly, r2.LESS), m2 = e2.getTile(o3); - m2.registerFadeDuration(i2.paint.get("raster-fade-duration")); - const _24 = e2.findLoadedParent(o3, 0), p3 = Oi(m2, _24, e2, i2, t2.transform, t2.style.terrain); - let f2, g2; - const x2 = "nearest" === i2.paint.get("raster-resampling") ? r2.NEAREST : r2.LINEAR; - a2.activeTexture.set(r2.TEXTURE0), m2.texture.bind(x2, r2.CLAMP_TO_EDGE, r2.LINEAR_MIPMAP_NEAREST), a2.activeTexture.set(r2.TEXTURE1), _24 ? (_24.texture.bind(x2, r2.CLAMP_TO_EDGE, r2.LINEAR_MIPMAP_NEAREST), f2 = Math.pow(2, _24.tileID.overscaledZ - m2.tileID.overscaledZ), g2 = [m2.tileID.canonical.x * f2 % 1, m2.tileID.canonical.y * f2 % 1]) : m2.texture.bind(x2, r2.CLAMP_TO_EDGE, r2.LINEAR_MIPMAP_NEAREST); - const v3 = t2.style.terrain && t2.style.terrain.getTerrainData(o3), y3 = v3 ? o3 : null, b2 = y3 ? y3.posMatrix : t2.transform.calculatePosMatrix(o3.toUnwrapped(), d2), w2 = Se(b2, g2 || [0, 0], f2 || 1, p3, i2); - s2 instanceof D ? n2.draw(a2, r2.TRIANGLES, h4, Ei.disabled, l2, Ii.disabled, w2, v3, i2.id, s2.boundsBuffer, t2.quadTriangleIndexBuffer, s2.boundsSegments) : n2.draw(a2, r2.TRIANGLES, h4, c3[o3.overscaledZ], l2, Ii.disabled, w2, v3, i2.id, t2.rasterBoundsBuffer, t2.quadTriangleIndexBuffer, t2.rasterBoundsSegments); - } - }, background: function(t2, e2, i2, o2) { - const a2 = i2.paint.get("background-color"), r2 = i2.paint.get("background-opacity"); - if (0 === r2) - return; - const s2 = t2.context, n2 = s2.gl, l2 = t2.transform, c3 = l2.tileSize, h3 = i2.paint.get("background-pattern"); - if (t2.isPatternMissing(h3)) - return; - const u2 = !h3 && 1 === a2.a && 1 === r2 && t2.opaquePassEnabledForLayer() ? "opaque" : "translucent"; - if (t2.renderPass !== u2) - return; - const d2 = Ei.disabled, m2 = t2.depthModeForSublayer(0, "opaque" === u2 ? wi.ReadWrite : wi.ReadOnly), _24 = t2.colorModeForRenderPass(), p3 = t2.useProgram(h3 ? "backgroundPattern" : "background"), f2 = o2 || l2.coveringTiles({ tileSize: c3, terrain: t2.style.terrain }); - h3 && (s2.activeTexture.set(n2.TEXTURE0), t2.imageManager.bind(t2.context)); - const g2 = i2.getCrossfadeParameters(); - for (const e3 of f2) { - const l3 = o2 ? e3.posMatrix : t2.transform.calculatePosMatrix(e3.toUnwrapped()), u3 = h3 ? Le(l3, r2, t2, h3, { tileID: e3, tileSize: c3 }, g2) : Ae(l3, r2, a2), f3 = t2.style.terrain && t2.style.terrain.getTerrainData(e3); - p3.draw(s2, n2.TRIANGLES, m2, d2, _24, Ii.disabled, u3, f3, i2.id, t2.tileExtentBuffer, t2.quadTriangleIndexBuffer, t2.tileExtentSegments); + if ("translucent" === t2.renderPass && 0 !== i2.paint.get("raster-opacity") && o2.length) + for (var r2 = t2.context, a2 = r2.gl, n2 = e2.getSource(), s2 = t2.useProgram("raster"), l2 = t2.colorModeForRenderPass(), c3 = n2 instanceof M ? [{}, o2] : t2.stencilConfigForOverlap(o2), u2 = c3[0], h3 = c3[1], p3 = h3[h3.length - 1].overscaledZ, d2 = !t2.options.moving, _24 = 0, f2 = h3; _24 < f2.length; _24 += 1) { + var m2 = f2[_24], g2 = t2.depthModeForSublayer(m2.overscaledZ - p3, 1 === i2.paint.get("raster-opacity") ? It.ReadWrite : It.ReadOnly, a2.LESS), v3 = e2.getTile(m2), y3 = t2.transform.calculatePosMatrix(m2.toUnwrapped(), d2); + v3.registerFadeDuration(i2.paint.get("raster-fade-duration")); + var x2 = e2.findLoadedParent(m2, 0), b2 = so(v3, x2, e2, i2, t2.transform), w2 = void 0, T2 = void 0, E2 = "nearest" === i2.paint.get("raster-resampling") ? a2.NEAREST : a2.LINEAR; + r2.activeTexture.set(a2.TEXTURE0), v3.texture.bind(E2, a2.CLAMP_TO_EDGE, a2.LINEAR_MIPMAP_NEAREST), r2.activeTexture.set(a2.TEXTURE1), x2 ? (x2.texture.bind(E2, a2.CLAMP_TO_EDGE, a2.LINEAR_MIPMAP_NEAREST), w2 = Math.pow(2, x2.tileID.overscaledZ - v3.tileID.overscaledZ), T2 = [v3.tileID.canonical.x * w2 % 1, v3.tileID.canonical.y * w2 % 1]) : v3.texture.bind(E2, a2.CLAMP_TO_EDGE, a2.LINEAR_MIPMAP_NEAREST); + var I3 = Zi(y3, T2 || [0, 0], w2 || 1, b2, i2); + n2 instanceof M ? s2.draw(r2, a2.TRIANGLES, g2, Pt.disabled, l2, Ct.disabled, I3, i2.id, n2.boundsBuffer, t2.quadTriangleIndexBuffer, n2.boundsSegments) : s2.draw(r2, a2.TRIANGLES, g2, u2[m2.overscaledZ], l2, Ct.disabled, I3, i2.id, t2.rasterBoundsBuffer, t2.quadTriangleIndexBuffer, t2.rasterBoundsSegments); + } + }, background: function(t2, e2, i2) { + var o2 = i2.paint.get("background-color"), r2 = i2.paint.get("background-opacity"); + if (0 !== r2) { + var a2 = t2.context, n2 = a2.gl, s2 = t2.transform, l2 = s2.tileSize, c3 = i2.paint.get("background-pattern"); + if (!t2.isPatternMissing(c3)) { + var u2 = !c3 && 1 === o2.a && 1 === r2 && t2.opaquePassEnabledForLayer() ? "opaque" : "translucent"; + if (t2.renderPass === u2) { + var h3 = Pt.disabled, p3 = t2.depthModeForSublayer(0, "opaque" === u2 ? It.ReadWrite : It.ReadOnly), d2 = t2.colorModeForRenderPass(), _24 = t2.useProgram(c3 ? "backgroundPattern" : "background"), f2 = s2.coveringTiles({ tileSize: l2 }); + c3 && (a2.activeTexture.set(n2.TEXTURE0), t2.imageManager.bind(t2.context)); + for (var m2 = i2.getCrossfadeParameters(), g2 = 0, v3 = f2; g2 < v3.length; g2 += 1) { + var y3 = v3[g2], x2 = t2.transform.calculatePosMatrix(y3.toUnwrapped()), b2 = c3 ? Hi(x2, r2, t2, c3, { tileID: y3, tileSize: l2 }, m2) : Xi(x2, r2, o2); + _24.draw(a2, n2.TRIANGLES, p3, h3, d2, Ct.disabled, b2, i2.id, t2.tileExtentBuffer, t2.quadTriangleIndexBuffer, t2.tileExtentSegments); + } + } + } } }, debug: function(t2, e2, i2) { - for (let o2 = 0; o2 < i2.length; o2++) - Xi(t2, e2, i2[o2]); + for (var o2 = 0; o2 < i2.length; o2++) + go(t2, e2, i2[o2]); }, custom: function(t2, e2, i2) { - const o2 = t2.context, a2 = i2.implementation; + var o2 = t2.context, r2 = i2.implementation; if ("offscreen" === t2.renderPass) { - const e3 = a2.prerender; - e3 && (t2.setCustomLayerDefaults(), o2.setColorMode(t2.colorModeForRenderPass()), e3.call(a2, o2.gl, t2.transform.customLayerMatrix()), o2.setDirty(), t2.setBaseState()); + var a2 = r2.prerender; + a2 && (t2.setCustomLayerDefaults(), o2.setColorMode(t2.colorModeForRenderPass()), a2.call(r2, o2.gl, t2.transform.customLayerMatrix()), o2.setDirty(), t2.setBaseState()); } else if ("translucent" === t2.renderPass) { - t2.setCustomLayerDefaults(), o2.setColorMode(t2.colorModeForRenderPass()), o2.setStencilMode(Ei.disabled); - const e3 = "3d" === a2.renderingMode ? new wi(t2.context.gl.LEQUAL, wi.ReadWrite, t2.depthRangeFor3D) : t2.depthModeForSublayer(0, wi.ReadOnly); - o2.setDepthMode(e3), a2.render(o2.gl, t2.transform.customLayerMatrix()), o2.setDirty(), t2.setBaseState(), o2.bindFramebuffer.set(null); + t2.setCustomLayerDefaults(), o2.setColorMode(t2.colorModeForRenderPass()), o2.setStencilMode(Pt.disabled); + var n2 = "3d" === r2.renderingMode ? new It(t2.context.gl.LEQUAL, It.ReadWrite, t2.depthRangeFor3D) : t2.depthModeForSublayer(0, It.ReadOnly); + o2.setDepthMode(n2), r2.render(o2.gl, t2.transform.customLayerMatrix()), o2.setDirty(), t2.setBaseState(), o2.bindFramebuffer.set(null); } - } }; - class Ji { - constructor(e2, i2) { - this.context = new bi(e2), this.transform = i2, this._tileTextures = {}, this.terrainFacilitator = { dirty: true, matrix: t.create(), renderTime: 0 }, this.setup(), this.numSublayers = O2.maxUnderzooming + O2.maxOverzooming + 1, this.depthEpsilon = 1 / Math.pow(2, 16), this.crossTileSymbolIndex = new Xt(), this.gpuTimers = {}; - } - resize(t2, e2, i2) { - if (this.width = t2 * i2, this.height = e2 * i2, this.pixelRatio = i2, this.context.viewport.set([0, 0, this.width, this.height]), this.style) - for (const t3 of this.style._order) - this.style._layers[t3].resize(); - } - setup() { - const e2 = this.context, i2 = new t.PosArray(); - i2.emplaceBack(0, 0), i2.emplaceBack(t.EXTENT, 0), i2.emplaceBack(0, t.EXTENT), i2.emplaceBack(t.EXTENT, t.EXTENT), this.tileExtentBuffer = e2.createVertexBuffer(i2, Wt.members), this.tileExtentSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2); - const o2 = new t.PosArray(); - o2.emplaceBack(0, 0), o2.emplaceBack(t.EXTENT, 0), o2.emplaceBack(0, t.EXTENT), o2.emplaceBack(t.EXTENT, t.EXTENT), this.debugBuffer = e2.createVertexBuffer(o2, Wt.members), this.debugSegments = t.SegmentVector.simpleSegment(0, 0, 4, 5); - const a2 = new t.RasterBoundsArray(); - a2.emplaceBack(0, 0, 0, 0), a2.emplaceBack(t.EXTENT, 0, t.EXTENT, 0), a2.emplaceBack(0, t.EXTENT, 0, t.EXTENT), a2.emplaceBack(t.EXTENT, t.EXTENT, t.EXTENT, t.EXTENT), this.rasterBoundsBuffer = e2.createVertexBuffer(a2, S.members), this.rasterBoundsSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2); - const r2 = new t.PosArray(); - r2.emplaceBack(0, 0), r2.emplaceBack(1, 0), r2.emplaceBack(0, 1), r2.emplaceBack(1, 1), this.viewportBuffer = e2.createVertexBuffer(r2, Wt.members), this.viewportSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2); - const s2 = new t.LineStripIndexArray(); - s2.emplaceBack(0), s2.emplaceBack(1), s2.emplaceBack(3), s2.emplaceBack(2), s2.emplaceBack(0), this.tileBorderIndexBuffer = e2.createIndexBuffer(s2); - const n2 = new t.TriangleIndexArray(); - n2.emplaceBack(0, 1, 2), n2.emplaceBack(2, 1, 3), this.quadTriangleIndexBuffer = e2.createIndexBuffer(n2), this.emptyTexture = new l(e2, { width: 1, height: 1, data: new Uint8Array([0, 0, 0, 0]) }, e2.gl.RGBA); - const c3 = this.context.gl; - this.stencilClearMode = new Ei({ func: c3.ALWAYS, mask: 0 }, 0, 255, c3.ZERO, c3.ZERO, c3.ZERO); - } - clearStencil() { - const e2 = this.context, i2 = e2.gl; - this.nextStencilID = 1, this.currentStencilSource = void 0; - const o2 = t.create(); - t.ortho(o2, 0, this.width, this.height, 0, 0, 1), t.scale(o2, o2, [i2.drawingBufferWidth, i2.drawingBufferHeight, 0]), this.useProgram("clippingMask").draw(e2, i2.TRIANGLES, wi.disabled, this.stencilClearMode, yi.disabled, Ii.disabled, xe(o2), null, "$clipping", this.viewportBuffer, this.quadTriangleIndexBuffer, this.viewportSegments); - } - _renderTileClippingMasks(t2, e2) { - if (this.currentStencilSource === t2.source || !t2.isTileClipped() || !e2 || !e2.length) - return; + } }, yo = function(t2, e2) { + this.context = new zt(t2), this.transform = e2, this._tileTextures = {}, this.setup(), this.numSublayers = Dt.maxUnderzooming + Dt.maxOverzooming + 1, this.depthEpsilon = 1 / Math.pow(2, 16), this.crossTileSymbolIndex = new Fe(), this.gpuTimers = {}; + }; + yo.prototype.resize = function(e2, i2) { + if (this.width = e2 * t.browser.devicePixelRatio, this.height = i2 * t.browser.devicePixelRatio, this.context.viewport.set([0, 0, this.width, this.height]), this.style) + for (var o2 = 0, r2 = this.style._order; o2 < r2.length; o2 += 1) + this.style._layers[r2[o2]].resize(); + }, yo.prototype.setup = function() { + var e2 = this.context, i2 = new t.StructArrayLayout2i4(); + i2.emplaceBack(0, 0), i2.emplaceBack(t.EXTENT, 0), i2.emplaceBack(0, t.EXTENT), i2.emplaceBack(t.EXTENT, t.EXTENT), this.tileExtentBuffer = e2.createVertexBuffer(i2, Ve.members), this.tileExtentSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2); + var o2 = new t.StructArrayLayout2i4(); + o2.emplaceBack(0, 0), o2.emplaceBack(t.EXTENT, 0), o2.emplaceBack(0, t.EXTENT), o2.emplaceBack(t.EXTENT, t.EXTENT), this.debugBuffer = e2.createVertexBuffer(o2, Ve.members), this.debugSegments = t.SegmentVector.simpleSegment(0, 0, 4, 5); + var r2 = new t.StructArrayLayout4i8(); + r2.emplaceBack(0, 0, 0, 0), r2.emplaceBack(t.EXTENT, 0, t.EXTENT, 0), r2.emplaceBack(0, t.EXTENT, 0, t.EXTENT), r2.emplaceBack(t.EXTENT, t.EXTENT, t.EXTENT, t.EXTENT), this.rasterBoundsBuffer = e2.createVertexBuffer(r2, A2.members), this.rasterBoundsSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2); + var a2 = new t.StructArrayLayout2i4(); + a2.emplaceBack(0, 0), a2.emplaceBack(1, 0), a2.emplaceBack(0, 1), a2.emplaceBack(1, 1), this.viewportBuffer = e2.createVertexBuffer(a2, Ve.members), this.viewportSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2); + var n2 = new t.StructArrayLayout1ui2(); + n2.emplaceBack(0), n2.emplaceBack(1), n2.emplaceBack(3), n2.emplaceBack(2), n2.emplaceBack(0), this.tileBorderIndexBuffer = e2.createIndexBuffer(n2); + var s2 = new t.StructArrayLayout3ui6(); + s2.emplaceBack(0, 1, 2), s2.emplaceBack(2, 1, 3), this.quadTriangleIndexBuffer = e2.createIndexBuffer(s2), this.emptyTexture = new t.Texture(e2, { width: 1, height: 1, data: new Uint8Array([0, 0, 0, 0]) }, e2.gl.RGBA); + var l2 = this.context.gl; + this.stencilClearMode = new Pt({ func: l2.ALWAYS, mask: 0 }, 0, 255, l2.ZERO, l2.ZERO, l2.ZERO); + }, yo.prototype.clearStencil = function() { + var e2 = this.context, i2 = e2.gl; + this.nextStencilID = 1, this.currentStencilSource = void 0; + var o2 = t.create(); + t.ortho(o2, 0, this.width, this.height, 0, 0, 1), t.scale(o2, o2, [i2.drawingBufferWidth, i2.drawingBufferHeight, 0]), this.useProgram("clippingMask").draw(e2, i2.TRIANGLES, It.disabled, this.stencilClearMode, St.disabled, Ct.disabled, Li(o2), "$clipping", this.viewportBuffer, this.quadTriangleIndexBuffer, this.viewportSegments); + }, yo.prototype._renderTileClippingMasks = function(t2, e2) { + if (this.currentStencilSource !== t2.source && t2.isTileClipped() && e2 && e2.length) { this.currentStencilSource = t2.source; - const i2 = this.context, o2 = i2.gl; - this.nextStencilID + e2.length > 256 && this.clearStencil(), i2.setColorMode(yi.disabled), i2.setDepthMode(wi.disabled); - const a2 = this.useProgram("clippingMask"); + var i2 = this.context, o2 = i2.gl; + this.nextStencilID + e2.length > 256 && this.clearStencil(), i2.setColorMode(St.disabled), i2.setDepthMode(It.disabled); + var r2 = this.useProgram("clippingMask"); this._tileClippingMaskIDs = {}; - for (const t3 of e2) { - const e3 = this._tileClippingMaskIDs[t3.key] = this.nextStencilID++, r2 = this.style.terrain && this.style.terrain.getTerrainData(t3); - a2.draw(i2, o2.TRIANGLES, wi.disabled, new Ei({ func: o2.ALWAYS, mask: 0 }, e3, 255, o2.KEEP, o2.KEEP, o2.REPLACE), yi.disabled, Ii.disabled, xe(t3.posMatrix), r2, "$clipping", this.tileExtentBuffer, this.quadTriangleIndexBuffer, this.tileExtentSegments); - } - } - stencilModeFor3D() { - this.currentStencilSource = void 0, this.nextStencilID + 1 > 256 && this.clearStencil(); - const t2 = this.nextStencilID++, e2 = this.context.gl; - return new Ei({ func: e2.NOTEQUAL, mask: 255 }, t2, 255, e2.KEEP, e2.KEEP, e2.REPLACE); - } - stencilModeForClipping(t2) { - const e2 = this.context.gl; - return new Ei({ func: e2.EQUAL, mask: 255 }, this._tileClippingMaskIDs[t2.key], 0, e2.KEEP, e2.KEEP, e2.REPLACE); - } - stencilConfigForOverlap(t2) { - const e2 = this.context.gl, i2 = t2.sort((t3, e3) => e3.overscaledZ - t3.overscaledZ), o2 = i2[i2.length - 1].overscaledZ, a2 = i2[0].overscaledZ - o2 + 1; - if (a2 > 1) { - this.currentStencilSource = void 0, this.nextStencilID + a2 > 256 && this.clearStencil(); - const t3 = {}; - for (let i3 = 0; i3 < a2; i3++) - t3[i3 + o2] = new Ei({ func: e2.GEQUAL, mask: 255 }, i3 + this.nextStencilID, 255, e2.KEEP, e2.KEEP, e2.REPLACE); - return this.nextStencilID += a2, [t3, i2]; - } - return [{ [o2]: Ei.disabled }, i2]; - } - colorModeForRenderPass() { - const e2 = this.context.gl; - if (this._showOverdrawInspector) { - const i2 = 1 / 8; - return new yi([e2.CONSTANT_COLOR, e2.ONE], new t.Color(i2, i2, i2, 0), [true, true, true, true]); - } - return "opaque" === this.renderPass ? yi.unblended : yi.alphaBlended; - } - depthModeForSublayer(t2, e2, i2) { - if (!this.opaquePassEnabledForLayer()) - return wi.disabled; - const o2 = 1 - ((1 + this.currentLayer) * this.numSublayers + t2) * this.depthEpsilon; - return new wi(i2 || this.context.gl.LEQUAL, e2, [o2, o2]); - } - opaquePassEnabledForLayer() { - return this.currentLayer < this.opaquePassCutoff; - } - render(e2, i2) { - this.style = e2, this.options = i2, this.lineAtlas = e2.lineAtlas, this.imageManager = e2.imageManager, this.glyphManager = e2.glyphManager, this.symbolFadeChange = e2.placement.symbolFadeChange(t.exported.now()), this.imageManager.beginFrame(); - const o2 = this.style._order, a2 = this.style.sourceCaches, r2 = this.style.terrain && new Ki(this); - for (const t2 in a2) { - const e3 = a2[t2]; - e3.used && e3.prepare(this.context); - } - const s2 = {}, n2 = {}, l2 = {}; - for (const t2 in a2) { - const e3 = a2[t2]; - s2[t2] = e3.getVisibleCoordinates(), n2[t2] = s2[t2].slice().reverse(), l2[t2] = e3.getVisibleCoordinates(true).reverse(); - } - this.opaquePassCutoff = 1 / 0; - for (let t2 = 0; t2 < o2.length; t2++) - if (this.style._layers[o2[t2]].is3D()) { - this.opaquePassCutoff = t2; - break; - } - if (r2) { - this.opaquePassCutoff = 0; - const e3 = this.style.terrain.sourceCache.tilesAfterTime(this.terrainFacilitator.renderTime); - (this.terrainFacilitator.dirty || !t.equals(this.terrainFacilitator.matrix, this.transform.projMatrix) || e3.length) && (t.copy(this.terrainFacilitator.matrix, this.transform.projMatrix), this.terrainFacilitator.renderTime = Date.now(), this.terrainFacilitator.dirty = false, function(e4, i3) { - const o3 = e4.context, a3 = o3.gl, r3 = yi.unblended, s3 = new wi(a3.LEQUAL, wi.ReadWrite, [0, 1]), n3 = i3.getTerrainMesh(), l3 = i3.sourceCache.getRenderableTiles(), c3 = e4.useProgram("terrainDepth"); - o3.bindFramebuffer.set(i3.getFramebuffer("depth").framebuffer), o3.viewport.set([0, 0, e4.width / devicePixelRatio, e4.height / devicePixelRatio]), o3.clear({ color: t.Color.transparent, depth: 1 }); - for (const t2 of l3) { - const l4 = i3.getTerrainData(t2.tileID), h3 = e4.transform.calculatePosMatrix(t2.tileID.toUnwrapped()); - c3.draw(o3, a3.TRIANGLES, s3, Ei.disabled, r3, Ii.backCCW, { u_matrix: h3 }, l4, "terrain", n3.vertexBuffer, n3.indexBuffer, n3.segments); - } - o3.bindFramebuffer.set(null), o3.viewport.set([0, 0, e4.width, e4.height]); - }(this, this.style.terrain), function(e4, i3) { - const o3 = e4.context, a3 = o3.gl, r3 = yi.unblended, s3 = new wi(a3.LEQUAL, wi.ReadWrite, [0, 1]), n3 = i3.getTerrainMesh(), l3 = i3.getCoordsTexture(), c3 = i3.sourceCache.getRenderableTiles(), h3 = e4.useProgram("terrainCoords"); - o3.bindFramebuffer.set(i3.getFramebuffer("coords").framebuffer), o3.viewport.set([0, 0, e4.width / devicePixelRatio, e4.height / devicePixelRatio]), o3.clear({ color: t.Color.transparent, depth: 1 }), i3.coordsIndex = []; - for (const t2 of c3) { - const c4 = i3.getTerrainData(t2.tileID); - o3.activeTexture.set(a3.TEXTURE0), a3.bindTexture(a3.TEXTURE_2D, l3.texture); - const u2 = e4.transform.calculatePosMatrix(t2.tileID.toUnwrapped()); - h3.draw(o3, a3.TRIANGLES, s3, Ei.disabled, r3, Ii.backCCW, { u_matrix: u2, u_terrain_coords_id: (255 - i3.coordsIndex.length) / 255, u_texture: 0 }, c4, "terrain", n3.vertexBuffer, n3.indexBuffer, n3.segments), i3.coordsIndex.push(t2.tileID.key); - } - o3.bindFramebuffer.set(null), o3.viewport.set([0, 0, e4.width, e4.height]); - }(this, this.style.terrain)); - } - this.renderPass = "offscreen"; - for (const t2 of o2) { - const e3 = this.style._layers[t2]; - if (!e3.hasOffscreenPass() || e3.isHidden(this.transform.zoom)) - continue; - const i3 = n2[e3.source]; - ("custom" === e3.type || i3.length) && this.renderLayer(this, a2[e3.source], e3, i3); + for (var a2 = 0, n2 = e2; a2 < n2.length; a2 += 1) { + var s2 = n2[a2], l2 = this._tileClippingMaskIDs[s2.key] = this.nextStencilID++; + r2.draw(i2, o2.TRIANGLES, It.disabled, new Pt({ func: o2.ALWAYS, mask: 0 }, l2, 255, o2.KEEP, o2.KEEP, o2.REPLACE), St.disabled, Ct.disabled, Li(s2.posMatrix), "$clipping", this.tileExtentBuffer, this.quadTriangleIndexBuffer, this.tileExtentSegments); + } + } + }, yo.prototype.stencilModeFor3D = function() { + this.currentStencilSource = void 0, this.nextStencilID + 1 > 256 && this.clearStencil(); + var t2 = this.nextStencilID++, e2 = this.context.gl; + return new Pt({ func: e2.NOTEQUAL, mask: 255 }, t2, 255, e2.KEEP, e2.KEEP, e2.REPLACE); + }, yo.prototype.stencilModeForClipping = function(t2) { + var e2 = this.context.gl; + return new Pt({ func: e2.EQUAL, mask: 255 }, this._tileClippingMaskIDs[t2.key], 0, e2.KEEP, e2.KEEP, e2.REPLACE); + }, yo.prototype.stencilConfigForOverlap = function(t2) { + var e2, i2 = this.context.gl, o2 = t2.sort(function(t3, e3) { + return e3.overscaledZ - t3.overscaledZ; + }), r2 = o2[o2.length - 1].overscaledZ, a2 = o2[0].overscaledZ - r2 + 1; + if (a2 > 1) { + this.currentStencilSource = void 0, this.nextStencilID + a2 > 256 && this.clearStencil(); + for (var n2 = {}, s2 = 0; s2 < a2; s2++) + n2[s2 + r2] = new Pt({ func: i2.GEQUAL, mask: 255 }, s2 + this.nextStencilID, 255, i2.KEEP, i2.KEEP, i2.REPLACE); + return this.nextStencilID += a2, [n2, o2]; + } + return [(e2 = {}, e2[r2] = Pt.disabled, e2), o2]; + }, yo.prototype.colorModeForRenderPass = function() { + var e2 = this.context.gl; + return this._showOverdrawInspector ? new St([e2.CONSTANT_COLOR, e2.ONE], new t.Color(1 / 8, 1 / 8, 1 / 8, 0), [true, true, true, true]) : "opaque" === this.renderPass ? St.unblended : St.alphaBlended; + }, yo.prototype.depthModeForSublayer = function(t2, e2, i2) { + if (!this.opaquePassEnabledForLayer()) + return It.disabled; + var o2 = 1 - ((1 + this.currentLayer) * this.numSublayers + t2) * this.depthEpsilon; + return new It(i2 || this.context.gl.LEQUAL, e2, [o2, o2]); + }, yo.prototype.opaquePassEnabledForLayer = function() { + return this.currentLayer < this.opaquePassCutoff; + }, yo.prototype.render = function(e2, i2) { + var o2 = this; + this.style = e2, this.options = i2, this.lineAtlas = e2.lineAtlas, this.imageManager = e2.imageManager, this.glyphManager = e2.glyphManager, this.symbolFadeChange = e2.placement.symbolFadeChange(t.browser.now()), this.imageManager.beginFrame(); + var r2 = this.style._order, a2 = this.style.sourceCaches; + for (var n2 in a2) { + var s2 = a2[n2]; + s2.used && s2.prepare(this.context); + } + var l2, c3, u2 = {}, h3 = {}, p3 = {}; + for (var d2 in a2) { + var _24 = a2[d2]; + u2[d2] = _24.getVisibleCoordinates(), h3[d2] = u2[d2].slice().reverse(), p3[d2] = _24.getVisibleCoordinates(true).reverse(); + } + this.opaquePassCutoff = 1 / 0; + for (var f2 = 0; f2 < r2.length; f2++) + if (this.style._layers[r2[f2]].is3D()) { + this.opaquePassCutoff = f2; + break; } - if (this.context.bindFramebuffer.set(null), this.context.clear({ color: i2.showOverdrawInspector ? t.Color.black : t.Color.transparent, depth: 1 }), this.clearStencil(), this._showOverdrawInspector = i2.showOverdrawInspector, this.depthRangeFor3D = [0, 1 - (e2._order.length + 2) * this.numSublayers * this.depthEpsilon], !r2) - for (this.renderPass = "opaque", this.currentLayer = o2.length - 1; this.currentLayer >= 0; this.currentLayer--) { - const t2 = this.style._layers[o2[this.currentLayer]], e3 = a2[t2.source], i3 = s2[t2.source]; - this._renderTileClippingMasks(t2, i3), this.renderLayer(this, e3, t2, i3); - } - for (this.renderPass = "translucent", this.currentLayer = 0; this.currentLayer < o2.length; this.currentLayer++) { - const t2 = this.style._layers[o2[this.currentLayer]], e3 = a2[t2.source]; - if (r2 && r2.renderLayer(t2)) - continue; - const i3 = ("symbol" === t2.type ? l2 : n2)[t2.source]; - this._renderTileClippingMasks(t2, s2[t2.source]), this.renderLayer(this, e3, t2, i3); - } - if (this.options.showTileBoundaries) { - let t2, e3; - Object.values(this.style._layers).forEach((i3) => { - i3.source && !i3.isHidden(this.transform.zoom) && (i3.source !== (e3 && e3.id) && (e3 = this.style.sourceCaches[i3.source]), (!t2 || t2.getSource().maxzoom < e3.getSource().maxzoom) && (t2 = e3)); - }), t2 && Yi.debug(this, t2, t2.getVisibleCoordinates()); - } - this.options.showPadding && function(t2) { - const e3 = t2.transform.padding; - qi(t2, t2.transform.height - (e3.top || 0), 3, Ui), qi(t2, e3.bottom || 0, 3, Ni), ji(t2, e3.left || 0, 3, Gi), ji(t2, t2.transform.width - (e3.right || 0), 3, Zi); - const i3 = t2.transform.centerPoint; - !function(t3, e4, i4, o3) { - $i(t3, e4 - 1, i4 - 10, 2, 20, o3), $i(t3, e4 - 10, i4 - 1, 20, 2, o3); - }(t2, i3.x, t2.transform.height - i3.y, Vi); - }(this), this.context.setDefault(); - } - renderLayer(t2, e2, i2, o2) { - i2.isHidden(this.transform.zoom) || ("background" === i2.type || "custom" === i2.type || (o2 || []).length) && (this.id = i2.id, this.gpuTimingStart(i2), Yi[i2.type](t2, e2, i2, o2, this.style.placement.variableOffsets), this.gpuTimingEnd()); - } - gpuTimingStart(t2) { - if (!this.options.gpuTiming) - return; - const e2 = this.context.extTimerQuery; - let i2 = this.gpuTimers[t2.id]; + this.renderPass = "offscreen"; + for (var m2 = 0, g2 = r2; m2 < g2.length; m2 += 1) { + var v3 = this.style._layers[g2[m2]]; + if (v3.hasOffscreenPass() && !v3.isHidden(this.transform.zoom)) { + var y3 = h3[v3.source]; + ("custom" === v3.type || y3.length) && this.renderLayer(this, a2[v3.source], v3, y3); + } + } + for (this.context.bindFramebuffer.set(null), this.context.clear({ color: i2.showOverdrawInspector ? t.Color.black : t.Color.transparent, depth: 1 }), this.clearStencil(), this._showOverdrawInspector = i2.showOverdrawInspector, this.depthRangeFor3D = [0, 1 - (e2._order.length + 2) * this.numSublayers * this.depthEpsilon], this.renderPass = "opaque", this.currentLayer = r2.length - 1; this.currentLayer >= 0; this.currentLayer--) { + var x2 = this.style._layers[r2[this.currentLayer]], b2 = a2[x2.source], w2 = u2[x2.source]; + this._renderTileClippingMasks(x2, w2), this.renderLayer(this, b2, x2, w2); + } + for (this.renderPass = "translucent", this.currentLayer = 0; this.currentLayer < r2.length; this.currentLayer++) { + var T2 = this.style._layers[r2[this.currentLayer]], E2 = a2[T2.source], I3 = ("symbol" === T2.type ? p3 : h3)[T2.source]; + this._renderTileClippingMasks(T2, u2[T2.source]), this.renderLayer(this, E2, T2, I3); + } + this.options.showTileBoundaries && (t.values(this.style._layers).forEach(function(t2) { + t2.source && !t2.isHidden(o2.transform.zoom) && (t2.source !== (c3 && c3.id) && (c3 = o2.style.sourceCaches[t2.source]), (!l2 || l2.getSource().maxzoom < c3.getSource().maxzoom) && (l2 = c3)); + }), l2 && vo.debug(this, l2, l2.getVisibleCoordinates())), this.options.showPadding && function(t2) { + var e3 = t2.transform.padding; + _o(t2, t2.transform.height - (e3.top || 0), 3, lo), _o(t2, e3.bottom || 0, 3, co), fo(t2, e3.left || 0, 3, uo), fo(t2, t2.transform.width - (e3.right || 0), 3, ho); + var i3 = t2.transform.centerPoint; + !function(t3, e4, i4, o3) { + mo(t3, e4 - 1, i4 - 10, 2, 20, o3), mo(t3, e4 - 10, i4 - 1, 20, 2, o3); + }(t2, i3.x, t2.transform.height - i3.y, po); + }(this), this.context.setDefault(); + }, yo.prototype.renderLayer = function(t2, e2, i2, o2) { + i2.isHidden(this.transform.zoom) || ("background" === i2.type || "custom" === i2.type || o2.length) && (this.id = i2.id, this.gpuTimingStart(i2), vo[i2.type](t2, e2, i2, o2, this.style.placement.variableOffsets), this.gpuTimingEnd()); + }, yo.prototype.gpuTimingStart = function(t2) { + if (this.options.gpuTiming) { + var e2 = this.context.extTimerQuery, i2 = this.gpuTimers[t2.id]; i2 || (i2 = this.gpuTimers[t2.id] = { calls: 0, cpuTime: 0, query: e2.createQueryEXT() }), i2.calls++, e2.beginQueryEXT(e2.TIME_ELAPSED_EXT, i2.query); } - gpuTimingEnd() { - if (!this.options.gpuTiming) - return; - const t2 = this.context.extTimerQuery; + }, yo.prototype.gpuTimingEnd = function() { + if (this.options.gpuTiming) { + var t2 = this.context.extTimerQuery; t2.endQueryEXT(t2.TIME_ELAPSED_EXT); } - collectGpuTimers() { - const t2 = this.gpuTimers; - return this.gpuTimers = {}, t2; + }, yo.prototype.collectGpuTimers = function() { + var t2 = this.gpuTimers; + return this.gpuTimers = {}, t2; + }, yo.prototype.queryGpuTimers = function(t2) { + var e2 = {}; + for (var i2 in t2) { + var o2 = t2[i2], r2 = this.context.extTimerQuery, a2 = r2.getQueryObjectEXT(o2.query, r2.QUERY_RESULT_EXT) / 1e6; + r2.deleteQueryEXT(o2.query), e2[i2] = a2; } - queryGpuTimers(t2) { - const e2 = {}; - for (const i2 in t2) { - const o2 = t2[i2], a2 = this.context.extTimerQuery, r2 = a2.getQueryObjectEXT(o2.query, a2.QUERY_RESULT_EXT) / 1e6; - a2.deleteQueryEXT(o2.query), e2[i2] = r2; - } + return e2; + }, yo.prototype.translatePosMatrix = function(e2, i2, o2, r2, a2) { + if (!o2[0] && !o2[1]) return e2; - } - translatePosMatrix(e2, i2, o2, a2, r2) { - if (!o2[0] && !o2[1]) - return e2; - const s2 = r2 ? "map" === a2 ? this.transform.angle : 0 : "viewport" === a2 ? -this.transform.angle : 0; - if (s2) { - const t2 = Math.sin(s2), e3 = Math.cos(s2); - o2 = [o2[0] * e3 - o2[1] * t2, o2[0] * t2 + o2[1] * e3]; + var n2 = a2 ? "map" === r2 ? this.transform.angle : 0 : "viewport" === r2 ? -this.transform.angle : 0; + if (n2) { + var s2 = Math.sin(n2), l2 = Math.cos(n2); + o2 = [o2[0] * l2 - o2[1] * s2, o2[0] * s2 + o2[1] * l2]; + } + var c3 = [a2 ? o2[0] : pe(i2, o2[0], this.transform.zoom), a2 ? o2[1] : pe(i2, o2[1], this.transform.zoom), 0], u2 = new Float32Array(16); + return t.translate(u2, e2, c3), u2; + }, yo.prototype.saveTileTexture = function(t2) { + var e2 = this._tileTextures[t2.size[0]]; + e2 ? e2.push(t2) : this._tileTextures[t2.size[0]] = [t2]; + }, yo.prototype.getTileTexture = function(t2) { + var e2 = this._tileTextures[t2]; + return e2 && e2.length > 0 ? e2.pop() : null; + }, yo.prototype.isPatternMissing = function(t2) { + if (!t2) + return false; + if (!t2.from || !t2.to) + return true; + var e2 = this.imageManager.getPattern(t2.from.toString()), i2 = this.imageManager.getPattern(t2.to.toString()); + return !e2 || !i2; + }, yo.prototype.useProgram = function(t2, e2) { + this.cache = this.cache || {}; + var i2 = "" + t2 + (e2 ? e2.cacheKey : "") + (this._showOverdrawInspector ? "/overdraw" : ""); + return this.cache[i2] || (this.cache[i2] = new bi(this.context, t2, vi[t2], e2, Ki[t2], this._showOverdrawInspector)), this.cache[i2]; + }, yo.prototype.setCustomLayerDefaults = function() { + this.context.unbindVAO(), this.context.cullFace.setDefault(), this.context.activeTexture.setDefault(), this.context.pixelStoreUnpack.setDefault(), this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.context.pixelStoreUnpackFlipY.setDefault(); + }, yo.prototype.setBaseState = function() { + var t2 = this.context.gl; + this.context.cullFace.set(false), this.context.viewport.set([0, 0, this.width, this.height]), this.context.blendEquation.set(t2.FUNC_ADD); + }, yo.prototype.initDebugOverlayCanvas = function() { + null == this.debugOverlayCanvas && (this.debugOverlayCanvas = t.window.document.createElement("canvas"), this.debugOverlayCanvas.width = 512, this.debugOverlayCanvas.height = 512, this.debugOverlayTexture = new t.Texture(this.context, this.debugOverlayCanvas, this.context.gl.RGBA)); + }, yo.prototype.destroy = function() { + this.emptyTexture.destroy(), this.debugOverlayTexture && this.debugOverlayTexture.destroy(); + }; + var xo = function(t2, e2) { + this.points = t2, this.planes = e2; + }; + xo.fromInvProjectionMatrix = function(e2, i2, o2) { + var r2 = Math.pow(2, o2), a2 = [[-1, 1, -1, 1], [1, 1, -1, 1], [1, -1, -1, 1], [-1, -1, -1, 1], [-1, 1, 1, 1], [1, 1, 1, 1], [1, -1, 1, 1], [-1, -1, 1, 1]].map(function(i3) { + return t.transformMat4([], i3, e2); + }).map(function(e3) { + return t.scale$1([], e3, 1 / e3[3] / i2 * r2); + }), n2 = [[0, 1, 2], [6, 5, 4], [0, 3, 7], [2, 1, 5], [3, 2, 6], [0, 4, 5]].map(function(e3) { + var i3 = t.sub([], a2[e3[0]], a2[e3[1]]), o3 = t.sub([], a2[e3[2]], a2[e3[1]]), r3 = t.normalize([], t.cross([], i3, o3)), n3 = -t.dot(r3, a2[e3[1]]); + return r3.concat(n3); + }); + return new xo(a2, n2); + }; + var bo = function(e2, i2) { + this.min = e2, this.max = i2, this.center = t.scale$2([], t.add([], this.min, this.max), 0.5); + }; + bo.prototype.quadrant = function(e2) { + for (var i2 = [e2 % 2 == 0, e2 < 2], o2 = t.clone$2(this.min), r2 = t.clone$2(this.max), a2 = 0; a2 < i2.length; a2++) + o2[a2] = i2[a2] ? this.min[a2] : this.center[a2], r2[a2] = i2[a2] ? this.center[a2] : this.max[a2]; + return r2[2] = this.max[2], new bo(o2, r2); + }, bo.prototype.distanceX = function(t2) { + return Math.max(Math.min(this.max[0], t2[0]), this.min[0]) - t2[0]; + }, bo.prototype.distanceY = function(t2) { + return Math.max(Math.min(this.max[1], t2[1]), this.min[1]) - t2[1]; + }, bo.prototype.intersects = function(e2) { + for (var i2 = [[this.min[0], this.min[1], 0, 1], [this.max[0], this.min[1], 0, 1], [this.max[0], this.max[1], 0, 1], [this.min[0], this.max[1], 0, 1]], o2 = true, r2 = 0; r2 < e2.planes.length; r2++) { + for (var a2 = e2.planes[r2], n2 = 0, s2 = 0; s2 < i2.length; s2++) + n2 += t.dot$1(a2, i2[s2]) >= 0; + if (0 === n2) + return 0; + n2 !== i2.length && (o2 = false); + } + if (o2) + return 2; + for (var l2 = 0; l2 < 3; l2++) { + for (var c3 = Number.MAX_VALUE, u2 = -Number.MAX_VALUE, h3 = 0; h3 < e2.points.length; h3++) { + var p3 = e2.points[h3][l2] - this.min[l2]; + c3 = Math.min(c3, p3), u2 = Math.max(u2, p3); + } + if (u2 < 0 || c3 > this.max[l2] - this.min[l2]) + return 0; + } + return 1; + }; + var wo = function(t2, e2, i2, o2) { + if (void 0 === t2 && (t2 = 0), void 0 === e2 && (e2 = 0), void 0 === i2 && (i2 = 0), void 0 === o2 && (o2 = 0), isNaN(t2) || t2 < 0 || isNaN(e2) || e2 < 0 || isNaN(i2) || i2 < 0 || isNaN(o2) || o2 < 0) + throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers"); + this.top = t2, this.bottom = e2, this.left = i2, this.right = o2; + }; + wo.prototype.interpolate = function(e2, i2, o2) { + return null != i2.top && null != e2.top && (this.top = t.number(e2.top, i2.top, o2)), null != i2.bottom && null != e2.bottom && (this.bottom = t.number(e2.bottom, i2.bottom, o2)), null != i2.left && null != e2.left && (this.left = t.number(e2.left, i2.left, o2)), null != i2.right && null != e2.right && (this.right = t.number(e2.right, i2.right, o2)), this; + }, wo.prototype.getCenter = function(e2, i2) { + var o2 = t.clamp((this.left + e2 - this.right) / 2, 0, e2), r2 = t.clamp((this.top + i2 - this.bottom) / 2, 0, i2); + return new t.Point(o2, r2); + }, wo.prototype.equals = function(t2) { + return this.top === t2.top && this.bottom === t2.bottom && this.left === t2.left && this.right === t2.right; + }, wo.prototype.clone = function() { + return new wo(this.top, this.bottom, this.left, this.right); + }, wo.prototype.toJSON = function() { + return { top: this.top, bottom: this.bottom, left: this.left, right: this.right }; + }; + var To = function(e2, i2, o2, r2, a2) { + this.tileSize = 512, this.maxValidLatitude = 85.051129, this._renderWorldCopies = void 0 === a2 || a2, this._minZoom = e2 || 0, this._maxZoom = i2 || 22, this._minPitch = null == o2 ? 0 : o2, this._maxPitch = null == r2 ? 60 : r2, this.setMaxBounds(), this.width = 0, this.height = 0, this._center = new t.LngLat(0, 0), this.zoom = 0, this.angle = 0, this._fov = 0.6435011087932844, this._pitch = 0, this._unmodified = true, this._edgeInsets = new wo(), this._posMatrixCache = {}, this._alignedPosMatrixCache = {}; + }, Eo = { minZoom: { configurable: true }, maxZoom: { configurable: true }, minPitch: { configurable: true }, maxPitch: { configurable: true }, renderWorldCopies: { configurable: true }, worldSize: { configurable: true }, centerOffset: { configurable: true }, size: { configurable: true }, bearing: { configurable: true }, pitch: { configurable: true }, fov: { configurable: true }, zoom: { configurable: true }, center: { configurable: true }, padding: { configurable: true }, centerPoint: { configurable: true }, unmodified: { configurable: true }, point: { configurable: true } }; + To.prototype.clone = function() { + var t2 = new To(this._minZoom, this._maxZoom, this._minPitch, this.maxPitch, this._renderWorldCopies); + return t2.tileSize = this.tileSize, t2.latRange = this.latRange, t2.width = this.width, t2.height = this.height, t2._center = this._center, t2.zoom = this.zoom, t2.angle = this.angle, t2._fov = this._fov, t2._pitch = this._pitch, t2._unmodified = this._unmodified, t2._edgeInsets = this._edgeInsets.clone(), t2._calcMatrices(), t2; + }, Eo.minZoom.get = function() { + return this._minZoom; + }, Eo.minZoom.set = function(t2) { + this._minZoom !== t2 && (this._minZoom = t2, this.zoom = Math.max(this.zoom, t2)); + }, Eo.maxZoom.get = function() { + return this._maxZoom; + }, Eo.maxZoom.set = function(t2) { + this._maxZoom !== t2 && (this._maxZoom = t2, this.zoom = Math.min(this.zoom, t2)); + }, Eo.minPitch.get = function() { + return this._minPitch; + }, Eo.minPitch.set = function(t2) { + this._minPitch !== t2 && (this._minPitch = t2, this.pitch = Math.max(this.pitch, t2)); + }, Eo.maxPitch.get = function() { + return this._maxPitch; + }, Eo.maxPitch.set = function(t2) { + this._maxPitch !== t2 && (this._maxPitch = t2, this.pitch = Math.min(this.pitch, t2)); + }, Eo.renderWorldCopies.get = function() { + return this._renderWorldCopies; + }, Eo.renderWorldCopies.set = function(t2) { + void 0 === t2 ? t2 = true : null === t2 && (t2 = false), this._renderWorldCopies = t2; + }, Eo.worldSize.get = function() { + return this.tileSize * this.scale; + }, Eo.centerOffset.get = function() { + return this.centerPoint._sub(this.size._div(2)); + }, Eo.size.get = function() { + return new t.Point(this.width, this.height); + }, Eo.bearing.get = function() { + return -this.angle / Math.PI * 180; + }, Eo.bearing.set = function(e2) { + var i2 = -t.wrap(e2, -180, 180) * Math.PI / 180; + this.angle !== i2 && (this._unmodified = false, this.angle = i2, this._calcMatrices(), this.rotationMatrix = t.create$2(), t.rotate(this.rotationMatrix, this.rotationMatrix, this.angle)); + }, Eo.pitch.get = function() { + return this._pitch / Math.PI * 180; + }, Eo.pitch.set = function(e2) { + var i2 = t.clamp(e2, this.minPitch, this.maxPitch) / 180 * Math.PI; + this._pitch !== i2 && (this._unmodified = false, this._pitch = i2, this._calcMatrices()); + }, Eo.fov.get = function() { + return this._fov / Math.PI * 180; + }, Eo.fov.set = function(t2) { + t2 = Math.max(0.01, Math.min(60, t2)), this._fov !== t2 && (this._unmodified = false, this._fov = t2 / 180 * Math.PI, this._calcMatrices()); + }, Eo.zoom.get = function() { + return this._zoom; + }, Eo.zoom.set = function(t2) { + var e2 = Math.min(Math.max(t2, this.minZoom), this.maxZoom); + this._zoom !== e2 && (this._unmodified = false, this._zoom = e2, this.scale = this.zoomScale(e2), this.tileZoom = Math.floor(e2), this.zoomFraction = e2 - this.tileZoom, this._constrain(), this._calcMatrices()); + }, Eo.center.get = function() { + return this._center; + }, Eo.center.set = function(t2) { + t2.lat === this._center.lat && t2.lng === this._center.lng || (this._unmodified = false, this._center = t2, this._constrain(), this._calcMatrices()); + }, Eo.padding.get = function() { + return this._edgeInsets.toJSON(); + }, Eo.padding.set = function(t2) { + this._edgeInsets.equals(t2) || (this._unmodified = false, this._edgeInsets.interpolate(this._edgeInsets, t2, 1), this._calcMatrices()); + }, Eo.centerPoint.get = function() { + return this._edgeInsets.getCenter(this.width, this.height); + }, To.prototype.isPaddingEqual = function(t2) { + return this._edgeInsets.equals(t2); + }, To.prototype.interpolatePadding = function(t2, e2, i2) { + this._unmodified = false, this._edgeInsets.interpolate(t2, e2, i2), this._constrain(), this._calcMatrices(); + }, To.prototype.coveringZoomLevel = function(t2) { + var e2 = (t2.roundZoom ? Math.round : Math.floor)(this.zoom + this.scaleZoom(this.tileSize / t2.tileSize)); + return Math.max(0, e2); + }, To.prototype.getVisibleUnwrappedCoordinates = function(e2) { + var i2 = [new t.UnwrappedTileID(0, e2)]; + if (this._renderWorldCopies) + for (var o2 = this.pointCoordinate(new t.Point(0, 0)), r2 = this.pointCoordinate(new t.Point(this.width, 0)), a2 = this.pointCoordinate(new t.Point(this.width, this.height)), n2 = this.pointCoordinate(new t.Point(0, this.height)), s2 = Math.floor(Math.min(o2.x, r2.x, a2.x, n2.x)), l2 = Math.floor(Math.max(o2.x, r2.x, a2.x, n2.x)), c3 = s2 - 1; c3 <= l2 + 1; c3++) + 0 !== c3 && i2.push(new t.UnwrappedTileID(c3, e2)); + return i2; + }, To.prototype.coveringTiles = function(e2) { + var i2 = this.coveringZoomLevel(e2), o2 = i2; + if (void 0 !== e2.minzoom && i2 < e2.minzoom) + return []; + void 0 !== e2.maxzoom && i2 > e2.maxzoom && (i2 = e2.maxzoom); + var r2 = t.MercatorCoordinate.fromLngLat(this.center), a2 = Math.pow(2, i2), n2 = [a2 * r2.x, a2 * r2.y, 0], s2 = xo.fromInvProjectionMatrix(this.invProjMatrix, this.worldSize, i2), l2 = e2.minzoom || 0; + this.pitch <= 60 && this._edgeInsets.top < 0.1 && (l2 = i2); + var c3 = function(t2) { + return { aabb: new bo([t2 * a2, 0, 0], [(t2 + 1) * a2, a2, 0]), zoom: 0, x: 0, y: 0, wrap: t2, fullyVisible: false }; + }, u2 = [], h3 = [], p3 = i2, d2 = e2.reparseOverscaled ? o2 : i2; + if (this._renderWorldCopies) + for (var _24 = 1; _24 <= 3; _24++) + u2.push(c3(-_24)), u2.push(c3(_24)); + for (u2.push(c3(0)); u2.length > 0; ) { + var f2 = u2.pop(), m2 = f2.x, g2 = f2.y, v3 = f2.fullyVisible; + if (!v3) { + var y3 = f2.aabb.intersects(s2); + if (0 === y3) + continue; + v3 = 2 === y3; } - const n2 = [r2 ? o2[0] : bt(i2, o2[0], this.transform.zoom), r2 ? o2[1] : bt(i2, o2[1], this.transform.zoom), 0], l2 = new Float32Array(16); - return t.translate(l2, e2, n2), l2; - } - saveTileTexture(t2) { - const e2 = this._tileTextures[t2.size[0]]; - e2 ? e2.push(t2) : this._tileTextures[t2.size[0]] = [t2]; - } - getTileTexture(t2) { - const e2 = this._tileTextures[t2]; - return e2 && e2.length > 0 ? e2.pop() : null; - } - isPatternMissing(t2) { - if (!t2) - return false; - if (!t2.from || !t2.to) - return true; - const e2 = this.imageManager.getPattern(t2.from.toString()), i2 = this.imageManager.getPattern(t2.to.toString()); - return !e2 || !i2; - } - useProgram(t2, e2) { - this.cache = this.cache || {}; - const i2 = t2 + (e2 ? e2.cacheKey : "") + (this._showOverdrawInspector ? "/overdraw" : "") + (this.style.terrain ? "/terrain" : ""); - return this.cache[i2] || (this.cache[i2] = new ne(this.context, t2, oe[t2], e2, Re[t2], this._showOverdrawInspector, this.style.terrain)), this.cache[i2]; - } - setCustomLayerDefaults() { - this.context.unbindVAO(), this.context.cullFace.setDefault(), this.context.activeTexture.setDefault(), this.context.pixelStoreUnpack.setDefault(), this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.context.pixelStoreUnpackFlipY.setDefault(); + var x2 = f2.aabb.distanceX(n2), b2 = f2.aabb.distanceY(n2), w2 = Math.max(Math.abs(x2), Math.abs(b2)); + if (f2.zoom === p3 || w2 > 3 + (1 << p3 - f2.zoom) - 2 && f2.zoom >= l2) + h3.push({ tileID: new t.OverscaledTileID(f2.zoom === p3 ? d2 : f2.zoom, f2.wrap, f2.zoom, m2, g2), distanceSq: t.sqrLen([n2[0] - 0.5 - m2, n2[1] - 0.5 - g2]) }); + else + for (var T2 = 0; T2 < 4; T2++) { + var E2 = (m2 << 1) + T2 % 2, I3 = (g2 << 1) + (T2 >> 1); + u2.push({ aabb: f2.aabb.quadrant(T2), zoom: f2.zoom + 1, x: E2, y: I3, wrap: f2.wrap, fullyVisible: v3 }); + } } - setBaseState() { - const t2 = this.context.gl; - this.context.cullFace.set(false), this.context.viewport.set([0, 0, this.width, this.height]), this.context.blendEquation.set(t2.FUNC_ADD); + return h3.sort(function(t2, e3) { + return t2.distanceSq - e3.distanceSq; + }).map(function(t2) { + return t2.tileID; + }); + }, To.prototype.resize = function(t2, e2) { + this.width = t2, this.height = e2, this.pixelsToGLUnits = [2 / t2, -2 / e2], this._constrain(), this._calcMatrices(); + }, Eo.unmodified.get = function() { + return this._unmodified; + }, To.prototype.zoomScale = function(t2) { + return Math.pow(2, t2); + }, To.prototype.scaleZoom = function(t2) { + return Math.log(t2) / Math.LN2; + }, To.prototype.project = function(e2) { + var i2 = t.clamp(e2.lat, -this.maxValidLatitude, this.maxValidLatitude); + return new t.Point(t.mercatorXfromLng(e2.lng) * this.worldSize, t.mercatorYfromLat(i2) * this.worldSize); + }, To.prototype.unproject = function(e2) { + return new t.MercatorCoordinate(e2.x / this.worldSize, e2.y / this.worldSize).toLngLat(); + }, Eo.point.get = function() { + return this.project(this.center); + }, To.prototype.setLocationAtPoint = function(e2, i2) { + var o2 = this.pointCoordinate(i2), r2 = this.pointCoordinate(this.centerPoint), a2 = this.locationCoordinate(e2), n2 = new t.MercatorCoordinate(a2.x - (o2.x - r2.x), a2.y - (o2.y - r2.y)); + this.center = this.coordinateLocation(n2), this._renderWorldCopies && (this.center = this.center.wrap()); + }, To.prototype.locationPoint = function(t2) { + return this.coordinatePoint(this.locationCoordinate(t2)); + }, To.prototype.pointLocation = function(t2) { + return this.coordinateLocation(this.pointCoordinate(t2)); + }, To.prototype.locationCoordinate = function(e2) { + return t.MercatorCoordinate.fromLngLat(e2); + }, To.prototype.coordinateLocation = function(t2) { + return t2.toLngLat(); + }, To.prototype.pointCoordinate = function(e2) { + var i2 = [e2.x, e2.y, 0, 1], o2 = [e2.x, e2.y, 1, 1]; + t.transformMat4(i2, i2, this.pixelMatrixInverse), t.transformMat4(o2, o2, this.pixelMatrixInverse); + var r2 = i2[3], a2 = o2[3], n2 = i2[1] / r2, s2 = o2[1] / a2, l2 = i2[2] / r2, c3 = o2[2] / a2, u2 = l2 === c3 ? 0 : (0 - l2) / (c3 - l2); + return new t.MercatorCoordinate(t.number(i2[0] / r2, o2[0] / a2, u2) / this.worldSize, t.number(n2, s2, u2) / this.worldSize); + }, To.prototype.coordinatePoint = function(e2) { + var i2 = [e2.x * this.worldSize, e2.y * this.worldSize, 0, 1]; + return t.transformMat4(i2, i2, this.pixelMatrix), new t.Point(i2[0] / i2[3], i2[1] / i2[3]); + }, To.prototype.getBounds = function() { + return new t.LngLatBounds().extend(this.pointLocation(new t.Point(0, 0))).extend(this.pointLocation(new t.Point(this.width, 0))).extend(this.pointLocation(new t.Point(this.width, this.height))).extend(this.pointLocation(new t.Point(0, this.height))); + }, To.prototype.getMaxBounds = function() { + return this.latRange && 2 === this.latRange.length && this.lngRange && 2 === this.lngRange.length ? new t.LngLatBounds([this.lngRange[0], this.latRange[0]], [this.lngRange[1], this.latRange[1]]) : null; + }, To.prototype.setMaxBounds = function(t2) { + t2 ? (this.lngRange = [t2.getWest(), t2.getEast()], this.latRange = [t2.getSouth(), t2.getNorth()], this._constrain()) : (this.lngRange = null, this.latRange = [-this.maxValidLatitude, this.maxValidLatitude]); + }, To.prototype.calculatePosMatrix = function(e2, i2) { + void 0 === i2 && (i2 = false); + var o2 = e2.key, r2 = i2 ? this._alignedPosMatrixCache : this._posMatrixCache; + if (r2[o2]) + return r2[o2]; + var a2 = e2.canonical, n2 = this.worldSize / this.zoomScale(a2.z), s2 = a2.x + Math.pow(2, a2.z) * e2.wrap, l2 = t.identity(new Float64Array(16)); + return t.translate(l2, l2, [s2 * n2, a2.y * n2, 0]), t.scale(l2, l2, [n2 / t.EXTENT, n2 / t.EXTENT, 1]), t.multiply(l2, i2 ? this.alignedProjMatrix : this.projMatrix, l2), r2[o2] = new Float32Array(l2), r2[o2]; + }, To.prototype.customLayerMatrix = function() { + return this.mercatorMatrix.slice(); + }, To.prototype._constrain = function() { + if (this.center && this.width && this.height && !this._constraining) { + this._constraining = true; + var e2, i2, o2, r2, a2 = -90, n2 = 90, s2 = -180, l2 = 180, c3 = this.size, u2 = this._unmodified; + if (this.latRange) { + var h3 = this.latRange; + a2 = t.mercatorYfromLat(h3[1]) * this.worldSize, e2 = (n2 = t.mercatorYfromLat(h3[0]) * this.worldSize) - a2 < c3.y ? c3.y / (n2 - a2) : 0; + } + if (this.lngRange) { + var p3 = this.lngRange; + s2 = t.mercatorXfromLng(p3[0]) * this.worldSize, i2 = (l2 = t.mercatorXfromLng(p3[1]) * this.worldSize) - s2 < c3.x ? c3.x / (l2 - s2) : 0; + } + var d2 = this.point, _24 = Math.max(i2 || 0, e2 || 0); + if (_24) + return this.center = this.unproject(new t.Point(i2 ? (l2 + s2) / 2 : d2.x, e2 ? (n2 + a2) / 2 : d2.y)), this.zoom += this.scaleZoom(_24), this._unmodified = u2, void (this._constraining = false); + if (this.latRange) { + var f2 = d2.y, m2 = c3.y / 2; + f2 - m2 < a2 && (r2 = a2 + m2), f2 + m2 > n2 && (r2 = n2 - m2); + } + if (this.lngRange) { + var g2 = d2.x, v3 = c3.x / 2; + g2 - v3 < s2 && (o2 = s2 + v3), g2 + v3 > l2 && (o2 = l2 - v3); + } + void 0 === o2 && void 0 === r2 || (this.center = this.unproject(new t.Point(void 0 !== o2 ? o2 : d2.x, void 0 !== r2 ? r2 : d2.y))), this._unmodified = u2, this._constraining = false; + } + }, To.prototype._calcMatrices = function() { + if (this.height) { + var e2 = this.centerOffset; + this.cameraToCenterDistance = 0.5 / Math.tan(this._fov / 2) * this.height; + var i2 = Math.PI / 2 + this._pitch, o2 = this._fov * (0.5 + e2.y / this.height), r2 = Math.sin(o2) * this.cameraToCenterDistance / Math.sin(t.clamp(Math.PI - i2 - o2, 0.01, Math.PI - 0.01)), a2 = this.point, n2 = a2.x, s2 = a2.y, l2 = 1.01 * (Math.cos(Math.PI / 2 - this._pitch) * r2 + this.cameraToCenterDistance), c3 = this.height / 50, u2 = new Float64Array(16); + t.perspective(u2, this._fov, this.width / this.height, c3, l2), u2[8] = 2 * -e2.x / this.width, u2[9] = 2 * e2.y / this.height, t.scale(u2, u2, [1, -1, 1]), t.translate(u2, u2, [0, 0, -this.cameraToCenterDistance]), t.rotateX(u2, u2, this._pitch), t.rotateZ(u2, u2, this.angle), t.translate(u2, u2, [-n2, -s2, 0]), this.mercatorMatrix = t.scale([], u2, [this.worldSize, this.worldSize, this.worldSize]), t.scale(u2, u2, [1, 1, t.mercatorZfromAltitude(1, this.center.lat) * this.worldSize, 1]), this.projMatrix = u2, this.invProjMatrix = t.invert([], this.projMatrix); + var h3 = this.width % 2 / 2, p3 = this.height % 2 / 2, d2 = Math.cos(this.angle), _24 = Math.sin(this.angle), f2 = n2 - Math.round(n2) + d2 * h3 + _24 * p3, m2 = s2 - Math.round(s2) + d2 * p3 + _24 * h3, g2 = new Float64Array(u2); + if (t.translate(g2, g2, [f2 > 0.5 ? f2 - 1 : f2, m2 > 0.5 ? m2 - 1 : m2, 0]), this.alignedProjMatrix = g2, u2 = t.create(), t.scale(u2, u2, [this.width / 2, -this.height / 2, 1]), t.translate(u2, u2, [1, -1, 0]), this.labelPlaneMatrix = u2, u2 = t.create(), t.scale(u2, u2, [1, -1, 1]), t.translate(u2, u2, [-1, -1, 0]), t.scale(u2, u2, [2 / this.width, 2 / this.height, 1]), this.glCoordMatrix = u2, this.pixelMatrix = t.multiply(new Float64Array(16), this.labelPlaneMatrix, this.projMatrix), !(u2 = t.invert(new Float64Array(16), this.pixelMatrix))) + throw new Error("failed to invert matrix"); + this.pixelMatrixInverse = u2, this._posMatrixCache = {}, this._alignedPosMatrixCache = {}; } - initDebugOverlayCanvas() { - null == this.debugOverlayCanvas && (this.debugOverlayCanvas = document.createElement("canvas"), this.debugOverlayCanvas.width = 512, this.debugOverlayCanvas.height = 512, this.debugOverlayTexture = new l(this.context, this.debugOverlayCanvas, this.context.gl.RGBA)); + }, To.prototype.maxPitchScaleFactor = function() { + if (!this.pixelMatrixInverse) + return 1; + var e2 = this.pointCoordinate(new t.Point(0, 0)), i2 = [e2.x * this.worldSize, e2.y * this.worldSize, 0, 1]; + return t.transformMat4(i2, i2, this.pixelMatrix)[3] / this.cameraToCenterDistance; + }, To.prototype.getCameraPoint = function() { + var e2 = Math.tan(this._pitch) * (this.cameraToCenterDistance || 1); + return this.centerPoint.add(new t.Point(0, e2)); + }, To.prototype.getCameraQueryGeometry = function(e2) { + var i2 = this.getCameraPoint(); + if (1 === e2.length) + return [e2[0], i2]; + for (var o2 = i2.x, r2 = i2.y, a2 = i2.x, n2 = i2.y, s2 = 0, l2 = e2; s2 < l2.length; s2 += 1) { + var c3 = l2[s2]; + o2 = Math.min(o2, c3.x), r2 = Math.min(r2, c3.y), a2 = Math.max(a2, c3.x), n2 = Math.max(n2, c3.y); + } + return [new t.Point(o2, r2), new t.Point(a2, r2), new t.Point(a2, n2), new t.Point(o2, n2), new t.Point(o2, r2)]; + }, Object.defineProperties(To.prototype, Eo); + var Io = function(e2) { + var i2, o2, r2, a2; + this._hashName = e2 && encodeURIComponent(e2), t.bindAll(["_getCurrentHash", "_onHashChange", "_updateHash"], this), this._updateHash = (i2 = this._updateHashUnthrottled.bind(this), o2 = false, r2 = null, a2 = function() { + r2 = null, o2 && (i2(), r2 = setTimeout(a2, 300), o2 = false); + }, function() { + return o2 = true, r2 || a2(), r2; + }); + }; + Io.prototype.addTo = function(e2) { + return this._map = e2, t.window.addEventListener("hashchange", this._onHashChange, false), this._map.on("moveend", this._updateHash), this; + }, Io.prototype.remove = function() { + return t.window.removeEventListener("hashchange", this._onHashChange, false), this._map.off("moveend", this._updateHash), clearTimeout(this._updateHash()), delete this._map, this; + }, Io.prototype.getHashString = function(e2) { + var i2 = this._map.getCenter(), o2 = Math.round(100 * this._map.getZoom()) / 100, r2 = Math.ceil((o2 * Math.LN2 + Math.log(512 / 360 / 0.5)) / Math.LN10), a2 = Math.pow(10, r2), n2 = Math.round(i2.lng * a2) / a2, s2 = Math.round(i2.lat * a2) / a2, l2 = this._map.getBearing(), c3 = this._map.getPitch(), u2 = ""; + if (u2 += e2 ? "/" + n2 + "/" + s2 + "/" + o2 : o2 + "/" + s2 + "/" + n2, (l2 || c3) && (u2 += "/" + Math.round(10 * l2) / 10), c3 && (u2 += "/" + Math.round(c3)), this._hashName) { + var h3 = this._hashName, p3 = false, d2 = t.window.location.hash.slice(1).split("&").map(function(t2) { + var e3 = t2.split("=")[0]; + return e3 === h3 ? (p3 = true, e3 + "=" + u2) : t2; + }).filter(function(t2) { + return t2; + }); + return p3 || d2.push(h3 + "=" + u2), "#" + d2.join("&"); + } + return "#" + u2; + }, Io.prototype._getCurrentHash = function() { + var e2, i2 = this, o2 = t.window.location.hash.replace("#", ""); + return this._hashName ? (o2.split("&").map(function(t2) { + return t2.split("="); + }).forEach(function(t2) { + t2[0] === i2._hashName && (e2 = t2); + }), (e2 && e2[1] || "").split("/")) : o2.split("/"); + }, Io.prototype._onHashChange = function() { + var t2 = this._getCurrentHash(); + if (t2.length >= 3 && !t2.some(function(t3) { + return isNaN(t3); + })) { + var e2 = this._map.dragRotate.isEnabled() && this._map.touchZoomRotate.isEnabled() ? +(t2[3] || 0) : this._map.getBearing(); + return this._map.jumpTo({ center: [+t2[2], +t2[1]], zoom: +t2[0], bearing: e2, pitch: +(t2[4] || 0) }), true; } - destroy() { - this.emptyTexture.destroy(), this.debugOverlayTexture && this.debugOverlayTexture.destroy(); + return false; + }, Io.prototype._updateHashUnthrottled = function() { + var e2 = t.window.location.href.replace(/(#.+)?$/, this.getHashString()); + try { + t.window.history.replaceState(t.window.history.state, null, e2); + } catch (t2) { } + }; + var Po = { linearity: 0.3, easing: t.bezier(0, 0, 0.3, 1) }, So = t.extend({ deceleration: 2500, maxSpeed: 1400 }, Po), Co = t.extend({ deceleration: 20, maxSpeed: 1400 }, Po), zo = t.extend({ deceleration: 1e3, maxSpeed: 360 }, Po), Do = t.extend({ deceleration: 1e3, maxSpeed: 90 }, Po), Ao = function(t2) { + this._map = t2, this.clear(); + }; + function Mo(t2, e2) { + (!t2.duration || t2.duration < e2.duration) && (t2.duration = e2.duration, t2.easing = e2.easing); } - class Qi { - constructor(t2, e2) { - this.points = t2, this.planes = e2; - } - static fromInvProjectionMatrix(e2, i2, o2) { - const a2 = Math.pow(2, o2), r2 = [[-1, 1, -1, 1], [1, 1, -1, 1], [1, -1, -1, 1], [-1, -1, -1, 1], [-1, 1, 1, 1], [1, 1, 1, 1], [1, -1, 1, 1], [-1, -1, 1, 1]].map((o3) => { - const r3 = 1 / (o3 = t.transformMat4([], o3, e2))[3] / i2 * a2; - return t.mul$1(o3, o3, [r3, r3, 1 / o3[3], r3]); - }), s2 = [[0, 1, 2], [6, 5, 4], [0, 3, 7], [2, 1, 5], [3, 2, 6], [0, 4, 5]].map((e3) => { - const i3 = t.sub([], r2[e3[0]], r2[e3[1]]), o3 = t.sub([], r2[e3[2]], r2[e3[1]]), a3 = t.normalize([], t.cross([], i3, o3)), s3 = -t.dot(a3, r2[e3[1]]); - return a3.concat(s3); - }); - return new Qi(r2, s2); - } - } - class to { - constructor(e2, i2) { - this.min = e2, this.max = i2, this.center = t.scale$1([], t.add([], this.min, this.max), 0.5); - } - quadrant(e2) { - const i2 = [e2 % 2 == 0, e2 < 2], o2 = t.clone$2(this.min), a2 = t.clone$2(this.max); - for (let t2 = 0; t2 < i2.length; t2++) - o2[t2] = i2[t2] ? this.min[t2] : this.center[t2], a2[t2] = i2[t2] ? this.center[t2] : this.max[t2]; - return a2[2] = this.max[2], new to(o2, a2); - } - distanceX(t2) { - return Math.max(Math.min(this.max[0], t2[0]), this.min[0]) - t2[0]; - } - distanceY(t2) { - return Math.max(Math.min(this.max[1], t2[1]), this.min[1]) - t2[1]; - } - intersects(e2) { - const i2 = [[this.min[0], this.min[1], this.min[2], 1], [this.max[0], this.min[1], this.min[2], 1], [this.max[0], this.max[1], this.min[2], 1], [this.min[0], this.max[1], this.min[2], 1], [this.min[0], this.min[1], this.max[2], 1], [this.max[0], this.min[1], this.max[2], 1], [this.max[0], this.max[1], this.max[2], 1], [this.min[0], this.max[1], this.max[2], 1]]; - let o2 = true; - for (let a2 = 0; a2 < e2.planes.length; a2++) { - const r2 = e2.planes[a2]; - let s2 = 0; - for (let e3 = 0; e3 < i2.length; e3++) - t.dot$1(r2, i2[e3]) >= 0 && s2++; - if (0 === s2) - return 0; - s2 !== i2.length && (o2 = false); + function Lo(e2, i2, o2) { + var r2 = o2.maxSpeed, a2 = o2.linearity, n2 = o2.deceleration, s2 = t.clamp(e2 * a2 / (i2 / 1e3), -r2, r2), l2 = Math.abs(s2) / (n2 * a2); + return { easing: o2.easing, duration: 1e3 * l2, amount: s2 * (l2 / 2) }; + } + Ao.prototype.clear = function() { + this._inertiaBuffer = []; + }, Ao.prototype.record = function(e2) { + this._drainInertiaBuffer(), this._inertiaBuffer.push({ time: t.browser.now(), settings: e2 }); + }, Ao.prototype._drainInertiaBuffer = function() { + for (var e2 = this._inertiaBuffer, i2 = t.browser.now(); e2.length > 0 && i2 - e2[0].time > 160; ) + e2.shift(); + }, Ao.prototype._onMoveEnd = function(e2) { + if (this._drainInertiaBuffer(), !(this._inertiaBuffer.length < 2)) { + for (var i2 = { zoom: 0, bearing: 0, pitch: 0, pan: new t.Point(0, 0), pinchAround: void 0, around: void 0 }, o2 = 0, r2 = this._inertiaBuffer; o2 < r2.length; o2 += 1) { + var a2 = r2[o2].settings; + i2.zoom += a2.zoomDelta || 0, i2.bearing += a2.bearingDelta || 0, i2.pitch += a2.pitchDelta || 0, a2.panDelta && i2.pan._add(a2.panDelta), a2.around && (i2.around = a2.around), a2.pinchAround && (i2.pinchAround = a2.pinchAround); + } + var n2 = this._inertiaBuffer[this._inertiaBuffer.length - 1].time - this._inertiaBuffer[0].time, s2 = {}; + if (i2.pan.mag()) { + var l2 = Lo(i2.pan.mag(), n2, t.extend({}, So, e2 || {})); + s2.offset = i2.pan.mult(l2.amount / i2.pan.mag()), s2.center = this._map.transform.center, Mo(s2, l2); } - if (o2) - return 2; - for (let t2 = 0; t2 < 3; t2++) { - let i3 = Number.MAX_VALUE, o3 = -Number.MAX_VALUE; - for (let a2 = 0; a2 < e2.points.length; a2++) { - const r2 = e2.points[a2][t2] - this.min[t2]; - i3 = Math.min(i3, r2), o3 = Math.max(o3, r2); - } - if (o3 < 0 || i3 > this.max[t2] - this.min[t2]) - return 0; + if (i2.zoom) { + var c3 = Lo(i2.zoom, n2, Co); + s2.zoom = this._map.transform.zoom + c3.amount, Mo(s2, c3); } - return 1; - } - } - class eo { - constructor(t2 = 0, e2 = 0, i2 = 0, o2 = 0) { - if (isNaN(t2) || t2 < 0 || isNaN(e2) || e2 < 0 || isNaN(i2) || i2 < 0 || isNaN(o2) || o2 < 0) - throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers"); - this.top = t2, this.bottom = e2, this.left = i2, this.right = o2; - } - interpolate(e2, i2, o2) { - return null != i2.top && null != e2.top && (this.top = t.number(e2.top, i2.top, o2)), null != i2.bottom && null != e2.bottom && (this.bottom = t.number(e2.bottom, i2.bottom, o2)), null != i2.left && null != e2.left && (this.left = t.number(e2.left, i2.left, o2)), null != i2.right && null != e2.right && (this.right = t.number(e2.right, i2.right, o2)), this; - } - getCenter(e2, i2) { - const o2 = t.clamp((this.left + e2 - this.right) / 2, 0, e2), a2 = t.clamp((this.top + i2 - this.bottom) / 2, 0, i2); - return new t.pointGeometry(o2, a2); - } - equals(t2) { - return this.top === t2.top && this.bottom === t2.bottom && this.left === t2.left && this.right === t2.right; - } - clone() { - return new eo(this.top, this.bottom, this.left, this.right); - } - toJSON() { - return { top: this.top, bottom: this.bottom, left: this.left, right: this.right }; + if (i2.bearing) { + var u2 = Lo(i2.bearing, n2, zo); + s2.bearing = this._map.transform.bearing + t.clamp(u2.amount, -179, 179), Mo(s2, u2); + } + if (i2.pitch) { + var h3 = Lo(i2.pitch, n2, Do); + s2.pitch = this._map.transform.pitch + h3.amount, Mo(s2, h3); + } + if (s2.zoom || s2.bearing) { + var p3 = void 0 === i2.pinchAround ? i2.around : i2.pinchAround; + s2.around = p3 ? this._map.unproject(p3) : this._map.getCenter(); + } + return this.clear(), t.extend(s2, { noMoveStart: true }); } + }; + var Ro = function(e2) { + function o2(o3, r3, a2, n2) { + void 0 === n2 && (n2 = {}); + var s2 = i.mousePos(r3.getCanvasContainer(), a2), l2 = r3.unproject(s2); + e2.call(this, o3, t.extend({ point: s2, lngLat: l2, originalEvent: a2 }, n2)), this._defaultPrevented = false, this.target = r3; + } + e2 && (o2.__proto__ = e2), (o2.prototype = Object.create(e2 && e2.prototype)).constructor = o2; + var r2 = { defaultPrevented: { configurable: true } }; + return o2.prototype.preventDefault = function() { + this._defaultPrevented = true; + }, r2.defaultPrevented.get = function() { + return this._defaultPrevented; + }, Object.defineProperties(o2.prototype, r2), o2; + }(t.Event), ko = function(e2) { + function o2(o3, r3, a2) { + var n2 = "touchend" === o3 ? a2.changedTouches : a2.touches, s2 = i.touchPos(r3.getCanvasContainer(), n2), l2 = s2.map(function(t2) { + return r3.unproject(t2); + }), c3 = s2.reduce(function(t2, e3, i2, o4) { + return t2.add(e3.div(o4.length)); + }, new t.Point(0, 0)), u2 = r3.unproject(c3); + e2.call(this, o3, { points: s2, point: c3, lngLats: l2, lngLat: u2, originalEvent: a2 }), this._defaultPrevented = false; + } + e2 && (o2.__proto__ = e2), (o2.prototype = Object.create(e2 && e2.prototype)).constructor = o2; + var r2 = { defaultPrevented: { configurable: true } }; + return o2.prototype.preventDefault = function() { + this._defaultPrevented = true; + }, r2.defaultPrevented.get = function() { + return this._defaultPrevented; + }, Object.defineProperties(o2.prototype, r2), o2; + }(t.Event), Bo = function(t2) { + function e2(e3, i3, o2) { + t2.call(this, e3, { originalEvent: o2 }), this._defaultPrevented = false; + } + t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2; + var i2 = { defaultPrevented: { configurable: true } }; + return e2.prototype.preventDefault = function() { + this._defaultPrevented = true; + }, i2.defaultPrevented.get = function() { + return this._defaultPrevented; + }, Object.defineProperties(e2.prototype, i2), e2; + }(t.Event), Oo = function(t2, e2) { + this._map = t2, this._clickTolerance = e2.clickTolerance; + }; + Oo.prototype.reset = function() { + delete this._mousedownPos; + }, Oo.prototype.wheel = function(t2) { + return this._firePreventable(new Bo(t2.type, this._map, t2)); + }, Oo.prototype.mousedown = function(t2, e2) { + return this._mousedownPos = e2, this._firePreventable(new Ro(t2.type, this._map, t2)); + }, Oo.prototype.mouseup = function(t2) { + this._map.fire(new Ro(t2.type, this._map, t2)); + }, Oo.prototype.click = function(t2, e2) { + this._mousedownPos && this._mousedownPos.dist(e2) >= this._clickTolerance || this._map.fire(new Ro(t2.type, this._map, t2)); + }, Oo.prototype.dblclick = function(t2) { + return this._firePreventable(new Ro(t2.type, this._map, t2)); + }, Oo.prototype.mouseover = function(t2) { + this._map.fire(new Ro(t2.type, this._map, t2)); + }, Oo.prototype.mouseout = function(t2) { + this._map.fire(new Ro(t2.type, this._map, t2)); + }, Oo.prototype.touchstart = function(t2) { + return this._firePreventable(new ko(t2.type, this._map, t2)); + }, Oo.prototype.touchmove = function(t2) { + this._map.fire(new ko(t2.type, this._map, t2)); + }, Oo.prototype.touchend = function(t2) { + this._map.fire(new ko(t2.type, this._map, t2)); + }, Oo.prototype.touchcancel = function(t2) { + this._map.fire(new ko(t2.type, this._map, t2)); + }, Oo.prototype._firePreventable = function(t2) { + if (this._map.fire(t2), t2.defaultPrevented) + return {}; + }, Oo.prototype.isEnabled = function() { + return true; + }, Oo.prototype.isActive = function() { + return false; + }, Oo.prototype.enable = function() { + }, Oo.prototype.disable = function() { + }; + var Fo = function(t2) { + this._map = t2; + }; + Fo.prototype.reset = function() { + this._delayContextMenu = false, delete this._contextMenuEvent; + }, Fo.prototype.mousemove = function(t2) { + this._map.fire(new Ro(t2.type, this._map, t2)); + }, Fo.prototype.mousedown = function() { + this._delayContextMenu = true; + }, Fo.prototype.mouseup = function() { + this._delayContextMenu = false, this._contextMenuEvent && (this._map.fire(new Ro("contextmenu", this._map, this._contextMenuEvent)), delete this._contextMenuEvent); + }, Fo.prototype.contextmenu = function(t2) { + this._delayContextMenu ? this._contextMenuEvent = t2 : this._map.fire(new Ro(t2.type, this._map, t2)), this._map.listens("contextmenu") && t2.preventDefault(); + }, Fo.prototype.isEnabled = function() { + return true; + }, Fo.prototype.isActive = function() { + return false; + }, Fo.prototype.enable = function() { + }, Fo.prototype.disable = function() { + }; + var Uo = function(t2, e2) { + this._map = t2, this._el = t2.getCanvasContainer(), this._container = t2.getContainer(), this._clickTolerance = e2.clickTolerance || 1; + }; + function No(t2, e2) { + for (var i2 = {}, o2 = 0; o2 < t2.length; o2++) + i2[t2[o2].identifier] = e2[o2]; + return i2; } - class io { - constructor(e2, i2, o2, a2, r2) { - this.tileSize = 512, this.maxValidLatitude = 85.051129, this.freezeElevation = false, this._renderWorldCopies = void 0 === r2 || !!r2, this._minZoom = e2 || 0, this._maxZoom = i2 || 22, this._minPitch = null == o2 ? 0 : o2, this._maxPitch = null == a2 ? 60 : a2, this.setMaxBounds(), this.width = 0, this.height = 0, this._center = new t.LngLat(0, 0), this._elevation = 0, this.zoom = 0, this.angle = 0, this._fov = 0.6435011087932844, this._pitch = 0, this._unmodified = true, this._edgeInsets = new eo(), this._posMatrixCache = {}, this._alignedPosMatrixCache = {}; - } - clone() { - const t2 = new io(this._minZoom, this._maxZoom, this._minPitch, this.maxPitch, this._renderWorldCopies); - return t2.tileSize = this.tileSize, t2.latRange = this.latRange, t2.width = this.width, t2.height = this.height, t2._center = this._center, t2._elevation = this._elevation, t2.zoom = this.zoom, t2.angle = this.angle, t2._fov = this._fov, t2._pitch = this._pitch, t2._unmodified = this._unmodified, t2._edgeInsets = this._edgeInsets.clone(), t2._calcMatrices(), t2; - } - get minZoom() { - return this._minZoom; - } - set minZoom(t2) { - this._minZoom !== t2 && (this._minZoom = t2, this.zoom = Math.max(this.zoom, t2)); - } - get maxZoom() { - return this._maxZoom; + Uo.prototype.isEnabled = function() { + return !!this._enabled; + }, Uo.prototype.isActive = function() { + return !!this._active; + }, Uo.prototype.enable = function() { + this.isEnabled() || (this._enabled = true); + }, Uo.prototype.disable = function() { + this.isEnabled() && (this._enabled = false); + }, Uo.prototype.mousedown = function(t2, e2) { + this.isEnabled() && t2.shiftKey && 0 === t2.button && (i.disableDrag(), this._startPos = this._lastPos = e2, this._active = true); + }, Uo.prototype.mousemoveWindow = function(t2, e2) { + if (this._active) { + var o2 = e2; + if (!(this._lastPos.equals(o2) || !this._box && o2.dist(this._startPos) < this._clickTolerance)) { + var r2 = this._startPos; + this._lastPos = o2, this._box || (this._box = i.create("div", "mapboxgl-boxzoom", this._container), this._container.classList.add("mapboxgl-crosshair"), this._fireEvent("boxzoomstart", t2)); + var a2 = Math.min(r2.x, o2.x), n2 = Math.max(r2.x, o2.x), s2 = Math.min(r2.y, o2.y), l2 = Math.max(r2.y, o2.y); + i.setTransform(this._box, "translate(" + a2 + "px," + s2 + "px)"), this._box.style.width = n2 - a2 + "px", this._box.style.height = l2 - s2 + "px"; + } + } + }, Uo.prototype.mouseupWindow = function(e2, o2) { + var r2 = this; + if (this._active && 0 === e2.button) { + var a2 = this._startPos, n2 = o2; + if (this.reset(), i.suppressClick(), a2.x !== n2.x || a2.y !== n2.y) + return this._map.fire(new t.Event("boxzoomend", { originalEvent: e2 })), { cameraAnimation: function(t2) { + return t2.fitScreenCoordinates(a2, n2, r2._map.getBearing(), { linear: true }); + } }; + this._fireEvent("boxzoomcancel", e2); } - set maxZoom(t2) { - this._maxZoom !== t2 && (this._maxZoom = t2, this.zoom = Math.min(this.zoom, t2)); + }, Uo.prototype.keydown = function(t2) { + this._active && 27 === t2.keyCode && (this.reset(), this._fireEvent("boxzoomcancel", t2)); + }, Uo.prototype.blur = function() { + this.reset(); + }, Uo.prototype.reset = function() { + this._active = false, this._container.classList.remove("mapboxgl-crosshair"), this._box && (i.remove(this._box), this._box = null), i.enableDrag(), delete this._startPos, delete this._lastPos; + }, Uo.prototype._fireEvent = function(e2, i2) { + return this._map.fire(new t.Event(e2, { originalEvent: i2 })); + }; + var Zo = function(t2) { + this.reset(), this.numTouches = t2.numTouches; + }; + Zo.prototype.reset = function() { + delete this.centroid, delete this.startTime, delete this.touches, this.aborted = false; + }, Zo.prototype.touchstart = function(e2, i2, o2) { + (this.centroid || o2.length > this.numTouches) && (this.aborted = true), this.aborted || (void 0 === this.startTime && (this.startTime = e2.timeStamp), o2.length === this.numTouches && (this.centroid = function(e3) { + for (var i3 = new t.Point(0, 0), o3 = 0, r2 = e3; o3 < r2.length; o3 += 1) + i3._add(r2[o3]); + return i3.div(e3.length); + }(i2), this.touches = No(o2, i2))); + }, Zo.prototype.touchmove = function(t2, e2, i2) { + if (!this.aborted && this.centroid) { + var o2 = No(i2, e2); + for (var r2 in this.touches) { + var a2 = o2[r2]; + (!a2 || a2.dist(this.touches[r2]) > 30) && (this.aborted = true); + } + } + }, Zo.prototype.touchend = function(t2, e2, i2) { + if ((!this.centroid || t2.timeStamp - this.startTime > 500) && (this.aborted = true), 0 === i2.length) { + var o2 = !this.aborted && this.centroid; + if (this.reset(), o2) + return o2; } - get minPitch() { - return this._minPitch; + }; + var qo = function(t2) { + this.singleTap = new Zo(t2), this.numTaps = t2.numTaps, this.reset(); + }; + qo.prototype.reset = function() { + this.lastTime = 1 / 0, delete this.lastTap, this.count = 0, this.singleTap.reset(); + }, qo.prototype.touchstart = function(t2, e2, i2) { + this.singleTap.touchstart(t2, e2, i2); + }, qo.prototype.touchmove = function(t2, e2, i2) { + this.singleTap.touchmove(t2, e2, i2); + }, qo.prototype.touchend = function(t2, e2, i2) { + var o2 = this.singleTap.touchend(t2, e2, i2); + if (o2) { + var r2 = t2.timeStamp - this.lastTime < 500, a2 = !this.lastTap || this.lastTap.dist(o2) < 30; + if (r2 && a2 || this.reset(), this.count++, this.lastTime = t2.timeStamp, this.lastTap = o2, this.count === this.numTaps) + return this.reset(), o2; } - set minPitch(t2) { - this._minPitch !== t2 && (this._minPitch = t2, this.pitch = Math.max(this.pitch, t2)); + }; + var jo = function() { + this._zoomIn = new qo({ numTouches: 1, numTaps: 2 }), this._zoomOut = new qo({ numTouches: 2, numTaps: 1 }), this.reset(); + }; + jo.prototype.reset = function() { + this._active = false, this._zoomIn.reset(), this._zoomOut.reset(); + }, jo.prototype.touchstart = function(t2, e2, i2) { + this._zoomIn.touchstart(t2, e2, i2), this._zoomOut.touchstart(t2, e2, i2); + }, jo.prototype.touchmove = function(t2, e2, i2) { + this._zoomIn.touchmove(t2, e2, i2), this._zoomOut.touchmove(t2, e2, i2); + }, jo.prototype.touchend = function(t2, e2, i2) { + var o2 = this, r2 = this._zoomIn.touchend(t2, e2, i2), a2 = this._zoomOut.touchend(t2, e2, i2); + return r2 ? (this._active = true, t2.preventDefault(), setTimeout(function() { + return o2.reset(); + }, 0), { cameraAnimation: function(e3) { + return e3.easeTo({ duration: 300, zoom: e3.getZoom() + 1, around: e3.unproject(r2) }, { originalEvent: t2 }); + } }) : a2 ? (this._active = true, t2.preventDefault(), setTimeout(function() { + return o2.reset(); + }, 0), { cameraAnimation: function(e3) { + return e3.easeTo({ duration: 300, zoom: e3.getZoom() - 1, around: e3.unproject(a2) }, { originalEvent: t2 }); + } }) : void 0; + }, jo.prototype.touchcancel = function() { + this.reset(); + }, jo.prototype.enable = function() { + this._enabled = true; + }, jo.prototype.disable = function() { + this._enabled = false, this.reset(); + }, jo.prototype.isEnabled = function() { + return this._enabled; + }, jo.prototype.isActive = function() { + return this._active; + }; + var Vo = { 0: 1, 2: 2 }, Go = function(t2) { + this.reset(), this._clickTolerance = t2.clickTolerance || 1; + }; + Go.prototype.blur = function() { + this.reset(); + }, Go.prototype.reset = function() { + this._active = false, this._moved = false, delete this._lastPoint, delete this._eventButton; + }, Go.prototype._correctButton = function(t2, e2) { + return false; + }, Go.prototype._move = function(t2, e2) { + return {}; + }, Go.prototype.mousedown = function(t2, e2) { + if (!this._lastPoint) { + var o2 = i.mouseButton(t2); + this._correctButton(t2, o2) && (this._lastPoint = e2, this._eventButton = o2); } - get maxPitch() { - return this._maxPitch; - } - set maxPitch(t2) { - this._maxPitch !== t2 && (this._maxPitch = t2, this.pitch = Math.min(this.pitch, t2)); - } - get renderWorldCopies() { - return this._renderWorldCopies; - } - set renderWorldCopies(t2) { - void 0 === t2 ? t2 = true : null === t2 && (t2 = false), this._renderWorldCopies = t2; - } - get worldSize() { - return this.tileSize * this.scale; - } - get centerOffset() { - return this.centerPoint._sub(this.size._div(2)); - } - get size() { - return new t.pointGeometry(this.width, this.height); - } - get bearing() { - return -this.angle / Math.PI * 180; - } - set bearing(e2) { - const i2 = -t.wrap(e2, -180, 180) * Math.PI / 180; - var o2; - this.angle !== i2 && (this._unmodified = false, this.angle = i2, this._calcMatrices(), this.rotationMatrix = (o2 = new t.ARRAY_TYPE(4), t.ARRAY_TYPE != Float32Array && (o2[1] = 0, o2[2] = 0), o2[0] = 1, o2[3] = 1, o2), function(t2, e3, i3) { - var o3 = e3[0], a2 = e3[1], r2 = e3[2], s2 = e3[3], n2 = Math.sin(i3), l2 = Math.cos(i3); - t2[0] = o3 * l2 + r2 * n2, t2[1] = a2 * l2 + s2 * n2, t2[2] = o3 * -n2 + r2 * l2, t2[3] = a2 * -n2 + s2 * l2; - }(this.rotationMatrix, this.rotationMatrix, this.angle)); - } - get pitch() { - return this._pitch / Math.PI * 180; - } - set pitch(e2) { - const i2 = t.clamp(e2, this.minPitch, this.maxPitch) / 180 * Math.PI; - this._pitch !== i2 && (this._unmodified = false, this._pitch = i2, this._calcMatrices()); - } - get fov() { - return this._fov / Math.PI * 180; - } - set fov(t2) { - t2 = Math.max(0.01, Math.min(60, t2)), this._fov !== t2 && (this._unmodified = false, this._fov = t2 / 180 * Math.PI, this._calcMatrices()); - } - get zoom() { - return this._zoom; - } - set zoom(t2) { - const e2 = Math.min(Math.max(t2, this.minZoom), this.maxZoom); - this._zoom !== e2 && (this._unmodified = false, this._zoom = e2, this.scale = this.zoomScale(e2), this.tileZoom = Math.floor(e2), this.zoomFraction = e2 - this.tileZoom, this._constrain(), this._calcMatrices()); - } - get center() { - return this._center; - } - set center(t2) { - t2.lat === this._center.lat && t2.lng === this._center.lng || (this._unmodified = false, this._center = t2, this._constrain(), this._calcMatrices()); - } - get elevation() { - return this._elevation; - } - set elevation(t2) { - t2 !== this._elevation && (this._elevation = t2, this._constrain(), this._calcMatrices()); - } - get padding() { - return this._edgeInsets.toJSON(); - } - set padding(t2) { - this._edgeInsets.equals(t2) || (this._unmodified = false, this._edgeInsets.interpolate(this._edgeInsets, t2, 1), this._calcMatrices()); - } - get centerPoint() { - return this._edgeInsets.getCenter(this.width, this.height); - } - isPaddingEqual(t2) { - return this._edgeInsets.equals(t2); - } - interpolatePadding(t2, e2, i2) { - this._unmodified = false, this._edgeInsets.interpolate(t2, e2, i2), this._constrain(), this._calcMatrices(); - } - coveringZoomLevel(t2) { - const e2 = (t2.roundZoom ? Math.round : Math.floor)(this.zoom + this.scaleZoom(this.tileSize / t2.tileSize)); - return Math.max(0, e2); - } - getVisibleUnwrappedCoordinates(e2) { - const i2 = [new t.UnwrappedTileID(0, e2)]; - if (this._renderWorldCopies) { - const o2 = this.pointCoordinate(new t.pointGeometry(0, 0)), a2 = this.pointCoordinate(new t.pointGeometry(this.width, 0)), r2 = this.pointCoordinate(new t.pointGeometry(this.width, this.height)), s2 = this.pointCoordinate(new t.pointGeometry(0, this.height)), n2 = Math.floor(Math.min(o2.x, a2.x, r2.x, s2.x)), l2 = Math.floor(Math.max(o2.x, a2.x, r2.x, s2.x)), c3 = 1; - for (let o3 = n2 - c3; o3 <= l2 + c3; o3++) - 0 !== o3 && i2.push(new t.UnwrappedTileID(o3, e2)); - } - return i2; - } - coveringTiles(e2) { - var i2, o2; - let a2 = this.coveringZoomLevel(e2); - const r2 = a2; - if (void 0 !== e2.minzoom && a2 < e2.minzoom) - return []; - void 0 !== e2.maxzoom && a2 > e2.maxzoom && (a2 = e2.maxzoom); - const s2 = this.pointCoordinate(this.getCameraPoint()), n2 = t.MercatorCoordinate.fromLngLat(this.center), l2 = Math.pow(2, a2), c3 = [l2 * s2.x, l2 * s2.y, 0], h3 = [l2 * n2.x, l2 * n2.y, 0], u2 = Qi.fromInvProjectionMatrix(this.invProjMatrix, this.worldSize, a2); - let d2 = e2.minzoom || 0; - !e2.terrain && this.pitch <= 60 && this._edgeInsets.top < 0.1 && (d2 = a2); - const m2 = e2.terrain ? 2 / Math.min(this.tileSize, e2.tileSize) * this.tileSize : 3, _24 = (t2) => ({ aabb: new to([t2 * l2, 0, 0], [(t2 + 1) * l2, l2, 0]), zoom: 0, x: 0, y: 0, wrap: t2, fullyVisible: false }), p3 = [], f2 = [], g2 = a2, x2 = e2.reparseOverscaled ? r2 : a2; - if (this._renderWorldCopies) - for (let t2 = 1; t2 <= 3; t2++) - p3.push(_24(-t2)), p3.push(_24(t2)); - for (p3.push(_24(0)); p3.length > 0; ) { - const a3 = p3.pop(), r3 = a3.x, s3 = a3.y; - let n3 = a3.fullyVisible; - if (!n3) { - const t2 = a3.aabb.intersects(u2); - if (0 === t2) - continue; - n3 = 2 === t2; - } - const l3 = e2.terrain ? c3 : h3, _25 = a3.aabb.distanceX(l3), v3 = a3.aabb.distanceY(l3), y3 = Math.max(Math.abs(_25), Math.abs(v3)), b2 = m2 + (1 << g2 - a3.zoom) - 2; - if (a3.zoom === g2 || y3 > b2 && a3.zoom >= d2) { - const e3 = g2 - a3.zoom, i3 = c3[0] - 0.5 - (r3 << e3), o3 = c3[1] - 0.5 - (s3 << e3); - f2.push({ tileID: new t.OverscaledTileID(a3.zoom === g2 ? x2 : a3.zoom, a3.wrap, a3.zoom, r3, s3), distanceSq: t.sqrLen([h3[0] - 0.5 - r3, h3[1] - 0.5 - s3]), tileDistanceToCamera: Math.sqrt(i3 * i3 + o3 * o3) }); - } else - for (let l4 = 0; l4 < 4; l4++) { - const c4 = (r3 << 1) + l4 % 2, h4 = (s3 << 1) + (l4 >> 1), u3 = a3.zoom + 1; - let d3 = a3.aabb.quadrant(l4); - if (e2.terrain) { - const r4 = new t.OverscaledTileID(u3, a3.wrap, u3, c4, h4), s4 = e2.terrain.getMinMaxElevation(r4), n4 = null !== (i2 = s4.minElevation) && void 0 !== i2 ? i2 : this.elevation, l5 = null !== (o2 = s4.maxElevation) && void 0 !== o2 ? o2 : this.elevation; - d3 = new to([d3.min[0], d3.min[1], n4], [d3.max[0], d3.max[1], l5]); - } - p3.push({ aabb: d3, zoom: u3, x: c4, y: h4, wrap: a3.wrap, fullyVisible: n3 }); - } - } - return f2.sort((t2, e3) => t2.distanceSq - e3.distanceSq).map((t2) => t2.tileID); - } - resize(t2, e2) { - this.width = t2, this.height = e2, this.pixelsToGLUnits = [2 / t2, -2 / e2], this._constrain(), this._calcMatrices(); - } - get unmodified() { - return this._unmodified; - } - zoomScale(t2) { - return Math.pow(2, t2); - } - scaleZoom(t2) { - return Math.log(t2) / Math.LN2; - } - project(e2) { - const i2 = t.clamp(e2.lat, -this.maxValidLatitude, this.maxValidLatitude); - return new t.pointGeometry(t.mercatorXfromLng(e2.lng) * this.worldSize, t.mercatorYfromLat(i2) * this.worldSize); - } - unproject(e2) { - return new t.MercatorCoordinate(e2.x / this.worldSize, e2.y / this.worldSize).toLngLat(); - } - get point() { - return this.project(this.center); - } - updateElevation(t2) { - this.freezeElevation || (this.elevation = t2 ? this.getElevation(this._center, t2) : 0); - } - getElevation(e2, i2) { - const o2 = t.MercatorCoordinate.fromLngLat(e2), a2 = (1 << this.tileZoom) * t.EXTENT, r2 = o2.x * a2, s2 = o2.y * a2, n2 = Math.floor(r2 / t.EXTENT), l2 = Math.floor(s2 / t.EXTENT), c3 = new t.OverscaledTileID(this.tileZoom, 0, this.tileZoom, n2, l2); - return i2.getElevation(c3, r2 % t.EXTENT, s2 % t.EXTENT, t.EXTENT); - } - getCameraPosition() { - return { lngLat: this.pointLocation(this.getCameraPoint()), altitude: Math.cos(this._pitch) * this.cameraToCenterDistance / this._pixelPerMeter + this.elevation }; - } - recalculateZoom(e2) { - const i2 = this.pointLocation(this.centerPoint, e2), o2 = this.getElevation(i2, e2); - if (!(this.elevation - o2)) - return; - const a2 = this.getCameraPosition(), r2 = t.MercatorCoordinate.fromLngLat(a2.lngLat, a2.altitude), s2 = t.MercatorCoordinate.fromLngLat(i2, o2), n2 = r2.x - s2.x, l2 = r2.y - s2.y, c3 = r2.z - s2.z, h3 = Math.sqrt(n2 * n2 + l2 * l2 + c3 * c3), u2 = this.scaleZoom(this.cameraToCenterDistance / h3 / this.tileSize); - this._elevation = o2, this._center = i2, this.zoom = u2; - } - setLocationAtPoint(e2, i2) { - const o2 = this.pointCoordinate(i2), a2 = this.pointCoordinate(this.centerPoint), r2 = this.locationCoordinate(e2), s2 = new t.MercatorCoordinate(r2.x - (o2.x - a2.x), r2.y - (o2.y - a2.y)); - this.center = this.coordinateLocation(s2), this._renderWorldCopies && (this.center = this.center.wrap()); - } - locationPoint(t2, e2) { - return e2 ? this.coordinatePoint(this.locationCoordinate(t2), this.getElevation(t2, e2), this.pixelMatrix3D) : this.coordinatePoint(this.locationCoordinate(t2)); - } - pointLocation(t2, e2) { - return this.coordinateLocation(this.pointCoordinate(t2, e2)); - } - locationCoordinate(e2) { - return t.MercatorCoordinate.fromLngLat(e2); - } - coordinateLocation(t2) { - return t2 && t2.toLngLat(); - } - pointCoordinate(e2, i2) { - if (i2) { - const t2 = i2.pointCoordinate(e2); - if (null != t2) - return t2; - } - const o2 = [e2.x, e2.y, 0, 1], a2 = [e2.x, e2.y, 1, 1]; - t.transformMat4(o2, o2, this.pixelMatrixInverse), t.transformMat4(a2, a2, this.pixelMatrixInverse); - const r2 = o2[3], s2 = a2[3], n2 = o2[1] / r2, l2 = a2[1] / s2, c3 = o2[2] / r2, h3 = a2[2] / s2, u2 = c3 === h3 ? 0 : (0 - c3) / (h3 - c3); - return new t.MercatorCoordinate(t.number(o2[0] / r2, a2[0] / s2, u2) / this.worldSize, t.number(n2, l2, u2) / this.worldSize); - } - coordinatePoint(e2, i2 = 0, o2 = this.pixelMatrix) { - const a2 = [e2.x * this.worldSize, e2.y * this.worldSize, i2, 1]; - return t.transformMat4(a2, a2, o2), new t.pointGeometry(a2[0] / a2[3], a2[1] / a2[3]); - } - getBounds() { - const e2 = Math.max(0, this.height / 2 - this.getHorizon()); - return new t.LngLatBounds().extend(this.pointLocation(new t.pointGeometry(0, e2))).extend(this.pointLocation(new t.pointGeometry(this.width, e2))).extend(this.pointLocation(new t.pointGeometry(this.width, this.height))).extend(this.pointLocation(new t.pointGeometry(0, this.height))); - } - getMaxBounds() { - return this.latRange && 2 === this.latRange.length && this.lngRange && 2 === this.lngRange.length ? new t.LngLatBounds([this.lngRange[0], this.latRange[0]], [this.lngRange[1], this.latRange[1]]) : null; - } - getHorizon() { - return Math.tan(Math.PI / 2 - this._pitch) * this.cameraToCenterDistance * 0.85; - } - setMaxBounds(t2) { - t2 ? (this.lngRange = [t2.getWest(), t2.getEast()], this.latRange = [t2.getSouth(), t2.getNorth()], this._constrain()) : (this.lngRange = null, this.latRange = [-this.maxValidLatitude, this.maxValidLatitude]); - } - calculatePosMatrix(e2, i2 = false) { - const o2 = e2.key, a2 = i2 ? this._alignedPosMatrixCache : this._posMatrixCache; - if (a2[o2]) - return a2[o2]; - const r2 = e2.canonical, s2 = this.worldSize / this.zoomScale(r2.z), n2 = r2.x + Math.pow(2, r2.z) * e2.wrap, l2 = t.identity(new Float64Array(16)); - return t.translate(l2, l2, [n2 * s2, r2.y * s2, 0]), t.scale(l2, l2, [s2 / t.EXTENT, s2 / t.EXTENT, 1]), t.multiply(l2, i2 ? this.alignedProjMatrix : this.projMatrix, l2), a2[o2] = new Float32Array(l2), a2[o2]; - } - customLayerMatrix() { - return this.mercatorMatrix.slice(); - } - _constrain() { - if (!this.center || !this.width || !this.height || this._constraining) - return; - this._constraining = true; - let e2, i2, o2, a2, r2 = -90, s2 = 90, n2 = -180, l2 = 180; - const c3 = this.size, h3 = this._unmodified; - if (this.latRange) { - const i3 = this.latRange; - r2 = t.mercatorYfromLat(i3[1]) * this.worldSize, s2 = t.mercatorYfromLat(i3[0]) * this.worldSize, e2 = s2 - r2 < c3.y ? c3.y / (s2 - r2) : 0; - } - if (this.lngRange) { - const e3 = this.lngRange; - n2 = t.wrap(t.mercatorXfromLng(e3[0]) * this.worldSize, 0, this.worldSize), l2 = t.wrap(t.mercatorXfromLng(e3[1]) * this.worldSize, 0, this.worldSize), l2 < n2 && (l2 += this.worldSize), i2 = l2 - n2 < c3.x ? c3.x / (l2 - n2) : 0; - } - const u2 = this.point, d2 = Math.max(i2 || 0, e2 || 0); - if (d2) - return this.center = this.unproject(new t.pointGeometry(i2 ? (l2 + n2) / 2 : u2.x, e2 ? (s2 + r2) / 2 : u2.y)), this.zoom += this.scaleZoom(d2), this._unmodified = h3, void (this._constraining = false); - if (this.latRange) { - const t2 = u2.y, e3 = c3.y / 2; - t2 - e3 < r2 && (a2 = r2 + e3), t2 + e3 > s2 && (a2 = s2 - e3); - } - if (this.lngRange) { - const e3 = (n2 + l2) / 2, i3 = t.wrap(u2.x, e3 - this.worldSize / 2, e3 + this.worldSize / 2), a3 = c3.x / 2; - i3 - a3 < n2 && (o2 = n2 + a3), i3 + a3 > l2 && (o2 = l2 - a3); - } - void 0 === o2 && void 0 === a2 || (this.center = this.unproject(new t.pointGeometry(void 0 !== o2 ? o2 : u2.x, void 0 !== a2 ? a2 : u2.y)).wrap()), this._unmodified = h3, this._constraining = false; - } - _calcMatrices() { - if (!this.height) - return; - const e2 = this.centerOffset, i2 = this.point.x, o2 = this.point.y; - this.cameraToCenterDistance = 0.5 / Math.tan(this._fov / 2) * this.height, this._pixelPerMeter = t.mercatorZfromAltitude(1, this.center.lat) * this.worldSize; - let a2 = t.identity(new Float64Array(16)); - t.scale(a2, a2, [this.width / 2, -this.height / 2, 1]), t.translate(a2, a2, [1, -1, 0]), this.labelPlaneMatrix = a2, a2 = t.identity(new Float64Array(16)), t.scale(a2, a2, [1, -1, 1]), t.translate(a2, a2, [-1, -1, 0]), t.scale(a2, a2, [2 / this.width, 2 / this.height, 1]), this.glCoordMatrix = a2, this.cameraToSeaLevelDistance = this.cameraToCenterDistance + this._elevation * this._pixelPerMeter / Math.cos(this._pitch); - const r2 = Math.PI / 2 + this._pitch, s2 = this._fov * (0.5 + e2.y / this.height), n2 = Math.sin(s2) * this.cameraToSeaLevelDistance / Math.sin(t.clamp(Math.PI - r2 - s2, 0.01, Math.PI - 0.01)), l2 = this.getHorizon(), c3 = 2 * Math.atan(l2 / this.cameraToCenterDistance) * (0.5 + e2.y / (2 * l2)), h3 = Math.sin(c3) * this.cameraToSeaLevelDistance / Math.sin(t.clamp(Math.PI - r2 - c3, 0.01, Math.PI - 0.01)), u2 = Math.cos(Math.PI / 2 - this._pitch) * n2 + this.cameraToSeaLevelDistance, d2 = Math.cos(Math.PI / 2 - this._pitch) * h3 + this.cameraToSeaLevelDistance, m2 = 1.01 * Math.min(u2, d2), _24 = this.height / 50; - a2 = new Float64Array(16), t.perspective(a2, this._fov, this.width / this.height, _24, m2), a2[8] = 2 * -e2.x / this.width, a2[9] = 2 * e2.y / this.height, t.scale(a2, a2, [1, -1, 1]), t.translate(a2, a2, [0, 0, -this.cameraToCenterDistance]), t.rotateX(a2, a2, this._pitch), t.rotateZ(a2, a2, this.angle), t.translate(a2, a2, [-i2, -o2, 0]), this.mercatorMatrix = t.scale([], a2, [this.worldSize, this.worldSize, this.worldSize]), t.scale(a2, a2, [1, 1, this._pixelPerMeter]), this.pixelMatrix = t.multiply(new Float64Array(16), this.labelPlaneMatrix, a2), t.translate(a2, a2, [0, 0, -this.elevation]), this.projMatrix = a2, this.invProjMatrix = t.invert([], a2), this.pixelMatrix3D = t.multiply(new Float64Array(16), this.labelPlaneMatrix, a2); - const p3 = this.width % 2 / 2, f2 = this.height % 2 / 2, g2 = Math.cos(this.angle), x2 = Math.sin(this.angle), v3 = i2 - Math.round(i2) + g2 * p3 + x2 * f2, y3 = o2 - Math.round(o2) + g2 * f2 + x2 * p3, b2 = new Float64Array(a2); - if (t.translate(b2, b2, [v3 > 0.5 ? v3 - 1 : v3, y3 > 0.5 ? y3 - 1 : y3, 0]), this.alignedProjMatrix = b2, a2 = t.invert(new Float64Array(16), this.pixelMatrix), !a2) - throw new Error("failed to invert matrix"); - this.pixelMatrixInverse = a2, this._posMatrixCache = {}, this._alignedPosMatrixCache = {}; - } - maxPitchScaleFactor() { - if (!this.pixelMatrixInverse) - return 1; - const e2 = this.pointCoordinate(new t.pointGeometry(0, 0)), i2 = [e2.x * this.worldSize, e2.y * this.worldSize, 0, 1]; - return t.transformMat4(i2, i2, this.pixelMatrix)[3] / this.cameraToCenterDistance; - } - getCameraPoint() { - const e2 = Math.tan(this._pitch) * (this.cameraToCenterDistance || 1); - return this.centerPoint.add(new t.pointGeometry(0, e2)); - } - getCameraQueryGeometry(e2) { - const i2 = this.getCameraPoint(); - if (1 === e2.length) - return [e2[0], i2]; - { - let o2 = i2.x, a2 = i2.y, r2 = i2.x, s2 = i2.y; - for (const t2 of e2) - o2 = Math.min(o2, t2.x), a2 = Math.min(a2, t2.y), r2 = Math.max(r2, t2.x), s2 = Math.max(s2, t2.y); - return [new t.pointGeometry(o2, a2), new t.pointGeometry(r2, a2), new t.pointGeometry(r2, s2), new t.pointGeometry(o2, s2), new t.pointGeometry(o2, a2)]; - } - } - } - class oo { - constructor(e2) { - this._hashName = e2 && encodeURIComponent(e2), t.bindAll(["_getCurrentHash", "_onHashChange", "_updateHash"], this), this._updateHash = function(t2, e3) { - let i2 = false, o2 = null; - const a2 = () => { - o2 = null, i2 && (t2(), o2 = setTimeout(a2, 300), i2 = false); - }; - return () => (i2 = true, o2 || a2(), o2); - }(this._updateHashUnthrottled.bind(this)); - } - addTo(t2) { - return this._map = t2, addEventListener("hashchange", this._onHashChange, false), this._map.on("moveend", this._updateHash), this; - } - remove() { - return removeEventListener("hashchange", this._onHashChange, false), this._map.off("moveend", this._updateHash), clearTimeout(this._updateHash()), delete this._map, this; - } - getHashString(t2) { - const e2 = this._map.getCenter(), i2 = Math.round(100 * this._map.getZoom()) / 100, o2 = Math.ceil((i2 * Math.LN2 + Math.log(512 / 360 / 0.5)) / Math.LN10), a2 = Math.pow(10, o2), r2 = Math.round(e2.lng * a2) / a2, s2 = Math.round(e2.lat * a2) / a2, n2 = this._map.getBearing(), l2 = this._map.getPitch(); - let c3 = ""; - if (c3 += t2 ? `/${r2}/${s2}/${i2}` : `${i2}/${s2}/${r2}`, (n2 || l2) && (c3 += "/" + Math.round(10 * n2) / 10), l2 && (c3 += `/${Math.round(l2)}`), this._hashName) { - const t3 = this._hashName; - let e3 = false; - const i3 = window.location.hash.slice(1).split("&").map((i4) => { - const o3 = i4.split("=")[0]; - return o3 === t3 ? (e3 = true, `${o3}=${c3}`) : i4; - }).filter((t4) => t4); - return e3 || i3.push(`${t3}=${c3}`), `#${i3.join("&")}`; - } - return `#${c3}`; - } - _getCurrentHash() { - const t2 = window.location.hash.replace("#", ""); - if (this._hashName) { - let e2; - return t2.split("&").map((t3) => t3.split("=")).forEach((t3) => { - t3[0] === this._hashName && (e2 = t3); - }), (e2 && e2[1] || "").split("/"); - } - return t2.split("/"); - } - _onHashChange() { - const t2 = this._getCurrentHash(); - if (t2.length >= 3 && !t2.some((t3) => isNaN(t3))) { - const e2 = this._map.dragRotate.isEnabled() && this._map.touchZoomRotate.isEnabled() ? +(t2[3] || 0) : this._map.getBearing(); - return this._map.jumpTo({ center: [+t2[2], +t2[1]], zoom: +t2[0], bearing: e2, pitch: +(t2[4] || 0) }), true; - } - return false; - } - _updateHashUnthrottled() { - const t2 = window.location.href.replace(/(#.+)?$/, this.getHashString()); - try { - window.history.replaceState(window.history.state, null, t2); - } catch (t3) { - } - } - } - const ao = { linearity: 0.3, easing: t.bezier(0, 0, 0.3, 1) }, ro = t.extend({ deceleration: 2500, maxSpeed: 1400 }, ao), so = t.extend({ deceleration: 20, maxSpeed: 1400 }, ao), no = t.extend({ deceleration: 1e3, maxSpeed: 360 }, ao), lo = t.extend({ deceleration: 1e3, maxSpeed: 90 }, ao); - class co { - constructor(t2) { - this._map = t2, this.clear(); - } - clear() { - this._inertiaBuffer = []; - } - record(e2) { - this._drainInertiaBuffer(), this._inertiaBuffer.push({ time: t.exported.now(), settings: e2 }); - } - _drainInertiaBuffer() { - const e2 = this._inertiaBuffer, i2 = t.exported.now(); - for (; e2.length > 0 && i2 - e2[0].time > 160; ) - e2.shift(); - } - _onMoveEnd(e2) { - if (this._drainInertiaBuffer(), this._inertiaBuffer.length < 2) - return; - const i2 = { zoom: 0, bearing: 0, pitch: 0, pan: new t.pointGeometry(0, 0), pinchAround: void 0, around: void 0 }; - for (const { settings: t2 } of this._inertiaBuffer) - i2.zoom += t2.zoomDelta || 0, i2.bearing += t2.bearingDelta || 0, i2.pitch += t2.pitchDelta || 0, t2.panDelta && i2.pan._add(t2.panDelta), t2.around && (i2.around = t2.around), t2.pinchAround && (i2.pinchAround = t2.pinchAround); - const o2 = this._inertiaBuffer[this._inertiaBuffer.length - 1].time - this._inertiaBuffer[0].time, a2 = {}; - if (i2.pan.mag()) { - const r2 = uo(i2.pan.mag(), o2, t.extend({}, ro, e2 || {})); - a2.offset = i2.pan.mult(r2.amount / i2.pan.mag()), a2.center = this._map.transform.center, ho(a2, r2); - } - if (i2.zoom) { - const t2 = uo(i2.zoom, o2, so); - a2.zoom = this._map.transform.zoom + t2.amount, ho(a2, t2); - } - if (i2.bearing) { - const e3 = uo(i2.bearing, o2, no); - a2.bearing = this._map.transform.bearing + t.clamp(e3.amount, -179, 179), ho(a2, e3); - } - if (i2.pitch) { - const t2 = uo(i2.pitch, o2, lo); - a2.pitch = this._map.transform.pitch + t2.amount, ho(a2, t2); - } - if (a2.zoom || a2.bearing) { - const t2 = void 0 === i2.pinchAround ? i2.around : i2.pinchAround; - a2.around = t2 ? this._map.unproject(t2) : this._map.getCenter(); - } - return this.clear(), t.extend(a2, { noMoveStart: true }); - } - } - function ho(t2, e2) { - (!t2.duration || t2.duration < e2.duration) && (t2.duration = e2.duration, t2.easing = e2.easing); - } - function uo(e2, i2, o2) { - const { maxSpeed: a2, linearity: r2, deceleration: s2 } = o2, n2 = t.clamp(e2 * r2 / (i2 / 1e3), -a2, a2), l2 = Math.abs(n2) / (s2 * r2); - return { easing: o2.easing, duration: 1e3 * l2, amount: n2 * (l2 / 2) }; - } - class mo extends t.Event { - constructor(e2, i2, o2, a2 = {}) { - const s2 = r.mousePos(i2.getCanvasContainer(), o2), n2 = i2.unproject(s2); - super(e2, t.extend({ point: s2, lngLat: n2, originalEvent: o2 }, a2)), this._defaultPrevented = false, this.target = i2; - } - preventDefault() { - this._defaultPrevented = true; - } - get defaultPrevented() { - return this._defaultPrevented; - } - } - class _o extends t.Event { - constructor(e2, i2, o2) { - const a2 = "touchend" === e2 ? o2.changedTouches : o2.touches, s2 = r.touchPos(i2.getCanvasContainer(), a2), n2 = s2.map((t2) => i2.unproject(t2)), l2 = s2.reduce((t2, e3, i3, o3) => t2.add(e3.div(o3.length)), new t.pointGeometry(0, 0)); - super(e2, { points: s2, point: l2, lngLats: n2, lngLat: i2.unproject(l2), originalEvent: o2 }), this._defaultPrevented = false; - } - preventDefault() { - this._defaultPrevented = true; - } - get defaultPrevented() { - return this._defaultPrevented; - } - } - class po extends t.Event { - constructor(t2, e2, i2) { - super(t2, { originalEvent: i2 }), this._defaultPrevented = false; - } - preventDefault() { - this._defaultPrevented = true; - } - get defaultPrevented() { - return this._defaultPrevented; - } - } - class fo { - constructor(t2, e2) { - this._map = t2, this._clickTolerance = e2.clickTolerance; - } - reset() { - delete this._mousedownPos; - } - wheel(t2) { - return this._firePreventable(new po(t2.type, this._map, t2)); - } - mousedown(t2, e2) { - return this._mousedownPos = e2, this._firePreventable(new mo(t2.type, this._map, t2)); - } - mouseup(t2) { - this._map.fire(new mo(t2.type, this._map, t2)); - } - click(t2, e2) { - this._mousedownPos && this._mousedownPos.dist(e2) >= this._clickTolerance || this._map.fire(new mo(t2.type, this._map, t2)); - } - dblclick(t2) { - return this._firePreventable(new mo(t2.type, this._map, t2)); - } - mouseover(t2) { - this._map.fire(new mo(t2.type, this._map, t2)); - } - mouseout(t2) { - this._map.fire(new mo(t2.type, this._map, t2)); - } - touchstart(t2) { - return this._firePreventable(new _o(t2.type, this._map, t2)); - } - touchmove(t2) { - this._map.fire(new _o(t2.type, this._map, t2)); - } - touchend(t2) { - this._map.fire(new _o(t2.type, this._map, t2)); - } - touchcancel(t2) { - this._map.fire(new _o(t2.type, this._map, t2)); - } - _firePreventable(t2) { - if (this._map.fire(t2), t2.defaultPrevented) - return {}; - } - isEnabled() { - return true; - } - isActive() { - return false; - } - enable() { - } - disable() { - } - } - class go { - constructor(t2) { - this._map = t2; - } - reset() { - this._delayContextMenu = false, this._ignoreContextMenu = true, delete this._contextMenuEvent; - } - mousemove(t2) { - this._map.fire(new mo(t2.type, this._map, t2)); - } - mousedown() { - this._delayContextMenu = true, this._ignoreContextMenu = false; - } - mouseup() { - this._delayContextMenu = false, this._contextMenuEvent && (this._map.fire(new mo("contextmenu", this._map, this._contextMenuEvent)), delete this._contextMenuEvent); - } - contextmenu(t2) { - this._delayContextMenu ? this._contextMenuEvent = t2 : this._ignoreContextMenu || this._map.fire(new mo(t2.type, this._map, t2)), this._map.listens("contextmenu") && t2.preventDefault(); - } - isEnabled() { - return true; - } - isActive() { - return false; - } - enable() { - } - disable() { - } - } - class xo { - constructor(t2, e2) { - this._map = t2, this._el = t2.getCanvasContainer(), this._container = t2.getContainer(), this._clickTolerance = e2.clickTolerance || 1; - } - isEnabled() { - return !!this._enabled; - } - isActive() { - return !!this._active; - } - enable() { - this.isEnabled() || (this._enabled = true); - } - disable() { - this.isEnabled() && (this._enabled = false); - } - mousedown(t2, e2) { - this.isEnabled() && t2.shiftKey && 0 === t2.button && (r.disableDrag(), this._startPos = this._lastPos = e2, this._active = true); - } - mousemoveWindow(t2, e2) { - if (!this._active) - return; - const i2 = e2; - if (this._lastPos.equals(i2) || !this._box && i2.dist(this._startPos) < this._clickTolerance) - return; - const o2 = this._startPos; - this._lastPos = i2, this._box || (this._box = r.create("div", "maplibregl-boxzoom mapboxgl-boxzoom", this._container), this._container.classList.add("maplibregl-crosshair", "mapboxgl-crosshair"), this._fireEvent("boxzoomstart", t2)); - const a2 = Math.min(o2.x, i2.x), s2 = Math.max(o2.x, i2.x), n2 = Math.min(o2.y, i2.y), l2 = Math.max(o2.y, i2.y); - r.setTransform(this._box, `translate(${a2}px,${n2}px)`), this._box.style.width = s2 - a2 + "px", this._box.style.height = l2 - n2 + "px"; - } - mouseupWindow(e2, i2) { - if (!this._active) - return; - if (0 !== e2.button) - return; - const o2 = this._startPos, a2 = i2; - if (this.reset(), r.suppressClick(), o2.x !== a2.x || o2.y !== a2.y) - return this._map.fire(new t.Event("boxzoomend", { originalEvent: e2 })), { cameraAnimation: (t2) => t2.fitScreenCoordinates(o2, a2, this._map.getBearing(), { linear: true }) }; - this._fireEvent("boxzoomcancel", e2); - } - keydown(t2) { - this._active && 27 === t2.keyCode && (this.reset(), this._fireEvent("boxzoomcancel", t2)); - } - reset() { - this._active = false, this._container.classList.remove("maplibregl-crosshair", "mapboxgl-crosshair"), this._box && (r.remove(this._box), this._box = null), r.enableDrag(), delete this._startPos, delete this._lastPos; - } - _fireEvent(e2, i2) { - return this._map.fire(new t.Event(e2, { originalEvent: i2 })); - } - } - function vo(t2, e2) { - if (t2.length !== e2.length) - throw new Error(`The number of touches and points are not equal - touches ${t2.length}, points ${e2.length}`); - const i2 = {}; - for (let o2 = 0; o2 < t2.length; o2++) - i2[t2[o2].identifier] = e2[o2]; - return i2; - } - class yo { - constructor(t2) { - this.reset(), this.numTouches = t2.numTouches; - } - reset() { - delete this.centroid, delete this.startTime, delete this.touches, this.aborted = false; - } - touchstart(e2, i2, o2) { - (this.centroid || o2.length > this.numTouches) && (this.aborted = true), this.aborted || (void 0 === this.startTime && (this.startTime = e2.timeStamp), o2.length === this.numTouches && (this.centroid = function(e3) { - const i3 = new t.pointGeometry(0, 0); - for (const t2 of e3) - i3._add(t2); - return i3.div(e3.length); - }(i2), this.touches = vo(o2, i2))); - } - touchmove(t2, e2, i2) { - if (this.aborted || !this.centroid) - return; - const o2 = vo(i2, e2); - for (const t3 in this.touches) { - const e3 = this.touches[t3], i3 = o2[t3]; - (!i3 || i3.dist(e3) > 30) && (this.aborted = true); - } - } - touchend(t2, e2, i2) { - if ((!this.centroid || t2.timeStamp - this.startTime > 500) && (this.aborted = true), 0 === i2.length) { - const t3 = !this.aborted && this.centroid; - if (this.reset(), t3) - return t3; - } - } - } - class bo { - constructor(t2) { - this.singleTap = new yo(t2), this.numTaps = t2.numTaps, this.reset(); - } - reset() { - this.lastTime = 1 / 0, delete this.lastTap, this.count = 0, this.singleTap.reset(); - } - touchstart(t2, e2, i2) { - this.singleTap.touchstart(t2, e2, i2); - } - touchmove(t2, e2, i2) { - this.singleTap.touchmove(t2, e2, i2); - } - touchend(t2, e2, i2) { - const o2 = this.singleTap.touchend(t2, e2, i2); - if (o2) { - const e3 = t2.timeStamp - this.lastTime < 500, i3 = !this.lastTap || this.lastTap.dist(o2) < 30; - if (e3 && i3 || this.reset(), this.count++, this.lastTime = t2.timeStamp, this.lastTap = o2, this.count === this.numTaps) - return this.reset(), o2; - } - } - } - class wo { - constructor() { - this._zoomIn = new bo({ numTouches: 1, numTaps: 2 }), this._zoomOut = new bo({ numTouches: 2, numTaps: 1 }), this.reset(); - } - reset() { - this._active = false, this._zoomIn.reset(), this._zoomOut.reset(); - } - touchstart(t2, e2, i2) { - this._zoomIn.touchstart(t2, e2, i2), this._zoomOut.touchstart(t2, e2, i2); - } - touchmove(t2, e2, i2) { - this._zoomIn.touchmove(t2, e2, i2), this._zoomOut.touchmove(t2, e2, i2); - } - touchend(t2, e2, i2) { - const o2 = this._zoomIn.touchend(t2, e2, i2), a2 = this._zoomOut.touchend(t2, e2, i2); - return o2 ? (this._active = true, t2.preventDefault(), setTimeout(() => this.reset(), 0), { cameraAnimation: (e3) => e3.easeTo({ duration: 300, zoom: e3.getZoom() + 1, around: e3.unproject(o2) }, { originalEvent: t2 }) }) : a2 ? (this._active = true, t2.preventDefault(), setTimeout(() => this.reset(), 0), { cameraAnimation: (e3) => e3.easeTo({ duration: 300, zoom: e3.getZoom() - 1, around: e3.unproject(a2) }, { originalEvent: t2 }) }) : void 0; - } - touchcancel() { - this.reset(); - } - enable() { - this._enabled = true; - } - disable() { - this._enabled = false, this.reset(); - } - isEnabled() { - return this._enabled; - } - isActive() { - return this._active; - } - } - const To = { 0: 1, 2: 2 }; - class Eo { - constructor(t2) { - this.reset(), this._clickTolerance = t2.clickTolerance || 1; - } - reset() { - this._active = false, this._moved = false, delete this._lastPoint, delete this._eventButton; - } - _correctButton(t2, e2) { - return false; - } - _move(t2, e2) { - return {}; - } - mousedown(t2, e2) { - if (this._lastPoint) - return; - const i2 = r.mouseButton(t2); - this._correctButton(t2, i2) && (this._lastPoint = e2, this._eventButton = i2); - } - mousemoveWindow(t2, e2) { - const i2 = this._lastPoint; - if (i2) { - if (t2.preventDefault(), function(t3, e3) { - const i3 = To[e3]; - return void 0 === t3.buttons || (t3.buttons & i3) !== i3; - }(t2, this._eventButton)) - this.reset(); - else if (this._moved || !(e2.dist(i2) < this._clickTolerance)) - return this._moved = true, this._lastPoint = e2, this._move(i2, e2); - } - } - mouseupWindow(t2) { - this._lastPoint && r.mouseButton(t2) === this._eventButton && (this._moved && r.suppressClick(), this.reset()); - } - enable() { - this._enabled = true; - } - disable() { - this._enabled = false, this.reset(); - } - isEnabled() { - return this._enabled; - } - isActive() { - return this._active; - } - } - class Io extends Eo { - mousedown(t2, e2) { - super.mousedown(t2, e2), this._lastPoint && (this._active = true); - } - _correctButton(t2, e2) { - return 0 === e2 && !t2.ctrlKey; - } - _move(t2, e2) { - return { around: e2, panDelta: e2.sub(t2) }; - } - } - class Co extends Eo { - _correctButton(t2, e2) { - return 0 === e2 && t2.ctrlKey || 2 === e2; - } - _move(t2, e2) { - const i2 = 0.8 * (e2.x - t2.x); + }, Go.prototype.mousemoveWindow = function(t2, e2) { + var i2 = this._lastPoint; + if (i2) { + if (t2.preventDefault(), function(t3, e3) { + var i3 = Vo[e3]; + return void 0 === t3.buttons || (t3.buttons & i3) !== i3; + }(t2, this._eventButton)) + this.reset(); + else if (this._moved || !(e2.dist(i2) < this._clickTolerance)) + return this._moved = true, this._lastPoint = e2, this._move(i2, e2); + } + }, Go.prototype.mouseupWindow = function(t2) { + this._lastPoint && i.mouseButton(t2) === this._eventButton && (this._moved && i.suppressClick(), this.reset()); + }, Go.prototype.enable = function() { + this._enabled = true; + }, Go.prototype.disable = function() { + this._enabled = false, this.reset(); + }, Go.prototype.isEnabled = function() { + return this._enabled; + }, Go.prototype.isActive = function() { + return this._active; + }; + var Wo = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.mousedown = function(e3, i2) { + t2.prototype.mousedown.call(this, e3, i2), this._lastPoint && (this._active = true); + }, e2.prototype._correctButton = function(t3, e3) { + return 0 === e3 && !t3.ctrlKey; + }, e2.prototype._move = function(t3, e3) { + return { around: e3, panDelta: e3.sub(t3) }; + }, e2; + }(Go), Xo = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._correctButton = function(t3, e3) { + return 0 === e3 && t3.ctrlKey || 2 === e3; + }, e2.prototype._move = function(t3, e3) { + var i2 = 0.8 * (e3.x - t3.x); if (i2) return this._active = true, { bearingDelta: i2 }; - } - contextmenu(t2) { - t2.preventDefault(); - } - } - class So extends Eo { - _correctButton(t2, e2) { - return 0 === e2 && t2.ctrlKey || 2 === e2; - } - _move(t2, e2) { - const i2 = -0.5 * (e2.y - t2.y); + }, e2.prototype.contextmenu = function(t3) { + t3.preventDefault(); + }, e2; + }(Go), Ho = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._correctButton = function(t3, e3) { + return 0 === e3 && t3.ctrlKey || 2 === e3; + }, e2.prototype._move = function(t3, e3) { + var i2 = -0.5 * (e3.y - t3.y); if (i2) return this._active = true, { pitchDelta: i2 }; - } - contextmenu(t2) { - t2.preventDefault(); - } - } - class Do { - constructor(t2, e2) { - this._minTouches = t2.cooperativeGestures ? 2 : 1, this._clickTolerance = t2.clickTolerance || 1, this._map = e2, this.reset(); - } - reset() { - this._active = false, this._touches = {}, this._sum = new t.pointGeometry(0, 0), setTimeout(() => { - this._cancelCooperativeMessage = false; - }, 200); - } - touchstart(t2, e2, i2) { - return this._calculateTransform(t2, e2, i2); - } - touchmove(t2, e2, i2) { - if (this._map._cooperativeGestures && (2 === this._minTouches && i2.length < 2 && !this._cancelCooperativeMessage ? this._map._onCooperativeGesture(t2, false, i2.length) : this._cancelCooperativeMessage || (this._cancelCooperativeMessage = true)), this._active && !(i2.length < this._minTouches)) - return t2.preventDefault(), this._calculateTransform(t2, e2, i2); - } - touchend(t2, e2, i2) { - this._calculateTransform(t2, e2, i2), this._active && i2.length < this._minTouches && this.reset(); - } - touchcancel() { - this.reset(); - } - _calculateTransform(e2, i2, o2) { - o2.length > 0 && (this._active = true); - const a2 = vo(o2, i2), r2 = new t.pointGeometry(0, 0), s2 = new t.pointGeometry(0, 0); - let n2 = 0; - for (const t2 in a2) { - const e3 = a2[t2], i3 = this._touches[t2]; - i3 && (r2._add(e3), s2._add(e3.sub(i3)), n2++, a2[t2] = e3); - } - if (this._touches = a2, n2 < this._minTouches || !s2.mag()) - return; - const l2 = s2.div(n2); - return this._sum._add(l2), this._sum.mag() < this._clickTolerance ? void 0 : { around: r2.div(n2), panDelta: l2 }; - } - enable() { - this._enabled = true; - } - disable() { - this._enabled = false, this.reset(); - } - isEnabled() { - return this._enabled; - } - isActive() { - return this._active; - } - } - class zo { - constructor() { - this.reset(); - } - reset() { - this._active = false, delete this._firstTwoTouches; - } - _start(t2) { - } - _move(t2, e2, i2) { - return {}; - } - touchstart(t2, e2, i2) { - this._firstTwoTouches || i2.length < 2 || (this._firstTwoTouches = [i2[0].identifier, i2[1].identifier], this._start([e2[0], e2[1]])); - } - touchmove(t2, e2, i2) { - if (!this._firstTwoTouches) - return; - t2.preventDefault(); - const [o2, a2] = this._firstTwoTouches, r2 = Po(i2, e2, o2), s2 = Po(i2, e2, a2); - if (!r2 || !s2) - return; - const n2 = this._aroundCenter ? null : r2.add(s2).div(2); - return this._move([r2, s2], n2, t2); - } - touchend(t2, e2, i2) { - if (!this._firstTwoTouches) - return; - const [o2, a2] = this._firstTwoTouches, s2 = Po(i2, e2, o2), n2 = Po(i2, e2, a2); - s2 && n2 || (this._active && r.suppressClick(), this.reset()); - } - touchcancel() { - this.reset(); - } - enable(t2) { - this._enabled = true, this._aroundCenter = !!t2 && "center" === t2.around; - } - disable() { - this._enabled = false, this.reset(); - } - isEnabled() { - return this._enabled; - } - isActive() { - return this._active; - } - } - function Po(t2, e2, i2) { - for (let o2 = 0; o2 < t2.length; o2++) + }, e2.prototype.contextmenu = function(t3) { + t3.preventDefault(); + }, e2; + }(Go), Ko = function(t2) { + this._minTouches = 1, this._clickTolerance = t2.clickTolerance || 1, this.reset(); + }; + Ko.prototype.reset = function() { + this._active = false, this._touches = {}, this._sum = new t.Point(0, 0); + }, Ko.prototype.touchstart = function(t2, e2, i2) { + return this._calculateTransform(t2, e2, i2); + }, Ko.prototype.touchmove = function(t2, e2, i2) { + if (this._active && !(i2.length < this._minTouches)) + return t2.preventDefault(), this._calculateTransform(t2, e2, i2); + }, Ko.prototype.touchend = function(t2, e2, i2) { + this._calculateTransform(t2, e2, i2), this._active && i2.length < this._minTouches && this.reset(); + }, Ko.prototype.touchcancel = function() { + this.reset(); + }, Ko.prototype._calculateTransform = function(e2, i2, o2) { + o2.length > 0 && (this._active = true); + var r2 = No(o2, i2), a2 = new t.Point(0, 0), n2 = new t.Point(0, 0), s2 = 0; + for (var l2 in r2) { + var c3 = r2[l2], u2 = this._touches[l2]; + u2 && (a2._add(c3), n2._add(c3.sub(u2)), s2++, r2[l2] = c3); + } + if (this._touches = r2, !(s2 < this._minTouches) && n2.mag()) { + var h3 = n2.div(s2); + if (this._sum._add(h3), !(this._sum.mag() < this._clickTolerance)) + return { around: a2.div(s2), panDelta: h3 }; + } + }, Ko.prototype.enable = function() { + this._enabled = true; + }, Ko.prototype.disable = function() { + this._enabled = false, this.reset(); + }, Ko.prototype.isEnabled = function() { + return this._enabled; + }, Ko.prototype.isActive = function() { + return this._active; + }; + var Yo = function() { + this.reset(); + }; + function Jo(t2, e2, i2) { + for (var o2 = 0; o2 < t2.length; o2++) if (t2[o2].identifier === i2) return e2[o2]; } - function Mo(t2, e2) { + function Qo(t2, e2) { return Math.log(t2 / e2) / Math.LN2; } - class Ao extends zo { - reset() { - super.reset(), delete this._distance, delete this._startDistance; - } - _start(t2) { - this._startDistance = this._distance = t2[0].dist(t2[1]); - } - _move(t2, e2) { - const i2 = this._distance; - if (this._distance = t2[0].dist(t2[1]), this._active || !(Math.abs(Mo(this._distance, this._startDistance)) < 0.1)) - return this._active = true, { zoomDelta: Mo(this._distance, i2), pinchAround: e2 }; - } - } - function Lo(t2, e2) { + Yo.prototype.reset = function() { + this._active = false, delete this._firstTwoTouches; + }, Yo.prototype._start = function(t2) { + }, Yo.prototype._move = function(t2, e2, i2) { + return {}; + }, Yo.prototype.touchstart = function(t2, e2, i2) { + this._firstTwoTouches || i2.length < 2 || (this._firstTwoTouches = [i2[0].identifier, i2[1].identifier], this._start([e2[0], e2[1]])); + }, Yo.prototype.touchmove = function(t2, e2, i2) { + if (this._firstTwoTouches) { + t2.preventDefault(); + var o2 = this._firstTwoTouches, r2 = o2[1], a2 = Jo(i2, e2, o2[0]), n2 = Jo(i2, e2, r2); + if (a2 && n2) { + var s2 = this._aroundCenter ? null : a2.add(n2).div(2); + return this._move([a2, n2], s2, t2); + } + } + }, Yo.prototype.touchend = function(t2, e2, o2) { + if (this._firstTwoTouches) { + var r2 = this._firstTwoTouches, a2 = r2[1], n2 = Jo(o2, e2, r2[0]), s2 = Jo(o2, e2, a2); + n2 && s2 || (this._active && i.suppressClick(), this.reset()); + } + }, Yo.prototype.touchcancel = function() { + this.reset(); + }, Yo.prototype.enable = function(t2) { + this._enabled = true, this._aroundCenter = !!t2 && "center" === t2.around; + }, Yo.prototype.disable = function() { + this._enabled = false, this.reset(); + }, Yo.prototype.isEnabled = function() { + return this._enabled; + }, Yo.prototype.isActive = function() { + return this._active; + }; + var $o = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.reset = function() { + t2.prototype.reset.call(this), delete this._distance, delete this._startDistance; + }, e2.prototype._start = function(t3) { + this._startDistance = this._distance = t3[0].dist(t3[1]); + }, e2.prototype._move = function(t3, e3) { + var i2 = this._distance; + if (this._distance = t3[0].dist(t3[1]), this._active || !(Math.abs(Qo(this._distance, this._startDistance)) < 0.1)) + return this._active = true, { zoomDelta: Qo(this._distance, i2), pinchAround: e3 }; + }, e2; + }(Yo); + function tr(t2, e2) { return 180 * t2.angleWith(e2) / Math.PI; } - class Ro extends zo { - reset() { - super.reset(), delete this._minDiameter, delete this._startVector, delete this._vector; - } - _start(t2) { - this._startVector = this._vector = t2[0].sub(t2[1]), this._minDiameter = t2[0].dist(t2[1]); - } - _move(t2, e2) { - const i2 = this._vector; - if (this._vector = t2[0].sub(t2[1]), this._active || !this._isBelowThreshold(this._vector)) - return this._active = true, { bearingDelta: Lo(this._vector, i2), pinchAround: e2 }; - } - _isBelowThreshold(t2) { - this._minDiameter = Math.min(this._minDiameter, t2.mag()); - const e2 = 25 / (Math.PI * this._minDiameter) * 360, i2 = Lo(t2, this._startVector); - return Math.abs(i2) < e2; - } - } - function ko(t2) { + var er = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.reset = function() { + t2.prototype.reset.call(this), delete this._minDiameter, delete this._startVector, delete this._vector; + }, e2.prototype._start = function(t3) { + this._startVector = this._vector = t3[0].sub(t3[1]), this._minDiameter = t3[0].dist(t3[1]); + }, e2.prototype._move = function(t3, e3) { + var i2 = this._vector; + if (this._vector = t3[0].sub(t3[1]), this._active || !this._isBelowThreshold(this._vector)) + return this._active = true, { bearingDelta: tr(this._vector, i2), pinchAround: e3 }; + }, e2.prototype._isBelowThreshold = function(t3) { + this._minDiameter = Math.min(this._minDiameter, t3.mag()); + var e3 = 25 / (Math.PI * this._minDiameter) * 360, i2 = tr(t3, this._startVector); + return Math.abs(i2) < e3; + }, e2; + }(Yo); + function ir(t2) { return Math.abs(t2.y) > Math.abs(t2.x); } - class Bo extends zo { - constructor(t2) { - super(), this._map = t2; - } - reset() { - super.reset(), this._valid = void 0, delete this._firstMove, delete this._lastPoints; - } - touchstart(t2, e2, i2) { - super.touchstart(t2, e2, i2), this._currentTouchCount = i2.length; - } - _start(t2) { - this._lastPoints = t2, ko(t2[0].sub(t2[1])) && (this._valid = false); - } - _move(t2, e2, i2) { - if (this._map._cooperativeGestures && this._currentTouchCount < 3) - return; - const o2 = t2[0].sub(this._lastPoints[0]), a2 = t2[1].sub(this._lastPoints[1]); - return this._valid = this.gestureBeginsVertically(o2, a2, i2.timeStamp), this._valid ? (this._lastPoints = t2, this._active = true, { pitchDelta: (o2.y + a2.y) / 2 * -0.5 }) : void 0; - } - gestureBeginsVertically(t2, e2, i2) { + var or = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.reset = function() { + t2.prototype.reset.call(this), this._valid = void 0, delete this._firstMove, delete this._lastPoints; + }, e2.prototype._start = function(t3) { + this._lastPoints = t3, ir(t3[0].sub(t3[1])) && (this._valid = false); + }, e2.prototype._move = function(t3, e3, i2) { + var o2 = t3[0].sub(this._lastPoints[0]), r2 = t3[1].sub(this._lastPoints[1]); + if (this._valid = this.gestureBeginsVertically(o2, r2, i2.timeStamp), this._valid) + return this._lastPoints = t3, this._active = true, { pitchDelta: (o2.y + r2.y) / 2 * -0.5 }; + }, e2.prototype.gestureBeginsVertically = function(t3, e3, i2) { if (void 0 !== this._valid) return this._valid; - const o2 = t2.mag() >= 2, a2 = e2.mag() >= 2; - if (!o2 && !a2) - return; - if (!o2 || !a2) - return void 0 === this._firstMove && (this._firstMove = i2), i2 - this._firstMove < 100 && void 0; - const r2 = t2.y > 0 == e2.y > 0; - return ko(t2) && ko(e2) && r2; - } + var o2 = t3.mag() >= 2, r2 = e3.mag() >= 2; + if (o2 || r2) { + if (!o2 || !r2) + return void 0 === this._firstMove && (this._firstMove = i2), i2 - this._firstMove < 100 && void 0; + var a2 = t3.y > 0 == e3.y > 0; + return ir(t3) && ir(e3) && a2; + } + }, e2; + }(Yo), rr = { panStep: 100, bearingStep: 15, pitchStep: 10 }, ar = function() { + var t2 = rr; + this._panStep = t2.panStep, this._bearingStep = t2.bearingStep, this._pitchStep = t2.pitchStep, this._rotationDisabled = false; + }; + function nr(t2) { + return t2 * (2 - t2); } - const Fo = { panStep: 100, bearingStep: 15, pitchStep: 10 }; - class Oo { - constructor() { - const t2 = Fo; - this._panStep = t2.panStep, this._bearingStep = t2.bearingStep, this._pitchStep = t2.pitchStep, this._rotationDisabled = false; - } - reset() { - this._active = false; - } - keydown(t2) { - if (t2.altKey || t2.ctrlKey || t2.metaKey) - return; - let e2 = 0, i2 = 0, o2 = 0, a2 = 0, r2 = 0; + ar.prototype.blur = function() { + this.reset(); + }, ar.prototype.reset = function() { + this._active = false; + }, ar.prototype.keydown = function(t2) { + var e2 = this; + if (!(t2.altKey || t2.ctrlKey || t2.metaKey)) { + var i2 = 0, o2 = 0, r2 = 0, a2 = 0, n2 = 0; switch (t2.keyCode) { case 61: case 107: case 171: case 187: - e2 = 1; + i2 = 1; break; case 189: case 109: case 173: - e2 = -1; + i2 = -1; break; case 37: - t2.shiftKey ? i2 = -1 : (t2.preventDefault(), a2 = -1); + t2.shiftKey ? o2 = -1 : (t2.preventDefault(), a2 = -1); break; case 39: - t2.shiftKey ? i2 = 1 : (t2.preventDefault(), a2 = 1); + t2.shiftKey ? o2 = 1 : (t2.preventDefault(), a2 = 1); break; case 38: - t2.shiftKey ? o2 = 1 : (t2.preventDefault(), r2 = -1); + t2.shiftKey ? r2 = 1 : (t2.preventDefault(), n2 = -1); break; case 40: - t2.shiftKey ? o2 = -1 : (t2.preventDefault(), r2 = 1); + t2.shiftKey ? r2 = -1 : (t2.preventDefault(), n2 = 1); break; default: return; } - return this._rotationDisabled && (i2 = 0, o2 = 0), { cameraAnimation: (s2) => { - const n2 = s2.getZoom(); - s2.easeTo({ duration: 300, easeId: "keyboardHandler", easing: Uo, zoom: e2 ? Math.round(n2) + e2 * (t2.shiftKey ? 2 : 1) : n2, bearing: s2.getBearing() + i2 * this._bearingStep, pitch: s2.getPitch() + o2 * this._pitchStep, offset: [-a2 * this._panStep, -r2 * this._panStep], center: s2.getCenter() }, { originalEvent: t2 }); + return this._rotationDisabled && (o2 = 0, r2 = 0), { cameraAnimation: function(s2) { + var l2 = s2.getZoom(); + s2.easeTo({ duration: 300, easeId: "keyboardHandler", easing: nr, zoom: i2 ? Math.round(l2) + i2 * (t2.shiftKey ? 2 : 1) : l2, bearing: s2.getBearing() + o2 * e2._bearingStep, pitch: s2.getPitch() + r2 * e2._pitchStep, offset: [-a2 * e2._panStep, -n2 * e2._panStep], center: s2.getCenter() }, { originalEvent: t2 }); } }; } - enable() { - this._enabled = true; - } - disable() { - this._enabled = false, this.reset(); - } - isEnabled() { - return this._enabled; - } - isActive() { - return this._active; - } - disableRotation() { - this._rotationDisabled = true; - } - enableRotation() { - this._rotationDisabled = false; - } - } - function Uo(t2) { - return t2 * (2 - t2); - } - const No = 4.000244140625; - class Go { - constructor(e2, i2) { - this._map = e2, this._el = e2.getCanvasContainer(), this._handler = i2, this._delta = 0, this._defaultZoomRate = 0.01, this._wheelZoomRate = 0.0022222222222222222, t.bindAll(["_onTimeout"], this); - } - setZoomRate(t2) { - this._defaultZoomRate = t2; - } - setWheelZoomRate(t2) { - this._wheelZoomRate = t2; - } - isEnabled() { - return !!this._enabled; - } - isActive() { - return !!this._active || void 0 !== this._finishTimeout; - } - isZooming() { - return !!this._zooming; - } - enable(t2) { - this.isEnabled() || (this._enabled = true, this._aroundCenter = t2 && "center" === t2.around); - } - disable() { - this.isEnabled() && (this._enabled = false); - } - wheel(e2) { - if (!this.isEnabled()) - return; - if (this._map._cooperativeGestures) { - if (!this._map._metaPress) - return; - e2.preventDefault(); - } - let i2 = e2.deltaMode === WheelEvent.DOM_DELTA_LINE ? 40 * e2.deltaY : e2.deltaY; - const o2 = t.exported.now(), a2 = o2 - (this._lastWheelEventTime || 0); - this._lastWheelEventTime = o2, 0 !== i2 && i2 % No == 0 ? this._type = "wheel" : 0 !== i2 && Math.abs(i2) < 4 ? this._type = "trackpad" : a2 > 400 ? (this._type = null, this._lastValue = i2, this._timeout = setTimeout(this._onTimeout, 40, e2)) : this._type || (this._type = Math.abs(a2 * i2) < 200 ? "trackpad" : "wheel", this._timeout && (clearTimeout(this._timeout), this._timeout = null, i2 += this._lastValue)), e2.shiftKey && i2 && (i2 /= 4), this._type && (this._lastWheelEvent = e2, this._delta -= i2, this._active || this._start(e2)), e2.preventDefault(); - } - _onTimeout(t2) { - this._type = "wheel", this._delta -= this._lastValue, this._active || this._start(t2); - } - _start(e2) { - if (!this._delta) - return; + }, ar.prototype.enable = function() { + this._enabled = true; + }, ar.prototype.disable = function() { + this._enabled = false, this.reset(); + }, ar.prototype.isEnabled = function() { + return this._enabled; + }, ar.prototype.isActive = function() { + return this._active; + }, ar.prototype.disableRotation = function() { + this._rotationDisabled = true; + }, ar.prototype.enableRotation = function() { + this._rotationDisabled = false; + }; + var sr = function(e2, i2) { + this._map = e2, this._el = e2.getCanvasContainer(), this._handler = i2, this._delta = 0, this._defaultZoomRate = 0.01, this._wheelZoomRate = 1 / 450, t.bindAll(["_onTimeout"], this); + }; + sr.prototype.setZoomRate = function(t2) { + this._defaultZoomRate = t2; + }, sr.prototype.setWheelZoomRate = function(t2) { + this._wheelZoomRate = t2; + }, sr.prototype.isEnabled = function() { + return !!this._enabled; + }, sr.prototype.isActive = function() { + return !!this._active || void 0 !== this._finishTimeout; + }, sr.prototype.isZooming = function() { + return !!this._zooming; + }, sr.prototype.enable = function(t2) { + this.isEnabled() || (this._enabled = true, this._aroundCenter = t2 && "center" === t2.around); + }, sr.prototype.disable = function() { + this.isEnabled() && (this._enabled = false); + }, sr.prototype.wheel = function(e2) { + if (this.isEnabled()) { + var i2 = e2.deltaMode === t.window.WheelEvent.DOM_DELTA_LINE ? 40 * e2.deltaY : e2.deltaY, o2 = t.browser.now(), r2 = o2 - (this._lastWheelEventTime || 0); + this._lastWheelEventTime = o2, 0 !== i2 && i2 % 4.000244140625 == 0 ? this._type = "wheel" : 0 !== i2 && Math.abs(i2) < 4 ? this._type = "trackpad" : r2 > 400 ? (this._type = null, this._lastValue = i2, this._timeout = setTimeout(this._onTimeout, 40, e2)) : this._type || (this._type = Math.abs(r2 * i2) < 200 ? "trackpad" : "wheel", this._timeout && (clearTimeout(this._timeout), this._timeout = null, i2 += this._lastValue)), e2.shiftKey && i2 && (i2 /= 4), this._type && (this._lastWheelEvent = e2, this._delta -= i2, this._active || this._start(e2)), e2.preventDefault(); + } + }, sr.prototype._onTimeout = function(t2) { + this._type = "wheel", this._delta -= this._lastValue, this._active || this._start(t2); + }, sr.prototype._start = function(e2) { + if (this._delta) { this._frameId && (this._frameId = null), this._active = true, this.isZooming() || (this._zooming = true), this._finishTimeout && (clearTimeout(this._finishTimeout), delete this._finishTimeout); - const i2 = r.mousePos(this._el, e2); - this._around = t.LngLat.convert(this._aroundCenter ? this._map.getCenter() : this._map.unproject(i2)), this._aroundPoint = this._map.transform.locationPoint(this._around), this._frameId || (this._frameId = true, this._handler._triggerRenderFrame()); + var o2 = i.mousePos(this._el, e2); + this._around = t.LngLat.convert(this._aroundCenter ? this._map.getCenter() : this._map.unproject(o2)), this._aroundPoint = this._map.transform.locationPoint(this._around), this._frameId || (this._frameId = true, this._handler._triggerRenderFrame()); } - renderFrame() { - if (!this._frameId) - return; - if (this._frameId = null, !this.isActive()) - return; - const e2 = this._map.transform; + }, sr.prototype.renderFrame = function() { + var e2 = this; + if (this._frameId && (this._frameId = null, this.isActive())) { + var i2 = this._map.transform; if (0 !== this._delta) { - const t2 = "wheel" === this._type && Math.abs(this._delta) > No ? this._wheelZoomRate : this._defaultZoomRate; - let i3 = 2 / (1 + Math.exp(-Math.abs(this._delta * t2))); - this._delta < 0 && 0 !== i3 && (i3 = 1 / i3); - const o3 = "number" == typeof this._targetZoom ? e2.zoomScale(this._targetZoom) : e2.scale; - this._targetZoom = Math.min(e2.maxZoom, Math.max(e2.minZoom, e2.scaleZoom(o3 * i3))), "wheel" === this._type && (this._startZoom = e2.zoom, this._easing = this._smoothOutEasing(200)), this._delta = 0; - } - const i2 = "number" == typeof this._targetZoom ? this._targetZoom : e2.zoom, o2 = this._startZoom, a2 = this._easing; - let r2, s2 = false; - if ("wheel" === this._type && o2 && a2) { - const e3 = Math.min((t.exported.now() - this._lastWheelEventTime) / 200, 1), n2 = a2(e3); - r2 = t.number(o2, i2, n2), e3 < 1 ? this._frameId || (this._frameId = true) : s2 = true; + var o2 = "wheel" === this._type && Math.abs(this._delta) > 4.000244140625 ? this._wheelZoomRate : this._defaultZoomRate, r2 = 2 / (1 + Math.exp(-Math.abs(this._delta * o2))); + this._delta < 0 && 0 !== r2 && (r2 = 1 / r2); + var a2 = "number" == typeof this._targetZoom ? i2.zoomScale(this._targetZoom) : i2.scale; + this._targetZoom = Math.min(i2.maxZoom, Math.max(i2.minZoom, i2.scaleZoom(a2 * r2))), "wheel" === this._type && (this._startZoom = i2.zoom, this._easing = this._smoothOutEasing(200)), this._delta = 0; + } + var n2, s2 = "number" == typeof this._targetZoom ? this._targetZoom : i2.zoom, l2 = this._startZoom, c3 = this._easing, u2 = false; + if ("wheel" === this._type && l2 && c3) { + var h3 = Math.min((t.browser.now() - this._lastWheelEventTime) / 200, 1), p3 = c3(h3); + n2 = t.number(l2, s2, p3), h3 < 1 ? this._frameId || (this._frameId = true) : u2 = true; } else - r2 = i2, s2 = true; - return this._active = true, s2 && (this._active = false, this._finishTimeout = setTimeout(() => { - this._zooming = false, this._handler._triggerRenderFrame(), delete this._targetZoom, delete this._finishTimeout; - }, 200)), { noInertia: true, needsRenderFrame: !s2, zoomDelta: r2 - e2.zoom, around: this._aroundPoint, originalEvent: this._lastWheelEvent }; - } - _smoothOutEasing(e2) { - let i2 = t.ease; - if (this._prevEase) { - const e3 = this._prevEase, o2 = (t.exported.now() - e3.start) / e3.duration, a2 = e3.easing(o2 + 0.01) - e3.easing(o2), r2 = 0.27 / Math.sqrt(a2 * a2 + 1e-4) * 0.01, s2 = Math.sqrt(0.0729 - r2 * r2); - i2 = t.bezier(r2, s2, 0.25, 1); + n2 = s2, u2 = true; + return this._active = true, u2 && (this._active = false, this._finishTimeout = setTimeout(function() { + e2._zooming = false, e2._handler._triggerRenderFrame(), delete e2._targetZoom, delete e2._finishTimeout; + }, 200)), { noInertia: true, needsRenderFrame: !u2, zoomDelta: n2 - i2.zoom, around: this._aroundPoint, originalEvent: this._lastWheelEvent }; + } + }, sr.prototype._smoothOutEasing = function(e2) { + var i2 = t.ease; + if (this._prevEase) { + var o2 = this._prevEase, r2 = (t.browser.now() - o2.start) / o2.duration, a2 = o2.easing(r2 + 0.01) - o2.easing(r2), n2 = 0.27 / Math.sqrt(a2 * a2 + 1e-4) * 0.01, s2 = Math.sqrt(0.0729 - n2 * n2); + i2 = t.bezier(n2, s2, 0.25, 1); + } + return this._prevEase = { start: t.browser.now(), duration: e2, easing: i2 }, i2; + }, sr.prototype.blur = function() { + this.reset(); + }, sr.prototype.reset = function() { + this._active = false; + }; + var lr = function(t2, e2) { + this._clickZoom = t2, this._tapZoom = e2; + }; + lr.prototype.enable = function() { + this._clickZoom.enable(), this._tapZoom.enable(); + }, lr.prototype.disable = function() { + this._clickZoom.disable(), this._tapZoom.disable(); + }, lr.prototype.isEnabled = function() { + return this._clickZoom.isEnabled() && this._tapZoom.isEnabled(); + }, lr.prototype.isActive = function() { + return this._clickZoom.isActive() || this._tapZoom.isActive(); + }; + var cr = function() { + this.reset(); + }; + cr.prototype.reset = function() { + this._active = false; + }, cr.prototype.blur = function() { + this.reset(); + }, cr.prototype.dblclick = function(t2, e2) { + return t2.preventDefault(), { cameraAnimation: function(i2) { + i2.easeTo({ duration: 300, zoom: i2.getZoom() + (t2.shiftKey ? -1 : 1), around: i2.unproject(e2) }, { originalEvent: t2 }); + } }; + }, cr.prototype.enable = function() { + this._enabled = true; + }, cr.prototype.disable = function() { + this._enabled = false, this.reset(); + }, cr.prototype.isEnabled = function() { + return this._enabled; + }, cr.prototype.isActive = function() { + return this._active; + }; + var ur = function() { + this._tap = new qo({ numTouches: 1, numTaps: 1 }), this.reset(); + }; + ur.prototype.reset = function() { + this._active = false, delete this._swipePoint, delete this._swipeTouch, delete this._tapTime, this._tap.reset(); + }, ur.prototype.touchstart = function(t2, e2, i2) { + this._swipePoint || (this._tapTime && t2.timeStamp - this._tapTime > 500 && this.reset(), this._tapTime ? i2.length > 0 && (this._swipePoint = e2[0], this._swipeTouch = i2[0].identifier) : this._tap.touchstart(t2, e2, i2)); + }, ur.prototype.touchmove = function(t2, e2, i2) { + if (this._tapTime) { + if (this._swipePoint) { + if (i2[0].identifier !== this._swipeTouch) + return; + var o2 = e2[0], r2 = o2.y - this._swipePoint.y; + return this._swipePoint = o2, t2.preventDefault(), this._active = true, { zoomDelta: r2 / 128 }; } - return this._prevEase = { start: t.exported.now(), duration: e2, easing: i2 }, i2; - } - reset() { - this._active = false; - } - } - class Zo { - constructor(t2, e2) { - this._clickZoom = t2, this._tapZoom = e2; - } - enable() { - this._clickZoom.enable(), this._tapZoom.enable(); - } - disable() { - this._clickZoom.disable(), this._tapZoom.disable(); - } - isEnabled() { - return this._clickZoom.isEnabled() && this._tapZoom.isEnabled(); - } - isActive() { - return this._clickZoom.isActive() || this._tapZoom.isActive(); - } - } - class Vo { - constructor() { - this.reset(); - } - reset() { - this._active = false; - } - dblclick(t2, e2) { - return t2.preventDefault(), { cameraAnimation: (i2) => { - i2.easeTo({ duration: 300, zoom: i2.getZoom() + (t2.shiftKey ? -1 : 1), around: i2.unproject(e2) }, { originalEvent: t2 }); - } }; - } - enable() { - this._enabled = true; - } - disable() { - this._enabled = false, this.reset(); - } - isEnabled() { - return this._enabled; - } - isActive() { - return this._active; - } - } - class qo { - constructor() { - this._tap = new bo({ numTouches: 1, numTaps: 1 }), this.reset(); - } - reset() { - this._active = false, delete this._swipePoint, delete this._swipeTouch, delete this._tapTime, this._tap.reset(); - } - touchstart(t2, e2, i2) { - this._swipePoint || (this._tapTime && t2.timeStamp - this._tapTime > 500 && this.reset(), this._tapTime ? i2.length > 0 && (this._swipePoint = e2[0], this._swipeTouch = i2[0].identifier) : this._tap.touchstart(t2, e2, i2)); - } - touchmove(t2, e2, i2) { - if (this._tapTime) { - if (this._swipePoint) { - if (i2[0].identifier !== this._swipeTouch) - return; - const o2 = e2[0], a2 = o2.y - this._swipePoint.y; - return this._swipePoint = o2, t2.preventDefault(), this._active = true, { zoomDelta: a2 / 128 }; - } - } else - this._tap.touchmove(t2, e2, i2); - } - touchend(t2, e2, i2) { - this._tapTime ? this._swipePoint && 0 === i2.length && this.reset() : this._tap.touchend(t2, e2, i2) && (this._tapTime = t2.timeStamp); - } - touchcancel() { - this.reset(); - } - enable() { - this._enabled = true; - } - disable() { - this._enabled = false, this.reset(); - } - isEnabled() { - return this._enabled; - } - isActive() { - return this._active; - } - } - class jo { - constructor(t2, e2, i2) { - this._el = t2, this._mousePan = e2, this._touchPan = i2; - } - enable(t2) { - this._inertiaOptions = t2 || {}, this._mousePan.enable(), this._touchPan.enable(), this._el.classList.add("maplibregl-touch-drag-pan", "mapboxgl-touch-drag-pan"); - } - disable() { - this._mousePan.disable(), this._touchPan.disable(), this._el.classList.remove("maplibregl-touch-drag-pan", "mapboxgl-touch-drag-pan"); - } - isEnabled() { - return this._mousePan.isEnabled() && this._touchPan.isEnabled(); - } - isActive() { - return this._mousePan.isActive() || this._touchPan.isActive(); - } - } - class $o { - constructor(t2, e2, i2) { - this._pitchWithRotate = t2.pitchWithRotate, this._mouseRotate = e2, this._mousePitch = i2; - } - enable() { - this._mouseRotate.enable(), this._pitchWithRotate && this._mousePitch.enable(); - } - disable() { - this._mouseRotate.disable(), this._mousePitch.disable(); - } - isEnabled() { - return this._mouseRotate.isEnabled() && (!this._pitchWithRotate || this._mousePitch.isEnabled()); - } - isActive() { - return this._mouseRotate.isActive() || this._mousePitch.isActive(); - } - } - class Xo { - constructor(t2, e2, i2, o2) { - this._el = t2, this._touchZoom = e2, this._touchRotate = i2, this._tapDragZoom = o2, this._rotationDisabled = false, this._enabled = true; - } - enable(t2) { - this._touchZoom.enable(t2), this._rotationDisabled || this._touchRotate.enable(t2), this._tapDragZoom.enable(), this._el.classList.add("maplibregl-touch-zoom-rotate", "mapboxgl-touch-zoom-rotate"); - } - disable() { - this._touchZoom.disable(), this._touchRotate.disable(), this._tapDragZoom.disable(), this._el.classList.remove("maplibregl-touch-zoom-rotate", "mapboxgl-touch-zoom-rotate"); - } - isEnabled() { - return this._touchZoom.isEnabled() && (this._rotationDisabled || this._touchRotate.isEnabled()) && this._tapDragZoom.isEnabled(); - } - isActive() { - return this._touchZoom.isActive() || this._touchRotate.isActive() || this._tapDragZoom.isActive(); - } - disableRotation() { - this._rotationDisabled = true, this._touchRotate.disable(); - } - enableRotation() { - this._rotationDisabled = false, this._touchZoom.isEnabled() && this._touchRotate.enable(); - } - } - const Wo = (t2) => t2.zoom || t2.drag || t2.pitch || t2.rotate; - class Ho extends t.Event { - } - function Ko(t2) { + } else + this._tap.touchmove(t2, e2, i2); + }, ur.prototype.touchend = function(t2, e2, i2) { + this._tapTime ? this._swipePoint && 0 === i2.length && this.reset() : this._tap.touchend(t2, e2, i2) && (this._tapTime = t2.timeStamp); + }, ur.prototype.touchcancel = function() { + this.reset(); + }, ur.prototype.enable = function() { + this._enabled = true; + }, ur.prototype.disable = function() { + this._enabled = false, this.reset(); + }, ur.prototype.isEnabled = function() { + return this._enabled; + }, ur.prototype.isActive = function() { + return this._active; + }; + var hr = function(t2, e2, i2) { + this._el = t2, this._mousePan = e2, this._touchPan = i2; + }; + hr.prototype.enable = function(t2) { + this._inertiaOptions = t2 || {}, this._mousePan.enable(), this._touchPan.enable(), this._el.classList.add("mapboxgl-touch-drag-pan"); + }, hr.prototype.disable = function() { + this._mousePan.disable(), this._touchPan.disable(), this._el.classList.remove("mapboxgl-touch-drag-pan"); + }, hr.prototype.isEnabled = function() { + return this._mousePan.isEnabled() && this._touchPan.isEnabled(); + }, hr.prototype.isActive = function() { + return this._mousePan.isActive() || this._touchPan.isActive(); + }; + var pr = function(t2, e2, i2) { + this._pitchWithRotate = t2.pitchWithRotate, this._mouseRotate = e2, this._mousePitch = i2; + }; + pr.prototype.enable = function() { + this._mouseRotate.enable(), this._pitchWithRotate && this._mousePitch.enable(); + }, pr.prototype.disable = function() { + this._mouseRotate.disable(), this._mousePitch.disable(); + }, pr.prototype.isEnabled = function() { + return this._mouseRotate.isEnabled() && (!this._pitchWithRotate || this._mousePitch.isEnabled()); + }, pr.prototype.isActive = function() { + return this._mouseRotate.isActive() || this._mousePitch.isActive(); + }; + var dr = function(t2, e2, i2, o2) { + this._el = t2, this._touchZoom = e2, this._touchRotate = i2, this._tapDragZoom = o2, this._rotationDisabled = false, this._enabled = true; + }; + dr.prototype.enable = function(t2) { + this._touchZoom.enable(t2), this._rotationDisabled || this._touchRotate.enable(t2), this._tapDragZoom.enable(), this._el.classList.add("mapboxgl-touch-zoom-rotate"); + }, dr.prototype.disable = function() { + this._touchZoom.disable(), this._touchRotate.disable(), this._tapDragZoom.disable(), this._el.classList.remove("mapboxgl-touch-zoom-rotate"); + }, dr.prototype.isEnabled = function() { + return this._touchZoom.isEnabled() && (this._rotationDisabled || this._touchRotate.isEnabled()) && this._tapDragZoom.isEnabled(); + }, dr.prototype.isActive = function() { + return this._touchZoom.isActive() || this._touchRotate.isActive() || this._tapDragZoom.isActive(); + }, dr.prototype.disableRotation = function() { + this._rotationDisabled = true, this._touchRotate.disable(); + }, dr.prototype.enableRotation = function() { + this._rotationDisabled = false, this._touchZoom.isEnabled() && this._touchRotate.enable(); + }; + var _r = function(t2) { + return t2.zoom || t2.drag || t2.pitch || t2.rotate; + }, fr = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2; + }(t.Event); + function mr(t2) { return t2.panDelta && t2.panDelta.mag() || t2.zoomDelta || t2.bearingDelta || t2.pitchDelta; } - class Yo { - constructor(e2, i2) { - this._map = e2, this._el = this._map.getCanvasContainer(), this._handlers = [], this._handlersById = {}, this._changes = [], this._inertia = new co(e2), this._bearingSnap = i2.bearingSnap, this._previousActiveHandlers = {}, this._eventsInProgress = {}, this._addDefaultHandlers(i2), t.bindAll(["handleEvent", "handleWindowEvent"], this); - const o2 = this._el; - this._listeners = [[o2, "touchstart", { passive: true }], [o2, "touchmove", { passive: false }], [o2, "touchend", void 0], [o2, "touchcancel", void 0], [o2, "mousedown", void 0], [o2, "mousemove", void 0], [o2, "mouseup", void 0], [document, "mousemove", { capture: true }], [document, "mouseup", void 0], [o2, "mouseover", void 0], [o2, "mouseout", void 0], [o2, "dblclick", void 0], [o2, "click", void 0], [o2, "keydown", { capture: false }], [o2, "keyup", void 0], [o2, "wheel", { passive: false }], [o2, "contextmenu", void 0], [window, "blur", void 0]]; - for (const [t2, e3, i3] of this._listeners) - r.addEventListener(t2, e3, t2 === document ? this.handleWindowEvent : this.handleEvent, i3); - } - destroy() { - for (const [t2, e2, i2] of this._listeners) - r.removeEventListener(t2, e2, t2 === document ? this.handleWindowEvent : this.handleEvent, i2); - } - _addDefaultHandlers(t2) { - const e2 = this._map, i2 = e2.getCanvasContainer(); - this._add("mapEvent", new fo(e2, t2)); - const o2 = e2.boxZoom = new xo(e2, t2); - this._add("boxZoom", o2); - const a2 = new wo(), r2 = new Vo(); - e2.doubleClickZoom = new Zo(r2, a2), this._add("tapZoom", a2), this._add("clickZoom", r2); - const s2 = new qo(); - this._add("tapDragZoom", s2); - const n2 = e2.touchPitch = new Bo(e2); - this._add("touchPitch", n2); - const l2 = new Co(t2), c3 = new So(t2); - e2.dragRotate = new $o(t2, l2, c3), this._add("mouseRotate", l2, ["mousePitch"]), this._add("mousePitch", c3, ["mouseRotate"]); - const h3 = new Io(t2), u2 = new Do(t2, e2); - e2.dragPan = new jo(i2, h3, u2), this._add("mousePan", h3), this._add("touchPan", u2, ["touchZoom", "touchRotate"]); - const d2 = new Ro(), m2 = new Ao(); - e2.touchZoomRotate = new Xo(i2, m2, d2, s2), this._add("touchRotate", d2, ["touchPan", "touchZoom"]), this._add("touchZoom", m2, ["touchPan", "touchRotate"]); - const _24 = e2.scrollZoom = new Go(e2, this); - this._add("scrollZoom", _24, ["mousePan"]); - const p3 = e2.keyboard = new Oo(); - this._add("keyboard", p3), this._add("blockableMapEvent", new go(e2)); - for (const i3 of ["boxZoom", "doubleClickZoom", "tapDragZoom", "touchPitch", "dragRotate", "dragPan", "touchZoomRotate", "scrollZoom", "keyboard"]) - t2.interactive && t2[i3] && e2[i3].enable(t2[i3]); - } - _add(t2, e2, i2) { - this._handlers.push({ handlerName: t2, handler: e2, allowed: i2 }), this._handlersById[t2] = e2; - } - stop(t2) { - if (!this._updatingCamera) { - for (const { handler: t3 } of this._handlers) - t3.reset(); - this._inertia.clear(), this._fireEvents({}, {}, t2), this._changes = []; - } - } - isActive() { - for (const { handler: t2 } of this._handlers) - if (t2.isActive()) - return true; - return false; - } - isZooming() { - return !!this._eventsInProgress.zoom || this._map.scrollZoom.isZooming(); - } - isRotating() { - return !!this._eventsInProgress.rotate; - } - isMoving() { - return Boolean(Wo(this._eventsInProgress)) || this.isZooming(); + var gr = function(e2, o2) { + this._map = e2, this._el = this._map.getCanvasContainer(), this._handlers = [], this._handlersById = {}, this._changes = [], this._inertia = new Ao(e2), this._bearingSnap = o2.bearingSnap, this._previousActiveHandlers = {}, this._eventsInProgress = {}, this._addDefaultHandlers(o2), t.bindAll(["handleEvent", "handleWindowEvent"], this); + var r2 = this._el; + this._listeners = [[r2, "touchstart", { passive: true }], [r2, "touchmove", { passive: false }], [r2, "touchend", void 0], [r2, "touchcancel", void 0], [r2, "mousedown", void 0], [r2, "mousemove", void 0], [r2, "mouseup", void 0], [t.window.document, "mousemove", { capture: true }], [t.window.document, "mouseup", void 0], [r2, "mouseover", void 0], [r2, "mouseout", void 0], [r2, "dblclick", void 0], [r2, "click", void 0], [r2, "keydown", { capture: false }], [r2, "keyup", void 0], [r2, "wheel", { passive: false }], [r2, "contextmenu", void 0], [t.window, "blur", void 0]]; + for (var a2 = 0, n2 = this._listeners; a2 < n2.length; a2 += 1) { + var s2 = n2[a2], l2 = s2[0]; + i.addEventListener(l2, s2[1], l2 === t.window.document ? this.handleWindowEvent : this.handleEvent, s2[2]); } - _blockedByActive(t2, e2, i2) { - for (const o2 in t2) - if (o2 !== i2 && (!e2 || e2.indexOf(o2) < 0)) - return true; - return false; - } - handleWindowEvent(t2) { - this.handleEvent(t2, `${t2.type}Window`); - } - _getMapTouches(t2) { - const e2 = []; - for (const i2 of t2) - this._el.contains(i2.target) && e2.push(i2); - return e2; - } - handleEvent(t2, e2) { - if ("blur" === t2.type) - return void this.stop(true); - this._updatingCamera = true; - const i2 = "renderFrame" === t2.type ? void 0 : t2, o2 = { needsRenderFrame: false }, a2 = {}, s2 = {}, n2 = t2.touches, l2 = n2 ? this._getMapTouches(n2) : void 0, c3 = l2 ? r.touchPos(this._el, l2) : r.mousePos(this._el, t2); - for (const { handlerName: r2, handler: n3, allowed: h4 } of this._handlers) { - if (!n3.isEnabled()) - continue; - let u3; - this._blockedByActive(s2, h4, r2) ? n3.reset() : n3[e2 || t2.type] && (u3 = n3[e2 || t2.type](t2, c3, l2), this.mergeHandlerResult(o2, a2, u3, r2, i2), u3 && u3.needsRenderFrame && this._triggerRenderFrame()), (u3 || n3.isActive()) && (s2[r2] = n3); - } - const h3 = {}; - for (const t3 in this._previousActiveHandlers) - s2[t3] || (h3[t3] = i2); - this._previousActiveHandlers = s2, (Object.keys(h3).length || Ko(o2)) && (this._changes.push([o2, a2, h3]), this._triggerRenderFrame()), (Object.keys(s2).length || Ko(o2)) && this._map._stop(true), this._updatingCamera = false; - const { cameraAnimation: u2 } = o2; - u2 && (this._inertia.clear(), this._fireEvents({}, {}, true), this._changes = [], u2(this._map)); + }; + gr.prototype.destroy = function() { + for (var e2 = 0, o2 = this._listeners; e2 < o2.length; e2 += 1) { + var r2 = o2[e2], a2 = r2[0]; + i.removeEventListener(a2, r2[1], a2 === t.window.document ? this.handleWindowEvent : this.handleEvent, r2[2]); + } + }, gr.prototype._addDefaultHandlers = function(t2) { + var e2 = this._map, i2 = e2.getCanvasContainer(); + this._add("mapEvent", new Oo(e2, t2)); + var o2 = e2.boxZoom = new Uo(e2, t2); + this._add("boxZoom", o2); + var r2 = new jo(), a2 = new cr(); + e2.doubleClickZoom = new lr(a2, r2), this._add("tapZoom", r2), this._add("clickZoom", a2); + var n2 = new ur(); + this._add("tapDragZoom", n2); + var s2 = e2.touchPitch = new or(); + this._add("touchPitch", s2); + var l2 = new Xo(t2), c3 = new Ho(t2); + e2.dragRotate = new pr(t2, l2, c3), this._add("mouseRotate", l2, ["mousePitch"]), this._add("mousePitch", c3, ["mouseRotate"]); + var u2 = new Wo(t2), h3 = new Ko(t2); + e2.dragPan = new hr(i2, u2, h3), this._add("mousePan", u2), this._add("touchPan", h3, ["touchZoom", "touchRotate"]); + var p3 = new er(), d2 = new $o(); + e2.touchZoomRotate = new dr(i2, d2, p3, n2), this._add("touchRotate", p3, ["touchPan", "touchZoom"]), this._add("touchZoom", d2, ["touchPan", "touchRotate"]); + var _24 = e2.scrollZoom = new sr(e2, this); + this._add("scrollZoom", _24, ["mousePan"]); + var f2 = e2.keyboard = new ar(); + this._add("keyboard", f2), this._add("blockableMapEvent", new Fo(e2)); + for (var m2 = 0, g2 = ["boxZoom", "doubleClickZoom", "tapDragZoom", "touchPitch", "dragRotate", "dragPan", "touchZoomRotate", "scrollZoom", "keyboard"]; m2 < g2.length; m2 += 1) { + var v3 = g2[m2]; + t2.interactive && t2[v3] && e2[v3].enable(t2[v3]); + } + }, gr.prototype._add = function(t2, e2, i2) { + this._handlers.push({ handlerName: t2, handler: e2, allowed: i2 }), this._handlersById[t2] = e2; + }, gr.prototype.stop = function(t2) { + if (!this._updatingCamera) { + for (var e2 = 0, i2 = this._handlers; e2 < i2.length; e2 += 1) + i2[e2].handler.reset(); + this._inertia.clear(), this._fireEvents({}, {}, t2), this._changes = []; + } + }, gr.prototype.isActive = function() { + for (var t2 = 0, e2 = this._handlers; t2 < e2.length; t2 += 1) + if (e2[t2].handler.isActive()) + return true; + return false; + }, gr.prototype.isZooming = function() { + return !!this._eventsInProgress.zoom || this._map.scrollZoom.isZooming(); + }, gr.prototype.isRotating = function() { + return !!this._eventsInProgress.rotate; + }, gr.prototype.isMoving = function() { + return Boolean(_r(this._eventsInProgress)) || this.isZooming(); + }, gr.prototype._blockedByActive = function(t2, e2, i2) { + for (var o2 in t2) + if (o2 !== i2 && (!e2 || e2.indexOf(o2) < 0)) + return true; + return false; + }, gr.prototype.handleWindowEvent = function(t2) { + this.handleEvent(t2, t2.type + "Window"); + }, gr.prototype._getMapTouches = function(t2) { + for (var e2 = [], i2 = 0, o2 = t2; i2 < o2.length; i2 += 1) { + var r2 = o2[i2]; + this._el.contains(r2.target) && e2.push(r2); } - mergeHandlerResult(e2, i2, o2, a2, r2) { - if (!o2) - return; + return e2; + }, gr.prototype.handleEvent = function(t2, e2) { + this._updatingCamera = true; + for (var o2 = "renderFrame" === t2.type ? void 0 : t2, r2 = { needsRenderFrame: false }, a2 = {}, n2 = {}, s2 = t2.touches ? this._getMapTouches(t2.touches) : void 0, l2 = s2 ? i.touchPos(this._el, s2) : i.mousePos(this._el, t2), c3 = 0, u2 = this._handlers; c3 < u2.length; c3 += 1) { + var h3 = u2[c3], p3 = h3.handlerName, d2 = h3.handler, _24 = h3.allowed; + if (d2.isEnabled()) { + var f2 = void 0; + this._blockedByActive(n2, _24, p3) ? d2.reset() : d2[e2 || t2.type] && (f2 = d2[e2 || t2.type](t2, l2, s2), this.mergeHandlerResult(r2, a2, f2, p3, o2), f2 && f2.needsRenderFrame && this._triggerRenderFrame()), (f2 || d2.isActive()) && (n2[p3] = d2); + } + } + var m2 = {}; + for (var g2 in this._previousActiveHandlers) + n2[g2] || (m2[g2] = o2); + this._previousActiveHandlers = n2, (Object.keys(m2).length || mr(r2)) && (this._changes.push([r2, a2, m2]), this._triggerRenderFrame()), (Object.keys(n2).length || mr(r2)) && this._map._stop(true), this._updatingCamera = false; + var v3 = r2.cameraAnimation; + v3 && (this._inertia.clear(), this._fireEvents({}, {}, true), this._changes = [], v3(this._map)); + }, gr.prototype.mergeHandlerResult = function(e2, i2, o2, r2, a2) { + if (o2) { t.extend(e2, o2); - const s2 = { handlerName: a2, originalEvent: o2.originalEvent || r2 }; - void 0 !== o2.zoomDelta && (i2.zoom = s2), void 0 !== o2.panDelta && (i2.drag = s2), void 0 !== o2.pitchDelta && (i2.pitch = s2), void 0 !== o2.bearingDelta && (i2.rotate = s2); - } - _applyChanges() { - const e2 = {}, i2 = {}, o2 = {}; - for (const [a2, r2, s2] of this._changes) - a2.panDelta && (e2.panDelta = (e2.panDelta || new t.pointGeometry(0, 0))._add(a2.panDelta)), a2.zoomDelta && (e2.zoomDelta = (e2.zoomDelta || 0) + a2.zoomDelta), a2.bearingDelta && (e2.bearingDelta = (e2.bearingDelta || 0) + a2.bearingDelta), a2.pitchDelta && (e2.pitchDelta = (e2.pitchDelta || 0) + a2.pitchDelta), void 0 !== a2.around && (e2.around = a2.around), void 0 !== a2.pinchAround && (e2.pinchAround = a2.pinchAround), a2.noInertia && (e2.noInertia = a2.noInertia), t.extend(i2, r2), t.extend(o2, s2); - this._updateMapTransform(e2, i2, o2), this._changes = []; - } - _updateMapTransform(e2, i2, o2) { - const a2 = this._map, r2 = a2.transform, s2 = a2.style && a2.style.terrain; - if (!(Ko(e2) || s2 && this._drag)) - return this._fireEvents(i2, o2, true); - let { panDelta: n2, zoomDelta: l2, bearingDelta: c3, pitchDelta: h3, around: u2, pinchAround: d2 } = e2; - void 0 !== d2 && (u2 = d2), a2._stop(true), u2 = u2 || a2.transform.centerPoint; - const m2 = r2.pointLocation(n2 ? u2.sub(n2) : u2); - c3 && (r2.bearing += c3), h3 && (r2.pitch += h3), l2 && (r2.zoom += l2), s2 ? i2.drag && !this._drag ? (this._drag = { center: r2.centerPoint, lngLat: r2.pointLocation(u2), point: u2, handlerName: i2.drag.handlerName }, a2.fire(new t.Event("freezeElevation", { freeze: true }))) : this._drag && o2[this._drag.handlerName] ? (a2.fire(new t.Event("freezeElevation", { freeze: false })), this._drag = null) : i2.drag && this._drag && (r2.center = r2.pointLocation(r2.centerPoint.sub(n2))) : r2.setLocationAtPoint(m2, u2), this._map._update(), e2.noInertia || this._inertia.record(e2), this._fireEvents(i2, o2, true); - } - _fireEvents(e2, i2, o2) { - const a2 = Wo(this._eventsInProgress), r2 = Wo(e2), s2 = {}; - for (const t2 in e2) { - const { originalEvent: i3 } = e2[t2]; - this._eventsInProgress[t2] || (s2[`${t2}start`] = i3), this._eventsInProgress[t2] = e2[t2]; - } - !a2 && r2 && this._fireEvent("movestart", r2.originalEvent); - for (const t2 in s2) - this._fireEvent(t2, s2[t2]); - r2 && this._fireEvent("move", r2.originalEvent); - for (const t2 in e2) { - const { originalEvent: i3 } = e2[t2]; - this._fireEvent(t2, i3); - } - const n2 = {}; - let l2; - for (const t2 in this._eventsInProgress) { - const { handlerName: e3, originalEvent: o3 } = this._eventsInProgress[t2]; - this._handlersById[e3].isActive() || (delete this._eventsInProgress[t2], l2 = i2[e3] || o3, n2[`${t2}end`] = l2); - } - for (const t2 in n2) - this._fireEvent(t2, n2[t2]); - const c3 = Wo(this._eventsInProgress); - if (o2 && (a2 || r2) && !c3) { - this._updatingCamera = true; - const e3 = this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions), i3 = (t2) => 0 !== t2 && -this._bearingSnap < t2 && t2 < this._bearingSnap; - e3 ? (i3(e3.bearing || this._map.getBearing()) && (e3.bearing = 0), this._map.easeTo(e3, { originalEvent: l2 })) : (this._map.fire(new t.Event("moveend", { originalEvent: l2 })), i3(this._map.getBearing()) && this._map.resetNorth()), this._updatingCamera = false; - } - } - _fireEvent(e2, i2) { - this._map.fire(new t.Event(e2, i2 ? { originalEvent: i2 } : {})); - } - _requestFrame() { - return this._map.triggerRepaint(), this._map._renderTaskQueue.add((t2) => { - delete this._frameId, this.handleEvent(new Ho("renderFrame", { timeStamp: t2 })), this._applyChanges(); - }); - } - _triggerRenderFrame() { - void 0 === this._frameId && (this._frameId = this._requestFrame()); - } - } - const Jo = { extend: (e2, ...i2) => t.extend(e2, ...i2), run(t2) { - t2(); - }, logToElement(t2, e2 = false, i2 = "log") { - const o2 = window.document.getElementById(i2); - o2 && (e2 && (o2.innerHTML = ""), o2.innerHTML += `
${t2}`); - } }; - class Qo extends t.Evented { - constructor(e2, i2) { - super(), this._moving = false, this._zooming = false, this.transform = e2, this._bearingSnap = i2.bearingSnap, t.bindAll(["_renderFrameCallback"], this); + var n2 = { handlerName: r2, originalEvent: o2.originalEvent || a2 }; + void 0 !== o2.zoomDelta && (i2.zoom = n2), void 0 !== o2.panDelta && (i2.drag = n2), void 0 !== o2.pitchDelta && (i2.pitch = n2), void 0 !== o2.bearingDelta && (i2.rotate = n2); + } + }, gr.prototype._applyChanges = function() { + for (var e2 = {}, i2 = {}, o2 = {}, r2 = 0, a2 = this._changes; r2 < a2.length; r2 += 1) { + var n2 = a2[r2], s2 = n2[0], l2 = n2[1], c3 = n2[2]; + s2.panDelta && (e2.panDelta = (e2.panDelta || new t.Point(0, 0))._add(s2.panDelta)), s2.zoomDelta && (e2.zoomDelta = (e2.zoomDelta || 0) + s2.zoomDelta), s2.bearingDelta && (e2.bearingDelta = (e2.bearingDelta || 0) + s2.bearingDelta), s2.pitchDelta && (e2.pitchDelta = (e2.pitchDelta || 0) + s2.pitchDelta), void 0 !== s2.around && (e2.around = s2.around), void 0 !== s2.pinchAround && (e2.pinchAround = s2.pinchAround), s2.noInertia && (e2.noInertia = s2.noInertia), t.extend(i2, l2), t.extend(o2, c3); + } + this._updateMapTransform(e2, i2, o2), this._changes = []; + }, gr.prototype._updateMapTransform = function(t2, e2, i2) { + var o2 = this._map, r2 = o2.transform; + if (!mr(t2)) + return this._fireEvents(e2, i2, true); + var a2 = t2.panDelta, n2 = t2.zoomDelta, s2 = t2.bearingDelta, l2 = t2.pitchDelta, c3 = t2.around, u2 = t2.pinchAround; + void 0 !== u2 && (c3 = u2), o2._stop(true), c3 = c3 || o2.transform.centerPoint; + var h3 = r2.pointLocation(a2 ? c3.sub(a2) : c3); + s2 && (r2.bearing += s2), l2 && (r2.pitch += l2), n2 && (r2.zoom += n2), r2.setLocationAtPoint(h3, c3), this._map._update(), t2.noInertia || this._inertia.record(t2), this._fireEvents(e2, i2, true); + }, gr.prototype._fireEvents = function(e2, i2, o2) { + var r2 = this, a2 = _r(this._eventsInProgress), n2 = _r(e2), s2 = {}; + for (var l2 in e2) + this._eventsInProgress[l2] || (s2[l2 + "start"] = e2[l2].originalEvent), this._eventsInProgress[l2] = e2[l2]; + for (var c3 in !a2 && n2 && this._fireEvent("movestart", n2.originalEvent), s2) + this._fireEvent(c3, s2[c3]); + for (var u2 in n2 && this._fireEvent("move", n2.originalEvent), e2) + this._fireEvent(u2, e2[u2].originalEvent); + var h3, p3 = {}; + for (var d2 in this._eventsInProgress) { + var _24 = this._eventsInProgress[d2], f2 = _24.handlerName, m2 = _24.originalEvent; + this._handlersById[f2].isActive() || (delete this._eventsInProgress[d2], p3[d2 + "end"] = h3 = i2[f2] || m2); + } + for (var g2 in p3) + this._fireEvent(g2, p3[g2]); + var v3 = _r(this._eventsInProgress); + if (o2 && (a2 || n2) && !v3) { + this._updatingCamera = true; + var y3 = this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions), x2 = function(t2) { + return 0 !== t2 && -r2._bearingSnap < t2 && t2 < r2._bearingSnap; + }; + y3 ? (x2(y3.bearing || this._map.getBearing()) && (y3.bearing = 0), this._map.easeTo(y3, { originalEvent: h3 })) : (this._map.fire(new t.Event("moveend", { originalEvent: h3 })), x2(this._map.getBearing()) && this._map.resetNorth()), this._updatingCamera = false; + } + }, gr.prototype._fireEvent = function(e2, i2) { + this._map.fire(new t.Event(e2, i2 ? { originalEvent: i2 } : {})); + }, gr.prototype._requestFrame = function() { + var t2 = this; + return this._map.triggerRepaint(), this._map._renderTaskQueue.add(function(e2) { + delete t2._frameId, t2.handleEvent(new fr("renderFrame", { timeStamp: e2 })), t2._applyChanges(); + }); + }, gr.prototype._triggerRenderFrame = function() { + void 0 === this._frameId && (this._frameId = this._requestFrame()); + }; + var vr = function(e2) { + function i2(i3, o2) { + e2.call(this), this._moving = false, this._zooming = false, this.transform = i3, this._bearingSnap = o2.bearingSnap, t.bindAll(["_renderFrameCallback"], this); } - getCenter() { + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.getCenter = function() { return new t.LngLat(this.transform.center.lng, this.transform.center.lat); - } - setCenter(t2, e2) { - return this.jumpTo({ center: t2 }, e2); - } - panBy(e2, i2, o2) { - return e2 = t.pointGeometry.convert(e2).mult(-1), this.panTo(this.transform.center, t.extend({ offset: e2 }, i2), o2); - } - panTo(e2, i2, o2) { - return this.easeTo(t.extend({ center: e2 }, i2), o2); - } - getZoom() { + }, i2.prototype.setCenter = function(t2, e3) { + return this.jumpTo({ center: t2 }, e3); + }, i2.prototype.panBy = function(e3, i3, o2) { + return e3 = t.Point.convert(e3).mult(-1), this.panTo(this.transform.center, t.extend({ offset: e3 }, i3), o2); + }, i2.prototype.panTo = function(e3, i3, o2) { + return this.easeTo(t.extend({ center: e3 }, i3), o2); + }, i2.prototype.getZoom = function() { return this.transform.zoom; - } - setZoom(t2, e2) { - return this.jumpTo({ zoom: t2 }, e2), this; - } - zoomTo(e2, i2, o2) { - return this.easeTo(t.extend({ zoom: e2 }, i2), o2); - } - zoomIn(t2, e2) { - return this.zoomTo(this.getZoom() + 1, t2, e2), this; - } - zoomOut(t2, e2) { - return this.zoomTo(this.getZoom() - 1, t2, e2), this; - } - getBearing() { + }, i2.prototype.setZoom = function(t2, e3) { + return this.jumpTo({ zoom: t2 }, e3), this; + }, i2.prototype.zoomTo = function(e3, i3, o2) { + return this.easeTo(t.extend({ zoom: e3 }, i3), o2); + }, i2.prototype.zoomIn = function(t2, e3) { + return this.zoomTo(this.getZoom() + 1, t2, e3), this; + }, i2.prototype.zoomOut = function(t2, e3) { + return this.zoomTo(this.getZoom() - 1, t2, e3), this; + }, i2.prototype.getBearing = function() { return this.transform.bearing; - } - setBearing(t2, e2) { - return this.jumpTo({ bearing: t2 }, e2), this; - } - getPadding() { + }, i2.prototype.setBearing = function(t2, e3) { + return this.jumpTo({ bearing: t2 }, e3), this; + }, i2.prototype.getPadding = function() { return this.transform.padding; - } - setPadding(t2, e2) { - return this.jumpTo({ padding: t2 }, e2), this; - } - rotateTo(e2, i2, o2) { - return this.easeTo(t.extend({ bearing: e2 }, i2), o2); - } - resetNorth(e2, i2) { - return this.rotateTo(0, t.extend({ duration: 1e3 }, e2), i2), this; - } - resetNorthPitch(e2, i2) { - return this.easeTo(t.extend({ bearing: 0, pitch: 0, duration: 1e3 }, e2), i2), this; - } - snapToNorth(t2, e2) { - return Math.abs(this.getBearing()) < this._bearingSnap ? this.resetNorth(t2, e2) : this; - } - getPitch() { + }, i2.prototype.setPadding = function(t2, e3) { + return this.jumpTo({ padding: t2 }, e3), this; + }, i2.prototype.rotateTo = function(e3, i3, o2) { + return this.easeTo(t.extend({ bearing: e3 }, i3), o2); + }, i2.prototype.resetNorth = function(e3, i3) { + return this.rotateTo(0, t.extend({ duration: 1e3 }, e3), i3), this; + }, i2.prototype.resetNorthPitch = function(e3, i3) { + return this.easeTo(t.extend({ bearing: 0, pitch: 0, duration: 1e3 }, e3), i3), this; + }, i2.prototype.snapToNorth = function(t2, e3) { + return Math.abs(this.getBearing()) < this._bearingSnap ? this.resetNorth(t2, e3) : this; + }, i2.prototype.getPitch = function() { return this.transform.pitch; - } - setPitch(t2, e2) { - return this.jumpTo({ pitch: t2 }, e2), this; - } - cameraForBounds(e2, i2) { - e2 = t.LngLatBounds.convert(e2); - const o2 = i2 && i2.bearing || 0; - return this._cameraForBoxAndBearing(e2.getNorthWest(), e2.getSouthEast(), o2, i2); - } - _cameraForBoxAndBearing(e2, i2, o2, a2) { - const r2 = { top: 0, bottom: 0, right: 0, left: 0 }; - if ("number" == typeof (a2 = t.extend({ padding: r2, offset: [0, 0], maxZoom: this.transform.maxZoom }, a2)).padding) { - const t2 = a2.padding; - a2.padding = { top: t2, bottom: t2, right: t2, left: t2 }; - } - a2.padding = t.extend(r2, a2.padding); - const s2 = this.transform, n2 = s2.padding, l2 = s2.project(t.LngLat.convert(e2)), c3 = s2.project(t.LngLat.convert(i2)), h3 = l2.rotate(-o2 * Math.PI / 180), u2 = c3.rotate(-o2 * Math.PI / 180), d2 = new t.pointGeometry(Math.max(h3.x, u2.x), Math.max(h3.y, u2.y)), m2 = new t.pointGeometry(Math.min(h3.x, u2.x), Math.min(h3.y, u2.y)), _24 = d2.sub(m2), p3 = (s2.width - (n2.left + n2.right + a2.padding.left + a2.padding.right)) / _24.x, f2 = (s2.height - (n2.top + n2.bottom + a2.padding.top + a2.padding.bottom)) / _24.y; - if (f2 < 0 || p3 < 0) - return void t.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset."); - const g2 = Math.min(s2.scaleZoom(s2.scale * Math.min(p3, f2)), a2.maxZoom), x2 = t.pointGeometry.convert(a2.offset), v3 = new t.pointGeometry((a2.padding.left - a2.padding.right) / 2, (a2.padding.top - a2.padding.bottom) / 2).rotate(o2 * Math.PI / 180), y3 = x2.add(v3).mult(s2.scale / s2.zoomScale(g2)); - return { center: s2.unproject(l2.add(c3).div(2).sub(y3)), zoom: g2, bearing: o2 }; - } - fitBounds(t2, e2, i2) { - return this._fitInternal(this.cameraForBounds(t2, e2), e2, i2); - } - fitScreenCoordinates(e2, i2, o2, a2, r2) { - return this._fitInternal(this._cameraForBoxAndBearing(this.transform.pointLocation(t.pointGeometry.convert(e2)), this.transform.pointLocation(t.pointGeometry.convert(i2)), o2, a2), a2, r2); - } - _fitInternal(e2, i2, o2) { - return e2 ? (delete (i2 = t.extend(e2, i2)).padding, i2.linear ? this.easeTo(i2, o2) : this.flyTo(i2, o2)) : this; - } - jumpTo(e2, i2) { + }, i2.prototype.setPitch = function(t2, e3) { + return this.jumpTo({ pitch: t2 }, e3), this; + }, i2.prototype.cameraForBounds = function(e3, i3) { + e3 = t.LngLatBounds.convert(e3); + var o2 = i3 && i3.bearing || 0; + return this._cameraForBoxAndBearing(e3.getNorthWest(), e3.getSouthEast(), o2, i3); + }, i2.prototype._cameraForBoxAndBearing = function(e3, i3, o2, r2) { + var a2 = { top: 0, bottom: 0, right: 0, left: 0 }; + if ("number" == typeof (r2 = t.extend({ padding: a2, offset: [0, 0], maxZoom: this.transform.maxZoom }, r2)).padding) { + var n2 = r2.padding; + r2.padding = { top: n2, bottom: n2, right: n2, left: n2 }; + } + r2.padding = t.extend(a2, r2.padding); + var s2 = this.transform, l2 = s2.padding, c3 = s2.project(t.LngLat.convert(e3)), u2 = s2.project(t.LngLat.convert(i3)), h3 = c3.rotate(-o2 * Math.PI / 180), p3 = u2.rotate(-o2 * Math.PI / 180), d2 = new t.Point(Math.max(h3.x, p3.x), Math.max(h3.y, p3.y)), _24 = new t.Point(Math.min(h3.x, p3.x), Math.min(h3.y, p3.y)), f2 = d2.sub(_24), m2 = (s2.width - (l2.left + l2.right + r2.padding.left + r2.padding.right)) / f2.x, g2 = (s2.height - (l2.top + l2.bottom + r2.padding.top + r2.padding.bottom)) / f2.y; + if (!(g2 < 0 || m2 < 0)) { + var v3 = Math.min(s2.scaleZoom(s2.scale * Math.min(m2, g2)), r2.maxZoom), y3 = "number" == typeof r2.offset.x ? new t.Point(r2.offset.x, r2.offset.y) : t.Point.convert(r2.offset), x2 = new t.Point((r2.padding.left - r2.padding.right) / 2, (r2.padding.top - r2.padding.bottom) / 2).rotate(o2 * Math.PI / 180), b2 = y3.add(x2).mult(s2.scale / s2.zoomScale(v3)); + return { center: s2.unproject(c3.add(u2).div(2).sub(b2)), zoom: v3, bearing: o2 }; + } + t.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset."); + }, i2.prototype.fitBounds = function(t2, e3, i3) { + return this._fitInternal(this.cameraForBounds(t2, e3), e3, i3); + }, i2.prototype.fitScreenCoordinates = function(e3, i3, o2, r2, a2) { + return this._fitInternal(this._cameraForBoxAndBearing(this.transform.pointLocation(t.Point.convert(e3)), this.transform.pointLocation(t.Point.convert(i3)), o2, r2), r2, a2); + }, i2.prototype._fitInternal = function(e3, i3, o2) { + return e3 ? (delete (i3 = t.extend(e3, i3)).padding, i3.linear ? this.easeTo(i3, o2) : this.flyTo(i3, o2)) : this; + }, i2.prototype.jumpTo = function(e3, i3) { this.stop(); - const o2 = this.transform; - let a2 = false, r2 = false, s2 = false; - return "zoom" in e2 && o2.zoom !== +e2.zoom && (a2 = true, o2.zoom = +e2.zoom), void 0 !== e2.center && (o2.center = t.LngLat.convert(e2.center)), "bearing" in e2 && o2.bearing !== +e2.bearing && (r2 = true, o2.bearing = +e2.bearing), "pitch" in e2 && o2.pitch !== +e2.pitch && (s2 = true, o2.pitch = +e2.pitch), null == e2.padding || o2.isPaddingEqual(e2.padding) || (o2.padding = e2.padding), this.fire(new t.Event("movestart", i2)).fire(new t.Event("move", i2)), a2 && this.fire(new t.Event("zoomstart", i2)).fire(new t.Event("zoom", i2)).fire(new t.Event("zoomend", i2)), r2 && this.fire(new t.Event("rotatestart", i2)).fire(new t.Event("rotate", i2)).fire(new t.Event("rotateend", i2)), s2 && this.fire(new t.Event("pitchstart", i2)).fire(new t.Event("pitch", i2)).fire(new t.Event("pitchend", i2)), this.fire(new t.Event("moveend", i2)); - } - calculateCameraOptionsFromTo(e2, i2, o2, a2 = 0) { - const r2 = t.MercatorCoordinate.fromLngLat(e2, i2), s2 = t.MercatorCoordinate.fromLngLat(o2, a2), n2 = s2.x - r2.x, l2 = s2.y - r2.y, c3 = s2.z - r2.z, h3 = Math.hypot(n2, l2, c3); - if (0 === h3) - throw new Error("Can't calculate camera options with same From and To"); - const u2 = Math.hypot(n2, l2), d2 = this.transform.scaleZoom(this.transform.cameraToCenterDistance / h3 / this.transform.tileSize), m2 = 180 * Math.atan2(n2, -l2) / Math.PI; - let _24 = 180 * Math.acos(u2 / h3) / Math.PI; - return _24 = c3 < 0 ? 90 - _24 : 90 + _24, { center: s2.toLngLat(), zoom: d2, pitch: _24, bearing: m2 }; - } - easeTo(e2, i2) { - this._stop(false, e2.easeId), (false === (e2 = t.extend({ offset: [0, 0], duration: 500, easing: t.ease }, e2)).animate || !e2.essential && t.exported.prefersReducedMotion) && (e2.duration = 0); - const o2 = this.transform, a2 = this.getZoom(), r2 = this.getBearing(), s2 = this.getPitch(), n2 = this.getPadding(), l2 = "zoom" in e2 ? +e2.zoom : a2, c3 = "bearing" in e2 ? this._normalizeBearing(e2.bearing, r2) : r2, h3 = "pitch" in e2 ? +e2.pitch : s2, u2 = "padding" in e2 ? e2.padding : o2.padding, d2 = t.pointGeometry.convert(e2.offset); - let m2 = o2.centerPoint.add(d2); - const _24 = o2.pointLocation(m2), p3 = t.LngLat.convert(e2.center || _24); - this._normalizeCenter(p3); - const f2 = o2.project(_24), g2 = o2.project(p3).sub(f2), x2 = o2.zoomScale(l2 - a2); - let v3, y3; - e2.around && (v3 = t.LngLat.convert(e2.around), y3 = o2.locationPoint(v3)); - const b2 = { moving: this._moving, zooming: this._zooming, rotating: this._rotating, pitching: this._pitching }; - return this._zooming = this._zooming || l2 !== a2, this._rotating = this._rotating || r2 !== c3, this._pitching = this._pitching || h3 !== s2, this._padding = !o2.isPaddingEqual(u2), this._easeId = e2.easeId, this._prepareEase(i2, e2.noMoveStart, b2), this._ease((e3) => { - if (this._zooming && (o2.zoom = t.number(a2, l2, e3)), this._rotating && (o2.bearing = t.number(r2, c3, e3)), this._pitching && (o2.pitch = t.number(s2, h3, e3)), this._padding && (o2.interpolatePadding(n2, u2, e3), m2 = o2.centerPoint.add(d2)), v3) - o2.setLocationAtPoint(v3, y3); + var o2 = this.transform, r2 = false, a2 = false, n2 = false; + return "zoom" in e3 && o2.zoom !== +e3.zoom && (r2 = true, o2.zoom = +e3.zoom), void 0 !== e3.center && (o2.center = t.LngLat.convert(e3.center)), "bearing" in e3 && o2.bearing !== +e3.bearing && (a2 = true, o2.bearing = +e3.bearing), "pitch" in e3 && o2.pitch !== +e3.pitch && (n2 = true, o2.pitch = +e3.pitch), null == e3.padding || o2.isPaddingEqual(e3.padding) || (o2.padding = e3.padding), this.fire(new t.Event("movestart", i3)).fire(new t.Event("move", i3)), r2 && this.fire(new t.Event("zoomstart", i3)).fire(new t.Event("zoom", i3)).fire(new t.Event("zoomend", i3)), a2 && this.fire(new t.Event("rotatestart", i3)).fire(new t.Event("rotate", i3)).fire(new t.Event("rotateend", i3)), n2 && this.fire(new t.Event("pitchstart", i3)).fire(new t.Event("pitch", i3)).fire(new t.Event("pitchend", i3)), this.fire(new t.Event("moveend", i3)); + }, i2.prototype.easeTo = function(e3, i3) { + var o2 = this; + this._stop(false, e3.easeId), (false === (e3 = t.extend({ offset: [0, 0], duration: 500, easing: t.ease }, e3)).animate || !e3.essential && t.browser.prefersReducedMotion) && (e3.duration = 0); + var r2 = this.transform, a2 = this.getZoom(), n2 = this.getBearing(), s2 = this.getPitch(), l2 = this.getPadding(), c3 = "zoom" in e3 ? +e3.zoom : a2, u2 = "bearing" in e3 ? this._normalizeBearing(e3.bearing, n2) : n2, h3 = "pitch" in e3 ? +e3.pitch : s2, p3 = "padding" in e3 ? e3.padding : r2.padding, d2 = t.Point.convert(e3.offset), _24 = r2.centerPoint.add(d2), f2 = r2.pointLocation(_24), m2 = t.LngLat.convert(e3.center || f2); + this._normalizeCenter(m2); + var g2, v3, y3 = r2.project(f2), x2 = r2.project(m2).sub(y3), b2 = r2.zoomScale(c3 - a2); + e3.around && (g2 = t.LngLat.convert(e3.around), v3 = r2.locationPoint(g2)); + var w2 = { moving: this._moving, zooming: this._zooming, rotating: this._rotating, pitching: this._pitching }; + return this._zooming = this._zooming || c3 !== a2, this._rotating = this._rotating || n2 !== u2, this._pitching = this._pitching || h3 !== s2, this._padding = !r2.isPaddingEqual(p3), this._easeId = e3.easeId, this._prepareEase(i3, e3.noMoveStart, w2), this._ease(function(e4) { + if (o2._zooming && (r2.zoom = t.number(a2, c3, e4)), o2._rotating && (r2.bearing = t.number(n2, u2, e4)), o2._pitching && (r2.pitch = t.number(s2, h3, e4)), o2._padding && (r2.interpolatePadding(l2, p3, e4), _24 = r2.centerPoint.add(d2)), g2) + r2.setLocationAtPoint(g2, v3); else { - const t2 = o2.zoomScale(o2.zoom - a2), i3 = l2 > a2 ? Math.min(2, x2) : Math.max(0.5, x2), r3 = Math.pow(i3, 1 - e3), s3 = o2.unproject(f2.add(g2.mult(e3 * r3)).mult(t2)); - o2.setLocationAtPoint(o2.renderWorldCopies ? s3.wrap() : s3, m2); + var f3 = r2.zoomScale(r2.zoom - a2), m3 = c3 > a2 ? Math.min(2, b2) : Math.max(0.5, b2), w3 = Math.pow(m3, 1 - e4), T2 = r2.unproject(y3.add(x2.mult(e4 * w3)).mult(f3)); + r2.setLocationAtPoint(r2.renderWorldCopies ? T2.wrap() : T2, _24); } - this._fireMoveEvents(i2); - }, (t2) => { - this._afterEase(i2, t2); - }, e2), this; - } - _prepareEase(e2, i2, o2 = {}) { - this._moving = true, this.fire(new t.Event("freezeElevation", { freeze: true })), i2 || o2.moving || this.fire(new t.Event("movestart", e2)), this._zooming && !o2.zooming && this.fire(new t.Event("zoomstart", e2)), this._rotating && !o2.rotating && this.fire(new t.Event("rotatestart", e2)), this._pitching && !o2.pitching && this.fire(new t.Event("pitchstart", e2)); - } - _fireMoveEvents(e2) { - this.fire(new t.Event("move", e2)), this._zooming && this.fire(new t.Event("zoom", e2)), this._rotating && this.fire(new t.Event("rotate", e2)), this._pitching && this.fire(new t.Event("pitch", e2)); - } - _afterEase(e2, i2) { - if (this._easeId && i2 && this._easeId === i2) - return; - delete this._easeId, this.fire(new t.Event("freezeElevation", { freeze: false })); - const o2 = this._zooming, a2 = this._rotating, r2 = this._pitching; - this._moving = false, this._zooming = false, this._rotating = false, this._pitching = false, this._padding = false, o2 && this.fire(new t.Event("zoomend", e2)), a2 && this.fire(new t.Event("rotateend", e2)), r2 && this.fire(new t.Event("pitchend", e2)), this.fire(new t.Event("moveend", e2)); - } - flyTo(e2, i2) { - if (!e2.essential && t.exported.prefersReducedMotion) { - const o3 = t.pick(e2, ["center", "zoom", "bearing", "pitch", "around"]); - return this.jumpTo(o3, i2); - } - this.stop(), e2 = t.extend({ offset: [0, 0], speed: 1.2, curve: 1.42, easing: t.ease }, e2); - const o2 = this.transform, a2 = this.getZoom(), r2 = this.getBearing(), s2 = this.getPitch(), n2 = this.getPadding(), l2 = "zoom" in e2 ? t.clamp(+e2.zoom, o2.minZoom, o2.maxZoom) : a2, c3 = "bearing" in e2 ? this._normalizeBearing(e2.bearing, r2) : r2, h3 = "pitch" in e2 ? +e2.pitch : s2, u2 = "padding" in e2 ? e2.padding : o2.padding, d2 = o2.zoomScale(l2 - a2), m2 = t.pointGeometry.convert(e2.offset); - let _24 = o2.centerPoint.add(m2); - const p3 = o2.pointLocation(_24), f2 = t.LngLat.convert(e2.center || p3); - this._normalizeCenter(f2); - const g2 = o2.project(p3), x2 = o2.project(f2).sub(g2); - let v3 = e2.curve; - const y3 = Math.max(o2.width, o2.height), b2 = y3 / d2, w2 = x2.mag(); - if ("minZoom" in e2) { - const i3 = t.clamp(Math.min(e2.minZoom, a2, l2), o2.minZoom, o2.maxZoom), r3 = y3 / o2.zoomScale(i3 - a2); - v3 = Math.sqrt(r3 / w2 * 2); - } - const T2 = v3 * v3; - function E2(t2) { - const e3 = (b2 * b2 - y3 * y3 + (t2 ? -1 : 1) * T2 * T2 * w2 * w2) / (2 * (t2 ? b2 : y3) * T2 * w2); - return Math.log(Math.sqrt(e3 * e3 + 1) - e3); - } - function I3(t2) { + o2._fireMoveEvents(i3); + }, function(t2) { + o2._afterEase(i3, t2); + }, e3), this; + }, i2.prototype._prepareEase = function(e3, i3, o2) { + void 0 === o2 && (o2 = {}), this._moving = true, i3 || o2.moving || this.fire(new t.Event("movestart", e3)), this._zooming && !o2.zooming && this.fire(new t.Event("zoomstart", e3)), this._rotating && !o2.rotating && this.fire(new t.Event("rotatestart", e3)), this._pitching && !o2.pitching && this.fire(new t.Event("pitchstart", e3)); + }, i2.prototype._fireMoveEvents = function(e3) { + this.fire(new t.Event("move", e3)), this._zooming && this.fire(new t.Event("zoom", e3)), this._rotating && this.fire(new t.Event("rotate", e3)), this._pitching && this.fire(new t.Event("pitch", e3)); + }, i2.prototype._afterEase = function(e3, i3) { + if (!this._easeId || !i3 || this._easeId !== i3) { + delete this._easeId; + var o2 = this._zooming, r2 = this._rotating, a2 = this._pitching; + this._moving = false, this._zooming = false, this._rotating = false, this._pitching = false, this._padding = false, o2 && this.fire(new t.Event("zoomend", e3)), r2 && this.fire(new t.Event("rotateend", e3)), a2 && this.fire(new t.Event("pitchend", e3)), this.fire(new t.Event("moveend", e3)); + } + }, i2.prototype.flyTo = function(e3, i3) { + var o2 = this; + if (!e3.essential && t.browser.prefersReducedMotion) { + var r2 = t.pick(e3, ["center", "zoom", "bearing", "pitch", "around"]); + return this.jumpTo(r2, i3); + } + this.stop(), e3 = t.extend({ offset: [0, 0], speed: 1.2, curve: 1.42, easing: t.ease }, e3); + var a2 = this.transform, n2 = this.getZoom(), s2 = this.getBearing(), l2 = this.getPitch(), c3 = this.getPadding(), u2 = "zoom" in e3 ? t.clamp(+e3.zoom, a2.minZoom, a2.maxZoom) : n2, h3 = "bearing" in e3 ? this._normalizeBearing(e3.bearing, s2) : s2, p3 = "pitch" in e3 ? +e3.pitch : l2, d2 = "padding" in e3 ? e3.padding : a2.padding, _24 = a2.zoomScale(u2 - n2), f2 = t.Point.convert(e3.offset), m2 = a2.centerPoint.add(f2), g2 = a2.pointLocation(m2), v3 = t.LngLat.convert(e3.center || g2); + this._normalizeCenter(v3); + var y3 = a2.project(g2), x2 = a2.project(v3).sub(y3), b2 = e3.curve, w2 = Math.max(a2.width, a2.height), T2 = w2 / _24, E2 = x2.mag(); + if ("minZoom" in e3) { + var I3 = t.clamp(Math.min(e3.minZoom, n2, u2), a2.minZoom, a2.maxZoom), P2 = w2 / a2.zoomScale(I3 - n2); + b2 = Math.sqrt(P2 / E2 * 2); + } + var S2 = b2 * b2; + function C2(t2) { + var e4 = (T2 * T2 - w2 * w2 + (t2 ? -1 : 1) * S2 * S2 * E2 * E2) / (2 * (t2 ? T2 : w2) * S2 * E2); + return Math.log(Math.sqrt(e4 * e4 + 1) - e4); + } + function z2(t2) { return (Math.exp(t2) - Math.exp(-t2)) / 2; } - function C2(t2) { + function D2(t2) { return (Math.exp(t2) + Math.exp(-t2)) / 2; } - const S2 = E2(0); - let D2 = function(t2) { - return C2(S2) / C2(S2 + v3 * t2); - }, z2 = function(t2) { - return y3 * ((C2(S2) * (I3(e3 = S2 + v3 * t2) / C2(e3)) - I3(S2)) / T2) / w2; - var e3; - }, P2 = (E2(1) - S2) / v3; - if (Math.abs(w2) < 1e-6 || !isFinite(P2)) { - if (Math.abs(y3 - b2) < 1e-6) - return this.easeTo(e2, i2); - const t2 = b2 < y3 ? -1 : 1; - P2 = Math.abs(Math.log(b2 / y3)) / v3, z2 = function() { + var A3 = C2(0), M2 = function(t2) { + return D2(A3) / D2(A3 + b2 * t2); + }, L2 = function(t2) { + return w2 * ((D2(A3) * (z2(e4 = A3 + b2 * t2) / D2(e4)) - z2(A3)) / S2) / E2; + var e4; + }, R2 = (C2(1) - A3) / b2; + if (Math.abs(E2) < 1e-6 || !isFinite(R2)) { + if (Math.abs(w2 - T2) < 1e-6) + return this.easeTo(e3, i3); + var k2 = T2 < w2 ? -1 : 1; + R2 = Math.abs(Math.log(T2 / w2)) / b2, L2 = function() { return 0; - }, D2 = function(e3) { - return Math.exp(t2 * v3 * e3); + }, M2 = function(t2) { + return Math.exp(k2 * b2 * t2); }; } - return e2.duration = "duration" in e2 ? +e2.duration : 1e3 * P2 / ("screenSpeed" in e2 ? +e2.screenSpeed / v3 : +e2.speed), e2.maxDuration && e2.duration > e2.maxDuration && (e2.duration = 0), this._zooming = true, this._rotating = r2 !== c3, this._pitching = h3 !== s2, this._padding = !o2.isPaddingEqual(u2), this._prepareEase(i2, false), this._ease((e3) => { - const d3 = e3 * P2, p4 = 1 / D2(d3); - o2.zoom = 1 === e3 ? l2 : a2 + o2.scaleZoom(p4), this._rotating && (o2.bearing = t.number(r2, c3, e3)), this._pitching && (o2.pitch = t.number(s2, h3, e3)), this._padding && (o2.interpolatePadding(n2, u2, e3), _24 = o2.centerPoint.add(m2)); - const v4 = 1 === e3 ? f2 : o2.unproject(g2.add(x2.mult(z2(d3))).mult(p4)); - o2.setLocationAtPoint(o2.renderWorldCopies ? v4.wrap() : v4, _24), this._fireMoveEvents(i2); - }, () => this._afterEase(i2), e2), this; - } - isEasing() { + return e3.duration = "duration" in e3 ? +e3.duration : 1e3 * R2 / ("screenSpeed" in e3 ? +e3.screenSpeed / b2 : +e3.speed), e3.maxDuration && e3.duration > e3.maxDuration && (e3.duration = 0), this._zooming = true, this._rotating = s2 !== h3, this._pitching = p3 !== l2, this._padding = !a2.isPaddingEqual(d2), this._prepareEase(i3, false), this._ease(function(e4) { + var r3 = e4 * R2, _25 = 1 / M2(r3); + a2.zoom = 1 === e4 ? u2 : n2 + a2.scaleZoom(_25), o2._rotating && (a2.bearing = t.number(s2, h3, e4)), o2._pitching && (a2.pitch = t.number(l2, p3, e4)), o2._padding && (a2.interpolatePadding(c3, d2, e4), m2 = a2.centerPoint.add(f2)); + var g3 = 1 === e4 ? v3 : a2.unproject(y3.add(x2.mult(L2(r3))).mult(_25)); + a2.setLocationAtPoint(a2.renderWorldCopies ? g3.wrap() : g3, m2), o2._fireMoveEvents(i3); + }, function() { + return o2._afterEase(i3); + }, e3), this; + }, i2.prototype.isEasing = function() { return !!this._easeFrameId; - } - stop() { + }, i2.prototype.stop = function() { return this._stop(); - } - _stop(t2, e2) { + }, i2.prototype._stop = function(t2, e3) { if (this._easeFrameId && (this._cancelRenderFrame(this._easeFrameId), delete this._easeFrameId, delete this._onEaseFrame), this._onEaseEnd) { - const t3 = this._onEaseEnd; - delete this._onEaseEnd, t3.call(this, e2); + var i3 = this._onEaseEnd; + delete this._onEaseEnd, i3.call(this, e3); } if (!t2) { - const t3 = this.handlers; - t3 && t3.stop(false); + var o2 = this.handlers; + o2 && o2.stop(false); } return this; - } - _ease(e2, i2, o2) { - false === o2.animate || 0 === o2.duration ? (e2(1), i2()) : (this._easeStart = t.exported.now(), this._easeOptions = o2, this._onEaseFrame = e2, this._onEaseEnd = i2, this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback)); - } - _renderFrameCallback() { - const e2 = Math.min((t.exported.now() - this._easeStart) / this._easeOptions.duration, 1); - this._onEaseFrame(this._easeOptions.easing(e2)), e2 < 1 ? this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback) : this.stop(); - } - _normalizeBearing(e2, i2) { - e2 = t.wrap(e2, -180, 180); - const o2 = Math.abs(e2 - i2); - return Math.abs(e2 - 360 - i2) < o2 && (e2 -= 360), Math.abs(e2 + 360 - i2) < o2 && (e2 += 360), e2; - } - _normalizeCenter(t2) { - const e2 = this.transform; - if (!e2.renderWorldCopies || e2.lngRange) - return; - const i2 = t2.lng - e2.center.lng; - t2.lng += i2 > 180 ? -360 : i2 < -180 ? 360 : 0; - } - } - class ta { - constructor(e2 = {}) { - this.options = e2, t.bindAll(["_toggleAttribution", "_updateData", "_updateCompact", "_updateCompactMinimize"], this); - } - getDefaultPosition() { - return "bottom-right"; - } - onAdd(t2) { - return this._map = t2, this._compact = this.options && this.options.compact, this._container = r.create("details", "maplibregl-ctrl maplibregl-ctrl-attrib mapboxgl-ctrl mapboxgl-ctrl-attrib"), this._compactButton = r.create("summary", "maplibregl-ctrl-attrib-button mapboxgl-ctrl-attrib-button", this._container), this._compactButton.addEventListener("click", this._toggleAttribution), this._setElementTitle(this._compactButton, "ToggleAttribution"), this._innerContainer = r.create("div", "maplibregl-ctrl-attrib-inner mapboxgl-ctrl-attrib-inner", this._container), this._updateAttributions(), this._updateCompact(), this._map.on("styledata", this._updateData), this._map.on("sourcedata", this._updateData), this._map.on("terrain", this._updateData), this._map.on("resize", this._updateCompact), this._map.on("drag", this._updateCompactMinimize), this._container; - } - onRemove() { - r.remove(this._container), this._map.off("styledata", this._updateData), this._map.off("sourcedata", this._updateData), this._map.off("terrain", this._updateData), this._map.off("resize", this._updateCompact), this._map.off("drag", this._updateCompactMinimize), this._map = void 0, this._compact = void 0, this._attribHTML = void 0; - } - _setElementTitle(t2, e2) { - const i2 = this._map._getUIString(`AttributionControl.${e2}`); - t2.title = i2, t2.setAttribute("aria-label", i2); - } - _toggleAttribution() { - this._container.classList.contains("maplibregl-compact") && (this._container.classList.contains("maplibregl-compact-show") ? (this._container.setAttribute("open", ""), this._container.classList.remove("maplibregl-compact-show", "mapboxgl-compact-show")) : (this._container.classList.add("maplibregl-compact-show", "mapboxgl-compact-show"), this._container.removeAttribute("open"))); - } - _updateData(t2) { - !t2 || "metadata" !== t2.sourceDataType && "visibility" !== t2.sourceDataType && "style" !== t2.dataType && "terrain" !== t2.type || this._updateAttributions(); - } - _updateAttributions() { - if (!this._map.style) - return; - let t2 = []; - if (this.options.customAttribution && (Array.isArray(this.options.customAttribution) ? t2 = t2.concat(this.options.customAttribution.map((t3) => "string" != typeof t3 ? "" : t3)) : "string" == typeof this.options.customAttribution && t2.push(this.options.customAttribution)), this._map.style.stylesheet) { - const t3 = this._map.style.stylesheet; - this.styleOwner = t3.owner, this.styleId = t3.id; - } - const e2 = this._map.style.sourceCaches; - for (const i3 in e2) { - const o2 = e2[i3]; - if (o2.used || o2.usedForTerrain) { - const e3 = o2.getSource(); - e3.attribution && t2.indexOf(e3.attribution) < 0 && t2.push(e3.attribution); + }, i2.prototype._ease = function(e3, i3, o2) { + false === o2.animate || 0 === o2.duration ? (e3(1), i3()) : (this._easeStart = t.browser.now(), this._easeOptions = o2, this._onEaseFrame = e3, this._onEaseEnd = i3, this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback)); + }, i2.prototype._renderFrameCallback = function() { + var e3 = Math.min((t.browser.now() - this._easeStart) / this._easeOptions.duration, 1); + this._onEaseFrame(this._easeOptions.easing(e3)), e3 < 1 ? this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback) : this.stop(); + }, i2.prototype._normalizeBearing = function(e3, i3) { + e3 = t.wrap(e3, -180, 180); + var o2 = Math.abs(e3 - i3); + return Math.abs(e3 - 360 - i3) < o2 && (e3 -= 360), Math.abs(e3 + 360 - i3) < o2 && (e3 += 360), e3; + }, i2.prototype._normalizeCenter = function(t2) { + var e3 = this.transform; + if (e3.renderWorldCopies && !e3.lngRange) { + var i3 = t2.lng - e3.center.lng; + t2.lng += i3 > 180 ? -360 : i3 < -180 ? 360 : 0; + } + }, i2; + }(t.Evented), yr = function(e2) { + void 0 === e2 && (e2 = {}), this.options = e2, t.bindAll(["_toggleAttribution", "_updateEditLink", "_updateData", "_updateCompact"], this); + }; + yr.prototype.getDefaultPosition = function() { + return "bottom-right"; + }, yr.prototype.onAdd = function(t2) { + var e2 = this.options && this.options.compact; + return this._map = t2, this._container = i.create("div", "mapboxgl-ctrl mapboxgl-ctrl-attrib"), this._compactButton = i.create("button", "mapboxgl-ctrl-attrib-button", this._container), this._compactButton.addEventListener("click", this._toggleAttribution), this._setElementTitle(this._compactButton, "ToggleAttribution"), this._innerContainer = i.create("div", "mapboxgl-ctrl-attrib-inner", this._container), this._innerContainer.setAttribute("role", "list"), e2 && this._container.classList.add("mapboxgl-compact"), this._updateAttributions(), this._updateEditLink(), this._map.on("styledata", this._updateData), this._map.on("sourcedata", this._updateData), this._map.on("moveend", this._updateEditLink), void 0 === e2 && (this._map.on("resize", this._updateCompact), this._updateCompact()), this._container; + }, yr.prototype.onRemove = function() { + i.remove(this._container), this._map.off("styledata", this._updateData), this._map.off("sourcedata", this._updateData), this._map.off("moveend", this._updateEditLink), this._map.off("resize", this._updateCompact), this._map = void 0, this._attribHTML = void 0; + }, yr.prototype._setElementTitle = function(t2, e2) { + var i2 = this._map._getUIString("AttributionControl." + e2); + t2.title = i2, t2.setAttribute("aria-label", i2); + }, yr.prototype._toggleAttribution = function() { + this._container.classList.contains("mapboxgl-compact-show") ? (this._container.classList.remove("mapboxgl-compact-show"), this._compactButton.setAttribute("aria-pressed", "false")) : (this._container.classList.add("mapboxgl-compact-show"), this._compactButton.setAttribute("aria-pressed", "true")); + }, yr.prototype._updateEditLink = function() { + var e2 = this._editLink; + e2 || (e2 = this._editLink = this._container.querySelector(".mapbox-improve-map")); + var i2 = [{ key: "owner", value: this.styleOwner }, { key: "id", value: this.styleId }, { key: "access_token", value: this._map._requestManager._customAccessToken || t.config.ACCESS_TOKEN }]; + if (e2) { + var o2 = i2.reduce(function(t2, e3, o3) { + return e3.value && (t2 += e3.key + "=" + e3.value + (o3 < i2.length - 1 ? "&" : "")), t2; + }, "?"); + e2.href = t.config.FEEDBACK_URL + "/" + o2 + (this._map._hash ? this._map._hash.getHashString(true) : ""), e2.rel = "noopener nofollow", this._setElementTitle(e2, "MapFeedback"); + } + }, yr.prototype._updateData = function(t2) { + !t2 || "metadata" !== t2.sourceDataType && "visibility" !== t2.sourceDataType && "style" !== t2.dataType || (this._updateAttributions(), this._updateEditLink()); + }, yr.prototype._updateAttributions = function() { + if (this._map.style) { + var t2 = []; + if (this.options.customAttribution && (Array.isArray(this.options.customAttribution) ? t2 = t2.concat(this.options.customAttribution.map(function(t3) { + return "string" != typeof t3 ? "" : t3; + })) : "string" == typeof this.options.customAttribution && t2.push(this.options.customAttribution)), this._map.style.stylesheet) { + var e2 = this._map.style.stylesheet; + this.styleOwner = e2.owner, this.styleId = e2.id; + } + var i2 = this._map.style.sourceCaches; + for (var o2 in i2) { + var r2 = i2[o2]; + if (r2.used) { + var a2 = r2.getSource(); + a2.attribution && t2.indexOf(a2.attribution) < 0 && t2.push(a2.attribution); } } - t2 = t2.filter((t3) => String(t3).trim()), t2.sort((t3, e3) => t3.length - e3.length), t2 = t2.filter((e3, i3) => { - for (let o2 = i3 + 1; o2 < t2.length; o2++) - if (t2[o2].indexOf(e3) >= 0) + t2.sort(function(t3, e3) { + return t3.length - e3.length; + }); + var n2 = (t2 = t2.filter(function(e3, i3) { + for (var o3 = i3 + 1; o3 < t2.length; o3++) + if (t2[o3].indexOf(e3) >= 0) return false; return true; - }); - const i2 = t2.join(" | "); - i2 !== this._attribHTML && (this._attribHTML = i2, t2.length ? (this._innerContainer.innerHTML = i2, this._container.classList.remove("maplibregl-attrib-empty", "mapboxgl-attrib-empty")) : this._container.classList.add("maplibregl-attrib-empty", "mapboxgl-attrib-empty"), this._updateCompact(), this._editLink = null); - } - _updateCompact() { - this._map.getCanvasContainer().offsetWidth <= 640 || this._compact ? false === this._compact ? this._container.setAttribute("open", "") : this._container.classList.contains("maplibregl-compact") || this._container.classList.contains("maplibregl-attrib-empty") || (this._container.setAttribute("open", ""), this._container.classList.add("maplibregl-compact", "mapboxgl-compact", "maplibregl-compact-show", "mapboxgl-compact-show")) : (this._container.setAttribute("open", ""), this._container.classList.contains("maplibregl-compact") && this._container.classList.remove("maplibregl-compact", "maplibregl-compact-show", "mapboxgl-compact", "mapboxgl-compact-show")); - } - _updateCompactMinimize() { - this._container.classList.contains("maplibregl-compact") && this._container.classList.contains("maplibregl-compact-show") && this._container.classList.remove("maplibregl-compact-show", "mapboxgl-compact-show"); - } - } - class ea { - constructor(e2 = {}) { - this.options = e2, t.bindAll(["_updateCompact"], this); + })).join(" | "); + n2 !== this._attribHTML && (this._attribHTML = n2, t2.length ? (this._innerContainer.innerHTML = n2, this._container.classList.remove("mapboxgl-attrib-empty")) : this._container.classList.add("mapboxgl-attrib-empty"), this._editLink = null); } - getDefaultPosition() { - return "bottom-left"; + }, yr.prototype._updateCompact = function() { + this._map.getCanvasContainer().offsetWidth <= 640 ? this._container.classList.add("mapboxgl-compact") : this._container.classList.remove("mapboxgl-compact", "mapboxgl-compact-show"); + }; + var xr = function() { + t.bindAll(["_updateLogo"], this), t.bindAll(["_updateCompact"], this); + }; + xr.prototype.onAdd = function(t2) { + this._map = t2, this._container = i.create("div", "mapboxgl-ctrl"); + var e2 = i.create("a", "mapboxgl-ctrl-logo"); + return e2.target = "_blank", e2.rel = "noopener nofollow", e2.href = "https://www.mapbox.com/", e2.setAttribute("aria-label", this._map._getUIString("LogoControl.Title")), e2.setAttribute("rel", "noopener nofollow"), this._container.appendChild(e2), this._container.style.display = "none", this._map.on("sourcedata", this._updateLogo), this._updateLogo(), this._map.on("resize", this._updateCompact), this._updateCompact(), this._container; + }, xr.prototype.onRemove = function() { + i.remove(this._container), this._map.off("sourcedata", this._updateLogo), this._map.off("resize", this._updateCompact); + }, xr.prototype.getDefaultPosition = function() { + return "bottom-left"; + }, xr.prototype._updateLogo = function(t2) { + t2 && "metadata" !== t2.sourceDataType || (this._container.style.display = this._logoRequired() ? "block" : "none"); + }, xr.prototype._logoRequired = function() { + if (this._map.style) { + var t2 = this._map.style.sourceCaches; + for (var e2 in t2) + if (t2[e2].getSource().mapbox_logo) + return true; + return false; } - onAdd(t2) { - this._map = t2, this._compact = this.options && this.options.compact, this._container = r.create("div", "maplibregl-ctrl mapboxgl-ctrl"); - const e2 = r.create("a", "maplibregl-ctrl-logo mapboxgl-ctrl-logo"); - return e2.target = "_blank", e2.rel = "noopener nofollow", e2.href = "https://maplibre.org/", e2.setAttribute("aria-label", this._map._getUIString("LogoControl.Title")), e2.setAttribute("rel", "noopener nofollow"), this._container.appendChild(e2), this._container.style.display = "block", this._map.on("resize", this._updateCompact), this._updateCompact(), this._container; + }, xr.prototype._updateCompact = function() { + var t2 = this._container.children; + if (t2.length) { + var e2 = t2[0]; + this._map.getCanvasContainer().offsetWidth < 250 ? e2.classList.add("mapboxgl-compact") : e2.classList.remove("mapboxgl-compact"); } - onRemove() { - r.remove(this._container), this._map.off("resize", this._updateCompact), this._map = void 0, this._compact = void 0; + }; + var br = function() { + this._queue = [], this._id = 0, this._cleared = false, this._currentlyRunning = false; + }; + br.prototype.add = function(t2) { + var e2 = ++this._id; + return this._queue.push({ callback: t2, id: e2, cancelled: false }), e2; + }, br.prototype.remove = function(t2) { + for (var e2 = this._currentlyRunning, i2 = 0, o2 = e2 ? this._queue.concat(e2) : this._queue; i2 < o2.length; i2 += 1) { + var r2 = o2[i2]; + if (r2.id === t2) + return void (r2.cancelled = true); + } + }, br.prototype.run = function(t2) { + void 0 === t2 && (t2 = 0); + var e2 = this._currentlyRunning = this._queue; + this._queue = []; + for (var i2 = 0, o2 = e2; i2 < o2.length; i2 += 1) { + var r2 = o2[i2]; + if (!r2.cancelled && (r2.callback(t2), this._cleared)) + break; } - _updateCompact() { - const t2 = this._container.children; - if (t2.length) { - const e2 = t2[0]; - this._map.getCanvasContainer().offsetWidth <= 640 || this._compact ? false !== this._compact && e2.classList.add("maplibregl-compact", "mapboxgl-compact") : e2.classList.remove("maplibregl-compact", "mapboxgl-compact"); - } - } - } - class ia { - constructor() { - this._queue = [], this._id = 0, this._cleared = false, this._currentlyRunning = false; - } - add(t2) { - const e2 = ++this._id; - return this._queue.push({ callback: t2, id: e2, cancelled: false }), e2; - } - remove(t2) { - const e2 = this._currentlyRunning, i2 = e2 ? this._queue.concat(e2) : this._queue; - for (const e3 of i2) - if (e3.id === t2) - return void (e3.cancelled = true); - } - run(t2 = 0) { - if (this._currentlyRunning) - throw new Error("Attempting to run(), but is already running."); - const e2 = this._currentlyRunning = this._queue; - this._queue = []; - for (const i2 of e2) - if (!i2.cancelled && (i2.callback(t2), this._cleared)) - break; - this._cleared = false, this._currentlyRunning = false; - } - clear() { - this._currentlyRunning && (this._cleared = true), this._queue = []; - } - } - const oa = { "AttributionControl.ToggleAttribution": "Toggle attribution", "AttributionControl.MapFeedback": "Map feedback", "FullscreenControl.Enter": "Enter fullscreen", "FullscreenControl.Exit": "Exit fullscreen", "GeolocateControl.FindMyLocation": "Find my location", "GeolocateControl.LocationNotAvailable": "Location not available", "LogoControl.Title": "Mapbox logo", "NavigationControl.ResetBearing": "Reset bearing to north", "NavigationControl.ZoomIn": "Zoom in", "NavigationControl.ZoomOut": "Zoom out", "ScaleControl.Feet": "ft", "ScaleControl.Meters": "m", "ScaleControl.Kilometers": "km", "ScaleControl.Miles": "mi", "ScaleControl.NauticalMiles": "nm", "TerrainControl.enableTerrain": "Enable terrain", "TerrainControl.disableTerrain": "Disable terrain" }, aa = { center: [0, 0], zoom: 0, bearing: 0, pitch: 0, minZoom: -2, maxZoom: 22, minPitch: 0, maxPitch: 60, interactive: true, scrollZoom: true, boxZoom: true, dragRotate: true, dragPan: true, keyboard: true, doubleClickZoom: true, touchZoomRotate: true, touchPitch: true, cooperativeGestures: void 0, bearingSnap: 7, clickTolerance: 3, pitchWithRotate: true, hash: false, attributionControl: true, maplibreLogo: false, failIfMajorPerformanceCaveat: false, preserveDrawingBuffer: false, trackResize: true, renderWorldCopies: true, refreshExpiredTiles: true, maxTileCacheSize: null, localIdeographFontFamily: "sans-serif", transformRequest: null, fadeDuration: 300, crossSourceCollisions: true }, ra = { showCompass: true, showZoom: true, visualizePitch: false }; - class sa { - constructor(e2, i2, o2 = false) { - this._clickTolerance = 10, this.element = i2, this.mouseRotate = new Co({ clickTolerance: e2.dragRotate._mouseRotate._clickTolerance }), this.map = e2, o2 && (this.mousePitch = new So({ clickTolerance: e2.dragRotate._mousePitch._clickTolerance })), t.bindAll(["mousedown", "mousemove", "mouseup", "touchstart", "touchmove", "touchend", "reset"], this), r.addEventListener(i2, "mousedown", this.mousedown), r.addEventListener(i2, "touchstart", this.touchstart, { passive: false }), r.addEventListener(i2, "touchmove", this.touchmove), r.addEventListener(i2, "touchend", this.touchend), r.addEventListener(i2, "touchcancel", this.reset); - } - down(t2, e2) { - this.mouseRotate.mousedown(t2, e2), this.mousePitch && this.mousePitch.mousedown(t2, e2), r.disableDrag(); - } - move(t2, e2) { - const i2 = this.map, o2 = this.mouseRotate.mousemoveWindow(t2, e2); - if (o2 && o2.bearingDelta && i2.setBearing(i2.getBearing() + o2.bearingDelta), this.mousePitch) { - const o3 = this.mousePitch.mousemoveWindow(t2, e2); - o3 && o3.pitchDelta && i2.setPitch(i2.getPitch() + o3.pitchDelta); - } - } - off() { - const t2 = this.element; - r.removeEventListener(t2, "mousedown", this.mousedown), r.removeEventListener(t2, "touchstart", this.touchstart, { passive: false }), r.removeEventListener(t2, "touchmove", this.touchmove), r.removeEventListener(t2, "touchend", this.touchend), r.removeEventListener(t2, "touchcancel", this.reset), this.offTemp(); - } - offTemp() { - r.enableDrag(), r.removeEventListener(window, "mousemove", this.mousemove), r.removeEventListener(window, "mouseup", this.mouseup); - } - mousedown(e2) { - this.down(t.extend({}, e2, { ctrlKey: true, preventDefault: () => e2.preventDefault() }), r.mousePos(this.element, e2)), r.addEventListener(window, "mousemove", this.mousemove), r.addEventListener(window, "mouseup", this.mouseup); - } - mousemove(t2) { - this.move(t2, r.mousePos(this.element, t2)); - } - mouseup(t2) { - this.mouseRotate.mouseupWindow(t2), this.mousePitch && this.mousePitch.mouseupWindow(t2), this.offTemp(); - } - touchstart(t2) { - 1 !== t2.targetTouches.length ? this.reset() : (this._startPos = this._lastPos = r.touchPos(this.element, t2.targetTouches)[0], this.down({ type: "mousedown", button: 0, ctrlKey: true, preventDefault: () => t2.preventDefault() }, this._startPos)); - } - touchmove(t2) { - 1 !== t2.targetTouches.length ? this.reset() : (this._lastPos = r.touchPos(this.element, t2.targetTouches)[0], this.move({ preventDefault: () => t2.preventDefault() }, this._lastPos)); - } - touchend(t2) { - 0 === t2.targetTouches.length && this._startPos && this._lastPos && this._startPos.dist(this._lastPos) < this._clickTolerance && this.element.click(), this.reset(); - } - reset() { - this.mouseRotate.reset(), this.mousePitch && this.mousePitch.reset(), delete this._startPos, delete this._lastPos, this.offTemp(); - } - } - function na(e2, i2, o2) { - if (e2 = new t.LngLat(e2.lng, e2.lat), i2) { - const a2 = new t.LngLat(e2.lng - 360, e2.lat), r2 = new t.LngLat(e2.lng + 360, e2.lat), s2 = o2.locationPoint(e2).distSqr(i2); - o2.locationPoint(a2).distSqr(i2) < s2 ? e2 = a2 : o2.locationPoint(r2).distSqr(i2) < s2 && (e2 = r2); - } - for (; Math.abs(e2.lng - o2.center.lng) > 180; ) { - const t2 = o2.locationPoint(e2); - if (t2.x >= 0 && t2.y >= 0 && t2.x <= o2.width && t2.y <= o2.height) - break; - e2.lng > o2.center.lng ? e2.lng -= 360 : e2.lng += 360; - } - return e2; - } - const la = { center: "translate(-50%,-50%)", top: "translate(-50%,0)", "top-left": "translate(0,0)", "top-right": "translate(-100%,0)", bottom: "translate(-50%,-100%)", "bottom-left": "translate(0,-100%)", "bottom-right": "translate(-100%,-100%)", left: "translate(0,-50%)", right: "translate(-100%,-50%)" }; - function ca(t2, e2, i2) { - const o2 = t2.classList; - for (const t3 in la) - o2.remove(`maplibregl-${i2}-anchor-${t3}`, `mapboxgl-${i2}-anchor-${t3}`); - o2.add(`maplibregl-${i2}-anchor-${e2}`, `mapboxgl-${i2}-anchor-${e2}`); - } - class ha extends t.Evented { - constructor(e2, i2) { - if (super(), (e2 instanceof HTMLElement || i2) && (e2 = t.extend({ element: e2 }, i2)), t.bindAll(["_update", "_onMove", "_onUp", "_addDragHandler", "_onMapClick", "_onKeyPress"], this), this._anchor = e2 && e2.anchor || "center", this._color = e2 && e2.color || "#3FB1CE", this._scale = e2 && e2.scale || 1, this._draggable = e2 && e2.draggable || false, this._clickTolerance = e2 && e2.clickTolerance || 0, this._isDragging = false, this._state = "inactive", this._rotation = e2 && e2.rotation || 0, this._rotationAlignment = e2 && e2.rotationAlignment || "auto", this._pitchAlignment = e2 && e2.pitchAlignment && "auto" !== e2.pitchAlignment ? e2.pitchAlignment : this._rotationAlignment, e2 && e2.element) - this._element = e2.element, this._offset = t.pointGeometry.convert(e2 && e2.offset || [0, 0]); - else { - this._defaultMarker = true, this._element = r.create("div"), this._element.setAttribute("aria-label", "Map marker"); - const i3 = r.createNS("http://www.w3.org/2000/svg", "svg"), o2 = 41, a2 = 27; - i3.setAttributeNS(null, "display", "block"), i3.setAttributeNS(null, "height", `${o2}px`), i3.setAttributeNS(null, "width", `${a2}px`), i3.setAttributeNS(null, "viewBox", `0 0 ${a2} ${o2}`); - const s2 = r.createNS("http://www.w3.org/2000/svg", "g"); - s2.setAttributeNS(null, "stroke", "none"), s2.setAttributeNS(null, "stroke-width", "1"), s2.setAttributeNS(null, "fill", "none"), s2.setAttributeNS(null, "fill-rule", "evenodd"); - const n2 = r.createNS("http://www.w3.org/2000/svg", "g"); - n2.setAttributeNS(null, "fill-rule", "nonzero"); - const l2 = r.createNS("http://www.w3.org/2000/svg", "g"); - l2.setAttributeNS(null, "transform", "translate(3.0, 29.0)"), l2.setAttributeNS(null, "fill", "#000000"); - const c3 = [{ rx: "10.5", ry: "5.25002273" }, { rx: "10.5", ry: "5.25002273" }, { rx: "9.5", ry: "4.77275007" }, { rx: "8.5", ry: "4.29549936" }, { rx: "7.5", ry: "3.81822308" }, { rx: "6.5", ry: "3.34094679" }, { rx: "5.5", ry: "2.86367051" }, { rx: "4.5", ry: "2.38636864" }]; - for (const t2 of c3) { - const e3 = r.createNS("http://www.w3.org/2000/svg", "ellipse"); - e3.setAttributeNS(null, "opacity", "0.04"), e3.setAttributeNS(null, "cx", "10.5"), e3.setAttributeNS(null, "cy", "5.80029008"), e3.setAttributeNS(null, "rx", t2.rx), e3.setAttributeNS(null, "ry", t2.ry), l2.appendChild(e3); - } - const h3 = r.createNS("http://www.w3.org/2000/svg", "g"); - h3.setAttributeNS(null, "fill", this._color); - const u2 = r.createNS("http://www.w3.org/2000/svg", "path"); - u2.setAttributeNS(null, "d", "M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"), h3.appendChild(u2); - const d2 = r.createNS("http://www.w3.org/2000/svg", "g"); - d2.setAttributeNS(null, "opacity", "0.25"), d2.setAttributeNS(null, "fill", "#000000"); - const m2 = r.createNS("http://www.w3.org/2000/svg", "path"); - m2.setAttributeNS(null, "d", "M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"), d2.appendChild(m2); - const _24 = r.createNS("http://www.w3.org/2000/svg", "g"); - _24.setAttributeNS(null, "transform", "translate(6.0, 7.0)"), _24.setAttributeNS(null, "fill", "#FFFFFF"); - const p3 = r.createNS("http://www.w3.org/2000/svg", "g"); - p3.setAttributeNS(null, "transform", "translate(8.0, 8.0)"); - const f2 = r.createNS("http://www.w3.org/2000/svg", "circle"); - f2.setAttributeNS(null, "fill", "#000000"), f2.setAttributeNS(null, "opacity", "0.25"), f2.setAttributeNS(null, "cx", "5.5"), f2.setAttributeNS(null, "cy", "5.5"), f2.setAttributeNS(null, "r", "5.4999962"); - const g2 = r.createNS("http://www.w3.org/2000/svg", "circle"); - g2.setAttributeNS(null, "fill", "#FFFFFF"), g2.setAttributeNS(null, "cx", "5.5"), g2.setAttributeNS(null, "cy", "5.5"), g2.setAttributeNS(null, "r", "5.4999962"), p3.appendChild(f2), p3.appendChild(g2), n2.appendChild(l2), n2.appendChild(h3), n2.appendChild(d2), n2.appendChild(_24), n2.appendChild(p3), i3.appendChild(n2), i3.setAttributeNS(null, "height", o2 * this._scale + "px"), i3.setAttributeNS(null, "width", a2 * this._scale + "px"), this._element.appendChild(i3), this._offset = t.pointGeometry.convert(e2 && e2.offset || [0, -14]); - } - this._element.classList.add("maplibregl-marker", "mapboxgl-marker"), this._element.addEventListener("dragstart", (t2) => { - t2.preventDefault(); - }), this._element.addEventListener("mousedown", (t2) => { - t2.preventDefault(); - }), ca(this._element, this._anchor, "marker"), this._popup = null; - } - addTo(t2) { - return this.remove(), this._map = t2, t2.getCanvasContainer().appendChild(this._element), t2.on("move", this._update), t2.on("moveend", this._update), this.setDraggable(this._draggable), this._update(), this._map.on("click", this._onMapClick), this; - } - remove() { - return this._opacityTimeout && (clearTimeout(this._opacityTimeout), delete this._opacityTimeout), this._map && (this._map.off("click", this._onMapClick), this._map.off("move", this._update), this._map.off("moveend", this._update), this._map.off("mousedown", this._addDragHandler), this._map.off("touchstart", this._addDragHandler), this._map.off("mouseup", this._onUp), this._map.off("touchend", this._onUp), this._map.off("mousemove", this._onMove), this._map.off("touchmove", this._onMove), delete this._map), r.remove(this._element), this._popup && this._popup.remove(), this; - } - getLngLat() { - return this._lngLat; - } - setLngLat(e2) { - return this._lngLat = t.LngLat.convert(e2), this._pos = null, this._popup && this._popup.setLngLat(this._lngLat), this._update(), this; - } - getElement() { - return this._element; - } - setPopup(t2) { - if (this._popup && (this._popup.remove(), this._popup = null, this._element.removeEventListener("keypress", this._onKeyPress), this._originalTabIndex || this._element.removeAttribute("tabindex")), t2) { - if (!("offset" in t2.options)) { - const e2 = 38.1, i2 = 13.5, o2 = Math.sqrt(Math.pow(i2, 2) / 2); - t2.options.offset = this._defaultMarker ? { top: [0, 0], "top-left": [0, 0], "top-right": [0, 0], bottom: [0, -e2], "bottom-left": [o2, -1 * (e2 - i2 + o2)], "bottom-right": [-o2, -1 * (e2 - i2 + o2)], left: [i2, -1 * (e2 - i2)], right: [-i2, -1 * (e2 - i2)] } : this._offset; - } - this._popup = t2, this._lngLat && this._popup.setLngLat(this._lngLat), this._originalTabIndex = this._element.getAttribute("tabindex"), this._originalTabIndex || this._element.setAttribute("tabindex", "0"), this._element.addEventListener("keypress", this._onKeyPress); - } - return this; - } - _onKeyPress(t2) { - const e2 = t2.code, i2 = t2.charCode || t2.keyCode; - "Space" !== e2 && "Enter" !== e2 && 32 !== i2 && 13 !== i2 || this.togglePopup(); - } - _onMapClick(t2) { - const e2 = t2.originalEvent.target, i2 = this._element; - this._popup && (e2 === i2 || i2.contains(e2)) && this.togglePopup(); - } - getPopup() { - return this._popup; - } - togglePopup() { - const t2 = this._popup; - return t2 ? (t2.isOpen() ? t2.remove() : t2.addTo(this._map), this) : this; - } - _update(t2) { - if (!this._map) - return; - this._map.transform.renderWorldCopies && (this._lngLat = na(this._lngLat, this._pos, this._map.transform)), this._pos = this._map.project(this._lngLat)._add(this._offset); - let e2 = ""; - "viewport" === this._rotationAlignment || "auto" === this._rotationAlignment ? e2 = `rotateZ(${this._rotation}deg)` : "map" === this._rotationAlignment && (e2 = `rotateZ(${this._rotation - this._map.getBearing()}deg)`); - let i2 = ""; - "viewport" === this._pitchAlignment || "auto" === this._pitchAlignment ? i2 = "rotateX(0deg)" : "map" === this._pitchAlignment && (i2 = `rotateX(${this._map.getPitch()}deg)`), t2 && "moveend" !== t2.type || (this._pos = this._pos.round()), r.setTransform(this._element, `${la[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${i2} ${e2}`), this._map.style && this._map.style.terrain && !this._opacityTimeout && (this._opacityTimeout = setTimeout(() => { - const t3 = this._map.unproject(this._pos), e3 = 40075016686e-3 * Math.abs(Math.cos(this._lngLat.lat * Math.PI / 180)) / Math.pow(2, this._map.transform.tileZoom + 8); - this._element.style.opacity = t3.distanceTo(this._lngLat) > 20 * e3 ? "0.2" : "1.0", this._opacityTimeout = null; - }, 100)); - } - getOffset() { - return this._offset; - } - setOffset(e2) { - return this._offset = t.pointGeometry.convert(e2), this._update(), this; - } - _onMove(e2) { - if (!this._isDragging) { - const t2 = this._clickTolerance || this._map._clickTolerance; - this._isDragging = e2.point.dist(this._pointerdownPos) >= t2; - } - this._isDragging && (this._pos = e2.point.sub(this._positionDelta), this._lngLat = this._map.unproject(this._pos), this.setLngLat(this._lngLat), this._element.style.pointerEvents = "none", "pending" === this._state && (this._state = "active", this.fire(new t.Event("dragstart"))), this.fire(new t.Event("drag"))); - } - _onUp() { - this._element.style.pointerEvents = "auto", this._positionDelta = null, this._pointerdownPos = null, this._isDragging = false, this._map.off("mousemove", this._onMove), this._map.off("touchmove", this._onMove), "active" === this._state && this.fire(new t.Event("dragend")), this._state = "inactive"; - } - _addDragHandler(t2) { - this._element.contains(t2.originalEvent.target) && (t2.preventDefault(), this._positionDelta = t2.point.sub(this._pos).add(this._offset), this._pointerdownPos = t2.point, this._state = "pending", this._map.on("mousemove", this._onMove), this._map.on("touchmove", this._onMove), this._map.once("mouseup", this._onUp), this._map.once("touchend", this._onUp)); - } - setDraggable(t2) { - return this._draggable = !!t2, this._map && (t2 ? (this._map.on("mousedown", this._addDragHandler), this._map.on("touchstart", this._addDragHandler)) : (this._map.off("mousedown", this._addDragHandler), this._map.off("touchstart", this._addDragHandler))), this; - } - isDraggable() { - return this._draggable; - } - setRotation(t2) { - return this._rotation = t2 || 0, this._update(), this; - } - getRotation() { - return this._rotation; - } - setRotationAlignment(t2) { - return this._rotationAlignment = t2 || "auto", this._update(), this; - } - getRotationAlignment() { - return this._rotationAlignment; - } - setPitchAlignment(t2) { - return this._pitchAlignment = t2 && "auto" !== t2 ? t2 : this._rotationAlignment, this._update(), this; - } - getPitchAlignment() { - return this._pitchAlignment; - } - } - const ua = { positionOptions: { enableHighAccuracy: false, maximumAge: 0, timeout: 6e3 }, fitBoundsOptions: { maxZoom: 15 }, trackUserLocation: false, showAccuracyCircle: true, showUserLocation: true }; - let da, ma = 0, _a = false; - const pa = { maxWidth: 100, unit: "metric" }; - function fa(t2, e2, i2) { - const o2 = i2 && i2.maxWidth || 100, a2 = t2._container.clientHeight / 2, r2 = t2.unproject([0, a2]), s2 = t2.unproject([o2, a2]), n2 = r2.distanceTo(s2); - if (i2 && "imperial" === i2.unit) { - const i3 = 3.2808 * n2; - i3 > 5280 ? ga(e2, o2, i3 / 5280, t2._getUIString("ScaleControl.Miles")) : ga(e2, o2, i3, t2._getUIString("ScaleControl.Feet")); - } else - i2 && "nautical" === i2.unit ? ga(e2, o2, n2 / 1852, t2._getUIString("ScaleControl.NauticalMiles")) : n2 >= 1e3 ? ga(e2, o2, n2 / 1e3, t2._getUIString("ScaleControl.Kilometers")) : ga(e2, o2, n2, t2._getUIString("ScaleControl.Meters")); - } - function ga(t2, e2, i2, o2) { - const a2 = function(t3) { - const e3 = Math.pow(10, `${Math.floor(t3)}`.length - 1); - let i3 = t3 / e3; - return i3 = i3 >= 10 ? 10 : i3 >= 5 ? 5 : i3 >= 3 ? 3 : i3 >= 2 ? 2 : i3 >= 1 ? 1 : function(t4) { - const e4 = Math.pow(10, Math.ceil(-Math.log(t4) / Math.LN10)); - return Math.round(t4 * e4) / e4; - }(i3), e3 * i3; - }(i2); - t2.style.width = e2 * (a2 / i2) + "px", t2.innerHTML = `${a2} ${o2}`; - } - const xa = { closeButton: true, closeOnClick: true, focusAfterOpen: true, className: "", maxWidth: "240px" }, va = ["a[href]", "[tabindex]:not([tabindex='-1'])", "[contenteditable]:not([contenteditable='false'])", "button:not([disabled])", "input:not([disabled])", "select:not([disabled])", "textarea:not([disabled])"].join(", "); - function ya(e2) { - if (e2) { - if ("number" == typeof e2) { - const i2 = Math.round(Math.sqrt(0.5 * Math.pow(e2, 2))); - return { center: new t.pointGeometry(0, 0), top: new t.pointGeometry(0, e2), "top-left": new t.pointGeometry(i2, i2), "top-right": new t.pointGeometry(-i2, i2), bottom: new t.pointGeometry(0, -e2), "bottom-left": new t.pointGeometry(i2, -i2), "bottom-right": new t.pointGeometry(-i2, -i2), left: new t.pointGeometry(e2, 0), right: new t.pointGeometry(-e2, 0) }; - } - if (e2 instanceof t.pointGeometry || Array.isArray(e2)) { - const i2 = t.pointGeometry.convert(e2); - return { center: i2, top: i2, "top-left": i2, "top-right": i2, bottom: i2, "bottom-left": i2, "bottom-right": i2, left: i2, right: i2 }; - } - return { center: t.pointGeometry.convert(e2.center || [0, 0]), top: t.pointGeometry.convert(e2.top || [0, 0]), "top-left": t.pointGeometry.convert(e2["top-left"] || [0, 0]), "top-right": t.pointGeometry.convert(e2["top-right"] || [0, 0]), bottom: t.pointGeometry.convert(e2.bottom || [0, 0]), "bottom-left": t.pointGeometry.convert(e2["bottom-left"] || [0, 0]), "bottom-right": t.pointGeometry.convert(e2["bottom-right"] || [0, 0]), left: t.pointGeometry.convert(e2.left || [0, 0]), right: t.pointGeometry.convert(e2.right || [0, 0]) }; - } - return ya(new t.pointGeometry(0, 0)); - } - const ba = { supported: e, setRTLTextPlugin: t.setRTLTextPlugin, getRTLTextPluginStatus: t.getRTLTextPluginStatus, Map: class extends Qo { - constructor(e2) { - var i2; - if (t.PerformanceUtils.mark(t.PerformanceMarkers.create), null != (e2 = t.extend({}, aa, e2)).minZoom && null != e2.maxZoom && e2.minZoom > e2.maxZoom) - throw new Error("maxZoom must be greater than or equal to minZoom"); - if (null != e2.minPitch && null != e2.maxPitch && e2.minPitch > e2.maxPitch) - throw new Error("maxPitch must be greater than or equal to minPitch"); - if (null != e2.minPitch && e2.minPitch < 0) - throw new Error("minPitch must be greater than or equal to 0"); - if (null != e2.maxPitch && e2.maxPitch > 85) - throw new Error("maxPitch must be less than or equal to 85"); - if (super(new io(e2.minZoom, e2.maxZoom, e2.minPitch, e2.maxPitch, e2.renderWorldCopies), { bearingSnap: e2.bearingSnap }), this._interactive = e2.interactive, this._cooperativeGestures = e2.cooperativeGestures, this._maxTileCacheSize = e2.maxTileCacheSize, this._failIfMajorPerformanceCaveat = e2.failIfMajorPerformanceCaveat, this._preserveDrawingBuffer = e2.preserveDrawingBuffer, this._antialias = e2.antialias, this._trackResize = e2.trackResize, this._bearingSnap = e2.bearingSnap, this._refreshExpiredTiles = e2.refreshExpiredTiles, this._fadeDuration = e2.fadeDuration, this._crossSourceCollisions = e2.crossSourceCollisions, this._crossFadingFactor = 1, this._collectResourceTiming = e2.collectResourceTiming, this._renderTaskQueue = new ia(), this._controls = [], this._mapId = t.uniqueId(), this._locale = t.extend({}, oa, e2.locale), this._clickTolerance = e2.clickTolerance, this._pixelRatio = null !== (i2 = e2.pixelRatio) && void 0 !== i2 ? i2 : devicePixelRatio, this._requestManager = new s(e2.transformRequest), "string" == typeof e2.container) { - if (this._container = document.getElementById(e2.container), !this._container) - throw new Error(`Container '${e2.container}' not found.`); - } else { - if (!(e2.container instanceof HTMLElement)) - throw new Error("Invalid type: 'container' must be a String or HTMLElement."); - this._container = e2.container; + this._cleared = false, this._currentlyRunning = false; + }, br.prototype.clear = function() { + this._currentlyRunning && (this._cleared = true), this._queue = []; + }; + var wr = { "AttributionControl.ToggleAttribution": "Toggle attribution", "AttributionControl.MapFeedback": "Map feedback", "FullscreenControl.Enter": "Enter fullscreen", "FullscreenControl.Exit": "Exit fullscreen", "GeolocateControl.FindMyLocation": "Find my location", "GeolocateControl.LocationNotAvailable": "Location not available", "LogoControl.Title": "Mapbox logo", "NavigationControl.ResetBearing": "Reset bearing to north", "NavigationControl.ZoomIn": "Zoom in", "NavigationControl.ZoomOut": "Zoom out", "ScaleControl.Feet": "ft", "ScaleControl.Meters": "m", "ScaleControl.Kilometers": "km", "ScaleControl.Miles": "mi", "ScaleControl.NauticalMiles": "nm" }, Tr = t.window.HTMLImageElement, Er = t.window.HTMLElement, Ir = t.window.ImageBitmap, Pr = { center: [0, 0], zoom: 0, bearing: 0, pitch: 0, minZoom: -2, maxZoom: 22, minPitch: 0, maxPitch: 60, interactive: true, scrollZoom: true, boxZoom: true, dragRotate: true, dragPan: true, keyboard: true, doubleClickZoom: true, touchZoomRotate: true, touchPitch: true, bearingSnap: 7, clickTolerance: 3, pitchWithRotate: true, hash: false, attributionControl: true, failIfMajorPerformanceCaveat: false, preserveDrawingBuffer: false, trackResize: true, renderWorldCopies: true, refreshExpiredTiles: true, maxTileCacheSize: null, localIdeographFontFamily: "sans-serif", transformRequest: null, accessToken: null, fadeDuration: 300, crossSourceCollisions: true }, Sr = function(o2) { + function r2(e2) { + var i2 = this; + if (null != (e2 = t.extend({}, Pr, e2)).minZoom && null != e2.maxZoom && e2.minZoom > e2.maxZoom) + throw new Error("maxZoom must be greater than or equal to minZoom"); + if (null != e2.minPitch && null != e2.maxPitch && e2.minPitch > e2.maxPitch) + throw new Error("maxPitch must be greater than or equal to minPitch"); + if (null != e2.minPitch && e2.minPitch < 0) + throw new Error("minPitch must be greater than or equal to 0"); + if (null != e2.maxPitch && e2.maxPitch > 60) + throw new Error("maxPitch must be less than or equal to 60"); + var r3 = new To(e2.minZoom, e2.maxZoom, e2.minPitch, e2.maxPitch, e2.renderWorldCopies); + if (o2.call(this, r3, e2), this._interactive = e2.interactive, this._maxTileCacheSize = e2.maxTileCacheSize, this._failIfMajorPerformanceCaveat = e2.failIfMajorPerformanceCaveat, this._preserveDrawingBuffer = e2.preserveDrawingBuffer, this._antialias = e2.antialias, this._trackResize = e2.trackResize, this._bearingSnap = e2.bearingSnap, this._refreshExpiredTiles = e2.refreshExpiredTiles, this._fadeDuration = e2.fadeDuration, this._crossSourceCollisions = e2.crossSourceCollisions, this._crossFadingFactor = 1, this._collectResourceTiming = e2.collectResourceTiming, this._renderTaskQueue = new br(), this._controls = [], this._mapId = t.uniqueId(), this._locale = t.extend({}, wr, e2.locale), this._clickTolerance = e2.clickTolerance, this._requestManager = new t.RequestManager(e2.transformRequest, e2.accessToken), "string" == typeof e2.container) { + if (this._container = t.window.document.getElementById(e2.container), !this._container) + throw new Error("Container '" + e2.container + "' not found."); + } else { + if (!(e2.container instanceof Er)) + throw new Error("Invalid type: 'container' must be a String or HTMLElement."); + this._container = e2.container; } if (e2.maxBounds && this.setMaxBounds(e2.maxBounds), t.bindAll(["_onWindowOnline", "_onWindowResize", "_onMapScroll", "_contextLost", "_contextRestored"], this), this._setupContainer(), this._setupPainter(), void 0 === this.painter) throw new Error("Failed to initialize WebGL."); - this.on("move", () => this._update(false)), this.on("moveend", () => this._update(false)), this.on("zoom", () => this._update(true)), this.on("terrain", () => { - this.painter.terrainFacilitator.dirty = true, this._update(true); - }), "undefined" != typeof window && (addEventListener("online", this._onWindowOnline, false), addEventListener("resize", this._onWindowResize, false), addEventListener("orientationchange", this._onWindowResize, false)), this.handlers = new Yo(this, e2), this._cooperativeGestures && this._setupCooperativeGestures(), this._hash = e2.hash && new oo("string" == typeof e2.hash && e2.hash || void 0).addTo(this), this._hash && this._hash._onHashChange() || (this.jumpTo({ center: e2.center, zoom: e2.zoom, bearing: e2.bearing, pitch: e2.pitch }), e2.bounds && (this.resize(), this.fitBounds(e2.bounds, t.extend({}, e2.fitBoundsOptions, { duration: 0 })))), this.resize(), this._localIdeographFontFamily = e2.localIdeographFontFamily, e2.style && this.setStyle(e2.style, { localIdeographFontFamily: e2.localIdeographFontFamily }), e2.attributionControl && this.addControl(new ta({ customAttribution: e2.customAttribution })), e2.maplibreLogo && this.addControl(new ea(), e2.logoPosition), this.on("style.load", () => { - this.transform.unmodified && this.jumpTo(this.style.stylesheet); - }), this.on("data", (e3) => { - this._update("style" === e3.dataType), this.fire(new t.Event(`${e3.dataType}data`, e3)); - }), this.on("dataloading", (e3) => { - this.fire(new t.Event(`${e3.dataType}dataloading`, e3)); - }), this.on("dataabort", (e3) => { - this.fire(new t.Event("sourcedataabort", e3)); + this.on("move", function() { + return i2._update(false); + }), this.on("moveend", function() { + return i2._update(false); + }), this.on("zoom", function() { + return i2._update(true); + }), void 0 !== t.window && (t.window.addEventListener("online", this._onWindowOnline, false), t.window.addEventListener("resize", this._onWindowResize, false), t.window.addEventListener("orientationchange", this._onWindowResize, false)), this.handlers = new gr(this, e2), this._hash = e2.hash && new Io("string" == typeof e2.hash && e2.hash || void 0).addTo(this), this._hash && this._hash._onHashChange() || (this.jumpTo({ center: e2.center, zoom: e2.zoom, bearing: e2.bearing, pitch: e2.pitch }), e2.bounds && (this.resize(), this.fitBounds(e2.bounds, t.extend({}, e2.fitBoundsOptions, { duration: 0 })))), this.resize(), this._localIdeographFontFamily = e2.localIdeographFontFamily, e2.style && this.setStyle(e2.style, { localIdeographFontFamily: e2.localIdeographFontFamily }), e2.attributionControl && this.addControl(new yr({ customAttribution: e2.customAttribution })), this.addControl(new xr(), e2.logoPosition), this.on("style.load", function() { + i2.transform.unmodified && i2.jumpTo(i2.style.stylesheet); + }), this.on("data", function(e3) { + i2._update("style" === e3.dataType), i2.fire(new t.Event(e3.dataType + "data", e3)); + }), this.on("dataloading", function(e3) { + i2.fire(new t.Event(e3.dataType + "dataloading", e3)); }); } - _getMapId() { + o2 && (r2.__proto__ = o2), (r2.prototype = Object.create(o2 && o2.prototype)).constructor = r2; + var a2 = { showTileBoundaries: { configurable: true }, showPadding: { configurable: true }, showCollisionBoxes: { configurable: true }, showOverdrawInspector: { configurable: true }, repaint: { configurable: true }, vertices: { configurable: true }, version: { configurable: true } }; + return r2.prototype._getMapId = function() { return this._mapId; - } - addControl(e2, i2) { + }, r2.prototype.addControl = function(e2, i2) { if (void 0 === i2 && (i2 = e2.getDefaultPosition ? e2.getDefaultPosition() : "top-right"), !e2 || !e2.onAdd) return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods."))); - const o2 = e2.onAdd(this); + var o3 = e2.onAdd(this); this._controls.push(e2); - const a2 = this._controlPositions[i2]; - return -1 !== i2.indexOf("bottom") ? a2.insertBefore(o2, a2.firstChild) : a2.appendChild(o2), this; - } - removeControl(e2) { + var r3 = this._controlPositions[i2]; + return -1 !== i2.indexOf("bottom") ? r3.insertBefore(o3, r3.firstChild) : r3.appendChild(o3), this; + }, r2.prototype.removeControl = function(e2) { if (!e2 || !e2.onRemove) return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods."))); - const i2 = this._controls.indexOf(e2); + var i2 = this._controls.indexOf(e2); return i2 > -1 && this._controls.splice(i2, 1), e2.onRemove(this), this; - } - hasControl(t2) { + }, r2.prototype.hasControl = function(t2) { return this._controls.indexOf(t2) > -1; - } - calculateCameraOptionsFromTo(t2, e2, i2, o2) { - return null == o2 && this.style.terrain && (o2 = this.transform.getElevation(i2, this.style.terrain)), super.calculateCameraOptionsFromTo(t2, e2, i2, o2); - } - resize(e2) { - const i2 = this._containerDimensions(), o2 = i2[0], a2 = i2[1]; - this._resizeCanvas(o2, a2, this.getPixelRatio()), this.transform.resize(o2, a2), this.painter.resize(o2, a2, this.getPixelRatio()); - const r2 = !this._moving; - return r2 && (this.stop(), this.fire(new t.Event("movestart", e2)).fire(new t.Event("move", e2))), this.fire(new t.Event("resize", e2)), r2 && this.fire(new t.Event("moveend", e2)), this; - } - getPixelRatio() { - return this._pixelRatio; - } - setPixelRatio(t2) { - const [e2, i2] = this._containerDimensions(); - this._pixelRatio = t2, this._resizeCanvas(e2, i2, t2), this.painter.resize(e2, i2, t2); - } - getBounds() { + }, r2.prototype.resize = function(e2) { + var i2 = this._containerDimensions(), o3 = i2[0], r3 = i2[1]; + if (o3 === this.transform.width && r3 === this.transform.height) + return this; + this._resizeCanvas(o3, r3), this.transform.resize(o3, r3), this.painter.resize(o3, r3); + var a3 = !this._moving; + return a3 && this.fire(new t.Event("movestart", e2)).fire(new t.Event("move", e2)), this.fire(new t.Event("resize", e2)), a3 && this.fire(new t.Event("moveend", e2)), this; + }, r2.prototype.getBounds = function() { return this.transform.getBounds(); - } - getMaxBounds() { + }, r2.prototype.getMaxBounds = function() { return this.transform.getMaxBounds(); - } - setMaxBounds(e2) { + }, r2.prototype.setMaxBounds = function(e2) { return this.transform.setMaxBounds(t.LngLatBounds.convert(e2)), this._update(); - } - setMinZoom(t2) { + }, r2.prototype.setMinZoom = function(t2) { if ((t2 = null == t2 ? -2 : t2) >= -2 && t2 <= this.transform.maxZoom) return this.transform.minZoom = t2, this._update(), this.getZoom() < t2 && this.setZoom(t2), this; throw new Error("minZoom must be between -2 and the current maxZoom, inclusive"); - } - getMinZoom() { + }, r2.prototype.getMinZoom = function() { return this.transform.minZoom; - } - setMaxZoom(t2) { + }, r2.prototype.setMaxZoom = function(t2) { if ((t2 = null == t2 ? 22 : t2) >= this.transform.minZoom) return this.transform.maxZoom = t2, this._update(), this.getZoom() > t2 && this.setZoom(t2), this; throw new Error("maxZoom must be greater than the current minZoom"); - } - getMaxZoom() { + }, r2.prototype.getMaxZoom = function() { return this.transform.maxZoom; - } - setMinPitch(t2) { + }, r2.prototype.setMinPitch = function(t2) { if ((t2 = null == t2 ? 0 : t2) < 0) throw new Error("minPitch must be greater than or equal to 0"); if (t2 >= 0 && t2 <= this.transform.maxPitch) return this.transform.minPitch = t2, this._update(), this.getPitch() < t2 && this.setPitch(t2), this; throw new Error("minPitch must be between 0 and the current maxPitch, inclusive"); - } - getMinPitch() { + }, r2.prototype.getMinPitch = function() { return this.transform.minPitch; - } - setMaxPitch(t2) { - if ((t2 = null == t2 ? 60 : t2) > 85) - throw new Error("maxPitch must be less than or equal to 85"); + }, r2.prototype.setMaxPitch = function(t2) { + if ((t2 = null == t2 ? 60 : t2) > 60) + throw new Error("maxPitch must be less than or equal to 60"); if (t2 >= this.transform.minPitch) return this.transform.maxPitch = t2, this._update(), this.getPitch() > t2 && this.setPitch(t2), this; throw new Error("maxPitch must be greater than the current minPitch"); - } - getMaxPitch() { + }, r2.prototype.getMaxPitch = function() { return this.transform.maxPitch; - } - getRenderWorldCopies() { + }, r2.prototype.getRenderWorldCopies = function() { return this.transform.renderWorldCopies; - } - setRenderWorldCopies(t2) { + }, r2.prototype.setRenderWorldCopies = function(t2) { return this.transform.renderWorldCopies = t2, this._update(); - } - project(e2) { - return this.transform.locationPoint(t.LngLat.convert(e2), this.style && this.style.terrain); - } - unproject(e2) { - return this.transform.pointLocation(t.pointGeometry.convert(e2), this.style && this.style.terrain); - } - isMoving() { + }, r2.prototype.project = function(e2) { + return this.transform.locationPoint(t.LngLat.convert(e2)); + }, r2.prototype.unproject = function(e2) { + return this.transform.pointLocation(t.Point.convert(e2)); + }, r2.prototype.isMoving = function() { return this._moving || this.handlers.isMoving(); - } - isZooming() { + }, r2.prototype.isZooming = function() { return this._zooming || this.handlers.isZooming(); - } - isRotating() { + }, r2.prototype.isRotating = function() { return this._rotating || this.handlers.isRotating(); - } - _createDelegatedListener(t2, e2, i2) { + }, r2.prototype._createDelegatedListener = function(t2, e2, i2) { + var o3, r3 = this; if ("mouseenter" === t2 || "mouseover" === t2) { - let o2 = false; - const a2 = (a3) => { - const r2 = this.getLayer(e2) ? this.queryRenderedFeatures(a3.point, { layers: [e2] }) : []; - r2.length ? o2 || (o2 = true, i2.call(this, new mo(t2, this, a3.originalEvent, { features: r2 }))) : o2 = false; - }; - return { layer: e2, listener: i2, delegates: { mousemove: a2, mouseout: () => { - o2 = false; + var a3 = false; + return { layer: e2, listener: i2, delegates: { mousemove: function(o4) { + var n3 = r3.getLayer(e2) ? r3.queryRenderedFeatures(o4.point, { layers: [e2] }) : []; + n3.length ? a3 || (a3 = true, i2.call(r3, new Ro(t2, r3, o4.originalEvent, { features: n3 }))) : a3 = false; + }, mouseout: function() { + a3 = false; } } }; } if ("mouseleave" === t2 || "mouseout" === t2) { - let o2 = false; - const a2 = (a3) => { - (this.getLayer(e2) ? this.queryRenderedFeatures(a3.point, { layers: [e2] }) : []).length ? o2 = true : o2 && (o2 = false, i2.call(this, new mo(t2, this, a3.originalEvent))); - }, r2 = (e3) => { - o2 && (o2 = false, i2.call(this, new mo(t2, this, e3.originalEvent))); - }; - return { layer: e2, listener: i2, delegates: { mousemove: a2, mouseout: r2 } }; - } - { - const o2 = (t3) => { - const o3 = this.getLayer(e2) ? this.queryRenderedFeatures(t3.point, { layers: [e2] }) : []; - o3.length && (t3.features = o3, i2.call(this, t3), delete t3.features); - }; - return { layer: e2, listener: i2, delegates: { [t2]: o2 } }; + var n2 = false; + return { layer: e2, listener: i2, delegates: { mousemove: function(o4) { + (r3.getLayer(e2) ? r3.queryRenderedFeatures(o4.point, { layers: [e2] }) : []).length ? n2 = true : n2 && (n2 = false, i2.call(r3, new Ro(t2, r3, o4.originalEvent))); + }, mouseout: function(e3) { + n2 && (n2 = false, i2.call(r3, new Ro(t2, r3, e3.originalEvent))); + } } }; } - } - on(t2, e2, i2) { + return { layer: e2, listener: i2, delegates: (o3 = {}, o3[t2] = function(t3) { + var o4 = r3.getLayer(e2) ? r3.queryRenderedFeatures(t3.point, { layers: [e2] }) : []; + o4.length && (t3.features = o4, i2.call(r3, t3), delete t3.features); + }, o3) }; + }, r2.prototype.on = function(t2, e2, i2) { if (void 0 === i2) - return super.on(t2, e2); - const o2 = this._createDelegatedListener(t2, e2, i2); - this._delegatedListeners = this._delegatedListeners || {}, this._delegatedListeners[t2] = this._delegatedListeners[t2] || [], this._delegatedListeners[t2].push(o2); - for (const t3 in o2.delegates) - this.on(t3, o2.delegates[t3]); + return o2.prototype.on.call(this, t2, e2); + var r3 = this._createDelegatedListener(t2, e2, i2); + for (var a3 in this._delegatedListeners = this._delegatedListeners || {}, this._delegatedListeners[t2] = this._delegatedListeners[t2] || [], this._delegatedListeners[t2].push(r3), r3.delegates) + this.on(a3, r3.delegates[a3]); return this; - } - once(t2, e2, i2) { + }, r2.prototype.once = function(t2, e2, i2) { if (void 0 === i2) - return super.once(t2, e2); - const o2 = this._createDelegatedListener(t2, e2, i2); - for (const t3 in o2.delegates) - this.once(t3, o2.delegates[t3]); + return o2.prototype.once.call(this, t2, e2); + var r3 = this._createDelegatedListener(t2, e2, i2); + for (var a3 in r3.delegates) + this.once(a3, r3.delegates[a3]); return this; - } - off(t2, e2, i2) { - return void 0 === i2 ? super.off(t2, e2) : (this._delegatedListeners && this._delegatedListeners[t2] && ((o2) => { - const a2 = this._delegatedListeners[t2]; - for (let t3 = 0; t3 < a2.length; t3++) { - const o3 = a2[t3]; - if (o3.layer === e2 && o3.listener === i2) { - for (const t4 in o3.delegates) - this.off(t4, o3.delegates[t4]); - return a2.splice(t3, 1), this; + }, r2.prototype.off = function(t2, e2, i2) { + var r3 = this; + return void 0 === i2 ? o2.prototype.off.call(this, t2, e2) : (this._delegatedListeners && this._delegatedListeners[t2] && function(o3) { + for (var a3 = o3[t2], n2 = 0; n2 < a3.length; n2++) { + var s2 = a3[n2]; + if (s2.layer === e2 && s2.listener === i2) { + for (var l2 in s2.delegates) + r3.off(l2, s2.delegates[l2]); + return a3.splice(n2, 1), r3; } } - })(), this); - } - queryRenderedFeatures(e2, i2) { + }(this._delegatedListeners), this); + }, r2.prototype.queryRenderedFeatures = function(e2, i2) { if (!this.style) return []; - let o2; - if (void 0 !== i2 || void 0 === e2 || e2 instanceof t.pointGeometry || Array.isArray(e2) || (i2 = e2, e2 = void 0), i2 = i2 || {}, (e2 = e2 || [[0, 0], [this.transform.width, this.transform.height]]) instanceof t.pointGeometry || "number" == typeof e2[0]) - o2 = [t.pointGeometry.convert(e2)]; + var o3; + if (void 0 !== i2 || void 0 === e2 || e2 instanceof t.Point || Array.isArray(e2) || (i2 = e2, e2 = void 0), i2 = i2 || {}, (e2 = e2 || [[0, 0], [this.transform.width, this.transform.height]]) instanceof t.Point || "number" == typeof e2[0]) + o3 = [t.Point.convert(e2)]; else { - const i3 = t.pointGeometry.convert(e2[0]), a2 = t.pointGeometry.convert(e2[1]); - o2 = [i3, new t.pointGeometry(a2.x, i3.y), a2, new t.pointGeometry(i3.x, a2.y), i3]; + var r3 = t.Point.convert(e2[0]), a3 = t.Point.convert(e2[1]); + o3 = [r3, new t.Point(a3.x, r3.y), a3, new t.Point(r3.x, a3.y), r3]; } - return this.style.queryRenderedFeatures(o2, i2, this.transform); - } - querySourceFeatures(t2, e2) { + return this.style.queryRenderedFeatures(o3, i2, this.transform); + }, r2.prototype.querySourceFeatures = function(t2, e2) { return this.style.querySourceFeatures(t2, e2); - } - setStyle(e2, i2) { + }, r2.prototype.setStyle = function(e2, i2) { return false !== (i2 = t.extend({}, { localIdeographFontFamily: this._localIdeographFontFamily }, i2)).diff && i2.localIdeographFontFamily === this._localIdeographFontFamily && this.style && e2 ? (this._diffStyle(e2, i2), this) : (this._localIdeographFontFamily = i2.localIdeographFontFamily, this._updateStyle(e2, i2)); - } - setTransformRequest(t2) { - return this._requestManager.setTransformRequest(t2), this; - } - _getUIString(t2) { - const e2 = this._locale[t2]; + }, r2.prototype._getUIString = function(t2) { + var e2 = this._locale[t2]; if (null == e2) - throw new Error(`Missing UI string '${t2}'`); + throw new Error("Missing UI string '" + t2 + "'"); return e2; - } - _updateStyle(t2, e2) { - return this.style && (this.style.setEventedParent(null), this.style._remove()), t2 ? (this.style = new ee(this, e2 || {}), this.style.setEventedParent(this, { style: this.style }), "string" == typeof t2 ? this.style.loadURL(t2) : this.style.loadJSON(t2), this) : (delete this.style, this); - } - _lazyInitEmptyStyle() { - this.style || (this.style = new ee(this, {}), this.style.setEventedParent(this, { style: this.style }), this.style.loadEmpty()); - } - _diffStyle(e2, i2) { + }, r2.prototype._updateStyle = function(t2, e2) { + return this.style && (this.style.setEventedParent(null), this.style._remove()), t2 ? (this.style = new je(this, e2 || {}), this.style.setEventedParent(this, { style: this.style }), "string" == typeof t2 ? this.style.loadURL(t2) : this.style.loadJSON(t2), this) : (delete this.style, this); + }, r2.prototype._lazyInitEmptyStyle = function() { + this.style || (this.style = new je(this, {}), this.style.setEventedParent(this, { style: this.style }), this.style.loadEmpty()); + }, r2.prototype._diffStyle = function(e2, i2) { + var o3 = this; if ("string" == typeof e2) { - const o2 = this._requestManager.transformRequest(e2, t.ResourceType.Style); - t.getJSON(o2, (e3, o3) => { - e3 ? this.fire(new t.ErrorEvent(e3)) : o3 && this._updateDiff(o3, i2); + var r3 = this._requestManager.normalizeStyleURL(e2), a3 = this._requestManager.transformRequest(r3, t.ResourceType.Style); + t.getJSON(a3, function(e3, r4) { + e3 ? o3.fire(new t.ErrorEvent(e3)) : r4 && o3._updateDiff(r4, i2); }); } else "object" == typeof e2 && this._updateDiff(e2, i2); - } - _updateDiff(e2, i2) { + }, r2.prototype._updateDiff = function(e2, i2) { try { this.style.setState(e2) && this._update(true); - } catch (o2) { - t.warnOnce(`Unable to perform style diff: ${o2.message || o2.error || o2}. Rebuilding the style from scratch.`), this._updateStyle(e2, i2); + } catch (o3) { + t.warnOnce("Unable to perform style diff: " + (o3.message || o3.error || o3) + ". Rebuilding the style from scratch."), this._updateStyle(e2, i2); } - } - getStyle() { + }, r2.prototype.getStyle = function() { if (this.style) return this.style.serialize(); - } - isStyleLoaded() { + }, r2.prototype.isStyleLoaded = function() { return this.style ? this.style.loaded() : t.warnOnce("There is no style added to the map."); - } - addSource(t2, e2) { + }, r2.prototype.addSource = function(t2, e2) { return this._lazyInitEmptyStyle(), this.style.addSource(t2, e2), this._update(true); - } - isSourceLoaded(e2) { - const i2 = this.style && this.style.sourceCaches[e2]; + }, r2.prototype.isSourceLoaded = function(e2) { + var i2 = this.style && this.style.sourceCaches[e2]; if (void 0 !== i2) return i2.loaded(); - this.fire(new t.ErrorEvent(new Error(`There is no source with ID '${e2}'`))); - } - setTerrain(t2) { - return this.style.setTerrain(t2), this; - } - getTerrain() { - return this.style.terrain && this.style.terrain.options; - } - areTilesLoaded() { - const t2 = this.style && this.style.sourceCaches; - for (const e2 in t2) { - const i2 = t2[e2]._tiles; - for (const t3 in i2) { - const e3 = i2[t3]; - if ("loaded" !== e3.state && "errored" !== e3.state) + this.fire(new t.ErrorEvent(new Error("There is no source with ID '" + e2 + "'"))); + }, r2.prototype.areTilesLoaded = function() { + var t2 = this.style && this.style.sourceCaches; + for (var e2 in t2) { + var i2 = t2[e2]._tiles; + for (var o3 in i2) { + var r3 = i2[o3]; + if ("loaded" !== r3.state && "errored" !== r3.state) return false; } } return true; - } - addSourceType(t2, e2, i2) { + }, r2.prototype.addSourceType = function(t2, e2, i2) { return this._lazyInitEmptyStyle(), this.style.addSourceType(t2, e2, i2); - } - removeSource(t2) { + }, r2.prototype.removeSource = function(t2) { return this.style.removeSource(t2), this._update(true); - } - getSource(t2) { + }, r2.prototype.getSource = function(t2) { return this.style.getSource(t2); - } - addImage(e2, i2, { pixelRatio: o2 = 1, sdf: a2 = false, stretchX: r2, stretchY: s2, content: n2 } = {}) { - if (this._lazyInitEmptyStyle(), i2 instanceof HTMLImageElement || t.isImageBitmap(i2)) { - const { width: l2, height: c3, data: h3 } = t.exported.getImageData(i2); - this.style.addImage(e2, { data: new t.RGBAImage({ width: l2, height: c3 }, h3), pixelRatio: o2, stretchX: r2, stretchY: s2, content: n2, sdf: a2, version: 0 }); + }, r2.prototype.addImage = function(e2, i2, o3) { + void 0 === o3 && (o3 = {}); + var r3 = o3.pixelRatio; + void 0 === r3 && (r3 = 1); + var a3 = o3.sdf; + void 0 === a3 && (a3 = false); + var n2 = o3.stretchX, s2 = o3.stretchY, l2 = o3.content; + if (this._lazyInitEmptyStyle(), i2 instanceof Tr || Ir && i2 instanceof Ir) { + var c3 = t.browser.getImageData(i2); + this.style.addImage(e2, { data: new t.RGBAImage({ width: c3.width, height: c3.height }, c3.data), pixelRatio: r3, stretchX: n2, stretchY: s2, content: l2, sdf: a3, version: 0 }); } else { if (void 0 === i2.width || void 0 === i2.height) return this.fire(new t.ErrorEvent(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`"))); - { - const { width: l2, height: c3, data: h3 } = i2, u2 = i2; - this.style.addImage(e2, { data: new t.RGBAImage({ width: l2, height: c3 }, new Uint8Array(h3)), pixelRatio: o2, stretchX: r2, stretchY: s2, content: n2, sdf: a2, version: 0, userImage: u2 }), u2.onAdd && u2.onAdd(this, e2); - } + var u2 = i2; + this.style.addImage(e2, { data: new t.RGBAImage({ width: i2.width, height: i2.height }, new Uint8Array(i2.data)), pixelRatio: r3, stretchX: n2, stretchY: s2, content: l2, sdf: a3, version: 0, userImage: u2 }), u2.onAdd && u2.onAdd(this, e2); } - } - updateImage(e2, i2) { - const o2 = this.style.getImage(e2); - if (!o2) + }, r2.prototype.updateImage = function(e2, i2) { + var o3 = this.style.getImage(e2); + if (!o3) return this.fire(new t.ErrorEvent(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead."))); - const a2 = i2 instanceof HTMLImageElement || t.isImageBitmap(i2) ? t.exported.getImageData(i2) : i2, { width: r2, height: s2, data: n2 } = a2; - if (void 0 === r2 || void 0 === s2) - return this.fire(new t.ErrorEvent(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`"))); - if (r2 !== o2.data.width || s2 !== o2.data.height) - return this.fire(new t.ErrorEvent(new Error("The width and height of the updated image must be that same as the previous version of the image"))); - const l2 = !(i2 instanceof HTMLImageElement || t.isImageBitmap(i2)); - o2.data.replace(n2, l2), this.style.updateImage(e2, o2); - } - hasImage(e2) { + var r3 = i2 instanceof Tr || Ir && i2 instanceof Ir ? t.browser.getImageData(i2) : i2, a3 = r3.width, n2 = r3.height, s2 = r3.data; + return void 0 === a3 || void 0 === n2 ? this.fire(new t.ErrorEvent(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`"))) : a3 !== o3.data.width || n2 !== o3.data.height ? this.fire(new t.ErrorEvent(new Error("The width and height of the updated image must be that same as the previous version of the image"))) : (o3.data.replace(s2, !(i2 instanceof Tr || Ir && i2 instanceof Ir)), void this.style.updateImage(e2, o3)); + }, r2.prototype.hasImage = function(e2) { return e2 ? !!this.style.getImage(e2) : (this.fire(new t.ErrorEvent(new Error("Missing required image id"))), false); - } - removeImage(t2) { + }, r2.prototype.removeImage = function(t2) { this.style.removeImage(t2); - } - loadImage(e2, i2) { + }, r2.prototype.loadImage = function(e2, i2) { t.getImage(this._requestManager.transformRequest(e2, t.ResourceType.Image), i2); - } - listImages() { + }, r2.prototype.listImages = function() { return this.style.listImages(); - } - addLayer(t2, e2) { + }, r2.prototype.addLayer = function(t2, e2) { return this._lazyInitEmptyStyle(), this.style.addLayer(t2, e2), this._update(true); - } - moveLayer(t2, e2) { + }, r2.prototype.moveLayer = function(t2, e2) { return this.style.moveLayer(t2, e2), this._update(true); - } - removeLayer(t2) { + }, r2.prototype.removeLayer = function(t2) { return this.style.removeLayer(t2), this._update(true); - } - getLayer(t2) { + }, r2.prototype.getLayer = function(t2) { return this.style.getLayer(t2); - } - setLayerZoomRange(t2, e2, i2) { + }, r2.prototype.setLayerZoomRange = function(t2, e2, i2) { return this.style.setLayerZoomRange(t2, e2, i2), this._update(true); - } - setFilter(t2, e2, i2 = {}) { - return this.style.setFilter(t2, e2, i2), this._update(true); - } - getFilter(t2) { + }, r2.prototype.setFilter = function(t2, e2, i2) { + return void 0 === i2 && (i2 = {}), this.style.setFilter(t2, e2, i2), this._update(true); + }, r2.prototype.getFilter = function(t2) { return this.style.getFilter(t2); - } - setPaintProperty(t2, e2, i2, o2 = {}) { - return this.style.setPaintProperty(t2, e2, i2, o2), this._update(true); - } - getPaintProperty(t2, e2) { + }, r2.prototype.setPaintProperty = function(t2, e2, i2, o3) { + return void 0 === o3 && (o3 = {}), this.style.setPaintProperty(t2, e2, i2, o3), this._update(true); + }, r2.prototype.getPaintProperty = function(t2, e2) { return this.style.getPaintProperty(t2, e2); - } - setLayoutProperty(t2, e2, i2, o2 = {}) { - return this.style.setLayoutProperty(t2, e2, i2, o2), this._update(true); - } - getLayoutProperty(t2, e2) { + }, r2.prototype.setLayoutProperty = function(t2, e2, i2, o3) { + return void 0 === o3 && (o3 = {}), this.style.setLayoutProperty(t2, e2, i2, o3), this._update(true); + }, r2.prototype.getLayoutProperty = function(t2, e2) { return this.style.getLayoutProperty(t2, e2); - } - setLight(t2, e2 = {}) { - return this._lazyInitEmptyStyle(), this.style.setLight(t2, e2), this._update(true); - } - getLight() { + }, r2.prototype.setLight = function(t2, e2) { + return void 0 === e2 && (e2 = {}), this._lazyInitEmptyStyle(), this.style.setLight(t2, e2), this._update(true); + }, r2.prototype.getLight = function() { return this.style.getLight(); - } - setFeatureState(t2, e2) { + }, r2.prototype.setFeatureState = function(t2, e2) { return this.style.setFeatureState(t2, e2), this._update(); - } - removeFeatureState(t2, e2) { + }, r2.prototype.removeFeatureState = function(t2, e2) { return this.style.removeFeatureState(t2, e2), this._update(); - } - getFeatureState(t2) { + }, r2.prototype.getFeatureState = function(t2) { return this.style.getFeatureState(t2); - } - getContainer() { + }, r2.prototype.getContainer = function() { return this._container; - } - getCanvasContainer() { + }, r2.prototype.getCanvasContainer = function() { return this._canvasContainer; - } - getCanvas() { + }, r2.prototype.getCanvas = function() { return this._canvas; - } - _containerDimensions() { - let t2 = 0, e2 = 0; + }, r2.prototype._containerDimensions = function() { + var t2 = 0, e2 = 0; return this._container && (t2 = this._container.clientWidth || 400, e2 = this._container.clientHeight || 300), [t2, e2]; - } - _setupContainer() { - const t2 = this._container; - t2.classList.add("maplibregl-map", "mapboxgl-map"); - const e2 = this._canvasContainer = r.create("div", "maplibregl-canvas-container mapboxgl-canvas-container", t2); - this._interactive && e2.classList.add("maplibregl-interactive", "mapboxgl-interactive"), this._canvas = r.create("canvas", "maplibregl-canvas mapboxgl-canvas", e2), this._canvas.addEventListener("webglcontextlost", this._contextLost, false), this._canvas.addEventListener("webglcontextrestored", this._contextRestored, false), this._canvas.setAttribute("tabindex", "0"), this._canvas.setAttribute("aria-label", "Map"), this._canvas.setAttribute("role", "region"); - const i2 = this._containerDimensions(); - this._resizeCanvas(i2[0], i2[1], this.getPixelRatio()); - const o2 = this._controlContainer = r.create("div", "maplibregl-control-container mapboxgl-control-container", t2), a2 = this._controlPositions = {}; - ["top-left", "top-right", "bottom-left", "bottom-right"].forEach((t3) => { - a2[t3] = r.create("div", `maplibregl-ctrl-${t3} mapboxgl-ctrl-${t3}`, o2); + }, r2.prototype._detectMissingCSS = function() { + "rgb(250, 128, 114)" !== t.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color") && t.warnOnce("This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/."); + }, r2.prototype._setupContainer = function() { + var t2 = this._container; + t2.classList.add("mapboxgl-map"), (this._missingCSSCanary = i.create("div", "mapboxgl-canary", t2)).style.visibility = "hidden", this._detectMissingCSS(); + var e2 = this._canvasContainer = i.create("div", "mapboxgl-canvas-container", t2); + this._interactive && e2.classList.add("mapboxgl-interactive"), this._canvas = i.create("canvas", "mapboxgl-canvas", e2), this._canvas.addEventListener("webglcontextlost", this._contextLost, false), this._canvas.addEventListener("webglcontextrestored", this._contextRestored, false), this._canvas.setAttribute("tabindex", "0"), this._canvas.setAttribute("aria-label", "Map"), this._canvas.setAttribute("role", "region"); + var o3 = this._containerDimensions(); + this._resizeCanvas(o3[0], o3[1]); + var r3 = this._controlContainer = i.create("div", "mapboxgl-control-container", t2), a3 = this._controlPositions = {}; + ["top-left", "top-right", "bottom-left", "bottom-right"].forEach(function(t3) { + a3[t3] = i.create("div", "mapboxgl-ctrl-" + t3, r3); }), this._container.addEventListener("scroll", this._onMapScroll, false); - } - _setupCooperativeGestures() { - const t2 = this._container; - this._metaPress = false, this._cooperativeGesturesScreen = r.create("div", "maplibregl-cooperative-gesture-screen", t2); - let e2 = "Control", i2 = "boolean" != typeof this._cooperativeGestures && this._cooperativeGestures.windowsHelpText ? this._cooperativeGestures.windowsHelpText : "Use Ctrl + scroll to zoom the map"; - 0 === navigator.platform.indexOf("Mac") && (i2 = "boolean" != typeof this._cooperativeGestures && this._cooperativeGestures.macHelpText ? this._cooperativeGestures.macHelpText : "Use \u2318 + scroll to zoom the map", e2 = "Meta"), this._cooperativeGesturesScreen.innerHTML = ` -
${i2}
-
${"boolean" != typeof this._cooperativeGestures && this._cooperativeGestures.mobileHelpText ? this._cooperativeGestures.mobileHelpText : "Use two fingers to move the map"}
- `, document.addEventListener("keydown", (t3) => { - t3.key === e2 && (this._metaPress = true); - }), document.addEventListener("keyup", (t3) => { - t3.key === e2 && (this._metaPress = false); - }), this._canvasContainer.addEventListener("wheel", (t3) => { - this._onCooperativeGesture(t3, this._metaPress, 1); - }, false), this._canvasContainer.classList.remove("mapboxgl-touch-drag-pan", "maplibregl-touch-drag-pan"); - } - _resizeCanvas(t2, e2, i2) { - this._canvas.width = i2 * t2, this._canvas.height = i2 * e2, this._canvas.style.width = `${t2}px`, this._canvas.style.height = `${e2}px`; - } - _setupPainter() { - const i2 = t.extend({}, e.webGLContextAttributes, { failIfMajorPerformanceCaveat: this._failIfMajorPerformanceCaveat, preserveDrawingBuffer: this._preserveDrawingBuffer, antialias: this._antialias || false }), o2 = this._canvas.getContext("webgl", i2) || this._canvas.getContext("experimental-webgl", i2); - o2 ? (this.painter = new Ji(o2, this.transform), t.exported$1.testSupport(o2)) : this.fire(new t.ErrorEvent(new Error("Failed to initialize WebGL"))); - } - _contextLost(e2) { + }, r2.prototype._resizeCanvas = function(e2, i2) { + var o3 = t.browser.devicePixelRatio || 1; + this._canvas.width = o3 * e2, this._canvas.height = o3 * i2, this._canvas.style.width = e2 + "px", this._canvas.style.height = i2 + "px"; + }, r2.prototype._setupPainter = function() { + var i2 = t.extend({}, e.webGLContextAttributes, { failIfMajorPerformanceCaveat: this._failIfMajorPerformanceCaveat, preserveDrawingBuffer: this._preserveDrawingBuffer, antialias: this._antialias || false }), o3 = this._canvas.getContext("webgl", i2) || this._canvas.getContext("experimental-webgl", i2); + o3 ? (this.painter = new yo(o3, this.transform), t.webpSupported.testSupport(o3)) : this.fire(new t.ErrorEvent(new Error("Failed to initialize WebGL"))); + }, r2.prototype._contextLost = function(e2) { e2.preventDefault(), this._frame && (this._frame.cancel(), this._frame = null), this.fire(new t.Event("webglcontextlost", { originalEvent: e2 })); - } - _contextRestored(e2) { + }, r2.prototype._contextRestored = function(e2) { this._setupPainter(), this.resize(), this._update(), this.fire(new t.Event("webglcontextrestored", { originalEvent: e2 })); - } - _onMapScroll(t2) { + }, r2.prototype._onMapScroll = function(t2) { if (t2.target === this._container) return this._container.scrollTop = 0, this._container.scrollLeft = 0, false; - } - _onCooperativeGesture(t2, e2, i2) { - return !e2 && i2 < 2 && (this._cooperativeGesturesScreen.classList.add("maplibregl-show"), setTimeout(() => { - this._cooperativeGesturesScreen.classList.remove("maplibregl-show"); - }, 100)), false; - } - loaded() { + }, r2.prototype.loaded = function() { return !this._styleDirty && !this._sourcesDirty && !!this.style && this.style.loaded(); - } - _update(t2) { + }, r2.prototype._update = function(t2) { return this.style ? (this._styleDirty = this._styleDirty || t2, this._sourcesDirty = true, this.triggerRepaint(), this) : this; - } - _requestRenderFrame(t2) { + }, r2.prototype._requestRenderFrame = function(t2) { return this._update(), this._renderTaskQueue.add(t2); - } - _cancelRenderFrame(t2) { + }, r2.prototype._cancelRenderFrame = function(t2) { this._renderTaskQueue.remove(t2); - } - _render(e2) { - let i2, o2 = 0; - const a2 = this.painter.context.extTimerQuery; - if (this.listens("gpu-timing-frame") && (i2 = a2.createQueryEXT(), a2.beginQueryEXT(a2.TIME_ELAPSED_EXT, i2), o2 = t.exported.now()), this.painter.context.setDirty(), this.painter.setBaseState(), this._renderTaskQueue.run(e2), this._removed) - return; - let r2 = false; - if (this.style && this._styleDirty) { - this._styleDirty = false; - const e3 = this.transform.zoom, i3 = t.exported.now(); - this.style.zoomHistory.update(e3, i3); - const o3 = new t.EvaluationParameters(e3, { now: i3, fadeDuration: this._fadeDuration, zoomHistory: this.style.zoomHistory, transition: this.style.getTransition() }), a3 = o3.crossFadingFactor(); - 1 === a3 && a3 === this._crossFadingFactor || (r2 = true, this._crossFadingFactor = a3), this.style.update(o3); - } - if (this.style && this._sourcesDirty && (this._sourcesDirty = false, this.style._updateSources(this.transform)), this.style.terrain && this.style.terrain.sourceCache.update(this.transform, this.style.terrain), this.transform.updateElevation(this.style.terrain), this._placementDirty = this.style && this.style._updatePlacement(this.painter.transform, this.showCollisionBoxes, this._fadeDuration, this._crossSourceCollisions), this.painter.render(this.style, { showTileBoundaries: this.showTileBoundaries, showOverdrawInspector: this._showOverdrawInspector, rotating: this.isRotating(), zooming: this.isZooming(), moving: this.isMoving(), fadeDuration: this._fadeDuration, showPadding: this.showPadding, gpuTiming: !!this.listens("gpu-timing-layer") }), this.fire(new t.Event("render")), this.loaded() && !this._loaded && (this._loaded = true, t.PerformanceUtils.mark(t.PerformanceMarkers.load), this.fire(new t.Event("load"))), this.style && (this.style.hasTransitions() || r2) && (this._styleDirty = true), this.style && !this._placementDirty && this.style._releaseSymbolFadeTiles(), this.listens("gpu-timing-frame")) { - const e3 = t.exported.now() - o2; - a2.endQueryEXT(a2.TIME_ELAPSED_EXT, i2), setTimeout(() => { - const o3 = a2.getQueryObjectEXT(i2, a2.QUERY_RESULT_EXT) / 1e6; - a2.deleteQueryEXT(i2), this.fire(new t.Event("gpu-timing-frame", { cpuTime: e3, gpuTime: o3 })); - }, 50); - } - if (this.listens("gpu-timing-layer")) { - const e3 = this.painter.collectGpuTimers(); - setTimeout(() => { - const i3 = this.painter.queryGpuTimers(e3); - this.fire(new t.Event("gpu-timing-layer", { layerTimes: i3 })); - }, 50); - } - const s2 = this._sourcesDirty || this._styleDirty || this._placementDirty; - return s2 || this._repaint ? this.triggerRepaint() : !this.isMoving() && this.loaded() && this.fire(new t.Event("idle")), !this._loaded || this._fullyLoaded || s2 || (this._fullyLoaded = true, t.PerformanceUtils.mark(t.PerformanceMarkers.fullLoad)), this; - } - redraw() { - return this.style && (this._frame && (this._frame.cancel(), this._frame = null), this._render(0)), this; - } - remove() { + }, r2.prototype._render = function(e2) { + var i2, o3 = this, r3 = 0, a3 = this.painter.context.extTimerQuery; + if (this.listens("gpu-timing-frame") && (i2 = a3.createQueryEXT(), a3.beginQueryEXT(a3.TIME_ELAPSED_EXT, i2), r3 = t.browser.now()), this.painter.context.setDirty(), this.painter.setBaseState(), this._renderTaskQueue.run(e2), !this._removed) { + var n2 = false; + if (this.style && this._styleDirty) { + this._styleDirty = false; + var s2 = this.transform.zoom, l2 = t.browser.now(); + this.style.zoomHistory.update(s2, l2); + var c3 = new t.EvaluationParameters(s2, { now: l2, fadeDuration: this._fadeDuration, zoomHistory: this.style.zoomHistory, transition: this.style.getTransition() }), u2 = c3.crossFadingFactor(); + 1 === u2 && u2 === this._crossFadingFactor || (n2 = true, this._crossFadingFactor = u2), this.style.update(c3); + } + if (this.style && this._sourcesDirty && (this._sourcesDirty = false, this.style._updateSources(this.transform)), this._placementDirty = this.style && this.style._updatePlacement(this.painter.transform, this.showCollisionBoxes, this._fadeDuration, this._crossSourceCollisions), this.painter.render(this.style, { showTileBoundaries: this.showTileBoundaries, showOverdrawInspector: this._showOverdrawInspector, rotating: this.isRotating(), zooming: this.isZooming(), moving: this.isMoving(), fadeDuration: this._fadeDuration, showPadding: this.showPadding, gpuTiming: !!this.listens("gpu-timing-layer") }), this.fire(new t.Event("render")), this.loaded() && !this._loaded && (this._loaded = true, this.fire(new t.Event("load"))), this.style && (this.style.hasTransitions() || n2) && (this._styleDirty = true), this.style && !this._placementDirty && this.style._releaseSymbolFadeTiles(), this.listens("gpu-timing-frame")) { + var h3 = t.browser.now() - r3; + a3.endQueryEXT(a3.TIME_ELAPSED_EXT, i2), setTimeout(function() { + var e3 = a3.getQueryObjectEXT(i2, a3.QUERY_RESULT_EXT) / 1e6; + a3.deleteQueryEXT(i2), o3.fire(new t.Event("gpu-timing-frame", { cpuTime: h3, gpuTime: e3 })); + }, 50); + } + if (this.listens("gpu-timing-layer")) { + var p3 = this.painter.collectGpuTimers(); + setTimeout(function() { + var e3 = o3.painter.queryGpuTimers(p3); + o3.fire(new t.Event("gpu-timing-layer", { layerTimes: e3 })); + }, 50); + } + var d2 = this._sourcesDirty || this._styleDirty || this._placementDirty; + return d2 || this._repaint ? this.triggerRepaint() : !this.isMoving() && this.loaded() && this.fire(new t.Event("idle")), !this._loaded || this._fullyLoaded || d2 || (this._fullyLoaded = true), this; + } + }, r2.prototype.remove = function() { this._hash && this._hash.remove(); - for (const t2 of this._controls) - t2.onRemove(this); - this._controls = [], this._frame && (this._frame.cancel(), this._frame = null), this._renderTaskQueue.clear(), this.painter.destroy(), this.handlers.destroy(), delete this.handlers, this.setStyle(null), "undefined" != typeof window && (removeEventListener("resize", this._onWindowResize, false), removeEventListener("orientationchange", this._onWindowResize, false), removeEventListener("online", this._onWindowOnline, false)); - const e2 = this.painter.context.gl.getExtension("WEBGL_lose_context"); - e2 && e2.loseContext(), this._canvas.removeEventListener("webglcontextrestored", this._contextRestored, false), this._canvas.removeEventListener("webglcontextlost", this._contextLost, false), r.remove(this._canvasContainer), r.remove(this._controlContainer), this._cooperativeGestures && r.remove(this._cooperativeGesturesScreen), this._container.classList.remove("maplibregl-map", "mapboxgl-map"), t.PerformanceUtils.clearMetrics(), this._removed = true, this.fire(new t.Event("remove")); - } - triggerRepaint() { - this.style && !this._frame && (this._frame = t.exported.frame((e2) => { - t.PerformanceUtils.frame(e2), this._frame = null, this._render(e2); + for (var e2 = 0, i2 = this._controls; e2 < i2.length; e2 += 1) + i2[e2].onRemove(this); + this._controls = [], this._frame && (this._frame.cancel(), this._frame = null), this._renderTaskQueue.clear(), this.painter.destroy(), this.handlers.destroy(), delete this.handlers, this.setStyle(null), void 0 !== t.window && (t.window.removeEventListener("resize", this._onWindowResize, false), t.window.removeEventListener("orientationchange", this._onWindowResize, false), t.window.removeEventListener("online", this._onWindowOnline, false)); + var o3 = this.painter.context.gl.getExtension("WEBGL_lose_context"); + o3 && o3.loseContext(), Cr(this._canvasContainer), Cr(this._controlContainer), Cr(this._missingCSSCanary), this._container.classList.remove("mapboxgl-map"), this._removed = true, this.fire(new t.Event("remove")); + }, r2.prototype.triggerRepaint = function() { + var e2 = this; + this.style && !this._frame && (this._frame = t.browser.frame(function(t2) { + e2._frame = null, e2._render(t2); })); - } - _onWindowOnline() { + }, r2.prototype._onWindowOnline = function() { this._update(); - } - _onWindowResize(t2) { + }, r2.prototype._onWindowResize = function(t2) { this._trackResize && this.resize({ originalEvent: t2 })._update(); - } - get showTileBoundaries() { + }, a2.showTileBoundaries.get = function() { return !!this._showTileBoundaries; - } - set showTileBoundaries(t2) { + }, a2.showTileBoundaries.set = function(t2) { this._showTileBoundaries !== t2 && (this._showTileBoundaries = t2, this._update()); - } - get showPadding() { + }, a2.showPadding.get = function() { return !!this._showPadding; - } - set showPadding(t2) { + }, a2.showPadding.set = function(t2) { this._showPadding !== t2 && (this._showPadding = t2, this._update()); - } - get showCollisionBoxes() { + }, a2.showCollisionBoxes.get = function() { return !!this._showCollisionBoxes; - } - set showCollisionBoxes(t2) { + }, a2.showCollisionBoxes.set = function(t2) { this._showCollisionBoxes !== t2 && (this._showCollisionBoxes = t2, t2 ? this.style._generateCollisionBoxes() : this._update()); - } - get showOverdrawInspector() { + }, a2.showOverdrawInspector.get = function() { return !!this._showOverdrawInspector; - } - set showOverdrawInspector(t2) { + }, a2.showOverdrawInspector.set = function(t2) { this._showOverdrawInspector !== t2 && (this._showOverdrawInspector = t2, this._update()); - } - get repaint() { + }, a2.repaint.get = function() { return !!this._repaint; - } - set repaint(t2) { + }, a2.repaint.set = function(t2) { this._repaint !== t2 && (this._repaint = t2, this.triggerRepaint()); - } - get vertices() { + }, a2.vertices.get = function() { return !!this._vertices; - } - set vertices(t2) { + }, a2.vertices.set = function(t2) { this._vertices = t2, this._update(); - } - _setCacheLimits(e2, i2) { + }, r2.prototype._setCacheLimits = function(e2, i2) { t.setCacheLimits(e2, i2); + }, a2.version.get = function() { + return t.version; + }, Object.defineProperties(r2.prototype, a2), r2; + }(vr); + function Cr(t2) { + t2.parentNode && t2.parentNode.removeChild(t2); + } + var zr = { showCompass: true, showZoom: true, visualizePitch: false }, Dr = function(e2) { + var o2 = this; + this.options = t.extend({}, zr, e2), this._container = i.create("div", "mapboxgl-ctrl mapboxgl-ctrl-group"), this._container.addEventListener("contextmenu", function(t2) { + return t2.preventDefault(); + }), this.options.showZoom && (t.bindAll(["_setButtonTitle", "_updateZoomButtons"], this), this._zoomInButton = this._createButton("mapboxgl-ctrl-zoom-in", function(t2) { + return o2._map.zoomIn({}, { originalEvent: t2 }); + }), i.create("span", "mapboxgl-ctrl-icon", this._zoomInButton).setAttribute("aria-hidden", true), this._zoomOutButton = this._createButton("mapboxgl-ctrl-zoom-out", function(t2) { + return o2._map.zoomOut({}, { originalEvent: t2 }); + }), i.create("span", "mapboxgl-ctrl-icon", this._zoomOutButton).setAttribute("aria-hidden", true)), this.options.showCompass && (t.bindAll(["_rotateCompassArrow"], this), this._compass = this._createButton("mapboxgl-ctrl-compass", function(t2) { + o2.options.visualizePitch ? o2._map.resetNorthPitch({}, { originalEvent: t2 }) : o2._map.resetNorth({}, { originalEvent: t2 }); + }), this._compassIcon = i.create("span", "mapboxgl-ctrl-icon", this._compass), this._compassIcon.setAttribute("aria-hidden", true)); + }; + Dr.prototype._updateZoomButtons = function() { + var t2 = this._map.getZoom(), e2 = t2 === this._map.getMaxZoom(), i2 = t2 === this._map.getMinZoom(); + this._zoomInButton.disabled = e2, this._zoomOutButton.disabled = i2, this._zoomInButton.setAttribute("aria-disabled", e2.toString()), this._zoomOutButton.setAttribute("aria-disabled", i2.toString()); + }, Dr.prototype._rotateCompassArrow = function() { + var t2 = this.options.visualizePitch ? "scale(" + 1 / Math.pow(Math.cos(this._map.transform.pitch * (Math.PI / 180)), 0.5) + ") rotateX(" + 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 = t2; + }, Dr.prototype.onAdd = function(t2) { + return this._map = t2, this.options.showZoom && (this._setButtonTitle(this._zoomInButton, "ZoomIn"), this._setButtonTitle(this._zoomOutButton, "ZoomOut"), this._map.on("zoom", this._updateZoomButtons), this._updateZoomButtons()), this.options.showCompass && (this._setButtonTitle(this._compass, "ResetBearing"), this.options.visualizePitch && this._map.on("pitch", this._rotateCompassArrow), this._map.on("rotate", this._rotateCompassArrow), this._rotateCompassArrow(), this._handler = new Ar(this._map, this._compass, this.options.visualizePitch)), this._container; + }, Dr.prototype.onRemove = function() { + i.remove(this._container), this.options.showZoom && this._map.off("zoom", this._updateZoomButtons), this.options.showCompass && (this.options.visualizePitch && this._map.off("pitch", this._rotateCompassArrow), this._map.off("rotate", this._rotateCompassArrow), this._handler.off(), delete this._handler), delete this._map; + }, Dr.prototype._createButton = function(t2, e2) { + var o2 = i.create("button", t2, this._container); + return o2.type = "button", o2.addEventListener("click", e2), o2; + }, Dr.prototype._setButtonTitle = function(t2, e2) { + var i2 = this._map._getUIString("NavigationControl." + e2); + t2.title = i2, t2.setAttribute("aria-label", i2); + }; + var Ar = function(e2, o2, r2) { + void 0 === r2 && (r2 = false), this._clickTolerance = 10, this.element = o2, this.mouseRotate = new Xo({ clickTolerance: e2.dragRotate._mouseRotate._clickTolerance }), this.map = e2, r2 && (this.mousePitch = new Ho({ clickTolerance: e2.dragRotate._mousePitch._clickTolerance })), t.bindAll(["mousedown", "mousemove", "mouseup", "touchstart", "touchmove", "touchend", "reset"], this), i.addEventListener(o2, "mousedown", this.mousedown), i.addEventListener(o2, "touchstart", this.touchstart, { passive: false }), i.addEventListener(o2, "touchmove", this.touchmove), i.addEventListener(o2, "touchend", this.touchend), i.addEventListener(o2, "touchcancel", this.reset); + }; + function Mr(e2, i2, o2) { + if (e2 = new t.LngLat(e2.lng, e2.lat), i2) { + var r2 = new t.LngLat(e2.lng - 360, e2.lat), a2 = new t.LngLat(e2.lng + 360, e2.lat), n2 = o2.locationPoint(e2).distSqr(i2); + o2.locationPoint(r2).distSqr(i2) < n2 ? e2 = r2 : o2.locationPoint(a2).distSqr(i2) < n2 && (e2 = a2); } - get version() { - return "2.4.0"; - } - }, NavigationControl: class { - constructor(e2) { - this.options = t.extend({}, ra, e2), this._container = r.create("div", "maplibregl-ctrl maplibregl-ctrl-group mapboxgl-ctrl mapboxgl-ctrl-group"), this._container.addEventListener("contextmenu", (t2) => t2.preventDefault()), this.options.showZoom && (t.bindAll(["_setButtonTitle", "_updateZoomButtons"], this), this._zoomInButton = this._createButton("maplibregl-ctrl-zoom-in mapboxgl-ctrl-zoom-in", (t2) => this._map.zoomIn({}, { originalEvent: t2 })), r.create("span", "maplibregl-ctrl-icon mapboxgl-ctrl-icon", this._zoomInButton).setAttribute("aria-hidden", "true"), this._zoomOutButton = this._createButton("maplibregl-ctrl-zoom-out mapboxgl-ctrl-zoom-out", (t2) => this._map.zoomOut({}, { originalEvent: t2 })), r.create("span", "maplibregl-ctrl-icon mapboxgl-ctrl-icon", this._zoomOutButton).setAttribute("aria-hidden", "true")), this.options.showCompass && (t.bindAll(["_rotateCompassArrow"], this), this._compass = this._createButton("maplibregl-ctrl-compass mapboxgl-ctrl-compass", (t2) => { - this.options.visualizePitch ? this._map.resetNorthPitch({}, { originalEvent: t2 }) : this._map.resetNorth({}, { originalEvent: t2 }); - }), this._compassIcon = r.create("span", "maplibregl-ctrl-icon mapboxgl-ctrl-icon", this._compass), this._compassIcon.setAttribute("aria-hidden", "true")); - } - _updateZoomButtons() { - const t2 = this._map.getZoom(), e2 = t2 === this._map.getMaxZoom(), i2 = t2 === this._map.getMinZoom(); - this._zoomInButton.disabled = e2, this._zoomOutButton.disabled = i2, this._zoomInButton.setAttribute("aria-disabled", e2.toString()), this._zoomOutButton.setAttribute("aria-disabled", i2.toString()); - } - _rotateCompassArrow() { - const t2 = this.options.visualizePitch ? `scale(${1 / Math.pow(Math.cos(this._map.transform.pitch * (Math.PI / 180)), 0.5)}) rotateX(${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 = t2; - } - onAdd(t2) { - return this._map = t2, this.options.showZoom && (this._setButtonTitle(this._zoomInButton, "ZoomIn"), this._setButtonTitle(this._zoomOutButton, "ZoomOut"), this._map.on("zoom", this._updateZoomButtons), this._updateZoomButtons()), this.options.showCompass && (this._setButtonTitle(this._compass, "ResetBearing"), this.options.visualizePitch && this._map.on("pitch", this._rotateCompassArrow), this._map.on("rotate", this._rotateCompassArrow), this._rotateCompassArrow(), this._handler = new sa(this._map, this._compass, this.options.visualizePitch)), this._container; - } - onRemove() { - r.remove(this._container), this.options.showZoom && this._map.off("zoom", this._updateZoomButtons), this.options.showCompass && (this.options.visualizePitch && this._map.off("pitch", this._rotateCompassArrow), this._map.off("rotate", this._rotateCompassArrow), this._handler.off(), delete this._handler), delete this._map; - } - _createButton(t2, e2) { - const i2 = r.create("button", t2, this._container); - return i2.type = "button", i2.addEventListener("click", e2), i2; - } - _setButtonTitle(t2, e2) { - const i2 = this._map._getUIString(`NavigationControl.${e2}`); - t2.title = i2, t2.setAttribute("aria-label", i2); - } - }, GeolocateControl: class extends t.Evented { - constructor(e2) { - super(), this.options = t.extend({}, ua, e2), t.bindAll(["_onSuccess", "_onError", "_onZoom", "_finish", "_setupUI", "_updateCamera", "_updateMarker"], this); - } - onAdd(t2) { - var e2; - return this._map = t2, this._container = r.create("div", "maplibregl-ctrl maplibregl-ctrl-group mapboxgl-ctrl mapboxgl-ctrl-group"), e2 = this._setupUI, void 0 !== da ? e2(da) : void 0 !== window.navigator.permissions ? window.navigator.permissions.query({ name: "geolocation" }).then((t3) => { - da = "denied" !== t3.state, e2(da); - }) : (da = !!window.navigator.geolocation, e2(da)), this._container; - } - onRemove() { - void 0 !== this._geolocationWatchID && (window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0), this.options.showUserLocation && this._userLocationDotMarker && this._userLocationDotMarker.remove(), this.options.showAccuracyCircle && this._accuracyCircleMarker && this._accuracyCircleMarker.remove(), r.remove(this._container), this._map.off("zoom", this._onZoom), this._map = void 0, ma = 0, _a = false; + for (; Math.abs(e2.lng - o2.center.lng) > 180; ) { + var s2 = o2.locationPoint(e2); + if (s2.x >= 0 && s2.y >= 0 && s2.x <= o2.width && s2.y <= o2.height) + break; + e2.lng > o2.center.lng ? e2.lng -= 360 : e2.lng += 360; } - _isOutOfMapMaxBounds(t2) { - const e2 = this._map.getMaxBounds(), i2 = t2.coords; - return e2 && (i2.longitude < e2.getWest() || i2.longitude > e2.getEast() || i2.latitude < e2.getSouth() || i2.latitude > e2.getNorth()); + return e2; + } + Ar.prototype.down = function(t2, e2) { + this.mouseRotate.mousedown(t2, e2), this.mousePitch && this.mousePitch.mousedown(t2, e2), i.disableDrag(); + }, Ar.prototype.move = function(t2, e2) { + var i2 = this.map, o2 = this.mouseRotate.mousemoveWindow(t2, e2); + if (o2 && o2.bearingDelta && i2.setBearing(i2.getBearing() + o2.bearingDelta), this.mousePitch) { + var r2 = this.mousePitch.mousemoveWindow(t2, e2); + r2 && r2.pitchDelta && i2.setPitch(i2.getPitch() + r2.pitchDelta); + } + }, Ar.prototype.off = function() { + var t2 = this.element; + i.removeEventListener(t2, "mousedown", this.mousedown), i.removeEventListener(t2, "touchstart", this.touchstart, { passive: false }), i.removeEventListener(t2, "touchmove", this.touchmove), i.removeEventListener(t2, "touchend", this.touchend), i.removeEventListener(t2, "touchcancel", this.reset), this.offTemp(); + }, Ar.prototype.offTemp = function() { + i.enableDrag(), i.removeEventListener(t.window, "mousemove", this.mousemove), i.removeEventListener(t.window, "mouseup", this.mouseup); + }, Ar.prototype.mousedown = function(e2) { + this.down(t.extend({}, e2, { ctrlKey: true, preventDefault: function() { + return e2.preventDefault(); + } }), i.mousePos(this.element, e2)), i.addEventListener(t.window, "mousemove", this.mousemove), i.addEventListener(t.window, "mouseup", this.mouseup); + }, Ar.prototype.mousemove = function(t2) { + this.move(t2, i.mousePos(this.element, t2)); + }, Ar.prototype.mouseup = function(t2) { + this.mouseRotate.mouseupWindow(t2), this.mousePitch && this.mousePitch.mouseupWindow(t2), this.offTemp(); + }, Ar.prototype.touchstart = function(t2) { + 1 !== t2.targetTouches.length ? this.reset() : (this._startPos = this._lastPos = i.touchPos(this.element, t2.targetTouches)[0], this.down({ type: "mousedown", button: 0, ctrlKey: true, preventDefault: function() { + return t2.preventDefault(); + } }, this._startPos)); + }, Ar.prototype.touchmove = function(t2) { + 1 !== t2.targetTouches.length ? this.reset() : (this._lastPos = i.touchPos(this.element, t2.targetTouches)[0], this.move({ preventDefault: function() { + return t2.preventDefault(); + } }, this._lastPos)); + }, Ar.prototype.touchend = function(t2) { + 0 === t2.targetTouches.length && this._startPos && this._lastPos && this._startPos.dist(this._lastPos) < this._clickTolerance && this.element.click(), this.reset(); + }, Ar.prototype.reset = function() { + this.mouseRotate.reset(), this.mousePitch && this.mousePitch.reset(), delete this._startPos, delete this._lastPos, this.offTemp(); + }; + var Lr = { center: "translate(-50%,-50%)", top: "translate(-50%,0)", "top-left": "translate(0,0)", "top-right": "translate(-100%,0)", bottom: "translate(-50%,-100%)", "bottom-left": "translate(0,-100%)", "bottom-right": "translate(-100%,-100%)", left: "translate(0,-50%)", right: "translate(-100%,-50%)" }; + function Rr(t2, e2, i2) { + var o2 = t2.classList; + for (var r2 in Lr) + o2.remove("mapboxgl-" + i2 + "-anchor-" + r2); + o2.add("mapboxgl-" + i2 + "-anchor-" + e2); + } + var kr, Br = function(e2) { + function o2(o3, r2) { + if (e2.call(this), (o3 instanceof t.window.HTMLElement || r2) && (o3 = t.extend({ element: o3 }, r2)), t.bindAll(["_update", "_onMove", "_onUp", "_addDragHandler", "_onMapClick", "_onKeyPress"], this), this._anchor = o3 && o3.anchor || "center", this._color = o3 && o3.color || "#3FB1CE", this._scale = o3 && o3.scale || 1, this._draggable = o3 && o3.draggable || false, this._clickTolerance = o3 && o3.clickTolerance || 0, this._isDragging = false, this._state = "inactive", this._rotation = o3 && o3.rotation || 0, this._rotationAlignment = o3 && o3.rotationAlignment || "auto", this._pitchAlignment = o3 && o3.pitchAlignment && "auto" !== o3.pitchAlignment ? o3.pitchAlignment : this._rotationAlignment, o3 && o3.element) + this._element = o3.element, this._offset = t.Point.convert(o3 && o3.offset || [0, 0]); + else { + this._defaultMarker = true, this._element = i.create("div"), this._element.setAttribute("aria-label", "Map marker"); + var a2 = i.createNS("http://www.w3.org/2000/svg", "svg"); + a2.setAttributeNS(null, "display", "block"), a2.setAttributeNS(null, "height", "41px"), a2.setAttributeNS(null, "width", "27px"), a2.setAttributeNS(null, "viewBox", "0 0 27 41"); + var n2 = i.createNS("http://www.w3.org/2000/svg", "g"); + n2.setAttributeNS(null, "stroke", "none"), n2.setAttributeNS(null, "stroke-width", "1"), n2.setAttributeNS(null, "fill", "none"), n2.setAttributeNS(null, "fill-rule", "evenodd"); + var s2 = i.createNS("http://www.w3.org/2000/svg", "g"); + s2.setAttributeNS(null, "fill-rule", "nonzero"); + var l2 = i.createNS("http://www.w3.org/2000/svg", "g"); + l2.setAttributeNS(null, "transform", "translate(3.0, 29.0)"), l2.setAttributeNS(null, "fill", "#000000"); + for (var c3 = 0, u2 = [{ rx: "10.5", ry: "5.25002273" }, { rx: "10.5", ry: "5.25002273" }, { rx: "9.5", ry: "4.77275007" }, { rx: "8.5", ry: "4.29549936" }, { rx: "7.5", ry: "3.81822308" }, { rx: "6.5", ry: "3.34094679" }, { rx: "5.5", ry: "2.86367051" }, { rx: "4.5", ry: "2.38636864" }]; c3 < u2.length; c3 += 1) { + var h3 = u2[c3], p3 = i.createNS("http://www.w3.org/2000/svg", "ellipse"); + p3.setAttributeNS(null, "opacity", "0.04"), p3.setAttributeNS(null, "cx", "10.5"), p3.setAttributeNS(null, "cy", "5.80029008"), p3.setAttributeNS(null, "rx", h3.rx), p3.setAttributeNS(null, "ry", h3.ry), l2.appendChild(p3); + } + var d2 = i.createNS("http://www.w3.org/2000/svg", "g"); + d2.setAttributeNS(null, "fill", this._color); + var _24 = i.createNS("http://www.w3.org/2000/svg", "path"); + _24.setAttributeNS(null, "d", "M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"), d2.appendChild(_24); + var f2 = i.createNS("http://www.w3.org/2000/svg", "g"); + f2.setAttributeNS(null, "opacity", "0.25"), f2.setAttributeNS(null, "fill", "#000000"); + var m2 = i.createNS("http://www.w3.org/2000/svg", "path"); + m2.setAttributeNS(null, "d", "M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"), f2.appendChild(m2); + var g2 = i.createNS("http://www.w3.org/2000/svg", "g"); + g2.setAttributeNS(null, "transform", "translate(6.0, 7.0)"), g2.setAttributeNS(null, "fill", "#FFFFFF"); + var v3 = i.createNS("http://www.w3.org/2000/svg", "g"); + v3.setAttributeNS(null, "transform", "translate(8.0, 8.0)"); + var y3 = i.createNS("http://www.w3.org/2000/svg", "circle"); + y3.setAttributeNS(null, "fill", "#000000"), y3.setAttributeNS(null, "opacity", "0.25"), y3.setAttributeNS(null, "cx", "5.5"), y3.setAttributeNS(null, "cy", "5.5"), y3.setAttributeNS(null, "r", "5.4999962"); + var x2 = i.createNS("http://www.w3.org/2000/svg", "circle"); + x2.setAttributeNS(null, "fill", "#FFFFFF"), x2.setAttributeNS(null, "cx", "5.5"), x2.setAttributeNS(null, "cy", "5.5"), x2.setAttributeNS(null, "r", "5.4999962"), v3.appendChild(y3), v3.appendChild(x2), s2.appendChild(l2), s2.appendChild(d2), s2.appendChild(f2), s2.appendChild(g2), s2.appendChild(v3), a2.appendChild(s2), a2.setAttributeNS(null, "height", 41 * this._scale + "px"), a2.setAttributeNS(null, "width", 27 * this._scale + "px"), this._element.appendChild(a2), this._offset = t.Point.convert(o3 && o3.offset || [0, -14]); + } + this._element.classList.add("mapboxgl-marker"), this._element.addEventListener("dragstart", function(t2) { + t2.preventDefault(); + }), this._element.addEventListener("mousedown", function(t2) { + t2.preventDefault(); + }), Rr(this._element, this._anchor, "marker"), this._popup = null; } - _setErrorState() { + return e2 && (o2.__proto__ = e2), (o2.prototype = Object.create(e2 && e2.prototype)).constructor = o2, o2.prototype.addTo = function(t2) { + return this.remove(), this._map = t2, t2.getCanvasContainer().appendChild(this._element), t2.on("move", this._update), t2.on("moveend", this._update), this.setDraggable(this._draggable), this._update(), this._map.on("click", this._onMapClick), this; + }, o2.prototype.remove = function() { + return this._map && (this._map.off("click", this._onMapClick), this._map.off("move", this._update), this._map.off("moveend", this._update), this._map.off("mousedown", this._addDragHandler), this._map.off("touchstart", this._addDragHandler), this._map.off("mouseup", this._onUp), this._map.off("touchend", this._onUp), this._map.off("mousemove", this._onMove), this._map.off("touchmove", this._onMove), delete this._map), i.remove(this._element), this._popup && this._popup.remove(), this; + }, o2.prototype.getLngLat = function() { + return this._lngLat; + }, o2.prototype.setLngLat = function(e3) { + return this._lngLat = t.LngLat.convert(e3), this._pos = null, this._popup && this._popup.setLngLat(this._lngLat), this._update(), this; + }, o2.prototype.getElement = function() { + return this._element; + }, o2.prototype.setPopup = function(t2) { + if (this._popup && (this._popup.remove(), this._popup = null, this._element.removeEventListener("keypress", this._onKeyPress), this._originalTabIndex || this._element.removeAttribute("tabindex")), t2) { + if (!("offset" in t2.options)) { + var e3 = Math.sqrt(Math.pow(13.5, 2) / 2); + t2.options.offset = this._defaultMarker ? { top: [0, 0], "top-left": [0, 0], "top-right": [0, 0], bottom: [0, -38.1], "bottom-left": [e3, -1 * (24.6 + e3)], "bottom-right": [-e3, -1 * (24.6 + e3)], left: [13.5, -24.6], right: [-13.5, -24.6] } : this._offset; + } + this._popup = t2, this._lngLat && this._popup.setLngLat(this._lngLat), this._originalTabIndex = this._element.getAttribute("tabindex"), this._originalTabIndex || this._element.setAttribute("tabindex", "0"), this._element.addEventListener("keypress", this._onKeyPress); + } + return this; + }, o2.prototype._onKeyPress = function(t2) { + var e3 = t2.code, i2 = t2.charCode || t2.keyCode; + "Space" !== e3 && "Enter" !== e3 && 32 !== i2 && 13 !== i2 || this.togglePopup(); + }, o2.prototype._onMapClick = function(t2) { + var e3 = t2.originalEvent.target, i2 = this._element; + this._popup && (e3 === i2 || i2.contains(e3)) && this.togglePopup(); + }, o2.prototype.getPopup = function() { + return this._popup; + }, o2.prototype.togglePopup = function() { + var t2 = this._popup; + return t2 ? (t2.isOpen() ? t2.remove() : t2.addTo(this._map), this) : this; + }, o2.prototype._update = function(t2) { + if (this._map) { + this._map.transform.renderWorldCopies && (this._lngLat = Mr(this._lngLat, this._pos, this._map.transform)), this._pos = this._map.project(this._lngLat)._add(this._offset); + var e3 = ""; + "viewport" === this._rotationAlignment || "auto" === this._rotationAlignment ? e3 = "rotateZ(" + this._rotation + "deg)" : "map" === this._rotationAlignment && (e3 = "rotateZ(" + (this._rotation - this._map.getBearing()) + "deg)"); + var o3 = ""; + "viewport" === this._pitchAlignment || "auto" === this._pitchAlignment ? o3 = "rotateX(0deg)" : "map" === this._pitchAlignment && (o3 = "rotateX(" + this._map.getPitch() + "deg)"), t2 && "moveend" !== t2.type || (this._pos = this._pos.round()), i.setTransform(this._element, Lr[this._anchor] + " translate(" + this._pos.x + "px, " + this._pos.y + "px) " + o3 + " " + e3); + } + }, o2.prototype.getOffset = function() { + return this._offset; + }, o2.prototype.setOffset = function(e3) { + return this._offset = t.Point.convert(e3), this._update(), this; + }, o2.prototype._onMove = function(e3) { + if (!this._isDragging) { + var i2 = this._clickTolerance || this._map._clickTolerance; + this._isDragging = e3.point.dist(this._pointerdownPos) >= i2; + } + this._isDragging && (this._pos = e3.point.sub(this._positionDelta), this._lngLat = this._map.unproject(this._pos), this.setLngLat(this._lngLat), this._element.style.pointerEvents = "none", "pending" === this._state && (this._state = "active", this.fire(new t.Event("dragstart"))), this.fire(new t.Event("drag"))); + }, o2.prototype._onUp = function() { + this._element.style.pointerEvents = "auto", this._positionDelta = null, this._pointerdownPos = null, this._isDragging = false, this._map.off("mousemove", this._onMove), this._map.off("touchmove", this._onMove), "active" === this._state && this.fire(new t.Event("dragend")), this._state = "inactive"; + }, o2.prototype._addDragHandler = function(t2) { + this._element.contains(t2.originalEvent.target) && (t2.preventDefault(), this._positionDelta = t2.point.sub(this._pos).add(this._offset), this._pointerdownPos = t2.point, this._state = "pending", this._map.on("mousemove", this._onMove), this._map.on("touchmove", this._onMove), this._map.once("mouseup", this._onUp), this._map.once("touchend", this._onUp)); + }, o2.prototype.setDraggable = function(t2) { + return this._draggable = !!t2, this._map && (t2 ? (this._map.on("mousedown", this._addDragHandler), this._map.on("touchstart", this._addDragHandler)) : (this._map.off("mousedown", this._addDragHandler), this._map.off("touchstart", this._addDragHandler))), this; + }, o2.prototype.isDraggable = function() { + return this._draggable; + }, o2.prototype.setRotation = function(t2) { + return this._rotation = t2 || 0, this._update(), this; + }, o2.prototype.getRotation = function() { + return this._rotation; + }, o2.prototype.setRotationAlignment = function(t2) { + return this._rotationAlignment = t2 || "auto", this._update(), this; + }, o2.prototype.getRotationAlignment = function() { + return this._rotationAlignment; + }, o2.prototype.setPitchAlignment = function(t2) { + return this._pitchAlignment = t2 && "auto" !== t2 ? t2 : this._rotationAlignment, this._update(), this; + }, o2.prototype.getPitchAlignment = function() { + return this._pitchAlignment; + }, o2; + }(t.Evented), Or = { positionOptions: { enableHighAccuracy: false, maximumAge: 0, timeout: 6e3 }, fitBoundsOptions: { maxZoom: 15 }, trackUserLocation: false, showAccuracyCircle: true, showUserLocation: true }, Fr = 0, Ur = false, Nr = function(e2) { + function o2(i2) { + e2.call(this), this.options = t.extend({}, Or, i2), t.bindAll(["_onSuccess", "_onError", "_onZoom", "_finish", "_setupUI", "_updateCamera", "_updateMarker"], this); + } + return e2 && (o2.__proto__ = e2), (o2.prototype = Object.create(e2 && e2.prototype)).constructor = o2, o2.prototype.onAdd = function(e3) { + var o3; + return this._map = e3, this._container = i.create("div", "mapboxgl-ctrl mapboxgl-ctrl-group"), o3 = this._setupUI, void 0 !== kr ? o3(kr) : void 0 !== t.window.navigator.permissions ? t.window.navigator.permissions.query({ name: "geolocation" }).then(function(t2) { + o3(kr = "denied" !== t2.state); + }) : o3(kr = !!t.window.navigator.geolocation), this._container; + }, o2.prototype.onRemove = function() { + void 0 !== this._geolocationWatchID && (t.window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0), this.options.showUserLocation && this._userLocationDotMarker && this._userLocationDotMarker.remove(), this.options.showAccuracyCircle && this._accuracyCircleMarker && this._accuracyCircleMarker.remove(), i.remove(this._container), this._map.off("zoom", this._onZoom), this._map = void 0, Fr = 0, Ur = false; + }, o2.prototype._isOutOfMapMaxBounds = function(t2) { + var e3 = this._map.getMaxBounds(), i2 = t2.coords; + return e3 && (i2.longitude < e3.getWest() || i2.longitude > e3.getEast() || i2.latitude < e3.getSouth() || i2.latitude > e3.getNorth()); + }, o2.prototype._setErrorState = function() { switch (this._watchState) { case "WAITING_ACTIVE": - this._watchState = "ACTIVE_ERROR", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active", "mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error", "mapboxgl-ctrl-geolocate-active-error"); + this._watchState = "ACTIVE_ERROR", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"); break; case "ACTIVE_LOCK": - this._watchState = "ACTIVE_ERROR", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active", "mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error", "mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"); + this._watchState = "ACTIVE_ERROR", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"); break; case "BACKGROUND": - this._watchState = "BACKGROUND_ERROR", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background", "mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background-error", "mapboxgl-ctrl-geolocate-background-error"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"); - break; - case "ACTIVE_ERROR": - break; - default: - throw new Error(`Unexpected watchState ${this._watchState}`); + this._watchState = "BACKGROUND_ERROR", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"); } - } - _onSuccess(e2) { + }, o2.prototype._onSuccess = function(e3) { if (this._map) { - if (this._isOutOfMapMaxBounds(e2)) - return this._setErrorState(), this.fire(new t.Event("outofmaxbounds", e2)), this._updateMarker(), void this._finish(); + if (this._isOutOfMapMaxBounds(e3)) + return this._setErrorState(), this.fire(new t.Event("outofmaxbounds", e3)), this._updateMarker(), void this._finish(); if (this.options.trackUserLocation) - switch (this._lastKnownPosition = e2, this._watchState) { + switch (this._lastKnownPosition = e3, this._watchState) { case "WAITING_ACTIVE": case "ACTIVE_LOCK": case "ACTIVE_ERROR": - this._watchState = "ACTIVE_LOCK", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error", "mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active", "mapboxgl-ctrl-geolocate-active"); + this._watchState = "ACTIVE_LOCK", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active"); break; case "BACKGROUND": case "BACKGROUND_ERROR": - this._watchState = "BACKGROUND", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error", "mapboxgl-ctrl-geolocate-background-error"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background", "mapboxgl-ctrl-geolocate-background"); - break; - default: - throw new Error(`Unexpected watchState ${this._watchState}`); + this._watchState = "BACKGROUND", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"); } - this.options.showUserLocation && "OFF" !== this._watchState && this._updateMarker(e2), this.options.trackUserLocation && "ACTIVE_LOCK" !== this._watchState || this._updateCamera(e2), this.options.showUserLocation && this._dotElement.classList.remove("maplibregl-user-location-dot-stale", "mapboxgl-user-location-dot-stale"), this.fire(new t.Event("geolocate", e2)), this._finish(); - } - } - _updateCamera(e2) { - const i2 = new t.LngLat(e2.coords.longitude, e2.coords.latitude), o2 = e2.coords.accuracy, a2 = this._map.getBearing(), r2 = t.extend({ bearing: a2 }, this.options.fitBoundsOptions); - this._map.fitBounds(i2.toBounds(o2), r2, { geolocateSource: true }); - } - _updateMarker(e2) { - if (e2) { - const i2 = new t.LngLat(e2.coords.longitude, e2.coords.latitude); - this._accuracyCircleMarker.setLngLat(i2).addTo(this._map), this._userLocationDotMarker.setLngLat(i2).addTo(this._map), this._accuracy = e2.coords.accuracy, this.options.showUserLocation && this.options.showAccuracyCircle && this._updateCircleRadius(); + this.options.showUserLocation && "OFF" !== this._watchState && this._updateMarker(e3), this.options.trackUserLocation && "ACTIVE_LOCK" !== this._watchState || this._updateCamera(e3), this.options.showUserLocation && this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"), this.fire(new t.Event("geolocate", e3)), this._finish(); + } + }, o2.prototype._updateCamera = function(e3) { + var i2 = new t.LngLat(e3.coords.longitude, e3.coords.latitude), o3 = e3.coords.accuracy, r2 = this._map.getBearing(), a2 = t.extend({ bearing: r2 }, this.options.fitBoundsOptions); + this._map.fitBounds(i2.toBounds(o3), a2, { geolocateSource: true }); + }, o2.prototype._updateMarker = function(e3) { + if (e3) { + var i2 = new t.LngLat(e3.coords.longitude, e3.coords.latitude); + this._accuracyCircleMarker.setLngLat(i2).addTo(this._map), this._userLocationDotMarker.setLngLat(i2).addTo(this._map), this._accuracy = e3.coords.accuracy, this.options.showUserLocation && this.options.showAccuracyCircle && this._updateCircleRadius(); } else this._userLocationDotMarker.remove(), this._accuracyCircleMarker.remove(); - } - _updateCircleRadius() { - const t2 = this._map._container.clientHeight / 2, e2 = this._map.unproject([0, t2]), i2 = this._map.unproject([1, t2]), o2 = e2.distanceTo(i2), a2 = Math.ceil(2 * this._accuracy / o2); - this._circleElement.style.width = `${a2}px`, this._circleElement.style.height = `${a2}px`; - } - _onZoom() { + }, o2.prototype._updateCircleRadius = function() { + var t2 = this._map._container.clientHeight / 2, e3 = this._map.unproject([0, t2]), i2 = this._map.unproject([1, t2]), o3 = e3.distanceTo(i2), r2 = Math.ceil(2 * this._accuracy / o3); + this._circleElement.style.width = r2 + "px", this._circleElement.style.height = r2 + "px"; + }, o2.prototype._onZoom = function() { this.options.showUserLocation && this.options.showAccuracyCircle && this._updateCircleRadius(); - } - _onError(e2) { + }, o2.prototype._onError = function(e3) { if (this._map) { if (this.options.trackUserLocation) - if (1 === e2.code) { - this._watchState = "OFF", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active", "mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error", "mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background", "mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error", "mapboxgl-ctrl-geolocate-background-error"), this._geolocateButton.disabled = true; - const t2 = this._map._getUIString("GeolocateControl.LocationNotAvailable"); - this._geolocateButton.title = t2, this._geolocateButton.setAttribute("aria-label", t2), void 0 !== this._geolocationWatchID && this._clearWatch(); + if (1 === e3.code) { + this._watchState = "OFF", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"), this._geolocateButton.disabled = true; + var i2 = this._map._getUIString("GeolocateControl.LocationNotAvailable"); + this._geolocateButton.title = i2, this._geolocateButton.setAttribute("aria-label", i2), void 0 !== this._geolocationWatchID && this._clearWatch(); } else { - if (3 === e2.code && _a) + if (3 === e3.code && Ur) return; this._setErrorState(); } - "OFF" !== this._watchState && this.options.showUserLocation && this._dotElement.classList.add("maplibregl-user-location-dot-stale", "mapboxgl-user-location-dot-stale"), this.fire(new t.Event("error", e2)), this._finish(); + "OFF" !== this._watchState && this.options.showUserLocation && this._dotElement.classList.add("mapboxgl-user-location-dot-stale"), this.fire(new t.Event("error", e3)), this._finish(); } - } - _finish() { + }, o2.prototype._finish = function() { this._timeoutId && clearTimeout(this._timeoutId), this._timeoutId = void 0; - } - _setupUI(e2) { - if (this._container.addEventListener("contextmenu", (t2) => t2.preventDefault()), this._geolocateButton = r.create("button", "maplibregl-ctrl-geolocate mapboxgl-ctrl-geolocate", this._container), r.create("span", "maplibregl-ctrl-icon mapboxgl-ctrl-icon", this._geolocateButton).setAttribute("aria-hidden", "true"), this._geolocateButton.type = "button", false === e2) { + }, o2.prototype._setupUI = function(e3) { + var o3 = this; + if (this._container.addEventListener("contextmenu", function(t2) { + return t2.preventDefault(); + }), this._geolocateButton = i.create("button", "mapboxgl-ctrl-geolocate", this._container), i.create("span", "mapboxgl-ctrl-icon", this._geolocateButton).setAttribute("aria-hidden", true), this._geolocateButton.type = "button", false === e3) { t.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled."); - const e3 = this._map._getUIString("GeolocateControl.LocationNotAvailable"); - this._geolocateButton.disabled = true, this._geolocateButton.title = e3, this._geolocateButton.setAttribute("aria-label", e3); + var r2 = this._map._getUIString("GeolocateControl.LocationNotAvailable"); + this._geolocateButton.disabled = true, this._geolocateButton.title = r2, this._geolocateButton.setAttribute("aria-label", r2); } else { - const t2 = this._map._getUIString("GeolocateControl.FindMyLocation"); - this._geolocateButton.title = t2, this._geolocateButton.setAttribute("aria-label", t2); + var a2 = this._map._getUIString("GeolocateControl.FindMyLocation"); + this._geolocateButton.title = a2, this._geolocateButton.setAttribute("aria-label", a2); } - this.options.trackUserLocation && (this._geolocateButton.setAttribute("aria-pressed", "false"), this._watchState = "OFF"), this.options.showUserLocation && (this._dotElement = r.create("div", "maplibregl-user-location-dot mapboxgl-user-location-dot"), this._userLocationDotMarker = new ha(this._dotElement), this._circleElement = r.create("div", "maplibregl-user-location-accuracy-circle mapboxgl-user-location-accuracy-circle"), this._accuracyCircleMarker = new ha({ element: this._circleElement, pitchAlignment: "map" }), this.options.trackUserLocation && (this._watchState = "OFF"), this._map.on("zoom", this._onZoom)), this._geolocateButton.addEventListener("click", this.trigger.bind(this)), this._setup = true, this.options.trackUserLocation && this._map.on("movestart", (e3) => { - e3.geolocateSource || "ACTIVE_LOCK" !== this._watchState || e3.originalEvent && "resize" === e3.originalEvent.type || (this._watchState = "BACKGROUND", this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background", "mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active", "mapboxgl-ctrl-geolocate-active"), this.fire(new t.Event("trackuserlocationend"))); + this.options.trackUserLocation && (this._geolocateButton.setAttribute("aria-pressed", "false"), this._watchState = "OFF"), this.options.showUserLocation && (this._dotElement = i.create("div", "mapboxgl-user-location-dot"), this._userLocationDotMarker = new Br(this._dotElement), this._circleElement = i.create("div", "mapboxgl-user-location-accuracy-circle"), this._accuracyCircleMarker = new Br({ element: this._circleElement, pitchAlignment: "map" }), this.options.trackUserLocation && (this._watchState = "OFF"), this._map.on("zoom", this._onZoom)), this._geolocateButton.addEventListener("click", this.trigger.bind(this)), this._setup = true, this.options.trackUserLocation && this._map.on("movestart", function(e4) { + e4.geolocateSource || "ACTIVE_LOCK" !== o3._watchState || e4.originalEvent && "resize" === e4.originalEvent.type || (o3._watchState = "BACKGROUND", o3._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"), o3._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"), o3.fire(new t.Event("trackuserlocationend"))); }); - } - trigger() { + }, o2.prototype.trigger = function() { if (!this._setup) return t.warnOnce("Geolocate control triggered before added to a map"), false; if (this.options.trackUserLocation) { @@ -32367,285 +30780,274 @@ uniform ${i3} ${o3} u_${a3}; case "ACTIVE_LOCK": case "ACTIVE_ERROR": case "BACKGROUND_ERROR": - ma--, _a = false, this._watchState = "OFF", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active", "mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error", "mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background", "mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error", "mapboxgl-ctrl-geolocate-background-error"), this.fire(new t.Event("trackuserlocationend")); + Fr--, Ur = false, this._watchState = "OFF", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"), this.fire(new t.Event("trackuserlocationend")); break; case "BACKGROUND": - this._watchState = "ACTIVE_LOCK", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background", "mapboxgl-ctrl-geolocate-background"), this._lastKnownPosition && this._updateCamera(this._lastKnownPosition), this.fire(new t.Event("trackuserlocationstart")); - break; - default: - throw new Error(`Unexpected watchState ${this._watchState}`); + this._watchState = "ACTIVE_LOCK", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"), this._lastKnownPosition && this._updateCamera(this._lastKnownPosition), this.fire(new t.Event("trackuserlocationstart")); } switch (this._watchState) { case "WAITING_ACTIVE": - this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active", "mapboxgl-ctrl-geolocate-active"); + this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active"); break; case "ACTIVE_LOCK": - this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active", "mapboxgl-ctrl-geolocate-active"); + this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active"); break; - case "OFF": + case "ACTIVE_ERROR": + this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"); + break; + case "BACKGROUND": + this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"); break; - default: - throw new Error(`Unexpected watchState ${this._watchState}`); + case "BACKGROUND_ERROR": + this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"); } if ("OFF" === this._watchState && void 0 !== this._geolocationWatchID) this._clearWatch(); else if (void 0 === this._geolocationWatchID) { - let t2; - this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.setAttribute("aria-pressed", "true"), ma++, ma > 1 ? (t2 = { maximumAge: 6e5, timeout: 0 }, _a = true) : (t2 = this.options.positionOptions, _a = false), this._geolocationWatchID = window.navigator.geolocation.watchPosition(this._onSuccess, this._onError, t2); + var e3; + this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.setAttribute("aria-pressed", "true"), ++Fr > 1 ? (e3 = { maximumAge: 6e5, timeout: 0 }, Ur = true) : (e3 = this.options.positionOptions, Ur = false), this._geolocationWatchID = t.window.navigator.geolocation.watchPosition(this._onSuccess, this._onError, e3); } } else - window.navigator.geolocation.getCurrentPosition(this._onSuccess, this._onError, this.options.positionOptions), this._timeoutId = setTimeout(this._finish, 1e4); + t.window.navigator.geolocation.getCurrentPosition(this._onSuccess, this._onError, this.options.positionOptions), this._timeoutId = setTimeout(this._finish, 1e4); return true; + }, o2.prototype._clearWatch = function() { + t.window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0, this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.setAttribute("aria-pressed", "false"), this.options.showUserLocation && this._updateMarker(null); + }, o2; + }(t.Evented), Zr = { maxWidth: 100, unit: "metric" }, qr = function(e2) { + this.options = t.extend({}, Zr, e2), t.bindAll(["_onMove", "setUnit"], this); + }; + function jr(t2, e2, i2) { + var o2 = i2 && i2.maxWidth || 100, r2 = t2._container.clientHeight / 2, a2 = t2.unproject([0, r2]), n2 = t2.unproject([o2, r2]), s2 = a2.distanceTo(n2); + if (i2 && "imperial" === i2.unit) { + var l2 = 3.2808 * s2; + l2 > 5280 ? Vr(e2, o2, l2 / 5280, t2._getUIString("ScaleControl.Miles")) : Vr(e2, o2, l2, t2._getUIString("ScaleControl.Feet")); + } else + i2 && "nautical" === i2.unit ? Vr(e2, o2, s2 / 1852, t2._getUIString("ScaleControl.NauticalMiles")) : s2 >= 1e3 ? Vr(e2, o2, s2 / 1e3, t2._getUIString("ScaleControl.Kilometers")) : Vr(e2, o2, s2, t2._getUIString("ScaleControl.Meters")); + } + function Vr(t2, e2, i2, o2) { + var r2, a2, n2, s2 = (r2 = i2, (a2 = Math.pow(10, ("" + Math.floor(r2)).length - 1)) * (n2 = (n2 = r2 / a2) >= 10 ? 10 : n2 >= 5 ? 5 : n2 >= 3 ? 3 : n2 >= 2 ? 2 : n2 >= 1 ? 1 : function(t3) { + var e3 = Math.pow(10, Math.ceil(-Math.log(t3) / Math.LN10)); + return Math.round(t3 * e3) / e3; + }(n2))); + t2.style.width = e2 * (s2 / i2) + "px", t2.innerHTML = s2 + " " + o2; + } + qr.prototype.getDefaultPosition = function() { + return "bottom-left"; + }, qr.prototype._onMove = function() { + jr(this._map, this._container, this.options); + }, qr.prototype.onAdd = function(t2) { + return this._map = t2, this._container = i.create("div", "mapboxgl-ctrl mapboxgl-ctrl-scale", t2.getContainer()), this._map.on("move", this._onMove), this._onMove(), this._container; + }, qr.prototype.onRemove = function() { + i.remove(this._container), this._map.off("move", this._onMove), this._map = void 0; + }, qr.prototype.setUnit = function(t2) { + this.options.unit = t2, jr(this._map, this._container, this.options); + }; + var Gr = function(e2) { + this._fullscreen = false, e2 && e2.container && (e2.container instanceof t.window.HTMLElement ? this._container = e2.container : t.warnOnce("Full screen control 'container' must be a DOM element.")), t.bindAll(["_onClickFullscreen", "_changeIcon"], this), "onfullscreenchange" in t.window.document ? this._fullscreenchange = "fullscreenchange" : "onmozfullscreenchange" in t.window.document ? this._fullscreenchange = "mozfullscreenchange" : "onwebkitfullscreenchange" in t.window.document ? this._fullscreenchange = "webkitfullscreenchange" : "onmsfullscreenchange" in t.window.document && (this._fullscreenchange = "MSFullscreenChange"); + }; + Gr.prototype.onAdd = function(e2) { + return this._map = e2, this._container || (this._container = this._map.getContainer()), this._controlContainer = i.create("div", "mapboxgl-ctrl mapboxgl-ctrl-group"), this._checkFullscreenSupport() ? this._setupUI() : (this._controlContainer.style.display = "none", t.warnOnce("This device does not support fullscreen mode.")), this._controlContainer; + }, Gr.prototype.onRemove = function() { + i.remove(this._controlContainer), this._map = null, t.window.document.removeEventListener(this._fullscreenchange, this._changeIcon); + }, Gr.prototype._checkFullscreenSupport = function() { + return !!(t.window.document.fullscreenEnabled || t.window.document.mozFullScreenEnabled || t.window.document.msFullscreenEnabled || t.window.document.webkitFullscreenEnabled); + }, Gr.prototype._setupUI = function() { + var e2 = this._fullscreenButton = i.create("button", "mapboxgl-ctrl-fullscreen", this._controlContainer); + i.create("span", "mapboxgl-ctrl-icon", e2).setAttribute("aria-hidden", true), e2.type = "button", this._updateTitle(), this._fullscreenButton.addEventListener("click", this._onClickFullscreen), t.window.document.addEventListener(this._fullscreenchange, this._changeIcon); + }, Gr.prototype._updateTitle = function() { + var t2 = this._getTitle(); + this._fullscreenButton.setAttribute("aria-label", t2), this._fullscreenButton.title = t2; + }, Gr.prototype._getTitle = function() { + return this._map._getUIString(this._isFullscreen() ? "FullscreenControl.Exit" : "FullscreenControl.Enter"); + }, Gr.prototype._isFullscreen = function() { + return this._fullscreen; + }, Gr.prototype._changeIcon = function() { + (t.window.document.fullscreenElement || t.window.document.mozFullScreenElement || t.window.document.webkitFullscreenElement || t.window.document.msFullscreenElement) === this._container !== this._fullscreen && (this._fullscreen = !this._fullscreen, this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"), this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"), this._updateTitle()); + }, Gr.prototype._onClickFullscreen = function() { + this._isFullscreen() ? t.window.document.exitFullscreen ? t.window.document.exitFullscreen() : t.window.document.mozCancelFullScreen ? t.window.document.mozCancelFullScreen() : t.window.document.msExitFullscreen ? t.window.document.msExitFullscreen() : t.window.document.webkitCancelFullScreen && t.window.document.webkitCancelFullScreen() : this._container.requestFullscreen ? this._container.requestFullscreen() : this._container.mozRequestFullScreen ? this._container.mozRequestFullScreen() : this._container.msRequestFullscreen ? this._container.msRequestFullscreen() : this._container.webkitRequestFullscreen && this._container.webkitRequestFullscreen(); + }; + var Wr = { closeButton: true, closeOnClick: true, focusAfterOpen: true, className: "", maxWidth: "240px" }, Xr = ["a[href]", "[tabindex]:not([tabindex='-1'])", "[contenteditable]:not([contenteditable='false'])", "button:not([disabled])", "input:not([disabled])", "select:not([disabled])", "textarea:not([disabled])"].join(", "), Hr = function(e2) { + function o2(i2) { + e2.call(this), this.options = t.extend(Object.create(Wr), i2), t.bindAll(["_update", "_onClose", "remove", "_onMouseMove", "_onMouseUp", "_onDrag"], this); } - _clearWatch() { - window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0, this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.setAttribute("aria-pressed", "false"), this.options.showUserLocation && this._updateMarker(null); - } - }, AttributionControl: ta, LogoControl: ea, ScaleControl: class { - constructor(e2) { - this.options = t.extend({}, pa, e2), t.bindAll(["_onMove", "setUnit"], this); - } - getDefaultPosition() { - return "bottom-left"; - } - _onMove() { - fa(this._map, this._container, this.options); - } - onAdd(t2) { - return this._map = t2, this._container = r.create("div", "maplibregl-ctrl maplibregl-ctrl-scale mapboxgl-ctrl mapboxgl-ctrl-scale", t2.getContainer()), this._map.on("move", this._onMove), this._onMove(), this._container; - } - onRemove() { - r.remove(this._container), this._map.off("move", this._onMove), this._map = void 0; - } - setUnit(t2) { - this.options.unit = t2, fa(this._map, this._container, this.options); - } - }, FullscreenControl: class { - constructor(e2) { - this._fullscreen = false, e2 && e2.container && (e2.container instanceof HTMLElement ? this._container = e2.container : t.warnOnce("Full screen control 'container' must be a DOM element.")), t.bindAll(["_onClickFullscreen", "_changeIcon"], this), "onfullscreenchange" in document ? this._fullscreenchange = "fullscreenchange" : "onmozfullscreenchange" in document ? this._fullscreenchange = "mozfullscreenchange" : "onwebkitfullscreenchange" in document ? this._fullscreenchange = "webkitfullscreenchange" : "onmsfullscreenchange" in document && (this._fullscreenchange = "MSFullscreenChange"); - } - onAdd(e2) { - return this._map = e2, this._container || (this._container = this._map.getContainer()), this._controlContainer = r.create("div", "maplibregl-ctrl maplibregl-ctrl-group mapboxgl-ctrl mapboxgl-ctrl-group"), this._checkFullscreenSupport() ? this._setupUI() : (this._controlContainer.style.display = "none", t.warnOnce("This device does not support fullscreen mode.")), this._controlContainer; - } - onRemove() { - r.remove(this._controlContainer), this._map = null, window.document.removeEventListener(this._fullscreenchange, this._changeIcon); - } - _checkFullscreenSupport() { - return !!(document.fullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled || document.webkitFullscreenEnabled); - } - _setupUI() { - const t2 = this._fullscreenButton = r.create("button", "maplibregl-ctrl-fullscreen mapboxgl-ctrl-fullscreen", this._controlContainer); - r.create("span", "maplibregl-ctrl-icon mapboxgl-ctrl-icon", t2).setAttribute("aria-hidden", "true"), t2.type = "button", this._updateTitle(), this._fullscreenButton.addEventListener("click", this._onClickFullscreen), window.document.addEventListener(this._fullscreenchange, this._changeIcon); - } - _updateTitle() { - const t2 = this._getTitle(); - this._fullscreenButton.setAttribute("aria-label", t2), this._fullscreenButton.title = t2; - } - _getTitle() { - return this._map._getUIString(this._isFullscreen() ? "FullscreenControl.Exit" : "FullscreenControl.Enter"); - } - _isFullscreen() { - return this._fullscreen; - } - _changeIcon() { - (window.document.fullscreenElement || window.document.mozFullScreenElement || window.document.webkitFullscreenElement || window.document.msFullscreenElement) === this._container !== this._fullscreen && (this._fullscreen = !this._fullscreen, this._fullscreenButton.classList.toggle("maplibregl-ctrl-shrink"), this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"), this._fullscreenButton.classList.toggle("maplibregl-ctrl-fullscreen"), this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"), this._updateTitle()); - } - _onClickFullscreen() { - this._isFullscreen() ? window.document.exitFullscreen ? window.document.exitFullscreen() : window.document.mozCancelFullScreen ? window.document.mozCancelFullScreen() : window.document.msExitFullscreen ? window.document.msExitFullscreen() : window.document.webkitCancelFullScreen && window.document.webkitCancelFullScreen() : this._container.requestFullscreen ? this._container.requestFullscreen() : this._container.mozRequestFullScreen ? this._container.mozRequestFullScreen() : this._container.msRequestFullscreen ? this._container.msRequestFullscreen() : this._container.webkitRequestFullscreen && this._container.webkitRequestFullscreen(); - } - }, TerrainControl: class { - constructor(e2) { - this.options = e2, t.bindAll(["_toggleTerrain", "_updateTerrainIcon"], this); - } - onAdd(t2) { - return this._map = t2, this._container = r.create("div", "maplibregl-ctrl maplibregl-ctrl-group mapboxgl-ctrl mapboxgl-ctrl-group"), this._terrainButton = r.create("button", "maplibregl-ctrl-terrain mapboxgl-ctrl-terrain", this._container), r.create("span", "maplibregl-ctrl-icon mapboxgl-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() { - r.remove(this._container), this._map.off("terrain", this._updateTerrainIcon), this._map = void 0; - } - _toggleTerrain() { - this._map.getTerrain() ? this._map.setTerrain(null) : this._map.setTerrain(this.options), this._updateTerrainIcon(); - } - _updateTerrainIcon() { - this._terrainButton.classList.remove("maplibregl-ctrl-terrain", "mapboxgl-ctrl-terrain"), this._terrainButton.classList.remove("maplibregl-ctrl-terrain-enabled", "mapboxgl-ctrl-terrain-enabled"), this._map.style.terrain ? (this._terrainButton.classList.add("maplibregl-ctrl-terrain-enabled", "mapboxgl-ctrl-terrain-enabled"), this._terrainButton.title = this._map._getUIString("TerrainControl.disableTerrain")) : (this._terrainButton.classList.add("maplibregl-ctrl-terrain", "mapboxgl-ctrl-terrain"), this._terrainButton.title = this._map._getUIString("TerrainControl.enableTerrain")); - } - }, Popup: class extends t.Evented { - constructor(e2) { - super(), this.options = t.extend(Object.create(xa), e2), t.bindAll(["_update", "_onClose", "remove", "_onMouseMove", "_onMouseUp", "_onDrag"], this); - } - addTo(e2) { - return this._map && this.remove(), this._map = e2, this.options.closeOnClick && this._map.on("click", this._onClose), this.options.closeOnMove && this._map.on("move", this._onClose), this._map.on("remove", this.remove), this._update(), this._focusFirstElement(), this._trackPointer ? (this._map.on("mousemove", this._onMouseMove), this._map.on("mouseup", this._onMouseUp), this._container && this._container.classList.add("maplibregl-popup-track-pointer", "mapboxgl-popup-track-pointer"), this._map._canvasContainer.classList.add("maplibregl-track-pointer", "mapboxgl-track-pointer")) : this._map.on("move", this._update), this.fire(new t.Event("open")), this; - } - isOpen() { + return e2 && (o2.__proto__ = e2), (o2.prototype = Object.create(e2 && e2.prototype)).constructor = o2, o2.prototype.addTo = function(e3) { + return this._map && this.remove(), this._map = e3, this.options.closeOnClick && this._map.on("click", this._onClose), this.options.closeOnMove && this._map.on("move", this._onClose), this._map.on("remove", this.remove), this._update(), this._focusFirstElement(), this._trackPointer ? (this._map.on("mousemove", this._onMouseMove), this._map.on("mouseup", this._onMouseUp), this._container && this._container.classList.add("mapboxgl-popup-track-pointer"), this._map._canvasContainer.classList.add("mapboxgl-track-pointer")) : this._map.on("move", this._update), this.fire(new t.Event("open")), this; + }, o2.prototype.isOpen = function() { return !!this._map; - } - remove() { - return this._content && r.remove(this._content), this._container && (r.remove(this._container), delete this._container), this._map && (this._map.off("move", this._update), this._map.off("move", this._onClose), this._map.off("click", this._onClose), this._map.off("remove", this.remove), this._map.off("mousemove", this._onMouseMove), this._map.off("mouseup", this._onMouseUp), this._map.off("drag", this._onDrag), delete this._map), this.fire(new t.Event("close")), this; - } - getLngLat() { + }, o2.prototype.remove = function() { + return this._content && i.remove(this._content), this._container && (i.remove(this._container), delete this._container), this._map && (this._map.off("move", this._update), this._map.off("move", this._onClose), this._map.off("click", this._onClose), this._map.off("remove", this.remove), this._map.off("mousemove", this._onMouseMove), this._map.off("mouseup", this._onMouseUp), this._map.off("drag", this._onDrag), delete this._map), this.fire(new t.Event("close")), this; + }, o2.prototype.getLngLat = function() { return this._lngLat; - } - setLngLat(e2) { - return this._lngLat = t.LngLat.convert(e2), this._pos = null, this._trackPointer = false, this._update(), this._map && (this._map.on("move", this._update), this._map.off("mousemove", this._onMouseMove), this._container && this._container.classList.remove("maplibregl-popup-track-pointer", "mapboxgl-popup-track-pointer"), this._map._canvasContainer.classList.remove("maplibregl-track-pointer", "mapboxgl-track-pointer")), this; - } - trackPointer() { - return this._trackPointer = true, this._pos = null, this._update(), this._map && (this._map.off("move", this._update), this._map.on("mousemove", this._onMouseMove), this._map.on("drag", this._onDrag), this._container && this._container.classList.add("maplibregl-popup-track-pointer", "mapboxgl-popup-track-pointer"), this._map._canvasContainer.classList.add("maplibregl-track-pointer", "mapboxgl-track-pointer")), this; - } - getElement() { + }, o2.prototype.setLngLat = function(e3) { + return this._lngLat = t.LngLat.convert(e3), this._pos = null, this._trackPointer = false, this._update(), this._map && (this._map.on("move", this._update), this._map.off("mousemove", this._onMouseMove), this._container && this._container.classList.remove("mapboxgl-popup-track-pointer"), this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")), this; + }, o2.prototype.trackPointer = function() { + return this._trackPointer = true, this._pos = null, this._update(), this._map && (this._map.off("move", this._update), this._map.on("mousemove", this._onMouseMove), this._map.on("drag", this._onDrag), this._container && this._container.classList.add("mapboxgl-popup-track-pointer"), this._map._canvasContainer.classList.add("mapboxgl-track-pointer")), this; + }, o2.prototype.getElement = function() { return this._container; - } - setText(t2) { - return this.setDOMContent(document.createTextNode(t2)); - } - setHTML(t2) { - const e2 = document.createDocumentFragment(), i2 = document.createElement("body"); - let o2; - for (i2.innerHTML = t2; o2 = i2.firstChild, o2; ) - e2.appendChild(o2); - return this.setDOMContent(e2); - } - getMaxWidth() { + }, o2.prototype.setText = function(e3) { + return this.setDOMContent(t.window.document.createTextNode(e3)); + }, o2.prototype.setHTML = function(e3) { + var i2, o3 = t.window.document.createDocumentFragment(), r2 = t.window.document.createElement("body"); + for (r2.innerHTML = e3; i2 = r2.firstChild; ) + o3.appendChild(i2); + return this.setDOMContent(o3); + }, o2.prototype.getMaxWidth = function() { return this._container && this._container.style.maxWidth; - } - setMaxWidth(t2) { + }, o2.prototype.setMaxWidth = function(t2) { return this.options.maxWidth = t2, this._update(), this; - } - setDOMContent(t2) { + }, o2.prototype.setDOMContent = function(t2) { if (this._content) for (; this._content.hasChildNodes(); ) this._content.firstChild && this._content.removeChild(this._content.firstChild); else - this._content = r.create("div", "maplibregl-popup-content mapboxgl-popup-content", this._container); + this._content = i.create("div", "mapboxgl-popup-content", this._container); return this._content.appendChild(t2), this._createCloseButton(), this._update(), this._focusFirstElement(), this; - } - addClassName(t2) { + }, o2.prototype.addClassName = function(t2) { this._container && this._container.classList.add(t2); - } - removeClassName(t2) { + }, o2.prototype.removeClassName = function(t2) { this._container && this._container.classList.remove(t2); - } - setOffset(t2) { + }, o2.prototype.setOffset = function(t2) { return this.options.offset = t2, this._update(), this; - } - toggleClassName(t2) { + }, o2.prototype.toggleClassName = function(t2) { if (this._container) return this._container.classList.toggle(t2); - } - _createCloseButton() { - this.options.closeButton && (this._closeButton = r.create("button", "maplibregl-popup-close-button mapboxgl-popup-close-button", this._content), this._closeButton.type = "button", this._closeButton.setAttribute("aria-label", "Close popup"), this._closeButton.innerHTML = "×", this._closeButton.addEventListener("click", this._onClose)); - } - _onMouseUp(t2) { + }, o2.prototype._createCloseButton = function() { + this.options.closeButton && (this._closeButton = i.create("button", "mapboxgl-popup-close-button", this._content), this._closeButton.type = "button", this._closeButton.setAttribute("aria-label", "Close popup"), this._closeButton.innerHTML = "×", this._closeButton.addEventListener("click", this._onClose)); + }, o2.prototype._onMouseUp = function(t2) { this._update(t2.point); - } - _onMouseMove(t2) { + }, o2.prototype._onMouseMove = function(t2) { this._update(t2.point); - } - _onDrag(t2) { + }, o2.prototype._onDrag = function(t2) { this._update(t2.point); - } - _update(t2) { - if (!this._map || !this._lngLat && !this._trackPointer || !this._content) - return; - if (this._container || (this._container = r.create("div", "maplibregl-popup mapboxgl-popup", this._map.getContainer()), this._tip = r.create("div", "maplibregl-popup-tip mapboxgl-popup-tip", this._container), this._container.appendChild(this._content), this.options.className && this.options.className.split(" ").forEach((t3) => this._container.classList.add(t3)), this._trackPointer && this._container.classList.add("maplibregl-popup-track-pointer", "mapboxgl-popup-track-pointer")), this.options.maxWidth && this._container.style.maxWidth !== this.options.maxWidth && (this._container.style.maxWidth = this.options.maxWidth), this._map.transform.renderWorldCopies && !this._trackPointer && (this._lngLat = na(this._lngLat, this._pos, this._map.transform)), this._trackPointer && !t2) - return; - const e2 = this._pos = this._trackPointer && t2 ? t2 : this._map.project(this._lngLat); - let i2 = this.options.anchor; - const o2 = ya(this.options.offset); - if (!i2) { - const t3 = this._container.offsetWidth, a3 = this._container.offsetHeight; - let r2; - r2 = e2.y + o2.bottom.y < a3 ? ["top"] : e2.y > this._map.transform.height - a3 ? ["bottom"] : [], e2.x < t3 / 2 ? r2.push("left") : e2.x > this._map.transform.width - t3 / 2 && r2.push("right"), i2 = 0 === r2.length ? "bottom" : r2.join("-"); - } - const a2 = e2.add(o2[i2]).round(); - r.setTransform(this._container, `${la[i2]} translate(${a2.x}px,${a2.y}px)`), ca(this._container, i2, "popup"); - } - _focusFirstElement() { - if (!this.options.focusAfterOpen || !this._container) - return; - const t2 = this._container.querySelector(va); - t2 && t2.focus(); - } - _onClose() { + }, o2.prototype._update = function(e3) { + var o3 = this; + if (this._map && (this._lngLat || this._trackPointer) && this._content && (this._container || (this._container = i.create("div", "mapboxgl-popup", this._map.getContainer()), this._tip = i.create("div", "mapboxgl-popup-tip", this._container), this._container.appendChild(this._content), this.options.className && this.options.className.split(" ").forEach(function(t2) { + return o3._container.classList.add(t2); + }), this._trackPointer && this._container.classList.add("mapboxgl-popup-track-pointer")), this.options.maxWidth && this._container.style.maxWidth !== this.options.maxWidth && (this._container.style.maxWidth = this.options.maxWidth), this._map.transform.renderWorldCopies && !this._trackPointer && (this._lngLat = Mr(this._lngLat, this._pos, this._map.transform)), !this._trackPointer || e3)) { + var r2 = this._pos = this._trackPointer && e3 ? e3 : this._map.project(this._lngLat), a2 = this.options.anchor, n2 = function e4(i2) { + if (i2) { + if ("number" == typeof i2) { + var o4 = Math.round(Math.sqrt(0.5 * Math.pow(i2, 2))); + return { center: new t.Point(0, 0), top: new t.Point(0, i2), "top-left": new t.Point(o4, o4), "top-right": new t.Point(-o4, o4), bottom: new t.Point(0, -i2), "bottom-left": new t.Point(o4, -o4), "bottom-right": new t.Point(-o4, -o4), left: new t.Point(i2, 0), right: new t.Point(-i2, 0) }; + } + if (i2 instanceof t.Point || Array.isArray(i2)) { + var r3 = t.Point.convert(i2); + return { center: r3, top: r3, "top-left": r3, "top-right": r3, bottom: r3, "bottom-left": r3, "bottom-right": r3, left: r3, right: r3 }; + } + return { center: t.Point.convert(i2.center || [0, 0]), top: t.Point.convert(i2.top || [0, 0]), "top-left": t.Point.convert(i2["top-left"] || [0, 0]), "top-right": t.Point.convert(i2["top-right"] || [0, 0]), bottom: t.Point.convert(i2.bottom || [0, 0]), "bottom-left": t.Point.convert(i2["bottom-left"] || [0, 0]), "bottom-right": t.Point.convert(i2["bottom-right"] || [0, 0]), left: t.Point.convert(i2.left || [0, 0]), right: t.Point.convert(i2.right || [0, 0]) }; + } + return e4(new t.Point(0, 0)); + }(this.options.offset); + if (!a2) { + var s2, l2 = this._container.offsetWidth, c3 = this._container.offsetHeight; + s2 = r2.y + n2.bottom.y < c3 ? ["top"] : r2.y > this._map.transform.height - c3 ? ["bottom"] : [], r2.x < l2 / 2 ? s2.push("left") : r2.x > this._map.transform.width - l2 / 2 && s2.push("right"), a2 = 0 === s2.length ? "bottom" : s2.join("-"); + } + var u2 = r2.add(n2[a2]).round(); + i.setTransform(this._container, Lr[a2] + " translate(" + u2.x + "px," + u2.y + "px)"), Rr(this._container, a2, "popup"); + } + }, o2.prototype._focusFirstElement = function() { + if (this.options.focusAfterOpen && this._container) { + var t2 = this._container.querySelector(Xr); + t2 && t2.focus(); + } + }, o2.prototype._onClose = function() { this.remove(); - } - }, Marker: ha, Style: ee, LngLat: t.LngLat, LngLatBounds: t.LngLatBounds, Point: t.pointGeometry, MercatorCoordinate: t.MercatorCoordinate, Evented: t.Evented, AJAXError: t.AJAXError, config: t.config, CanvasSource: P, GeoJSONSource: C, ImageSource: D, RasterDEMTileSource: I2, RasterTileSource: T, VectorTileSource: w, VideoSource: z, prewarm: function() { - j().acquire(G); + }, o2; + }(t.Evented), Kr = { version: t.version, supported: e, setRTLTextPlugin: t.setRTLTextPlugin, getRTLTextPluginStatus: t.getRTLTextPluginStatus, Map: Sr, NavigationControl: Dr, GeolocateControl: Nr, AttributionControl: yr, ScaleControl: qr, FullscreenControl: Gr, Popup: Hr, Marker: Br, Style: je, LngLat: t.LngLat, LngLatBounds: t.LngLatBounds, Point: t.Point, MercatorCoordinate: t.MercatorCoordinate, Evented: t.Evented, config: t.config, prewarm: function() { + Ft().acquire(Rt); }, clearPrewarmedResources: function() { - const t2 = q; - t2 && (t2.isPreloaded() && 1 === t2.numActive() ? (t2.release(G), q = null) : console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()")); - }, get version() { - return "2.4.0"; + var t2 = Bt; + t2 && (t2.isPreloaded() && 1 === t2.numActive() ? (t2.release(Rt), Bt = null) : console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()")); + }, get accessToken() { + return t.config.ACCESS_TOKEN; + }, set accessToken(e2) { + t.config.ACCESS_TOKEN = e2; + }, get baseApiUrl() { + return t.config.API_URL; + }, set baseApiUrl(e2) { + t.config.API_URL = e2; }, get workerCount() { - return Z2.workerCount; + return kt.workerCount; }, set workerCount(t2) { - Z2.workerCount = t2; + kt.workerCount = t2; }, get maxParallelImageRequests() { return t.config.MAX_PARALLEL_IMAGE_REQUESTS; }, set maxParallelImageRequests(e2) { t.config.MAX_PARALLEL_IMAGE_REQUESTS = e2; - }, clearStorage(e2) { + }, clearStorage: function(e2) { t.clearTileCache(e2); - }, workerUrl: "", addProtocol(e2, i2) { - t.config.REGISTERED_PROTOCOLS[e2] = i2; - }, removeProtocol(e2) { - delete t.config.REGISTERED_PROTOCOLS[e2]; - } }; - return Jo.extend(ba, { isSafari: t.isSafari, getPerformanceMetrics: t.PerformanceUtils.getPerformanceMetrics }), ba; + }, workerUrl: "" }; + return Kr; }); - var maplibregl$1 = maplibregl2; - return maplibregl$1; + return mapboxgl2; }); -})(maplibreGl); -const maplibregl = maplibreGl.exports; -class MapLibreLayer extends Layer { +})(mapboxGl); +const mapboxgl = mapboxGl.exports; +class MapBox extends Layer { constructor(options) { const baseOptions = Object.assign({}, options); - delete baseOptions.maplibreOptions; + delete baseOptions.accessToken; + delete baseOptions.style; + delete baseOptions.container; + delete baseOptions.xyz; super(baseOptions); - const container = document.createElement("div"); - container.style.position = "absolute"; - container.style.width = "100%"; - container.style.height = "100%"; - this.maplibreMap = new maplibregl.Map( - Object.assign({}, options.maplibreOptions, { - container, - attributionControl: false, - interactive: false, - trackResize: false - }) - ); - this.applyOpacity_(); + this.set("xyz", options.maplibreOptions.xyz); + this.set("xyz_custom", options.maplibreOptions.xyz_custom); + this.xyz_ = options.xyz; + if (options.accessToken) { + mapboxgl.accessToken = options.accessToken; + } + this.map_ = new mapboxgl.Map({ + container: options.maplibreOptions.container, + style: options.maplibreOptions.style, + attributionControl: false, + interactive: false + }); + this.maplibreMap = this.map_; + } + getMapBoxMap() { + return this.map_; } - setOpacity(opacity) { - super.setOpacity(opacity); - this.applyOpacity_(); + getMapLibreMap() { + return this.map_; } - applyOpacity_() { - const canvas = this.maplibreMap.getCanvas(); + render(frameState) { + const canvas = this.map_.getCanvas(); + const viewState = frameState.viewState; + canvas.style.position = "absolute"; + const visible = this.getVisible(); + canvas.style.display = visible ? "block" : "none"; const opacity = this.getOpacity().toString(); if (opacity !== canvas.style.opacity) { canvas.style.opacity = opacity; } - } - render(frameState) { - const viewState = frameState.viewState; - this.maplibreMap.jumpTo({ + const rotation = viewState.rotation; + if (rotation) { + this.map_.rotateTo(toDegrees(-rotation), { + animate: false + }); + } + this.map_.jumpTo({ center: toLonLat(viewState.center), zoom: viewState.zoom - 1, - bearing: toDegrees(-viewState.rotation), animate: false }); - const maplibreCanvas = this.maplibreMap.getCanvas(); - if (!maplibreCanvas.isConnected) { - this.getMapInternal().render(); - } else if (!sameSize(maplibreCanvas, frameState)) { - this.maplibreMap.resize(); + if (this.map_._frame) { + this.map_._frame.cancel(); + this.map_._frame = null; } - this.maplibreMap.redraw(); - return this.maplibreMap.getContainer(); + this.map_._render(); + return canvas; + } + setLayerVisibility(name, visible) { + this.map_.setLayoutProperty(name, "visibility", visible ? "visible" : "none"); + } + getStyle() { + return this.map_.getStyle(); + } + getXYZ() { + return this.get("xyz"); } -} -function sameSize(canvas, frameState) { - return canvas.width === Math.floor(frameState.size[0] * frameState.pixelRatio) || canvas.height === Math.floor(frameState.size[1] * frameState.pixelRatio); } const layersCache = /* @__PURE__ */ new Map(); class StorageStyleMapper { @@ -32712,6 +31114,7 @@ const SP_KEY_LANG = "lang"; const SP_KEY_LAYERS_OPEN = "layersOpen"; const SP_KEY_ADDRESS = "address"; const SP_KEY_VERSION = "version"; +const SP_KEY_MAPID = "map_id"; const SP_KEY_LAYERS = "layers"; const SP_KEY_BGLAYER = "bgLayer"; const SP_KEY_OPACITIES = "opacities"; @@ -33550,9 +31953,9 @@ function useMvtStyles() { } return baseStyle; } - const getvtstyleUrl_ = "http://localhost:8080/getvtstyle"; - const uploadvtstyleUrl_ = "http://localhost:8080/uploadvtstyle"; - const deletevtstyleUrl_ = "http://localhost:8080/deletevtstyle"; + const getvtstyleUrl_ = "/getvtstyle"; + const uploadvtstyleUrl_ = "/uploadvtstyle"; + const deletevtstyleUrl_ = "/deletevtstyle"; function unregisterStyle(styleId) { if (styleId === null) { return Promise.resolve(); @@ -33884,6 +32287,7 @@ const TILE_MATRIX_IDS = [ "20", "21" ]; +const DEFAULT_BGZINDEX = -200; const proxyWmsUrl = "https://map.geoportail.lu/ogcproxywms"; const remoteProxyWms = "https://map.geoportail.lu/httpsproxy"; function getOlcsExtent() { @@ -33912,6 +32316,9 @@ function createWmsLayer(layer) { ...url !== void 0 && url !== null || remoteProxyWms ? { crossOrigin: "anonymous" } : {} }) }); + olLayer.set("olcs.extent", getOlcsExtent()); + olLayer.set("label", name); + olLayer.set("id", id); return olLayer; } function createWmtsLayer(layer) { @@ -33943,6 +32350,9 @@ function createWmtsLayer(layer) { id } }); + olLayer.set("olcs.extent", getOlcsExtent()); + olLayer.set("label", name); + olLayer.set("id", id); return olLayer; } function createVectorLayer(vectorSources, bgLayer) { @@ -33957,7 +32367,7 @@ function createVectorLayer(vectorSources, bgLayer) { }, styleSource ); - const newBgBaseLayer = new MapLibreLayer({ + const newBgBaseLayer = new MapBox({ maplibreOptions: options, label: bgLayer.name, id: bgLayer.id, @@ -34063,13 +32473,13 @@ function useOpenLayers() { } function applyOnBgLayer(olMap2, callbackFunction) { const mapLayers = olMap2.getLayers(); - const bgLayer = mapLayers.getArray().find((layer) => layer.getZIndex() === -1); + const bgLayer = mapLayers.getArray().find((layer) => layer.getZIndex() === DEFAULT_BGZINDEX); if (bgLayer) callbackFunction(bgLayer); } function setBgLayer(olMap2, bgLayer, vectorSources) { const mapLayers = olMap2.getLayers(); - const currentBgLayerPos = mapLayers.getArray().findIndex((layer) => layer.getZIndex() === -1); + const currentBgLayerPos = mapLayers.getArray().findIndex((layer) => layer.getZIndex() === DEFAULT_BGZINDEX); let bgBaseLayer = void 0; if (bgLayer) { if (isLayerCached(bgLayer)) { @@ -34084,14 +32494,14 @@ function useOpenLayers() { } if (currentBgLayerPos >= 0) { if (bgBaseLayer) { - bgBaseLayer.setZIndex(-1); + bgBaseLayer.setZIndex(DEFAULT_BGZINDEX); mapLayers.setAt(currentBgLayerPos, bgBaseLayer); } else { mapLayers.removeAt(currentBgLayerPos); } } else { if (bgBaseLayer) { - bgBaseLayer.setZIndex(-1); + bgBaseLayer.setZIndex(DEFAULT_BGZINDEX); olMap2.addLayer(bgBaseLayer); } } @@ -34303,18 +32713,19 @@ function useControl(ControlClass, options) { const _sfc_main$z = /* @__PURE__ */ defineComponent({ __name: "attribution-control", props: { - className: { default: "geoportailv3-attribution" }, - collapsed: { type: Boolean, default: false }, - collapsible: { type: Boolean, default: false } + className: { type: String, required: false, default: "geoportailv3-attribution" }, + collapsed: { type: Boolean, required: false, default: false }, + collapsible: { type: Boolean, required: false, default: false } }, setup(__props) { const props = __props; useControl(Attribution, props); return (_ctx, _cache) => { - return createCommentVNode("", true); + return createCommentVNode("v-if", true); }; } }); +const AttributionControl = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/map-controls/attribution-control.vue"]]); function install(app2, { i18next, rerenderOn = ["languageChanged", "loaded", "added", "removed"] @@ -34471,9 +32882,9 @@ const _hoisted_1$p = ["title"]; const _sfc_main$y = /* @__PURE__ */ defineComponent({ __name: "location-control", props: { - className: { default: "location-button" }, - label: { default: "\uE800" }, - tipLabel: { default: "Location" } + className: { type: String, required: false, default: "location-button" }, + label: { type: String, required: false, default: "\uE800" }, + tipLabel: { type: String, required: false, default: "Location" } }, setup(__props) { const props = __props; @@ -34498,36 +32909,39 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({ }; } }); +const LocationControl = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/map-controls/location-control.vue"]]); const _sfc_main$x = /* @__PURE__ */ defineComponent({ __name: "fullscreen-control", props: { - className: null, - label: { default: "\uE01C" }, - labelActive: { default: "\uE02C" } + className: { type: String, required: false }, + label: { type: String, required: false, default: "\uE01C" }, + labelActive: { type: String, required: false, default: "\uE02C" } }, setup(__props) { const props = __props; useControl(FullScreen, props); return (_ctx, _cache) => { - return createCommentVNode("", true); + return createCommentVNode("v-if", true); }; } }); +const FullscreenControl = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/map-controls/fullscreen-control.vue"]]); const _sfc_main$w = /* @__PURE__ */ defineComponent({ __name: "zoom-control", props: { - className: null, - zoomInLabel: { default: "\uE032" }, - zoomOutLabel: { default: "\uE033" } + className: { type: String, required: false }, + zoomInLabel: { type: String, required: false, default: "\uE032" }, + zoomOutLabel: { type: String, required: false, default: "\uE033" } }, setup(__props) { const props = __props; useControl(Zoom, props); return (_ctx, _cache) => { - return createCommentVNode("", true); + return createCommentVNode("v-if", true); }; } }); +const ZoomControl = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/map-controls/zoom-control.vue"]]); class ZoomToExtent extends OlControlZoomToExtent { constructor(optOptions) { super(optOptions); @@ -34544,19 +32958,20 @@ class ZoomToExtent extends OlControlZoomToExtent { const _sfc_main$v = /* @__PURE__ */ defineComponent({ __name: "zoom-to-extent-control", props: { - className: null, - label: { default: "\uE01B" }, - tipLabel: null, - extent: null + className: { type: String, required: false }, + label: { type: String, required: false, default: "\uE01B" }, + tipLabel: { type: String, required: false }, + extent: { type: null, required: true } }, setup(__props) { const props = __props; useControl(ZoomToExtent, props); return (_ctx, _cache) => { - return createCommentVNode("", true); + return createCommentVNode("v-if", true); }; } }); +const ZoomToExtentControl = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/map-controls/zoom-to-extent-control.vue"]]); const _sfc_main$u = /* @__PURE__ */ defineComponent({ __name: "map-container", setup(__props) { @@ -34585,15 +33000,16 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({ ref: mapContainer, class: "h-full w-full bg-white absolute" }, [ - createVNode(_sfc_main$w), - createVNode(_sfc_main$v, { extent: DEFAULT_EXTENT }), - createVNode(_sfc_main$x), - createVNode(_sfc_main$z), - createVNode(_sfc_main$y) + createVNode(ZoomControl), + createVNode(ZoomToExtentControl, { extent: DEFAULT_EXTENT }), + createVNode(FullscreenControl), + createVNode(AttributionControl), + createVNode(LocationControl) ], 512); }; } }); +const MapContainer = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/map/map-container.vue"]]); function _typeof$4(obj) { "@babel/helpers - typeof"; return _typeof$4 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) { @@ -37759,20 +36175,68 @@ function useLayers() { toggleLayer }; } +const DEFAULT_LANG = "fr"; +const DEFAULT_LAYER_PANEL_OPENED = true; +const useAppStore = defineStore( + "app", + () => { + const lang = ref(DEFAULT_LANG); + const layersOpen = ref(DEFAULT_LAYER_PANEL_OPENED); + const mapId = ref(); + const remoteLayersOpen = ref(); + const styleEditorOpen = ref(false); + function setLang(language) { + lang.value = language; + } + function setLayersOpen(open2) { + layersOpen.value = open2; + } + function setRemoteLayersOpen(open2) { + remoteLayersOpen.value = open2; + } + function setMapId(id) { + mapId.value = id; + } + function openStyleEditorPanel() { + styleEditorOpen.value = true; + } + function closeStyleEditorPanel() { + styleEditorOpen.value = false; + } + return { + lang, + layersOpen, + mapId, + styleEditorOpen, + remoteLayersOpen, + setLang, + setLayersOpen, + setRemoteLayersOpen, + setMapId, + openStyleEditorPanel, + closeStyleEditorPanel + }; + }, + {} +); const BLANK_BACKGROUNDLAYER = { name: "blank", id: 0 }; function useBackgroundLayer() { + const appStore = useAppStore(); + const { mapId } = storeToRefs(appStore); const theme = useThemes(); const mapStore = useMapStore(); const layers = useLayers(); const defaultSelectedBgId = computed(() => { var _a; - const theme_name = (_a = useThemeStore().theme) == null ? void 0 : _a.name; - if (theme_name) { - const defaultBgLayers = bgConfigFixture().bg_layer_theme_defaults; - return defaultBgLayers[theme_name] || getDefaultSelectedId(); + if (!mapId.value) { + const themeName = (_a = useThemeStore().theme) == null ? void 0 : _a.name; + if (themeName) { + const defaultBgLayers = bgConfigFixture().bg_layer_theme_defaults; + return defaultBgLayers[themeName] || getDefaultSelectedId(); + } } return getDefaultSelectedId(); }); @@ -37816,6 +36280,412 @@ function useBackgroundLayer() { defaultSelectedBgId }; } +const _hoisted_1$o = ["title"]; +const _sfc_main$t = /* @__PURE__ */ defineComponent({ + __name: "background-selector-item", + props: { + bgTitle: { + type: String, + default: "" + }, + bgName: { + type: String, + default: "" + } + }, + setup(__props) { + const props = __props; + const { t } = useTranslation(); + const buttonTitle = computed(() => { + const localizedTitle = t(props.bgTitle); + const hasTitle = props.bgTitle.length > 0; + const localizedLayerName = `${t("Background layer:")} ${t(props.bgName)}`; + return `${localizedTitle}${hasTitle ? " - " : ""}${localizedLayerName}`; + }); + const buttonClasses = computed( + () => `h-full w-full rounded-sm lux-bg-sel-icon + lux-bg-sel-${props.bgName} + bg-${props.bgName}_sm + md:bg-${props.bgName} + hd:bg-${props.bgName}_sm_hi + hd_md:bg-${props.bgName}_hi` + ); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("button", { + title: unref(buttonTitle), + class: normalizeClass(unref(buttonClasses)) + }, null, 10, _hoisted_1$o); + }; + } +}); +const BackgroundSelectorItem = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/background-selector/background-selector-item.vue"]]); +const _hoisted_1$n = { class: "flex flex-row-reverse" }; +const _sfc_main$s = /* @__PURE__ */ defineComponent({ + __name: "background-selector", + props: { + isOpen: { + type: Boolean, + default: false + } + }, + setup(__props) { + const props = __props; + const { t } = useTranslation(); + const backgroundLayer = useBackgroundLayer(); + const mapStore = useMapStore(); + const themeStore = useThemeStore(); + const { bgLayer: bgLayerContext } = storeToRefs(mapStore); + const isOpen = ref(props.isOpen); + const bgLayers = ref([]); + const activeLayerId = computed( + () => { + var _a, _b; + return (_b = (_a = bgLayerContext.value) == null ? void 0 : _a.id) != null ? _b : backgroundLayer.getNullId(); + } + ); + const activeLayerName = computed( + () => { + var _a, _b; + return (_b = (_a = bgLayers.value) == null ? void 0 : _a.find((layer) => layer.id === activeLayerId.value)) == null ? void 0 : _b.name; + } + ); + watch( + () => themeStore.bgLayers, + (bgLayersContext) => { + bgLayers.value = bgConfigFixture().bg_layers.map( + (bgl) => Object.assign( + { + id: bgl.id + }, + bgLayersContext.find((l) => bgl.id === l.id), + { + name: bgl.icon_id + } + ) + ); + }, + { immediate: true } + ); + watch( + () => mapStore.bgLayer, + (bgLayerContext2, bgLayerContextOld) => { + const layersContext = mapStore.layers; + if (bgLayerContextOld === void 0 && bgLayerContext2 === null && (layersContext == null ? void 0 : layersContext.length) === 0) { + backgroundLayer.setBgLayer(backgroundLayer.defaultSelectedBgId.value); + if (bgLayerContext2 === null) { + useAlertNotificationsStore().addNotification( + t( + "Aucune couche n'\xE9tant d\xE9finie pour cette carte, une couche de fond a automatiquement \xE9t\xE9 ajout\xE9e.", + { ns: "client" } + ) + ); + } + } + } + ); + function setBackgroundLayer(layer) { + backgroundLayer.setBgLayer(layer.id); + isOpen.value = false; + } + function toggleSelector() { + isOpen.value = !isOpen.value; + } + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", _hoisted_1$n, [ + createBaseVNode("div", { + class: normalizeClass(["lux-bg-sel border border-black", isOpen.value === true ? "hidden" : "block"]) + }, [ + createVNode(BackgroundSelectorItem, { + "aria-expanded": isOpen.value, + "bg-title": "Select BG layer", + "bg-name": unref(activeLayerName), + onClick: toggleSelector + }, null, 8, ["aria-expanded", "bg-name"]) + ], 2), + createBaseVNode("div", { + class: normalizeClass(isOpen.value === true ? "flex flex-col md:flex-row" : "hidden") + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(bgLayers.value, (layer) => { + return openBlock(), createElementBlock("div", { + key: layer.id, + class: normalizeClass([ + "lux-bg-sel hover:bg-cyan-600", + layer.id === unref(activeLayerId) ? "border-red-500 border-2" : "border-black border" + ]) + }, [ + createVNode(BackgroundSelectorItem, { + "bg-name": layer.name, + onClick: ($event) => setBackgroundLayer(layer) + }, null, 8, ["bg-name", "onClick"]) + ], 2); + }), 128)) + ], 2) + ]); + }; + } +}); +const BackgroundSelector = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/background-selector/background-selector.vue"]]); +const _hoisted_1$m = /* @__PURE__ */ createBaseVNode("div", { class: "fixed inset-0 bg-gray-900 opacity-40 z-[1050]" }, null, -1); +const _hoisted_2$j = { class: "bg-white shadow-modal rounded-lg overflow-hidden w-[700px]" }; +const _hoisted_3$h = { class: "relative flex flex-row justify-center p-4 border-b-[1px]" }; +const _hoisted_4$f = { class: "text-xl" }; +const _hoisted_5$d = /* @__PURE__ */ createBaseVNode("span", { "aria-hidden": "true" }, "\xD7", -1); +const _hoisted_6$9 = [ + _hoisted_5$d +]; +const _hoisted_7$6 = { + key: 0, + class: "p-[15px] border-t-[1px]" +}; +const _hoisted_8$6 = { class: "flex flex-row justify-end" }; +const _sfc_main$r = /* @__PURE__ */ defineComponent({ + __name: "modal-dialog", + props: { + footer: { + type: Boolean, + default: true + }, + maxHeight: { + type: Boolean, + default: false + }, + title: String + }, + emits: ["close"], + setup(__props) { + const { t } = useTranslation(); + const modal = ref(); + onMounted(() => { + modal.value.focus(); + }); + const displayModal = shallowRef(true); + function close() { + displayModal.value = false; + } + return (_ctx, _cache) => { + return openBlock(), createBlock(Teleport, { to: "body" }, [ + createCommentVNode(" backdrop "), + _hoisted_1$m, + createCommentVNode(" modal "), + createVNode(Transition, { + appear: "", + "enter-active-class": "duration-200 ease-out", + "enter-from-class": "transform opacity-0 -translate-y-60", + "enter-to-class": "opacity-100 translate-y-0", + "leave-active-class": "duration-200 ease-in", + "leave-from-class": "opacity-100 translate-y-0", + "leave-to-class": "transform opacity-0 -translate-y-60", + onAfterLeave: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("close")) + }, { + default: withCtx(() => [ + unref(displayModal) ? (openBlock(), createElementBlock("div", { + key: 0, + role: "dialog", + ref_key: "modal", + ref: modal, + tabindex: "0", + onKeydown: _cache[2] || (_cache[2] = withKeys(($event) => close(), ["esc"])), + class: "fixed inset-x-0 inset-y-8 flex items-start justify-center z-[1100] outline-none" + }, [ + createBaseVNode("div", _hoisted_2$j, [ + createCommentVNode(" header (title)"), + createBaseVNode("div", _hoisted_3$h, [ + createBaseVNode("h4", _hoisted_4$f, toDisplayString(__props.title), 1), + createBaseVNode("button", { + type: "button", + class: "absolute right-2 top-1 text-slate-400 text-[24px]", + "data-dismiss": "modal", + "aria-label": "Close", + onClick: _cache[0] || (_cache[0] = ($event) => close()) + }, _hoisted_6$9) + ]), + createCommentVNode(" content slot "), + createBaseVNode("div", { + class: normalizeClass(["p-[15px] overflow-y-auto", __props.maxHeight ? "max-h-96" : "max-h-full"]) + }, [ + renderSlot(_ctx.$slots, "content") + ], 2), + createCommentVNode(" footer (optional)"), + __props.footer ? (openBlock(), createElementBlock("div", _hoisted_7$6, [ + createBaseVNode("div", _hoisted_8$6, [ + createBaseVNode("button", { + type: "button", + class: "lux-btn", + "data-dismiss": "modal", + onClick: _cache[1] || (_cache[1] = ($event) => close()) + }, toDisplayString(unref(t)("Close", { ns: "client" })), 1) + ]) + ])) : createCommentVNode("v-if", true) + ]) + ], 544)) : createCommentVNode("v-if", true) + ]), + _: 3 + }) + ]); + }; + } +}); +const ModalDialog = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/common/modal-dialog.vue"]]); +const useMetadataStore = defineStore( + "metadata", + () => { + const metadataId = ref(); + function setMetadataId(id) { + metadataId.value = id; + } + function clearMetadataId() { + metadataId.value = void 0; + } + return { + metadataId, + setMetadataId, + clearMetadataId + }; + }, + {} +); +const _hoisted_1$l = { + class: "mb-px", + key: "node.id" +}; +const _hoisted_2$i = ["aria-expanded", "data-cy"]; +const _hoisted_3$g = { class: "leading-6" }; +const _hoisted_4$e = ["aria-expanded", "data-cy"]; +const _hoisted_5$c = { class: "grow" }; +const _hoisted_6$8 = { class: "leading-6" }; +const _hoisted_7$5 = { + key: 1, + class: "flex text-tertiary pr-2" +}; +const _hoisted_8$5 = ["data-cy"]; +const _hoisted_9$3 = { class: "ml-1 hover:underline" }; +const _sfc_main$q = /* @__PURE__ */ defineComponent({ + __name: "layer-tree-node", + props: { + node: { type: null, required: true } + }, + emits: ["toggleLayer", "toggleParent"], + setup(__props, { emit: emit2 }) { + const props = __props; + const { t } = useTranslation(); + const { setMetadataId } = useMetadataStore(); + const isParent = !!props.node.children; + const isRoot = props.node.depth === 0; + const isMaxDepth = props.node.depth >= 10; + const label = computed(() => t(props.node.name, { ns: "client" })); + function toggleLayer(node) { + emit2("toggleLayer", node); + } + function toggleParent(node) { + emit2("toggleParent", node); + } + return (_ctx, _cache) => { + const _component_layer_tree_node = resolveComponent("layer-tree-node", true); + return isParent ? (openBlock(), createElementBlock("div", _hoisted_1$l, [ + createCommentVNode(" First level parents"), + __props.node.depth === 1 ? (openBlock(), createElementBlock("button", { + key: 0, + class: "group node-1 w-full text-left flex px-2 py-1.5 uppercase bg-tertiary", + "aria-expanded": __props.node.expanded, + onClick: _cache[0] || (_cache[0] = ($event) => toggleParent(__props.node)), + "data-cy": `parentLayerLabel-${__props.node.id}` + }, [ + createBaseVNode("div", { + class: normalizeClass(["grow", __props.node.expanded ? "text-white" : "text-secondary"]) + }, toDisplayString(unref(label)), 3), + createBaseVNode("div", _hoisted_3$g, [ + createBaseVNode("div", { + class: normalizeClass(["fa fa-sharp fa-solid group-hover:text-white text-primary", __props.node.expanded ? "fa-caret-up" : "fa-caret-down"]) + }, null, 2) + ]) + ], 8, _hoisted_2$i)) : __props.node.depth > 1 && !isMaxDepth ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + createCommentVNode(" Other parents"), + createBaseVNode("button", { + class: normalizeClass(["w-full text-left flex px-2 py-1.5 pl-2", __props.node.expanded ? "text-tertiary" : "bg-white text-primary"]), + "aria-expanded": __props.node.expanded, + onClick: _cache[1] || (_cache[1] = ($event) => toggleParent(__props.node)), + "data-cy": `parentLayerLabel-${__props.node.id}` + }, [ + createBaseVNode("div", _hoisted_5$c, toDisplayString(unref(label)), 1), + createBaseVNode("div", _hoisted_6$8, [ + createBaseVNode("div", { + class: normalizeClass(["fa-sharp fa-solid", __props.node.expanded ? "fa-minus" : "fa-plus"]) + }, null, 2) + ]) + ], 10, _hoisted_4$e) + ], 2112)) : createCommentVNode("v-if", true), + createCommentVNode(" Children"), + !isMaxDepth ? (openBlock(), createElementBlock("div", { + key: 2, + class: normalizeClass(["bg-secondary", [ + { "pl-2": __props.node.depth > 1 }, + { "lux-collapse": !isRoot }, + { expanded: !isRoot && __props.node.expanded } + ]]) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(__props.node.children, (child) => { + return openBlock(), createBlock(_component_layer_tree_node, { + key: child.id, + node: child, + onToggleParent: _cache[2] || (_cache[2] = ($event) => toggleParent($event)), + onToggleLayer: _cache[3] || (_cache[3] = ($event) => toggleLayer($event)) + }, null, 8, ["node"]); + }), 128)) + ], 2)) : createCommentVNode("v-if", true) + ])) : (openBlock(), createElementBlock("div", _hoisted_7$5, [ + createBaseVNode("button", { + class: "self-start before:text-[.85rem] before:transform before:translate-y-[.1rem] before:inline-block before:content-['\\f129'] fa-solid fa-fw fa-fh fa-info", + onClick: _cache[4] || (_cache[4] = ($event) => unref(setMetadataId)(__props.node.id)) + }), + createBaseVNode("button", { + class: normalizeClass(["w-full text-left", { "font-bold": __props.node.checked }]), + onClick: _cache[5] || (_cache[5] = ($event) => toggleLayer(__props.node)), + "data-cy": `layerLabel-${__props.node.id}` + }, [ + createBaseVNode("i", { + class: normalizeClass(["fa-solid", __props.node.checked ? "fa-check-square" : "fa-square"]) + }, null, 2), + createBaseVNode("span", _hoisted_9$3, toDisplayString(unref(label)), 1) + ], 10, _hoisted_8$5) + ])); + }; + } +}); +const LayerTreeNode = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/layer-tree/layer-tree-node.vue"]]); +class LayerTreeService { + toggleNode(id, node, propertyName) { + var _a; + if ((node == null ? void 0 : node.id) === id) { + return { + ...node, + [propertyName]: !node[propertyName] + }; + } else { + return { + ...node, + children: (_a = node.children) == null ? void 0 : _a.map( + (child) => this.toggleNode(id, child, propertyName) + ) + }; + } + } + updateLayers(node, layers) { + const { id } = node; + if (node.children) { + return { + ...node, + children: node.children.map((child) => this.updateLayers(child, layers)) + }; + } else { + const checked = !!(layers == null ? void 0 : layers.find((l) => l.id === id)); + return { + ...node, + checked + }; + } + } +} +const layerTreeService = new LayerTreeService(); var LayerImageType = /* @__PURE__ */ ((LayerImageType2) => { LayerImageType2["PNG"] = "image/png"; LayerImageType2["JPG"] = "image/jpeg"; @@ -39228,828 +38098,282 @@ function parseFeatureType(featureTypeEl, serviceVersion, defaultOutputFormats) { const bboxEl = findChildElement(featureTypeEl, "LatLongBoundingBox"); return ["minx", "miny", "maxx", "maxy"].map((name) => getElementAttribute(bboxEl, name)).map(parseFloat); } - function parseBBox() { - const bboxEl = findChildElement(featureTypeEl, "WGS84BoundingBox"); - return ["LowerCorner", "UpperCorner"].map((elName) => findChildElement(bboxEl, elName)).map((cornerEl) => getElementText(cornerEl).split(" ")).reduce((prev, curr) => [...prev, ...curr]).map(parseFloat); - } - const otherCrs = serviceVersion.startsWith("1.0") ? [] : findChildrenElement(featureTypeEl, `Other${srsTag}`).map(getElementText).map(simplifyEpsgUrn); - const outputFormats = serviceVersion.startsWith("1.0") ? [] : findChildrenElement( - findChildElement(featureTypeEl, "OutputFormats"), - "Format" - ).map(getElementText); - return { - name: getElementText(findChildElement(featureTypeEl, "Name")), - title: getElementText(findChildElement(featureTypeEl, "Title")), - abstract: getElementText(findChildElement(featureTypeEl, "Abstract")), - defaultCrs: simplifyEpsgUrn( - getElementText(findChildElement(featureTypeEl, defaultSrsTag)) - ), - otherCrs, - outputFormats: outputFormats.length > 0 ? outputFormats : defaultOutputFormats, - latLonBoundingBox: serviceVersion.startsWith("1.0") ? parseBBox100() : parseBBox() - }; -} -function parseFeatureProps(getFeaturesDoc, featureTypeFull, serviceVersion) { - const collection = getRootElement(getFeaturesDoc); - let members; - if (serviceVersion.startsWith("2.0")) { - members = findChildrenElement(collection, "member").map( - (parent) => getChildrenElement(parent)[0] - ); - } else { - const membersRoot = findChildElement(collection, "featureMembers"); - members = membersRoot ? getChildrenElement(membersRoot) : findChildrenElement(collection, "featureMember").map( - (parent) => getChildrenElement(parent)[0] - ); - } - const idAttr = serviceVersion === "1.0.0" ? "fid" : "gml:id"; - function isElementProperty(propName) { - return propName in featureTypeFull.properties; - } - function parseElementPropertyValue(propName, valueAsString) { - const type = featureTypeFull.properties[propName]; - switch (type) { - case "integer": - return parseInt(valueAsString); - case "float": - return parseFloat(valueAsString); - case "boolean": - return valueAsString === "true"; - default: - return valueAsString; - } - } - function getProperties(memberEl) { - return getChildrenElement(memberEl).filter((el) => isElementProperty(stripNamespace(getElementName(el)))).reduce((prev, curr) => { - const propName = stripNamespace(getElementName(curr)); - return { - ...prev, - [propName]: parseElementPropertyValue(propName, getElementText(curr)) - }; - }, {}); - } - return members.map((el) => ({ - id: getElementAttribute(el, idAttr), - properties: getProperties(el) - })); -} -function computeFeaturePropsDetails(featuresWithProps) { - return featuresWithProps.reduce((prev, curr) => { - for (const propName in curr.properties) { - const propValue = curr.properties[propName]; - if (!(propName in prev)) { - prev[propName] = { uniqueValues: [] }; - } - const uniqueValue = prev[propName].uniqueValues.find( - (v2) => v2.value === propValue - ); - if (uniqueValue) - uniqueValue.count++; - else - prev[propName].uniqueValues.push({ value: propValue, count: 1 }); - } - return prev; - }, {}); -} -addTaskHandler( - "parseWmsCapabilities", - self, - ({ url }) => queryXmlDocument(url).then((xmlDoc) => ({ - info: readInfoFromCapabilities$1(xmlDoc), - layers: readLayersFromCapabilities(xmlDoc), - version: readVersionFromCapabilities$1(xmlDoc) - })) -); -addTaskHandler( - "parseWfsCapabilities", - self, - ({ url }) => queryXmlDocument(url).then((xmlDoc) => ({ - info: readInfoFromCapabilities(xmlDoc), - featureTypes: readFeatureTypesFromCapabilities(xmlDoc), - version: readVersionFromCapabilities(xmlDoc) - })) -); -addTaskHandler( - "queryWfsFeatureTypeDetails", - self, - ({ url, serviceVersion, featureTypeFull }) => { - const getFeatureUrl = generateGetFeatureUrl( - url, - serviceVersion, - featureTypeFull.name, - void 0, - void 0, - Object.keys(featureTypeFull.properties) - ); - return queryXmlDocument(getFeatureUrl).then((getFeatureDoc) => ({ - props: computeFeaturePropsDetails( - parseFeatureProps(getFeatureDoc, featureTypeFull, serviceVersion) - ) - })); - } -); -const predefinedWmsFixture = () => { - return [ - { - url: "http://wmts1.geoportail.lu/opendata/service", - label: "Open Data Webservices WMS" - }, - { - url: "http://ows.terrestris.de/osm-gray/service", - label: "OpenStreetMap by Terrestris (Grey)" - }, - { - url: "http://ows.terrestris.de/osm/service", - label: "OpenStreetMap by Terrestris (Color)" - } - ]; -}; -class WmtsEndpoint { - constructor(url) { - __publicField(this, "capabilitiesPromise"); - __publicField(this, "serviceInfo"); - __publicField(this, "layers"); - const parser = new WMTSCapabilities(); - let separator = "&"; - if (url.indexOf("?") === -1) { - separator = "?"; - } - if (url.indexOf("Capabilities") === -1) { - url = url + separator + "SERVICE=WMTS&REQUEST=GetCapabilities"; - } - this.capabilitiesPromise = fetch(url).then((response) => { - return response.text(); - }).then((text2) => { - var _a; - const result = parser.read(text2); - this.serviceInfo = this.mapServiceInfo(result.ServiceIdentification); - this.layers = this.mapToRemoteLayers((_a = result.Contents) == null ? void 0 : _a.Layer); - }); - } - mapToRemoteLayers(layers) { - return [ - { - type: REMOTE_SERVICE_TYPE.WMTS, - children: layers.map( - (layer) => ({ - type: REMOTE_SERVICE_TYPE.WMTS, - abstract: layer.Abstract, - format: layer.Format, - name: layer.Identifier, - title: layer.Title, - tileMatrixSetLink: layer.TileMatrixSetLink, - wgs84BoundingBox: layer.WGS84BoundingBox - }) - ) - } - ]; - } - mapServiceInfo(serviceInfo) { - return { - type: REMOTE_SERVICE_TYPE.WMTS, - title: serviceInfo.Title, - abstract: serviceInfo.Abstract, - fees: serviceInfo.Fees, - constraints: serviceInfo.AccessConstraints, - serviceTypeVersion: serviceInfo.ServiceTypeVersion - }; - } - isReady() { - return this.capabilitiesPromise.then(() => this); - } - getLayerByName(name) { - return this.layers[0].children.filter((layer) => layer.name === name)[0]; - } - getLayers() { - return this.layers; - } - getServiceInfo() { - return this.serviceInfo; - } -} -class RemoteLayersService { - async getRemoteEndpoint(url) { - let wmtsEndpoint; - const wmsEndpoint = await this.getWmsEndpoint(url).isReady().catch(async () => { - wmtsEndpoint = await this.getWmtsEndpoint(url).isReady(); - }); - return wmsEndpoint || wmtsEndpoint; - } - getWmsEndpoint(url) { - return new WmsEndpoint(this.getProxyfiedUrl(url)); - } - getWmtsEndpoint(url) { - return new WmtsEndpoint(this.getProxyfiedUrl(url)); - } - getProxyfiedUrl(url) { - if (url.indexOf("httpsproxy") > 0) { - return url; - } - { - return remoteProxyWms + "?url=" + encodeURIComponent(url); - } - } - async fetchRemoteWmsEndpoint() { - return new Promise((resolve2) => resolve2(predefinedWmsFixture())); - } - isRemoteLayer(layerId) { - return typeof layerId === "string" && (layerId.indexOf(REMOTE_SERVICE_TYPE.WMS) === 0 || layerId.indexOf(REMOTE_SERVICE_TYPE.WMTS) === 0); - } -} -const remoteLayersService = new RemoteLayersService(); -function sortLayerTreeNoChildrenFirst(a, b) { - var _a, _b; - if (a.children && !b.children || ((_a = b.children) == null ? void 0 : _a.length) === 0) { - return 1; - } - if (b.children && !a.children || ((_b = a.children) == null ? void 0 : _b.length) === 0) { - return -1; - } - return 0; -} -function remoteLayersToLayerTreeMapper(node, urlWms, depth = 0) { - const { name = "", type = REMOTE_SERVICE_TYPE.WMS, children } = node; - const id = `${type}||${urlWms}||${name}`.split("-").join("%2D"); - const mapStore = useMapStore(); - return { - id, - name, - depth, - children: children == null ? void 0 : children.sort(sortLayerTreeNoChildrenFirst).map((child) => remoteLayersToLayerTreeMapper(child, urlWms, depth + 1)), - checked: mapStore.hasLayer(id), - expanded: false - }; -} -function remoteLayerIdtoLayer(layerId) { - const id = decodeURIComponent(layerId); - const [type, url, name] = id.split("||"); - return remoteLayerToLayer({ - id, - url: remoteLayersService.getProxyfiedUrl(url), - remoteLayer: { name, type } - }); -} -function remoteLayerToLayer({ - id, - url, - remoteLayer -}) { - const { name = "", type = REMOTE_SERVICE_TYPE.WMS } = remoteLayer; - return { - id, - name, - layers: name, - url, - type, - imageType: LayerImageType.PNG - }; -} -const STORAGE_SEPARATOR = "-"; -const STORAGE_SEPARATOR_V2 = ","; -class StorageLayerMapper { - constructor() { - __publicField(this, "layersOpacitiesToNumbersV2", (opacitiesText) => { - return this.layersOpacitiesToNumbers(opacitiesText, STORAGE_SEPARATOR_V2); - }); - } - layerIdsToLayers(layerIdsText) { - const themes2 = useThemes(); - const layers = useLayers(); - const layerIds = layerIdsText ? layerIdsText.split(STORAGE_SEPARATOR) : []; - return layerIds.map((layerId) => { - const layer = remoteLayersService.isRemoteLayer(layerId) ? remoteLayerIdtoLayer(layerId) : themes2.findById(parseInt(layerId, 10)); - return layer ? layers.initLayer(layer) : void 0; - }); - } - layerNamesToLayersV2(layersNamesText) { - const themes2 = useThemes(); - const layers = useLayers(); - const layersNames = layersNamesText ? layersNamesText.split(STORAGE_SEPARATOR_V2) : []; - return layersNames.map((layerName) => { - const layer = themes2.findByName(layerName); - return layer ? layers.initLayer(layer) : void 0; - }); - } - layersOpacitiesToNumbers(opacitiesText, separator = STORAGE_SEPARATOR) { - return stringToNumbers(opacitiesText, separator); - } - layersVisibilitiesToBooleansV2(visibilitiesText) { - return stringToBooleans(visibilitiesText, STORAGE_SEPARATOR_V2); - } - layersToLayerIds(layers) { - return (layers == null ? void 0 : layers.map((layer) => layer.id).join(STORAGE_SEPARATOR)) || ""; - } - layersToLayerOpacities(layers) { - return (layers == null ? void 0 : layers.map((layer) => { - var _a; - return (_a = layer.opacity) != null ? _a : 1; - }).join(STORAGE_SEPARATOR)) || ""; - } - bgLayerNameToBgLayer(bgLayerName) { - const themes2 = useThemes(); - return bgLayerName ? themes2.findBgLayerByName(bgLayerName) : null; - } - bgLayerToBgLayerName(layer) { - return (layer == null ? void 0 : layer.name) || BLANK_BACKGROUNDLAYER.name; - } -} -const storageLayerMapper = new StorageLayerMapper(); -const DEFAULT_BGLAYER_NAME = "basemap_2015_global"; -const DEFAULT_BGLAYER_NAME_V2 = "orthogr_2013_global"; -const V2_BGLAYER_TO_V3_ = { - webbasemap: "basemap_2015_global", - "pixelmaps-color": "topogr_global", - "pixelmaps-gray": "topo_bw_jpeg", - streets: "streets_jpeg", - voidlayer: "blank" -}; -class StatePersistorBgLayerService { - bootstrap() { - const themeStore = useThemeStore(); - let stop; - stop = watchEffect(() => { - if (themeStore.bgLayers.length > 0) { - this.restore(); - this.persist(); - stop && stop(); - } - }); - } - persist() { - const mapStore = useMapStore(); - const { bgLayer } = storeToRefs(mapStore); - watch( - bgLayer, - (value, oldValue) => { - if (oldValue !== value) { - storageHelper.setValue( - SP_KEY_BGLAYER, - value, - storageLayerMapper.bgLayerToBgLayerName - ); - } - }, - { immediate: true } - ); - } - restore() { - const { setMapBackground } = useBackgroundLayer(); - const bgLayer = this.getBgLayerFromStorage(); - setMapBackground(bgLayer); - } - getBgLayerFromStorage() { - const version2 = storageHelper.getInitialVersion(); - const bgLayerName = storageHelper.getValue(SP_KEY_BGLAYER); - const bgLayer = !bgLayerName ? storageLayerMapper.bgLayerNameToBgLayer(DEFAULT_BGLAYER_NAME) : version2 === 2 ? this.getBgLayerFromStorageV2(bgLayerName) : storageLayerMapper.bgLayerNameToBgLayer(bgLayerName); - return bgLayer; - } - getBgLayerFromStorageV2(bgLayerNameFromStorage) { - const bgLayerOpacity = storageHelper.getValue( - SP_KEY_V2_BGLAYEROPACITY, - stringToNumber - ); - let bgLayerName = ""; - if (bgLayerNameFromStorage) { - bgLayerName = V2_BGLAYER_TO_V3_[bgLayerNameFromStorage]; - } else if (bgLayerOpacity === 0) { - bgLayerName = DEFAULT_BGLAYER_NAME_V2; - } - return storageLayerMapper.bgLayerNameToBgLayer(bgLayerName); - } -} -const statePersistorBgLayerService = new StatePersistorBgLayerService(); -const _hoisted_1$o = ["title"]; -const _sfc_main$t = /* @__PURE__ */ defineComponent({ - __name: "background-selector-item", - props: { - bgTitle: { - type: String, - default: "" - }, - bgName: { - type: String, - default: "" - } - }, - setup(__props) { - const props = __props; - const { t } = useTranslation(); - const buttonTitle = computed(() => { - const localizedTitle = t(props.bgTitle); - const hasTitle = props.bgTitle.length > 0; - const localizedLayerName = `${t("Background layer:")} ${t(props.bgName)}`; - return `${localizedTitle}${hasTitle ? " - " : ""}${localizedLayerName}`; - }); - const buttonClasses = computed( - () => `h-full w-full rounded-sm lux-bg-sel-icon - lux-bg-sel-${props.bgName} - bg-${props.bgName}_sm - md:bg-${props.bgName} - hd:bg-${props.bgName}_sm_hi - hd_md:bg-${props.bgName}_hi` - ); - return (_ctx, _cache) => { - return openBlock(), createElementBlock("button", { - title: unref(buttonTitle), - class: normalizeClass(unref(buttonClasses)) - }, null, 10, _hoisted_1$o); - }; - } -}); -const _hoisted_1$n = { class: "flex flex-row-reverse" }; -const _sfc_main$s = /* @__PURE__ */ defineComponent({ - __name: "background-selector", - props: { - isOpen: { - type: Boolean, - default: false - } - }, - setup(__props) { - const props = __props; - const { t } = useTranslation(); - const backgroundLayer = useBackgroundLayer(); - const mapStore = useMapStore(); - const themeStore = useThemeStore(); - const { bgLayer: bgLayerContext } = storeToRefs(mapStore); - statePersistorBgLayerService.bootstrap(); - const isOpen = ref(props.isOpen); - const bgLayers = ref([]); - const activeLayerId = computed( - () => { - var _a, _b; - return (_b = (_a = bgLayerContext.value) == null ? void 0 : _a.id) != null ? _b : backgroundLayer.getNullId(); - } - ); - const activeLayerName = computed( - () => { - var _a, _b; - return (_b = (_a = bgLayers.value) == null ? void 0 : _a.find((layer) => layer.id === activeLayerId.value)) == null ? void 0 : _b.name; - } - ); - watch( - () => themeStore.bgLayers, - (bgLayersContext) => { - bgLayers.value = bgConfigFixture().bg_layers.map( - (bgl) => Object.assign( - { - id: bgl.id - }, - bgLayersContext.find((l) => bgl.id == l.id), - { - name: bgl.icon_id - } - ) - ); - }, - { immediate: true } - ); - watch( - () => mapStore.bgLayer, - (bgLayerContext2, bgLayerContextOld) => { - const layersContext = mapStore.layers; - if (bgLayerContextOld === void 0 && bgLayerContext2 === null && (layersContext == null ? void 0 : layersContext.length) === 0) { - backgroundLayer.setBgLayer(backgroundLayer.defaultSelectedBgId.value); - if (bgLayerContext2 === null) { - console.log( - t( - "Aucune couche n'\xE9tant d\xE9finie pour cette carte, une couche de fond a automatiquement \xE9t\xE9 ajout\xE9e.", - { ns: "client" } - ) - ); - } - } - } - ); - function setBackgroundLayer(layer) { - backgroundLayer.setBgLayer(layer.id); - isOpen.value = false; - } - function toggleSelector() { - isOpen.value = !isOpen.value; - } - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", _hoisted_1$n, [ - createBaseVNode("div", { - class: normalizeClass(["lux-bg-sel border border-black", isOpen.value === true ? "hidden" : "block"]) - }, [ - createVNode(_sfc_main$t, { - "aria-expanded": isOpen.value, - "bg-title": "Select BG layer", - "bg-name": unref(activeLayerName), - onClick: toggleSelector - }, null, 8, ["aria-expanded", "bg-name"]) - ], 2), - createBaseVNode("div", { - class: normalizeClass(isOpen.value === true ? "flex flex-col md:flex-row" : "hidden") - }, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(bgLayers.value, (layer) => { - return openBlock(), createElementBlock("div", { - key: layer.id, - class: normalizeClass([ - "lux-bg-sel hover:bg-cyan-600", - layer.id === unref(activeLayerId) ? "border-red-500 border-2" : "border-black border" - ]) - }, [ - createVNode(_sfc_main$t, { - "bg-name": layer.name, - onClick: ($event) => setBackgroundLayer(layer) - }, null, 8, ["bg-name", "onClick"]) - ], 2); - }), 128)) - ], 2) - ]); - }; - } -}); -const _hoisted_1$m = /* @__PURE__ */ createBaseVNode("div", { class: "fixed inset-0 bg-gray-900 opacity-40 z-[1050]" }, null, -1); -const _hoisted_2$j = { class: "bg-white shadow-modal rounded-lg overflow-hidden w-[700px]" }; -const _hoisted_3$h = { class: "relative flex flex-row justify-center p-4 border-b-[1px]" }; -const _hoisted_4$f = { class: "text-xl" }; -const _hoisted_5$d = /* @__PURE__ */ createBaseVNode("span", { "aria-hidden": "true" }, "\xD7", -1); -const _hoisted_6$9 = [ - _hoisted_5$d -]; -const _hoisted_7$6 = { - key: 0, - class: "p-[15px] border-t-[1px]" -}; -const _hoisted_8$6 = { class: "flex flex-row justify-end" }; -const _sfc_main$r = /* @__PURE__ */ defineComponent({ - __name: "modal-dialog", - props: { - footer: { - type: Boolean, - default: true - }, - maxHeight: { - type: Boolean, - default: false - }, - title: String - }, - emits: ["close"], - setup(__props) { - const { t } = useTranslation(); - const modal = ref(); - onMounted(() => { - modal.value.focus(); - }); - const displayModal = shallowRef(true); - function close() { - displayModal.value = false; - } - return (_ctx, _cache) => { - return openBlock(), createBlock(Teleport, { to: "body" }, [ - _hoisted_1$m, - createVNode(Transition, { - appear: "", - "enter-active-class": "duration-200 ease-out", - "enter-from-class": "transform opacity-0 -translate-y-60", - "enter-to-class": "opacity-100 translate-y-0", - "leave-active-class": "duration-200 ease-in", - "leave-from-class": "opacity-100 translate-y-0", - "leave-to-class": "transform opacity-0 -translate-y-60", - onAfterLeave: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("close")) - }, { - default: withCtx(() => [ - unref(displayModal) ? (openBlock(), createElementBlock("div", { - key: 0, - role: "dialog", - ref_key: "modal", - ref: modal, - tabindex: "0", - onKeydown: _cache[2] || (_cache[2] = withKeys(($event) => close(), ["esc"])), - class: "fixed inset-x-0 inset-y-8 flex items-start justify-center z-[1100] outline-none" - }, [ - createBaseVNode("div", _hoisted_2$j, [ - createBaseVNode("div", _hoisted_3$h, [ - createBaseVNode("h4", _hoisted_4$f, toDisplayString(__props.title), 1), - createBaseVNode("button", { - type: "button", - class: "absolute right-2 top-1 text-slate-400 text-[24px]", - "data-dismiss": "modal", - "aria-label": "Close", - onClick: _cache[0] || (_cache[0] = ($event) => close()) - }, _hoisted_6$9) - ]), - createBaseVNode("div", { - class: normalizeClass(["p-[15px] overflow-y-auto", __props.maxHeight ? "max-h-96" : "max-h-full"]) - }, [ - renderSlot(_ctx.$slots, "content") - ], 2), - __props.footer ? (openBlock(), createElementBlock("div", _hoisted_7$6, [ - createBaseVNode("div", _hoisted_8$6, [ - createBaseVNode("button", { - type: "button", - class: "lux-btn", - "data-dismiss": "modal", - onClick: _cache[1] || (_cache[1] = ($event) => close()) - }, toDisplayString(unref(t)("Close", { ns: "client" })), 1) - ]) - ])) : createCommentVNode("", true) - ]) - ], 544)) : createCommentVNode("", true) - ]), - _: 3 - }) - ]); - }; - } -}); -const useMetadataStore = defineStore( - "metadata", - () => { - const metadataId = ref(); - function setMetadataId(id) { - metadataId.value = id; - } - function clearMetadataId() { - metadataId.value = void 0; - } - return { - metadataId, - setMetadataId, - clearMetadataId - }; - }, - {} -); -const _hoisted_1$l = { - class: "mb-px", - key: "node.id" -}; -const _hoisted_2$i = ["aria-expanded", "data-cy"]; -const _hoisted_3$g = { class: "leading-6" }; -const _hoisted_4$e = ["aria-expanded", "data-cy"]; -const _hoisted_5$c = { class: "grow" }; -const _hoisted_6$8 = { class: "leading-6" }; -const _hoisted_7$5 = { - key: 1, - class: "flex text-tertiary pr-2" -}; -const _hoisted_8$5 = ["data-cy"]; -const _hoisted_9$3 = { class: "ml-1 hover:underline" }; -const _sfc_main$q = /* @__PURE__ */ defineComponent({ - __name: "layer-tree-node", - props: { - node: null - }, - emits: ["toggleLayer", "toggleParent"], - setup(__props, { emit: emit2 }) { - const props = __props; - const { t } = useTranslation(); - const { setMetadataId } = useMetadataStore(); - const isParent = !!props.node.children; - const isRoot = props.node.depth === 0; - const isMaxDepth = props.node.depth >= 10; - const label = computed(() => t(props.node.name, { ns: "client" })); - function toggleLayer(node) { - emit2("toggleLayer", node); - } - function toggleParent(node) { - emit2("toggleParent", node); - } - return (_ctx, _cache) => { - const _component_layer_tree_node = resolveComponent("layer-tree-node", true); - return isParent ? (openBlock(), createElementBlock("div", _hoisted_1$l, [ - __props.node.depth === 1 ? (openBlock(), createElementBlock("button", { - key: 0, - class: "group node-1 w-full text-left flex px-2 py-1.5 uppercase bg-tertiary", - "aria-expanded": __props.node.expanded, - onClick: _cache[0] || (_cache[0] = ($event) => toggleParent(__props.node)), - "data-cy": `parentLayerLabel-${__props.node.id}` - }, [ - createBaseVNode("div", { - class: normalizeClass(["grow", __props.node.expanded ? "text-white" : "text-secondary"]) - }, toDisplayString(unref(label)), 3), - createBaseVNode("div", _hoisted_3$g, [ - createBaseVNode("div", { - class: normalizeClass(["fa fa-sharp fa-solid group-hover:text-white text-primary", __props.node.expanded ? "fa-caret-up" : "fa-caret-down"]) - }, null, 2) - ]) - ], 8, _hoisted_2$i)) : __props.node.depth > 1 && !isMaxDepth ? (openBlock(), createElementBlock("button", { - key: 1, - class: normalizeClass(["w-full text-left flex px-2 py-1.5 pl-2", __props.node.expanded ? "text-tertiary" : "bg-white text-primary"]), - "aria-expanded": __props.node.expanded, - onClick: _cache[1] || (_cache[1] = ($event) => toggleParent(__props.node)), - "data-cy": `parentLayerLabel-${__props.node.id}` - }, [ - createBaseVNode("div", _hoisted_5$c, toDisplayString(unref(label)), 1), - createBaseVNode("div", _hoisted_6$8, [ - createBaseVNode("div", { - class: normalizeClass(["fa-sharp fa-solid", __props.node.expanded ? "fa-minus" : "fa-plus"]) - }, null, 2) - ]) - ], 10, _hoisted_4$e)) : createCommentVNode("", true), - !isMaxDepth ? (openBlock(), createElementBlock("div", { - key: 2, - class: normalizeClass(["bg-secondary", [ - { "pl-2": __props.node.depth > 1 }, - { "lux-collapse": !isRoot }, - { expanded: !isRoot && __props.node.expanded } - ]]) - }, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(__props.node.children, (child) => { - return openBlock(), createBlock(_component_layer_tree_node, { - key: child.id, - node: child, - onToggleParent: _cache[2] || (_cache[2] = ($event) => toggleParent($event)), - onToggleLayer: _cache[3] || (_cache[3] = ($event) => toggleLayer($event)) - }, null, 8, ["node"]); - }), 128)) - ], 2)) : createCommentVNode("", true) - ])) : (openBlock(), createElementBlock("div", _hoisted_7$5, [ - createBaseVNode("button", { - class: "self-start before:text-[.85rem] before:transform before:translate-y-[.1rem] before:inline-block before:content-['\\f129'] fa-solid fa-fw fa-fh fa-info", - onClick: _cache[4] || (_cache[4] = ($event) => unref(setMetadataId)(__props.node.id)) - }), - createBaseVNode("button", { - class: normalizeClass(["w-full text-left", { "font-bold": __props.node.checked }]), - onClick: _cache[5] || (_cache[5] = ($event) => toggleLayer(__props.node)), - "data-cy": `layerLabel-${__props.node.id}` - }, [ - createBaseVNode("i", { - class: normalizeClass(["fa-solid", __props.node.checked ? "fa-check-square" : "fa-square"]) - }, null, 2), - createBaseVNode("span", _hoisted_9$3, toDisplayString(unref(label)), 1) - ], 10, _hoisted_8$5) - ])); - }; - } -}); -class LayerTreeService { - toggleNode(id, node, propertyName) { - var _a; - if ((node == null ? void 0 : node.id) === id) { - return { - ...node, - [propertyName]: !node[propertyName] - }; - } else { - return { - ...node, - children: (_a = node.children) == null ? void 0 : _a.map( - (child) => this.toggleNode(id, child, propertyName) - ) - }; + function parseBBox() { + const bboxEl = findChildElement(featureTypeEl, "WGS84BoundingBox"); + return ["LowerCorner", "UpperCorner"].map((elName) => findChildElement(bboxEl, elName)).map((cornerEl) => getElementText(cornerEl).split(" ")).reduce((prev, curr) => [...prev, ...curr]).map(parseFloat); + } + const otherCrs = serviceVersion.startsWith("1.0") ? [] : findChildrenElement(featureTypeEl, `Other${srsTag}`).map(getElementText).map(simplifyEpsgUrn); + const outputFormats = serviceVersion.startsWith("1.0") ? [] : findChildrenElement( + findChildElement(featureTypeEl, "OutputFormats"), + "Format" + ).map(getElementText); + return { + name: getElementText(findChildElement(featureTypeEl, "Name")), + title: getElementText(findChildElement(featureTypeEl, "Title")), + abstract: getElementText(findChildElement(featureTypeEl, "Abstract")), + defaultCrs: simplifyEpsgUrn( + getElementText(findChildElement(featureTypeEl, defaultSrsTag)) + ), + otherCrs, + outputFormats: outputFormats.length > 0 ? outputFormats : defaultOutputFormats, + latLonBoundingBox: serviceVersion.startsWith("1.0") ? parseBBox100() : parseBBox() + }; +} +function parseFeatureProps(getFeaturesDoc, featureTypeFull, serviceVersion) { + const collection = getRootElement(getFeaturesDoc); + let members; + if (serviceVersion.startsWith("2.0")) { + members = findChildrenElement(collection, "member").map( + (parent) => getChildrenElement(parent)[0] + ); + } else { + const membersRoot = findChildElement(collection, "featureMembers"); + members = membersRoot ? getChildrenElement(membersRoot) : findChildrenElement(collection, "featureMember").map( + (parent) => getChildrenElement(parent)[0] + ); + } + const idAttr = serviceVersion === "1.0.0" ? "fid" : "gml:id"; + function isElementProperty(propName) { + return propName in featureTypeFull.properties; + } + function parseElementPropertyValue(propName, valueAsString) { + const type = featureTypeFull.properties[propName]; + switch (type) { + case "integer": + return parseInt(valueAsString); + case "float": + return parseFloat(valueAsString); + case "boolean": + return valueAsString === "true"; + default: + return valueAsString; } } - updateLayers(node, layers) { - const { id } = node; - if (node.children) { - return { - ...node, - children: node.children.map((child) => this.updateLayers(child, layers)) - }; - } else { - const checked = !!(layers == null ? void 0 : layers.find((l) => l.id === id)); + function getProperties(memberEl) { + return getChildrenElement(memberEl).filter((el) => isElementProperty(stripNamespace(getElementName(el)))).reduce((prev, curr) => { + const propName = stripNamespace(getElementName(curr)); return { - ...node, - checked + ...prev, + [propName]: parseElementPropertyValue(propName, getElementText(curr)) }; - } + }, {}); } + return members.map((el) => ({ + id: getElementAttribute(el, idAttr), + properties: getProperties(el) + })); } -const layerTreeService = new LayerTreeService(); -const DEFAULT_LANG = "fr"; -const DEFAULT_LAYER_PANEL_OPENED = true; -const useAppStore = defineStore( - "app", - () => { - const lang = ref(DEFAULT_LANG); - const layersOpen = ref(DEFAULT_LAYER_PANEL_OPENED); - const remoteLayersOpen = ref(); - const styleEditorOpen = ref(false); - function setLang(language) { - lang.value = language; - } - function setLayersOpen(open2) { - layersOpen.value = open2; +function computeFeaturePropsDetails(featuresWithProps) { + return featuresWithProps.reduce((prev, curr) => { + for (const propName in curr.properties) { + const propValue = curr.properties[propName]; + if (!(propName in prev)) { + prev[propName] = { uniqueValues: [] }; + } + const uniqueValue = prev[propName].uniqueValues.find( + (v2) => v2.value === propValue + ); + if (uniqueValue) + uniqueValue.count++; + else + prev[propName].uniqueValues.push({ value: propValue, count: 1 }); } - function setRemoteLayersOpen(open2) { - remoteLayersOpen.value = open2; + return prev; + }, {}); +} +addTaskHandler( + "parseWmsCapabilities", + self, + ({ url }) => queryXmlDocument(url).then((xmlDoc) => ({ + info: readInfoFromCapabilities$1(xmlDoc), + layers: readLayersFromCapabilities(xmlDoc), + version: readVersionFromCapabilities$1(xmlDoc) + })) +); +addTaskHandler( + "parseWfsCapabilities", + self, + ({ url }) => queryXmlDocument(url).then((xmlDoc) => ({ + info: readInfoFromCapabilities(xmlDoc), + featureTypes: readFeatureTypesFromCapabilities(xmlDoc), + version: readVersionFromCapabilities(xmlDoc) + })) +); +addTaskHandler( + "queryWfsFeatureTypeDetails", + self, + ({ url, serviceVersion, featureTypeFull }) => { + const getFeatureUrl = generateGetFeatureUrl( + url, + serviceVersion, + featureTypeFull.name, + void 0, + void 0, + Object.keys(featureTypeFull.properties) + ); + return queryXmlDocument(getFeatureUrl).then((getFeatureDoc) => ({ + props: computeFeaturePropsDetails( + parseFeatureProps(getFeatureDoc, featureTypeFull, serviceVersion) + ) + })); + } +); +const predefinedWmsFixture = () => { + return [ + { + url: "http://wmts1.geoportail.lu/opendata/service", + label: "Open Data Webservices WMS" + }, + { + url: "http://ows.terrestris.de/osm-gray/service", + label: "OpenStreetMap by Terrestris (Grey)" + }, + { + url: "http://ows.terrestris.de/osm/service", + label: "OpenStreetMap by Terrestris (Color)" } - function toggleStyleEditorPanel() { - styleEditorOpen.value = !styleEditorOpen.value; + ]; +}; +class WmtsEndpoint { + constructor(url) { + __publicField(this, "capabilitiesPromise"); + __publicField(this, "serviceInfo"); + __publicField(this, "layers"); + const parser = new WMTSCapabilities(); + let separator = "&"; + if (url.indexOf("?") === -1) { + separator = "?"; } - function closeStyleEditorPanel() { - styleEditorOpen.value = false; + if (url.indexOf("Capabilities") === -1) { + url = url + separator + "SERVICE=WMTS&REQUEST=GetCapabilities"; } + this.capabilitiesPromise = fetch(url).then((response) => { + return response.text(); + }).then((text2) => { + var _a; + const result = parser.read(text2); + this.serviceInfo = this.mapServiceInfo(result.ServiceIdentification); + this.layers = this.mapToRemoteLayers((_a = result.Contents) == null ? void 0 : _a.Layer); + }); + } + mapToRemoteLayers(layers) { + return [ + { + type: REMOTE_SERVICE_TYPE.WMTS, + children: layers.map( + (layer) => ({ + type: REMOTE_SERVICE_TYPE.WMTS, + abstract: layer.Abstract, + format: layer.Format, + name: layer.Identifier, + title: layer.Title, + tileMatrixSetLink: layer.TileMatrixSetLink, + wgs84BoundingBox: layer.WGS84BoundingBox + }) + ) + } + ]; + } + mapServiceInfo(serviceInfo) { return { - lang, - layersOpen, - styleEditorOpen, - remoteLayersOpen, - setLang, - setLayersOpen, - setRemoteLayersOpen, - toggleStyleEditorPanel, - closeStyleEditorPanel + type: REMOTE_SERVICE_TYPE.WMTS, + title: serviceInfo.Title, + abstract: serviceInfo.Abstract, + fees: serviceInfo.Fees, + constraints: serviceInfo.AccessConstraints, + serviceTypeVersion: serviceInfo.ServiceTypeVersion }; - }, - {} -); + } + isReady() { + return this.capabilitiesPromise.then(() => this); + } + getLayerByName(name) { + return this.layers[0].children.filter((layer) => layer.name === name)[0]; + } + getLayers() { + return this.layers; + } + getServiceInfo() { + return this.serviceInfo; + } +} +class RemoteLayersService { + async getRemoteEndpoint(url) { + let wmtsEndpoint; + const wmsEndpoint = await this.getWmsEndpoint(url).isReady().catch(async () => { + wmtsEndpoint = await this.getWmtsEndpoint(url).isReady(); + }); + return wmsEndpoint || wmtsEndpoint; + } + getWmsEndpoint(url) { + return new WmsEndpoint(this.getProxyfiedUrl(url)); + } + getWmtsEndpoint(url) { + return new WmtsEndpoint(this.getProxyfiedUrl(url)); + } + getProxyfiedUrl(url) { + if (url.indexOf("httpsproxy") > 0) { + return url; + } + { + return remoteProxyWms + "?url=" + encodeURIComponent(url); + } + } + async fetchRemoteWmsEndpoint() { + return new Promise((resolve2) => resolve2(predefinedWmsFixture())); + } + isRemoteLayer(layerId) { + return typeof layerId === "string" && (layerId.indexOf(REMOTE_SERVICE_TYPE.WMS) === 0 || layerId.indexOf(REMOTE_SERVICE_TYPE.WMTS) === 0); + } +} +const remoteLayersService = new RemoteLayersService(); +function sortLayerTreeNoChildrenFirst(a, b) { + var _a, _b; + if (a.children && !b.children || ((_a = b.children) == null ? void 0 : _a.length) === 0) { + return 1; + } + if (b.children && !a.children || ((_b = a.children) == null ? void 0 : _b.length) === 0) { + return -1; + } + return 0; +} +function remoteLayersToLayerTreeMapper(node, urlWms, depth = 0) { + const { name = "", type = REMOTE_SERVICE_TYPE.WMS, children } = node; + const id = `${type}||${urlWms}||${name}`.split("-").join("%2D"); + const mapStore = useMapStore(); + return { + id, + name, + depth, + children: children == null ? void 0 : children.sort(sortLayerTreeNoChildrenFirst).map((child) => remoteLayersToLayerTreeMapper(child, urlWms, depth + 1)), + checked: mapStore.hasLayer(id), + expanded: false + }; +} +function remoteLayerIdtoLayer(layerId) { + const id = decodeURIComponent(layerId); + const [type, url, name] = id.split("||"); + return remoteLayerToLayer({ + id, + url: remoteLayersService.getProxyfiedUrl(url), + remoteLayer: { name, type } + }); +} +function remoteLayerToLayer({ + id, + url, + remoteLayer +}) { + const { name = "", type = REMOTE_SERVICE_TYPE.WMS } = remoteLayer; + return { + id, + name, + layers: name, + url, + type, + imageType: LayerImageType.PNG + }; +} const _hoisted_1$k = { class: "relative text-center" }; const _hoisted_2$h = ["placeholder", "value"]; const _hoisted_3$f = { @@ -40154,7 +38478,7 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({ } } return (_ctx, _cache) => { - return unref(remoteLayersOpen) ? (openBlock(), createBlock(_sfc_main$r, { + return unref(remoteLayersOpen) ? (openBlock(), createBlock(ModalDialog, { key: 0, title: unref(t)("Add external data", { ns: "client" }), onClose: _cache[0] || (_cache[0] = ($event) => unref(setRemoteLayersOpen)(false)) @@ -40163,7 +38487,7 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({ var _a, _b; return [ createBaseVNode("div", _hoisted_1$k, [ - createVNode(_sfc_main$A, { + createVNode(DropdownList, { class: "lux-remote-services-dropdown", options: unref(wmsLayers), placeholder: unref(t)("Predefined wms", { ns: "client" }), @@ -40189,35 +38513,36 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({ ns: "client" })), 1), createTextVNode(" " + toDisplayString((_a = unref(currentRemoteEndpoint).getServiceInfo()) == null ? void 0 : _a.abstract), 1) - ])) : createCommentVNode("", true), + ])) : createCommentVNode("v-if", true), !unref(isLoading) && unref(currentRemoteEndpoint) ? (openBlock(), createElementBlock("div", _hoisted_5$b, [ createBaseVNode("span", _hoisted_6$7, toDisplayString(unref(t)("Access constraints :", { ns: "client" })), 1), createTextVNode(" " + toDisplayString((_b = unref(currentRemoteEndpoint).getServiceInfo()) == null ? void 0 : _b.constraints), 1) - ])) : createCommentVNode("", true), + ])) : createCommentVNode("v-if", true), unref(isLoading) ? (openBlock(), createElementBlock("div", _hoisted_7$4, [ _hoisted_8$4, createBaseVNode("span", null, toDisplayString(unref(t)("Chargement des informations", { ns: "client" })), 1) - ])) : createCommentVNode("", true), + ])) : createCommentVNode("v-if", true), !unref(isLoading) ? (openBlock(), createElementBlock("div", _hoisted_9$2, [ - unref(layerTree) ? (openBlock(), createBlock(_sfc_main$q, { + unref(layerTree) ? (openBlock(), createBlock(LayerTreeNode, { key: 0, class: "block p-[10px] mb-[11px]", node: unref(layerTree), onToggleParent: toggleParent, onToggleLayer: toggleLayer - }, null, 8, ["node"])) : createCommentVNode("", true) - ])) : createCommentVNode("", true) + }, null, 8, ["node"])) : createCommentVNode("v-if", true) + ])) : createCommentVNode("v-if", true) ]; }), _: 1 - }, 8, ["title"])) : createCommentVNode("", true); + }, 8, ["title"])) : createCommentVNode("v-if", true); }; } }); +const RemoteLayers = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/remote-layers/remote-layers.vue"]]); function formatDate(dateString, language = "fr-FR") { const date = new Date(dateString); return new Intl.DateTimeFormat(language).format(date); @@ -40227,8 +38552,8 @@ const _hoisted_2$g = { class: "col-span-2" }; const _sfc_main$o = /* @__PURE__ */ defineComponent({ __name: "layer-metadata-item", props: { - label: null, - value: null + label: { type: String, required: true }, + value: { type: String, required: true } }, setup(__props) { const props = __props; @@ -40240,6 +38565,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({ }; } }); +const LayerMetadataItem = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/layer-metadata/layer-metadata-item.vue"]]); function isoLang2To3(code) { const lang = { fr: "fre", @@ -40500,7 +38826,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({ } return (_ctx, _cache) => { const _directive_dompurify_html = resolveDirective("dompurify-html"); - return layerMetadata.value ? (openBlock(), createBlock(_sfc_main$r, { + return layerMetadata.value ? (openBlock(), createBlock(ModalDialog, { key: 0, footer: false, "max-height": true, @@ -40511,16 +38837,16 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o; return [ createBaseVNode("div", _hoisted_1$i, [ - layerMetadata.value.name ? (openBlock(), createBlock(_sfc_main$o, { + layerMetadata.value.name ? (openBlock(), createBlock(LayerMetadataItem, { key: 0, label: unref(t)("Name"), value: layerMetadata.value.name - }, null, 8, ["label", "value"])) : createCommentVNode("", true), - layerMetadata.value.serviceDescription ? (openBlock(), createBlock(_sfc_main$o, { + }, null, 8, ["label", "value"])) : createCommentVNode("v-if", true), + layerMetadata.value.serviceDescription ? (openBlock(), createBlock(LayerMetadataItem, { key: 1, label: unref(t)("Description du Service"), value: layerMetadata.value.serviceDescription - }, null, 8, ["label", "value"])) : createCommentVNode("", true), + }, null, 8, ["label", "value"])) : createCommentVNode("v-if", true), layerMetadata.value.description ? (openBlock(), createElementBlock("div", _hoisted_2$f, [ createBaseVNode("span", _hoisted_3$e, toDisplayString(unref(t)("Description")), 1), createBaseVNode("span", _hoisted_4$c, [ @@ -40534,7 +38860,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({ }), onClick: showFullDescription, class: "text-secondary hover:underline" - }, " ... ", 8, _hoisted_5$a)) : createCommentVNode("", true), + }, " ... ", 8, _hoisted_5$a)) : createCommentVNode("v-if", true), displayFullDescription.value && (((_a = unref(description)) == null ? void 0 : _a.length) || 0) > MAX_DESCRIPTION_LENGTH ? (openBlock(), createElementBlock("button", { key: 1, title: unref(t)("Hide full description", { @@ -40542,14 +38868,14 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({ }), onClick: hideFullDescription, class: "text-secondary hover:underline" - }, " - ", 8, _hoisted_6$6)) : createCommentVNode("", true) + }, " - ", 8, _hoisted_6$6)) : createCommentVNode("v-if", true) ]) - ])) : createCommentVNode("", true), - layerMetadata.value.legalConstraints ? (openBlock(), createBlock(_sfc_main$o, { + ])) : createCommentVNode("v-if", true), + layerMetadata.value.legalConstraints ? (openBlock(), createBlock(LayerMetadataItem, { key: 3, label: unref(t)(`Contrainte d'utilisation`), value: layerMetadata.value.legalConstraints - }, null, 8, ["label", "value"])) : createCommentVNode("", true), + }, null, 8, ["label", "value"])) : createCommentVNode("v-if", true), ((_b = layerMetadata.value.link) == null ? void 0 : _b.length) !== 0 ? (openBlock(), createElementBlock("div", _hoisted_7$3, [ (openBlock(true), createElementBlock(Fragment, null, renderList(layerMetadata.value.link, (link) => { return openBlock(), createElementBlock("div", { @@ -40566,32 +38892,32 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({ ]) ]); }), 128)) - ])) : createCommentVNode("", true), - layerMetadata.value.revisionDate ? (openBlock(), createBlock(_sfc_main$o, { + ])) : createCommentVNode("v-if", true), + layerMetadata.value.revisionDate ? (openBlock(), createBlock(LayerMetadataItem, { key: 5, label: unref(t)("Revision date"), value: unref(formatDate)(layerMetadata.value.revisionDate, unref(i18next).language) - }, null, 8, ["label", "value"])) : createCommentVNode("", true), - layerMetadata.value.keyword ? (openBlock(), createBlock(_sfc_main$o, { + }, null, 8, ["label", "value"])) : createCommentVNode("v-if", true), + layerMetadata.value.keyword ? (openBlock(), createBlock(LayerMetadataItem, { key: 6, label: unref(t)("Keywords"), value: (_c = layerMetadata.value.keyword) == null ? void 0 : _c.join(",") - }, null, 8, ["label", "value"])) : createCommentVNode("", true), + }, null, 8, ["label", "value"])) : createCommentVNode("v-if", true), layerMetadata.value.responsibleParty ? (openBlock(), createElementBlock("div", _hoisted_11$1, [ createBaseVNode("div", _hoisted_12, toDisplayString(unref(t)("Contact")), 1), createBaseVNode("div", _hoisted_13, [ - ((_d = layerMetadata.value.responsibleParty) == null ? void 0 : _d.organisaton) ? (openBlock(), createElementBlock("p", _hoisted_14, toDisplayString((_e = layerMetadata.value.responsibleParty) == null ? void 0 : _e.organisaton), 1)) : createCommentVNode("", true), - ((_f = layerMetadata.value.responsibleParty) == null ? void 0 : _f.name) ? (openBlock(), createElementBlock("p", _hoisted_15, toDisplayString((_g = layerMetadata.value.responsibleParty) == null ? void 0 : _g.name), 1)) : createCommentVNode("", true), - ((_h = layerMetadata.value.responsibleParty) == null ? void 0 : _h.unknown) ? (openBlock(), createElementBlock("p", _hoisted_16, toDisplayString((_i = layerMetadata.value.responsibleParty) == null ? void 0 : _i.unknown), 1)) : createCommentVNode("", true), - ((_j = layerMetadata.value.responsibleParty) == null ? void 0 : _j.address) ? (openBlock(), createElementBlock("p", _hoisted_17, toDisplayString((_k = layerMetadata.value.responsibleParty) == null ? void 0 : _k.address), 1)) : createCommentVNode("", true), + ((_d = layerMetadata.value.responsibleParty) == null ? void 0 : _d.organisaton) ? (openBlock(), createElementBlock("p", _hoisted_14, toDisplayString((_e = layerMetadata.value.responsibleParty) == null ? void 0 : _e.organisaton), 1)) : createCommentVNode("v-if", true), + ((_f = layerMetadata.value.responsibleParty) == null ? void 0 : _f.name) ? (openBlock(), createElementBlock("p", _hoisted_15, toDisplayString((_g = layerMetadata.value.responsibleParty) == null ? void 0 : _g.name), 1)) : createCommentVNode("v-if", true), + ((_h = layerMetadata.value.responsibleParty) == null ? void 0 : _h.unknown) ? (openBlock(), createElementBlock("p", _hoisted_16, toDisplayString((_i = layerMetadata.value.responsibleParty) == null ? void 0 : _i.unknown), 1)) : createCommentVNode("v-if", true), + ((_j = layerMetadata.value.responsibleParty) == null ? void 0 : _j.address) ? (openBlock(), createElementBlock("p", _hoisted_17, toDisplayString((_k = layerMetadata.value.responsibleParty) == null ? void 0 : _k.address), 1)) : createCommentVNode("v-if", true), ((_l = layerMetadata.value.responsibleParty) == null ? void 0 : _l.email) ? (openBlock(), createElementBlock("p", _hoisted_18, [ createBaseVNode("a", { class: "text-secondary hover:underline", href: "mailto:" + ((_m = layerMetadata.value.responsibleParty) == null ? void 0 : _m.email) }, toDisplayString((_n = layerMetadata.value.responsibleParty) == null ? void 0 : _n.email), 9, _hoisted_19) - ])) : createCommentVNode("", true) + ])) : createCommentVNode("v-if", true) ]) - ])) : createCommentVNode("", true), + ])) : createCommentVNode("v-if", true), layerMetadata.value.metadataLink ? (openBlock(), createElementBlock("div", _hoisted_20, [ createBaseVNode("span", _hoisted_21, toDisplayString(unref(t)("Link to the metadata")), 1), createBaseVNode("span", _hoisted_22, [ @@ -40601,23 +38927,24 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({ href: layerMetadata.value.metadataLink }, toDisplayString(unref(t)("link")), 9, _hoisted_23) ]) - ])) : createCommentVNode("", true), - layerMetadata.value.isError ? (openBlock(), createElementBlock("div", _hoisted_24, toDisplayString(unref(t)("The metadata is right now not available")), 1)) : createCommentVNode("", true), + ])) : createCommentVNode("v-if", true), + layerMetadata.value.isError ? (openBlock(), createElementBlock("div", _hoisted_24, toDisplayString(unref(t)("The metadata is right now not available")), 1)) : createCommentVNode("v-if", true), layerMetadata.value.legendHtml ? (openBlock(), createElementBlock("div", _hoisted_25, [ createBaseVNode("h4", _hoisted_26, toDisplayString(unref(t)("Legend")), 1), withDirectives(createBaseVNode("span", null, null, 512), [ [_directive_dompurify_html, (_o = layerMetadata.value.legendHtml) == null ? void 0 : _o.innerHTML] ]) - ])) : createCommentVNode("", true), - !layerMetadata.value.hasLegend ? (openBlock(), createElementBlock("div", _hoisted_27, toDisplayString(unref(t)("The legend is not available for this layer")), 1)) : createCommentVNode("", true) + ])) : createCommentVNode("v-if", true), + !layerMetadata.value.hasLegend ? (openBlock(), createElementBlock("div", _hoisted_27, toDisplayString(unref(t)("The legend is not available for this layer")), 1)) : createCommentVNode("v-if", true) ]) ]; }), _: 1 - }, 8, ["title"])) : createCommentVNode("", true); + }, 8, ["title"])) : createCommentVNode("v-if", true); }; } }); +const LayerMetadata = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/layer-metadata/layer-metadata.vue"]]); const _imports_0 = "data:image/png;base64,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"; class StatePersistorLangService { bootstrap() { @@ -40675,7 +39002,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({ } return (_ctx, _cache) => { return openBlock(), createElementBlock("div", null, [ - createVNode(_sfc_main$A, { + createVNode(DropdownList, { class: "lux-navbar-dropdown lux-dropdown-inline text-white h-full", options: unref(availableLanguages), placeholder: unref(placeholder), @@ -40687,6 +39014,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({ }; } }); +const LanguageSelector = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/nav-bars/language-selector.vue"]]); class ThemeSelectorService { setCurrentThemeColors(themeName) { const root = document.querySelector(":root"); @@ -40742,7 +39070,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({ ], 2) ]), createBaseVNode("li", _hoisted_6$5, [ - createVNode(_sfc_main$m, { class: "flex-none h-full" }) + createVNode(LanguageSelector, { class: "flex-none h-full" }) ]) ]) ]) @@ -40750,13 +39078,14 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({ }; } }); +const HeaderBar = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/header/header-bar.vue"]]); const _hoisted_1$g = { class: "block text-[13px] sm:text-base uppercase" }; const _sfc_main$k = /* @__PURE__ */ defineComponent({ __name: "button-icon", props: { - label: null, - icon: null, - active: { type: Boolean } + label: { type: String, required: true }, + icon: { type: String, required: true }, + active: { type: Boolean, required: false } }, setup(__props) { const props = __props; @@ -40772,12 +39101,13 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({ }; } }); +const ButtonIcon = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/footer/button-icon.vue"]]); const _hoisted_1$f = ["href"]; const _sfc_main$j = /* @__PURE__ */ defineComponent({ __name: "button-link", props: { - label: null, - link: null + label: { type: String, required: true }, + link: { type: String, required: true } }, setup(__props) { const props = __props; @@ -40790,6 +39120,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({ }; } }); +const ButtonLink = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/footer/button-link.vue"]]); const _hoisted_1$e = { class: "flex flex-col w-12 justify-between bg-white z-5 shrink-0 sm:flex-row sm:w-full sm:h-14 sm:shadow-footer" }; const _hoisted_2$d = { class: "flex flex-col w-full sm:w-80 sm:flex-row justify-start text-primary divide-y sm:divide-y-0 sm:divide-x divide-gray-400 divide-solid box-content border-y sm:border-y-0 border-x border-gray-400" }; const _hoisted_3$c = { class: "flex flex-col w-12 sm:w-64 sm:flex-row justify-start text-primary divide-y sm:divide-y-0 sm:divide-x divide-gray-400 divide-solid box-content border-y sm:border-y-0 border-x border-gray-400" }; @@ -40802,102 +39133,108 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({ const { layersOpen } = storeToRefs(useAppStore()); return (_ctx, _cache) => { return openBlock(), createElementBlock("footer", _hoisted_1$e, [ + createCommentVNode(" left buttons "), createBaseVNode("ul", _hoisted_2$d, [ createBaseVNode("li", null, [ - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { label: unref(t)("Layers", { ns: "client" }), icon: "layers", active: unref(layersOpen), onClick: _cache[0] || (_cache[0] = () => unref(setLayersOpen)(!unref(layersOpen))) }, null, 8, ["label", "active"]) ]), + createCommentVNode('TODOs in each button when implemented\n - remove class="text-gray-300"\n - add click handler that calls setLayersOpen(true) and opens tool (also via app store)\n '), createBaseVNode("li", null, [ - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { class: "text-gray-300", label: unref(t)("My Maps", { ns: "client" }), icon: "mymaps" }, null, 8, ["label"]) ]), createBaseVNode("li", null, [ - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { class: "text-gray-300", label: unref(t)("Infos", { ns: "client" }), icon: "infos" }, null, 8, ["label"]) ]), createBaseVNode("li", null, [ - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { class: "text-gray-300", label: unref(t)("Legends", { ns: "client" }), icon: "legends" }, null, 8, ["label"]) ]), createBaseVNode("li", null, [ - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { class: "text-gray-300", label: unref(t)("Routing", { ns: "client" }), icon: "routing" }, null, 8, ["label"]) ]) ]), + createCommentVNode(" center buttons "), createBaseVNode("div", _hoisted_3$c, [ - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { class: "text-gray-300", label: unref(t)("Dessin", { ns: "client" }), icon: "draw" }, null, 8, ["label"]), - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { class: "text-gray-300 hidden sm:block", label: unref(t)("Mesurer", { ns: "client" }), icon: "measure" }, null, 8, ["label"]), - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { class: "text-gray-300 hidden sm:block", label: unref(t)("Imprimer", { ns: "client" }), icon: "print" }, null, 8, ["label"]), - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { class: "text-gray-300", label: unref(t)("Partager", { ns: "client" }), icon: "share" }, null, 8, ["label"]) ]), + createCommentVNode(" right buttons "), createBaseVNode("div", _hoisted_4$a, [ - createVNode(_sfc_main$j, { + createVNode(ButtonLink, { class: "hidden lg:flex", label: unref(t)("What's new", { ns: "client" }), link: `https://geoportail.lu/${unref(i18next).language}/questions/whats-new/` }, null, 8, ["label", "link"]), - createVNode(_sfc_main$j, { + createCommentVNode("TODO get geonetworkBaseUrl from config"), + createVNode(ButtonLink, { class: "hidden lg:flex", label: unref(t)("Geocatalogue", { ns: "client" }), link: "" }, null, 8, ["label"]), - createVNode(_sfc_main$j, { + createCommentVNode("TODO handle feedback links (for different portals?)"), + createVNode(ButtonLink, { class: "hidden lg:flex", label: unref(t)("Feedback", { ns: "client" }), link: "" }, null, 8, ["label"]), - createVNode(_sfc_main$j, { + createVNode(ButtonLink, { class: "hidden lg:flex", label: unref(t)("A Propos", { ns: "client" }), link: `https://www.geoportail.lu/${unref(i18next).language}/propos/` }, null, 8, ["label", "link"]), - createVNode(_sfc_main$j, { + createVNode(ButtonLink, { class: "hidden lg:flex", label: unref(t)("Aide", { ns: "client" }), link: `https://www.geoportail.lu/${unref(i18next).language}/documentation/` }, null, 8, ["label", "link"]), - createVNode(_sfc_main$j, { + createVNode(ButtonLink, { class: "hidden lg:flex", label: unref(t)("Contact", { ns: "client" }), link: `https://www.geoportail.lu/${unref(i18next).language}/propos/contactez-nous/` }, null, 8, ["label", "link"]), - createVNode(_sfc_main$j, { + createVNode(ButtonLink, { label: unref(t)("Legalites", { ns: "client" }), link: `https://www.geoportail.lu/${unref(i18next).language}/propos/mentions-legales/` }, null, 8, ["label", "link"]), - createVNode(_sfc_main$j, { + createVNode(ButtonLink, { label: unref(t)("ACT", { ns: "client" }), link: `http://www.act.public.lu/` }, null, 8, ["label", "link"]) @@ -40906,6 +39243,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({ }; } }); +const FooterBar = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/footer/footer-bar.vue"]]); function themesToLayerTree(node, depth = 0) { const { name, id, children, metadata } = node; return { @@ -40946,22 +39284,23 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({ layers.toggleLayer(+node.id, !node.checked); } return (_ctx, _cache) => { - return unref(layerTree) ? (openBlock(), createBlock(_sfc_main$q, { + return unref(layerTree) ? (openBlock(), createBlock(LayerTreeNode, { node: unref(layerTree), key: unref(layerTree).id, onToggleParent: toggleParent, onToggleLayer: toggleLayer - }, null, 8, ["node"])) : createCommentVNode("", true); + }, null, 8, ["node"])) : createCommentVNode("v-if", true); }; } }); +const Catalog = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/catalog/catalog-tree.vue"]]); const _hoisted_1$d = { class: "flex flex-row flex-wrap pl-2.5" }; const _hoisted_2$c = ["onClick"]; const _hoisted_3$b = { class: "text-2xl absolute top-5" }; const _sfc_main$g = /* @__PURE__ */ defineComponent({ __name: "theme-grid", props: { - themes: null + themes: { type: Array, required: true } }, setup(__props) { const props = __props; @@ -40984,6 +39323,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({ }; } }); +const ThemeGrid = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/theme-selector/theme-grid.vue"]]); const _hoisted_1$c = ["aria-expanded"]; const _hoisted_2$b = { class: "py-0.5" }; const _hoisted_3$a = { class: "px-1 py-0.5 shrink-0 flex flex-row text-[12px] bg-secondary text-white" }; @@ -40992,9 +39332,9 @@ const _hoisted_5$8 = { class: "flex flex-row flex-wrap ml-1 w-12" }; const _sfc_main$f = /* @__PURE__ */ defineComponent({ __name: "theme-selector-button", props: { - themes: null, - currentTheme: null, - isOpen: { type: Boolean } + themes: { type: Array, required: true }, + currentTheme: { type: null, required: false }, + isOpen: { type: Boolean, required: false } }, setup(__props) { const props = __props; @@ -41025,6 +39365,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({ }; } }); +const ThemeSelectorButton = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/theme-selector/theme-selector-button.vue"]]); const _hoisted_1$b = { key: 0, class: "absolute inset-x-0 top-14 bottom-0 mt-1 bg-primary overflow-y-auto overflow-x-hidden" @@ -41057,22 +39398,23 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({ } return (_ctx, _cache) => { return openBlock(), createElementBlock(Fragment, null, [ - createVNode(_sfc_main$f, { + createVNode(ThemeSelectorButton, { onClick: toggleThemesGrid, themes: unref(themes2), currentTheme: unref(theme), isOpen: unref(isOpen) }, null, 8, ["themes", "currentTheme", "isOpen"]), unref(isOpen) ? (openBlock(), createElementBlock("div", _hoisted_1$b, [ - createVNode(_sfc_main$g, { + createVNode(ThemeGrid, { onSetTheme: setTheme, themes: unref(themes2) }, null, 8, ["themes"]) - ])) : createCommentVNode("", true) + ])) : createCommentVNode("v-if", true) ], 64); }; } }); +const ThemeSelector = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/theme-selector/theme-selector.vue"]]); const _sfc_main$d = /* @__PURE__ */ defineComponent({ __name: "catalog-tab", setup(__props) { @@ -41082,15 +39424,16 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({ } return (_ctx, _cache) => { return openBlock(), createElementBlock(Fragment, null, [ - createVNode(_sfc_main$e, { onToggleThemesGrid: toggleThemesGrid }), - unref(themeGridIsOpen) === false ? (openBlock(), createBlock(_sfc_main$h, { + createVNode(ThemeSelector, { onToggleThemesGrid: toggleThemesGrid }), + unref(themeGridIsOpen) === false ? (openBlock(), createBlock(Catalog, { key: 0, class: "pt-5 absolute inset-x-2.5 bg-primary overflow-y-auto overflow-x-hidden" - })) : createCommentVNode("", true) + })) : createCommentVNode("v-if", true) ], 64); }; } }); +const CatalogTab = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/catalog/catalog-tab.vue"]]); /**! * Sortable 1.15.0 * @author RubaXa @@ -43278,8 +41621,8 @@ const _hoisted_4$8 = ["title"]; const _sfc_main$c = /* @__PURE__ */ defineComponent({ __name: "layer-item-background", props: { - showEditButton: { type: Boolean }, - layer: null + showEditButton: { type: Boolean, required: true }, + layer: { type: null, required: true } }, emits: ["clickEdit", "clickInfo"], setup(__props, { emit: emit2 }) { @@ -43307,11 +41650,12 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({ class: "fa fa-pencil", title: unref(t)("Open editor panel", { ns: "client" }), onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("clickEdit")) - }, null, 8, _hoisted_4$8)) : createCommentVNode("", true) + }, null, 8, _hoisted_4$8)) : createCommentVNode("v-if", true) ]); }; } }); +const LayerManagerItemBackground = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/layer-manager/layer-item/layer-item-background.vue"]]); const _hoisted_1$9 = { class: "lux-layer-manager-item relative" }; const _hoisted_2$9 = { class: "w-full flex flex-nowrap items-start gap-x-2" }; const _hoisted_3$8 = ["title"]; @@ -43326,11 +41670,11 @@ const _hoisted_11 = ["aria-label"]; const _sfc_main$b = /* @__PURE__ */ defineComponent({ __name: "layer-item", props: { - layer: null, - draggableClassName: null, - isOpen: { type: Boolean }, - isLayerComparatorOpen: { type: Boolean }, - displayLayerComparatorOpen: { type: Boolean } + layer: { type: null, required: true }, + draggableClassName: { type: String, required: true }, + isOpen: { type: Boolean, required: true }, + isLayerComparatorOpen: { type: Boolean, required: true }, + displayLayerComparatorOpen: { type: Boolean, required: true } }, emits: [ "clickInfo", @@ -43455,12 +41799,13 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({ layerName: unref(getLabel)() }), onClick: onToggleLayerComparator - }, null, 10, _hoisted_11)) : createCommentVNode("", true) + }, null, 10, _hoisted_11)) : createCommentVNode("v-if", true) ], 10, _hoisted_8$2) ]); }; } }); +const LayerManagerItem = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/layer-manager/layer-item/layer-item.vue"]]); const _hoisted_1$8 = { id: "sortable-layers" }; const _hoisted_2$8 = ["id"]; const _hoisted_3$7 = { class: "flex flex-row justify-center space-x-1 my-2" }; @@ -43509,8 +41854,8 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({ function toggleAccordionItem(layer) { isLayerOpenId.value = isLayerOpenId.value !== layer.id ? layer.id : void 0; } - function toggleEditionLayer() { - appStore.toggleStyleEditorPanel(); + function openEditionLayer() { + appStore.openStyleEditorPanel(); } function toggleLayerComparator() { sliderStore.toggleSlider(); @@ -43522,7 +41867,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({ key: layer.id, id: layer.id }, [ - createVNode(_sfc_main$b, { + createVNode(LayerManagerItem, { draggableClassName, layer, isOpen: unref(isLayerOpenId) === layer.id, @@ -43537,11 +41882,11 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({ ], 8, _hoisted_2$8); }), 128)), createBaseVNode("li", null, [ - createVNode(_sfc_main$c, { + createVNode(LayerManagerItemBackground, { layer: unref(bgLayer) || unref(BLANK_BACKGROUNDLAYER), showEditButton: unref(bgLayerIsEditable), onClickInfo: _cache[0] || (_cache[0] = () => unref(bgLayer) && unref(setMetadataId)(unref(bgLayer).id)), - onClickEdit: toggleEditionLayer + onClickEdit: openEditionLayer }, null, 8, ["layer", "showEditButton"]), createBaseVNode("div", _hoisted_3$7, [ createBaseVNode("button", { @@ -43558,6 +41903,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({ }; } }); +const LayerManager = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/layer-manager/layer-manager.vue"]]); const _hoisted_1$7 = { class: "flex flex-col h-full pt-1.5" }; const _hoisted_2$7 = { class: "h-16 shrink-0 flex justify-between lux-panel-title" }; const _hoisted_3$6 = ["aria-label"]; @@ -43575,6 +41921,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({ const myLayersOpen = ref(false); return (_ctx, _cache) => { return openBlock(), createElementBlock("div", _hoisted_1$7, [ + createCommentVNode(" Panel title and close button "), createBaseVNode("div", _hoisted_2$7, [ createBaseVNode("div", null, toDisplayString(unref(t)("Layers", { ns: "client" })), 1), createBaseVNode("span", null, [ @@ -43585,6 +41932,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({ }, null, 8, _hoisted_3$6) ]) ]), + createCommentVNode(" My Layers and Catalog tab labels "), createBaseVNode("div", _hoisted_4$6, [ createBaseVNode("button", { onClick: _cache[1] || (_cache[1] = () => myLayersOpen.value = true), @@ -43592,7 +41940,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({ "aria-expanded": myLayersOpen.value }, [ createTextVNode(toDisplayString(unref(t)("my_layers", { ns: "client" })) + " ", 1), - unref(layers).length ? (openBlock(), createElementBlock("span", _hoisted_6$3, "(" + toDisplayString(unref(layers).length) + ")", 1)) : createCommentVNode("", true) + unref(layers).length ? (openBlock(), createElementBlock("span", _hoisted_6$3, "(" + toDisplayString(unref(layers).length) + ")", 1)) : createCommentVNode("v-if", true) ], 10, _hoisted_5$6), createBaseVNode("button", { onClick: _cache[2] || (_cache[2] = ($event) => myLayersOpen.value = false), @@ -43600,17 +41948,19 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({ "aria-expanded": !myLayersOpen.value }, toDisplayString(unref(t)("Catalog", { ns: "client" })), 11, _hoisted_7$1) ]), + createCommentVNode(" Panel content (MyLayers and Catalog) "), createBaseVNode("div", _hoisted_8$1, [ - !myLayersOpen.value ? (openBlock(), createBlock(_sfc_main$d, { key: 0 })) : createCommentVNode("", true), - myLayersOpen.value ? (openBlock(), createBlock(_sfc_main$a, { + !myLayersOpen.value ? (openBlock(), createBlock(CatalogTab, { key: 0 })) : createCommentVNode("v-if", true), + myLayersOpen.value ? (openBlock(), createBlock(LayerManager, { key: 1, onDisplayCatalog: _cache[3] || (_cache[3] = () => myLayersOpen.value = false) - })) : createCommentVNode("", true) + })) : createCommentVNode("v-if", true) ]) ]); }; } }); +const LayerPanel = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/layer-panel/layer-panel.vue"]]); class StatePersistorLayerComparatorService { bootstrap() { let stop; @@ -43662,11 +42012,11 @@ const _hoisted_5$5 = /* @__PURE__ */ createBaseVNode("i", { class: "fa fa-arrow- const _sfc_main$8 = /* @__PURE__ */ defineComponent({ __name: "splitter-element", props: { - sliderActive: { type: Boolean }, - sliderRatio: null, - sliderTopLayer: null, - sliderOffset: null, - containerOffset: null + sliderActive: { type: Boolean, required: true }, + sliderRatio: { type: Number, required: true }, + sliderTopLayer: { type: null, required: true }, + sliderOffset: { type: Number, required: true }, + containerOffset: { type: Number, required: true } }, emits: ["moveSplitBar", "escSplitBar"], setup(__props, { expose, emit: emit2 }) { @@ -43739,11 +42089,12 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({ __props.sliderTopLayer ? (openBlock(), createElementBlock("span", _hoisted_4$5, [ _hoisted_5$5, createBaseVNode("span", null, toDisplayString(unref(t)(__props.sliderTopLayer.name)), 1) - ])) : createCommentVNode("", true) + ])) : createCommentVNode("v-if", true) ], 44, _hoisted_1$6); }; } }); +const SplitterElement = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/slider/splitter-element.vue"]]); const _sfc_main$7 = /* @__PURE__ */ defineComponent({ __name: "slider-comparator", setup(__props) { @@ -43837,7 +42188,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({ }); return (_ctx, _cache) => { var _a; - return unref(sliderTopLayer) && unref(sliderActive) ? (openBlock(), createBlock(_sfc_main$8, { + return unref(sliderTopLayer) && unref(sliderActive) ? (openBlock(), createBlock(SplitterElement, { key: 0, ref_key: "splitterElement", ref: splitterElement, @@ -43848,10 +42199,125 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({ containerOffset: ((_a = unref(mapWrapperElement)) == null ? void 0 : _a.offsetLeft) || 0, onMoveSplitBar, onEscSplitBar - }, null, 8, ["sliderActive", "sliderRatio", "sliderTopLayer", "sliderOffset", "containerOffset"])) : createCommentVNode("", true); + }, null, 8, ["sliderActive", "sliderRatio", "sliderTopLayer", "sliderOffset", "containerOffset"])) : createCommentVNode("v-if", true); }; } }); +const SliderComparator = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/slider/slider-comparator.vue"]]); +const STORAGE_SEPARATOR = "-"; +const STORAGE_SEPARATOR_V2 = ","; +class StorageLayerMapper { + constructor() { + __publicField(this, "layersOpacitiesToNumbersV2", (opacitiesText) => { + return this.layersOpacitiesToNumbers(opacitiesText, STORAGE_SEPARATOR_V2); + }); + } + layerIdsToLayers(layerIdsText) { + const themes2 = useThemes(); + const layers = useLayers(); + const layerIds = layerIdsText ? layerIdsText.split(STORAGE_SEPARATOR) : []; + return layerIds.map((layerId) => { + const layer = remoteLayersService.isRemoteLayer(layerId) ? remoteLayerIdtoLayer(layerId) : themes2.findById(parseInt(layerId, 10)); + return layer ? layers.initLayer(layer) : void 0; + }); + } + layerNamesToLayersV2(layersNamesText) { + const themes2 = useThemes(); + const layers = useLayers(); + const layersNames = layersNamesText ? layersNamesText.split(STORAGE_SEPARATOR_V2) : []; + return layersNames.map((layerName) => { + const layer = themes2.findByName(layerName); + return layer ? layers.initLayer(layer) : void 0; + }); + } + layersOpacitiesToNumbers(opacitiesText, separator = STORAGE_SEPARATOR) { + return stringToNumbers(opacitiesText, separator); + } + layersVisibilitiesToBooleansV2(visibilitiesText) { + return stringToBooleans(visibilitiesText, STORAGE_SEPARATOR_V2); + } + layersToLayerIds(layers) { + return (layers == null ? void 0 : layers.map((layer) => layer.id).join(STORAGE_SEPARATOR)) || ""; + } + layersToLayerOpacities(layers) { + return (layers == null ? void 0 : layers.map((layer) => { + var _a; + return (_a = layer.opacity) != null ? _a : 1; + }).join(STORAGE_SEPARATOR)) || ""; + } + bgLayerNameToBgLayer(bgLayerName) { + const themes2 = useThemes(); + return bgLayerName ? themes2.findBgLayerByName(bgLayerName) : null; + } + bgLayerToBgLayerName(layer) { + return (layer == null ? void 0 : layer.name) || BLANK_BACKGROUNDLAYER.name; + } +} +const storageLayerMapper = new StorageLayerMapper(); +const DEFAULT_BGLAYER_NAME = "basemap_2015_global"; +const DEFAULT_BGLAYER_NAME_V2 = "orthogr_2013_global"; +const V2_BGLAYER_TO_V3_ = { + webbasemap: "basemap_2015_global", + "pixelmaps-color": "topogr_global", + "pixelmaps-gray": "topo_bw_jpeg", + streets: "streets_jpeg", + voidlayer: "blank" +}; +class StatePersistorBgLayerService { + bootstrap() { + const themeStore = useThemeStore(); + let stop; + stop = watchEffect(() => { + if (themeStore.bgLayers.length > 0) { + this.restore(); + this.persist(); + stop && stop(); + } + }); + } + persist() { + const mapStore = useMapStore(); + const { bgLayer } = storeToRefs(mapStore); + watch( + bgLayer, + (value, oldValue) => { + if (oldValue !== value) { + storageHelper.setValue( + SP_KEY_BGLAYER, + value, + storageLayerMapper.bgLayerToBgLayerName + ); + } + }, + { immediate: true } + ); + } + restore() { + const { setMapBackground } = useBackgroundLayer(); + const bgLayer = this.getBgLayerFromStorage(); + setMapBackground(bgLayer); + } + getBgLayerFromStorage() { + const version2 = storageHelper.getInitialVersion(); + const bgLayerName = storageHelper.getValue(SP_KEY_BGLAYER); + const bgLayer = !bgLayerName ? storageLayerMapper.bgLayerNameToBgLayer(DEFAULT_BGLAYER_NAME) : version2 === 2 ? this.getBgLayerFromStorageV2(bgLayerName) : storageLayerMapper.bgLayerNameToBgLayer(bgLayerName); + return bgLayer; + } + getBgLayerFromStorageV2(bgLayerNameFromStorage) { + const bgLayerOpacity = storageHelper.getValue( + SP_KEY_V2_BGLAYEROPACITY, + stringToNumber + ); + let bgLayerName = ""; + if (bgLayerNameFromStorage) { + bgLayerName = V2_BGLAYER_TO_V3_[bgLayerNameFromStorage]; + } else if (bgLayerOpacity === 0) { + bgLayerName = DEFAULT_BGLAYER_NAME_V2; + } + return storageLayerMapper.bgLayerNameToBgLayer(bgLayerName); + } +} +const statePersistorBgLayerService = new StatePersistorBgLayerService(); class StatePersistorLayersService { bootstrap() { const themeStore = useThemeStore(); @@ -43969,6 +42435,52 @@ class StatePersistorThemeService { } } const statePersistorThemeService = new StatePersistorThemeService(); +class StatePersistorLayersOpenService { + bootstrapLayersOpen() { + this.restoreLayersOpen(); + let stop; + stop = watchEffect(() => { + this.persistLayersOpen(); + stop && stop(); + }); + } + persistLayersOpen() { + const appStore = useAppStore(); + const { layersOpen } = storeToRefs(appStore); + watch( + layersOpen, + (value, oldValue) => { + if (oldValue !== value) { + storageHelper.setValue(SP_KEY_LAYERS_OPEN, value); + } + }, + { immediate: true } + ); + } + restoreLayersOpen() { + const layersOpen = storageHelper.getValue(SP_KEY_LAYERS_OPEN) !== "false"; + const { setLayersOpen } = useAppStore(); + setLayersOpen(layersOpen); + } +} +const statePersistorLayersOpenService = new StatePersistorLayersOpenService(); +class StatePersistorMyMapService { + bootstrap() { + this.restore(); + let stop; + stop = watchEffect(() => { + this.persist(); + stop && stop(); + }); + } + persist() { + } + restore() { + const mapId = storageHelper.getValue(SP_KEY_MAPID); + useAppStore().setMapId(mapId); + } +} +const statePersistorMyMapService = new StatePersistorMyMapService(); function _typeof$2(obj) { "@babel/helpers - typeof"; return _typeof$2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) { @@ -44087,9 +42599,9 @@ function requireBrowserPonyfill() { } return iterator; } - function Headers2(headers) { + function Headers(headers) { this.map = {}; - if (headers instanceof Headers2) { + if (headers instanceof Headers) { headers.forEach(function(value, name) { this.append(name, value); }, this); @@ -44103,47 +42615,47 @@ function requireBrowserPonyfill() { }, this); } } - Headers2.prototype.append = function(name, value) { + Headers.prototype.append = function(name, value) { name = normalizeName(name); value = normalizeValue(value); var oldValue = this.map[name]; this.map[name] = oldValue ? oldValue + ", " + value : value; }; - Headers2.prototype["delete"] = function(name) { + Headers.prototype["delete"] = function(name) { delete this.map[normalizeName(name)]; }; - Headers2.prototype.get = function(name) { + Headers.prototype.get = function(name) { name = normalizeName(name); return this.has(name) ? this.map[name] : null; }; - Headers2.prototype.has = function(name) { + Headers.prototype.has = function(name) { return this.map.hasOwnProperty(normalizeName(name)); }; - Headers2.prototype.set = function(name, value) { + Headers.prototype.set = function(name, value) { this.map[normalizeName(name)] = normalizeValue(value); }; - Headers2.prototype.forEach = function(callback, thisArg) { + Headers.prototype.forEach = function(callback, thisArg) { for (var name in this.map) { if (this.map.hasOwnProperty(name)) { callback.call(thisArg, this.map[name], name, this); } } }; - Headers2.prototype.keys = function() { + Headers.prototype.keys = function() { var items = []; this.forEach(function(value, name) { items.push(name); }); return iteratorFor(items); }; - Headers2.prototype.values = function() { + Headers.prototype.values = function() { var items = []; this.forEach(function(value) { items.push(value); }); return iteratorFor(items); }; - Headers2.prototype.entries = function() { + Headers.prototype.entries = function() { var items = []; this.forEach(function(value, name) { items.push([name, value]); @@ -44151,7 +42663,7 @@ function requireBrowserPonyfill() { return iteratorFor(items); }; if (support.iterable) { - Headers2.prototype[Symbol.iterator] = Headers2.prototype.entries; + Headers.prototype[Symbol.iterator] = Headers.prototype.entries; } function consumed(body) { if (body.bodyUsed) { @@ -44284,17 +42796,17 @@ function requireBrowserPonyfill() { var upcased = method.toUpperCase(); return methods.indexOf(upcased) > -1 ? upcased : method; } - function Request2(input, options) { + function Request(input, options) { options = options || {}; var body = options.body; - if (input instanceof Request2) { + if (input instanceof Request) { if (input.bodyUsed) { throw new TypeError("Already read"); } this.url = input.url; this.credentials = input.credentials; if (!options.headers) { - this.headers = new Headers2(input.headers); + this.headers = new Headers(input.headers); } this.method = input.method; this.mode = input.mode; @@ -44308,7 +42820,7 @@ function requireBrowserPonyfill() { } this.credentials = options.credentials || this.credentials || "same-origin"; if (options.headers || !this.headers) { - this.headers = new Headers2(options.headers); + this.headers = new Headers(options.headers); } this.method = normalizeMethod(options.method || this.method || "GET"); this.mode = options.mode || this.mode || null; @@ -44319,8 +42831,8 @@ function requireBrowserPonyfill() { } this._initBody(body); } - Request2.prototype.clone = function() { - return new Request2(this, { body: this._bodyInit }); + Request.prototype.clone = function() { + return new Request(this, { body: this._bodyInit }); }; function decode2(body) { var form = new FormData(); @@ -44335,7 +42847,7 @@ function requireBrowserPonyfill() { return form; } function parseHeaders(rawHeaders) { - var headers = new Headers2(); + var headers = new Headers(); var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, " "); preProcessedHeaders.split(/\r?\n/).forEach(function(line) { var parts = line.split(":"); @@ -44347,7 +42859,7 @@ function requireBrowserPonyfill() { }); return headers; } - Body.call(Request2.prototype); + Body.call(Request.prototype); function Response2(bodyInit, options) { if (!options) { options = {}; @@ -44356,7 +42868,7 @@ function requireBrowserPonyfill() { this.status = options.status === void 0 ? 200 : options.status; this.ok = this.status >= 200 && this.status < 300; this.statusText = "statusText" in options ? options.statusText : "OK"; - this.headers = new Headers2(options.headers); + this.headers = new Headers(options.headers); this.url = options.url || ""; this._initBody(bodyInit); } @@ -44365,7 +42877,7 @@ function requireBrowserPonyfill() { return new Response2(this._bodyInit, { status: this.status, statusText: this.statusText, - headers: new Headers2(this.headers), + headers: new Headers(this.headers), url: this.url }); }; @@ -44396,7 +42908,7 @@ function requireBrowserPonyfill() { } function fetch2(input, init2) { return new Promise(function(resolve2, reject) { - var request3 = new Request2(input, init2); + var request3 = new Request(input, init2); if (request3.signal && request3.signal.aborted) { return reject(new exports3.DOMException("Aborted", "AbortError")); } @@ -44449,12 +42961,12 @@ function requireBrowserPonyfill() { fetch2.polyfill = true; if (!self2.fetch) { self2.fetch = fetch2; - self2.Headers = Headers2; - self2.Request = Request2; + self2.Headers = Headers; + self2.Request = Request; self2.Response = Response2; } - exports3.Headers = Headers2; - exports3.Request = Request2; + exports3.Headers = Headers; + exports3.Request = Request; exports3.Response = Response2; exports3.fetch = fetch2; Object.defineProperty(exports3, "__esModule", { value: true }); @@ -44888,8 +43400,8 @@ Backend.type = "backend"; const _sfc_main$6 = /* @__PURE__ */ defineComponent({ __name: "simple-style-item", props: { - styleName: null, - colors: null + styleName: { type: String, required: true }, + colors: { type: Array, required: true } }, setup(__props) { const props = __props; @@ -44904,6 +43416,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({ }; } }); +const SimpleStyleItem = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/style-selector/simple-style-item.vue"]]); const _hoisted_1$5 = { class: "text-white border-2 p-[10px] m-[10px]" }; const _hoisted_2$5 = { class: "text-center mb-3" }; const _hoisted_3$4 = ["title"]; @@ -44932,6 +43445,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({ } return (_ctx, _cache) => { return openBlock(), createElementBlock("div", _hoisted_1$5, [ + createCommentVNode(" TODO: create clean container for simple and advanced style editors "), createBaseVNode("h5", _hoisted_2$5, toDisplayString(unref(t)("Select a style", { ns: "client" })), 1), (openBlock(true), createElementBlock(Fragment, null, renderList(simpleStyles.value, (item) => { return openBlock(), createElementBlock("div", { @@ -44948,7 +43462,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({ class: "w-full" }, [ createBaseVNode("span", _hoisted_6$2, [ - createVNode(_sfc_main$6, { + createVNode(SimpleStyleItem, { colors: item.colors, "style-name": item.unlocalized_label }, null, 8, ["colors", "style-name"]) @@ -44960,6 +43474,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({ }; } }); +const SimpleStyleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/style-selector/simple-style-selector.vue"]]); function getDefaultMediumStyling(bgLayer) { const layerDef = getLayerDef(bgLayer); if (!layerDef || !layerDef.medium_style_class) @@ -44980,8 +43495,8 @@ const _hoisted_5$3 = ["checked", "aria-label"]; const _sfc_main$4 = /* @__PURE__ */ defineComponent({ __name: "medium-style-item", props: { - style: null, - colorEditable: { type: Boolean } + style: { type: null, required: true }, + colorEditable: { type: Boolean, required: true } }, emits: ["changeStyle"], setup(__props, { emit: emit2 }) { @@ -45016,7 +43531,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({ class: "w-11 h-5 py-[1px] px-[2px]", value: props.style.color, onInput: updateColor - }, null, 40, _hoisted_4$3)) : createCommentVNode("", true) + }, null, 40, _hoisted_4$3)) : createCommentVNode("v-if", true) ]), createBaseVNode("input", { type: "checkbox", @@ -45031,12 +43546,13 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({ }; } }); +const MediumStyleItem = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/style-selector/medium-style-item.vue"]]); const _hoisted_1$3 = { class: "text-white border-2 p-[10px] m-[10px]" }; const _hoisted_2$3 = { class: "text-center mb-3" }; const _sfc_main$3 = /* @__PURE__ */ defineComponent({ __name: "medium-style-selector", props: { - layer: null + layer: { type: null, required: true } }, setup(__props) { const props = __props; @@ -45060,7 +43576,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({ return openBlock(), createElementBlock("div", _hoisted_1$3, [ createBaseVNode("h5", _hoisted_2$3, toDisplayString(unref(isColorVisible) ? unref(t)("Select a colour for every theme") : unref(t)("Activate categories")), 1), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(styles), (item, i) => { - return openBlock(), createBlock(_sfc_main$4, { + return openBlock(), createBlock(MediumStyleItem, { key: item.label, style: normalizeStyle(item), onChangeStyle: ($event) => changeStyle(i, $event), @@ -45071,6 +43587,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({ }; } }); +const MediumStyleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/style-selector/medium-style-selector.vue"]]); var FileSaver_min = { exports: {} }; (function(module, exports2) { (function(a, b) { @@ -45228,6 +43745,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({ }; } }); +const ExpertStyleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/style-selector/expert-style-selector.vue"]]); const _hoisted_1$1 = { key: 0 }; const _hoisted_2$1 = { class: "h-20 shrink-0 flex justify-between lux-panel-title" }; const _hoisted_3$1 = { key: 0 }; @@ -45266,67 +43784,39 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({ createBaseVNode("button", { onClick: _cache[1] || (_cache[1] = () => isRef(isSimpleStyleOpen) ? isSimpleStyleOpen.value = !unref(isSimpleStyleOpen) : isSimpleStyleOpen = !unref(isSimpleStyleOpen)) }, toDisplayString(unref(t)("Choose a predefined style")), 1), - createVNode(_sfc_main$5, { + createVNode(SimpleStyleSelector, { class: normalizeClass(unref(isSimpleStyleOpen) ? "" : "hidden") }, null, 8, ["class"]) - ])) : createCommentVNode("", true), + ])) : createCommentVNode("v-if", true), unref(styleCapabilities).hasAdvancedStyle ? (openBlock(), createElementBlock("div", _hoisted_4$1, [ createBaseVNode("button", { onClick: _cache[2] || (_cache[2] = () => isRef(isMediumStyleOpen) ? isMediumStyleOpen.value = !unref(isMediumStyleOpen) : isMediumStyleOpen = !unref(isMediumStyleOpen)) }, toDisplayString(unref(t)("Change main colours")), 1), - unref(bgLayer) ? (openBlock(), createBlock(_sfc_main$3, { + unref(bgLayer) ? (openBlock(), createBlock(MediumStyleSelector, { key: 0, class: normalizeClass(unref(isMediumStyleOpen) ? "" : "hidden"), layer: unref(bgLayer) - }, null, 8, ["class", "layer"])) : createCommentVNode("", true) - ])) : createCommentVNode("", true), + }, null, 8, ["class", "layer"])) : createCommentVNode("v-if", true) + ])) : createCommentVNode("v-if", true), unref(styleCapabilities).hasExpertStyle ? (openBlock(), createElementBlock("div", _hoisted_5$1, [ createBaseVNode("button", { onClick: _cache[3] || (_cache[3] = () => isRef(isAdvancedStyleOpen) ? isAdvancedStyleOpen.value = !unref(isAdvancedStyleOpen) : isAdvancedStyleOpen = !unref(isAdvancedStyleOpen)) }, toDisplayString(unref(t)("Advanced settings")), 1), - unref(bgLayer) ? (openBlock(), createBlock(_sfc_main$2, { + unref(bgLayer) ? (openBlock(), createBlock(ExpertStyleSelector, { key: 0, class: normalizeClass(unref(isAdvancedStyleOpen) ? "" : "hidden"), layer: unref(bgLayer) - }, null, 8, ["class", "layer"])) : createCommentVNode("", true) - ])) : createCommentVNode("", true), + }, null, 8, ["class", "layer"])) : createCommentVNode("v-if", true) + ])) : createCommentVNode("v-if", true), createBaseVNode("button", { onClick: resetStyle, class: "lux-btn" }, toDisplayString(unref(t)("Reset style", { ns: "client" })), 1) - ])) : createCommentVNode("", true); + ])) : createCommentVNode("v-if", true); }; } }); -class StatePersistorLayersOpenService { - bootstrapLayersOpen() { - this.restoreLayersOpen(); - let stop; - stop = watchEffect(() => { - this.persistLayersOpen(); - stop && stop(); - }); - } - persistLayersOpen() { - const appStore = useAppStore(); - const { layersOpen } = storeToRefs(appStore); - watch( - layersOpen, - (value, oldValue) => { - if (oldValue !== value) { - storageHelper.setValue(SP_KEY_LAYERS_OPEN, value); - } - }, - { immediate: true } - ); - } - restoreLayersOpen() { - const layersOpen = storageHelper.getValue(SP_KEY_LAYERS_OPEN) !== "false"; - const { setLayersOpen } = useAppStore(); - setLayersOpen(layersOpen); - } -} -const statePersistorLayersOpenService = new StatePersistorLayersOpenService(); +const StyleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/style-selector/style-selector.vue"]]); const _hoisted_1 = { class: "h-screen flex flex-col overflow-hidden" }; const _hoisted_2 = { class: "flex grow" }; const _hoisted_3 = { @@ -45342,10 +43832,12 @@ const _hoisted_6 = { class: "absolute right-1 top-16" }; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "App", setup(__props) { + statePersistorMyMapService.bootstrap(); statePersistorLayersService.bootstrap(); statePersistorThemeService.bootstrap(); statePersistorLayersOpenService.bootstrapLayersOpen(); statePersistorStyleService.bootstrapStyle(); + statePersistorBgLayerService.bootstrap(); const { layersOpen, styleEditorOpen } = storeToRefs(useAppStore()); watch( layersOpen, @@ -45355,40 +43847,55 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ ); onMounted(() => window.addEventListener("resize", resizeMap)); onUnmounted(() => window.removeEventListener("resize", resizeMap)); + function traverseLayer(layer, ancestors, visitor) { + const descend = visitor(layer, ancestors); + if (descend && layer instanceof olLayerGroup) { + layer.getLayers().forEach((childLayer) => { + traverseLayer(childLayer, [...ancestors, layer], visitor); + }); + } + } function resizeMap() { const map2 = useMap().getOlMap(); map2.updateSize(); - map2.getAllLayers().forEach((layer) => { - if (layer instanceof MapLibreLayer) { + traverseLayer(map2.getLayerGroup(), [], (layer) => { + if (layer instanceof MapBox) { layer.maplibreMap.resize(); } + return true; }); } return (_ctx, _cache) => { return openBlock(), createElementBlock("div", _hoisted_1, [ - createVNode(_sfc_main$l), + createVNode(HeaderBar), createBaseVNode("main", _hoisted_2, [ + createCommentVNode(" Layer panel "), unref(layersOpen) ? (openBlock(), createElementBlock("div", _hoisted_3, [ - createVNode(_sfc_main$9) - ])) : createCommentVNode("", true), + createVNode(LayerPanel) + ])) : createCommentVNode("v-if", true), + createCommentVNode(" Style editor "), unref(styleEditorOpen) ? (openBlock(), createElementBlock("div", _hoisted_4, [ - createVNode(_sfc_main$1) - ])) : createCommentVNode("", true), + createVNode(StyleSelector) + ])) : createCommentVNode("v-if", true), + createCommentVNode(" Map container and slider comparator "), createBaseVNode("div", _hoisted_5, [ - createVNode(_sfc_main$u), - createVNode(_sfc_main$7), - createVNode(_sfc_main$p), - createVNode(_sfc_main$n) + createVNode(MapContainer), + createVNode(SliderComparator), + createVNode(RemoteLayers), + createVNode(LayerMetadata) ]), + createCommentVNode(" Background selector "), createBaseVNode("div", _hoisted_6, [ - createVNode(_sfc_main$s) + createVNode(BackgroundSelector) ]) ]), - createVNode(_sfc_main$i, { class: "fixed bottom-5 sm:static z-20" }) + createVNode(FooterBar, { class: "fixed bottom-5 sm:static z-20" }), + createVNode(AlertNotifications) ]); }; } }); +const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/App.vue"]]); initProjections(); instance.use(Backend); instance.init({ @@ -45402,7 +43909,7 @@ instance.init({ loadPath: `/static-ngeo/web-components/assets/locales/{{ns}}.{{lng}}.json` } }); -const app = createApp(_sfc_main); +const app = createApp(App); app.use(createPinia()); app.use(install, { i18next: instance }); app.use(y); @@ -45420,17 +43927,19 @@ const createElementInstance = (component = {}, app2 = null) => { ); }; export { - _sfc_main as App, - _sfc_main$s as BackgroundSelector, - _sfc_main$A as DropdownList, - _sfc_main$i as FooterBar, - _sfc_main$l as HeaderBar, + AlertNotifications, + App, + BackgroundSelector, + DropdownList, + FooterBar, + HeaderBar, install as I18NextVue, - _sfc_main$n as LayerMetadata, - _sfc_main$9 as LayerPanel, - _sfc_main$u as MapContainer, - _sfc_main$p as RemoteLayers, - _sfc_main$7 as SliderComparator, + LayerMetadata, + LayerPanel, + MapContainer, + MapBox as MapLibreLayer, + RemoteLayers, + SliderComparator, y as VueDOMPurifyHTML, app, Backend as backend, @@ -45438,13 +43947,18 @@ export { createPinia, defineCustomElement, instance as i18next, + statePersistorBgLayerService, + statePersistorLayersOpenService, statePersistorLayersService, + statePersistorMyMapService, + statePersistorStyleService, statePersistorThemeService, storeToRefs, themeSelectorService, useAppStore, useMap, useMapStore, + useOpenLayers, useThemeStore, watch }; diff --git a/bundle/lux.dist.umd.js b/bundle/lux.dist.umd.js index e9bfea09..c175671f 100644 --- a/bundle/lux.dist.umd.js +++ b/bundle/lux.dist.umd.js @@ -5,8 +5,8 @@ var __publicField = (obj, key, value) => { return value; }; (function(global2, factory) { - typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("ol/proj"), require("ol/proj/proj4"), require("ol/Map"), require("ol/View"), require("ol/layer/Image"), require("ol/layer/Tile"), require("ol/source"), require("ol/layer/Layer"), require("ol/math"), require("ol/tilegrid/WMTS"), require("ol/extent.js"), require("ol/events"), require("ol/ObjectEventType"), require("ol/control/Attribution"), require("ol/css"), require("ol/control/Control"), require("ol/control/FullScreen"), require("ol/control/Zoom"), require("ol/control/ZoomToExtent"), require("ol/format/WMTSCapabilities.js"), require("ol/render"), require("ol/Observable"), require("ol/render/EventType")) : typeof define === "function" && define.amd ? define(["exports", "ol/proj", "ol/proj/proj4", "ol/Map", "ol/View", "ol/layer/Image", "ol/layer/Tile", "ol/source", "ol/layer/Layer", "ol/math", "ol/tilegrid/WMTS", "ol/extent.js", "ol/events", "ol/ObjectEventType", "ol/control/Attribution", "ol/css", "ol/control/Control", "ol/control/FullScreen", "ol/control/Zoom", "ol/control/ZoomToExtent", "ol/format/WMTSCapabilities.js", "ol/render", "ol/Observable", "ol/render/EventType"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2["luxembourg-geoportail"] = {}, global2.proj, global2.proj4$1, global2.OlMap, global2.OlView, global2.ImageLayer, global2.TileLayer, global2.source, global2.Layer, global2.math, global2.WmtsTileGrid, global2.extent_js, global2.olEvents, global2.ObjectEventType, global2.Attribution, global2.css$1, global2.Control, global2.FullScreen, global2.Zoom, global2.OlControlZoomToExtent, global2.WMTSCapabilities, global2.render$1, global2.Observable, global2.EventType)); -})(this, function(exports2, proj, proj4$1, OlMap, OlView, ImageLayer, TileLayer, source, Layer, math, WmtsTileGrid, extent_js, olEvents, ObjectEventType, Attribution, css$1, Control, FullScreen, Zoom, OlControlZoomToExtent, WMTSCapabilities, render$1, Observable, EventType) { + typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("ol/proj"), require("ol/proj/proj4"), require("ol/Map"), require("ol/View"), require("ol/layer/Image"), require("ol/layer/Tile"), require("ol/source"), require("ol/layer/Layer"), require("ol/math"), require("ol/proj.js"), require("ol/tilegrid/WMTS"), require("ol/extent.js"), require("ol/events"), require("ol/ObjectEventType"), require("ol/control/Attribution"), require("ol/css"), require("ol/control/Control"), require("ol/control/FullScreen"), require("ol/control/Zoom"), require("ol/control/ZoomToExtent"), require("ol/format/WMTSCapabilities.js"), require("ol/render"), require("ol/Observable"), require("ol/render/EventType"), require("ol/layer/Group.js")) : typeof define === "function" && define.amd ? define(["exports", "ol/proj", "ol/proj/proj4", "ol/Map", "ol/View", "ol/layer/Image", "ol/layer/Tile", "ol/source", "ol/layer/Layer", "ol/math", "ol/proj.js", "ol/tilegrid/WMTS", "ol/extent.js", "ol/events", "ol/ObjectEventType", "ol/control/Attribution", "ol/css", "ol/control/Control", "ol/control/FullScreen", "ol/control/Zoom", "ol/control/ZoomToExtent", "ol/format/WMTSCapabilities.js", "ol/render", "ol/Observable", "ol/render/EventType", "ol/layer/Group.js"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2["luxembourg-geoportail"] = {}, global2.proj, global2.proj4$1, global2.OlMap, global2.OlView, global2.ImageLayer, global2.TileLayer, global2.source, global2.Layer, global2.math, global2.proj_js, global2.WmtsTileGrid, global2.extent_js, global2.olEvents, global2.ObjectEventType, global2.Attribution, global2.css$1, global2.Control, global2.FullScreen, global2.Zoom, global2.OlControlZoomToExtent, global2.WMTSCapabilities, global2.render$1, global2.Observable, global2.EventType, global2.olLayerGroup)); +})(this, function(exports2, proj, proj4$1, OlMap, OlView, ImageLayer, TileLayer, source, Layer, math, proj_js, WmtsTileGrid, extent_js, olEvents, ObjectEventType, Attribution, css$1, Control, FullScreen, Zoom, OlControlZoomToExtent, WMTSCapabilities, render$1, Observable, EventType, olLayerGroup) { "use strict"; const _interopDefaultLegacy = (e) => e && typeof e === "object" && "default" in e ? e : { default: e }; function _interopNamespace(e) { @@ -61,6 +61,7 @@ var __publicField = (obj, key, value) => { const OlControlZoomToExtent__default = /* @__PURE__ */ _interopDefaultLegacy(OlControlZoomToExtent); const WMTSCapabilities__default = /* @__PURE__ */ _interopDefaultLegacy(WMTSCapabilities); const EventType__default = /* @__PURE__ */ _interopDefaultLegacy(EventType); + const olLayerGroup__default = /* @__PURE__ */ _interopDefaultLegacy(olLayerGroup); function makeMap(str, expectsLowerCase) { const map2 = /* @__PURE__ */ Object.create(null); const list = str.split(","); @@ -6365,10 +6366,10 @@ Component that was made reactive: `, type); } needRemove && el.removeAttribute(key); } - function addEventListener$1(el, event, handler, options) { + function addEventListener(el, event, handler, options) { el.addEventListener(event, handler, options); } - function removeEventListener$1(el, event, handler, options) { + function removeEventListener(el, event, handler, options) { el.removeEventListener(event, handler, options); } function patchEvent(el, rawName, prevValue, nextValue, instance2 = null) { @@ -6380,9 +6381,9 @@ Component that was made reactive: `, type); const [name, options] = parseName(rawName); if (nextValue) { const invoker = invokers[rawName] = createInvoker(nextValue, instance2); - addEventListener$1(el, name, invoker, options); + addEventListener(el, name, invoker, options); } else if (existingInvoker) { - removeEventListener$1(el, name, existingInvoker, options); + removeEventListener(el, name, existingInvoker, options); invokers[rawName] = void 0; } } @@ -15228,6 +15229,111 @@ This will fail in production.`); } } const main = ""; + var AlertNotificationType = /* @__PURE__ */ ((AlertNotificationType2) => { + AlertNotificationType2["INFO"] = "alert-info"; + AlertNotificationType2["WARNING"] = "alert-warning"; + AlertNotificationType2["ERROR"] = "alert-danger"; + return AlertNotificationType2; + })(AlertNotificationType || {}); + const DEFAULT_NOTIFICATION_TYPE = AlertNotificationType.INFO; + const DEFAULT_NOTIFICATION_DURATION = 7e3; + const DEFAULT_NOTIFICATION_DURATION_WARNING = 4e3; + const useAlertNotificationsStore = defineStore( + "alert-notifications", + () => { + const notifications = ref([]); + function addNotification(message, type = DEFAULT_NOTIFICATION_TYPE, duration) { + const notification = { + message, + type, + duration: duration != null ? duration : type === AlertNotificationType.WARNING ? DEFAULT_NOTIFICATION_DURATION_WARNING : DEFAULT_NOTIFICATION_DURATION + }; + notifications.value.push(notification); + } + function removeNotification(index2) { + notifications.value.splice(index2, 1); + } + return { + notifications, + addNotification, + removeNotification + }; + }, + {} + ); + const _sfc_main$C = /* @__PURE__ */ defineComponent({ + __name: "notification-item", + props: { + notification: { type: null, required: true } + }, + emits: ["close"], + setup(__props) { + const props = __props; + const show = shallowRef(true); + function onEnter(el, done) { + setTimeout(() => { + show.value = false; + }, props.notification.duration); + done(); + } + return (_ctx, _cache) => { + return openBlock(), createBlock(Transition, { + name: "fade-out", + appear: "", + "leave-active-class": "duration-200 ease-in", + "leave-from-class": "opacity-100", + "leave-to-class": "transform opacity-0", + onEnter, + onAfterLeave: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("close")) + }, { + default: withCtx(() => [ + unref(show) ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass(["lux-alert", `lux-${props.notification.type}`]), + role: "alert" + }, toDisplayString(props.notification.message), 3)) : createCommentVNode("v-if", true) + ]), + _: 1 + }); + }; + } + }); + const _export_sfc = (sfc, props) => { + const target = sfc.__vccOpts || sfc; + for (const [key, val] of props) { + target[key] = val; + } + return target; + }; + const Notification = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/alert-notifications/notification-item.vue"]]); + const _hoisted_1$r = { + key: 0, + class: "lux-notifications fixed w-[500px] top-10 left-1/2 ml-[-250px] z-50" + }; + const _sfc_main$B = /* @__PURE__ */ defineComponent({ + __name: "alert-notifications", + setup(__props) { + const alertNotificationsStore = useAlertNotificationsStore(); + const { notifications } = storeToRefs(alertNotificationsStore); + function onClose(index2) { + alertNotificationsStore.removeNotification(index2); + } + return (_ctx, _cache) => { + return openBlock(), createBlock(Teleport, { to: "body" }, [ + unref(notifications).length ? (openBlock(), createElementBlock("div", _hoisted_1$r, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(unref(notifications), (notification, index2) => { + return openBlock(), createBlock(Notification, { + key: index2, + notification, + onClose: () => onClose(index2) + }, null, 8, ["notification", "onClose"]); + }), 128)) + ])) : createCommentVNode("v-if", true) + ]); + }; + } + }); + const AlertNotifications = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/alert-notifications/alert-notifications.vue"]]); const _hoisted_1$q = { class: "lux-dropdown" }; const _hoisted_2$k = { class: "h-full" }; const _hoisted_3$i = ["aria-expanded"]; @@ -15237,9 +15343,9 @@ This will fail in production.`); const _sfc_main$A = /* @__PURE__ */ defineComponent({ __name: "dropdown-list", props: { - placeholder: null, - options: { default: () => [{ label: "Default label", value: "Default value" }] }, - modelValue: null + placeholder: { type: String, required: true }, + options: { type: Array, required: true, default: () => [{ label: "Default label", value: "Default value" }] }, + modelValue: { type: String, required: false } }, emits: ["change"], setup(__props, { emit: emit2 }) { @@ -15301,6 +15407,7 @@ This will fail in production.`); }; } }); + const DropdownList = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/common/dropdown-list.vue"]]); const PROJECTION_WEBMERCATOR = "EPSG:3857"; const PROJECTION_WGS84 = "EPSG:4326"; const PROJECTION_LUX = "EPSG:2169"; @@ -15387,12 +15494,12 @@ This will fail in production.`); }; } var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; - var maplibreGl = { exports: {} }; + var mapboxGl = { exports: {} }; (function(module2, exports3) { (function(global2, factory) { module2.exports = factory(); })(commonjsGlobal, function() { - var shared, worker, maplibregl2; + var shared, worker, mapboxgl2; function define2(_, chunk) { if (!shared) { shared = chunk; @@ -15402,140 +15509,55 @@ This will fail in production.`); var workerBundleString = "var sharedChunk = {}; (" + shared + ")(sharedChunk); (" + worker + ")(sharedChunk);"; var sharedChunk = {}; shared(sharedChunk); - maplibregl2 = chunk(sharedChunk); + mapboxgl2 = chunk(sharedChunk); if (typeof window !== "undefined") { - maplibregl2.workerUrl = window.URL.createObjectURL(new Blob([workerBundleString], { type: "text/javascript" })); + mapboxgl2.workerUrl = window.URL.createObjectURL(new Blob([workerBundleString], { type: "text/javascript" })); } } } define2(["exports"], function(t) { - var e = r; - function r(t2, e2, r2, n2) { - this.cx = 3 * t2, this.bx = 3 * (r2 - t2) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * e2, this.by = 3 * (n2 - e2) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = t2, this.p1y = e2, this.p2x = r2, this.p2y = n2; + function e(t2, e2) { + return t2(e2 = { exports: {} }, e2.exports), e2.exports; } - function n(t2, r2, n2, i2) { - const a2 = new e(t2, r2, n2, i2); - return function(t3) { - return a2.solve(t3); - }; + var r = n; + function n(t2, e2, r2, n2) { + this.cx = 3 * t2, this.bx = 3 * (r2 - t2) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * e2, this.by = 3 * (n2 - e2) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = t2, this.p1y = n2, this.p2x = r2, this.p2y = n2; } - r.prototype = { sampleCurveX: function(t2) { + n.prototype.sampleCurveX = function(t2) { return ((this.ax * t2 + this.bx) * t2 + this.cx) * t2; - }, sampleCurveY: function(t2) { + }, n.prototype.sampleCurveY = function(t2) { return ((this.ay * t2 + this.by) * t2 + this.cy) * t2; - }, sampleCurveDerivativeX: function(t2) { + }, n.prototype.sampleCurveDerivativeX = function(t2) { return (3 * this.ax * t2 + 2 * this.bx) * t2 + this.cx; - }, solveCurveX: function(t2, e2) { - if (void 0 === e2 && (e2 = 1e-6), t2 < 0) - return 0; - if (t2 > 1) - return 1; - for (var r2 = t2, n2 = 0; n2 < 8; n2++) { - var i2 = this.sampleCurveX(r2) - t2; - if (Math.abs(i2) < e2) - return r2; - var a2 = this.sampleCurveDerivativeX(r2); - if (Math.abs(a2) < 1e-6) + }, n.prototype.solveCurveX = function(t2, e2) { + var r2, n2, i2, a2, o2; + for (void 0 === e2 && (e2 = 1e-6), i2 = t2, o2 = 0; o2 < 8; o2++) { + if (a2 = this.sampleCurveX(i2) - t2, Math.abs(a2) < e2) + return i2; + var s2 = this.sampleCurveDerivativeX(i2); + if (Math.abs(s2) < 1e-6) break; - r2 -= i2 / a2; - } - var s2 = 0, o2 = 1; - for (r2 = t2, n2 = 0; n2 < 20 && (i2 = this.sampleCurveX(r2), !(Math.abs(i2 - t2) < e2)); n2++) - t2 > i2 ? s2 = r2 : o2 = r2, r2 = 0.5 * (o2 - s2) + s2; - return r2; - }, solve: function(t2, e2) { - return this.sampleCurveY(this.solveCurveX(t2, e2)); - } }; - const i = n(0.25, 0.1, 0.25, 1); - function a(t2, e2, r2) { - return Math.min(r2, Math.max(e2, t2)); - } - function s(t2, e2, r2) { - const n2 = r2 - e2, i2 = ((t2 - e2) % n2 + n2) % n2 + e2; - return i2 === e2 ? r2 : i2; - } - function o(t2, ...e2) { - for (const r2 of e2) - for (const e3 in r2) - t2[e3] = r2[e3]; - return t2; - } - let l = 1; - function u(t2, e2) { - t2.forEach((t3) => { - e2[t3] && (e2[t3] = e2[t3].bind(e2)); - }); - } - function c2(t2, e2, r2) { - const n2 = {}; - for (const i2 in t2) - n2[i2] = e2.call(r2 || this, t2[i2], i2, t2); - return n2; - } - function h2(t2, e2, r2) { - const n2 = {}; - for (const i2 in t2) - e2.call(r2 || this, t2[i2], i2, t2) && (n2[i2] = t2[i2]); - return n2; - } - function p2(t2) { - return Array.isArray(t2) ? t2.map(p2) : "object" == typeof t2 && t2 ? c2(t2, p2) : t2; - } - const f = {}; - function d(t2) { - f[t2] || ("undefined" != typeof console && console.warn(t2), f[t2] = true); - } - function y2(t2, e2, r2) { - return (r2.y - t2.y) * (e2.x - t2.x) > (e2.y - t2.y) * (r2.x - t2.x); - } - function m(t2) { - let e2 = 0; - for (let r2, n2, i2 = 0, a2 = t2.length, s2 = a2 - 1; i2 < a2; s2 = i2++) - r2 = t2[i2], n2 = t2[s2], e2 += (n2.x - r2.x) * (r2.y + n2.y); - return e2; - } - function g() { - return "undefined" != typeof WorkerGlobalScope && "undefined" != typeof self && self instanceof WorkerGlobalScope; - } - function x(t2) { - const e2 = {}; - if (t2.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g, (t3, r2, n2, i2) => { - const a2 = n2 || i2; - return e2[r2] = !a2 || a2.toLowerCase(), ""; - }), e2["max-age"]) { - const t3 = parseInt(e2["max-age"], 10); - isNaN(t3) ? delete e2["max-age"] : e2["max-age"] = t3; + i2 -= a2 / s2; } - return e2; - } - let v2, b, w = null; - function _(t2) { - if (null == w) { - const e2 = t2.navigator ? t2.navigator.userAgent : null; - w = !!t2.safari || !(!e2 || !(/\b(iPad|iPhone|iPod)\b/.test(e2) || e2.match("Safari") && !e2.match("Chrome"))); + if ((i2 = t2) < (r2 = 0)) + return r2; + if (i2 > (n2 = 1)) + return n2; + for (; r2 < n2; ) { + if (a2 = this.sampleCurveX(i2), Math.abs(a2 - t2) < e2) + return i2; + t2 > a2 ? r2 = i2 : n2 = i2, i2 = 0.5 * (n2 - r2) + r2; } - return w; - } - function A2(t2) { - return "undefined" != typeof ImageBitmap && t2 instanceof ImageBitmap; - } - const k = { now: "undefined" != typeof performance && performance && performance.now ? performance.now.bind(performance) : Date.now.bind(Date), frame(t2) { - const e2 = requestAnimationFrame(t2); - return { cancel: () => cancelAnimationFrame(e2) }; - }, getImageData(t2, e2 = 0) { - const r2 = window.document.createElement("canvas"), n2 = r2.getContext("2d"); - if (!n2) - throw new Error("failed to create canvas 2d context"); - return r2.width = t2.width, r2.height = t2.height, n2.drawImage(t2, 0, 0, t2.width, t2.height), n2.getImageData(-e2, -e2, t2.width + 2 * e2, t2.height + 2 * e2); - }, resolveURL: (t2) => (v2 || (v2 = document.createElement("a")), v2.href = t2, v2.href), hardwareConcurrency: "undefined" != typeof navigator && navigator.hardwareConcurrency || 4, get prefersReducedMotion() { - return !!matchMedia && (null == b && (b = matchMedia("(prefers-reduced-motion: reduce)")), b.matches); - } }; - var S = I2; - function I2(t2, e2) { + return i2; + }, n.prototype.solve = function(t2, e2) { + return this.sampleCurveY(this.solveCurveX(t2, e2)); + }; + var i = a; + function a(t2, e2) { this.x = t2, this.y = e2; } - I2.prototype = { clone: function() { - return new I2(this.x, this.y); + a.prototype = { clone: function() { + return new a(this.x, this.y); }, add: function(t2) { return this.clone()._add(t2); }, sub: function(t2) { @@ -15605,469 +15627,766 @@ This will fail in production.`); return this.x = e2.x + r2 * (this.x - e2.x) - n2 * (this.y - e2.y), this.y = i2, this; }, _round: function() { return this.x = Math.round(this.x), this.y = Math.round(this.y), this; - } }, I2.convert = function(t2) { - return t2 instanceof I2 ? t2 : Array.isArray(t2) ? new I2(t2[0], t2[1]) : t2; + } }, a.convert = function(t2) { + return t2 instanceof a ? t2 : Array.isArray(t2) ? new a(t2[0], t2[1]) : t2; }; - const M = { MAX_PARALLEL_IMAGE_REQUESTS: 16, REGISTERED_PROTOCOLS: {} }, z = "mapbox-tiles"; - let B, C, P = 500, V2 = 50; - function E() { - "undefined" == typeof caches || B || (B = caches.open(z)); + var o = "undefined" != typeof self ? self : {}, s = Math.pow(2, 53) - 1; + function u(t2, e2, n2, i2) { + var a2 = new r(t2, e2, n2, i2); + return function(t3) { + return a2.solve(t3); + }; } - let F = 1 / 0; - const T = { supported: false, testSupport: function(t2) { - !$ && D && (R ? O2(t2) : L = t2); - } }; - let L, D, $ = false, R = false; - function O2(t2) { - const e2 = t2.createTexture(); + var l = u(0.25, 0.1, 0.25, 1); + function p2(t2, e2, r2) { + return Math.min(r2, Math.max(e2, t2)); + } + function c2(t2, e2, r2) { + var n2 = r2 - e2, i2 = ((t2 - e2) % n2 + n2) % n2 + e2; + return i2 === e2 ? r2 : i2; + } + function h2(t2) { + for (var e2 = [], r2 = arguments.length - 1; r2-- > 0; ) + e2[r2] = arguments[r2 + 1]; + for (var n2 = 0, i2 = e2; n2 < i2.length; n2 += 1) { + var a2 = i2[n2]; + for (var o2 in a2) + t2[o2] = a2[o2]; + } + return t2; + } + var f = 1; + function y2() { + return f++; + } + function d() { + return function t2(e2) { + return e2 ? (e2 ^ 16 * Math.random() >> e2 / 4).toString(16) : ([1e7] + -[1e3] + -4e3 + -8e3 + -1e11).replace(/[018]/g, t2); + }(); + } + function m(t2) { + return !!t2 && /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t2); + } + function v2(t2, e2) { + t2.forEach(function(t3) { + e2[t3] && (e2[t3] = e2[t3].bind(e2)); + }); + } + function g(t2, e2) { + return -1 !== t2.indexOf(e2, t2.length - e2.length); + } + function x(t2, e2, r2) { + var n2 = {}; + for (var i2 in t2) + n2[i2] = e2.call(r2 || this, t2[i2], i2, t2); + return n2; + } + function b(t2, e2, r2) { + var n2 = {}; + for (var i2 in t2) + e2.call(r2 || this, t2[i2], i2, t2) && (n2[i2] = t2[i2]); + return n2; + } + function w(t2) { + return Array.isArray(t2) ? t2.map(w) : "object" == typeof t2 && t2 ? x(t2, w) : t2; + } + var _ = {}; + function A2(t2) { + _[t2] || ("undefined" != typeof console && console.warn(t2), _[t2] = true); + } + function S(t2, e2, r2) { + return (r2.y - t2.y) * (e2.x - t2.x) > (e2.y - t2.y) * (r2.x - t2.x); + } + function k(t2) { + for (var e2 = 0, r2 = 0, n2 = t2.length, i2 = n2 - 1, a2 = void 0, o2 = void 0; r2 < n2; i2 = r2++) + e2 += ((o2 = t2[i2]).x - (a2 = t2[r2]).x) * (a2.y + o2.y); + return e2; + } + function I2() { + return "undefined" != typeof WorkerGlobalScope && "undefined" != typeof self && self instanceof WorkerGlobalScope; + } + function z(t2) { + var e2 = {}; + if (t2.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g, function(t3, r3, n2, i2) { + var a2 = n2 || i2; + return e2[r3] = !a2 || a2.toLowerCase(), ""; + }), e2["max-age"]) { + var r2 = parseInt(e2["max-age"], 10); + isNaN(r2) ? delete e2["max-age"] : e2["max-age"] = r2; + } + return e2; + } + var C = null; + function E(t2) { + if (null == C) { + var e2 = t2.navigator ? t2.navigator.userAgent : null; + C = !!t2.safari || !(!e2 || !(/\b(iPad|iPhone|iPod)\b/.test(e2) || e2.match("Safari") && !e2.match("Chrome"))); + } + return C; + } + function P(t2) { + try { + var e2 = o[t2]; + return e2.setItem("_mapbox_test_", 1), e2.removeItem("_mapbox_test_"), true; + } catch (t3) { + return false; + } + } + var M, B, T, V2, F = o.performance && o.performance.now ? o.performance.now.bind(o.performance) : Date.now.bind(Date), D = o.requestAnimationFrame || o.mozRequestAnimationFrame || o.webkitRequestAnimationFrame || o.msRequestAnimationFrame, L = o.cancelAnimationFrame || o.mozCancelAnimationFrame || o.webkitCancelAnimationFrame || o.msCancelAnimationFrame, O2 = { now: F, frame: function(t2) { + var e2 = D(t2); + return { cancel: function() { + return L(e2); + } }; + }, getImageData: function(t2, e2) { + void 0 === e2 && (e2 = 0); + var r2 = o.document.createElement("canvas"), n2 = r2.getContext("2d"); + if (!n2) + throw new Error("failed to create canvas 2d context"); + return r2.width = t2.width, r2.height = t2.height, n2.drawImage(t2, 0, 0, t2.width, t2.height), n2.getImageData(-e2, -e2, t2.width + 2 * e2, t2.height + 2 * e2); + }, resolveURL: function(t2) { + return M || (M = o.document.createElement("a")), M.href = t2, M.href; + }, hardwareConcurrency: o.navigator && o.navigator.hardwareConcurrency || 4, get devicePixelRatio() { + return o.devicePixelRatio; + }, get prefersReducedMotion() { + return !!o.matchMedia && (null == B && (B = o.matchMedia("(prefers-reduced-motion: reduce)")), B.matches); + } }, R = { API_URL: "https://api.mapbox.com", get EVENTS_URL() { + return this.API_URL ? 0 === this.API_URL.indexOf("https://api.mapbox.cn") ? "https://events.mapbox.cn/events/v2" : 0 === this.API_URL.indexOf("https://api.mapbox.com") ? "https://events.mapbox.com/events/v2" : null : null; + }, FEEDBACK_URL: "https://apps.mapbox.com/feedback", REQUIRE_ACCESS_TOKEN: true, ACCESS_TOKEN: null, MAX_PARALLEL_IMAGE_REQUESTS: 16 }, U = { supported: false, testSupport: function(t2) { + !j && V2 && (q ? N(t2) : T = t2); + } }, j = false, q = false; + function N(t2) { + var e2 = t2.createTexture(); t2.bindTexture(t2.TEXTURE_2D, e2); try { - if (t2.texImage2D(t2.TEXTURE_2D, 0, t2.RGBA, t2.RGBA, t2.UNSIGNED_BYTE, D), t2.isContextLost()) + if (t2.texImage2D(t2.TEXTURE_2D, 0, t2.RGBA, t2.RGBA, t2.UNSIGNED_BYTE, V2), t2.isContextLost()) return; - T.supported = true; + U.supported = true; } catch (t3) { } - t2.deleteTexture(e2), $ = true; - } - "undefined" != typeof document && (D = document.createElement("img"), D.onload = function() { - L && O2(L), L = null, R = true; - }, D.onerror = function() { - $ = true, L = null; - }, D.src = "data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="); - const U = { Unknown: "Unknown", Style: "Style", Source: "Source", Tile: "Tile", Glyphs: "Glyphs", SpriteImage: "SpriteImage", SpriteJSON: "SpriteJSON", Image: "Image" }; - "function" == typeof Object.freeze && Object.freeze(U); - class q extends Error { - constructor(t2, e2, r2, n2) { - super(`AJAXError: ${e2} (${t2}): ${r2}`), this.status = t2, this.statusText = e2, this.url = r2, this.body = n2; - } - } - const j = g() ? () => self.worker && self.worker.referrer : () => ("blob:" === window.location.protocol ? window.parent : window).location.href; - function N(t2, e2) { - const r2 = new AbortController(), n2 = new Request(t2.url, { method: t2.method || "GET", body: t2.body, credentials: t2.credentials, headers: t2.headers, referrer: j(), signal: r2.signal }); - let i2 = false, a2 = false; - "json" === t2.type && n2.headers.set("Accept", "application/json"); - return ((r3, s2, o2) => { - if (a2) - return; - const l2 = Date.now(); - fetch(n2).then((r4) => r4.ok ? ((r5, s3, o3) => { - ("arrayBuffer" === t2.type ? r5.arrayBuffer() : "json" === t2.type ? r5.json() : r5.text()).then((t3) => { - a2 || (s3 && o3 && function(t4, e3, r6) { - if (E(), !B) - return; - const n3 = { status: e3.status, statusText: e3.statusText, headers: new Headers() }; - e3.headers.forEach((t5, e4) => n3.headers.set(e4, t5)); - const i3 = x(e3.headers.get("Cache-Control") || ""); - i3["no-store"] || (i3["max-age"] && n3.headers.set("Expires", new Date(r6 + 1e3 * i3["max-age"]).toUTCString()), new Date(n3.headers.get("Expires")).getTime() - r6 < 42e4 || function(t5, e4) { - if (void 0 === C) - try { - new Response(new ReadableStream()), C = true; - } catch (t6) { - C = false; - } - C ? e4(t5.body) : t5.blob().then(e4); - }(e3, (e4) => { - const r7 = new Response(e4, n3); - E(), B && B.then((e5) => e5.put(function(t5) { - const e6 = t5.indexOf("?"); - return e6 < 0 ? t5 : t5.slice(0, e6); - }(t4.url), r7)).catch((t5) => d(t5.message)); - })); - }(n2, s3, o3), i2 = true, e2(null, t3, r5.headers.get("Cache-Control"), r5.headers.get("Expires"))); - }).catch((t3) => { - a2 || e2(new Error(t3.message)); - }); - })(r4, null, l2) : r4.blob().then((n3) => e2(new q(r4.status, r4.statusText, t2.url, n3)))).catch((t3) => { - 20 !== t3.code && e2(new Error(t3.message)); - }); - })(), { cancel: () => { - a2 = true, i2 || r2.abort(); - } }; + t2.deleteTexture(e2), j = true; + } + o.document && ((V2 = o.document.createElement("img")).onload = function() { + T && N(T), T = null, q = true; + }, V2.onerror = function() { + j = true, T = null; + }, V2.src = "data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="); + var K = "01", G = function(t2, e2) { + this._transformRequestFn = t2, this._customAccessToken = e2, this._createSkuToken(); + }; + function Z2(t2) { + return 0 === t2.indexOf("mapbox:"); + } + G.prototype._createSkuToken = function() { + var t2 = function() { + for (var t3 = "", e2 = 0; e2 < 10; e2++) + t3 += "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62 * Math.random())]; + return { token: ["1", K, t3].join(""), tokenExpiresAt: Date.now() + 432e5 }; + }(); + this._skuToken = t2.token, this._skuTokenExpiresAt = t2.tokenExpiresAt; + }, G.prototype._isSkuTokenExpired = function() { + return Date.now() > this._skuTokenExpiresAt; + }, G.prototype.transformRequest = function(t2, e2) { + return this._transformRequestFn && this._transformRequestFn(t2, e2) || { url: t2 }; + }, G.prototype.normalizeStyleURL = function(t2, e2) { + if (!Z2(t2)) + return t2; + var r2 = Y(t2); + return r2.path = "/styles/v1" + r2.path, this._makeAPIURL(r2, this._customAccessToken || e2); + }, G.prototype.normalizeGlyphsURL = function(t2, e2) { + if (!Z2(t2)) + return t2; + var r2 = Y(t2); + return r2.path = "/fonts/v1" + r2.path, this._makeAPIURL(r2, this._customAccessToken || e2); + }, G.prototype.normalizeSourceURL = function(t2, e2) { + if (!Z2(t2)) + return t2; + var r2 = Y(t2); + return r2.path = "/v4/" + r2.authority + ".json", r2.params.push("secure"), this._makeAPIURL(r2, this._customAccessToken || e2); + }, G.prototype.normalizeSpriteURL = function(t2, e2, r2, n2) { + var i2 = Y(t2); + return Z2(t2) ? (i2.path = "/styles/v1" + i2.path + "/sprite" + e2 + r2, this._makeAPIURL(i2, this._customAccessToken || n2)) : (i2.path += "" + e2 + r2, $(i2)); + }, G.prototype.normalizeTileURL = function(t2, e2) { + if (this._isSkuTokenExpired() && this._createSkuToken(), t2 && !Z2(t2)) + return t2; + var r2 = Y(t2); + r2.path = r2.path.replace(/(\.(png|jpg)\d*)(?=$)/, (O2.devicePixelRatio >= 2 || 512 === e2 ? "@2x" : "") + (U.supported ? ".webp" : "$1")), r2.path = r2.path.replace(/^.+\/v4\//, "/"), r2.path = "/v4" + r2.path; + var n2 = this._customAccessToken || function(t3) { + for (var e3 = 0, r3 = t3; e3 < r3.length; e3 += 1) { + var n3 = r3[e3].match(/^access_token=(.*)$/); + if (n3) + return n3[1]; + } + return null; + }(r2.params) || R.ACCESS_TOKEN; + return R.REQUIRE_ACCESS_TOKEN && n2 && this._skuToken && r2.params.push("sku=" + this._skuToken), this._makeAPIURL(r2, n2); + }, G.prototype.canonicalizeTileURL = function(t2, e2) { + var r2 = Y(t2); + if (!r2.path.match(/(^\/v4\/)/) || !r2.path.match(/\.[\w]+$/)) + return t2; + var n2 = "mapbox://tiles/"; + n2 += r2.path.replace("/v4/", ""); + var i2 = r2.params; + return e2 && (i2 = i2.filter(function(t3) { + return !t3.match(/^access_token=/); + })), i2.length && (n2 += "?" + i2.join("&")), n2; + }, G.prototype.canonicalizeTileset = function(t2, e2) { + for (var r2 = !!e2 && Z2(e2), n2 = [], i2 = 0, a2 = t2.tiles || []; i2 < a2.length; i2 += 1) { + var o2 = a2[i2]; + J(o2) ? n2.push(this.canonicalizeTileURL(o2, r2)) : n2.push(o2); + } + return n2; + }, G.prototype._makeAPIURL = function(t2, e2) { + var r2 = "See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes", n2 = Y(R.API_URL); + if (t2.protocol = n2.protocol, t2.authority = n2.authority, "http" === t2.protocol) { + var i2 = t2.params.indexOf("secure"); + i2 >= 0 && t2.params.splice(i2, 1); + } + if ("/" !== n2.path && (t2.path = "" + n2.path + t2.path), !R.REQUIRE_ACCESS_TOKEN) + return $(t2); + if (!(e2 = e2 || R.ACCESS_TOKEN)) + throw new Error("An API access token is required to use Mapbox GL. " + r2); + if ("s" === e2[0]) + throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). " + r2); + return t2.params = t2.params.filter(function(t3) { + return -1 === t3.indexOf("access_token"); + }), t2.params.push("access_token=" + e2), $(t2); + }; + var X = /^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i; + function J(t2) { + return X.test(t2); + } + var H = /^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/; + function Y(t2) { + var e2 = t2.match(H); + if (!e2) + throw new Error("Unable to parse URL object"); + return { protocol: e2[1], authority: e2[2], path: e2[3] || "/", params: e2[4] ? e2[4].split("&") : [] }; + } + function $(t2) { + var e2 = t2.params.length ? "?" + t2.params.join("&") : ""; + return t2.protocol + "://" + t2.authority + t2.path + e2; + } + function W(t2) { + if (!t2) + return null; + var e2 = t2.split("."); + if (!e2 || 3 !== e2.length) + return null; + try { + return JSON.parse(decodeURIComponent(o.atob(e2[1]).split("").map(function(t3) { + return "%" + ("00" + t3.charCodeAt(0).toString(16)).slice(-2); + }).join(""))); + } catch (t3) { + return null; + } } - const Z2 = function(t2, e2) { - if (/:\/\//.test(t2.url) && !/^https?:|^file:/.test(t2.url)) { - if (g() && self.worker && self.worker.actor) - return self.worker.actor.send("getResource", t2, e2); - if (!g()) { - const r3 = t2.url.substring(0, t2.url.indexOf("://")); - return (M.REGISTERED_PROTOCOLS[r3] || N)(t2, e2); + var Q = function(t2) { + this.type = t2, this.anonId = null, this.eventData = {}, this.queue = [], this.pendingRequest = null; + }; + Q.prototype.getStorageKey = function(t2) { + var e2, r2 = W(R.ACCESS_TOKEN); + return e2 = r2 && r2.u ? o.btoa(encodeURIComponent(r2.u).replace(/%([0-9A-F]{2})/g, function(t3, e3) { + return String.fromCharCode(Number("0x" + e3)); + })) : R.ACCESS_TOKEN || "", t2 ? "mapbox.eventData." + t2 + ":" + e2 : "mapbox.eventData:" + e2; + }, Q.prototype.fetchEventData = function() { + var t2 = P("localStorage"), e2 = this.getStorageKey(), r2 = this.getStorageKey("uuid"); + if (t2) + try { + var n2 = o.localStorage.getItem(e2); + n2 && (this.eventData = JSON.parse(n2)); + var i2 = o.localStorage.getItem(r2); + i2 && (this.anonId = i2); + } catch (t3) { + A2("Unable to read from LocalStorage"); } + }, Q.prototype.saveEventData = function() { + var t2 = P("localStorage"), e2 = this.getStorageKey(), r2 = this.getStorageKey("uuid"); + if (t2) + try { + o.localStorage.setItem(r2, this.anonId), Object.keys(this.eventData).length >= 1 && o.localStorage.setItem(e2, JSON.stringify(this.eventData)); + } catch (t3) { + A2("Unable to write to LocalStorage"); + } + }, Q.prototype.processRequests = function(t2) { + }, Q.prototype.postEvent = function(t2, e2, r2, n2) { + var i2 = this; + if (R.EVENTS_URL) { + var a2 = Y(R.EVENTS_URL); + a2.params.push("access_token=" + (n2 || R.ACCESS_TOKEN || "")); + var o2 = { event: this.type, created: new Date(t2).toISOString(), sdkIdentifier: "mapbox-gl-js", sdkVersion: "1.13.3", skuId: K, userId: this.anonId }, s2 = e2 ? h2(o2, e2) : o2, u2 = { url: $(a2), headers: { "Content-Type": "text/plain" }, body: JSON.stringify([s2]) }; + this.pendingRequest = wt(u2, function(t3) { + i2.pendingRequest = null, r2(t3), i2.saveEventData(), i2.processRequests(n2); + }); } - if (!(/^file:/.test(r2 = t2.url) || /^file:/.test(j()) && !/^\w+:/.test(r2))) { - if (fetch && Request && AbortController && Object.prototype.hasOwnProperty.call(Request.prototype, "signal")) - return N(t2, e2); - if (g() && self.worker && self.worker.actor) + }, Q.prototype.queueRequest = function(t2, e2) { + this.queue.push(t2), this.processRequests(e2); + }; + var tt, et, rt = function(t2) { + function e2() { + t2.call(this, "map.load"), this.success = {}, this.skuToken = ""; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.postMapLoadEvent = function(t3, e3, r2, n2) { + this.skuToken = r2; + var i2 = !(!n2 && !R.ACCESS_TOKEN), a2 = Array.isArray(t3) && t3.some(function(t4) { + return Z2(t4) || J(t4); + }); + R.EVENTS_URL && i2 && a2 && this.queueRequest({ id: e3, timestamp: Date.now() }, n2); + }, e2.prototype.processRequests = function(t3) { + var e3 = this; + if (!this.pendingRequest && 0 !== this.queue.length) { + var r2 = this.queue.shift(), n2 = r2.id, i2 = r2.timestamp; + n2 && this.success[n2] || (this.anonId || this.fetchEventData(), m(this.anonId) || (this.anonId = d()), this.postEvent(i2, { skuToken: this.skuToken }, function(t4) { + t4 || n2 && (e3.success[n2] = true); + }, t3)); + } + }, e2; + }(Q), nt = new (function(t2) { + function e2(e3) { + t2.call(this, "appUserTurnstile"), this._customAccessToken = e3; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.postTurnstileEvent = function(t3, e3) { + R.EVENTS_URL && R.ACCESS_TOKEN && Array.isArray(t3) && t3.some(function(t4) { + return Z2(t4) || J(t4); + }) && this.queueRequest(Date.now(), e3); + }, e2.prototype.processRequests = function(t3) { + var e3 = this; + if (!this.pendingRequest && 0 !== this.queue.length) { + this.anonId && this.eventData.lastSuccess && this.eventData.tokenU || this.fetchEventData(); + var r2 = W(R.ACCESS_TOKEN), n2 = r2 ? r2.u : R.ACCESS_TOKEN, i2 = n2 !== this.eventData.tokenU; + m(this.anonId) || (this.anonId = d(), i2 = true); + var a2 = this.queue.shift(); + if (this.eventData.lastSuccess) { + var o2 = new Date(this.eventData.lastSuccess), s2 = new Date(a2), u2 = (a2 - this.eventData.lastSuccess) / 864e5; + i2 = i2 || u2 >= 1 || u2 < -1 || o2.getDate() !== s2.getDate(); + } else + i2 = true; + if (!i2) + return this.processRequests(); + this.postEvent(a2, { "enabled.telemetry": false }, function(t4) { + t4 || (e3.eventData.lastSuccess = a2, e3.eventData.tokenU = n2); + }, t3); + } + }, e2; + }(Q))(), it = nt.postTurnstileEvent.bind(nt), at = new rt(), ot = at.postMapLoadEvent.bind(at), st = 500, ut = 50; + function lt() { + o.caches && !tt && (tt = o.caches.open("mapbox-tiles")); + } + function pt(t2) { + var e2 = t2.indexOf("?"); + return e2 < 0 ? t2 : t2.slice(0, e2); + } + var ct, ht = 1 / 0; + function ft() { + return null == ct && (ct = o.OffscreenCanvas && new o.OffscreenCanvas(1, 1).getContext("2d") && "function" == typeof o.createImageBitmap), ct; + } + var yt = { Unknown: "Unknown", Style: "Style", Source: "Source", Tile: "Tile", Glyphs: "Glyphs", SpriteImage: "SpriteImage", SpriteJSON: "SpriteJSON", Image: "Image" }; + "function" == typeof Object.freeze && Object.freeze(yt); + var dt = function(t2) { + function e2(e3, r2, n2) { + 401 === r2 && J(n2) && (e3 += ": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"), t2.call(this, e3), this.status = r2, this.url = n2, this.name = this.constructor.name, this.message = e3; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.toString = function() { + return this.name + ": " + this.message + " (" + this.status + "): " + this.url; + }, e2; + }(Error), mt = I2() ? function() { + return self.worker && self.worker.referrer; + } : function() { + return ("blob:" === o.location.protocol ? o.parent : o).location.href; + }; + var vt, gt, xt = function(t2, e2) { + if (!(/^file:/.test(r2 = t2.url) || /^file:/.test(mt()) && !/^\w+:/.test(r2))) { + if (o.fetch && o.Request && o.AbortController && o.Request.prototype.hasOwnProperty("signal")) + return function(t3, e3) { + var r3, n2 = new o.AbortController(), i2 = new o.Request(t3.url, { method: t3.method || "GET", body: t3.body, credentials: t3.credentials, headers: t3.headers, referrer: mt(), signal: n2.signal }), a2 = false, s2 = false, u2 = (r3 = i2.url).indexOf("sku=") > 0 && J(r3); + "json" === t3.type && i2.headers.set("Accept", "application/json"); + var l2 = function(r4, n3, a3) { + if (!s2) { + if (r4 && "SecurityError" !== r4.message && A2(r4), n3 && a3) + return p3(n3); + var l3 = Date.now(); + o.fetch(i2).then(function(r5) { + if (r5.ok) { + var n4 = u2 ? r5.clone() : null; + return p3(r5, n4, l3); + } + return e3(new dt(r5.statusText, r5.status, t3.url)); + }).catch(function(t4) { + 20 !== t4.code && e3(new Error(t4.message)); + }); + } + }, p3 = function(r4, n3, u3) { + ("arrayBuffer" === t3.type ? r4.arrayBuffer() : "json" === t3.type ? r4.json() : r4.text()).then(function(t4) { + s2 || (n3 && u3 && function(t5, e4, r5) { + if (lt(), tt) { + var n4 = { status: e4.status, statusText: e4.statusText, headers: new o.Headers() }; + e4.headers.forEach(function(t6, e5) { + return n4.headers.set(e5, t6); + }); + var i3 = z(e4.headers.get("Cache-Control") || ""); + i3["no-store"] || (i3["max-age"] && n4.headers.set("Expires", new Date(r5 + 1e3 * i3["max-age"]).toUTCString()), new Date(n4.headers.get("Expires")).getTime() - r5 < 42e4 || function(t6, e5) { + if (void 0 === et) + try { + new Response(new ReadableStream()), et = true; + } catch (t7) { + et = false; + } + et ? e5(t6.body) : t6.blob().then(e5); + }(e4, function(e5) { + var r6 = new o.Response(e5, n4); + lt(), tt && tt.then(function(e6) { + return e6.put(pt(t5.url), r6); + }).catch(function(t6) { + return A2(t6.message); + }); + })); + } + }(i2, n3, u3), a2 = true, e3(null, t4, r4.headers.get("Cache-Control"), r4.headers.get("Expires"))); + }).catch(function(t4) { + s2 || e3(new Error(t4.message)); + }); + }; + return u2 ? function(t4, e4) { + if (lt(), !tt) + return e4(null); + var r4 = pt(t4.url); + tt.then(function(t5) { + t5.match(r4).then(function(n3) { + var i3 = function(t6) { + if (!t6) + return false; + var e5 = new Date(t6.headers.get("Expires") || 0), r5 = z(t6.headers.get("Cache-Control") || ""); + return e5 > Date.now() && !r5["no-cache"]; + }(n3); + t5.delete(r4), i3 && t5.put(r4, n3.clone()), e4(null, n3, i3); + }).catch(e4); + }).catch(e4); + }(i2, l2) : l2(null, null), { cancel: function() { + s2 = true, a2 || n2.abort(); + } }; + }(t2, e2); + if (I2() && self.worker && self.worker.actor) return self.worker.actor.send("getResource", t2, e2, void 0, true); } var r2; return function(t3, e3) { - const r3 = new XMLHttpRequest(); - r3.open(t3.method || "GET", t3.url, true), "arrayBuffer" === t3.type && (r3.responseType = "arraybuffer"); - for (const e4 in t3.headers) - r3.setRequestHeader(e4, t3.headers[e4]); - return "json" === t3.type && (r3.responseType = "text", r3.setRequestHeader("Accept", "application/json")), r3.withCredentials = "include" === t3.credentials, r3.onerror = () => { + var r3 = new o.XMLHttpRequest(); + for (var n2 in r3.open(t3.method || "GET", t3.url, true), "arrayBuffer" === t3.type && (r3.responseType = "arraybuffer"), t3.headers) + r3.setRequestHeader(n2, t3.headers[n2]); + return "json" === t3.type && (r3.responseType = "text", r3.setRequestHeader("Accept", "application/json")), r3.withCredentials = "include" === t3.credentials, r3.onerror = function() { e3(new Error(r3.statusText)); - }, r3.onload = () => { + }, r3.onload = function() { if ((r3.status >= 200 && r3.status < 300 || 0 === r3.status) && null !== r3.response) { - let n2 = r3.response; + var n3 = r3.response; if ("json" === t3.type) try { - n2 = JSON.parse(r3.response); + n3 = JSON.parse(r3.response); } catch (t4) { return e3(t4); } - e3(null, n2, r3.getResponseHeader("Cache-Control"), r3.getResponseHeader("Expires")); - } else { - const n2 = new Blob([r3.response], { type: r3.getResponseHeader("Content-Type") }); - e3(new q(r3.status, r3.statusText, t3.url, n2)); - } - }, r3.send(t3.body), { cancel: () => r3.abort() }; + e3(null, n3, r3.getResponseHeader("Cache-Control"), r3.getResponseHeader("Expires")); + } else + e3(new dt(r3.statusText, r3.status, t3.url)); + }, r3.send(t3.body), { cancel: function() { + return r3.abort(); + } }; }(t2, e2); - }, K = function(t2, e2) { - return Z2(o(t2, { type: "arrayBuffer" }), e2); - }; - function G(t2) { - const e2 = window.document.createElement("a"); - return e2.href = t2, e2.protocol === window.document.location.protocol && e2.host === window.document.location.host; - } - const J = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII="; - let X, Y; - X = [], Y = 0; - const H = function(t2, e2) { - if (T.supported && (t2.headers || (t2.headers = {}), t2.headers.accept = "image/webp,*/*"), Y >= M.MAX_PARALLEL_IMAGE_REQUESTS) { - const r3 = { requestParameters: t2, callback: e2, cancelled: false, cancel() { + }, bt = function(t2, e2) { + return xt(h2(t2, { type: "arrayBuffer" }), e2); + }, wt = function(t2, e2) { + return xt(h2(t2, { method: "POST" }), e2); + }, _t = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII="; + vt = [], gt = 0; + var At = function(t2, e2) { + if (U.supported && (t2.headers || (t2.headers = {}), t2.headers.accept = "image/webp,*/*"), gt >= R.MAX_PARALLEL_IMAGE_REQUESTS) { + var r2 = { requestParameters: t2, callback: e2, cancelled: false, cancel: function() { this.cancelled = true; } }; - return X.push(r3), r3; + return vt.push(r2), r2; } - Y++; - let r2 = false; - const n2 = () => { - if (!r2) - for (r2 = true, Y--; X.length && Y < M.MAX_PARALLEL_IMAGE_REQUESTS; ) { - const t3 = X.shift(), { requestParameters: e3, callback: r3, cancelled: n3 } = t3; - n3 || (t3.cancel = H(e3, r3).cancel); + gt++; + var n2 = false, i2 = function() { + if (!n2) + for (n2 = true, gt--; vt.length && gt < R.MAX_PARALLEL_IMAGE_REQUESTS; ) { + var t3 = vt.shift(); + t3.cancelled || (t3.cancel = At(t3.requestParameters, t3.callback).cancel); } - }, i2 = K(t2, (t3, r3, i3, a2) => { - n2(), t3 ? e2(t3) : r3 && function(t4, e3) { - "function" == typeof createImageBitmap ? function(t5, e4) { - const r4 = new Blob([new Uint8Array(t5)], { type: "image/png" }); - createImageBitmap(r4).then((t6) => { - e4(null, t6); - }).catch((t6) => { - e4(new Error(`Could not load image because of ${t6.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)); + }, a2 = bt(t2, function(t3, r3, n3, a3) { + i2(), t3 ? e2(t3) : r3 && (ft() ? function(t4, e3) { + var r4 = new o.Blob([new Uint8Array(t4)], { type: "image/png" }); + o.createImageBitmap(r4).then(function(t5) { + e3(null, t5); + }).catch(function(t5) { + e3(new Error("Could not load image because of " + t5.message + ". Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.")); + }); + }(r3, e2) : function(t4, e3, r4, n4) { + var i3 = new o.Image(), a4 = o.URL; + i3.onload = function() { + e3(null, i3), a4.revokeObjectURL(i3.src), i3.onload = null, o.requestAnimationFrame(function() { + i3.src = _t; }); - }(t4, e3) : function(t5, e4) { - const r4 = new Image(); - r4.onload = () => { - e4(null, r4), URL.revokeObjectURL(r4.src), r4.onload = null, window.requestAnimationFrame(() => { - r4.src = J; - }); - }, r4.onerror = () => e4(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.")); - const n3 = new Blob([new Uint8Array(t5)], { type: "image/png" }); - r4.src = t5.byteLength ? URL.createObjectURL(n3) : J; - }(t4, e3); - }(r3, (t4, r4) => { - null != t4 ? e2(t4) : null != r4 && e2(null, r4, { cacheControl: i3, expires: a2 }); - }); + }, i3.onerror = function() { + return e3(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.")); + }; + var s2 = new o.Blob([new Uint8Array(t4)], { type: "image/png" }); + i3.cacheControl = r4, i3.expires = n4, i3.src = t4.byteLength ? a4.createObjectURL(s2) : _t; + }(r3, e2, n3, a3)); }); - return { cancel: () => { - i2.cancel(), n2(); + return { cancel: function() { + a2.cancel(), i2(); } }; }; - function W(t2, e2, r2) { + function St(t2, e2, r2) { r2[t2] && -1 !== r2[t2].indexOf(e2) || (r2[t2] = r2[t2] || [], r2[t2].push(e2)); } - function Q(t2, e2, r2) { + function kt(t2, e2, r2) { if (r2 && r2[t2]) { - const n2 = r2[t2].indexOf(e2); + var n2 = r2[t2].indexOf(e2); -1 !== n2 && r2[t2].splice(n2, 1); } } - class tt { - constructor(t2, e2 = {}) { - o(this, e2), this.type = t2; - } - } - class et extends tt { - constructor(t2, e2 = {}) { - super("error", o({ error: t2 }, e2)); - } - } - class rt { - on(t2, e2) { - return this._listeners = this._listeners || {}, W(t2, e2, this._listeners), this; + var It = function(t2, e2) { + void 0 === e2 && (e2 = {}), h2(this, e2), this.type = t2; + }, zt = function(t2) { + function e2(e3, r2) { + void 0 === r2 && (r2 = {}), t2.call(this, "error", h2({ error: e3 }, r2)); } - off(t2, e2) { - return Q(t2, e2, this._listeners), Q(t2, e2, this._oneTimeListeners), this; - } - once(t2, e2) { - return this._oneTimeListeners = this._oneTimeListeners || {}, W(t2, e2, this._oneTimeListeners), this; - } - fire(t2, e2) { - "string" == typeof t2 && (t2 = new tt(t2, e2 || {})); - const r2 = t2.type; - if (this.listens(r2)) { - t2.target = this; - const e3 = this._listeners && this._listeners[r2] ? this._listeners[r2].slice() : []; - for (const r3 of e3) - r3.call(this, t2); - const n2 = this._oneTimeListeners && this._oneTimeListeners[r2] ? this._oneTimeListeners[r2].slice() : []; - for (const e4 of n2) - Q(r2, e4, this._oneTimeListeners), e4.call(this, t2); - const i2 = this._eventedParent; - i2 && (o(t2, "function" == typeof this._eventedParentData ? this._eventedParentData() : this._eventedParentData), i2.fire(t2)); - } else - t2 instanceof et && console.error(t2.error); - return this; - } - listens(t2) { - return this._listeners && this._listeners[t2] && this._listeners[t2].length > 0 || this._oneTimeListeners && this._oneTimeListeners[t2] && this._oneTimeListeners[t2].length > 0 || this._eventedParent && this._eventedParent.listens(t2); - } - setEventedParent(t2, e2) { - return this._eventedParent = t2, this._eventedParentData = e2, this; - } - } - var nt = { $version: 8, $root: { version: { required: true, type: "enum", values: [8] }, name: { type: "string" }, metadata: { type: "*" }, center: { type: "array", value: "number" }, zoom: { type: "number" }, bearing: { type: "number", default: 0, period: 360, units: "degrees" }, pitch: { type: "number", default: 0, units: "degrees" }, light: { type: "light" }, terrain: { type: "terrain" }, sources: { required: true, type: "sources" }, sprite: { type: "string" }, glyphs: { type: "string" }, transition: { type: "transition" }, layers: { required: true, 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: true, 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: false }, "*": { type: "*" } }, source_raster: { type: { required: true, 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: false }, "*": { type: "*" } }, source_raster_dem: { type: { required: true, 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: {} }, default: "mapbox" }, volatile: { type: "boolean", default: false }, "*": { type: "*" } }, source_geojson: { type: { required: true, type: "enum", values: { geojson: {} } }, data: { 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: false }, clusterRadius: { type: "number", default: 50, minimum: 0 }, clusterMaxZoom: { type: "number" }, clusterMinPoints: { type: "number" }, clusterProperties: { type: "*" }, lineMetrics: { type: "boolean", default: false }, generateId: { type: "boolean", default: false }, promoteId: { type: "promoteId" } }, source_video: { type: { required: true, type: "enum", values: { video: {} } }, urls: { required: true, type: "array", value: "string" }, coordinates: { required: true, type: "array", length: 4, value: { type: "array", length: 2, value: "number" } } }, source_image: { type: { required: true, type: "enum", values: { image: {} } }, url: { required: true, type: "string" }, coordinates: { required: true, type: "array", length: 4, value: { type: "array", length: 2, value: "number" } } }, layer: { id: { type: "string", required: true }, type: { type: "enum", values: { fill: {}, line: {}, symbol: {}, circle: {}, heatmap: {}, "fill-extrusion": {}, raster: {}, hillshade: {}, background: {} }, required: true }, 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_background"], layout_background: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_fill: { "fill-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_circle: { "circle-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_heatmap: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, "layout_fill-extrusion": { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_line: { "line-cap": { type: "enum", values: { butt: {}, round: {}, square: {} }, default: "butt", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-join": { type: "enum", values: { bevel: {}, round: {}, miter: {} }, default: "miter", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "line-miter-limit": { type: "number", default: 2, requires: [{ "line-join": "miter" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-round-limit": { type: "number", default: 1.05, requires: [{ "line-join": "round" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_symbol: { "symbol-placement": { type: "enum", values: { point: {}, line: {}, "line-center": {} }, default: "point", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-spacing": { type: "number", default: 250, minimum: 1, units: "pixels", requires: [{ "symbol-placement": "line" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-avoid-edges": { type: "boolean", default: false, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "symbol-z-order": { type: "enum", values: { auto: {}, "viewport-y": {}, source: {} }, default: "auto", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-allow-overlap": { type: "boolean", default: false, requires: ["icon-image", { "!": "icon-overlap" }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-overlap": { type: "enum", values: { never: {}, always: {}, cooperative: {} }, requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-ignore-placement": { type: "boolean", default: false, requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-optional": { type: "boolean", default: false, requires: ["icon-image", "text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-rotation-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["icon-image"], expression: { interpolated: false, 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: true, 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: false, 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: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-image": { type: "resolvedImage", tokens: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-rotate": { type: "number", default: 0, period: 360, units: "degrees", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-padding": { type: "padding", default: [2], units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-keep-upright": { type: "boolean", default: false, requires: ["icon-image", { "icon-rotation-alignment": "map" }, { "symbol-placement": ["line", "line-center"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-offset": { type: "array", value: "number", length: 2, default: [0, 0], requires: ["icon-image"], expression: { interpolated: true, 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: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-pitch-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-pitch-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-rotation-alignment": { type: "enum", values: { map: {}, viewport: {}, "viewport-glyph": {}, auto: {} }, default: "auto", requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-field": { type: "formatted", default: "", tokens: true, expression: { interpolated: false, 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: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-size": { type: "number", default: 16, minimum: 0, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-max-width": { type: "number", default: 10, minimum: 0, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-line-height": { type: "number", default: 1.2, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-letter-spacing": { type: "number", default: 0, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-justify": { type: "enum", values: { auto: {}, left: {}, center: {}, right: {} }, default: "center", requires: ["text-field"], expression: { interpolated: false, 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: true, 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: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "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: false, 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: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-writing-mode": { type: "array", value: "enum", values: { horizontal: {}, vertical: {} }, requires: ["text-field", { "symbol-placement": ["point"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-rotate": { type: "number", default: 0, period: 360, units: "degrees", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-padding": { type: "number", default: 2, minimum: 0, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-keep-upright": { type: "boolean", default: true, requires: ["text-field", { "text-rotation-alignment": "map" }, { "symbol-placement": ["line", "line-center"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-transform": { type: "enum", values: { none: {}, uppercase: {}, lowercase: {} }, default: "none", requires: ["text-field"], expression: { interpolated: false, 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: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-allow-overlap": { type: "boolean", default: false, requires: ["text-field", { "!": "text-overlap" }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-overlap": { type: "enum", values: { never: {}, always: {}, cooperative: {} }, requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-ignore-placement": { type: "boolean", default: false, requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-optional": { type: "boolean", default: false, requires: ["text-field", "icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_raster: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_hillshade: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, filter: { type: "array", value: "*" }, filter_operator: { type: "enum", values: { "==": {}, "!=": {}, ">": {}, ">=": {}, "<": {}, "<=": {}, in: {}, "!in": {}, all: {}, any: {}, none: {}, has: {}, "!has": {}, within: {} } }, 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: false } }, function_stop: { type: "array", minimum: 0, maximum: 24, value: ["number", "color"], length: 2 }, expression: { type: "array", value: "*", minimum: 1 }, light: { anchor: { type: "enum", default: "viewport", values: { map: {}, viewport: {} }, "property-type": "data-constant", transition: false, expression: { interpolated: false, parameters: ["zoom"] } }, position: { type: "array", default: [1.15, 210, 30], length: 3, value: "number", "property-type": "data-constant", transition: true, expression: { interpolated: true, parameters: ["zoom"] } }, color: { type: "color", "property-type": "data-constant", default: "#ffffff", expression: { interpolated: true, parameters: ["zoom"] }, transition: true }, intensity: { type: "number", "property-type": "data-constant", default: 0.5, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: ["zoom"] }, transition: true } }, terrain: { source: { type: "string", required: true }, exaggeration: { type: "number", minimum: 0, default: 1 }, elevationOffset: { type: "number", default: 450 } }, paint: ["paint_fill", "paint_line", "paint_circle", "paint_heatmap", "paint_fill-extrusion", "paint_symbol", "paint_raster", "paint_hillshade", "paint_background"], paint_fill: { "fill-antialias": { type: "boolean", default: true, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "fill-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-outline-color": { type: "color", transition: true, requires: [{ "!": "fill-pattern" }, { "fill-antialias": true }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["fill-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" } }, "paint_fill-extrusion": { "fill-extrusion-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "fill-extrusion-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["fill-extrusion-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" }, "fill-extrusion-height": { type: "number", default: 0, minimum: 0, units: "meters", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-base": { type: "number", default: 0, minimum: 0, units: "meters", transition: true, requires: ["fill-extrusion-height"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-vertical-gradient": { type: "boolean", default: true, transition: false, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_line: { "line-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "line-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["line-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-width": { type: "number", default: 1, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-gap-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-offset": { type: "number", default: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-dasharray": { type: "array", value: "number", minimum: 0, transition: true, units: "line widths", requires: [{ "!": "line-pattern" }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "cross-faded" }, "line-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" }, "line-gradient": { type: "color", transition: false, requires: [{ "!": "line-dasharray" }, { "!": "line-pattern" }, { source: "geojson", has: { lineMetrics: true } }], expression: { interpolated: true, parameters: ["line-progress"] }, "property-type": "color-ramp" } }, paint_circle: { "circle-radius": { type: "number", default: 5, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-blur": { type: "number", default: 0, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["circle-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-pitch-scale": { type: "enum", values: { map: {}, viewport: {} }, default: "map", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-pitch-alignment": { type: "enum", values: { map: {}, viewport: {} }, default: "viewport", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-stroke-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-stroke-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-stroke-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" } }, paint_heatmap: { "heatmap-radius": { type: "number", default: 30, minimum: 1, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "heatmap-weight": { type: "number", default: 1, minimum: 0, transition: false, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "heatmap-intensity": { type: "number", default: 1, minimum: 0, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "heatmap-color": { type: "color", default: ["interpolate", ["linear"], ["heatmap-density"], 0, "rgba(0, 0, 255, 0)", 0.1, "royalblue", 0.3, "cyan", 0.5, "lime", 0.7, "yellow", 1, "red"], transition: false, expression: { interpolated: true, parameters: ["heatmap-density"] }, "property-type": "color-ramp" }, "heatmap-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_symbol: { "icon-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-color": { type: "color", default: "#000000", transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-color": { type: "color", default: "rgba(0, 0, 0, 0)", transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["icon-image", "icon-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-color": { type: "color", default: "#000000", transition: true, overridable: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-color": { type: "color", default: "rgba(0, 0, 0, 0)", transition: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["text-field", "text-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_raster: { "raster-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-hue-rotate": { type: "number", default: 0, period: 360, transition: true, units: "degrees", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-brightness-min": { type: "number", default: 0, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-brightness-max": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-saturation": { type: "number", default: 0, minimum: -1, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-contrast": { type: "number", default: 0, minimum: -1, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-resampling": { type: "enum", values: { linear: {}, nearest: {} }, default: "linear", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-fade-duration": { type: "number", default: 300, minimum: 0, transition: false, units: "milliseconds", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_hillshade: { "hillshade-illumination-direction": { type: "number", default: 335, minimum: 0, maximum: 359, transition: false, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-illumination-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "viewport", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-exaggeration": { type: "number", default: 0.5, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-shadow-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-highlight-color": { type: "color", default: "#FFFFFF", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-accent-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_background: { "background-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "background-pattern" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "background-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "cross-faded" }, "background-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, transition: { duration: { type: "number", default: 300, minimum: 0, units: "milliseconds" }, delay: { type: "number", default: 0, minimum: 0, units: "milliseconds" } }, "property-type": { "data-driven": { type: "property-type" }, "cross-faded": { type: "property-type" }, "cross-faded-data-driven": { type: "property-type" }, "color-ramp": { type: "property-type" }, "data-constant": { type: "property-type" }, constant: { type: "property-type" } }, promoteId: { "*": { type: "string" } } }; - class it { - constructor(t2, e2, r2, n2) { - this.message = (t2 ? `${t2}: ` : "") + r2, n2 && (this.identifier = n2), null != e2 && e2.__line__ && (this.line = e2.__line__); + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2; + }(It), Ct = function() { + }; + Ct.prototype.on = function(t2, e2) { + return this._listeners = this._listeners || {}, St(t2, e2, this._listeners), this; + }, Ct.prototype.off = function(t2, e2) { + return kt(t2, e2, this._listeners), kt(t2, e2, this._oneTimeListeners), this; + }, Ct.prototype.once = function(t2, e2) { + return this._oneTimeListeners = this._oneTimeListeners || {}, St(t2, e2, this._oneTimeListeners), this; + }, Ct.prototype.fire = function(t2, e2) { + "string" == typeof t2 && (t2 = new It(t2, e2 || {})); + var r2 = t2.type; + if (this.listens(r2)) { + t2.target = this; + for (var n2 = 0, i2 = this._listeners && this._listeners[r2] ? this._listeners[r2].slice() : []; n2 < i2.length; n2 += 1) + i2[n2].call(this, t2); + for (var a2 = 0, o2 = this._oneTimeListeners && this._oneTimeListeners[r2] ? this._oneTimeListeners[r2].slice() : []; a2 < o2.length; a2 += 1) { + var s2 = o2[a2]; + kt(r2, s2, this._oneTimeListeners), s2.call(this, t2); + } + var u2 = this._eventedParent; + u2 && (h2(t2, "function" == typeof this._eventedParentData ? this._eventedParentData() : this._eventedParentData), u2.fire(t2)); + } else + t2 instanceof zt && console.error(t2.error); + return this; + }, Ct.prototype.listens = function(t2) { + return this._listeners && this._listeners[t2] && this._listeners[t2].length > 0 || this._oneTimeListeners && this._oneTimeListeners[t2] && this._oneTimeListeners[t2].length > 0 || this._eventedParent && this._eventedParent.listens(t2); + }, Ct.prototype.setEventedParent = function(t2, e2) { + return this._eventedParent = t2, this._eventedParentData = e2, this; + }; + var Et = { $version: 8, $root: { version: { required: true, type: "enum", values: [8] }, name: { type: "string" }, metadata: { type: "*" }, center: { type: "array", value: "number" }, zoom: { type: "number" }, bearing: { type: "number", default: 0, period: 360, units: "degrees" }, pitch: { type: "number", default: 0, units: "degrees" }, light: { type: "light" }, sources: { required: true, type: "sources" }, sprite: { type: "string" }, glyphs: { type: "string" }, transition: { type: "transition" }, layers: { required: true, 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: true, 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: false }, "*": { type: "*" } }, source_raster: { type: { required: true, 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: false }, "*": { type: "*" } }, source_raster_dem: { type: { required: true, 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: {} }, default: "mapbox" }, volatile: { type: "boolean", default: false }, "*": { type: "*" } }, source_geojson: { type: { required: true, type: "enum", values: { geojson: {} } }, data: { 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: false }, clusterRadius: { type: "number", default: 50, minimum: 0 }, clusterMaxZoom: { type: "number" }, clusterMinPoints: { type: "number" }, clusterProperties: { type: "*" }, lineMetrics: { type: "boolean", default: false }, generateId: { type: "boolean", default: false }, promoteId: { type: "promoteId" } }, source_video: { type: { required: true, type: "enum", values: { video: {} } }, urls: { required: true, type: "array", value: "string" }, coordinates: { required: true, type: "array", length: 4, value: { type: "array", length: 2, value: "number" } } }, source_image: { type: { required: true, type: "enum", values: { image: {} } }, url: { required: true, type: "string" }, coordinates: { required: true, type: "array", length: 4, value: { type: "array", length: 2, value: "number" } } }, layer: { id: { type: "string", required: true }, type: { type: "enum", values: { fill: {}, line: {}, symbol: {}, circle: {}, heatmap: {}, "fill-extrusion": {}, raster: {}, hillshade: {}, background: {} }, required: true }, 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_background"], layout_background: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_fill: { "fill-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_circle: { "circle-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_heatmap: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, "layout_fill-extrusion": { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_line: { "line-cap": { type: "enum", values: { butt: {}, round: {}, square: {} }, default: "butt", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-join": { type: "enum", values: { bevel: {}, round: {}, miter: {} }, default: "miter", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "line-miter-limit": { type: "number", default: 2, requires: [{ "line-join": "miter" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-round-limit": { type: "number", default: 1.05, requires: [{ "line-join": "round" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_symbol: { "symbol-placement": { type: "enum", values: { point: {}, line: {}, "line-center": {} }, default: "point", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-spacing": { type: "number", default: 250, minimum: 1, units: "pixels", requires: [{ "symbol-placement": "line" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-avoid-edges": { type: "boolean", default: false, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "symbol-z-order": { type: "enum", values: { auto: {}, "viewport-y": {}, source: {} }, default: "auto", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-allow-overlap": { type: "boolean", default: false, requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-ignore-placement": { type: "boolean", default: false, requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-optional": { type: "boolean", default: false, requires: ["icon-image", "text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-rotation-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["icon-image"], expression: { interpolated: false, 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: true, 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: false, 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: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-image": { type: "resolvedImage", tokens: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-rotate": { type: "number", default: 0, period: 360, units: "degrees", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-padding": { type: "number", default: 2, minimum: 0, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-keep-upright": { type: "boolean", default: false, requires: ["icon-image", { "icon-rotation-alignment": "map" }, { "symbol-placement": ["line", "line-center"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-offset": { type: "array", value: "number", length: 2, default: [0, 0], requires: ["icon-image"], expression: { interpolated: true, 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: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-pitch-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-pitch-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-rotation-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-field": { type: "formatted", default: "", tokens: true, expression: { interpolated: false, 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: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-size": { type: "number", default: 16, minimum: 0, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-max-width": { type: "number", default: 10, minimum: 0, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-line-height": { type: "number", default: 1.2, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-letter-spacing": { type: "number", default: 0, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-justify": { type: "enum", values: { auto: {}, left: {}, center: {}, right: {} }, default: "center", requires: ["text-field"], expression: { interpolated: false, 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: true, 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: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "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: false, 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: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-writing-mode": { type: "array", value: "enum", values: { horizontal: {}, vertical: {} }, requires: ["text-field", { "symbol-placement": ["point"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-rotate": { type: "number", default: 0, period: 360, units: "degrees", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-padding": { type: "number", default: 2, minimum: 0, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-keep-upright": { type: "boolean", default: true, requires: ["text-field", { "text-rotation-alignment": "map" }, { "symbol-placement": ["line", "line-center"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-transform": { type: "enum", values: { none: {}, uppercase: {}, lowercase: {} }, default: "none", requires: ["text-field"], expression: { interpolated: false, 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: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-allow-overlap": { type: "boolean", default: false, requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-ignore-placement": { type: "boolean", default: false, requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-optional": { type: "boolean", default: false, requires: ["text-field", "icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_raster: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_hillshade: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, filter: { type: "array", value: "*" }, filter_operator: { type: "enum", values: { "==": {}, "!=": {}, ">": {}, ">=": {}, "<": {}, "<=": {}, in: {}, "!in": {}, all: {}, any: {}, none: {}, has: {}, "!has": {}, within: {} } }, 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: false } }, function_stop: { type: "array", minimum: 0, maximum: 24, value: ["number", "color"], length: 2 }, expression: { type: "array", value: "*", minimum: 1 }, light: { anchor: { type: "enum", default: "viewport", values: { map: {}, viewport: {} }, "property-type": "data-constant", transition: false, expression: { interpolated: false, parameters: ["zoom"] } }, position: { type: "array", default: [1.15, 210, 30], length: 3, value: "number", "property-type": "data-constant", transition: true, expression: { interpolated: true, parameters: ["zoom"] } }, color: { type: "color", "property-type": "data-constant", default: "#ffffff", expression: { interpolated: true, parameters: ["zoom"] }, transition: true }, intensity: { type: "number", "property-type": "data-constant", default: 0.5, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: ["zoom"] }, transition: true } }, paint: ["paint_fill", "paint_line", "paint_circle", "paint_heatmap", "paint_fill-extrusion", "paint_symbol", "paint_raster", "paint_hillshade", "paint_background"], paint_fill: { "fill-antialias": { type: "boolean", default: true, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "fill-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-outline-color": { type: "color", transition: true, requires: [{ "!": "fill-pattern" }, { "fill-antialias": true }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["fill-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" } }, "paint_fill-extrusion": { "fill-extrusion-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "fill-extrusion-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["fill-extrusion-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" }, "fill-extrusion-height": { type: "number", default: 0, minimum: 0, units: "meters", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-base": { type: "number", default: 0, minimum: 0, units: "meters", transition: true, requires: ["fill-extrusion-height"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-vertical-gradient": { type: "boolean", default: true, transition: false, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_line: { "line-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "line-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["line-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-width": { type: "number", default: 1, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-gap-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-offset": { type: "number", default: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-dasharray": { type: "array", value: "number", minimum: 0, transition: true, units: "line widths", requires: [{ "!": "line-pattern" }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "cross-faded" }, "line-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" }, "line-gradient": { type: "color", transition: false, requires: [{ "!": "line-dasharray" }, { "!": "line-pattern" }, { source: "geojson", has: { lineMetrics: true } }], expression: { interpolated: true, parameters: ["line-progress"] }, "property-type": "color-ramp" } }, paint_circle: { "circle-radius": { type: "number", default: 5, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-blur": { type: "number", default: 0, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["circle-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-pitch-scale": { type: "enum", values: { map: {}, viewport: {} }, default: "map", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-pitch-alignment": { type: "enum", values: { map: {}, viewport: {} }, default: "viewport", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-stroke-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-stroke-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-stroke-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" } }, paint_heatmap: { "heatmap-radius": { type: "number", default: 30, minimum: 1, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "heatmap-weight": { type: "number", default: 1, minimum: 0, transition: false, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "heatmap-intensity": { type: "number", default: 1, minimum: 0, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "heatmap-color": { type: "color", default: ["interpolate", ["linear"], ["heatmap-density"], 0, "rgba(0, 0, 255, 0)", 0.1, "royalblue", 0.3, "cyan", 0.5, "lime", 0.7, "yellow", 1, "red"], transition: false, expression: { interpolated: true, parameters: ["heatmap-density"] }, "property-type": "color-ramp" }, "heatmap-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_symbol: { "icon-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-color": { type: "color", default: "#000000", transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-color": { type: "color", default: "rgba(0, 0, 0, 0)", transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["icon-image", "icon-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-color": { type: "color", default: "#000000", transition: true, overridable: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-color": { type: "color", default: "rgba(0, 0, 0, 0)", transition: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["text-field", "text-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_raster: { "raster-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-hue-rotate": { type: "number", default: 0, period: 360, transition: true, units: "degrees", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-brightness-min": { type: "number", default: 0, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-brightness-max": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-saturation": { type: "number", default: 0, minimum: -1, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-contrast": { type: "number", default: 0, minimum: -1, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-resampling": { type: "enum", values: { linear: {}, nearest: {} }, default: "linear", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-fade-duration": { type: "number", default: 300, minimum: 0, transition: false, units: "milliseconds", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_hillshade: { "hillshade-illumination-direction": { type: "number", default: 335, minimum: 0, maximum: 359, transition: false, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-illumination-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "viewport", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-exaggeration": { type: "number", default: 0.5, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-shadow-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-highlight-color": { type: "color", default: "#FFFFFF", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-accent-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_background: { "background-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "background-pattern" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "background-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "cross-faded" }, "background-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, transition: { duration: { type: "number", default: 300, minimum: 0, units: "milliseconds" }, delay: { type: "number", default: 0, minimum: 0, units: "milliseconds" } }, "property-type": { "data-driven": { type: "property-type" }, "cross-faded": { type: "property-type" }, "cross-faded-data-driven": { type: "property-type" }, "color-ramp": { type: "property-type" }, "data-constant": { type: "property-type" }, constant: { type: "property-type" } }, promoteId: { "*": { type: "string" } } }, Pt = function(t2, e2, r2, n2) { + this.message = (t2 ? t2 + ": " : "") + r2, n2 && (this.identifier = n2), null != e2 && e2.__line__ && (this.line = e2.__line__); + }; + function Mt(t2) { + var e2 = t2.value; + return e2 ? [new Pt(t2.key, e2, "constants have been deprecated as of v8")] : []; + } + function Bt(t2) { + for (var e2 = [], r2 = arguments.length - 1; r2-- > 0; ) + e2[r2] = arguments[r2 + 1]; + for (var n2 = 0, i2 = e2; n2 < i2.length; n2 += 1) { + var a2 = i2[n2]; + for (var o2 in a2) + t2[o2] = a2[o2]; } - } - function at(t2) { - const e2 = t2.value; - return e2 ? [new it(t2.key, e2, "constants have been deprecated as of v8")] : []; - } - function st(t2, ...e2) { - for (const r2 of e2) - for (const e3 in r2) - t2[e3] = r2[e3]; return t2; } - function ot(t2) { + function Tt(t2) { return t2 instanceof Number || t2 instanceof String || t2 instanceof Boolean ? t2.valueOf() : t2; } - function lt(t2) { + function Vt(t2) { if (Array.isArray(t2)) - return t2.map(lt); + return t2.map(Vt); if (t2 instanceof Object && !(t2 instanceof Number || t2 instanceof String || t2 instanceof Boolean)) { - const e2 = {}; - for (const r2 in t2) - e2[r2] = lt(t2[r2]); + var e2 = {}; + for (var r2 in t2) + e2[r2] = Vt(t2[r2]); return e2; } - return ot(t2); + return Tt(t2); } - class ut extends Error { - constructor(t2, e2) { - super(e2), this.message = e2, this.key = t2; + var Ft = function(t2) { + function e2(e3, r2) { + t2.call(this, r2), this.message = r2, this.key = e3; } - } - class ct { - constructor(t2, e2 = []) { - this.parent = t2, this.bindings = {}; - for (const [t3, r2] of e2) - this.bindings[t3] = r2; - } - concat(t2) { - return new ct(this, t2); - } - get(t2) { - if (this.bindings[t2]) - return this.bindings[t2]; - if (this.parent) - return this.parent.get(t2); - throw new Error(`${t2} not found in scope.`); - } - has(t2) { - return !!this.bindings[t2] || !!this.parent && this.parent.has(t2); + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2; + }(Error), Dt = function(t2, e2) { + void 0 === e2 && (e2 = []), this.parent = t2, this.bindings = {}; + for (var r2 = 0, n2 = e2; r2 < n2.length; r2 += 1) { + var i2 = n2[r2]; + this.bindings[i2[0]] = i2[1]; } - } - const ht = { kind: "null" }, pt = { kind: "number" }, ft = { kind: "string" }, dt = { kind: "boolean" }, yt = { kind: "color" }, mt = { kind: "object" }, gt = { kind: "value" }, xt = { kind: "collator" }, vt = { kind: "formatted" }, bt = { kind: "padding" }, wt = { kind: "resolvedImage" }; - function _t(t2, e2) { + }; + Dt.prototype.concat = function(t2) { + return new Dt(this, t2); + }, Dt.prototype.get = function(t2) { + if (this.bindings[t2]) + return this.bindings[t2]; + if (this.parent) + return this.parent.get(t2); + throw new Error(t2 + " not found in scope."); + }, Dt.prototype.has = function(t2) { + return !!this.bindings[t2] || !!this.parent && this.parent.has(t2); + }; + var Lt = { kind: "null" }, Ot = { kind: "number" }, Rt = { kind: "string" }, Ut = { kind: "boolean" }, jt = { kind: "color" }, qt = { kind: "object" }, Nt = { kind: "value" }, Kt = { kind: "collator" }, Gt = { kind: "formatted" }, Zt = { kind: "resolvedImage" }; + function Xt(t2, e2) { return { kind: "array", itemType: t2, N: e2 }; } - function At(t2) { + function Jt(t2) { if ("array" === t2.kind) { - const e2 = At(t2.itemType); - return "number" == typeof t2.N ? `array<${e2}, ${t2.N}>` : "value" === t2.itemType.kind ? "array" : `array<${e2}>`; + var e2 = Jt(t2.itemType); + return "number" == typeof t2.N ? "array<" + e2 + ", " + t2.N + ">" : "value" === t2.itemType.kind ? "array" : "array<" + e2 + ">"; } return t2.kind; } - const kt = [ht, pt, ft, dt, yt, vt, mt, _t(gt), bt, wt]; - function St(t2, e2) { + var Ht = [Lt, Ot, Rt, Ut, jt, Gt, qt, Xt(Nt), Zt]; + function Yt(t2, e2) { if ("error" === e2.kind) return null; if ("array" === t2.kind) { - if ("array" === e2.kind && (0 === e2.N && "value" === e2.itemType.kind || !St(t2.itemType, e2.itemType)) && ("number" != typeof t2.N || t2.N === e2.N)) + if ("array" === e2.kind && (0 === e2.N && "value" === e2.itemType.kind || !Yt(t2.itemType, e2.itemType)) && ("number" != typeof t2.N || t2.N === e2.N)) return null; } else { if (t2.kind === e2.kind) return null; if ("value" === t2.kind) { - for (const t3 of kt) - if (!St(t3, e2)) - return null; - } - } - return `Expected ${At(t2)} but found ${At(e2)} instead.`; - } - function It(t2, e2) { - return e2.some((e3) => e3.kind === t2.kind); - } - function Mt(t2, e2) { - return e2.some((e3) => "null" === e3 ? null === t2 : "array" === e3 ? Array.isArray(t2) : "object" === e3 ? t2 && !Array.isArray(t2) && "object" == typeof t2 : e3 === typeof t2); - } - var zt, Bt = { transparent: [0, 0, 0, 0], aliceblue: [240, 248, 255, 1], antiquewhite: [250, 235, 215, 1], aqua: [0, 255, 255, 1], aquamarine: [127, 255, 212, 1], azure: [240, 255, 255, 1], beige: [245, 245, 220, 1], bisque: [255, 228, 196, 1], black: [0, 0, 0, 1], blanchedalmond: [255, 235, 205, 1], blue: [0, 0, 255, 1], blueviolet: [138, 43, 226, 1], brown: [165, 42, 42, 1], burlywood: [222, 184, 135, 1], cadetblue: [95, 158, 160, 1], chartreuse: [127, 255, 0, 1], chocolate: [210, 105, 30, 1], coral: [255, 127, 80, 1], cornflowerblue: [100, 149, 237, 1], cornsilk: [255, 248, 220, 1], crimson: [220, 20, 60, 1], cyan: [0, 255, 255, 1], darkblue: [0, 0, 139, 1], darkcyan: [0, 139, 139, 1], darkgoldenrod: [184, 134, 11, 1], darkgray: [169, 169, 169, 1], darkgreen: [0, 100, 0, 1], darkgrey: [169, 169, 169, 1], darkkhaki: [189, 183, 107, 1], darkmagenta: [139, 0, 139, 1], darkolivegreen: [85, 107, 47, 1], darkorange: [255, 140, 0, 1], darkorchid: [153, 50, 204, 1], darkred: [139, 0, 0, 1], darksalmon: [233, 150, 122, 1], darkseagreen: [143, 188, 143, 1], darkslateblue: [72, 61, 139, 1], darkslategray: [47, 79, 79, 1], darkslategrey: [47, 79, 79, 1], darkturquoise: [0, 206, 209, 1], darkviolet: [148, 0, 211, 1], deeppink: [255, 20, 147, 1], deepskyblue: [0, 191, 255, 1], dimgray: [105, 105, 105, 1], dimgrey: [105, 105, 105, 1], dodgerblue: [30, 144, 255, 1], firebrick: [178, 34, 34, 1], floralwhite: [255, 250, 240, 1], forestgreen: [34, 139, 34, 1], fuchsia: [255, 0, 255, 1], gainsboro: [220, 220, 220, 1], ghostwhite: [248, 248, 255, 1], gold: [255, 215, 0, 1], goldenrod: [218, 165, 32, 1], gray: [128, 128, 128, 1], green: [0, 128, 0, 1], greenyellow: [173, 255, 47, 1], grey: [128, 128, 128, 1], honeydew: [240, 255, 240, 1], hotpink: [255, 105, 180, 1], indianred: [205, 92, 92, 1], indigo: [75, 0, 130, 1], ivory: [255, 255, 240, 1], khaki: [240, 230, 140, 1], lavender: [230, 230, 250, 1], lavenderblush: [255, 240, 245, 1], lawngreen: [124, 252, 0, 1], lemonchiffon: [255, 250, 205, 1], lightblue: [173, 216, 230, 1], lightcoral: [240, 128, 128, 1], lightcyan: [224, 255, 255, 1], lightgoldenrodyellow: [250, 250, 210, 1], lightgray: [211, 211, 211, 1], lightgreen: [144, 238, 144, 1], lightgrey: [211, 211, 211, 1], lightpink: [255, 182, 193, 1], lightsalmon: [255, 160, 122, 1], lightseagreen: [32, 178, 170, 1], lightskyblue: [135, 206, 250, 1], lightslategray: [119, 136, 153, 1], lightslategrey: [119, 136, 153, 1], lightsteelblue: [176, 196, 222, 1], lightyellow: [255, 255, 224, 1], lime: [0, 255, 0, 1], limegreen: [50, 205, 50, 1], linen: [250, 240, 230, 1], magenta: [255, 0, 255, 1], maroon: [128, 0, 0, 1], mediumaquamarine: [102, 205, 170, 1], mediumblue: [0, 0, 205, 1], mediumorchid: [186, 85, 211, 1], mediumpurple: [147, 112, 219, 1], mediumseagreen: [60, 179, 113, 1], mediumslateblue: [123, 104, 238, 1], mediumspringgreen: [0, 250, 154, 1], mediumturquoise: [72, 209, 204, 1], mediumvioletred: [199, 21, 133, 1], midnightblue: [25, 25, 112, 1], mintcream: [245, 255, 250, 1], mistyrose: [255, 228, 225, 1], moccasin: [255, 228, 181, 1], navajowhite: [255, 222, 173, 1], navy: [0, 0, 128, 1], oldlace: [253, 245, 230, 1], olive: [128, 128, 0, 1], olivedrab: [107, 142, 35, 1], orange: [255, 165, 0, 1], orangered: [255, 69, 0, 1], orchid: [218, 112, 214, 1], palegoldenrod: [238, 232, 170, 1], palegreen: [152, 251, 152, 1], paleturquoise: [175, 238, 238, 1], palevioletred: [219, 112, 147, 1], papayawhip: [255, 239, 213, 1], peachpuff: [255, 218, 185, 1], peru: [205, 133, 63, 1], pink: [255, 192, 203, 1], plum: [221, 160, 221, 1], powderblue: [176, 224, 230, 1], purple: [128, 0, 128, 1], rebeccapurple: [102, 51, 153, 1], red: [255, 0, 0, 1], rosybrown: [188, 143, 143, 1], royalblue: [65, 105, 225, 1], saddlebrown: [139, 69, 19, 1], salmon: [250, 128, 114, 1], sandybrown: [244, 164, 96, 1], seagreen: [46, 139, 87, 1], seashell: [255, 245, 238, 1], sienna: [160, 82, 45, 1], silver: [192, 192, 192, 1], skyblue: [135, 206, 235, 1], slateblue: [106, 90, 205, 1], slategray: [112, 128, 144, 1], slategrey: [112, 128, 144, 1], snow: [255, 250, 250, 1], springgreen: [0, 255, 127, 1], steelblue: [70, 130, 180, 1], tan: [210, 180, 140, 1], teal: [0, 128, 128, 1], thistle: [216, 191, 216, 1], tomato: [255, 99, 71, 1], turquoise: [64, 224, 208, 1], violet: [238, 130, 238, 1], wheat: [245, 222, 179, 1], white: [255, 255, 255, 1], whitesmoke: [245, 245, 245, 1], yellow: [255, 255, 0, 1], yellowgreen: [154, 205, 50, 1] }; - function Ct(t2) { - return (t2 = Math.round(t2)) < 0 ? 0 : t2 > 255 ? 255 : t2; - } - function Pt(t2) { - return Ct("%" === t2[t2.length - 1] ? parseFloat(t2) / 100 * 255 : parseInt(t2)); - } - function Vt(t2) { - return (e2 = "%" === t2[t2.length - 1] ? parseFloat(t2) / 100 : parseFloat(t2)) < 0 ? 0 : e2 > 1 ? 1 : e2; - var e2; - } - function Et(t2, e2, r2) { - return r2 < 0 ? r2 += 1 : r2 > 1 && (r2 -= 1), 6 * r2 < 1 ? t2 + (e2 - t2) * r2 * 6 : 2 * r2 < 1 ? e2 : 3 * r2 < 2 ? t2 + (e2 - t2) * (2 / 3 - r2) * 6 : t2; - } - try { - zt = {}.parseCSSColor = function(t2) { - var e2, r2 = t2.replace(/ /g, "").toLowerCase(); - if (r2 in Bt) - return Bt[r2].slice(); - if ("#" === r2[0]) - return 4 === r2.length ? (e2 = parseInt(r2.substr(1), 16)) >= 0 && e2 <= 4095 ? [(3840 & e2) >> 4 | (3840 & e2) >> 8, 240 & e2 | (240 & e2) >> 4, 15 & e2 | (15 & e2) << 4, 1] : null : 7 === r2.length && (e2 = parseInt(r2.substr(1), 16)) >= 0 && e2 <= 16777215 ? [(16711680 & e2) >> 16, (65280 & e2) >> 8, 255 & e2, 1] : null; - var n2 = r2.indexOf("("), i2 = r2.indexOf(")"); - if (-1 !== n2 && i2 + 1 === r2.length) { - var a2 = r2.substr(0, n2), s2 = r2.substr(n2 + 1, i2 - (n2 + 1)).split(","), o2 = 1; - switch (a2) { - case "rgba": - if (4 !== s2.length) - return null; - o2 = Vt(s2.pop()); - case "rgb": - return 3 !== s2.length ? null : [Pt(s2[0]), Pt(s2[1]), Pt(s2[2]), o2]; - case "hsla": - if (4 !== s2.length) - return null; - o2 = Vt(s2.pop()); - case "hsl": - if (3 !== s2.length) - return null; - var l2 = (parseFloat(s2[0]) % 360 + 360) % 360 / 360, u2 = Vt(s2[1]), c3 = Vt(s2[2]), h3 = c3 <= 0.5 ? c3 * (u2 + 1) : c3 + u2 - c3 * u2, p3 = 2 * c3 - h3; - return [Ct(255 * Et(p3, h3, l2 + 1 / 3)), Ct(255 * Et(p3, h3, l2)), Ct(255 * Et(p3, h3, l2 - 1 / 3)), o2]; - default: + for (var r2 = 0, n2 = Ht; r2 < n2.length; r2 += 1) + if (!Yt(n2[r2], e2)) return null; - } } - return null; - }; - } catch (t2) { - } - class Ft { - constructor(t2, e2, r2, n2 = 1) { - this.r = t2, this.g = e2, this.b = r2, this.a = n2; - } - static parse(t2) { - if (!t2) - return; - if (t2 instanceof Ft) - return t2; - if ("string" != typeof t2) - return; - const e2 = zt(t2); - return e2 ? new Ft(e2[0] / 255 * e2[3], e2[1] / 255 * e2[3], e2[2] / 255 * e2[3], e2[3]) : void 0; - } - toString() { - const [t2, e2, r2, n2] = this.toArray(); - return `rgba(${Math.round(t2)},${Math.round(e2)},${Math.round(r2)},${n2})`; - } - toArray() { - const { r: t2, g: e2, b: r2, a: n2 } = this; - return 0 === n2 ? [0, 0, 0, 0] : [255 * t2 / n2, 255 * e2 / n2, 255 * r2 / n2, n2]; } + return "Expected " + Jt(t2) + " but found " + Jt(e2) + " instead."; } - Ft.black = new Ft(0, 0, 0, 1), Ft.white = new Ft(1, 1, 1, 1), Ft.transparent = new Ft(0, 0, 0, 0), Ft.red = new Ft(1, 0, 0, 1); - class Tt { - constructor(t2, e2, r2) { - this.sensitivity = t2 ? e2 ? "variant" : "case" : e2 ? "accent" : "base", this.locale = r2, this.collator = new Intl.Collator(this.locale ? this.locale : [], { sensitivity: this.sensitivity, usage: "search" }); - } - compare(t2, e2) { - return this.collator.compare(t2, e2); - } - resolvedLocale() { - return new Intl.Collator(this.locale ? this.locale : []).resolvedOptions().locale; - } + function $t(t2, e2) { + return e2.some(function(e3) { + return e3.kind === t2.kind; + }); } - class Lt { - constructor(t2, e2, r2, n2, i2) { - this.text = t2, this.image = e2, this.scale = r2, this.fontStack = n2, this.textColor = i2; - } + function Wt(t2, e2) { + return e2.some(function(e3) { + return "null" === e3 ? null === t2 : "array" === e3 ? Array.isArray(t2) : "object" === e3 ? t2 && !Array.isArray(t2) && "object" == typeof t2 : e3 === typeof t2; + }); } - class Dt { - constructor(t2) { - this.sections = t2; + var Qt = e(function(t2, e2) { + var r2 = { transparent: [0, 0, 0, 0], aliceblue: [240, 248, 255, 1], antiquewhite: [250, 235, 215, 1], aqua: [0, 255, 255, 1], aquamarine: [127, 255, 212, 1], azure: [240, 255, 255, 1], beige: [245, 245, 220, 1], bisque: [255, 228, 196, 1], black: [0, 0, 0, 1], blanchedalmond: [255, 235, 205, 1], blue: [0, 0, 255, 1], blueviolet: [138, 43, 226, 1], brown: [165, 42, 42, 1], burlywood: [222, 184, 135, 1], cadetblue: [95, 158, 160, 1], chartreuse: [127, 255, 0, 1], chocolate: [210, 105, 30, 1], coral: [255, 127, 80, 1], cornflowerblue: [100, 149, 237, 1], cornsilk: [255, 248, 220, 1], crimson: [220, 20, 60, 1], cyan: [0, 255, 255, 1], darkblue: [0, 0, 139, 1], darkcyan: [0, 139, 139, 1], darkgoldenrod: [184, 134, 11, 1], darkgray: [169, 169, 169, 1], darkgreen: [0, 100, 0, 1], darkgrey: [169, 169, 169, 1], darkkhaki: [189, 183, 107, 1], darkmagenta: [139, 0, 139, 1], darkolivegreen: [85, 107, 47, 1], darkorange: [255, 140, 0, 1], darkorchid: [153, 50, 204, 1], darkred: [139, 0, 0, 1], darksalmon: [233, 150, 122, 1], darkseagreen: [143, 188, 143, 1], darkslateblue: [72, 61, 139, 1], darkslategray: [47, 79, 79, 1], darkslategrey: [47, 79, 79, 1], darkturquoise: [0, 206, 209, 1], darkviolet: [148, 0, 211, 1], deeppink: [255, 20, 147, 1], deepskyblue: [0, 191, 255, 1], dimgray: [105, 105, 105, 1], dimgrey: [105, 105, 105, 1], dodgerblue: [30, 144, 255, 1], firebrick: [178, 34, 34, 1], floralwhite: [255, 250, 240, 1], forestgreen: [34, 139, 34, 1], fuchsia: [255, 0, 255, 1], gainsboro: [220, 220, 220, 1], ghostwhite: [248, 248, 255, 1], gold: [255, 215, 0, 1], goldenrod: [218, 165, 32, 1], gray: [128, 128, 128, 1], green: [0, 128, 0, 1], greenyellow: [173, 255, 47, 1], grey: [128, 128, 128, 1], honeydew: [240, 255, 240, 1], hotpink: [255, 105, 180, 1], indianred: [205, 92, 92, 1], indigo: [75, 0, 130, 1], ivory: [255, 255, 240, 1], khaki: [240, 230, 140, 1], lavender: [230, 230, 250, 1], lavenderblush: [255, 240, 245, 1], lawngreen: [124, 252, 0, 1], lemonchiffon: [255, 250, 205, 1], lightblue: [173, 216, 230, 1], lightcoral: [240, 128, 128, 1], lightcyan: [224, 255, 255, 1], lightgoldenrodyellow: [250, 250, 210, 1], lightgray: [211, 211, 211, 1], lightgreen: [144, 238, 144, 1], lightgrey: [211, 211, 211, 1], lightpink: [255, 182, 193, 1], lightsalmon: [255, 160, 122, 1], lightseagreen: [32, 178, 170, 1], lightskyblue: [135, 206, 250, 1], lightslategray: [119, 136, 153, 1], lightslategrey: [119, 136, 153, 1], lightsteelblue: [176, 196, 222, 1], lightyellow: [255, 255, 224, 1], lime: [0, 255, 0, 1], limegreen: [50, 205, 50, 1], linen: [250, 240, 230, 1], magenta: [255, 0, 255, 1], maroon: [128, 0, 0, 1], mediumaquamarine: [102, 205, 170, 1], mediumblue: [0, 0, 205, 1], mediumorchid: [186, 85, 211, 1], mediumpurple: [147, 112, 219, 1], mediumseagreen: [60, 179, 113, 1], mediumslateblue: [123, 104, 238, 1], mediumspringgreen: [0, 250, 154, 1], mediumturquoise: [72, 209, 204, 1], mediumvioletred: [199, 21, 133, 1], midnightblue: [25, 25, 112, 1], mintcream: [245, 255, 250, 1], mistyrose: [255, 228, 225, 1], moccasin: [255, 228, 181, 1], navajowhite: [255, 222, 173, 1], navy: [0, 0, 128, 1], oldlace: [253, 245, 230, 1], olive: [128, 128, 0, 1], olivedrab: [107, 142, 35, 1], orange: [255, 165, 0, 1], orangered: [255, 69, 0, 1], orchid: [218, 112, 214, 1], palegoldenrod: [238, 232, 170, 1], palegreen: [152, 251, 152, 1], paleturquoise: [175, 238, 238, 1], palevioletred: [219, 112, 147, 1], papayawhip: [255, 239, 213, 1], peachpuff: [255, 218, 185, 1], peru: [205, 133, 63, 1], pink: [255, 192, 203, 1], plum: [221, 160, 221, 1], powderblue: [176, 224, 230, 1], purple: [128, 0, 128, 1], rebeccapurple: [102, 51, 153, 1], red: [255, 0, 0, 1], rosybrown: [188, 143, 143, 1], royalblue: [65, 105, 225, 1], saddlebrown: [139, 69, 19, 1], salmon: [250, 128, 114, 1], sandybrown: [244, 164, 96, 1], seagreen: [46, 139, 87, 1], seashell: [255, 245, 238, 1], sienna: [160, 82, 45, 1], silver: [192, 192, 192, 1], skyblue: [135, 206, 235, 1], slateblue: [106, 90, 205, 1], slategray: [112, 128, 144, 1], slategrey: [112, 128, 144, 1], snow: [255, 250, 250, 1], springgreen: [0, 255, 127, 1], steelblue: [70, 130, 180, 1], tan: [210, 180, 140, 1], teal: [0, 128, 128, 1], thistle: [216, 191, 216, 1], tomato: [255, 99, 71, 1], turquoise: [64, 224, 208, 1], violet: [238, 130, 238, 1], wheat: [245, 222, 179, 1], white: [255, 255, 255, 1], whitesmoke: [245, 245, 245, 1], yellow: [255, 255, 0, 1], yellowgreen: [154, 205, 50, 1] }; + function n2(t3) { + return (t3 = Math.round(t3)) < 0 ? 0 : t3 > 255 ? 255 : t3; } - static fromString(t2) { - return new Dt([new Lt(t2, null, null, null, null)]); + function i2(t3) { + return n2("%" === t3[t3.length - 1] ? parseFloat(t3) / 100 * 255 : parseInt(t3)); } - isEmpty() { - return 0 === this.sections.length || !this.sections.some((t2) => 0 !== t2.text.length || t2.image && 0 !== t2.image.name.length); + function a2(t3) { + return (e3 = "%" === t3[t3.length - 1] ? parseFloat(t3) / 100 : parseFloat(t3)) < 0 ? 0 : e3 > 1 ? 1 : e3; + var e3; } - static factory(t2) { - return t2 instanceof Dt ? t2 : Dt.fromString(t2); + function o2(t3, e3, r3) { + return r3 < 0 ? r3 += 1 : r3 > 1 && (r3 -= 1), 6 * r3 < 1 ? t3 + (e3 - t3) * r3 * 6 : 2 * r3 < 1 ? e3 : 3 * r3 < 2 ? t3 + (e3 - t3) * (2 / 3 - r3) * 6 : t3; } - toString() { - return 0 === this.sections.length ? "" : this.sections.map((t2) => t2.text).join(""); - } - } - class $t { - constructor(t2) { - this.values = t2.slice(); + try { + e2.parseCSSColor = function(t3) { + var e3, s2 = t3.replace(/ /g, "").toLowerCase(); + if (s2 in r2) + return r2[s2].slice(); + if ("#" === s2[0]) + return 4 === s2.length ? (e3 = parseInt(s2.substr(1), 16)) >= 0 && e3 <= 4095 ? [(3840 & e3) >> 4 | (3840 & e3) >> 8, 240 & e3 | (240 & e3) >> 4, 15 & e3 | (15 & e3) << 4, 1] : null : 7 === s2.length && (e3 = parseInt(s2.substr(1), 16)) >= 0 && e3 <= 16777215 ? [(16711680 & e3) >> 16, (65280 & e3) >> 8, 255 & e3, 1] : null; + var u2 = s2.indexOf("("), l2 = s2.indexOf(")"); + if (-1 !== u2 && l2 + 1 === s2.length) { + var p3 = s2.substr(0, u2), c3 = s2.substr(u2 + 1, l2 - (u2 + 1)).split(","), h3 = 1; + switch (p3) { + case "rgba": + if (4 !== c3.length) + return null; + h3 = a2(c3.pop()); + case "rgb": + return 3 !== c3.length ? null : [i2(c3[0]), i2(c3[1]), i2(c3[2]), h3]; + case "hsla": + if (4 !== c3.length) + return null; + h3 = a2(c3.pop()); + case "hsl": + if (3 !== c3.length) + return null; + var f2 = (parseFloat(c3[0]) % 360 + 360) % 360 / 360, y3 = a2(c3[1]), d2 = a2(c3[2]), m2 = d2 <= 0.5 ? d2 * (y3 + 1) : d2 + y3 - d2 * y3, v3 = 2 * d2 - m2; + return [n2(255 * o2(v3, m2, f2 + 1 / 3)), n2(255 * o2(v3, m2, f2)), n2(255 * o2(v3, m2, f2 - 1 / 3)), h3]; + default: + return null; + } + } + return null; + }; + } catch (t3) { } - static parse(t2) { - if (t2 instanceof $t) + }).parseCSSColor, te = function(t2, e2, r2, n2) { + void 0 === n2 && (n2 = 1), this.r = t2, this.g = e2, this.b = r2, this.a = n2; + }; + te.parse = function(t2) { + if (t2) { + if (t2 instanceof te) return t2; - if ("number" == typeof t2) - return new $t([t2, t2, t2, t2]); - if (Array.isArray(t2) && !(t2.length < 1 || t2.length > 4)) { - for (const e2 of t2) - if ("number" != typeof e2) - return; - switch (t2.length) { - case 1: - t2 = [t2[0], t2[0], t2[0], t2[0]]; - break; - case 2: - t2 = [t2[0], t2[1], t2[0], t2[1]]; - break; - case 3: - t2 = [t2[0], t2[1], t2[2], t2[1]]; - } - return new $t(t2); + if ("string" == typeof t2) { + var e2 = Qt(t2); + if (e2) + return new te(e2[0] / 255 * e2[3], e2[1] / 255 * e2[3], e2[2] / 255 * e2[3], e2[3]); + } + } + }, te.prototype.toString = function() { + var t2 = this.toArray(), e2 = t2[1], r2 = t2[2], n2 = t2[3]; + return "rgba(" + Math.round(t2[0]) + "," + Math.round(e2) + "," + Math.round(r2) + "," + n2 + ")"; + }, te.prototype.toArray = function() { + var t2 = this.a; + return 0 === t2 ? [0, 0, 0, 0] : [255 * this.r / t2, 255 * this.g / t2, 255 * this.b / t2, t2]; + }, te.black = new te(0, 0, 0, 1), te.white = new te(1, 1, 1, 1), te.transparent = new te(0, 0, 0, 0), te.red = new te(1, 0, 0, 1); + var ee = function(t2, e2, r2) { + this.sensitivity = t2 ? e2 ? "variant" : "case" : e2 ? "accent" : "base", this.locale = r2, this.collator = new Intl.Collator(this.locale ? this.locale : [], { sensitivity: this.sensitivity, usage: "search" }); + }; + ee.prototype.compare = function(t2, e2) { + return this.collator.compare(t2, e2); + }, ee.prototype.resolvedLocale = function() { + return new Intl.Collator(this.locale ? this.locale : []).resolvedOptions().locale; + }; + var re = function(t2, e2, r2, n2, i2) { + this.text = t2, this.image = e2, this.scale = r2, this.fontStack = n2, this.textColor = i2; + }, ne = function(t2) { + this.sections = t2; + }; + ne.fromString = function(t2) { + return new ne([new re(t2, null, null, null, null)]); + }, ne.prototype.isEmpty = function() { + return 0 === this.sections.length || !this.sections.some(function(t2) { + return 0 !== t2.text.length || t2.image && 0 !== t2.image.name.length; + }); + }, ne.factory = function(t2) { + return t2 instanceof ne ? t2 : ne.fromString(t2); + }, ne.prototype.toString = function() { + return 0 === this.sections.length ? "" : this.sections.map(function(t2) { + return t2.text; + }).join(""); + }, ne.prototype.serialize = function() { + for (var t2 = ["format"], e2 = 0, r2 = this.sections; e2 < r2.length; e2 += 1) { + var n2 = r2[e2]; + if (n2.image) + t2.push(["image", n2.image.name]); + else { + t2.push(n2.text); + var i2 = {}; + n2.fontStack && (i2["text-font"] = ["literal", n2.fontStack.split(",")]), n2.scale && (i2["font-scale"] = n2.scale), n2.textColor && (i2["text-color"] = ["rgba"].concat(n2.textColor.toArray())), t2.push(i2); } } - toString() { - return JSON.stringify(this.values); - } - } - class Rt { - constructor(t2) { - this.name = t2.name, this.available = t2.available; - } - toString() { - return this.name; - } - static fromString(t2) { - return t2 ? new Rt({ name: t2, available: false }) : null; - } - } - function Ot(t2, e2, r2, n2) { - return "number" == typeof t2 && t2 >= 0 && t2 <= 255 && "number" == typeof e2 && e2 >= 0 && e2 <= 255 && "number" == typeof r2 && r2 >= 0 && r2 <= 255 ? void 0 === n2 || "number" == typeof n2 && n2 >= 0 && n2 <= 1 ? null : `Invalid rgba value [${[t2, e2, r2, n2].join(", ")}]: 'a' must be between 0 and 1.` : `Invalid rgba value [${("number" == typeof n2 ? [t2, e2, r2, n2] : [t2, e2, r2]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`; + return t2; + }; + var ie = function(t2) { + this.name = t2.name, this.available = t2.available; + }; + function ae(t2, e2, r2, n2) { + return "number" == typeof t2 && t2 >= 0 && t2 <= 255 && "number" == typeof e2 && e2 >= 0 && e2 <= 255 && "number" == typeof r2 && r2 >= 0 && r2 <= 255 ? void 0 === n2 || "number" == typeof n2 && n2 >= 0 && n2 <= 1 ? null : "Invalid rgba value [" + [t2, e2, r2, n2].join(", ") + "]: 'a' must be between 0 and 1." : "Invalid rgba value [" + ("number" == typeof n2 ? [t2, e2, r2, n2] : [t2, e2, r2]).join(", ") + "]: 'r', 'g', and 'b' must be between 0 and 255."; } - function Ut(t2) { + function oe(t2) { if (null === t2) return true; if ("string" == typeof t2) @@ -16076,542 +16395,502 @@ This will fail in production.`); return true; if ("number" == typeof t2) return true; - if (t2 instanceof Ft) + if (t2 instanceof te) return true; - if (t2 instanceof Tt) + if (t2 instanceof ee) return true; - if (t2 instanceof Dt) + if (t2 instanceof ne) return true; - if (t2 instanceof $t) - return true; - if (t2 instanceof Rt) + if (t2 instanceof ie) return true; if (Array.isArray(t2)) { - for (const e2 of t2) - if (!Ut(e2)) + for (var e2 = 0, r2 = t2; e2 < r2.length; e2 += 1) + if (!oe(r2[e2])) return false; return true; } if ("object" == typeof t2) { - for (const e2 in t2) - if (!Ut(t2[e2])) + for (var n2 in t2) + if (!oe(t2[n2])) return false; return true; } return false; } - function qt(t2) { + function se(t2) { if (null === t2) - return ht; + return Lt; if ("string" == typeof t2) - return ft; + return Rt; if ("boolean" == typeof t2) - return dt; + return Ut; if ("number" == typeof t2) - return pt; - if (t2 instanceof Ft) - return yt; - if (t2 instanceof Tt) - return xt; - if (t2 instanceof Dt) - return vt; - if (t2 instanceof $t) - return bt; - if (t2 instanceof Rt) - return wt; + return Ot; + if (t2 instanceof te) + return jt; + if (t2 instanceof ee) + return Kt; + if (t2 instanceof ne) + return Gt; + if (t2 instanceof ie) + return Zt; if (Array.isArray(t2)) { - const e2 = t2.length; - let r2; - for (const e3 of t2) { - const t3 = qt(e3); - if (r2) { - if (r2 === t3) + for (var e2, r2 = t2.length, n2 = 0, i2 = t2; n2 < i2.length; n2 += 1) { + var a2 = se(i2[n2]); + if (e2) { + if (e2 === a2) continue; - r2 = gt; + e2 = Nt; break; } - r2 = t3; + e2 = a2; } - return _t(r2 || gt, e2); + return Xt(e2 || Nt, r2); } - return mt; - } - function jt(t2) { - const e2 = typeof t2; - return null === t2 ? "" : "string" === e2 || "number" === e2 || "boolean" === e2 ? String(t2) : t2 instanceof Ft || t2 instanceof Dt || t2 instanceof $t || t2 instanceof Rt ? t2.toString() : JSON.stringify(t2); + return qt; } - class Nt { - constructor(t2, e2) { - this.type = t2, this.value = e2; - } - static parse(t2, e2) { - if (2 !== t2.length) - return e2.error(`'literal' expression requires exactly one argument, but found ${t2.length - 1} instead.`); - if (!Ut(t2[1])) - return e2.error("invalid value"); - const r2 = t2[1]; - let n2 = qt(r2); - const i2 = e2.expectedType; - return "array" !== n2.kind || 0 !== n2.N || !i2 || "array" !== i2.kind || "number" == typeof i2.N && 0 !== i2.N || (n2 = i2), new Nt(n2, r2); - } - evaluate() { - return this.value; - } - eachChild() { - } - outputDefined() { - return true; - } + function ue(t2) { + var e2 = typeof t2; + return null === t2 ? "" : "string" === e2 || "number" === e2 || "boolean" === e2 ? String(t2) : t2 instanceof te || t2 instanceof ne || t2 instanceof ie ? t2.toString() : JSON.stringify(t2); } - class Zt { - constructor(t2) { - this.name = "ExpressionEvaluationError", this.message = t2; + ie.prototype.toString = function() { + return this.name; + }, ie.fromString = function(t2) { + return t2 ? new ie({ name: t2, available: false }) : null; + }, ie.prototype.serialize = function() { + return ["image", this.name]; + }; + var le = function(t2, e2) { + this.type = t2, this.value = e2; + }; + le.parse = function(t2, e2) { + if (2 !== t2.length) + return e2.error("'literal' expression requires exactly one argument, but found " + (t2.length - 1) + " instead."); + if (!oe(t2[1])) + return e2.error("invalid value"); + var r2 = t2[1], n2 = se(r2), i2 = e2.expectedType; + return "array" !== n2.kind || 0 !== n2.N || !i2 || "array" !== i2.kind || "number" == typeof i2.N && 0 !== i2.N || (n2 = i2), new le(n2, r2); + }, le.prototype.evaluate = function() { + return this.value; + }, le.prototype.eachChild = function() { + }, le.prototype.outputDefined = function() { + return true; + }, le.prototype.serialize = function() { + return "array" === this.type.kind || "object" === this.type.kind ? ["literal", this.value] : this.value instanceof te ? ["rgba"].concat(this.value.toArray()) : this.value instanceof ne ? this.value.serialize() : this.value; + }; + var pe = function(t2) { + this.name = "ExpressionEvaluationError", this.message = t2; + }; + pe.prototype.toJSON = function() { + return this.message; + }; + var ce = { string: Rt, number: Ot, boolean: Ut, object: qt }, he = function(t2, e2) { + this.type = t2, this.args = e2; + }; + he.parse = function(t2, e2) { + if (t2.length < 2) + return e2.error("Expected at least one argument."); + var r2, n2 = 1, i2 = t2[0]; + if ("array" === i2) { + var a2, o2; + if (t2.length > 2) { + var s2 = t2[1]; + if ("string" != typeof s2 || !(s2 in ce) || "object" === s2) + return e2.error('The item type argument of "array" must be one of string, number, boolean', 1); + a2 = ce[s2], n2++; + } else + a2 = Nt; + if (t2.length > 3) { + if (null !== t2[2] && ("number" != typeof t2[2] || t2[2] < 0 || t2[2] !== Math.floor(t2[2]))) + return e2.error('The length argument to "array" must be a positive integer literal', 2); + o2 = t2[2], n2++; + } + r2 = Xt(a2, o2); + } else + r2 = ce[i2]; + for (var u2 = []; n2 < t2.length; n2++) { + var l2 = e2.parse(t2[n2], n2, Nt); + if (!l2) + return null; + u2.push(l2); } - toJSON() { - return this.message; + return new he(r2, u2); + }, he.prototype.evaluate = function(t2) { + for (var e2 = 0; e2 < this.args.length; e2++) { + var r2 = this.args[e2].evaluate(t2); + if (!Yt(this.type, se(r2))) + return r2; + if (e2 === this.args.length - 1) + throw new pe("Expected value to be of type " + Jt(this.type) + ", but found " + Jt(se(r2)) + " instead."); } - } - const Kt = { string: ft, number: pt, boolean: dt, object: mt }; - class Gt { - constructor(t2, e2) { - this.type = t2, this.args = e2; + return null; + }, he.prototype.eachChild = function(t2) { + this.args.forEach(t2); + }, he.prototype.outputDefined = function() { + return this.args.every(function(t2) { + return t2.outputDefined(); + }); + }, he.prototype.serialize = function() { + var t2 = this.type, e2 = [t2.kind]; + if ("array" === t2.kind) { + var r2 = t2.itemType; + if ("string" === r2.kind || "number" === r2.kind || "boolean" === r2.kind) { + e2.push(r2.kind); + var n2 = t2.N; + ("number" == typeof n2 || this.args.length > 1) && e2.push(n2); + } } - static parse(t2, e2) { - if (t2.length < 2) - return e2.error("Expected at least one argument."); - let r2, n2 = 1; - const i2 = t2[0]; - if ("array" === i2) { - let i3, a3; - if (t2.length > 2) { - const r3 = t2[1]; - if ("string" != typeof r3 || !(r3 in Kt) || "object" === r3) - return e2.error('The item type argument of "array" must be one of string, number, boolean', 1); - i3 = Kt[r3], n2++; - } else - i3 = gt; - if (t2.length > 3) { - if (null !== t2[2] && ("number" != typeof t2[2] || t2[2] < 0 || t2[2] !== Math.floor(t2[2]))) - return e2.error('The length argument to "array" must be a positive integer literal', 2); - a3 = t2[2], n2++; - } - r2 = _t(i3, a3); - } else { - if (!Kt[i2]) - throw new Error(`Types doesn't contain name = ${i2}`); - r2 = Kt[i2]; - } - const a2 = []; - for (; n2 < t2.length; n2++) { - const r3 = e2.parse(t2[n2], n2, gt); - if (!r3) + return e2.concat(this.args.map(function(t3) { + return t3.serialize(); + })); + }; + var fe = function(t2) { + this.type = Gt, this.sections = t2; + }; + fe.parse = function(t2, e2) { + if (t2.length < 2) + return e2.error("Expected at least one argument."); + var r2 = t2[1]; + if (!Array.isArray(r2) && "object" == typeof r2) + return e2.error("First argument must be an image or text section."); + for (var n2 = [], i2 = false, a2 = 1; a2 <= t2.length - 1; ++a2) { + var o2 = t2[a2]; + if (i2 && "object" == typeof o2 && !Array.isArray(o2)) { + i2 = false; + var s2 = null; + if (o2["font-scale"] && !(s2 = e2.parse(o2["font-scale"], 1, Ot))) return null; - a2.push(r3); - } - return new Gt(r2, a2); - } - evaluate(t2) { - for (let e2 = 0; e2 < this.args.length; e2++) { - const r2 = this.args[e2].evaluate(t2); - if (!St(this.type, qt(r2))) - return r2; - if (e2 === this.args.length - 1) - throw new Zt(`Expected value to be of type ${At(this.type)}, but found ${At(qt(r2))} instead.`); - } - throw new Error(); - } - eachChild(t2) { - this.args.forEach(t2); - } - outputDefined() { - return this.args.every((t2) => t2.outputDefined()); - } - } - const Jt = { "to-boolean": dt, "to-color": yt, "to-number": pt, "to-string": ft }; - class Xt { - constructor(t2, e2) { - this.type = t2, this.args = e2; - } - static parse(t2, e2) { - if (t2.length < 2) - return e2.error("Expected at least one argument."); - const r2 = t2[0]; - if (!Jt[r2]) - throw new Error(`Can't parse ${r2} as it is not part of the known types`); - if (("to-boolean" === r2 || "to-string" === r2) && 2 !== t2.length) - return e2.error("Expected one argument."); - const n2 = Jt[r2], i2 = []; - for (let r3 = 1; r3 < t2.length; r3++) { - const n3 = e2.parse(t2[r3], r3, gt); - if (!n3) + var u2 = null; + if (o2["text-font"] && !(u2 = e2.parse(o2["text-font"], 1, Xt(Rt)))) return null; - i2.push(n3); - } - return new Xt(n2, i2); - } - evaluate(t2) { - if ("boolean" === this.type.kind) - return Boolean(this.args[0].evaluate(t2)); - if ("color" === this.type.kind) { - let e2, r2; - for (const n2 of this.args) { - if (e2 = n2.evaluate(t2), r2 = null, e2 instanceof Ft) - return e2; - if ("string" == typeof e2) { - const r3 = t2.parseColor(e2); - if (r3) - return r3; - } else if (Array.isArray(e2) && (r2 = e2.length < 3 || e2.length > 4 ? `Invalid rbga value ${JSON.stringify(e2)}: expected an array containing either three or four numeric values.` : Ot(e2[0], e2[1], e2[2], e2[3]), !r2)) - return new Ft(e2[0] / 255, e2[1] / 255, e2[2] / 255, e2[3]); - } - throw new Zt(r2 || `Could not parse color from value '${"string" == typeof e2 ? e2 : JSON.stringify(e2)}'`); - } - if ("padding" === this.type.kind) { - let e2; - for (const r2 of this.args) { - e2 = r2.evaluate(t2); - const n2 = $t.parse(e2); - if (n2) - return n2; - } - throw new Zt(`Could not parse padding from value '${"string" == typeof e2 ? e2 : JSON.stringify(e2)}'`); - } - if ("number" === this.type.kind) { - let e2 = null; - for (const r2 of this.args) { - if (e2 = r2.evaluate(t2), null === e2) - return 0; - const n2 = Number(e2); - if (!isNaN(n2)) - return n2; - } - throw new Zt(`Could not convert ${JSON.stringify(e2)} to number.`); + var l2 = null; + if (o2["text-color"] && !(l2 = e2.parse(o2["text-color"], 1, jt))) + return null; + var p3 = n2[n2.length - 1]; + p3.scale = s2, p3.font = u2, p3.textColor = l2; + } else { + var c3 = e2.parse(t2[a2], 1, Nt); + if (!c3) + return null; + var h3 = c3.type.kind; + if ("string" !== h3 && "value" !== h3 && "null" !== h3 && "resolvedImage" !== h3) + return e2.error("Formatted text type must be 'string', 'value', 'image' or 'null'."); + i2 = true, n2.push({ content: c3, scale: null, font: null, textColor: null }); } - return "formatted" === this.type.kind ? Dt.fromString(jt(this.args[0].evaluate(t2))) : "resolvedImage" === this.type.kind ? Rt.fromString(jt(this.args[0].evaluate(t2))) : jt(this.args[0].evaluate(t2)); - } - eachChild(t2) { - this.args.forEach(t2); - } - outputDefined() { - return this.args.every((t2) => t2.outputDefined()); - } - } - const Yt = ["Unknown", "Point", "LineString", "Polygon"]; - class Ht { - constructor() { - this.globals = null, this.feature = null, this.featureState = null, this.formattedSection = null, this._parseColorCache = {}, this.availableImages = null, this.canonical = null; - } - id() { - return this.feature && "id" in this.feature ? this.feature.id : null; - } - geometryType() { - return this.feature ? "number" == typeof this.feature.type ? Yt[this.feature.type] : this.feature.type : null; - } - geometry() { - return this.feature && "geometry" in this.feature ? this.feature.geometry : null; - } - canonicalID() { - return this.canonical; } - properties() { - return this.feature && this.feature.properties || {}; - } - parseColor(t2) { - let e2 = this._parseColorCache[t2]; - return e2 || (e2 = this._parseColorCache[t2] = Ft.parse(t2)), e2; - } - } - class Wt { - constructor(t2, e2, r2, n2) { - this.name = t2, this.type = e2, this._evaluate = r2, this.args = n2; - } - evaluate(t2) { - return this._evaluate(t2, this.args); - } - eachChild(t2) { - this.args.forEach(t2); + return new fe(n2); + }, fe.prototype.evaluate = function(t2) { + return new ne(this.sections.map(function(e2) { + var r2 = e2.content.evaluate(t2); + return se(r2) === Zt ? new re("", r2, null, null, null) : new re(ue(r2), null, e2.scale ? e2.scale.evaluate(t2) : null, e2.font ? e2.font.evaluate(t2).join(",") : null, e2.textColor ? e2.textColor.evaluate(t2) : null); + })); + }, fe.prototype.eachChild = function(t2) { + for (var e2 = 0, r2 = this.sections; e2 < r2.length; e2 += 1) { + var n2 = r2[e2]; + t2(n2.content), n2.scale && t2(n2.scale), n2.font && t2(n2.font), n2.textColor && t2(n2.textColor); } - outputDefined() { - return false; + }, fe.prototype.outputDefined = function() { + return false; + }, fe.prototype.serialize = function() { + for (var t2 = ["format"], e2 = 0, r2 = this.sections; e2 < r2.length; e2 += 1) { + var n2 = r2[e2]; + t2.push(n2.content.serialize()); + var i2 = {}; + n2.scale && (i2["font-scale"] = n2.scale.serialize()), n2.font && (i2["text-font"] = n2.font.serialize()), n2.textColor && (i2["text-color"] = n2.textColor.serialize()), t2.push(i2); } - static parse(t2, e2) { - const r2 = t2[0], n2 = Wt.definitions[r2]; - if (!n2) - return e2.error(`Unknown expression "${r2}". If you wanted a literal array, use ["literal", [...]].`, 0); - const i2 = Array.isArray(n2) ? n2[0] : n2.type, a2 = Array.isArray(n2) ? [[n2[1], n2[2]]] : n2.overloads, s2 = a2.filter(([e3]) => !Array.isArray(e3) || e3.length === t2.length - 1); - let o2 = null; - for (const [n3, a3] of s2) { - o2 = new we(e2.registry, e2.path, null, e2.scope); - const s3 = []; - let l2 = false; - for (let e3 = 1; e3 < t2.length; e3++) { - const r3 = t2[e3], i3 = Array.isArray(n3) ? n3[e3 - 1] : n3.type, a4 = o2.parse(r3, 1 + s3.length, i3); - if (!a4) { - l2 = true; - break; - } - s3.push(a4); + return t2; + }; + var ye = function(t2) { + this.type = Zt, this.input = t2; + }; + ye.parse = function(t2, e2) { + if (2 !== t2.length) + return e2.error("Expected two arguments."); + var r2 = e2.parse(t2[1], 1, Rt); + return r2 ? new ye(r2) : e2.error("No image name provided."); + }, ye.prototype.evaluate = function(t2) { + var e2 = this.input.evaluate(t2), r2 = ie.fromString(e2); + return r2 && t2.availableImages && (r2.available = t2.availableImages.indexOf(e2) > -1), r2; + }, ye.prototype.eachChild = function(t2) { + t2(this.input); + }, ye.prototype.outputDefined = function() { + return false; + }, ye.prototype.serialize = function() { + return ["image", this.input.serialize()]; + }; + var de = { "to-boolean": Ut, "to-color": jt, "to-number": Ot, "to-string": Rt }, me = function(t2, e2) { + this.type = t2, this.args = e2; + }; + me.parse = function(t2, e2) { + if (t2.length < 2) + return e2.error("Expected at least one argument."); + var r2 = t2[0]; + if (("to-boolean" === r2 || "to-string" === r2) && 2 !== t2.length) + return e2.error("Expected one argument."); + for (var n2 = de[r2], i2 = [], a2 = 1; a2 < t2.length; a2++) { + var o2 = e2.parse(t2[a2], a2, Nt); + if (!o2) + return null; + i2.push(o2); + } + return new me(n2, i2); + }, me.prototype.evaluate = function(t2) { + if ("boolean" === this.type.kind) + return Boolean(this.args[0].evaluate(t2)); + if ("color" === this.type.kind) { + for (var e2, r2, n2 = 0, i2 = this.args; n2 < i2.length; n2 += 1) { + if (r2 = null, (e2 = i2[n2].evaluate(t2)) instanceof te) + return e2; + if ("string" == typeof e2) { + var a2 = t2.parseColor(e2); + if (a2) + return a2; + } else if (Array.isArray(e2) && !(r2 = e2.length < 3 || e2.length > 4 ? "Invalid rbga value " + JSON.stringify(e2) + ": expected an array containing either three or four numeric values." : ae(e2[0], e2[1], e2[2], e2[3]))) + return new te(e2[0] / 255, e2[1] / 255, e2[2] / 255, e2[3]); + } + throw new pe(r2 || "Could not parse color from value '" + ("string" == typeof e2 ? e2 : String(JSON.stringify(e2))) + "'"); + } + if ("number" === this.type.kind) { + for (var o2 = null, s2 = 0, u2 = this.args; s2 < u2.length; s2 += 1) { + if (null === (o2 = u2[s2].evaluate(t2))) + return 0; + var l2 = Number(o2); + if (!isNaN(l2)) + return l2; + } + throw new pe("Could not convert " + JSON.stringify(o2) + " to number."); + } + return "formatted" === this.type.kind ? ne.fromString(ue(this.args[0].evaluate(t2))) : "resolvedImage" === this.type.kind ? ie.fromString(ue(this.args[0].evaluate(t2))) : ue(this.args[0].evaluate(t2)); + }, me.prototype.eachChild = function(t2) { + this.args.forEach(t2); + }, me.prototype.outputDefined = function() { + return this.args.every(function(t2) { + return t2.outputDefined(); + }); + }, me.prototype.serialize = function() { + if ("formatted" === this.type.kind) + return new fe([{ content: this.args[0], scale: null, font: null, textColor: null }]).serialize(); + if ("resolvedImage" === this.type.kind) + return new ye(this.args[0]).serialize(); + var t2 = ["to-" + this.type.kind]; + return this.eachChild(function(e2) { + t2.push(e2.serialize()); + }), t2; + }; + var ve = ["Unknown", "Point", "LineString", "Polygon"], ge = function() { + this.globals = null, this.feature = null, this.featureState = null, this.formattedSection = null, this._parseColorCache = {}, this.availableImages = null, this.canonical = null; + }; + ge.prototype.id = function() { + return this.feature && "id" in this.feature ? this.feature.id : null; + }, ge.prototype.geometryType = function() { + return this.feature ? "number" == typeof this.feature.type ? ve[this.feature.type] : this.feature.type : null; + }, ge.prototype.geometry = function() { + return this.feature && "geometry" in this.feature ? this.feature.geometry : null; + }, ge.prototype.canonicalID = function() { + return this.canonical; + }, ge.prototype.properties = function() { + return this.feature && this.feature.properties || {}; + }, ge.prototype.parseColor = function(t2) { + var e2 = this._parseColorCache[t2]; + return e2 || (e2 = this._parseColorCache[t2] = te.parse(t2)), e2; + }; + var xe = function(t2, e2, r2, n2) { + this.name = t2, this.type = e2, this._evaluate = r2, this.args = n2; + }; + xe.prototype.evaluate = function(t2) { + return this._evaluate(t2, this.args); + }, xe.prototype.eachChild = function(t2) { + this.args.forEach(t2); + }, xe.prototype.outputDefined = function() { + return false; + }, xe.prototype.serialize = function() { + return [this.name].concat(this.args.map(function(t2) { + return t2.serialize(); + })); + }, xe.parse = function(t2, e2) { + var r2, n2 = t2[0], i2 = xe.definitions[n2]; + if (!i2) + return e2.error('Unknown expression "' + n2 + '". If you wanted a literal array, use ["literal", [...]].', 0); + for (var a2 = Array.isArray(i2) ? i2[0] : i2.type, o2 = Array.isArray(i2) ? [[i2[1], i2[2]]] : i2.overloads, s2 = o2.filter(function(e3) { + var r3 = e3[0]; + return !Array.isArray(r3) || r3.length === t2.length - 1; + }), u2 = null, l2 = 0, p3 = s2; l2 < p3.length; l2 += 1) { + var c3 = p3[l2], h3 = c3[0], f2 = c3[1]; + u2 = new je(e2.registry, e2.path, null, e2.scope); + for (var y3 = [], d2 = false, m2 = 1; m2 < t2.length; m2++) { + var v3 = t2[m2], g2 = Array.isArray(h3) ? h3[m2 - 1] : h3.type, x2 = u2.parse(v3, 1 + y3.length, g2); + if (!x2) { + d2 = true; + break; } - if (!l2) - if (Array.isArray(n3) && n3.length !== s3.length) - o2.error(`Expected ${n3.length} arguments, but found ${s3.length} instead.`); - else { - for (let t3 = 0; t3 < s3.length; t3++) { - const e3 = Array.isArray(n3) ? n3[t3] : n3.type, r3 = s3[t3]; - o2.concat(t3 + 1).checkSubtype(e3, r3.type); - } - if (0 === o2.errors.length) - return new Wt(r2, i2, a3, s3); - } + y3.push(x2); } - if (1 === s2.length) - e2.errors.push(...o2.errors); - else { - const r3 = (s2.length ? s2 : a2).map(([t3]) => { - return e3 = t3, Array.isArray(e3) ? `(${e3.map(At).join(", ")})` : `(${At(e3.type)}...)`; - var e3; - }).join(" | "), n3 = []; - for (let r4 = 1; r4 < t2.length; r4++) { - const i3 = e2.parse(t2[r4], 1 + n3.length); - if (!i3) - return null; - n3.push(At(i3.type)); + if (!d2) + if (Array.isArray(h3) && h3.length !== y3.length) + u2.error("Expected " + h3.length + " arguments, but found " + y3.length + " instead."); + else { + for (var b2 = 0; b2 < y3.length; b2++) { + var w2 = Array.isArray(h3) ? h3[b2] : h3.type, _2 = y3[b2]; + u2.concat(b2 + 1).checkSubtype(w2, _2.type); + } + if (0 === u2.errors.length) + return new xe(n2, a2, f2, y3); } - e2.error(`Expected arguments of type ${r3}, but found (${n3.join(", ")}) instead.`); - } - return null; - } - static register(t2, e2) { - Wt.definitions = e2; - for (const r2 in e2) - t2[r2] = Wt; - } - } - class Qt { - constructor(t2, e2, r2) { - this.type = xt, this.locale = r2, this.caseSensitive = t2, this.diacriticSensitive = e2; - } - static parse(t2, e2) { - if (2 !== t2.length) - return e2.error("Expected one argument."); - const r2 = t2[1]; - if ("object" != typeof r2 || Array.isArray(r2)) - return e2.error("Collator options argument must be an object."); - const n2 = e2.parse(void 0 !== r2["case-sensitive"] && r2["case-sensitive"], 1, dt); - if (!n2) - return null; - const i2 = e2.parse(void 0 !== r2["diacritic-sensitive"] && r2["diacritic-sensitive"], 1, dt); - if (!i2) - return null; - let a2 = null; - return r2.locale && (a2 = e2.parse(r2.locale, 1, ft), !a2) ? null : new Qt(n2, i2, a2); - } - evaluate(t2) { - return new Tt(this.caseSensitive.evaluate(t2), this.diacriticSensitive.evaluate(t2), this.locale ? this.locale.evaluate(t2) : null); } - eachChild(t2) { - t2(this.caseSensitive), t2(this.diacriticSensitive), this.locale && t2(this.locale); - } - outputDefined() { - return false; + if (1 === s2.length) + (r2 = e2.errors).push.apply(r2, u2.errors); + else { + for (var A3 = (s2.length ? s2 : o2).map(function(t3) { + var e3; + return e3 = t3[0], Array.isArray(e3) ? "(" + e3.map(Jt).join(", ") + ")" : "(" + Jt(e3.type) + "...)"; + }).join(" | "), S2 = [], k2 = 1; k2 < t2.length; k2++) { + var I3 = e2.parse(t2[k2], 1 + S2.length); + if (!I3) + return null; + S2.push(Jt(I3.type)); + } + e2.error("Expected arguments of type " + A3 + ", but found (" + S2.join(", ") + ") instead."); } - } - const te = 8192; - function ee(t2, e2) { + return null; + }, xe.register = function(t2, e2) { + for (var r2 in xe.definitions = e2, e2) + t2[r2] = xe; + }; + var be = function(t2, e2, r2) { + this.type = Kt, this.locale = r2, this.caseSensitive = t2, this.diacriticSensitive = e2; + }; + function we(t2, e2) { t2[0] = Math.min(t2[0], e2[0]), t2[1] = Math.min(t2[1], e2[1]), t2[2] = Math.max(t2[2], e2[0]), t2[3] = Math.max(t2[3], e2[1]); } - function re(t2, e2) { + function _e(t2, e2) { return !(t2[0] <= e2[0] || t2[2] >= e2[2] || t2[1] <= e2[1] || t2[3] >= e2[3]); } - function ne(t2, e2) { - const r2 = (180 + t2[0]) / 360, n2 = (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + t2[1] * Math.PI / 360))) / 360, i2 = Math.pow(2, e2.z); - return [Math.round(r2 * i2 * te), Math.round(n2 * i2 * te)]; + function Ae(t2, e2) { + var r2 = (180 + t2[0]) / 360, n2 = (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + t2[1] * Math.PI / 360))) / 360, i2 = Math.pow(2, e2.z); + return [Math.round(r2 * i2 * 8192), Math.round(n2 * i2 * 8192)]; } - function ie(t2, e2, r2) { - const n2 = t2[0] - e2[0], i2 = t2[1] - e2[1], a2 = t2[0] - r2[0], s2 = t2[1] - r2[1]; - return n2 * s2 - a2 * i2 == 0 && n2 * a2 <= 0 && i2 * s2 <= 0; + function Se(t2, e2, r2) { + return e2[1] > t2[1] != r2[1] > t2[1] && t2[0] < (r2[0] - e2[0]) * (t2[1] - e2[1]) / (r2[1] - e2[1]) + e2[0]; } - function ae(t2, e2) { - let r2 = false; - for (let s2 = 0, o2 = e2.length; s2 < o2; s2++) { - const o3 = e2[s2]; - for (let e3 = 0, s3 = o3.length; e3 < s3 - 1; e3++) { - if (ie(t2, o3[e3], o3[e3 + 1])) + function ke(t2, e2) { + for (var r2, n2, i2, a2, o2, s2, u2, l2 = false, p3 = 0, c3 = e2.length; p3 < c3; p3++) + for (var h3 = e2[p3], f2 = 0, y3 = h3.length; f2 < y3 - 1; f2++) { + if ((a2 = (r2 = t2)[0] - (n2 = h3[f2])[0]) * (u2 = r2[1] - (i2 = h3[f2 + 1])[1]) - (s2 = r2[0] - i2[0]) * (o2 = r2[1] - n2[1]) == 0 && a2 * s2 <= 0 && o2 * u2 <= 0) return false; - (i2 = o3[e3])[1] > (n2 = t2)[1] != (a2 = o3[e3 + 1])[1] > n2[1] && n2[0] < (a2[0] - i2[0]) * (n2[1] - i2[1]) / (a2[1] - i2[1]) + i2[0] && (r2 = !r2); + Se(t2, h3[f2], h3[f2 + 1]) && (l2 = !l2); } - } - var n2, i2, a2; - return r2; + return l2; } - function se(t2, e2) { - for (let r2 = 0; r2 < e2.length; r2++) - if (ae(t2, e2[r2])) + function Ie(t2, e2) { + for (var r2 = 0; r2 < e2.length; r2++) + if (ke(t2, e2[r2])) return true; return false; } - function oe(t2, e2, r2, n2) { - const i2 = n2[0] - r2[0], a2 = n2[1] - r2[1], s2 = (t2[0] - r2[0]) * a2 - i2 * (t2[1] - r2[1]), o2 = (e2[0] - r2[0]) * a2 - i2 * (e2[1] - r2[1]); - return s2 > 0 && o2 < 0 || s2 < 0 && o2 > 0; + function ze(t2, e2, r2, n2) { + var i2 = n2[0] - r2[0], a2 = n2[1] - r2[1], o2 = (t2[0] - r2[0]) * a2 - i2 * (t2[1] - r2[1]), s2 = (e2[0] - r2[0]) * a2 - i2 * (e2[1] - r2[1]); + return o2 > 0 && s2 < 0 || o2 < 0 && s2 > 0; } - function le(t2, e2, r2) { - for (const u2 of r2) - for (let r3 = 0; r3 < u2.length - 1; ++r3) - if (0 != (o2 = [(s2 = u2[r3 + 1])[0] - (a2 = u2[r3])[0], s2[1] - a2[1]])[0] * (l2 = [(i2 = e2)[0] - (n2 = t2)[0], i2[1] - n2[1]])[1] - o2[1] * l2[0] && oe(n2, i2, a2, s2) && oe(a2, s2, n2, i2)) + function Ce(t2, e2, r2) { + for (var n2 = 0, i2 = r2; n2 < i2.length; n2 += 1) + for (var a2 = i2[n2], o2 = 0; o2 < a2.length - 1; ++o2) + if (0 != (c3 = [(p3 = a2[o2 + 1])[0] - (l2 = a2[o2])[0], p3[1] - l2[1]])[0] * (h3 = [(u2 = e2)[0] - (s2 = t2)[0], u2[1] - s2[1]])[1] - c3[1] * h3[0] && ze(s2, u2, l2, p3) && ze(l2, p3, s2, u2)) return true; - var n2, i2, a2, s2, o2, l2; + var s2, u2, l2, p3, c3, h3; return false; } - function ue(t2, e2) { - for (let r2 = 0; r2 < t2.length; ++r2) - if (!ae(t2[r2], e2)) + function Ee(t2, e2) { + for (var r2 = 0; r2 < t2.length; ++r2) + if (!ke(t2[r2], e2)) return false; - for (let r2 = 0; r2 < t2.length - 1; ++r2) - if (le(t2[r2], t2[r2 + 1], e2)) + for (var n2 = 0; n2 < t2.length - 1; ++n2) + if (Ce(t2[n2], t2[n2 + 1], e2)) return false; return true; } - function ce(t2, e2) { - for (let r2 = 0; r2 < e2.length; r2++) - if (ue(t2, e2[r2])) + function Pe(t2, e2) { + for (var r2 = 0; r2 < e2.length; r2++) + if (Ee(t2, e2[r2])) return true; return false; } - function he(t2, e2, r2) { - const n2 = []; - for (let i2 = 0; i2 < t2.length; i2++) { - const a2 = []; - for (let n3 = 0; n3 < t2[i2].length; n3++) { - const s2 = ne(t2[i2][n3], r2); - ee(e2, s2), a2.push(s2); + function Me(t2, e2, r2) { + for (var n2 = [], i2 = 0; i2 < t2.length; i2++) { + for (var a2 = [], o2 = 0; o2 < t2[i2].length; o2++) { + var s2 = Ae(t2[i2][o2], r2); + we(e2, s2), a2.push(s2); } n2.push(a2); } return n2; } - function pe(t2, e2, r2) { - const n2 = []; - for (let i2 = 0; i2 < t2.length; i2++) { - const a2 = he(t2[i2], e2, r2); + function Be(t2, e2, r2) { + for (var n2 = [], i2 = 0; i2 < t2.length; i2++) { + var a2 = Me(t2[i2], e2, r2); n2.push(a2); } return n2; } - function fe(t2, e2, r2, n2) { + function Te(t2, e2, r2, n2) { if (t2[0] < r2[0] || t2[0] > r2[2]) { - const e3 = 0.5 * n2; - let i2 = t2[0] - r2[0] > e3 ? -n2 : r2[0] - t2[0] > e3 ? n2 : 0; - 0 === i2 && (i2 = t2[0] - r2[2] > e3 ? -n2 : r2[2] - t2[0] > e3 ? n2 : 0), t2[0] += i2; + var i2 = 0.5 * n2, a2 = t2[0] - r2[0] > i2 ? -n2 : r2[0] - t2[0] > i2 ? n2 : 0; + 0 === a2 && (a2 = t2[0] - r2[2] > i2 ? -n2 : r2[2] - t2[0] > i2 ? n2 : 0), t2[0] += a2; } - ee(e2, t2); + we(e2, t2); } - function de(t2, e2, r2, n2) { - const i2 = Math.pow(2, n2.z) * te, a2 = [n2.x * te, n2.y * te], s2 = []; - for (const n3 of t2) - for (const t3 of n3) { - const n4 = [t3.x + a2[0], t3.y + a2[1]]; - fe(n4, e2, r2, i2), s2.push(n4); + function Ve(t2, e2, r2, n2) { + for (var i2 = 8192 * Math.pow(2, n2.z), a2 = [8192 * n2.x, 8192 * n2.y], o2 = [], s2 = 0, u2 = t2; s2 < u2.length; s2 += 1) + for (var l2 = 0, p3 = u2[s2]; l2 < p3.length; l2 += 1) { + var c3 = p3[l2], h3 = [c3.x + a2[0], c3.y + a2[1]]; + Te(h3, e2, r2, i2), o2.push(h3); } - return s2; + return o2; } - function ye(t2, e2, r2, n2) { - const i2 = Math.pow(2, n2.z) * te, a2 = [n2.x * te, n2.y * te], s2 = []; - for (const r3 of t2) { - const t3 = []; - for (const n3 of r3) { - const r4 = [n3.x + a2[0], n3.y + a2[1]]; - ee(e2, r4), t3.push(r4); + function Fe(t2, e2, r2, n2) { + for (var i2, a2 = 8192 * Math.pow(2, n2.z), o2 = [8192 * n2.x, 8192 * n2.y], s2 = [], u2 = 0, l2 = t2; u2 < l2.length; u2 += 1) { + for (var p3 = [], c3 = 0, h3 = l2[u2]; c3 < h3.length; c3 += 1) { + var f2 = h3[c3], y3 = [f2.x + o2[0], f2.y + o2[1]]; + we(e2, y3), p3.push(y3); } - s2.push(t3); + s2.push(p3); } - if (e2[2] - e2[0] <= i2 / 2) { - (o2 = e2)[0] = o2[1] = 1 / 0, o2[2] = o2[3] = -1 / 0; - for (const t3 of s2) - for (const n3 of t3) - fe(n3, e2, r2, i2); + if (e2[2] - e2[0] <= a2 / 2) { + (i2 = e2)[0] = i2[1] = 1 / 0, i2[2] = i2[3] = -1 / 0; + for (var d2 = 0, m2 = s2; d2 < m2.length; d2 += 1) + for (var v3 = 0, g2 = m2[d2]; v3 < g2.length; v3 += 1) + Te(g2[v3], e2, r2, a2); } - var o2; return s2; } - class me { - constructor(t2, e2) { - this.type = dt, this.geojson = t2, this.geometries = e2; - } - static parse(t2, e2) { - if (2 !== t2.length) - return e2.error(`'within' expression requires exactly one argument, but found ${t2.length - 1} instead.`); - if (Ut(t2[1])) { - const e3 = t2[1]; - if ("FeatureCollection" === e3.type) - for (let t3 = 0; t3 < e3.features.length; ++t3) { - const r2 = e3.features[t3].geometry.type; - if ("Polygon" === r2 || "MultiPolygon" === r2) - return new me(e3, e3.features[t3].geometry); - } - else if ("Feature" === e3.type) { - const t3 = e3.geometry.type; - if ("Polygon" === t3 || "MultiPolygon" === t3) - return new me(e3, e3.geometry); - } else if ("Polygon" === e3.type || "MultiPolygon" === e3.type) - return new me(e3, e3); - } - return e2.error("'within' expression requires valid geojson object that contains polygon geometry type."); - } - evaluate(t2) { - if (null != t2.geometry() && null != t2.canonicalID()) { - if ("Point" === t2.geometryType()) - return function(t3, e2) { - const r2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], n2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], i2 = t3.canonicalID(); - if ("Polygon" === e2.type) { - const a2 = he(e2.coordinates, n2, i2), s2 = de(t3.geometry(), r2, n2, i2); - if (!re(r2, n2)) - return false; - for (const t4 of s2) - if (!ae(t4, a2)) - return false; - } - if ("MultiPolygon" === e2.type) { - const a2 = pe(e2.coordinates, n2, i2), s2 = de(t3.geometry(), r2, n2, i2); - if (!re(r2, n2)) - return false; - for (const t4 of s2) - if (!se(t4, a2)) - return false; - } - return true; - }(t2, this.geometries); - if ("LineString" === t2.geometryType()) - return function(t3, e2) { - const r2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], n2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], i2 = t3.canonicalID(); - if ("Polygon" === e2.type) { - const a2 = he(e2.coordinates, n2, i2), s2 = ye(t3.geometry(), r2, n2, i2); - if (!re(r2, n2)) - return false; - for (const t4 of s2) - if (!ue(t4, a2)) - return false; - } - if ("MultiPolygon" === e2.type) { - const a2 = pe(e2.coordinates, n2, i2), s2 = ye(t3.geometry(), r2, n2, i2); - if (!re(r2, n2)) - return false; - for (const t4 of s2) - if (!ce(t4, a2)) - return false; - } - return true; - }(t2, this.geometries); - } - return false; - } - eachChild() { - } - outputDefined() { - return true; - } - } - function ge(t2) { - if (t2 instanceof Wt) { + be.parse = function(t2, e2) { + if (2 !== t2.length) + return e2.error("Expected one argument."); + var r2 = t2[1]; + if ("object" != typeof r2 || Array.isArray(r2)) + return e2.error("Collator options argument must be an object."); + var n2 = e2.parse(void 0 !== r2["case-sensitive"] && r2["case-sensitive"], 1, Ut); + if (!n2) + return null; + var i2 = e2.parse(void 0 !== r2["diacritic-sensitive"] && r2["diacritic-sensitive"], 1, Ut); + if (!i2) + return null; + var a2 = null; + return r2.locale && !(a2 = e2.parse(r2.locale, 1, Rt)) ? null : new be(n2, i2, a2); + }, be.prototype.evaluate = function(t2) { + return new ee(this.caseSensitive.evaluate(t2), this.diacriticSensitive.evaluate(t2), this.locale ? this.locale.evaluate(t2) : null); + }, be.prototype.eachChild = function(t2) { + t2(this.caseSensitive), t2(this.diacriticSensitive), this.locale && t2(this.locale); + }, be.prototype.outputDefined = function() { + return false; + }, be.prototype.serialize = function() { + var t2 = {}; + return t2["case-sensitive"] = this.caseSensitive.serialize(), t2["diacritic-sensitive"] = this.diacriticSensitive.serialize(), this.locale && (t2.locale = this.locale.serialize()), ["collator", t2]; + }; + var De = function(t2, e2) { + this.type = Ut, this.geojson = t2, this.geometries = e2; + }; + function Le(t2) { + if (t2 instanceof xe) { if ("get" === t2.name && 1 === t2.args.length) return false; if ("feature-state" === t2.name) @@ -16623,1268 +16902,1353 @@ This will fail in production.`); if (/^filter-/.test(t2.name)) return false; } - if (t2 instanceof me) + if (t2 instanceof De) return false; - let e2 = true; - return t2.eachChild((t3) => { - e2 && !ge(t3) && (e2 = false); + var e2 = true; + return t2.eachChild(function(t3) { + e2 && !Le(t3) && (e2 = false); }), e2; } - function xe(t2) { - if (t2 instanceof Wt && "feature-state" === t2.name) + function Oe(t2) { + if (t2 instanceof xe && "feature-state" === t2.name) return false; - let e2 = true; - return t2.eachChild((t3) => { - e2 && !xe(t3) && (e2 = false); + var e2 = true; + return t2.eachChild(function(t3) { + e2 && !Oe(t3) && (e2 = false); }), e2; } - function ve(t2, e2) { - if (t2 instanceof Wt && e2.indexOf(t2.name) >= 0) + function Re(t2, e2) { + if (t2 instanceof xe && e2.indexOf(t2.name) >= 0) return false; - let r2 = true; - return t2.eachChild((t3) => { - r2 && !ve(t3, e2) && (r2 = false); + var r2 = true; + return t2.eachChild(function(t3) { + r2 && !Re(t3, e2) && (r2 = false); }), r2; } - class be { - constructor(t2, e2) { - this.type = e2.type, this.name = t2, this.boundExpression = e2; - } - static parse(t2, e2) { - if (2 !== t2.length || "string" != typeof t2[1]) - return e2.error("'var' expression requires exactly one string literal argument."); - const r2 = t2[1]; - return e2.scope.has(r2) ? new be(r2, e2.scope.get(r2)) : e2.error(`Unknown variable "${r2}". Make sure "${r2}" has been bound in an enclosing "let" expression before using it.`, 1); - } - evaluate(t2) { - return this.boundExpression.evaluate(t2); - } - eachChild() { - } - outputDefined() { - return false; - } - } - class we { - constructor(t2, e2 = [], r2, n2 = new ct(), i2 = []) { - this.registry = t2, this.path = e2, this.key = e2.map((t3) => `[${t3}]`).join(""), this.scope = n2, this.errors = i2, this.expectedType = r2; - } - parse(t2, e2, r2, n2, i2 = {}) { - return e2 ? this.concat(e2, r2, n2)._parse(t2, i2) : this._parse(t2, i2); - } - _parse(t2, e2) { - function r2(t3, e3, r3) { - return "assert" === r3 ? new Gt(e3, [t3]) : "coerce" === r3 ? new Xt(e3, [t3]) : t3; - } - if (null !== t2 && "string" != typeof t2 && "boolean" != typeof t2 && "number" != typeof t2 || (t2 = ["literal", t2]), Array.isArray(t2)) { - if (0 === t2.length) - return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].'); - const n2 = t2[0]; - if ("string" != typeof n2) - return this.error(`Expression name must be a string, but found ${typeof n2} instead. If you wanted a literal array, use ["literal", [...]].`, 0), null; - const i2 = this.registry[n2]; - if (i2) { - let n3 = i2.parse(t2, this); - if (!n3) - return null; - if (this.expectedType) { - const t3 = this.expectedType, i3 = n3.type; - if ("string" !== t3.kind && "number" !== t3.kind && "boolean" !== t3.kind && "object" !== t3.kind && "array" !== t3.kind || "value" !== i3.kind) - if ("color" !== t3.kind && "formatted" !== t3.kind && "resolvedImage" !== t3.kind || "value" !== i3.kind && "string" !== i3.kind) - if ("padding" !== t3.kind || "value" !== i3.kind && "number" !== i3.kind && "array" !== i3.kind) { - if (this.checkSubtype(t3, i3)) - return null; - } else - n3 = r2(n3, t3, e2.typeAnnotation || "coerce"); - else - n3 = r2(n3, t3, e2.typeAnnotation || "coerce"); - else - n3 = r2(n3, t3, e2.typeAnnotation || "assert"); + De.parse = function(t2, e2) { + if (2 !== t2.length) + return e2.error("'within' expression requires exactly one argument, but found " + (t2.length - 1) + " instead."); + if (oe(t2[1])) { + var r2 = t2[1]; + if ("FeatureCollection" === r2.type) + for (var n2 = 0; n2 < r2.features.length; ++n2) { + var i2 = r2.features[n2].geometry.type; + if ("Polygon" === i2 || "MultiPolygon" === i2) + return new De(r2, r2.features[n2].geometry); + } + else if ("Feature" === r2.type) { + var a2 = r2.geometry.type; + if ("Polygon" === a2 || "MultiPolygon" === a2) + return new De(r2, r2.geometry); + } else if ("Polygon" === r2.type || "MultiPolygon" === r2.type) + return new De(r2, r2); + } + return e2.error("'within' expression requires valid geojson object that contains polygon geometry type."); + }, De.prototype.evaluate = function(t2) { + if (null != t2.geometry() && null != t2.canonicalID()) { + if ("Point" === t2.geometryType()) + return function(t3, e2) { + var r2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], n2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], i2 = t3.canonicalID(); + if ("Polygon" === e2.type) { + var a2 = Me(e2.coordinates, n2, i2), o2 = Ve(t3.geometry(), r2, n2, i2); + if (!_e(r2, n2)) + return false; + for (var s2 = 0, u2 = o2; s2 < u2.length; s2 += 1) + if (!ke(u2[s2], a2)) + return false; } - if (!(n3 instanceof Nt) && "resolvedImage" !== n3.type.kind && _e(n3)) { - const t3 = new Ht(); - try { - n3 = new Nt(n3.type, n3.evaluate(t3)); - } catch (t4) { - return this.error(t4.message), null; - } + if ("MultiPolygon" === e2.type) { + var l2 = Be(e2.coordinates, n2, i2), p3 = Ve(t3.geometry(), r2, n2, i2); + if (!_e(r2, n2)) + return false; + for (var c3 = 0, h3 = p3; c3 < h3.length; c3 += 1) + if (!Ie(h3[c3], l2)) + return false; } - return n3; - } - return this.error(`Unknown expression "${n2}". If you wanted a literal array, use ["literal", [...]].`, 0); - } - return this.error(void 0 === t2 ? "'undefined' value invalid. Use null instead." : "object" == typeof t2 ? 'Bare objects invalid. Use ["literal", {...}] instead.' : `Expected an array, but found ${typeof t2} instead.`); - } - concat(t2, e2, r2) { - const n2 = "number" == typeof t2 ? this.path.concat(t2) : this.path, i2 = r2 ? this.scope.concat(r2) : this.scope; - return new we(this.registry, n2, e2 || null, i2, this.errors); - } - error(t2, ...e2) { - const r2 = `${this.key}${e2.map((t3) => `[${t3}]`).join("")}`; - this.errors.push(new ut(r2, t2)); - } - checkSubtype(t2, e2) { - const r2 = St(t2, e2); - return r2 && this.error(r2), r2; + return true; + }(t2, this.geometries); + if ("LineString" === t2.geometryType()) + return function(t3, e2) { + var r2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], n2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], i2 = t3.canonicalID(); + if ("Polygon" === e2.type) { + var a2 = Me(e2.coordinates, n2, i2), o2 = Fe(t3.geometry(), r2, n2, i2); + if (!_e(r2, n2)) + return false; + for (var s2 = 0, u2 = o2; s2 < u2.length; s2 += 1) + if (!Ee(u2[s2], a2)) + return false; + } + if ("MultiPolygon" === e2.type) { + var l2 = Be(e2.coordinates, n2, i2), p3 = Fe(t3.geometry(), r2, n2, i2); + if (!_e(r2, n2)) + return false; + for (var c3 = 0, h3 = p3; c3 < h3.length; c3 += 1) + if (!Pe(h3[c3], l2)) + return false; + } + return true; + }(t2, this.geometries); } - } - function _e(t2) { - if (t2 instanceof be) - return _e(t2.boundExpression); - if (t2 instanceof Wt && "error" === t2.name) - return false; - if (t2 instanceof Qt) - return false; - if (t2 instanceof me) - return false; - const e2 = t2 instanceof Xt || t2 instanceof Gt; - let r2 = true; - return t2.eachChild((t3) => { - r2 = e2 ? r2 && _e(t3) : r2 && t3 instanceof Nt; - }), !!r2 && ge(t2) && ve(t2, ["zoom", "heatmap-density", "line-progress", "accumulated", "is-supported-script"]); - } - function Ae(t2, e2) { - const r2 = t2.length - 1; - let n2, i2, a2 = 0, s2 = r2, o2 = 0; - for (; a2 <= s2; ) - if (o2 = Math.floor((a2 + s2) / 2), n2 = t2[o2], i2 = t2[o2 + 1], n2 <= e2) { - if (o2 === r2 || e2 < i2) + return false; + }, De.prototype.eachChild = function() { + }, De.prototype.outputDefined = function() { + return true; + }, De.prototype.serialize = function() { + return ["within", this.geojson]; + }; + var Ue = function(t2, e2) { + this.type = e2.type, this.name = t2, this.boundExpression = e2; + }; + Ue.parse = function(t2, e2) { + if (2 !== t2.length || "string" != typeof t2[1]) + return e2.error("'var' expression requires exactly one string literal argument."); + var r2 = t2[1]; + return e2.scope.has(r2) ? new Ue(r2, e2.scope.get(r2)) : e2.error('Unknown variable "' + r2 + '". Make sure "' + r2 + '" has been bound in an enclosing "let" expression before using it.', 1); + }, Ue.prototype.evaluate = function(t2) { + return this.boundExpression.evaluate(t2); + }, Ue.prototype.eachChild = function() { + }, Ue.prototype.outputDefined = function() { + return false; + }, Ue.prototype.serialize = function() { + return ["var", this.name]; + }; + var je = function(t2, e2, r2, n2, i2) { + void 0 === e2 && (e2 = []), void 0 === n2 && (n2 = new Dt()), void 0 === i2 && (i2 = []), this.registry = t2, this.path = e2, this.key = e2.map(function(t3) { + return "[" + t3 + "]"; + }).join(""), this.scope = n2, this.errors = i2, this.expectedType = r2; + }; + function qe(t2, e2) { + for (var r2, n2 = t2.length - 1, i2 = 0, a2 = n2, o2 = 0; i2 <= a2; ) + if ((r2 = t2[o2 = Math.floor((i2 + a2) / 2)]) <= e2) { + if (o2 === n2 || e2 < t2[o2 + 1]) return o2; - a2 = o2 + 1; + i2 = o2 + 1; } else { - if (!(n2 > e2)) - throw new Zt("Input is not a number."); - s2 = o2 - 1; + if (!(r2 > e2)) + throw new pe("Input is not a number."); + a2 = o2 - 1; } return 0; } - class ke { - constructor(t2, e2, r2) { - this.type = t2, this.input = e2, this.labels = [], this.outputs = []; - for (const [t3, e3] of r2) - this.labels.push(t3), this.outputs.push(e3); - } - static parse(t2, e2) { - if (t2.length - 1 < 4) - return e2.error(`Expected at least 4 arguments, but found only ${t2.length - 1}.`); - if ((t2.length - 1) % 2 != 0) - return e2.error("Expected an even number of arguments."); - const r2 = e2.parse(t2[1], 1, pt); - if (!r2) - return null; - const n2 = []; - let i2 = null; - e2.expectedType && "value" !== e2.expectedType.kind && (i2 = e2.expectedType); - for (let r3 = 1; r3 < t2.length; r3 += 2) { - const a2 = 1 === r3 ? -1 / 0 : t2[r3], s2 = t2[r3 + 1], o2 = r3, l2 = r3 + 1; - if ("number" != typeof a2) - return e2.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.', o2); - if (n2.length && n2[n2.length - 1][0] >= a2) - return e2.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.', o2); - const u2 = e2.parse(s2, l2, i2); - if (!u2) + je.prototype.parse = function(t2, e2, r2, n2, i2) { + return void 0 === i2 && (i2 = {}), e2 ? this.concat(e2, r2, n2)._parse(t2, i2) : this._parse(t2, i2); + }, je.prototype._parse = function(t2, e2) { + function r2(t3, e3, r3) { + return "assert" === r3 ? new he(e3, [t3]) : "coerce" === r3 ? new me(e3, [t3]) : t3; + } + if (null !== t2 && "string" != typeof t2 && "boolean" != typeof t2 && "number" != typeof t2 || (t2 = ["literal", t2]), Array.isArray(t2)) { + if (0 === t2.length) + return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].'); + var n2 = t2[0]; + if ("string" != typeof n2) + return this.error("Expression name must be a string, but found " + typeof n2 + ' instead. If you wanted a literal array, use ["literal", [...]].', 0), null; + var i2 = this.registry[n2]; + if (i2) { + var a2 = i2.parse(t2, this); + if (!a2) return null; - i2 = i2 || u2.type, n2.push([a2, u2]); + if (this.expectedType) { + var o2 = this.expectedType, s2 = a2.type; + if ("string" !== o2.kind && "number" !== o2.kind && "boolean" !== o2.kind && "object" !== o2.kind && "array" !== o2.kind || "value" !== s2.kind) + if ("color" !== o2.kind && "formatted" !== o2.kind && "resolvedImage" !== o2.kind || "value" !== s2.kind && "string" !== s2.kind) { + if (this.checkSubtype(o2, s2)) + return null; + } else + a2 = r2(a2, o2, e2.typeAnnotation || "coerce"); + else + a2 = r2(a2, o2, e2.typeAnnotation || "assert"); + } + if (!(a2 instanceof le) && "resolvedImage" !== a2.type.kind && function t3(e3) { + if (e3 instanceof Ue) + return t3(e3.boundExpression); + if (e3 instanceof xe && "error" === e3.name) + return false; + if (e3 instanceof be) + return false; + if (e3 instanceof De) + return false; + var r3 = e3 instanceof me || e3 instanceof he, n3 = true; + return e3.eachChild(function(e4) { + n3 = r3 ? n3 && t3(e4) : n3 && e4 instanceof le; + }), !!n3 && Le(e3) && Re(e3, ["zoom", "heatmap-density", "line-progress", "accumulated", "is-supported-script"]); + }(a2)) { + var u2 = new ge(); + try { + a2 = new le(a2.type, a2.evaluate(u2)); + } catch (t3) { + return this.error(t3.message), null; + } + } + return a2; } - return new ke(i2, r2, n2); - } - evaluate(t2) { - const e2 = this.labels, r2 = this.outputs; - if (1 === e2.length) - return r2[0].evaluate(t2); - const n2 = this.input.evaluate(t2); - if (n2 <= e2[0]) - return r2[0].evaluate(t2); - const i2 = e2.length; - return n2 >= e2[i2 - 1] ? r2[i2 - 1].evaluate(t2) : r2[Ae(e2, n2)].evaluate(t2); - } - eachChild(t2) { - t2(this.input); - for (const e2 of this.outputs) - t2(e2); - } - outputDefined() { - return this.outputs.every((t2) => t2.outputDefined()); + return this.error('Unknown expression "' + n2 + '". If you wanted a literal array, use ["literal", [...]].', 0); + } + return this.error(void 0 === t2 ? "'undefined' value invalid. Use null instead." : "object" == typeof t2 ? 'Bare objects invalid. Use ["literal", {...}] instead.' : "Expected an array, but found " + typeof t2 + " instead."); + }, je.prototype.concat = function(t2, e2, r2) { + var n2 = "number" == typeof t2 ? this.path.concat(t2) : this.path, i2 = r2 ? this.scope.concat(r2) : this.scope; + return new je(this.registry, n2, e2 || null, i2, this.errors); + }, je.prototype.error = function(t2) { + for (var e2 = [], r2 = arguments.length - 1; r2-- > 0; ) + e2[r2] = arguments[r2 + 1]; + var n2 = "" + this.key + e2.map(function(t3) { + return "[" + t3 + "]"; + }).join(""); + this.errors.push(new Ft(n2, t2)); + }, je.prototype.checkSubtype = function(t2, e2) { + var r2 = Yt(t2, e2); + return r2 && this.error(r2), r2; + }; + var Ne = function(t2, e2, r2) { + this.type = t2, this.input = e2, this.labels = [], this.outputs = []; + for (var n2 = 0, i2 = r2; n2 < i2.length; n2 += 1) { + var a2 = i2[n2], o2 = a2[1]; + this.labels.push(a2[0]), this.outputs.push(o2); } - } - function Se(t2, e2, r2) { + }; + function Ke(t2, e2, r2) { return t2 * (1 - r2) + e2 * r2; } - var Ie = Object.freeze({ __proto__: null, number: Se, color: function(t2, e2, r2) { - return new Ft(Se(t2.r, e2.r, r2), Se(t2.g, e2.g, r2), Se(t2.b, e2.b, r2), Se(t2.a, e2.a, r2)); + Ne.parse = function(t2, e2) { + if (t2.length - 1 < 4) + return e2.error("Expected at least 4 arguments, but found only " + (t2.length - 1) + "."); + if ((t2.length - 1) % 2 != 0) + return e2.error("Expected an even number of arguments."); + var r2 = e2.parse(t2[1], 1, Ot); + if (!r2) + return null; + var n2 = [], i2 = null; + e2.expectedType && "value" !== e2.expectedType.kind && (i2 = e2.expectedType); + for (var a2 = 1; a2 < t2.length; a2 += 2) { + var o2 = 1 === a2 ? -1 / 0 : t2[a2], s2 = t2[a2 + 1], u2 = a2, l2 = a2 + 1; + if ("number" != typeof o2) + return e2.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.', u2); + if (n2.length && n2[n2.length - 1][0] >= o2) + return e2.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.', u2); + var p3 = e2.parse(s2, l2, i2); + if (!p3) + return null; + i2 = i2 || p3.type, n2.push([o2, p3]); + } + return new Ne(i2, r2, n2); + }, Ne.prototype.evaluate = function(t2) { + var e2 = this.labels, r2 = this.outputs; + if (1 === e2.length) + return r2[0].evaluate(t2); + var n2 = this.input.evaluate(t2); + if (n2 <= e2[0]) + return r2[0].evaluate(t2); + var i2 = e2.length; + return n2 >= e2[i2 - 1] ? r2[i2 - 1].evaluate(t2) : r2[qe(e2, n2)].evaluate(t2); + }, Ne.prototype.eachChild = function(t2) { + t2(this.input); + for (var e2 = 0, r2 = this.outputs; e2 < r2.length; e2 += 1) + t2(r2[e2]); + }, Ne.prototype.outputDefined = function() { + return this.outputs.every(function(t2) { + return t2.outputDefined(); + }); + }, Ne.prototype.serialize = function() { + for (var t2 = ["step", this.input.serialize()], e2 = 0; e2 < this.labels.length; e2++) + e2 > 0 && t2.push(this.labels[e2]), t2.push(this.outputs[e2].serialize()); + return t2; + }; + var Ge = Object.freeze({ __proto__: null, number: Ke, color: function(t2, e2, r2) { + return new te(Ke(t2.r, e2.r, r2), Ke(t2.g, e2.g, r2), Ke(t2.b, e2.b, r2), Ke(t2.a, e2.a, r2)); }, array: function(t2, e2, r2) { - return t2.map((t3, n2) => Se(t3, e2[n2], r2)); - }, padding: function(t2, e2, r2) { - const n2 = t2.values, i2 = e2.values; - return new $t([Se(n2[0], i2[0], r2), Se(n2[1], i2[1], r2), Se(n2[2], i2[2], r2), Se(n2[3], i2[3], r2)]); - } }); - const Me = 0.95047, ze = 1.08883, Be = 4 / 29, Ce = 6 / 29, Pe = 3 * Ce * Ce, Ve = Math.PI / 180, Ee = 180 / Math.PI; - function Fe(t2) { - return t2 > 0.008856451679035631 ? Math.pow(t2, 1 / 3) : t2 / Pe + Be; - } - function Te(t2) { - return t2 > Ce ? t2 * t2 * t2 : Pe * (t2 - Be); + return t2.map(function(t3, n2) { + return Ke(t3, e2[n2], r2); + }); + } }), Ze = 6 / 29 * 3 * (6 / 29), Xe = Math.PI / 180, Je = 180 / Math.PI; + function He(t2) { + return t2 > 0.008856451679035631 ? Math.pow(t2, 1 / 3) : t2 / Ze + 4 / 29; } - function Le(t2) { + function Ye(t2) { + return t2 > 6 / 29 ? t2 * t2 * t2 : Ze * (t2 - 4 / 29); + } + function $e(t2) { return 255 * (t2 <= 31308e-7 ? 12.92 * t2 : 1.055 * Math.pow(t2, 1 / 2.4) - 0.055); } - function De(t2) { + function We(t2) { return (t2 /= 255) <= 0.04045 ? t2 / 12.92 : Math.pow((t2 + 0.055) / 1.055, 2.4); } - function $e(t2) { - const e2 = De(t2.r), r2 = De(t2.g), n2 = De(t2.b), i2 = Fe((0.4124564 * e2 + 0.3575761 * r2 + 0.1804375 * n2) / Me), a2 = Fe((0.2126729 * e2 + 0.7151522 * r2 + 0.072175 * n2) / 1); - return { l: 116 * a2 - 16, a: 500 * (i2 - a2), b: 200 * (a2 - Fe((0.0193339 * e2 + 0.119192 * r2 + 0.9503041 * n2) / ze)), alpha: t2.a }; + function Qe(t2) { + var e2 = We(t2.r), r2 = We(t2.g), n2 = We(t2.b), i2 = He((0.4124564 * e2 + 0.3575761 * r2 + 0.1804375 * n2) / 0.95047), a2 = He((0.2126729 * e2 + 0.7151522 * r2 + 0.072175 * n2) / 1); + return { l: 116 * a2 - 16, a: 500 * (i2 - a2), b: 200 * (a2 - He((0.0193339 * e2 + 0.119192 * r2 + 0.9503041 * n2) / 1.08883)), alpha: t2.a }; } - function Re(t2) { - let e2 = (t2.l + 16) / 116, r2 = isNaN(t2.a) ? e2 : e2 + t2.a / 500, n2 = isNaN(t2.b) ? e2 : e2 - t2.b / 200; - return e2 = 1 * Te(e2), r2 = Me * Te(r2), n2 = ze * Te(n2), new Ft(Le(3.2404542 * r2 - 1.5371385 * e2 - 0.4985314 * n2), Le(-0.969266 * r2 + 1.8760108 * e2 + 0.041556 * n2), Le(0.0556434 * r2 - 0.2040259 * e2 + 1.0572252 * n2), t2.alpha); + function tr(t2) { + var e2 = (t2.l + 16) / 116, r2 = isNaN(t2.a) ? e2 : e2 + t2.a / 500, n2 = isNaN(t2.b) ? e2 : e2 - t2.b / 200; + return e2 = 1 * Ye(e2), r2 = 0.95047 * Ye(r2), n2 = 1.08883 * Ye(n2), new te($e(3.2404542 * r2 - 1.5371385 * e2 - 0.4985314 * n2), $e(-0.969266 * r2 + 1.8760108 * e2 + 0.041556 * n2), $e(0.0556434 * r2 - 0.2040259 * e2 + 1.0572252 * n2), t2.alpha); } - function Oe(t2, e2, r2) { - const n2 = e2 - t2; + function er(t2, e2, r2) { + var n2 = e2 - t2; return t2 + r2 * (n2 > 180 || n2 < -180 ? n2 - 360 * Math.round(n2 / 360) : n2); } - const Ue = { forward: $e, reverse: Re, interpolate: function(t2, e2, r2) { - return { l: Se(t2.l, e2.l, r2), a: Se(t2.a, e2.a, r2), b: Se(t2.b, e2.b, r2), alpha: Se(t2.alpha, e2.alpha, r2) }; - } }, qe = { forward: function(t2) { - const { l: e2, a: r2, b: n2 } = $e(t2), i2 = Math.atan2(n2, r2) * Ee; - return { h: i2 < 0 ? i2 + 360 : i2, c: Math.sqrt(r2 * r2 + n2 * n2), l: e2, alpha: t2.a }; + var rr = { forward: Qe, reverse: tr, interpolate: function(t2, e2, r2) { + return { l: Ke(t2.l, e2.l, r2), a: Ke(t2.a, e2.a, r2), b: Ke(t2.b, e2.b, r2), alpha: Ke(t2.alpha, e2.alpha, r2) }; + } }, nr = { forward: function(t2) { + var e2 = Qe(t2), r2 = e2.l, n2 = e2.a, i2 = e2.b, a2 = Math.atan2(i2, n2) * Je; + return { h: a2 < 0 ? a2 + 360 : a2, c: Math.sqrt(n2 * n2 + i2 * i2), l: r2, alpha: t2.a }; }, reverse: function(t2) { - const e2 = t2.h * Ve, r2 = t2.c; - return Re({ l: t2.l, a: Math.cos(e2) * r2, b: Math.sin(e2) * r2, alpha: t2.alpha }); + var e2 = t2.h * Xe, r2 = t2.c; + return tr({ l: t2.l, a: Math.cos(e2) * r2, b: Math.sin(e2) * r2, alpha: t2.alpha }); }, interpolate: function(t2, e2, r2) { - return { h: Oe(t2.h, e2.h, r2), c: Se(t2.c, e2.c, r2), l: Se(t2.l, e2.l, r2), alpha: Se(t2.alpha, e2.alpha, r2) }; - } }; - var je = Object.freeze({ __proto__: null, lab: Ue, hcl: qe }); - class Ne { - constructor(t2, e2, r2, n2, i2) { - this.type = t2, this.operator = e2, this.interpolation = r2, this.input = n2, this.labels = [], this.outputs = []; - for (const [t3, e3] of i2) - this.labels.push(t3), this.outputs.push(e3); - } - static interpolationFactor(t2, r2, n2, i2) { - let a2 = 0; - if ("exponential" === t2.name) - a2 = Ze(r2, t2.base, n2, i2); - else if ("linear" === t2.name) - a2 = Ze(r2, 1, n2, i2); - else if ("cubic-bezier" === t2.name) { - const s2 = t2.controlPoints; - a2 = new e(s2[0], s2[1], s2[2], s2[3]).solve(Ze(r2, 1, n2, i2)); - } - return a2; + return { h: er(t2.h, e2.h, r2), c: Ke(t2.c, e2.c, r2), l: Ke(t2.l, e2.l, r2), alpha: Ke(t2.alpha, e2.alpha, r2) }; + } }, ir = Object.freeze({ __proto__: null, lab: rr, hcl: nr }), ar = function(t2, e2, r2, n2, i2) { + this.type = t2, this.operator = e2, this.interpolation = r2, this.input = n2, this.labels = [], this.outputs = []; + for (var a2 = 0, o2 = i2; a2 < o2.length; a2 += 1) { + var s2 = o2[a2], u2 = s2[1]; + this.labels.push(s2[0]), this.outputs.push(u2); } - static parse(t2, e2) { - let [r2, n2, i2, ...a2] = t2; - if (!Array.isArray(n2) || 0 === n2.length) - return e2.error("Expected an interpolation type expression.", 1); - if ("linear" === n2[0]) - n2 = { name: "linear" }; - else if ("exponential" === n2[0]) { - const t3 = n2[1]; - if ("number" != typeof t3) - return e2.error("Exponential interpolation requires a numeric base.", 1, 1); - n2 = { name: "exponential", base: t3 }; - } else { - if ("cubic-bezier" !== n2[0]) - return e2.error(`Unknown interpolation type ${String(n2[0])}`, 1, 0); - { - const t3 = n2.slice(1); - if (4 !== t3.length || t3.some((t4) => "number" != typeof t4 || t4 < 0 || t4 > 1)) - return e2.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.", 1); - n2 = { name: "cubic-bezier", controlPoints: t3 }; - } - } - if (t2.length - 1 < 4) - return e2.error(`Expected at least 4 arguments, but found only ${t2.length - 1}.`); - if ((t2.length - 1) % 2 != 0) - return e2.error("Expected an even number of arguments."); - if (i2 = e2.parse(i2, 2, pt), !i2) - return null; - const s2 = []; - let o2 = null; - "interpolate-hcl" === r2 || "interpolate-lab" === r2 ? o2 = yt : e2.expectedType && "value" !== e2.expectedType.kind && (o2 = e2.expectedType); - for (let t3 = 0; t3 < a2.length; t3 += 2) { - const r3 = a2[t3], n3 = a2[t3 + 1], i3 = t3 + 3, l2 = t3 + 4; - if ("number" != typeof r3) - return e2.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.', i3); - if (s2.length && s2[s2.length - 1][0] >= r3) - return e2.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.', i3); - const u2 = e2.parse(n3, l2, o2); - if (!u2) - return null; - o2 = o2 || u2.type, s2.push([r3, u2]); - } - return "number" === o2.kind || "color" === o2.kind || "padding" === o2.kind || "array" === o2.kind && "number" === o2.itemType.kind && "number" == typeof o2.N ? new Ne(o2, r2, n2, i2, s2) : e2.error(`Type ${At(o2)} is not interpolatable.`); - } - evaluate(t2) { - const e2 = this.labels, r2 = this.outputs; - if (1 === e2.length) - return r2[0].evaluate(t2); - const n2 = this.input.evaluate(t2); - if (n2 <= e2[0]) - return r2[0].evaluate(t2); - const i2 = e2.length; - if (n2 >= e2[i2 - 1]) - return r2[i2 - 1].evaluate(t2); - const a2 = Ae(e2, n2), s2 = Ne.interpolationFactor(this.interpolation, n2, e2[a2], e2[a2 + 1]), o2 = r2[a2].evaluate(t2), l2 = r2[a2 + 1].evaluate(t2); - return "interpolate" === this.operator ? Ie[this.type.kind.toLowerCase()](o2, l2, s2) : "interpolate-hcl" === this.operator ? qe.reverse(qe.interpolate(qe.forward(o2), qe.forward(l2), s2)) : Ue.reverse(Ue.interpolate(Ue.forward(o2), Ue.forward(l2), s2)); - } - eachChild(t2) { - t2(this.input); - for (const e2 of this.outputs) - t2(e2); - } - outputDefined() { - return this.outputs.every((t2) => t2.outputDefined()); - } - } - function Ze(t2, e2, r2, n2) { - const i2 = n2 - r2, a2 = t2 - r2; + }; + function or(t2, e2, r2, n2) { + var i2 = n2 - r2, a2 = t2 - r2; return 0 === i2 ? 0 : 1 === e2 ? a2 / i2 : (Math.pow(e2, a2) - 1) / (Math.pow(e2, i2) - 1); } - class Ke { - constructor(t2, e2) { - this.type = t2, this.args = e2; - } - static parse(t2, e2) { - if (t2.length < 2) - return e2.error("Expectected at least one argument."); - let r2 = null; - const n2 = e2.expectedType; - n2 && "value" !== n2.kind && (r2 = n2); - const i2 = []; - for (const n3 of t2.slice(1)) { - const t3 = e2.parse(n3, 1 + i2.length, r2, void 0, { typeAnnotation: "omit" }); - if (!t3) - return null; - r2 = r2 || t3.type, i2.push(t3); - } - if (!r2) - throw new Error("No output type"); - const a2 = n2 && i2.some((t3) => St(n2, t3.type)); - return new Ke(a2 ? gt : r2, i2); - } - evaluate(t2) { - let e2, r2 = null, n2 = 0; - for (const i2 of this.args) - if (n2++, r2 = i2.evaluate(t2), r2 && r2 instanceof Rt && !r2.available && (e2 || (e2 = r2.name), r2 = null, n2 === this.args.length && (r2 = e2)), null !== r2) - break; - return r2; - } - eachChild(t2) { - this.args.forEach(t2); - } - outputDefined() { - return this.args.every((t2) => t2.outputDefined()); - } - } - class Ge { - constructor(t2, e2) { - this.type = e2.type, this.bindings = [].concat(t2), this.result = e2; - } - evaluate(t2) { - return this.result.evaluate(t2); - } - eachChild(t2) { - for (const e2 of this.bindings) - t2(e2[1]); - t2(this.result); - } - static parse(t2, e2) { - if (t2.length < 4) - return e2.error(`Expected at least 3 arguments, but found ${t2.length - 1} instead.`); - const r2 = []; - for (let n3 = 1; n3 < t2.length - 1; n3 += 2) { - const i2 = t2[n3]; - if ("string" != typeof i2) - return e2.error(`Expected string, but found ${typeof i2} instead.`, n3); - if (/[^a-zA-Z0-9_]/.test(i2)) - return e2.error("Variable names must contain only alphanumeric characters or '_'.", n3); - const a2 = e2.parse(t2[n3 + 1], n3 + 1); - if (!a2) - return null; - r2.push([i2, a2]); - } - const n2 = e2.parse(t2[t2.length - 1], t2.length - 1, e2.expectedType, r2); - return n2 ? new Ge(r2, n2) : null; - } - outputDefined() { - return this.result.outputDefined(); - } - } - class Je { - constructor(t2, e2, r2) { - this.type = t2, this.index = e2, this.input = r2; - } - static parse(t2, e2) { - if (3 !== t2.length) - return e2.error(`Expected 2 arguments, but found ${t2.length - 1} instead.`); - const r2 = e2.parse(t2[1], 1, pt), n2 = e2.parse(t2[2], 2, _t(e2.expectedType || gt)); - return r2 && n2 ? new Je(n2.type.itemType, r2, n2) : null; - } - evaluate(t2) { - const e2 = this.index.evaluate(t2), r2 = this.input.evaluate(t2); - if (e2 < 0) - throw new Zt(`Array index out of bounds: ${e2} < 0.`); - if (e2 >= r2.length) - throw new Zt(`Array index out of bounds: ${e2} > ${r2.length - 1}.`); - if (e2 !== Math.floor(e2)) - throw new Zt(`Array index must be an integer, but found ${e2} instead.`); - return r2[e2]; - } - eachChild(t2) { - t2(this.index), t2(this.input); - } - outputDefined() { - return false; - } - } - class Xe { - constructor(t2, e2) { - this.type = dt, this.needle = t2, this.haystack = e2; + ar.interpolationFactor = function(t2, e2, n2, i2) { + var a2 = 0; + if ("exponential" === t2.name) + a2 = or(e2, t2.base, n2, i2); + else if ("linear" === t2.name) + a2 = or(e2, 1, n2, i2); + else if ("cubic-bezier" === t2.name) { + var o2 = t2.controlPoints; + a2 = new r(o2[0], o2[1], o2[2], o2[3]).solve(or(e2, 1, n2, i2)); } - static parse(t2, e2) { - if (3 !== t2.length) - return e2.error(`Expected 2 arguments, but found ${t2.length - 1} instead.`); - const r2 = e2.parse(t2[1], 1, gt), n2 = e2.parse(t2[2], 2, gt); - return r2 && n2 ? It(r2.type, [dt, ft, pt, ht, gt]) ? new Xe(r2, n2) : e2.error(`Expected first argument to be of type boolean, string, number or null, but found ${At(r2.type)} instead`) : null; - } - evaluate(t2) { - const e2 = this.needle.evaluate(t2), r2 = this.haystack.evaluate(t2); - if (!r2) - return false; - if (!Mt(e2, ["boolean", "string", "number", "null"])) - throw new Zt(`Expected first argument to be of type boolean, string, number or null, but found ${At(qt(e2))} instead.`); - if (!Mt(r2, ["string", "array"])) - throw new Zt(`Expected second argument to be of type array or string, but found ${At(qt(r2))} instead.`); - return r2.indexOf(e2) >= 0; - } - eachChild(t2) { - t2(this.needle), t2(this.haystack); - } - outputDefined() { - return true; - } - } - class Ye { - constructor(t2, e2, r2) { - this.type = pt, this.needle = t2, this.haystack = e2, this.fromIndex = r2; - } - static parse(t2, e2) { - if (t2.length <= 2 || t2.length >= 5) - return e2.error(`Expected 3 or 4 arguments, but found ${t2.length - 1} instead.`); - const r2 = e2.parse(t2[1], 1, gt), n2 = e2.parse(t2[2], 2, gt); - if (!r2 || !n2) + return a2; + }, ar.parse = function(t2, e2) { + var r2 = t2[0], n2 = t2[1], i2 = t2[2], a2 = t2.slice(3); + if (!Array.isArray(n2) || 0 === n2.length) + return e2.error("Expected an interpolation type expression.", 1); + if ("linear" === n2[0]) + n2 = { name: "linear" }; + else if ("exponential" === n2[0]) { + var o2 = n2[1]; + if ("number" != typeof o2) + return e2.error("Exponential interpolation requires a numeric base.", 1, 1); + n2 = { name: "exponential", base: o2 }; + } else { + if ("cubic-bezier" !== n2[0]) + return e2.error("Unknown interpolation type " + String(n2[0]), 1, 0); + var s2 = n2.slice(1); + if (4 !== s2.length || s2.some(function(t3) { + return "number" != typeof t3 || t3 < 0 || t3 > 1; + })) + return e2.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.", 1); + n2 = { name: "cubic-bezier", controlPoints: s2 }; + } + if (t2.length - 1 < 4) + return e2.error("Expected at least 4 arguments, but found only " + (t2.length - 1) + "."); + if ((t2.length - 1) % 2 != 0) + return e2.error("Expected an even number of arguments."); + if (!(i2 = e2.parse(i2, 2, Ot))) + return null; + var u2 = [], l2 = null; + "interpolate-hcl" === r2 || "interpolate-lab" === r2 ? l2 = jt : e2.expectedType && "value" !== e2.expectedType.kind && (l2 = e2.expectedType); + for (var p3 = 0; p3 < a2.length; p3 += 2) { + var c3 = a2[p3], h3 = a2[p3 + 1], f2 = p3 + 3, y3 = p3 + 4; + if ("number" != typeof c3) + return e2.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.', f2); + if (u2.length && u2[u2.length - 1][0] >= c3) + return e2.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.', f2); + var d2 = e2.parse(h3, y3, l2); + if (!d2) return null; - if (!It(r2.type, [dt, ft, pt, ht, gt])) - return e2.error(`Expected first argument to be of type boolean, string, number or null, but found ${At(r2.type)} instead`); - if (4 === t2.length) { - const i2 = e2.parse(t2[3], 3, pt); - return i2 ? new Ye(r2, n2, i2) : null; - } - return new Ye(r2, n2); - } - evaluate(t2) { - const e2 = this.needle.evaluate(t2), r2 = this.haystack.evaluate(t2); - if (!Mt(e2, ["boolean", "string", "number", "null"])) - throw new Zt(`Expected first argument to be of type boolean, string, number or null, but found ${At(qt(e2))} instead.`); - if (!Mt(r2, ["string", "array"])) - throw new Zt(`Expected second argument to be of type array or string, but found ${At(qt(r2))} instead.`); - if (this.fromIndex) { - const n2 = this.fromIndex.evaluate(t2); - return r2.indexOf(e2, n2); - } - return r2.indexOf(e2); - } - eachChild(t2) { - t2(this.needle), t2(this.haystack), this.fromIndex && t2(this.fromIndex); - } - outputDefined() { - return false; + l2 = l2 || d2.type, u2.push([c3, d2]); } - } - class He { - constructor(t2, e2, r2, n2, i2, a2) { - this.inputType = t2, this.type = e2, this.input = r2, this.cases = n2, this.outputs = i2, this.otherwise = a2; - } - static parse(t2, e2) { - if (t2.length < 5) - return e2.error(`Expected at least 4 arguments, but found only ${t2.length - 1}.`); - if (t2.length % 2 != 1) - return e2.error("Expected an even number of arguments."); - let r2, n2; - e2.expectedType && "value" !== e2.expectedType.kind && (n2 = e2.expectedType); - const i2 = {}, a2 = []; - for (let s3 = 2; s3 < t2.length - 1; s3 += 2) { - let o3 = t2[s3]; - const l2 = t2[s3 + 1]; - Array.isArray(o3) || (o3 = [o3]); - const u2 = e2.concat(s3); - if (0 === o3.length) - return u2.error("Expected at least one branch label."); - for (const t3 of o3) { - if ("number" != typeof t3 && "string" != typeof t3) - return u2.error("Branch labels must be numbers or strings."); - if ("number" == typeof t3 && Math.abs(t3) > Number.MAX_SAFE_INTEGER) - return u2.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`); - if ("number" == typeof t3 && Math.floor(t3) !== t3) - return u2.error("Numeric branch labels must be integer values."); - if (r2) { - if (u2.checkSubtype(r2, qt(t3))) - return null; - } else - r2 = qt(t3); - if (void 0 !== i2[String(t3)]) - return u2.error("Branch labels must be unique."); - i2[String(t3)] = a2.length; - } - const c3 = e2.parse(l2, s3, n2); - if (!c3) - return null; - n2 = n2 || c3.type, a2.push(c3); - } - const s2 = e2.parse(t2[1], 1, gt); + return "number" === l2.kind || "color" === l2.kind || "array" === l2.kind && "number" === l2.itemType.kind && "number" == typeof l2.N ? new ar(l2, r2, n2, i2, u2) : e2.error("Type " + Jt(l2) + " is not interpolatable."); + }, ar.prototype.evaluate = function(t2) { + var e2 = this.labels, r2 = this.outputs; + if (1 === e2.length) + return r2[0].evaluate(t2); + var n2 = this.input.evaluate(t2); + if (n2 <= e2[0]) + return r2[0].evaluate(t2); + var i2 = e2.length; + if (n2 >= e2[i2 - 1]) + return r2[i2 - 1].evaluate(t2); + var a2 = qe(e2, n2), o2 = ar.interpolationFactor(this.interpolation, n2, e2[a2], e2[a2 + 1]), s2 = r2[a2].evaluate(t2), u2 = r2[a2 + 1].evaluate(t2); + return "interpolate" === this.operator ? Ge[this.type.kind.toLowerCase()](s2, u2, o2) : "interpolate-hcl" === this.operator ? nr.reverse(nr.interpolate(nr.forward(s2), nr.forward(u2), o2)) : rr.reverse(rr.interpolate(rr.forward(s2), rr.forward(u2), o2)); + }, ar.prototype.eachChild = function(t2) { + t2(this.input); + for (var e2 = 0, r2 = this.outputs; e2 < r2.length; e2 += 1) + t2(r2[e2]); + }, ar.prototype.outputDefined = function() { + return this.outputs.every(function(t2) { + return t2.outputDefined(); + }); + }, ar.prototype.serialize = function() { + var t2; + t2 = "linear" === this.interpolation.name ? ["linear"] : "exponential" === this.interpolation.name ? 1 === this.interpolation.base ? ["linear"] : ["exponential", this.interpolation.base] : ["cubic-bezier"].concat(this.interpolation.controlPoints); + for (var e2 = [this.operator, t2, this.input.serialize()], r2 = 0; r2 < this.labels.length; r2++) + e2.push(this.labels[r2], this.outputs[r2].serialize()); + return e2; + }; + var sr = function(t2, e2) { + this.type = t2, this.args = e2; + }; + sr.parse = function(t2, e2) { + if (t2.length < 2) + return e2.error("Expectected at least one argument."); + var r2 = null, n2 = e2.expectedType; + n2 && "value" !== n2.kind && (r2 = n2); + for (var i2 = [], a2 = 0, o2 = t2.slice(1); a2 < o2.length; a2 += 1) { + var s2 = e2.parse(o2[a2], 1 + i2.length, r2, void 0, { typeAnnotation: "omit" }); if (!s2) return null; - const o2 = e2.parse(t2[t2.length - 1], t2.length - 1, n2); - return o2 ? "value" !== s2.type.kind && e2.concat(1).checkSubtype(r2, s2.type) ? null : new He(r2, n2, s2, i2, a2, o2) : null; - } - evaluate(t2) { - const e2 = this.input.evaluate(t2); - return (qt(e2) === this.inputType && this.outputs[this.cases[e2]] || this.otherwise).evaluate(t2); - } - eachChild(t2) { - t2(this.input), this.outputs.forEach(t2), t2(this.otherwise); - } - outputDefined() { - return this.outputs.every((t2) => t2.outputDefined()) && this.otherwise.outputDefined(); - } - } - class We { - constructor(t2, e2, r2) { - this.type = t2, this.branches = e2, this.otherwise = r2; - } - static parse(t2, e2) { - if (t2.length < 4) - return e2.error(`Expected at least 3 arguments, but found only ${t2.length - 1}.`); - if (t2.length % 2 != 0) - return e2.error("Expected an odd number of arguments."); - let r2; - e2.expectedType && "value" !== e2.expectedType.kind && (r2 = e2.expectedType); - const n2 = []; - for (let i3 = 1; i3 < t2.length - 1; i3 += 2) { - const a2 = e2.parse(t2[i3], i3, dt); - if (!a2) - return null; - const s2 = e2.parse(t2[i3 + 1], i3 + 1, r2); - if (!s2) - return null; - n2.push([a2, s2]), r2 = r2 || s2.type; - } - const i2 = e2.parse(t2[t2.length - 1], t2.length - 1, r2); - if (!i2) - return null; - if (!r2) - throw new Error("Can't infer output type"); - return new We(r2, n2, i2); + r2 = r2 || s2.type, i2.push(s2); } - evaluate(t2) { - for (const [e2, r2] of this.branches) - if (e2.evaluate(t2)) - return r2.evaluate(t2); - return this.otherwise.evaluate(t2); - } - eachChild(t2) { - for (const [e2, r2] of this.branches) - t2(e2), t2(r2); - t2(this.otherwise); - } - outputDefined() { - return this.branches.every(([t2, e2]) => e2.outputDefined()) && this.otherwise.outputDefined(); - } - } - class Qe { - constructor(t2, e2, r2, n2) { - this.type = t2, this.input = e2, this.beginIndex = r2, this.endIndex = n2; - } - static parse(t2, e2) { - if (t2.length <= 2 || t2.length >= 5) - return e2.error(`Expected 3 or 4 arguments, but found ${t2.length - 1} instead.`); - const r2 = e2.parse(t2[1], 1, gt), n2 = e2.parse(t2[2], 2, pt); - if (!r2 || !n2) + var u2 = n2 && i2.some(function(t3) { + return Yt(n2, t3.type); + }); + return new sr(u2 ? Nt : r2, i2); + }, sr.prototype.evaluate = function(t2) { + for (var e2, r2 = null, n2 = 0, i2 = 0, a2 = this.args; i2 < a2.length && (n2++, (r2 = a2[i2].evaluate(t2)) && r2 instanceof ie && !r2.available && (e2 || (e2 = r2.name), r2 = null, n2 === this.args.length && (r2 = e2)), null === r2); i2 += 1) + ; + return r2; + }, sr.prototype.eachChild = function(t2) { + this.args.forEach(t2); + }, sr.prototype.outputDefined = function() { + return this.args.every(function(t2) { + return t2.outputDefined(); + }); + }, sr.prototype.serialize = function() { + var t2 = ["coalesce"]; + return this.eachChild(function(e2) { + t2.push(e2.serialize()); + }), t2; + }; + var ur = function(t2, e2) { + this.type = e2.type, this.bindings = [].concat(t2), this.result = e2; + }; + ur.prototype.evaluate = function(t2) { + return this.result.evaluate(t2); + }, ur.prototype.eachChild = function(t2) { + for (var e2 = 0, r2 = this.bindings; e2 < r2.length; e2 += 1) + t2(r2[e2][1]); + t2(this.result); + }, ur.parse = function(t2, e2) { + if (t2.length < 4) + return e2.error("Expected at least 3 arguments, but found " + (t2.length - 1) + " instead."); + for (var r2 = [], n2 = 1; n2 < t2.length - 1; n2 += 2) { + var i2 = t2[n2]; + if ("string" != typeof i2) + return e2.error("Expected string, but found " + typeof i2 + " instead.", n2); + if (/[^a-zA-Z0-9_]/.test(i2)) + return e2.error("Variable names must contain only alphanumeric characters or '_'.", n2); + var a2 = e2.parse(t2[n2 + 1], n2 + 1); + if (!a2) return null; - if (!It(r2.type, [_t(gt), ft, gt])) - return e2.error(`Expected first argument to be of type array or string, but found ${At(r2.type)} instead`); - if (4 === t2.length) { - const i2 = e2.parse(t2[3], 3, pt); - return i2 ? new Qe(r2.type, r2, n2, i2) : null; - } - return new Qe(r2.type, r2, n2); + r2.push([i2, a2]); + } + var o2 = e2.parse(t2[t2.length - 1], t2.length - 1, e2.expectedType, r2); + return o2 ? new ur(r2, o2) : null; + }, ur.prototype.outputDefined = function() { + return this.result.outputDefined(); + }, ur.prototype.serialize = function() { + for (var t2 = ["let"], e2 = 0, r2 = this.bindings; e2 < r2.length; e2 += 1) { + var n2 = r2[e2]; + t2.push(n2[0], n2[1].serialize()); + } + return t2.push(this.result.serialize()), t2; + }; + var lr = function(t2, e2, r2) { + this.type = t2, this.index = e2, this.input = r2; + }; + lr.parse = function(t2, e2) { + if (3 !== t2.length) + return e2.error("Expected 2 arguments, but found " + (t2.length - 1) + " instead."); + var r2 = e2.parse(t2[1], 1, Ot), n2 = e2.parse(t2[2], 2, Xt(e2.expectedType || Nt)); + return r2 && n2 ? new lr(n2.type.itemType, r2, n2) : null; + }, lr.prototype.evaluate = function(t2) { + var e2 = this.index.evaluate(t2), r2 = this.input.evaluate(t2); + if (e2 < 0) + throw new pe("Array index out of bounds: " + e2 + " < 0."); + if (e2 >= r2.length) + throw new pe("Array index out of bounds: " + e2 + " > " + (r2.length - 1) + "."); + if (e2 !== Math.floor(e2)) + throw new pe("Array index must be an integer, but found " + e2 + " instead."); + return r2[e2]; + }, lr.prototype.eachChild = function(t2) { + t2(this.index), t2(this.input); + }, lr.prototype.outputDefined = function() { + return false; + }, lr.prototype.serialize = function() { + return ["at", this.index.serialize(), this.input.serialize()]; + }; + var pr = function(t2, e2) { + this.type = Ut, this.needle = t2, this.haystack = e2; + }; + pr.parse = function(t2, e2) { + if (3 !== t2.length) + return e2.error("Expected 2 arguments, but found " + (t2.length - 1) + " instead."); + var r2 = e2.parse(t2[1], 1, Nt), n2 = e2.parse(t2[2], 2, Nt); + return r2 && n2 ? $t(r2.type, [Ut, Rt, Ot, Lt, Nt]) ? new pr(r2, n2) : e2.error("Expected first argument to be of type boolean, string, number or null, but found " + Jt(r2.type) + " instead") : null; + }, pr.prototype.evaluate = function(t2) { + var e2 = this.needle.evaluate(t2), r2 = this.haystack.evaluate(t2); + if (!r2) + return false; + if (!Wt(e2, ["boolean", "string", "number", "null"])) + throw new pe("Expected first argument to be of type boolean, string, number or null, but found " + Jt(se(e2)) + " instead."); + if (!Wt(r2, ["string", "array"])) + throw new pe("Expected second argument to be of type array or string, but found " + Jt(se(r2)) + " instead."); + return r2.indexOf(e2) >= 0; + }, pr.prototype.eachChild = function(t2) { + t2(this.needle), t2(this.haystack); + }, pr.prototype.outputDefined = function() { + return true; + }, pr.prototype.serialize = function() { + return ["in", this.needle.serialize(), this.haystack.serialize()]; + }; + var cr = function(t2, e2, r2) { + this.type = Ot, this.needle = t2, this.haystack = e2, this.fromIndex = r2; + }; + cr.parse = function(t2, e2) { + if (t2.length <= 2 || t2.length >= 5) + return e2.error("Expected 3 or 4 arguments, but found " + (t2.length - 1) + " instead."); + var r2 = e2.parse(t2[1], 1, Nt), n2 = e2.parse(t2[2], 2, Nt); + if (!r2 || !n2) + return null; + if (!$t(r2.type, [Ut, Rt, Ot, Lt, Nt])) + return e2.error("Expected first argument to be of type boolean, string, number or null, but found " + Jt(r2.type) + " instead"); + if (4 === t2.length) { + var i2 = e2.parse(t2[3], 3, Ot); + return i2 ? new cr(r2, n2, i2) : null; + } + return new cr(r2, n2); + }, cr.prototype.evaluate = function(t2) { + var e2 = this.needle.evaluate(t2), r2 = this.haystack.evaluate(t2); + if (!Wt(e2, ["boolean", "string", "number", "null"])) + throw new pe("Expected first argument to be of type boolean, string, number or null, but found " + Jt(se(e2)) + " instead."); + if (!Wt(r2, ["string", "array"])) + throw new pe("Expected second argument to be of type array or string, but found " + Jt(se(r2)) + " instead."); + if (this.fromIndex) { + var n2 = this.fromIndex.evaluate(t2); + return r2.indexOf(e2, n2); + } + return r2.indexOf(e2); + }, cr.prototype.eachChild = function(t2) { + t2(this.needle), t2(this.haystack), this.fromIndex && t2(this.fromIndex); + }, cr.prototype.outputDefined = function() { + return false; + }, cr.prototype.serialize = function() { + if (null != this.fromIndex && void 0 !== this.fromIndex) { + var t2 = this.fromIndex.serialize(); + return ["index-of", this.needle.serialize(), this.haystack.serialize(), t2]; } - evaluate(t2) { - const e2 = this.input.evaluate(t2), r2 = this.beginIndex.evaluate(t2); - if (!Mt(e2, ["string", "array"])) - throw new Zt(`Expected first argument to be of type array or string, but found ${At(qt(e2))} instead.`); - if (this.endIndex) { - const n2 = this.endIndex.evaluate(t2); - return e2.slice(r2, n2); + return ["index-of", this.needle.serialize(), this.haystack.serialize()]; + }; + var hr = function(t2, e2, r2, n2, i2, a2) { + this.inputType = t2, this.type = e2, this.input = r2, this.cases = n2, this.outputs = i2, this.otherwise = a2; + }; + hr.parse = function(t2, e2) { + if (t2.length < 5) + return e2.error("Expected at least 4 arguments, but found only " + (t2.length - 1) + "."); + if (t2.length % 2 != 1) + return e2.error("Expected an even number of arguments."); + var r2, n2; + e2.expectedType && "value" !== e2.expectedType.kind && (n2 = e2.expectedType); + for (var i2 = {}, a2 = [], o2 = 2; o2 < t2.length - 1; o2 += 2) { + var s2 = t2[o2], u2 = t2[o2 + 1]; + Array.isArray(s2) || (s2 = [s2]); + var l2 = e2.concat(o2); + if (0 === s2.length) + return l2.error("Expected at least one branch label."); + for (var p3 = 0, c3 = s2; p3 < c3.length; p3 += 1) { + var h3 = c3[p3]; + if ("number" != typeof h3 && "string" != typeof h3) + return l2.error("Branch labels must be numbers or strings."); + if ("number" == typeof h3 && Math.abs(h3) > Number.MAX_SAFE_INTEGER) + return l2.error("Branch labels must be integers no larger than " + Number.MAX_SAFE_INTEGER + "."); + if ("number" == typeof h3 && Math.floor(h3) !== h3) + return l2.error("Numeric branch labels must be integer values."); + if (r2) { + if (l2.checkSubtype(r2, se(h3))) + return null; + } else + r2 = se(h3); + if (void 0 !== i2[String(h3)]) + return l2.error("Branch labels must be unique."); + i2[String(h3)] = a2.length; } - return e2.slice(r2); - } - eachChild(t2) { - t2(this.input), t2(this.beginIndex), this.endIndex && t2(this.endIndex); - } - outputDefined() { - return false; + var f2 = e2.parse(u2, o2, n2); + if (!f2) + return null; + n2 = n2 || f2.type, a2.push(f2); } - } - function tr(t2, e2) { + var y3 = e2.parse(t2[1], 1, Nt); + if (!y3) + return null; + var d2 = e2.parse(t2[t2.length - 1], t2.length - 1, n2); + return d2 ? "value" !== y3.type.kind && e2.concat(1).checkSubtype(r2, y3.type) ? null : new hr(r2, n2, y3, i2, a2, d2) : null; + }, hr.prototype.evaluate = function(t2) { + var e2 = this.input.evaluate(t2); + return (se(e2) === this.inputType && this.outputs[this.cases[e2]] || this.otherwise).evaluate(t2); + }, hr.prototype.eachChild = function(t2) { + t2(this.input), this.outputs.forEach(t2), t2(this.otherwise); + }, hr.prototype.outputDefined = function() { + return this.outputs.every(function(t2) { + return t2.outputDefined(); + }) && this.otherwise.outputDefined(); + }, hr.prototype.serialize = function() { + for (var t2 = this, e2 = ["match", this.input.serialize()], r2 = [], n2 = {}, i2 = 0, a2 = Object.keys(this.cases).sort(); i2 < a2.length; i2 += 1) { + var o2 = a2[i2]; + void 0 === (c3 = n2[this.cases[o2]]) ? (n2[this.cases[o2]] = r2.length, r2.push([this.cases[o2], [o2]])) : r2[c3][1].push(o2); + } + for (var s2 = function(e3) { + return "number" === t2.inputType.kind ? Number(e3) : e3; + }, u2 = 0, l2 = r2; u2 < l2.length; u2 += 1) { + var p3 = l2[u2], c3 = p3[0], h3 = p3[1]; + e2.push(1 === h3.length ? s2(h3[0]) : h3.map(s2)), e2.push(this.outputs[outputIndex$1].serialize()); + } + return e2.push(this.otherwise.serialize()), e2; + }; + var fr = function(t2, e2, r2) { + this.type = t2, this.branches = e2, this.otherwise = r2; + }; + fr.parse = function(t2, e2) { + if (t2.length < 4) + return e2.error("Expected at least 3 arguments, but found only " + (t2.length - 1) + "."); + if (t2.length % 2 != 0) + return e2.error("Expected an odd number of arguments."); + var r2; + e2.expectedType && "value" !== e2.expectedType.kind && (r2 = e2.expectedType); + for (var n2 = [], i2 = 1; i2 < t2.length - 1; i2 += 2) { + var a2 = e2.parse(t2[i2], i2, Ut); + if (!a2) + return null; + var o2 = e2.parse(t2[i2 + 1], i2 + 1, r2); + if (!o2) + return null; + n2.push([a2, o2]), r2 = r2 || o2.type; + } + var s2 = e2.parse(t2[t2.length - 1], t2.length - 1, r2); + return s2 ? new fr(r2, n2, s2) : null; + }, fr.prototype.evaluate = function(t2) { + for (var e2 = 0, r2 = this.branches; e2 < r2.length; e2 += 1) { + var n2 = r2[e2], i2 = n2[1]; + if (n2[0].evaluate(t2)) + return i2.evaluate(t2); + } + return this.otherwise.evaluate(t2); + }, fr.prototype.eachChild = function(t2) { + for (var e2 = 0, r2 = this.branches; e2 < r2.length; e2 += 1) { + var n2 = r2[e2], i2 = n2[1]; + t2(n2[0]), t2(i2); + } + t2(this.otherwise); + }, fr.prototype.outputDefined = function() { + return this.branches.every(function(t2) { + return t2[1].outputDefined(); + }) && this.otherwise.outputDefined(); + }, fr.prototype.serialize = function() { + var t2 = ["case"]; + return this.eachChild(function(e2) { + t2.push(e2.serialize()); + }), t2; + }; + var yr = function(t2, e2, r2, n2) { + this.type = t2, this.input = e2, this.beginIndex = r2, this.endIndex = n2; + }; + function dr(t2, e2) { return "==" === t2 || "!=" === t2 ? "boolean" === e2.kind || "string" === e2.kind || "number" === e2.kind || "null" === e2.kind || "value" === e2.kind : "string" === e2.kind || "number" === e2.kind || "value" === e2.kind; } - function er(t2, e2, r2, n2) { + function mr(t2, e2, r2, n2) { return 0 === n2.compare(e2, r2); } - function rr(t2, e2, r2) { - const n2 = "==" !== t2 && "!=" !== t2; - return class i2 { - constructor(t3, e3, r3) { - this.type = dt, this.lhs = t3, this.rhs = e3, this.collator = r3, this.hasUntypedArgument = "value" === t3.type.kind || "value" === e3.type.kind; + function vr(t2, e2, r2) { + var n2 = "==" !== t2 && "!=" !== t2; + return function() { + function i2(t3, e3, r3) { + this.type = Ut, this.lhs = t3, this.rhs = e3, this.collator = r3, this.hasUntypedArgument = "value" === t3.type.kind || "value" === e3.type.kind; } - static parse(t3, e3) { + return i2.parse = function(t3, e3) { if (3 !== t3.length && 4 !== t3.length) return e3.error("Expected two or three arguments."); - const r3 = t3[0]; - let a2 = e3.parse(t3[1], 1, gt); + var r3 = t3[0], a2 = e3.parse(t3[1], 1, Nt); if (!a2) return null; - if (!tr(r3, a2.type)) - return e3.concat(1).error(`"${r3}" comparisons are not supported for type '${At(a2.type)}'.`); - let s2 = e3.parse(t3[2], 2, gt); - if (!s2) + if (!dr(r3, a2.type)) + return e3.concat(1).error('"' + r3 + `" comparisons are not supported for type '` + Jt(a2.type) + "'."); + var o2 = e3.parse(t3[2], 2, Nt); + if (!o2) return null; - if (!tr(r3, s2.type)) - return e3.concat(2).error(`"${r3}" comparisons are not supported for type '${At(s2.type)}'.`); - if (a2.type.kind !== s2.type.kind && "value" !== a2.type.kind && "value" !== s2.type.kind) - return e3.error(`Cannot compare types '${At(a2.type)}' and '${At(s2.type)}'.`); - n2 && ("value" === a2.type.kind && "value" !== s2.type.kind ? a2 = new Gt(s2.type, [a2]) : "value" !== a2.type.kind && "value" === s2.type.kind && (s2 = new Gt(a2.type, [s2]))); - let o2 = null; + if (!dr(r3, o2.type)) + return e3.concat(2).error('"' + r3 + `" comparisons are not supported for type '` + Jt(o2.type) + "'."); + if (a2.type.kind !== o2.type.kind && "value" !== a2.type.kind && "value" !== o2.type.kind) + return e3.error("Cannot compare types '" + Jt(a2.type) + "' and '" + Jt(o2.type) + "'."); + n2 && ("value" === a2.type.kind && "value" !== o2.type.kind ? a2 = new he(o2.type, [a2]) : "value" !== a2.type.kind && "value" === o2.type.kind && (o2 = new he(a2.type, [o2]))); + var s2 = null; if (4 === t3.length) { - if ("string" !== a2.type.kind && "string" !== s2.type.kind && "value" !== a2.type.kind && "value" !== s2.type.kind) + if ("string" !== a2.type.kind && "string" !== o2.type.kind && "value" !== a2.type.kind && "value" !== o2.type.kind) return e3.error("Cannot use collator to compare non-string types."); - if (o2 = e3.parse(t3[3], 3, xt), !o2) + if (!(s2 = e3.parse(t3[3], 3, Kt))) return null; } - return new i2(a2, s2, o2); - } - evaluate(i3) { - const a2 = this.lhs.evaluate(i3), s2 = this.rhs.evaluate(i3); + return new i2(a2, o2, s2); + }, i2.prototype.evaluate = function(i3) { + var a2 = this.lhs.evaluate(i3), o2 = this.rhs.evaluate(i3); if (n2 && this.hasUntypedArgument) { - const e3 = qt(a2), r3 = qt(s2); - if (e3.kind !== r3.kind || "string" !== e3.kind && "number" !== e3.kind) - throw new Zt(`Expected arguments for "${t2}" to be (string, string) or (number, number), but found (${e3.kind}, ${r3.kind}) instead.`); + var s2 = se(a2), u2 = se(o2); + if (s2.kind !== u2.kind || "string" !== s2.kind && "number" !== s2.kind) + throw new pe('Expected arguments for "' + t2 + '" to be (string, string) or (number, number), but found (' + s2.kind + ", " + u2.kind + ") instead."); } if (this.collator && !n2 && this.hasUntypedArgument) { - const t3 = qt(a2), r3 = qt(s2); - if ("string" !== t3.kind || "string" !== r3.kind) - return e2(i3, a2, s2); + var l2 = se(a2), p3 = se(o2); + if ("string" !== l2.kind || "string" !== p3.kind) + return e2(i3, a2, o2); } - return this.collator ? r2(i3, a2, s2, this.collator.evaluate(i3)) : e2(i3, a2, s2); - } - eachChild(t3) { + return this.collator ? r2(i3, a2, o2, this.collator.evaluate(i3)) : e2(i3, a2, o2); + }, i2.prototype.eachChild = function(t3) { t3(this.lhs), t3(this.rhs), this.collator && t3(this.collator); - } - outputDefined() { + }, i2.prototype.outputDefined = function() { return true; - } - }; - } - const nr = rr("==", function(t2, e2, r2) { + }, i2.prototype.serialize = function() { + var e3 = [t2]; + return this.eachChild(function(t3) { + e3.push(t3.serialize()); + }), e3; + }, i2; + }(); + } + yr.parse = function(t2, e2) { + if (t2.length <= 2 || t2.length >= 5) + return e2.error("Expected 3 or 4 arguments, but found " + (t2.length - 1) + " instead."); + var r2 = e2.parse(t2[1], 1, Nt), n2 = e2.parse(t2[2], 2, Ot); + if (!r2 || !n2) + return null; + if (!$t(r2.type, [Xt(Nt), Rt, Nt])) + return e2.error("Expected first argument to be of type array or string, but found " + Jt(r2.type) + " instead"); + if (4 === t2.length) { + var i2 = e2.parse(t2[3], 3, Ot); + return i2 ? new yr(r2.type, r2, n2, i2) : null; + } + return new yr(r2.type, r2, n2); + }, yr.prototype.evaluate = function(t2) { + var e2 = this.input.evaluate(t2), r2 = this.beginIndex.evaluate(t2); + if (!Wt(e2, ["string", "array"])) + throw new pe("Expected first argument to be of type array or string, but found " + Jt(se(e2)) + " instead."); + if (this.endIndex) { + var n2 = this.endIndex.evaluate(t2); + return e2.slice(r2, n2); + } + return e2.slice(r2); + }, yr.prototype.eachChild = function(t2) { + t2(this.input), t2(this.beginIndex), this.endIndex && t2(this.endIndex); + }, yr.prototype.outputDefined = function() { + return false; + }, yr.prototype.serialize = function() { + if (null != this.endIndex && void 0 !== this.endIndex) { + var t2 = this.endIndex.serialize(); + return ["slice", this.input.serialize(), this.beginIndex.serialize(), t2]; + } + return ["slice", this.input.serialize(), this.beginIndex.serialize()]; + }; + var gr = vr("==", function(t2, e2, r2) { return e2 === r2; - }, er), ir = rr("!=", function(t2, e2, r2) { + }, mr), xr = vr("!=", function(t2, e2, r2) { return e2 !== r2; }, function(t2, e2, r2, n2) { - return !er(0, e2, r2, n2); - }), ar = rr("<", function(t2, e2, r2) { + return !mr(0, e2, r2, n2); + }), br = vr("<", function(t2, e2, r2) { return e2 < r2; }, function(t2, e2, r2, n2) { return n2.compare(e2, r2) < 0; - }), sr = rr(">", function(t2, e2, r2) { + }), wr = vr(">", function(t2, e2, r2) { return e2 > r2; }, function(t2, e2, r2, n2) { return n2.compare(e2, r2) > 0; - }), or = rr("<=", function(t2, e2, r2) { + }), _r = vr("<=", function(t2, e2, r2) { return e2 <= r2; }, function(t2, e2, r2, n2) { return n2.compare(e2, r2) <= 0; - }), lr = rr(">=", function(t2, e2, r2) { + }), Ar = vr(">=", function(t2, e2, r2) { return e2 >= r2; }, function(t2, e2, r2, n2) { return n2.compare(e2, r2) >= 0; - }); - class ur { - constructor(t2, e2, r2, n2, i2) { - this.type = ft, this.number = t2, this.locale = e2, this.currency = r2, this.minFractionDigits = n2, this.maxFractionDigits = i2; - } - static parse(t2, e2) { - if (3 !== t2.length) - return e2.error("Expected two arguments."); - const r2 = e2.parse(t2[1], 1, pt); - if (!r2) - return null; - const n2 = t2[2]; - if ("object" != typeof n2 || Array.isArray(n2)) - return e2.error("NumberFormat options argument must be an object."); - let i2 = null; - if (n2.locale && (i2 = e2.parse(n2.locale, 1, ft), !i2)) - return null; - let a2 = null; - if (n2.currency && (a2 = e2.parse(n2.currency, 1, ft), !a2)) - return null; - let s2 = null; - if (n2["min-fraction-digits"] && (s2 = e2.parse(n2["min-fraction-digits"], 1, pt), !s2)) - return null; - let o2 = null; - return n2["max-fraction-digits"] && (o2 = e2.parse(n2["max-fraction-digits"], 1, pt), !o2) ? null : new ur(r2, i2, a2, s2, o2); - } - evaluate(t2) { - return new Intl.NumberFormat(this.locale ? this.locale.evaluate(t2) : [], { style: this.currency ? "currency" : "decimal", currency: this.currency ? this.currency.evaluate(t2) : void 0, minimumFractionDigits: this.minFractionDigits ? this.minFractionDigits.evaluate(t2) : void 0, maximumFractionDigits: this.maxFractionDigits ? this.maxFractionDigits.evaluate(t2) : void 0 }).format(this.number.evaluate(t2)); - } - eachChild(t2) { - t2(this.number), this.locale && t2(this.locale), this.currency && t2(this.currency), this.minFractionDigits && t2(this.minFractionDigits), this.maxFractionDigits && t2(this.maxFractionDigits); - } - outputDefined() { - return false; - } - } - class cr { - constructor(t2) { - this.type = vt, this.sections = t2; - } - static parse(t2, e2) { - if (t2.length < 2) - return e2.error("Expected at least one argument."); - const r2 = t2[1]; - if (!Array.isArray(r2) && "object" == typeof r2) - return e2.error("First argument must be an image or text section."); - const n2 = []; - let i2 = false; - for (let r3 = 1; r3 <= t2.length - 1; ++r3) { - const a2 = t2[r3]; - if (i2 && "object" == typeof a2 && !Array.isArray(a2)) { - i2 = false; - let t3 = null; - if (a2["font-scale"] && (t3 = e2.parse(a2["font-scale"], 1, pt), !t3)) - return null; - let r4 = null; - if (a2["text-font"] && (r4 = e2.parse(a2["text-font"], 1, _t(ft)), !r4)) - return null; - let s2 = null; - if (a2["text-color"] && (s2 = e2.parse(a2["text-color"], 1, yt), !s2)) - return null; - const o2 = n2[n2.length - 1]; - o2.scale = t3, o2.font = r4, o2.textColor = s2; - } else { - const a3 = e2.parse(t2[r3], 1, gt); - if (!a3) - return null; - const s2 = a3.type.kind; - if ("string" !== s2 && "value" !== s2 && "null" !== s2 && "resolvedImage" !== s2) - return e2.error("Formatted text type must be 'string', 'value', 'image' or 'null'."); - i2 = true, n2.push({ content: a3, scale: null, font: null, textColor: null }); - } - } - return new cr(n2); - } - evaluate(t2) { - return new Dt(this.sections.map((e2) => { - const r2 = e2.content.evaluate(t2); - return qt(r2) === wt ? new Lt("", r2, null, null, null) : new Lt(jt(r2), null, e2.scale ? e2.scale.evaluate(t2) : null, e2.font ? e2.font.evaluate(t2).join(",") : null, e2.textColor ? e2.textColor.evaluate(t2) : null); - })); - } - eachChild(t2) { - for (const e2 of this.sections) - t2(e2.content), e2.scale && t2(e2.scale), e2.font && t2(e2.font), e2.textColor && t2(e2.textColor); - } - outputDefined() { - return false; - } - } - class hr { - constructor(t2) { - this.type = wt, this.input = t2; - } - static parse(t2, e2) { - if (2 !== t2.length) - return e2.error("Expected two arguments."); - const r2 = e2.parse(t2[1], 1, ft); - return r2 ? new hr(r2) : e2.error("No image name provided."); - } - evaluate(t2) { - const e2 = this.input.evaluate(t2), r2 = Rt.fromString(e2); - return r2 && t2.availableImages && (r2.available = t2.availableImages.indexOf(e2) > -1), r2; - } - eachChild(t2) { - t2(this.input); - } - outputDefined() { - return false; - } - } - class pr { - constructor(t2) { - this.type = pt, this.input = t2; - } - static parse(t2, e2) { - if (2 !== t2.length) - return e2.error(`Expected 1 argument, but found ${t2.length - 1} instead.`); - const r2 = e2.parse(t2[1], 1); - return r2 ? "array" !== r2.type.kind && "string" !== r2.type.kind && "value" !== r2.type.kind ? e2.error(`Expected argument of type string or array, but found ${At(r2.type)} instead.`) : new pr(r2) : null; - } - evaluate(t2) { - const e2 = this.input.evaluate(t2); - if ("string" == typeof e2) - return e2.length; - if (Array.isArray(e2)) - return e2.length; - throw new Zt(`Expected value to be of type string or array, but found ${At(qt(e2))} instead.`); - } - eachChild(t2) { - t2(this.input); - } - outputDefined() { - return false; - } - } - const fr = { "==": nr, "!=": ir, ">": sr, "<": ar, ">=": lr, "<=": or, array: Gt, at: Je, boolean: Gt, case: We, coalesce: Ke, collator: Qt, format: cr, image: hr, in: Xe, "index-of": Ye, interpolate: Ne, "interpolate-hcl": Ne, "interpolate-lab": Ne, length: pr, let: Ge, literal: Nt, match: He, number: Gt, "number-format": ur, object: Gt, slice: Qe, step: ke, string: Gt, "to-boolean": Xt, "to-color": Xt, "to-number": Xt, "to-string": Xt, var: be, within: me }; - function dr(t2, [e2, r2, n2, i2]) { - e2 = e2.evaluate(t2), r2 = r2.evaluate(t2), n2 = n2.evaluate(t2); - const a2 = i2 ? i2.evaluate(t2) : 1, s2 = Ot(e2, r2, n2, a2); + }), Sr = function(t2, e2, r2, n2, i2) { + this.type = Rt, this.number = t2, this.locale = e2, this.currency = r2, this.minFractionDigits = n2, this.maxFractionDigits = i2; + }; + Sr.parse = function(t2, e2) { + if (3 !== t2.length) + return e2.error("Expected two arguments."); + var r2 = e2.parse(t2[1], 1, Ot); + if (!r2) + return null; + var n2 = t2[2]; + if ("object" != typeof n2 || Array.isArray(n2)) + return e2.error("NumberFormat options argument must be an object."); + var i2 = null; + if (n2.locale && !(i2 = e2.parse(n2.locale, 1, Rt))) + return null; + var a2 = null; + if (n2.currency && !(a2 = e2.parse(n2.currency, 1, Rt))) + return null; + var o2 = null; + if (n2["min-fraction-digits"] && !(o2 = e2.parse(n2["min-fraction-digits"], 1, Ot))) + return null; + var s2 = null; + return n2["max-fraction-digits"] && !(s2 = e2.parse(n2["max-fraction-digits"], 1, Ot)) ? null : new Sr(r2, i2, a2, o2, s2); + }, Sr.prototype.evaluate = function(t2) { + return new Intl.NumberFormat(this.locale ? this.locale.evaluate(t2) : [], { style: this.currency ? "currency" : "decimal", currency: this.currency ? this.currency.evaluate(t2) : void 0, minimumFractionDigits: this.minFractionDigits ? this.minFractionDigits.evaluate(t2) : void 0, maximumFractionDigits: this.maxFractionDigits ? this.maxFractionDigits.evaluate(t2) : void 0 }).format(this.number.evaluate(t2)); + }, Sr.prototype.eachChild = function(t2) { + t2(this.number), this.locale && t2(this.locale), this.currency && t2(this.currency), this.minFractionDigits && t2(this.minFractionDigits), this.maxFractionDigits && t2(this.maxFractionDigits); + }, Sr.prototype.outputDefined = function() { + return false; + }, Sr.prototype.serialize = function() { + var t2 = {}; + return this.locale && (t2.locale = this.locale.serialize()), this.currency && (t2.currency = this.currency.serialize()), this.minFractionDigits && (t2["min-fraction-digits"] = this.minFractionDigits.serialize()), this.maxFractionDigits && (t2["max-fraction-digits"] = this.maxFractionDigits.serialize()), ["number-format", this.number.serialize(), t2]; + }; + var kr = function(t2) { + this.type = Ot, this.input = t2; + }; + kr.parse = function(t2, e2) { + if (2 !== t2.length) + return e2.error("Expected 1 argument, but found " + (t2.length - 1) + " instead."); + var r2 = e2.parse(t2[1], 1); + return r2 ? "array" !== r2.type.kind && "string" !== r2.type.kind && "value" !== r2.type.kind ? e2.error("Expected argument of type string or array, but found " + Jt(r2.type) + " instead.") : new kr(r2) : null; + }, kr.prototype.evaluate = function(t2) { + var e2 = this.input.evaluate(t2); + if ("string" == typeof e2) + return e2.length; + if (Array.isArray(e2)) + return e2.length; + throw new pe("Expected value to be of type string or array, but found " + Jt(se(e2)) + " instead."); + }, kr.prototype.eachChild = function(t2) { + t2(this.input); + }, kr.prototype.outputDefined = function() { + return false; + }, kr.prototype.serialize = function() { + var t2 = ["length"]; + return this.eachChild(function(e2) { + t2.push(e2.serialize()); + }), t2; + }; + var Ir = { "==": gr, "!=": xr, ">": wr, "<": br, ">=": Ar, "<=": _r, array: he, at: lr, boolean: he, case: fr, coalesce: sr, collator: be, format: fe, image: ye, in: pr, "index-of": cr, interpolate: ar, "interpolate-hcl": ar, "interpolate-lab": ar, length: kr, let: ur, literal: le, match: hr, number: he, "number-format": Sr, object: he, slice: yr, step: Ne, string: he, "to-boolean": me, "to-color": me, "to-number": me, "to-string": me, var: Ue, within: De }; + function zr(t2, e2) { + var r2 = e2[0], n2 = e2[1], i2 = e2[2], a2 = e2[3]; + r2 = r2.evaluate(t2), n2 = n2.evaluate(t2), i2 = i2.evaluate(t2); + var o2 = a2 ? a2.evaluate(t2) : 1, s2 = ae(r2, n2, i2, o2); if (s2) - throw new Zt(s2); - return new Ft(e2 / 255 * a2, r2 / 255 * a2, n2 / 255 * a2, a2); + throw new pe(s2); + return new te(r2 / 255 * o2, n2 / 255 * o2, i2 / 255 * o2, o2); } - function yr(t2, e2) { + function Cr(t2, e2) { return t2 in e2; } - function mr(t2, e2) { - const r2 = e2[t2]; + function Er(t2, e2) { + var r2 = e2[t2]; return void 0 === r2 ? null : r2; } - function gr(t2) { + function Pr(t2) { return { type: t2 }; } - function xr(t2) { + function Mr(t2) { return { result: "success", value: t2 }; } - function vr(t2) { + function Br(t2) { return { result: "error", value: t2 }; } - function br(t2) { + function Tr(t2) { return "data-driven" === t2["property-type"] || "cross-faded-data-driven" === t2["property-type"]; } - function wr(t2) { + function Vr(t2) { return !!t2.expression && t2.expression.parameters.indexOf("zoom") > -1; } - function _r(t2) { + function Fr(t2) { return !!t2.expression && t2.expression.interpolated; } - function Ar(t2) { + function Dr(t2) { return t2 instanceof Number ? "number" : t2 instanceof String ? "string" : t2 instanceof Boolean ? "boolean" : Array.isArray(t2) ? "array" : null === t2 ? "null" : typeof t2; } - function kr(t2) { + function Lr(t2) { return "object" == typeof t2 && null !== t2 && !Array.isArray(t2); } - function Sr(t2) { + function Or(t2) { return t2; } - function Ir(t2, e2) { - const r2 = "color" === e2.type, n2 = t2.stops && "object" == typeof t2.stops[0][0], i2 = n2 || !(n2 || void 0 !== t2.property), a2 = t2.type || (_r(e2) ? "exponential" : "interval"); - if (r2 || "padding" === e2.type) { - const n3 = r2 ? Ft.parse : $t.parse; - (t2 = st({}, t2)).stops && (t2.stops = t2.stops.map((t3) => [t3[0], n3(t3[1])])), t2.default = n3(t2.default ? t2.default : e2.default); - } - if (t2.colorSpace && "rgb" !== t2.colorSpace && !je[t2.colorSpace]) - throw new Error(`Unknown color space: ${t2.colorSpace}`); - let s2, o2, l2; - if ("exponential" === a2) - s2 = Cr; - else if ("interval" === a2) - s2 = Br; - else if ("categorical" === a2) { - s2 = zr, o2 = /* @__PURE__ */ Object.create(null); - for (const e3 of t2.stops) - o2[e3[0]] = e3[1]; - l2 = typeof t2.stops[0][0]; - } else { - if ("identity" !== a2) - throw new Error(`Unknown function type "${a2}"`); - s2 = Pr; - } - if (n2) { - const r3 = {}, n3 = []; - for (let e3 = 0; e3 < t2.stops.length; e3++) { - const i4 = t2.stops[e3], a4 = i4[0].zoom; - void 0 === r3[a4] && (r3[a4] = { zoom: a4, type: t2.type, property: t2.property, default: t2.default, stops: [] }, n3.push(a4)), r3[a4].stops.push([i4[0].value, i4[1]]); - } - const i3 = []; - for (const t3 of n3) - i3.push([r3[t3].zoom, Ir(r3[t3], e2)]); - const a3 = { name: "linear" }; - return { kind: "composite", interpolationType: a3, interpolationFactor: Ne.interpolationFactor.bind(void 0, a3), zoomStops: i3.map((t3) => t3[0]), evaluate: ({ zoom: r4 }, n4) => Cr({ stops: i3, base: t2.base }, e2, r4).evaluate(r4, n4) }; - } - if (i2) { - const r3 = "exponential" === a2 ? { name: "exponential", base: void 0 !== t2.base ? t2.base : 1 } : null; - return { kind: "camera", interpolationType: r3, interpolationFactor: Ne.interpolationFactor.bind(void 0, r3), zoomStops: t2.stops.map((t3) => t3[0]), evaluate: ({ zoom: r4 }) => s2(t2, e2, r4, o2, l2) }; - } - return { kind: "source", evaluate(r3, n3) { - const i3 = n3 && n3.properties ? n3.properties[t2.property] : void 0; - return void 0 === i3 ? Mr(t2.default, e2.default) : s2(t2, e2, i3, o2, l2); - } }; - } - function Mr(t2, e2, r2) { + function Rr(t2, e2, r2) { return void 0 !== t2 ? t2 : void 0 !== e2 ? e2 : void 0 !== r2 ? r2 : void 0; } - function zr(t2, e2, r2, n2, i2) { - return Mr(typeof r2 === i2 ? n2[r2] : void 0, t2.default, e2.default); + function Ur(t2, e2, r2, n2, i2) { + return Rr(typeof r2 === i2 ? n2[r2] : void 0, t2.default, e2.default); } - function Br(t2, e2, r2) { - if ("number" !== Ar(r2)) - return Mr(t2.default, e2.default); - const n2 = t2.stops.length; + function jr(t2, e2, r2) { + if ("number" !== Dr(r2)) + return Rr(t2.default, e2.default); + var n2 = t2.stops.length; if (1 === n2) return t2.stops[0][1]; if (r2 <= t2.stops[0][0]) return t2.stops[0][1]; if (r2 >= t2.stops[n2 - 1][0]) return t2.stops[n2 - 1][1]; - const i2 = Ae(t2.stops.map((t3) => t3[0]), r2); + var i2 = qe(t2.stops.map(function(t3) { + return t3[0]; + }), r2); return t2.stops[i2][1]; } - function Cr(t2, e2, r2) { - const n2 = void 0 !== t2.base ? t2.base : 1; - if ("number" !== Ar(r2)) - return Mr(t2.default, e2.default); - const i2 = t2.stops.length; + function qr(t2, e2, r2) { + var n2 = void 0 !== t2.base ? t2.base : 1; + if ("number" !== Dr(r2)) + return Rr(t2.default, e2.default); + var i2 = t2.stops.length; if (1 === i2) return t2.stops[0][1]; if (r2 <= t2.stops[0][0]) return t2.stops[0][1]; if (r2 >= t2.stops[i2 - 1][0]) return t2.stops[i2 - 1][1]; - const a2 = Ae(t2.stops.map((t3) => t3[0]), r2), s2 = function(t3, e3, r3, n3) { - const i3 = n3 - r3, a3 = t3 - r3; + var a2 = qe(t2.stops.map(function(t3) { + return t3[0]; + }), r2), o2 = function(t3, e3, r3, n3) { + var i3 = n3 - r3, a3 = t3 - r3; return 0 === i3 ? 0 : 1 === e3 ? a3 / i3 : (Math.pow(e3, a3) - 1) / (Math.pow(e3, i3) - 1); - }(r2, n2, t2.stops[a2][0], t2.stops[a2 + 1][0]), o2 = t2.stops[a2][1], l2 = t2.stops[a2 + 1][1]; - let u2 = Ie[e2.type] || Sr; + }(r2, n2, t2.stops[a2][0], t2.stops[a2 + 1][0]), s2 = t2.stops[a2][1], u2 = t2.stops[a2 + 1][1], l2 = Ge[e2.type] || Or; if (t2.colorSpace && "rgb" !== t2.colorSpace) { - const e3 = je[t2.colorSpace]; - u2 = (t3, r3) => e3.reverse(e3.interpolate(e3.forward(t3), e3.forward(r3), s2)); - } - return "function" == typeof o2.evaluate ? { evaluate(...t3) { - const e3 = o2.evaluate.apply(void 0, t3), r3 = l2.evaluate.apply(void 0, t3); - if (void 0 !== e3 && void 0 !== r3) - return u2(e3, r3, s2); - } } : u2(o2, l2, s2); - } - function Pr(t2, e2, r2) { - switch (e2.type) { - case "color": - r2 = Ft.parse(r2); - break; - case "formatted": - r2 = Dt.fromString(r2.toString()); - break; - case "resolvedImage": - r2 = Rt.fromString(r2.toString()); - break; - case "padding": - r2 = $t.parse(r2); - break; - default: - Ar(r2) === e2.type || "enum" === e2.type && e2.values[r2] || (r2 = void 0); + var p3 = ir[t2.colorSpace]; + l2 = function(t3, e3) { + return p3.reverse(p3.interpolate(p3.forward(t3), p3.forward(e3), o2)); + }; } - return Mr(r2, t2.default, e2.default); - } - Wt.register(fr, { error: [{ kind: "error" }, [ft], (t2, [e2]) => { - throw new Zt(e2.evaluate(t2)); - }], typeof: [ft, [gt], (t2, [e2]) => At(qt(e2.evaluate(t2)))], "to-rgba": [_t(pt, 4), [yt], (t2, [e2]) => e2.evaluate(t2).toArray()], rgb: [yt, [pt, pt, pt], dr], rgba: [yt, [pt, pt, pt, pt], dr], has: { type: dt, overloads: [[[ft], (t2, [e2]) => yr(e2.evaluate(t2), t2.properties())], [[ft, mt], (t2, [e2, r2]) => yr(e2.evaluate(t2), r2.evaluate(t2))]] }, get: { type: gt, overloads: [[[ft], (t2, [e2]) => mr(e2.evaluate(t2), t2.properties())], [[ft, mt], (t2, [e2, r2]) => mr(e2.evaluate(t2), r2.evaluate(t2))]] }, "feature-state": [gt, [ft], (t2, [e2]) => mr(e2.evaluate(t2), t2.featureState || {})], properties: [mt, [], (t2) => t2.properties()], "geometry-type": [ft, [], (t2) => t2.geometryType()], id: [gt, [], (t2) => t2.id()], zoom: [pt, [], (t2) => t2.globals.zoom], "heatmap-density": [pt, [], (t2) => t2.globals.heatmapDensity || 0], "line-progress": [pt, [], (t2) => t2.globals.lineProgress || 0], accumulated: [gt, [], (t2) => void 0 === t2.globals.accumulated ? null : t2.globals.accumulated], "+": [pt, gr(pt), (t2, e2) => { - let r2 = 0; - for (const n2 of e2) - r2 += n2.evaluate(t2); + return "function" == typeof s2.evaluate ? { evaluate: function() { + for (var t3 = [], e3 = arguments.length; e3--; ) + t3[e3] = arguments[e3]; + var r3 = s2.evaluate.apply(void 0, t3), n3 = u2.evaluate.apply(void 0, t3); + if (void 0 !== r3 && void 0 !== n3) + return l2(r3, n3, o2); + } } : l2(s2, u2, o2); + } + function Nr(t2, e2, r2) { + return "color" === e2.type ? r2 = te.parse(r2) : "formatted" === e2.type ? r2 = ne.fromString(r2.toString()) : "resolvedImage" === e2.type ? r2 = ie.fromString(r2.toString()) : Dr(r2) === e2.type || "enum" === e2.type && e2.values[r2] || (r2 = void 0), Rr(r2, t2.default, e2.default); + } + xe.register(Ir, { error: [{ kind: "error" }, [Rt], function(t2, e2) { + throw new pe(e2[0].evaluate(t2)); + }], typeof: [Rt, [Nt], function(t2, e2) { + return Jt(se(e2[0].evaluate(t2))); + }], "to-rgba": [Xt(Ot, 4), [jt], function(t2, e2) { + return e2[0].evaluate(t2).toArray(); + }], rgb: [jt, [Ot, Ot, Ot], zr], rgba: [jt, [Ot, Ot, Ot, Ot], zr], has: { type: Ut, overloads: [[[Rt], function(t2, e2) { + return Cr(e2[0].evaluate(t2), t2.properties()); + }], [[Rt, qt], function(t2, e2) { + var r2 = e2[1]; + return Cr(e2[0].evaluate(t2), r2.evaluate(t2)); + }]] }, get: { type: Nt, overloads: [[[Rt], function(t2, e2) { + return Er(e2[0].evaluate(t2), t2.properties()); + }], [[Rt, qt], function(t2, e2) { + var r2 = e2[1]; + return Er(e2[0].evaluate(t2), r2.evaluate(t2)); + }]] }, "feature-state": [Nt, [Rt], function(t2, e2) { + return Er(e2[0].evaluate(t2), t2.featureState || {}); + }], properties: [qt, [], function(t2) { + return t2.properties(); + }], "geometry-type": [Rt, [], function(t2) { + return t2.geometryType(); + }], id: [Nt, [], function(t2) { + return t2.id(); + }], zoom: [Ot, [], function(t2) { + return t2.globals.zoom; + }], "heatmap-density": [Ot, [], function(t2) { + return t2.globals.heatmapDensity || 0; + }], "line-progress": [Ot, [], function(t2) { + return t2.globals.lineProgress || 0; + }], accumulated: [Nt, [], function(t2) { + return void 0 === t2.globals.accumulated ? null : t2.globals.accumulated; + }], "+": [Ot, Pr(Ot), function(t2, e2) { + for (var r2 = 0, n2 = 0, i2 = e2; n2 < i2.length; n2 += 1) + r2 += i2[n2].evaluate(t2); return r2; - }], "*": [pt, gr(pt), (t2, e2) => { - let r2 = 1; - for (const n2 of e2) - r2 *= n2.evaluate(t2); + }], "*": [Ot, Pr(Ot), function(t2, e2) { + for (var r2 = 1, n2 = 0, i2 = e2; n2 < i2.length; n2 += 1) + r2 *= i2[n2].evaluate(t2); return r2; - }], "-": { type: pt, overloads: [[[pt, pt], (t2, [e2, r2]) => e2.evaluate(t2) - r2.evaluate(t2)], [[pt], (t2, [e2]) => -e2.evaluate(t2)]] }, "/": [pt, [pt, pt], (t2, [e2, r2]) => e2.evaluate(t2) / r2.evaluate(t2)], "%": [pt, [pt, pt], (t2, [e2, r2]) => e2.evaluate(t2) % r2.evaluate(t2)], ln2: [pt, [], () => Math.LN2], pi: [pt, [], () => Math.PI], e: [pt, [], () => Math.E], "^": [pt, [pt, pt], (t2, [e2, r2]) => Math.pow(e2.evaluate(t2), r2.evaluate(t2))], sqrt: [pt, [pt], (t2, [e2]) => Math.sqrt(e2.evaluate(t2))], log10: [pt, [pt], (t2, [e2]) => Math.log(e2.evaluate(t2)) / Math.LN10], ln: [pt, [pt], (t2, [e2]) => Math.log(e2.evaluate(t2))], log2: [pt, [pt], (t2, [e2]) => Math.log(e2.evaluate(t2)) / Math.LN2], sin: [pt, [pt], (t2, [e2]) => Math.sin(e2.evaluate(t2))], cos: [pt, [pt], (t2, [e2]) => Math.cos(e2.evaluate(t2))], tan: [pt, [pt], (t2, [e2]) => Math.tan(e2.evaluate(t2))], asin: [pt, [pt], (t2, [e2]) => Math.asin(e2.evaluate(t2))], acos: [pt, [pt], (t2, [e2]) => Math.acos(e2.evaluate(t2))], atan: [pt, [pt], (t2, [e2]) => Math.atan(e2.evaluate(t2))], min: [pt, gr(pt), (t2, e2) => Math.min(...e2.map((e3) => e3.evaluate(t2)))], max: [pt, gr(pt), (t2, e2) => Math.max(...e2.map((e3) => e3.evaluate(t2)))], abs: [pt, [pt], (t2, [e2]) => Math.abs(e2.evaluate(t2))], round: [pt, [pt], (t2, [e2]) => { - const r2 = e2.evaluate(t2); + }], "-": { type: Ot, overloads: [[[Ot, Ot], function(t2, e2) { + var r2 = e2[1]; + return e2[0].evaluate(t2) - r2.evaluate(t2); + }], [[Ot], function(t2, e2) { + return -e2[0].evaluate(t2); + }]] }, "/": [Ot, [Ot, Ot], function(t2, e2) { + var r2 = e2[1]; + return e2[0].evaluate(t2) / r2.evaluate(t2); + }], "%": [Ot, [Ot, Ot], function(t2, e2) { + var r2 = e2[1]; + return e2[0].evaluate(t2) % r2.evaluate(t2); + }], ln2: [Ot, [], function() { + return Math.LN2; + }], pi: [Ot, [], function() { + return Math.PI; + }], e: [Ot, [], function() { + return Math.E; + }], "^": [Ot, [Ot, Ot], function(t2, e2) { + var r2 = e2[1]; + return Math.pow(e2[0].evaluate(t2), r2.evaluate(t2)); + }], sqrt: [Ot, [Ot], function(t2, e2) { + return Math.sqrt(e2[0].evaluate(t2)); + }], log10: [Ot, [Ot], function(t2, e2) { + return Math.log(e2[0].evaluate(t2)) / Math.LN10; + }], ln: [Ot, [Ot], function(t2, e2) { + return Math.log(e2[0].evaluate(t2)); + }], log2: [Ot, [Ot], function(t2, e2) { + return Math.log(e2[0].evaluate(t2)) / Math.LN2; + }], sin: [Ot, [Ot], function(t2, e2) { + return Math.sin(e2[0].evaluate(t2)); + }], cos: [Ot, [Ot], function(t2, e2) { + return Math.cos(e2[0].evaluate(t2)); + }], tan: [Ot, [Ot], function(t2, e2) { + return Math.tan(e2[0].evaluate(t2)); + }], asin: [Ot, [Ot], function(t2, e2) { + return Math.asin(e2[0].evaluate(t2)); + }], acos: [Ot, [Ot], function(t2, e2) { + return Math.acos(e2[0].evaluate(t2)); + }], atan: [Ot, [Ot], function(t2, e2) { + return Math.atan(e2[0].evaluate(t2)); + }], min: [Ot, Pr(Ot), function(t2, e2) { + return Math.min.apply(Math, e2.map(function(e3) { + return e3.evaluate(t2); + })); + }], max: [Ot, Pr(Ot), function(t2, e2) { + return Math.max.apply(Math, e2.map(function(e3) { + return e3.evaluate(t2); + })); + }], abs: [Ot, [Ot], function(t2, e2) { + return Math.abs(e2[0].evaluate(t2)); + }], round: [Ot, [Ot], function(t2, e2) { + var r2 = e2[0].evaluate(t2); return r2 < 0 ? -Math.round(-r2) : Math.round(r2); - }], floor: [pt, [pt], (t2, [e2]) => Math.floor(e2.evaluate(t2))], ceil: [pt, [pt], (t2, [e2]) => Math.ceil(e2.evaluate(t2))], "filter-==": [dt, [ft, gt], (t2, [e2, r2]) => t2.properties()[e2.value] === r2.value], "filter-id-==": [dt, [gt], (t2, [e2]) => t2.id() === e2.value], "filter-type-==": [dt, [ft], (t2, [e2]) => t2.geometryType() === e2.value], "filter-<": [dt, [ft, gt], (t2, [e2, r2]) => { - const n2 = t2.properties()[e2.value], i2 = r2.value; + }], floor: [Ot, [Ot], function(t2, e2) { + return Math.floor(e2[0].evaluate(t2)); + }], ceil: [Ot, [Ot], function(t2, e2) { + return Math.ceil(e2[0].evaluate(t2)); + }], "filter-==": [Ut, [Rt, Nt], function(t2, e2) { + var r2 = e2[0], n2 = e2[1]; + return t2.properties()[r2.value] === n2.value; + }], "filter-id-==": [Ut, [Nt], function(t2, e2) { + var r2 = e2[0]; + return t2.id() === r2.value; + }], "filter-type-==": [Ut, [Rt], function(t2, e2) { + var r2 = e2[0]; + return t2.geometryType() === r2.value; + }], "filter-<": [Ut, [Rt, Nt], function(t2, e2) { + var r2 = e2[0], n2 = e2[1], i2 = t2.properties()[r2.value], a2 = n2.value; + return typeof i2 == typeof a2 && i2 < a2; + }], "filter-id-<": [Ut, [Nt], function(t2, e2) { + var r2 = e2[0], n2 = t2.id(), i2 = r2.value; return typeof n2 == typeof i2 && n2 < i2; - }], "filter-id-<": [dt, [gt], (t2, [e2]) => { - const r2 = t2.id(), n2 = e2.value; - return typeof r2 == typeof n2 && r2 < n2; - }], "filter->": [dt, [ft, gt], (t2, [e2, r2]) => { - const n2 = t2.properties()[e2.value], i2 = r2.value; + }], "filter->": [Ut, [Rt, Nt], function(t2, e2) { + var r2 = e2[0], n2 = e2[1], i2 = t2.properties()[r2.value], a2 = n2.value; + return typeof i2 == typeof a2 && i2 > a2; + }], "filter-id->": [Ut, [Nt], function(t2, e2) { + var r2 = e2[0], n2 = t2.id(), i2 = r2.value; return typeof n2 == typeof i2 && n2 > i2; - }], "filter-id->": [dt, [gt], (t2, [e2]) => { - const r2 = t2.id(), n2 = e2.value; - return typeof r2 == typeof n2 && r2 > n2; - }], "filter-<=": [dt, [ft, gt], (t2, [e2, r2]) => { - const n2 = t2.properties()[e2.value], i2 = r2.value; + }], "filter-<=": [Ut, [Rt, Nt], function(t2, e2) { + var r2 = e2[0], n2 = e2[1], i2 = t2.properties()[r2.value], a2 = n2.value; + return typeof i2 == typeof a2 && i2 <= a2; + }], "filter-id-<=": [Ut, [Nt], function(t2, e2) { + var r2 = e2[0], n2 = t2.id(), i2 = r2.value; return typeof n2 == typeof i2 && n2 <= i2; - }], "filter-id-<=": [dt, [gt], (t2, [e2]) => { - const r2 = t2.id(), n2 = e2.value; - return typeof r2 == typeof n2 && r2 <= n2; - }], "filter->=": [dt, [ft, gt], (t2, [e2, r2]) => { - const n2 = t2.properties()[e2.value], i2 = r2.value; + }], "filter->=": [Ut, [Rt, Nt], function(t2, e2) { + var r2 = e2[0], n2 = e2[1], i2 = t2.properties()[r2.value], a2 = n2.value; + return typeof i2 == typeof a2 && i2 >= a2; + }], "filter-id->=": [Ut, [Nt], function(t2, e2) { + var r2 = e2[0], n2 = t2.id(), i2 = r2.value; return typeof n2 == typeof i2 && n2 >= i2; - }], "filter-id->=": [dt, [gt], (t2, [e2]) => { - const r2 = t2.id(), n2 = e2.value; - return typeof r2 == typeof n2 && r2 >= n2; - }], "filter-has": [dt, [gt], (t2, [e2]) => e2.value in t2.properties()], "filter-has-id": [dt, [], (t2) => null !== t2.id() && void 0 !== t2.id()], "filter-type-in": [dt, [_t(ft)], (t2, [e2]) => e2.value.indexOf(t2.geometryType()) >= 0], "filter-id-in": [dt, [_t(gt)], (t2, [e2]) => e2.value.indexOf(t2.id()) >= 0], "filter-in-small": [dt, [ft, _t(gt)], (t2, [e2, r2]) => r2.value.indexOf(t2.properties()[e2.value]) >= 0], "filter-in-large": [dt, [ft, _t(gt)], (t2, [e2, r2]) => function(t3, e3, r3, n2) { - for (; r3 <= n2; ) { - const i2 = r3 + n2 >> 1; - if (e3[i2] === t3) - return true; - e3[i2] > t3 ? n2 = i2 - 1 : r3 = i2 + 1; - } - return false; - }(t2.properties()[e2.value], r2.value, 0, r2.value.length - 1)], all: { type: dt, overloads: [[[dt, dt], (t2, [e2, r2]) => e2.evaluate(t2) && r2.evaluate(t2)], [gr(dt), (t2, e2) => { - for (const r2 of e2) - if (!r2.evaluate(t2)) + }], "filter-has": [Ut, [Nt], function(t2, e2) { + return e2[0].value in t2.properties(); + }], "filter-has-id": [Ut, [], function(t2) { + return null !== t2.id() && void 0 !== t2.id(); + }], "filter-type-in": [Ut, [Xt(Rt)], function(t2, e2) { + return e2[0].value.indexOf(t2.geometryType()) >= 0; + }], "filter-id-in": [Ut, [Xt(Nt)], function(t2, e2) { + return e2[0].value.indexOf(t2.id()) >= 0; + }], "filter-in-small": [Ut, [Rt, Xt(Nt)], function(t2, e2) { + var r2 = e2[0]; + return e2[1].value.indexOf(t2.properties()[r2.value]) >= 0; + }], "filter-in-large": [Ut, [Rt, Xt(Nt)], function(t2, e2) { + var r2 = e2[0], n2 = e2[1]; + return function(t3, e3, r3, n3) { + for (; r3 <= n3; ) { + var i2 = r3 + n3 >> 1; + if (e3[i2] === t3) + return true; + e3[i2] > t3 ? n3 = i2 - 1 : r3 = i2 + 1; + } + return false; + }(t2.properties()[r2.value], n2.value, 0, n2.value.length - 1); + }], all: { type: Ut, overloads: [[[Ut, Ut], function(t2, e2) { + var r2 = e2[1]; + return e2[0].evaluate(t2) && r2.evaluate(t2); + }], [Pr(Ut), function(t2, e2) { + for (var r2 = 0, n2 = e2; r2 < n2.length; r2 += 1) + if (!n2[r2].evaluate(t2)) return false; return true; - }]] }, any: { type: dt, overloads: [[[dt, dt], (t2, [e2, r2]) => e2.evaluate(t2) || r2.evaluate(t2)], [gr(dt), (t2, e2) => { - for (const r2 of e2) - if (r2.evaluate(t2)) + }]] }, any: { type: Ut, overloads: [[[Ut, Ut], function(t2, e2) { + var r2 = e2[1]; + return e2[0].evaluate(t2) || r2.evaluate(t2); + }], [Pr(Ut), function(t2, e2) { + for (var r2 = 0, n2 = e2; r2 < n2.length; r2 += 1) + if (n2[r2].evaluate(t2)) return true; return false; - }]] }, "!": [dt, [dt], (t2, [e2]) => !e2.evaluate(t2)], "is-supported-script": [dt, [ft], (t2, [e2]) => { - const r2 = t2.globals && t2.globals.isSupportedScript; - return !r2 || r2(e2.evaluate(t2)); - }], upcase: [ft, [ft], (t2, [e2]) => e2.evaluate(t2).toUpperCase()], downcase: [ft, [ft], (t2, [e2]) => e2.evaluate(t2).toLowerCase()], concat: [ft, gr(gt), (t2, e2) => e2.map((e3) => jt(e3.evaluate(t2))).join("")], "resolved-locale": [ft, [xt], (t2, [e2]) => e2.evaluate(t2).resolvedLocale()] }); - class Vr { - constructor(t2, e2) { - this.expression = t2, this._warningHistory = {}, this._evaluator = new Ht(), this._defaultValue = e2 ? function(t3) { - return "color" === t3.type && kr(t3.default) ? new Ft(0, 0, 0, 0) : "color" === t3.type ? Ft.parse(t3.default) || null : "padding" === t3.type ? $t.parse(t3.default) || null : void 0 === t3.default ? null : t3.default; - }(e2) : null, this._enumValues = e2 && "enum" === e2.type ? e2.values : null; - } - evaluateWithoutErrorHandling(t2, e2, r2, n2, i2, a2) { - return this._evaluator.globals = t2, this._evaluator.feature = e2, this._evaluator.featureState = r2, this._evaluator.canonical = n2, this._evaluator.availableImages = i2 || null, this._evaluator.formattedSection = a2, this.expression.evaluate(this._evaluator); - } - evaluate(t2, e2, r2, n2, i2, a2) { - this._evaluator.globals = t2, this._evaluator.feature = e2 || null, this._evaluator.featureState = r2 || null, this._evaluator.canonical = n2, this._evaluator.availableImages = i2 || null, this._evaluator.formattedSection = a2 || null; - try { - const t3 = this.expression.evaluate(this._evaluator); - if (null == t3 || "number" == typeof t3 && t3 != t3) - return this._defaultValue; - if (this._enumValues && !(t3 in this._enumValues)) - throw new Zt(`Expected value to be one of ${Object.keys(this._enumValues).map((t4) => JSON.stringify(t4)).join(", ")}, but found ${JSON.stringify(t3)} instead.`); - return t3; - } catch (t3) { - return this._warningHistory[t3.message] || (this._warningHistory[t3.message] = true, "undefined" != typeof console && console.warn(t3.message)), this._defaultValue; - } - } - } - function Er(t2) { - return Array.isArray(t2) && t2.length > 0 && "string" == typeof t2[0] && t2[0] in fr; + }]] }, "!": [Ut, [Ut], function(t2, e2) { + return !e2[0].evaluate(t2); + }], "is-supported-script": [Ut, [Rt], function(t2, e2) { + var r2 = t2.globals && t2.globals.isSupportedScript; + return !r2 || r2(e2[0].evaluate(t2)); + }], upcase: [Rt, [Rt], function(t2, e2) { + return e2[0].evaluate(t2).toUpperCase(); + }], downcase: [Rt, [Rt], function(t2, e2) { + return e2[0].evaluate(t2).toLowerCase(); + }], concat: [Rt, Pr(Nt), function(t2, e2) { + return e2.map(function(e3) { + return ue(e3.evaluate(t2)); + }).join(""); + }], "resolved-locale": [Rt, [Kt], function(t2, e2) { + return e2[0].evaluate(t2).resolvedLocale(); + }] }); + var Kr = function(t2, e2) { + this.expression = t2, this._warningHistory = {}, this._evaluator = new ge(), this._defaultValue = e2 ? function(t3) { + return "color" === t3.type && Lr(t3.default) ? new te(0, 0, 0, 0) : "color" === t3.type ? te.parse(t3.default) || null : void 0 === t3.default ? null : t3.default; + }(e2) : null, this._enumValues = e2 && "enum" === e2.type ? e2.values : null; + }; + function Gr(t2) { + return Array.isArray(t2) && t2.length > 0 && "string" == typeof t2[0] && t2[0] in Ir; } - function Fr(t2, e2) { - const r2 = new we(fr, [], e2 ? function(t3) { - const e3 = { color: yt, string: ft, number: pt, enum: ft, boolean: dt, formatted: vt, padding: bt, resolvedImage: wt }; - return "array" === t3.type ? _t(e3[t3.value] || gt, t3.length) : e3[t3.type]; + function Zr(t2, e2) { + var r2 = new je(Ir, [], e2 ? function(t3) { + var e3 = { color: jt, string: Rt, number: Ot, enum: Rt, boolean: Ut, formatted: Gt, resolvedImage: Zt }; + return "array" === t3.type ? Xt(e3[t3.value] || Nt, t3.length) : e3[t3.type]; }(e2) : void 0), n2 = r2.parse(t2, void 0, void 0, void 0, e2 && "string" === e2.type ? { typeAnnotation: "coerce" } : void 0); - return n2 ? xr(new Vr(n2, e2)) : vr(r2.errors); - } - class Tr { - constructor(t2, e2) { - this.kind = t2, this._styleExpression = e2, this.isStateDependent = "constant" !== t2 && !xe(e2.expression); - } - evaluateWithoutErrorHandling(t2, e2, r2, n2, i2, a2) { - return this._styleExpression.evaluateWithoutErrorHandling(t2, e2, r2, n2, i2, a2); - } - evaluate(t2, e2, r2, n2, i2, a2) { - return this._styleExpression.evaluate(t2, e2, r2, n2, i2, a2); - } + return n2 ? Mr(new Kr(n2, e2)) : Br(r2.errors); } - class Lr { - constructor(t2, e2, r2, n2) { - this.kind = t2, this.zoomStops = r2, this._styleExpression = e2, this.isStateDependent = "camera" !== t2 && !xe(e2.expression), this.interpolationType = n2; - } - evaluateWithoutErrorHandling(t2, e2, r2, n2, i2, a2) { - return this._styleExpression.evaluateWithoutErrorHandling(t2, e2, r2, n2, i2, a2); - } - evaluate(t2, e2, r2, n2, i2, a2) { - return this._styleExpression.evaluate(t2, e2, r2, n2, i2, a2); - } - interpolationFactor(t2, e2, r2) { - return this.interpolationType ? Ne.interpolationFactor(this.interpolationType, t2, e2, r2) : 0; + Kr.prototype.evaluateWithoutErrorHandling = function(t2, e2, r2, n2, i2, a2) { + return this._evaluator.globals = t2, this._evaluator.feature = e2, this._evaluator.featureState = r2, this._evaluator.canonical = n2, this._evaluator.availableImages = i2 || null, this._evaluator.formattedSection = a2, this.expression.evaluate(this._evaluator); + }, Kr.prototype.evaluate = function(t2, e2, r2, n2, i2, a2) { + this._evaluator.globals = t2, this._evaluator.feature = e2 || null, this._evaluator.featureState = r2 || null, this._evaluator.canonical = n2, this._evaluator.availableImages = i2 || null, this._evaluator.formattedSection = a2 || null; + try { + var o2 = this.expression.evaluate(this._evaluator); + if (null == o2 || "number" == typeof o2 && o2 != o2) + return this._defaultValue; + if (this._enumValues && !(o2 in this._enumValues)) + throw new pe("Expected value to be one of " + Object.keys(this._enumValues).map(function(t3) { + return JSON.stringify(t3); + }).join(", ") + ", but found " + JSON.stringify(o2) + " instead."); + return o2; + } catch (t3) { + return this._warningHistory[t3.message] || (this._warningHistory[t3.message] = true, "undefined" != typeof console && console.warn(t3.message)), this._defaultValue; } - } - function Dr(t2, e2) { - const r2 = Fr(t2, e2); - if ("error" === r2.result) - return r2; - const n2 = r2.value.expression, i2 = ge(n2); - if (!i2 && !br(e2)) - return vr([new ut("", "data expressions not supported")]); - const a2 = ve(n2, ["zoom"]); - if (!a2 && !wr(e2)) - return vr([new ut("", "zoom expressions not supported")]); - const s2 = Rr(n2); - return s2 || a2 ? s2 instanceof ut ? vr([s2]) : s2 instanceof Ne && !_r(e2) ? vr([new ut("", '"interpolate" expressions cannot be used with this property')]) : xr(s2 ? new Lr(i2 ? "camera" : "composite", r2.value, s2.labels, s2 instanceof Ne ? s2.interpolation : void 0) : new Tr(i2 ? "constant" : "source", r2.value)) : vr([new ut("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]); - } - class $r { - constructor(t2, e2) { - this._parameters = t2, this._specification = e2, st(this, Ir(this._parameters, this._specification)); - } - static deserialize(t2) { - return new $r(t2._parameters, t2._specification); - } - static serialize(t2) { - return { _parameters: t2._parameters, _specification: t2._specification }; - } - } - function Rr(t2) { - let e2 = null; - if (t2 instanceof Ge) - e2 = Rr(t2.result); - else if (t2 instanceof Ke) { - for (const r2 of t2.args) - if (e2 = Rr(r2), e2) - break; - } else - (t2 instanceof ke || t2 instanceof Ne) && t2.input instanceof Wt && "zoom" === t2.input.name && (e2 = t2); - return e2 instanceof ut || t2.eachChild((t3) => { - const r2 = Rr(t3); - r2 instanceof ut ? e2 = r2 : !e2 && r2 ? e2 = new ut("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.') : e2 && r2 && e2 !== r2 && (e2 = new ut("", 'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.')); - }), e2; - } - function Or(t2) { - const e2 = t2.key, r2 = t2.value, n2 = t2.valueSpec || {}, i2 = t2.objectElementValidators || {}, a2 = t2.style, s2 = t2.styleSpec; - let o2 = []; - const l2 = Ar(r2); - if ("object" !== l2) - return [new it(e2, r2, `object expected, ${l2} found`)]; - for (const t3 in r2) { - const l3 = t3.split(".")[0], u2 = n2[l3] || n2["*"]; - let c3; - if (i2[l3]) - c3 = i2[l3]; - else if (n2[l3]) - c3 = yn; + }; + var Xr = function(t2, e2) { + this.kind = t2, this._styleExpression = e2, this.isStateDependent = "constant" !== t2 && !Oe(e2.expression); + }; + Xr.prototype.evaluateWithoutErrorHandling = function(t2, e2, r2, n2, i2, a2) { + return this._styleExpression.evaluateWithoutErrorHandling(t2, e2, r2, n2, i2, a2); + }, Xr.prototype.evaluate = function(t2, e2, r2, n2, i2, a2) { + return this._styleExpression.evaluate(t2, e2, r2, n2, i2, a2); + }; + var Jr = function(t2, e2, r2, n2) { + this.kind = t2, this.zoomStops = r2, this._styleExpression = e2, this.isStateDependent = "camera" !== t2 && !Oe(e2.expression), this.interpolationType = n2; + }; + function Hr(t2, e2) { + if ("error" === (t2 = Zr(t2, e2)).result) + return t2; + var r2 = t2.value.expression, n2 = Le(r2); + if (!n2 && !Tr(e2)) + return Br([new Ft("", "data expressions not supported")]); + var i2 = Re(r2, ["zoom"]); + if (!i2 && !Vr(e2)) + return Br([new Ft("", "zoom expressions not supported")]); + var a2 = function t3(e3) { + var r3 = null; + if (e3 instanceof ur) + r3 = t3(e3.result); + else if (e3 instanceof sr) + for (var n3 = 0, i3 = e3.args; n3 < i3.length && !(r3 = t3(i3[n3])); n3 += 1) + ; + else + (e3 instanceof Ne || e3 instanceof ar) && e3.input instanceof xe && "zoom" === e3.input.name && (r3 = e3); + return r3 instanceof Ft || e3.eachChild(function(e4) { + var n4 = t3(e4); + n4 instanceof Ft ? r3 = n4 : !r3 && n4 ? r3 = new Ft("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.') : r3 && n4 && r3 !== n4 && (r3 = new Ft("", 'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.')); + }), r3; + }(r2); + return a2 || i2 ? a2 instanceof Ft ? Br([a2]) : a2 instanceof ar && !Fr(e2) ? Br([new Ft("", '"interpolate" expressions cannot be used with this property')]) : Mr(a2 ? new Jr(n2 ? "camera" : "composite", t2.value, a2.labels, a2 instanceof ar ? a2.interpolation : void 0) : new Xr(n2 ? "constant" : "source", t2.value)) : Br([new Ft("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]); + } + Jr.prototype.evaluateWithoutErrorHandling = function(t2, e2, r2, n2, i2, a2) { + return this._styleExpression.evaluateWithoutErrorHandling(t2, e2, r2, n2, i2, a2); + }, Jr.prototype.evaluate = function(t2, e2, r2, n2, i2, a2) { + return this._styleExpression.evaluate(t2, e2, r2, n2, i2, a2); + }, Jr.prototype.interpolationFactor = function(t2, e2, r2) { + return this.interpolationType ? ar.interpolationFactor(this.interpolationType, t2, e2, r2) : 0; + }; + var Yr = function(t2, e2) { + this._parameters = t2, this._specification = e2, Bt(this, function t3(e3, r2) { + var n2, i2, a2, o2 = "color" === r2.type, s2 = e3.stops && "object" == typeof e3.stops[0][0], u2 = s2 || !(s2 || void 0 !== e3.property), l2 = e3.type || (Fr(r2) ? "exponential" : "interval"); + if (o2 && ((e3 = Bt({}, e3)).stops && (e3.stops = e3.stops.map(function(t4) { + return [t4[0], te.parse(t4[1])]; + })), e3.default = te.parse(e3.default ? e3.default : r2.default)), e3.colorSpace && "rgb" !== e3.colorSpace && !ir[e3.colorSpace]) + throw new Error("Unknown color space: " + e3.colorSpace); + if ("exponential" === l2) + n2 = qr; + else if ("interval" === l2) + n2 = jr; + else if ("categorical" === l2) { + n2 = Ur, i2 = /* @__PURE__ */ Object.create(null); + for (var p3 = 0, c3 = e3.stops; p3 < c3.length; p3 += 1) { + var h3 = c3[p3]; + i2[h3[0]] = h3[1]; + } + a2 = typeof e3.stops[0][0]; + } else { + if ("identity" !== l2) + throw new Error('Unknown function type "' + l2 + '"'); + n2 = Nr; + } + if (s2) { + for (var f2 = {}, y3 = [], d2 = 0; d2 < e3.stops.length; d2++) { + var m2 = e3.stops[d2], v3 = m2[0].zoom; + void 0 === f2[v3] && (f2[v3] = { zoom: v3, type: e3.type, property: e3.property, default: e3.default, stops: [] }, y3.push(v3)), f2[v3].stops.push([m2[0].value, m2[1]]); + } + for (var g2 = [], x2 = 0, b2 = y3; x2 < b2.length; x2 += 1) { + var w2 = b2[x2]; + g2.push([f2[w2].zoom, t3(f2[w2], r2)]); + } + var _2 = { name: "linear" }; + return { kind: "composite", interpolationType: _2, interpolationFactor: ar.interpolationFactor.bind(void 0, _2), zoomStops: g2.map(function(t4) { + return t4[0]; + }), evaluate: function(t4, n3) { + var i3 = t4.zoom; + return qr({ stops: g2, base: e3.base }, r2, i3).evaluate(i3, n3); + } }; + } + if (u2) { + var A3 = "exponential" === l2 ? { name: "exponential", base: void 0 !== e3.base ? e3.base : 1 } : null; + return { kind: "camera", interpolationType: A3, interpolationFactor: ar.interpolationFactor.bind(void 0, A3), zoomStops: e3.stops.map(function(t4) { + return t4[0]; + }), evaluate: function(t4) { + return n2(e3, r2, t4.zoom, i2, a2); + } }; + } + return { kind: "source", evaluate: function(t4, o3) { + var s3 = o3 && o3.properties ? o3.properties[e3.property] : void 0; + return void 0 === s3 ? Rr(e3.default, r2.default) : n2(e3, r2, s3, i2, a2); + } }; + }(this._parameters, this._specification)); + }; + function $r(t2) { + var e2 = t2.key, r2 = t2.value, n2 = t2.valueSpec || {}, i2 = t2.objectElementValidators || {}, a2 = t2.style, o2 = t2.styleSpec, s2 = [], u2 = Dr(r2); + if ("object" !== u2) + return [new Pt(e2, r2, "object expected, " + u2 + " found")]; + for (var l2 in r2) { + var p3 = l2.split(".")[0], c3 = n2[p3] || n2["*"], h3 = void 0; + if (i2[p3]) + h3 = i2[p3]; + else if (n2[p3]) + h3 = An; else if (i2["*"]) - c3 = i2["*"]; + h3 = i2["*"]; else { if (!n2["*"]) { - o2.push(new it(e2, r2[t3], `unknown property "${t3}"`)); + s2.push(new Pt(e2, r2[l2], 'unknown property "' + l2 + '"')); continue; } - c3 = yn; + h3 = An; } - o2 = o2.concat(c3({ key: (e2 ? `${e2}.` : e2) + t3, value: r2[t3], valueSpec: u2, style: a2, styleSpec: s2, object: r2, objectKey: t3 }, r2)); + s2 = s2.concat(h3({ key: (e2 ? e2 + "." : e2) + l2, value: r2[l2], valueSpec: c3, style: a2, styleSpec: o2, object: r2, objectKey: l2 }, r2)); } - for (const t3 in n2) - i2[t3] || n2[t3].required && void 0 === n2[t3].default && void 0 === r2[t3] && o2.push(new it(e2, r2, `missing required property "${t3}"`)); - return o2; + for (var f2 in n2) + i2[f2] || n2[f2].required && void 0 === n2[f2].default && void 0 === r2[f2] && s2.push(new Pt(e2, r2, 'missing required property "' + f2 + '"')); + return s2; } - function Ur(t2) { - const e2 = t2.value, r2 = t2.valueSpec, n2 = t2.style, i2 = t2.styleSpec, a2 = t2.key, s2 = t2.arrayElementValidator || yn; - if ("array" !== Ar(e2)) - return [new it(a2, e2, `array expected, ${Ar(e2)} found`)]; + function Wr(t2) { + var e2 = t2.value, r2 = t2.valueSpec, n2 = t2.style, i2 = t2.styleSpec, a2 = t2.key, o2 = t2.arrayElementValidator || An; + if ("array" !== Dr(e2)) + return [new Pt(a2, e2, "array expected, " + Dr(e2) + " found")]; if (r2.length && e2.length !== r2.length) - return [new it(a2, e2, `array length ${r2.length} expected, length ${e2.length} found`)]; + return [new Pt(a2, e2, "array length " + r2.length + " expected, length " + e2.length + " found")]; if (r2["min-length"] && e2.length < r2["min-length"]) - return [new it(a2, e2, `array length at least ${r2["min-length"]} expected, length ${e2.length} found`)]; - let o2 = { type: r2.value, values: r2.values }; - i2.$version < 7 && (o2.function = r2.function), "object" === Ar(r2.value) && (o2 = r2.value); - let l2 = []; - for (let t3 = 0; t3 < e2.length; t3++) - l2 = l2.concat(s2({ array: e2, arrayIndex: t3, value: e2[t3], valueSpec: o2, style: n2, styleSpec: i2, key: `${a2}[${t3}]` })); - return l2; + return [new Pt(a2, e2, "array length at least " + r2["min-length"] + " expected, length " + e2.length + " found")]; + var s2 = { type: r2.value, values: r2.values }; + i2.$version < 7 && (s2.function = r2.function), "object" === Dr(r2.value) && (s2 = r2.value); + for (var u2 = [], l2 = 0; l2 < e2.length; l2++) + u2 = u2.concat(o2({ array: e2, arrayIndex: l2, value: e2[l2], valueSpec: s2, style: n2, styleSpec: i2, key: a2 + "[" + l2 + "]" })); + return u2; } - function qr(t2) { - const e2 = t2.key, r2 = t2.value, n2 = t2.valueSpec; - let i2 = Ar(r2); - return "number" === i2 && r2 != r2 && (i2 = "NaN"), "number" !== i2 ? [new it(e2, r2, `number expected, ${i2} found`)] : "minimum" in n2 && r2 < n2.minimum ? [new it(e2, r2, `${r2} is less than the minimum value ${n2.minimum}`)] : "maximum" in n2 && r2 > n2.maximum ? [new it(e2, r2, `${r2} is greater than the maximum value ${n2.maximum}`)] : []; - } - function jr(t2) { - const e2 = t2.valueSpec, r2 = ot(t2.value.type); - let n2, i2, a2, s2 = {}; - const o2 = "categorical" !== r2 && void 0 === t2.value.property, l2 = !o2, u2 = "array" === Ar(t2.value.stops) && "array" === Ar(t2.value.stops[0]) && "object" === Ar(t2.value.stops[0][0]), c3 = Or({ key: t2.key, value: t2.value, valueSpec: t2.styleSpec.function, style: t2.style, styleSpec: t2.styleSpec, objectElementValidators: { stops: function(t3) { - if ("identity" === r2) - return [new it(t3.key, t3.value, 'identity function may not have a "stops" property')]; - let e3 = []; - const n3 = t3.value; - return e3 = e3.concat(Ur({ key: t3.key, value: n3, valueSpec: t3.valueSpec, style: t3.style, styleSpec: t3.styleSpec, arrayElementValidator: h3 })), "array" === Ar(n3) && 0 === n3.length && e3.push(new it(t3.key, n3, "array must have at least one stop")), e3; + function Qr(t2) { + var e2 = t2.key, r2 = t2.value, n2 = t2.valueSpec, i2 = Dr(r2); + return "number" === i2 && r2 != r2 && (i2 = "NaN"), "number" !== i2 ? [new Pt(e2, r2, "number expected, " + i2 + " found")] : "minimum" in n2 && r2 < n2.minimum ? [new Pt(e2, r2, r2 + " is less than the minimum value " + n2.minimum)] : "maximum" in n2 && r2 > n2.maximum ? [new Pt(e2, r2, r2 + " is greater than the maximum value " + n2.maximum)] : []; + } + function tn(t2) { + var e2, r2, n2, i2 = t2.valueSpec, a2 = Tt(t2.value.type), o2 = {}, s2 = "categorical" !== a2 && void 0 === t2.value.property, u2 = !s2, l2 = "array" === Dr(t2.value.stops) && "array" === Dr(t2.value.stops[0]) && "object" === Dr(t2.value.stops[0][0]), p3 = $r({ key: t2.key, value: t2.value, valueSpec: t2.styleSpec.function, style: t2.style, styleSpec: t2.styleSpec, objectElementValidators: { stops: function(t3) { + if ("identity" === a2) + return [new Pt(t3.key, t3.value, 'identity function may not have a "stops" property')]; + var e3 = [], r3 = t3.value; + return e3 = e3.concat(Wr({ key: t3.key, value: r3, valueSpec: t3.valueSpec, style: t3.style, styleSpec: t3.styleSpec, arrayElementValidator: c3 })), "array" === Dr(r3) && 0 === r3.length && e3.push(new Pt(t3.key, r3, "array must have at least one stop")), e3; }, default: function(t3) { - return yn({ key: t3.key, value: t3.value, valueSpec: e2, style: t3.style, styleSpec: t3.styleSpec }); + return An({ key: t3.key, value: t3.value, valueSpec: i2, style: t3.style, styleSpec: t3.styleSpec }); } } }); - return "identity" === r2 && o2 && c3.push(new it(t2.key, t2.value, 'missing required property "property"')), "identity" === r2 || t2.value.stops || c3.push(new it(t2.key, t2.value, 'missing required property "stops"')), "exponential" === r2 && t2.valueSpec.expression && !_r(t2.valueSpec) && c3.push(new it(t2.key, t2.value, "exponential functions not supported")), t2.styleSpec.$version >= 8 && (l2 && !br(t2.valueSpec) ? c3.push(new it(t2.key, t2.value, "property functions not supported")) : o2 && !wr(t2.valueSpec) && c3.push(new it(t2.key, t2.value, "zoom functions not supported"))), "categorical" !== r2 && !u2 || void 0 !== t2.value.property || c3.push(new it(t2.key, t2.value, '"property" property is required')), c3; - function h3(t3) { - let r3 = []; - const n3 = t3.value, o3 = t3.key; - if ("array" !== Ar(n3)) - return [new it(o3, n3, `array expected, ${Ar(n3)} found`)]; - if (2 !== n3.length) - return [new it(o3, n3, `array length 2 expected, length ${n3.length} found`)]; - if (u2) { - if ("object" !== Ar(n3[0])) - return [new it(o3, n3, `object expected, ${Ar(n3[0])} found`)]; - if (void 0 === n3[0].zoom) - return [new it(o3, n3, "object stop key must have zoom")]; - if (void 0 === n3[0].value) - return [new it(o3, n3, "object stop key must have value")]; - if (a2 && a2 > ot(n3[0].zoom)) - return [new it(o3, n3[0].zoom, "stop zoom values must appear in ascending order")]; - ot(n3[0].zoom) !== a2 && (a2 = ot(n3[0].zoom), i2 = void 0, s2 = {}), r3 = r3.concat(Or({ key: `${o3}[0]`, value: n3[0], valueSpec: { zoom: {} }, style: t3.style, styleSpec: t3.styleSpec, objectElementValidators: { zoom: qr, value: p3 } })); + return "identity" === a2 && s2 && p3.push(new Pt(t2.key, t2.value, 'missing required property "property"')), "identity" === a2 || t2.value.stops || p3.push(new Pt(t2.key, t2.value, 'missing required property "stops"')), "exponential" === a2 && t2.valueSpec.expression && !Fr(t2.valueSpec) && p3.push(new Pt(t2.key, t2.value, "exponential functions not supported")), t2.styleSpec.$version >= 8 && (u2 && !Tr(t2.valueSpec) ? p3.push(new Pt(t2.key, t2.value, "property functions not supported")) : s2 && !Vr(t2.valueSpec) && p3.push(new Pt(t2.key, t2.value, "zoom functions not supported"))), "categorical" !== a2 && !l2 || void 0 !== t2.value.property || p3.push(new Pt(t2.key, t2.value, '"property" property is required')), p3; + function c3(t3) { + var e3 = [], a3 = t3.value, s3 = t3.key; + if ("array" !== Dr(a3)) + return [new Pt(s3, a3, "array expected, " + Dr(a3) + " found")]; + if (2 !== a3.length) + return [new Pt(s3, a3, "array length 2 expected, length " + a3.length + " found")]; + if (l2) { + if ("object" !== Dr(a3[0])) + return [new Pt(s3, a3, "object expected, " + Dr(a3[0]) + " found")]; + if (void 0 === a3[0].zoom) + return [new Pt(s3, a3, "object stop key must have zoom")]; + if (void 0 === a3[0].value) + return [new Pt(s3, a3, "object stop key must have value")]; + if (n2 && n2 > Tt(a3[0].zoom)) + return [new Pt(s3, a3[0].zoom, "stop zoom values must appear in ascending order")]; + Tt(a3[0].zoom) !== n2 && (n2 = Tt(a3[0].zoom), r2 = void 0, o2 = {}), e3 = e3.concat($r({ key: s3 + "[0]", value: a3[0], valueSpec: { zoom: {} }, style: t3.style, styleSpec: t3.styleSpec, objectElementValidators: { zoom: Qr, value: h3 } })); } else - r3 = r3.concat(p3({ key: `${o3}[0]`, value: n3[0], valueSpec: {}, style: t3.style, styleSpec: t3.styleSpec }, n3)); - return Er(lt(n3[1])) ? r3.concat([new it(`${o3}[1]`, n3[1], "expressions are not allowed in function stops.")]) : r3.concat(yn({ key: `${o3}[1]`, value: n3[1], valueSpec: e2, style: t3.style, styleSpec: t3.styleSpec })); - } - function p3(t3, a3) { - const o3 = Ar(t3.value), l3 = ot(t3.value), u3 = null !== t3.value ? t3.value : a3; - if (n2) { - if (o3 !== n2) - return [new it(t3.key, u3, `${o3} stop domain type must match previous stop domain type ${n2}`)]; + e3 = e3.concat(h3({ key: s3 + "[0]", value: a3[0], valueSpec: {}, style: t3.style, styleSpec: t3.styleSpec }, a3)); + return Gr(Vt(a3[1])) ? e3.concat([new Pt(s3 + "[1]", a3[1], "expressions are not allowed in function stops.")]) : e3.concat(An({ key: s3 + "[1]", value: a3[1], valueSpec: i2, style: t3.style, styleSpec: t3.styleSpec })); + } + function h3(t3, n3) { + var s3 = Dr(t3.value), u3 = Tt(t3.value), l3 = null !== t3.value ? t3.value : n3; + if (e2) { + if (s3 !== e2) + return [new Pt(t3.key, l3, s3 + " stop domain type must match previous stop domain type " + e2)]; } else - n2 = o3; - if ("number" !== o3 && "string" !== o3 && "boolean" !== o3) - return [new it(t3.key, u3, "stop domain value must be a number, string, or boolean")]; - if ("number" !== o3 && "categorical" !== r2) { - let n3 = `number expected, ${o3} found`; - return br(e2) && void 0 === r2 && (n3 += '\nIf you intended to use a categorical function, specify `"type": "categorical"`.'), [new it(t3.key, u3, n3)]; + e2 = s3; + if ("number" !== s3 && "string" !== s3 && "boolean" !== s3) + return [new Pt(t3.key, l3, "stop domain value must be a number, string, or boolean")]; + if ("number" !== s3 && "categorical" !== a2) { + var p4 = "number expected, " + s3 + " found"; + return Tr(i2) && void 0 === a2 && (p4 += '\nIf you intended to use a categorical function, specify `"type": "categorical"`.'), [new Pt(t3.key, l3, p4)]; } - return "categorical" !== r2 || "number" !== o3 || isFinite(l3) && Math.floor(l3) === l3 ? "categorical" !== r2 && "number" === o3 && void 0 !== i2 && l3 < i2 ? [new it(t3.key, u3, "stop domain values must appear in ascending order")] : (i2 = l3, "categorical" === r2 && l3 in s2 ? [new it(t3.key, u3, "stop domain values must be unique")] : (s2[l3] = true, [])) : [new it(t3.key, u3, `integer expected, found ${l3}`)]; + return "categorical" !== a2 || "number" !== s3 || isFinite(u3) && Math.floor(u3) === u3 ? "categorical" !== a2 && "number" === s3 && void 0 !== r2 && u3 < r2 ? [new Pt(t3.key, l3, "stop domain values must appear in ascending order")] : (r2 = u3, "categorical" === a2 && u3 in o2 ? [new Pt(t3.key, l3, "stop domain values must be unique")] : (o2[u3] = true, [])) : [new Pt(t3.key, l3, "integer expected, found " + u3)]; } } - function Nr(t2) { - const e2 = ("property" === t2.expressionContext ? Dr : Fr)(lt(t2.value), t2.valueSpec); + function en(t2) { + var e2 = ("property" === t2.expressionContext ? Hr : Zr)(Vt(t2.value), t2.valueSpec); if ("error" === e2.result) - return e2.value.map((e3) => new it(`${t2.key}${e3.key}`, t2.value, e3.message)); - const r2 = e2.value.expression || e2.value._styleExpression.expression; + return e2.value.map(function(e3) { + return new Pt("" + t2.key + e3.key, t2.value, e3.message); + }); + var r2 = e2.value.expression || e2.value._styleExpression.expression; if ("property" === t2.expressionContext && "text-font" === t2.propertyKey && !r2.outputDefined()) - return [new it(t2.key, t2.value, `Invalid data expression for "${t2.propertyKey}". Output values must be contained as literals within the expression.`)]; - if ("property" === t2.expressionContext && "layout" === t2.propertyType && !xe(r2)) - return [new it(t2.key, t2.value, '"feature-state" data expressions are not supported with layout properties.')]; - if ("filter" === t2.expressionContext && !xe(r2)) - return [new it(t2.key, t2.value, '"feature-state" data expressions are not supported with filters.')]; + return [new Pt(t2.key, t2.value, 'Invalid data expression for "' + t2.propertyKey + '". Output values must be contained as literals within the expression.')]; + if ("property" === t2.expressionContext && "layout" === t2.propertyType && !Oe(r2)) + return [new Pt(t2.key, t2.value, '"feature-state" data expressions are not supported with layout properties.')]; + if ("filter" === t2.expressionContext && !Oe(r2)) + return [new Pt(t2.key, t2.value, '"feature-state" data expressions are not supported with filters.')]; if (t2.expressionContext && 0 === t2.expressionContext.indexOf("cluster")) { - if (!ve(r2, ["zoom", "feature-state"])) - return [new it(t2.key, t2.value, '"zoom" and "feature-state" expressions are not supported with cluster properties.')]; - if ("cluster-initial" === t2.expressionContext && !ge(r2)) - return [new it(t2.key, t2.value, "Feature data expressions are not supported with initial expression part of cluster properties.")]; + if (!Re(r2, ["zoom", "feature-state"])) + return [new Pt(t2.key, t2.value, '"zoom" and "feature-state" expressions are not supported with cluster properties.')]; + if ("cluster-initial" === t2.expressionContext && !Le(r2)) + return [new Pt(t2.key, t2.value, "Feature data expressions are not supported with initial expression part of cluster properties.")]; } return []; } - function Zr(t2) { - const e2 = t2.key, r2 = t2.value, n2 = t2.valueSpec, i2 = []; - return Array.isArray(n2.values) ? -1 === n2.values.indexOf(ot(r2)) && i2.push(new it(e2, r2, `expected one of [${n2.values.join(", ")}], ${JSON.stringify(r2)} found`)) : -1 === Object.keys(n2.values).indexOf(ot(r2)) && i2.push(new it(e2, r2, `expected one of [${Object.keys(n2.values).join(", ")}], ${JSON.stringify(r2)} found`)), i2; + function rn(t2) { + var e2 = t2.key, r2 = t2.value, n2 = t2.valueSpec, i2 = []; + return Array.isArray(n2.values) ? -1 === n2.values.indexOf(Tt(r2)) && i2.push(new Pt(e2, r2, "expected one of [" + n2.values.join(", ") + "], " + JSON.stringify(r2) + " found")) : -1 === Object.keys(n2.values).indexOf(Tt(r2)) && i2.push(new Pt(e2, r2, "expected one of [" + Object.keys(n2.values).join(", ") + "], " + JSON.stringify(r2) + " found")), i2; } - function Kr(t2) { + function nn(t2) { if (true === t2 || false === t2) return true; if (!Array.isArray(t2) || 0 === t2.length) @@ -17907,55 +18271,66 @@ This will fail in production.`); return 3 !== t2.length || Array.isArray(t2[1]) || Array.isArray(t2[2]); case "any": case "all": - for (const e2 of t2.slice(1)) - if (!Kr(e2) && "boolean" != typeof e2) + for (var e2 = 0, r2 = t2.slice(1); e2 < r2.length; e2 += 1) { + var n2 = r2[e2]; + if (!nn(n2) && "boolean" != typeof n2) return false; + } return true; default: return true; } } - const Gr = { type: "boolean", default: false, transition: false, "property-type": "data-driven", expression: { interpolated: false, parameters: ["zoom", "feature"] } }; - function Jr(t2) { + Yr.deserialize = function(t2) { + return new Yr(t2._parameters, t2._specification); + }, Yr.serialize = function(t2) { + return { _parameters: t2._parameters, _specification: t2._specification }; + }; + var an = { type: "boolean", default: false, transition: false, "property-type": "data-driven", expression: { interpolated: false, parameters: ["zoom", "feature"] } }; + function on2(t2) { if (null == t2) - return { filter: () => true, needGeometry: false }; - Kr(t2) || (t2 = Hr(t2)); - const e2 = Fr(t2, Gr); + return { filter: function() { + return true; + }, needGeometry: false }; + nn(t2) || (t2 = un(t2)); + var e2 = Zr(t2, an); if ("error" === e2.result) - throw new Error(e2.value.map((t3) => `${t3.key}: ${t3.message}`).join(", ")); - return { filter: (t3, r2, n2) => e2.value.evaluate(t3, r2, {}, n2), needGeometry: Yr(t2) }; + throw new Error(e2.value.map(function(t3) { + return t3.key + ": " + t3.message; + }).join(", ")); + return { filter: function(t3, r2, n2) { + return e2.value.evaluate(t3, r2, {}, n2); + }, needGeometry: function t3(e3) { + if (!Array.isArray(e3)) + return false; + if ("within" === e3[0]) + return true; + for (var r2 = 1; r2 < e3.length; r2++) + if (t3(e3[r2])) + return true; + return false; + }(t2) }; } - function Xr(t2, e2) { + function sn(t2, e2) { return t2 < e2 ? -1 : t2 > e2 ? 1 : 0; } - function Yr(t2) { - if (!Array.isArray(t2)) - return false; - if ("within" === t2[0]) - return true; - for (let e2 = 1; e2 < t2.length; e2++) - if (Yr(t2[e2])) - return true; - return false; - } - function Hr(t2) { + function un(t2) { if (!t2) return true; - const e2 = t2[0]; - return t2.length <= 1 ? "any" !== e2 : "==" === e2 ? Wr(t2[1], t2[2], "==") : "!=" === e2 ? en(Wr(t2[1], t2[2], "==")) : "<" === e2 || ">" === e2 || "<=" === e2 || ">=" === e2 ? Wr(t2[1], t2[2], e2) : "any" === e2 ? (r2 = t2.slice(1), ["any"].concat(r2.map(Hr))) : "all" === e2 ? ["all"].concat(t2.slice(1).map(Hr)) : "none" === e2 ? ["all"].concat(t2.slice(1).map(Hr).map(en)) : "in" === e2 ? Qr(t2[1], t2.slice(2)) : "!in" === e2 ? en(Qr(t2[1], t2.slice(2))) : "has" === e2 ? tn(t2[1]) : "!has" === e2 ? en(tn(t2[1])) : "within" !== e2 || t2; - var r2; + var e2, r2 = t2[0]; + return t2.length <= 1 ? "any" !== r2 : "==" === r2 ? ln(t2[1], t2[2], "==") : "!=" === r2 ? hn(ln(t2[1], t2[2], "==")) : "<" === r2 || ">" === r2 || "<=" === r2 || ">=" === r2 ? ln(t2[1], t2[2], r2) : "any" === r2 ? (e2 = t2.slice(1), ["any"].concat(e2.map(un))) : "all" === r2 ? ["all"].concat(t2.slice(1).map(un)) : "none" === r2 ? ["all"].concat(t2.slice(1).map(un).map(hn)) : "in" === r2 ? pn(t2[1], t2.slice(2)) : "!in" === r2 ? hn(pn(t2[1], t2.slice(2))) : "has" === r2 ? cn(t2[1]) : "!has" === r2 ? hn(cn(t2[1])) : "within" !== r2 || t2; } - function Wr(t2, e2, r2) { + function ln(t2, e2, r2) { switch (t2) { case "$type": - return [`filter-type-${r2}`, e2]; + return ["filter-type-" + r2, e2]; case "$id": - return [`filter-id-${r2}`, e2]; + return ["filter-id-" + r2, e2]; default: - return [`filter-${r2}`, t2, e2]; + return ["filter-" + r2, t2, e2]; } } - function Qr(t2, e2) { + function pn(t2, e2) { if (0 === e2.length) return false; switch (t2) { @@ -17964,10 +18339,12 @@ This will fail in production.`); case "$id": return ["filter-id-in", ["literal", e2]]; default: - return e2.length > 200 && !e2.some((t3) => typeof t3 != typeof e2[0]) ? ["filter-in-large", t2, ["literal", e2.sort(Xr)]] : ["filter-in-small", t2, ["literal", e2]]; + return e2.length > 200 && !e2.some(function(t3) { + return typeof t3 != typeof e2[0]; + }) ? ["filter-in-large", t2, ["literal", e2.sort(sn)]] : ["filter-in-small", t2, ["literal", e2]]; } } - function tn(t2) { + function cn(t2) { switch (t2) { case "$type": return true; @@ -17977,2610 +18354,2528 @@ This will fail in production.`); return ["filter-has", t2]; } } - function en(t2) { + function hn(t2) { return ["!", t2]; } - function rn(t2) { - return Kr(lt(t2.value)) ? Nr(st({}, t2, { expressionContext: "filter", valueSpec: { value: "boolean" } })) : nn(t2); - } - function nn(t2) { - const e2 = t2.value, r2 = t2.key; - if ("array" !== Ar(e2)) - return [new it(r2, e2, `array expected, ${Ar(e2)} found`)]; - const n2 = t2.styleSpec; - let i2, a2 = []; - if (e2.length < 1) - return [new it(r2, e2, "filter array must have at least 1 element")]; - switch (a2 = a2.concat(Zr({ key: `${r2}[0]`, value: e2[0], valueSpec: n2.filter_operator, style: t2.style, styleSpec: t2.styleSpec })), ot(e2[0])) { - case "<": - case "<=": - case ">": - case ">=": - e2.length >= 2 && "$type" === ot(e2[1]) && a2.push(new it(r2, e2, `"$type" cannot be use with operator "${e2[0]}"`)); - case "==": - case "!=": - 3 !== e2.length && a2.push(new it(r2, e2, `filter array for operator "${e2[0]}" must have 3 elements`)); - case "in": - case "!in": - e2.length >= 2 && (i2 = Ar(e2[1]), "string" !== i2 && a2.push(new it(`${r2}[1]`, e2[1], `string expected, ${i2} found`))); - for (let s2 = 2; s2 < e2.length; s2++) - i2 = Ar(e2[s2]), "$type" === ot(e2[1]) ? a2 = a2.concat(Zr({ key: `${r2}[${s2}]`, value: e2[s2], valueSpec: n2.geometry_type, style: t2.style, styleSpec: t2.styleSpec })) : "string" !== i2 && "number" !== i2 && "boolean" !== i2 && a2.push(new it(`${r2}[${s2}]`, e2[s2], `string, number, or boolean expected, ${i2} found`)); - break; - case "any": - case "all": - case "none": - for (let n3 = 1; n3 < e2.length; n3++) - a2 = a2.concat(nn({ key: `${r2}[${n3}]`, value: e2[n3], style: t2.style, styleSpec: t2.styleSpec })); - break; - case "has": - case "!has": - i2 = Ar(e2[1]), 2 !== e2.length ? a2.push(new it(r2, e2, `filter array for "${e2[0]}" operator must have 2 elements`)) : "string" !== i2 && a2.push(new it(`${r2}[1]`, e2[1], `string expected, ${i2} found`)); - break; - case "within": - i2 = Ar(e2[1]), 2 !== e2.length ? a2.push(new it(r2, e2, `filter array for "${e2[0]}" operator must have 2 elements`)) : "object" !== i2 && a2.push(new it(`${r2}[1]`, e2[1], `object expected, ${i2} found`)); - } - return a2; + function fn(t2) { + return nn(Vt(t2.value)) ? en(Bt({}, t2, { expressionContext: "filter", valueSpec: { value: "boolean" } })) : function t3(e2) { + var r2 = e2.value, n2 = e2.key; + if ("array" !== Dr(r2)) + return [new Pt(n2, r2, "array expected, " + Dr(r2) + " found")]; + var i2, a2 = e2.styleSpec, o2 = []; + if (r2.length < 1) + return [new Pt(n2, r2, "filter array must have at least 1 element")]; + switch (o2 = o2.concat(rn({ key: n2 + "[0]", value: r2[0], valueSpec: a2.filter_operator, style: e2.style, styleSpec: e2.styleSpec })), Tt(r2[0])) { + case "<": + case "<=": + case ">": + case ">=": + r2.length >= 2 && "$type" === Tt(r2[1]) && o2.push(new Pt(n2, r2, '"$type" cannot be use with operator "' + r2[0] + '"')); + case "==": + case "!=": + 3 !== r2.length && o2.push(new Pt(n2, r2, 'filter array for operator "' + r2[0] + '" must have 3 elements')); + case "in": + case "!in": + r2.length >= 2 && "string" !== (i2 = Dr(r2[1])) && o2.push(new Pt(n2 + "[1]", r2[1], "string expected, " + i2 + " found")); + for (var s2 = 2; s2 < r2.length; s2++) + i2 = Dr(r2[s2]), "$type" === Tt(r2[1]) ? o2 = o2.concat(rn({ key: n2 + "[" + s2 + "]", value: r2[s2], valueSpec: a2.geometry_type, style: e2.style, styleSpec: e2.styleSpec })) : "string" !== i2 && "number" !== i2 && "boolean" !== i2 && o2.push(new Pt(n2 + "[" + s2 + "]", r2[s2], "string, number, or boolean expected, " + i2 + " found")); + break; + case "any": + case "all": + case "none": + for (var u2 = 1; u2 < r2.length; u2++) + o2 = o2.concat(t3({ key: n2 + "[" + u2 + "]", value: r2[u2], style: e2.style, styleSpec: e2.styleSpec })); + break; + case "has": + case "!has": + i2 = Dr(r2[1]), 2 !== r2.length ? o2.push(new Pt(n2, r2, 'filter array for "' + r2[0] + '" operator must have 2 elements')) : "string" !== i2 && o2.push(new Pt(n2 + "[1]", r2[1], "string expected, " + i2 + " found")); + break; + case "within": + i2 = Dr(r2[1]), 2 !== r2.length ? o2.push(new Pt(n2, r2, 'filter array for "' + r2[0] + '" operator must have 2 elements')) : "object" !== i2 && o2.push(new Pt(n2 + "[1]", r2[1], "object expected, " + i2 + " found")); + } + return o2; + }(t2); } - function an(t2, e2) { - const r2 = t2.key, n2 = t2.style, i2 = t2.styleSpec, a2 = t2.value, s2 = t2.objectKey, o2 = i2[`${e2}_${t2.layerType}`]; - if (!o2) + function yn(t2, e2) { + var r2 = t2.key, n2 = t2.style, i2 = t2.styleSpec, a2 = t2.value, o2 = t2.objectKey, s2 = i2[e2 + "_" + t2.layerType]; + if (!s2) return []; - const l2 = s2.match(/^(.*)-transition$/); - if ("paint" === e2 && l2 && o2[l2[1]] && o2[l2[1]].transition) - return yn({ key: r2, value: a2, valueSpec: i2.transition, style: n2, styleSpec: i2 }); - const u2 = t2.valueSpec || o2[s2]; - if (!u2) - return [new it(r2, a2, `unknown property "${s2}"`)]; - let c3; - if ("string" === Ar(a2) && br(u2) && !u2.tokens && (c3 = /^{([^}]+)}$/.exec(a2))) - return [new it(r2, a2, `"${s2}" does not support interpolation syntax -Use an identity property function instead: \`{ "type": "identity", "property": ${JSON.stringify(c3[1])} }\`.`)]; - const h3 = []; - return "symbol" === t2.layerType && ("text-field" === s2 && n2 && !n2.glyphs && h3.push(new it(r2, a2, 'use of "text-field" requires a style "glyphs" property')), "text-font" === s2 && kr(lt(a2)) && "identity" === ot(a2.type) && h3.push(new it(r2, a2, '"text-font" does not support identity functions'))), h3.concat(yn({ key: t2.key, value: a2, valueSpec: u2, style: n2, styleSpec: i2, expressionContext: "property", propertyType: e2, propertyKey: s2 })); - } - function sn(t2) { - return an(t2, "paint"); + var u2 = o2.match(/^(.*)-transition$/); + if ("paint" === e2 && u2 && s2[u2[1]] && s2[u2[1]].transition) + return An({ key: r2, value: a2, valueSpec: i2.transition, style: n2, styleSpec: i2 }); + var l2, p3 = t2.valueSpec || s2[o2]; + if (!p3) + return [new Pt(r2, a2, 'unknown property "' + o2 + '"')]; + if ("string" === Dr(a2) && Tr(p3) && !p3.tokens && (l2 = /^{([^}]+)}$/.exec(a2))) + return [new Pt(r2, a2, '"' + o2 + '" does not support interpolation syntax\nUse an identity property function instead: `{ "type": "identity", "property": ' + JSON.stringify(l2[1]) + " }`.")]; + var c3 = []; + return "symbol" === t2.layerType && ("text-field" === o2 && n2 && !n2.glyphs && c3.push(new Pt(r2, a2, 'use of "text-field" requires a style "glyphs" property')), "text-font" === o2 && Lr(Vt(a2)) && "identity" === Tt(a2.type) && c3.push(new Pt(r2, a2, '"text-font" does not support identity functions'))), c3.concat(An({ key: t2.key, value: a2, valueSpec: p3, style: n2, styleSpec: i2, expressionContext: "property", propertyType: e2, propertyKey: o2 })); + } + function dn(t2) { + return yn(t2, "paint"); } - function on2(t2) { - return an(t2, "layout"); - } - function ln(t2) { - let e2 = []; - const r2 = t2.value, n2 = t2.key, i2 = t2.style, a2 = t2.styleSpec; - r2.type || r2.ref || e2.push(new it(n2, r2, 'either "type" or "ref" is required')); - let s2 = ot(r2.type); - const o2 = ot(r2.ref); - if (r2.id) { - const a3 = ot(r2.id); - for (let s3 = 0; s3 < t2.arrayIndex; s3++) { - const t3 = i2.layers[s3]; - ot(t3.id) === a3 && e2.push(new it(n2, r2.id, `duplicate layer id "${r2.id}", previously used at line ${t3.id.__line__}`)); - } - } - if ("ref" in r2) { - let t3; - ["type", "source", "source-layer", "filter", "layout"].forEach((t4) => { - t4 in r2 && e2.push(new it(n2, r2[t4], `"${t4}" is prohibited for ref layers`)); - }), i2.layers.forEach((e3) => { - ot(e3.id) === o2 && (t3 = e3); - }), t3 ? t3.ref ? e2.push(new it(n2, r2.ref, "ref cannot reference another ref layer")) : s2 = ot(t3.type) : e2.push(new it(n2, r2.ref, `ref layer "${o2}" not found`)); - } else if ("background" !== s2) + function mn(t2) { + return yn(t2, "layout"); + } + function vn(t2) { + var e2 = [], r2 = t2.value, n2 = t2.key, i2 = t2.style, a2 = t2.styleSpec; + r2.type || r2.ref || e2.push(new Pt(n2, r2, 'either "type" or "ref" is required')); + var o2, s2 = Tt(r2.type), u2 = Tt(r2.ref); + if (r2.id) + for (var l2 = Tt(r2.id), p3 = 0; p3 < t2.arrayIndex; p3++) { + var c3 = i2.layers[p3]; + Tt(c3.id) === l2 && e2.push(new Pt(n2, r2.id, 'duplicate layer id "' + r2.id + '", previously used at line ' + c3.id.__line__)); + } + if ("ref" in r2) + ["type", "source", "source-layer", "filter", "layout"].forEach(function(t3) { + t3 in r2 && e2.push(new Pt(n2, r2[t3], '"' + t3 + '" is prohibited for ref layers')); + }), i2.layers.forEach(function(t3) { + Tt(t3.id) === u2 && (o2 = t3); + }), o2 ? o2.ref ? e2.push(new Pt(n2, r2.ref, "ref cannot reference another ref layer")) : s2 = Tt(o2.type) : e2.push(new Pt(n2, r2.ref, 'ref layer "' + u2 + '" not found')); + else if ("background" !== s2) if (r2.source) { - const t3 = i2.sources && i2.sources[r2.source], a3 = t3 && ot(t3.type); - t3 ? "vector" === a3 && "raster" === s2 ? e2.push(new it(n2, r2.source, `layer "${r2.id}" requires a raster source`)) : "raster" === a3 && "raster" !== s2 ? e2.push(new it(n2, r2.source, `layer "${r2.id}" requires a vector source`)) : "vector" !== a3 || r2["source-layer"] ? "raster-dem" === a3 && "hillshade" !== s2 ? e2.push(new it(n2, r2.source, "raster-dem source can only be used with layer type 'hillshade'.")) : "line" !== s2 || !r2.paint || !r2.paint["line-gradient"] || "geojson" === a3 && t3.lineMetrics || e2.push(new it(n2, r2, `layer "${r2.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)) : e2.push(new it(n2, r2, `layer "${r2.id}" must specify a "source-layer"`)) : e2.push(new it(n2, r2.source, `source "${r2.source}" not found`)); + var h3 = i2.sources && i2.sources[r2.source], f2 = h3 && Tt(h3.type); + h3 ? "vector" === f2 && "raster" === s2 ? e2.push(new Pt(n2, r2.source, 'layer "' + r2.id + '" requires a raster source')) : "raster" === f2 && "raster" !== s2 ? e2.push(new Pt(n2, r2.source, 'layer "' + r2.id + '" requires a vector source')) : "vector" !== f2 || r2["source-layer"] ? "raster-dem" === f2 && "hillshade" !== s2 ? e2.push(new Pt(n2, r2.source, "raster-dem source can only be used with layer type 'hillshade'.")) : "line" !== s2 || !r2.paint || !r2.paint["line-gradient"] || "geojson" === f2 && h3.lineMetrics || e2.push(new Pt(n2, r2, 'layer "' + r2.id + '" specifies a line-gradient, which requires a GeoJSON source with `lineMetrics` enabled.')) : e2.push(new Pt(n2, r2, 'layer "' + r2.id + '" must specify a "source-layer"')) : e2.push(new Pt(n2, r2.source, 'source "' + r2.source + '" not found')); } else - e2.push(new it(n2, r2, 'missing required property "source"')); - return e2 = e2.concat(Or({ key: n2, value: r2, valueSpec: a2.layer, style: t2.style, styleSpec: t2.styleSpec, objectElementValidators: { "*": () => [], type: () => yn({ key: `${n2}.type`, value: r2.type, valueSpec: a2.layer.type, style: t2.style, styleSpec: t2.styleSpec, object: r2, objectKey: "type" }), filter: rn, layout: (t3) => Or({ layer: r2, key: t3.key, value: t3.value, style: t3.style, styleSpec: t3.styleSpec, objectElementValidators: { "*": (t4) => on2(st({ layerType: s2 }, t4)) } }), paint: (t3) => Or({ layer: r2, key: t3.key, value: t3.value, style: t3.style, styleSpec: t3.styleSpec, objectElementValidators: { "*": (t4) => sn(st({ layerType: s2 }, t4)) } }) } })), e2; - } - function un(t2) { - const e2 = t2.value, r2 = t2.key, n2 = Ar(e2); - return "string" !== n2 ? [new it(r2, e2, `string expected, ${n2} found`)] : []; - } - const cn = { promoteId: function({ key: t2, value: e2 }) { - if ("string" === Ar(e2)) - return un({ key: t2, value: e2 }); - { - const r2 = []; - for (const n2 in e2) - r2.push(...un({ key: `${t2}.${n2}`, value: e2[n2] })); - return r2; - } + e2.push(new Pt(n2, r2, 'missing required property "source"')); + return e2 = e2.concat($r({ key: n2, value: r2, valueSpec: a2.layer, style: t2.style, styleSpec: t2.styleSpec, objectElementValidators: { "*": function() { + return []; + }, type: function() { + return An({ key: n2 + ".type", value: r2.type, valueSpec: a2.layer.type, style: t2.style, styleSpec: t2.styleSpec, object: r2, objectKey: "type" }); + }, filter: fn, layout: function(t3) { + return $r({ layer: r2, key: t3.key, value: t3.value, style: t3.style, styleSpec: t3.styleSpec, objectElementValidators: { "*": function(t4) { + return mn(Bt({ layerType: s2 }, t4)); + } } }); + }, paint: function(t3) { + return $r({ layer: r2, key: t3.key, value: t3.value, style: t3.style, styleSpec: t3.styleSpec, objectElementValidators: { "*": function(t4) { + return dn(Bt({ layerType: s2 }, t4)); + } } }); + } } })); + } + function gn(t2) { + var e2 = t2.value, r2 = t2.key, n2 = Dr(e2); + return "string" !== n2 ? [new Pt(r2, e2, "string expected, " + n2 + " found")] : []; + } + var xn = { promoteId: function(t2) { + var e2 = t2.key, r2 = t2.value; + if ("string" === Dr(r2)) + return gn({ key: e2, value: r2 }); + var n2 = []; + for (var i2 in r2) + n2.push.apply(n2, gn({ key: e2 + "." + i2, value: r2[i2] })); + return n2; } }; - function hn(t2) { - const e2 = t2.value, r2 = t2.key, n2 = t2.styleSpec, i2 = t2.style; + function bn(t2) { + var e2 = t2.value, r2 = t2.key, n2 = t2.styleSpec, i2 = t2.style; if (!e2.type) - return [new it(r2, e2, '"type" is required')]; - const a2 = ot(e2.type); - let s2; - switch (a2) { + return [new Pt(r2, e2, '"type" is required')]; + var a2, o2 = Tt(e2.type); + switch (o2) { case "vector": case "raster": case "raster-dem": - return s2 = Or({ key: r2, value: e2, valueSpec: n2[`source_${a2.replace("-", "_")}`], style: t2.style, styleSpec: n2, objectElementValidators: cn }), s2; + return $r({ key: r2, value: e2, valueSpec: n2["source_" + o2.replace("-", "_")], style: t2.style, styleSpec: n2, objectElementValidators: xn }); case "geojson": - if (s2 = Or({ key: r2, value: e2, valueSpec: n2.source_geojson, style: i2, styleSpec: n2, objectElementValidators: cn }), e2.cluster) - for (const t3 in e2.clusterProperties) { - const [n3, i3] = e2.clusterProperties[t3], a3 = "string" == typeof n3 ? [n3, ["accumulated"], ["get", t3]] : n3; - s2.push(...Nr({ key: `${r2}.${t3}.map`, value: i3, expressionContext: "cluster-map" })), s2.push(...Nr({ key: `${r2}.${t3}.reduce`, value: a3, expressionContext: "cluster-reduce" })); + if (a2 = $r({ key: r2, value: e2, valueSpec: n2.source_geojson, style: i2, styleSpec: n2, objectElementValidators: xn }), e2.cluster) + for (var s2 in e2.clusterProperties) { + var u2 = e2.clusterProperties[s2], l2 = u2[0], p3 = "string" == typeof l2 ? [l2, ["accumulated"], ["get", s2]] : l2; + a2.push.apply(a2, en({ key: r2 + "." + s2 + ".map", value: u2[1], expressionContext: "cluster-map" })), a2.push.apply(a2, en({ key: r2 + "." + s2 + ".reduce", value: p3, expressionContext: "cluster-reduce" })); } - return s2; + return a2; case "video": - return Or({ key: r2, value: e2, valueSpec: n2.source_video, style: i2, styleSpec: n2 }); + return $r({ key: r2, value: e2, valueSpec: n2.source_video, style: i2, styleSpec: n2 }); case "image": - return Or({ key: r2, value: e2, valueSpec: n2.source_image, style: i2, styleSpec: n2 }); + return $r({ key: r2, value: e2, valueSpec: n2.source_image, style: i2, styleSpec: n2 }); case "canvas": - return [new it(r2, null, "Please use runtime APIs to add canvas sources, rather than including them in stylesheets.", "source.canvas")]; + return [new Pt(r2, null, "Please use runtime APIs to add canvas sources, rather than including them in stylesheets.", "source.canvas")]; default: - return Zr({ key: `${r2}.type`, value: e2.type, valueSpec: { values: ["vector", "raster", "raster-dem", "geojson", "video", "image"] }, style: i2, styleSpec: n2 }); + return rn({ key: r2 + ".type", value: e2.type, valueSpec: { values: ["vector", "raster", "raster-dem", "geojson", "video", "image"] }, style: i2, styleSpec: n2 }); } } - function pn(t2) { - const e2 = t2.value, r2 = t2.styleSpec, n2 = r2.light, i2 = t2.style; - let a2 = []; - const s2 = Ar(e2); + function wn(t2) { + var e2 = t2.value, r2 = t2.styleSpec, n2 = r2.light, i2 = t2.style, a2 = [], o2 = Dr(e2); if (void 0 === e2) return a2; - if ("object" !== s2) - return a2 = a2.concat([new it("light", e2, `object expected, ${s2} found`)]), a2; - for (const t3 in e2) { - const s3 = t3.match(/^(.*)-transition$/); - a2 = a2.concat(s3 && n2[s3[1]] && n2[s3[1]].transition ? yn({ key: t3, value: e2[t3], valueSpec: r2.transition, style: i2, styleSpec: r2 }) : n2[t3] ? yn({ key: t3, value: e2[t3], valueSpec: n2[t3], style: i2, styleSpec: r2 }) : [new it(t3, e2[t3], `unknown property "${t3}"`)]); + if ("object" !== o2) + return a2.concat([new Pt("light", e2, "object expected, " + o2 + " found")]); + for (var s2 in e2) { + var u2 = s2.match(/^(.*)-transition$/); + a2 = a2.concat(u2 && n2[u2[1]] && n2[u2[1]].transition ? An({ key: s2, value: e2[s2], valueSpec: r2.transition, style: i2, styleSpec: r2 }) : n2[s2] ? An({ key: s2, value: e2[s2], valueSpec: n2[s2], style: i2, styleSpec: r2 }) : [new Pt(s2, e2[s2], 'unknown property "' + s2 + '"')]); } return a2; } - function fn(t2) { - const e2 = t2.value, r2 = t2.styleSpec, n2 = r2.terrain, i2 = t2.style; - let a2 = []; - const s2 = Ar(e2); - if (void 0 === e2) - return a2; - if ("object" !== s2) - return a2 = a2.concat([new it("terrain", e2, `object expected, ${s2} found`)]), a2; - for (const t3 in e2) - a2 = a2.concat(n2[t3] ? yn({ key: t3, value: e2[t3], valueSpec: n2[t3], style: i2, styleSpec: r2 }) : [new it(t3, e2[t3], `unknown property "${t3}"`)]); - return a2; - } - const dn = { "*": () => [], array: Ur, boolean: function(t2) { - const e2 = t2.value, r2 = t2.key, n2 = Ar(e2); - return "boolean" !== n2 ? [new it(r2, e2, `boolean expected, ${n2} found`)] : []; - }, number: qr, color: function(t2) { - const e2 = t2.key, r2 = t2.value, n2 = Ar(r2); - return "string" !== n2 ? [new it(e2, r2, `color expected, ${n2} found`)] : null === zt(r2) ? [new it(e2, r2, `color expected, "${r2}" found`)] : []; - }, constants: at, enum: Zr, filter: rn, function: jr, layer: ln, object: Or, source: hn, light: pn, terrain: fn, string: un, formatted: function(t2) { - return 0 === un(t2).length ? [] : Nr(t2); + var _n = { "*": function() { + return []; + }, array: Wr, boolean: function(t2) { + var e2 = t2.value, r2 = t2.key, n2 = Dr(e2); + return "boolean" !== n2 ? [new Pt(r2, e2, "boolean expected, " + n2 + " found")] : []; + }, number: Qr, color: function(t2) { + var e2 = t2.key, r2 = t2.value, n2 = Dr(r2); + return "string" !== n2 ? [new Pt(e2, r2, "color expected, " + n2 + " found")] : null === Qt(r2) ? [new Pt(e2, r2, 'color expected, "' + r2 + '" found')] : []; + }, constants: Mt, enum: rn, filter: fn, function: tn, layer: vn, object: $r, source: bn, light: wn, string: gn, formatted: function(t2) { + return 0 === gn(t2).length ? [] : en(t2); }, resolvedImage: function(t2) { - return 0 === un(t2).length ? [] : Nr(t2); - }, padding: function(t2) { - const e2 = t2.key, r2 = t2.value; - if ("array" === Ar(r2)) { - if (r2.length < 1 || r2.length > 4) - return [new it(e2, r2, `padding requires 1 to 4 values; ${r2.length} values found`)]; - const t3 = { type: "number" }; - let n2 = []; - for (let i2 = 0; i2 < r2.length; i2++) - n2 = n2.concat(yn({ key: `${e2}[${i2}]`, value: r2[i2], valueSpec: t3 })); - return n2; - } - return qr({ key: e2, value: r2, valueSpec: {} }); + return 0 === gn(t2).length ? [] : en(t2); } }; - function yn(t2) { - const e2 = t2.value, r2 = t2.valueSpec, n2 = t2.styleSpec; - return r2.expression && kr(ot(e2)) ? jr(t2) : r2.expression && Er(lt(e2)) ? Nr(t2) : r2.type && dn[r2.type] ? dn[r2.type](t2) : Or(st({}, t2, { valueSpec: r2.type ? n2[r2.type] : r2 })); + function An(t2) { + var e2 = t2.value, r2 = t2.valueSpec, n2 = t2.styleSpec; + return r2.expression && Lr(Tt(e2)) ? tn(t2) : r2.expression && Gr(Vt(e2)) ? en(t2) : r2.type && _n[r2.type] ? _n[r2.type](t2) : $r(Bt({}, t2, { valueSpec: r2.type ? n2[r2.type] : r2 })); } - function mn(t2) { - const e2 = t2.value, r2 = t2.key, n2 = un(t2); - return n2.length || (-1 === e2.indexOf("{fontstack}") && n2.push(new it(r2, e2, '"glyphs" url must include a "{fontstack}" token')), -1 === e2.indexOf("{range}") && n2.push(new it(r2, e2, '"glyphs" url must include a "{range}" token'))), n2; + function Sn(t2) { + var e2 = t2.value, r2 = t2.key, n2 = gn(t2); + return n2.length || (-1 === e2.indexOf("{fontstack}") && n2.push(new Pt(r2, e2, '"glyphs" url must include a "{fontstack}" token')), -1 === e2.indexOf("{range}") && n2.push(new Pt(r2, e2, '"glyphs" url must include a "{range}" token'))), n2; } - function gn(t2, e2 = nt) { - let r2 = []; - return r2 = r2.concat(yn({ key: "", value: t2, valueSpec: e2.$root, styleSpec: e2, style: t2, objectElementValidators: { glyphs: mn, "*": () => [] } })), t2.constants && (r2 = r2.concat(at({ key: "constants", value: t2.constants, style: t2, styleSpec: e2 }))), xn(r2); + function kn(t2, e2) { + void 0 === e2 && (e2 = Et); + var r2 = []; + return r2 = r2.concat(An({ key: "", value: t2, valueSpec: e2.$root, styleSpec: e2, style: t2, objectElementValidators: { glyphs: Sn, "*": function() { + return []; + } } })), t2.constants && (r2 = r2.concat(Mt({ key: "constants", value: t2.constants, style: t2, styleSpec: e2 }))), In(r2); } - function xn(t2) { - return [].concat(t2).sort((t3, e2) => t3.line - e2.line); + function In(t2) { + return [].concat(t2).sort(function(t3, e2) { + return t3.line - e2.line; + }); } - function vn(t2) { - return function(...e2) { - return xn(t2.apply(this, e2)); + function zn(t2) { + return function() { + for (var e2 = [], r2 = arguments.length; r2--; ) + e2[r2] = arguments[r2]; + return In(t2.apply(this, e2)); }; } - gn.source = vn(hn), gn.light = vn(pn), gn.terrain = vn(fn), gn.layer = vn(ln), gn.filter = vn(rn), gn.paintProperty = vn(sn), gn.layoutProperty = vn(on2); - const bn = gn, wn = bn.light, _n = bn.paintProperty, An = bn.layoutProperty; - function kn(t2, e2) { - let r2 = false; + kn.source = zn(bn), kn.light = zn(wn), kn.layer = zn(vn), kn.filter = zn(fn), kn.paintProperty = zn(dn), kn.layoutProperty = zn(mn); + var Cn = kn, En = Cn.light, Pn = Cn.paintProperty, Mn = Cn.layoutProperty; + function Bn(t2, e2) { + var r2 = false; if (e2 && e2.length) - for (const n2 of e2) - t2.fire(new et(new Error(n2.message))), r2 = true; + for (var n2 = 0, i2 = e2; n2 < i2.length; n2 += 1) + t2.fire(new zt(new Error(i2[n2].message))), r2 = true; return r2; } - class Sn { - constructor(t2, e2, r2) { - const n2 = this.cells = []; - if (t2 instanceof ArrayBuffer) { - this.arrayBuffer = t2; - const i3 = new Int32Array(this.arrayBuffer); - t2 = i3[0], this.d = (e2 = i3[1]) + 2 * (r2 = i3[2]); - for (let t3 = 0; t3 < this.d * this.d; t3++) { - const e3 = i3[3 + t3], r3 = i3[3 + t3 + 1]; - n2.push(e3 === r3 ? null : i3.subarray(e3, r3)); + var Tn = Vn; + function Vn(t2, e2, r2) { + var n2 = this.cells = []; + if (t2 instanceof ArrayBuffer) { + this.arrayBuffer = t2; + var i2 = new Int32Array(this.arrayBuffer); + t2 = i2[0], this.d = (e2 = i2[1]) + 2 * (r2 = i2[2]); + for (var a2 = 0; a2 < this.d * this.d; a2++) { + var o2 = i2[3 + a2], s2 = i2[3 + a2 + 1]; + n2.push(o2 === s2 ? null : i2.subarray(o2, s2)); + } + var u2 = i2[3 + n2.length + 1]; + this.keys = i2.subarray(i2[3 + n2.length], u2), this.bboxes = i2.subarray(u2), this.insert = this._insertReadonly; + } else { + this.d = e2 + 2 * r2; + for (var l2 = 0; l2 < this.d * this.d; l2++) + n2.push([]); + this.keys = [], this.bboxes = []; + } + this.n = e2, this.extent = t2, this.padding = r2, this.scale = e2 / t2, this.uid = 0; + var p3 = r2 / e2 * t2; + this.min = -p3, this.max = t2 + p3; + } + Vn.prototype.insert = function(t2, e2, r2, n2, i2) { + this._forEachCell(e2, r2, n2, i2, this._insertCell, this.uid++), this.keys.push(t2), this.bboxes.push(e2), this.bboxes.push(r2), this.bboxes.push(n2), this.bboxes.push(i2); + }, Vn.prototype._insertReadonly = function() { + throw "Cannot insert into a GridIndex created from an ArrayBuffer."; + }, Vn.prototype._insertCell = function(t2, e2, r2, n2, i2, a2) { + this.cells[i2].push(a2); + }, Vn.prototype.query = function(t2, e2, r2, n2, i2) { + var a2 = this.min, o2 = this.max; + if (t2 <= a2 && e2 <= a2 && o2 <= r2 && o2 <= n2 && !i2) + return Array.prototype.slice.call(this.keys); + var s2 = []; + return this._forEachCell(t2, e2, r2, n2, this._queryCell, s2, {}, i2), s2; + }, Vn.prototype._queryCell = function(t2, e2, r2, n2, i2, a2, o2, s2) { + var u2 = this.cells[i2]; + if (null !== u2) + for (var l2 = this.keys, p3 = this.bboxes, c3 = 0; c3 < u2.length; c3++) { + var h3 = u2[c3]; + if (void 0 === o2[h3]) { + var f2 = 4 * h3; + (s2 ? s2(p3[f2 + 0], p3[f2 + 1], p3[f2 + 2], p3[f2 + 3]) : t2 <= p3[f2 + 2] && e2 <= p3[f2 + 3] && r2 >= p3[f2 + 0] && n2 >= p3[f2 + 1]) ? (o2[h3] = true, a2.push(l2[h3])) : o2[h3] = false; } - const a2 = i3[3 + n2.length + 1]; - this.keys = i3.subarray(i3[3 + n2.length], a2), this.bboxes = i3.subarray(a2), this.insert = this._insertReadonly; - } else { - this.d = e2 + 2 * r2; - for (let t3 = 0; t3 < this.d * this.d; t3++) - n2.push([]); - this.keys = [], this.bboxes = []; } - this.n = e2, this.extent = t2, this.padding = r2, this.scale = e2 / t2, this.uid = 0; - const i2 = r2 / e2 * t2; - this.min = -i2, this.max = t2 + i2; - } - insert(t2, e2, r2, n2, i2) { - this._forEachCell(e2, r2, n2, i2, this._insertCell, this.uid++, void 0, void 0), this.keys.push(t2), this.bboxes.push(e2), this.bboxes.push(r2), this.bboxes.push(n2), this.bboxes.push(i2); - } - _insertReadonly() { - throw new Error("Cannot insert into a GridIndex created from an ArrayBuffer."); - } - _insertCell(t2, e2, r2, n2, i2, a2) { - this.cells[i2].push(a2); - } - query(t2, e2, r2, n2, i2) { - const a2 = this.min, s2 = this.max; - if (t2 <= a2 && e2 <= a2 && s2 <= r2 && s2 <= n2 && !i2) - return Array.prototype.slice.call(this.keys); - { - const a3 = []; - return this._forEachCell(t2, e2, r2, n2, this._queryCell, a3, {}, i2), a3; - } - } - _queryCell(t2, e2, r2, n2, i2, a2, s2, o2) { - const l2 = this.cells[i2]; - if (null !== l2) { - const i3 = this.keys, u2 = this.bboxes; - for (let c3 = 0; c3 < l2.length; c3++) { - const h3 = l2[c3]; - if (void 0 === s2[h3]) { - const l3 = 4 * h3; - (o2 ? o2(u2[l3 + 0], u2[l3 + 1], u2[l3 + 2], u2[l3 + 3]) : t2 <= u2[l3 + 2] && e2 <= u2[l3 + 3] && r2 >= u2[l3 + 0] && n2 >= u2[l3 + 1]) ? (s2[h3] = true, a2.push(i3[h3])) : s2[h3] = false; - } - } + }, Vn.prototype._forEachCell = function(t2, e2, r2, n2, i2, a2, o2, s2) { + for (var u2 = this._convertToCellCoord(t2), l2 = this._convertToCellCoord(e2), p3 = this._convertToCellCoord(r2), c3 = this._convertToCellCoord(n2), h3 = u2; h3 <= p3; h3++) + for (var f2 = l2; f2 <= c3; f2++) { + var y3 = this.d * f2 + h3; + if ((!s2 || s2(this._convertFromCellCoord(h3), this._convertFromCellCoord(f2), this._convertFromCellCoord(h3 + 1), this._convertFromCellCoord(f2 + 1))) && i2.call(this, t2, e2, r2, n2, y3, a2, o2, s2)) + return; } - } - _forEachCell(t2, e2, r2, n2, i2, a2, s2, o2) { - const l2 = this._convertToCellCoord(t2), u2 = this._convertToCellCoord(e2), c3 = this._convertToCellCoord(r2), h3 = this._convertToCellCoord(n2); - for (let p3 = l2; p3 <= c3; p3++) - for (let l3 = u2; l3 <= h3; l3++) { - const u3 = this.d * l3 + p3; - if ((!o2 || o2(this._convertFromCellCoord(p3), this._convertFromCellCoord(l3), this._convertFromCellCoord(p3 + 1), this._convertFromCellCoord(l3 + 1))) && i2.call(this, t2, e2, r2, n2, u3, a2, s2, o2)) - return; - } - } - _convertFromCellCoord(t2) { - return (t2 - this.padding) / this.scale; - } - _convertToCellCoord(t2) { - return Math.max(0, Math.min(this.d - 1, Math.floor(t2 * this.scale) + this.padding)); - } - toArrayBuffer() { - if (this.arrayBuffer) - return this.arrayBuffer; - const t2 = this.cells, e2 = 3 + this.cells.length + 1 + 1; - let r2 = 0; - for (let t3 = 0; t3 < this.cells.length; t3++) - r2 += this.cells[t3].length; - const n2 = new Int32Array(e2 + r2 + this.keys.length + this.bboxes.length); - n2[0] = this.extent, n2[1] = this.n, n2[2] = this.padding; - let i2 = e2; - for (let e3 = 0; e3 < t2.length; e3++) { - const r3 = t2[e3]; - n2[3 + e3] = i2, n2.set(r3, i2), i2 += r3.length; - } - return n2[3 + t2.length] = i2, n2.set(this.keys, i2), i2 += this.keys.length, n2[3 + t2.length + 1] = i2, n2.set(this.bboxes, i2), i2 += this.bboxes.length, n2.buffer; - } - static serialize(t2, e2) { - const r2 = t2.toArrayBuffer(); - return e2 && e2.push(r2), { buffer: r2 }; - } - static deserialize(t2) { - return new Sn(t2.buffer); - } - } - const In = {}; - function Mn(t2, e2, r2 = {}) { - if (In[t2]) - throw new Error(`${t2} is already registered.`); - Object.defineProperty(e2, "_classRegistryKey", { value: t2, writeable: false }), In[t2] = { klass: e2, omit: r2.omit || [], shallow: r2.shallow || [] }; - } - Mn("Object", Object), Mn("TransferableGridIndex", Sn), Mn("Color", Ft), Mn("Error", Error), Mn("AJAXError", q), Mn("ResolvedImage", Rt), Mn("StylePropertyFunction", $r), Mn("StyleExpression", Vr, { omit: ["_evaluator"] }), Mn("ZoomDependentExpression", Lr), Mn("ZoomConstantExpression", Tr), Mn("CompoundExpression", Wt, { omit: ["_evaluate"] }); - for (const t2 in fr) - fr[t2]._classRegistryKey || Mn(`Expression_${t2}`, fr[t2]); - function zn(t2) { + }, Vn.prototype._convertFromCellCoord = function(t2) { + return (t2 - this.padding) / this.scale; + }, Vn.prototype._convertToCellCoord = function(t2) { + return Math.max(0, Math.min(this.d - 1, Math.floor(t2 * this.scale) + this.padding)); + }, Vn.prototype.toArrayBuffer = function() { + if (this.arrayBuffer) + return this.arrayBuffer; + for (var t2 = this.cells, e2 = 3 + this.cells.length + 1 + 1, r2 = 0, n2 = 0; n2 < this.cells.length; n2++) + r2 += this.cells[n2].length; + var i2 = new Int32Array(e2 + r2 + this.keys.length + this.bboxes.length); + i2[0] = this.extent, i2[1] = this.n, i2[2] = this.padding; + for (var a2 = e2, o2 = 0; o2 < t2.length; o2++) { + var s2 = t2[o2]; + i2[3 + o2] = a2, i2.set(s2, a2), a2 += s2.length; + } + return i2[3 + t2.length] = a2, i2.set(this.keys, a2), i2[3 + t2.length + 1] = a2 += this.keys.length, i2.set(this.bboxes, a2), a2 += this.bboxes.length, i2.buffer; + }; + var Fn = o.ImageData, Dn = o.ImageBitmap, Ln = {}; + function On(t2, e2, r2) { + void 0 === r2 && (r2 = {}), Object.defineProperty(e2, "_classRegistryKey", { value: t2, writeable: false }), Ln[t2] = { klass: e2, omit: r2.omit || [], shallow: r2.shallow || [] }; + } + for (var Rn in On("Object", Object), Tn.serialize = function(t2, e2) { + var r2 = t2.toArrayBuffer(); + return e2 && e2.push(r2), { buffer: r2 }; + }, Tn.deserialize = function(t2) { + return new Tn(t2.buffer); + }, On("Grid", Tn), On("Color", te), On("Error", Error), On("ResolvedImage", ie), On("StylePropertyFunction", Yr), On("StyleExpression", Kr, { omit: ["_evaluator"] }), On("ZoomDependentExpression", Jr), On("ZoomConstantExpression", Xr), On("CompoundExpression", xe, { omit: ["_evaluate"] }), Ir) + Ir[Rn]._classRegistryKey || On("Expression_" + Rn, Ir[Rn]); + function Un(t2) { return t2 && "undefined" != typeof ArrayBuffer && (t2 instanceof ArrayBuffer || t2.constructor && "ArrayBuffer" === t2.constructor.name); } - function Bn(t2, e2) { - if (null == t2 || "boolean" == typeof t2 || "number" == typeof t2 || "string" == typeof t2 || t2 instanceof Boolean || t2 instanceof Number || t2 instanceof String || t2 instanceof Date || t2 instanceof RegExp || t2 instanceof Blob) + function jn(t2) { + return Dn && t2 instanceof Dn; + } + function qn(t2, e2) { + if (null == t2 || "boolean" == typeof t2 || "number" == typeof t2 || "string" == typeof t2 || t2 instanceof Boolean || t2 instanceof Number || t2 instanceof String || t2 instanceof Date || t2 instanceof RegExp) return t2; - if (zn(t2)) - return e2 && e2.push(t2), t2; - if (A2(t2)) + if (Un(t2) || jn(t2)) return e2 && e2.push(t2), t2; if (ArrayBuffer.isView(t2)) { - const r2 = t2; + var r2 = t2; return e2 && e2.push(r2.buffer), r2; } - if (t2 instanceof ImageData) + if (t2 instanceof Fn) return e2 && e2.push(t2.data.buffer), t2; if (Array.isArray(t2)) { - const r2 = []; - for (const n2 of t2) - r2.push(Bn(n2, e2)); - return r2; + for (var n2 = [], i2 = 0, a2 = t2; i2 < a2.length; i2 += 1) + n2.push(qn(a2[i2], e2)); + return n2; } if ("object" == typeof t2) { - const r2 = t2.constructor, n2 = r2._classRegistryKey; - if (!n2) + var o2 = t2.constructor, s2 = o2._classRegistryKey; + if (!s2) throw new Error("can't serialize object of unregistered class"); - if (!In[n2]) - throw new Error(`${n2} is not registered.`); - const i2 = r2.serialize ? r2.serialize(t2, e2) : {}; - if (r2.serialize) { - if (e2 && i2 === e2[e2.length - 1]) - throw new Error("statically serialized object won't survive transfer of $name property"); - } else { - for (const r3 in t2) { - if (!t2.hasOwnProperty(r3)) - continue; - if (In[n2].omit.indexOf(r3) >= 0) - continue; - const a2 = t2[r3]; - i2[r3] = In[n2].shallow.indexOf(r3) >= 0 ? a2 : Bn(a2, e2); - } - t2 instanceof Error && (i2.message = t2.message); + var u2 = o2.serialize ? o2.serialize(t2, e2) : {}; + if (!o2.serialize) { + for (var l2 in t2) + if (t2.hasOwnProperty(l2) && !(Ln[s2].omit.indexOf(l2) >= 0)) { + var p3 = t2[l2]; + u2[l2] = Ln[s2].shallow.indexOf(l2) >= 0 ? p3 : qn(p3, e2); + } + t2 instanceof Error && (u2.message = t2.message); } - if (i2.$name) + if (u2.$name) throw new Error("$name property is reserved for worker serialization logic."); - return "Object" !== n2 && (i2.$name = n2), i2; + return "Object" !== s2 && (u2.$name = s2), u2; } throw new Error("can't serialize object of type " + typeof t2); } - function Cn(t2) { - if (null == t2 || "boolean" == typeof t2 || "number" == typeof t2 || "string" == typeof t2 || t2 instanceof Boolean || t2 instanceof Number || t2 instanceof String || t2 instanceof Date || t2 instanceof RegExp || t2 instanceof Blob || zn(t2) || A2(t2) || ArrayBuffer.isView(t2) || t2 instanceof ImageData) + function Nn(t2) { + if (null == t2 || "boolean" == typeof t2 || "number" == typeof t2 || "string" == typeof t2 || t2 instanceof Boolean || t2 instanceof Number || t2 instanceof String || t2 instanceof Date || t2 instanceof RegExp || Un(t2) || jn(t2) || ArrayBuffer.isView(t2) || t2 instanceof Fn) return t2; if (Array.isArray(t2)) - return t2.map(Cn); + return t2.map(Nn); if ("object" == typeof t2) { - const e2 = t2.$name || "Object"; - if (!In[e2]) - throw new Error(`can't deserialize unregistered class ${e2}`); - const { klass: r2 } = In[e2]; + var e2 = t2.$name || "Object", r2 = Ln[e2].klass; if (!r2) - throw new Error(`can't deserialize unregistered class ${e2}`); + throw new Error("can't deserialize unregistered class " + e2); if (r2.deserialize) return r2.deserialize(t2); - const n2 = Object.create(r2.prototype); - for (const r3 of Object.keys(t2)) { - if ("$name" === r3) - continue; - const i2 = t2[r3]; - n2[r3] = In[e2].shallow.indexOf(r3) >= 0 ? i2 : Cn(i2); + for (var n2 = Object.create(r2.prototype), i2 = 0, a2 = Object.keys(t2); i2 < a2.length; i2 += 1) { + var o2 = a2[i2]; + if ("$name" !== o2) { + var s2 = t2[o2]; + n2[o2] = Ln[e2].shallow.indexOf(o2) >= 0 ? s2 : Nn(s2); + } } return n2; } throw new Error("can't deserialize object of type " + typeof t2); } - class Pn { - constructor() { - this.first = true; - } - update(t2, e2) { - const r2 = Math.floor(t2); - return this.first ? (this.first = false, this.lastIntegerZoom = r2, this.lastIntegerZoomTime = 0, this.lastZoom = t2, this.lastFloorZoom = r2, true) : (this.lastFloorZoom > r2 ? (this.lastIntegerZoom = r2 + 1, this.lastIntegerZoomTime = e2) : this.lastFloorZoom < r2 && (this.lastIntegerZoom = r2, this.lastIntegerZoomTime = e2), t2 !== this.lastZoom && (this.lastZoom = t2, this.lastFloorZoom = r2, true)); - } - } - const Vn = { "Latin-1 Supplement": (t2) => t2 >= 128 && t2 <= 255, Arabic: (t2) => t2 >= 1536 && t2 <= 1791, "Arabic Supplement": (t2) => t2 >= 1872 && t2 <= 1919, "Arabic Extended-A": (t2) => t2 >= 2208 && t2 <= 2303, "Hangul Jamo": (t2) => t2 >= 4352 && t2 <= 4607, "Unified Canadian Aboriginal Syllabics": (t2) => t2 >= 5120 && t2 <= 5759, Khmer: (t2) => t2 >= 6016 && t2 <= 6143, "Unified Canadian Aboriginal Syllabics Extended": (t2) => t2 >= 6320 && t2 <= 6399, "General Punctuation": (t2) => t2 >= 8192 && t2 <= 8303, "Letterlike Symbols": (t2) => t2 >= 8448 && t2 <= 8527, "Number Forms": (t2) => t2 >= 8528 && t2 <= 8591, "Miscellaneous Technical": (t2) => t2 >= 8960 && t2 <= 9215, "Control Pictures": (t2) => t2 >= 9216 && t2 <= 9279, "Optical Character Recognition": (t2) => t2 >= 9280 && t2 <= 9311, "Enclosed Alphanumerics": (t2) => t2 >= 9312 && t2 <= 9471, "Geometric Shapes": (t2) => t2 >= 9632 && t2 <= 9727, "Miscellaneous Symbols": (t2) => t2 >= 9728 && t2 <= 9983, "Miscellaneous Symbols and Arrows": (t2) => t2 >= 11008 && t2 <= 11263, "CJK Radicals Supplement": (t2) => t2 >= 11904 && t2 <= 12031, "Kangxi Radicals": (t2) => t2 >= 12032 && t2 <= 12255, "Ideographic Description Characters": (t2) => t2 >= 12272 && t2 <= 12287, "CJK Symbols and Punctuation": (t2) => t2 >= 12288 && t2 <= 12351, Hiragana: (t2) => t2 >= 12352 && t2 <= 12447, Katakana: (t2) => t2 >= 12448 && t2 <= 12543, Bopomofo: (t2) => t2 >= 12544 && t2 <= 12591, "Hangul Compatibility Jamo": (t2) => t2 >= 12592 && t2 <= 12687, Kanbun: (t2) => t2 >= 12688 && t2 <= 12703, "Bopomofo Extended": (t2) => t2 >= 12704 && t2 <= 12735, "CJK Strokes": (t2) => t2 >= 12736 && t2 <= 12783, "Katakana Phonetic Extensions": (t2) => t2 >= 12784 && t2 <= 12799, "Enclosed CJK Letters and Months": (t2) => t2 >= 12800 && t2 <= 13055, "CJK Compatibility": (t2) => t2 >= 13056 && t2 <= 13311, "CJK Unified Ideographs Extension A": (t2) => t2 >= 13312 && t2 <= 19903, "Yijing Hexagram Symbols": (t2) => t2 >= 19904 && t2 <= 19967, "CJK Unified Ideographs": (t2) => t2 >= 19968 && t2 <= 40959, "Yi Syllables": (t2) => t2 >= 40960 && t2 <= 42127, "Yi Radicals": (t2) => t2 >= 42128 && t2 <= 42191, "Hangul Jamo Extended-A": (t2) => t2 >= 43360 && t2 <= 43391, "Hangul Syllables": (t2) => t2 >= 44032 && t2 <= 55215, "Hangul Jamo Extended-B": (t2) => t2 >= 55216 && t2 <= 55295, "Private Use Area": (t2) => t2 >= 57344 && t2 <= 63743, "CJK Compatibility Ideographs": (t2) => t2 >= 63744 && t2 <= 64255, "Arabic Presentation Forms-A": (t2) => t2 >= 64336 && t2 <= 65023, "Vertical Forms": (t2) => t2 >= 65040 && t2 <= 65055, "CJK Compatibility Forms": (t2) => t2 >= 65072 && t2 <= 65103, "Small Form Variants": (t2) => t2 >= 65104 && t2 <= 65135, "Arabic Presentation Forms-B": (t2) => t2 >= 65136 && t2 <= 65279, "Halfwidth and Fullwidth Forms": (t2) => t2 >= 65280 && t2 <= 65519 }; - function En(t2) { - for (const e2 of t2) - if (Ln(e2.charCodeAt(0))) + var Kn = function() { + this.first = true; + }; + Kn.prototype.update = function(t2, e2) { + var r2 = Math.floor(t2); + return this.first ? (this.first = false, this.lastIntegerZoom = r2, this.lastIntegerZoomTime = 0, this.lastZoom = t2, this.lastFloorZoom = r2, true) : (this.lastFloorZoom > r2 ? (this.lastIntegerZoom = r2 + 1, this.lastIntegerZoomTime = e2) : this.lastFloorZoom < r2 && (this.lastIntegerZoom = r2, this.lastIntegerZoomTime = e2), t2 !== this.lastZoom && (this.lastZoom = t2, this.lastFloorZoom = r2, true)); + }; + var Gn = { "Latin-1 Supplement": function(t2) { + return t2 >= 128 && t2 <= 255; + }, Arabic: function(t2) { + return t2 >= 1536 && t2 <= 1791; + }, "Arabic Supplement": function(t2) { + return t2 >= 1872 && t2 <= 1919; + }, "Arabic Extended-A": function(t2) { + return t2 >= 2208 && t2 <= 2303; + }, "Hangul Jamo": function(t2) { + return t2 >= 4352 && t2 <= 4607; + }, "Unified Canadian Aboriginal Syllabics": function(t2) { + return t2 >= 5120 && t2 <= 5759; + }, Khmer: function(t2) { + return t2 >= 6016 && t2 <= 6143; + }, "Unified Canadian Aboriginal Syllabics Extended": function(t2) { + return t2 >= 6320 && t2 <= 6399; + }, "General Punctuation": function(t2) { + return t2 >= 8192 && t2 <= 8303; + }, "Letterlike Symbols": function(t2) { + return t2 >= 8448 && t2 <= 8527; + }, "Number Forms": function(t2) { + return t2 >= 8528 && t2 <= 8591; + }, "Miscellaneous Technical": function(t2) { + return t2 >= 8960 && t2 <= 9215; + }, "Control Pictures": function(t2) { + return t2 >= 9216 && t2 <= 9279; + }, "Optical Character Recognition": function(t2) { + return t2 >= 9280 && t2 <= 9311; + }, "Enclosed Alphanumerics": function(t2) { + return t2 >= 9312 && t2 <= 9471; + }, "Geometric Shapes": function(t2) { + return t2 >= 9632 && t2 <= 9727; + }, "Miscellaneous Symbols": function(t2) { + return t2 >= 9728 && t2 <= 9983; + }, "Miscellaneous Symbols and Arrows": function(t2) { + return t2 >= 11008 && t2 <= 11263; + }, "CJK Radicals Supplement": function(t2) { + return t2 >= 11904 && t2 <= 12031; + }, "Kangxi Radicals": function(t2) { + return t2 >= 12032 && t2 <= 12255; + }, "Ideographic Description Characters": function(t2) { + return t2 >= 12272 && t2 <= 12287; + }, "CJK Symbols and Punctuation": function(t2) { + return t2 >= 12288 && t2 <= 12351; + }, Hiragana: function(t2) { + return t2 >= 12352 && t2 <= 12447; + }, Katakana: function(t2) { + return t2 >= 12448 && t2 <= 12543; + }, Bopomofo: function(t2) { + return t2 >= 12544 && t2 <= 12591; + }, "Hangul Compatibility Jamo": function(t2) { + return t2 >= 12592 && t2 <= 12687; + }, Kanbun: function(t2) { + return t2 >= 12688 && t2 <= 12703; + }, "Bopomofo Extended": function(t2) { + return t2 >= 12704 && t2 <= 12735; + }, "CJK Strokes": function(t2) { + return t2 >= 12736 && t2 <= 12783; + }, "Katakana Phonetic Extensions": function(t2) { + return t2 >= 12784 && t2 <= 12799; + }, "Enclosed CJK Letters and Months": function(t2) { + return t2 >= 12800 && t2 <= 13055; + }, "CJK Compatibility": function(t2) { + return t2 >= 13056 && t2 <= 13311; + }, "CJK Unified Ideographs Extension A": function(t2) { + return t2 >= 13312 && t2 <= 19903; + }, "Yijing Hexagram Symbols": function(t2) { + return t2 >= 19904 && t2 <= 19967; + }, "CJK Unified Ideographs": function(t2) { + return t2 >= 19968 && t2 <= 40959; + }, "Yi Syllables": function(t2) { + return t2 >= 40960 && t2 <= 42127; + }, "Yi Radicals": function(t2) { + return t2 >= 42128 && t2 <= 42191; + }, "Hangul Jamo Extended-A": function(t2) { + return t2 >= 43360 && t2 <= 43391; + }, "Hangul Syllables": function(t2) { + return t2 >= 44032 && t2 <= 55215; + }, "Hangul Jamo Extended-B": function(t2) { + return t2 >= 55216 && t2 <= 55295; + }, "Private Use Area": function(t2) { + return t2 >= 57344 && t2 <= 63743; + }, "CJK Compatibility Ideographs": function(t2) { + return t2 >= 63744 && t2 <= 64255; + }, "Arabic Presentation Forms-A": function(t2) { + return t2 >= 64336 && t2 <= 65023; + }, "Vertical Forms": function(t2) { + return t2 >= 65040 && t2 <= 65055; + }, "CJK Compatibility Forms": function(t2) { + return t2 >= 65072 && t2 <= 65103; + }, "Small Form Variants": function(t2) { + return t2 >= 65104 && t2 <= 65135; + }, "Arabic Presentation Forms-B": function(t2) { + return t2 >= 65136 && t2 <= 65279; + }, "Halfwidth and Fullwidth Forms": function(t2) { + return t2 >= 65280 && t2 <= 65519; + } }; + function Zn(t2) { + for (var e2 = 0, r2 = t2; e2 < r2.length; e2 += 1) + if (Xn(r2[e2].charCodeAt(0))) return true; return false; } - function Fn(t2) { - for (const e2 of t2) - if (!Tn(e2.charCodeAt(0))) - return false; - return true; - } - function Tn(t2) { - return !(Vn.Arabic(t2) || Vn["Arabic Supplement"](t2) || Vn["Arabic Extended-A"](t2) || Vn["Arabic Presentation Forms-A"](t2) || Vn["Arabic Presentation Forms-B"](t2)); - } - function Ln(t2) { - return !(746 !== t2 && 747 !== t2 && (t2 < 4352 || !(Vn["Bopomofo Extended"](t2) || Vn.Bopomofo(t2) || Vn["CJK Compatibility Forms"](t2) && !(t2 >= 65097 && t2 <= 65103) || Vn["CJK Compatibility Ideographs"](t2) || Vn["CJK Compatibility"](t2) || Vn["CJK Radicals Supplement"](t2) || Vn["CJK Strokes"](t2) || !(!Vn["CJK Symbols and Punctuation"](t2) || t2 >= 12296 && t2 <= 12305 || t2 >= 12308 && t2 <= 12319 || 12336 === t2) || Vn["CJK Unified Ideographs Extension A"](t2) || Vn["CJK Unified Ideographs"](t2) || Vn["Enclosed CJK Letters and Months"](t2) || Vn["Hangul Compatibility Jamo"](t2) || Vn["Hangul Jamo Extended-A"](t2) || Vn["Hangul Jamo Extended-B"](t2) || Vn["Hangul Jamo"](t2) || Vn["Hangul Syllables"](t2) || Vn.Hiragana(t2) || Vn["Ideographic Description Characters"](t2) || Vn.Kanbun(t2) || Vn["Kangxi Radicals"](t2) || Vn["Katakana Phonetic Extensions"](t2) || Vn.Katakana(t2) && 12540 !== t2 || !(!Vn["Halfwidth and Fullwidth Forms"](t2) || 65288 === t2 || 65289 === t2 || 65293 === t2 || t2 >= 65306 && t2 <= 65310 || 65339 === t2 || 65341 === t2 || 65343 === t2 || t2 >= 65371 && t2 <= 65503 || 65507 === t2 || t2 >= 65512 && t2 <= 65519) || !(!Vn["Small Form Variants"](t2) || t2 >= 65112 && t2 <= 65118 || t2 >= 65123 && t2 <= 65126) || Vn["Unified Canadian Aboriginal Syllabics"](t2) || Vn["Unified Canadian Aboriginal Syllabics Extended"](t2) || Vn["Vertical Forms"](t2) || Vn["Yijing Hexagram Symbols"](t2) || Vn["Yi Syllables"](t2) || Vn["Yi Radicals"](t2)))); + function Xn(t2) { + return !(746 !== t2 && 747 !== t2 && (t2 < 4352 || !(Gn["Bopomofo Extended"](t2) || Gn.Bopomofo(t2) || Gn["CJK Compatibility Forms"](t2) && !(t2 >= 65097 && t2 <= 65103) || Gn["CJK Compatibility Ideographs"](t2) || Gn["CJK Compatibility"](t2) || Gn["CJK Radicals Supplement"](t2) || Gn["CJK Strokes"](t2) || !(!Gn["CJK Symbols and Punctuation"](t2) || t2 >= 12296 && t2 <= 12305 || t2 >= 12308 && t2 <= 12319 || 12336 === t2) || Gn["CJK Unified Ideographs Extension A"](t2) || Gn["CJK Unified Ideographs"](t2) || Gn["Enclosed CJK Letters and Months"](t2) || Gn["Hangul Compatibility Jamo"](t2) || Gn["Hangul Jamo Extended-A"](t2) || Gn["Hangul Jamo Extended-B"](t2) || Gn["Hangul Jamo"](t2) || Gn["Hangul Syllables"](t2) || Gn.Hiragana(t2) || Gn["Ideographic Description Characters"](t2) || Gn.Kanbun(t2) || Gn["Kangxi Radicals"](t2) || Gn["Katakana Phonetic Extensions"](t2) || Gn.Katakana(t2) && 12540 !== t2 || !(!Gn["Halfwidth and Fullwidth Forms"](t2) || 65288 === t2 || 65289 === t2 || 65293 === t2 || t2 >= 65306 && t2 <= 65310 || 65339 === t2 || 65341 === t2 || 65343 === t2 || t2 >= 65371 && t2 <= 65503 || 65507 === t2 || t2 >= 65512 && t2 <= 65519) || !(!Gn["Small Form Variants"](t2) || t2 >= 65112 && t2 <= 65118 || t2 >= 65123 && t2 <= 65126) || Gn["Unified Canadian Aboriginal Syllabics"](t2) || Gn["Unified Canadian Aboriginal Syllabics Extended"](t2) || Gn["Vertical Forms"](t2) || Gn["Yijing Hexagram Symbols"](t2) || Gn["Yi Syllables"](t2) || Gn["Yi Radicals"](t2)))); } - function Dn(t2) { - return !(Ln(t2) || function(t3) { - return !!(Vn["Latin-1 Supplement"](t3) && (167 === t3 || 169 === t3 || 174 === t3 || 177 === t3 || 188 === t3 || 189 === t3 || 190 === t3 || 215 === t3 || 247 === t3) || Vn["General Punctuation"](t3) && (8214 === t3 || 8224 === t3 || 8225 === t3 || 8240 === t3 || 8241 === t3 || 8251 === t3 || 8252 === t3 || 8258 === t3 || 8263 === t3 || 8264 === t3 || 8265 === t3 || 8273 === t3) || Vn["Letterlike Symbols"](t3) || Vn["Number Forms"](t3) || Vn["Miscellaneous Technical"](t3) && (t3 >= 8960 && t3 <= 8967 || t3 >= 8972 && t3 <= 8991 || t3 >= 8996 && t3 <= 9e3 || 9003 === t3 || t3 >= 9085 && t3 <= 9114 || t3 >= 9150 && t3 <= 9165 || 9167 === t3 || t3 >= 9169 && t3 <= 9179 || t3 >= 9186 && t3 <= 9215) || Vn["Control Pictures"](t3) && 9251 !== t3 || Vn["Optical Character Recognition"](t3) || Vn["Enclosed Alphanumerics"](t3) || Vn["Geometric Shapes"](t3) || Vn["Miscellaneous Symbols"](t3) && !(t3 >= 9754 && t3 <= 9759) || Vn["Miscellaneous Symbols and Arrows"](t3) && (t3 >= 11026 && t3 <= 11055 || t3 >= 11088 && t3 <= 11097 || t3 >= 11192 && t3 <= 11243) || Vn["CJK Symbols and Punctuation"](t3) || Vn.Katakana(t3) || Vn["Private Use Area"](t3) || Vn["CJK Compatibility Forms"](t3) || Vn["Small Form Variants"](t3) || Vn["Halfwidth and Fullwidth Forms"](t3) || 8734 === t3 || 8756 === t3 || 8757 === t3 || t3 >= 9984 && t3 <= 10087 || t3 >= 10102 && t3 <= 10131 || 65532 === t3 || 65533 === t3); + function Jn(t2) { + return !(Xn(t2) || function(t3) { + return !!(Gn["Latin-1 Supplement"](t3) && (167 === t3 || 169 === t3 || 174 === t3 || 177 === t3 || 188 === t3 || 189 === t3 || 190 === t3 || 215 === t3 || 247 === t3) || Gn["General Punctuation"](t3) && (8214 === t3 || 8224 === t3 || 8225 === t3 || 8240 === t3 || 8241 === t3 || 8251 === t3 || 8252 === t3 || 8258 === t3 || 8263 === t3 || 8264 === t3 || 8265 === t3 || 8273 === t3) || Gn["Letterlike Symbols"](t3) || Gn["Number Forms"](t3) || Gn["Miscellaneous Technical"](t3) && (t3 >= 8960 && t3 <= 8967 || t3 >= 8972 && t3 <= 8991 || t3 >= 8996 && t3 <= 9e3 || 9003 === t3 || t3 >= 9085 && t3 <= 9114 || t3 >= 9150 && t3 <= 9165 || 9167 === t3 || t3 >= 9169 && t3 <= 9179 || t3 >= 9186 && t3 <= 9215) || Gn["Control Pictures"](t3) && 9251 !== t3 || Gn["Optical Character Recognition"](t3) || Gn["Enclosed Alphanumerics"](t3) || Gn["Geometric Shapes"](t3) || Gn["Miscellaneous Symbols"](t3) && !(t3 >= 9754 && t3 <= 9759) || Gn["Miscellaneous Symbols and Arrows"](t3) && (t3 >= 11026 && t3 <= 11055 || t3 >= 11088 && t3 <= 11097 || t3 >= 11192 && t3 <= 11243) || Gn["CJK Symbols and Punctuation"](t3) || Gn.Katakana(t3) || Gn["Private Use Area"](t3) || Gn["CJK Compatibility Forms"](t3) || Gn["Small Form Variants"](t3) || Gn["Halfwidth and Fullwidth Forms"](t3) || 8734 === t3 || 8756 === t3 || 8757 === t3 || t3 >= 9984 && t3 <= 10087 || t3 >= 10102 && t3 <= 10131 || 65532 === t3 || 65533 === t3); }(t2)); } - function $n(t2) { - return t2 >= 1424 && t2 <= 2303 || Vn["Arabic Presentation Forms-A"](t2) || Vn["Arabic Presentation Forms-B"](t2); + function Hn(t2) { + return t2 >= 1424 && t2 <= 2303 || Gn["Arabic Presentation Forms-A"](t2) || Gn["Arabic Presentation Forms-B"](t2); } - function Rn(t2, e2) { - return !(!e2 && $n(t2) || t2 >= 2304 && t2 <= 3583 || t2 >= 3840 && t2 <= 4255 || Vn.Khmer(t2)); + function Yn(t2, e2) { + return !(!e2 && Hn(t2) || t2 >= 2304 && t2 <= 3583 || t2 >= 3840 && t2 <= 4255 || Gn.Khmer(t2)); } - function On(t2) { - for (const e2 of t2) - if ($n(e2.charCodeAt(0))) + function $n(t2) { + for (var e2 = 0, r2 = t2; e2 < r2.length; e2 += 1) + if (Hn(r2[e2].charCodeAt(0))) return true; return false; } - const Un = "deferred", qn = "loading", jn = "loaded"; - let Nn = null, Zn = "unavailable", Kn = null; - const Gn = function(t2) { - t2 && "string" == typeof t2 && t2.indexOf("NetworkError") > -1 && (Zn = "error"), Nn && Nn(t2); + var Wn = null, Qn = "unavailable", ti = null, ei = function(t2) { + t2 && "string" == typeof t2 && t2.indexOf("NetworkError") > -1 && (Qn = "error"), Wn && Wn(t2); }; - function Jn() { - Xn.fire(new tt("pluginStateChange", { pluginStatus: Zn, pluginURL: Kn })); + function ri() { + ni.fire(new It("pluginStateChange", { pluginStatus: Qn, pluginURL: ti })); } - const Xn = new rt(), Yn = function() { - return Zn; - }, Hn = function() { - if (Zn !== Un || !Kn) + var ni = new Ct(), ii = function() { + return Qn; + }, ai = function() { + if ("deferred" !== Qn || !ti) throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified"); - Zn = qn, Jn(), Kn && K({ url: Kn }, (t2) => { - t2 ? Gn(t2) : (Zn = jn, Jn()); + Qn = "loading", ri(), ti && bt({ url: ti }, function(t2) { + t2 ? ei(t2) : (Qn = "loaded", ri()); }); - }, Wn = { applyArabicShaping: null, processBidirectionalText: null, processStyledBidirectionalText: null, isLoaded: () => Zn === jn || null != Wn.applyArabicShaping, isLoading: () => Zn === qn, setState(t2) { - if (!g()) - throw new Error("Cannot set the state of the rtl-text-plugin when not in the web-worker context"); - Zn = t2.pluginStatus, Kn = t2.pluginURL; - }, isParsed() { - if (!g()) - throw new Error("rtl-text-plugin is only parsed on the worker-threads"); - return null != Wn.applyArabicShaping && null != Wn.processBidirectionalText && null != Wn.processStyledBidirectionalText; - }, getPluginURL() { - if (!g()) - throw new Error("rtl-text-plugin url can only be queried from the worker threads"); - return Kn; - } }; - class Qn { - constructor(t2, e2) { - this.zoom = t2, e2 ? (this.now = e2.now, this.fadeDuration = e2.fadeDuration, this.zoomHistory = e2.zoomHistory, this.transition = e2.transition) : (this.now = 0, this.fadeDuration = 0, this.zoomHistory = new Pn(), this.transition = {}); - } - isSupportedScript(t2) { - return function(t3, e2) { - for (const r2 of t3) - if (!Rn(r2.charCodeAt(0), e2)) - return false; - return true; - }(t2, Wn.isLoaded()); - } - crossFadingFactor() { - return 0 === this.fadeDuration ? 1 : Math.min((this.now - this.zoomHistory.lastIntegerZoomTime) / this.fadeDuration, 1); - } - getCrossfadeParameters() { - const t2 = this.zoom, e2 = t2 - Math.floor(t2), r2 = this.crossFadingFactor(); - return t2 > this.zoomHistory.lastIntegerZoom ? { fromScale: 2, toScale: 1, t: e2 + (1 - e2) * r2 } : { fromScale: 0.5, toScale: 1, t: 1 - (1 - r2) * e2 }; - } - } - class ti { - constructor(t2, e2) { - this.property = t2, this.value = e2, this.expression = function(t3, e3) { - if (kr(t3)) - return new $r(t3, e3); - if (Er(t3)) { - const r2 = Dr(t3, e3); - if ("error" === r2.result) - throw new Error(r2.value.map((t4) => `${t4.key}: ${t4.message}`).join(", ")); - return r2.value; - } - { - let r2 = t3; - return "color" === e3.type && "string" == typeof t3 ? r2 = Ft.parse(t3) : "padding" !== e3.type || "number" != typeof t3 && !Array.isArray(t3) || (r2 = $t.parse(t3)), { kind: "constant", evaluate: () => r2 }; - } - }(void 0 === e2 ? t2.specification.default : e2, t2.specification); - } - isDataDriven() { - return "source" === this.expression.kind || "composite" === this.expression.kind; - } - possiblyEvaluate(t2, e2, r2) { - return this.property.possiblyEvaluate(this, t2, e2, r2); - } - } - class ei { - constructor(t2) { - this.property = t2, this.value = new ti(t2, void 0); - } - transitioned(t2, e2) { - return new ni(this.property, this.value, e2, o({}, t2.transition, this.transition), t2.now); - } - untransitioned() { - return new ni(this.property, this.value, null, {}, 0); - } - } - class ri { - constructor(t2) { - this._properties = t2, this._values = Object.create(t2.defaultTransitionablePropertyValues); - } - getValue(t2) { - return p2(this._values[t2].value.value); - } - setValue(t2, e2) { - Object.prototype.hasOwnProperty.call(this._values, t2) || (this._values[t2] = new ei(this._values[t2].property)), this._values[t2].value = new ti(this._values[t2].property, null === e2 ? void 0 : p2(e2)); - } - getTransition(t2) { - return p2(this._values[t2].transition); - } - setTransition(t2, e2) { - Object.prototype.hasOwnProperty.call(this._values, t2) || (this._values[t2] = new ei(this._values[t2].property)), this._values[t2].transition = p2(e2) || void 0; - } - serialize() { - const t2 = {}; - for (const e2 of Object.keys(this._values)) { - const r2 = this.getValue(e2); - void 0 !== r2 && (t2[e2] = r2); - const n2 = this.getTransition(e2); - void 0 !== n2 && (t2[`${e2}-transition`] = n2); - } - return t2; - } - transitioned(t2, e2) { - const r2 = new ii(this._properties); - for (const n2 of Object.keys(this._values)) - r2._values[n2] = this._values[n2].transitioned(t2, e2._values[n2]); - return r2; - } - untransitioned() { - const t2 = new ii(this._properties); - for (const e2 of Object.keys(this._values)) - t2._values[e2] = this._values[e2].untransitioned(); - return t2; - } - } - class ni { - constructor(t2, e2, r2, n2, i2) { - this.property = t2, this.value = e2, this.begin = i2 + n2.delay || 0, this.end = this.begin + n2.duration || 0, t2.specification.transition && (n2.delay || n2.duration) && (this.prior = r2); - } - possiblyEvaluate(t2, e2, r2) { - const n2 = t2.now || 0, i2 = this.value.possiblyEvaluate(t2, e2, r2), a2 = this.prior; - if (a2) { - if (n2 > this.end) - return this.prior = null, i2; - if (this.value.isDataDriven()) - return this.prior = null, i2; - if (n2 < this.begin) - return a2.possiblyEvaluate(t2, e2, r2); - { - const s2 = (n2 - this.begin) / (this.end - this.begin); - return this.property.interpolate(a2.possiblyEvaluate(t2, e2, r2), i2, function(t3) { - if (t3 <= 0) - return 0; - if (t3 >= 1) - return 1; - const e3 = t3 * t3, r3 = e3 * t3; - return 4 * (t3 < 0.5 ? r3 : 3 * (t3 - e3) + r3 - 0.75); - }(s2)); - } - } - return i2; + }, oi = { applyArabicShaping: null, processBidirectionalText: null, processStyledBidirectionalText: null, isLoaded: function() { + return "loaded" === Qn || null != oi.applyArabicShaping; + }, isLoading: function() { + return "loading" === Qn; + }, setState: function(t2) { + Qn = t2.pluginStatus, ti = t2.pluginURL; + }, isParsed: function() { + return null != oi.applyArabicShaping && null != oi.processBidirectionalText && null != oi.processStyledBidirectionalText; + }, getPluginURL: function() { + return ti; + } }, si = function(t2, e2) { + this.zoom = t2, e2 ? (this.now = e2.now, this.fadeDuration = e2.fadeDuration, this.zoomHistory = e2.zoomHistory, this.transition = e2.transition) : (this.now = 0, this.fadeDuration = 0, this.zoomHistory = new Kn(), this.transition = {}); + }; + si.prototype.isSupportedScript = function(t2) { + return function(t3, e2) { + for (var r2 = 0, n2 = t3; r2 < n2.length; r2 += 1) + if (!Yn(n2[r2].charCodeAt(0), e2)) + return false; + return true; + }(t2, oi.isLoaded()); + }, si.prototype.crossFadingFactor = function() { + return 0 === this.fadeDuration ? 1 : Math.min((this.now - this.zoomHistory.lastIntegerZoomTime) / this.fadeDuration, 1); + }, si.prototype.getCrossfadeParameters = function() { + var t2 = this.zoom, e2 = t2 - Math.floor(t2), r2 = this.crossFadingFactor(); + return t2 > this.zoomHistory.lastIntegerZoom ? { fromScale: 2, toScale: 1, t: e2 + (1 - e2) * r2 } : { fromScale: 0.5, toScale: 1, t: 1 - (1 - r2) * e2 }; + }; + var ui = function(t2, e2) { + this.property = t2, this.value = e2, this.expression = function(t3, e3) { + if (Lr(t3)) + return new Yr(t3, e3); + if (Gr(t3)) { + var r2 = Hr(t3, e3); + if ("error" === r2.result) + throw new Error(r2.value.map(function(t4) { + return t4.key + ": " + t4.message; + }).join(", ")); + return r2.value; + } + var n2 = t3; + return "string" == typeof t3 && "color" === e3.type && (n2 = te.parse(t3)), { kind: "constant", evaluate: function() { + return n2; + } }; + }(void 0 === e2 ? t2.specification.default : e2, t2.specification); + }; + ui.prototype.isDataDriven = function() { + return "source" === this.expression.kind || "composite" === this.expression.kind; + }, ui.prototype.possiblyEvaluate = function(t2, e2, r2) { + return this.property.possiblyEvaluate(this, t2, e2, r2); + }; + var li = function(t2) { + this.property = t2, this.value = new ui(t2, void 0); + }; + li.prototype.transitioned = function(t2, e2) { + return new ci(this.property, this.value, e2, h2({}, t2.transition, this.transition), t2.now); + }, li.prototype.untransitioned = function() { + return new ci(this.property, this.value, null, {}, 0); + }; + var pi = function(t2) { + this._properties = t2, this._values = Object.create(t2.defaultTransitionablePropertyValues); + }; + pi.prototype.getValue = function(t2) { + return w(this._values[t2].value.value); + }, pi.prototype.setValue = function(t2, e2) { + this._values.hasOwnProperty(t2) || (this._values[t2] = new li(this._values[t2].property)), this._values[t2].value = new ui(this._values[t2].property, null === e2 ? void 0 : w(e2)); + }, pi.prototype.getTransition = function(t2) { + return w(this._values[t2].transition); + }, pi.prototype.setTransition = function(t2, e2) { + this._values.hasOwnProperty(t2) || (this._values[t2] = new li(this._values[t2].property)), this._values[t2].transition = w(e2) || void 0; + }, pi.prototype.serialize = function() { + for (var t2 = {}, e2 = 0, r2 = Object.keys(this._values); e2 < r2.length; e2 += 1) { + var n2 = r2[e2], i2 = this.getValue(n2); + void 0 !== i2 && (t2[n2] = i2); + var a2 = this.getTransition(n2); + void 0 !== a2 && (t2[n2 + "-transition"] = a2); } - } - class ii { - constructor(t2) { - this._properties = t2, this._values = Object.create(t2.defaultTransitioningPropertyValues); + return t2; + }, pi.prototype.transitioned = function(t2, e2) { + for (var r2 = new hi(this._properties), n2 = 0, i2 = Object.keys(this._values); n2 < i2.length; n2 += 1) { + var a2 = i2[n2]; + r2._values[a2] = this._values[a2].transitioned(t2, e2._values[a2]); } - possiblyEvaluate(t2, e2, r2) { - const n2 = new oi(this._properties); - for (const i2 of Object.keys(this._values)) - n2._values[i2] = this._values[i2].possiblyEvaluate(t2, e2, r2); - return n2; + return r2; + }, pi.prototype.untransitioned = function() { + for (var t2 = new hi(this._properties), e2 = 0, r2 = Object.keys(this._values); e2 < r2.length; e2 += 1) { + var n2 = r2[e2]; + t2._values[n2] = this._values[n2].untransitioned(); } - hasTransition() { - for (const t2 of Object.keys(this._values)) - if (this._values[t2].prior) - return true; - return false; + return t2; + }; + var ci = function(t2, e2, r2, n2, i2) { + this.property = t2, this.value = e2, this.begin = i2 + n2.delay || 0, this.end = this.begin + n2.duration || 0, t2.specification.transition && (n2.delay || n2.duration) && (this.prior = r2); + }; + ci.prototype.possiblyEvaluate = function(t2, e2, r2) { + var n2 = t2.now || 0, i2 = this.value.possiblyEvaluate(t2, e2, r2), a2 = this.prior; + if (a2) { + if (n2 > this.end) + return this.prior = null, i2; + if (this.value.isDataDriven()) + return this.prior = null, i2; + if (n2 < this.begin) + return a2.possiblyEvaluate(t2, e2, r2); + var o2 = (n2 - this.begin) / (this.end - this.begin); + return this.property.interpolate(a2.possiblyEvaluate(t2, e2, r2), i2, function(t3) { + if (t3 <= 0) + return 0; + if (t3 >= 1) + return 1; + var e3 = t3 * t3, r3 = e3 * t3; + return 4 * (t3 < 0.5 ? r3 : 3 * (t3 - e3) + r3 - 0.75); + }(o2)); } - } - class ai { - constructor(t2) { - this._properties = t2, this._values = Object.create(t2.defaultPropertyValues); + return i2; + }; + var hi = function(t2) { + this._properties = t2, this._values = Object.create(t2.defaultTransitioningPropertyValues); + }; + hi.prototype.possiblyEvaluate = function(t2, e2, r2) { + for (var n2 = new di(this._properties), i2 = 0, a2 = Object.keys(this._values); i2 < a2.length; i2 += 1) { + var o2 = a2[i2]; + n2._values[o2] = this._values[o2].possiblyEvaluate(t2, e2, r2); } - getValue(t2) { - return p2(this._values[t2].value); + return n2; + }, hi.prototype.hasTransition = function() { + for (var t2 = 0, e2 = Object.keys(this._values); t2 < e2.length; t2 += 1) + if (this._values[e2[t2]].prior) + return true; + return false; + }; + var fi = function(t2) { + this._properties = t2, this._values = Object.create(t2.defaultPropertyValues); + }; + fi.prototype.getValue = function(t2) { + return w(this._values[t2].value); + }, fi.prototype.setValue = function(t2, e2) { + this._values[t2] = new ui(this._values[t2].property, null === e2 ? void 0 : w(e2)); + }, fi.prototype.serialize = function() { + for (var t2 = {}, e2 = 0, r2 = Object.keys(this._values); e2 < r2.length; e2 += 1) { + var n2 = r2[e2], i2 = this.getValue(n2); + void 0 !== i2 && (t2[n2] = i2); } - setValue(t2, e2) { - this._values[t2] = new ti(this._values[t2].property, null === e2 ? void 0 : p2(e2)); + return t2; + }, fi.prototype.possiblyEvaluate = function(t2, e2, r2) { + for (var n2 = new di(this._properties), i2 = 0, a2 = Object.keys(this._values); i2 < a2.length; i2 += 1) { + var o2 = a2[i2]; + n2._values[o2] = this._values[o2].possiblyEvaluate(t2, e2, r2); } - serialize() { - const t2 = {}; - for (const e2 of Object.keys(this._values)) { - const r2 = this.getValue(e2); - void 0 !== r2 && (t2[e2] = r2); - } + return n2; + }; + var yi = function(t2, e2, r2) { + this.property = t2, this.value = e2, this.parameters = r2; + }; + yi.prototype.isConstant = function() { + return "constant" === this.value.kind; + }, yi.prototype.constantOr = function(t2) { + return "constant" === this.value.kind ? this.value.value : t2; + }, yi.prototype.evaluate = function(t2, e2, r2, n2) { + return this.property.evaluate(this.value, this.parameters, t2, e2, r2, n2); + }; + var di = function(t2) { + this._properties = t2, this._values = Object.create(t2.defaultPossiblyEvaluatedValues); + }; + di.prototype.get = function(t2) { + return this._values[t2]; + }; + var mi = function(t2) { + this.specification = t2; + }; + mi.prototype.possiblyEvaluate = function(t2, e2) { + return t2.expression.evaluate(e2); + }, mi.prototype.interpolate = function(t2, e2, r2) { + var n2 = Ge[this.specification.type]; + return n2 ? n2(t2, e2, r2) : t2; + }; + var vi = function(t2, e2) { + this.specification = t2, this.overrides = e2; + }; + vi.prototype.possiblyEvaluate = function(t2, e2, r2, n2) { + return new yi(this, "constant" === t2.expression.kind || "camera" === t2.expression.kind ? { kind: "constant", value: t2.expression.evaluate(e2, null, {}, r2, n2) } : t2.expression, e2); + }, vi.prototype.interpolate = function(t2, e2, r2) { + if ("constant" !== t2.value.kind || "constant" !== e2.value.kind) return t2; - } - possiblyEvaluate(t2, e2, r2) { - const n2 = new oi(this._properties); - for (const i2 of Object.keys(this._values)) - n2._values[i2] = this._values[i2].possiblyEvaluate(t2, e2, r2); - return n2; - } - } - class si { - constructor(t2, e2, r2) { - this.property = t2, this.value = e2, this.parameters = r2; - } - isConstant() { - return "constant" === this.value.kind; - } - constantOr(t2) { - return "constant" === this.value.kind ? this.value.value : t2; - } - evaluate(t2, e2, r2, n2) { - return this.property.evaluate(this.value, this.parameters, t2, e2, r2, n2); - } - } - class oi { - constructor(t2) { - this._properties = t2, this._values = Object.create(t2.defaultPossiblyEvaluatedValues); - } - get(t2) { - return this._values[t2]; - } - } - class li { - constructor(t2) { - this.specification = t2; - } - possiblyEvaluate(t2, e2) { - if (t2.isDataDriven()) - throw new Error("Value should not be data driven"); - return t2.expression.evaluate(e2); - } - interpolate(t2, e2, r2) { - const n2 = Ie[this.specification.type]; - return n2 ? n2(t2, e2, r2) : t2; - } - } - class ui { - constructor(t2, e2) { - this.specification = t2, this.overrides = e2; - } - possiblyEvaluate(t2, e2, r2, n2) { - return new si(this, "constant" === t2.expression.kind || "camera" === t2.expression.kind ? { kind: "constant", value: t2.expression.evaluate(e2, null, {}, r2, n2) } : t2.expression, e2); - } - interpolate(t2, e2, r2) { - if ("constant" !== t2.value.kind || "constant" !== e2.value.kind) - return t2; - if (void 0 === t2.value.value || void 0 === e2.value.value) - return new si(this, { kind: "constant", value: void 0 }, t2.parameters); - const n2 = Ie[this.specification.type]; - return n2 ? new si(this, { kind: "constant", value: n2(t2.value.value, e2.value.value, r2) }, t2.parameters) : t2; - } - evaluate(t2, e2, r2, n2, i2, a2) { - return "constant" === t2.kind ? t2.value : t2.evaluate(e2, r2, n2, i2, a2); - } - } - class ci extends ui { - possiblyEvaluate(t2, e2, r2, n2) { - if (void 0 === t2.value) - return new si(this, { kind: "constant", value: void 0 }, e2); + if (void 0 === t2.value.value || void 0 === e2.value.value) + return new yi(this, { kind: "constant", value: void 0 }, t2.parameters); + var n2 = Ge[this.specification.type]; + return n2 ? new yi(this, { kind: "constant", value: n2(t2.value.value, e2.value.value, r2) }, t2.parameters) : t2; + }, vi.prototype.evaluate = function(t2, e2, r2, n2, i2, a2) { + return "constant" === t2.kind ? t2.value : t2.evaluate(e2, r2, n2, i2, a2); + }; + var gi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.possiblyEvaluate = function(t3, e3, r2, n2) { + if (void 0 === t3.value) + return new yi(this, { kind: "constant", value: void 0 }, e3); + if ("constant" === t3.expression.kind) { + var i2 = t3.expression.evaluate(e3, null, {}, r2, n2), a2 = "resolvedImage" === t3.property.specification.type && "string" != typeof i2 ? i2.name : i2, o2 = this._calculate(a2, a2, a2, e3); + return new yi(this, { kind: "constant", value: o2 }, e3); + } + if ("camera" === t3.expression.kind) { + var s2 = this._calculate(t3.expression.evaluate({ zoom: e3.zoom - 1 }), t3.expression.evaluate({ zoom: e3.zoom }), t3.expression.evaluate({ zoom: e3.zoom + 1 }), e3); + return new yi(this, { kind: "constant", value: s2 }, e3); + } + return new yi(this, t3.expression, e3); + }, e2.prototype.evaluate = function(t3, e3, r2, n2, i2, a2) { + if ("source" === t3.kind) { + var o2 = t3.evaluate(e3, r2, n2, i2, a2); + return this._calculate(o2, o2, o2, e3); + } + return "composite" === t3.kind ? this._calculate(t3.evaluate({ zoom: Math.floor(e3.zoom) - 1 }, r2, n2), t3.evaluate({ zoom: Math.floor(e3.zoom) }, r2, n2), t3.evaluate({ zoom: Math.floor(e3.zoom) + 1 }, r2, n2), e3) : t3.value; + }, e2.prototype._calculate = function(t3, e3, r2, n2) { + return n2.zoom > n2.zoomHistory.lastIntegerZoom ? { from: t3, to: e3 } : { from: r2, to: e3 }; + }, e2.prototype.interpolate = function(t3) { + return t3; + }, e2; + }(vi), xi = function(t2) { + this.specification = t2; + }; + xi.prototype.possiblyEvaluate = function(t2, e2, r2, n2) { + if (void 0 !== t2.value) { if ("constant" === t2.expression.kind) { - const i2 = t2.expression.evaluate(e2, null, {}, r2, n2), a2 = "resolvedImage" === t2.property.specification.type && "string" != typeof i2 ? i2.name : i2, s2 = this._calculate(a2, a2, a2, e2); - return new si(this, { kind: "constant", value: s2 }, e2); - } - if ("camera" === t2.expression.kind) { - const r3 = this._calculate(t2.expression.evaluate({ zoom: e2.zoom - 1 }), t2.expression.evaluate({ zoom: e2.zoom }), t2.expression.evaluate({ zoom: e2.zoom + 1 }), e2); - return new si(this, { kind: "constant", value: r3 }, e2); + var i2 = t2.expression.evaluate(e2, null, {}, r2, n2); + return this._calculate(i2, i2, i2, e2); } - return new si(this, t2.expression, e2); - } - evaluate(t2, e2, r2, n2, i2, a2) { - if ("source" === t2.kind) { - const s2 = t2.evaluate(e2, r2, n2, i2, a2); - return this._calculate(s2, s2, s2, e2); - } - return "composite" === t2.kind ? this._calculate(t2.evaluate({ zoom: Math.floor(e2.zoom) - 1 }, r2, n2), t2.evaluate({ zoom: Math.floor(e2.zoom) }, r2, n2), t2.evaluate({ zoom: Math.floor(e2.zoom) + 1 }, r2, n2), e2) : t2.value; - } - _calculate(t2, e2, r2, n2) { - return n2.zoom > n2.zoomHistory.lastIntegerZoom ? { from: t2, to: e2 } : { from: r2, to: e2 }; - } - interpolate(t2) { - return t2; + return this._calculate(t2.expression.evaluate(new si(Math.floor(e2.zoom - 1), e2)), t2.expression.evaluate(new si(Math.floor(e2.zoom), e2)), t2.expression.evaluate(new si(Math.floor(e2.zoom + 1), e2)), e2); } - } - class hi { - constructor(t2) { - this.specification = t2; + }, xi.prototype._calculate = function(t2, e2, r2, n2) { + return n2.zoom > n2.zoomHistory.lastIntegerZoom ? { from: t2, to: e2 } : { from: r2, to: e2 }; + }, xi.prototype.interpolate = function(t2) { + return t2; + }; + var bi = function(t2) { + this.specification = t2; + }; + bi.prototype.possiblyEvaluate = function(t2, e2, r2, n2) { + return !!t2.expression.evaluate(e2, null, {}, r2, n2); + }, bi.prototype.interpolate = function() { + return false; + }; + var wi = function(t2) { + for (var e2 in this.properties = t2, this.defaultPropertyValues = {}, this.defaultTransitionablePropertyValues = {}, this.defaultTransitioningPropertyValues = {}, this.defaultPossiblyEvaluatedValues = {}, this.overridableProperties = [], t2) { + var r2 = t2[e2]; + r2.specification.overridable && this.overridableProperties.push(e2); + var n2 = this.defaultPropertyValues[e2] = new ui(r2, void 0), i2 = this.defaultTransitionablePropertyValues[e2] = new li(r2); + this.defaultTransitioningPropertyValues[e2] = i2.untransitioned(), this.defaultPossiblyEvaluatedValues[e2] = n2.possiblyEvaluate({}); } - possiblyEvaluate(t2, e2, r2, n2) { - if (void 0 !== t2.value) { - if ("constant" === t2.expression.kind) { - const i2 = t2.expression.evaluate(e2, null, {}, r2, n2); - return this._calculate(i2, i2, i2, e2); - } - return this._calculate(t2.expression.evaluate(new Qn(Math.floor(e2.zoom - 1), e2)), t2.expression.evaluate(new Qn(Math.floor(e2.zoom), e2)), t2.expression.evaluate(new Qn(Math.floor(e2.zoom + 1), e2)), e2); + }; + On("DataDrivenProperty", vi), On("DataConstantProperty", mi), On("CrossFadedDataDrivenProperty", gi), On("CrossFadedProperty", xi), On("ColorRampProperty", bi); + var _i = function(t2) { + function e2(e3, r2) { + if (t2.call(this), this.id = e3.id, this.type = e3.type, this._featureFilter = { filter: function() { + return true; + }, needGeometry: false }, "custom" !== e3.type && (this.metadata = (e3 = e3).metadata, this.minzoom = e3.minzoom, this.maxzoom = e3.maxzoom, "background" !== e3.type && (this.source = e3.source, this.sourceLayer = e3["source-layer"], this.filter = e3.filter), r2.layout && (this._unevaluatedLayout = new fi(r2.layout)), r2.paint)) { + for (var n2 in this._transitionablePaint = new pi(r2.paint), e3.paint) + this.setPaintProperty(n2, e3.paint[n2], { validate: false }); + for (var i2 in e3.layout) + this.setLayoutProperty(i2, e3.layout[i2], { validate: false }); + this._transitioningPaint = this._transitionablePaint.untransitioned(), this.paint = new di(r2.paint); } } - _calculate(t2, e2, r2, n2) { - return n2.zoom > n2.zoomHistory.lastIntegerZoom ? { from: t2, to: e2 } : { from: r2, to: e2 }; - } - interpolate(t2) { - return t2; - } - } - class pi { - constructor(t2) { - this.specification = t2; - } - possiblyEvaluate(t2, e2, r2, n2) { - return !!t2.expression.evaluate(e2, null, {}, r2, n2); - } - interpolate() { + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getCrossfadeParameters = function() { + return this._crossfadeParameters; + }, e2.prototype.getLayoutProperty = function(t3) { + return "visibility" === t3 ? this.visibility : this._unevaluatedLayout.getValue(t3); + }, e2.prototype.setLayoutProperty = function(t3, e3, r2) { + void 0 === r2 && (r2 = {}), null != e3 && this._validate(Mn, "layers." + this.id + ".layout." + t3, t3, e3, r2) || ("visibility" !== t3 ? this._unevaluatedLayout.setValue(t3, e3) : this.visibility = e3); + }, e2.prototype.getPaintProperty = function(t3) { + return g(t3, "-transition") ? this._transitionablePaint.getTransition(t3.slice(0, -"-transition".length)) : this._transitionablePaint.getValue(t3); + }, e2.prototype.setPaintProperty = function(t3, e3, r2) { + if (void 0 === r2 && (r2 = {}), null != e3 && this._validate(Pn, "layers." + this.id + ".paint." + t3, t3, e3, r2)) + return false; + if (g(t3, "-transition")) + return this._transitionablePaint.setTransition(t3.slice(0, -"-transition".length), e3 || void 0), false; + var n2 = this._transitionablePaint._values[t3], i2 = "cross-faded-data-driven" === n2.property.specification["property-type"], a2 = n2.value.isDataDriven(), o2 = n2.value; + this._transitionablePaint.setValue(t3, e3), this._handleSpecialPaintPropertyUpdate(t3); + var s2 = this._transitionablePaint._values[t3].value; + return s2.isDataDriven() || a2 || i2 || this._handleOverridablePaintPropertyUpdate(t3, o2, s2); + }, e2.prototype._handleSpecialPaintPropertyUpdate = function(t3) { + }, e2.prototype._handleOverridablePaintPropertyUpdate = function(t3, e3, r2) { return false; - } - } - class fi { - constructor(t2) { - this.properties = t2, this.defaultPropertyValues = {}, this.defaultTransitionablePropertyValues = {}, this.defaultTransitioningPropertyValues = {}, this.defaultPossiblyEvaluatedValues = {}, this.overridableProperties = []; - for (const e2 in t2) { - const r2 = t2[e2]; - r2.specification.overridable && this.overridableProperties.push(e2); - const n2 = this.defaultPropertyValues[e2] = new ti(r2, void 0), i2 = this.defaultTransitionablePropertyValues[e2] = new ei(r2); - this.defaultTransitioningPropertyValues[e2] = i2.untransitioned(), this.defaultPossiblyEvaluatedValues[e2] = n2.possiblyEvaluate({}); + }, e2.prototype.isHidden = function(t3) { + return !!(this.minzoom && t3 < this.minzoom) || !!(this.maxzoom && t3 >= this.maxzoom) || "none" === this.visibility; + }, e2.prototype.updateTransitions = function(t3) { + this._transitioningPaint = this._transitionablePaint.transitioned(t3, this._transitioningPaint); + }, e2.prototype.hasTransition = function() { + return this._transitioningPaint.hasTransition(); + }, e2.prototype.recalculate = function(t3, e3) { + t3.getCrossfadeParameters && (this._crossfadeParameters = t3.getCrossfadeParameters()), this._unevaluatedLayout && (this.layout = this._unevaluatedLayout.possiblyEvaluate(t3, void 0, e3)), this.paint = this._transitioningPaint.possiblyEvaluate(t3, void 0, e3); + }, e2.prototype.serialize = function() { + var t3 = { id: this.id, type: this.type, source: this.source, "source-layer": this.sourceLayer, metadata: this.metadata, minzoom: this.minzoom, maxzoom: this.maxzoom, filter: this.filter, layout: this._unevaluatedLayout && this._unevaluatedLayout.serialize(), paint: this._transitionablePaint && this._transitionablePaint.serialize() }; + return this.visibility && (t3.layout = t3.layout || {}, t3.layout.visibility = this.visibility), b(t3, function(t4, e3) { + return !(void 0 === t4 || "layout" === e3 && !Object.keys(t4).length || "paint" === e3 && !Object.keys(t4).length); + }); + }, e2.prototype._validate = function(t3, e3, r2, n2, i2) { + return void 0 === i2 && (i2 = {}), (!i2 || false !== i2.validate) && Bn(this, t3.call(Cn, { key: e3, layerType: this.type, objectKey: r2, value: n2, styleSpec: Et, style: { glyphs: true, sprite: true } })); + }, e2.prototype.is3D = function() { + return false; + }, e2.prototype.isTileClipped = function() { + return false; + }, e2.prototype.hasOffscreenPass = function() { + return false; + }, e2.prototype.resize = function() { + }, e2.prototype.isStateDependent = function() { + for (var t3 in this.paint._values) { + var e3 = this.paint.get(t3); + if (e3 instanceof yi && Tr(e3.property.specification) && ("source" === e3.value.kind || "composite" === e3.value.kind) && e3.value.isStateDependent) + return true; } - } + return false; + }, e2; + }(Ct), Ai = { Int8: Int8Array, Uint8: Uint8Array, Int16: Int16Array, Uint16: Uint16Array, Int32: Int32Array, Uint32: Uint32Array, Float32: Float32Array }, Si = function(t2, e2) { + this._structArray = t2, this._pos1 = e2 * this.size, this._pos2 = this._pos1 / 2, this._pos4 = this._pos1 / 4, this._pos8 = this._pos1 / 8; + }, ki = function() { + this.isTransferred = false, this.capacity = -1, this.resize(0); + }; + function Ii(t2, e2) { + void 0 === e2 && (e2 = 1); + var r2 = 0, n2 = 0; + return { members: t2.map(function(t3) { + var i2 = Ai[t3.type].BYTES_PER_ELEMENT, a2 = r2 = zi(r2, Math.max(e2, i2)), o2 = t3.components || 1; + return n2 = Math.max(n2, i2), r2 += i2 * o2, { name: t3.name, type: t3.type, components: o2, offset: a2 }; + }), size: zi(r2, Math.max(n2, e2)), alignment: e2 }; + } + function zi(t2, e2) { + return Math.ceil(t2 / e2) * e2; } - Mn("DataDrivenProperty", ui), Mn("DataConstantProperty", li), Mn("CrossFadedDataDrivenProperty", ci), Mn("CrossFadedProperty", hi), Mn("ColorRampProperty", pi); - const di = "-transition"; - class yi extends rt { - constructor(t2, e2) { - if (super(), this.id = t2.id, this.type = t2.type, this._featureFilter = { filter: () => true, needGeometry: false }, "custom" !== t2.type && (this.metadata = t2.metadata, this.minzoom = t2.minzoom, this.maxzoom = t2.maxzoom, "background" !== t2.type && (this.source = t2.source, this.sourceLayer = t2["source-layer"], this.filter = t2.filter), e2.layout && (this._unevaluatedLayout = new ai(e2.layout)), e2.paint)) { - this._transitionablePaint = new ri(e2.paint); - for (const e3 in t2.paint) - this.setPaintProperty(e3, t2.paint[e3], { validate: false }); - for (const e3 in t2.layout) - this.setLayoutProperty(e3, t2.layout[e3], { validate: false }); - this._transitioningPaint = this._transitionablePaint.untransitioned(), this.paint = new oi(e2.paint); - } + ki.serialize = function(t2, e2) { + return t2._trim(), e2 && (t2.isTransferred = true, e2.push(t2.arrayBuffer)), { length: t2.length, arrayBuffer: t2.arrayBuffer }; + }, ki.deserialize = function(t2) { + var e2 = Object.create(this.prototype); + return e2.arrayBuffer = t2.arrayBuffer, e2.length = t2.length, e2.capacity = t2.arrayBuffer.byteLength / e2.bytesPerElement, e2._refreshViews(), e2; + }, ki.prototype._trim = function() { + this.length !== this.capacity && (this.capacity = this.length, this.arrayBuffer = this.arrayBuffer.slice(0, this.length * this.bytesPerElement), this._refreshViews()); + }, ki.prototype.clear = function() { + this.length = 0; + }, ki.prototype.resize = function(t2) { + this.reserve(t2), this.length = t2; + }, ki.prototype.reserve = function(t2) { + if (t2 > this.capacity) { + this.capacity = Math.max(t2, Math.floor(5 * this.capacity), 128), this.arrayBuffer = new ArrayBuffer(this.capacity * this.bytesPerElement); + var e2 = this.uint8; + this._refreshViews(), e2 && this.uint8.set(e2); + } + }, ki.prototype._refreshViews = function() { + throw new Error("_refreshViews() must be implemented by each concrete StructArray layout"); + }; + var Ci = function(t2) { + function e2() { + t2.apply(this, arguments); } - getCrossfadeParameters() { - return this._crossfadeParameters; - } - getLayoutProperty(t2) { - return "visibility" === t2 ? this.visibility : this._unevaluatedLayout.getValue(t2); - } - setLayoutProperty(t2, e2, r2 = {}) { - null != e2 && this._validate(An, `layers.${this.id}.layout.${t2}`, t2, e2, r2) || ("visibility" !== t2 ? this._unevaluatedLayout.setValue(t2, e2) : this.visibility = e2); - } - getPaintProperty(t2) { - return t2.endsWith(di) ? this._transitionablePaint.getTransition(t2.slice(0, -di.length)) : this._transitionablePaint.getValue(t2); - } - setPaintProperty(t2, e2, r2 = {}) { - if (null != e2 && this._validate(_n, `layers.${this.id}.paint.${t2}`, t2, e2, r2)) - return false; - if (t2.endsWith(di)) - return this._transitionablePaint.setTransition(t2.slice(0, -di.length), e2 || void 0), false; - { - const r3 = this._transitionablePaint._values[t2], n2 = "cross-faded-data-driven" === r3.property.specification["property-type"], i2 = r3.value.isDataDriven(), a2 = r3.value; - this._transitionablePaint.setValue(t2, e2), this._handleSpecialPaintPropertyUpdate(t2); - const s2 = this._transitionablePaint._values[t2].value; - return s2.isDataDriven() || i2 || n2 || this._handleOverridablePaintPropertyUpdate(t2, a2, s2); - } - } - _handleSpecialPaintPropertyUpdate(t2) { - } - _handleOverridablePaintPropertyUpdate(t2, e2, r2) { - return false; - } - isHidden(t2) { - return !!(this.minzoom && t2 < this.minzoom) || !!(this.maxzoom && t2 >= this.maxzoom) || "none" === this.visibility; - } - updateTransitions(t2) { - this._transitioningPaint = this._transitionablePaint.transitioned(t2, this._transitioningPaint); - } - hasTransition() { - return this._transitioningPaint.hasTransition(); - } - recalculate(t2, e2) { - t2.getCrossfadeParameters && (this._crossfadeParameters = t2.getCrossfadeParameters()), this._unevaluatedLayout && (this.layout = this._unevaluatedLayout.possiblyEvaluate(t2, void 0, e2)), this.paint = this._transitioningPaint.possiblyEvaluate(t2, void 0, e2); - } - serialize() { - const t2 = { id: this.id, type: this.type, source: this.source, "source-layer": this.sourceLayer, metadata: this.metadata, minzoom: this.minzoom, maxzoom: this.maxzoom, filter: this.filter, layout: this._unevaluatedLayout && this._unevaluatedLayout.serialize(), paint: this._transitionablePaint && this._transitionablePaint.serialize() }; - return this.visibility && (t2.layout = t2.layout || {}, t2.layout.visibility = this.visibility), h2(t2, (t3, e2) => !(void 0 === t3 || "layout" === e2 && !Object.keys(t3).length || "paint" === e2 && !Object.keys(t3).length)); - } - _validate(t2, e2, r2, n2, i2 = {}) { - return (!i2 || false !== i2.validate) && kn(this, t2.call(bn, { key: e2, layerType: this.type, objectKey: r2, value: n2, styleSpec: nt, style: { glyphs: true, sprite: true } })); - } - is3D() { - return false; - } - isTileClipped() { - return false; - } - hasOffscreenPass() { - return false; - } - resize() { - } - isStateDependent() { - for (const t2 in this.paint._values) { - const e2 = this.paint.get(t2); - if (e2 instanceof si && br(e2.property.specification) && ("source" === e2.value.kind || "composite" === e2.value.kind) && e2.value.isStateDependent) - return true; - } - return false; - } - } - const mi = { Int8: Int8Array, Uint8: Uint8Array, Int16: Int16Array, Uint16: Uint16Array, Int32: Int32Array, Uint32: Uint32Array, Float32: Float32Array }; - class gi { - constructor(t2, e2) { - this._structArray = t2, this._pos1 = e2 * this.size, this._pos2 = this._pos1 / 2, this._pos4 = this._pos1 / 4, this._pos8 = this._pos1 / 8; - } - } - class xi { - constructor() { - this.isTransferred = false, this.capacity = -1, this.resize(0); - } - static serialize(t2, e2) { - return t2._trim(), e2 && (t2.isTransferred = true, e2.push(t2.arrayBuffer)), { length: t2.length, arrayBuffer: t2.arrayBuffer }; - } - static deserialize(t2) { - const e2 = Object.create(this.prototype); - return e2.arrayBuffer = t2.arrayBuffer, e2.length = t2.length, e2.capacity = t2.arrayBuffer.byteLength / e2.bytesPerElement, e2._refreshViews(), e2; - } - _trim() { - this.length !== this.capacity && (this.capacity = this.length, this.arrayBuffer = this.arrayBuffer.slice(0, this.length * this.bytesPerElement), this._refreshViews()); - } - clear() { - this.length = 0; - } - resize(t2) { - this.reserve(t2), this.length = t2; - } - reserve(t2) { - if (t2 > this.capacity) { - this.capacity = Math.max(t2, Math.floor(5 * this.capacity), 128), this.arrayBuffer = new ArrayBuffer(this.capacity * this.bytesPerElement); - const e2 = this.uint8; - this._refreshViews(), e2 && this.uint8.set(e2); - } - } - _refreshViews() { - throw new Error("_refreshViews() must be implemented by each concrete StructArray layout"); - } - } - function vi(t2, e2 = 1) { - let r2 = 0, n2 = 0; - return { members: t2.map((t3) => { - const i2 = mi[t3.type].BYTES_PER_ELEMENT, a2 = r2 = bi(r2, Math.max(e2, i2)), s2 = t3.components || 1; - return n2 = Math.max(n2, i2), r2 += i2 * s2, { name: t3.name, type: t3.type, components: s2, offset: a2 }; - }), size: bi(r2, Math.max(n2, e2)), alignment: e2 }; - } - function bi(t2, e2) { - return Math.ceil(t2 / e2) * e2; - } - class wi extends xi { - _refreshViews() { + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer); - } - emplaceBack(t2, e2) { - const r2 = this.length; - return this.resize(r2 + 1), this.emplace(r2, t2, e2); - } - emplace(t2, e2, r2) { - const n2 = 2 * t2; - return this.int16[n2 + 0] = e2, this.int16[n2 + 1] = r2, t2; - } - } - wi.prototype.bytesPerElement = 4, Mn("StructArrayLayout2i4", wi); - class _i extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3) { + var r2 = this.length; + return this.resize(r2 + 1), this.emplace(r2, t3, e3); + }, e2.prototype.emplace = function(t3, e3, r2) { + var n2 = 2 * t3; + return this.int16[n2 + 0] = e3, this.int16[n2 + 1] = r2, t3; + }, e2; + }(ki); + Ci.prototype.bytesPerElement = 4, On("StructArrayLayout2i4", Ci); + var Ei = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2) { - const i2 = this.length; - return this.resize(i2 + 1), this.emplace(i2, t2, e2, r2, n2); - } - emplace(t2, e2, r2, n2, i2) { - const a2 = 4 * t2; - return this.int16[a2 + 0] = e2, this.int16[a2 + 1] = r2, this.int16[a2 + 2] = n2, this.int16[a2 + 3] = i2, t2; - } - } - _i.prototype.bytesPerElement = 8, Mn("StructArrayLayout4i8", _i); - class Ai extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2) { + var i2 = this.length; + return this.resize(i2 + 1), this.emplace(i2, t3, e3, r2, n2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2) { + var a2 = 4 * t3; + return this.int16[a2 + 0] = e3, this.int16[a2 + 1] = r2, this.int16[a2 + 2] = n2, this.int16[a2 + 3] = i2, t3; + }, e2; + }(ki); + Ei.prototype.bytesPerElement = 8, On("StructArrayLayout4i8", Ei); + var Pi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2, a2) { - const s2 = this.length; - return this.resize(s2 + 1), this.emplace(s2, t2, e2, r2, n2, i2, a2); - } - emplace(t2, e2, r2, n2, i2, a2, s2) { - const o2 = 6 * t2; - return this.int16[o2 + 0] = e2, this.int16[o2 + 1] = r2, this.int16[o2 + 2] = n2, this.int16[o2 + 3] = i2, this.int16[o2 + 4] = a2, this.int16[o2 + 5] = s2, t2; - } - } - Ai.prototype.bytesPerElement = 12, Mn("StructArrayLayout2i4i12", Ai); - class ki extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2, a2) { + var o2 = this.length; + return this.resize(o2 + 1), this.emplace(o2, t3, e3, r2, n2, i2, a2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2, o2) { + var s2 = 6 * t3; + return this.int16[s2 + 0] = e3, this.int16[s2 + 1] = r2, this.int16[s2 + 2] = n2, this.int16[s2 + 3] = i2, this.int16[s2 + 4] = a2, this.int16[s2 + 5] = o2, t3; + }, e2; + }(ki); + Pi.prototype.bytesPerElement = 12, On("StructArrayLayout2i4i12", Pi); + var Mi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2, a2) { - const s2 = this.length; - return this.resize(s2 + 1), this.emplace(s2, t2, e2, r2, n2, i2, a2); - } - emplace(t2, e2, r2, n2, i2, a2, s2) { - const o2 = 4 * t2, l2 = 8 * t2; - return this.int16[o2 + 0] = e2, this.int16[o2 + 1] = r2, this.uint8[l2 + 4] = n2, this.uint8[l2 + 5] = i2, this.uint8[l2 + 6] = a2, this.uint8[l2 + 7] = s2, t2; - } - } - ki.prototype.bytesPerElement = 8, Mn("StructArrayLayout2i4ub8", ki); - class Si extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2, a2) { + var o2 = this.length; + return this.resize(o2 + 1), this.emplace(o2, t3, e3, r2, n2, i2, a2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2, o2) { + var s2 = 4 * t3, u2 = 8 * t3; + return this.int16[s2 + 0] = e3, this.int16[s2 + 1] = r2, this.uint8[u2 + 4] = n2, this.uint8[u2 + 5] = i2, this.uint8[u2 + 6] = a2, this.uint8[u2 + 7] = o2, t3; + }, e2; + }(ki); + Mi.prototype.bytesPerElement = 8, On("StructArrayLayout2i4ub8", Mi); + var Bi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer); - } - emplaceBack(t2, e2) { - const r2 = this.length; - return this.resize(r2 + 1), this.emplace(r2, t2, e2); - } - emplace(t2, e2, r2) { - const n2 = 2 * t2; - return this.float32[n2 + 0] = e2, this.float32[n2 + 1] = r2, t2; - } - } - Si.prototype.bytesPerElement = 8, Mn("StructArrayLayout2f8", Si); - class Ii extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3) { + var r2 = this.length; + return this.resize(r2 + 1), this.emplace(r2, t3, e3); + }, e2.prototype.emplace = function(t3, e3, r2) { + var n2 = 2 * t3; + return this.float32[n2 + 0] = e3, this.float32[n2 + 1] = r2, t3; + }, e2; + }(ki); + Bi.prototype.bytesPerElement = 8, On("StructArrayLayout2f8", Bi); + var Ti = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2) { - const c3 = this.length; - return this.resize(c3 + 1), this.emplace(c3, t2, e2, r2, n2, i2, a2, s2, o2, l2, u2); - } - emplace(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3) { - const h3 = 10 * t2; - return this.uint16[h3 + 0] = e2, this.uint16[h3 + 1] = r2, this.uint16[h3 + 2] = n2, this.uint16[h3 + 3] = i2, this.uint16[h3 + 4] = a2, this.uint16[h3 + 5] = s2, this.uint16[h3 + 6] = o2, this.uint16[h3 + 7] = l2, this.uint16[h3 + 8] = u2, this.uint16[h3 + 9] = c3, t2; - } - } - Ii.prototype.bytesPerElement = 20, Mn("StructArrayLayout10ui20", Ii); - class Mi extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2) { + var p3 = this.length; + return this.resize(p3 + 1), this.emplace(p3, t3, e3, r2, n2, i2, a2, o2, s2, u2, l2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3) { + var c3 = 10 * t3; + return this.uint16[c3 + 0] = e3, this.uint16[c3 + 1] = r2, this.uint16[c3 + 2] = n2, this.uint16[c3 + 3] = i2, this.uint16[c3 + 4] = a2, this.uint16[c3 + 5] = o2, this.uint16[c3 + 6] = s2, this.uint16[c3 + 7] = u2, this.uint16[c3 + 8] = l2, this.uint16[c3 + 9] = p3, t3; + }, e2; + }(ki); + Ti.prototype.bytesPerElement = 20, On("StructArrayLayout10ui20", Ti); + var Vi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3) { - const p3 = this.length; - return this.resize(p3 + 1), this.emplace(p3, t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3); - } - emplace(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3) { - const f2 = 12 * t2; - return this.int16[f2 + 0] = e2, this.int16[f2 + 1] = r2, this.int16[f2 + 2] = n2, this.int16[f2 + 3] = i2, this.uint16[f2 + 4] = a2, this.uint16[f2 + 5] = s2, this.uint16[f2 + 6] = o2, this.uint16[f2 + 7] = l2, this.int16[f2 + 8] = u2, this.int16[f2 + 9] = c3, this.int16[f2 + 10] = h3, this.int16[f2 + 11] = p3, t2; - } - } - Mi.prototype.bytesPerElement = 24, Mn("StructArrayLayout4i4ui4i24", Mi); - class zi extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3) { + var h3 = this.length; + return this.resize(h3 + 1), this.emplace(h3, t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3) { + var f2 = 12 * t3; + return this.int16[f2 + 0] = e3, this.int16[f2 + 1] = r2, this.int16[f2 + 2] = n2, this.int16[f2 + 3] = i2, this.uint16[f2 + 4] = a2, this.uint16[f2 + 5] = o2, this.uint16[f2 + 6] = s2, this.uint16[f2 + 7] = u2, this.int16[f2 + 8] = l2, this.int16[f2 + 9] = p3, this.int16[f2 + 10] = c3, this.int16[f2 + 11] = h3, t3; + }, e2; + }(ki); + Vi.prototype.bytesPerElement = 24, On("StructArrayLayout4i4ui4i24", Vi); + var Fi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2) { - const n2 = this.length; - return this.resize(n2 + 1), this.emplace(n2, t2, e2, r2); - } - emplace(t2, e2, r2, n2) { - const i2 = 3 * t2; - return this.float32[i2 + 0] = e2, this.float32[i2 + 1] = r2, this.float32[i2 + 2] = n2, t2; - } - } - zi.prototype.bytesPerElement = 12, Mn("StructArrayLayout3f12", zi); - class Bi extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2) { + var n2 = this.length; + return this.resize(n2 + 1), this.emplace(n2, t3, e3, r2); + }, e2.prototype.emplace = function(t3, e3, r2, n2) { + var i2 = 3 * t3; + return this.float32[i2 + 0] = e3, this.float32[i2 + 1] = r2, this.float32[i2 + 2] = n2, t3; + }, e2; + }(ki); + Fi.prototype.bytesPerElement = 12, On("StructArrayLayout3f12", Fi); + var Di = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer); - } - emplaceBack(t2) { - const e2 = this.length; - return this.resize(e2 + 1), this.emplace(e2, t2); - } - emplace(t2, e2) { - return this.uint32[1 * t2 + 0] = e2, t2; - } - } - Bi.prototype.bytesPerElement = 4, Mn("StructArrayLayout1ul4", Bi); - class Ci extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3) { + var e3 = this.length; + return this.resize(e3 + 1), this.emplace(e3, t3); + }, e2.prototype.emplace = function(t3, e3) { + return this.uint32[1 * t3 + 0] = e3, t3; + }, e2; + }(ki); + Di.prototype.bytesPerElement = 4, On("StructArrayLayout1ul4", Di); + var Li = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2, a2, s2, o2, l2) { - const u2 = this.length; - return this.resize(u2 + 1), this.emplace(u2, t2, e2, r2, n2, i2, a2, s2, o2, l2); - } - emplace(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2) { - const c3 = 10 * t2, h3 = 5 * t2; - return this.int16[c3 + 0] = e2, this.int16[c3 + 1] = r2, this.int16[c3 + 2] = n2, this.int16[c3 + 3] = i2, this.int16[c3 + 4] = a2, this.int16[c3 + 5] = s2, this.uint32[h3 + 3] = o2, this.uint16[c3 + 8] = l2, this.uint16[c3 + 9] = u2, t2; - } - } - Ci.prototype.bytesPerElement = 20, Mn("StructArrayLayout6i1ul2ui20", Ci); - class Pi extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2, a2, o2, s2, u2) { + var l2 = this.length; + return this.resize(l2 + 1), this.emplace(l2, t3, e3, r2, n2, i2, a2, o2, s2, u2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2) { + var p3 = 10 * t3, c3 = 5 * t3; + return this.int16[p3 + 0] = e3, this.int16[p3 + 1] = r2, this.int16[p3 + 2] = n2, this.int16[p3 + 3] = i2, this.int16[p3 + 4] = a2, this.int16[p3 + 5] = o2, this.uint32[c3 + 3] = s2, this.uint16[p3 + 8] = u2, this.uint16[p3 + 9] = l2, t3; + }, e2; + }(ki); + Li.prototype.bytesPerElement = 20, On("StructArrayLayout6i1ul2ui20", Li); + var Oi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2, a2) { - const s2 = this.length; - return this.resize(s2 + 1), this.emplace(s2, t2, e2, r2, n2, i2, a2); - } - emplace(t2, e2, r2, n2, i2, a2, s2) { - const o2 = 6 * t2; - return this.int16[o2 + 0] = e2, this.int16[o2 + 1] = r2, this.int16[o2 + 2] = n2, this.int16[o2 + 3] = i2, this.int16[o2 + 4] = a2, this.int16[o2 + 5] = s2, t2; - } - } - Pi.prototype.bytesPerElement = 12, Mn("StructArrayLayout2i2i2i12", Pi); - class Vi extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2, a2) { + var o2 = this.length; + return this.resize(o2 + 1), this.emplace(o2, t3, e3, r2, n2, i2, a2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2, o2) { + var s2 = 6 * t3; + return this.int16[s2 + 0] = e3, this.int16[s2 + 1] = r2, this.int16[s2 + 2] = n2, this.int16[s2 + 3] = i2, this.int16[s2 + 4] = a2, this.int16[s2 + 5] = o2, t3; + }, e2; + }(ki); + Oi.prototype.bytesPerElement = 12, On("StructArrayLayout2i2i2i12", Oi); + var Ri = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2) { - const a2 = this.length; - return this.resize(a2 + 1), this.emplace(a2, t2, e2, r2, n2, i2); - } - emplace(t2, e2, r2, n2, i2, a2) { - const s2 = 4 * t2, o2 = 8 * t2; - return this.float32[s2 + 0] = e2, this.float32[s2 + 1] = r2, this.float32[s2 + 2] = n2, this.int16[o2 + 6] = i2, this.int16[o2 + 7] = a2, t2; - } - } - Vi.prototype.bytesPerElement = 16, Mn("StructArrayLayout2f1f2i16", Vi); - class Ei extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2) { + var a2 = this.length; + return this.resize(a2 + 1), this.emplace(a2, t3, e3, r2, n2, i2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2) { + var o2 = 4 * t3, s2 = 8 * t3; + return this.float32[o2 + 0] = e3, this.float32[o2 + 1] = r2, this.float32[o2 + 2] = n2, this.int16[s2 + 6] = i2, this.int16[s2 + 7] = a2, t3; + }, e2; + }(ki); + Ri.prototype.bytesPerElement = 16, On("StructArrayLayout2f1f2i16", Ri); + var Ui = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2) { - const i2 = this.length; - return this.resize(i2 + 1), this.emplace(i2, t2, e2, r2, n2); - } - emplace(t2, e2, r2, n2, i2) { - const a2 = 12 * t2, s2 = 3 * t2; - return this.uint8[a2 + 0] = e2, this.uint8[a2 + 1] = r2, this.float32[s2 + 1] = n2, this.float32[s2 + 2] = i2, t2; - } - } - Ei.prototype.bytesPerElement = 12, Mn("StructArrayLayout2ub2f12", Ei); - class Fi extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2) { + var i2 = this.length; + return this.resize(i2 + 1), this.emplace(i2, t3, e3, r2, n2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2) { + var a2 = 12 * t3, o2 = 3 * t3; + return this.uint8[a2 + 0] = e3, this.uint8[a2 + 1] = r2, this.float32[o2 + 1] = n2, this.float32[o2 + 2] = i2, t3; + }, e2; + }(ki); + Ui.prototype.bytesPerElement = 12, On("StructArrayLayout2ub2f12", Ui); + var ji = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2) { - const n2 = this.length; - return this.resize(n2 + 1), this.emplace(n2, t2, e2, r2); - } - emplace(t2, e2, r2, n2) { - const i2 = 3 * t2; - return this.uint16[i2 + 0] = e2, this.uint16[i2 + 1] = r2, this.uint16[i2 + 2] = n2, t2; - } - } - Fi.prototype.bytesPerElement = 6, Mn("StructArrayLayout3ui6", Fi); - class Ti extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2) { + var n2 = this.length; + return this.resize(n2 + 1), this.emplace(n2, t3, e3, r2); + }, e2.prototype.emplace = function(t3, e3, r2, n2) { + var i2 = 3 * t3; + return this.uint16[i2 + 0] = e3, this.uint16[i2 + 1] = r2, this.uint16[i2 + 2] = n2, t3; + }, e2; + }(ki); + ji.prototype.bytesPerElement = 6, On("StructArrayLayout3ui6", ji); + var qi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, d2, y3, m2) { - const g2 = this.length; - return this.resize(g2 + 1), this.emplace(g2, t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, d2, y3, m2); - } - emplace(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, d2, y3, m2, g2) { - const x2 = 24 * t2, v3 = 12 * t2, b2 = 48 * t2; - return this.int16[x2 + 0] = e2, this.int16[x2 + 1] = r2, this.uint16[x2 + 2] = n2, this.uint16[x2 + 3] = i2, this.uint32[v3 + 2] = a2, this.uint32[v3 + 3] = s2, this.uint32[v3 + 4] = o2, this.uint16[x2 + 10] = l2, this.uint16[x2 + 11] = u2, this.uint16[x2 + 12] = c3, this.float32[v3 + 7] = h3, this.float32[v3 + 8] = p3, this.uint8[b2 + 36] = f2, this.uint8[b2 + 37] = d2, this.uint8[b2 + 38] = y3, this.uint32[v3 + 10] = m2, this.int16[x2 + 22] = g2, t2; - } - } - Ti.prototype.bytesPerElement = 48, Mn("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48", Ti); - class Li extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2, m2) { + var v3 = this.length; + return this.resize(v3 + 1), this.emplace(v3, t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2, m2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2, m2, v3) { + var g2 = 24 * t3, x2 = 12 * t3, b2 = 48 * t3; + return this.int16[g2 + 0] = e3, this.int16[g2 + 1] = r2, this.uint16[g2 + 2] = n2, this.uint16[g2 + 3] = i2, this.uint32[x2 + 2] = a2, this.uint32[x2 + 3] = o2, this.uint32[x2 + 4] = s2, this.uint16[g2 + 10] = u2, this.uint16[g2 + 11] = l2, this.uint16[g2 + 12] = p3, this.float32[x2 + 7] = c3, this.float32[x2 + 8] = h3, this.uint8[b2 + 36] = f2, this.uint8[b2 + 37] = y3, this.uint8[b2 + 38] = d2, this.uint32[x2 + 10] = m2, this.int16[g2 + 22] = v3, t3; + }, e2; + }(ki); + qi.prototype.bytesPerElement = 48, On("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48", qi); + var Ni = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, d2, y3, m2, g2, x2, v3, b2, w2, _2, A3, k2, S2, I3, M2) { - const z2 = this.length; - return this.resize(z2 + 1), this.emplace(z2, t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, d2, y3, m2, g2, x2, v3, b2, w2, _2, A3, k2, S2, I3, M2); - } - emplace(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, d2, y3, m2, g2, x2, v3, b2, w2, _2, A3, k2, S2, I3, M2, z2) { - const B2 = 34 * t2, C2 = 17 * t2; - return this.int16[B2 + 0] = e2, this.int16[B2 + 1] = r2, this.int16[B2 + 2] = n2, this.int16[B2 + 3] = i2, this.int16[B2 + 4] = a2, this.int16[B2 + 5] = s2, this.int16[B2 + 6] = o2, this.int16[B2 + 7] = l2, this.uint16[B2 + 8] = u2, this.uint16[B2 + 9] = c3, this.uint16[B2 + 10] = h3, this.uint16[B2 + 11] = p3, this.uint16[B2 + 12] = f2, this.uint16[B2 + 13] = d2, this.uint16[B2 + 14] = y3, this.uint16[B2 + 15] = m2, this.uint16[B2 + 16] = g2, this.uint16[B2 + 17] = x2, this.uint16[B2 + 18] = v3, this.uint16[B2 + 19] = b2, this.uint16[B2 + 20] = w2, this.uint16[B2 + 21] = _2, this.uint16[B2 + 22] = A3, this.uint32[C2 + 12] = k2, this.float32[C2 + 13] = S2, this.float32[C2 + 14] = I3, this.float32[C2 + 15] = M2, this.float32[C2 + 16] = z2, t2; - } - } - Li.prototype.bytesPerElement = 68, Mn("StructArrayLayout8i15ui1ul4f68", Li); - class Di extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2, m2, v3, g2, x2, b2, w2, _2, A3, S2, k2, I3, z2) { + var C2 = this.length; + return this.resize(C2 + 1), this.emplace(C2, t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2, m2, v3, g2, x2, b2, w2, _2, A3, S2, k2, I3, z2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2, m2, v3, g2, x2, b2, w2, _2, A3, S2, k2, I3, z2, C2) { + var E2 = 34 * t3, P2 = 17 * t3; + return this.int16[E2 + 0] = e3, this.int16[E2 + 1] = r2, this.int16[E2 + 2] = n2, this.int16[E2 + 3] = i2, this.int16[E2 + 4] = a2, this.int16[E2 + 5] = o2, this.int16[E2 + 6] = s2, this.int16[E2 + 7] = u2, this.uint16[E2 + 8] = l2, this.uint16[E2 + 9] = p3, this.uint16[E2 + 10] = c3, this.uint16[E2 + 11] = h3, this.uint16[E2 + 12] = f2, this.uint16[E2 + 13] = y3, this.uint16[E2 + 14] = d2, this.uint16[E2 + 15] = m2, this.uint16[E2 + 16] = v3, this.uint16[E2 + 17] = g2, this.uint16[E2 + 18] = x2, this.uint16[E2 + 19] = b2, this.uint16[E2 + 20] = w2, this.uint16[E2 + 21] = _2, this.uint16[E2 + 22] = A3, this.uint32[P2 + 12] = S2, this.float32[P2 + 13] = k2, this.float32[P2 + 14] = I3, this.float32[P2 + 15] = z2, this.float32[P2 + 16] = C2, t3; + }, e2; + }(ki); + Ni.prototype.bytesPerElement = 68, On("StructArrayLayout8i15ui1ul4f68", Ni); + var Ki = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer); - } - emplaceBack(t2) { - const e2 = this.length; - return this.resize(e2 + 1), this.emplace(e2, t2); - } - emplace(t2, e2) { - return this.float32[1 * t2 + 0] = e2, t2; - } - } - Di.prototype.bytesPerElement = 4, Mn("StructArrayLayout1f4", Di); - class $i extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3) { + var e3 = this.length; + return this.resize(e3 + 1), this.emplace(e3, t3); + }, e2.prototype.emplace = function(t3, e3) { + return this.float32[1 * t3 + 0] = e3, t3; + }, e2; + }(ki); + Ki.prototype.bytesPerElement = 4, On("StructArrayLayout1f4", Ki); + var Gi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2) { - const n2 = this.length; - return this.resize(n2 + 1), this.emplace(n2, t2, e2, r2); - } - emplace(t2, e2, r2, n2) { - const i2 = 3 * t2; - return this.int16[i2 + 0] = e2, this.int16[i2 + 1] = r2, this.int16[i2 + 2] = n2, t2; - } - } - $i.prototype.bytesPerElement = 6, Mn("StructArrayLayout3i6", $i); - class Ri extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2) { + var n2 = this.length; + return this.resize(n2 + 1), this.emplace(n2, t3, e3, r2); + }, e2.prototype.emplace = function(t3, e3, r2, n2) { + var i2 = 3 * t3; + return this.int16[i2 + 0] = e3, this.int16[i2 + 1] = r2, this.int16[i2 + 2] = n2, t3; + }, e2; + }(ki); + Gi.prototype.bytesPerElement = 6, On("StructArrayLayout3i6", Gi); + var Zi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2) { - const n2 = this.length; - return this.resize(n2 + 1), this.emplace(n2, t2, e2, r2); - } - emplace(t2, e2, r2, n2) { - const i2 = 4 * t2; - return this.uint32[2 * t2 + 0] = e2, this.uint16[i2 + 2] = r2, this.uint16[i2 + 3] = n2, t2; - } - } - Ri.prototype.bytesPerElement = 8, Mn("StructArrayLayout1ul2ui8", Ri); - class Oi extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3, r2) { + var n2 = this.length; + return this.resize(n2 + 1), this.emplace(n2, t3, e3, r2); + }, e2.prototype.emplace = function(t3, e3, r2, n2) { + var i2 = 4 * t3; + return this.uint32[2 * t3 + 0] = e3, this.uint16[i2 + 2] = r2, this.uint16[i2 + 3] = n2, t3; + }, e2; + }(ki); + Zi.prototype.bytesPerElement = 8, On("StructArrayLayout1ul2ui8", Zi); + var Xi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer); - } - emplaceBack(t2, e2) { - const r2 = this.length; - return this.resize(r2 + 1), this.emplace(r2, t2, e2); - } - emplace(t2, e2, r2) { - const n2 = 2 * t2; - return this.uint16[n2 + 0] = e2, this.uint16[n2 + 1] = r2, t2; - } - } - Oi.prototype.bytesPerElement = 4, Mn("StructArrayLayout2ui4", Oi); - class Ui extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3, e3) { + var r2 = this.length; + return this.resize(r2 + 1), this.emplace(r2, t3, e3); + }, e2.prototype.emplace = function(t3, e3, r2) { + var n2 = 2 * t3; + return this.uint16[n2 + 0] = e3, this.uint16[n2 + 1] = r2, t3; + }, e2; + }(ki); + Xi.prototype.bytesPerElement = 4, On("StructArrayLayout2ui4", Xi); + var Ji = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer); - } - emplaceBack(t2) { - const e2 = this.length; - return this.resize(e2 + 1), this.emplace(e2, t2); - } - emplace(t2, e2) { - return this.uint16[1 * t2 + 0] = e2, t2; - } - } - Ui.prototype.bytesPerElement = 2, Mn("StructArrayLayout1ui2", Ui); - class qi extends xi { - _refreshViews() { + }, e2.prototype.emplaceBack = function(t3) { + var e3 = this.length; + return this.resize(e3 + 1), this.emplace(e3, t3); + }, e2.prototype.emplace = function(t3, e3) { + return this.uint16[1 * t3 + 0] = e3, t3; + }, e2; + }(ki); + Ji.prototype.bytesPerElement = 2, On("StructArrayLayout1ui2", Ji); + var Hi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._refreshViews = function() { this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer); - } - emplaceBack(t2, e2, r2, n2) { - const i2 = this.length; - return this.resize(i2 + 1), this.emplace(i2, t2, e2, r2, n2); - } - emplace(t2, e2, r2, n2, i2) { - const a2 = 4 * t2; - return this.float32[a2 + 0] = e2, this.float32[a2 + 1] = r2, this.float32[a2 + 2] = n2, this.float32[a2 + 3] = i2, t2; - } - } - qi.prototype.bytesPerElement = 16, Mn("StructArrayLayout4f16", qi); - class ji extends gi { - get anchorPointX() { + }, e2.prototype.emplaceBack = function(t3, e3, r2, n2) { + var i2 = this.length; + return this.resize(i2 + 1), this.emplace(i2, t3, e3, r2, n2); + }, e2.prototype.emplace = function(t3, e3, r2, n2, i2) { + var a2 = 4 * t3; + return this.float32[a2 + 0] = e3, this.float32[a2 + 1] = r2, this.float32[a2 + 2] = n2, this.float32[a2 + 3] = i2, t3; + }, e2; + }(ki); + Hi.prototype.bytesPerElement = 16, On("StructArrayLayout4f16", Hi); + var Yi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2; + var r2 = { anchorPointX: { configurable: true }, anchorPointY: { configurable: true }, x1: { configurable: true }, y1: { configurable: true }, x2: { configurable: true }, y2: { configurable: true }, featureIndex: { configurable: true }, sourceLayerIndex: { configurable: true }, bucketIndex: { configurable: true }, anchorPoint: { configurable: true } }; + return r2.anchorPointX.get = function() { return this._structArray.int16[this._pos2 + 0]; - } - get anchorPointY() { + }, r2.anchorPointY.get = function() { return this._structArray.int16[this._pos2 + 1]; - } - get x1() { + }, r2.x1.get = function() { return this._structArray.int16[this._pos2 + 2]; - } - get y1() { + }, r2.y1.get = function() { return this._structArray.int16[this._pos2 + 3]; - } - get x2() { + }, r2.x2.get = function() { return this._structArray.int16[this._pos2 + 4]; - } - get y2() { + }, r2.y2.get = function() { return this._structArray.int16[this._pos2 + 5]; - } - get featureIndex() { + }, r2.featureIndex.get = function() { return this._structArray.uint32[this._pos4 + 3]; - } - get sourceLayerIndex() { + }, r2.sourceLayerIndex.get = function() { return this._structArray.uint16[this._pos2 + 8]; - } - get bucketIndex() { + }, r2.bucketIndex.get = function() { return this._structArray.uint16[this._pos2 + 9]; - } - get anchorPoint() { - return new S(this.anchorPointX, this.anchorPointY); - } - } - ji.prototype.size = 20; - class Ni extends Ci { - get(t2) { - return new ji(this, t2); - } - } - Mn("CollisionBoxArray", Ni); - class Zi extends gi { - get anchorX() { + }, r2.anchorPoint.get = function() { + return new i(this.anchorPointX, this.anchorPointY); + }, Object.defineProperties(e2.prototype, r2), e2; + }(Si); + Yi.prototype.size = 20; + var $i = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.get = function(t3) { + return new Yi(this, t3); + }, e2; + }(Li); + On("CollisionBoxArray", $i); + var Wi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2; + var r2 = { anchorX: { configurable: true }, anchorY: { configurable: true }, glyphStartIndex: { configurable: true }, numGlyphs: { configurable: true }, vertexStartIndex: { configurable: true }, lineStartIndex: { configurable: true }, lineLength: { configurable: true }, segment: { configurable: true }, lowerSize: { configurable: true }, upperSize: { configurable: true }, lineOffsetX: { configurable: true }, lineOffsetY: { configurable: true }, writingMode: { configurable: true }, placedOrientation: { configurable: true }, hidden: { configurable: true }, crossTileID: { configurable: true }, associatedIconIndex: { configurable: true } }; + return r2.anchorX.get = function() { return this._structArray.int16[this._pos2 + 0]; - } - get anchorY() { + }, r2.anchorY.get = function() { return this._structArray.int16[this._pos2 + 1]; - } - get glyphStartIndex() { + }, r2.glyphStartIndex.get = function() { return this._structArray.uint16[this._pos2 + 2]; - } - get numGlyphs() { + }, r2.numGlyphs.get = function() { return this._structArray.uint16[this._pos2 + 3]; - } - get vertexStartIndex() { + }, r2.vertexStartIndex.get = function() { return this._structArray.uint32[this._pos4 + 2]; - } - get lineStartIndex() { + }, r2.lineStartIndex.get = function() { return this._structArray.uint32[this._pos4 + 3]; - } - get lineLength() { + }, r2.lineLength.get = function() { return this._structArray.uint32[this._pos4 + 4]; - } - get segment() { + }, r2.segment.get = function() { return this._structArray.uint16[this._pos2 + 10]; - } - get lowerSize() { + }, r2.lowerSize.get = function() { return this._structArray.uint16[this._pos2 + 11]; - } - get upperSize() { + }, r2.upperSize.get = function() { return this._structArray.uint16[this._pos2 + 12]; - } - get lineOffsetX() { + }, r2.lineOffsetX.get = function() { return this._structArray.float32[this._pos4 + 7]; - } - get lineOffsetY() { + }, r2.lineOffsetY.get = function() { return this._structArray.float32[this._pos4 + 8]; - } - get writingMode() { + }, r2.writingMode.get = function() { return this._structArray.uint8[this._pos1 + 36]; - } - get placedOrientation() { + }, r2.placedOrientation.get = function() { return this._structArray.uint8[this._pos1 + 37]; - } - set placedOrientation(t2) { - this._structArray.uint8[this._pos1 + 37] = t2; - } - get hidden() { + }, r2.placedOrientation.set = function(t3) { + this._structArray.uint8[this._pos1 + 37] = t3; + }, r2.hidden.get = function() { return this._structArray.uint8[this._pos1 + 38]; - } - set hidden(t2) { - this._structArray.uint8[this._pos1 + 38] = t2; - } - get crossTileID() { + }, r2.hidden.set = function(t3) { + this._structArray.uint8[this._pos1 + 38] = t3; + }, r2.crossTileID.get = function() { return this._structArray.uint32[this._pos4 + 10]; - } - set crossTileID(t2) { - this._structArray.uint32[this._pos4 + 10] = t2; - } - get associatedIconIndex() { + }, r2.crossTileID.set = function(t3) { + this._structArray.uint32[this._pos4 + 10] = t3; + }, r2.associatedIconIndex.get = function() { return this._structArray.int16[this._pos2 + 22]; - } - } - Zi.prototype.size = 48; - class Ki extends Ti { - get(t2) { - return new Zi(this, t2); - } - } - Mn("PlacedSymbolArray", Ki); - class Gi extends gi { - get anchorX() { + }, Object.defineProperties(e2.prototype, r2), e2; + }(Si); + Wi.prototype.size = 48; + var Qi = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.get = function(t3) { + return new Wi(this, t3); + }, e2; + }(qi); + On("PlacedSymbolArray", Qi); + var ta = function(t2) { + function e2() { + t2.apply(this, arguments); + } + t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2; + var r2 = { anchorX: { configurable: true }, anchorY: { configurable: true }, rightJustifiedTextSymbolIndex: { configurable: true }, centerJustifiedTextSymbolIndex: { configurable: true }, leftJustifiedTextSymbolIndex: { configurable: true }, verticalPlacedTextSymbolIndex: { configurable: true }, placedIconSymbolIndex: { configurable: true }, verticalPlacedIconSymbolIndex: { configurable: true }, key: { configurable: true }, textBoxStartIndex: { configurable: true }, textBoxEndIndex: { configurable: true }, verticalTextBoxStartIndex: { configurable: true }, verticalTextBoxEndIndex: { configurable: true }, iconBoxStartIndex: { configurable: true }, iconBoxEndIndex: { configurable: true }, verticalIconBoxStartIndex: { configurable: true }, verticalIconBoxEndIndex: { configurable: true }, featureIndex: { configurable: true }, numHorizontalGlyphVertices: { configurable: true }, numVerticalGlyphVertices: { configurable: true }, numIconVertices: { configurable: true }, numVerticalIconVertices: { configurable: true }, useRuntimeCollisionCircles: { configurable: true }, crossTileID: { configurable: true }, textBoxScale: { configurable: true }, textOffset0: { configurable: true }, textOffset1: { configurable: true }, collisionCircleDiameter: { configurable: true } }; + return r2.anchorX.get = function() { return this._structArray.int16[this._pos2 + 0]; - } - get anchorY() { + }, r2.anchorY.get = function() { return this._structArray.int16[this._pos2 + 1]; - } - get rightJustifiedTextSymbolIndex() { + }, r2.rightJustifiedTextSymbolIndex.get = function() { return this._structArray.int16[this._pos2 + 2]; - } - get centerJustifiedTextSymbolIndex() { + }, r2.centerJustifiedTextSymbolIndex.get = function() { return this._structArray.int16[this._pos2 + 3]; - } - get leftJustifiedTextSymbolIndex() { + }, r2.leftJustifiedTextSymbolIndex.get = function() { return this._structArray.int16[this._pos2 + 4]; - } - get verticalPlacedTextSymbolIndex() { + }, r2.verticalPlacedTextSymbolIndex.get = function() { return this._structArray.int16[this._pos2 + 5]; - } - get placedIconSymbolIndex() { + }, r2.placedIconSymbolIndex.get = function() { return this._structArray.int16[this._pos2 + 6]; - } - get verticalPlacedIconSymbolIndex() { + }, r2.verticalPlacedIconSymbolIndex.get = function() { return this._structArray.int16[this._pos2 + 7]; - } - get key() { + }, r2.key.get = function() { return this._structArray.uint16[this._pos2 + 8]; - } - get textBoxStartIndex() { + }, r2.textBoxStartIndex.get = function() { return this._structArray.uint16[this._pos2 + 9]; - } - get textBoxEndIndex() { + }, r2.textBoxEndIndex.get = function() { return this._structArray.uint16[this._pos2 + 10]; - } - get verticalTextBoxStartIndex() { + }, r2.verticalTextBoxStartIndex.get = function() { return this._structArray.uint16[this._pos2 + 11]; - } - get verticalTextBoxEndIndex() { + }, r2.verticalTextBoxEndIndex.get = function() { return this._structArray.uint16[this._pos2 + 12]; - } - get iconBoxStartIndex() { + }, r2.iconBoxStartIndex.get = function() { return this._structArray.uint16[this._pos2 + 13]; - } - get iconBoxEndIndex() { + }, r2.iconBoxEndIndex.get = function() { return this._structArray.uint16[this._pos2 + 14]; - } - get verticalIconBoxStartIndex() { + }, r2.verticalIconBoxStartIndex.get = function() { return this._structArray.uint16[this._pos2 + 15]; - } - get verticalIconBoxEndIndex() { + }, r2.verticalIconBoxEndIndex.get = function() { return this._structArray.uint16[this._pos2 + 16]; - } - get featureIndex() { + }, r2.featureIndex.get = function() { return this._structArray.uint16[this._pos2 + 17]; - } - get numHorizontalGlyphVertices() { + }, r2.numHorizontalGlyphVertices.get = function() { return this._structArray.uint16[this._pos2 + 18]; - } - get numVerticalGlyphVertices() { + }, r2.numVerticalGlyphVertices.get = function() { return this._structArray.uint16[this._pos2 + 19]; - } - get numIconVertices() { + }, r2.numIconVertices.get = function() { return this._structArray.uint16[this._pos2 + 20]; - } - get numVerticalIconVertices() { + }, r2.numVerticalIconVertices.get = function() { return this._structArray.uint16[this._pos2 + 21]; - } - get useRuntimeCollisionCircles() { + }, r2.useRuntimeCollisionCircles.get = function() { return this._structArray.uint16[this._pos2 + 22]; - } - get crossTileID() { + }, r2.crossTileID.get = function() { return this._structArray.uint32[this._pos4 + 12]; - } - set crossTileID(t2) { - this._structArray.uint32[this._pos4 + 12] = t2; - } - get textBoxScale() { + }, r2.crossTileID.set = function(t3) { + this._structArray.uint32[this._pos4 + 12] = t3; + }, r2.textBoxScale.get = function() { return this._structArray.float32[this._pos4 + 13]; - } - get textOffset0() { + }, r2.textOffset0.get = function() { return this._structArray.float32[this._pos4 + 14]; - } - get textOffset1() { + }, r2.textOffset1.get = function() { return this._structArray.float32[this._pos4 + 15]; - } - get collisionCircleDiameter() { + }, r2.collisionCircleDiameter.get = function() { return this._structArray.float32[this._pos4 + 16]; - } - } - Gi.prototype.size = 68; - class Ji extends Li { - get(t2) { - return new Gi(this, t2); - } - } - Mn("SymbolInstanceArray", Ji); - class Xi extends Di { - getoffsetX(t2) { - return this.float32[1 * t2 + 0]; - } - } - Mn("GlyphOffsetArray", Xi); - class Yi extends $i { - getx(t2) { - return this.int16[3 * t2 + 0]; - } - gety(t2) { - return this.int16[3 * t2 + 1]; - } - gettileUnitDistanceFromAnchor(t2) { - return this.int16[3 * t2 + 2]; - } - } - Mn("SymbolLineVertexArray", Yi); - class Hi extends gi { - get featureIndex() { + }, Object.defineProperties(e2.prototype, r2), e2; + }(Si); + ta.prototype.size = 68; + var ea = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.get = function(t3) { + return new ta(this, t3); + }, e2; + }(Ni); + On("SymbolInstanceArray", ea); + var ra = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getoffsetX = function(t3) { + return this.float32[1 * t3 + 0]; + }, e2; + }(Ki); + On("GlyphOffsetArray", ra); + var na = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getx = function(t3) { + return this.int16[3 * t3 + 0]; + }, e2.prototype.gety = function(t3) { + return this.int16[3 * t3 + 1]; + }, e2.prototype.gettileUnitDistanceFromAnchor = function(t3) { + return this.int16[3 * t3 + 2]; + }, e2; + }(Gi); + On("SymbolLineVertexArray", na); + var ia = function(t2) { + function e2() { + t2.apply(this, arguments); + } + t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2; + var r2 = { featureIndex: { configurable: true }, sourceLayerIndex: { configurable: true }, bucketIndex: { configurable: true } }; + return r2.featureIndex.get = function() { return this._structArray.uint32[this._pos4 + 0]; - } - get sourceLayerIndex() { + }, r2.sourceLayerIndex.get = function() { return this._structArray.uint16[this._pos2 + 2]; - } - get bucketIndex() { + }, r2.bucketIndex.get = function() { return this._structArray.uint16[this._pos2 + 3]; - } - } - Hi.prototype.size = 8; - class Wi extends Ri { - get(t2) { - return new Hi(this, t2); - } - } - Mn("FeatureIndexArray", Wi); - class Qi extends wi { - } - class ta extends wi { - } - class ea extends wi { - } - class ra extends Ai { - } - class na extends ki { - } - class ia extends Si { - } - class aa extends Ii { - } - class sa extends Mi { - } - class oa extends zi { - } - class la extends Bi { - } - class ua extends Pi { - } - class ca extends Ei { - } - class ha extends Fi { - } - class pa extends Oi { - } - const fa = vi([{ name: "a_pos", components: 2, type: "Int16" }], 4), { members: da } = fa; - class ya { - constructor(t2 = []) { - this.segments = t2; - } - prepareSegment(t2, e2, r2, n2) { - let i2 = this.segments[this.segments.length - 1]; - return t2 > ya.MAX_VERTEX_ARRAY_LENGTH && d(`Max vertices per segment is ${ya.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t2}`), (!i2 || i2.vertexLength + t2 > ya.MAX_VERTEX_ARRAY_LENGTH || i2.sortKey !== n2) && (i2 = { vertexOffset: e2.length, primitiveOffset: r2.length, vertexLength: 0, primitiveLength: 0 }, void 0 !== n2 && (i2.sortKey = n2), this.segments.push(i2)), i2; - } - get() { - return this.segments; - } - destroy() { - for (const t2 of this.segments) - for (const e2 in t2.vaos) - t2.vaos[e2].destroy(); - } - static simpleSegment(t2, e2, r2, n2) { - return new ya([{ vertexOffset: t2, primitiveOffset: e2, vertexLength: r2, primitiveLength: n2, vaos: {}, sortKey: 0 }]); - } - } - function ma(t2, e2) { - return 256 * (t2 = a(Math.floor(t2), 0, 255)) + a(Math.floor(e2), 0, 255); - } - ya.MAX_VERTEX_ARRAY_LENGTH = Math.pow(2, 16) - 1, Mn("SegmentVector", ya); - const ga = vi([{ name: "a_pattern_from", components: 4, type: "Uint16" }, { name: "a_pattern_to", components: 4, type: "Uint16" }, { name: "a_pixel_ratio_from", components: 1, type: "Uint16" }, { name: "a_pixel_ratio_to", components: 1, type: "Uint16" }]); - var xa = { exports: {} }, va = { exports: {} }; - va.exports = function(t2, e2) { - var r2, n2, i2, a2, s2, o2, l2, u2; - for (n2 = t2.length - (r2 = 3 & t2.length), i2 = e2, s2 = 3432918353, o2 = 461845907, u2 = 0; u2 < n2; ) - l2 = 255 & t2.charCodeAt(u2) | (255 & t2.charCodeAt(++u2)) << 8 | (255 & t2.charCodeAt(++u2)) << 16 | (255 & t2.charCodeAt(++u2)) << 24, ++u2, i2 = 27492 + (65535 & (a2 = 5 * (65535 & (i2 = (i2 ^= l2 = (65535 & (l2 = (l2 = (65535 & l2) * s2 + (((l2 >>> 16) * s2 & 65535) << 16) & 4294967295) << 15 | l2 >>> 17)) * o2 + (((l2 >>> 16) * o2 & 65535) << 16) & 4294967295) << 13 | i2 >>> 19)) + ((5 * (i2 >>> 16) & 65535) << 16) & 4294967295)) + ((58964 + (a2 >>> 16) & 65535) << 16); - switch (l2 = 0, r2) { - case 3: - l2 ^= (255 & t2.charCodeAt(u2 + 2)) << 16; - case 2: - l2 ^= (255 & t2.charCodeAt(u2 + 1)) << 8; - case 1: - i2 ^= l2 = (65535 & (l2 = (l2 = (65535 & (l2 ^= 255 & t2.charCodeAt(u2))) * s2 + (((l2 >>> 16) * s2 & 65535) << 16) & 4294967295) << 15 | l2 >>> 17)) * o2 + (((l2 >>> 16) * o2 & 65535) << 16) & 4294967295; - } - return i2 ^= t2.length, i2 = 2246822507 * (65535 & (i2 ^= i2 >>> 16)) + ((2246822507 * (i2 >>> 16) & 65535) << 16) & 4294967295, i2 = 3266489909 * (65535 & (i2 ^= i2 >>> 13)) + ((3266489909 * (i2 >>> 16) & 65535) << 16) & 4294967295, (i2 ^= i2 >>> 16) >>> 0; + }, Object.defineProperties(e2.prototype, r2), e2; + }(Si); + ia.prototype.size = 8; + var aa = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.get = function(t3) { + return new ia(this, t3); + }, e2; + }(Zi); + On("FeatureIndexArray", aa); + var oa = Ii([{ name: "a_pos", components: 2, type: "Int16" }], 4).members, sa = function(t2) { + void 0 === t2 && (t2 = []), this.segments = t2; }; - var ba = { exports: {} }; - ba.exports = function(t2, e2) { - for (var r2, n2 = t2.length, i2 = e2 ^ n2, a2 = 0; n2 >= 4; ) - r2 = 1540483477 * (65535 & (r2 = 255 & t2.charCodeAt(a2) | (255 & t2.charCodeAt(++a2)) << 8 | (255 & t2.charCodeAt(++a2)) << 16 | (255 & t2.charCodeAt(++a2)) << 24)) + ((1540483477 * (r2 >>> 16) & 65535) << 16), i2 = 1540483477 * (65535 & i2) + ((1540483477 * (i2 >>> 16) & 65535) << 16) ^ (r2 = 1540483477 * (65535 & (r2 ^= r2 >>> 24)) + ((1540483477 * (r2 >>> 16) & 65535) << 16)), n2 -= 4, ++a2; - switch (n2) { - case 3: - i2 ^= (255 & t2.charCodeAt(a2 + 2)) << 16; - case 2: - i2 ^= (255 & t2.charCodeAt(a2 + 1)) << 8; - case 1: - i2 = 1540483477 * (65535 & (i2 ^= 255 & t2.charCodeAt(a2))) + ((1540483477 * (i2 >>> 16) & 65535) << 16); - } - return i2 = 1540483477 * (65535 & (i2 ^= i2 >>> 13)) + ((1540483477 * (i2 >>> 16) & 65535) << 16), (i2 ^= i2 >>> 15) >>> 0; - }; - var wa = va.exports, _a = ba.exports; - xa.exports = wa, xa.exports.murmur3 = wa, xa.exports.murmur2 = _a; - class Aa { - constructor() { - this.ids = [], this.positions = [], this.indexed = false; - } - add(t2, e2, r2, n2) { - this.ids.push(ka(t2)), this.positions.push(e2, r2, n2); - } - getPositions(t2) { - if (!this.indexed) - throw new Error("Trying to get index, but feature positions are not indexed"); - const e2 = ka(t2); - let r2 = 0, n2 = this.ids.length - 1; - for (; r2 < n2; ) { - const t3 = r2 + n2 >> 1; - this.ids[t3] >= e2 ? n2 = t3 : r2 = t3 + 1; - } - const i2 = []; - for (; this.ids[r2] === e2; ) - i2.push({ index: this.positions[3 * r2], start: this.positions[3 * r2 + 1], end: this.positions[3 * r2 + 2] }), r2++; - return i2; - } - static serialize(t2, e2) { - const r2 = new Float64Array(t2.ids), n2 = new Uint32Array(t2.positions); - return Sa(r2, n2, 0, r2.length - 1), e2 && e2.push(r2.buffer, n2.buffer), { ids: r2, positions: n2 }; - } - static deserialize(t2) { - const e2 = new Aa(); - return e2.ids = t2.ids, e2.positions = t2.positions, e2.indexed = true, e2; - } - } - function ka(t2) { - const e2 = +t2; - return !isNaN(e2) && e2 <= Number.MAX_SAFE_INTEGER ? e2 : xa.exports(String(t2)); - } - function Sa(t2, e2, r2, n2) { - for (; r2 < n2; ) { - const i2 = t2[r2 + n2 >> 1]; - let a2 = r2 - 1, s2 = n2 + 1; - for (; ; ) { - do { - a2++; - } while (t2[a2] < i2); - do { - s2--; - } while (t2[s2] > i2); - if (a2 >= s2) - break; - Ia(t2, a2, s2), Ia(e2, 3 * a2, 3 * s2), Ia(e2, 3 * a2 + 1, 3 * s2 + 1), Ia(e2, 3 * a2 + 2, 3 * s2 + 2); + function ua(t2, e2) { + return 256 * (t2 = p2(Math.floor(t2), 0, 255)) + p2(Math.floor(e2), 0, 255); + } + sa.prototype.prepareSegment = function(t2, e2, r2, n2) { + var i2 = this.segments[this.segments.length - 1]; + return t2 > sa.MAX_VERTEX_ARRAY_LENGTH && A2("Max vertices per segment is " + sa.MAX_VERTEX_ARRAY_LENGTH + ": bucket requested " + t2), (!i2 || i2.vertexLength + t2 > sa.MAX_VERTEX_ARRAY_LENGTH || i2.sortKey !== n2) && (i2 = { vertexOffset: e2.length, primitiveOffset: r2.length, vertexLength: 0, primitiveLength: 0 }, void 0 !== n2 && (i2.sortKey = n2), this.segments.push(i2)), i2; + }, sa.prototype.get = function() { + return this.segments; + }, sa.prototype.destroy = function() { + for (var t2 = 0, e2 = this.segments; t2 < e2.length; t2 += 1) { + var r2 = e2[t2]; + for (var n2 in r2.vaos) + r2.vaos[n2].destroy(); + } + }, sa.simpleSegment = function(t2, e2, r2, n2) { + return new sa([{ vertexOffset: t2, primitiveOffset: e2, vertexLength: r2, primitiveLength: n2, vaos: {}, sortKey: 0 }]); + }, sa.MAX_VERTEX_ARRAY_LENGTH = Math.pow(2, 16) - 1, On("SegmentVector", sa); + var la = Ii([{ name: "a_pattern_from", components: 4, type: "Uint16" }, { name: "a_pattern_to", components: 4, type: "Uint16" }, { name: "a_pixel_ratio_from", components: 1, type: "Uint16" }, { name: "a_pixel_ratio_to", components: 1, type: "Uint16" }]), pa = e(function(t2) { + t2.exports = function(t3, e2) { + var r2, n2, i2, a2, o2, s2, u2, l2; + for (n2 = t3.length - (r2 = 3 & t3.length), i2 = e2, o2 = 3432918353, s2 = 461845907, l2 = 0; l2 < n2; ) + u2 = 255 & t3.charCodeAt(l2) | (255 & t3.charCodeAt(++l2)) << 8 | (255 & t3.charCodeAt(++l2)) << 16 | (255 & t3.charCodeAt(++l2)) << 24, ++l2, i2 = 27492 + (65535 & (a2 = 5 * (65535 & (i2 = (i2 ^= u2 = (65535 & (u2 = (u2 = (65535 & u2) * o2 + (((u2 >>> 16) * o2 & 65535) << 16) & 4294967295) << 15 | u2 >>> 17)) * s2 + (((u2 >>> 16) * s2 & 65535) << 16) & 4294967295) << 13 | i2 >>> 19)) + ((5 * (i2 >>> 16) & 65535) << 16) & 4294967295)) + ((58964 + (a2 >>> 16) & 65535) << 16); + switch (u2 = 0, r2) { + case 3: + u2 ^= (255 & t3.charCodeAt(l2 + 2)) << 16; + case 2: + u2 ^= (255 & t3.charCodeAt(l2 + 1)) << 8; + case 1: + i2 ^= u2 = (65535 & (u2 = (u2 = (65535 & (u2 ^= 255 & t3.charCodeAt(l2))) * o2 + (((u2 >>> 16) * o2 & 65535) << 16) & 4294967295) << 15 | u2 >>> 17)) * s2 + (((u2 >>> 16) * s2 & 65535) << 16) & 4294967295; } - s2 - r2 < n2 - s2 ? (Sa(t2, e2, r2, s2), r2 = s2 + 1) : (Sa(t2, e2, s2 + 1, n2), n2 = s2); - } - } - function Ia(t2, e2, r2) { - const n2 = t2[e2]; - t2[e2] = t2[r2], t2[r2] = n2; - } - Mn("FeaturePositionMap", Aa); - class Ma { - constructor(t2, e2) { - this.gl = t2.gl, this.location = e2; - } - } - class za extends Ma { - constructor(t2, e2) { - super(t2, e2), this.current = 0; - } - set(t2) { - this.current !== t2 && (this.current = t2, this.gl.uniform1f(this.location, t2)); - } - } - class Ba extends Ma { - constructor(t2, e2) { - super(t2, e2), this.current = [0, 0, 0, 0]; - } - set(t2) { - t2[0] === this.current[0] && t2[1] === this.current[1] && t2[2] === this.current[2] && t2[3] === this.current[3] || (this.current = t2, this.gl.uniform4f(this.location, t2[0], t2[1], t2[2], t2[3])); - } - } - class Ca extends Ma { - constructor(t2, e2) { - super(t2, e2), this.current = Ft.transparent; - } - set(t2) { - t2.r === this.current.r && t2.g === this.current.g && t2.b === this.current.b && t2.a === this.current.a || (this.current = t2, this.gl.uniform4f(this.location, t2.r, t2.g, t2.b, t2.a)); - } - } - const Pa = new Float32Array(16); - function Va(t2) { - return [ma(255 * t2.r, 255 * t2.g), ma(255 * t2.b, 255 * t2.a)]; - } - class Ea { - constructor(t2, e2, r2) { - this.value = t2, this.uniformNames = e2.map((t3) => `u_${t3}`), this.type = r2; - } - setUniform(t2, e2, r2) { - t2.set(r2.constantOr(this.value)); - } - getBinding(t2, e2, r2) { - return "color" === this.type ? new Ca(t2, e2) : new za(t2, e2); - } - } - class Fa { - constructor(t2, e2) { - this.uniformNames = e2.map((t3) => `u_${t3}`), this.patternFrom = null, this.patternTo = null, this.pixelRatioFrom = 1, this.pixelRatioTo = 1; - } - setConstantPatternPositions(t2, e2) { - this.pixelRatioFrom = e2.pixelRatio, this.pixelRatioTo = t2.pixelRatio, this.patternFrom = e2.tlbr, this.patternTo = t2.tlbr; - } - setUniform(t2, e2, r2, n2) { - const i2 = "u_pattern_to" === n2 ? this.patternTo : "u_pattern_from" === n2 ? this.patternFrom : "u_pixel_ratio_to" === n2 ? this.pixelRatioTo : "u_pixel_ratio_from" === n2 ? this.pixelRatioFrom : null; - i2 && t2.set(i2); - } - getBinding(t2, e2, r2) { - return "u_pattern" === r2.substr(0, 9) ? new Ba(t2, e2) : new za(t2, e2); - } - } - class Ta { - constructor(t2, e2, r2, n2) { - this.expression = t2, this.type = r2, this.maxValue = 0, this.paintVertexAttributes = e2.map((t3) => ({ name: `a_${t3}`, type: "Float32", components: "color" === r2 ? 2 : 1, offset: 0 })), this.paintVertexArray = new n2(); - } - populatePaintArray(t2, e2, r2, n2, i2) { - const a2 = this.paintVertexArray.length, s2 = this.expression.evaluate(new Qn(0), e2, {}, n2, [], i2); - this.paintVertexArray.resize(t2), this._setPaintValue(a2, t2, s2); - } - updatePaintArray(t2, e2, r2, n2) { - const i2 = this.expression.evaluate({ zoom: 0 }, r2, n2); - this._setPaintValue(t2, e2, i2); - } - _setPaintValue(t2, e2, r2) { - if ("color" === this.type) { - const n2 = Va(r2); - for (let r3 = t2; r3 < e2; r3++) - this.paintVertexArray.emplace(r3, n2[0], n2[1]); - } else { - for (let n2 = t2; n2 < e2; n2++) - this.paintVertexArray.emplace(n2, r2); - this.maxValue = Math.max(this.maxValue, Math.abs(r2)); + return i2 ^= t3.length, i2 = 2246822507 * (65535 & (i2 ^= i2 >>> 16)) + ((2246822507 * (i2 >>> 16) & 65535) << 16) & 4294967295, i2 = 3266489909 * (65535 & (i2 ^= i2 >>> 13)) + ((3266489909 * (i2 >>> 16) & 65535) << 16) & 4294967295, (i2 ^= i2 >>> 16) >>> 0; + }; + }), ca = e(function(t2) { + t2.exports = function(t3, e2) { + for (var r2, n2 = t3.length, i2 = e2 ^ n2, a2 = 0; n2 >= 4; ) + r2 = 1540483477 * (65535 & (r2 = 255 & t3.charCodeAt(a2) | (255 & t3.charCodeAt(++a2)) << 8 | (255 & t3.charCodeAt(++a2)) << 16 | (255 & t3.charCodeAt(++a2)) << 24)) + ((1540483477 * (r2 >>> 16) & 65535) << 16), i2 = 1540483477 * (65535 & i2) + ((1540483477 * (i2 >>> 16) & 65535) << 16) ^ (r2 = 1540483477 * (65535 & (r2 ^= r2 >>> 24)) + ((1540483477 * (r2 >>> 16) & 65535) << 16)), n2 -= 4, ++a2; + switch (n2) { + case 3: + i2 ^= (255 & t3.charCodeAt(a2 + 2)) << 16; + case 2: + i2 ^= (255 & t3.charCodeAt(a2 + 1)) << 8; + case 1: + i2 = 1540483477 * (65535 & (i2 ^= 255 & t3.charCodeAt(a2))) + ((1540483477 * (i2 >>> 16) & 65535) << 16); } - } - upload(t2) { - this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = t2.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent)); - } - destroy() { - this.paintVertexBuffer && this.paintVertexBuffer.destroy(); - } - } - class La { - constructor(t2, e2, r2, n2, i2, a2) { - this.expression = t2, this.uniformNames = e2.map((t3) => `u_${t3}_t`), this.type = r2, this.useIntegerZoom = n2, this.zoom = i2, this.maxValue = 0, this.paintVertexAttributes = e2.map((t3) => ({ name: `a_${t3}`, type: "Float32", components: "color" === r2 ? 4 : 2, offset: 0 })), this.paintVertexArray = new a2(); - } - populatePaintArray(t2, e2, r2, n2, i2) { - const a2 = this.expression.evaluate(new Qn(this.zoom), e2, {}, n2, [], i2), s2 = this.expression.evaluate(new Qn(this.zoom + 1), e2, {}, n2, [], i2), o2 = this.paintVertexArray.length; - this.paintVertexArray.resize(t2), this._setPaintValue(o2, t2, a2, s2); - } - updatePaintArray(t2, e2, r2, n2) { - const i2 = this.expression.evaluate({ zoom: this.zoom }, r2, n2), a2 = this.expression.evaluate({ zoom: this.zoom + 1 }, r2, n2); - this._setPaintValue(t2, e2, i2, a2); - } - _setPaintValue(t2, e2, r2, n2) { - if ("color" === this.type) { - const i2 = Va(r2), a2 = Va(n2); - for (let r3 = t2; r3 < e2; r3++) - this.paintVertexArray.emplace(r3, i2[0], i2[1], a2[0], a2[1]); - } else { - for (let i2 = t2; i2 < e2; i2++) - this.paintVertexArray.emplace(i2, r2, n2); - this.maxValue = Math.max(this.maxValue, Math.abs(r2), Math.abs(n2)); + return i2 = 1540483477 * (65535 & (i2 ^= i2 >>> 13)) + ((1540483477 * (i2 >>> 16) & 65535) << 16), (i2 ^= i2 >>> 15) >>> 0; + }; + }), ha = pa, fa = ca; + ha.murmur3 = pa, ha.murmur2 = fa; + var ya = function() { + this.ids = [], this.positions = [], this.indexed = false; + }; + ya.prototype.add = function(t2, e2, r2, n2) { + this.ids.push(ma(t2)), this.positions.push(e2, r2, n2); + }, ya.prototype.getPositions = function(t2) { + for (var e2 = ma(t2), r2 = 0, n2 = this.ids.length - 1; r2 < n2; ) { + var i2 = r2 + n2 >> 1; + this.ids[i2] >= e2 ? n2 = i2 : r2 = i2 + 1; + } + for (var a2 = []; this.ids[r2] === e2; ) + a2.push({ index: this.positions[3 * r2], start: this.positions[3 * r2 + 1], end: this.positions[3 * r2 + 2] }), r2++; + return a2; + }, ya.serialize = function(t2, e2) { + var r2 = new Float64Array(t2.ids), n2 = new Uint32Array(t2.positions); + return function t3(e3, r3, n3, i2) { + for (; n3 < i2; ) { + for (var a2 = e3[n3 + i2 >> 1], o2 = n3 - 1, s2 = i2 + 1; ; ) { + do { + o2++; + } while (e3[o2] < a2); + do { + s2--; + } while (e3[s2] > a2); + if (o2 >= s2) + break; + va(e3, o2, s2), va(r3, 3 * o2, 3 * s2), va(r3, 3 * o2 + 1, 3 * s2 + 1), va(r3, 3 * o2 + 2, 3 * s2 + 2); + } + s2 - n3 < i2 - s2 ? (t3(e3, r3, n3, s2), n3 = s2 + 1) : (t3(e3, r3, s2 + 1, i2), i2 = s2); } - } - upload(t2) { - this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = t2.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent)); - } - destroy() { - this.paintVertexBuffer && this.paintVertexBuffer.destroy(); - } - setUniform(t2, e2) { - const r2 = this.useIntegerZoom ? Math.floor(e2.zoom) : e2.zoom, n2 = a(this.expression.interpolationFactor(r2, this.zoom, this.zoom + 1), 0, 1); - t2.set(n2); - } - getBinding(t2, e2, r2) { - return new za(t2, e2); - } + }(r2, n2, 0, r2.length - 1), e2 && e2.push(r2.buffer, n2.buffer), { ids: r2, positions: n2 }; + }, ya.deserialize = function(t2) { + var e2 = new ya(); + return e2.ids = t2.ids, e2.positions = t2.positions, e2.indexed = true, e2; + }; + var da = Math.pow(2, 53) - 1; + function ma(t2) { + var e2 = +t2; + return !isNaN(e2) && e2 <= da ? e2 : ha(String(t2)); } - class Da { - constructor(t2, e2, r2, n2, i2, a2) { - this.expression = t2, this.type = e2, this.useIntegerZoom = r2, this.zoom = n2, this.layerId = a2, this.zoomInPaintVertexArray = new i2(), this.zoomOutPaintVertexArray = new i2(); - } - populatePaintArray(t2, e2, r2) { - const n2 = this.zoomInPaintVertexArray.length; - this.zoomInPaintVertexArray.resize(t2), this.zoomOutPaintVertexArray.resize(t2), this._setPaintValues(n2, t2, e2.patterns && e2.patterns[this.layerId], r2); - } - updatePaintArray(t2, e2, r2, n2, i2) { - this._setPaintValues(t2, e2, r2.patterns && r2.patterns[this.layerId], i2); - } - _setPaintValues(t2, e2, r2, n2) { - if (!n2 || !r2) - return; - const { min: i2, mid: a2, max: s2 } = r2, o2 = n2[i2], l2 = n2[a2], u2 = n2[s2]; - if (o2 && l2 && u2) - for (let r3 = t2; r3 < e2; r3++) - this.zoomInPaintVertexArray.emplace(r3, l2.tl[0], l2.tl[1], l2.br[0], l2.br[1], o2.tl[0], o2.tl[1], o2.br[0], o2.br[1], l2.pixelRatio, o2.pixelRatio), this.zoomOutPaintVertexArray.emplace(r3, l2.tl[0], l2.tl[1], l2.br[0], l2.br[1], u2.tl[0], u2.tl[1], u2.br[0], u2.br[1], l2.pixelRatio, u2.pixelRatio); - } - upload(t2) { - this.zoomInPaintVertexArray && this.zoomInPaintVertexArray.arrayBuffer && this.zoomOutPaintVertexArray && this.zoomOutPaintVertexArray.arrayBuffer && (this.zoomInPaintVertexBuffer = t2.createVertexBuffer(this.zoomInPaintVertexArray, ga.members, this.expression.isStateDependent), this.zoomOutPaintVertexBuffer = t2.createVertexBuffer(this.zoomOutPaintVertexArray, ga.members, this.expression.isStateDependent)); - } - destroy() { - this.zoomOutPaintVertexBuffer && this.zoomOutPaintVertexBuffer.destroy(), this.zoomInPaintVertexBuffer && this.zoomInPaintVertexBuffer.destroy(); - } + function va(t2, e2, r2) { + var n2 = t2[e2]; + t2[e2] = t2[r2], t2[r2] = n2; } - class $a { - constructor(t2, e2, r2) { - this.binders = {}, this._buffers = []; - const n2 = []; - for (const i2 in t2.paint._values) { - if (!r2(i2)) - continue; - const a2 = t2.paint.get(i2); - if (!(a2 instanceof si && br(a2.property.specification))) - continue; - const s2 = Oa(i2, t2.type), o2 = a2.value, l2 = a2.property.specification.type, u2 = a2.property.useIntegerZoom, c3 = a2.property.specification["property-type"], h3 = "cross-faded" === c3 || "cross-faded-data-driven" === c3; - if ("constant" === o2.kind) - this.binders[i2] = h3 ? new Fa(o2.value, s2) : new Ea(o2.value, s2, l2), n2.push(`/u_${i2}`); - else if ("source" === o2.kind || h3) { - const r3 = Ua(i2, l2, "source"); - this.binders[i2] = h3 ? new Da(o2, l2, u2, e2, r3, t2.id) : new Ta(o2, s2, l2, r3), n2.push(`/a_${i2}`); - } else { - const t3 = Ua(i2, l2, "composite"); - this.binders[i2] = new La(o2, s2, l2, u2, e2, t3), n2.push(`/z_${i2}`); + On("FeaturePositionMap", ya); + var ga = function(t2, e2) { + this.gl = t2.gl, this.location = e2; + }, xa = function(t2) { + function e2(e3, r2) { + t2.call(this, e3, r2), this.current = 0; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.set = function(t3) { + this.current !== t3 && (this.current = t3, this.gl.uniform1i(this.location, t3)); + }, e2; + }(ga), ba = function(t2) { + function e2(e3, r2) { + t2.call(this, e3, r2), this.current = 0; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.set = function(t3) { + this.current !== t3 && (this.current = t3, this.gl.uniform1f(this.location, t3)); + }, e2; + }(ga), wa = function(t2) { + function e2(e3, r2) { + t2.call(this, e3, r2), this.current = [0, 0]; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.set = function(t3) { + t3[0] === this.current[0] && t3[1] === this.current[1] || (this.current = t3, this.gl.uniform2f(this.location, t3[0], t3[1])); + }, e2; + }(ga), _a = function(t2) { + function e2(e3, r2) { + t2.call(this, e3, r2), this.current = [0, 0, 0]; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.set = function(t3) { + t3[0] === this.current[0] && t3[1] === this.current[1] && t3[2] === this.current[2] || (this.current = t3, this.gl.uniform3f(this.location, t3[0], t3[1], t3[2])); + }, e2; + }(ga), Aa = function(t2) { + function e2(e3, r2) { + t2.call(this, e3, r2), this.current = [0, 0, 0, 0]; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.set = function(t3) { + t3[0] === this.current[0] && t3[1] === this.current[1] && t3[2] === this.current[2] && t3[3] === this.current[3] || (this.current = t3, this.gl.uniform4f(this.location, t3[0], t3[1], t3[2], t3[3])); + }, e2; + }(ga), Sa = function(t2) { + function e2(e3, r2) { + t2.call(this, e3, r2), this.current = te.transparent; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.set = function(t3) { + t3.r === this.current.r && t3.g === this.current.g && t3.b === this.current.b && t3.a === this.current.a || (this.current = t3, this.gl.uniform4f(this.location, t3.r, t3.g, t3.b, t3.a)); + }, e2; + }(ga), ka = new Float32Array(16), Ia = function(t2) { + function e2(e3, r2) { + t2.call(this, e3, r2), this.current = ka; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.set = function(t3) { + if (t3[12] !== this.current[12] || t3[0] !== this.current[0]) + return this.current = t3, void this.gl.uniformMatrix4fv(this.location, false, t3); + for (var e3 = 1; e3 < 16; e3++) + if (t3[e3] !== this.current[e3]) { + this.current = t3, this.gl.uniformMatrix4fv(this.location, false, t3); + break; } - } - this.cacheKey = n2.sort().join(""); - } - getMaxValue(t2) { - const e2 = this.binders[t2]; - return e2 instanceof Ta || e2 instanceof La ? e2.maxValue : 0; - } - populatePaintArrays(t2, e2, r2, n2, i2) { - for (const a2 in this.binders) { - const s2 = this.binders[a2]; - (s2 instanceof Ta || s2 instanceof La || s2 instanceof Da) && s2.populatePaintArray(t2, e2, r2, n2, i2); - } - } - setConstantPatternPositions(t2, e2) { - for (const r2 in this.binders) { - const n2 = this.binders[r2]; - n2 instanceof Fa && n2.setConstantPatternPositions(t2, e2); - } - } - updatePaintArrays(t2, e2, r2, n2, i2) { - let a2 = false; - for (const s2 in t2) { - const o2 = e2.getPositions(s2); - for (const e3 of o2) { - const o3 = r2.feature(e3.index); - for (const r3 in this.binders) { - const l2 = this.binders[r3]; - if ((l2 instanceof Ta || l2 instanceof La || l2 instanceof Da) && true === l2.expression.isStateDependent) { - const u2 = n2.paint.get(r3); - l2.expression = u2.value, l2.updatePaintArray(e3.start, e3.end, o3, t2[s2], i2), a2 = true; - } + }, e2; + }(ga); + function za(t2) { + return [ua(255 * t2.r, 255 * t2.g), ua(255 * t2.b, 255 * t2.a)]; + } + var Ca = function(t2, e2, r2) { + this.value = t2, this.uniformNames = e2.map(function(t3) { + return "u_" + t3; + }), this.type = r2; + }; + Ca.prototype.setUniform = function(t2, e2, r2) { + t2.set(r2.constantOr(this.value)); + }, Ca.prototype.getBinding = function(t2, e2, r2) { + return "color" === this.type ? new Sa(t2, e2) : new ba(t2, e2); + }; + var Ea = function(t2, e2) { + this.uniformNames = e2.map(function(t3) { + return "u_" + t3; + }), this.patternFrom = null, this.patternTo = null, this.pixelRatioFrom = 1, this.pixelRatioTo = 1; + }; + Ea.prototype.setConstantPatternPositions = function(t2, e2) { + this.pixelRatioFrom = e2.pixelRatio, this.pixelRatioTo = t2.pixelRatio, this.patternFrom = e2.tlbr, this.patternTo = t2.tlbr; + }, Ea.prototype.setUniform = function(t2, e2, r2, n2) { + var i2 = "u_pattern_to" === n2 ? this.patternTo : "u_pattern_from" === n2 ? this.patternFrom : "u_pixel_ratio_to" === n2 ? this.pixelRatioTo : "u_pixel_ratio_from" === n2 ? this.pixelRatioFrom : null; + i2 && t2.set(i2); + }, Ea.prototype.getBinding = function(t2, e2, r2) { + return "u_pattern" === r2.substr(0, 9) ? new Aa(t2, e2) : new ba(t2, e2); + }; + var Pa = function(t2, e2, r2, n2) { + this.expression = t2, this.type = r2, this.maxValue = 0, this.paintVertexAttributes = e2.map(function(t3) { + return { name: "a_" + t3, type: "Float32", components: "color" === r2 ? 2 : 1, offset: 0 }; + }), this.paintVertexArray = new n2(); + }; + Pa.prototype.populatePaintArray = function(t2, e2, r2, n2, i2) { + var a2 = this.paintVertexArray.length, o2 = this.expression.evaluate(new si(0), e2, {}, n2, [], i2); + this.paintVertexArray.resize(t2), this._setPaintValue(a2, t2, o2); + }, Pa.prototype.updatePaintArray = function(t2, e2, r2, n2) { + var i2 = this.expression.evaluate({ zoom: 0 }, r2, n2); + this._setPaintValue(t2, e2, i2); + }, Pa.prototype._setPaintValue = function(t2, e2, r2) { + if ("color" === this.type) + for (var n2 = za(r2), i2 = t2; i2 < e2; i2++) + this.paintVertexArray.emplace(i2, n2[0], n2[1]); + else { + for (var a2 = t2; a2 < e2; a2++) + this.paintVertexArray.emplace(a2, r2); + this.maxValue = Math.max(this.maxValue, Math.abs(r2)); + } + }, Pa.prototype.upload = function(t2) { + this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = t2.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent)); + }, Pa.prototype.destroy = function() { + this.paintVertexBuffer && this.paintVertexBuffer.destroy(); + }; + var Ma = function(t2, e2, r2, n2, i2, a2) { + this.expression = t2, this.uniformNames = e2.map(function(t3) { + return "u_" + t3 + "_t"; + }), this.type = r2, this.useIntegerZoom = n2, this.zoom = i2, this.maxValue = 0, this.paintVertexAttributes = e2.map(function(t3) { + return { name: "a_" + t3, type: "Float32", components: "color" === r2 ? 4 : 2, offset: 0 }; + }), this.paintVertexArray = new a2(); + }; + Ma.prototype.populatePaintArray = function(t2, e2, r2, n2, i2) { + var a2 = this.expression.evaluate(new si(this.zoom), e2, {}, n2, [], i2), o2 = this.expression.evaluate(new si(this.zoom + 1), e2, {}, n2, [], i2), s2 = this.paintVertexArray.length; + this.paintVertexArray.resize(t2), this._setPaintValue(s2, t2, a2, o2); + }, Ma.prototype.updatePaintArray = function(t2, e2, r2, n2) { + var i2 = this.expression.evaluate({ zoom: this.zoom }, r2, n2), a2 = this.expression.evaluate({ zoom: this.zoom + 1 }, r2, n2); + this._setPaintValue(t2, e2, i2, a2); + }, Ma.prototype._setPaintValue = function(t2, e2, r2, n2) { + if ("color" === this.type) + for (var i2 = za(r2), a2 = za(n2), o2 = t2; o2 < e2; o2++) + this.paintVertexArray.emplace(o2, i2[0], i2[1], a2[0], a2[1]); + else { + for (var s2 = t2; s2 < e2; s2++) + this.paintVertexArray.emplace(s2, r2, n2); + this.maxValue = Math.max(this.maxValue, Math.abs(r2), Math.abs(n2)); + } + }, Ma.prototype.upload = function(t2) { + this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = t2.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent)); + }, Ma.prototype.destroy = function() { + this.paintVertexBuffer && this.paintVertexBuffer.destroy(); + }, Ma.prototype.setUniform = function(t2, e2) { + var r2 = this.useIntegerZoom ? Math.floor(e2.zoom) : e2.zoom, n2 = p2(this.expression.interpolationFactor(r2, this.zoom, this.zoom + 1), 0, 1); + t2.set(n2); + }, Ma.prototype.getBinding = function(t2, e2, r2) { + return new ba(t2, e2); + }; + var Ba = function(t2, e2, r2, n2, i2, a2) { + this.expression = t2, this.type = e2, this.useIntegerZoom = r2, this.zoom = n2, this.layerId = a2, this.zoomInPaintVertexArray = new i2(), this.zoomOutPaintVertexArray = new i2(); + }; + Ba.prototype.populatePaintArray = function(t2, e2, r2) { + var n2 = this.zoomInPaintVertexArray.length; + this.zoomInPaintVertexArray.resize(t2), this.zoomOutPaintVertexArray.resize(t2), this._setPaintValues(n2, t2, e2.patterns && e2.patterns[this.layerId], r2); + }, Ba.prototype.updatePaintArray = function(t2, e2, r2, n2, i2) { + this._setPaintValues(t2, e2, r2.patterns && r2.patterns[this.layerId], i2); + }, Ba.prototype._setPaintValues = function(t2, e2, r2, n2) { + if (n2 && r2) { + var i2 = n2[r2.min], a2 = n2[r2.mid], o2 = n2[r2.max]; + if (i2 && a2 && o2) + for (var s2 = t2; s2 < e2; s2++) + this.zoomInPaintVertexArray.emplace(s2, a2.tl[0], a2.tl[1], a2.br[0], a2.br[1], i2.tl[0], i2.tl[1], i2.br[0], i2.br[1], a2.pixelRatio, i2.pixelRatio), this.zoomOutPaintVertexArray.emplace(s2, a2.tl[0], a2.tl[1], a2.br[0], a2.br[1], o2.tl[0], o2.tl[1], o2.br[0], o2.br[1], a2.pixelRatio, o2.pixelRatio); + } + }, Ba.prototype.upload = function(t2) { + this.zoomInPaintVertexArray && this.zoomInPaintVertexArray.arrayBuffer && this.zoomOutPaintVertexArray && this.zoomOutPaintVertexArray.arrayBuffer && (this.zoomInPaintVertexBuffer = t2.createVertexBuffer(this.zoomInPaintVertexArray, la.members, this.expression.isStateDependent), this.zoomOutPaintVertexBuffer = t2.createVertexBuffer(this.zoomOutPaintVertexArray, la.members, this.expression.isStateDependent)); + }, Ba.prototype.destroy = function() { + this.zoomOutPaintVertexBuffer && this.zoomOutPaintVertexBuffer.destroy(), this.zoomInPaintVertexBuffer && this.zoomInPaintVertexBuffer.destroy(); + }; + var Ta = function(t2, e2, r2) { + this.binders = {}, this._buffers = []; + var n2 = []; + for (var i2 in t2.paint._values) + if (r2(i2)) { + var a2 = t2.paint.get(i2); + if (a2 instanceof yi && Tr(a2.property.specification)) { + var o2 = Fa(i2, t2.type), s2 = a2.value, u2 = a2.property.specification.type, l2 = a2.property.useIntegerZoom, p3 = a2.property.specification["property-type"], c3 = "cross-faded" === p3 || "cross-faded-data-driven" === p3; + if ("constant" === s2.kind) + this.binders[i2] = c3 ? new Ea(s2.value, o2) : new Ca(s2.value, o2, u2), n2.push("/u_" + i2); + else if ("source" === s2.kind || c3) { + var h3 = Da(i2, u2, "source"); + this.binders[i2] = c3 ? new Ba(s2, u2, l2, e2, h3, t2.id) : new Pa(s2, o2, u2, h3), n2.push("/a_" + i2); + } else { + var f2 = Da(i2, u2, "composite"); + this.binders[i2] = new Ma(s2, o2, u2, l2, e2, f2), n2.push("/z_" + i2); } } } - return a2; - } - defines() { - const t2 = []; - for (const e2 in this.binders) { - const r2 = this.binders[e2]; - (r2 instanceof Ea || r2 instanceof Fa) && t2.push(...r2.uniformNames.map((t3) => `#define HAS_UNIFORM_${t3}`)); - } - return t2; - } - getBinderAttributes() { - const t2 = []; - for (const e2 in this.binders) { - const r2 = this.binders[e2]; - if (r2 instanceof Ta || r2 instanceof La) - for (let e3 = 0; e3 < r2.paintVertexAttributes.length; e3++) - t2.push(r2.paintVertexAttributes[e3].name); - else if (r2 instanceof Da) - for (let e3 = 0; e3 < ga.members.length; e3++) - t2.push(ga.members[e3].name); - } - return t2; - } - getBinderUniforms() { - const t2 = []; - for (const e2 in this.binders) { - const r2 = this.binders[e2]; - if (r2 instanceof Ea || r2 instanceof Fa || r2 instanceof La) - for (const e3 of r2.uniformNames) - t2.push(e3); - } - return t2; - } - getPaintVertexBuffers() { - return this._buffers; - } - getUniforms(t2, e2) { - const r2 = []; - for (const n2 in this.binders) { - const i2 = this.binders[n2]; - if (i2 instanceof Ea || i2 instanceof Fa || i2 instanceof La) { - for (const a2 of i2.uniformNames) - if (e2[a2]) { - const s2 = i2.getBinding(t2, e2[a2], a2); - r2.push({ name: a2, property: n2, binding: s2 }); - } + this.cacheKey = n2.sort().join(""); + }; + Ta.prototype.getMaxValue = function(t2) { + var e2 = this.binders[t2]; + return e2 instanceof Pa || e2 instanceof Ma ? e2.maxValue : 0; + }, Ta.prototype.populatePaintArrays = function(t2, e2, r2, n2, i2) { + for (var a2 in this.binders) { + var o2 = this.binders[a2]; + (o2 instanceof Pa || o2 instanceof Ma || o2 instanceof Ba) && o2.populatePaintArray(t2, e2, r2, n2, i2); + } + }, Ta.prototype.setConstantPatternPositions = function(t2, e2) { + for (var r2 in this.binders) { + var n2 = this.binders[r2]; + n2 instanceof Ea && n2.setConstantPatternPositions(t2, e2); + } + }, Ta.prototype.updatePaintArrays = function(t2, e2, r2, n2, i2) { + var a2 = false; + for (var o2 in t2) + for (var s2 = 0, u2 = e2.getPositions(o2); s2 < u2.length; s2 += 1) { + var l2 = u2[s2], p3 = r2.feature(l2.index); + for (var c3 in this.binders) { + var h3 = this.binders[c3]; + if ((h3 instanceof Pa || h3 instanceof Ma || h3 instanceof Ba) && true === h3.expression.isStateDependent) { + var f2 = n2.paint.get(c3); + h3.expression = f2.value, h3.updatePaintArray(l2.start, l2.end, p3, t2[o2], i2), a2 = true; + } } } - return r2; - } - setUniforms(t2, e2, r2, n2) { - for (const { name: t3, property: i2, binding: a2 } of e2) - this.binders[i2].setUniform(a2, n2, r2.get(i2), t3); - } - updatePaintBuffers(t2) { - this._buffers = []; - for (const e2 in this.binders) { - const r2 = this.binders[e2]; - if (t2 && r2 instanceof Da) { - const e3 = 2 === t2.fromScale ? r2.zoomInPaintVertexBuffer : r2.zoomOutPaintVertexBuffer; - e3 && this._buffers.push(e3); - } else - (r2 instanceof Ta || r2 instanceof La) && r2.paintVertexBuffer && this._buffers.push(r2.paintVertexBuffer); - } - } - upload(t2) { - for (const e2 in this.binders) { - const r2 = this.binders[e2]; - (r2 instanceof Ta || r2 instanceof La || r2 instanceof Da) && r2.upload(t2); - } - this.updatePaintBuffers(); + return a2; + }, Ta.prototype.defines = function() { + var t2 = []; + for (var e2 in this.binders) { + var r2 = this.binders[e2]; + (r2 instanceof Ca || r2 instanceof Ea) && t2.push.apply(t2, r2.uniformNames.map(function(t3) { + return "#define HAS_UNIFORM_" + t3; + })); } - destroy() { - for (const t2 in this.binders) { - const e2 = this.binders[t2]; - (e2 instanceof Ta || e2 instanceof La || e2 instanceof Da) && e2.destroy(); - } + return t2; + }, Ta.prototype.getBinderAttributes = function() { + var t2 = []; + for (var e2 in this.binders) { + var r2 = this.binders[e2]; + if (r2 instanceof Pa || r2 instanceof Ma) + for (var n2 = 0; n2 < r2.paintVertexAttributes.length; n2++) + t2.push(r2.paintVertexAttributes[n2].name); + else if (r2 instanceof Ba) + for (var i2 = 0; i2 < la.members.length; i2++) + t2.push(la.members[i2].name); } - } - class Ra { - constructor(t2, e2, r2 = () => true) { - this.programConfigurations = {}; - for (const n2 of t2) - this.programConfigurations[n2.id] = new $a(n2, e2, r2); - this.needsUpload = false, this._featureMap = new Aa(), this._bufferOffset = 0; + return t2; + }, Ta.prototype.getBinderUniforms = function() { + var t2 = []; + for (var e2 in this.binders) { + var r2 = this.binders[e2]; + if (r2 instanceof Ca || r2 instanceof Ea || r2 instanceof Ma) + for (var n2 = 0, i2 = r2.uniformNames; n2 < i2.length; n2 += 1) + t2.push(i2[n2]); } - populatePaintArrays(t2, e2, r2, n2, i2, a2) { - for (const r3 in this.programConfigurations) - this.programConfigurations[r3].populatePaintArrays(t2, e2, n2, i2, a2); - void 0 !== e2.id && this._featureMap.add(e2.id, r2, this._bufferOffset, t2), this._bufferOffset = t2, this.needsUpload = true; + return t2; + }, Ta.prototype.getPaintVertexBuffers = function() { + return this._buffers; + }, Ta.prototype.getUniforms = function(t2, e2) { + var r2 = []; + for (var n2 in this.binders) { + var i2 = this.binders[n2]; + if (i2 instanceof Ca || i2 instanceof Ea || i2 instanceof Ma) + for (var a2 = 0, o2 = i2.uniformNames; a2 < o2.length; a2 += 1) { + var s2 = o2[a2]; + if (e2[s2]) { + var u2 = i2.getBinding(t2, e2[s2], s2); + r2.push({ name: s2, property: n2, binding: u2 }); + } + } } - updatePaintArrays(t2, e2, r2, n2) { - for (const i2 of r2) - this.needsUpload = this.programConfigurations[i2.id].updatePaintArrays(t2, this._featureMap, e2, i2, n2) || this.needsUpload; + return r2; + }, Ta.prototype.setUniforms = function(t2, e2, r2, n2) { + for (var i2 = 0, a2 = e2; i2 < a2.length; i2 += 1) { + var o2 = a2[i2], s2 = o2.name, u2 = o2.property; + this.binders[u2].setUniform(o2.binding, n2, r2.get(u2), s2); + } + }, Ta.prototype.updatePaintBuffers = function(t2) { + for (var e2 in this._buffers = [], this.binders) { + var r2 = this.binders[e2]; + if (t2 && r2 instanceof Ba) { + var n2 = 2 === t2.fromScale ? r2.zoomInPaintVertexBuffer : r2.zoomOutPaintVertexBuffer; + n2 && this._buffers.push(n2); + } else + (r2 instanceof Pa || r2 instanceof Ma) && r2.paintVertexBuffer && this._buffers.push(r2.paintVertexBuffer); } - get(t2) { - return this.programConfigurations[t2]; + }, Ta.prototype.upload = function(t2) { + for (var e2 in this.binders) { + var r2 = this.binders[e2]; + (r2 instanceof Pa || r2 instanceof Ma || r2 instanceof Ba) && r2.upload(t2); } - upload(t2) { - if (this.needsUpload) { - for (const e2 in this.programConfigurations) - this.programConfigurations[e2].upload(t2); - this.needsUpload = false; - } + this.updatePaintBuffers(); + }, Ta.prototype.destroy = function() { + for (var t2 in this.binders) { + var e2 = this.binders[t2]; + (e2 instanceof Pa || e2 instanceof Ma || e2 instanceof Ba) && e2.destroy(); } - destroy() { - for (const t2 in this.programConfigurations) - this.programConfigurations[t2].destroy(); + }; + var Va = function(t2, e2, r2) { + void 0 === r2 && (r2 = function() { + return true; + }), this.programConfigurations = {}; + for (var n2 = 0, i2 = t2; n2 < i2.length; n2 += 1) { + var a2 = i2[n2]; + this.programConfigurations[a2.id] = new Ta(a2, e2, r2); } + this.needsUpload = false, this._featureMap = new ya(), this._bufferOffset = 0; + }; + function Fa(t2, e2) { + return { "text-opacity": ["opacity"], "icon-opacity": ["opacity"], "text-color": ["fill_color"], "icon-color": ["fill_color"], "text-halo-color": ["halo_color"], "icon-halo-color": ["halo_color"], "text-halo-blur": ["halo_blur"], "icon-halo-blur": ["halo_blur"], "text-halo-width": ["halo_width"], "icon-halo-width": ["halo_width"], "line-gap-width": ["gapwidth"], "line-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"], "fill-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"], "fill-extrusion-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"] }[t2] || [t2.replace(e2 + "-", "").replace(/-/g, "_")]; } - function Oa(t2, e2) { - return { "text-opacity": ["opacity"], "icon-opacity": ["opacity"], "text-color": ["fill_color"], "icon-color": ["fill_color"], "text-halo-color": ["halo_color"], "icon-halo-color": ["halo_color"], "text-halo-blur": ["halo_blur"], "icon-halo-blur": ["halo_blur"], "text-halo-width": ["halo_width"], "icon-halo-width": ["halo_width"], "line-gap-width": ["gapwidth"], "line-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"], "fill-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"], "fill-extrusion-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"] }[t2] || [t2.replace(`${e2}-`, "").replace(/-/g, "_")]; - } - function Ua(t2, e2, r2) { - const n2 = { color: { source: Si, composite: qi }, number: { source: Di, composite: Si } }, i2 = function(t3) { - return { "line-pattern": { source: aa, composite: aa }, "fill-pattern": { source: aa, composite: aa }, "fill-extrusion-pattern": { source: aa, composite: aa } }[t3]; + function Da(t2, e2, r2) { + var n2 = { color: { source: Bi, composite: Hi }, number: { source: Ki, composite: Bi } }, i2 = function(t3) { + return { "line-pattern": { source: Ti, composite: Ti }, "fill-pattern": { source: Ti, composite: Ti }, "fill-extrusion-pattern": { source: Ti, composite: Ti } }[t3]; }(t2); return i2 && i2[r2] || n2[e2][r2]; } - Mn("ConstantBinder", Ea), Mn("CrossFadedConstantBinder", Fa), Mn("SourceExpressionBinder", Ta), Mn("CrossFadedCompositeBinder", Da), Mn("CompositeExpressionBinder", La), Mn("ProgramConfiguration", $a, { omit: ["_buffers"] }), Mn("ProgramConfigurationSet", Ra); - var qa = 8192; - const ja = Math.pow(2, 14) - 1, Na = -ja - 1; - function Za(t2) { - const e2 = qa / t2.extent, r2 = t2.loadGeometry(); - for (let t3 = 0; t3 < r2.length; t3++) { - const n2 = r2[t3]; - for (let t4 = 0; t4 < n2.length; t4++) { - const r3 = n2[t4], i2 = Math.round(r3.x * e2), s2 = Math.round(r3.y * e2); - r3.x = a(i2, Na, ja), r3.y = a(s2, Na, ja), (i2 < r3.x || i2 > r3.x + 1 || s2 < r3.y || s2 > r3.y + 1) && d("Geometry exceeds allowed extent, reduce your vector tile buffer size"); + Va.prototype.populatePaintArrays = function(t2, e2, r2, n2, i2, a2) { + for (var o2 in this.programConfigurations) + this.programConfigurations[o2].populatePaintArrays(t2, e2, n2, i2, a2); + void 0 !== e2.id && this._featureMap.add(e2.id, r2, this._bufferOffset, t2), this._bufferOffset = t2, this.needsUpload = true; + }, Va.prototype.updatePaintArrays = function(t2, e2, r2, n2) { + for (var i2 = 0, a2 = r2; i2 < a2.length; i2 += 1) { + var o2 = a2[i2]; + this.needsUpload = this.programConfigurations[o2.id].updatePaintArrays(t2, this._featureMap, e2, o2, n2) || this.needsUpload; + } + }, Va.prototype.get = function(t2) { + return this.programConfigurations[t2]; + }, Va.prototype.upload = function(t2) { + if (this.needsUpload) { + for (var e2 in this.programConfigurations) + this.programConfigurations[e2].upload(t2); + this.needsUpload = false; + } + }, Va.prototype.destroy = function() { + for (var t2 in this.programConfigurations) + this.programConfigurations[t2].destroy(); + }, On("ConstantBinder", Ca), On("CrossFadedConstantBinder", Ea), On("SourceExpressionBinder", Pa), On("CrossFadedCompositeBinder", Ba), On("CompositeExpressionBinder", Ma), On("ProgramConfiguration", Ta, { omit: ["_buffers"] }), On("ProgramConfigurationSet", Va); + var La = Math.pow(2, 14) - 1, Oa = -La - 1; + function Ra(t2) { + for (var e2 = 8192 / t2.extent, r2 = t2.loadGeometry(), n2 = 0; n2 < r2.length; n2++) + for (var i2 = r2[n2], a2 = 0; a2 < i2.length; a2++) { + var o2 = i2[a2], s2 = Math.round(o2.x * e2), u2 = Math.round(o2.y * e2); + o2.x = p2(s2, Oa, La), o2.y = p2(u2, Oa, La), (s2 < o2.x || s2 > o2.x + 1 || u2 < o2.y || u2 > o2.y + 1) && A2("Geometry exceeds allowed extent, reduce your vector tile buffer size"); } - } return r2; } - function Ka(t2, e2) { - return { type: t2.type, id: t2.id, properties: t2.properties, geometry: e2 ? Za(t2) : [] }; + function Ua(t2, e2) { + return { type: t2.type, id: t2.id, properties: t2.properties, geometry: e2 ? Ra(t2) : [] }; } - function Ga(t2, e2, r2, n2, i2) { + function ja(t2, e2, r2, n2, i2) { t2.emplaceBack(2 * e2 + (n2 + 1) / 2, 2 * r2 + (i2 + 1) / 2); } - class Ja { - constructor(t2) { - this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map((t3) => t3.id), this.index = t2.index, this.hasPattern = false, this.layoutVertexArray = new ta(), this.indexArray = new ha(), this.segments = new ya(), this.programConfigurations = new Ra(t2.layers, t2.zoom), this.stateDependentLayerIds = this.layers.filter((t3) => t3.isStateDependent()).map((t3) => t3.id); - } - populate(t2, e2, r2) { - const n2 = this.layers[0], i2 = []; - let a2 = null, s2 = false; - "circle" === n2.type && (a2 = n2.layout.get("circle-sort-key"), s2 = !a2.isConstant()); - for (const { feature: e3, id: n3, index: o2, sourceLayerIndex: l2 } of t2) { - const t3 = this.layers[0]._featureFilter.needGeometry, u2 = Ka(e3, t3); - if (!this.layers[0]._featureFilter.filter(new Qn(this.zoom), u2, r2)) - continue; - const c3 = s2 ? a2.evaluate(u2, {}, r2) : void 0, h3 = { id: n3, properties: e3.properties, type: e3.type, sourceLayerIndex: l2, index: o2, geometry: t3 ? u2.geometry : Za(e3), patterns: {}, sortKey: c3 }; - i2.push(h3); - } - s2 && i2.sort((t3, e3) => t3.sortKey - e3.sortKey); - for (const n3 of i2) { - const { geometry: i3, index: a3, sourceLayerIndex: s3 } = n3, o2 = t2[a3].feature; - this.addFeature(n3, i3, a3, r2), e2.featureIndex.insert(o2, i3, a3, s3, this.index); - } - } - update(t2, e2, r2) { - this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t2, e2, this.stateDependentLayers, r2); - } - isEmpty() { - return 0 === this.layoutVertexArray.length; - } - uploadPending() { - return !this.uploaded || this.programConfigurations.needsUpload; - } - upload(t2) { - this.uploaded || (this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, da), this.indexBuffer = t2.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t2), this.uploaded = true; - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy()); - } - addFeature(t2, e2, r2, n2) { - for (const r3 of e2) - for (const e3 of r3) { - const r4 = e3.x, n3 = e3.y; - if (r4 < 0 || r4 >= qa || n3 < 0 || n3 >= qa) - continue; - const i2 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray, t2.sortKey), a2 = i2.vertexLength; - Ga(this.layoutVertexArray, r4, n3, -1, -1), Ga(this.layoutVertexArray, r4, n3, 1, -1), Ga(this.layoutVertexArray, r4, n3, 1, 1), Ga(this.layoutVertexArray, r4, n3, -1, 1), this.indexArray.emplaceBack(a2, a2 + 1, a2 + 2), this.indexArray.emplaceBack(a2, a2 + 3, a2 + 2), i2.vertexLength += 4, i2.primitiveLength += 2; - } - this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t2, r2, {}, n2); - } - } - function Xa(t2, e2) { - for (let r2 = 0; r2 < t2.length; r2++) - if (is(e2, t2[r2])) + var qa = function(t2) { + this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map(function(t3) { + return t3.id; + }), this.index = t2.index, this.hasPattern = false, this.layoutVertexArray = new Ci(), this.indexArray = new ji(), this.segments = new sa(), this.programConfigurations = new Va(t2.layers, t2.zoom), this.stateDependentLayerIds = this.layers.filter(function(t3) { + return t3.isStateDependent(); + }).map(function(t3) { + return t3.id; + }); + }; + function Na(t2, e2) { + for (var r2 = 0; r2 < t2.length; r2++) + if (Wa(e2, t2[r2])) return true; - for (let r2 = 0; r2 < e2.length; r2++) - if (is(t2, e2[r2])) + for (var n2 = 0; n2 < e2.length; n2++) + if (Wa(t2, e2[n2])) return true; - return !!Qa(t2, e2); + return !!Xa(t2, e2); } - function Ya(t2, e2, r2) { - return !!is(t2, e2) || !!es(e2, t2, r2); + function Ka(t2, e2, r2) { + return !!Wa(t2, e2) || !!Ha(e2, t2, r2); } - function Ha(t2, e2) { + function Ga(t2, e2) { if (1 === t2.length) - return ns(e2, t2[0]); - for (let r2 = 0; r2 < e2.length; r2++) { - const n2 = e2[r2]; - for (let e3 = 0; e3 < n2.length; e3++) - if (is(t2, n2[e3])) + return $a(e2, t2[0]); + for (var r2 = 0; r2 < e2.length; r2++) + for (var n2 = e2[r2], i2 = 0; i2 < n2.length; i2++) + if (Wa(t2, n2[i2])) return true; - } - for (let r2 = 0; r2 < t2.length; r2++) - if (ns(e2, t2[r2])) + for (var a2 = 0; a2 < t2.length; a2++) + if ($a(e2, t2[a2])) return true; - for (let r2 = 0; r2 < e2.length; r2++) - if (Qa(t2, e2[r2])) + for (var o2 = 0; o2 < e2.length; o2++) + if (Xa(t2, e2[o2])) return true; return false; } - function Wa(t2, e2, r2) { + function Za(t2, e2, r2) { if (t2.length > 1) { - if (Qa(t2, e2)) + if (Xa(t2, e2)) return true; - for (let n2 = 0; n2 < e2.length; n2++) - if (es(e2[n2], t2, r2)) + for (var n2 = 0; n2 < e2.length; n2++) + if (Ha(e2[n2], t2, r2)) return true; } - for (let n2 = 0; n2 < t2.length; n2++) - if (es(t2[n2], e2, r2)) + for (var i2 = 0; i2 < t2.length; i2++) + if (Ha(t2[i2], e2, r2)) return true; return false; } - function Qa(t2, e2) { + function Xa(t2, e2) { if (0 === t2.length || 0 === e2.length) return false; - for (let r2 = 0; r2 < t2.length - 1; r2++) { - const n2 = t2[r2], i2 = t2[r2 + 1]; - for (let t3 = 0; t3 < e2.length - 1; t3++) - if (ts(n2, i2, e2[t3], e2[t3 + 1])) + for (var r2 = 0; r2 < t2.length - 1; r2++) + for (var n2 = t2[r2], i2 = t2[r2 + 1], a2 = 0; a2 < e2.length - 1; a2++) + if (Ja(n2, i2, e2[a2], e2[a2 + 1])) return true; - } return false; } - function ts(t2, e2, r2, n2) { - return y2(t2, r2, n2) !== y2(e2, r2, n2) && y2(t2, e2, r2) !== y2(t2, e2, n2); + function Ja(t2, e2, r2, n2) { + return S(t2, r2, n2) !== S(e2, r2, n2) && S(t2, e2, r2) !== S(t2, e2, n2); } - function es(t2, e2, r2) { - const n2 = r2 * r2; + function Ha(t2, e2, r2) { + var n2 = r2 * r2; if (1 === e2.length) return t2.distSqr(e2[0]) < n2; - for (let r3 = 1; r3 < e2.length; r3++) - if (rs(t2, e2[r3 - 1], e2[r3]) < n2) + for (var i2 = 1; i2 < e2.length; i2++) + if (Ya(t2, e2[i2 - 1], e2[i2]) < n2) return true; return false; } - function rs(t2, e2, r2) { - const n2 = e2.distSqr(r2); + function Ya(t2, e2, r2) { + var n2 = e2.distSqr(r2); if (0 === n2) return t2.distSqr(e2); - const i2 = ((t2.x - e2.x) * (r2.x - e2.x) + (t2.y - e2.y) * (r2.y - e2.y)) / n2; + var i2 = ((t2.x - e2.x) * (r2.x - e2.x) + (t2.y - e2.y) * (r2.y - e2.y)) / n2; return t2.distSqr(i2 < 0 ? e2 : i2 > 1 ? r2 : r2.sub(e2)._mult(i2)._add(e2)); } - function ns(t2, e2) { - let r2, n2, i2, a2 = false; - for (let s2 = 0; s2 < t2.length; s2++) { - r2 = t2[s2]; - for (let t3 = 0, s3 = r2.length - 1; t3 < r2.length; s3 = t3++) - n2 = r2[t3], i2 = r2[s3], n2.y > e2.y != i2.y > e2.y && e2.x < (i2.x - n2.x) * (e2.y - n2.y) / (i2.y - n2.y) + n2.x && (a2 = !a2); - } + function $a(t2, e2) { + for (var r2, n2, i2, a2 = false, o2 = 0; o2 < t2.length; o2++) + for (var s2 = 0, u2 = (r2 = t2[o2]).length - 1; s2 < r2.length; u2 = s2++) + (n2 = r2[s2]).y > e2.y != (i2 = r2[u2]).y > e2.y && e2.x < (i2.x - n2.x) * (e2.y - n2.y) / (i2.y - n2.y) + n2.x && (a2 = !a2); return a2; } - function is(t2, e2) { - let r2 = false; - for (let n2 = 0, i2 = t2.length - 1; n2 < t2.length; i2 = n2++) { - const a2 = t2[n2], s2 = t2[i2]; - a2.y > e2.y != s2.y > e2.y && e2.x < (s2.x - a2.x) * (e2.y - a2.y) / (s2.y - a2.y) + a2.x && (r2 = !r2); + function Wa(t2, e2) { + for (var r2 = false, n2 = 0, i2 = t2.length - 1; n2 < t2.length; i2 = n2++) { + var a2 = t2[n2], o2 = t2[i2]; + a2.y > e2.y != o2.y > e2.y && e2.x < (o2.x - a2.x) * (e2.y - a2.y) / (o2.y - a2.y) + a2.x && (r2 = !r2); } return r2; } - function as(t2, e2, r2) { - const n2 = r2[0], i2 = r2[2]; + function Qa(t2, e2, r2) { + var n2 = r2[0], i2 = r2[2]; if (t2.x < n2.x && e2.x < n2.x || t2.x > i2.x && e2.x > i2.x || t2.y < n2.y && e2.y < n2.y || t2.y > i2.y && e2.y > i2.y) return false; - const a2 = y2(t2, e2, r2[0]); - return a2 !== y2(t2, e2, r2[1]) || a2 !== y2(t2, e2, r2[2]) || a2 !== y2(t2, e2, r2[3]); + var a2 = S(t2, e2, r2[0]); + return a2 !== S(t2, e2, r2[1]) || a2 !== S(t2, e2, r2[2]) || a2 !== S(t2, e2, r2[3]); } - function ss(t2, e2, r2) { - const n2 = e2.paint.get(t2).value; + function to(t2, e2, r2) { + var n2 = e2.paint.get(t2).value; return "constant" === n2.kind ? n2.value : r2.programConfigurations.get(e2.id).getMaxValue(t2); } - function os(t2) { + function eo(t2) { return Math.sqrt(t2[0] * t2[0] + t2[1] * t2[1]); } - function ls(t2, e2, r2, n2, i2) { + function ro(t2, e2, r2, n2, a2) { if (!e2[0] && !e2[1]) return t2; - const a2 = S.convert(e2)._mult(i2); - "viewport" === r2 && a2._rotate(-n2); - const s2 = []; - for (let e3 = 0; e3 < t2.length; e3++) - s2.push(t2[e3].sub(a2)); + var o2 = i.convert(e2)._mult(a2); + "viewport" === r2 && o2._rotate(-n2); + for (var s2 = [], u2 = 0; u2 < t2.length; u2++) + s2.push(t2[u2].sub(o2)); return s2; } - Mn("CircleBucket", Ja, { omit: ["layers"] }); - const us = new fi({ "circle-sort-key": new ui(nt.layout_circle["circle-sort-key"]) }); - var cs = { paint: new fi({ "circle-radius": new ui(nt.paint_circle["circle-radius"]), "circle-color": new ui(nt.paint_circle["circle-color"]), "circle-blur": new ui(nt.paint_circle["circle-blur"]), "circle-opacity": new ui(nt.paint_circle["circle-opacity"]), "circle-translate": new li(nt.paint_circle["circle-translate"]), "circle-translate-anchor": new li(nt.paint_circle["circle-translate-anchor"]), "circle-pitch-scale": new li(nt.paint_circle["circle-pitch-scale"]), "circle-pitch-alignment": new li(nt.paint_circle["circle-pitch-alignment"]), "circle-stroke-width": new ui(nt.paint_circle["circle-stroke-width"]), "circle-stroke-color": new ui(nt.paint_circle["circle-stroke-color"]), "circle-stroke-opacity": new ui(nt.paint_circle["circle-stroke-opacity"]) }), layout: us }, hs = 1e-6, ps = "undefined" != typeof Float32Array ? Float32Array : Array; - function fs() { - var t2 = new ps(9); - return ps != Float32Array && (t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[5] = 0, t2[6] = 0, t2[7] = 0), t2[0] = 1, t2[4] = 1, t2[8] = 1, t2; - } - function ds(t2) { + qa.prototype.populate = function(t2, e2, r2) { + var n2 = this.layers[0], i2 = [], a2 = null; + "circle" === n2.type && (a2 = n2.layout.get("circle-sort-key")); + for (var o2 = 0, s2 = t2; o2 < s2.length; o2 += 1) { + var u2 = s2[o2], l2 = u2.feature, p3 = u2.id, c3 = u2.index, h3 = u2.sourceLayerIndex, f2 = this.layers[0]._featureFilter.needGeometry, y3 = Ua(l2, f2); + if (this.layers[0]._featureFilter.filter(new si(this.zoom), y3, r2)) { + var d2 = a2 ? a2.evaluate(y3, {}, r2) : void 0, m2 = { id: p3, properties: l2.properties, type: l2.type, sourceLayerIndex: h3, index: c3, geometry: f2 ? y3.geometry : Ra(l2), patterns: {}, sortKey: d2 }; + i2.push(m2); + } + } + a2 && i2.sort(function(t3, e3) { + return t3.sortKey - e3.sortKey; + }); + for (var v3 = 0, g2 = i2; v3 < g2.length; v3 += 1) { + var x2 = g2[v3], b2 = x2.geometry, w2 = x2.index, _2 = x2.sourceLayerIndex, A3 = t2[w2].feature; + this.addFeature(x2, b2, w2, r2), e2.featureIndex.insert(A3, b2, w2, _2, this.index); + } + }, qa.prototype.update = function(t2, e2, r2) { + this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t2, e2, this.stateDependentLayers, r2); + }, qa.prototype.isEmpty = function() { + return 0 === this.layoutVertexArray.length; + }, qa.prototype.uploadPending = function() { + return !this.uploaded || this.programConfigurations.needsUpload; + }, qa.prototype.upload = function(t2) { + this.uploaded || (this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, oa), this.indexBuffer = t2.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t2), this.uploaded = true; + }, qa.prototype.destroy = function() { + this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy()); + }, qa.prototype.addFeature = function(t2, e2, r2, n2) { + for (var i2 = 0, a2 = e2; i2 < a2.length; i2 += 1) + for (var o2 = 0, s2 = a2[i2]; o2 < s2.length; o2 += 1) { + var u2 = s2[o2], l2 = u2.x, p3 = u2.y; + if (!(l2 < 0 || l2 >= 8192 || p3 < 0 || p3 >= 8192)) { + var c3 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray, t2.sortKey), h3 = c3.vertexLength; + ja(this.layoutVertexArray, l2, p3, -1, -1), ja(this.layoutVertexArray, l2, p3, 1, -1), ja(this.layoutVertexArray, l2, p3, 1, 1), ja(this.layoutVertexArray, l2, p3, -1, 1), this.indexArray.emplaceBack(h3, h3 + 1, h3 + 2), this.indexArray.emplaceBack(h3, h3 + 3, h3 + 2), c3.vertexLength += 4, c3.primitiveLength += 2; + } + } + this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t2, r2, {}, n2); + }, On("CircleBucket", qa, { omit: ["layers"] }); + var no = new wi({ "circle-sort-key": new vi(Et.layout_circle["circle-sort-key"]) }), io = { paint: new wi({ "circle-radius": new vi(Et.paint_circle["circle-radius"]), "circle-color": new vi(Et.paint_circle["circle-color"]), "circle-blur": new vi(Et.paint_circle["circle-blur"]), "circle-opacity": new vi(Et.paint_circle["circle-opacity"]), "circle-translate": new mi(Et.paint_circle["circle-translate"]), "circle-translate-anchor": new mi(Et.paint_circle["circle-translate-anchor"]), "circle-pitch-scale": new mi(Et.paint_circle["circle-pitch-scale"]), "circle-pitch-alignment": new mi(Et.paint_circle["circle-pitch-alignment"]), "circle-stroke-width": new vi(Et.paint_circle["circle-stroke-width"]), "circle-stroke-color": new vi(Et.paint_circle["circle-stroke-color"]), "circle-stroke-opacity": new vi(Et.paint_circle["circle-stroke-opacity"]) }), layout: no }, ao = "undefined" != typeof Float32Array ? Float32Array : Array; + function oo(t2) { return t2[0] = 1, t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[4] = 0, t2[5] = 1, t2[6] = 0, t2[7] = 0, t2[8] = 0, t2[9] = 0, t2[10] = 1, t2[11] = 0, t2[12] = 0, t2[13] = 0, t2[14] = 0, t2[15] = 1, t2; } - function ys(t2, e2, r2) { - var n2 = e2[0], i2 = e2[1], a2 = e2[2], s2 = e2[3], o2 = e2[4], l2 = e2[5], u2 = e2[6], c3 = e2[7], h3 = e2[8], p3 = e2[9], f2 = e2[10], d2 = e2[11], y3 = e2[12], m2 = e2[13], g2 = e2[14], x2 = e2[15], v3 = r2[0], b2 = r2[1], w2 = r2[2], _2 = r2[3]; - return t2[0] = v3 * n2 + b2 * o2 + w2 * h3 + _2 * y3, t2[1] = v3 * i2 + b2 * l2 + w2 * p3 + _2 * m2, t2[2] = v3 * a2 + b2 * u2 + w2 * f2 + _2 * g2, t2[3] = v3 * s2 + b2 * c3 + w2 * d2 + _2 * x2, t2[4] = (v3 = r2[4]) * n2 + (b2 = r2[5]) * o2 + (w2 = r2[6]) * h3 + (_2 = r2[7]) * y3, t2[5] = v3 * i2 + b2 * l2 + w2 * p3 + _2 * m2, t2[6] = v3 * a2 + b2 * u2 + w2 * f2 + _2 * g2, t2[7] = v3 * s2 + b2 * c3 + w2 * d2 + _2 * x2, t2[8] = (v3 = r2[8]) * n2 + (b2 = r2[9]) * o2 + (w2 = r2[10]) * h3 + (_2 = r2[11]) * y3, t2[9] = v3 * i2 + b2 * l2 + w2 * p3 + _2 * m2, t2[10] = v3 * a2 + b2 * u2 + w2 * f2 + _2 * g2, t2[11] = v3 * s2 + b2 * c3 + w2 * d2 + _2 * x2, t2[12] = (v3 = r2[12]) * n2 + (b2 = r2[13]) * o2 + (w2 = r2[14]) * h3 + (_2 = r2[15]) * y3, t2[13] = v3 * i2 + b2 * l2 + w2 * p3 + _2 * m2, t2[14] = v3 * a2 + b2 * u2 + w2 * f2 + _2 * g2, t2[15] = v3 * s2 + b2 * c3 + w2 * d2 + _2 * x2, t2; + function so(t2, e2, r2) { + var n2 = e2[0], i2 = e2[1], a2 = e2[2], o2 = e2[3], s2 = e2[4], u2 = e2[5], l2 = e2[6], p3 = e2[7], c3 = e2[8], h3 = e2[9], f2 = e2[10], y3 = e2[11], d2 = e2[12], m2 = e2[13], v3 = e2[14], g2 = e2[15], x2 = r2[0], b2 = r2[1], w2 = r2[2], _2 = r2[3]; + return t2[0] = x2 * n2 + b2 * s2 + w2 * c3 + _2 * d2, t2[1] = x2 * i2 + b2 * u2 + w2 * h3 + _2 * m2, t2[2] = x2 * a2 + b2 * l2 + w2 * f2 + _2 * v3, t2[3] = x2 * o2 + b2 * p3 + w2 * y3 + _2 * g2, t2[4] = (x2 = r2[4]) * n2 + (b2 = r2[5]) * s2 + (w2 = r2[6]) * c3 + (_2 = r2[7]) * d2, t2[5] = x2 * i2 + b2 * u2 + w2 * h3 + _2 * m2, t2[6] = x2 * a2 + b2 * l2 + w2 * f2 + _2 * v3, t2[7] = x2 * o2 + b2 * p3 + w2 * y3 + _2 * g2, t2[8] = (x2 = r2[8]) * n2 + (b2 = r2[9]) * s2 + (w2 = r2[10]) * c3 + (_2 = r2[11]) * d2, t2[9] = x2 * i2 + b2 * u2 + w2 * h3 + _2 * m2, t2[10] = x2 * a2 + b2 * l2 + w2 * f2 + _2 * v3, t2[11] = x2 * o2 + b2 * p3 + w2 * y3 + _2 * g2, t2[12] = (x2 = r2[12]) * n2 + (b2 = r2[13]) * s2 + (w2 = r2[14]) * c3 + (_2 = r2[15]) * d2, t2[13] = x2 * i2 + b2 * u2 + w2 * h3 + _2 * m2, t2[14] = x2 * a2 + b2 * l2 + w2 * f2 + _2 * v3, t2[15] = x2 * o2 + b2 * p3 + w2 * y3 + _2 * g2, t2; } Math.hypot || (Math.hypot = function() { - for (var t2 = 0, e2 = arguments.length; e2--; ) - t2 += arguments[e2] * arguments[e2]; - return Math.sqrt(t2); + for (var t2 = arguments, e2 = 0, r2 = arguments.length; r2--; ) + e2 += t2[r2] * t2[r2]; + return Math.sqrt(e2); }); - var ms, gs = ys; - function xs() { - var t2 = new ps(3); - return ps != Float32Array && (t2[0] = 0, t2[1] = 0, t2[2] = 0), t2; - } - function vs(t2, e2, r2) { - var n2 = new ps(3); - return n2[0] = t2, n2[1] = e2, n2[2] = r2, n2; - } - function bs(t2, e2, r2) { - var n2 = e2[0], i2 = e2[1], a2 = e2[2], s2 = e2[3]; - return t2[0] = r2[0] * n2 + r2[4] * i2 + r2[8] * a2 + r2[12] * s2, t2[1] = r2[1] * n2 + r2[5] * i2 + r2[9] * a2 + r2[13] * s2, t2[2] = r2[2] * n2 + r2[6] * i2 + r2[10] * a2 + r2[14] * s2, t2[3] = r2[3] * n2 + r2[7] * i2 + r2[11] * a2 + r2[15] * s2, t2; - } - function ws() { - var t2 = new ps(4); - return ps != Float32Array && (t2[0] = 0, t2[1] = 0, t2[2] = 0), t2[3] = 1, t2; - } - function _s(t2, e2) { - const r2 = bs([], [t2.x, t2.y, 0, 1], e2); - return new S(r2[0] / r2[3], r2[1] / r2[3]); - } - xs(), ms = new ps(4), ps != Float32Array && (ms[0] = 0, ms[1] = 0, ms[2] = 0, ms[3] = 0), xs(), vs(1, 0, 0), vs(0, 1, 0), ws(), ws(), fs(), function() { - var t2; - t2 = new ps(2), ps != Float32Array && (t2[0] = 0, t2[1] = 0); + var uo, lo = so; + function po(t2, e2, r2) { + var n2 = e2[0], i2 = e2[1], a2 = e2[2], o2 = e2[3]; + return t2[0] = r2[0] * n2 + r2[4] * i2 + r2[8] * a2 + r2[12] * o2, t2[1] = r2[1] * n2 + r2[5] * i2 + r2[9] * a2 + r2[13] * o2, t2[2] = r2[2] * n2 + r2[6] * i2 + r2[10] * a2 + r2[14] * o2, t2[3] = r2[3] * n2 + r2[7] * i2 + r2[11] * a2 + r2[15] * o2, t2; + } + uo = new ao(3), ao != Float32Array && (uo[0] = 0, uo[1] = 0, uo[2] = 0), function() { + var t2 = new ao(4); + ao != Float32Array && (t2[0] = 0, t2[1] = 0, t2[2] = 0, t2[3] = 0); }(); - class As extends Ja { + var co = (function() { + var t2 = new ao(2); + ao != Float32Array && (t2[0] = 0, t2[1] = 0); + }(), function(t2) { + function e2(e3) { + t2.call(this, e3, io); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.createBucket = function(t3) { + return new qa(t3); + }, e2.prototype.queryRadius = function(t3) { + var e3 = t3; + return to("circle-radius", this, e3) + to("circle-stroke-width", this, e3) + eo(this.paint.get("circle-translate")); + }, e2.prototype.queryIntersectsFeature = function(t3, e3, r2, n2, i2, a2, o2, s2) { + for (var u2 = ro(t3, this.paint.get("circle-translate"), this.paint.get("circle-translate-anchor"), a2.angle, o2), l2 = this.paint.get("circle-radius").evaluate(e3, r2) + this.paint.get("circle-stroke-width").evaluate(e3, r2), p3 = "map" === this.paint.get("circle-pitch-alignment"), c3 = p3 ? u2 : function(t4, e4) { + return t4.map(function(t5) { + return ho(t5, e4); + }); + }(u2, s2), h3 = p3 ? l2 * o2 : l2, f2 = 0, y3 = n2; f2 < y3.length; f2 += 1) + for (var d2 = 0, m2 = y3[f2]; d2 < m2.length; d2 += 1) { + var v3 = m2[d2], g2 = p3 ? v3 : ho(v3, s2), x2 = h3, b2 = po([], [v3.x, v3.y, 0, 1], s2); + if ("viewport" === this.paint.get("circle-pitch-scale") && "map" === this.paint.get("circle-pitch-alignment") ? x2 *= b2[3] / a2.cameraToCenterDistance : "map" === this.paint.get("circle-pitch-scale") && "viewport" === this.paint.get("circle-pitch-alignment") && (x2 *= a2.cameraToCenterDistance / b2[3]), Ka(c3, g2, x2)) + return true; + } + return false; + }, e2; + }(_i)); + function ho(t2, e2) { + var r2 = po([], [t2.x, t2.y, 0, 1], e2); + return new i(r2[0] / r2[3], r2[1] / r2[3]); } - Mn("HeatmapBucket", As, { omit: ["layers"] }); - var ks = { paint: new fi({ "heatmap-radius": new ui(nt.paint_heatmap["heatmap-radius"]), "heatmap-weight": new ui(nt.paint_heatmap["heatmap-weight"]), "heatmap-intensity": new li(nt.paint_heatmap["heatmap-intensity"]), "heatmap-color": new pi(nt.paint_heatmap["heatmap-color"]), "heatmap-opacity": new li(nt.paint_heatmap["heatmap-opacity"]) }) }; - function Ss(t2, { width: e2, height: r2 }, n2, i2) { - if (i2) { - if (i2 instanceof Uint8ClampedArray) - i2 = new Uint8Array(i2.buffer); - else if (i2.length !== e2 * r2 * n2) - throw new RangeError(`mismatched image size. expected: ${i2.length} but got: ${e2 * r2 * n2}`); + var fo = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2; + }(qa); + function yo(t2, e2, r2, n2) { + var i2 = e2.width, a2 = e2.height; + if (n2) { + if (n2 instanceof Uint8ClampedArray) + n2 = new Uint8Array(n2.buffer); + else if (n2.length !== i2 * a2 * r2) + throw new RangeError("mismatched image size"); } else - i2 = new Uint8Array(e2 * r2 * n2); - return t2.width = e2, t2.height = r2, t2.data = i2, t2; + n2 = new Uint8Array(i2 * a2 * r2); + return t2.width = i2, t2.height = a2, t2.data = n2, t2; } - function Is(t2, { width: e2, height: r2 }, n2) { - if (e2 === t2.width && r2 === t2.height) - return; - const i2 = Ss({}, { width: e2, height: r2 }, n2); - Ms(t2, i2, { x: 0, y: 0 }, { x: 0, y: 0 }, { width: Math.min(t2.width, e2), height: Math.min(t2.height, r2) }, n2), t2.width = e2, t2.height = r2, t2.data = i2.data; + function mo(t2, e2, r2) { + var n2 = e2.width, i2 = e2.height; + if (n2 !== t2.width || i2 !== t2.height) { + var a2 = yo({}, { width: n2, height: i2 }, r2); + vo(t2, a2, { x: 0, y: 0 }, { x: 0, y: 0 }, { width: Math.min(t2.width, n2), height: Math.min(t2.height, i2) }, r2), t2.width = n2, t2.height = i2, t2.data = a2.data; + } } - function Ms(t2, e2, r2, n2, i2, a2) { + function vo(t2, e2, r2, n2, i2, a2) { if (0 === i2.width || 0 === i2.height) return e2; if (i2.width > t2.width || i2.height > t2.height || r2.x > t2.width - i2.width || r2.y > t2.height - i2.height) throw new RangeError("out of range source coordinates for image copy"); if (i2.width > e2.width || i2.height > e2.height || n2.x > e2.width - i2.width || n2.y > e2.height - i2.height) throw new RangeError("out of range destination coordinates for image copy"); - const s2 = t2.data, o2 = e2.data; - if (s2 === o2) - throw new Error("srcData equals dstData, so image is already copied"); - for (let l2 = 0; l2 < i2.height; l2++) { - const u2 = ((r2.y + l2) * t2.width + r2.x) * a2, c3 = ((n2.y + l2) * e2.width + n2.x) * a2; - for (let t3 = 0; t3 < i2.width * a2; t3++) - o2[c3 + t3] = s2[u2 + t3]; - } + for (var o2 = t2.data, s2 = e2.data, u2 = 0; u2 < i2.height; u2++) + for (var l2 = ((r2.y + u2) * t2.width + r2.x) * a2, p3 = ((n2.y + u2) * e2.width + n2.x) * a2, c3 = 0; c3 < i2.width * a2; c3++) + s2[p3 + c3] = o2[l2 + c3]; return e2; } - class zs { - constructor(t2, e2) { - Ss(this, t2, 1, e2); - } - resize(t2) { - Is(this, t2, 1); - } - clone() { - return new zs({ width: this.width, height: this.height }, new Uint8Array(this.data)); - } - static copy(t2, e2, r2, n2, i2) { - Ms(t2, e2, r2, n2, i2, 1); - } - } - class Bs { - constructor(t2, e2) { - Ss(this, t2, 4, e2); - } - resize(t2) { - Is(this, t2, 4); - } - replace(t2, e2) { - e2 ? this.data.set(t2) : this.data = t2 instanceof Uint8ClampedArray ? new Uint8Array(t2.buffer) : t2; - } - clone() { - return new Bs({ width: this.width, height: this.height }, new Uint8Array(this.data)); - } - static copy(t2, e2, r2, n2, i2) { - Ms(t2, e2, r2, n2, i2, 4); - } - } - function Cs(t2) { - const e2 = {}, r2 = t2.resolution || 256, n2 = t2.clips ? t2.clips.length : 1, i2 = t2.image || new Bs({ width: r2, height: n2 }); - if (Math.log(r2) / Math.LN2 % 1 != 0) - throw new Error(`width is not a power of 2 - ${r2}`); - const a2 = (r3, n3, a3) => { + On("HeatmapBucket", fo, { omit: ["layers"] }); + var go = function(t2, e2) { + yo(this, t2, 1, e2); + }; + go.prototype.resize = function(t2) { + mo(this, t2, 1); + }, go.prototype.clone = function() { + return new go({ width: this.width, height: this.height }, new Uint8Array(this.data)); + }, go.copy = function(t2, e2, r2, n2, i2) { + vo(t2, e2, r2, n2, i2, 1); + }; + var xo = function(t2, e2) { + yo(this, t2, 4, e2); + }; + xo.prototype.resize = function(t2) { + mo(this, t2, 4); + }, xo.prototype.replace = function(t2, e2) { + e2 ? this.data.set(t2) : this.data = t2 instanceof Uint8ClampedArray ? new Uint8Array(t2.buffer) : t2; + }, xo.prototype.clone = function() { + return new xo({ width: this.width, height: this.height }, new Uint8Array(this.data)); + }, xo.copy = function(t2, e2, r2, n2, i2) { + vo(t2, e2, r2, n2, i2, 4); + }, On("AlphaImage", go), On("RGBAImage", xo); + var bo = { paint: new wi({ "heatmap-radius": new vi(Et.paint_heatmap["heatmap-radius"]), "heatmap-weight": new vi(Et.paint_heatmap["heatmap-weight"]), "heatmap-intensity": new mi(Et.paint_heatmap["heatmap-intensity"]), "heatmap-color": new bi(Et.paint_heatmap["heatmap-color"]), "heatmap-opacity": new mi(Et.paint_heatmap["heatmap-opacity"]) }) }; + function wo(t2) { + var e2 = {}, r2 = t2.resolution || 256, n2 = t2.clips ? t2.clips.length : 1, i2 = t2.image || new xo({ width: r2, height: n2 }), a2 = function(r3, n3, a3) { e2[t2.evaluationKey] = a3; - const s2 = t2.expression.evaluate(e2); - i2.data[r3 + n3 + 0] = Math.floor(255 * s2.r / s2.a), i2.data[r3 + n3 + 1] = Math.floor(255 * s2.g / s2.a), i2.data[r3 + n3 + 2] = Math.floor(255 * s2.b / s2.a), i2.data[r3 + n3 + 3] = Math.floor(255 * s2.a); + var o3 = t2.expression.evaluate(e2); + i2.data[r3 + n3 + 0] = Math.floor(255 * o3.r / o3.a), i2.data[r3 + n3 + 1] = Math.floor(255 * o3.g / o3.a), i2.data[r3 + n3 + 2] = Math.floor(255 * o3.b / o3.a), i2.data[r3 + n3 + 3] = Math.floor(255 * o3.a); }; if (t2.clips) - for (let e3 = 0, i3 = 0; e3 < n2; ++e3, i3 += 4 * r2) - for (let n3 = 0, s2 = 0; n3 < r2; n3++, s2 += 4) { - const o2 = n3 / (r2 - 1), { start: l2, end: u2 } = t2.clips[e3]; - a2(i3, s2, l2 * (1 - o2) + u2 * o2); + for (var o2 = 0, s2 = 0; o2 < n2; ++o2, s2 += 4 * r2) + for (var u2 = 0, l2 = 0; u2 < r2; u2++, l2 += 4) { + var p3 = u2 / (r2 - 1), c3 = t2.clips[o2]; + a2(s2, l2, c3.start * (1 - p3) + c3.end * p3); } else - for (let t3 = 0, e3 = 0; t3 < r2; t3++, e3 += 4) - a2(0, e3, t3 / (r2 - 1)); + for (var h3 = 0, f2 = 0; h3 < r2; h3++, f2 += 4) + a2(0, f2, h3 / (r2 - 1)); return i2; } - Mn("AlphaImage", zs), Mn("RGBAImage", Bs); - var Ps = { paint: new fi({ "hillshade-illumination-direction": new li(nt.paint_hillshade["hillshade-illumination-direction"]), "hillshade-illumination-anchor": new li(nt.paint_hillshade["hillshade-illumination-anchor"]), "hillshade-exaggeration": new li(nt.paint_hillshade["hillshade-exaggeration"]), "hillshade-shadow-color": new li(nt.paint_hillshade["hillshade-shadow-color"]), "hillshade-highlight-color": new li(nt.paint_hillshade["hillshade-highlight-color"]), "hillshade-accent-color": new li(nt.paint_hillshade["hillshade-accent-color"]) }) }; - const Vs = vi([{ name: "a_pos", components: 2, type: "Int16" }], 4), { members: Es } = Vs; - var Fs = { exports: {} }; - function Ts(t2, e2, r2) { + var _o = function(t2) { + function e2(e3) { + t2.call(this, e3, bo), this._updateColorRamp(); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.createBucket = function(t3) { + return new fo(t3); + }, e2.prototype._handleSpecialPaintPropertyUpdate = function(t3) { + "heatmap-color" === t3 && this._updateColorRamp(); + }, e2.prototype._updateColorRamp = function() { + this.colorRamp = wo({ expression: this._transitionablePaint._values["heatmap-color"].value.expression, evaluationKey: "heatmapDensity", image: this.colorRamp }), this.colorRampTexture = null; + }, e2.prototype.resize = function() { + this.heatmapFbo && (this.heatmapFbo.destroy(), this.heatmapFbo = null); + }, e2.prototype.queryRadius = function() { + return 0; + }, e2.prototype.queryIntersectsFeature = function() { + return false; + }, e2.prototype.hasOffscreenPass = function() { + return 0 !== this.paint.get("heatmap-opacity") && "none" !== this.visibility; + }, e2; + }(_i), Ao = { paint: new wi({ "hillshade-illumination-direction": new mi(Et.paint_hillshade["hillshade-illumination-direction"]), "hillshade-illumination-anchor": new mi(Et.paint_hillshade["hillshade-illumination-anchor"]), "hillshade-exaggeration": new mi(Et.paint_hillshade["hillshade-exaggeration"]), "hillshade-shadow-color": new mi(Et.paint_hillshade["hillshade-shadow-color"]), "hillshade-highlight-color": new mi(Et.paint_hillshade["hillshade-highlight-color"]), "hillshade-accent-color": new mi(Et.paint_hillshade["hillshade-accent-color"]) }) }, So = function(t2) { + function e2(e3) { + t2.call(this, e3, Ao); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.hasOffscreenPass = function() { + return 0 !== this.paint.get("hillshade-exaggeration") && "none" !== this.visibility; + }, e2; + }(_i), ko = Ii([{ name: "a_pos", components: 2, type: "Int16" }], 4).members, Io = Co, zo = Co; + function Co(t2, e2, r2) { r2 = r2 || 2; - var n2, i2, a2, s2, o2, l2, u2, c3 = e2 && e2.length, h3 = c3 ? e2[0] * r2 : t2.length, p3 = Ls(t2, 0, h3, r2, true), f2 = []; - if (!p3 || p3.next === p3.prev) + var n2, i2, a2, o2, s2, u2, l2, p3 = e2 && e2.length, c3 = p3 ? e2[0] * r2 : t2.length, h3 = Eo(t2, 0, c3, r2, true), f2 = []; + if (!h3 || h3.next === h3.prev) return f2; - if (c3 && (p3 = function(t3, e3, r3, n3) { - var i3, a3, s3, o3 = []; + if (p3 && (h3 = function(t3, e3, r3, n3) { + var i3, a3, o3, s3 = []; for (i3 = 0, a3 = e3.length; i3 < a3; i3++) - (s3 = Ls(t3, e3[i3] * n3, i3 < a3 - 1 ? e3[i3 + 1] * n3 : t3.length, n3, false)) === s3.next && (s3.steiner = true), o3.push(Gs(s3)); - for (o3.sort(js), i3 = 0; i3 < o3.length; i3++) - r3 = Ns(o3[i3], r3); + (o3 = Eo(t3, e3[i3] * n3, i3 < a3 - 1 ? e3[i3 + 1] * n3 : t3.length, n3, false)) === o3.next && (o3.steiner = true), s3.push(Uo(o3)); + for (s3.sort(Do), i3 = 0; i3 < s3.length; i3++) + Lo(s3[i3], r3), r3 = Po(r3, r3.next); return r3; - }(t2, e2, p3, r2)), t2.length > 80 * r2) { - n2 = a2 = t2[0], i2 = s2 = t2[1]; - for (var d2 = r2; d2 < h3; d2 += r2) - (o2 = t2[d2]) < n2 && (n2 = o2), (l2 = t2[d2 + 1]) < i2 && (i2 = l2), o2 > a2 && (a2 = o2), l2 > s2 && (s2 = l2); - u2 = 0 !== (u2 = Math.max(a2 - n2, s2 - i2)) ? 32767 / u2 : 0; + }(t2, e2, h3, r2)), t2.length > 80 * r2) { + n2 = a2 = t2[0], i2 = o2 = t2[1]; + for (var y3 = r2; y3 < c3; y3 += r2) + (s2 = t2[y3]) < n2 && (n2 = s2), (u2 = t2[y3 + 1]) < i2 && (i2 = u2), s2 > a2 && (a2 = s2), u2 > o2 && (o2 = u2); + l2 = 0 !== (l2 = Math.max(a2 - n2, o2 - i2)) ? 1 / l2 : 0; } - return $s(p3, f2, r2, n2, i2, u2, 0), f2; + return Mo(h3, f2, r2, n2, i2, l2), f2; } - function Ls(t2, e2, r2, n2, i2) { - var a2, s2; - if (i2 === so(t2, e2, r2, n2) > 0) + function Eo(t2, e2, r2, n2, i2) { + var a2, o2; + if (i2 === Qo(t2, e2, r2, n2) > 0) for (a2 = e2; a2 < r2; a2 += n2) - s2 = no(a2, t2[a2], t2[a2 + 1], s2); + o2 = Yo(a2, t2[a2], t2[a2 + 1], o2); else for (a2 = r2 - n2; a2 >= e2; a2 -= n2) - s2 = no(a2, t2[a2], t2[a2 + 1], s2); - return s2 && Hs(s2, s2.next) && (io(s2), s2 = s2.next), s2; + o2 = Yo(a2, t2[a2], t2[a2 + 1], o2); + return o2 && Ko(o2, o2.next) && ($o(o2), o2 = o2.next), o2; } - function Ds(t2, e2) { + function Po(t2, e2) { if (!t2) return t2; e2 || (e2 = t2); var r2, n2 = t2; do { - if (r2 = false, n2.steiner || !Hs(n2, n2.next) && 0 !== Ys(n2.prev, n2, n2.next)) + if (r2 = false, n2.steiner || !Ko(n2, n2.next) && 0 !== No(n2.prev, n2, n2.next)) n2 = n2.next; else { - if (io(n2), (n2 = e2 = n2.prev) === n2.next) + if ($o(n2), (n2 = e2 = n2.prev) === n2.next) break; r2 = true; } } while (r2 || n2 !== e2); return e2; } - function $s(t2, e2, r2, n2, i2, a2, s2) { + function Mo(t2, e2, r2, n2, i2, a2, o2) { if (t2) { - !s2 && a2 && function(t3, e3, r3, n3) { + !o2 && a2 && function(t3, e3, r3, n3) { var i3 = t3; do { - 0 === i3.z && (i3.z = Ks(i3.x, i3.y, e3, r3, n3)), i3.prevZ = i3.prev, i3.nextZ = i3.next, i3 = i3.next; + null === i3.z && (i3.z = Ro(i3.x, i3.y, e3, r3, n3)), i3.prevZ = i3.prev, i3.nextZ = i3.next, i3 = i3.next; } while (i3 !== t3); i3.prevZ.nextZ = null, i3.prevZ = null, function(t4) { - var e4, r4, n4, i4, a3, s3, o3, l3, u3 = 1; + var e4, r4, n4, i4, a3, o3, s3, u3, l3 = 1; do { - for (r4 = t4, t4 = null, a3 = null, s3 = 0; r4; ) { - for (s3++, n4 = r4, o3 = 0, e4 = 0; e4 < u3 && (o3++, n4 = n4.nextZ); e4++) + for (r4 = t4, t4 = null, a3 = null, o3 = 0; r4; ) { + for (o3++, n4 = r4, s3 = 0, e4 = 0; e4 < l3 && (s3++, n4 = n4.nextZ); e4++) ; - for (l3 = u3; o3 > 0 || l3 > 0 && n4; ) - 0 !== o3 && (0 === l3 || !n4 || r4.z <= n4.z) ? (i4 = r4, r4 = r4.nextZ, o3--) : (i4 = n4, n4 = n4.nextZ, l3--), a3 ? a3.nextZ = i4 : t4 = i4, i4.prevZ = a3, a3 = i4; + for (u3 = l3; s3 > 0 || u3 > 0 && n4; ) + 0 !== s3 && (0 === u3 || !n4 || r4.z <= n4.z) ? (i4 = r4, r4 = r4.nextZ, s3--) : (i4 = n4, n4 = n4.nextZ, u3--), a3 ? a3.nextZ = i4 : t4 = i4, i4.prevZ = a3, a3 = i4; r4 = n4; } - a3.nextZ = null, u3 *= 2; - } while (s3 > 1); + a3.nextZ = null, l3 *= 2; + } while (o3 > 1); }(i3); }(t2, n2, i2, a2); - for (var o2, l2, u2 = t2; t2.prev !== t2.next; ) - if (o2 = t2.prev, l2 = t2.next, a2 ? Os(t2, n2, i2, a2) : Rs(t2)) - e2.push(o2.i / r2 | 0), e2.push(t2.i / r2 | 0), e2.push(l2.i / r2 | 0), io(t2), t2 = l2.next, u2 = l2.next; - else if ((t2 = l2) === u2) { - s2 ? 1 === s2 ? $s(t2 = Us(Ds(t2), e2, r2), e2, r2, n2, i2, a2, 2) : 2 === s2 && qs(t2, e2, r2, n2, i2, a2) : $s(Ds(t2), e2, r2, n2, i2, a2, 1); + for (var s2, u2, l2 = t2; t2.prev !== t2.next; ) + if (s2 = t2.prev, u2 = t2.next, a2 ? To(t2, n2, i2, a2) : Bo(t2)) + e2.push(s2.i / r2), e2.push(t2.i / r2), e2.push(u2.i / r2), $o(t2), t2 = u2.next, l2 = u2.next; + else if ((t2 = u2) === l2) { + o2 ? 1 === o2 ? Mo(t2 = Vo(Po(t2), e2, r2), e2, r2, n2, i2, a2, 2) : 2 === o2 && Fo(t2, e2, r2, n2, i2, a2) : Mo(Po(t2), e2, r2, n2, i2, a2, 1); break; } } } - function Rs(t2) { + function Bo(t2) { var e2 = t2.prev, r2 = t2, n2 = t2.next; - if (Ys(e2, r2, n2) >= 0) + if (No(e2, r2, n2) >= 0) return false; - for (var i2 = e2.x, a2 = r2.x, s2 = n2.x, o2 = e2.y, l2 = r2.y, u2 = n2.y, c3 = i2 < a2 ? i2 < s2 ? i2 : s2 : a2 < s2 ? a2 : s2, h3 = o2 < l2 ? o2 < u2 ? o2 : u2 : l2 < u2 ? l2 : u2, p3 = i2 > a2 ? i2 > s2 ? i2 : s2 : a2 > s2 ? a2 : s2, f2 = o2 > l2 ? o2 > u2 ? o2 : u2 : l2 > u2 ? l2 : u2, d2 = n2.next; d2 !== e2; ) { - if (d2.x >= c3 && d2.x <= p3 && d2.y >= h3 && d2.y <= f2 && Js(i2, o2, a2, l2, s2, u2, d2.x, d2.y) && Ys(d2.prev, d2, d2.next) >= 0) + for (var i2 = t2.next.next; i2 !== t2.prev; ) { + if (jo(e2.x, e2.y, r2.x, r2.y, n2.x, n2.y, i2.x, i2.y) && No(i2.prev, i2, i2.next) >= 0) return false; - d2 = d2.next; + i2 = i2.next; } return true; } - function Os(t2, e2, r2, n2) { - var i2 = t2.prev, a2 = t2, s2 = t2.next; - if (Ys(i2, a2, s2) >= 0) + function To(t2, e2, r2, n2) { + var i2 = t2.prev, a2 = t2, o2 = t2.next; + if (No(i2, a2, o2) >= 0) return false; - for (var o2 = i2.x, l2 = a2.x, u2 = s2.x, c3 = i2.y, h3 = a2.y, p3 = s2.y, f2 = o2 < l2 ? o2 < u2 ? o2 : u2 : l2 < u2 ? l2 : u2, d2 = c3 < h3 ? c3 < p3 ? c3 : p3 : h3 < p3 ? h3 : p3, y3 = o2 > l2 ? o2 > u2 ? o2 : u2 : l2 > u2 ? l2 : u2, m2 = c3 > h3 ? c3 > p3 ? c3 : p3 : h3 > p3 ? h3 : p3, g2 = Ks(f2, d2, e2, r2, n2), x2 = Ks(y3, m2, e2, r2, n2), v3 = t2.prevZ, b2 = t2.nextZ; v3 && v3.z >= g2 && b2 && b2.z <= x2; ) { - if (v3.x >= f2 && v3.x <= y3 && v3.y >= d2 && v3.y <= m2 && v3 !== i2 && v3 !== s2 && Js(o2, c3, l2, h3, u2, p3, v3.x, v3.y) && Ys(v3.prev, v3, v3.next) >= 0) + for (var s2 = i2.x > a2.x ? i2.x > o2.x ? i2.x : o2.x : a2.x > o2.x ? a2.x : o2.x, u2 = i2.y > a2.y ? i2.y > o2.y ? i2.y : o2.y : a2.y > o2.y ? a2.y : o2.y, l2 = Ro(i2.x < a2.x ? i2.x < o2.x ? i2.x : o2.x : a2.x < o2.x ? a2.x : o2.x, i2.y < a2.y ? i2.y < o2.y ? i2.y : o2.y : a2.y < o2.y ? a2.y : o2.y, e2, r2, n2), p3 = Ro(s2, u2, e2, r2, n2), c3 = t2.prevZ, h3 = t2.nextZ; c3 && c3.z >= l2 && h3 && h3.z <= p3; ) { + if (c3 !== t2.prev && c3 !== t2.next && jo(i2.x, i2.y, a2.x, a2.y, o2.x, o2.y, c3.x, c3.y) && No(c3.prev, c3, c3.next) >= 0) return false; - if (v3 = v3.prevZ, b2.x >= f2 && b2.x <= y3 && b2.y >= d2 && b2.y <= m2 && b2 !== i2 && b2 !== s2 && Js(o2, c3, l2, h3, u2, p3, b2.x, b2.y) && Ys(b2.prev, b2, b2.next) >= 0) + if (c3 = c3.prevZ, h3 !== t2.prev && h3 !== t2.next && jo(i2.x, i2.y, a2.x, a2.y, o2.x, o2.y, h3.x, h3.y) && No(h3.prev, h3, h3.next) >= 0) return false; - b2 = b2.nextZ; + h3 = h3.nextZ; } - for (; v3 && v3.z >= g2; ) { - if (v3.x >= f2 && v3.x <= y3 && v3.y >= d2 && v3.y <= m2 && v3 !== i2 && v3 !== s2 && Js(o2, c3, l2, h3, u2, p3, v3.x, v3.y) && Ys(v3.prev, v3, v3.next) >= 0) + for (; c3 && c3.z >= l2; ) { + if (c3 !== t2.prev && c3 !== t2.next && jo(i2.x, i2.y, a2.x, a2.y, o2.x, o2.y, c3.x, c3.y) && No(c3.prev, c3, c3.next) >= 0) return false; - v3 = v3.prevZ; + c3 = c3.prevZ; } - for (; b2 && b2.z <= x2; ) { - if (b2.x >= f2 && b2.x <= y3 && b2.y >= d2 && b2.y <= m2 && b2 !== i2 && b2 !== s2 && Js(o2, c3, l2, h3, u2, p3, b2.x, b2.y) && Ys(b2.prev, b2, b2.next) >= 0) + for (; h3 && h3.z <= p3; ) { + if (h3 !== t2.prev && h3 !== t2.next && jo(i2.x, i2.y, a2.x, a2.y, o2.x, o2.y, h3.x, h3.y) && No(h3.prev, h3, h3.next) >= 0) return false; - b2 = b2.nextZ; + h3 = h3.nextZ; } return true; } - function Us(t2, e2, r2) { + function Vo(t2, e2, r2) { var n2 = t2; do { var i2 = n2.prev, a2 = n2.next.next; - !Hs(i2, a2) && Ws(i2, n2, n2.next, a2) && eo(i2, a2) && eo(a2, i2) && (e2.push(i2.i / r2 | 0), e2.push(n2.i / r2 | 0), e2.push(a2.i / r2 | 0), io(n2), io(n2.next), n2 = t2 = a2), n2 = n2.next; + !Ko(i2, a2) && Go(i2, n2, n2.next, a2) && Jo(i2, a2) && Jo(a2, i2) && (e2.push(i2.i / r2), e2.push(n2.i / r2), e2.push(a2.i / r2), $o(n2), $o(n2.next), n2 = t2 = a2), n2 = n2.next; } while (n2 !== t2); - return Ds(n2); + return Po(n2); } - function qs(t2, e2, r2, n2, i2, a2) { - var s2 = t2; + function Fo(t2, e2, r2, n2, i2, a2) { + var o2 = t2; do { - for (var o2 = s2.next.next; o2 !== s2.prev; ) { - if (s2.i !== o2.i && Xs(s2, o2)) { - var l2 = ro(s2, o2); - return s2 = Ds(s2, s2.next), l2 = Ds(l2, l2.next), $s(s2, e2, r2, n2, i2, a2, 0), void $s(l2, e2, r2, n2, i2, a2, 0); + for (var s2 = o2.next.next; s2 !== o2.prev; ) { + if (o2.i !== s2.i && qo(o2, s2)) { + var u2 = Ho(o2, s2); + return o2 = Po(o2, o2.next), u2 = Po(u2, u2.next), Mo(o2, e2, r2, n2, i2, a2), void Mo(u2, e2, r2, n2, i2, a2); } - o2 = o2.next; + s2 = s2.next; } - s2 = s2.next; - } while (s2 !== t2); + o2 = o2.next; + } while (o2 !== t2); } - function js(t2, e2) { + function Do(t2, e2) { return t2.x - e2.x; } - function Ns(t2, e2) { - var r2 = function(t3, e3) { - var r3, n3 = e3, i2 = t3.x, a2 = t3.y, s2 = -1 / 0; + function Lo(t2, e2) { + if (e2 = function(t3, e3) { + var r3, n2 = e3, i2 = t3.x, a2 = t3.y, o2 = -1 / 0; do { - if (a2 <= n3.y && a2 >= n3.next.y && n3.next.y !== n3.y) { - var o2 = n3.x + (a2 - n3.y) * (n3.next.x - n3.x) / (n3.next.y - n3.y); - if (o2 <= i2 && o2 > s2 && (s2 = o2, r3 = n3.x < n3.next.x ? n3 : n3.next, o2 === i2)) - return r3; + if (a2 <= n2.y && a2 >= n2.next.y && n2.next.y !== n2.y) { + var s2 = n2.x + (a2 - n2.y) * (n2.next.x - n2.x) / (n2.next.y - n2.y); + if (s2 <= i2 && s2 > o2) { + if (o2 = s2, s2 === i2) { + if (a2 === n2.y) + return n2; + if (a2 === n2.next.y) + return n2.next; + } + r3 = n2.x < n2.next.x ? n2 : n2.next; + } } - n3 = n3.next; - } while (n3 !== e3); + n2 = n2.next; + } while (n2 !== e3); if (!r3) return null; - var l2, u2 = r3, c3 = r3.x, h3 = r3.y, p3 = 1 / 0; - n3 = r3; + if (i2 === o2) + return r3; + var u2, l2 = r3, p3 = r3.x, c3 = r3.y, h3 = 1 / 0; + n2 = r3; do { - i2 >= n3.x && n3.x >= c3 && i2 !== n3.x && Js(a2 < h3 ? i2 : s2, a2, c3, h3, a2 < h3 ? s2 : i2, a2, n3.x, n3.y) && (l2 = Math.abs(a2 - n3.y) / (i2 - n3.x), eo(n3, t3) && (l2 < p3 || l2 === p3 && (n3.x > r3.x || n3.x === r3.x && Zs(r3, n3))) && (r3 = n3, p3 = l2)), n3 = n3.next; - } while (n3 !== u2); + i2 >= n2.x && n2.x >= p3 && i2 !== n2.x && jo(a2 < c3 ? i2 : o2, a2, p3, c3, a2 < c3 ? o2 : i2, a2, n2.x, n2.y) && (u2 = Math.abs(a2 - n2.y) / (i2 - n2.x), Jo(n2, t3) && (u2 < h3 || u2 === h3 && (n2.x > r3.x || n2.x === r3.x && Oo(r3, n2))) && (r3 = n2, h3 = u2)), n2 = n2.next; + } while (n2 !== l2); return r3; - }(t2, e2); - if (!r2) - return e2; - var n2 = ro(r2, t2); - return Ds(n2, n2.next), Ds(r2, r2.next); + }(t2, e2)) { + var r2 = Ho(e2, t2); + Po(e2, e2.next), Po(r2, r2.next); + } } - function Zs(t2, e2) { - return Ys(t2.prev, t2, e2.prev) < 0 && Ys(e2.next, t2, t2.next) < 0; + function Oo(t2, e2) { + return No(t2.prev, t2, e2.prev) < 0 && No(e2.next, t2, t2.next) < 0; } - function Ks(t2, e2, r2, n2, i2) { - return (t2 = 1431655765 & ((t2 = 858993459 & ((t2 = 252645135 & ((t2 = 16711935 & ((t2 = (t2 - r2) * i2 | 0) | t2 << 8)) | t2 << 4)) | t2 << 2)) | t2 << 1)) | (e2 = 1431655765 & ((e2 = 858993459 & ((e2 = 252645135 & ((e2 = 16711935 & ((e2 = (e2 - n2) * i2 | 0) | e2 << 8)) | e2 << 4)) | e2 << 2)) | e2 << 1)) << 1; + function Ro(t2, e2, r2, n2, i2) { + return (t2 = 1431655765 & ((t2 = 858993459 & ((t2 = 252645135 & ((t2 = 16711935 & ((t2 = 32767 * (t2 - r2) * i2) | t2 << 8)) | t2 << 4)) | t2 << 2)) | t2 << 1)) | (e2 = 1431655765 & ((e2 = 858993459 & ((e2 = 252645135 & ((e2 = 16711935 & ((e2 = 32767 * (e2 - n2) * i2) | e2 << 8)) | e2 << 4)) | e2 << 2)) | e2 << 1)) << 1; } - function Gs(t2) { + function Uo(t2) { var e2 = t2, r2 = t2; do { (e2.x < r2.x || e2.x === r2.x && e2.y < r2.y) && (r2 = e2), e2 = e2.next; } while (e2 !== t2); return r2; } - function Js(t2, e2, r2, n2, i2, a2, s2, o2) { - return (i2 - s2) * (e2 - o2) >= (t2 - s2) * (a2 - o2) && (t2 - s2) * (n2 - o2) >= (r2 - s2) * (e2 - o2) && (r2 - s2) * (a2 - o2) >= (i2 - s2) * (n2 - o2); + function jo(t2, e2, r2, n2, i2, a2, o2, s2) { + return (i2 - o2) * (e2 - s2) - (t2 - o2) * (a2 - s2) >= 0 && (t2 - o2) * (n2 - s2) - (r2 - o2) * (e2 - s2) >= 0 && (r2 - o2) * (a2 - s2) - (i2 - o2) * (n2 - s2) >= 0; } - function Xs(t2, e2) { + function qo(t2, e2) { return t2.next.i !== e2.i && t2.prev.i !== e2.i && !function(t3, e3) { var r2 = t3; do { - if (r2.i !== t3.i && r2.next.i !== t3.i && r2.i !== e3.i && r2.next.i !== e3.i && Ws(r2, r2.next, t3, e3)) + if (r2.i !== t3.i && r2.next.i !== t3.i && r2.i !== e3.i && r2.next.i !== e3.i && Go(r2, r2.next, t3, e3)) return true; r2 = r2.next; } while (r2 !== t3); return false; - }(t2, e2) && (eo(t2, e2) && eo(e2, t2) && function(t3, e3) { + }(t2, e2) && (Jo(t2, e2) && Jo(e2, t2) && function(t3, e3) { var r2 = t3, n2 = false, i2 = (t3.x + e3.x) / 2, a2 = (t3.y + e3.y) / 2; do { r2.y > a2 != r2.next.y > a2 && r2.next.y !== r2.y && i2 < (r2.next.x - r2.x) * (a2 - r2.y) / (r2.next.y - r2.y) + r2.x && (n2 = !n2), r2 = r2.next; } while (r2 !== t3); return n2; - }(t2, e2) && (Ys(t2.prev, t2, e2.prev) || Ys(t2, e2.prev, e2)) || Hs(t2, e2) && Ys(t2.prev, t2, t2.next) > 0 && Ys(e2.prev, e2, e2.next) > 0); + }(t2, e2) && (No(t2.prev, t2, e2.prev) || No(t2, e2.prev, e2)) || Ko(t2, e2) && No(t2.prev, t2, t2.next) > 0 && No(e2.prev, e2, e2.next) > 0); } - function Ys(t2, e2, r2) { + function No(t2, e2, r2) { return (e2.y - t2.y) * (r2.x - e2.x) - (e2.x - t2.x) * (r2.y - e2.y); } - function Hs(t2, e2) { + function Ko(t2, e2) { return t2.x === e2.x && t2.y === e2.y; } - function Ws(t2, e2, r2, n2) { - var i2 = to(Ys(t2, e2, r2)), a2 = to(Ys(t2, e2, n2)), s2 = to(Ys(r2, n2, t2)), o2 = to(Ys(r2, n2, e2)); - return i2 !== a2 && s2 !== o2 || !(0 !== i2 || !Qs(t2, r2, e2)) || !(0 !== a2 || !Qs(t2, n2, e2)) || !(0 !== s2 || !Qs(r2, t2, n2)) || !(0 !== o2 || !Qs(r2, e2, n2)); + function Go(t2, e2, r2, n2) { + var i2 = Xo(No(t2, e2, r2)), a2 = Xo(No(t2, e2, n2)), o2 = Xo(No(r2, n2, t2)), s2 = Xo(No(r2, n2, e2)); + return i2 !== a2 && o2 !== s2 || !(0 !== i2 || !Zo(t2, r2, e2)) || !(0 !== a2 || !Zo(t2, n2, e2)) || !(0 !== o2 || !Zo(r2, t2, n2)) || !(0 !== s2 || !Zo(r2, e2, n2)); } - function Qs(t2, e2, r2) { + function Zo(t2, e2, r2) { return e2.x <= Math.max(t2.x, r2.x) && e2.x >= Math.min(t2.x, r2.x) && e2.y <= Math.max(t2.y, r2.y) && e2.y >= Math.min(t2.y, r2.y); } - function to(t2) { + function Xo(t2) { return t2 > 0 ? 1 : t2 < 0 ? -1 : 0; } - function eo(t2, e2) { - return Ys(t2.prev, t2, t2.next) < 0 ? Ys(t2, e2, t2.next) >= 0 && Ys(t2, t2.prev, e2) >= 0 : Ys(t2, e2, t2.prev) < 0 || Ys(t2, t2.next, e2) < 0; + function Jo(t2, e2) { + return No(t2.prev, t2, t2.next) < 0 ? No(t2, e2, t2.next) >= 0 && No(t2, t2.prev, e2) >= 0 : No(t2, e2, t2.prev) < 0 || No(t2, t2.next, e2) < 0; } - function ro(t2, e2) { - var r2 = new ao(t2.i, t2.x, t2.y), n2 = new ao(e2.i, e2.x, e2.y), i2 = t2.next, a2 = e2.prev; + function Ho(t2, e2) { + var r2 = new Wo(t2.i, t2.x, t2.y), n2 = new Wo(e2.i, e2.x, e2.y), i2 = t2.next, a2 = e2.prev; return t2.next = e2, e2.prev = t2, r2.next = i2, i2.prev = r2, n2.next = r2, r2.prev = n2, a2.next = n2, n2.prev = a2, n2; } - function no(t2, e2, r2, n2) { - var i2 = new ao(t2, e2, r2); + function Yo(t2, e2, r2, n2) { + var i2 = new Wo(t2, e2, r2); return n2 ? (i2.next = n2.next, i2.prev = n2, n2.next.prev = i2, n2.next = i2) : (i2.prev = i2, i2.next = i2), i2; } - function io(t2) { + function $o(t2) { t2.next.prev = t2.prev, t2.prev.next = t2.next, t2.prevZ && (t2.prevZ.nextZ = t2.nextZ), t2.nextZ && (t2.nextZ.prevZ = t2.prevZ); } - function ao(t2, e2, r2) { - this.i = t2, this.x = e2, this.y = r2, this.prev = null, this.next = null, this.z = 0, this.prevZ = null, this.nextZ = null, this.steiner = false; + function Wo(t2, e2, r2) { + this.i = t2, this.x = e2, this.y = r2, this.prev = null, this.next = null, this.z = null, this.prevZ = null, this.nextZ = null, this.steiner = false; } - function so(t2, e2, r2, n2) { - for (var i2 = 0, a2 = e2, s2 = r2 - n2; a2 < r2; a2 += n2) - i2 += (t2[s2] - t2[a2]) * (t2[a2 + 1] + t2[s2 + 1]), s2 = a2; + function Qo(t2, e2, r2, n2) { + for (var i2 = 0, a2 = e2, o2 = r2 - n2; a2 < r2; a2 += n2) + i2 += (t2[o2] - t2[a2]) * (t2[a2 + 1] + t2[o2 + 1]), o2 = a2; return i2; } - function oo(t2, e2, r2, n2, i2) { - lo(t2, e2, r2 || 0, n2 || t2.length - 1, i2 || co); - } - function lo(t2, e2, r2, n2, i2) { - for (; n2 > r2; ) { - if (n2 - r2 > 600) { - var a2 = n2 - r2 + 1, s2 = e2 - r2 + 1, o2 = Math.log(a2), l2 = 0.5 * Math.exp(2 * o2 / 3), u2 = 0.5 * Math.sqrt(o2 * l2 * (a2 - l2) / a2) * (s2 - a2 / 2 < 0 ? -1 : 1); - lo(t2, e2, Math.max(r2, Math.floor(e2 - s2 * l2 / a2 + u2)), Math.min(n2, Math.floor(e2 + (a2 - s2) * l2 / a2 + u2)), i2); - } - var c3 = t2[e2], h3 = r2, p3 = n2; - for (uo(t2, r2, e2), i2(t2[n2], c3) > 0 && uo(t2, r2, n2); h3 < p3; ) { - for (uo(t2, h3, p3), h3++, p3--; i2(t2[h3], c3) < 0; ) - h3++; - for (; i2(t2[p3], c3) > 0; ) - p3--; + function ts(t2, e2, r2, n2, i2) { + !function t3(e3, r3, n3, i3, a2) { + for (; i3 > n3; ) { + if (i3 - n3 > 600) { + var o2 = i3 - n3 + 1, s2 = r3 - n3 + 1, u2 = Math.log(o2), l2 = 0.5 * Math.exp(2 * u2 / 3), p3 = 0.5 * Math.sqrt(u2 * l2 * (o2 - l2) / o2) * (s2 - o2 / 2 < 0 ? -1 : 1); + t3(e3, r3, Math.max(n3, Math.floor(r3 - s2 * l2 / o2 + p3)), Math.min(i3, Math.floor(r3 + (o2 - s2) * l2 / o2 + p3)), a2); + } + var c3 = e3[r3], h3 = n3, f2 = i3; + for (es(e3, n3, r3), a2(e3[i3], c3) > 0 && es(e3, n3, i3); h3 < f2; ) { + for (es(e3, h3, f2), h3++, f2--; a2(e3[h3], c3) < 0; ) + h3++; + for (; a2(e3[f2], c3) > 0; ) + f2--; + } + 0 === a2(e3[n3], c3) ? es(e3, n3, f2) : es(e3, ++f2, i3), f2 <= r3 && (n3 = f2 + 1), r3 <= f2 && (i3 = f2 - 1); } - 0 === i2(t2[r2], c3) ? uo(t2, r2, p3) : uo(t2, ++p3, n2), p3 <= e2 && (r2 = p3 + 1), e2 <= p3 && (n2 = p3 - 1); - } + }(t2, e2, r2 || 0, n2 || t2.length - 1, i2 || rs); } - function uo(t2, e2, r2) { + function es(t2, e2, r2) { var n2 = t2[e2]; t2[e2] = t2[r2], t2[r2] = n2; } - function co(t2, e2) { + function rs(t2, e2) { return t2 < e2 ? -1 : t2 > e2 ? 1 : 0; } - function ho(t2, e2) { - const r2 = t2.length; + function ns(t2, e2) { + var r2 = t2.length; if (r2 <= 1) return [t2]; - const n2 = []; - let i2, a2; - for (let e3 = 0; e3 < r2; e3++) { - const r3 = m(t2[e3]); - 0 !== r3 && (t2[e3].area = Math.abs(r3), void 0 === a2 && (a2 = r3 < 0), a2 === r3 < 0 ? (i2 && n2.push(i2), i2 = [t2[e3]]) : i2.push(t2[e3])); - } - if (i2 && n2.push(i2), e2 > 1) - for (let t3 = 0; t3 < n2.length; t3++) - n2[t3].length <= e2 || (oo(n2[t3], e2, 1, n2[t3].length - 1, po), n2[t3] = n2[t3].slice(0, e2)); - return n2; + for (var n2, i2, a2 = [], o2 = 0; o2 < r2; o2++) { + var s2 = k(t2[o2]); + 0 !== s2 && (t2[o2].area = Math.abs(s2), void 0 === i2 && (i2 = s2 < 0), i2 === s2 < 0 ? (n2 && a2.push(n2), n2 = [t2[o2]]) : n2.push(t2[o2])); + } + if (n2 && a2.push(n2), e2 > 1) + for (var u2 = 0; u2 < a2.length; u2++) + a2[u2].length <= e2 || (ts(a2[u2], e2, 1, a2[u2].length - 1, is), a2[u2] = a2[u2].slice(0, e2)); + return a2; } - function po(t2, e2) { + function is(t2, e2) { return e2.area - t2.area; } - function fo(t2, e2, r2) { - const n2 = r2.patternDependencies; - let i2 = false; - for (const r3 of e2) { - const e3 = r3.paint.get(`${t2}-pattern`); - e3.isConstant() || (i2 = true); - const a2 = e3.constantOr(null); - a2 && (i2 = true, n2[a2.to] = true, n2[a2.from] = true); + function as(t2, e2, r2) { + for (var n2 = r2.patternDependencies, i2 = false, a2 = 0, o2 = e2; a2 < o2.length; a2 += 1) { + var s2 = o2[a2].paint.get(t2 + "-pattern"); + s2.isConstant() || (i2 = true); + var u2 = s2.constantOr(null); + u2 && (i2 = true, n2[u2.to] = true, n2[u2.from] = true); } return i2; } - function yo(t2, e2, r2, n2, i2) { - const a2 = i2.patternDependencies; - for (const s2 of e2) { - const e3 = s2.paint.get(`${t2}-pattern`).value; - if ("constant" !== e3.kind) { - let t3 = e3.evaluate({ zoom: n2 - 1 }, r2, {}, i2.availableImages), o2 = e3.evaluate({ zoom: n2 }, r2, {}, i2.availableImages), l2 = e3.evaluate({ zoom: n2 + 1 }, r2, {}, i2.availableImages); - t3 = t3 && t3.name ? t3.name : t3, o2 = o2 && o2.name ? o2.name : o2, l2 = l2 && l2.name ? l2.name : l2, a2[t3] = true, a2[o2] = true, a2[l2] = true, r2.patterns[s2.id] = { min: t3, mid: o2, max: l2 }; + function os(t2, e2, r2, n2, i2) { + for (var a2 = i2.patternDependencies, o2 = 0, s2 = e2; o2 < s2.length; o2 += 1) { + var u2 = s2[o2], l2 = u2.paint.get(t2 + "-pattern").value; + if ("constant" !== l2.kind) { + var p3 = l2.evaluate({ zoom: n2 - 1 }, r2, {}, i2.availableImages), c3 = l2.evaluate({ zoom: n2 }, r2, {}, i2.availableImages), h3 = l2.evaluate({ zoom: n2 + 1 }, r2, {}, i2.availableImages); + c3 = c3 && c3.name ? c3.name : c3, h3 = h3 && h3.name ? h3.name : h3, a2[p3 = p3 && p3.name ? p3.name : p3] = true, a2[c3] = true, a2[h3] = true, r2.patterns[u2.id] = { min: p3, mid: c3, max: h3 }; } } return r2; } - Fs.exports = Ts, Fs.exports.default = Ts, Ts.deviation = function(t2, e2, r2, n2) { - var i2 = e2 && e2.length, a2 = Math.abs(so(t2, 0, i2 ? e2[0] * r2 : t2.length, r2)); + Co.deviation = function(t2, e2, r2, n2) { + var i2 = e2 && e2.length, a2 = Math.abs(Qo(t2, 0, i2 ? e2[0] * r2 : t2.length, r2)); if (i2) - for (var s2 = 0, o2 = e2.length; s2 < o2; s2++) - a2 -= Math.abs(so(t2, e2[s2] * r2, s2 < o2 - 1 ? e2[s2 + 1] * r2 : t2.length, r2)); - var l2 = 0; - for (s2 = 0; s2 < n2.length; s2 += 3) { - var u2 = n2[s2] * r2, c3 = n2[s2 + 1] * r2, h3 = n2[s2 + 2] * r2; - l2 += Math.abs((t2[u2] - t2[h3]) * (t2[c3 + 1] - t2[u2 + 1]) - (t2[u2] - t2[c3]) * (t2[h3 + 1] - t2[u2 + 1])); - } - return 0 === a2 && 0 === l2 ? 0 : Math.abs((l2 - a2) / a2); - }, Ts.flatten = function(t2) { + for (var o2 = 0, s2 = e2.length; o2 < s2; o2++) + a2 -= Math.abs(Qo(t2, e2[o2] * r2, o2 < s2 - 1 ? e2[o2 + 1] * r2 : t2.length, r2)); + var u2 = 0; + for (o2 = 0; o2 < n2.length; o2 += 3) { + var l2 = n2[o2] * r2, p3 = n2[o2 + 1] * r2, c3 = n2[o2 + 2] * r2; + u2 += Math.abs((t2[l2] - t2[c3]) * (t2[p3 + 1] - t2[l2 + 1]) - (t2[l2] - t2[p3]) * (t2[c3 + 1] - t2[l2 + 1])); + } + return 0 === a2 && 0 === u2 ? 0 : Math.abs((u2 - a2) / a2); + }, Co.flatten = function(t2) { for (var e2 = t2[0][0].length, r2 = { vertices: [], holes: [], dimensions: e2 }, n2 = 0, i2 = 0; i2 < t2.length; i2++) { for (var a2 = 0; a2 < t2[i2].length; a2++) - for (var s2 = 0; s2 < e2; s2++) - r2.vertices.push(t2[i2][a2][s2]); + for (var o2 = 0; o2 < e2; o2++) + r2.vertices.push(t2[i2][a2][o2]); i2 > 0 && r2.holes.push(n2 += t2[i2 - 1].length); } return r2; + }, Io.default = zo; + var ss = function(t2) { + this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map(function(t3) { + return t3.id; + }), this.index = t2.index, this.hasPattern = false, this.patternFeatures = [], this.layoutVertexArray = new Ci(), this.indexArray = new ji(), this.indexArray2 = new Xi(), this.programConfigurations = new Va(t2.layers, t2.zoom), this.segments = new sa(), this.segments2 = new sa(), this.stateDependentLayerIds = this.layers.filter(function(t3) { + return t3.isStateDependent(); + }).map(function(t3) { + return t3.id; + }); }; - class mo { - constructor(t2) { - this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map((t3) => t3.id), this.index = t2.index, this.hasPattern = false, this.patternFeatures = [], this.layoutVertexArray = new ea(), this.indexArray = new ha(), this.indexArray2 = new pa(), this.programConfigurations = new Ra(t2.layers, t2.zoom), this.segments = new ya(), this.segments2 = new ya(), this.stateDependentLayerIds = this.layers.filter((t3) => t3.isStateDependent()).map((t3) => t3.id); - } - populate(t2, e2, r2) { - this.hasPattern = fo("fill", this.layers, e2); - const n2 = this.layers[0].layout.get("fill-sort-key"), i2 = !n2.isConstant(), a2 = []; - for (const { feature: s2, id: o2, index: l2, sourceLayerIndex: u2 } of t2) { - const t3 = this.layers[0]._featureFilter.needGeometry, c3 = Ka(s2, t3); - if (!this.layers[0]._featureFilter.filter(new Qn(this.zoom), c3, r2)) - continue; - const h3 = i2 ? n2.evaluate(c3, {}, r2, e2.availableImages) : void 0, p3 = { id: o2, properties: s2.properties, type: s2.type, sourceLayerIndex: u2, index: l2, geometry: t3 ? c3.geometry : Za(s2), patterns: {}, sortKey: h3 }; - a2.push(p3); - } - i2 && a2.sort((t3, e3) => t3.sortKey - e3.sortKey); - for (const n3 of a2) { - const { geometry: i3, index: a3, sourceLayerIndex: s2 } = n3; - if (this.hasPattern) { - const t3 = yo("fill", this.layers, n3, this.zoom, e2); - this.patternFeatures.push(t3); - } else - this.addFeature(n3, i3, a3, r2, {}); - e2.featureIndex.insert(t2[a3].feature, i3, a3, s2, this.index); + ss.prototype.populate = function(t2, e2, r2) { + this.hasPattern = as("fill", this.layers, e2); + for (var n2 = this.layers[0].layout.get("fill-sort-key"), i2 = [], a2 = 0, o2 = t2; a2 < o2.length; a2 += 1) { + var s2 = o2[a2], u2 = s2.feature, l2 = s2.id, p3 = s2.index, c3 = s2.sourceLayerIndex, h3 = this.layers[0]._featureFilter.needGeometry, f2 = Ua(u2, h3); + if (this.layers[0]._featureFilter.filter(new si(this.zoom), f2, r2)) { + var y3 = n2 ? n2.evaluate(f2, {}, r2, e2.availableImages) : void 0, d2 = { id: l2, properties: u2.properties, type: u2.type, sourceLayerIndex: c3, index: p3, geometry: h3 ? f2.geometry : Ra(u2), patterns: {}, sortKey: y3 }; + i2.push(d2); } } - update(t2, e2, r2) { - this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t2, e2, this.stateDependentLayers, r2); - } - addFeatures(t2, e2, r2) { - for (const t3 of this.patternFeatures) - this.addFeature(t3, t3.geometry, t3.index, e2, r2); - } - isEmpty() { - return 0 === this.layoutVertexArray.length; - } - uploadPending() { - return !this.uploaded || this.programConfigurations.needsUpload; - } - upload(t2) { - this.uploaded || (this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, Es), this.indexBuffer = t2.createIndexBuffer(this.indexArray), this.indexBuffer2 = t2.createIndexBuffer(this.indexArray2)), this.programConfigurations.upload(t2), this.uploaded = true; - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.indexBuffer2.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.segments2.destroy()); - } - addFeature(t2, e2, r2, n2, i2) { - for (const t3 of ho(e2, 500)) { - let e3 = 0; - for (const r4 of t3) - e3 += r4.length; - const r3 = this.segments.prepareSegment(e3, this.layoutVertexArray, this.indexArray), n3 = r3.vertexLength, i3 = [], a2 = []; - for (const e4 of t3) { - if (0 === e4.length) - continue; - e4 !== t3[0] && a2.push(i3.length / 2); - const r4 = this.segments2.prepareSegment(e4.length, this.layoutVertexArray, this.indexArray2), n4 = r4.vertexLength; - this.layoutVertexArray.emplaceBack(e4[0].x, e4[0].y), this.indexArray2.emplaceBack(n4 + e4.length - 1, n4), i3.push(e4[0].x), i3.push(e4[0].y); - for (let t4 = 1; t4 < e4.length; t4++) - this.layoutVertexArray.emplaceBack(e4[t4].x, e4[t4].y), this.indexArray2.emplaceBack(n4 + t4 - 1, n4 + t4), i3.push(e4[t4].x), i3.push(e4[t4].y); - r4.vertexLength += e4.length, r4.primitiveLength += e4.length; + n2 && i2.sort(function(t3, e3) { + return t3.sortKey - e3.sortKey; + }); + for (var m2 = 0, v3 = i2; m2 < v3.length; m2 += 1) { + var g2 = v3[m2], x2 = g2.geometry, b2 = g2.index, w2 = g2.sourceLayerIndex; + if (this.hasPattern) { + var _2 = os("fill", this.layers, g2, this.zoom, e2); + this.patternFeatures.push(_2); + } else + this.addFeature(g2, x2, b2, r2, {}); + e2.featureIndex.insert(t2[b2].feature, x2, b2, w2, this.index); + } + }, ss.prototype.update = function(t2, e2, r2) { + this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t2, e2, this.stateDependentLayers, r2); + }, ss.prototype.addFeatures = function(t2, e2, r2) { + for (var n2 = 0, i2 = this.patternFeatures; n2 < i2.length; n2 += 1) { + var a2 = i2[n2]; + this.addFeature(a2, a2.geometry, a2.index, e2, r2); + } + }, ss.prototype.isEmpty = function() { + return 0 === this.layoutVertexArray.length; + }, ss.prototype.uploadPending = function() { + return !this.uploaded || this.programConfigurations.needsUpload; + }, ss.prototype.upload = function(t2) { + this.uploaded || (this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, ko), this.indexBuffer = t2.createIndexBuffer(this.indexArray), this.indexBuffer2 = t2.createIndexBuffer(this.indexArray2)), this.programConfigurations.upload(t2), this.uploaded = true; + }, ss.prototype.destroy = function() { + this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.indexBuffer2.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.segments2.destroy()); + }, ss.prototype.addFeature = function(t2, e2, r2, n2, i2) { + for (var a2 = 0, o2 = ns(e2, 500); a2 < o2.length; a2 += 1) { + for (var s2 = o2[a2], u2 = 0, l2 = 0, p3 = s2; l2 < p3.length; l2 += 1) + u2 += p3[l2].length; + for (var c3 = this.segments.prepareSegment(u2, this.layoutVertexArray, this.indexArray), h3 = c3.vertexLength, f2 = [], y3 = [], d2 = 0, m2 = s2; d2 < m2.length; d2 += 1) { + var v3 = m2[d2]; + if (0 !== v3.length) { + v3 !== s2[0] && y3.push(f2.length / 2); + var g2 = this.segments2.prepareSegment(v3.length, this.layoutVertexArray, this.indexArray2), x2 = g2.vertexLength; + this.layoutVertexArray.emplaceBack(v3[0].x, v3[0].y), this.indexArray2.emplaceBack(x2 + v3.length - 1, x2), f2.push(v3[0].x), f2.push(v3[0].y); + for (var b2 = 1; b2 < v3.length; b2++) + this.layoutVertexArray.emplaceBack(v3[b2].x, v3[b2].y), this.indexArray2.emplaceBack(x2 + b2 - 1, x2 + b2), f2.push(v3[b2].x), f2.push(v3[b2].y); + g2.vertexLength += v3.length, g2.primitiveLength += v3.length; } - const s2 = Fs.exports(i3, a2); - for (let t4 = 0; t4 < s2.length; t4 += 3) - this.indexArray.emplaceBack(n3 + s2[t4], n3 + s2[t4 + 1], n3 + s2[t4 + 2]); - r3.vertexLength += e3, r3.primitiveLength += s2.length / 3; } - this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t2, r2, i2, n2); - } - } - Mn("FillBucket", mo, { omit: ["layers", "patternFeatures"] }); - const go = new fi({ "fill-sort-key": new ui(nt.layout_fill["fill-sort-key"]) }); - var xo = { paint: new fi({ "fill-antialias": new li(nt.paint_fill["fill-antialias"]), "fill-opacity": new ui(nt.paint_fill["fill-opacity"]), "fill-color": new ui(nt.paint_fill["fill-color"]), "fill-outline-color": new ui(nt.paint_fill["fill-outline-color"]), "fill-translate": new li(nt.paint_fill["fill-translate"]), "fill-translate-anchor": new li(nt.paint_fill["fill-translate-anchor"]), "fill-pattern": new ci(nt.paint_fill["fill-pattern"]) }), layout: go }; - const vo = vi([{ name: "a_pos", components: 2, type: "Int16" }, { name: "a_normal_ed", components: 4, type: "Int16" }], 4), bo = vi([{ name: "a_centroid", components: 2, type: "Int16" }], 4), { members: wo } = vo; - var _o = {}, Ao = S, ko = So; - function So(t2, e2, r2, n2, i2) { - this.properties = {}, this.extent = r2, this.type = 0, this._pbf = t2, this._geometry = -1, this._keys = n2, this._values = i2, t2.readFields(Io, this, e2); + for (var w2 = Io(f2, y3), _2 = 0; _2 < w2.length; _2 += 3) + this.indexArray.emplaceBack(h3 + w2[_2], h3 + w2[_2 + 1], h3 + w2[_2 + 2]); + c3.vertexLength += u2, c3.primitiveLength += w2.length / 3; + } + this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t2, r2, i2, n2); + }, On("FillBucket", ss, { omit: ["layers", "patternFeatures"] }); + var us = new wi({ "fill-sort-key": new vi(Et.layout_fill["fill-sort-key"]) }), ls = { paint: new wi({ "fill-antialias": new mi(Et.paint_fill["fill-antialias"]), "fill-opacity": new vi(Et.paint_fill["fill-opacity"]), "fill-color": new vi(Et.paint_fill["fill-color"]), "fill-outline-color": new vi(Et.paint_fill["fill-outline-color"]), "fill-translate": new mi(Et.paint_fill["fill-translate"]), "fill-translate-anchor": new mi(Et.paint_fill["fill-translate-anchor"]), "fill-pattern": new gi(Et.paint_fill["fill-pattern"]) }), layout: us }, ps = function(t2) { + function e2(e3) { + t2.call(this, e3, ls); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.recalculate = function(e3, r2) { + t2.prototype.recalculate.call(this, e3, r2); + var n2 = this.paint._values["fill-outline-color"]; + "constant" === n2.value.kind && void 0 === n2.value.value && (this.paint._values["fill-outline-color"] = this.paint._values["fill-color"]); + }, e2.prototype.createBucket = function(t3) { + return new ss(t3); + }, e2.prototype.queryRadius = function() { + return eo(this.paint.get("fill-translate")); + }, e2.prototype.queryIntersectsFeature = function(t3, e3, r2, n2, i2, a2, o2) { + return Ga(ro(t3, this.paint.get("fill-translate"), this.paint.get("fill-translate-anchor"), a2.angle, o2), n2); + }, e2.prototype.isTileClipped = function() { + return true; + }, e2; + }(_i), cs = Ii([{ name: "a_pos", components: 2, type: "Int16" }, { name: "a_normal_ed", components: 4, type: "Int16" }], 4).members, hs = fs; + function fs(t2, e2, r2, n2, i2) { + this.properties = {}, this.extent = r2, this.type = 0, this._pbf = t2, this._geometry = -1, this._keys = n2, this._values = i2, t2.readFields(ys, this, e2); } - function Io(t2, e2, r2) { + function ys(t2, e2, r2) { 1 == t2 ? e2.id = r2.readVarint() : 2 == t2 ? function(t3, e3) { for (var r3 = t3.readVarint() + t3.pos; t3.pos < r3; ) { var n2 = e3._keys[t3.readVarint()], i2 = e3._values[t3.readVarint()]; @@ -20588,84 +20883,84 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ } }(r2, e2) : 3 == t2 ? e2.type = r2.readVarint() : 4 == t2 && (e2._geometry = r2.pos); } - function Mo(t2) { - for (var e2, r2, n2 = 0, i2 = 0, a2 = t2.length, s2 = a2 - 1; i2 < a2; s2 = i2++) - n2 += ((r2 = t2[s2]).x - (e2 = t2[i2]).x) * (e2.y + r2.y); + function ds(t2) { + for (var e2, r2, n2 = 0, i2 = 0, a2 = t2.length, o2 = a2 - 1; i2 < a2; o2 = i2++) + n2 += ((r2 = t2[o2]).x - (e2 = t2[i2]).x) * (e2.y + r2.y); return n2; } - So.types = ["Unknown", "Point", "LineString", "Polygon"], So.prototype.loadGeometry = function() { + fs.types = ["Unknown", "Point", "LineString", "Polygon"], fs.prototype.loadGeometry = function() { var t2 = this._pbf; t2.pos = this._geometry; - for (var e2, r2 = t2.readVarint() + t2.pos, n2 = 1, i2 = 0, a2 = 0, s2 = 0, o2 = []; t2.pos < r2; ) { - if (i2 <= 0) { + for (var e2, r2 = t2.readVarint() + t2.pos, n2 = 1, a2 = 0, o2 = 0, s2 = 0, u2 = []; t2.pos < r2; ) { + if (a2 <= 0) { var l2 = t2.readVarint(); - n2 = 7 & l2, i2 = l2 >> 3; + n2 = 7 & l2, a2 = l2 >> 3; } - if (i2--, 1 === n2 || 2 === n2) - a2 += t2.readSVarint(), s2 += t2.readSVarint(), 1 === n2 && (e2 && o2.push(e2), e2 = []), e2.push(new Ao(a2, s2)); + if (a2--, 1 === n2 || 2 === n2) + o2 += t2.readSVarint(), s2 += t2.readSVarint(), 1 === n2 && (e2 && u2.push(e2), e2 = []), e2.push(new i(o2, s2)); else { if (7 !== n2) throw new Error("unknown command " + n2); e2 && e2.push(e2[0].clone()); } } - return e2 && o2.push(e2), o2; - }, So.prototype.bbox = function() { + return e2 && u2.push(e2), u2; + }, fs.prototype.bbox = function() { var t2 = this._pbf; t2.pos = this._geometry; - for (var e2 = t2.readVarint() + t2.pos, r2 = 1, n2 = 0, i2 = 0, a2 = 0, s2 = 1 / 0, o2 = -1 / 0, l2 = 1 / 0, u2 = -1 / 0; t2.pos < e2; ) { + for (var e2 = t2.readVarint() + t2.pos, r2 = 1, n2 = 0, i2 = 0, a2 = 0, o2 = 1 / 0, s2 = -1 / 0, u2 = 1 / 0, l2 = -1 / 0; t2.pos < e2; ) { if (n2 <= 0) { - var c3 = t2.readVarint(); - r2 = 7 & c3, n2 = c3 >> 3; + var p3 = t2.readVarint(); + r2 = 7 & p3, n2 = p3 >> 3; } if (n2--, 1 === r2 || 2 === r2) - (i2 += t2.readSVarint()) < s2 && (s2 = i2), i2 > o2 && (o2 = i2), (a2 += t2.readSVarint()) < l2 && (l2 = a2), a2 > u2 && (u2 = a2); + (i2 += t2.readSVarint()) < o2 && (o2 = i2), i2 > s2 && (s2 = i2), (a2 += t2.readSVarint()) < u2 && (u2 = a2), a2 > l2 && (l2 = a2); else if (7 !== r2) throw new Error("unknown command " + r2); } - return [s2, l2, o2, u2]; - }, So.prototype.toGeoJSON = function(t2, e2, r2) { - var n2, i2, a2 = this.extent * Math.pow(2, r2), s2 = this.extent * t2, o2 = this.extent * e2, l2 = this.loadGeometry(), u2 = So.types[this.type]; - function c3(t3) { + return [o2, u2, s2, l2]; + }, fs.prototype.toGeoJSON = function(t2, e2, r2) { + var n2, i2, a2 = this.extent * Math.pow(2, r2), o2 = this.extent * t2, s2 = this.extent * e2, u2 = this.loadGeometry(), l2 = fs.types[this.type]; + function p3(t3) { for (var e3 = 0; e3 < t3.length; e3++) { var r3 = t3[e3]; - t3[e3] = [360 * (r3.x + s2) / a2 - 180, 360 / Math.PI * Math.atan(Math.exp((180 - 360 * (r3.y + o2) / a2) * Math.PI / 180)) - 90]; + t3[e3] = [360 * (r3.x + o2) / a2 - 180, 360 / Math.PI * Math.atan(Math.exp((180 - 360 * (r3.y + s2) / a2) * Math.PI / 180)) - 90]; } } switch (this.type) { case 1: - var h3 = []; - for (n2 = 0; n2 < l2.length; n2++) - h3[n2] = l2[n2][0]; - c3(l2 = h3); + var c3 = []; + for (n2 = 0; n2 < u2.length; n2++) + c3[n2] = u2[n2][0]; + p3(u2 = c3); break; case 2: - for (n2 = 0; n2 < l2.length; n2++) - c3(l2[n2]); + for (n2 = 0; n2 < u2.length; n2++) + p3(u2[n2]); break; case 3: - for (l2 = function(t3) { + for (u2 = function(t3) { var e3 = t3.length; if (e3 <= 1) return [t3]; for (var r3, n3, i3 = [], a3 = 0; a3 < e3; a3++) { - var s3 = Mo(t3[a3]); - 0 !== s3 && (void 0 === n3 && (n3 = s3 < 0), n3 === s3 < 0 ? (r3 && i3.push(r3), r3 = [t3[a3]]) : r3.push(t3[a3])); + var o3 = ds(t3[a3]); + 0 !== o3 && (void 0 === n3 && (n3 = o3 < 0), n3 === o3 < 0 ? (r3 && i3.push(r3), r3 = [t3[a3]]) : r3.push(t3[a3])); } return r3 && i3.push(r3), i3; - }(l2), n2 = 0; n2 < l2.length; n2++) - for (i2 = 0; i2 < l2[n2].length; i2++) - c3(l2[n2][i2]); + }(u2), n2 = 0; n2 < u2.length; n2++) + for (i2 = 0; i2 < u2[n2].length; i2++) + p3(u2[n2][i2]); } - 1 === l2.length ? l2 = l2[0] : u2 = "Multi" + u2; - var p3 = { type: "Feature", geometry: { type: u2, coordinates: l2 }, properties: this.properties }; - return "id" in this && (p3.id = this.id), p3; + 1 === u2.length ? u2 = u2[0] : l2 = "Multi" + l2; + var h3 = { type: "Feature", geometry: { type: l2, coordinates: u2 }, properties: this.properties }; + return "id" in this && (h3.id = this.id), h3; }; - var zo = ko, Bo = Co; - function Co(t2, e2) { - this.version = 1, this.name = null, this.extent = 4096, this.length = 0, this._pbf = t2, this._keys = [], this._values = [], this._features = [], t2.readFields(Po, this, e2), this.length = this._features.length; + var ms = vs; + function vs(t2, e2) { + this.version = 1, this.name = null, this.extent = 4096, this.length = 0, this._pbf = t2, this._keys = [], this._values = [], this._features = [], t2.readFields(gs, this, e2), this.length = this._features.length; } - function Po(t2, e2, r2) { + function gs(t2, e2, r2) { 15 === t2 ? e2.version = r2.readVarint() : 1 === t2 ? e2.name = r2.readString() : 5 === t2 ? e2.extent = r2.readVarint() : 2 === t2 ? e2._features.push(r2.pos) : 3 === t2 ? e2._keys.push(r2.readString()) : 4 === t2 && e2._values.push(function(t3) { for (var e3 = null, r3 = t3.readVarint() + t3.pos; t3.pos < r3; ) { var n2 = t3.readVarint() >> 3; @@ -20674,443 +20969,494 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ return e3; }(r2)); } - Co.prototype.feature = function(t2) { + function xs(t2, e2, r2) { + if (3 === t2) { + var n2 = new ms(r2, r2.readVarint() + r2.pos); + n2.length && (e2[n2.name] = n2); + } + } + vs.prototype.feature = function(t2) { if (t2 < 0 || t2 >= this._features.length) throw new Error("feature index out of bounds"); this._pbf.pos = this._features[t2]; var e2 = this._pbf.readVarint() + this._pbf.pos; - return new zo(this._pbf, e2, this.extent, this._keys, this._values); + return new hs(this._pbf, e2, this.extent, this._keys, this._values); }; - var Vo = Bo; - function Eo(t2, e2, r2) { - if (3 === t2) { - var n2 = new Vo(r2, r2.readVarint() + r2.pos); - n2.length && (e2[n2.name] = n2); - } - } - _o.VectorTile = function(t2, e2) { - this.layers = t2.readFields(Eo, {}, e2); - }, _o.VectorTileFeature = ko, _o.VectorTileLayer = Bo; - const Fo = _o.VectorTileFeature.types, To = Math.pow(2, 13); - function Lo(t2, e2, r2, n2, i2, a2, s2, o2) { - t2.emplaceBack(e2, r2, 2 * Math.floor(n2 * To) + s2, i2 * To * 2, a2 * To * 2, Math.round(o2)); - } - class Do { - constructor(t2) { - this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map((t3) => t3.id), this.index = t2.index, this.hasPattern = false, this.layoutVertexArray = new ra(), this.centroidVertexArray = new Qi(), this.indexArray = new ha(), this.programConfigurations = new Ra(t2.layers, t2.zoom), this.segments = new ya(), this.stateDependentLayerIds = this.layers.filter((t3) => t3.isStateDependent()).map((t3) => t3.id); - } - populate(t2, e2, r2) { - this.features = [], this.hasPattern = fo("fill-extrusion", this.layers, e2); - for (const { feature: n2, id: i2, index: a2, sourceLayerIndex: s2 } of t2) { - const t3 = this.layers[0]._featureFilter.needGeometry, o2 = Ka(n2, t3); - if (!this.layers[0]._featureFilter.filter(new Qn(this.zoom), o2, r2)) - continue; - const l2 = { id: i2, sourceLayerIndex: s2, index: a2, geometry: t3 ? o2.geometry : Za(n2), properties: n2.properties, type: n2.type, patterns: {} }; - this.hasPattern ? this.features.push(yo("fill-extrusion", this.layers, l2, this.zoom, e2)) : this.addFeature(l2, l2.geometry, a2, r2, {}), e2.featureIndex.insert(n2, l2.geometry, a2, s2, this.index, true); + var bs = { VectorTile: function(t2, e2) { + this.layers = t2.readFields(xs, {}, e2); + }, VectorTileFeature: hs, VectorTileLayer: ms }, ws = bs.VectorTileFeature.types, _s = Math.pow(2, 13); + function As(t2, e2, r2, n2, i2, a2, o2, s2) { + t2.emplaceBack(e2, r2, 2 * Math.floor(n2 * _s) + o2, i2 * _s * 2, a2 * _s * 2, Math.round(s2)); + } + var Ss = function(t2) { + this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map(function(t3) { + return t3.id; + }), this.index = t2.index, this.hasPattern = false, this.layoutVertexArray = new Pi(), this.indexArray = new ji(), this.programConfigurations = new Va(t2.layers, t2.zoom), this.segments = new sa(), this.stateDependentLayerIds = this.layers.filter(function(t3) { + return t3.isStateDependent(); + }).map(function(t3) { + return t3.id; + }); + }; + function ks(t2, e2) { + return t2.x === e2.x && (t2.x < 0 || t2.x > 8192) || t2.y === e2.y && (t2.y < 0 || t2.y > 8192); + } + Ss.prototype.populate = function(t2, e2, r2) { + this.features = [], this.hasPattern = as("fill-extrusion", this.layers, e2); + for (var n2 = 0, i2 = t2; n2 < i2.length; n2 += 1) { + var a2 = i2[n2], o2 = a2.feature, s2 = a2.id, u2 = a2.index, l2 = a2.sourceLayerIndex, p3 = this.layers[0]._featureFilter.needGeometry, c3 = Ua(o2, p3); + if (this.layers[0]._featureFilter.filter(new si(this.zoom), c3, r2)) { + var h3 = { id: s2, sourceLayerIndex: l2, index: u2, geometry: p3 ? c3.geometry : Ra(o2), properties: o2.properties, type: o2.type, patterns: {} }; + this.hasPattern ? this.features.push(os("fill-extrusion", this.layers, h3, this.zoom, e2)) : this.addFeature(h3, h3.geometry, u2, r2, {}), e2.featureIndex.insert(o2, h3.geometry, u2, l2, this.index, true); + } + } + }, Ss.prototype.addFeatures = function(t2, e2, r2) { + for (var n2 = 0, i2 = this.features; n2 < i2.length; n2 += 1) { + var a2 = i2[n2]; + this.addFeature(a2, a2.geometry, a2.index, e2, r2); + } + }, Ss.prototype.update = function(t2, e2, r2) { + this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t2, e2, this.stateDependentLayers, r2); + }, Ss.prototype.isEmpty = function() { + return 0 === this.layoutVertexArray.length; + }, Ss.prototype.uploadPending = function() { + return !this.uploaded || this.programConfigurations.needsUpload; + }, Ss.prototype.upload = function(t2) { + this.uploaded || (this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, cs), this.indexBuffer = t2.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t2), this.uploaded = true; + }, Ss.prototype.destroy = function() { + this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy()); + }, Ss.prototype.addFeature = function(t2, e2, r2, n2, i2) { + for (var a2 = 0, o2 = ns(e2, 500); a2 < o2.length; a2 += 1) { + for (var s2 = o2[a2], u2 = 0, l2 = 0, p3 = s2; l2 < p3.length; l2 += 1) + u2 += p3[l2].length; + for (var c3 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray), h3 = 0, f2 = s2; h3 < f2.length; h3 += 1) { + var y3 = f2[h3]; + if (0 !== y3.length && !((B2 = y3).every(function(t3) { + return t3.x < 0; + }) || B2.every(function(t3) { + return t3.x > 8192; + }) || B2.every(function(t3) { + return t3.y < 0; + }) || B2.every(function(t3) { + return t3.y > 8192; + }))) + for (var d2 = 0, m2 = 0; m2 < y3.length; m2++) { + var v3 = y3[m2]; + if (m2 >= 1) { + var g2 = y3[m2 - 1]; + if (!ks(v3, g2)) { + c3.vertexLength + 4 > sa.MAX_VERTEX_ARRAY_LENGTH && (c3 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray)); + var x2 = v3.sub(g2)._perp()._unit(), b2 = g2.dist(v3); + d2 + b2 > 32768 && (d2 = 0), As(this.layoutVertexArray, v3.x, v3.y, x2.x, x2.y, 0, 0, d2), As(this.layoutVertexArray, v3.x, v3.y, x2.x, x2.y, 0, 1, d2), As(this.layoutVertexArray, g2.x, g2.y, x2.x, x2.y, 0, 0, d2 += b2), As(this.layoutVertexArray, g2.x, g2.y, x2.x, x2.y, 0, 1, d2); + var w2 = c3.vertexLength; + this.indexArray.emplaceBack(w2, w2 + 2, w2 + 1), this.indexArray.emplaceBack(w2 + 1, w2 + 2, w2 + 3), c3.vertexLength += 4, c3.primitiveLength += 2; + } + } + } } - } - addFeatures(t2, e2, r2) { - for (const t3 of this.features) { - const { geometry: n2 } = t3; - this.addFeature(t3, n2, t3.index, e2, r2); - } - } - update(t2, e2, r2) { - this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t2, e2, this.stateDependentLayers, r2); - } - isEmpty() { - return 0 === this.layoutVertexArray.length && 0 === this.centroidVertexArray.length; - } - uploadPending() { - return !this.uploaded || this.programConfigurations.needsUpload; - } - upload(t2) { - this.uploaded || (this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, wo), this.centroidVertexBuffer = t2.createVertexBuffer(this.centroidVertexArray, bo.members, true), this.indexBuffer = t2.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t2), this.uploaded = true; - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.centroidVertexBuffer.destroy()); - } - addFeature(t2, e2, r2, n2, i2) { - const a2 = { x: 0, y: 0, vertexCount: 0 }; - for (const r3 of ho(e2, 500)) { - let e3 = 0; - for (const t3 of r3) - e3 += t3.length; - let n3 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray); - for (const t3 of r3) { - if (0 === t3.length) - continue; - if (Ro(t3)) - continue; - let e4 = 0; - for (let r4 = 0; r4 < t3.length; r4++) { - const i4 = t3[r4]; - if (r4 >= 1) { - const s3 = t3[r4 - 1]; - if (!$o(i4, s3)) { - n3.vertexLength + 4 > ya.MAX_VERTEX_ARRAY_LENGTH && (n3 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray)); - const t4 = i4.sub(s3)._perp()._unit(), r5 = s3.dist(i4); - e4 + r5 > 32768 && (e4 = 0), Lo(this.layoutVertexArray, i4.x, i4.y, t4.x, t4.y, 0, 0, e4), Lo(this.layoutVertexArray, i4.x, i4.y, t4.x, t4.y, 0, 1, e4), a2.x += 2 * i4.x, a2.y += 2 * i4.y, a2.vertexCount += 2, e4 += r5, Lo(this.layoutVertexArray, s3.x, s3.y, t4.x, t4.y, 0, 0, e4), Lo(this.layoutVertexArray, s3.x, s3.y, t4.x, t4.y, 0, 1, e4), a2.x += 2 * s3.x, a2.y += 2 * s3.y, a2.vertexCount += 2; - const o3 = n3.vertexLength; - this.indexArray.emplaceBack(o3, o3 + 2, o3 + 1), this.indexArray.emplaceBack(o3 + 1, o3 + 2, o3 + 3), n3.vertexLength += 4, n3.primitiveLength += 2; - } + if (c3.vertexLength + u2 > sa.MAX_VERTEX_ARRAY_LENGTH && (c3 = this.segments.prepareSegment(u2, this.layoutVertexArray, this.indexArray)), "Polygon" === ws[t2.type]) { + for (var _2 = [], A3 = [], S2 = c3.vertexLength, k2 = 0, I3 = s2; k2 < I3.length; k2 += 1) { + var z2 = I3[k2]; + if (0 !== z2.length) { + z2 !== s2[0] && A3.push(_2.length / 2); + for (var C2 = 0; C2 < z2.length; C2++) { + var E2 = z2[C2]; + As(this.layoutVertexArray, E2.x, E2.y, 0, 0, 1, 1, 0), _2.push(E2.x), _2.push(E2.y); } } } - if (n3.vertexLength + e3 > ya.MAX_VERTEX_ARRAY_LENGTH && (n3 = this.segments.prepareSegment(e3, this.layoutVertexArray, this.indexArray)), "Polygon" !== Fo[t2.type]) - continue; - const i3 = [], s2 = [], o2 = n3.vertexLength; - for (const t3 of r3) - if (0 !== t3.length) { - t3 !== r3[0] && s2.push(i3.length / 2); - for (let e4 = 0; e4 < t3.length; e4++) { - const r4 = t3[e4]; - Lo(this.layoutVertexArray, r4.x, r4.y, 0, 0, 1, 1, 0), a2.x += r4.x, a2.y += r4.y, a2.vertexCount += 1, i3.push(r4.x), i3.push(r4.y); - } + for (var P2 = Io(_2, A3), M2 = 0; M2 < P2.length; M2 += 3) + this.indexArray.emplaceBack(S2 + P2[M2], S2 + P2[M2 + 2], S2 + P2[M2 + 1]); + c3.primitiveLength += P2.length / 3, c3.vertexLength += u2; + } + } + var B2; + this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t2, r2, i2, n2); + }, On("FillExtrusionBucket", Ss, { omit: ["layers", "features"] }); + var Is = { paint: new wi({ "fill-extrusion-opacity": new mi(Et["paint_fill-extrusion"]["fill-extrusion-opacity"]), "fill-extrusion-color": new vi(Et["paint_fill-extrusion"]["fill-extrusion-color"]), "fill-extrusion-translate": new mi(Et["paint_fill-extrusion"]["fill-extrusion-translate"]), "fill-extrusion-translate-anchor": new mi(Et["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]), "fill-extrusion-pattern": new gi(Et["paint_fill-extrusion"]["fill-extrusion-pattern"]), "fill-extrusion-height": new vi(Et["paint_fill-extrusion"]["fill-extrusion-height"]), "fill-extrusion-base": new vi(Et["paint_fill-extrusion"]["fill-extrusion-base"]), "fill-extrusion-vertical-gradient": new mi(Et["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"]) }) }, zs = function(t2) { + function e2(e3) { + t2.call(this, e3, Is); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.createBucket = function(t3) { + return new Ss(t3); + }, e2.prototype.queryRadius = function() { + return eo(this.paint.get("fill-extrusion-translate")); + }, e2.prototype.is3D = function() { + return true; + }, e2.prototype.queryIntersectsFeature = function(t3, e3, r2, n2, a2, o2, s2, u2) { + var l2 = ro(t3, this.paint.get("fill-extrusion-translate"), this.paint.get("fill-extrusion-translate-anchor"), o2.angle, s2), p3 = this.paint.get("fill-extrusion-height").evaluate(e3, r2), c3 = this.paint.get("fill-extrusion-base").evaluate(e3, r2), h3 = function(t4, e4, r3, n3) { + for (var a3 = [], o3 = 0, s3 = t4; o3 < s3.length; o3 += 1) { + var u3 = s3[o3], l3 = [u3.x, u3.y, 0, 1]; + po(l3, l3, e4), a3.push(new i(l3[0] / l3[3], l3[1] / l3[3])); + } + return a3; + }(l2, u2), f2 = function(t4, e4, r3, n3) { + for (var a3 = [], o3 = [], s3 = n3[8] * e4, u3 = n3[9] * e4, l3 = n3[10] * e4, p4 = n3[11] * e4, c4 = n3[8] * r3, h4 = n3[9] * r3, f3 = n3[10] * r3, y3 = n3[11] * r3, d2 = 0, m2 = t4; d2 < m2.length; d2 += 1) { + for (var v3 = [], g2 = [], x2 = 0, b2 = m2[d2]; x2 < b2.length; x2 += 1) { + var w2 = b2[x2], _2 = w2.x, A3 = w2.y, S2 = n3[0] * _2 + n3[4] * A3 + n3[12], k2 = n3[1] * _2 + n3[5] * A3 + n3[13], I3 = n3[2] * _2 + n3[6] * A3 + n3[14], z2 = n3[3] * _2 + n3[7] * A3 + n3[15], C2 = I3 + l3, E2 = z2 + p4, P2 = S2 + c4, M2 = k2 + h4, B2 = I3 + f3, T2 = z2 + y3, V3 = new i((S2 + s3) / E2, (k2 + u3) / E2); + V3.z = C2 / E2, v3.push(V3); + var F2 = new i(P2 / T2, M2 / T2); + F2.z = B2 / T2, g2.push(F2); } - const l2 = Fs.exports(i3, s2); - for (let t3 = 0; t3 < l2.length; t3 += 3) - this.indexArray.emplaceBack(o2 + l2[t3], o2 + l2[t3 + 2], o2 + l2[t3 + 1]); - n3.primitiveLength += l2.length / 3, n3.vertexLength += e3; - } - for (let t3 = 0; t3 < a2.vertexCount; t3++) - this.centroidVertexArray.emplaceBack(Math.floor(a2.x / a2.vertexCount), Math.floor(a2.y / a2.vertexCount)); - this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t2, r2, i2, n2); - } - } - function $o(t2, e2) { - return t2.x === e2.x && (t2.x < 0 || t2.x > qa) || t2.y === e2.y && (t2.y < 0 || t2.y > qa); - } - function Ro(t2) { - return t2.every((t3) => t3.x < 0) || t2.every((t3) => t3.x > qa) || t2.every((t3) => t3.y < 0) || t2.every((t3) => t3.y > qa); - } - Mn("FillExtrusionBucket", Do, { omit: ["layers", "features"] }); - var Oo = { paint: new fi({ "fill-extrusion-opacity": new li(nt["paint_fill-extrusion"]["fill-extrusion-opacity"]), "fill-extrusion-color": new ui(nt["paint_fill-extrusion"]["fill-extrusion-color"]), "fill-extrusion-translate": new li(nt["paint_fill-extrusion"]["fill-extrusion-translate"]), "fill-extrusion-translate-anchor": new li(nt["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]), "fill-extrusion-pattern": new ci(nt["paint_fill-extrusion"]["fill-extrusion-pattern"]), "fill-extrusion-height": new ui(nt["paint_fill-extrusion"]["fill-extrusion-height"]), "fill-extrusion-base": new ui(nt["paint_fill-extrusion"]["fill-extrusion-base"]), "fill-extrusion-vertical-gradient": new li(nt["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"]) }) }; - function Uo(t2, e2) { + a3.push(v3), o3.push(g2); + } + return [a3, o3]; + }(n2, c3, p3, u2); + return function(t4, e4, r3) { + var n3 = 1 / 0; + Ga(r3, e4) && (n3 = Es(r3, e4[0])); + for (var i2 = 0; i2 < e4.length; i2++) + for (var a3 = e4[i2], o3 = t4[i2], s3 = 0; s3 < a3.length - 1; s3++) { + var u3 = a3[s3], l3 = [u3, a3[s3 + 1], o3[s3 + 1], o3[s3], u3]; + Na(r3, l3) && (n3 = Math.min(n3, Es(r3, l3))); + } + return n3 !== 1 / 0 && n3; + }(f2[0], f2[1], h3); + }, e2; + }(_i); + function Cs(t2, e2) { return t2.x * e2.x + t2.y * e2.y; } - function qo(t2, e2) { + function Es(t2, e2) { if (1 === t2.length) { - let r2 = 0; - const n2 = e2[r2++]; - let i2; - for (; !i2 || n2.equals(i2); ) - if (i2 = e2[r2++], !i2) + for (var r2, n2 = 0, i2 = e2[n2++]; !r2 || i2.equals(r2); ) + if (!(r2 = e2[n2++])) return 1 / 0; - for (; r2 < e2.length; r2++) { - const a2 = e2[r2], s2 = t2[0], o2 = i2.sub(n2), l2 = a2.sub(n2), u2 = s2.sub(n2), c3 = Uo(o2, o2), h3 = Uo(o2, l2), p3 = Uo(l2, l2), f2 = Uo(u2, o2), d2 = Uo(u2, l2), y3 = c3 * p3 - h3 * h3, m2 = (p3 * f2 - h3 * d2) / y3, g2 = (c3 * d2 - h3 * f2) / y3, x2 = n2.z * (1 - m2 - g2) + i2.z * m2 + a2.z * g2; - if (isFinite(x2)) - return x2; + for (; n2 < e2.length; n2++) { + var a2 = e2[n2], o2 = t2[0], s2 = r2.sub(i2), u2 = a2.sub(i2), l2 = o2.sub(i2), p3 = Cs(s2, s2), c3 = Cs(s2, u2), h3 = Cs(u2, u2), f2 = Cs(l2, s2), y3 = Cs(l2, u2), d2 = p3 * h3 - c3 * c3, m2 = (h3 * f2 - c3 * y3) / d2, v3 = (p3 * y3 - c3 * f2) / d2, g2 = i2.z * (1 - m2 - v3) + r2.z * m2 + a2.z * v3; + if (isFinite(g2)) + return g2; } return 1 / 0; } - { - let t3 = 1 / 0; - for (const r2 of e2) - t3 = Math.min(t3, r2.z); - return t3; - } - } - const jo = vi([{ name: "a_pos_normal", components: 2, type: "Int16" }, { name: "a_data", components: 4, type: "Uint8" }], 4), { members: No } = jo, Zo = vi([{ name: "a_uv_x", components: 1, type: "Float32" }, { name: "a_split_index", components: 1, type: "Float32" }]), { members: Ko } = Zo, Go = _o.VectorTileFeature.types, Jo = Math.cos(Math.PI / 180 * 37.5), Xo = Math.pow(2, 14) / 0.5; - class Yo { - constructor(t2) { - this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map((t3) => t3.id), this.index = t2.index, this.hasPattern = false, this.patternFeatures = [], this.lineClipsArray = [], this.gradients = {}, this.layers.forEach((t3) => { - this.gradients[t3.id] = {}; - }), this.layoutVertexArray = new na(), this.layoutVertexArray2 = new ia(), this.indexArray = new ha(), this.programConfigurations = new Ra(t2.layers, t2.zoom), this.segments = new ya(), this.maxLineLength = 0, this.stateDependentLayerIds = this.layers.filter((t3) => t3.isStateDependent()).map((t3) => t3.id); + for (var x2 = 1 / 0, b2 = 0, w2 = e2; b2 < w2.length; b2 += 1) + x2 = Math.min(x2, w2[b2].z); + return x2; + } + var Ps = Ii([{ name: "a_pos_normal", components: 2, type: "Int16" }, { name: "a_data", components: 4, type: "Uint8" }], 4).members, Ms = Ii([{ name: "a_uv_x", components: 1, type: "Float32" }, { name: "a_split_index", components: 1, type: "Float32" }]).members, Bs = bs.VectorTileFeature.types, Ts = Math.cos(Math.PI / 180 * 37.5), Vs = Math.pow(2, 14) / 0.5, Fs = function(t2) { + var e2 = this; + this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map(function(t3) { + return t3.id; + }), this.index = t2.index, this.hasPattern = false, this.patternFeatures = [], this.lineClipsArray = [], this.gradients = {}, this.layers.forEach(function(t3) { + e2.gradients[t3.id] = {}; + }), this.layoutVertexArray = new Mi(), this.layoutVertexArray2 = new Bi(), this.indexArray = new ji(), this.programConfigurations = new Va(t2.layers, t2.zoom), this.segments = new sa(), this.maxLineLength = 0, this.stateDependentLayerIds = this.layers.filter(function(t3) { + return t3.isStateDependent(); + }).map(function(t3) { + return t3.id; + }); + }; + Fs.prototype.populate = function(t2, e2, r2) { + this.hasPattern = as("line", this.layers, e2); + for (var n2 = this.layers[0].layout.get("line-sort-key"), i2 = [], a2 = 0, o2 = t2; a2 < o2.length; a2 += 1) { + var s2 = o2[a2], u2 = s2.feature, l2 = s2.id, p3 = s2.index, c3 = s2.sourceLayerIndex, h3 = this.layers[0]._featureFilter.needGeometry, f2 = Ua(u2, h3); + if (this.layers[0]._featureFilter.filter(new si(this.zoom), f2, r2)) { + var y3 = n2 ? n2.evaluate(f2, {}, r2) : void 0, d2 = { id: l2, properties: u2.properties, type: u2.type, sourceLayerIndex: c3, index: p3, geometry: h3 ? f2.geometry : Ra(u2), patterns: {}, sortKey: y3 }; + i2.push(d2); + } } - populate(t2, e2, r2) { - this.hasPattern = fo("line", this.layers, e2); - const n2 = this.layers[0].layout.get("line-sort-key"), i2 = !n2.isConstant(), a2 = []; - for (const { feature: e3, id: s2, index: o2, sourceLayerIndex: l2 } of t2) { - const t3 = this.layers[0]._featureFilter.needGeometry, u2 = Ka(e3, t3); - if (!this.layers[0]._featureFilter.filter(new Qn(this.zoom), u2, r2)) - continue; - const c3 = i2 ? n2.evaluate(u2, {}, r2) : void 0, h3 = { id: s2, properties: e3.properties, type: e3.type, sourceLayerIndex: l2, index: o2, geometry: t3 ? u2.geometry : Za(e3), patterns: {}, sortKey: c3 }; - a2.push(h3); - } - i2 && a2.sort((t3, e3) => t3.sortKey - e3.sortKey); - for (const n3 of a2) { - const { geometry: i3, index: a3, sourceLayerIndex: s2 } = n3; - if (this.hasPattern) { - const t3 = yo("line", this.layers, n3, this.zoom, e2); - this.patternFeatures.push(t3); - } else - this.addFeature(n3, i3, a3, r2, {}); - e2.featureIndex.insert(t2[a3].feature, i3, a3, s2, this.index); - } - } - update(t2, e2, r2) { - this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t2, e2, this.stateDependentLayers, r2); - } - addFeatures(t2, e2, r2) { - for (const t3 of this.patternFeatures) - this.addFeature(t3, t3.geometry, t3.index, e2, r2); - } - isEmpty() { - return 0 === this.layoutVertexArray.length; - } - uploadPending() { - return !this.uploaded || this.programConfigurations.needsUpload; - } - upload(t2) { - this.uploaded || (0 !== this.layoutVertexArray2.length && (this.layoutVertexBuffer2 = t2.createVertexBuffer(this.layoutVertexArray2, Ko)), this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, No), this.indexBuffer = t2.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t2), this.uploaded = true; - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy()); - } - lineFeatureClips(t2) { - if (t2.properties && Object.prototype.hasOwnProperty.call(t2.properties, "mapbox_clip_start") && Object.prototype.hasOwnProperty.call(t2.properties, "mapbox_clip_end")) - return { start: +t2.properties.mapbox_clip_start, end: +t2.properties.mapbox_clip_end }; - } - addFeature(t2, e2, r2, n2, i2) { - const a2 = this.layers[0].layout, s2 = a2.get("line-join").evaluate(t2, {}), o2 = a2.get("line-cap"), l2 = a2.get("line-miter-limit"), u2 = a2.get("line-round-limit"); - this.lineClips = this.lineFeatureClips(t2); - for (const r3 of e2) - this.addLine(r3, t2, s2, o2, l2, u2); - this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t2, r2, i2, n2); - } - addLine(t2, e2, r2, n2, i2, a2) { - if (this.distance = 0, this.scaledDistance = 0, this.totalDistance = 0, this.lineClips) { - this.lineClipsArray.push(this.lineClips); - for (let e3 = 0; e3 < t2.length - 1; e3++) - this.totalDistance += t2[e3].dist(t2[e3 + 1]); - this.updateScaledDistance(), this.maxLineLength = Math.max(this.maxLineLength, this.totalDistance); - } - const s2 = "Polygon" === Go[e2.type]; - let o2 = t2.length; - for (; o2 >= 2 && t2[o2 - 1].equals(t2[o2 - 2]); ) - o2--; - let l2 = 0; - for (; l2 < o2 - 1 && t2[l2].equals(t2[l2 + 1]); ) - l2++; - if (o2 < (s2 ? 3 : 2)) - return; + n2 && i2.sort(function(t3, e3) { + return t3.sortKey - e3.sortKey; + }); + for (var m2 = 0, v3 = i2; m2 < v3.length; m2 += 1) { + var g2 = v3[m2], x2 = g2.geometry, b2 = g2.index, w2 = g2.sourceLayerIndex; + if (this.hasPattern) { + var _2 = os("line", this.layers, g2, this.zoom, e2); + this.patternFeatures.push(_2); + } else + this.addFeature(g2, x2, b2, r2, {}); + e2.featureIndex.insert(t2[b2].feature, x2, b2, w2, this.index); + } + }, Fs.prototype.update = function(t2, e2, r2) { + this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t2, e2, this.stateDependentLayers, r2); + }, Fs.prototype.addFeatures = function(t2, e2, r2) { + for (var n2 = 0, i2 = this.patternFeatures; n2 < i2.length; n2 += 1) { + var a2 = i2[n2]; + this.addFeature(a2, a2.geometry, a2.index, e2, r2); + } + }, Fs.prototype.isEmpty = function() { + return 0 === this.layoutVertexArray.length; + }, Fs.prototype.uploadPending = function() { + return !this.uploaded || this.programConfigurations.needsUpload; + }, Fs.prototype.upload = function(t2) { + this.uploaded || (0 !== this.layoutVertexArray2.length && (this.layoutVertexBuffer2 = t2.createVertexBuffer(this.layoutVertexArray2, Ms)), this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, Ps), this.indexBuffer = t2.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t2), this.uploaded = true; + }, Fs.prototype.destroy = function() { + this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy()); + }, Fs.prototype.lineFeatureClips = function(t2) { + if (t2.properties && t2.properties.hasOwnProperty("mapbox_clip_start") && t2.properties.hasOwnProperty("mapbox_clip_end")) + return { start: +t2.properties.mapbox_clip_start, end: +t2.properties.mapbox_clip_end }; + }, Fs.prototype.addFeature = function(t2, e2, r2, n2, i2) { + var a2 = this.layers[0].layout, o2 = a2.get("line-join").evaluate(t2, {}), s2 = a2.get("line-cap"), u2 = a2.get("line-miter-limit"), l2 = a2.get("line-round-limit"); + this.lineClips = this.lineFeatureClips(t2); + for (var p3 = 0, c3 = e2; p3 < c3.length; p3 += 1) + this.addLine(c3[p3], t2, o2, s2, u2, l2); + this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t2, r2, i2, n2); + }, Fs.prototype.addLine = function(t2, e2, r2, n2, i2, a2) { + if (this.distance = 0, this.scaledDistance = 0, this.totalDistance = 0, this.lineClips) { + this.lineClipsArray.push(this.lineClips); + for (var o2 = 0; o2 < t2.length - 1; o2++) + this.totalDistance += t2[o2].dist(t2[o2 + 1]); + this.updateScaledDistance(), this.maxLineLength = Math.max(this.maxLineLength, this.totalDistance); + } + for (var s2 = "Polygon" === Bs[e2.type], u2 = t2.length; u2 >= 2 && t2[u2 - 1].equals(t2[u2 - 2]); ) + u2--; + for (var l2 = 0; l2 < u2 - 1 && t2[l2].equals(t2[l2 + 1]); ) + l2++; + if (!(u2 < (s2 ? 3 : 2))) { "bevel" === r2 && (i2 = 1.05); - const u2 = this.overscaling <= 16 ? 122880 / (512 * this.overscaling) : 0, c3 = this.segments.prepareSegment(10 * o2, this.layoutVertexArray, this.indexArray); - let h3, p3, f2, d2, y3; - this.e1 = this.e2 = -1, s2 && (h3 = t2[o2 - 2], y3 = t2[l2].sub(h3)._unit()._perp()); - for (let e3 = l2; e3 < o2; e3++) { - if (f2 = e3 === o2 - 1 ? s2 ? t2[l2 + 1] : void 0 : t2[e3 + 1], f2 && t2[e3].equals(f2)) - continue; - y3 && (d2 = y3), h3 && (p3 = h3), h3 = t2[e3], y3 = f2 ? f2.sub(h3)._unit()._perp() : d2, d2 = d2 || y3; - let m2 = d2.add(y3); - 0 === m2.x && 0 === m2.y || m2._unit(); - const g2 = d2.x * y3.x + d2.y * y3.y, x2 = m2.x * y3.x + m2.y * y3.y, v3 = 0 !== x2 ? 1 / x2 : 1 / 0, b2 = 2 * Math.sqrt(2 - 2 * x2), w2 = x2 < Jo && p3 && f2, _2 = d2.x * y3.y - d2.y * y3.x > 0; - if (w2 && e3 > l2) { - const t3 = h3.dist(p3); - if (t3 > 2 * u2) { - const e4 = h3.sub(h3.sub(p3)._mult(u2 / t3)._round()); - this.updateDistance(p3, e4), this.addCurrentVertex(e4, d2, 0, 0, c3), p3 = e4; - } - } - const A3 = p3 && f2; - let k2 = A3 ? r2 : s2 ? "butt" : n2; - if (A3 && "round" === k2 && (v3 < a2 ? k2 = "miter" : v3 <= 2 && (k2 = "fakeround")), "miter" === k2 && v3 > i2 && (k2 = "bevel"), "bevel" === k2 && (v3 > 2 && (k2 = "flipbevel"), v3 < i2 && (k2 = "miter")), p3 && this.updateDistance(p3, h3), "miter" === k2) - m2._mult(v3), this.addCurrentVertex(h3, m2, 0, 0, c3); - else if ("flipbevel" === k2) { - if (v3 > 100) - m2 = y3.mult(-1); - else { - const t3 = v3 * d2.add(y3).mag() / d2.sub(y3).mag(); - m2._perp()._mult(t3 * (_2 ? -1 : 1)); + var p3, c3 = this.overscaling <= 16 ? 122880 / (512 * this.overscaling) : 0, h3 = this.segments.prepareSegment(10 * u2, this.layoutVertexArray, this.indexArray), f2 = void 0, y3 = void 0, d2 = void 0, m2 = void 0; + this.e1 = this.e2 = -1, s2 && (m2 = t2[l2].sub(p3 = t2[u2 - 2])._unit()._perp()); + for (var v3 = l2; v3 < u2; v3++) + if (!(y3 = v3 === u2 - 1 ? s2 ? t2[l2 + 1] : void 0 : t2[v3 + 1]) || !t2[v3].equals(y3)) { + m2 && (d2 = m2), p3 && (f2 = p3), p3 = t2[v3], m2 = y3 ? y3.sub(p3)._unit()._perp() : d2; + var g2 = (d2 = d2 || m2).add(m2); + 0 === g2.x && 0 === g2.y || g2._unit(); + var x2 = d2.x * m2.x + d2.y * m2.y, b2 = g2.x * m2.x + g2.y * m2.y, w2 = 0 !== b2 ? 1 / b2 : 1 / 0, _2 = 2 * Math.sqrt(2 - 2 * b2), A3 = b2 < Ts && f2 && y3, S2 = d2.x * m2.y - d2.y * m2.x > 0; + if (A3 && v3 > l2) { + var k2 = p3.dist(f2); + if (k2 > 2 * c3) { + var I3 = p3.sub(p3.sub(f2)._mult(c3 / k2)._round()); + this.updateDistance(f2, I3), this.addCurrentVertex(I3, d2, 0, 0, h3), f2 = I3; + } } - this.addCurrentVertex(h3, m2, 0, 0, c3), this.addCurrentVertex(h3, m2.mult(-1), 0, 0, c3); - } else if ("bevel" === k2 || "fakeround" === k2) { - const t3 = -Math.sqrt(v3 * v3 - 1), e4 = _2 ? t3 : 0, r3 = _2 ? 0 : t3; - if (p3 && this.addCurrentVertex(h3, d2, e4, r3, c3), "fakeround" === k2) { - const t4 = Math.round(180 * b2 / Math.PI / 20); - for (let e5 = 1; e5 < t4; e5++) { - let r4 = e5 / t4; - if (0.5 !== r4) { - const t5 = r4 - 0.5; - r4 += r4 * t5 * (r4 - 1) * ((1.0904 + g2 * (g2 * (3.55645 - 1.43519 * g2) - 3.2452)) * t5 * t5 + (0.848013 + g2 * (0.215638 * g2 - 1.06021))); + var z2 = f2 && y3, C2 = z2 ? r2 : s2 ? "butt" : n2; + if (z2 && "round" === C2 && (w2 < a2 ? C2 = "miter" : w2 <= 2 && (C2 = "fakeround")), "miter" === C2 && w2 > i2 && (C2 = "bevel"), "bevel" === C2 && (w2 > 2 && (C2 = "flipbevel"), w2 < i2 && (C2 = "miter")), f2 && this.updateDistance(f2, p3), "miter" === C2) + g2._mult(w2), this.addCurrentVertex(p3, g2, 0, 0, h3); + else if ("flipbevel" === C2) { + if (w2 > 100) + g2 = m2.mult(-1); + else { + var E2 = w2 * d2.add(m2).mag() / d2.sub(m2).mag(); + g2._perp()._mult(E2 * (S2 ? -1 : 1)); + } + this.addCurrentVertex(p3, g2, 0, 0, h3), this.addCurrentVertex(p3, g2.mult(-1), 0, 0, h3); + } else if ("bevel" === C2 || "fakeround" === C2) { + var P2 = -Math.sqrt(w2 * w2 - 1), M2 = S2 ? P2 : 0, B2 = S2 ? 0 : P2; + if (f2 && this.addCurrentVertex(p3, d2, M2, B2, h3), "fakeround" === C2) + for (var T2 = Math.round(180 * _2 / Math.PI / 20), V3 = 1; V3 < T2; V3++) { + var F2 = V3 / T2; + if (0.5 !== F2) { + var D2 = F2 - 0.5; + F2 += F2 * D2 * (F2 - 1) * ((1.0904 + x2 * (x2 * (3.55645 - 1.43519 * x2) - 3.2452)) * D2 * D2 + (0.848013 + x2 * (0.215638 * x2 - 1.06021))); + } + var L2 = m2.sub(d2)._mult(F2)._add(d2)._unit()._mult(S2 ? -1 : 1); + this.addHalfVertex(p3, L2.x, L2.y, false, S2, 0, h3); } - const n3 = y3.sub(d2)._mult(r4)._add(d2)._unit()._mult(_2 ? -1 : 1); - this.addHalfVertex(h3, n3.x, n3.y, false, _2, 0, c3); + y3 && this.addCurrentVertex(p3, m2, -M2, -B2, h3); + } else if ("butt" === C2) + this.addCurrentVertex(p3, g2, 0, 0, h3); + else if ("square" === C2) { + var O3 = f2 ? 1 : -1; + this.addCurrentVertex(p3, g2, O3, O3, h3); + } else + "round" === C2 && (f2 && (this.addCurrentVertex(p3, d2, 0, 0, h3), this.addCurrentVertex(p3, d2, 1, 1, h3, true)), y3 && (this.addCurrentVertex(p3, m2, -1, -1, h3, true), this.addCurrentVertex(p3, m2, 0, 0, h3))); + if (A3 && v3 < u2 - 1) { + var R2 = p3.dist(y3); + if (R2 > 2 * c3) { + var U2 = p3.add(y3.sub(p3)._mult(c3 / R2)._round()); + this.updateDistance(p3, U2), this.addCurrentVertex(U2, m2, 0, 0, h3), p3 = U2; } } - f2 && this.addCurrentVertex(h3, y3, -e4, -r3, c3); - } else if ("butt" === k2) - this.addCurrentVertex(h3, m2, 0, 0, c3); - else if ("square" === k2) { - const t3 = p3 ? 1 : -1; - this.addCurrentVertex(h3, m2, t3, t3, c3); - } else - "round" === k2 && (p3 && (this.addCurrentVertex(h3, d2, 0, 0, c3), this.addCurrentVertex(h3, d2, 1, 1, c3, true)), f2 && (this.addCurrentVertex(h3, y3, -1, -1, c3, true), this.addCurrentVertex(h3, y3, 0, 0, c3))); - if (w2 && e3 < o2 - 1) { - const t3 = h3.dist(f2); - if (t3 > 2 * u2) { - const e4 = h3.add(f2.sub(h3)._mult(u2 / t3)._round()); - this.updateDistance(h3, e4), this.addCurrentVertex(e4, y3, 0, 0, c3), h3 = e4; - } } - } - } - addCurrentVertex(t2, e2, r2, n2, i2, a2 = false) { - const s2 = e2.y * n2 - e2.x, o2 = -e2.y - e2.x * n2; - this.addHalfVertex(t2, e2.x + e2.y * r2, e2.y - e2.x * r2, a2, false, r2, i2), this.addHalfVertex(t2, s2, o2, a2, true, -n2, i2), this.distance > Xo / 2 && 0 === this.totalDistance && (this.distance = 0, this.addCurrentVertex(t2, e2, r2, n2, i2, a2)); } - addHalfVertex({ x: t2, y: e2 }, r2, n2, i2, a2, s2, o2) { - const l2 = 0.5 * (this.lineClips ? this.scaledDistance * (Xo - 1) : this.scaledDistance); - this.layoutVertexArray.emplaceBack((t2 << 1) + (i2 ? 1 : 0), (e2 << 1) + (a2 ? 1 : 0), Math.round(63 * r2) + 128, Math.round(63 * n2) + 128, 1 + (0 === s2 ? 0 : s2 < 0 ? -1 : 1) | (63 & l2) << 2, l2 >> 6), this.lineClips && this.layoutVertexArray2.emplaceBack((this.scaledDistance - this.lineClips.start) / (this.lineClips.end - this.lineClips.start), this.lineClipsArray.length); - const u2 = o2.vertexLength++; - this.e1 >= 0 && this.e2 >= 0 && (this.indexArray.emplaceBack(this.e1, this.e2, u2), o2.primitiveLength++), a2 ? this.e2 = u2 : this.e1 = u2; - } - updateScaledDistance() { - this.scaledDistance = this.lineClips ? this.lineClips.start + (this.lineClips.end - this.lineClips.start) * this.distance / this.totalDistance : this.distance; - } - updateDistance(t2, e2) { - this.distance += t2.dist(e2), this.updateScaledDistance(); - } - } - Mn("LineBucket", Yo, { omit: ["layers", "patternFeatures"] }); - const Ho = new fi({ "line-cap": new li(nt.layout_line["line-cap"]), "line-join": new ui(nt.layout_line["line-join"]), "line-miter-limit": new li(nt.layout_line["line-miter-limit"]), "line-round-limit": new li(nt.layout_line["line-round-limit"]), "line-sort-key": new ui(nt.layout_line["line-sort-key"]) }); - var Wo = { paint: new fi({ "line-opacity": new ui(nt.paint_line["line-opacity"]), "line-color": new ui(nt.paint_line["line-color"]), "line-translate": new li(nt.paint_line["line-translate"]), "line-translate-anchor": new li(nt.paint_line["line-translate-anchor"]), "line-width": new ui(nt.paint_line["line-width"]), "line-gap-width": new ui(nt.paint_line["line-gap-width"]), "line-offset": new ui(nt.paint_line["line-offset"]), "line-blur": new ui(nt.paint_line["line-blur"]), "line-dasharray": new hi(nt.paint_line["line-dasharray"]), "line-pattern": new ci(nt.paint_line["line-pattern"]), "line-gradient": new pi(nt.paint_line["line-gradient"]) }), layout: Ho }; - const Qo = new class extends ui { - possiblyEvaluate(t2, e2) { - return e2 = new Qn(Math.floor(e2.zoom), { now: e2.now, fadeDuration: e2.fadeDuration, zoomHistory: e2.zoomHistory, transition: e2.transition }), super.possiblyEvaluate(t2, e2); - } - evaluate(t2, e2, r2, n2) { - return e2 = o({}, e2, { zoom: Math.floor(e2.zoom) }), super.evaluate(t2, e2, r2, n2); - } - }(Wo.paint.properties["line-width"].specification); - function tl(t2, e2) { + }, Fs.prototype.addCurrentVertex = function(t2, e2, r2, n2, i2, a2) { + void 0 === a2 && (a2 = false); + var o2 = e2.y * n2 - e2.x, s2 = -e2.y - e2.x * n2; + this.addHalfVertex(t2, e2.x + e2.y * r2, e2.y - e2.x * r2, a2, false, r2, i2), this.addHalfVertex(t2, o2, s2, a2, true, -n2, i2), this.distance > Vs / 2 && 0 === this.totalDistance && (this.distance = 0, this.addCurrentVertex(t2, e2, r2, n2, i2, a2)); + }, Fs.prototype.addHalfVertex = function(t2, e2, r2, n2, i2, a2, o2) { + var s2 = 0.5 * (this.lineClips ? this.scaledDistance * (Vs - 1) : this.scaledDistance); + this.layoutVertexArray.emplaceBack((t2.x << 1) + (n2 ? 1 : 0), (t2.y << 1) + (i2 ? 1 : 0), Math.round(63 * e2) + 128, Math.round(63 * r2) + 128, 1 + (0 === a2 ? 0 : a2 < 0 ? -1 : 1) | (63 & s2) << 2, s2 >> 6), this.lineClips && this.layoutVertexArray2.emplaceBack((this.scaledDistance - this.lineClips.start) / (this.lineClips.end - this.lineClips.start), this.lineClipsArray.length); + var u2 = o2.vertexLength++; + this.e1 >= 0 && this.e2 >= 0 && (this.indexArray.emplaceBack(this.e1, this.e2, u2), o2.primitiveLength++), i2 ? this.e2 = u2 : this.e1 = u2; + }, Fs.prototype.updateScaledDistance = function() { + this.scaledDistance = this.lineClips ? this.lineClips.start + (this.lineClips.end - this.lineClips.start) * this.distance / this.totalDistance : this.distance; + }, Fs.prototype.updateDistance = function(t2, e2) { + this.distance += t2.dist(e2), this.updateScaledDistance(); + }, On("LineBucket", Fs, { omit: ["layers", "patternFeatures"] }); + var Ds = new wi({ "line-cap": new mi(Et.layout_line["line-cap"]), "line-join": new vi(Et.layout_line["line-join"]), "line-miter-limit": new mi(Et.layout_line["line-miter-limit"]), "line-round-limit": new mi(Et.layout_line["line-round-limit"]), "line-sort-key": new vi(Et.layout_line["line-sort-key"]) }), Ls = { paint: new wi({ "line-opacity": new vi(Et.paint_line["line-opacity"]), "line-color": new vi(Et.paint_line["line-color"]), "line-translate": new mi(Et.paint_line["line-translate"]), "line-translate-anchor": new mi(Et.paint_line["line-translate-anchor"]), "line-width": new vi(Et.paint_line["line-width"]), "line-gap-width": new vi(Et.paint_line["line-gap-width"]), "line-offset": new vi(Et.paint_line["line-offset"]), "line-blur": new vi(Et.paint_line["line-blur"]), "line-dasharray": new xi(Et.paint_line["line-dasharray"]), "line-pattern": new gi(Et.paint_line["line-pattern"]), "line-gradient": new bi(Et.paint_line["line-gradient"]) }), layout: Ds }, Os = new (function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.possiblyEvaluate = function(e3, r2) { + return r2 = new si(Math.floor(r2.zoom), { now: r2.now, fadeDuration: r2.fadeDuration, zoomHistory: r2.zoomHistory, transition: r2.transition }), t2.prototype.possiblyEvaluate.call(this, e3, r2); + }, e2.prototype.evaluate = function(e3, r2, n2, i2) { + return r2 = h2({}, r2, { zoom: Math.floor(r2.zoom) }), t2.prototype.evaluate.call(this, e3, r2, n2, i2); + }, e2; + }(vi))(Ls.paint.properties["line-width"].specification); + Os.useIntegerZoom = true; + var Rs = function(t2) { + function e2(e3) { + t2.call(this, e3, Ls), this.gradientVersion = 0; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._handleSpecialPaintPropertyUpdate = function(t3) { + "line-gradient" === t3 && (this.stepInterpolant = this._transitionablePaint._values["line-gradient"].value.expression._styleExpression.expression instanceof Ne, this.gradientVersion = (this.gradientVersion + 1) % s); + }, e2.prototype.gradientExpression = function() { + return this._transitionablePaint._values["line-gradient"].value.expression; + }, e2.prototype.recalculate = function(e3, r2) { + t2.prototype.recalculate.call(this, e3, r2), this.paint._values["line-floorwidth"] = Os.possiblyEvaluate(this._transitioningPaint._values["line-width"].value, e3); + }, e2.prototype.createBucket = function(t3) { + return new Fs(t3); + }, e2.prototype.queryRadius = function(t3) { + var e3 = t3, r2 = Us(to("line-width", this, e3), to("line-gap-width", this, e3)), n2 = to("line-offset", this, e3); + return r2 / 2 + Math.abs(n2) + eo(this.paint.get("line-translate")); + }, e2.prototype.queryIntersectsFeature = function(t3, e3, r2, n2, a2, o2, s2) { + var u2 = ro(t3, this.paint.get("line-translate"), this.paint.get("line-translate-anchor"), o2.angle, s2), l2 = s2 / 2 * Us(this.paint.get("line-width").evaluate(e3, r2), this.paint.get("line-gap-width").evaluate(e3, r2)), p3 = this.paint.get("line-offset").evaluate(e3, r2); + return p3 && (n2 = function(t4, e4) { + for (var r3 = [], n3 = new i(0, 0), a3 = 0; a3 < t4.length; a3++) { + for (var o3 = t4[a3], s3 = [], u3 = 0; u3 < o3.length; u3++) { + var l3 = o3[u3], p4 = o3[u3 + 1], c3 = 0 === u3 ? n3 : l3.sub(o3[u3 - 1])._unit()._perp(), h3 = u3 === o3.length - 1 ? n3 : p4.sub(l3)._unit()._perp(), f2 = c3._add(h3)._unit(); + f2._mult(1 / (f2.x * h3.x + f2.y * h3.y)), s3.push(f2._mult(e4)._add(l3)); + } + r3.push(s3); + } + return r3; + }(n2, p3 * s2)), function(t4, e4, r3) { + for (var n3 = 0; n3 < e4.length; n3++) { + var i2 = e4[n3]; + if (t4.length >= 3) { + for (var a3 = 0; a3 < i2.length; a3++) + if (Wa(t4, i2[a3])) + return true; + } + if (Za(t4, i2, r3)) + return true; + } + return false; + }(u2, n2, l2); + }, e2.prototype.isTileClipped = function() { + return true; + }, e2; + }(_i); + function Us(t2, e2) { return e2 > 0 ? e2 + 2 * t2 : t2; } - Qo.useIntegerZoom = true; - const el = vi([{ name: "a_pos_offset", components: 4, type: "Int16" }, { name: "a_data", components: 4, type: "Uint16" }, { name: "a_pixeloffset", components: 4, type: "Int16" }], 4), rl = vi([{ name: "a_projected_pos", components: 3, type: "Float32" }], 4); - vi([{ name: "a_fade_opacity", components: 1, type: "Uint32" }], 4); - const nl = vi([{ name: "a_placed", components: 2, type: "Uint8" }, { name: "a_shift", components: 2, type: "Float32" }]); - vi([{ type: "Int16", name: "anchorPointX" }, { type: "Int16", name: "anchorPointY" }, { type: "Int16", name: "x1" }, { type: "Int16", name: "y1" }, { type: "Int16", name: "x2" }, { type: "Int16", name: "y2" }, { type: "Uint32", name: "featureIndex" }, { type: "Uint16", name: "sourceLayerIndex" }, { type: "Uint16", name: "bucketIndex" }]); - const il = vi([{ name: "a_pos", components: 2, type: "Int16" }, { name: "a_anchor_pos", components: 2, type: "Int16" }, { name: "a_extrude", components: 2, type: "Int16" }], 4), al = vi([{ name: "a_pos", components: 2, type: "Float32" }, { name: "a_radius", components: 1, type: "Float32" }, { name: "a_flags", components: 2, type: "Int16" }], 4); - function sl(t2, e2, r2) { - return t2.sections.forEach((t3) => { + var js = Ii([{ name: "a_pos_offset", components: 4, type: "Int16" }, { name: "a_data", components: 4, type: "Uint16" }, { name: "a_pixeloffset", components: 4, type: "Int16" }], 4), qs = Ii([{ name: "a_projected_pos", components: 3, type: "Float32" }], 4), Ns = (Ii([{ name: "a_fade_opacity", components: 1, type: "Uint32" }], 4), Ii([{ name: "a_placed", components: 2, type: "Uint8" }, { name: "a_shift", components: 2, type: "Float32" }])), Ks = (Ii([{ type: "Int16", name: "anchorPointX" }, { type: "Int16", name: "anchorPointY" }, { type: "Int16", name: "x1" }, { type: "Int16", name: "y1" }, { type: "Int16", name: "x2" }, { type: "Int16", name: "y2" }, { type: "Uint32", name: "featureIndex" }, { type: "Uint16", name: "sourceLayerIndex" }, { type: "Uint16", name: "bucketIndex" }]), Ii([{ name: "a_pos", components: 2, type: "Int16" }, { name: "a_anchor_pos", components: 2, type: "Int16" }, { name: "a_extrude", components: 2, type: "Int16" }], 4)), Gs = Ii([{ name: "a_pos", components: 2, type: "Float32" }, { name: "a_radius", components: 1, type: "Float32" }, { name: "a_flags", components: 2, type: "Int16" }], 4); + function Zs(t2, e2, r2) { + return t2.sections.forEach(function(t3) { t3.text = function(t4, e3, r3) { - const n2 = e3.layout.get("text-transform").evaluate(r3, {}); - return "uppercase" === n2 ? t4 = t4.toLocaleUpperCase() : "lowercase" === n2 && (t4 = t4.toLocaleLowerCase()), Wn.applyArabicShaping && (t4 = Wn.applyArabicShaping(t4)), t4; + var n2 = e3.layout.get("text-transform").evaluate(r3, {}); + return "uppercase" === n2 ? t4 = t4.toLocaleUpperCase() : "lowercase" === n2 && (t4 = t4.toLocaleLowerCase()), oi.applyArabicShaping && (t4 = oi.applyArabicShaping(t4)), t4; }(t3.text, e2, r2); }), t2; } - vi([{ name: "triangle", components: 3, type: "Uint16" }]), vi([{ type: "Int16", name: "anchorX" }, { type: "Int16", name: "anchorY" }, { type: "Uint16", name: "glyphStartIndex" }, { type: "Uint16", name: "numGlyphs" }, { type: "Uint32", name: "vertexStartIndex" }, { type: "Uint32", name: "lineStartIndex" }, { type: "Uint32", name: "lineLength" }, { type: "Uint16", name: "segment" }, { type: "Uint16", name: "lowerSize" }, { type: "Uint16", name: "upperSize" }, { type: "Float32", name: "lineOffsetX" }, { type: "Float32", name: "lineOffsetY" }, { type: "Uint8", name: "writingMode" }, { type: "Uint8", name: "placedOrientation" }, { type: "Uint8", name: "hidden" }, { type: "Uint32", name: "crossTileID" }, { type: "Int16", name: "associatedIconIndex" }]), vi([{ type: "Int16", name: "anchorX" }, { type: "Int16", name: "anchorY" }, { type: "Int16", name: "rightJustifiedTextSymbolIndex" }, { type: "Int16", name: "centerJustifiedTextSymbolIndex" }, { type: "Int16", name: "leftJustifiedTextSymbolIndex" }, { type: "Int16", name: "verticalPlacedTextSymbolIndex" }, { type: "Int16", name: "placedIconSymbolIndex" }, { type: "Int16", name: "verticalPlacedIconSymbolIndex" }, { type: "Uint16", name: "key" }, { type: "Uint16", name: "textBoxStartIndex" }, { type: "Uint16", name: "textBoxEndIndex" }, { type: "Uint16", name: "verticalTextBoxStartIndex" }, { type: "Uint16", name: "verticalTextBoxEndIndex" }, { type: "Uint16", name: "iconBoxStartIndex" }, { type: "Uint16", name: "iconBoxEndIndex" }, { type: "Uint16", name: "verticalIconBoxStartIndex" }, { type: "Uint16", name: "verticalIconBoxEndIndex" }, { type: "Uint16", name: "featureIndex" }, { type: "Uint16", name: "numHorizontalGlyphVertices" }, { type: "Uint16", name: "numVerticalGlyphVertices" }, { type: "Uint16", name: "numIconVertices" }, { type: "Uint16", name: "numVerticalIconVertices" }, { type: "Uint16", name: "useRuntimeCollisionCircles" }, { type: "Uint32", name: "crossTileID" }, { type: "Float32", name: "textBoxScale" }, { type: "Float32", components: 2, name: "textOffset" }, { type: "Float32", name: "collisionCircleDiameter" }]), vi([{ type: "Float32", name: "offsetX" }]), vi([{ type: "Int16", name: "x" }, { type: "Int16", name: "y" }, { type: "Int16", name: "tileUnitDistanceFromAnchor" }]); - const ol = { "!": "\uFE15", "#": "\uFF03", $: "\uFF04", "%": "\uFF05", "&": "\uFF06", "(": "\uFE35", ")": "\uFE36", "*": "\uFF0A", "+": "\uFF0B", ",": "\uFE10", "-": "\uFE32", ".": "\u30FB", "/": "\uFF0F", ":": "\uFE13", ";": "\uFE14", "<": "\uFE3F", "=": "\uFF1D", ">": "\uFE40", "?": "\uFE16", "@": "\uFF20", "[": "\uFE47", "\\": "\uFF3C", "]": "\uFE48", "^": "\uFF3E", _: "\uFE33", "`": "\uFF40", "{": "\uFE37", "|": "\u2015", "}": "\uFE38", "~": "\uFF5E", "\xA2": "\uFFE0", "\xA3": "\uFFE1", "\xA5": "\uFFE5", "\xA6": "\uFFE4", "\xAC": "\uFFE2", "\xAF": "\uFFE3", "\u2013": "\uFE32", "\u2014": "\uFE31", "\u2018": "\uFE43", "\u2019": "\uFE44", "\u201C": "\uFE41", "\u201D": "\uFE42", "\u2026": "\uFE19", "\u2027": "\u30FB", "\u20A9": "\uFFE6", "\u3001": "\uFE11", "\u3002": "\uFE12", "\u3008": "\uFE3F", "\u3009": "\uFE40", "\u300A": "\uFE3D", "\u300B": "\uFE3E", "\u300C": "\uFE41", "\u300D": "\uFE42", "\u300E": "\uFE43", "\u300F": "\uFE44", "\u3010": "\uFE3B", "\u3011": "\uFE3C", "\u3014": "\uFE39", "\u3015": "\uFE3A", "\u3016": "\uFE17", "\u3017": "\uFE18", "\uFF01": "\uFE15", "\uFF08": "\uFE35", "\uFF09": "\uFE36", "\uFF0C": "\uFE10", "\uFF0D": "\uFE32", "\uFF0E": "\u30FB", "\uFF1A": "\uFE13", "\uFF1B": "\uFE14", "\uFF1C": "\uFE3F", "\uFF1E": "\uFE40", "\uFF1F": "\uFE16", "\uFF3B": "\uFE47", "\uFF3D": "\uFE48", "\uFF3F": "\uFE33", "\uFF5B": "\uFE37", "\uFF5C": "\u2015", "\uFF5D": "\uFE38", "\uFF5F": "\uFE35", "\uFF60": "\uFE36", "\uFF61": "\uFE12", "\uFF62": "\uFE41", "\uFF63": "\uFE42" }; - var ll = 24, ul = pl, cl = function(t2, e2, r2, n2, i2) { - var a2, s2, o2 = 8 * i2 - n2 - 1, l2 = (1 << o2) - 1, u2 = l2 >> 1, c3 = -7, h3 = r2 ? i2 - 1 : 0, p3 = r2 ? -1 : 1, f2 = t2[e2 + h3]; - for (h3 += p3, a2 = f2 & (1 << -c3) - 1, f2 >>= -c3, c3 += o2; c3 > 0; a2 = 256 * a2 + t2[e2 + h3], h3 += p3, c3 -= 8) + Ii([{ name: "triangle", components: 3, type: "Uint16" }]), Ii([{ type: "Int16", name: "anchorX" }, { type: "Int16", name: "anchorY" }, { type: "Uint16", name: "glyphStartIndex" }, { type: "Uint16", name: "numGlyphs" }, { type: "Uint32", name: "vertexStartIndex" }, { type: "Uint32", name: "lineStartIndex" }, { type: "Uint32", name: "lineLength" }, { type: "Uint16", name: "segment" }, { type: "Uint16", name: "lowerSize" }, { type: "Uint16", name: "upperSize" }, { type: "Float32", name: "lineOffsetX" }, { type: "Float32", name: "lineOffsetY" }, { type: "Uint8", name: "writingMode" }, { type: "Uint8", name: "placedOrientation" }, { type: "Uint8", name: "hidden" }, { type: "Uint32", name: "crossTileID" }, { type: "Int16", name: "associatedIconIndex" }]), Ii([{ type: "Int16", name: "anchorX" }, { type: "Int16", name: "anchorY" }, { type: "Int16", name: "rightJustifiedTextSymbolIndex" }, { type: "Int16", name: "centerJustifiedTextSymbolIndex" }, { type: "Int16", name: "leftJustifiedTextSymbolIndex" }, { type: "Int16", name: "verticalPlacedTextSymbolIndex" }, { type: "Int16", name: "placedIconSymbolIndex" }, { type: "Int16", name: "verticalPlacedIconSymbolIndex" }, { type: "Uint16", name: "key" }, { type: "Uint16", name: "textBoxStartIndex" }, { type: "Uint16", name: "textBoxEndIndex" }, { type: "Uint16", name: "verticalTextBoxStartIndex" }, { type: "Uint16", name: "verticalTextBoxEndIndex" }, { type: "Uint16", name: "iconBoxStartIndex" }, { type: "Uint16", name: "iconBoxEndIndex" }, { type: "Uint16", name: "verticalIconBoxStartIndex" }, { type: "Uint16", name: "verticalIconBoxEndIndex" }, { type: "Uint16", name: "featureIndex" }, { type: "Uint16", name: "numHorizontalGlyphVertices" }, { type: "Uint16", name: "numVerticalGlyphVertices" }, { type: "Uint16", name: "numIconVertices" }, { type: "Uint16", name: "numVerticalIconVertices" }, { type: "Uint16", name: "useRuntimeCollisionCircles" }, { type: "Uint32", name: "crossTileID" }, { type: "Float32", name: "textBoxScale" }, { type: "Float32", components: 2, name: "textOffset" }, { type: "Float32", name: "collisionCircleDiameter" }]), Ii([{ type: "Float32", name: "offsetX" }]), Ii([{ type: "Int16", name: "x" }, { type: "Int16", name: "y" }, { type: "Int16", name: "tileUnitDistanceFromAnchor" }]); + var Xs = { "!": "\uFE15", "#": "\uFF03", $: "\uFF04", "%": "\uFF05", "&": "\uFF06", "(": "\uFE35", ")": "\uFE36", "*": "\uFF0A", "+": "\uFF0B", ",": "\uFE10", "-": "\uFE32", ".": "\u30FB", "/": "\uFF0F", ":": "\uFE13", ";": "\uFE14", "<": "\uFE3F", "=": "\uFF1D", ">": "\uFE40", "?": "\uFE16", "@": "\uFF20", "[": "\uFE47", "\\": "\uFF3C", "]": "\uFE48", "^": "\uFF3E", _: "\uFE33", "`": "\uFF40", "{": "\uFE37", "|": "\u2015", "}": "\uFE38", "~": "\uFF5E", "\xA2": "\uFFE0", "\xA3": "\uFFE1", "\xA5": "\uFFE5", "\xA6": "\uFFE4", "\xAC": "\uFFE2", "\xAF": "\uFFE3", "\u2013": "\uFE32", "\u2014": "\uFE31", "\u2018": "\uFE43", "\u2019": "\uFE44", "\u201C": "\uFE41", "\u201D": "\uFE42", "\u2026": "\uFE19", "\u2027": "\u30FB", "\u20A9": "\uFFE6", "\u3001": "\uFE11", "\u3002": "\uFE12", "\u3008": "\uFE3F", "\u3009": "\uFE40", "\u300A": "\uFE3D", "\u300B": "\uFE3E", "\u300C": "\uFE41", "\u300D": "\uFE42", "\u300E": "\uFE43", "\u300F": "\uFE44", "\u3010": "\uFE3B", "\u3011": "\uFE3C", "\u3014": "\uFE39", "\u3015": "\uFE3A", "\u3016": "\uFE17", "\u3017": "\uFE18", "\uFF01": "\uFE15", "\uFF08": "\uFE35", "\uFF09": "\uFE36", "\uFF0C": "\uFE10", "\uFF0D": "\uFE32", "\uFF0E": "\u30FB", "\uFF1A": "\uFE13", "\uFF1B": "\uFE14", "\uFF1C": "\uFE3F", "\uFF1E": "\uFE40", "\uFF1F": "\uFE16", "\uFF3B": "\uFE47", "\uFF3D": "\uFE48", "\uFF3F": "\uFE33", "\uFF5B": "\uFE37", "\uFF5C": "\u2015", "\uFF5D": "\uFE38", "\uFF5F": "\uFE35", "\uFF60": "\uFE36", "\uFF61": "\uFE12", "\uFF62": "\uFE41", "\uFF63": "\uFE42" }, Js = function(t2, e2, r2, n2, i2) { + var a2, o2, s2 = 8 * i2 - n2 - 1, u2 = (1 << s2) - 1, l2 = u2 >> 1, p3 = -7, c3 = r2 ? i2 - 1 : 0, h3 = r2 ? -1 : 1, f2 = t2[e2 + c3]; + for (c3 += h3, a2 = f2 & (1 << -p3) - 1, f2 >>= -p3, p3 += s2; p3 > 0; a2 = 256 * a2 + t2[e2 + c3], c3 += h3, p3 -= 8) ; - for (s2 = a2 & (1 << -c3) - 1, a2 >>= -c3, c3 += n2; c3 > 0; s2 = 256 * s2 + t2[e2 + h3], h3 += p3, c3 -= 8) + for (o2 = a2 & (1 << -p3) - 1, a2 >>= -p3, p3 += n2; p3 > 0; o2 = 256 * o2 + t2[e2 + c3], c3 += h3, p3 -= 8) ; if (0 === a2) - a2 = 1 - u2; + a2 = 1 - l2; else { - if (a2 === l2) - return s2 ? NaN : 1 / 0 * (f2 ? -1 : 1); - s2 += Math.pow(2, n2), a2 -= u2; - } - return (f2 ? -1 : 1) * s2 * Math.pow(2, a2 - n2); - }, hl = function(t2, e2, r2, n2, i2, a2) { - var s2, o2, l2, u2 = 8 * a2 - i2 - 1, c3 = (1 << u2) - 1, h3 = c3 >> 1, p3 = 23 === i2 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, f2 = n2 ? 0 : a2 - 1, d2 = n2 ? 1 : -1, y3 = e2 < 0 || 0 === e2 && 1 / e2 < 0 ? 1 : 0; - for (e2 = Math.abs(e2), isNaN(e2) || e2 === 1 / 0 ? (o2 = isNaN(e2) ? 1 : 0, s2 = c3) : (s2 = Math.floor(Math.log(e2) / Math.LN2), e2 * (l2 = Math.pow(2, -s2)) < 1 && (s2--, l2 *= 2), (e2 += s2 + h3 >= 1 ? p3 / l2 : p3 * Math.pow(2, 1 - h3)) * l2 >= 2 && (s2++, l2 /= 2), s2 + h3 >= c3 ? (o2 = 0, s2 = c3) : s2 + h3 >= 1 ? (o2 = (e2 * l2 - 1) * Math.pow(2, i2), s2 += h3) : (o2 = e2 * Math.pow(2, h3 - 1) * Math.pow(2, i2), s2 = 0)); i2 >= 8; t2[r2 + f2] = 255 & o2, f2 += d2, o2 /= 256, i2 -= 8) + if (a2 === u2) + return o2 ? NaN : 1 / 0 * (f2 ? -1 : 1); + o2 += Math.pow(2, n2), a2 -= l2; + } + return (f2 ? -1 : 1) * o2 * Math.pow(2, a2 - n2); + }, Hs = function(t2, e2, r2, n2, i2, a2) { + var o2, s2, u2, l2 = 8 * a2 - i2 - 1, p3 = (1 << l2) - 1, c3 = p3 >> 1, h3 = 23 === i2 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, f2 = n2 ? 0 : a2 - 1, y3 = n2 ? 1 : -1, d2 = e2 < 0 || 0 === e2 && 1 / e2 < 0 ? 1 : 0; + for (e2 = Math.abs(e2), isNaN(e2) || e2 === 1 / 0 ? (s2 = isNaN(e2) ? 1 : 0, o2 = p3) : (o2 = Math.floor(Math.log(e2) / Math.LN2), e2 * (u2 = Math.pow(2, -o2)) < 1 && (o2--, u2 *= 2), (e2 += o2 + c3 >= 1 ? h3 / u2 : h3 * Math.pow(2, 1 - c3)) * u2 >= 2 && (o2++, u2 /= 2), o2 + c3 >= p3 ? (s2 = 0, o2 = p3) : o2 + c3 >= 1 ? (s2 = (e2 * u2 - 1) * Math.pow(2, i2), o2 += c3) : (s2 = e2 * Math.pow(2, c3 - 1) * Math.pow(2, i2), o2 = 0)); i2 >= 8; t2[r2 + f2] = 255 & s2, f2 += y3, s2 /= 256, i2 -= 8) ; - for (s2 = s2 << i2 | o2, u2 += i2; u2 > 0; t2[r2 + f2] = 255 & s2, f2 += d2, s2 /= 256, u2 -= 8) + for (o2 = o2 << i2 | s2, l2 += i2; l2 > 0; t2[r2 + f2] = 255 & o2, f2 += y3, o2 /= 256, l2 -= 8) ; - t2[r2 + f2 - d2] |= 128 * y3; - }; - function pl(t2) { + t2[r2 + f2 - y3] |= 128 * d2; + }, Ys = $s; + function $s(t2) { this.buf = ArrayBuffer.isView && ArrayBuffer.isView(t2) ? t2 : new Uint8Array(t2 || 0), this.pos = 0, this.type = 0, this.length = this.buf.length; } - pl.Varint = 0, pl.Fixed64 = 1, pl.Bytes = 2, pl.Fixed32 = 5; - var fl, dl = 4294967296, yl = 1 / dl, ml = "undefined" == typeof TextDecoder ? null : new TextDecoder("utf8"); - function gl(t2) { - return t2.type === pl.Bytes ? t2.readVarint() + t2.pos : t2.pos + 1; + $s.Varint = 0, $s.Fixed64 = 1, $s.Bytes = 2, $s.Fixed32 = 5; + var Ws = "undefined" == typeof TextDecoder ? null : new TextDecoder("utf8"); + function Qs(t2) { + return t2.type === $s.Bytes ? t2.readVarint() + t2.pos : t2.pos + 1; } - function xl(t2, e2, r2) { + function tu(t2, e2, r2) { return r2 ? 4294967296 * e2 + (t2 >>> 0) : 4294967296 * (e2 >>> 0) + (t2 >>> 0); } - function vl(t2, e2, r2) { + function eu(t2, e2, r2) { var n2 = e2 <= 16383 ? 1 : e2 <= 2097151 ? 2 : e2 <= 268435455 ? 3 : Math.floor(Math.log(e2) / (7 * Math.LN2)); r2.realloc(n2); for (var i2 = r2.pos - 1; i2 >= t2; i2--) r2.buf[i2 + n2] = r2.buf[i2]; } - function bl(t2, e2) { + function ru(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeVarint(t2[r2]); } - function wl(t2, e2) { + function nu(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeSVarint(t2[r2]); } - function _l(t2, e2) { + function iu(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeFloat(t2[r2]); } - function Al(t2, e2) { + function au(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeDouble(t2[r2]); } - function kl(t2, e2) { + function ou(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeBoolean(t2[r2]); } - function Sl(t2, e2) { + function su(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeFixed32(t2[r2]); } - function Il(t2, e2) { + function uu(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeSFixed32(t2[r2]); } - function Ml(t2, e2) { + function lu(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeFixed64(t2[r2]); } - function zl(t2, e2) { + function pu(t2, e2) { for (var r2 = 0; r2 < t2.length; r2++) e2.writeSFixed64(t2[r2]); } - function Bl(t2, e2) { + function cu(t2, e2) { return (t2[e2] | t2[e2 + 1] << 8 | t2[e2 + 2] << 16) + 16777216 * t2[e2 + 3]; } - function Cl(t2, e2, r2) { + function hu(t2, e2, r2) { t2[r2] = e2, t2[r2 + 1] = e2 >>> 8, t2[r2 + 2] = e2 >>> 16, t2[r2 + 3] = e2 >>> 24; } - function Pl(t2, e2) { + function fu(t2, e2) { return (t2[e2] | t2[e2 + 1] << 8 | t2[e2 + 2] << 16) + (t2[e2 + 3] << 24); } - function Vl(t2, e2, r2) { - 1 === t2 && r2.readMessage(El, e2); + function yu(t2, e2, r2) { + 1 === t2 && r2.readMessage(du, e2); } - function El(t2, e2, r2) { + function du(t2, e2, r2) { if (3 === t2) { - const { id: t3, bitmap: n2, width: i2, height: a2, left: s2, top: o2, advance: l2 } = r2.readMessage(Fl, {}); - e2.push({ id: t3, bitmap: new zs({ width: i2 + 6, height: a2 + 6 }, n2), metrics: { width: i2, height: a2, left: s2, top: o2, advance: l2 } }); + var n2 = r2.readMessage(mu, {}), i2 = n2.width, a2 = n2.height, o2 = n2.left, s2 = n2.top, u2 = n2.advance; + e2.push({ id: n2.id, bitmap: new go({ width: i2 + 6, height: a2 + 6 }, n2.bitmap), metrics: { width: i2, height: a2, left: o2, top: s2, advance: u2 } }); } } - function Fl(t2, e2, r2) { + function mu(t2, e2, r2) { 1 === t2 ? e2.id = r2.readVarint() : 2 === t2 ? e2.bitmap = r2.readBytes() : 3 === t2 ? e2.width = r2.readVarint() : 4 === t2 ? e2.height = r2.readVarint() : 5 === t2 ? e2.left = r2.readSVarint() : 6 === t2 ? e2.top = r2.readSVarint() : 7 === t2 && (e2.advance = r2.readVarint()); } - function Tl(t2) { - let e2 = 0, r2 = 0; - for (const n3 of t2) - e2 += n3.w * n3.h, r2 = Math.max(r2, n3.w); - t2.sort((t3, e3) => e3.h - t3.h); - const n2 = [{ x: 0, y: 0, w: Math.max(Math.ceil(Math.sqrt(e2 / 0.95)), r2), h: 1 / 0 }]; - let i2 = 0, a2 = 0; - for (const e3 of t2) - for (let t3 = n2.length - 1; t3 >= 0; t3--) { - const r3 = n2[t3]; - if (!(e3.w > r3.w || e3.h > r3.h)) { - if (e3.x = r3.x, e3.y = r3.y, a2 = Math.max(a2, e3.y + e3.h), i2 = Math.max(i2, e3.x + e3.w), e3.w === r3.w && e3.h === r3.h) { - const e4 = n2.pop(); - t3 < n2.length && (n2[t3] = e4); + function vu(t2) { + for (var e2 = 0, r2 = 0, n2 = 0, i2 = t2; n2 < i2.length; n2 += 1) { + var a2 = i2[n2]; + e2 += a2.w * a2.h, r2 = Math.max(r2, a2.w); + } + t2.sort(function(t3, e3) { + return e3.h - t3.h; + }); + for (var o2 = [{ x: 0, y: 0, w: Math.max(Math.ceil(Math.sqrt(e2 / 0.95)), r2), h: 1 / 0 }], s2 = 0, u2 = 0, l2 = 0, p3 = t2; l2 < p3.length; l2 += 1) + for (var c3 = p3[l2], h3 = o2.length - 1; h3 >= 0; h3--) { + var f2 = o2[h3]; + if (!(c3.w > f2.w || c3.h > f2.h)) { + if (c3.x = f2.x, c3.y = f2.y, u2 = Math.max(u2, c3.y + c3.h), s2 = Math.max(s2, c3.x + c3.w), c3.w === f2.w && c3.h === f2.h) { + var y3 = o2.pop(); + h3 < o2.length && (o2[h3] = y3); } else - e3.h === r3.h ? (r3.x += e3.w, r3.w -= e3.w) : e3.w === r3.w ? (r3.y += e3.h, r3.h -= e3.h) : (n2.push({ x: r3.x + e3.w, y: r3.y, w: r3.w - e3.w, h: e3.h }), r3.y += e3.h, r3.h -= e3.h); + c3.h === f2.h ? (f2.x += c3.w, f2.w -= c3.w) : c3.w === f2.w ? (f2.y += c3.h, f2.h -= c3.h) : (o2.push({ x: f2.x + c3.w, y: f2.y, w: f2.w - c3.w, h: c3.h }), f2.y += c3.h, f2.h -= c3.h); break; } } - return { w: i2, h: a2, fill: e2 / (i2 * a2) || 0 }; + return { w: s2, h: u2, fill: e2 / (s2 * u2) || 0 }; } - pl.prototype = { destroy: function() { + $s.prototype = { destroy: function() { this.buf = null; }, readFields: function(t2, e2, r2) { for (r2 = r2 || this.length; this.pos < r2; ) { @@ -21121,39 +21467,39 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ }, readMessage: function(t2, e2) { return this.readFields(t2, e2, this.readVarint() + this.pos); }, readFixed32: function() { - var t2 = Bl(this.buf, this.pos); + var t2 = cu(this.buf, this.pos); return this.pos += 4, t2; }, readSFixed32: function() { - var t2 = Pl(this.buf, this.pos); + var t2 = fu(this.buf, this.pos); return this.pos += 4, t2; }, readFixed64: function() { - var t2 = Bl(this.buf, this.pos) + Bl(this.buf, this.pos + 4) * dl; + var t2 = cu(this.buf, this.pos) + 4294967296 * cu(this.buf, this.pos + 4); return this.pos += 8, t2; }, readSFixed64: function() { - var t2 = Bl(this.buf, this.pos) + Pl(this.buf, this.pos + 4) * dl; + var t2 = cu(this.buf, this.pos) + 4294967296 * fu(this.buf, this.pos + 4); return this.pos += 8, t2; }, readFloat: function() { - var t2 = cl(this.buf, this.pos, true, 23, 4); + var t2 = Js(this.buf, this.pos, true, 23, 4); return this.pos += 4, t2; }, readDouble: function() { - var t2 = cl(this.buf, this.pos, true, 52, 8); + var t2 = Js(this.buf, this.pos, true, 52, 8); return this.pos += 8, t2; }, readVarint: function(t2) { var e2, r2, n2 = this.buf; return e2 = 127 & (r2 = n2[this.pos++]), r2 < 128 ? e2 : (e2 |= (127 & (r2 = n2[this.pos++])) << 7, r2 < 128 ? e2 : (e2 |= (127 & (r2 = n2[this.pos++])) << 14, r2 < 128 ? e2 : (e2 |= (127 & (r2 = n2[this.pos++])) << 21, r2 < 128 ? e2 : function(t3, e3, r3) { var n3, i2, a2 = r3.buf; if (n3 = (112 & (i2 = a2[r3.pos++])) >> 4, i2 < 128) - return xl(t3, n3, e3); + return tu(t3, n3, e3); if (n3 |= (127 & (i2 = a2[r3.pos++])) << 3, i2 < 128) - return xl(t3, n3, e3); + return tu(t3, n3, e3); if (n3 |= (127 & (i2 = a2[r3.pos++])) << 10, i2 < 128) - return xl(t3, n3, e3); + return tu(t3, n3, e3); if (n3 |= (127 & (i2 = a2[r3.pos++])) << 17, i2 < 128) - return xl(t3, n3, e3); + return tu(t3, n3, e3); if (n3 |= (127 & (i2 = a2[r3.pos++])) << 24, i2 < 128) - return xl(t3, n3, e3); + return tu(t3, n3, e3); if (n3 |= (1 & (i2 = a2[r3.pos++])) << 31, i2 < 128) - return xl(t3, n3, e3); + return tu(t3, n3, e3); throw new Error("Expected varint not more than 10 bytes"); }(e2 |= (15 & (r2 = n2[this.pos])) << 28, t2, this)))); }, readVarint64: function() { @@ -21165,14 +21511,14 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ return Boolean(this.readVarint()); }, readString: function() { var t2 = this.readVarint() + this.pos, e2 = this.pos; - return this.pos = t2, t2 - e2 >= 12 && ml ? function(t3, e3, r2) { - return ml.decode(t3.subarray(e3, r2)); + return this.pos = t2, t2 - e2 >= 12 && Ws ? function(t3, e3, r2) { + return Ws.decode(t3.subarray(e3, r2)); }(this.buf, e2, t2) : function(t3, e3, r2) { for (var n2 = "", i2 = e3; i2 < r2; ) { - var a2, s2, o2, l2 = t3[i2], u2 = null, c3 = l2 > 239 ? 4 : l2 > 223 ? 3 : l2 > 191 ? 2 : 1; - if (i2 + c3 > r2) + var a2, o2, s2, u2 = t3[i2], l2 = null, p3 = u2 > 239 ? 4 : u2 > 223 ? 3 : u2 > 191 ? 2 : 1; + if (i2 + p3 > r2) break; - 1 === c3 ? l2 < 128 && (u2 = l2) : 2 === c3 ? 128 == (192 & (a2 = t3[i2 + 1])) && (u2 = (31 & l2) << 6 | 63 & a2) <= 127 && (u2 = null) : 3 === c3 ? (s2 = t3[i2 + 2], 128 == (192 & (a2 = t3[i2 + 1])) && 128 == (192 & s2) && ((u2 = (15 & l2) << 12 | (63 & a2) << 6 | 63 & s2) <= 2047 || u2 >= 55296 && u2 <= 57343) && (u2 = null)) : 4 === c3 && (s2 = t3[i2 + 2], o2 = t3[i2 + 3], 128 == (192 & (a2 = t3[i2 + 1])) && 128 == (192 & s2) && 128 == (192 & o2) && ((u2 = (15 & l2) << 18 | (63 & a2) << 12 | (63 & s2) << 6 | 63 & o2) <= 65535 || u2 >= 1114112) && (u2 = null)), null === u2 ? (u2 = 65533, c3 = 1) : u2 > 65535 && (u2 -= 65536, n2 += String.fromCharCode(u2 >>> 10 & 1023 | 55296), u2 = 56320 | 1023 & u2), n2 += String.fromCharCode(u2), i2 += c3; + 1 === p3 ? u2 < 128 && (l2 = u2) : 2 === p3 ? 128 == (192 & (a2 = t3[i2 + 1])) && (l2 = (31 & u2) << 6 | 63 & a2) <= 127 && (l2 = null) : 3 === p3 ? (o2 = t3[i2 + 2], 128 == (192 & (a2 = t3[i2 + 1])) && 128 == (192 & o2) && ((l2 = (15 & u2) << 12 | (63 & a2) << 6 | 63 & o2) <= 2047 || l2 >= 55296 && l2 <= 57343) && (l2 = null)) : 4 === p3 && (o2 = t3[i2 + 2], s2 = t3[i2 + 3], 128 == (192 & (a2 = t3[i2 + 1])) && 128 == (192 & o2) && 128 == (192 & s2) && ((l2 = (15 & u2) << 18 | (63 & a2) << 12 | (63 & o2) << 6 | 63 & s2) <= 65535 || l2 >= 1114112) && (l2 = null)), null === l2 ? (l2 = 65533, p3 = 1) : l2 > 65535 && (l2 -= 65536, n2 += String.fromCharCode(l2 >>> 10 & 1023 | 55296), l2 = 56320 | 1023 & l2), n2 += String.fromCharCode(l2), i2 += p3; } return n2; }(this.buf, e2, t2); @@ -21180,79 +21526,79 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ var t2 = this.readVarint() + this.pos, e2 = this.buf.subarray(this.pos, t2); return this.pos = t2, e2; }, readPackedVarint: function(t2, e2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readVarint(e2)); - var r2 = gl(this); + var r2 = Qs(this); for (t2 = t2 || []; this.pos < r2; ) t2.push(this.readVarint(e2)); return t2; }, readPackedSVarint: function(t2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readSVarint()); - var e2 = gl(this); + var e2 = Qs(this); for (t2 = t2 || []; this.pos < e2; ) t2.push(this.readSVarint()); return t2; }, readPackedBoolean: function(t2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readBoolean()); - var e2 = gl(this); + var e2 = Qs(this); for (t2 = t2 || []; this.pos < e2; ) t2.push(this.readBoolean()); return t2; }, readPackedFloat: function(t2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readFloat()); - var e2 = gl(this); + var e2 = Qs(this); for (t2 = t2 || []; this.pos < e2; ) t2.push(this.readFloat()); return t2; }, readPackedDouble: function(t2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readDouble()); - var e2 = gl(this); + var e2 = Qs(this); for (t2 = t2 || []; this.pos < e2; ) t2.push(this.readDouble()); return t2; }, readPackedFixed32: function(t2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readFixed32()); - var e2 = gl(this); + var e2 = Qs(this); for (t2 = t2 || []; this.pos < e2; ) t2.push(this.readFixed32()); return t2; }, readPackedSFixed32: function(t2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readSFixed32()); - var e2 = gl(this); + var e2 = Qs(this); for (t2 = t2 || []; this.pos < e2; ) t2.push(this.readSFixed32()); return t2; }, readPackedFixed64: function(t2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readFixed64()); - var e2 = gl(this); + var e2 = Qs(this); for (t2 = t2 || []; this.pos < e2; ) t2.push(this.readFixed64()); return t2; }, readPackedSFixed64: function(t2) { - if (this.type !== pl.Bytes) + if (this.type !== $s.Bytes) return t2.push(this.readSFixed64()); - var e2 = gl(this); + var e2 = Qs(this); for (t2 = t2 || []; this.pos < e2; ) t2.push(this.readSFixed64()); return t2; }, skip: function(t2) { var e2 = 7 & t2; - if (e2 === pl.Varint) + if (e2 === $s.Varint) for (; this.buf[this.pos++] > 127; ) ; - else if (e2 === pl.Bytes) + else if (e2 === $s.Bytes) this.pos = this.readVarint() + this.pos; - else if (e2 === pl.Fixed32) + else if (e2 === $s.Fixed32) this.pos += 4; else { - if (e2 !== pl.Fixed64) + if (e2 !== $s.Fixed64) throw new Error("Unimplemented type: " + e2); this.pos += 8; } @@ -21268,13 +21614,13 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ }, finish: function() { return this.length = this.pos, this.pos = 0, this.buf.subarray(0, this.length); }, writeFixed32: function(t2) { - this.realloc(4), Cl(this.buf, t2, this.pos), this.pos += 4; + this.realloc(4), hu(this.buf, t2, this.pos), this.pos += 4; }, writeSFixed32: function(t2) { - this.realloc(4), Cl(this.buf, t2, this.pos), this.pos += 4; + this.realloc(4), hu(this.buf, t2, this.pos), this.pos += 4; }, writeFixed64: function(t2) { - this.realloc(8), Cl(this.buf, -1 & t2, this.pos), Cl(this.buf, Math.floor(t2 * yl), this.pos + 4), this.pos += 8; + this.realloc(8), hu(this.buf, -1 & t2, this.pos), hu(this.buf, Math.floor(t2 * (1 / 4294967296)), this.pos + 4), this.pos += 8; }, writeSFixed64: function(t2) { - this.realloc(8), Cl(this.buf, -1 & t2, this.pos), Cl(this.buf, Math.floor(t2 * yl), this.pos + 4), this.pos += 8; + this.realloc(8), hu(this.buf, -1 & t2, this.pos), hu(this.buf, Math.floor(t2 * (1 / 4294967296)), this.pos + 4), this.pos += 8; }, writeVarint: function(t2) { (t2 = +t2 || 0) > 268435455 || t2 < 0 ? function(t3, e2) { var r2, n2; @@ -21313,11 +21659,11 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ return r3; }(this.buf, t2, this.pos); var r2 = this.pos - e2; - r2 >= 128 && vl(e2, r2, this), this.pos = e2 - 1, this.writeVarint(r2), this.pos += r2; + r2 >= 128 && eu(e2, r2, this), this.pos = e2 - 1, this.writeVarint(r2), this.pos += r2; }, writeFloat: function(t2) { - this.realloc(4), hl(this.buf, t2, this.pos, true, 23, 4), this.pos += 4; + this.realloc(4), Hs(this.buf, t2, this.pos, true, 23, 4), this.pos += 4; }, writeDouble: function(t2) { - this.realloc(8), hl(this.buf, t2, this.pos, true, 52, 8), this.pos += 8; + this.realloc(8), Hs(this.buf, t2, this.pos, true, 52, 8), this.pos += 8; }, writeBytes: function(t2) { var e2 = t2.length; this.writeVarint(e2), this.realloc(e2); @@ -21328,339 +21674,291 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ var r2 = this.pos; t2(e2, this); var n2 = this.pos - r2; - n2 >= 128 && vl(r2, n2, this), this.pos = r2 - 1, this.writeVarint(n2), this.pos += n2; + n2 >= 128 && eu(r2, n2, this), this.pos = r2 - 1, this.writeVarint(n2), this.pos += n2; }, writeMessage: function(t2, e2, r2) { - this.writeTag(t2, pl.Bytes), this.writeRawMessage(e2, r2); + this.writeTag(t2, $s.Bytes), this.writeRawMessage(e2, r2); }, writePackedVarint: function(t2, e2) { - e2.length && this.writeMessage(t2, bl, e2); + e2.length && this.writeMessage(t2, ru, e2); }, writePackedSVarint: function(t2, e2) { - e2.length && this.writeMessage(t2, wl, e2); + e2.length && this.writeMessage(t2, nu, e2); }, writePackedBoolean: function(t2, e2) { - e2.length && this.writeMessage(t2, kl, e2); + e2.length && this.writeMessage(t2, ou, e2); }, writePackedFloat: function(t2, e2) { - e2.length && this.writeMessage(t2, _l, e2); + e2.length && this.writeMessage(t2, iu, e2); }, writePackedDouble: function(t2, e2) { - e2.length && this.writeMessage(t2, Al, e2); + e2.length && this.writeMessage(t2, au, e2); }, writePackedFixed32: function(t2, e2) { - e2.length && this.writeMessage(t2, Sl, e2); + e2.length && this.writeMessage(t2, su, e2); }, writePackedSFixed32: function(t2, e2) { - e2.length && this.writeMessage(t2, Il, e2); + e2.length && this.writeMessage(t2, uu, e2); }, writePackedFixed64: function(t2, e2) { - e2.length && this.writeMessage(t2, Ml, e2); + e2.length && this.writeMessage(t2, lu, e2); }, writePackedSFixed64: function(t2, e2) { - e2.length && this.writeMessage(t2, zl, e2); + e2.length && this.writeMessage(t2, pu, e2); }, writeBytesField: function(t2, e2) { - this.writeTag(t2, pl.Bytes), this.writeBytes(e2); + this.writeTag(t2, $s.Bytes), this.writeBytes(e2); }, writeFixed32Field: function(t2, e2) { - this.writeTag(t2, pl.Fixed32), this.writeFixed32(e2); + this.writeTag(t2, $s.Fixed32), this.writeFixed32(e2); }, writeSFixed32Field: function(t2, e2) { - this.writeTag(t2, pl.Fixed32), this.writeSFixed32(e2); + this.writeTag(t2, $s.Fixed32), this.writeSFixed32(e2); }, writeFixed64Field: function(t2, e2) { - this.writeTag(t2, pl.Fixed64), this.writeFixed64(e2); + this.writeTag(t2, $s.Fixed64), this.writeFixed64(e2); }, writeSFixed64Field: function(t2, e2) { - this.writeTag(t2, pl.Fixed64), this.writeSFixed64(e2); + this.writeTag(t2, $s.Fixed64), this.writeSFixed64(e2); }, writeVarintField: function(t2, e2) { - this.writeTag(t2, pl.Varint), this.writeVarint(e2); + this.writeTag(t2, $s.Varint), this.writeVarint(e2); }, writeSVarintField: function(t2, e2) { - this.writeTag(t2, pl.Varint), this.writeSVarint(e2); + this.writeTag(t2, $s.Varint), this.writeSVarint(e2); }, writeStringField: function(t2, e2) { - this.writeTag(t2, pl.Bytes), this.writeString(e2); + this.writeTag(t2, $s.Bytes), this.writeString(e2); }, writeFloatField: function(t2, e2) { - this.writeTag(t2, pl.Fixed32), this.writeFloat(e2); + this.writeTag(t2, $s.Fixed32), this.writeFloat(e2); }, writeDoubleField: function(t2, e2) { - this.writeTag(t2, pl.Fixed64), this.writeDouble(e2); + this.writeTag(t2, $s.Fixed64), this.writeDouble(e2); }, writeBooleanField: function(t2, e2) { this.writeVarintField(t2, Boolean(e2)); } }; - class Ll { - constructor(t2, { pixelRatio: e2, version: r2, stretchX: n2, stretchY: i2, content: a2 }) { - this.paddedRect = t2, this.pixelRatio = e2, this.stretchX = n2, this.stretchY = i2, this.content = a2, this.version = r2; - } - get tl() { - return [this.paddedRect.x + 1, this.paddedRect.y + 1]; - } - get br() { - return [this.paddedRect.x + this.paddedRect.w - 1, this.paddedRect.y + this.paddedRect.h - 1]; - } - get tlbr() { - return this.tl.concat(this.br); - } - get displaySize() { - return [(this.paddedRect.w - 2) / this.pixelRatio, (this.paddedRect.h - 2) / this.pixelRatio]; - } - } - class Dl { - constructor(t2, e2) { - const r2 = {}, n2 = {}; - this.haveRenderCallbacks = []; - const i2 = []; - this.addImages(t2, r2, i2), this.addImages(e2, n2, i2); - const { w: a2, h: s2 } = Tl(i2), o2 = new Bs({ width: a2 || 1, height: s2 || 1 }); - for (const e3 in t2) { - const n3 = t2[e3], i3 = r2[e3].paddedRect; - Bs.copy(n3.data, o2, { x: 0, y: 0 }, { x: i3.x + 1, y: i3.y + 1 }, n3.data); - } - for (const t3 in e2) { - const r3 = e2[t3], i3 = n2[t3].paddedRect, a3 = i3.x + 1, s3 = i3.y + 1, l2 = r3.data.width, u2 = r3.data.height; - Bs.copy(r3.data, o2, { x: 0, y: 0 }, { x: a3, y: s3 }, r3.data), Bs.copy(r3.data, o2, { x: 0, y: u2 - 1 }, { x: a3, y: s3 - 1 }, { width: l2, height: 1 }), Bs.copy(r3.data, o2, { x: 0, y: 0 }, { x: a3, y: s3 + u2 }, { width: l2, height: 1 }), Bs.copy(r3.data, o2, { x: l2 - 1, y: 0 }, { x: a3 - 1, y: s3 }, { width: 1, height: u2 }), Bs.copy(r3.data, o2, { x: 0, y: 0 }, { x: a3 + l2, y: s3 }, { width: 1, height: u2 }); - } - this.image = o2, this.iconPositions = r2, this.patternPositions = n2; - } - addImages(t2, e2, r2) { - for (const n2 in t2) { - const i2 = t2[n2], a2 = { x: 0, y: 0, w: i2.data.width + 2, h: i2.data.height + 2 }; - r2.push(a2), e2[n2] = new Ll(a2, i2), i2.hasRenderCallback && this.haveRenderCallbacks.push(n2); - } - } - patchUpdatedImages(t2, e2) { - t2.dispatchRenderCallbacks(this.haveRenderCallbacks); - for (const r2 in t2.updatedImages) - this.patchUpdatedImage(this.iconPositions[r2], t2.getImage(r2), e2), this.patchUpdatedImage(this.patternPositions[r2], t2.getImage(r2), e2); - } - patchUpdatedImage(t2, e2, r2) { - if (!t2 || !e2) - return; - if (t2.version === e2.version) - return; + var gu = function(t2, e2) { + var r2 = e2.pixelRatio, n2 = e2.version, i2 = e2.stretchX, a2 = e2.stretchY, o2 = e2.content; + this.paddedRect = t2, this.pixelRatio = r2, this.stretchX = i2, this.stretchY = a2, this.content = o2, this.version = n2; + }, xu = { tl: { configurable: true }, br: { configurable: true }, tlbr: { configurable: true }, displaySize: { configurable: true } }; + xu.tl.get = function() { + return [this.paddedRect.x + 1, this.paddedRect.y + 1]; + }, xu.br.get = function() { + return [this.paddedRect.x + this.paddedRect.w - 1, this.paddedRect.y + this.paddedRect.h - 1]; + }, xu.tlbr.get = function() { + return this.tl.concat(this.br); + }, xu.displaySize.get = function() { + return [(this.paddedRect.w - 2) / this.pixelRatio, (this.paddedRect.h - 2) / this.pixelRatio]; + }, Object.defineProperties(gu.prototype, xu); + var bu = function(t2, e2) { + var r2 = {}, n2 = {}; + this.haveRenderCallbacks = []; + var i2 = []; + this.addImages(t2, r2, i2), this.addImages(e2, n2, i2); + var a2 = vu(i2), o2 = new xo({ width: a2.w || 1, height: a2.h || 1 }); + for (var s2 in t2) { + var u2 = t2[s2], l2 = r2[s2].paddedRect; + xo.copy(u2.data, o2, { x: 0, y: 0 }, { x: l2.x + 1, y: l2.y + 1 }, u2.data); + } + for (var p3 in e2) { + var c3 = e2[p3], h3 = n2[p3].paddedRect, f2 = h3.x + 1, y3 = h3.y + 1, d2 = c3.data.width, m2 = c3.data.height; + xo.copy(c3.data, o2, { x: 0, y: 0 }, { x: f2, y: y3 }, c3.data), xo.copy(c3.data, o2, { x: 0, y: m2 - 1 }, { x: f2, y: y3 - 1 }, { width: d2, height: 1 }), xo.copy(c3.data, o2, { x: 0, y: 0 }, { x: f2, y: y3 + m2 }, { width: d2, height: 1 }), xo.copy(c3.data, o2, { x: d2 - 1, y: 0 }, { x: f2 - 1, y: y3 }, { width: 1, height: m2 }), xo.copy(c3.data, o2, { x: 0, y: 0 }, { x: f2 + d2, y: y3 }, { width: 1, height: m2 }); + } + this.image = o2, this.iconPositions = r2, this.patternPositions = n2; + }; + bu.prototype.addImages = function(t2, e2, r2) { + for (var n2 in t2) { + var i2 = t2[n2], a2 = { x: 0, y: 0, w: i2.data.width + 2, h: i2.data.height + 2 }; + r2.push(a2), e2[n2] = new gu(a2, i2), i2.hasRenderCallback && this.haveRenderCallbacks.push(n2); + } + }, bu.prototype.patchUpdatedImages = function(t2, e2) { + for (var r2 in t2.dispatchRenderCallbacks(this.haveRenderCallbacks), t2.updatedImages) + this.patchUpdatedImage(this.iconPositions[r2], t2.getImage(r2), e2), this.patchUpdatedImage(this.patternPositions[r2], t2.getImage(r2), e2); + }, bu.prototype.patchUpdatedImage = function(t2, e2, r2) { + if (t2 && e2 && t2.version !== e2.version) { t2.version = e2.version; - const [n2, i2] = t2.tl; - r2.update(e2.data, void 0, { x: n2, y: i2 }); - } - } - Mn("ImagePosition", Ll), Mn("ImageAtlas", Dl), t.WritingMode = void 0, (fl = t.WritingMode || (t.WritingMode = {}))[fl.none = 0] = "none", fl[fl.horizontal = 1] = "horizontal", fl[fl.vertical = 2] = "vertical", fl[fl.horizontalOnly = 3] = "horizontalOnly"; - const $l = -17; - class Rl { - constructor() { - this.scale = 1, this.fontStack = "", this.imageName = null; - } - static forText(t2, e2) { - const r2 = new Rl(); - return r2.scale = t2 || 1, r2.fontStack = e2, r2; - } - static forImage(t2) { - const e2 = new Rl(); - return e2.imageName = t2, e2; - } - } - class Ol { - constructor() { - this.text = "", this.sectionIndex = [], this.sections = [], this.imageSectionID = null; - } - static fromFeature(t2, e2) { - const r2 = new Ol(); - for (let n2 = 0; n2 < t2.sections.length; n2++) { - const i2 = t2.sections[n2]; - i2.image ? r2.addImageSection(i2) : r2.addTextSection(i2, e2); - } - return r2; - } - length() { - return this.text.length; - } - getSection(t2) { - return this.sections[this.sectionIndex[t2]]; - } - getSectionIndex(t2) { - return this.sectionIndex[t2]; + var n2 = t2.tl; + r2.update(e2.data, void 0, { x: n2[0], y: n2[1] }); } - getCharCode(t2) { - return this.text.charCodeAt(t2); - } - verticalizePunctuation() { - this.text = function(t2) { - let e2 = ""; - for (let r2 = 0; r2 < t2.length; r2++) { - const n2 = t2.charCodeAt(r2 + 1) || null, i2 = t2.charCodeAt(r2 - 1) || null; - e2 += n2 && Dn(n2) && !ol[t2[r2 + 1]] || i2 && Dn(i2) && !ol[t2[r2 - 1]] || !ol[t2[r2]] ? t2[r2] : ol[t2[r2]]; - } - return e2; - }(this.text); - } - trim() { - let t2 = 0; - for (let e3 = 0; e3 < this.text.length && ql[this.text.charCodeAt(e3)]; e3++) - t2++; - let e2 = this.text.length; - for (let r2 = this.text.length - 1; r2 >= 0 && r2 >= t2 && ql[this.text.charCodeAt(r2)]; r2--) - e2--; - this.text = this.text.substring(t2, e2), this.sectionIndex = this.sectionIndex.slice(t2, e2); - } - substring(t2, e2) { - const r2 = new Ol(); - return r2.text = this.text.substring(t2, e2), r2.sectionIndex = this.sectionIndex.slice(t2, e2), r2.sections = this.sections, r2; - } - toString() { - return this.text; - } - getMaxScale() { - return this.sectionIndex.reduce((t2, e2) => Math.max(t2, this.sections[e2].scale), 0); - } - addTextSection(t2, e2) { - this.text += t2.text, this.sections.push(Rl.forText(t2.scale, t2.fontStack || e2)); - const r2 = this.sections.length - 1; - for (let e3 = 0; e3 < t2.text.length; ++e3) - this.sectionIndex.push(r2); - } - addImageSection(t2) { - const e2 = t2.image ? t2.image.name : ""; - if (0 === e2.length) - return void d("Can't add FormattedSection with an empty image."); - const r2 = this.getNextImageSectionCharCode(); - r2 ? (this.text += String.fromCharCode(r2), this.sections.push(Rl.forImage(e2)), this.sectionIndex.push(this.sections.length - 1)) : d("Reached maximum number of images 6401"); - } - getNextImageSectionCharCode() { - return this.imageSectionID ? this.imageSectionID >= 63743 ? null : ++this.imageSectionID : (this.imageSectionID = 57344, this.imageSectionID); - } - } - function Ul(e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, d2, y3, m2) { - const g2 = Ol.fromFeature(e2, a2); - let x2; - p3 === t.WritingMode.vertical && g2.verticalizePunctuation(); - const { processBidirectionalText: v3, processStyledBidirectionalText: b2 } = Wn; - if (v3 && 1 === g2.sections.length) { - x2 = []; - const t2 = v3(g2.toString(), Xl(g2, c3, s2, r2, i2, d2, y3)); - for (const e3 of t2) { - const t3 = new Ol(); - t3.text = e3, t3.sections = g2.sections; - for (let r3 = 0; r3 < e3.length; r3++) - t3.sectionIndex.push(0); - x2.push(t3); - } - } else if (b2) { - x2 = []; - const t2 = b2(g2.text, g2.sectionIndex, Xl(g2, c3, s2, r2, i2, d2, y3)); - for (const e3 of t2) { - const t3 = new Ol(); - t3.text = e3[0], t3.sectionIndex = e3[1], t3.sections = g2.sections, x2.push(t3); + }, On("ImagePosition", gu), On("ImageAtlas", bu); + var wu = { horizontal: 1, vertical: 2, horizontalOnly: 3 }, _u = function() { + this.scale = 1, this.fontStack = "", this.imageName = null; + }; + _u.forText = function(t2, e2) { + var r2 = new _u(); + return r2.scale = t2 || 1, r2.fontStack = e2, r2; + }, _u.forImage = function(t2) { + var e2 = new _u(); + return e2.imageName = t2, e2; + }; + var Au = function() { + this.text = "", this.sectionIndex = [], this.sections = [], this.imageSectionID = null; + }; + function Su(t2, e2, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2) { + var m2, v3 = Au.fromFeature(t2, i2); + c3 === wu.vertical && v3.verticalizePunctuation(); + var g2 = oi.processBidirectionalText, x2 = oi.processStyledBidirectionalText; + if (g2 && 1 === v3.sections.length) { + m2 = []; + for (var b2 = 0, w2 = g2(v3.toString(), Mu(v3, l2, a2, e2, n2, f2, y3)); b2 < w2.length; b2 += 1) { + var _2 = w2[b2], A3 = new Au(); + A3.text = _2, A3.sections = v3.sections; + for (var S2 = 0; S2 < _2.length; S2++) + A3.sectionIndex.push(0); + m2.push(A3); + } + } else if (x2) { + m2 = []; + for (var k2 = 0, I3 = x2(v3.text, v3.sectionIndex, Mu(v3, l2, a2, e2, n2, f2, y3)); k2 < I3.length; k2 += 1) { + var z2 = I3[k2], C2 = new Au(); + C2.text = z2[0], C2.sectionIndex = z2[1], C2.sections = v3.sections, m2.push(C2); } } else - x2 = function(t2, e3) { - const r3 = [], n3 = t2.text; - let i3 = 0; - for (const n4 of e3) - r3.push(t2.substring(i3, n4)), i3 = n4; - return i3 < n3.length && r3.push(t2.substring(i3, n3.length)), r3; - }(g2, Xl(g2, c3, s2, r2, i2, d2, y3)); - const w2 = [], _2 = { positionedLines: w2, text: g2.toString(), top: h3[1], bottom: h3[1], left: h3[0], right: h3[0], writingMode: p3, iconsInText: false, verticalizable: false }; - return function(e3, r3, n3, i3, a3, s3, o3, l3, u3, c4, h4, p4) { - let f3 = 0, d3 = $l, y4 = 0, m3 = 0; - const g3 = "right" === l3 ? 1 : "left" === l3 ? 0 : 0.5; - let x3 = 0; - for (const o4 of a3) { - o4.trim(); - const a4 = o4.getMaxScale(), l4 = (a4 - 1) * ll, b4 = { positionedGlyphs: [], lineOffset: 0 }; - e3.positionedLines[x3] = b4; - const w4 = b4.positionedGlyphs; - let _4 = 0; - if (!o4.length()) { - d3 += s3, ++x3; - continue; + m2 = function(t3, e3) { + for (var r3 = [], n3 = t3.text, i3 = 0, a3 = 0, o3 = e3; a3 < o3.length; a3 += 1) { + var s3 = o3[a3]; + r3.push(t3.substring(i3, s3)), i3 = s3; } - for (let s4 = 0; s4 < o4.length(); s4++) { - const y5 = o4.getSection(s4), m4 = o4.getSectionIndex(s4), g4 = o4.getCharCode(s4); - let x4 = 0, b5 = null, A4 = null, k2 = null, S2 = ll; - const I3 = !(u3 === t.WritingMode.horizontal || !h4 && !Ln(g4) || h4 && (ql[g4] || (v4 = g4, Vn.Arabic(v4) || Vn["Arabic Supplement"](v4) || Vn["Arabic Extended-A"](v4) || Vn["Arabic Presentation Forms-A"](v4) || Vn["Arabic Presentation Forms-B"](v4)))); - if (y5.imageName) { - const t2 = i3[y5.imageName]; - if (!t2) - continue; - k2 = y5.imageName, e3.iconsInText = e3.iconsInText || true, A4 = t2.paddedRect; - const r4 = t2.displaySize; - y5.scale = y5.scale * ll / p4, b5 = { width: r4[0], height: r4[1], left: 1, top: -3, advance: I3 ? r4[1] : r4[0] }, x4 = l4 + (ll - r4[1] * y5.scale), S2 = b5.advance; - const n4 = I3 ? r4[0] * y5.scale - ll * a4 : r4[1] * y5.scale - ll * a4; - n4 > 0 && n4 > _4 && (_4 = n4); - } else { - const t2 = n3[y5.fontStack], e4 = t2 && t2[g4]; - if (e4 && e4.rect) - A4 = e4.rect, b5 = e4.metrics; - else { - const t3 = r3[y5.fontStack], e5 = t3 && t3[g4]; - if (!e5) + return i3 < n3.length && r3.push(t3.substring(i3, n3.length)), r3; + }(v3, Mu(v3, l2, a2, e2, n2, f2, y3)); + var E2 = [], P2 = { positionedLines: E2, text: v3.toString(), top: p3[1], bottom: p3[1], left: p3[0], right: p3[0], writingMode: c3, iconsInText: false, verticalizable: false }; + return function(t3, e3, r3, n3, i3, a3, o3, s3, u3, l3, p4, c4) { + for (var h4 = 0, f3 = -17, y4 = 0, d3 = 0, m3 = "right" === s3 ? 1 : "left" === s3 ? 0 : 0.5, v4 = 0, g3 = 0, x3 = i3; g3 < x3.length; g3 += 1) { + var b3 = x3[g3]; + b3.trim(); + var w3 = b3.getMaxScale(), _3 = 24 * (w3 - 1), A4 = { positionedGlyphs: [], lineOffset: 0 }; + t3.positionedLines[v4] = A4; + var S3 = A4.positionedGlyphs, k3 = 0; + if (b3.length()) { + for (var I4 = 0; I4 < b3.length(); I4++) { + var z3 = b3.getSection(I4), C3 = b3.getSectionIndex(I4), E3 = b3.getCharCode(I4), P3 = 0, M2 = null, B2 = null, T2 = null, V3 = 24, F2 = !(u3 === wu.horizontal || !p4 && !Xn(E3) || p4 && (ku[E3] || (K2 = E3, Gn.Arabic(K2) || Gn["Arabic Supplement"](K2) || Gn["Arabic Extended-A"](K2) || Gn["Arabic Presentation Forms-A"](K2) || Gn["Arabic Presentation Forms-B"](K2)))); + if (z3.imageName) { + var D2 = n3[z3.imageName]; + if (!D2) continue; - b5 = e5.metrics; + T2 = z3.imageName, t3.iconsInText = t3.iconsInText || true, B2 = D2.paddedRect; + var L2 = D2.displaySize; + z3.scale = 24 * z3.scale / c4, P3 = _3 + (24 - L2[1] * z3.scale), V3 = (M2 = { width: L2[0], height: L2[1], left: 1, top: -3, advance: F2 ? L2[1] : L2[0] }).advance; + var O3 = F2 ? L2[0] * z3.scale - 24 * w3 : L2[1] * z3.scale - 24 * w3; + O3 > 0 && O3 > k3 && (k3 = O3); + } else { + var R2 = r3[z3.fontStack], U2 = R2 && R2[E3]; + if (U2 && U2.rect) + B2 = U2.rect, M2 = U2.metrics; + else { + var j2 = e3[z3.fontStack], q2 = j2 && j2[E3]; + if (!q2) + continue; + M2 = q2.metrics; + } + P3 = 24 * (w3 - z3.scale); } - x4 = (a4 - y5.scale) * ll; + F2 ? (t3.verticalizable = true, S3.push({ glyph: E3, imageName: T2, x: h4, y: f3 + P3, vertical: F2, scale: z3.scale, fontStack: z3.fontStack, sectionIndex: C3, metrics: M2, rect: B2 }), h4 += V3 * z3.scale + l3) : (S3.push({ glyph: E3, imageName: T2, x: h4, y: f3 + P3, vertical: F2, scale: z3.scale, fontStack: z3.fontStack, sectionIndex: C3, metrics: M2, rect: B2 }), h4 += M2.advance * z3.scale + l3); } - I3 ? (e3.verticalizable = true, w4.push({ glyph: g4, imageName: k2, x: f3, y: d3 + x4, vertical: I3, scale: y5.scale, fontStack: y5.fontStack, sectionIndex: m4, metrics: b5, rect: A4 }), f3 += S2 * y5.scale + c4) : (w4.push({ glyph: g4, imageName: k2, x: f3, y: d3 + x4, vertical: I3, scale: y5.scale, fontStack: y5.fontStack, sectionIndex: m4, metrics: b5, rect: A4 }), f3 += b5.advance * y5.scale + c4); - } - 0 !== w4.length && (y4 = Math.max(f3 - c4, y4), Hl(w4, 0, w4.length - 1, g3, _4)), f3 = 0; - const A3 = s3 * a4 + _4; - b4.lineOffset = Math.max(_4, l4), d3 += A3, m3 = Math.max(A3, m3), ++x3; - } - var v4; - const b3 = d3 - $l, { horizontalAlign: w3, verticalAlign: _3 } = Yl(o3); - (function(t2, e4, r4, n4, i4, a4, s4, o4, l4) { - const u4 = (e4 - r4) * i4; - let c5 = 0; - c5 = a4 !== s4 ? -o4 * n4 - $l : (-n4 * l4 + 0.5) * s4; - for (const e5 of t2) - for (const t3 of e5.positionedGlyphs) - t3.x += u4, t3.y += c5; - })(e3.positionedLines, g3, w3, _3, y4, m3, s3, b3, a3.length), e3.top += -_3 * b3, e3.bottom = e3.top + b3, e3.left += -w3 * y4, e3.right = e3.left + y4; - }(_2, r2, n2, i2, x2, o2, l2, u2, p3, c3, f2, m2), !function(t2) { - for (const e3 of t2) - if (0 !== e3.positionedGlyphs.length) + 0 !== S3.length && (y4 = Math.max(h4 - l3, y4), Tu(S3, 0, S3.length - 1, m3, k3)), h4 = 0; + var N2 = a3 * w3 + k3; + A4.lineOffset = Math.max(k3, _3), f3 += N2, d3 = Math.max(N2, d3), ++v4; + } else + f3 += a3, ++v4; + } + var K2, G2 = f3 - -17, Z3 = Bu(o3), X2 = Z3.horizontalAlign, J2 = Z3.verticalAlign; + (function(t4, e4, r4, n4, i4, a4, o4, s4, u4) { + var l4, p5 = (e4 - r4) * i4; + l4 = a4 !== o4 ? -s4 * n4 - -17 : (-n4 * u4 + 0.5) * o4; + for (var c5 = 0, h5 = t4; c5 < h5.length; c5 += 1) + for (var f4 = 0, y5 = h5[c5].positionedGlyphs; f4 < y5.length; f4 += 1) { + var d4 = y5[f4]; + d4.x += p5, d4.y += l4; + } + })(t3.positionedLines, m3, X2, J2, y4, d3, a3, G2, i3.length), t3.top += -J2 * G2, t3.bottom = t3.top + G2, t3.left += -X2 * y4, t3.right = t3.left + y4; + }(P2, e2, r2, n2, m2, o2, s2, u2, c3, l2, h3, d2), !function(t3) { + for (var e3 = 0, r3 = t3; e3 < r3.length; e3 += 1) + if (0 !== r3[e3].positionedGlyphs.length) return false; return true; - }(w2) && _2; + }(E2) && P2; } - const ql = { 9: true, 10: true, 11: true, 12: true, 13: true, 32: true }, jl = { 10: true, 32: true, 38: true, 40: true, 41: true, 43: true, 45: true, 47: true, 173: true, 183: true, 8203: true, 8208: true, 8211: true, 8231: true }; - function Nl(t2, e2, r2, n2, i2, a2) { - if (e2.imageName) { - const t3 = n2[e2.imageName]; - return t3 ? t3.displaySize[0] * e2.scale * ll / a2 + i2 : 0; + Au.fromFeature = function(t2, e2) { + for (var r2 = new Au(), n2 = 0; n2 < t2.sections.length; n2++) { + var i2 = t2.sections[n2]; + i2.image ? r2.addImageSection(i2) : r2.addTextSection(i2, e2); } - { - const n3 = r2[e2.fontStack], a3 = n3 && n3[t2]; - return a3 ? a3.metrics.advance * e2.scale + i2 : 0; + return r2; + }, Au.prototype.length = function() { + return this.text.length; + }, Au.prototype.getSection = function(t2) { + return this.sections[this.sectionIndex[t2]]; + }, Au.prototype.getSectionIndex = function(t2) { + return this.sectionIndex[t2]; + }, Au.prototype.getCharCode = function(t2) { + return this.text.charCodeAt(t2); + }, Au.prototype.verticalizePunctuation = function() { + this.text = function(t2) { + for (var e2 = "", r2 = 0; r2 < t2.length; r2++) { + var n2 = t2.charCodeAt(r2 + 1) || null, i2 = t2.charCodeAt(r2 - 1) || null; + e2 += n2 && Jn(n2) && !Xs[t2[r2 + 1]] || i2 && Jn(i2) && !Xs[t2[r2 - 1]] || !Xs[t2[r2]] ? t2[r2] : Xs[t2[r2]]; + } + return e2; + }(this.text); + }, Au.prototype.trim = function() { + for (var t2 = 0, e2 = 0; e2 < this.text.length && ku[this.text.charCodeAt(e2)]; e2++) + t2++; + for (var r2 = this.text.length, n2 = this.text.length - 1; n2 >= 0 && n2 >= t2 && ku[this.text.charCodeAt(n2)]; n2--) + r2--; + this.text = this.text.substring(t2, r2), this.sectionIndex = this.sectionIndex.slice(t2, r2); + }, Au.prototype.substring = function(t2, e2) { + var r2 = new Au(); + return r2.text = this.text.substring(t2, e2), r2.sectionIndex = this.sectionIndex.slice(t2, e2), r2.sections = this.sections, r2; + }, Au.prototype.toString = function() { + return this.text; + }, Au.prototype.getMaxScale = function() { + var t2 = this; + return this.sectionIndex.reduce(function(e2, r2) { + return Math.max(e2, t2.sections[r2].scale); + }, 0); + }, Au.prototype.addTextSection = function(t2, e2) { + this.text += t2.text, this.sections.push(_u.forText(t2.scale, t2.fontStack || e2)); + for (var r2 = this.sections.length - 1, n2 = 0; n2 < t2.text.length; ++n2) + this.sectionIndex.push(r2); + }, Au.prototype.addImageSection = function(t2) { + var e2 = t2.image ? t2.image.name : ""; + if (0 !== e2.length) { + var r2 = this.getNextImageSectionCharCode(); + r2 ? (this.text += String.fromCharCode(r2), this.sections.push(_u.forImage(e2)), this.sectionIndex.push(this.sections.length - 1)) : A2("Reached maximum number of images 6401"); + } else + A2("Can't add FormattedSection with an empty image."); + }, Au.prototype.getNextImageSectionCharCode = function() { + return this.imageSectionID ? this.imageSectionID >= 63743 ? null : ++this.imageSectionID : (this.imageSectionID = 57344, this.imageSectionID); + }; + var ku = { 9: true, 10: true, 11: true, 12: true, 13: true, 32: true }, Iu = {}; + function zu(t2, e2, r2, n2, i2, a2) { + if (e2.imageName) { + var o2 = n2[e2.imageName]; + return o2 ? o2.displaySize[0] * e2.scale * 24 / a2 + i2 : 0; } + var s2 = r2[e2.fontStack], u2 = s2 && s2[t2]; + return u2 ? u2.metrics.advance * e2.scale + i2 : 0; } - function Zl(t2, e2, r2, n2) { - const i2 = Math.pow(t2 - e2, 2); + function Cu(t2, e2, r2, n2) { + var i2 = Math.pow(t2 - e2, 2); return n2 ? t2 < e2 ? i2 / 2 : 2 * i2 : i2 + Math.abs(r2) * r2; } - function Kl(t2, e2, r2) { - let n2 = 0; + function Eu(t2, e2, r2) { + var n2 = 0; return 10 === t2 && (n2 -= 1e4), r2 && (n2 += 150), 40 !== t2 && 65288 !== t2 || (n2 += 50), 41 !== e2 && 65289 !== e2 || (n2 += 50), n2; } - function Gl(t2, e2, r2, n2, i2, a2) { - let s2 = null, o2 = Zl(e2, r2, i2, a2); - for (const t3 of n2) { - const n3 = Zl(e2 - t3.x, r2, i2, a2) + t3.badness; - n3 <= o2 && (s2 = t3, o2 = n3); + function Pu(t2, e2, r2, n2, i2, a2) { + for (var o2 = null, s2 = Cu(e2, r2, i2, a2), u2 = 0, l2 = n2; u2 < l2.length; u2 += 1) { + var p3 = l2[u2], c3 = Cu(e2 - p3.x, r2, i2, a2) + p3.badness; + c3 <= s2 && (o2 = p3, s2 = c3); } - return { index: t2, x: e2, priorBreak: s2, badness: o2 }; + return { index: t2, x: e2, priorBreak: o2, badness: s2 }; } - function Jl(t2) { - return t2 ? Jl(t2.priorBreak).concat(t2.index) : []; - } - function Xl(t2, e2, r2, n2, i2, a2, s2) { + function Mu(t2, e2, r2, n2, i2, a2, o2) { if ("point" !== a2) return []; if (!t2) return []; - const o2 = [], l2 = function(t3, e3, r3, n3, i3, a3) { - let s3 = 0; - for (let r4 = 0; r4 < t3.length(); r4++) { - const o3 = t3.getSection(r4); - s3 += Nl(t3.getCharCode(r4), o3, n3, i3, e3, a3); - } - return s3 / Math.max(1, Math.ceil(s3 / r3)); - }(t2, e2, r2, n2, i2, s2), u2 = t2.text.indexOf("\u200B") >= 0; - let c3 = 0; - for (let r3 = 0; r3 < t2.length(); r3++) { - const a3 = t2.getSection(r3), p3 = t2.getCharCode(r3); - if (ql[p3] || (c3 += Nl(p3, a3, n2, i2, e2, s2)), r3 < t2.length() - 1) { - const e3 = !((h3 = p3) < 11904 || !(Vn["Bopomofo Extended"](h3) || Vn.Bopomofo(h3) || Vn["CJK Compatibility Forms"](h3) || Vn["CJK Compatibility Ideographs"](h3) || Vn["CJK Compatibility"](h3) || Vn["CJK Radicals Supplement"](h3) || Vn["CJK Strokes"](h3) || Vn["CJK Symbols and Punctuation"](h3) || Vn["CJK Unified Ideographs Extension A"](h3) || Vn["CJK Unified Ideographs"](h3) || Vn["Enclosed CJK Letters and Months"](h3) || Vn["Halfwidth and Fullwidth Forms"](h3) || Vn.Hiragana(h3) || Vn["Ideographic Description Characters"](h3) || Vn["Kangxi Radicals"](h3) || Vn["Katakana Phonetic Extensions"](h3) || Vn.Katakana(h3) || Vn["Vertical Forms"](h3) || Vn["Yi Radicals"](h3) || Vn["Yi Syllables"](h3))); - (jl[p3] || e3 || a3.imageName) && o2.push(Gl(r3 + 1, c3, l2, o2, Kl(p3, t2.getCharCode(r3 + 1), e3 && u2), false)); - } - } - var h3; - return Jl(Gl(t2.length(), c3, l2, o2, 0, true)); - } - function Yl(t2) { - let e2 = 0.5, r2 = 0.5; + for (var s2, u2 = [], l2 = function(t3, e3, r3, n3, i3, a3) { + for (var o3 = 0, s3 = 0; s3 < t3.length(); s3++) { + var u3 = t3.getSection(s3); + o3 += zu(t3.getCharCode(s3), u3, n3, i3, e3, a3); + } + return o3 / Math.max(1, Math.ceil(o3 / r3)); + }(t2, e2, r2, n2, i2, o2), p3 = t2.text.indexOf("\u200B") >= 0, c3 = 0, h3 = 0; h3 < t2.length(); h3++) { + var f2 = t2.getSection(h3), y3 = t2.getCharCode(h3); + if (ku[y3] || (c3 += zu(y3, f2, n2, i2, e2, o2)), h3 < t2.length() - 1) { + var d2 = !((s2 = y3) < 11904 || !(Gn["Bopomofo Extended"](s2) || Gn.Bopomofo(s2) || Gn["CJK Compatibility Forms"](s2) || Gn["CJK Compatibility Ideographs"](s2) || Gn["CJK Compatibility"](s2) || Gn["CJK Radicals Supplement"](s2) || Gn["CJK Strokes"](s2) || Gn["CJK Symbols and Punctuation"](s2) || Gn["CJK Unified Ideographs Extension A"](s2) || Gn["CJK Unified Ideographs"](s2) || Gn["Enclosed CJK Letters and Months"](s2) || Gn["Halfwidth and Fullwidth Forms"](s2) || Gn.Hiragana(s2) || Gn["Ideographic Description Characters"](s2) || Gn["Kangxi Radicals"](s2) || Gn["Katakana Phonetic Extensions"](s2) || Gn.Katakana(s2) || Gn["Vertical Forms"](s2) || Gn["Yi Radicals"](s2) || Gn["Yi Syllables"](s2))); + (Iu[y3] || d2 || f2.imageName) && u2.push(Pu(h3 + 1, c3, l2, u2, Eu(y3, t2.getCharCode(h3 + 1), d2 && p3), false)); + } + } + return function t3(e3) { + return e3 ? t3(e3.priorBreak).concat(e3.index) : []; + }(Pu(t2.length(), c3, l2, u2, 0, true)); + } + function Bu(t2) { + var e2 = 0.5, r2 = 0.5; switch (t2) { case "right": case "top-right": @@ -21685,303 +21983,263 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ } return { horizontalAlign: e2, verticalAlign: r2 }; } - function Hl(t2, e2, r2, n2, i2) { - if (!n2 && !i2) - return; - const a2 = t2[r2], s2 = (t2[r2].x + a2.metrics.advance * a2.scale) * n2; - for (let n3 = e2; n3 <= r2; n3++) - t2[n3].x -= s2, t2[n3].y += i2; - } - function Wl(t2, e2, r2) { - const { horizontalAlign: n2, verticalAlign: i2 } = Yl(r2), a2 = e2[0] - t2.displaySize[0] * n2, s2 = e2[1] - t2.displaySize[1] * i2; - return { image: t2, top: s2, bottom: s2 + t2.displaySize[1], left: a2, right: a2 + t2.displaySize[0] }; + function Tu(t2, e2, r2, n2, i2) { + if (n2 || i2) + for (var a2 = t2[r2], o2 = (t2[r2].x + a2.metrics.advance * a2.scale) * n2, s2 = e2; s2 <= r2; s2++) + t2[s2].x -= o2, t2[s2].y += i2; } - function Ql(t2, e2, r2, n2, i2, a2) { - const s2 = t2.image; - let o2; + function Vu(t2, e2, r2, n2, i2, a2) { + var o2, s2 = t2.image; if (s2.content) { - const t3 = s2.content, e3 = s2.pixelRatio || 1; - o2 = [t3[0] / e3, t3[1] / e3, s2.displaySize[0] - t3[2] / e3, s2.displaySize[1] - t3[3] / e3]; - } - const l2 = e2.left * a2, u2 = e2.right * a2; - let c3, h3, p3, f2; - "width" === r2 || "both" === r2 ? (f2 = i2[0] + l2 - n2[3], h3 = i2[0] + u2 + n2[1]) : (f2 = i2[0] + (l2 + u2 - s2.displaySize[0]) / 2, h3 = f2 + s2.displaySize[0]); - const d2 = e2.top * a2, y3 = e2.bottom * a2; - return "height" === r2 || "both" === r2 ? (c3 = i2[1] + d2 - n2[0], p3 = i2[1] + y3 + n2[2]) : (c3 = i2[1] + (d2 + y3 - s2.displaySize[1]) / 2, p3 = c3 + s2.displaySize[1]), { image: s2, top: c3, right: h3, bottom: p3, left: f2, collisionPadding: o2 }; - } - const tu = 128; - function eu(t2, e2) { - const { expression: r2 } = e2; + var u2 = s2.content, l2 = s2.pixelRatio || 1; + o2 = [u2[0] / l2, u2[1] / l2, s2.displaySize[0] - u2[2] / l2, s2.displaySize[1] - u2[3] / l2]; + } + var p3, c3, h3, f2, y3 = e2.left * a2, d2 = e2.right * a2; + "width" === r2 || "both" === r2 ? (f2 = i2[0] + y3 - n2[3], c3 = i2[0] + d2 + n2[1]) : c3 = (f2 = i2[0] + (y3 + d2 - s2.displaySize[0]) / 2) + s2.displaySize[0]; + var m2 = e2.top * a2, v3 = e2.bottom * a2; + return "height" === r2 || "both" === r2 ? (p3 = i2[1] + m2 - n2[0], h3 = i2[1] + v3 + n2[2]) : h3 = (p3 = i2[1] + (m2 + v3 - s2.displaySize[1]) / 2) + s2.displaySize[1], { image: s2, top: p3, right: c3, bottom: h3, left: f2, collisionPadding: o2 }; + } + Iu[10] = true, Iu[32] = true, Iu[38] = true, Iu[40] = true, Iu[41] = true, Iu[43] = true, Iu[45] = true, Iu[47] = true, Iu[173] = true, Iu[183] = true, Iu[8203] = true, Iu[8208] = true, Iu[8211] = true, Iu[8231] = true; + var Fu = function(t2) { + function e2(e3, r2, n2, i2) { + t2.call(this, e3, r2), this.angle = n2, void 0 !== i2 && (this.segment = i2); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.clone = function() { + return new e2(this.x, this.y, this.angle, this.segment); + }, e2; + }(i); + function Du(t2, e2) { + var r2 = e2.expression; if ("constant" === r2.kind) - return { kind: "constant", layoutSize: r2.evaluate(new Qn(t2 + 1)) }; + return { kind: "constant", layoutSize: r2.evaluate(new si(t2 + 1)) }; if ("source" === r2.kind) return { kind: "source" }; - { - const { zoomStops: e3, interpolationType: n2 } = r2; - let i2 = 0; - for (; i2 < e3.length && e3[i2] <= t2; ) - i2++; - i2 = Math.max(0, i2 - 1); - let a2 = i2; - for (; a2 < e3.length && e3[a2] < t2 + 1; ) - a2++; - a2 = Math.min(e3.length - 1, a2); - const s2 = e3[i2], o2 = e3[a2]; - return "composite" === r2.kind ? { kind: "composite", minZoom: s2, maxZoom: o2, interpolationType: n2 } : { kind: "camera", minZoom: s2, maxZoom: o2, minSize: r2.evaluate(new Qn(s2)), maxSize: r2.evaluate(new Qn(o2)), interpolationType: n2 }; - } - } - class ru extends S { - constructor(t2, e2, r2, n2) { - super(t2, e2), this.angle = r2, void 0 !== n2 && (this.segment = n2); - } - clone() { - return new ru(this.x, this.y, this.angle, this.segment); + for (var n2 = r2.zoomStops, i2 = r2.interpolationType, a2 = 0; a2 < n2.length && n2[a2] <= t2; ) + a2++; + for (var o2 = a2 = Math.max(0, a2 - 1); o2 < n2.length && n2[o2] < t2 + 1; ) + o2++; + o2 = Math.min(n2.length - 1, o2); + var s2 = n2[a2], u2 = n2[o2]; + return "composite" === r2.kind ? { kind: "composite", minZoom: s2, maxZoom: u2, interpolationType: i2 } : { kind: "camera", minZoom: s2, maxZoom: u2, minSize: r2.evaluate(new si(s2)), maxSize: r2.evaluate(new si(u2)), interpolationType: i2 }; + } + function Lu(t2, e2, r2) { + var n2 = e2.uSize, i2 = r2.lowerSize; + return "source" === t2.kind ? i2 / 128 : "composite" === t2.kind ? Ke(i2 / 128, r2.upperSize / 128, e2.uSizeT) : n2; + } + function Ou(t2, e2) { + var r2 = 0, n2 = 0; + if ("constant" === t2.kind) + n2 = t2.layoutSize; + else if ("source" !== t2.kind) { + var i2 = t2.interpolationType, a2 = i2 ? p2(ar.interpolationFactor(i2, e2, t2.minZoom, t2.maxZoom), 0, 1) : 0; + "camera" === t2.kind ? n2 = Ke(t2.minSize, t2.maxSize, a2) : r2 = a2; } + return { uSizeT: r2, uSize: n2 }; } - function nu(t2, e2, r2, n2, i2) { + On("Anchor", Fu); + var Ru = Object.freeze({ __proto__: null, getSizeData: Du, evaluateSizeForFeature: Lu, evaluateSizeForZoom: Ou, SIZE_PACK_FACTOR: 128 }); + function Uu(t2, e2, r2, n2, i2) { if (void 0 === e2.segment) return true; - let a2 = e2, s2 = e2.segment + 1, o2 = 0; - for (; o2 > -r2 / 2; ) { - if (s2--, s2 < 0) + for (var a2 = e2, o2 = e2.segment + 1, s2 = 0; s2 > -r2 / 2; ) { + if (--o2 < 0) return false; - o2 -= t2[s2].dist(a2), a2 = t2[s2]; + s2 -= t2[o2].dist(a2), a2 = t2[o2]; } - o2 += t2[s2].dist(t2[s2 + 1]), s2++; - const l2 = []; - let u2 = 0; - for (; o2 < r2 / 2; ) { - const e3 = t2[s2], r3 = t2[s2 + 1]; - if (!r3) + s2 += t2[o2].dist(t2[o2 + 1]), o2++; + for (var u2 = [], l2 = 0; s2 < r2 / 2; ) { + var p3 = t2[o2], c3 = t2[o2 + 1]; + if (!c3) return false; - let a3 = t2[s2 - 1].angleTo(e3) - e3.angleTo(r3); - for (a3 = Math.abs((a3 + 3 * Math.PI) % (2 * Math.PI) - Math.PI), l2.push({ distance: o2, angleDelta: a3 }), u2 += a3; o2 - l2[0].distance > n2; ) - u2 -= l2.shift().angleDelta; - if (u2 > i2) + var h3 = t2[o2 - 1].angleTo(p3) - p3.angleTo(c3); + for (h3 = Math.abs((h3 + 3 * Math.PI) % (2 * Math.PI) - Math.PI), u2.push({ distance: s2, angleDelta: h3 }), l2 += h3; s2 - u2[0].distance > n2; ) + l2 -= u2.shift().angleDelta; + if (l2 > i2) return false; - s2++, o2 += e3.dist(r3); + o2++, s2 += p3.dist(c3); } return true; } - function iu(t2) { - let e2 = 0; - for (let r2 = 0; r2 < t2.length - 1; r2++) + function ju(t2) { + for (var e2 = 0, r2 = 0; r2 < t2.length - 1; r2++) e2 += t2[r2].dist(t2[r2 + 1]); return e2; } - function au(t2, e2, r2) { + function qu(t2, e2, r2) { return t2 ? 0.6 * e2 * r2 : 0; } - function su(t2, e2) { + function Nu(t2, e2) { return Math.max(t2 ? t2.right - t2.left : 0, e2 ? e2.right - e2.left : 0); } - function ou(t2, e2, r2, n2, i2, a2) { - const s2 = au(r2, i2, a2), o2 = su(r2, n2) * a2; - let l2 = 0; - const u2 = iu(t2) / 2; - for (let r3 = 0; r3 < t2.length - 1; r3++) { - const n3 = t2[r3], i3 = t2[r3 + 1], a3 = n3.dist(i3); - if (l2 + a3 > u2) { - const c3 = (u2 - l2) / a3, h3 = Se(n3.x, i3.x, c3), p3 = Se(n3.y, i3.y, c3), f2 = new ru(h3, p3, i3.angleTo(n3), r3); - return f2._round(), !s2 || nu(t2, f2, o2, s2, e2) ? f2 : void 0; - } - l2 += a3; - } - } - function lu(t2, e2, r2, n2, i2, a2, s2, o2, l2) { - const u2 = au(n2, a2, s2), c3 = su(n2, i2), h3 = c3 * s2, p3 = 0 === t2[0].x || t2[0].x === l2 || 0 === t2[0].y || t2[0].y === l2; - return e2 - h3 < e2 / 4 && (e2 = h3 + e2 / 4), uu(t2, p3 ? e2 / 2 * o2 % e2 : (c3 / 2 + 2 * a2) * s2 * o2 % e2, e2, u2, r2, h3, p3, false, l2); - } - function uu(t2, e2, r2, n2, i2, a2, s2, o2, l2) { - const u2 = a2 / 2, c3 = iu(t2); - let h3 = 0, p3 = e2 - r2, f2 = []; - for (let e3 = 0; e3 < t2.length - 1; e3++) { - const s3 = t2[e3], o3 = t2[e3 + 1], d2 = s3.dist(o3), y3 = o3.angleTo(s3); - for (; p3 + r2 < h3 + d2; ) { - p3 += r2; - const m2 = (p3 - h3) / d2, g2 = Se(s3.x, o3.x, m2), x2 = Se(s3.y, o3.y, m2); - if (g2 >= 0 && g2 < l2 && x2 >= 0 && x2 < l2 && p3 - u2 >= 0 && p3 + u2 <= c3) { - const r3 = new ru(g2, x2, y3, e3); - r3._round(), n2 && !nu(t2, r3, a2, n2, i2) || f2.push(r3); + function Ku(t2, e2, r2, n2, i2, a2) { + for (var o2 = qu(r2, i2, a2), s2 = Nu(r2, n2) * a2, u2 = 0, l2 = ju(t2) / 2, p3 = 0; p3 < t2.length - 1; p3++) { + var c3 = t2[p3], h3 = t2[p3 + 1], f2 = c3.dist(h3); + if (u2 + f2 > l2) { + var y3 = (l2 - u2) / f2, d2 = Ke(c3.x, h3.x, y3), m2 = Ke(c3.y, h3.y, y3), v3 = new Fu(d2, m2, h3.angleTo(c3), p3); + return v3._round(), !o2 || Uu(t2, v3, s2, o2, e2) ? v3 : void 0; + } + u2 += f2; + } + } + function Gu(t2, e2, r2, n2, i2, a2, o2, s2, u2) { + var l2 = qu(n2, a2, o2), p3 = Nu(n2, i2), c3 = p3 * o2, h3 = 0 === t2[0].x || t2[0].x === u2 || 0 === t2[0].y || t2[0].y === u2; + return e2 - c3 < e2 / 4 && (e2 = c3 + e2 / 4), function t3(e3, r3, n3, i3, a3, o3, s3, u3, l3) { + for (var p4 = o3 / 2, c4 = ju(e3), h4 = 0, f2 = r3 - n3, y3 = [], d2 = 0; d2 < e3.length - 1; d2++) { + for (var m2 = e3[d2], v3 = e3[d2 + 1], g2 = m2.dist(v3), x2 = v3.angleTo(m2); f2 + n3 < h4 + g2; ) { + var b2 = ((f2 += n3) - h4) / g2, w2 = Ke(m2.x, v3.x, b2), _2 = Ke(m2.y, v3.y, b2); + if (w2 >= 0 && w2 < l3 && _2 >= 0 && _2 < l3 && f2 - p4 >= 0 && f2 + p4 <= c4) { + var A3 = new Fu(w2, _2, x2, d2); + A3._round(), i3 && !Uu(e3, A3, o3, i3, a3) || y3.push(A3); + } } + h4 += g2; } - h3 += d2; - } - return o2 || f2.length || s2 || (f2 = uu(t2, h3 / 2, r2, n2, i2, a2, s2, true, l2)), f2; + return u3 || y3.length || s3 || (y3 = t3(e3, h4 / 2, n3, i3, a3, o3, s3, true, l3)), y3; + }(t2, h3 ? e2 / 2 * s2 % e2 : (p3 / 2 + 2 * a2) * o2 * s2 % e2, e2, l2, r2, c3, h3, false, u2); } - function cu(t2, e2, r2, n2, i2) { - const a2 = []; - for (let s2 = 0; s2 < t2.length; s2++) { - const o2 = t2[s2]; - let l2; - for (let t3 = 0; t3 < o2.length - 1; t3++) { - let s3 = o2[t3], u2 = o2[t3 + 1]; - s3.x < e2 && u2.x < e2 || (s3.x < e2 ? s3 = new S(e2, s3.y + (e2 - s3.x) / (u2.x - s3.x) * (u2.y - s3.y))._round() : u2.x < e2 && (u2 = new S(e2, s3.y + (e2 - s3.x) / (u2.x - s3.x) * (u2.y - s3.y))._round()), s3.y < r2 && u2.y < r2 || (s3.y < r2 ? s3 = new S(s3.x + (r2 - s3.y) / (u2.y - s3.y) * (u2.x - s3.x), r2)._round() : u2.y < r2 && (u2 = new S(s3.x + (r2 - s3.y) / (u2.y - s3.y) * (u2.x - s3.x), r2)._round()), s3.x >= n2 && u2.x >= n2 || (s3.x >= n2 ? s3 = new S(n2, s3.y + (n2 - s3.x) / (u2.x - s3.x) * (u2.y - s3.y))._round() : u2.x >= n2 && (u2 = new S(n2, s3.y + (n2 - s3.x) / (u2.x - s3.x) * (u2.y - s3.y))._round()), s3.y >= i2 && u2.y >= i2 || (s3.y >= i2 ? s3 = new S(s3.x + (i2 - s3.y) / (u2.y - s3.y) * (u2.x - s3.x), i2)._round() : u2.y >= i2 && (u2 = new S(s3.x + (i2 - s3.y) / (u2.y - s3.y) * (u2.x - s3.x), i2)._round()), l2 && s3.equals(l2[l2.length - 1]) || (l2 = [s3], a2.push(l2)), l2.push(u2))))); + function Zu(t2, e2, r2, n2, a2) { + for (var o2 = [], s2 = 0; s2 < t2.length; s2++) + for (var u2 = t2[s2], l2 = void 0, p3 = 0; p3 < u2.length - 1; p3++) { + var c3 = u2[p3], h3 = u2[p3 + 1]; + c3.x < e2 && h3.x < e2 || (c3.x < e2 ? c3 = new i(e2, c3.y + (e2 - c3.x) / (h3.x - c3.x) * (h3.y - c3.y))._round() : h3.x < e2 && (h3 = new i(e2, c3.y + (e2 - c3.x) / (h3.x - c3.x) * (h3.y - c3.y))._round()), c3.y < r2 && h3.y < r2 || (c3.y < r2 ? c3 = new i(c3.x + (r2 - c3.y) / (h3.y - c3.y) * (h3.x - c3.x), r2)._round() : h3.y < r2 && (h3 = new i(c3.x + (r2 - c3.y) / (h3.y - c3.y) * (h3.x - c3.x), r2)._round()), c3.x >= n2 && h3.x >= n2 || (c3.x >= n2 ? c3 = new i(n2, c3.y + (n2 - c3.x) / (h3.x - c3.x) * (h3.y - c3.y))._round() : h3.x >= n2 && (h3 = new i(n2, c3.y + (n2 - c3.x) / (h3.x - c3.x) * (h3.y - c3.y))._round()), c3.y >= a2 && h3.y >= a2 || (c3.y >= a2 ? c3 = new i(c3.x + (a2 - c3.y) / (h3.y - c3.y) * (h3.x - c3.x), a2)._round() : h3.y >= a2 && (h3 = new i(c3.x + (a2 - c3.y) / (h3.y - c3.y) * (h3.x - c3.x), a2)._round()), l2 && c3.equals(l2[l2.length - 1]) || o2.push(l2 = [c3]), l2.push(h3))))); } - } - return a2; + return o2; } - function hu(t2, e2, r2, n2) { - const i2 = [], a2 = t2.image, s2 = a2.pixelRatio, o2 = a2.paddedRect.w - 2, l2 = a2.paddedRect.h - 2, u2 = t2.right - t2.left, c3 = t2.bottom - t2.top, h3 = a2.stretchX || [[0, o2]], p3 = a2.stretchY || [[0, l2]], f2 = (t3, e3) => t3 + e3[1] - e3[0], d2 = h3.reduce(f2, 0), y3 = p3.reduce(f2, 0), m2 = o2 - d2, g2 = l2 - y3; - let x2 = 0, v3 = d2, b2 = 0, w2 = y3, _2 = 0, A3 = m2, k2 = 0, I3 = g2; - if (a2.content && n2) { - const t3 = a2.content; - x2 = pu(h3, 0, t3[0]), b2 = pu(p3, 0, t3[1]), v3 = pu(h3, t3[0], t3[2]), w2 = pu(p3, t3[1], t3[3]), _2 = t3[0] - x2, k2 = t3[1] - b2, A3 = t3[2] - t3[0] - v3, I3 = t3[3] - t3[1] - w2; - } - const M2 = (n3, i3, o3, l3) => { - const h4 = du(n3.stretch - x2, v3, u2, t2.left), p4 = yu(n3.fixed - _2, A3, n3.stretch, d2), f3 = du(i3.stretch - b2, w2, c3, t2.top), m3 = yu(i3.fixed - k2, I3, i3.stretch, y3), g3 = du(o3.stretch - x2, v3, u2, t2.left), M3 = yu(o3.fixed - _2, A3, o3.stretch, d2), z2 = du(l3.stretch - b2, w2, c3, t2.top), B2 = yu(l3.fixed - k2, I3, l3.stretch, y3), C2 = new S(h4, f3), P2 = new S(g3, f3), V3 = new S(g3, z2), E2 = new S(h4, z2), F2 = new S(p4 / s2, m3 / s2), T2 = new S(M3 / s2, B2 / s2), L2 = e2 * Math.PI / 180; - if (L2) { - const t3 = Math.sin(L2), e3 = Math.cos(L2), r3 = [e3, -t3, t3, e3]; - C2._matMult(r3), P2._matMult(r3), E2._matMult(r3), V3._matMult(r3); - } - const D2 = n3.stretch + n3.fixed, $2 = i3.stretch + i3.fixed; - return { tl: C2, tr: P2, bl: E2, br: V3, tex: { x: a2.paddedRect.x + 1 + D2, y: a2.paddedRect.y + 1 + $2, w: o3.stretch + o3.fixed - D2, h: l3.stretch + l3.fixed - $2 }, writingMode: void 0, glyphOffset: [0, 0], sectionIndex: 0, pixelOffsetTL: F2, pixelOffsetBR: T2, minFontScaleX: A3 / s2 / u2, minFontScaleY: I3 / s2 / c3, isSDF: r2 }; + function Xu(t2, e2, r2, n2) { + var a2 = [], o2 = t2.image, s2 = o2.pixelRatio, u2 = o2.paddedRect.w - 2, l2 = o2.paddedRect.h - 2, p3 = t2.right - t2.left, c3 = t2.bottom - t2.top, h3 = o2.stretchX || [[0, u2]], f2 = o2.stretchY || [[0, l2]], y3 = function(t3, e3) { + return t3 + e3[1] - e3[0]; + }, d2 = h3.reduce(y3, 0), m2 = f2.reduce(y3, 0), v3 = u2 - d2, g2 = l2 - m2, x2 = 0, b2 = d2, w2 = 0, _2 = m2, A3 = 0, S2 = v3, k2 = 0, I3 = g2; + if (o2.content && n2) { + var z2 = o2.content; + x2 = Ju(h3, 0, z2[0]), w2 = Ju(f2, 0, z2[1]), b2 = Ju(h3, z2[0], z2[2]), _2 = Ju(f2, z2[1], z2[3]), A3 = z2[0] - x2, k2 = z2[1] - w2, S2 = z2[2] - z2[0] - b2, I3 = z2[3] - z2[1] - _2; + } + var C2 = function(n3, a3, u3, l3) { + var h4 = Yu(n3.stretch - x2, b2, p3, t2.left), f3 = $u(n3.fixed - A3, S2, n3.stretch, d2), y4 = Yu(a3.stretch - w2, _2, c3, t2.top), v4 = $u(a3.fixed - k2, I3, a3.stretch, m2), g3 = Yu(u3.stretch - x2, b2, p3, t2.left), z3 = $u(u3.fixed - A3, S2, u3.stretch, d2), C3 = Yu(l3.stretch - w2, _2, c3, t2.top), E3 = $u(l3.fixed - k2, I3, l3.stretch, m2), P3 = new i(h4, y4), M3 = new i(g3, y4), B3 = new i(g3, C3), T3 = new i(h4, C3), V4 = new i(f3 / s2, v4 / s2), F2 = new i(z3 / s2, E3 / s2), D2 = e2 * Math.PI / 180; + if (D2) { + var L2 = Math.sin(D2), O3 = Math.cos(D2), R2 = [O3, -L2, L2, O3]; + P3._matMult(R2), M3._matMult(R2), T3._matMult(R2), B3._matMult(R2); + } + var U2 = n3.stretch + n3.fixed, j2 = a3.stretch + a3.fixed; + return { tl: P3, tr: M3, bl: T3, br: B3, tex: { x: o2.paddedRect.x + 1 + U2, y: o2.paddedRect.y + 1 + j2, w: u3.stretch + u3.fixed - U2, h: l3.stretch + l3.fixed - j2 }, writingMode: void 0, glyphOffset: [0, 0], sectionIndex: 0, pixelOffsetTL: V4, pixelOffsetBR: F2, minFontScaleX: S2 / s2 / p3, minFontScaleY: I3 / s2 / c3, isSDF: r2 }; }; - if (n2 && (a2.stretchX || a2.stretchY)) { - const t3 = fu(h3, m2, d2), e3 = fu(p3, g2, y3); - for (let r3 = 0; r3 < t3.length - 1; r3++) { - const n3 = t3[r3], a3 = t3[r3 + 1]; - for (let t4 = 0; t4 < e3.length - 1; t4++) - i2.push(M2(n3, e3[t4], a3, e3[t4 + 1])); - } - } else - i2.push(M2({ fixed: 0, stretch: -1 }, { fixed: 0, stretch: -1 }, { fixed: 0, stretch: o2 + 1 }, { fixed: 0, stretch: l2 + 1 })); - return i2; + if (n2 && (o2.stretchX || o2.stretchY)) + for (var E2 = Hu(h3, v3, d2), P2 = Hu(f2, g2, m2), M2 = 0; M2 < E2.length - 1; M2++) + for (var B2 = E2[M2], T2 = E2[M2 + 1], V3 = 0; V3 < P2.length - 1; V3++) + a2.push(C2(B2, P2[V3], T2, P2[V3 + 1])); + else + a2.push(C2({ fixed: 0, stretch: -1 }, { fixed: 0, stretch: -1 }, { fixed: 0, stretch: u2 + 1 }, { fixed: 0, stretch: l2 + 1 })); + return a2; } - function pu(t2, e2, r2) { - let n2 = 0; - for (const i2 of t2) - n2 += Math.max(e2, Math.min(r2, i2[1])) - Math.max(e2, Math.min(r2, i2[0])); + function Ju(t2, e2, r2) { + for (var n2 = 0, i2 = 0, a2 = t2; i2 < a2.length; i2 += 1) { + var o2 = a2[i2]; + n2 += Math.max(e2, Math.min(r2, o2[1])) - Math.max(e2, Math.min(r2, o2[0])); + } return n2; } - function fu(t2, e2, r2) { - const n2 = [{ fixed: -1, stretch: 0 }]; - for (const [e3, r3] of t2) { - const t3 = n2[n2.length - 1]; - n2.push({ fixed: e3 - t3.stretch, stretch: t3.stretch }), n2.push({ fixed: e3 - t3.stretch, stretch: t3.stretch + (r3 - e3) }); + function Hu(t2, e2, r2) { + for (var n2 = [{ fixed: -1, stretch: 0 }], i2 = 0, a2 = t2; i2 < a2.length; i2 += 1) { + var o2 = a2[i2], s2 = o2[0], u2 = o2[1], l2 = n2[n2.length - 1]; + n2.push({ fixed: s2 - l2.stretch, stretch: l2.stretch }), n2.push({ fixed: s2 - l2.stretch, stretch: l2.stretch + (u2 - s2) }); } return n2.push({ fixed: e2 + 1, stretch: r2 }), n2; } - function du(t2, e2, r2, n2) { + function Yu(t2, e2, r2, n2) { return t2 / e2 * r2 + n2; } - function yu(t2, e2, r2, n2) { + function $u(t2, e2, r2, n2) { return t2 - e2 * r2 / n2; } - Mn("Anchor", ru); - class mu { - constructor(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2) { - if (this.boxStartIndex = t2.length, l2) { - let t3 = a2.top, e3 = a2.bottom; - const r3 = a2.collisionPadding; - r3 && (t3 -= r3[1], e3 += r3[3]); - let n3 = e3 - t3; - n3 > 0 && (n3 = Math.max(10, n3), this.circleDiameter = n3); - } else { - let l3 = a2.top * s2 - o2[0], c3 = a2.bottom * s2 + o2[2], h3 = a2.left * s2 - o2[3], p3 = a2.right * s2 + o2[1]; - const f2 = a2.collisionPadding; - if (f2 && (h3 -= f2[0] * s2, l3 -= f2[1] * s2, p3 += f2[2] * s2, c3 += f2[3] * s2), u2) { - const t3 = new S(h3, l3), e3 = new S(p3, l3), r3 = new S(h3, c3), n3 = new S(p3, c3), i3 = u2 * Math.PI / 180; - t3._rotate(i3), e3._rotate(i3), r3._rotate(i3), n3._rotate(i3), h3 = Math.min(t3.x, e3.x, r3.x, n3.x), p3 = Math.max(t3.x, e3.x, r3.x, n3.x), l3 = Math.min(t3.y, e3.y, r3.y, n3.y), c3 = Math.max(t3.y, e3.y, r3.y, n3.y); - } - t2.emplaceBack(e2.x, e2.y, h3, l3, p3, c3, r2, n2, i2); - } - this.boxEndIndex = t2.length; - } - } - class gu { - constructor(t2 = [], e2 = xu) { - if (this.data = t2, this.length = this.data.length, this.compare = e2, this.length > 0) - for (let t3 = (this.length >> 1) - 1; t3 >= 0; t3--) - this._down(t3); - } - push(t2) { - this.data.push(t2), this.length++, this._up(this.length - 1); - } - pop() { - if (0 === this.length) - return; - const t2 = this.data[0], e2 = this.data.pop(); - return this.length--, this.length > 0 && (this.data[0] = e2, this._down(0)), t2; - } - peek() { - return this.data[0]; - } - _up(t2) { - const { data: e2, compare: r2 } = this, n2 = e2[t2]; - for (; t2 > 0; ) { - const i2 = t2 - 1 >> 1, a2 = e2[i2]; - if (r2(n2, a2) >= 0) - break; - e2[t2] = a2, t2 = i2; - } - e2[t2] = n2; - } - _down(t2) { - const { data: e2, compare: r2 } = this, n2 = this.length >> 1, i2 = e2[t2]; - for (; t2 < n2; ) { - let n3 = 1 + (t2 << 1), a2 = e2[n3]; - const s2 = n3 + 1; - if (s2 < this.length && r2(e2[s2], a2) < 0 && (n3 = s2, a2 = e2[s2]), r2(a2, i2) >= 0) - break; - e2[t2] = a2, t2 = n3; - } - e2[t2] = i2; - } - } - function xu(t2, e2) { + var Wu = function(t2, e2, r2, n2, a2, o2, s2, u2, l2, p3) { + if (this.boxStartIndex = t2.length, l2) { + var c3 = o2.top, h3 = o2.bottom, f2 = o2.collisionPadding; + f2 && (c3 -= f2[1], h3 += f2[3]); + var y3 = h3 - c3; + y3 > 0 && (y3 = Math.max(10, y3), this.circleDiameter = y3); + } else { + var d2 = o2.top * s2 - u2, m2 = o2.bottom * s2 + u2, v3 = o2.left * s2 - u2, g2 = o2.right * s2 + u2, x2 = o2.collisionPadding; + if (x2 && (v3 -= x2[0] * s2, d2 -= x2[1] * s2, g2 += x2[2] * s2, m2 += x2[3] * s2), p3) { + var b2 = new i(v3, d2), w2 = new i(g2, d2), _2 = new i(v3, m2), A3 = new i(g2, m2), S2 = p3 * Math.PI / 180; + b2._rotate(S2), w2._rotate(S2), _2._rotate(S2), A3._rotate(S2), v3 = Math.min(b2.x, w2.x, _2.x, A3.x), g2 = Math.max(b2.x, w2.x, _2.x, A3.x), d2 = Math.min(b2.y, w2.y, _2.y, A3.y), m2 = Math.max(b2.y, w2.y, _2.y, A3.y); + } + t2.emplaceBack(e2.x, e2.y, v3, d2, g2, m2, r2, n2, a2); + } + this.boxEndIndex = t2.length; + }, Qu = function(t2, e2) { + if (void 0 === t2 && (t2 = []), void 0 === e2 && (e2 = tl), this.data = t2, this.length = this.data.length, this.compare = e2, this.length > 0) + for (var r2 = (this.length >> 1) - 1; r2 >= 0; r2--) + this._down(r2); + }; + function tl(t2, e2) { return t2 < e2 ? -1 : t2 > e2 ? 1 : 0; } - function vu(t2, e2 = 1, r2 = false) { - let n2 = 1 / 0, i2 = 1 / 0, a2 = -1 / 0, s2 = -1 / 0; - const o2 = t2[0]; - for (let t3 = 0; t3 < o2.length; t3++) { - const e3 = o2[t3]; - (!t3 || e3.x < n2) && (n2 = e3.x), (!t3 || e3.y < i2) && (i2 = e3.y), (!t3 || e3.x > a2) && (a2 = e3.x), (!t3 || e3.y > s2) && (s2 = e3.y); - } - const l2 = Math.min(a2 - n2, s2 - i2); - let u2 = l2 / 2; - const c3 = new gu([], bu); - if (0 === l2) - return new S(n2, i2); - for (let e3 = n2; e3 < a2; e3 += l2) - for (let r3 = i2; r3 < s2; r3 += l2) - c3.push(new wu(e3 + u2, r3 + u2, u2, t2)); - let h3 = function(t3) { - let e3 = 0, r3 = 0, n3 = 0; - const i3 = t3[0]; - for (let t4 = 0, a3 = i3.length, s3 = a3 - 1; t4 < a3; s3 = t4++) { - const a4 = i3[t4], o3 = i3[s3], l3 = a4.x * o3.y - o3.x * a4.y; - r3 += (a4.x + o3.x) * l3, n3 += (a4.y + o3.y) * l3, e3 += 3 * l3; - } - return new wu(r3 / e3, n3 / e3, 0, t3); - }(t2), p3 = c3.length; - for (; c3.length; ) { - const n3 = c3.pop(); - (n3.d > h3.d || !h3.d) && (h3 = n3, r2 && console.log("found best %d after %d probes", Math.round(1e4 * n3.d) / 1e4, p3)), n3.max - h3.d <= e2 || (u2 = n3.h / 2, c3.push(new wu(n3.p.x - u2, n3.p.y - u2, u2, t2)), c3.push(new wu(n3.p.x + u2, n3.p.y - u2, u2, t2)), c3.push(new wu(n3.p.x - u2, n3.p.y + u2, u2, t2)), c3.push(new wu(n3.p.x + u2, n3.p.y + u2, u2, t2)), p3 += 4); - } - return r2 && (console.log(`num probes: ${p3}`), console.log(`best distance: ${h3.d}`)), h3.p; - } - function bu(t2, e2) { + function el(t2, e2, r2) { + void 0 === e2 && (e2 = 1), void 0 === r2 && (r2 = false); + for (var n2 = 1 / 0, a2 = 1 / 0, o2 = -1 / 0, s2 = -1 / 0, u2 = t2[0], l2 = 0; l2 < u2.length; l2++) { + var p3 = u2[l2]; + (!l2 || p3.x < n2) && (n2 = p3.x), (!l2 || p3.y < a2) && (a2 = p3.y), (!l2 || p3.x > o2) && (o2 = p3.x), (!l2 || p3.y > s2) && (s2 = p3.y); + } + var c3 = Math.min(o2 - n2, s2 - a2), h3 = c3 / 2, f2 = new Qu([], rl); + if (0 === c3) + return new i(n2, a2); + for (var y3 = n2; y3 < o2; y3 += c3) + for (var d2 = a2; d2 < s2; d2 += c3) + f2.push(new nl(y3 + h3, d2 + h3, h3, t2)); + for (var m2 = function(t3) { + for (var e3 = 0, r3 = 0, n3 = 0, i2 = t3[0], a3 = 0, o3 = i2.length, s3 = o3 - 1; a3 < o3; s3 = a3++) { + var u3 = i2[a3], l3 = i2[s3], p4 = u3.x * l3.y - l3.x * u3.y; + r3 += (u3.x + l3.x) * p4, n3 += (u3.y + l3.y) * p4, e3 += 3 * p4; + } + return new nl(r3 / e3, n3 / e3, 0, t3); + }(t2), v3 = f2.length; f2.length; ) { + var g2 = f2.pop(); + (g2.d > m2.d || !m2.d) && (m2 = g2, r2 && console.log("found best %d after %d probes", Math.round(1e4 * g2.d) / 1e4, v3)), g2.max - m2.d <= e2 || (f2.push(new nl(g2.p.x - (h3 = g2.h / 2), g2.p.y - h3, h3, t2)), f2.push(new nl(g2.p.x + h3, g2.p.y - h3, h3, t2)), f2.push(new nl(g2.p.x - h3, g2.p.y + h3, h3, t2)), f2.push(new nl(g2.p.x + h3, g2.p.y + h3, h3, t2)), v3 += 4); + } + return r2 && (console.log("num probes: " + v3), console.log("best distance: " + m2.d)), m2.p; + } + function rl(t2, e2) { return e2.max - t2.max; } - function wu(t2, e2, r2, n2) { - this.p = new S(t2, e2), this.h = r2, this.d = function(t3, e3) { - let r3 = false, n3 = 1 / 0; - for (let i2 = 0; i2 < e3.length; i2++) { - const a2 = e3[i2]; - for (let e4 = 0, i3 = a2.length, s2 = i3 - 1; e4 < i3; s2 = e4++) { - const i4 = a2[e4], o2 = a2[s2]; - i4.y > t3.y != o2.y > t3.y && t3.x < (o2.x - i4.x) * (t3.y - i4.y) / (o2.y - i4.y) + i4.x && (r3 = !r3), n3 = Math.min(n3, rs(t3, i4, o2)); + function nl(t2, e2, r2, n2) { + this.p = new i(t2, e2), this.h = r2, this.d = function(t3, e3) { + for (var r3 = false, n3 = 1 / 0, i2 = 0; i2 < e3.length; i2++) + for (var a2 = e3[i2], o2 = 0, s2 = a2.length, u2 = s2 - 1; o2 < s2; u2 = o2++) { + var l2 = a2[o2], p3 = a2[u2]; + l2.y > t3.y != p3.y > t3.y && t3.x < (p3.x - l2.x) * (t3.y - l2.y) / (p3.y - l2.y) + l2.x && (r3 = !r3), n3 = Math.min(n3, Ya(t3, l2, p3)); } - } return (r3 ? 1 : -1) * Math.sqrt(n3); }(this.p, n2), this.max = this.d + this.h * Math.SQRT2; } - const _u = Number.POSITIVE_INFINITY; - function Au(t2, e2) { - return e2[1] !== _u ? function(t3, e3, r2) { - let n2 = 0, i2 = 0; + Qu.prototype.push = function(t2) { + this.data.push(t2), this.length++, this._up(this.length - 1); + }, Qu.prototype.pop = function() { + if (0 !== this.length) { + var t2 = this.data[0], e2 = this.data.pop(); + return this.length--, this.length > 0 && (this.data[0] = e2, this._down(0)), t2; + } + }, Qu.prototype.peek = function() { + return this.data[0]; + }, Qu.prototype._up = function(t2) { + for (var e2 = this.data, r2 = this.compare, n2 = e2[t2]; t2 > 0; ) { + var i2 = t2 - 1 >> 1, a2 = e2[i2]; + if (r2(n2, a2) >= 0) + break; + e2[t2] = a2, t2 = i2; + } + e2[t2] = n2; + }, Qu.prototype._down = function(t2) { + for (var e2 = this.data, r2 = this.compare, n2 = this.length >> 1, i2 = e2[t2]; t2 < n2; ) { + var a2 = 1 + (t2 << 1), o2 = e2[a2], s2 = a2 + 1; + if (s2 < this.length && r2(e2[s2], o2) < 0 && (a2 = s2, o2 = e2[s2]), r2(o2, i2) >= 0) + break; + e2[t2] = o2, t2 = a2; + } + e2[t2] = i2; + }; + var il = Number.POSITIVE_INFINITY; + function al(t2, e2) { + return e2[1] !== il ? function(t3, e3, r2) { + var n2 = 0, i2 = 0; switch (e3 = Math.abs(e3), r2 = Math.abs(r2), t3) { case "top-right": case "top-left": @@ -22006,9 +22264,9 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ } return [n2, i2]; }(t2, e2[0], e2[1]) : function(t3, e3) { - let r2 = 0, n2 = 0; + var r2 = 0, n2 = 0; e3 < 0 && (e3 = 0); - const i2 = e3 / Math.sqrt(2); + var i2 = e3 / Math.sqrt(2); switch (t3) { case "top-right": case "top-left": @@ -22042,7 +22300,7 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ return [r2, n2]; }(t2, e2[0]); } - function ku(t2) { + function ol(t2) { switch (t2) { case "right": case "top-right": @@ -22055,10322 +22313,8476 @@ Use an identity property function instead: \`{ "type": "identity", "property": $ } return "center"; } - function Su(e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3) { - let p3 = s2.textMaxSize.evaluate(r2, {}); - void 0 === p3 && (p3 = o2); - const f2 = e2.layers[0].layout, y3 = f2.get("icon-offset").evaluate(r2, {}, h3), m2 = zu(n2.horizontal), g2 = o2 / 24, x2 = e2.tilePixelRatio * g2, v3 = e2.tilePixelRatio * p3 / 24, b2 = e2.tilePixelRatio * l2, w2 = e2.tilePixelRatio * f2.get("symbol-spacing"), _2 = f2.get("text-padding") * e2.tilePixelRatio, A3 = function(t2, e3, r3, n3 = 1) { - const i3 = t2.get("icon-padding").evaluate(e3, {}, r3), a3 = i3 && i3.values; - return [a3[0] * n3, a3[1] * n3, a3[2] * n3, a3[3] * n3]; - }(f2, r2, h3, e2.tilePixelRatio), k2 = f2.get("text-max-angle") / 180 * Math.PI, S2 = "viewport" !== f2.get("text-rotation-alignment") && "point" !== f2.get("symbol-placement"), I3 = "map" === f2.get("icon-rotation-alignment") && "point" !== f2.get("symbol-placement"), M2 = f2.get("symbol-placement"), z2 = w2 / 2, B2 = f2.get("icon-text-fit"); - let C2; - i2 && "none" !== B2 && (e2.allowVerticalPlacement && n2.vertical && (C2 = Ql(i2, n2.vertical, B2, f2.get("icon-text-fit-padding"), y3, g2)), m2 && (i2 = Ql(i2, m2, B2, f2.get("icon-text-fit-padding"), y3, g2))); - const P2 = (l3, p4) => { - p4.x < 0 || p4.x >= qa || p4.y < 0 || p4.y >= qa || function(e3, r3, n3, i3, a3, s3, o3, l4, u3, c4, h4, p5, f3, y4, m3, g3, x3, v4, b3, w3, _3, A4, k3, S3, I4) { - const M3 = e3.addToLineVertexArray(r3, n3); - let z3, B3, C3, P3, V3 = 0, E2 = 0, F2 = 0, T2 = 0, L2 = -1, D2 = -1; - const $2 = {}; - let R2 = xa.exports(""), O3 = 0, U2 = 0; - if (void 0 === l4._unevaluatedLayout.getValue("text-radial-offset") ? [O3, U2] = l4.layout.get("text-offset").evaluate(_3, {}, S3).map((t2) => t2 * ll) : (O3 = l4.layout.get("text-radial-offset").evaluate(_3, {}, S3) * ll, U2 = _u), e3.allowVerticalPlacement && i3.vertical) { - const t2 = l4.layout.get("text-rotate").evaluate(_3, {}, S3) + 90; - C3 = new mu(u3, r3, c4, h4, p5, i3.vertical, f3, y4, m3, t2), o3 && (P3 = new mu(u3, r3, c4, h4, p5, o3, x3, v4, m3, t2)); - } - if (a3) { - const n4 = l4.layout.get("icon-rotate").evaluate(_3, {}), i4 = "none" !== l4.layout.get("icon-text-fit"), s4 = hu(a3, n4, k3, i4), f4 = o3 ? hu(o3, n4, k3, i4) : void 0; - B3 = new mu(u3, r3, c4, h4, p5, a3, x3, v4, false, n4), V3 = 4 * s4.length; - const y5 = e3.iconSizeData; - let m4 = null; - "source" === y5.kind ? (m4 = [tu * l4.layout.get("icon-size").evaluate(_3, {})], m4[0] > Iu && d(`${e3.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)) : "composite" === y5.kind && (m4 = [tu * A4.compositeIconSizes[0].evaluate(_3, {}, S3), tu * A4.compositeIconSizes[1].evaluate(_3, {}, S3)], (m4[0] > Iu || m4[1] > Iu) && d(`${e3.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)), e3.addSymbols(e3.icon, s4, m4, w3, b3, _3, t.WritingMode.none, r3, M3.lineStartIndex, M3.lineLength, -1, S3), L2 = e3.icon.placedSymbolArray.length - 1, f4 && (E2 = 4 * f4.length, e3.addSymbols(e3.icon, f4, m4, w3, b3, _3, t.WritingMode.vertical, r3, M3.lineStartIndex, M3.lineLength, -1, S3), D2 = e3.icon.placedSymbolArray.length - 1); - } - const q2 = Object.keys(i3.horizontal); - for (const n4 of q2) { - const a4 = i3.horizontal[n4]; - if (!z3) { - R2 = xa.exports(a4.text); - const t2 = l4.layout.get("text-rotate").evaluate(_3, {}, S3); - z3 = new mu(u3, r3, c4, h4, p5, a4, f3, y4, m3, t2); - } - const o4 = 1 === a4.positionedLines.length; - if (F2 += Mu(e3, r3, a4, s3, l4, m3, _3, g3, M3, i3.vertical ? t.WritingMode.horizontal : t.WritingMode.horizontalOnly, o4 ? q2 : [n4], $2, L2, A4, S3), o4) - break; - } - i3.vertical && (T2 += Mu(e3, r3, i3.vertical, s3, l4, m3, _3, g3, M3, t.WritingMode.vertical, ["vertical"], $2, D2, A4, S3)); - const j2 = z3 ? z3.boxStartIndex : e3.collisionBoxArray.length, N2 = z3 ? z3.boxEndIndex : e3.collisionBoxArray.length, Z3 = C3 ? C3.boxStartIndex : e3.collisionBoxArray.length, K2 = C3 ? C3.boxEndIndex : e3.collisionBoxArray.length, G2 = B3 ? B3.boxStartIndex : e3.collisionBoxArray.length, J2 = B3 ? B3.boxEndIndex : e3.collisionBoxArray.length, X2 = P3 ? P3.boxStartIndex : e3.collisionBoxArray.length, Y2 = P3 ? P3.boxEndIndex : e3.collisionBoxArray.length; - let H2 = -1; - const W2 = (t2, e4) => t2 && t2.circleDiameter ? Math.max(t2.circleDiameter, e4) : e4; - H2 = W2(z3, H2), H2 = W2(C3, H2), H2 = W2(B3, H2), H2 = W2(P3, H2); - const Q2 = H2 > -1 ? 1 : 0; - Q2 && (H2 *= I4 / ll), e3.glyphOffsetArray.length >= Du.MAX_GLYPHS && d("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"), void 0 !== _3.sortKey && e3.addToSortKeyRanges(e3.symbolInstances.length, _3.sortKey), e3.symbolInstances.emplaceBack(r3.x, r3.y, $2.right >= 0 ? $2.right : -1, $2.center >= 0 ? $2.center : -1, $2.left >= 0 ? $2.left : -1, $2.vertical || -1, L2, D2, R2, j2, N2, Z3, K2, G2, J2, X2, Y2, c4, F2, T2, V3, E2, Q2, 0, f3, O3, U2, H2); - }(e2, p4, l3, n2, i2, a2, C2, e2.layers[0], e2.collisionBoxArray, r2.index, r2.sourceLayerIndex, e2.index, x2, [_2, _2, _2, _2], S2, u2, b2, A3, I3, y3, r2, s2, c3, h3, o2); - }; - if ("line" === M2) - for (const t2 of cu(r2.geometry, 0, 0, qa, qa)) { - const r3 = lu(t2, w2, k2, n2.vertical || m2, i2, 24, v3, e2.overscaling, qa); - for (const n3 of r3) { - const r4 = m2; - r4 && Bu(e2, r4.text, z2, n3) || P2(t2, n3); - } - } - else if ("line-center" === M2) { - for (const t2 of r2.geometry) - if (t2.length > 1) { - const e3 = ou(t2, k2, n2.vertical || m2, i2, 24, v3); - e3 && P2(t2, e3); - } - } else if ("Polygon" === r2.type) - for (const t2 of ho(r2.geometry, 0)) { - const e3 = vu(t2, 16); - P2(t2[0], new ru(e3.x, e3.y, 0)); - } - else if ("LineString" === r2.type) - for (const t2 of r2.geometry) - P2(t2, new ru(t2[0].x, t2[0].y, 0)); - else if ("Point" === r2.type) - for (const t2 of r2.geometry) - for (const e3 of t2) - P2([e3], new ru(e3.x, e3.y, 0)); - } - const Iu = 32640; - function Mu(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, y3) { - const m2 = function(t3, e3, r3, n3, i3, a3, s3, o3) { - const l3 = n3.layout.get("text-rotate").evaluate(a3, {}) * Math.PI / 180, u3 = []; - for (const t4 of e3.positionedLines) - for (const n4 of t4.positionedGlyphs) { - if (!n4.rect) - continue; - const a4 = n4.rect || {}; - let c4 = 4, h4 = true, p4 = 1, f3 = 0; - const d2 = (i3 || o3) && n4.vertical, y4 = n4.metrics.advance * n4.scale / 2; - if (o3 && e3.verticalizable) { - const e4 = (n4.scale - 1) * ll, r4 = (ll - n4.metrics.width * n4.scale) / 2; - f3 = t4.lineOffset / 2 - (n4.imageName ? -r4 : e4); - } - if (n4.imageName) { - const t5 = s3[n4.imageName]; - h4 = t5.sdf, p4 = t5.pixelRatio, c4 = 1 / p4; - } - const m3 = i3 ? [n4.x + y4, n4.y] : [0, 0]; - let g3 = i3 ? [0, 0] : [n4.x + y4 + r3[0], n4.y + r3[1] - f3], x3 = [0, 0]; - d2 && (x3 = g3, g3 = [0, 0]); - const v3 = (n4.metrics.left - c4) * n4.scale - y4 + g3[0], b2 = (-n4.metrics.top - c4) * n4.scale + g3[1], w2 = v3 + a4.w * n4.scale / p4, _2 = b2 + a4.h * n4.scale / p4, A3 = new S(v3, b2), k2 = new S(w2, b2), I3 = new S(v3, _2), M2 = new S(w2, _2); - if (d2) { - const t5 = new S(-y4, y4 - $l), e4 = -Math.PI / 2, r4 = 12 - y4, i4 = new S(22 - r4, -(n4.imageName ? r4 : 0)), a5 = new S(...x3); - A3._rotateAround(e4, t5)._add(i4)._add(a5), k2._rotateAround(e4, t5)._add(i4)._add(a5), I3._rotateAround(e4, t5)._add(i4)._add(a5), M2._rotateAround(e4, t5)._add(i4)._add(a5); - } - if (l3) { - const t5 = Math.sin(l3), e4 = Math.cos(l3), r4 = [e4, -t5, t5, e4]; - A3._matMult(r4), k2._matMult(r4), I3._matMult(r4), M2._matMult(r4); + function sl(t2, e2, r2, n2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2) { + var m2 = function(t3, e3, r3, n3, a3, o3, s3, u3) { + for (var l3 = n3.layout.get("text-rotate").evaluate(o3, {}) * Math.PI / 180, p4 = [], c4 = 0, h4 = e3.positionedLines; c4 < h4.length; c4 += 1) + for (var f3 = h4[c4], y4 = 0, d3 = f3.positionedGlyphs; y4 < d3.length; y4 += 1) { + var m3 = d3[y4]; + if (m3.rect) { + var v4 = m3.rect || {}, g3 = 4, x3 = true, b3 = 1, w2 = 0, _2 = (a3 || u3) && m3.vertical, A3 = m3.metrics.advance * m3.scale / 2; + if (u3 && e3.verticalizable && (w2 = f3.lineOffset / 2 - (m3.imageName ? -(24 - m3.metrics.width * m3.scale) / 2 : 24 * (m3.scale - 1))), m3.imageName) { + var S2 = s3[m3.imageName]; + x3 = S2.sdf, g3 = 1 / (b3 = S2.pixelRatio); + } + var k2 = a3 ? [m3.x + A3, m3.y] : [0, 0], I3 = a3 ? [0, 0] : [m3.x + A3 + r3[0], m3.y + r3[1] - w2], z2 = [0, 0]; + _2 && (z2 = I3, I3 = [0, 0]); + var C2 = (m3.metrics.left - g3) * m3.scale - A3 + I3[0], E2 = (-m3.metrics.top - g3) * m3.scale + I3[1], P2 = C2 + v4.w * m3.scale / b3, M2 = E2 + v4.h * m3.scale / b3, B2 = new i(C2, E2), T2 = new i(P2, E2), V3 = new i(C2, M2), F2 = new i(P2, M2); + if (_2) { + var D2 = new i(-A3, A3 - -17), L2 = -Math.PI / 2, O3 = 12 - A3, R2 = new i(22 - O3, -(m3.imageName ? O3 : 0)), U2 = new (Function.prototype.bind.apply(i, [null].concat(z2)))(); + B2._rotateAround(L2, D2)._add(R2)._add(U2), T2._rotateAround(L2, D2)._add(R2)._add(U2), V3._rotateAround(L2, D2)._add(R2)._add(U2), F2._rotateAround(L2, D2)._add(R2)._add(U2); + } + if (l3) { + var j2 = Math.sin(l3), q2 = Math.cos(l3), N2 = [q2, -j2, j2, q2]; + B2._matMult(N2), T2._matMult(N2), V3._matMult(N2), F2._matMult(N2); + } + var K2 = new i(0, 0), G2 = new i(0, 0); + p4.push({ tl: B2, tr: T2, bl: V3, br: F2, tex: v4, writingMode: e3.writingMode, glyphOffset: k2, sectionIndex: m3.sectionIndex, isSDF: x3, pixelOffsetTL: K2, pixelOffsetBR: G2, minFontScaleX: 0, minFontScaleY: 0 }); } - const z2 = new S(0, 0), B2 = new S(0, 0); - u3.push({ tl: A3, tr: k2, bl: I3, br: M2, tex: a4, writingMode: e3.writingMode, glyphOffset: m3, sectionIndex: n4.sectionIndex, isSDF: h4, pixelOffsetTL: z2, pixelOffsetBR: B2, minFontScaleX: 0, minFontScaleY: 0 }); } - return u3; - }(0, r2, o2, i2, a2, s2, n2, t2.allowVerticalPlacement), g2 = t2.textSizeData; - let x2 = null; - "source" === g2.kind ? (x2 = [tu * i2.layout.get("text-size").evaluate(s2, {})], x2[0] > Iu && d(`${t2.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)) : "composite" === g2.kind && (x2 = [tu * f2.compositeTextSizes[0].evaluate(s2, {}, y3), tu * f2.compositeTextSizes[1].evaluate(s2, {}, y3)], (x2[0] > Iu || x2[1] > Iu) && d(`${t2.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)), t2.addSymbols(t2.text, m2, x2, o2, a2, s2, u2, e2, l2.lineStartIndex, l2.lineLength, p3, y3); - for (const e3 of c3) - h3[e3] = t2.text.placedSymbolArray.length - 1; + return p4; + }(0, r2, u2, a2, o2, s2, n2, t2.allowVerticalPlacement), v3 = t2.textSizeData, g2 = null; + "source" === v3.kind ? (g2 = [128 * a2.layout.get("text-size").evaluate(s2, {})])[0] > 32640 && A2(t2.layerIds[0] + ': Value for "text-size" is >= 255. Reduce your "text-size".') : "composite" === v3.kind && ((g2 = [128 * y3.compositeTextSizes[0].evaluate(s2, {}, d2), 128 * y3.compositeTextSizes[1].evaluate(s2, {}, d2)])[0] > 32640 || g2[1] > 32640) && A2(t2.layerIds[0] + ': Value for "text-size" is >= 255. Reduce your "text-size".'), t2.addSymbols(t2.text, m2, g2, u2, o2, s2, p3, e2, l2.lineStartIndex, l2.lineLength, f2, d2); + for (var x2 = 0, b2 = c3; x2 < b2.length; x2 += 1) + h3[b2[x2]] = t2.text.placedSymbolArray.length - 1; return 4 * m2.length; } - function zu(t2) { - for (const e2 in t2) + function ul(t2) { + for (var e2 in t2) return t2[e2]; return null; } - function Bu(t2, e2, r2, n2) { - const i2 = t2.compareText; + function ll(t2, e2, r2, n2) { + var i2 = t2.compareText; if (e2 in i2) { - const t3 = i2[e2]; - for (let e3 = t3.length - 1; e3 >= 0; e3--) - if (n2.dist(t3[e3]) < r2) + for (var a2 = i2[e2], o2 = a2.length - 1; o2 >= 0; o2--) + if (n2.dist(a2[o2]) < r2) return true; } else i2[e2] = []; return i2[e2].push(n2), false; } - const Cu = _o.VectorTileFeature.types, Pu = [{ name: "a_fade_opacity", components: 1, type: "Uint8", offset: 0 }]; - function Vu(t2, e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3) { - const f2 = o2 ? Math.min(Iu, Math.round(o2[0])) : 0, d2 = o2 ? Math.min(Iu, Math.round(o2[1])) : 0; - t2.emplaceBack(e2, r2, Math.round(32 * n2), Math.round(32 * i2), a2, s2, (f2 << 1) + (l2 ? 1 : 0), d2, 16 * u2, 16 * c3, 256 * h3, 256 * p3); + var pl = bs.VectorTileFeature.types, cl = [{ name: "a_fade_opacity", components: 1, type: "Uint8", offset: 0 }]; + function hl(t2, e2, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3, h3) { + var f2 = s2 ? Math.min(32640, Math.round(s2[0])) : 0, y3 = s2 ? Math.min(32640, Math.round(s2[1])) : 0; + t2.emplaceBack(e2, r2, Math.round(32 * n2), Math.round(32 * i2), a2, o2, (f2 << 1) + (u2 ? 1 : 0), y3, 16 * l2, 16 * p3, 256 * c3, 256 * h3); } - function Eu(t2, e2, r2) { + function fl(t2, e2, r2) { t2.emplaceBack(e2.x, e2.y, r2), t2.emplaceBack(e2.x, e2.y, r2), t2.emplaceBack(e2.x, e2.y, r2), t2.emplaceBack(e2.x, e2.y, r2); } - function Fu(t2) { - for (const e2 of t2.sections) - if (On(e2.text)) + function yl(t2) { + for (var e2 = 0, r2 = t2.sections; e2 < r2.length; e2 += 1) + if ($n(r2[e2].text)) return true; return false; } - class Tu { - constructor(t2) { - this.layoutVertexArray = new sa(), this.indexArray = new ha(), this.programConfigurations = t2, this.segments = new ya(), this.dynamicLayoutVertexArray = new oa(), this.opacityVertexArray = new la(), this.placedSymbolArray = new Ki(); - } - isEmpty() { - return 0 === this.layoutVertexArray.length && 0 === this.indexArray.length && 0 === this.dynamicLayoutVertexArray.length && 0 === this.opacityVertexArray.length; - } - upload(t2, e2, r2, n2) { - this.isEmpty() || (r2 && (this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, el.members), this.indexBuffer = t2.createIndexBuffer(this.indexArray, e2), this.dynamicLayoutVertexBuffer = t2.createVertexBuffer(this.dynamicLayoutVertexArray, rl.members, true), this.opacityVertexBuffer = t2.createVertexBuffer(this.opacityVertexArray, Pu, true), this.opacityVertexBuffer.itemSize = 1), (r2 || n2) && this.programConfigurations.upload(t2)); - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.dynamicLayoutVertexBuffer.destroy(), this.opacityVertexBuffer.destroy()); - } - } - Mn("SymbolBuffers", Tu); - class Lu { - constructor(t2, e2, r2) { - this.layoutVertexArray = new t2(), this.layoutAttributes = e2, this.indexArray = new r2(), this.segments = new ya(), this.collisionVertexArray = new ca(); - } - upload(t2) { - this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, this.layoutAttributes), this.indexBuffer = t2.createIndexBuffer(this.indexArray), this.collisionVertexBuffer = t2.createVertexBuffer(this.collisionVertexArray, nl.members, true); - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.segments.destroy(), this.collisionVertexBuffer.destroy()); - } - } - Mn("CollisionBuffers", Lu); - class Du { - constructor(e2) { - this.collisionBoxArray = e2.collisionBoxArray, this.zoom = e2.zoom, this.overscaling = e2.overscaling, this.layers = e2.layers, this.layerIds = this.layers.map((t2) => t2.id), this.index = e2.index, this.pixelRatio = e2.pixelRatio, this.sourceLayerIndex = e2.sourceLayerIndex, this.hasPattern = false, this.hasRTLText = false, this.sortKeyRanges = [], this.collisionCircleArray = [], this.placementInvProjMatrix = ds([]), this.placementViewportMatrix = ds([]); - const r2 = this.layers[0]._unevaluatedLayout._values; - this.textSizeData = eu(this.zoom, r2["text-size"]), this.iconSizeData = eu(this.zoom, r2["icon-size"]); - const n2 = this.layers[0].layout, i2 = n2.get("symbol-sort-key"), a2 = n2.get("symbol-z-order"); - this.canOverlap = "never" !== qu(n2, "text-overlap", "text-allow-overlap") || "never" !== qu(n2, "icon-overlap", "icon-allow-overlap") || n2.get("text-ignore-placement") || n2.get("icon-ignore-placement"), this.sortFeaturesByKey = "viewport-y" !== a2 && !i2.isConstant(), this.sortFeaturesByY = ("viewport-y" === a2 || "auto" === a2 && !this.sortFeaturesByKey) && this.canOverlap, "point" === n2.get("symbol-placement") && (this.writingModes = n2.get("text-writing-mode").map((e3) => t.WritingMode[e3])), this.stateDependentLayerIds = this.layers.filter((t2) => t2.isStateDependent()).map((t2) => t2.id), this.sourceID = e2.sourceID; - } - createArrays() { - this.text = new Tu(new Ra(this.layers, this.zoom, (t2) => /^text/.test(t2))), this.icon = new Tu(new Ra(this.layers, this.zoom, (t2) => /^icon/.test(t2))), this.glyphOffsetArray = new Xi(), this.lineVertexArray = new Yi(), this.symbolInstances = new Ji(); - } - calculateGlyphDependencies(t2, e2, r2, n2, i2) { - for (let a2 = 0; a2 < t2.length; a2++) - if (e2[t2.charCodeAt(a2)] = true, (r2 || n2) && i2) { - const r3 = ol[t2.charAt(a2)]; - r3 && (e2[r3.charCodeAt(0)] = true); - } - } - populate(e2, r2, n2) { - const i2 = this.layers[0], a2 = i2.layout, s2 = a2.get("text-font"), o2 = a2.get("text-field"), l2 = a2.get("icon-image"), u2 = ("constant" !== o2.value.kind || o2.value.value instanceof Dt && !o2.value.value.isEmpty() || o2.value.value.toString().length > 0) && ("constant" !== s2.value.kind || s2.value.value.length > 0), c3 = "constant" !== l2.value.kind || !!l2.value.value || Object.keys(l2.parameters).length > 0, h3 = a2.get("symbol-sort-key"); - if (this.features = [], !u2 && !c3) - return; - const p3 = r2.iconDependencies, f2 = r2.glyphDependencies, d2 = r2.availableImages, y3 = new Qn(this.zoom); - for (const { feature: r3, id: o3, index: l3, sourceLayerIndex: m2 } of e2) { - const e3 = i2._featureFilter.needGeometry, g2 = Ka(r3, e3); - if (!i2._featureFilter.filter(y3, g2, n2)) - continue; - let x2, v3; - if (e3 || (g2.geometry = Za(r3)), u2) { - const t2 = i2.getValueAndResolveTokens("text-field", g2, n2, d2), e4 = Dt.factory(t2); - Fu(e4) && (this.hasRTLText = true), (!this.hasRTLText || "unavailable" === Yn() || this.hasRTLText && Wn.isParsed()) && (x2 = sl(e4, i2, g2)); - } - if (c3) { - const t2 = i2.getValueAndResolveTokens("icon-image", g2, n2, d2); - v3 = t2 instanceof Rt ? t2 : Rt.fromString(t2); - } - if (!x2 && !v3) - continue; - const b2 = this.sortFeaturesByKey ? h3.evaluate(g2, {}, n2) : void 0; - if (this.features.push({ id: o3, text: x2, icon: v3, index: l3, sourceLayerIndex: m2, geometry: g2.geometry, properties: r3.properties, type: Cu[r3.type], sortKey: b2 }), v3 && (p3[v3.name] = true), x2) { - const e4 = s2.evaluate(g2, {}, n2).join(","), r4 = "viewport" !== a2.get("text-rotation-alignment") && "point" !== a2.get("symbol-placement"); - this.allowVerticalPlacement = this.writingModes && this.writingModes.indexOf(t.WritingMode.vertical) >= 0; - for (const t2 of x2.sections) - if (t2.image) - p3[t2.image.name] = true; - else { - const n3 = En(x2.toString()), i3 = t2.fontStack || e4, a3 = f2[i3] = f2[i3] || {}; - this.calculateGlyphDependencies(t2.text, a3, r4, this.allowVerticalPlacement, n3); + var dl = function(t2) { + this.layoutVertexArray = new Vi(), this.indexArray = new ji(), this.programConfigurations = t2, this.segments = new sa(), this.dynamicLayoutVertexArray = new Fi(), this.opacityVertexArray = new Di(), this.placedSymbolArray = new Qi(); + }; + dl.prototype.isEmpty = function() { + return 0 === this.layoutVertexArray.length && 0 === this.indexArray.length && 0 === this.dynamicLayoutVertexArray.length && 0 === this.opacityVertexArray.length; + }, dl.prototype.upload = function(t2, e2, r2, n2) { + this.isEmpty() || (r2 && (this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, js.members), this.indexBuffer = t2.createIndexBuffer(this.indexArray, e2), this.dynamicLayoutVertexBuffer = t2.createVertexBuffer(this.dynamicLayoutVertexArray, qs.members, true), this.opacityVertexBuffer = t2.createVertexBuffer(this.opacityVertexArray, cl, true), this.opacityVertexBuffer.itemSize = 1), (r2 || n2) && this.programConfigurations.upload(t2)); + }, dl.prototype.destroy = function() { + this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.dynamicLayoutVertexBuffer.destroy(), this.opacityVertexBuffer.destroy()); + }, On("SymbolBuffers", dl); + var ml = function(t2, e2, r2) { + this.layoutVertexArray = new t2(), this.layoutAttributes = e2, this.indexArray = new r2(), this.segments = new sa(), this.collisionVertexArray = new Ui(); + }; + ml.prototype.upload = function(t2) { + this.layoutVertexBuffer = t2.createVertexBuffer(this.layoutVertexArray, this.layoutAttributes), this.indexBuffer = t2.createIndexBuffer(this.indexArray), this.collisionVertexBuffer = t2.createVertexBuffer(this.collisionVertexArray, Ns.members, true); + }, ml.prototype.destroy = function() { + this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.segments.destroy(), this.collisionVertexBuffer.destroy()); + }, On("CollisionBuffers", ml); + var vl = function(t2) { + this.collisionBoxArray = t2.collisionBoxArray, this.zoom = t2.zoom, this.overscaling = t2.overscaling, this.layers = t2.layers, this.layerIds = this.layers.map(function(t3) { + return t3.id; + }), this.index = t2.index, this.pixelRatio = t2.pixelRatio, this.sourceLayerIndex = t2.sourceLayerIndex, this.hasPattern = false, this.hasRTLText = false, this.sortKeyRanges = [], this.collisionCircleArray = [], this.placementInvProjMatrix = oo([]), this.placementViewportMatrix = oo([]); + var e2 = this.layers[0]._unevaluatedLayout._values; + this.textSizeData = Du(this.zoom, e2["text-size"]), this.iconSizeData = Du(this.zoom, e2["icon-size"]); + var r2 = this.layers[0].layout, n2 = r2.get("symbol-sort-key"), i2 = r2.get("symbol-z-order"); + this.canOverlap = r2.get("text-allow-overlap") || r2.get("icon-allow-overlap") || r2.get("text-ignore-placement") || r2.get("icon-ignore-placement"), this.sortFeaturesByKey = "viewport-y" !== i2 && void 0 !== n2.constantOr(1), this.sortFeaturesByY = ("viewport-y" === i2 || "auto" === i2 && !this.sortFeaturesByKey) && this.canOverlap, "point" === r2.get("symbol-placement") && (this.writingModes = r2.get("text-writing-mode").map(function(t3) { + return wu[t3]; + })), this.stateDependentLayerIds = this.layers.filter(function(t3) { + return t3.isStateDependent(); + }).map(function(t3) { + return t3.id; + }), this.sourceID = t2.sourceID; + }; + vl.prototype.createArrays = function() { + this.text = new dl(new Va(this.layers, this.zoom, function(t2) { + return /^text/.test(t2); + })), this.icon = new dl(new Va(this.layers, this.zoom, function(t2) { + return /^icon/.test(t2); + })), this.glyphOffsetArray = new ra(), this.lineVertexArray = new na(), this.symbolInstances = new ea(); + }, vl.prototype.calculateGlyphDependencies = function(t2, e2, r2, n2, i2) { + for (var a2 = 0; a2 < t2.length; a2++) + if (e2[t2.charCodeAt(a2)] = true, (r2 || n2) && i2) { + var o2 = Xs[t2.charAt(a2)]; + o2 && (e2[o2.charCodeAt(0)] = true); + } + }, vl.prototype.populate = function(t2, e2, r2) { + var n2 = this.layers[0], i2 = n2.layout, a2 = i2.get("text-font"), o2 = i2.get("text-field"), s2 = i2.get("icon-image"), u2 = ("constant" !== o2.value.kind || o2.value.value instanceof ne && !o2.value.value.isEmpty() || o2.value.value.toString().length > 0) && ("constant" !== a2.value.kind || a2.value.value.length > 0), l2 = "constant" !== s2.value.kind || !!s2.value.value || Object.keys(s2.parameters).length > 0, p3 = i2.get("symbol-sort-key"); + if (this.features = [], u2 || l2) { + for (var c3 = e2.iconDependencies, h3 = e2.glyphDependencies, f2 = e2.availableImages, y3 = new si(this.zoom), d2 = 0, m2 = t2; d2 < m2.length; d2 += 1) { + var v3 = m2[d2], g2 = v3.feature, x2 = v3.id, b2 = v3.index, w2 = v3.sourceLayerIndex, _2 = n2._featureFilter.needGeometry, A3 = Ua(g2, _2); + if (n2._featureFilter.filter(y3, A3, r2)) { + _2 || (A3.geometry = Ra(g2)); + var S2 = void 0; + if (u2) { + var k2 = n2.getValueAndResolveTokens("text-field", A3, r2, f2), I3 = ne.factory(k2); + yl(I3) && (this.hasRTLText = true), (!this.hasRTLText || "unavailable" === ii() || this.hasRTLText && oi.isParsed()) && (S2 = Zs(I3, n2, A3)); + } + var z2 = void 0; + if (l2) { + var C2 = n2.getValueAndResolveTokens("icon-image", A3, r2, f2); + z2 = C2 instanceof ie ? C2 : ie.fromString(C2); + } + if (S2 || z2) { + var E2 = this.sortFeaturesByKey ? p3.evaluate(A3, {}, r2) : void 0; + if (this.features.push({ id: x2, text: S2, icon: z2, index: b2, sourceLayerIndex: w2, geometry: A3.geometry, properties: g2.properties, type: pl[g2.type], sortKey: E2 }), z2 && (c3[z2.name] = true), S2) { + var P2 = a2.evaluate(A3, {}, r2).join(","), M2 = "map" === i2.get("text-rotation-alignment") && "point" !== i2.get("symbol-placement"); + this.allowVerticalPlacement = this.writingModes && this.writingModes.indexOf(wu.vertical) >= 0; + for (var B2 = 0, T2 = S2.sections; B2 < T2.length; B2 += 1) { + var V3 = T2[B2]; + if (V3.image) + c3[V3.image.name] = true; + else { + var F2 = Zn(S2.toString()), D2 = V3.fontStack || P2, L2 = h3[D2] = h3[D2] || {}; + this.calculateGlyphDependencies(V3.text, L2, M2, this.allowVerticalPlacement, F2); + } + } } + } } } - "line" === a2.get("symbol-placement") && (this.features = function(t2) { - const e3 = {}, r3 = {}, n3 = []; - let i3 = 0; + "line" === i2.get("symbol-placement") && (this.features = function(t3) { + var e3 = {}, r3 = {}, n3 = [], i3 = 0; function a3(e4) { - n3.push(t2[e4]), i3++; + n3.push(t3[e4]), i3++; } - function s3(t3, e4, i4) { - const a4 = r3[t3]; - return delete r3[t3], r3[e4] = a4, n3[a4].geometry[0].pop(), n3[a4].geometry[0] = n3[a4].geometry[0].concat(i4[0]), a4; + function o3(t4, e4, i4) { + var a4 = r3[t4]; + return delete r3[t4], r3[e4] = a4, n3[a4].geometry[0].pop(), n3[a4].geometry[0] = n3[a4].geometry[0].concat(i4[0]), a4; } - function o3(t3, r4, i4) { - const a4 = e3[r4]; - return delete e3[r4], e3[t3] = a4, n3[a4].geometry[0].shift(), n3[a4].geometry[0] = i4[0].concat(n3[a4].geometry[0]), a4; + function s3(t4, r4, i4) { + var a4 = e3[r4]; + return delete e3[r4], e3[t4] = a4, n3[a4].geometry[0].shift(), n3[a4].geometry[0] = i4[0].concat(n3[a4].geometry[0]), a4; } - function l3(t3, e4, r4) { - const n4 = r4 ? e4[0][e4[0].length - 1] : e4[0][0]; - return `${t3}:${n4.x}:${n4.y}`; + function u3(t4, e4, r4) { + var n4 = r4 ? e4[0][e4[0].length - 1] : e4[0][0]; + return t4 + ":" + n4.x + ":" + n4.y; } - for (let u3 = 0; u3 < t2.length; u3++) { - const c4 = t2[u3], h4 = c4.geometry, p4 = c4.text ? c4.text.toString() : null; - if (!p4) { - a3(u3); - continue; - } - const f3 = l3(p4, h4), d3 = l3(p4, h4, true); - if (f3 in r3 && d3 in e3 && r3[f3] !== e3[d3]) { - const t3 = o3(f3, d3, h4), i4 = s3(f3, d3, n3[t3].geometry); - delete e3[f3], delete r3[d3], r3[l3(p4, n3[i4].geometry, true)] = i4, n3[t3].geometry = null; + for (var l3 = 0; l3 < t3.length; l3++) { + var p4 = t3[l3], c4 = p4.geometry, h4 = p4.text ? p4.text.toString() : null; + if (h4) { + var f3 = u3(h4, c4), y4 = u3(h4, c4, true); + if (f3 in r3 && y4 in e3 && r3[f3] !== e3[y4]) { + var d3 = s3(f3, y4, c4), m3 = o3(f3, y4, n3[d3].geometry); + delete e3[f3], delete r3[y4], r3[u3(h4, n3[m3].geometry, true)] = m3, n3[d3].geometry = null; + } else + f3 in r3 ? o3(f3, y4, c4) : y4 in e3 ? s3(f3, y4, c4) : (a3(l3), e3[f3] = i3 - 1, r3[y4] = i3 - 1); } else - f3 in r3 ? s3(f3, d3, h4) : d3 in e3 ? o3(f3, d3, h4) : (a3(u3), e3[f3] = i3 - 1, r3[d3] = i3 - 1); - } - return n3.filter((t3) => t3.geometry); - }(this.features)), this.sortFeaturesByKey && this.features.sort((t2, e3) => t2.sortKey - e3.sortKey); - } - update(t2, e2, r2) { - this.stateDependentLayers.length && (this.text.programConfigurations.updatePaintArrays(t2, e2, this.layers, r2), this.icon.programConfigurations.updatePaintArrays(t2, e2, this.layers, r2)); - } - isEmpty() { - return 0 === this.symbolInstances.length && !this.hasRTLText; - } - uploadPending() { - return !this.uploaded || this.text.programConfigurations.needsUpload || this.icon.programConfigurations.needsUpload; - } - upload(t2) { - !this.uploaded && this.hasDebugData() && (this.textCollisionBox.upload(t2), this.iconCollisionBox.upload(t2)), this.text.upload(t2, this.sortFeaturesByY, !this.uploaded, this.text.programConfigurations.needsUpload), this.icon.upload(t2, this.sortFeaturesByY, !this.uploaded, this.icon.programConfigurations.needsUpload), this.uploaded = true; - } - destroyDebugData() { - this.textCollisionBox.destroy(), this.iconCollisionBox.destroy(); - } - destroy() { - this.text.destroy(), this.icon.destroy(), this.hasDebugData() && this.destroyDebugData(); - } - addToLineVertexArray(t2, e2) { - const r2 = this.lineVertexArray.length; - if (void 0 !== t2.segment) { - let r3 = t2.dist(e2[t2.segment + 1]), n2 = t2.dist(e2[t2.segment]); - const i2 = {}; - for (let n3 = t2.segment + 1; n3 < e2.length; n3++) - i2[n3] = { x: e2[n3].x, y: e2[n3].y, tileUnitDistanceFromAnchor: r3 }, n3 < e2.length - 1 && (r3 += e2[n3 + 1].dist(e2[n3])); - for (let r4 = t2.segment || 0; r4 >= 0; r4--) - i2[r4] = { x: e2[r4].x, y: e2[r4].y, tileUnitDistanceFromAnchor: n2 }, r4 > 0 && (n2 += e2[r4 - 1].dist(e2[r4])); - for (let t3 = 0; t3 < e2.length; t3++) { - const e3 = i2[t3]; - this.lineVertexArray.emplaceBack(e3.x, e3.y, e3.tileUnitDistanceFromAnchor); - } - } - return { lineStartIndex: r2, lineLength: this.lineVertexArray.length - r2 }; - } - addSymbols(e2, r2, n2, i2, a2, s2, o2, l2, u2, c3, h3, p3) { - const f2 = e2.indexArray, d2 = e2.layoutVertexArray, y3 = e2.segments.prepareSegment(4 * r2.length, d2, f2, this.canOverlap ? s2.sortKey : void 0), m2 = this.glyphOffsetArray.length, g2 = y3.vertexLength, x2 = this.allowVerticalPlacement && o2 === t.WritingMode.vertical ? Math.PI / 2 : 0, v3 = s2.text && s2.text.sections; - for (let t2 = 0; t2 < r2.length; t2++) { - const { tl: i3, tr: a3, bl: o3, br: u3, tex: c4, pixelOffsetTL: h4, pixelOffsetBR: m3, minFontScaleX: g3, minFontScaleY: b2, glyphOffset: w2, isSDF: _2, sectionIndex: A3 } = r2[t2], k2 = y3.vertexLength, S2 = w2[1]; - Vu(d2, l2.x, l2.y, i3.x, S2 + i3.y, c4.x, c4.y, n2, _2, h4.x, h4.y, g3, b2), Vu(d2, l2.x, l2.y, a3.x, S2 + a3.y, c4.x + c4.w, c4.y, n2, _2, m3.x, h4.y, g3, b2), Vu(d2, l2.x, l2.y, o3.x, S2 + o3.y, c4.x, c4.y + c4.h, n2, _2, h4.x, m3.y, g3, b2), Vu(d2, l2.x, l2.y, u3.x, S2 + u3.y, c4.x + c4.w, c4.y + c4.h, n2, _2, m3.x, m3.y, g3, b2), Eu(e2.dynamicLayoutVertexArray, l2, x2), f2.emplaceBack(k2, k2 + 1, k2 + 2), f2.emplaceBack(k2 + 1, k2 + 2, k2 + 3), y3.vertexLength += 4, y3.primitiveLength += 2, this.glyphOffsetArray.emplaceBack(w2[0]), t2 !== r2.length - 1 && A3 === r2[t2 + 1].sectionIndex || e2.programConfigurations.populatePaintArrays(d2.length, s2, s2.index, {}, p3, v3 && v3[A3]); - } - e2.placedSymbolArray.emplaceBack(l2.x, l2.y, m2, this.glyphOffsetArray.length - m2, g2, u2, c3, l2.segment, n2 ? n2[0] : 0, n2 ? n2[1] : 0, i2[0], i2[1], o2, 0, false, 0, h3); - } - _addCollisionDebugVertex(t2, e2, r2, n2, i2, a2) { - return e2.emplaceBack(0, 0), t2.emplaceBack(r2.x, r2.y, n2, i2, Math.round(a2.x), Math.round(a2.y)); - } - addCollisionDebugVertices(t2, e2, r2, n2, i2, a2, s2) { - const o2 = i2.segments.prepareSegment(4, i2.layoutVertexArray, i2.indexArray), l2 = o2.vertexLength, u2 = i2.layoutVertexArray, c3 = i2.collisionVertexArray, h3 = s2.anchorX, p3 = s2.anchorY; - this._addCollisionDebugVertex(u2, c3, a2, h3, p3, new S(t2, e2)), this._addCollisionDebugVertex(u2, c3, a2, h3, p3, new S(r2, e2)), this._addCollisionDebugVertex(u2, c3, a2, h3, p3, new S(r2, n2)), this._addCollisionDebugVertex(u2, c3, a2, h3, p3, new S(t2, n2)), o2.vertexLength += 4; - const f2 = i2.indexArray; - f2.emplaceBack(l2, l2 + 1), f2.emplaceBack(l2 + 1, l2 + 2), f2.emplaceBack(l2 + 2, l2 + 3), f2.emplaceBack(l2 + 3, l2), o2.primitiveLength += 4; - } - addDebugCollisionBoxes(t2, e2, r2, n2) { - for (let i2 = t2; i2 < e2; i2++) { - const t3 = this.collisionBoxArray.get(i2); - this.addCollisionDebugVertices(t3.x1, t3.y1, t3.x2, t3.y2, n2 ? this.textCollisionBox : this.iconCollisionBox, t3.anchorPoint, r2); - } - } - generateCollisionDebugBuffers() { - this.hasDebugData() && this.destroyDebugData(), this.textCollisionBox = new Lu(ua, il.members, pa), this.iconCollisionBox = new Lu(ua, il.members, pa); - for (let t2 = 0; t2 < this.symbolInstances.length; t2++) { - const e2 = this.symbolInstances.get(t2); - this.addDebugCollisionBoxes(e2.textBoxStartIndex, e2.textBoxEndIndex, e2, true), this.addDebugCollisionBoxes(e2.verticalTextBoxStartIndex, e2.verticalTextBoxEndIndex, e2, true), this.addDebugCollisionBoxes(e2.iconBoxStartIndex, e2.iconBoxEndIndex, e2, false), this.addDebugCollisionBoxes(e2.verticalIconBoxStartIndex, e2.verticalIconBoxEndIndex, e2, false); - } - } - _deserializeCollisionBoxesForSymbol(t2, e2, r2, n2, i2, a2, s2, o2, l2) { - const u2 = {}; - for (let n3 = e2; n3 < r2; n3++) { - const e3 = t2.get(n3); - u2.textBox = { x1: e3.x1, y1: e3.y1, x2: e3.x2, y2: e3.y2, anchorPointX: e3.anchorPointX, anchorPointY: e3.anchorPointY }, u2.textFeatureIndex = e3.featureIndex; - break; - } - for (let e3 = n2; e3 < i2; e3++) { - const r3 = t2.get(e3); - u2.verticalTextBox = { x1: r3.x1, y1: r3.y1, x2: r3.x2, y2: r3.y2, anchorPointX: r3.anchorPointX, anchorPointY: r3.anchorPointY }, u2.verticalTextFeatureIndex = r3.featureIndex; - break; - } - for (let e3 = a2; e3 < s2; e3++) { - const r3 = t2.get(e3); - u2.iconBox = { x1: r3.x1, y1: r3.y1, x2: r3.x2, y2: r3.y2, anchorPointX: r3.anchorPointX, anchorPointY: r3.anchorPointY }, u2.iconFeatureIndex = r3.featureIndex; - break; - } - for (let e3 = o2; e3 < l2; e3++) { - const r3 = t2.get(e3); - u2.verticalIconBox = { x1: r3.x1, y1: r3.y1, x2: r3.x2, y2: r3.y2, anchorPointX: r3.anchorPointX, anchorPointY: r3.anchorPointY }, u2.verticalIconFeatureIndex = r3.featureIndex; - break; - } - return u2; - } - deserializeCollisionBoxes(t2) { - this.collisionArrays = []; - for (let e2 = 0; e2 < this.symbolInstances.length; e2++) { - const r2 = this.symbolInstances.get(e2); - this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(t2, r2.textBoxStartIndex, r2.textBoxEndIndex, r2.verticalTextBoxStartIndex, r2.verticalTextBoxEndIndex, r2.iconBoxStartIndex, r2.iconBoxEndIndex, r2.verticalIconBoxStartIndex, r2.verticalIconBoxEndIndex)); - } - } - hasTextData() { - return this.text.segments.get().length > 0; - } - hasIconData() { - return this.icon.segments.get().length > 0; - } - hasDebugData() { - return this.textCollisionBox && this.iconCollisionBox; - } - hasTextCollisionBoxData() { - return this.hasDebugData() && this.textCollisionBox.segments.get().length > 0; - } - hasIconCollisionBoxData() { - return this.hasDebugData() && this.iconCollisionBox.segments.get().length > 0; - } - addIndicesForPlacedSymbol(t2, e2) { - const r2 = t2.placedSymbolArray.get(e2), n2 = r2.vertexStartIndex + 4 * r2.numGlyphs; - for (let e3 = r2.vertexStartIndex; e3 < n2; e3 += 4) - t2.indexArray.emplaceBack(e3, e3 + 1, e3 + 2), t2.indexArray.emplaceBack(e3 + 1, e3 + 2, e3 + 3); - } - getSortedSymbolIndexes(t2) { - if (this.sortedAngle === t2 && void 0 !== this.symbolInstanceIndexes) - return this.symbolInstanceIndexes; - const e2 = Math.sin(t2), r2 = Math.cos(t2), n2 = [], i2 = [], a2 = []; - for (let t3 = 0; t3 < this.symbolInstances.length; ++t3) { - a2.push(t3); - const s2 = this.symbolInstances.get(t3); - n2.push(0 | Math.round(e2 * s2.anchorX + r2 * s2.anchorY)), i2.push(s2.featureIndex); - } - return a2.sort((t3, e3) => n2[t3] - n2[e3] || i2[e3] - i2[t3]), a2; - } - addToSortKeyRanges(t2, e2) { - const r2 = this.sortKeyRanges[this.sortKeyRanges.length - 1]; - r2 && r2.sortKey === e2 ? r2.symbolInstanceEnd = t2 + 1 : this.sortKeyRanges.push({ sortKey: e2, symbolInstanceStart: t2, symbolInstanceEnd: t2 + 1 }); - } - sortFeatures(t2) { - if (this.sortFeaturesByY && this.sortedAngle !== t2 && !(this.text.segments.get().length > 1 || this.icon.segments.get().length > 1)) { - this.symbolInstanceIndexes = this.getSortedSymbolIndexes(t2), this.sortedAngle = t2, this.text.indexArray.clear(), this.icon.indexArray.clear(), this.featureSortOrder = []; - for (const t3 of this.symbolInstanceIndexes) { - const e2 = this.symbolInstances.get(t3); - this.featureSortOrder.push(e2.featureIndex), [e2.rightJustifiedTextSymbolIndex, e2.centerJustifiedTextSymbolIndex, e2.leftJustifiedTextSymbolIndex].forEach((t4, e3, r2) => { - t4 >= 0 && r2.indexOf(t4) === e3 && this.addIndicesForPlacedSymbol(this.text, t4); - }), e2.verticalPlacedTextSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.text, e2.verticalPlacedTextSymbolIndex), e2.placedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, e2.placedIconSymbolIndex), e2.verticalPlacedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, e2.verticalPlacedIconSymbolIndex); + a3(l3); } - this.text.indexBuffer && this.text.indexBuffer.updateData(this.text.indexArray), this.icon.indexBuffer && this.icon.indexBuffer.updateData(this.icon.indexArray); - } - } - } - Mn("SymbolBucket", Du, { omit: ["layers", "collisionBoxArray", "features", "compareText"] }), Du.MAX_GLYPHS = 65535, Du.addDynamicAttributes = Eu; - const $u = new fi({ "symbol-placement": new li(nt.layout_symbol["symbol-placement"]), "symbol-spacing": new li(nt.layout_symbol["symbol-spacing"]), "symbol-avoid-edges": new li(nt.layout_symbol["symbol-avoid-edges"]), "symbol-sort-key": new ui(nt.layout_symbol["symbol-sort-key"]), "symbol-z-order": new li(nt.layout_symbol["symbol-z-order"]), "icon-allow-overlap": new li(nt.layout_symbol["icon-allow-overlap"]), "icon-overlap": new li(nt.layout_symbol["icon-overlap"]), "icon-ignore-placement": new li(nt.layout_symbol["icon-ignore-placement"]), "icon-optional": new li(nt.layout_symbol["icon-optional"]), "icon-rotation-alignment": new li(nt.layout_symbol["icon-rotation-alignment"]), "icon-size": new ui(nt.layout_symbol["icon-size"]), "icon-text-fit": new li(nt.layout_symbol["icon-text-fit"]), "icon-text-fit-padding": new li(nt.layout_symbol["icon-text-fit-padding"]), "icon-image": new ui(nt.layout_symbol["icon-image"]), "icon-rotate": new ui(nt.layout_symbol["icon-rotate"]), "icon-padding": new ui(nt.layout_symbol["icon-padding"]), "icon-keep-upright": new li(nt.layout_symbol["icon-keep-upright"]), "icon-offset": new ui(nt.layout_symbol["icon-offset"]), "icon-anchor": new ui(nt.layout_symbol["icon-anchor"]), "icon-pitch-alignment": new li(nt.layout_symbol["icon-pitch-alignment"]), "text-pitch-alignment": new li(nt.layout_symbol["text-pitch-alignment"]), "text-rotation-alignment": new li(nt.layout_symbol["text-rotation-alignment"]), "text-field": new ui(nt.layout_symbol["text-field"]), "text-font": new ui(nt.layout_symbol["text-font"]), "text-size": new ui(nt.layout_symbol["text-size"]), "text-max-width": new ui(nt.layout_symbol["text-max-width"]), "text-line-height": new li(nt.layout_symbol["text-line-height"]), "text-letter-spacing": new ui(nt.layout_symbol["text-letter-spacing"]), "text-justify": new ui(nt.layout_symbol["text-justify"]), "text-radial-offset": new ui(nt.layout_symbol["text-radial-offset"]), "text-variable-anchor": new li(nt.layout_symbol["text-variable-anchor"]), "text-anchor": new ui(nt.layout_symbol["text-anchor"]), "text-max-angle": new li(nt.layout_symbol["text-max-angle"]), "text-writing-mode": new li(nt.layout_symbol["text-writing-mode"]), "text-rotate": new ui(nt.layout_symbol["text-rotate"]), "text-padding": new li(nt.layout_symbol["text-padding"]), "text-keep-upright": new li(nt.layout_symbol["text-keep-upright"]), "text-transform": new ui(nt.layout_symbol["text-transform"]), "text-offset": new ui(nt.layout_symbol["text-offset"]), "text-allow-overlap": new li(nt.layout_symbol["text-allow-overlap"]), "text-overlap": new li(nt.layout_symbol["text-overlap"]), "text-ignore-placement": new li(nt.layout_symbol["text-ignore-placement"]), "text-optional": new li(nt.layout_symbol["text-optional"]) }); - var Ru = { paint: new fi({ "icon-opacity": new ui(nt.paint_symbol["icon-opacity"]), "icon-color": new ui(nt.paint_symbol["icon-color"]), "icon-halo-color": new ui(nt.paint_symbol["icon-halo-color"]), "icon-halo-width": new ui(nt.paint_symbol["icon-halo-width"]), "icon-halo-blur": new ui(nt.paint_symbol["icon-halo-blur"]), "icon-translate": new li(nt.paint_symbol["icon-translate"]), "icon-translate-anchor": new li(nt.paint_symbol["icon-translate-anchor"]), "text-opacity": new ui(nt.paint_symbol["text-opacity"]), "text-color": new ui(nt.paint_symbol["text-color"], { runtimeType: yt, getOverride: (t2) => t2.textColor, hasOverride: (t2) => !!t2.textColor }), "text-halo-color": new ui(nt.paint_symbol["text-halo-color"]), "text-halo-width": new ui(nt.paint_symbol["text-halo-width"]), "text-halo-blur": new ui(nt.paint_symbol["text-halo-blur"]), "text-translate": new li(nt.paint_symbol["text-translate"]), "text-translate-anchor": new li(nt.paint_symbol["text-translate-anchor"]) }), layout: $u }; - class Ou { - constructor(t2) { - if (void 0 === t2.property.overrides) - throw new Error("overrides must be provided to instantiate FormatSectionOverride class"); - this.type = t2.property.overrides ? t2.property.overrides.runtimeType : ht, this.defaultValue = t2; - } - evaluate(t2) { - if (t2.formattedSection) { - const e2 = this.defaultValue.property.overrides; - if (e2 && e2.hasOverride(t2.formattedSection)) - return e2.getOverride(t2.formattedSection); - } - return t2.feature && t2.featureState ? this.defaultValue.evaluate(t2.feature, t2.featureState) : this.defaultValue.property.specification.default; + return n3.filter(function(t4) { + return t4.geometry; + }); + }(this.features)), this.sortFeaturesByKey && this.features.sort(function(t3, e3) { + return t3.sortKey - e3.sortKey; + }); } - eachChild(t2) { - this.defaultValue.isConstant() || t2(this.defaultValue.value._styleExpression.expression); + }, vl.prototype.update = function(t2, e2, r2) { + this.stateDependentLayers.length && (this.text.programConfigurations.updatePaintArrays(t2, e2, this.layers, r2), this.icon.programConfigurations.updatePaintArrays(t2, e2, this.layers, r2)); + }, vl.prototype.isEmpty = function() { + return 0 === this.symbolInstances.length && !this.hasRTLText; + }, vl.prototype.uploadPending = function() { + return !this.uploaded || this.text.programConfigurations.needsUpload || this.icon.programConfigurations.needsUpload; + }, vl.prototype.upload = function(t2) { + !this.uploaded && this.hasDebugData() && (this.textCollisionBox.upload(t2), this.iconCollisionBox.upload(t2)), this.text.upload(t2, this.sortFeaturesByY, !this.uploaded, this.text.programConfigurations.needsUpload), this.icon.upload(t2, this.sortFeaturesByY, !this.uploaded, this.icon.programConfigurations.needsUpload), this.uploaded = true; + }, vl.prototype.destroyDebugData = function() { + this.textCollisionBox.destroy(), this.iconCollisionBox.destroy(); + }, vl.prototype.destroy = function() { + this.text.destroy(), this.icon.destroy(), this.hasDebugData() && this.destroyDebugData(); + }, vl.prototype.addToLineVertexArray = function(t2, e2) { + var r2 = this.lineVertexArray.length; + if (void 0 !== t2.segment) { + for (var n2 = t2.dist(e2[t2.segment + 1]), i2 = t2.dist(e2[t2.segment]), a2 = {}, o2 = t2.segment + 1; o2 < e2.length; o2++) + a2[o2] = { x: e2[o2].x, y: e2[o2].y, tileUnitDistanceFromAnchor: n2 }, o2 < e2.length - 1 && (n2 += e2[o2 + 1].dist(e2[o2])); + for (var s2 = t2.segment || 0; s2 >= 0; s2--) + a2[s2] = { x: e2[s2].x, y: e2[s2].y, tileUnitDistanceFromAnchor: i2 }, s2 > 0 && (i2 += e2[s2 - 1].dist(e2[s2])); + for (var u2 = 0; u2 < e2.length; u2++) { + var l2 = a2[u2]; + this.lineVertexArray.emplaceBack(l2.x, l2.y, l2.tileUnitDistanceFromAnchor); + } + } + return { lineStartIndex: r2, lineLength: this.lineVertexArray.length - r2 }; + }, vl.prototype.addSymbols = function(t2, e2, r2, n2, i2, a2, o2, s2, u2, l2, p3, c3) { + for (var h3 = t2.indexArray, f2 = t2.layoutVertexArray, y3 = t2.segments.prepareSegment(4 * e2.length, f2, h3, this.canOverlap ? a2.sortKey : void 0), d2 = this.glyphOffsetArray.length, m2 = y3.vertexLength, v3 = this.allowVerticalPlacement && o2 === wu.vertical ? Math.PI / 2 : 0, g2 = a2.text && a2.text.sections, x2 = 0; x2 < e2.length; x2++) { + var b2 = e2[x2], w2 = b2.tl, _2 = b2.tr, A3 = b2.bl, S2 = b2.br, k2 = b2.tex, I3 = b2.pixelOffsetTL, z2 = b2.pixelOffsetBR, C2 = b2.minFontScaleX, E2 = b2.minFontScaleY, P2 = b2.glyphOffset, M2 = b2.isSDF, B2 = b2.sectionIndex, T2 = y3.vertexLength, V3 = P2[1]; + hl(f2, s2.x, s2.y, w2.x, V3 + w2.y, k2.x, k2.y, r2, M2, I3.x, I3.y, C2, E2), hl(f2, s2.x, s2.y, _2.x, V3 + _2.y, k2.x + k2.w, k2.y, r2, M2, z2.x, I3.y, C2, E2), hl(f2, s2.x, s2.y, A3.x, V3 + A3.y, k2.x, k2.y + k2.h, r2, M2, I3.x, z2.y, C2, E2), hl(f2, s2.x, s2.y, S2.x, V3 + S2.y, k2.x + k2.w, k2.y + k2.h, r2, M2, z2.x, z2.y, C2, E2), fl(t2.dynamicLayoutVertexArray, s2, v3), h3.emplaceBack(T2, T2 + 1, T2 + 2), h3.emplaceBack(T2 + 1, T2 + 2, T2 + 3), y3.vertexLength += 4, y3.primitiveLength += 2, this.glyphOffsetArray.emplaceBack(P2[0]), x2 !== e2.length - 1 && B2 === e2[x2 + 1].sectionIndex || t2.programConfigurations.populatePaintArrays(f2.length, a2, a2.index, {}, c3, g2 && g2[B2]); + } + t2.placedSymbolArray.emplaceBack(s2.x, s2.y, d2, this.glyphOffsetArray.length - d2, m2, u2, l2, s2.segment, r2 ? r2[0] : 0, r2 ? r2[1] : 0, n2[0], n2[1], o2, 0, false, 0, p3); + }, vl.prototype._addCollisionDebugVertex = function(t2, e2, r2, n2, i2, a2) { + return e2.emplaceBack(0, 0), t2.emplaceBack(r2.x, r2.y, n2, i2, Math.round(a2.x), Math.round(a2.y)); + }, vl.prototype.addCollisionDebugVertices = function(t2, e2, r2, n2, a2, o2, s2) { + var u2 = a2.segments.prepareSegment(4, a2.layoutVertexArray, a2.indexArray), l2 = u2.vertexLength, p3 = a2.layoutVertexArray, c3 = a2.collisionVertexArray, h3 = s2.anchorX, f2 = s2.anchorY; + this._addCollisionDebugVertex(p3, c3, o2, h3, f2, new i(t2, e2)), this._addCollisionDebugVertex(p3, c3, o2, h3, f2, new i(r2, e2)), this._addCollisionDebugVertex(p3, c3, o2, h3, f2, new i(r2, n2)), this._addCollisionDebugVertex(p3, c3, o2, h3, f2, new i(t2, n2)), u2.vertexLength += 4; + var y3 = a2.indexArray; + y3.emplaceBack(l2, l2 + 1), y3.emplaceBack(l2 + 1, l2 + 2), y3.emplaceBack(l2 + 2, l2 + 3), y3.emplaceBack(l2 + 3, l2), u2.primitiveLength += 4; + }, vl.prototype.addDebugCollisionBoxes = function(t2, e2, r2, n2) { + for (var i2 = t2; i2 < e2; i2++) { + var a2 = this.collisionBoxArray.get(i2); + this.addCollisionDebugVertices(a2.x1, a2.y1, a2.x2, a2.y2, n2 ? this.textCollisionBox : this.iconCollisionBox, a2.anchorPoint, r2); + } + }, vl.prototype.generateCollisionDebugBuffers = function() { + this.hasDebugData() && this.destroyDebugData(), this.textCollisionBox = new ml(Oi, Ks.members, Xi), this.iconCollisionBox = new ml(Oi, Ks.members, Xi); + for (var t2 = 0; t2 < this.symbolInstances.length; t2++) { + var e2 = this.symbolInstances.get(t2); + this.addDebugCollisionBoxes(e2.textBoxStartIndex, e2.textBoxEndIndex, e2, true), this.addDebugCollisionBoxes(e2.verticalTextBoxStartIndex, e2.verticalTextBoxEndIndex, e2, true), this.addDebugCollisionBoxes(e2.iconBoxStartIndex, e2.iconBoxEndIndex, e2, false), this.addDebugCollisionBoxes(e2.verticalIconBoxStartIndex, e2.verticalIconBoxEndIndex, e2, false); + } + }, vl.prototype._deserializeCollisionBoxesForSymbol = function(t2, e2, r2, n2, i2, a2, o2, s2, u2) { + for (var l2 = {}, p3 = e2; p3 < r2; p3++) { + var c3 = t2.get(p3); + l2.textBox = { x1: c3.x1, y1: c3.y1, x2: c3.x2, y2: c3.y2, anchorPointX: c3.anchorPointX, anchorPointY: c3.anchorPointY }, l2.textFeatureIndex = c3.featureIndex; + break; } - outputDefined() { - return false; + for (var h3 = n2; h3 < i2; h3++) { + var f2 = t2.get(h3); + l2.verticalTextBox = { x1: f2.x1, y1: f2.y1, x2: f2.x2, y2: f2.y2, anchorPointX: f2.anchorPointX, anchorPointY: f2.anchorPointY }, l2.verticalTextFeatureIndex = f2.featureIndex; + break; } - serialize() { - return null; + for (var y3 = a2; y3 < o2; y3++) { + var d2 = t2.get(y3); + l2.iconBox = { x1: d2.x1, y1: d2.y1, x2: d2.x2, y2: d2.y2, anchorPointX: d2.anchorPointX, anchorPointY: d2.anchorPointY }, l2.iconFeatureIndex = d2.featureIndex; + break; } - } - Mn("FormatSectionOverride", Ou, { omit: ["defaultValue"] }); - class Uu extends yi { - constructor(t2) { - super(t2, Ru); + for (var m2 = s2; m2 < u2; m2++) { + var v3 = t2.get(m2); + l2.verticalIconBox = { x1: v3.x1, y1: v3.y1, x2: v3.x2, y2: v3.y2, anchorPointX: v3.anchorPointX, anchorPointY: v3.anchorPointY }, l2.verticalIconFeatureIndex = v3.featureIndex; + break; } - recalculate(t2, e2) { - if (super.recalculate(t2, e2), "auto" === this.layout.get("icon-rotation-alignment") && (this.layout._values["icon-rotation-alignment"] = "point" !== this.layout.get("symbol-placement") ? "map" : "viewport"), "auto" === this.layout.get("text-rotation-alignment") && (this.layout._values["text-rotation-alignment"] = "point" !== this.layout.get("symbol-placement") ? "map" : "viewport"), "auto" === this.layout.get("text-pitch-alignment") && (this.layout._values["text-pitch-alignment"] = "map" === this.layout.get("text-rotation-alignment") ? "map" : "viewport"), "auto" === this.layout.get("icon-pitch-alignment") && (this.layout._values["icon-pitch-alignment"] = this.layout.get("icon-rotation-alignment")), "point" === this.layout.get("symbol-placement")) { - const t3 = this.layout.get("text-writing-mode"); - if (t3) { - const e3 = []; - for (const r2 of t3) - e3.indexOf(r2) < 0 && e3.push(r2); - this.layout._values["text-writing-mode"] = e3; + return l2; + }, vl.prototype.deserializeCollisionBoxes = function(t2) { + this.collisionArrays = []; + for (var e2 = 0; e2 < this.symbolInstances.length; e2++) { + var r2 = this.symbolInstances.get(e2); + this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(t2, r2.textBoxStartIndex, r2.textBoxEndIndex, r2.verticalTextBoxStartIndex, r2.verticalTextBoxEndIndex, r2.iconBoxStartIndex, r2.iconBoxEndIndex, r2.verticalIconBoxStartIndex, r2.verticalIconBoxEndIndex)); + } + }, vl.prototype.hasTextData = function() { + return this.text.segments.get().length > 0; + }, vl.prototype.hasIconData = function() { + return this.icon.segments.get().length > 0; + }, vl.prototype.hasDebugData = function() { + return this.textCollisionBox && this.iconCollisionBox; + }, vl.prototype.hasTextCollisionBoxData = function() { + return this.hasDebugData() && this.textCollisionBox.segments.get().length > 0; + }, vl.prototype.hasIconCollisionBoxData = function() { + return this.hasDebugData() && this.iconCollisionBox.segments.get().length > 0; + }, vl.prototype.addIndicesForPlacedSymbol = function(t2, e2) { + for (var r2 = t2.placedSymbolArray.get(e2), n2 = r2.vertexStartIndex + 4 * r2.numGlyphs, i2 = r2.vertexStartIndex; i2 < n2; i2 += 4) + t2.indexArray.emplaceBack(i2, i2 + 1, i2 + 2), t2.indexArray.emplaceBack(i2 + 1, i2 + 2, i2 + 3); + }, vl.prototype.getSortedSymbolIndexes = function(t2) { + if (this.sortedAngle === t2 && void 0 !== this.symbolInstanceIndexes) + return this.symbolInstanceIndexes; + for (var e2 = Math.sin(t2), r2 = Math.cos(t2), n2 = [], i2 = [], a2 = [], o2 = 0; o2 < this.symbolInstances.length; ++o2) { + a2.push(o2); + var s2 = this.symbolInstances.get(o2); + n2.push(0 | Math.round(e2 * s2.anchorX + r2 * s2.anchorY)), i2.push(s2.featureIndex); + } + return a2.sort(function(t3, e3) { + return n2[t3] - n2[e3] || i2[e3] - i2[t3]; + }), a2; + }, vl.prototype.addToSortKeyRanges = function(t2, e2) { + var r2 = this.sortKeyRanges[this.sortKeyRanges.length - 1]; + r2 && r2.sortKey === e2 ? r2.symbolInstanceEnd = t2 + 1 : this.sortKeyRanges.push({ sortKey: e2, symbolInstanceStart: t2, symbolInstanceEnd: t2 + 1 }); + }, vl.prototype.sortFeatures = function(t2) { + var e2 = this; + if (this.sortFeaturesByY && this.sortedAngle !== t2 && !(this.text.segments.get().length > 1 || this.icon.segments.get().length > 1)) { + this.symbolInstanceIndexes = this.getSortedSymbolIndexes(t2), this.sortedAngle = t2, this.text.indexArray.clear(), this.icon.indexArray.clear(), this.featureSortOrder = []; + for (var r2 = 0, n2 = this.symbolInstanceIndexes; r2 < n2.length; r2 += 1) { + var i2 = this.symbolInstances.get(n2[r2]); + this.featureSortOrder.push(i2.featureIndex), [i2.rightJustifiedTextSymbolIndex, i2.centerJustifiedTextSymbolIndex, i2.leftJustifiedTextSymbolIndex].forEach(function(t3, r3, n3) { + t3 >= 0 && n3.indexOf(t3) === r3 && e2.addIndicesForPlacedSymbol(e2.text, t3); + }), i2.verticalPlacedTextSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.text, i2.verticalPlacedTextSymbolIndex), i2.placedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, i2.placedIconSymbolIndex), i2.verticalPlacedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, i2.verticalPlacedIconSymbolIndex); + } + this.text.indexBuffer && this.text.indexBuffer.updateData(this.text.indexArray), this.icon.indexBuffer && this.icon.indexBuffer.updateData(this.icon.indexArray); + } + }, On("SymbolBucket", vl, { omit: ["layers", "collisionBoxArray", "features", "compareText"] }), vl.MAX_GLYPHS = 65535, vl.addDynamicAttributes = fl; + var gl = new wi({ "symbol-placement": new mi(Et.layout_symbol["symbol-placement"]), "symbol-spacing": new mi(Et.layout_symbol["symbol-spacing"]), "symbol-avoid-edges": new mi(Et.layout_symbol["symbol-avoid-edges"]), "symbol-sort-key": new vi(Et.layout_symbol["symbol-sort-key"]), "symbol-z-order": new mi(Et.layout_symbol["symbol-z-order"]), "icon-allow-overlap": new mi(Et.layout_symbol["icon-allow-overlap"]), "icon-ignore-placement": new mi(Et.layout_symbol["icon-ignore-placement"]), "icon-optional": new mi(Et.layout_symbol["icon-optional"]), "icon-rotation-alignment": new mi(Et.layout_symbol["icon-rotation-alignment"]), "icon-size": new vi(Et.layout_symbol["icon-size"]), "icon-text-fit": new mi(Et.layout_symbol["icon-text-fit"]), "icon-text-fit-padding": new mi(Et.layout_symbol["icon-text-fit-padding"]), "icon-image": new vi(Et.layout_symbol["icon-image"]), "icon-rotate": new vi(Et.layout_symbol["icon-rotate"]), "icon-padding": new mi(Et.layout_symbol["icon-padding"]), "icon-keep-upright": new mi(Et.layout_symbol["icon-keep-upright"]), "icon-offset": new vi(Et.layout_symbol["icon-offset"]), "icon-anchor": new vi(Et.layout_symbol["icon-anchor"]), "icon-pitch-alignment": new mi(Et.layout_symbol["icon-pitch-alignment"]), "text-pitch-alignment": new mi(Et.layout_symbol["text-pitch-alignment"]), "text-rotation-alignment": new mi(Et.layout_symbol["text-rotation-alignment"]), "text-field": new vi(Et.layout_symbol["text-field"]), "text-font": new vi(Et.layout_symbol["text-font"]), "text-size": new vi(Et.layout_symbol["text-size"]), "text-max-width": new vi(Et.layout_symbol["text-max-width"]), "text-line-height": new mi(Et.layout_symbol["text-line-height"]), "text-letter-spacing": new vi(Et.layout_symbol["text-letter-spacing"]), "text-justify": new vi(Et.layout_symbol["text-justify"]), "text-radial-offset": new vi(Et.layout_symbol["text-radial-offset"]), "text-variable-anchor": new mi(Et.layout_symbol["text-variable-anchor"]), "text-anchor": new vi(Et.layout_symbol["text-anchor"]), "text-max-angle": new mi(Et.layout_symbol["text-max-angle"]), "text-writing-mode": new mi(Et.layout_symbol["text-writing-mode"]), "text-rotate": new vi(Et.layout_symbol["text-rotate"]), "text-padding": new mi(Et.layout_symbol["text-padding"]), "text-keep-upright": new mi(Et.layout_symbol["text-keep-upright"]), "text-transform": new vi(Et.layout_symbol["text-transform"]), "text-offset": new vi(Et.layout_symbol["text-offset"]), "text-allow-overlap": new mi(Et.layout_symbol["text-allow-overlap"]), "text-ignore-placement": new mi(Et.layout_symbol["text-ignore-placement"]), "text-optional": new mi(Et.layout_symbol["text-optional"]) }), xl = { paint: new wi({ "icon-opacity": new vi(Et.paint_symbol["icon-opacity"]), "icon-color": new vi(Et.paint_symbol["icon-color"]), "icon-halo-color": new vi(Et.paint_symbol["icon-halo-color"]), "icon-halo-width": new vi(Et.paint_symbol["icon-halo-width"]), "icon-halo-blur": new vi(Et.paint_symbol["icon-halo-blur"]), "icon-translate": new mi(Et.paint_symbol["icon-translate"]), "icon-translate-anchor": new mi(Et.paint_symbol["icon-translate-anchor"]), "text-opacity": new vi(Et.paint_symbol["text-opacity"]), "text-color": new vi(Et.paint_symbol["text-color"], { runtimeType: jt, getOverride: function(t2) { + return t2.textColor; + }, hasOverride: function(t2) { + return !!t2.textColor; + } }), "text-halo-color": new vi(Et.paint_symbol["text-halo-color"]), "text-halo-width": new vi(Et.paint_symbol["text-halo-width"]), "text-halo-blur": new vi(Et.paint_symbol["text-halo-blur"]), "text-translate": new mi(Et.paint_symbol["text-translate"]), "text-translate-anchor": new mi(Et.paint_symbol["text-translate-anchor"]) }), layout: gl }, bl = function(t2) { + this.type = t2.property.overrides ? t2.property.overrides.runtimeType : Lt, this.defaultValue = t2; + }; + bl.prototype.evaluate = function(t2) { + if (t2.formattedSection) { + var e2 = this.defaultValue.property.overrides; + if (e2 && e2.hasOverride(t2.formattedSection)) + return e2.getOverride(t2.formattedSection); + } + return t2.feature && t2.featureState ? this.defaultValue.evaluate(t2.feature, t2.featureState) : this.defaultValue.property.specification.default; + }, bl.prototype.eachChild = function(t2) { + this.defaultValue.isConstant() || t2(this.defaultValue.value._styleExpression.expression); + }, bl.prototype.outputDefined = function() { + return false; + }, bl.prototype.serialize = function() { + return null; + }, On("FormatSectionOverride", bl, { omit: ["defaultValue"] }); + var wl = function(t2) { + function e2(e3) { + t2.call(this, e3, xl); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.recalculate = function(e3, r2) { + if (t2.prototype.recalculate.call(this, e3, r2), "auto" === this.layout.get("icon-rotation-alignment") && (this.layout._values["icon-rotation-alignment"] = "point" !== this.layout.get("symbol-placement") ? "map" : "viewport"), "auto" === this.layout.get("text-rotation-alignment") && (this.layout._values["text-rotation-alignment"] = "point" !== this.layout.get("symbol-placement") ? "map" : "viewport"), "auto" === this.layout.get("text-pitch-alignment") && (this.layout._values["text-pitch-alignment"] = this.layout.get("text-rotation-alignment")), "auto" === this.layout.get("icon-pitch-alignment") && (this.layout._values["icon-pitch-alignment"] = this.layout.get("icon-rotation-alignment")), "point" === this.layout.get("symbol-placement")) { + var n2 = this.layout.get("text-writing-mode"); + if (n2) { + for (var i2 = [], a2 = 0, o2 = n2; a2 < o2.length; a2 += 1) { + var s2 = o2[a2]; + i2.indexOf(s2) < 0 && i2.push(s2); + } + this.layout._values["text-writing-mode"] = i2; } else this.layout._values["text-writing-mode"] = ["horizontal"]; } this._setPaintOverrides(); - } - getValueAndResolveTokens(t2, e2, r2, n2) { - const i2 = this.layout.get(t2).evaluate(e2, {}, r2, n2), a2 = this._unevaluatedLayout._values[t2]; - return a2.isDataDriven() || Er(a2.value) || !i2 ? i2 : function(t3, e3) { - return e3.replace(/{([^{}]+)}/g, (e4, r3) => r3 in t3 ? String(t3[r3]) : ""); - }(e2.properties, i2); - } - createBucket(t2) { - return new Du(t2); - } - queryRadius() { + }, e2.prototype.getValueAndResolveTokens = function(t3, e3, r2, n2) { + var i2 = this.layout.get(t3).evaluate(e3, {}, r2, n2), a2 = this._unevaluatedLayout._values[t3]; + return a2.isDataDriven() || Gr(a2.value) || !i2 ? i2 : function(t4, e4) { + return e4.replace(/{([^{}]+)}/g, function(e5, r3) { + return r3 in t4 ? String(t4[r3]) : ""; + }); + }(e3.properties, i2); + }, e2.prototype.createBucket = function(t3) { + return new vl(t3); + }, e2.prototype.queryRadius = function() { return 0; - } - queryIntersectsFeature() { - throw new Error("Should take a different path in FeatureIndex"); - } - _setPaintOverrides() { - for (const t2 of Ru.paint.overridableProperties) { - if (!Uu.hasPaintOverride(this.layout, t2)) - continue; - const e2 = this.paint.get(t2), r2 = new Ou(e2), n2 = new Vr(r2, e2.property.specification); - let i2 = null; - i2 = "constant" === e2.value.kind || "source" === e2.value.kind ? new Tr("source", n2) : new Lr("composite", n2, e2.value.zoomStops), this.paint._values[t2] = new si(e2.property, i2, e2.parameters); + }, e2.prototype.queryIntersectsFeature = function() { + return false; + }, e2.prototype._setPaintOverrides = function() { + for (var t3 = 0, r2 = xl.paint.overridableProperties; t3 < r2.length; t3 += 1) { + var n2 = r2[t3]; + if (e2.hasPaintOverride(this.layout, n2)) { + var i2, a2 = this.paint.get(n2), o2 = new bl(a2), s2 = new Kr(o2, a2.property.specification); + i2 = "constant" === a2.value.kind || "source" === a2.value.kind ? new Xr("source", s2) : new Jr("composite", s2, a2.value.zoomStops, a2.value._interpolationType), this.paint._values[n2] = new yi(a2.property, i2, a2.parameters); + } } - } - _handleOverridablePaintPropertyUpdate(t2, e2, r2) { - return !(!this.layout || e2.isDataDriven() || r2.isDataDriven()) && Uu.hasPaintOverride(this.layout, t2); - } - static hasPaintOverride(t2, e2) { - const r2 = t2.get("text-field"), n2 = Ru.paint.properties[e2]; - let i2 = false; - const a2 = (t3) => { - for (const e3 of t3) - if (n2.overrides && n2.overrides.hasOverride(e3)) + }, e2.prototype._handleOverridablePaintPropertyUpdate = function(t3, r2, n2) { + return !(!this.layout || r2.isDataDriven() || n2.isDataDriven()) && e2.hasPaintOverride(this.layout, t3); + }, e2.hasPaintOverride = function(t3, e3) { + var r2 = t3.get("text-field"), n2 = xl.paint.properties[e3], i2 = false, a2 = function(t4) { + for (var e4 = 0, r3 = t4; e4 < r3.length; e4 += 1) + if (n2.overrides && n2.overrides.hasOverride(r3[e4])) return void (i2 = true); }; - if ("constant" === r2.value.kind && r2.value.value instanceof Dt) + if ("constant" === r2.value.kind && r2.value.value instanceof ne) a2(r2.value.value.sections); else if ("source" === r2.value.kind) { - const t3 = (e4) => { - i2 || (e4 instanceof Nt && qt(e4.value) === vt ? a2(e4.value.sections) : e4 instanceof cr ? a2(e4.sections) : e4.eachChild(t3)); - }, e3 = r2.value; - e3._styleExpression && t3(e3._styleExpression.expression); + var o2 = function(t4) { + i2 || (t4 instanceof le && se(t4.value) === Gt ? a2(t4.value.sections) : t4 instanceof fe ? a2(t4.sections) : t4.eachChild(o2)); + }, s2 = r2.value; + s2._styleExpression && o2(s2._styleExpression.expression); } return i2; - } - } - function qu(t2, e2, r2) { - let n2 = "never"; - const i2 = t2.get(e2); - return i2 ? n2 = i2 : t2.get(r2) && (n2 = "always"), n2; - } - var ju = { paint: new fi({ "background-color": new li(nt.paint_background["background-color"]), "background-pattern": new hi(nt.paint_background["background-pattern"]), "background-opacity": new li(nt.paint_background["background-opacity"]) }) }, Nu = { paint: new fi({ "raster-opacity": new li(nt.paint_raster["raster-opacity"]), "raster-hue-rotate": new li(nt.paint_raster["raster-hue-rotate"]), "raster-brightness-min": new li(nt.paint_raster["raster-brightness-min"]), "raster-brightness-max": new li(nt.paint_raster["raster-brightness-max"]), "raster-saturation": new li(nt.paint_raster["raster-saturation"]), "raster-contrast": new li(nt.paint_raster["raster-contrast"]), "raster-resampling": new li(nt.paint_raster["raster-resampling"]), "raster-fade-duration": new li(nt.paint_raster["raster-fade-duration"]) }) }; - class Zu extends yi { - constructor(t2) { - super(t2, {}), this.onAdd = (t3) => { - this.implementation.onAdd && this.implementation.onAdd(t3, t3.painter.context.gl); - }, this.onRemove = (t3) => { - this.implementation.onRemove && this.implementation.onRemove(t3, t3.painter.context.gl); - }, this.implementation = t2; - } - is3D() { + }, e2; + }(_i), _l = { paint: new wi({ "background-color": new mi(Et.paint_background["background-color"]), "background-pattern": new xi(Et.paint_background["background-pattern"]), "background-opacity": new mi(Et.paint_background["background-opacity"]) }) }, Al = function(t2) { + function e2(e3) { + t2.call(this, e3, _l); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2; + }(_i), Sl = { paint: new wi({ "raster-opacity": new mi(Et.paint_raster["raster-opacity"]), "raster-hue-rotate": new mi(Et.paint_raster["raster-hue-rotate"]), "raster-brightness-min": new mi(Et.paint_raster["raster-brightness-min"]), "raster-brightness-max": new mi(Et.paint_raster["raster-brightness-max"]), "raster-saturation": new mi(Et.paint_raster["raster-saturation"]), "raster-contrast": new mi(Et.paint_raster["raster-contrast"]), "raster-resampling": new mi(Et.paint_raster["raster-resampling"]), "raster-fade-duration": new mi(Et.paint_raster["raster-fade-duration"]) }) }, kl = function(t2) { + function e2(e3) { + t2.call(this, e3, Sl); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2; + }(_i), Il = function(t2) { + function e2(e3) { + t2.call(this, e3, {}), this.implementation = e3; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.is3D = function() { return "3d" === this.implementation.renderingMode; - } - hasOffscreenPass() { + }, e2.prototype.hasOffscreenPass = function() { return void 0 !== this.implementation.prerender; - } - recalculate() { - } - updateTransitions() { - } - hasTransition() { - return false; - } - serialize() { - throw new Error("Custom layers cannot be serialized"); - } - } - const Ku = { circle: class extends yi { - constructor(t2) { - super(t2, cs); - } - createBucket(t2) { - return new Ja(t2); - } - queryRadius(t2) { - const e2 = t2; - return ss("circle-radius", this, e2) + ss("circle-stroke-width", this, e2) + os(this.paint.get("circle-translate")); - } - queryIntersectsFeature(t2, e2, r2, n2, i2, a2, s2, o2) { - const l2 = ls(t2, this.paint.get("circle-translate"), this.paint.get("circle-translate-anchor"), a2.angle, s2), u2 = this.paint.get("circle-radius").evaluate(e2, r2) + this.paint.get("circle-stroke-width").evaluate(e2, r2), c3 = "map" === this.paint.get("circle-pitch-alignment"), h3 = c3 ? l2 : function(t3, e3) { - return t3.map((t4) => _s(t4, e3)); - }(l2, o2), p3 = c3 ? u2 * s2 : u2; - for (const t3 of n2) - for (const e3 of t3) { - const t4 = c3 ? e3 : _s(e3, o2); - let r3 = p3; - const n3 = bs([], [e3.x, e3.y, 0, 1], o2); - if ("viewport" === this.paint.get("circle-pitch-scale") && "map" === this.paint.get("circle-pitch-alignment") ? r3 *= n3[3] / a2.cameraToCenterDistance : "map" === this.paint.get("circle-pitch-scale") && "viewport" === this.paint.get("circle-pitch-alignment") && (r3 *= a2.cameraToCenterDistance / n3[3]), Ya(h3, t4, r3)) - return true; - } - return false; - } - }, heatmap: class extends yi { - constructor(t2) { - super(t2, ks), this._updateColorRamp(); - } - createBucket(t2) { - return new As(t2); - } - _handleSpecialPaintPropertyUpdate(t2) { - "heatmap-color" === t2 && this._updateColorRamp(); - } - _updateColorRamp() { - this.colorRamp = Cs({ expression: this._transitionablePaint._values["heatmap-color"].value.expression, evaluationKey: "heatmapDensity", image: this.colorRamp }), this.colorRampTexture = null; - } - resize() { - this.heatmapFbo && (this.heatmapFbo.destroy(), this.heatmapFbo = null); - } - queryRadius() { - return 0; - } - queryIntersectsFeature() { - return false; - } - hasOffscreenPass() { - return 0 !== this.paint.get("heatmap-opacity") && "none" !== this.visibility; - } - }, hillshade: class extends yi { - constructor(t2) { - super(t2, Ps); - } - hasOffscreenPass() { - return 0 !== this.paint.get("hillshade-exaggeration") && "none" !== this.visibility; - } - }, fill: class extends yi { - constructor(t2) { - super(t2, xo); - } - recalculate(t2, e2) { - super.recalculate(t2, e2); - const r2 = this.paint._values["fill-outline-color"]; - "constant" === r2.value.kind && void 0 === r2.value.value && (this.paint._values["fill-outline-color"] = this.paint._values["fill-color"]); - } - createBucket(t2) { - return new mo(t2); - } - queryRadius() { - return os(this.paint.get("fill-translate")); - } - queryIntersectsFeature(t2, e2, r2, n2, i2, a2, s2) { - return Ha(ls(t2, this.paint.get("fill-translate"), this.paint.get("fill-translate-anchor"), a2.angle, s2), n2); - } - isTileClipped() { - return true; - } - }, "fill-extrusion": class extends yi { - constructor(t2) { - super(t2, Oo); - } - createBucket(t2) { - return new Do(t2); - } - queryRadius() { - return os(this.paint.get("fill-extrusion-translate")); - } - is3D() { - return true; - } - queryIntersectsFeature(t2, e2, r2, n2, i2, a2, s2, o2) { - const l2 = ls(t2, this.paint.get("fill-extrusion-translate"), this.paint.get("fill-extrusion-translate-anchor"), a2.angle, s2), u2 = this.paint.get("fill-extrusion-height").evaluate(e2, r2), c3 = this.paint.get("fill-extrusion-base").evaluate(e2, r2), h3 = function(t3, e3, r3, n3) { - const i3 = []; - for (const r4 of t3) { - const t4 = [r4.x, r4.y, 0, 1]; - bs(t4, t4, e3), i3.push(new S(t4[0] / t4[3], t4[1] / t4[3])); - } - return i3; - }(l2, o2), p3 = function(t3, e3, r3, n3) { - const i3 = [], a3 = [], s3 = n3[8] * e3, o3 = n3[9] * e3, l3 = n3[10] * e3, u3 = n3[11] * e3, c4 = n3[8] * r3, h4 = n3[9] * r3, p4 = n3[10] * r3, f2 = n3[11] * r3; - for (const e4 of t3) { - const t4 = [], r4 = []; - for (const i4 of e4) { - const e5 = i4.x, a4 = i4.y, d2 = n3[0] * e5 + n3[4] * a4 + n3[12], y3 = n3[1] * e5 + n3[5] * a4 + n3[13], m2 = n3[2] * e5 + n3[6] * a4 + n3[14], g2 = n3[3] * e5 + n3[7] * a4 + n3[15], x2 = m2 + l3, v3 = g2 + u3, b2 = d2 + c4, w2 = y3 + h4, _2 = m2 + p4, A3 = g2 + f2, k2 = new S((d2 + s3) / v3, (y3 + o3) / v3); - k2.z = x2 / v3, t4.push(k2); - const I3 = new S(b2 / A3, w2 / A3); - I3.z = _2 / A3, r4.push(I3); - } - i3.push(t4), a3.push(r4); - } - return [i3, a3]; - }(n2, c3, u2, o2); - return function(t3, e3, r3) { - let n3 = 1 / 0; - Ha(r3, e3) && (n3 = qo(r3, e3[0])); - for (let i3 = 0; i3 < e3.length; i3++) { - const a3 = e3[i3], s3 = t3[i3]; - for (let t4 = 0; t4 < a3.length - 1; t4++) { - const e4 = a3[t4], i4 = [e4, a3[t4 + 1], s3[t4 + 1], s3[t4], e4]; - Xa(r3, i4) && (n3 = Math.min(n3, qo(r3, i4))); - } - } - return n3 !== 1 / 0 && n3; - }(p3[0], p3[1], h3); - } - }, line: class extends yi { - constructor(t2) { - super(t2, Wo), this.gradientVersion = 0; - } - _handleSpecialPaintPropertyUpdate(t2) { - "line-gradient" === t2 && (this.stepInterpolant = this._transitionablePaint._values["line-gradient"].value.expression._styleExpression.expression instanceof ke, this.gradientVersion = (this.gradientVersion + 1) % Number.MAX_SAFE_INTEGER); - } - gradientExpression() { - return this._transitionablePaint._values["line-gradient"].value.expression; - } - recalculate(t2, e2) { - super.recalculate(t2, e2), this.paint._values["line-floorwidth"] = Qo.possiblyEvaluate(this._transitioningPaint._values["line-width"].value, t2); - } - createBucket(t2) { - return new Yo(t2); - } - queryRadius(t2) { - const e2 = t2, r2 = tl(ss("line-width", this, e2), ss("line-gap-width", this, e2)), n2 = ss("line-offset", this, e2); - return r2 / 2 + Math.abs(n2) + os(this.paint.get("line-translate")); - } - queryIntersectsFeature(t2, e2, r2, n2, i2, a2, s2) { - const o2 = ls(t2, this.paint.get("line-translate"), this.paint.get("line-translate-anchor"), a2.angle, s2), l2 = s2 / 2 * tl(this.paint.get("line-width").evaluate(e2, r2), this.paint.get("line-gap-width").evaluate(e2, r2)), u2 = this.paint.get("line-offset").evaluate(e2, r2); - return u2 && (n2 = function(t3, e3) { - const r3 = []; - for (let n3 = 0; n3 < t3.length; n3++) { - const i3 = t3[n3], a3 = []; - for (let t4 = 0; t4 < i3.length; t4++) { - const r4 = i3[t4 - 1], n4 = i3[t4], s3 = i3[t4 + 1], o3 = 0 === t4 ? new S(0, 0) : n4.sub(r4)._unit()._perp(), l3 = t4 === i3.length - 1 ? new S(0, 0) : s3.sub(n4)._unit()._perp(), u3 = o3._add(l3)._unit(), c3 = u3.x * l3.x + u3.y * l3.y; - 0 !== c3 && u3._mult(1 / c3), a3.push(u3._mult(e3)._add(n4)); - } - r3.push(a3); - } - return r3; - }(n2, u2 * s2)), function(t3, e3, r3) { - for (let n3 = 0; n3 < e3.length; n3++) { - const i3 = e3[n3]; - if (t3.length >= 3) { - for (let e4 = 0; e4 < i3.length; e4++) - if (is(t3, i3[e4])) - return true; - } - if (Wa(t3, i3, r3)) - return true; - } - return false; - }(o2, n2, l2); - } - isTileClipped() { - return true; - } - }, symbol: Uu, background: class extends yi { - constructor(t2) { - super(t2, ju); - } - }, raster: class extends yi { - constructor(t2) { - super(t2, Nu); - } - } }; - class Gu { - constructor(t2) { - this._callback = t2, this._triggered = false, "undefined" != typeof MessageChannel && (this._channel = new MessageChannel(), this._channel.port2.onmessage = () => { - this._triggered = false, this._callback(); - }); - } - trigger() { - this._triggered || (this._triggered = true, this._channel ? this._channel.port1.postMessage(true) : setTimeout(() => { - this._triggered = false, this._callback(); - }, 0)); - } - remove() { - delete this._channel, this._callback = () => { - }; - } - } - const Ju = 63710088e-1; - class Xu { - constructor(t2, e2) { - if (isNaN(t2) || isNaN(e2)) - throw new Error(`Invalid LngLat object: (${t2}, ${e2})`); - if (this.lng = +t2, this.lat = +e2, this.lat > 90 || this.lat < -90) - throw new Error("Invalid LngLat latitude value: must be between -90 and 90"); - } - wrap() { - return new Xu(s(this.lng, -180, 180), this.lat); - } - toArray() { - return [this.lng, this.lat]; - } - toString() { - return `LngLat(${this.lng}, ${this.lat})`; - } - distanceTo(t2) { - const e2 = Math.PI / 180, r2 = this.lat * e2, n2 = t2.lat * e2, i2 = Math.sin(r2) * Math.sin(n2) + Math.cos(r2) * Math.cos(n2) * Math.cos((t2.lng - this.lng) * e2); - return Ju * Math.acos(Math.min(i2, 1)); - } - toBounds(t2 = 0) { - const e2 = 360 * t2 / 40075017, r2 = e2 / Math.cos(Math.PI / 180 * this.lat); - return new Yu(new Xu(this.lng - r2, this.lat - e2), new Xu(this.lng + r2, this.lat + e2)); - } - static convert(t2) { - if (t2 instanceof Xu) - return t2; - if (Array.isArray(t2) && (2 === t2.length || 3 === t2.length)) - return new Xu(Number(t2[0]), Number(t2[1])); - if (!Array.isArray(t2) && "object" == typeof t2 && null !== t2) - return new Xu(Number("lng" in t2 ? t2.lng : t2.lon), Number(t2.lat)); - throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]"); - } + }, e2.prototype.recalculate = function() { + }, e2.prototype.updateTransitions = function() { + }, e2.prototype.hasTransition = function() { + }, e2.prototype.serialize = function() { + }, e2.prototype.onAdd = function(t3) { + this.implementation.onAdd && this.implementation.onAdd(t3, t3.painter.context.gl); + }, e2.prototype.onRemove = function(t3) { + this.implementation.onRemove && this.implementation.onRemove(t3, t3.painter.context.gl); + }, e2; + }(_i), zl = { circle: co, heatmap: _o, hillshade: So, fill: ps, "fill-extrusion": zs, line: Rs, symbol: wl, background: Al, raster: kl }, Cl = o.HTMLImageElement, El = o.HTMLCanvasElement, Pl = o.HTMLVideoElement, Ml = o.ImageData, Bl = o.ImageBitmap, Tl = function(t2, e2, r2, n2) { + this.context = t2, this.format = r2, this.texture = t2.gl.createTexture(), this.update(e2, n2); + }; + Tl.prototype.update = function(t2, e2, r2) { + var n2 = t2.width, i2 = t2.height, a2 = !(this.size && this.size[0] === n2 && this.size[1] === i2 || r2), o2 = this.context, s2 = o2.gl; + if (this.useMipmap = Boolean(e2 && e2.useMipmap), s2.bindTexture(s2.TEXTURE_2D, this.texture), o2.pixelStoreUnpackFlipY.set(false), o2.pixelStoreUnpack.set(1), o2.pixelStoreUnpackPremultiplyAlpha.set(this.format === s2.RGBA && (!e2 || false !== e2.premultiply)), a2) + this.size = [n2, i2], t2 instanceof Cl || t2 instanceof El || t2 instanceof Pl || t2 instanceof Ml || Bl && t2 instanceof Bl ? s2.texImage2D(s2.TEXTURE_2D, 0, this.format, this.format, s2.UNSIGNED_BYTE, t2) : s2.texImage2D(s2.TEXTURE_2D, 0, this.format, n2, i2, 0, this.format, s2.UNSIGNED_BYTE, t2.data); + else { + var u2 = r2 || { x: 0, y: 0 }, l2 = u2.x, p3 = u2.y; + t2 instanceof Cl || t2 instanceof El || t2 instanceof Pl || t2 instanceof Ml || Bl && t2 instanceof Bl ? s2.texSubImage2D(s2.TEXTURE_2D, 0, l2, p3, s2.RGBA, s2.UNSIGNED_BYTE, t2) : s2.texSubImage2D(s2.TEXTURE_2D, 0, l2, p3, n2, i2, s2.RGBA, s2.UNSIGNED_BYTE, t2.data); + } + this.useMipmap && this.isSizePowerOfTwo() && s2.generateMipmap(s2.TEXTURE_2D); + }, Tl.prototype.bind = function(t2, e2, r2) { + var n2 = this.context.gl; + n2.bindTexture(n2.TEXTURE_2D, this.texture), r2 !== n2.LINEAR_MIPMAP_NEAREST || this.isSizePowerOfTwo() || (r2 = n2.LINEAR), t2 !== this.filter && (n2.texParameteri(n2.TEXTURE_2D, n2.TEXTURE_MAG_FILTER, t2), n2.texParameteri(n2.TEXTURE_2D, n2.TEXTURE_MIN_FILTER, r2 || t2), this.filter = t2), e2 !== this.wrap && (n2.texParameteri(n2.TEXTURE_2D, n2.TEXTURE_WRAP_S, e2), n2.texParameteri(n2.TEXTURE_2D, n2.TEXTURE_WRAP_T, e2), this.wrap = e2); + }, Tl.prototype.isSizePowerOfTwo = function() { + return this.size[0] === this.size[1] && Math.log(this.size[0]) / Math.LN2 % 1 == 0; + }, Tl.prototype.destroy = function() { + this.context.gl.deleteTexture(this.texture), this.texture = null; + }; + var Vl = function(t2) { + var e2 = this; + this._callback = t2, this._triggered = false, "undefined" != typeof MessageChannel && (this._channel = new MessageChannel(), this._channel.port2.onmessage = function() { + e2._triggered = false, e2._callback(); + }); + }; + Vl.prototype.trigger = function() { + var t2 = this; + this._triggered || (this._triggered = true, this._channel ? this._channel.port1.postMessage(true) : setTimeout(function() { + t2._triggered = false, t2._callback(); + }, 0)); + }, Vl.prototype.remove = function() { + delete this._channel, this._callback = function() { + }; + }; + var Fl = function(t2, e2, r2) { + this.target = t2, this.parent = e2, this.mapId = r2, this.callbacks = {}, this.tasks = {}, this.taskQueue = [], this.cancelCallbacks = {}, v2(["receive", "process"], this), this.invoker = new Vl(this.process), this.target.addEventListener("message", this.receive, false), this.globalScope = I2() ? t2 : o; + }; + function Dl(t2, e2, r2) { + var n2 = 2 * Math.PI * 6378137 / 256 / Math.pow(2, r2); + return [t2 * n2 - 2 * Math.PI * 6378137 / 2, e2 * n2 - 2 * Math.PI * 6378137 / 2]; } - class Yu { - constructor(t2, e2) { - t2 && (e2 ? this.setSouthWest(t2).setNorthEast(e2) : 4 === t2.length ? this.setSouthWest([t2[0], t2[1]]).setNorthEast([t2[2], t2[3]]) : this.setSouthWest(t2[0]).setNorthEast(t2[1])); - } - setNorthEast(t2) { - return this._ne = t2 instanceof Xu ? new Xu(t2.lng, t2.lat) : Xu.convert(t2), this; - } - setSouthWest(t2) { - return this._sw = t2 instanceof Xu ? new Xu(t2.lng, t2.lat) : Xu.convert(t2), this; - } - extend(t2) { - const e2 = this._sw, r2 = this._ne; - let n2, i2; - if (t2 instanceof Xu) - n2 = t2, i2 = t2; - else { - if (!(t2 instanceof Yu)) - return Array.isArray(t2) ? 4 === t2.length || t2.every(Array.isArray) ? this.extend(Yu.convert(t2)) : this.extend(Xu.convert(t2)) : this; - if (n2 = t2._sw, i2 = t2._ne, !n2 || !i2) - return this; - } - return e2 || r2 ? (e2.lng = Math.min(n2.lng, e2.lng), e2.lat = Math.min(n2.lat, e2.lat), r2.lng = Math.max(i2.lng, r2.lng), r2.lat = Math.max(i2.lat, r2.lat)) : (this._sw = new Xu(n2.lng, n2.lat), this._ne = new Xu(i2.lng, i2.lat)), this; - } - getCenter() { - return new Xu((this._sw.lng + this._ne.lng) / 2, (this._sw.lat + this._ne.lat) / 2); - } - getSouthWest() { - return this._sw; - } - getNorthEast() { - return this._ne; - } - getNorthWest() { - return new Xu(this.getWest(), this.getNorth()); - } - getSouthEast() { - return new Xu(this.getEast(), this.getSouth()); - } - getWest() { - return this._sw.lng; - } - getSouth() { - return this._sw.lat; - } - getEast() { - return this._ne.lng; - } - getNorth() { - return this._ne.lat; - } - toArray() { - return [this._sw.toArray(), this._ne.toArray()]; - } - toString() { - return `LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`; - } - isEmpty() { - return !(this._sw && this._ne); + Fl.prototype.send = function(t2, e2, r2, n2, i2) { + var a2 = this; + void 0 === i2 && (i2 = false); + var o2 = Math.round(1e18 * Math.random()).toString(36).substring(0, 10); + r2 && (this.callbacks[o2] = r2); + var s2 = E(this.globalScope) ? void 0 : []; + return this.target.postMessage({ id: o2, type: t2, hasCallback: !!r2, targetMapId: n2, mustQueue: i2, sourceMapId: this.mapId, data: qn(e2, s2) }, s2), { cancel: function() { + r2 && delete a2.callbacks[o2], a2.target.postMessage({ id: o2, type: "", targetMapId: n2, sourceMapId: a2.mapId }); + } }; + }, Fl.prototype.receive = function(t2) { + var e2 = t2.data, r2 = e2.id; + if (r2 && (!e2.targetMapId || this.mapId === e2.targetMapId)) + if ("" === e2.type) { + delete this.tasks[r2]; + var n2 = this.cancelCallbacks[r2]; + delete this.cancelCallbacks[r2], n2 && n2(); + } else + I2() || e2.mustQueue ? (this.tasks[r2] = e2, this.taskQueue.push(r2), this.invoker.trigger()) : this.processTask(r2, e2); + }, Fl.prototype.process = function() { + if (this.taskQueue.length) { + var t2 = this.taskQueue.shift(), e2 = this.tasks[t2]; + delete this.tasks[t2], this.taskQueue.length && this.invoker.trigger(), e2 && this.processTask(t2, e2); } - contains(t2) { - const { lng: e2, lat: r2 } = Xu.convert(t2); - let n2 = this._sw.lng <= e2 && e2 <= this._ne.lng; - return this._sw.lng > this._ne.lng && (n2 = this._sw.lng >= e2 && e2 >= this._ne.lng), this._sw.lat <= r2 && r2 <= this._ne.lat && n2; + }, Fl.prototype.processTask = function(t2, e2) { + var r2 = this; + if ("" === e2.type) { + var n2 = this.callbacks[t2]; + delete this.callbacks[t2], n2 && (e2.error ? n2(Nn(e2.error)) : n2(null, Nn(e2.data))); + } else { + var i2 = false, a2 = E(this.globalScope) ? void 0 : [], o2 = e2.hasCallback ? function(e3, n3) { + i2 = true, delete r2.cancelCallbacks[t2], r2.target.postMessage({ id: t2, type: "", sourceMapId: r2.mapId, error: e3 ? qn(e3) : null, data: qn(n3, a2) }, a2); + } : function(t3) { + i2 = true; + }, s2 = null, u2 = Nn(e2.data); + if (this.parent[e2.type]) + s2 = this.parent[e2.type](e2.sourceMapId, u2, o2); + else if (this.parent.getWorkerSource) { + var l2 = e2.type.split("."); + s2 = this.parent.getWorkerSource(e2.sourceMapId, l2[0], u2.source)[l2[1]](u2, o2); + } else + o2(new Error("Could not find function " + e2.type)); + !i2 && s2 && s2.cancel && (this.cancelCallbacks[t2] = s2.cancel); } - static convert(t2) { - return t2 instanceof Yu ? t2 : t2 ? new Yu(t2) : t2; + }, Fl.prototype.remove = function() { + this.invoker.remove(), this.target.removeEventListener("message", this.receive, false); + }; + var Ll = function(t2, e2) { + t2 && (e2 ? this.setSouthWest(t2).setNorthEast(e2) : 4 === t2.length ? this.setSouthWest([t2[0], t2[1]]).setNorthEast([t2[2], t2[3]]) : this.setSouthWest(t2[0]).setNorthEast(t2[1])); + }; + Ll.prototype.setNorthEast = function(t2) { + return this._ne = t2 instanceof Ol ? new Ol(t2.lng, t2.lat) : Ol.convert(t2), this; + }, Ll.prototype.setSouthWest = function(t2) { + return this._sw = t2 instanceof Ol ? new Ol(t2.lng, t2.lat) : Ol.convert(t2), this; + }, Ll.prototype.extend = function(t2) { + var e2, r2, n2 = this._sw, i2 = this._ne; + if (t2 instanceof Ol) + e2 = t2, r2 = t2; + else { + if (!(t2 instanceof Ll)) + return Array.isArray(t2) ? 4 === t2.length || t2.every(Array.isArray) ? this.extend(Ll.convert(t2)) : this.extend(Ol.convert(t2)) : this; + if (r2 = t2._ne, !(e2 = t2._sw) || !r2) + return this; } + return n2 || i2 ? (n2.lng = Math.min(e2.lng, n2.lng), n2.lat = Math.min(e2.lat, n2.lat), i2.lng = Math.max(r2.lng, i2.lng), i2.lat = Math.max(r2.lat, i2.lat)) : (this._sw = new Ol(e2.lng, e2.lat), this._ne = new Ol(r2.lng, r2.lat)), this; + }, Ll.prototype.getCenter = function() { + return new Ol((this._sw.lng + this._ne.lng) / 2, (this._sw.lat + this._ne.lat) / 2); + }, Ll.prototype.getSouthWest = function() { + return this._sw; + }, Ll.prototype.getNorthEast = function() { + return this._ne; + }, Ll.prototype.getNorthWest = function() { + return new Ol(this.getWest(), this.getNorth()); + }, Ll.prototype.getSouthEast = function() { + return new Ol(this.getEast(), this.getSouth()); + }, Ll.prototype.getWest = function() { + return this._sw.lng; + }, Ll.prototype.getSouth = function() { + return this._sw.lat; + }, Ll.prototype.getEast = function() { + return this._ne.lng; + }, Ll.prototype.getNorth = function() { + return this._ne.lat; + }, Ll.prototype.toArray = function() { + return [this._sw.toArray(), this._ne.toArray()]; + }, Ll.prototype.toString = function() { + return "LngLatBounds(" + this._sw.toString() + ", " + this._ne.toString() + ")"; + }, Ll.prototype.isEmpty = function() { + return !(this._sw && this._ne); + }, Ll.prototype.contains = function(t2) { + var e2 = Ol.convert(t2), r2 = e2.lng, n2 = e2.lat, i2 = this._sw.lng <= r2 && r2 <= this._ne.lng; + return this._sw.lng > this._ne.lng && (i2 = this._sw.lng >= r2 && r2 >= this._ne.lng), this._sw.lat <= n2 && n2 <= this._ne.lat && i2; + }, Ll.convert = function(t2) { + return !t2 || t2 instanceof Ll ? t2 : new Ll(t2); + }; + var Ol = function(t2, e2) { + if (isNaN(t2) || isNaN(e2)) + throw new Error("Invalid LngLat object: (" + t2 + ", " + e2 + ")"); + if (this.lng = +t2, this.lat = +e2, this.lat > 90 || this.lat < -90) + throw new Error("Invalid LngLat latitude value: must be between -90 and 90"); + }; + Ol.prototype.wrap = function() { + return new Ol(c2(this.lng, -180, 180), this.lat); + }, Ol.prototype.toArray = function() { + return [this.lng, this.lat]; + }, Ol.prototype.toString = function() { + return "LngLat(" + this.lng + ", " + this.lat + ")"; + }, Ol.prototype.distanceTo = function(t2) { + var e2 = Math.PI / 180, r2 = this.lat * e2, n2 = t2.lat * e2, i2 = Math.sin(r2) * Math.sin(n2) + Math.cos(r2) * Math.cos(n2) * Math.cos((t2.lng - this.lng) * e2); + return 63710088e-1 * Math.acos(Math.min(i2, 1)); + }, Ol.prototype.toBounds = function(t2) { + void 0 === t2 && (t2 = 0); + var e2 = 360 * t2 / 40075017, r2 = e2 / Math.cos(Math.PI / 180 * this.lat); + return new Ll(new Ol(this.lng - r2, this.lat - e2), new Ol(this.lng + r2, this.lat + e2)); + }, Ol.convert = function(t2) { + if (t2 instanceof Ol) + return t2; + if (Array.isArray(t2) && (2 === t2.length || 3 === t2.length)) + return new Ol(Number(t2[0]), Number(t2[1])); + if (!Array.isArray(t2) && "object" == typeof t2 && null !== t2) + return new Ol(Number("lng" in t2 ? t2.lng : t2.lon), Number(t2.lat)); + throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]"); + }; + var Rl = 2 * Math.PI * 63710088e-1; + function Ul(t2) { + return Rl * Math.cos(t2 * Math.PI / 180); } - const Hu = 2 * Math.PI * Ju; - function Wu(t2) { - return Hu * Math.cos(t2 * Math.PI / 180); - } - function Qu(t2) { + function jl(t2) { return (180 + t2) / 360; } - function tc(t2) { + function ql(t2) { return (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + t2 * Math.PI / 360))) / 360; } - function ec(t2, e2) { - return t2 / Wu(e2); + function Nl(t2, e2) { + return t2 / Ul(e2); } - function rc(t2) { + function Kl(t2) { return 360 / Math.PI * Math.atan(Math.exp((180 - 360 * t2) * Math.PI / 180)) - 90; } - class nc { - constructor(t2, e2, r2 = 0) { - this.x = +t2, this.y = +e2, this.z = +r2; - } - static fromLngLat(t2, e2 = 0) { - const r2 = Xu.convert(t2); - return new nc(Qu(r2.lng), tc(r2.lat), ec(e2, r2.lat)); - } - toLngLat() { - return new Xu(360 * this.x - 180, rc(this.y)); - } - toAltitude() { - return this.z * Wu(rc(this.y)); - } - meterInMercatorCoordinateUnits() { - return 1 / Hu * (t2 = rc(this.y), 1 / Math.cos(t2 * Math.PI / 180)); - var t2; - } - } - function ic(t2, e2, r2) { - var n2 = 2 * Math.PI * 6378137 / 256 / Math.pow(2, r2); - return [t2 * n2 - 2 * Math.PI * 6378137 / 2, e2 * n2 - 2 * Math.PI * 6378137 / 2]; - } - class ac { - constructor(t2, e2, r2) { - if (t2 < 0 || t2 > 25 || r2 < 0 || r2 >= Math.pow(2, t2) || e2 < 0 || e2 >= Math.pow(2, t2)) - throw new Error(`x=${e2}, y=${r2}, z=${t2} outside of bounds. 0<=x<${Math.pow(2, t2)}, 0<=y<${Math.pow(2, t2)} 0<=z<=25 `); - this.z = t2, this.x = e2, this.y = r2, this.key = lc(0, t2, t2, e2, r2); - } - equals(t2) { - return this.z === t2.z && this.x === t2.x && this.y === t2.y; - } - url(t2, e2, r2) { - const n2 = (a2 = this.y, s2 = this.z, o2 = ic(256 * (i2 = this.x), 256 * (a2 = Math.pow(2, s2) - a2 - 1), s2), l2 = ic(256 * (i2 + 1), 256 * (a2 + 1), s2), o2[0] + "," + o2[1] + "," + l2[0] + "," + l2[1]); - var i2, a2, s2, o2, l2; - const u2 = function(t3, e3, r3) { - let n3, i3 = ""; - for (let a3 = t3; a3 > 0; a3--) - n3 = 1 << a3 - 1, i3 += (e3 & n3 ? 1 : 0) + (r3 & n3 ? 2 : 0); - return i3; - }(this.z, this.x, this.y); - return t2[(this.x + this.y) % t2.length].replace(/{prefix}/g, (this.x % 16).toString(16) + (this.y % 16).toString(16)).replace(/{z}/g, String(this.z)).replace(/{x}/g, String(this.x)).replace(/{y}/g, String("tms" === r2 ? Math.pow(2, this.z) - this.y - 1 : this.y)).replace(/{ratio}/g, e2 > 1 ? "@2x" : "").replace(/{quadkey}/g, u2).replace(/{bbox-epsg-3857}/g, n2); - } - isChildOf(t2) { - const e2 = this.z - t2.z; - return e2 > 0 && t2.x === this.x >> e2 && t2.y === this.y >> e2; - } - getTilePoint(t2) { - const e2 = Math.pow(2, this.z); - return new S((t2.x * e2 - this.x) * qa, (t2.y * e2 - this.y) * qa); - } - toString() { - return `${this.z}/${this.x}/${this.y}`; - } - } - class sc { - constructor(t2, e2) { - this.wrap = t2, this.canonical = e2, this.key = lc(t2, e2.z, e2.z, e2.x, e2.y); - } - } - class oc { - constructor(t2, e2, r2, n2, i2) { - if (t2 < r2) - throw new Error(`overscaledZ should be >= z; overscaledZ = ${t2}; z = ${r2}`); - this.overscaledZ = t2, this.wrap = e2, this.canonical = new ac(r2, +n2, +i2), this.key = lc(e2, t2, r2, n2, i2); - } - clone() { - return new oc(this.overscaledZ, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y); - } - equals(t2) { - return this.overscaledZ === t2.overscaledZ && this.wrap === t2.wrap && this.canonical.equals(t2.canonical); - } - scaledTo(t2) { - if (t2 > this.overscaledZ) - throw new Error(`targetZ > this.overscaledZ; targetZ = ${t2}; overscaledZ = ${this.overscaledZ}`); - const e2 = this.canonical.z - t2; - return t2 > this.canonical.z ? new oc(t2, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y) : new oc(t2, this.wrap, t2, this.canonical.x >> e2, this.canonical.y >> e2); - } - calculateScaledKey(t2, e2) { - if (t2 > this.overscaledZ) - throw new Error(`targetZ > this.overscaledZ; targetZ = ${t2}; overscaledZ = ${this.overscaledZ}`); - const r2 = this.canonical.z - t2; - return t2 > this.canonical.z ? lc(this.wrap * +e2, t2, this.canonical.z, this.canonical.x, this.canonical.y) : lc(this.wrap * +e2, t2, t2, this.canonical.x >> r2, this.canonical.y >> r2); - } - isChildOf(t2) { - if (t2.wrap !== this.wrap) - return false; - const e2 = this.canonical.z - t2.canonical.z; - return 0 === t2.overscaledZ || t2.overscaledZ < this.overscaledZ && t2.canonical.x === this.canonical.x >> e2 && t2.canonical.y === this.canonical.y >> e2; - } - children(t2) { - if (this.overscaledZ >= t2) - return [new oc(this.overscaledZ + 1, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y)]; - const e2 = this.canonical.z + 1, r2 = 2 * this.canonical.x, n2 = 2 * this.canonical.y; - return [new oc(e2, this.wrap, e2, r2, n2), new oc(e2, this.wrap, e2, r2 + 1, n2), new oc(e2, this.wrap, e2, r2, n2 + 1), new oc(e2, this.wrap, e2, r2 + 1, n2 + 1)]; - } - isLessThan(t2) { - return this.wrap < t2.wrap || !(this.wrap > t2.wrap) && (this.overscaledZ < t2.overscaledZ || !(this.overscaledZ > t2.overscaledZ) && (this.canonical.x < t2.canonical.x || !(this.canonical.x > t2.canonical.x) && this.canonical.y < t2.canonical.y)); - } - wrapped() { - return new oc(this.overscaledZ, 0, this.canonical.z, this.canonical.x, this.canonical.y); - } - unwrapTo(t2) { - return new oc(this.overscaledZ, t2, this.canonical.z, this.canonical.x, this.canonical.y); - } - overscaleFactor() { - return Math.pow(2, this.overscaledZ - this.canonical.z); - } - toUnwrapped() { - return new sc(this.wrap, this.canonical); - } - toString() { - return `${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`; - } - getTilePoint(t2) { - return this.canonical.getTilePoint(new nc(t2.x - this.wrap, t2.y)); - } - } - function lc(t2, e2, r2, n2, i2) { + var Gl = function(t2, e2, r2) { + void 0 === r2 && (r2 = 0), this.x = +t2, this.y = +e2, this.z = +r2; + }; + Gl.fromLngLat = function(t2, e2) { + void 0 === e2 && (e2 = 0); + var r2 = Ol.convert(t2); + return new Gl(jl(r2.lng), ql(r2.lat), Nl(e2, r2.lat)); + }, Gl.prototype.toLngLat = function() { + return new Ol(360 * this.x - 180, Kl(this.y)); + }, Gl.prototype.toAltitude = function() { + return this.z * Ul(Kl(this.y)); + }, Gl.prototype.meterInMercatorCoordinateUnits = function() { + return 1 / Rl * (t2 = Kl(this.y), 1 / Math.cos(t2 * Math.PI / 180)); + var t2; + }; + var Zl = function(t2, e2, r2) { + this.z = t2, this.x = e2, this.y = r2, this.key = Hl(0, t2, t2, e2, r2); + }; + Zl.prototype.equals = function(t2) { + return this.z === t2.z && this.x === t2.x && this.y === t2.y; + }, Zl.prototype.url = function(t2, e2) { + var r2, n2, i2, a2, o2, s2 = (n2 = this.y, i2 = this.z, a2 = Dl(256 * (r2 = this.x), 256 * (n2 = Math.pow(2, i2) - n2 - 1), i2), o2 = Dl(256 * (r2 + 1), 256 * (n2 + 1), i2), a2[0] + "," + a2[1] + "," + o2[0] + "," + o2[1]), u2 = function(t3, e3, r3) { + for (var n3, i3 = "", a3 = t3; a3 > 0; a3--) + i3 += (e3 & (n3 = 1 << a3 - 1) ? 1 : 0) + (r3 & n3 ? 2 : 0); + return i3; + }(this.z, this.x, this.y); + return t2[(this.x + this.y) % t2.length].replace("{prefix}", (this.x % 16).toString(16) + (this.y % 16).toString(16)).replace("{z}", String(this.z)).replace("{x}", String(this.x)).replace("{y}", String("tms" === e2 ? Math.pow(2, this.z) - this.y - 1 : this.y)).replace("{quadkey}", u2).replace("{bbox-epsg-3857}", s2); + }, Zl.prototype.getTilePoint = function(t2) { + var e2 = Math.pow(2, this.z); + return new i(8192 * (t2.x * e2 - this.x), 8192 * (t2.y * e2 - this.y)); + }, Zl.prototype.toString = function() { + return this.z + "/" + this.x + "/" + this.y; + }; + var Xl = function(t2, e2) { + this.wrap = t2, this.canonical = e2, this.key = Hl(t2, e2.z, e2.z, e2.x, e2.y); + }, Jl = function(t2, e2, r2, n2, i2) { + this.overscaledZ = t2, this.wrap = e2, this.canonical = new Zl(r2, +n2, +i2), this.key = Hl(e2, t2, r2, n2, i2); + }; + function Hl(t2, e2, r2, n2, i2) { (t2 *= 2) < 0 && (t2 = -1 * t2 - 1); - const a2 = 1 << r2; + var a2 = 1 << r2; return (a2 * a2 * t2 + a2 * i2 + n2).toString(36) + r2.toString(36) + e2.toString(36); } - Mn("CanonicalTileID", ac), Mn("OverscaledTileID", oc, { omit: ["posMatrix"] }); - class uc { - constructor(t2, e2, r2) { - if (this.uid = t2, e2.height !== e2.width) - throw new RangeError("DEM tiles must be square"); - if (r2 && "mapbox" !== r2 && "terrarium" !== r2) - return void d(`"${r2}" is not a valid encoding type. Valid types include "mapbox" and "terrarium".`); - this.stride = e2.height; - const n2 = this.dim = e2.height - 2; - this.data = new Uint32Array(e2.data.buffer), this.encoding = r2 || "mapbox"; - for (let t3 = 0; t3 < n2; t3++) - this.data[this._idx(-1, t3)] = this.data[this._idx(0, t3)], this.data[this._idx(n2, t3)] = this.data[this._idx(n2 - 1, t3)], this.data[this._idx(t3, -1)] = this.data[this._idx(t3, 0)], this.data[this._idx(t3, n2)] = this.data[this._idx(t3, n2 - 1)]; - this.data[this._idx(-1, -1)] = this.data[this._idx(0, 0)], this.data[this._idx(n2, -1)] = this.data[this._idx(n2 - 1, 0)], this.data[this._idx(-1, n2)] = this.data[this._idx(0, n2 - 1)], this.data[this._idx(n2, n2)] = this.data[this._idx(n2 - 1, n2 - 1)], this.min = Number.MAX_SAFE_INTEGER, this.max = Number.MIN_SAFE_INTEGER; - for (let t3 = 0; t3 < n2; t3++) - for (let e3 = 0; e3 < n2; e3++) { - const r3 = this.get(t3, e3); - r3 > this.max && (this.max = r3), r3 < this.min && (this.min = r3); - } - } - get(t2, e2) { - const r2 = new Uint8Array(this.data.buffer), n2 = 4 * this._idx(t2, e2); - return ("terrarium" === this.encoding ? this._unpackTerrarium : this._unpackMapbox)(r2[n2], r2[n2 + 1], r2[n2 + 2]); - } - getUnpackVector() { - return "terrarium" === this.encoding ? [256, 1, 1 / 256, 32768] : [6553.6, 25.6, 0.1, 1e4]; - } - _idx(t2, e2) { - if (t2 < -1 || t2 >= this.dim + 1 || e2 < -1 || e2 >= this.dim + 1) - throw new RangeError("out of range source coordinates for DEM data"); - return (e2 + 1) * this.stride + (t2 + 1); + Jl.prototype.equals = function(t2) { + return this.overscaledZ === t2.overscaledZ && this.wrap === t2.wrap && this.canonical.equals(t2.canonical); + }, Jl.prototype.scaledTo = function(t2) { + var e2 = this.canonical.z - t2; + return t2 > this.canonical.z ? new Jl(t2, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y) : new Jl(t2, this.wrap, t2, this.canonical.x >> e2, this.canonical.y >> e2); + }, Jl.prototype.calculateScaledKey = function(t2, e2) { + var r2 = this.canonical.z - t2; + return t2 > this.canonical.z ? Hl(this.wrap * +e2, t2, this.canonical.z, this.canonical.x, this.canonical.y) : Hl(this.wrap * +e2, t2, t2, this.canonical.x >> r2, this.canonical.y >> r2); + }, Jl.prototype.isChildOf = function(t2) { + if (t2.wrap !== this.wrap) + return false; + var e2 = this.canonical.z - t2.canonical.z; + return 0 === t2.overscaledZ || t2.overscaledZ < this.overscaledZ && t2.canonical.x === this.canonical.x >> e2 && t2.canonical.y === this.canonical.y >> e2; + }, Jl.prototype.children = function(t2) { + if (this.overscaledZ >= t2) + return [new Jl(this.overscaledZ + 1, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y)]; + var e2 = this.canonical.z + 1, r2 = 2 * this.canonical.x, n2 = 2 * this.canonical.y; + return [new Jl(e2, this.wrap, e2, r2, n2), new Jl(e2, this.wrap, e2, r2 + 1, n2), new Jl(e2, this.wrap, e2, r2, n2 + 1), new Jl(e2, this.wrap, e2, r2 + 1, n2 + 1)]; + }, Jl.prototype.isLessThan = function(t2) { + return this.wrap < t2.wrap || !(this.wrap > t2.wrap) && (this.overscaledZ < t2.overscaledZ || !(this.overscaledZ > t2.overscaledZ) && (this.canonical.x < t2.canonical.x || !(this.canonical.x > t2.canonical.x) && this.canonical.y < t2.canonical.y)); + }, Jl.prototype.wrapped = function() { + return new Jl(this.overscaledZ, 0, this.canonical.z, this.canonical.x, this.canonical.y); + }, Jl.prototype.unwrapTo = function(t2) { + return new Jl(this.overscaledZ, t2, this.canonical.z, this.canonical.x, this.canonical.y); + }, Jl.prototype.overscaleFactor = function() { + return Math.pow(2, this.overscaledZ - this.canonical.z); + }, Jl.prototype.toUnwrapped = function() { + return new Xl(this.wrap, this.canonical); + }, Jl.prototype.toString = function() { + return this.overscaledZ + "/" + this.canonical.x + "/" + this.canonical.y; + }, Jl.prototype.getTilePoint = function(t2) { + return this.canonical.getTilePoint(new Gl(t2.x - this.wrap, t2.y)); + }, On("CanonicalTileID", Zl), On("OverscaledTileID", Jl, { omit: ["posMatrix"] }); + var Yl = function(t2, e2, r2) { + if (this.uid = t2, e2.height !== e2.width) + throw new RangeError("DEM tiles must be square"); + if (r2 && "mapbox" !== r2 && "terrarium" !== r2) + return A2('"' + r2 + '" is not a valid encoding type. Valid types include "mapbox" and "terrarium".'); + this.stride = e2.height; + var n2 = this.dim = e2.height - 2; + this.data = new Uint32Array(e2.data.buffer), this.encoding = r2 || "mapbox"; + for (var i2 = 0; i2 < n2; i2++) + this.data[this._idx(-1, i2)] = this.data[this._idx(0, i2)], this.data[this._idx(n2, i2)] = this.data[this._idx(n2 - 1, i2)], this.data[this._idx(i2, -1)] = this.data[this._idx(i2, 0)], this.data[this._idx(i2, n2)] = this.data[this._idx(i2, n2 - 1)]; + this.data[this._idx(-1, -1)] = this.data[this._idx(0, 0)], this.data[this._idx(n2, -1)] = this.data[this._idx(n2 - 1, 0)], this.data[this._idx(-1, n2)] = this.data[this._idx(0, n2 - 1)], this.data[this._idx(n2, n2)] = this.data[this._idx(n2 - 1, n2 - 1)]; + }; + Yl.prototype.get = function(t2, e2) { + var r2 = new Uint8Array(this.data.buffer), n2 = 4 * this._idx(t2, e2); + return ("terrarium" === this.encoding ? this._unpackTerrarium : this._unpackMapbox)(r2[n2], r2[n2 + 1], r2[n2 + 2]); + }, Yl.prototype.getUnpackVector = function() { + return "terrarium" === this.encoding ? [256, 1, 1 / 256, 32768] : [6553.6, 25.6, 0.1, 1e4]; + }, Yl.prototype._idx = function(t2, e2) { + if (t2 < -1 || t2 >= this.dim + 1 || e2 < -1 || e2 >= this.dim + 1) + throw new RangeError("out of range source coordinates for DEM data"); + return (e2 + 1) * this.stride + (t2 + 1); + }, Yl.prototype._unpackMapbox = function(t2, e2, r2) { + return (256 * t2 * 256 + 256 * e2 + r2) / 10 - 1e4; + }, Yl.prototype._unpackTerrarium = function(t2, e2, r2) { + return 256 * t2 + e2 + r2 / 256 - 32768; + }, Yl.prototype.getPixels = function() { + return new xo({ width: this.stride, height: this.stride }, new Uint8Array(this.data.buffer)); + }, Yl.prototype.backfillBorder = function(t2, e2, r2) { + if (this.dim !== t2.dim) + throw new Error("dem dimension mismatch"); + var n2 = e2 * this.dim, i2 = e2 * this.dim + this.dim, a2 = r2 * this.dim, o2 = r2 * this.dim + this.dim; + switch (e2) { + case -1: + n2 = i2 - 1; + break; + case 1: + i2 = n2 + 1; } - _unpackMapbox(t2, e2, r2) { - return (256 * t2 * 256 + 256 * e2 + r2) / 10 - 1e4; + switch (r2) { + case -1: + a2 = o2 - 1; + break; + case 1: + o2 = a2 + 1; + } + for (var s2 = -e2 * this.dim, u2 = -r2 * this.dim, l2 = a2; l2 < o2; l2++) + for (var p3 = n2; p3 < i2; p3++) + this.data[this._idx(p3, l2)] = t2.data[this._idx(p3 + s2, l2 + u2)]; + }, On("DEMData", Yl); + var $l = function(t2) { + this._stringToNumber = {}, this._numberToString = []; + for (var e2 = 0; e2 < t2.length; e2++) { + var r2 = t2[e2]; + this._stringToNumber[r2] = e2, this._numberToString[e2] = r2; } - _unpackTerrarium(t2, e2, r2) { - return 256 * t2 + e2 + r2 / 256 - 32768; + }; + $l.prototype.encode = function(t2) { + return this._stringToNumber[t2]; + }, $l.prototype.decode = function(t2) { + return this._numberToString[t2]; + }; + var Wl = function(t2, e2, r2, n2, i2) { + this.type = "Feature", this._vectorTileFeature = t2, t2._z = e2, t2._x = r2, t2._y = n2, this.properties = t2.properties, this.id = i2; + }, Ql = { geometry: { configurable: true } }; + Ql.geometry.get = function() { + return void 0 === this._geometry && (this._geometry = this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x, this._vectorTileFeature._y, this._vectorTileFeature._z).geometry), this._geometry; + }, Ql.geometry.set = function(t2) { + this._geometry = t2; + }, Wl.prototype.toJSON = function() { + var t2 = { geometry: this.geometry }; + for (var e2 in this) + "_geometry" !== e2 && "_vectorTileFeature" !== e2 && (t2[e2] = this[e2]); + return t2; + }, Object.defineProperties(Wl.prototype, Ql); + var tp = function() { + this.state = {}, this.stateChanges = {}, this.deletedStates = {}; + }; + tp.prototype.updateState = function(t2, e2, r2) { + var n2 = String(e2); + if (this.stateChanges[t2] = this.stateChanges[t2] || {}, this.stateChanges[t2][n2] = this.stateChanges[t2][n2] || {}, h2(this.stateChanges[t2][n2], r2), null === this.deletedStates[t2]) + for (var i2 in this.deletedStates[t2] = {}, this.state[t2]) + i2 !== n2 && (this.deletedStates[t2][i2] = null); + else if (this.deletedStates[t2] && null === this.deletedStates[t2][n2]) + for (var a2 in this.deletedStates[t2][n2] = {}, this.state[t2][n2]) + r2[a2] || (this.deletedStates[t2][n2][a2] = null); + else + for (var o2 in r2) + this.deletedStates[t2] && this.deletedStates[t2][n2] && null === this.deletedStates[t2][n2][o2] && delete this.deletedStates[t2][n2][o2]; + }, tp.prototype.removeFeatureState = function(t2, e2, r2) { + if (null !== this.deletedStates[t2]) { + var n2 = String(e2); + if (this.deletedStates[t2] = this.deletedStates[t2] || {}, r2 && void 0 !== e2) + null !== this.deletedStates[t2][n2] && (this.deletedStates[t2][n2] = this.deletedStates[t2][n2] || {}, this.deletedStates[t2][n2][r2] = null); + else if (void 0 !== e2) + if (this.stateChanges[t2] && this.stateChanges[t2][n2]) + for (r2 in this.deletedStates[t2][n2] = {}, this.stateChanges[t2][n2]) + this.deletedStates[t2][n2][r2] = null; + else + this.deletedStates[t2][n2] = null; + else + this.deletedStates[t2] = null; } - getPixels() { - return new Bs({ width: this.stride, height: this.stride }, new Uint8Array(this.data.buffer)); + }, tp.prototype.getState = function(t2, e2) { + var r2 = String(e2), n2 = h2({}, (this.state[t2] || {})[r2], (this.stateChanges[t2] || {})[r2]); + if (null === this.deletedStates[t2]) + return {}; + if (this.deletedStates[t2]) { + var i2 = this.deletedStates[t2][e2]; + if (null === i2) + return {}; + for (var a2 in i2) + delete n2[a2]; } - backfillBorder(t2, e2, r2) { - if (this.dim !== t2.dim) - throw new Error("dem dimension mismatch"); - let n2 = e2 * this.dim, i2 = e2 * this.dim + this.dim, a2 = r2 * this.dim, s2 = r2 * this.dim + this.dim; - switch (e2) { - case -1: - n2 = i2 - 1; - break; - case 1: - i2 = n2 + 1; - } - switch (r2) { - case -1: - a2 = s2 - 1; - break; - case 1: - s2 = a2 + 1; - } - const o2 = -e2 * this.dim, l2 = -r2 * this.dim; - for (let e3 = a2; e3 < s2; e3++) - for (let r3 = n2; r3 < i2; r3++) - this.data[this._idx(r3, e3)] = t2.data[this._idx(r3 + o2, e3 + l2)]; + return n2; + }, tp.prototype.initializeTileState = function(t2, e2) { + t2.setFeatureState(this.state, e2); + }, tp.prototype.coalesceChanges = function(t2, e2) { + var r2 = {}; + for (var n2 in this.stateChanges) { + this.state[n2] = this.state[n2] || {}; + var i2 = {}; + for (var a2 in this.stateChanges[n2]) + this.state[n2][a2] || (this.state[n2][a2] = {}), h2(this.state[n2][a2], this.stateChanges[n2][a2]), i2[a2] = this.state[n2][a2]; + r2[n2] = i2; + } + for (var o2 in this.deletedStates) { + this.state[o2] = this.state[o2] || {}; + var s2 = {}; + if (null === this.deletedStates[o2]) + for (var u2 in this.state[o2]) + s2[u2] = {}, this.state[o2][u2] = {}; + else + for (var l2 in this.deletedStates[o2]) { + if (null === this.deletedStates[o2][l2]) + this.state[o2][l2] = {}; + else + for (var p3 = 0, c3 = Object.keys(this.deletedStates[o2][l2]); p3 < c3.length; p3 += 1) + delete this.state[o2][l2][c3[p3]]; + s2[l2] = this.state[o2][l2]; + } + r2[o2] = r2[o2] || {}, h2(r2[o2], s2); } + if (this.stateChanges = {}, this.deletedStates = {}, 0 !== Object.keys(r2).length) + for (var f2 in t2) + t2[f2].setFeatureState(r2, e2); + }; + var ep = function(t2, e2) { + this.tileID = t2, this.x = t2.canonical.x, this.y = t2.canonical.y, this.z = t2.canonical.z, this.grid = new Tn(8192, 16, 0), this.grid3D = new Tn(8192, 16, 0), this.featureIndexArray = new aa(), this.promoteId = e2; + }; + function rp(t2, e2, r2, n2, i2) { + return x(t2, function(t3, a2) { + var o2 = e2 instanceof di ? e2.get(a2) : null; + return o2 && o2.evaluate ? o2.evaluate(r2, n2, i2) : o2; + }); } - Mn("DEMData", uc); - class cc { - constructor(t2) { - this._stringToNumber = {}, this._numberToString = []; - for (let e2 = 0; e2 < t2.length; e2++) { - const r2 = t2[e2]; - this._stringToNumber[r2] = e2, this._numberToString[e2] = r2; - } - } - encode(t2) { - return this._stringToNumber[t2]; - } - decode(t2) { - if (t2 >= this._numberToString.length) - throw new Error(`Out of bounds. Index requested n=${t2} can't be >= this._numberToString.length ${this._numberToString.length}`); - return this._numberToString[t2]; + function np(t2) { + for (var e2 = 1 / 0, r2 = 1 / 0, n2 = -1 / 0, i2 = -1 / 0, a2 = 0, o2 = t2; a2 < o2.length; a2 += 1) { + var s2 = o2[a2]; + e2 = Math.min(e2, s2.x), r2 = Math.min(r2, s2.y), n2 = Math.max(n2, s2.x), i2 = Math.max(i2, s2.y); } + return { minX: e2, minY: r2, maxX: n2, maxY: i2 }; } - class hc { - constructor(t2, e2, r2, n2, i2) { - this.type = "Feature", this._vectorTileFeature = t2, t2._z = e2, t2._x = r2, t2._y = n2, this.properties = t2.properties, this.id = i2; - } - get geometry() { - return void 0 === this._geometry && (this._geometry = this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x, this._vectorTileFeature._y, this._vectorTileFeature._z).geometry), this._geometry; - } - set geometry(t2) { - this._geometry = t2; - } - toJSON() { - const t2 = { geometry: this.geometry }; - for (const e2 in this) - "_geometry" !== e2 && "_vectorTileFeature" !== e2 && (t2[e2] = this[e2]); - return t2; - } + function ip(t2, e2) { + return e2 - t2; } - class pc { - constructor(t2, e2) { - this.tileID = t2, this.x = t2.canonical.x, this.y = t2.canonical.y, this.z = t2.canonical.z, this.grid = new Sn(qa, 16, 0), this.grid3D = new Sn(qa, 16, 0), this.featureIndexArray = new Wi(), this.promoteId = e2; - } - insert(t2, e2, r2, n2, i2, a2) { - const s2 = this.featureIndexArray.length; - this.featureIndexArray.emplaceBack(r2, n2, i2); - const o2 = a2 ? this.grid3D : this.grid; - for (let t3 = 0; t3 < e2.length; t3++) { - const r3 = e2[t3], n3 = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; - for (let t4 = 0; t4 < r3.length; t4++) { - const e3 = r3[t4]; - n3[0] = Math.min(n3[0], e3.x), n3[1] = Math.min(n3[1], e3.y), n3[2] = Math.max(n3[2], e3.x), n3[3] = Math.max(n3[3], e3.y); - } - n3[0] < qa && n3[1] < qa && n3[2] >= 0 && n3[3] >= 0 && o2.insert(s2, n3[0], n3[1], n3[2], n3[3]); - } - } - loadVTLayers() { - return this.vtLayers || (this.vtLayers = new _o.VectorTile(new ul(this.rawTileData)).layers, this.sourceLayerCoder = new cc(this.vtLayers ? Object.keys(this.vtLayers).sort() : ["_geojsonTileLayer"])), this.vtLayers; - } - query(t2, e2, r2, n2) { - this.loadVTLayers(); - const i2 = t2.params || {}, a2 = qa / t2.tileSize / t2.scale, s2 = Jr(i2.filter), o2 = t2.queryGeometry, l2 = t2.queryPadding * a2, u2 = dc(o2), c3 = this.grid.query(u2.minX - l2, u2.minY - l2, u2.maxX + l2, u2.maxY + l2), h3 = dc(t2.cameraQueryGeometry), p3 = this.grid3D.query(h3.minX - l2, h3.minY - l2, h3.maxX + l2, h3.maxY + l2, (e3, r3, n3, i3) => function(t3, e4, r4, n4, i4) { - for (const a4 of t3) - if (e4 <= a4.x && r4 <= a4.y && n4 >= a4.x && i4 >= a4.y) + ep.prototype.insert = function(t2, e2, r2, n2, i2, a2) { + var o2 = this.featureIndexArray.length; + this.featureIndexArray.emplaceBack(r2, n2, i2); + for (var s2 = a2 ? this.grid3D : this.grid, u2 = 0; u2 < e2.length; u2++) { + for (var l2 = e2[u2], p3 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], c3 = 0; c3 < l2.length; c3++) { + var h3 = l2[c3]; + p3[0] = Math.min(p3[0], h3.x), p3[1] = Math.min(p3[1], h3.y), p3[2] = Math.max(p3[2], h3.x), p3[3] = Math.max(p3[3], h3.y); + } + p3[0] < 8192 && p3[1] < 8192 && p3[2] >= 0 && p3[3] >= 0 && s2.insert(o2, p3[0], p3[1], p3[2], p3[3]); + } + }, ep.prototype.loadVTLayers = function() { + return this.vtLayers || (this.vtLayers = new bs.VectorTile(new Ys(this.rawTileData)).layers, this.sourceLayerCoder = new $l(this.vtLayers ? Object.keys(this.vtLayers).sort() : ["_geojsonTileLayer"])), this.vtLayers; + }, ep.prototype.query = function(t2, e2, r2, n2) { + var a2 = this; + this.loadVTLayers(); + for (var o2 = t2.params || {}, s2 = 8192 / t2.tileSize / t2.scale, u2 = on2(o2.filter), l2 = t2.queryGeometry, p3 = t2.queryPadding * s2, c3 = np(l2), h3 = this.grid.query(c3.minX - p3, c3.minY - p3, c3.maxX + p3, c3.maxY + p3), f2 = np(t2.cameraQueryGeometry), y3 = this.grid3D.query(f2.minX - p3, f2.minY - p3, f2.maxX + p3, f2.maxY + p3, function(e3, r3, n3, a3) { + return function(t3, e4, r4, n4, a4) { + for (var o3 = 0, s3 = t3; o3 < s3.length; o3 += 1) { + var u3 = s3[o3]; + if (e4 <= u3.x && r4 <= u3.y && n4 >= u3.x && a4 >= u3.y) return true; - const a3 = [new S(e4, r4), new S(e4, i4), new S(n4, i4), new S(n4, r4)]; + } + var l3 = [new i(e4, r4), new i(e4, a4), new i(n4, a4), new i(n4, r4)]; if (t3.length > 2) { - for (const e5 of a3) - if (is(t3, e5)) + for (var p4 = 0, c4 = l3; p4 < c4.length; p4 += 1) + if (Wa(t3, c4[p4])) return true; } - for (let e5 = 0; e5 < t3.length - 1; e5++) - if (as(t3[e5], t3[e5 + 1], a3)) + for (var h4 = 0; h4 < t3.length - 1; h4++) + if (Qa(t3[h4], t3[h4 + 1], l3)) return true; return false; - }(t2.cameraQueryGeometry, e3 - l2, r3 - l2, n3 + l2, i3 + l2)); - for (const t3 of p3) - c3.push(t3); - c3.sort(yc); - const f2 = {}; - let d2; - for (let l3 = 0; l3 < c3.length; l3++) { - const u3 = c3[l3]; - if (u3 === d2) - continue; - d2 = u3; - const h4 = this.featureIndexArray.get(u3); - let p4 = null; - this.loadMatchingFeature(f2, h4.bucketIndex, h4.sourceLayerIndex, h4.featureIndex, s2, i2.layers, i2.availableImages, e2, r2, n2, (e3, r3, n3) => (p4 || (p4 = Za(e3)), r3.queryIntersectsFeature(o2, e3, n3, p4, this.z, t2.transform, a2, t2.pixelPosMatrix))); + }(t2.cameraQueryGeometry, e3 - p3, r3 - p3, n3 + p3, a3 + p3); + }), d2 = 0, m2 = y3; d2 < m2.length; d2 += 1) + h3.push(m2[d2]); + h3.sort(ip); + for (var v3, g2 = {}, x2 = function(i2) { + var p4 = h3[i2]; + if (p4 !== v3) { + v3 = p4; + var c4 = a2.featureIndexArray.get(p4), f3 = null; + a2.loadMatchingFeature(g2, c4.bucketIndex, c4.sourceLayerIndex, c4.featureIndex, u2, o2.layers, o2.availableImages, e2, r2, n2, function(e3, r3, n3) { + return f3 || (f3 = Ra(e3)), r3.queryIntersectsFeature(l2, e3, n3, f3, a2.z, t2.transform, s2, t2.pixelPosMatrix); + }); } - return f2; - } - loadMatchingFeature(t2, e2, r2, n2, i2, a2, s2, l2, u2, c3, h3) { - const p3 = this.bucketLayerIDs[e2]; - if (a2 && !function(t3, e3) { - for (let r3 = 0; r3 < t3.length; r3++) - if (e3.indexOf(t3[r3]) >= 0) - return true; - return false; - }(a2, p3)) - return; - const f2 = this.sourceLayerCoder.decode(r2), d2 = this.vtLayers[f2].feature(n2); + }, b2 = 0; b2 < h3.length; b2++) + x2(b2); + return g2; + }, ep.prototype.loadMatchingFeature = function(t2, e2, r2, n2, i2, a2, o2, s2, u2, l2, p3) { + var c3 = this.bucketLayerIDs[e2]; + if (!a2 || function(t3, e3) { + for (var r3 = 0; r3 < t3.length; r3++) + if (e3.indexOf(t3[r3]) >= 0) + return true; + return false; + }(a2, c3)) { + var f2 = this.sourceLayerCoder.decode(r2), y3 = this.vtLayers[f2].feature(n2); if (i2.needGeometry) { - const t3 = Ka(d2, true); - if (!i2.filter(new Qn(this.tileID.overscaledZ), t3, this.tileID.canonical)) + var d2 = Ua(y3, true); + if (!i2.filter(new si(this.tileID.overscaledZ), d2, this.tileID.canonical)) return; - } else if (!i2.filter(new Qn(this.tileID.overscaledZ), d2)) - return; - const y3 = this.getId(d2, f2); - for (let e3 = 0; e3 < p3.length; e3++) { - const r3 = p3[e3]; - if (a2 && a2.indexOf(r3) < 0) - continue; - const i3 = l2[r3]; - if (!i3) - continue; - let f3 = {}; - y3 && c3 && (f3 = c3.getState(i3.sourceLayer || "_geojsonTileLayer", y3)); - const m2 = o({}, u2[r3]); - m2.paint = fc(m2.paint, i3.paint, d2, f3, s2), m2.layout = fc(m2.layout, i3.layout, d2, f3, s2); - const g2 = !h3 || h3(d2, i3, f3); - if (!g2) - continue; - const x2 = new hc(d2, this.z, this.x, this.y, y3); - x2.layer = m2; - let v3 = t2[r3]; - void 0 === v3 && (v3 = t2[r3] = []), v3.push({ featureIndex: n2, feature: x2, intersectionZ: g2 }); - } - } - lookupSymbolFeatures(t2, e2, r2, n2, i2, a2, s2, o2) { - const l2 = {}; - this.loadVTLayers(); - const u2 = Jr(i2); - for (const i3 of t2) - this.loadMatchingFeature(l2, r2, n2, i3, u2, a2, s2, o2, e2); - return l2; - } - hasLayer(t2) { - for (const e2 of this.bucketLayerIDs) - for (const r2 of e2) - if (t2 === r2) - return true; - return false; - } - getId(t2, e2) { - let r2 = t2.id; - return this.promoteId && (r2 = t2.properties["string" == typeof this.promoteId ? this.promoteId : this.promoteId[e2]], "boolean" == typeof r2 && (r2 = Number(r2))), r2; - } - } - function fc(t2, e2, r2, n2, i2) { - return c2(t2, (t3, a2) => { - const s2 = e2 instanceof oi ? e2.get(a2) : null; - return s2 && s2.evaluate ? s2.evaluate(r2, n2, i2) : s2; - }); - } - function dc(t2) { - let e2 = 1 / 0, r2 = 1 / 0, n2 = -1 / 0, i2 = -1 / 0; - for (const a2 of t2) - e2 = Math.min(e2, a2.x), r2 = Math.min(r2, a2.y), n2 = Math.max(n2, a2.x), i2 = Math.max(i2, a2.y); - return { minX: e2, minY: r2, maxX: n2, maxY: i2 }; - } - function yc(t2, e2) { - return e2 - t2; - } - var mc; - Mn("FeatureIndex", pc, { omit: ["rawTileData", "sourceLayerCoder"] }), t.PerformanceMarkers = void 0, (mc = t.PerformanceMarkers || (t.PerformanceMarkers = {})).create = "create", mc.load = "load", mc.fullLoad = "fullLoad"; - let gc = null, xc = []; - const vc = 1e3 / 30, bc = { mark(t2) { - performance.mark(t2); - }, frame(t2) { - const e2 = t2; - null != gc && xc.push(e2 - gc), gc = e2; - }, clearMetrics() { - gc = null, xc = [], performance.clearMeasures("loadTime"), performance.clearMeasures("fullLoadTime"); - for (const e2 in t.PerformanceMarkers) - performance.clearMarks(t.PerformanceMarkers[e2]); - }, getPerformanceMetrics() { - performance.measure("loadTime", t.PerformanceMarkers.create, t.PerformanceMarkers.load), performance.measure("fullLoadTime", t.PerformanceMarkers.create, t.PerformanceMarkers.fullLoad); - const e2 = performance.getEntriesByName("loadTime")[0].duration, r2 = performance.getEntriesByName("fullLoadTime")[0].duration, n2 = xc.length, i2 = 1 / (xc.reduce((t2, e3) => t2 + e3, 0) / n2 / 1e3), a2 = xc.filter((t2) => t2 > vc).reduce((t2, e3) => t2 + (e3 - vc) / vc, 0); - return { loadTime: e2, fullLoadTime: r2, fps: i2, percentDroppedFrames: a2 / (n2 + a2) * 100 }; - } }; - t.AJAXError = q, t.ARRAY_TYPE = ps, t.Actor = class { - constructor(t2, e2, r2) { - this.target = t2, this.parent = e2, this.mapId = r2, this.callbacks = {}, this.tasks = {}, this.taskQueue = [], this.cancelCallbacks = {}, u(["receive", "process"], this), this.invoker = new Gu(this.process), this.target.addEventListener("message", this.receive, false), this.globalScope = g() ? t2 : window; - } - send(t2, e2, r2, n2, i2 = false) { - const a2 = Math.round(1e18 * Math.random()).toString(36).substring(0, 10); - r2 && (this.callbacks[a2] = r2); - const s2 = _(this.globalScope) ? void 0 : []; - return this.target.postMessage({ id: a2, type: t2, hasCallback: !!r2, targetMapId: n2, mustQueue: i2, sourceMapId: this.mapId, data: Bn(e2, s2) }, s2), { cancel: () => { - r2 && delete this.callbacks[a2], this.target.postMessage({ id: a2, type: "", targetMapId: n2, sourceMapId: this.mapId }); - } }; - } - receive(t2) { - const e2 = t2.data, r2 = e2.id; - if (r2 && (!e2.targetMapId || this.mapId === e2.targetMapId)) - if ("" === e2.type) { - delete this.tasks[r2]; - const t3 = this.cancelCallbacks[r2]; - delete this.cancelCallbacks[r2], t3 && t3(); - } else - g() || e2.mustQueue ? (this.tasks[r2] = e2, this.taskQueue.push(r2), this.invoker.trigger()) : this.processTask(r2, e2); - } - process() { - if (!this.taskQueue.length) + } else if (!i2.filter(new si(this.tileID.overscaledZ), y3)) return; - const t2 = this.taskQueue.shift(), e2 = this.tasks[t2]; - delete this.tasks[t2], this.taskQueue.length && this.invoker.trigger(), e2 && this.processTask(t2, e2); - } - processTask(t2, e2) { - if ("" === e2.type) { - const r2 = this.callbacks[t2]; - delete this.callbacks[t2], r2 && (e2.error ? r2(Cn(e2.error)) : r2(null, Cn(e2.data))); - } else { - let r2 = false; - const n2 = _(this.globalScope) ? void 0 : [], i2 = e2.hasCallback ? (e3, i3) => { - r2 = true, delete this.cancelCallbacks[t2], this.target.postMessage({ id: t2, type: "", sourceMapId: this.mapId, error: e3 ? Bn(e3) : null, data: Bn(i3, n2) }, n2); - } : (t3) => { - r2 = true; - }; - let a2 = null; - const s2 = Cn(e2.data); - if (this.parent[e2.type]) - a2 = this.parent[e2.type](e2.sourceMapId, s2, i2); - else if (this.parent.getWorkerSource) { - const t3 = e2.type.split("."); - a2 = this.parent.getWorkerSource(e2.sourceMapId, t3[0], s2.source)[t3[1]](s2, i2); - } else - i2(new Error(`Could not find function ${e2.type}`)); - !r2 && a2 && a2.cancel && (this.cancelCallbacks[t2] = a2.cancel); + for (var m2 = this.getId(y3, f2), v3 = 0; v3 < c3.length; v3++) { + var g2 = c3[v3]; + if (!(a2 && a2.indexOf(g2) < 0)) { + var x2 = s2[g2]; + if (x2) { + var b2 = {}; + void 0 !== m2 && l2 && (b2 = l2.getState(x2.sourceLayer || "_geojsonTileLayer", m2)); + var w2 = h2({}, u2[g2]); + w2.paint = rp(w2.paint, x2.paint, y3, b2, o2), w2.layout = rp(w2.layout, x2.layout, y3, b2, o2); + var _2 = !p3 || p3(y3, x2, b2); + if (_2) { + var A3 = new Wl(y3, this.z, this.x, this.y, m2); + A3.layer = w2; + var S2 = t2[g2]; + void 0 === S2 && (S2 = t2[g2] = []), S2.push({ featureIndex: n2, feature: A3, intersectionZ: _2 }); + } + } + } } } - remove() { - this.invoker.remove(), this.target.removeEventListener("message", this.receive, false); - } - }, t.AlphaImage = zs, t.CanonicalTileID = ac, t.CollisionBoxArray = Ni, t.CollisionCircleLayoutArray = class extends Vi { - }, t.Color = Ft, t.DEMData = uc, t.DataConstantProperty = li, t.DictionaryCoder = cc, t.EXTENT = qa, t.ErrorEvent = et, t.EvaluationParameters = Qn, t.Event = tt, t.Evented = rt, t.FeatureIndex = pc, t.FillBucket = mo, t.FillExtrusionBucket = Do, t.GeoJSONFeature = hc, t.ImageAtlas = Dl, t.ImagePosition = Ll, t.LineBucket = Yo, t.LineStripIndexArray = class extends Ui { - }, t.LngLat = Xu, t.LngLatBounds = Yu, t.MercatorCoordinate = nc, t.ONE_EM = ll, t.OverscaledTileID = oc, t.PerformanceUtils = bc, t.PosArray = Qi, t.Properties = fi, t.QuadTriangleArray = class extends Fi { - }, t.RGBAImage = Bs, t.RasterBoundsArray = class extends _i { - }, t.RequestPerformance = class { - constructor(t2) { - this._marks = { start: [t2.url, "start"].join("#"), end: [t2.url, "end"].join("#"), measure: t2.url.toString() }, performance.mark(this._marks.start); - } - finish() { - performance.mark(this._marks.end); - let t2 = performance.getEntriesByName(this._marks.measure); - return 0 === t2.length && (performance.measure(this._marks.measure, this._marks.start, this._marks.end), t2 = performance.getEntriesByName(this._marks.measure), performance.clearMarks(this._marks.start), performance.clearMarks(this._marks.end), performance.clearMeasures(this._marks.measure)), t2; - } - }, t.ResourceType = U, t.SegmentVector = ya, t.SymbolBucket = Du, t.Transitionable = ri, t.TriangleIndexArray = ha, t.Uniform1f = za, t.Uniform1i = class extends Ma { - constructor(t2, e2) { - super(t2, e2), this.current = 0; - } - set(t2) { - this.current !== t2 && (this.current = t2, this.gl.uniform1i(this.location, t2)); - } - }, t.Uniform2f = class extends Ma { - constructor(t2, e2) { - super(t2, e2), this.current = [0, 0]; - } - set(t2) { - t2[0] === this.current[0] && t2[1] === this.current[1] || (this.current = t2, this.gl.uniform2f(this.location, t2[0], t2[1])); - } - }, t.Uniform3f = class extends Ma { - constructor(t2, e2) { - super(t2, e2), this.current = [0, 0, 0]; - } - set(t2) { - t2[0] === this.current[0] && t2[1] === this.current[1] && t2[2] === this.current[2] || (this.current = t2, this.gl.uniform3f(this.location, t2[0], t2[1], t2[2])); - } - }, t.Uniform4f = Ba, t.UniformColor = Ca, t.UniformMatrix4f = class extends Ma { - constructor(t2, e2) { - super(t2, e2), this.current = Pa; + }, ep.prototype.lookupSymbolFeatures = function(t2, e2, r2, n2, i2, a2, o2, s2) { + var u2 = {}; + this.loadVTLayers(); + for (var l2 = on2(i2), p3 = 0, c3 = t2; p3 < c3.length; p3 += 1) + this.loadMatchingFeature(u2, r2, n2, c3[p3], l2, a2, o2, s2, e2); + return u2; + }, ep.prototype.hasLayer = function(t2) { + for (var e2 = 0, r2 = this.bucketLayerIDs; e2 < r2.length; e2 += 1) + for (var n2 = 0, i2 = r2[e2]; n2 < i2.length; n2 += 1) + if (t2 === i2[n2]) + return true; + return false; + }, ep.prototype.getId = function(t2, e2) { + var r2 = t2.id; + return this.promoteId && "boolean" == typeof (r2 = t2.properties["string" == typeof this.promoteId ? this.promoteId : this.promoteId[e2]]) && (r2 = Number(r2)), r2; + }, On("FeatureIndex", ep, { omit: ["rawTileData", "sourceLayerCoder"] }); + var ap = function(t2, e2) { + this.tileID = t2, this.uid = y2(), this.uses = 0, this.tileSize = e2, this.buckets = {}, this.expirationTime = null, this.queryPadding = 0, this.hasSymbolBuckets = false, this.hasRTLText = false, this.dependencies = {}, this.expiredRequestCount = 0, this.state = "loading"; + }; + ap.prototype.registerFadeDuration = function(t2) { + var e2 = t2 + this.timeAdded; + e2 < O2.now() || this.fadeEndTime && e2 < this.fadeEndTime || (this.fadeEndTime = e2); + }, ap.prototype.wasRequested = function() { + return "errored" === this.state || "loaded" === this.state || "reloading" === this.state; + }, ap.prototype.loadVectorData = function(t2, e2, r2) { + if (this.hasData() && this.unloadVectorData(), this.state = "loaded", t2) { + for (var n2 in t2.featureIndex && (this.latestFeatureIndex = t2.featureIndex, t2.rawTileData ? (this.latestRawTileData = t2.rawTileData, this.latestFeatureIndex.rawTileData = t2.rawTileData) : this.latestRawTileData && (this.latestFeatureIndex.rawTileData = this.latestRawTileData)), this.collisionBoxArray = t2.collisionBoxArray, this.buckets = function(t3, e3) { + var r3 = {}; + if (!e3) + return r3; + for (var n3 = function() { + var t4 = a3[i3], n4 = t4.layerIds.map(function(t5) { + return e3.getLayer(t5); + }).filter(Boolean); + if (0 !== n4.length) { + t4.layers = n4, t4.stateDependentLayerIds && (t4.stateDependentLayers = t4.stateDependentLayerIds.map(function(t5) { + return n4.filter(function(e4) { + return e4.id === t5; + })[0]; + })); + for (var o3 = 0, s3 = n4; o3 < s3.length; o3 += 1) + r3[s3[o3].id] = t4; + } + }, i3 = 0, a3 = t3; i3 < a3.length; i3 += 1) + n3(); + return r3; + }(t2.buckets, e2.style), this.hasSymbolBuckets = false, this.buckets) { + var i2 = this.buckets[n2]; + if (i2 instanceof vl) { + if (this.hasSymbolBuckets = true, !r2) + break; + i2.justReloaded = true; + } + } + if (this.hasRTLText = false, this.hasSymbolBuckets) + for (var a2 in this.buckets) { + var o2 = this.buckets[a2]; + if (o2 instanceof vl && o2.hasRTLText) { + this.hasRTLText = true, oi.isLoading() || oi.isLoaded() || "deferred" !== ii() || ai(); + break; + } + } + for (var s2 in this.queryPadding = 0, this.buckets) { + var u2 = this.buckets[s2]; + this.queryPadding = Math.max(this.queryPadding, e2.style.getLayer(s2).queryRadius(u2)); + } + t2.imageAtlas && (this.imageAtlas = t2.imageAtlas), t2.glyphAtlasImage && (this.glyphAtlasImage = t2.glyphAtlasImage); + } else + this.collisionBoxArray = new $i(); + }, ap.prototype.unloadVectorData = function() { + for (var t2 in this.buckets) + this.buckets[t2].destroy(); + this.buckets = {}, this.imageAtlasTexture && this.imageAtlasTexture.destroy(), this.imageAtlas && (this.imageAtlas = null), this.glyphAtlasTexture && this.glyphAtlasTexture.destroy(), this.latestFeatureIndex = null, this.state = "unloaded"; + }, ap.prototype.getBucket = function(t2) { + return this.buckets[t2.id]; + }, ap.prototype.upload = function(t2) { + for (var e2 in this.buckets) { + var r2 = this.buckets[e2]; + r2.uploadPending() && r2.upload(t2); + } + var n2 = t2.gl; + this.imageAtlas && !this.imageAtlas.uploaded && (this.imageAtlasTexture = new Tl(t2, this.imageAtlas.image, n2.RGBA), this.imageAtlas.uploaded = true), this.glyphAtlasImage && (this.glyphAtlasTexture = new Tl(t2, this.glyphAtlasImage, n2.ALPHA), this.glyphAtlasImage = null); + }, ap.prototype.prepare = function(t2) { + this.imageAtlas && this.imageAtlas.patchUpdatedImages(t2, this.imageAtlasTexture); + }, ap.prototype.queryRenderedFeatures = function(t2, e2, r2, n2, i2, a2, o2, s2, u2, l2) { + return this.latestFeatureIndex && this.latestFeatureIndex.rawTileData ? this.latestFeatureIndex.query({ queryGeometry: n2, cameraQueryGeometry: i2, scale: a2, tileSize: this.tileSize, pixelPosMatrix: l2, transform: s2, params: o2, queryPadding: this.queryPadding * u2 }, t2, e2, r2) : {}; + }, ap.prototype.querySourceFeatures = function(t2, e2) { + var r2 = this.latestFeatureIndex; + if (r2 && r2.rawTileData) { + var n2 = r2.loadVTLayers(), i2 = e2 ? e2.sourceLayer : "", a2 = n2._geojsonTileLayer || n2[i2]; + if (a2) + for (var o2 = on2(e2 && e2.filter), s2 = this.tileID.canonical, u2 = s2.z, l2 = s2.x, p3 = s2.y, c3 = { z: u2, x: l2, y: p3 }, h3 = 0; h3 < a2.length; h3++) { + var f2 = a2.feature(h3); + if (o2.needGeometry) { + var y3 = Ua(f2, true); + if (!o2.filter(new si(this.tileID.overscaledZ), y3, this.tileID.canonical)) + continue; + } else if (!o2.filter(new si(this.tileID.overscaledZ), f2)) + continue; + var d2 = r2.getId(f2, i2), m2 = new Wl(f2, u2, l2, p3, d2); + m2.tile = c3, t2.push(m2); + } } - set(t2) { - if (t2[12] !== this.current[12] || t2[0] !== this.current[0]) - return this.current = t2, void this.gl.uniformMatrix4fv(this.location, false, t2); - for (let e2 = 1; e2 < 16; e2++) - if (t2[e2] !== this.current[e2]) { - this.current = t2, this.gl.uniformMatrix4fv(this.location, false, t2); - break; + }, ap.prototype.hasData = function() { + return "loaded" === this.state || "reloading" === this.state || "expired" === this.state; + }, ap.prototype.patternsLoaded = function() { + return this.imageAtlas && !!Object.keys(this.imageAtlas.patternPositions).length; + }, ap.prototype.setExpiryData = function(t2) { + var e2 = this.expirationTime; + if (t2.cacheControl) { + var r2 = z(t2.cacheControl); + r2["max-age"] && (this.expirationTime = Date.now() + 1e3 * r2["max-age"]); + } else + t2.expires && (this.expirationTime = new Date(t2.expires).getTime()); + if (this.expirationTime) { + var n2 = Date.now(), i2 = false; + if (this.expirationTime > n2) + i2 = false; + else if (e2) + if (this.expirationTime < e2) + i2 = true; + else { + var a2 = this.expirationTime - e2; + a2 ? this.expirationTime = n2 + Math.max(a2, 3e4) : i2 = true; + } + else + i2 = true; + i2 ? (this.expiredRequestCount++, this.state = "expired") : this.expiredRequestCount = 0; + } + }, ap.prototype.getExpiryTimeout = function() { + if (this.expirationTime) + return this.expiredRequestCount ? 1e3 * (1 << Math.min(this.expiredRequestCount - 1, 31)) : Math.min(this.expirationTime - new Date().getTime(), Math.pow(2, 31) - 1); + }, ap.prototype.setFeatureState = function(t2, e2) { + if (this.latestFeatureIndex && this.latestFeatureIndex.rawTileData && 0 !== Object.keys(t2).length) { + var r2 = this.latestFeatureIndex.loadVTLayers(); + for (var n2 in this.buckets) + if (e2.style.hasLayer(n2)) { + var i2 = this.buckets[n2], a2 = i2.layers[0].sourceLayer || "_geojsonTileLayer", o2 = r2[a2], s2 = t2[a2]; + if (o2 && s2 && 0 !== Object.keys(s2).length) { + i2.update(s2, o2, this.imageAtlas && this.imageAtlas.patternPositions || {}); + var u2 = e2 && e2.style && e2.style.getLayer(n2); + u2 && (this.queryPadding = Math.max(this.queryPadding, u2.queryRadius(i2))); + } } } - }, t.UnwrappedTileID = sc, t.ValidationError = it, t.ZoomHistory = Pn, t.add = function(t2, e2, r2) { + }, ap.prototype.holdingForFade = function() { + return void 0 !== this.symbolFadeHoldUntil; + }, ap.prototype.symbolFadeFinished = function() { + return !this.symbolFadeHoldUntil || this.symbolFadeHoldUntil < O2.now(); + }, ap.prototype.clearFadeHold = function() { + this.symbolFadeHoldUntil = void 0; + }, ap.prototype.setHoldDuration = function(t2) { + this.symbolFadeHoldUntil = O2.now() + t2; + }, ap.prototype.setDependencies = function(t2, e2) { + for (var r2 = {}, n2 = 0, i2 = e2; n2 < i2.length; n2 += 1) + r2[i2[n2]] = true; + this.dependencies[t2] = r2; + }, ap.prototype.hasDependency = function(t2, e2) { + for (var r2 = 0, n2 = t2; r2 < n2.length; r2 += 1) { + var i2 = this.dependencies[n2[r2]]; + if (i2) { + for (var a2 = 0, o2 = e2; a2 < o2.length; a2 += 1) + if (i2[o2[a2]]) + return true; + } + } + return false; + }; + var op = o.performance, sp = function(t2) { + this._marks = { start: [t2.url, "start"].join("#"), end: [t2.url, "end"].join("#"), measure: t2.url.toString() }, op.mark(this._marks.start); + }; + sp.prototype.finish = function() { + op.mark(this._marks.end); + var t2 = op.getEntriesByName(this._marks.measure); + return 0 === t2.length && (op.measure(this._marks.measure, this._marks.start, this._marks.end), t2 = op.getEntriesByName(this._marks.measure), op.clearMarks(this._marks.start), op.clearMarks(this._marks.end), op.clearMeasures(this._marks.measure)), t2; + }, t.Actor = Fl, t.AlphaImage = go, t.CanonicalTileID = Zl, t.CollisionBoxArray = $i, t.Color = te, t.DEMData = Yl, t.DataConstantProperty = mi, t.DictionaryCoder = $l, t.EXTENT = 8192, t.ErrorEvent = zt, t.EvaluationParameters = si, t.Event = It, t.Evented = Ct, t.FeatureIndex = ep, t.FillBucket = ss, t.FillExtrusionBucket = Ss, t.ImageAtlas = bu, t.ImagePosition = gu, t.LineBucket = Fs, t.LngLat = Ol, t.LngLatBounds = Ll, t.MercatorCoordinate = Gl, t.ONE_EM = 24, t.OverscaledTileID = Jl, t.Point = i, t.Point$1 = i, t.Properties = wi, t.Protobuf = Ys, t.RGBAImage = xo, t.RequestManager = G, t.RequestPerformance = sp, t.ResourceType = yt, t.SegmentVector = sa, t.SourceFeatureState = tp, t.StructArrayLayout1ui2 = Ji, t.StructArrayLayout2f1f2i16 = Ri, t.StructArrayLayout2i4 = Ci, t.StructArrayLayout3ui6 = ji, t.StructArrayLayout4i8 = Ei, t.SymbolBucket = vl, t.Texture = Tl, t.Tile = ap, t.Transitionable = pi, t.Uniform1f = ba, t.Uniform1i = xa, t.Uniform2f = wa, t.Uniform3f = _a, t.Uniform4f = Aa, t.UniformColor = Sa, t.UniformMatrix4f = Ia, t.UnwrappedTileID = Xl, t.ValidationError = Pt, t.WritingMode = wu, t.ZoomHistory = Kn, t.add = function(t2, e2, r2) { return t2[0] = e2[0] + r2[0], t2[1] = e2[1] + r2[1], t2[2] = e2[2] + r2[2], t2; - }, t.addDynamicAttributes = Eu, t.asyncAll = function(t2, e2, r2) { + }, t.addDynamicAttributes = fl, t.asyncAll = function(t2, e2, r2) { if (!t2.length) return r2(null, []); - let n2 = t2.length; - const i2 = new Array(t2.length); - let a2 = null; - t2.forEach((t3, s2) => { - e2(t3, (t4, e3) => { - t4 && (a2 = t4), i2[s2] = e3, 0 == --n2 && r2(a2, i2); + var n2 = t2.length, i2 = new Array(t2.length), a2 = null; + t2.forEach(function(t3, o2) { + e2(t3, function(t4, e3) { + t4 && (a2 = t4), i2[o2] = e3, 0 == --n2 && r2(a2, i2); }); }); - }, t.bezier = n, t.bindAll = u, t.cacheEntryPossiblyAdded = function(t2) { - F++, F > V2 && (t2.getActor().send("enforceCacheSizeLimit", P), F = 0); - }, t.clamp = a, t.clearTileCache = function(t2) { - const e2 = caches.delete(z); - t2 && e2.catch(t2).then(() => t2()); - }, t.clipLine = cu, t.clone = function(t2) { - var e2 = new ps(16); + }, t.bezier = u, t.bindAll = v2, t.browser = O2, t.cacheEntryPossiblyAdded = function(t2) { + ++ht > ut && (t2.getActor().send("enforceCacheSizeLimit", st), ht = 0); + }, t.clamp = p2, t.clearTileCache = function(t2) { + var e2 = o.caches.delete("mapbox-tiles"); + t2 && e2.catch(t2).then(function() { + return t2(); + }); + }, t.clipLine = Zu, t.clone = function(t2) { + var e2 = new ao(16); return e2[0] = t2[0], e2[1] = t2[1], e2[2] = t2[2], e2[3] = t2[3], e2[4] = t2[4], e2[5] = t2[5], e2[6] = t2[6], e2[7] = t2[7], e2[8] = t2[8], e2[9] = t2[9], e2[10] = t2[10], e2[11] = t2[11], e2[12] = t2[12], e2[13] = t2[13], e2[14] = t2[14], e2[15] = t2[15], e2; - }, t.clone$1 = p2, t.clone$2 = function(t2) { - var e2 = new ps(3); + }, t.clone$1 = w, t.clone$2 = function(t2) { + var e2 = new ao(3); return e2[0] = t2[0], e2[1] = t2[1], e2[2] = t2[2], e2; - }, t.collisionCircleLayout = al, t.config = M, t.copy = function(t2, e2) { - return t2[0] = e2[0], t2[1] = e2[1], t2[2] = e2[2], t2[3] = e2[3], t2[4] = e2[4], t2[5] = e2[5], t2[6] = e2[6], t2[7] = e2[7], t2[8] = e2[8], t2[9] = e2[9], t2[10] = e2[10], t2[11] = e2[11], t2[12] = e2[12], t2[13] = e2[13], t2[14] = e2[14], t2[15] = e2[15], t2; - }, t.create = function() { - var t2 = new ps(16); - return ps != Float32Array && (t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[4] = 0, t2[6] = 0, t2[7] = 0, t2[8] = 0, t2[9] = 0, t2[11] = 0, t2[12] = 0, t2[13] = 0, t2[14] = 0), t2[0] = 1, t2[5] = 1, t2[10] = 1, t2[15] = 1, t2; - }, t.create$1 = fs, t.createExpression = Fr, t.createFilter = Jr, t.createLayout = vi, t.createStyleLayer = function(t2) { - return "custom" === t2.type ? new Zu(t2) : new Ku[t2.type](t2); + }, t.collisionCircleLayout = Gs, t.config = R, t.create = function() { + var t2 = new ao(16); + return ao != Float32Array && (t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[4] = 0, t2[6] = 0, t2[7] = 0, t2[8] = 0, t2[9] = 0, t2[11] = 0, t2[12] = 0, t2[13] = 0, t2[14] = 0), t2[0] = 1, t2[5] = 1, t2[10] = 1, t2[15] = 1, t2; + }, t.create$1 = function() { + var t2 = new ao(9); + return ao != Float32Array && (t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[5] = 0, t2[6] = 0, t2[7] = 0), t2[0] = 1, t2[4] = 1, t2[8] = 1, t2; + }, t.create$2 = function() { + var t2 = new ao(4); + return ao != Float32Array && (t2[1] = 0, t2[2] = 0), t2[0] = 1, t2[3] = 1, t2; + }, t.createCommonjsModule = e, t.createExpression = Zr, t.createLayout = Ii, t.createStyleLayer = function(t2) { + return "custom" === t2.type ? new Il(t2) : new zl[t2.type](t2); }, t.cross = function(t2, e2, r2) { - var n2 = e2[0], i2 = e2[1], a2 = e2[2], s2 = r2[0], o2 = r2[1], l2 = r2[2]; - return t2[0] = i2 * l2 - a2 * o2, t2[1] = a2 * s2 - n2 * l2, t2[2] = n2 * o2 - i2 * s2, t2; + var n2 = e2[0], i2 = e2[1], a2 = e2[2], o2 = r2[0], s2 = r2[1], u2 = r2[2]; + return t2[0] = i2 * u2 - a2 * s2, t2[1] = a2 * o2 - n2 * u2, t2[2] = n2 * s2 - i2 * o2, t2; + }, t.deepEqual = function t2(e2, r2) { + if (Array.isArray(e2)) { + if (!Array.isArray(r2) || e2.length !== r2.length) + return false; + for (var n2 = 0; n2 < e2.length; n2++) + if (!t2(e2[n2], r2[n2])) + return false; + return true; + } + if ("object" == typeof e2 && null !== e2 && null !== r2) { + if ("object" != typeof r2) + return false; + if (Object.keys(e2).length !== Object.keys(r2).length) + return false; + for (var i2 in e2) + if (!t2(e2[i2], r2[i2])) + return false; + return true; + } + return e2 === r2; }, t.dot = function(t2, e2) { return t2[0] * e2[0] + t2[1] * e2[1] + t2[2] * e2[2]; }, t.dot$1 = function(t2, e2) { return t2[0] * e2[0] + t2[1] * e2[1] + t2[2] * e2[2] + t2[3] * e2[3]; - }, t.ease = i, t.emitValidationErrors = kn, t.enforceCacheSizeLimit = function(t2) { - E(), B && B.then((e2) => { - e2.keys().then((r2) => { - for (let n2 = 0; n2 < r2.length - t2; n2++) + }, t.ease = l, t.emitValidationErrors = Bn, t.endsWith = g, t.enforceCacheSizeLimit = function(t2) { + lt(), tt && tt.then(function(e2) { + e2.keys().then(function(r2) { + for (var n2 = 0; n2 < r2.length - t2; n2++) e2.delete(r2[n2]); }); }); - }, t.equals = function(t2, e2) { - var r2 = t2[0], n2 = t2[1], i2 = t2[2], a2 = t2[3], s2 = t2[4], o2 = t2[5], l2 = t2[6], u2 = t2[7], c3 = t2[8], h3 = t2[9], p3 = t2[10], f2 = t2[11], d2 = t2[12], y3 = t2[13], m2 = t2[14], g2 = t2[15], x2 = e2[0], v3 = e2[1], b2 = e2[2], w2 = e2[3], _2 = e2[4], A3 = e2[5], k2 = e2[6], S2 = e2[7], I3 = e2[8], M2 = e2[9], z2 = e2[10], B2 = e2[11], C2 = e2[12], P2 = e2[13], V3 = e2[14], E2 = e2[15]; - return Math.abs(r2 - x2) <= hs * Math.max(1, Math.abs(r2), Math.abs(x2)) && Math.abs(n2 - v3) <= hs * Math.max(1, Math.abs(n2), Math.abs(v3)) && Math.abs(i2 - b2) <= hs * Math.max(1, Math.abs(i2), Math.abs(b2)) && Math.abs(a2 - w2) <= hs * Math.max(1, Math.abs(a2), Math.abs(w2)) && Math.abs(s2 - _2) <= hs * Math.max(1, Math.abs(s2), Math.abs(_2)) && Math.abs(o2 - A3) <= hs * Math.max(1, Math.abs(o2), Math.abs(A3)) && Math.abs(l2 - k2) <= hs * Math.max(1, Math.abs(l2), Math.abs(k2)) && Math.abs(u2 - S2) <= hs * Math.max(1, Math.abs(u2), Math.abs(S2)) && Math.abs(c3 - I3) <= hs * Math.max(1, Math.abs(c3), Math.abs(I3)) && Math.abs(h3 - M2) <= hs * Math.max(1, Math.abs(h3), Math.abs(M2)) && Math.abs(p3 - z2) <= hs * Math.max(1, Math.abs(p3), Math.abs(z2)) && Math.abs(f2 - B2) <= hs * Math.max(1, Math.abs(f2), Math.abs(B2)) && Math.abs(d2 - C2) <= hs * Math.max(1, Math.abs(d2), Math.abs(C2)) && Math.abs(y3 - P2) <= hs * Math.max(1, Math.abs(y3), Math.abs(P2)) && Math.abs(m2 - V3) <= hs * Math.max(1, Math.abs(m2), Math.abs(V3)) && Math.abs(g2 - E2) <= hs * Math.max(1, Math.abs(g2), Math.abs(E2)); - }, t.evaluateSizeForFeature = function(t2, { uSize: e2, uSizeT: r2 }, { lowerSize: n2, upperSize: i2 }) { - return "source" === t2.kind ? n2 / tu : "composite" === t2.kind ? Se(n2 / tu, i2 / tu, r2) : e2; - }, t.evaluateSizeForZoom = function(t2, e2) { - let r2 = 0, n2 = 0; - if ("constant" === t2.kind) - n2 = t2.layoutSize; - else if ("source" !== t2.kind) { - const { interpolationType: i2, minZoom: s2, maxZoom: o2 } = t2, l2 = i2 ? a(Ne.interpolationFactor(i2, e2, s2, o2), 0, 1) : 0; - "camera" === t2.kind ? n2 = Se(t2.minSize, t2.maxSize, l2) : r2 = l2; - } - return { uSizeT: r2, uSize: n2 }; - }, t.evaluateVariableOffset = Au, t.evented = Xn, t.exported = k, t.exported$1 = T, t.extend = o, t.filterObject = h2, t.fromRotation = function(t2, e2) { + }, t.evaluateSizeForFeature = Lu, t.evaluateSizeForZoom = Ou, t.evaluateVariableOffset = al, t.evented = ni, t.extend = h2, t.featureFilter = on2, t.filterObject = b, t.fromRotation = function(t2, e2) { var r2 = Math.sin(e2), n2 = Math.cos(e2); return t2[0] = n2, t2[1] = r2, t2[2] = 0, t2[3] = -r2, t2[4] = n2, t2[5] = 0, t2[6] = 0, t2[7] = 0, t2[8] = 1, t2; - }, t.fromScaling = function(t2, e2) { - return t2[0] = e2[0], t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[4] = 0, t2[5] = e2[1], t2[6] = 0, t2[7] = 0, t2[8] = 0, t2[9] = 0, t2[10] = e2[2], t2[11] = 0, t2[12] = 0, t2[13] = 0, t2[14] = 0, t2[15] = 1, t2; - }, t.getAnchorAlignment = Yl, t.getAnchorJustification = ku, t.getArrayBuffer = K, t.getImage = H, t.getJSON = function(t2, e2) { - return Z2(o(t2, { type: "json" }), e2); - }, t.getOverlapMode = qu, t.getRTLTextPluginStatus = Yn, t.getReferrer = j, t.getVideo = function(t2, e2) { - const r2 = window.document.createElement("video"); - r2.muted = true, r2.onloadstart = function() { - e2(null, r2); + }, t.getAnchorAlignment = Bu, t.getAnchorJustification = ol, t.getArrayBuffer = bt, t.getImage = At, t.getJSON = function(t2, e2) { + return xt(h2(t2, { type: "json" }), e2); + }, t.getRTLTextPluginStatus = ii, t.getReferrer = mt, t.getVideo = function(t2, e2) { + var r2, n2, i2 = o.document.createElement("video"); + i2.muted = true, i2.onloadstart = function() { + e2(null, i2); }; - for (let e3 = 0; e3 < t2.length; e3++) { - const n2 = window.document.createElement("source"); - G(t2[e3]) || (r2.crossOrigin = "Anonymous"), n2.src = t2[e3], r2.appendChild(n2); + for (var a2 = 0; a2 < t2.length; a2++) { + var s2 = o.document.createElement("source"); + r2 = t2[a2], n2 = void 0, (n2 = o.document.createElement("a")).href = r2, (n2.protocol !== o.document.location.protocol || n2.host !== o.document.location.host) && (i2.crossOrigin = "Anonymous"), s2.src = t2[a2], i2.appendChild(s2); } - return { cancel: () => { + return { cancel: function() { } }; - }, t.identity = ds, t.invert = function(t2, e2) { - var r2 = e2[0], n2 = e2[1], i2 = e2[2], a2 = e2[3], s2 = e2[4], o2 = e2[5], l2 = e2[6], u2 = e2[7], c3 = e2[8], h3 = e2[9], p3 = e2[10], f2 = e2[11], d2 = e2[12], y3 = e2[13], m2 = e2[14], g2 = e2[15], x2 = r2 * o2 - n2 * s2, v3 = r2 * l2 - i2 * s2, b2 = r2 * u2 - a2 * s2, w2 = n2 * l2 - i2 * o2, _2 = n2 * u2 - a2 * o2, A3 = i2 * u2 - a2 * l2, k2 = c3 * y3 - h3 * d2, S2 = c3 * m2 - p3 * d2, I3 = c3 * g2 - f2 * d2, M2 = h3 * m2 - p3 * y3, z2 = h3 * g2 - f2 * y3, B2 = p3 * g2 - f2 * m2, C2 = x2 * B2 - v3 * z2 + b2 * M2 + w2 * I3 - _2 * S2 + A3 * k2; - return C2 ? (t2[0] = (o2 * B2 - l2 * z2 + u2 * M2) * (C2 = 1 / C2), t2[1] = (i2 * z2 - n2 * B2 - a2 * M2) * C2, t2[2] = (y3 * A3 - m2 * _2 + g2 * w2) * C2, t2[3] = (p3 * _2 - h3 * A3 - f2 * w2) * C2, t2[4] = (l2 * I3 - s2 * B2 - u2 * S2) * C2, t2[5] = (r2 * B2 - i2 * I3 + a2 * S2) * C2, t2[6] = (m2 * b2 - d2 * A3 - g2 * v3) * C2, t2[7] = (c3 * A3 - p3 * b2 + f2 * v3) * C2, t2[8] = (s2 * z2 - o2 * I3 + u2 * k2) * C2, t2[9] = (n2 * I3 - r2 * z2 - a2 * k2) * C2, t2[10] = (d2 * _2 - y3 * b2 + g2 * x2) * C2, t2[11] = (h3 * b2 - c3 * _2 - f2 * x2) * C2, t2[12] = (o2 * S2 - s2 * M2 - l2 * k2) * C2, t2[13] = (r2 * M2 - n2 * S2 + i2 * k2) * C2, t2[14] = (y3 * v3 - d2 * w2 - m2 * x2) * C2, t2[15] = (c3 * w2 - h3 * v3 + p3 * x2) * C2, t2) : null; - }, t.isImageBitmap = A2, t.isSafari = _, t.isWorker = g, t.keysDifference = function(t2, e2) { - const r2 = []; - for (const n2 in t2) + }, t.identity = oo, t.invert = function(t2, e2) { + var r2 = e2[0], n2 = e2[1], i2 = e2[2], a2 = e2[3], o2 = e2[4], s2 = e2[5], u2 = e2[6], l2 = e2[7], p3 = e2[8], c3 = e2[9], h3 = e2[10], f2 = e2[11], y3 = e2[12], d2 = e2[13], m2 = e2[14], v3 = e2[15], g2 = r2 * s2 - n2 * o2, x2 = r2 * u2 - i2 * o2, b2 = r2 * l2 - a2 * o2, w2 = n2 * u2 - i2 * s2, _2 = n2 * l2 - a2 * s2, A3 = i2 * l2 - a2 * u2, S2 = p3 * d2 - c3 * y3, k2 = p3 * m2 - h3 * y3, I3 = p3 * v3 - f2 * y3, z2 = c3 * m2 - h3 * d2, C2 = c3 * v3 - f2 * d2, E2 = h3 * v3 - f2 * m2, P2 = g2 * E2 - x2 * C2 + b2 * z2 + w2 * I3 - _2 * k2 + A3 * S2; + return P2 ? (t2[0] = (s2 * E2 - u2 * C2 + l2 * z2) * (P2 = 1 / P2), t2[1] = (i2 * C2 - n2 * E2 - a2 * z2) * P2, t2[2] = (d2 * A3 - m2 * _2 + v3 * w2) * P2, t2[3] = (h3 * _2 - c3 * A3 - f2 * w2) * P2, t2[4] = (u2 * I3 - o2 * E2 - l2 * k2) * P2, t2[5] = (r2 * E2 - i2 * I3 + a2 * k2) * P2, t2[6] = (m2 * b2 - y3 * A3 - v3 * x2) * P2, t2[7] = (p3 * A3 - h3 * b2 + f2 * x2) * P2, t2[8] = (o2 * C2 - s2 * I3 + l2 * S2) * P2, t2[9] = (n2 * I3 - r2 * C2 - a2 * S2) * P2, t2[10] = (y3 * _2 - d2 * b2 + v3 * g2) * P2, t2[11] = (c3 * b2 - p3 * _2 - f2 * g2) * P2, t2[12] = (s2 * k2 - o2 * z2 - u2 * S2) * P2, t2[13] = (r2 * z2 - n2 * k2 + i2 * S2) * P2, t2[14] = (d2 * x2 - y3 * w2 - m2 * g2) * P2, t2[15] = (p3 * w2 - c3 * x2 + h3 * g2) * P2, t2) : null; + }, t.isChar = Gn, t.isMapboxURL = Z2, t.keysDifference = function(t2, e2) { + var r2 = []; + for (var n2 in t2) n2 in e2 || r2.push(n2); return r2; - }, t.lazyLoadRTLTextPlugin = function() { - Wn.isLoading() || Wn.isLoaded() || "deferred" !== Yn() || Hn(); - }, t.makeRequest = Z2, t.mapObject = c2, t.mercatorXfromLng = Qu, t.mercatorYfromLat = tc, t.mercatorZfromAltitude = ec, t.mul = gs, t.mul$1 = function(t2, e2, r2) { - return t2[0] = e2[0] * r2[0], t2[1] = e2[1] * r2[1], t2[2] = e2[2] * r2[2], t2[3] = e2[3] * r2[3], t2; - }, t.multiply = ys, t.nextPowerOfTwo = function(t2) { + }, t.makeRequest = xt, t.mapObject = x, t.mercatorXfromLng = jl, t.mercatorYfromLat = ql, t.mercatorZfromAltitude = Nl, t.mul = lo, t.multiply = so, t.mvt = bs, t.nextPowerOfTwo = function(t2) { return t2 <= 1 ? 1 : Math.pow(2, Math.ceil(Math.log(t2) / Math.LN2)); }, t.normalize = function(t2, e2) { var r2 = e2[0], n2 = e2[1], i2 = e2[2], a2 = r2 * r2 + n2 * n2 + i2 * i2; return a2 > 0 && (a2 = 1 / Math.sqrt(a2)), t2[0] = e2[0] * a2, t2[1] = e2[1] * a2, t2[2] = e2[2] * a2, t2; - }, t.number = Se, t.ortho = function(t2, e2, r2, n2, i2, a2, s2) { - var o2 = 1 / (e2 - r2), l2 = 1 / (n2 - i2), u2 = 1 / (a2 - s2); - return t2[0] = -2 * o2, t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[4] = 0, t2[5] = -2 * l2, t2[6] = 0, t2[7] = 0, t2[8] = 0, t2[9] = 0, t2[10] = 2 * u2, t2[11] = 0, t2[12] = (e2 + r2) * o2, t2[13] = (i2 + n2) * l2, t2[14] = (s2 + a2) * u2, t2[15] = 1, t2; - }, t.parseCacheControl = x, t.parseGlyphPbf = function(t2) { - return new ul(t2).readFields(Vl, []); - }, t.pbf = ul, t.performSymbolLayout = function(e2) { - e2.bucket.createArrays(), e2.bucket.tilePixelRatio = qa / (512 * e2.bucket.overscaling), e2.bucket.compareText = {}, e2.bucket.iconsNeedLinear = false; - const r2 = e2.bucket.layers[0].layout, n2 = e2.bucket.layers[0]._unevaluatedLayout._values, i2 = { layoutIconSize: n2["icon-size"].possiblyEvaluate(new Qn(e2.bucket.zoom + 1), e2.canonical), layoutTextSize: n2["text-size"].possiblyEvaluate(new Qn(e2.bucket.zoom + 1), e2.canonical), textMaxSize: n2["text-size"].possiblyEvaluate(new Qn(18)) }; - if ("composite" === e2.bucket.textSizeData.kind) { - const { minZoom: t2, maxZoom: r3 } = e2.bucket.textSizeData; - i2.compositeTextSizes = [n2["text-size"].possiblyEvaluate(new Qn(t2), e2.canonical), n2["text-size"].possiblyEvaluate(new Qn(r3), e2.canonical)]; - } - if ("composite" === e2.bucket.iconSizeData.kind) { - const { minZoom: t2, maxZoom: r3 } = e2.bucket.iconSizeData; - i2.compositeIconSizes = [n2["icon-size"].possiblyEvaluate(new Qn(t2), e2.canonical), n2["icon-size"].possiblyEvaluate(new Qn(r3), e2.canonical)]; - } - const a2 = r2.get("text-line-height") * ll, s2 = "viewport" !== r2.get("text-rotation-alignment") && "point" !== r2.get("symbol-placement"), o2 = r2.get("text-keep-upright"), l2 = r2.get("text-size"); - for (const n3 of e2.bucket.features) { - const u2 = r2.get("text-font").evaluate(n3, {}, e2.canonical).join(","), c3 = l2.evaluate(n3, {}, e2.canonical), h3 = i2.layoutTextSize.evaluate(n3, {}, e2.canonical), p3 = i2.layoutIconSize.evaluate(n3, {}, e2.canonical), f2 = { horizontal: {}, vertical: void 0 }, y3 = n3.text; - let m2, g2 = [0, 0]; - if (y3) { - const i3 = y3.toString(), l3 = r2.get("text-letter-spacing").evaluate(n3, {}, e2.canonical) * ll, p4 = Fn(i3) ? l3 : 0, d2 = r2.get("text-anchor").evaluate(n3, {}, e2.canonical), m3 = r2.get("text-variable-anchor"); - if (!m3) { - const t2 = r2.get("text-radial-offset").evaluate(n3, {}, e2.canonical); - g2 = t2 ? Au(d2, [t2 * ll, _u]) : r2.get("text-offset").evaluate(n3, {}, e2.canonical).map((t3) => t3 * ll); + }, t.number = Ke, t.offscreenCanvasSupported = ft, t.ortho = function(t2, e2, r2, n2, i2, a2, o2) { + var s2 = 1 / (e2 - r2), u2 = 1 / (n2 - i2), l2 = 1 / (a2 - o2); + return t2[0] = -2 * s2, t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[4] = 0, t2[5] = -2 * u2, t2[6] = 0, t2[7] = 0, t2[8] = 0, t2[9] = 0, t2[10] = 2 * l2, t2[11] = 0, t2[12] = (e2 + r2) * s2, t2[13] = (i2 + n2) * u2, t2[14] = (o2 + a2) * l2, t2[15] = 1, t2; + }, t.parseGlyphPBF = function(t2) { + return new Ys(t2).readFields(yu, []); + }, t.pbf = Ys, t.performSymbolLayout = function(t2, e2, r2, n2, i2, a2, o2) { + t2.createArrays(), t2.tilePixelRatio = 8192 / (512 * t2.overscaling), t2.compareText = {}, t2.iconsNeedLinear = false; + var s2 = t2.layers[0].layout, u2 = t2.layers[0]._unevaluatedLayout._values, l2 = {}; + if ("composite" === t2.textSizeData.kind) { + var p3 = t2.textSizeData, c3 = p3.maxZoom; + l2.compositeTextSizes = [u2["text-size"].possiblyEvaluate(new si(p3.minZoom), o2), u2["text-size"].possiblyEvaluate(new si(c3), o2)]; + } + if ("composite" === t2.iconSizeData.kind) { + var h3 = t2.iconSizeData, f2 = h3.maxZoom; + l2.compositeIconSizes = [u2["icon-size"].possiblyEvaluate(new si(h3.minZoom), o2), u2["icon-size"].possiblyEvaluate(new si(f2), o2)]; + } + l2.layoutTextSize = u2["text-size"].possiblyEvaluate(new si(t2.zoom + 1), o2), l2.layoutIconSize = u2["icon-size"].possiblyEvaluate(new si(t2.zoom + 1), o2), l2.textMaxSize = u2["text-size"].possiblyEvaluate(new si(18)); + for (var y3 = 24 * s2.get("text-line-height"), d2 = "map" === s2.get("text-rotation-alignment") && "point" !== s2.get("symbol-placement"), m2 = s2.get("text-keep-upright"), v3 = s2.get("text-size"), g2 = function() { + var a3 = b2[x2], u3 = s2.get("text-font").evaluate(a3, {}, o2).join(","), p4 = v3.evaluate(a3, {}, o2), c4 = l2.layoutTextSize.evaluate(a3, {}, o2), h4 = l2.layoutIconSize.evaluate(a3, {}, o2), f3 = { horizontal: {}, vertical: void 0 }, g3 = a3.text, w2 = [0, 0]; + if (g3) { + var _2 = g3.toString(), S2 = 24 * s2.get("text-letter-spacing").evaluate(a3, {}, o2), k2 = function(t3) { + for (var e3 = 0, r3 = t3; e3 < r3.length; e3 += 1) + if (n3 = r3[e3].charCodeAt(0), Gn.Arabic(n3) || Gn["Arabic Supplement"](n3) || Gn["Arabic Extended-A"](n3) || Gn["Arabic Presentation Forms-A"](n3) || Gn["Arabic Presentation Forms-B"](n3)) + return false; + var n3; + return true; + }(_2) ? S2 : 0, I3 = s2.get("text-anchor").evaluate(a3, {}, o2), z2 = s2.get("text-variable-anchor"); + if (!z2) { + var C2 = s2.get("text-radial-offset").evaluate(a3, {}, o2); + w2 = C2 ? al(I3, [24 * C2, il]) : s2.get("text-offset").evaluate(a3, {}, o2).map(function(t3) { + return 24 * t3; + }); } - let x3 = s2 ? "center" : r2.get("text-justify").evaluate(n3, {}, e2.canonical); - const v4 = r2.get("symbol-placement"), b2 = "point" === v4 ? r2.get("text-max-width").evaluate(n3, {}, e2.canonical) * ll : 0, w2 = () => { - e2.bucket.allowVerticalPlacement && En(i3) && (f2.vertical = Ul(y3, e2.glyphMap, e2.glyphPositions, e2.imagePositions, u2, b2, a2, d2, "left", p4, g2, t.WritingMode.vertical, true, v4, h3, c3)); + var E2 = d2 ? "center" : s2.get("text-justify").evaluate(a3, {}, o2), P2 = s2.get("symbol-placement"), M2 = "point" === P2 ? 24 * s2.get("text-max-width").evaluate(a3, {}, o2) : 0, B2 = function() { + t2.allowVerticalPlacement && Zn(_2) && (f3.vertical = Su(g3, e2, r2, i2, u3, M2, y3, I3, "left", k2, w2, wu.vertical, true, P2, c4, p4)); }; - if (!s2 && m3) { - const r3 = "auto" === x3 ? m3.map((t2) => ku(t2)) : [x3]; - let n4 = false; - for (let i4 = 0; i4 < r3.length; i4++) { - const s3 = r3[i4]; - if (!f2.horizontal[s3]) - if (n4) - f2.horizontal[s3] = f2.horizontal[0]; + if (!d2 && z2) { + for (var T2 = "auto" === E2 ? z2.map(function(t3) { + return ol(t3); + }) : [E2], V3 = false, F2 = 0; F2 < T2.length; F2++) { + var D2 = T2[F2]; + if (!f3.horizontal[D2]) + if (V3) + f3.horizontal[D2] = f3.horizontal[0]; else { - const r4 = Ul(y3, e2.glyphMap, e2.glyphPositions, e2.imagePositions, u2, b2, a2, "center", s3, p4, g2, t.WritingMode.horizontal, false, v4, h3, c3); - r4 && (f2.horizontal[s3] = r4, n4 = 1 === r4.positionedLines.length); + var L2 = Su(g3, e2, r2, i2, u3, M2, y3, "center", D2, k2, w2, wu.horizontal, false, P2, c4, p4); + L2 && (f3.horizontal[D2] = L2, V3 = 1 === L2.positionedLines.length); } } - w2(); + B2(); } else { - "auto" === x3 && (x3 = ku(d2)); - const r3 = Ul(y3, e2.glyphMap, e2.glyphPositions, e2.imagePositions, u2, b2, a2, d2, x3, p4, g2, t.WritingMode.horizontal, false, v4, h3, c3); - r3 && (f2.horizontal[x3] = r3), w2(), En(i3) && s2 && o2 && (f2.vertical = Ul(y3, e2.glyphMap, e2.glyphPositions, e2.imagePositions, u2, b2, a2, d2, x3, p4, g2, t.WritingMode.vertical, false, v4, h3, c3)); + "auto" === E2 && (E2 = ol(I3)); + var O3 = Su(g3, e2, r2, i2, u3, M2, y3, I3, E2, k2, w2, wu.horizontal, false, P2, c4, p4); + O3 && (f3.horizontal[E2] = O3), B2(), Zn(_2) && d2 && m2 && (f3.vertical = Su(g3, e2, r2, i2, u3, M2, y3, I3, E2, k2, w2, wu.vertical, false, P2, c4, p4)); } } - let x2 = false; - if (n3.icon && n3.icon.name) { - const t2 = e2.imageMap[n3.icon.name]; - t2 && (m2 = Wl(e2.imagePositions[n3.icon.name], r2.get("icon-offset").evaluate(n3, {}, e2.canonical), r2.get("icon-anchor").evaluate(n3, {}, e2.canonical)), x2 = !!t2.sdf, void 0 === e2.bucket.sdfIcons ? e2.bucket.sdfIcons = x2 : e2.bucket.sdfIcons !== x2 && d("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"), (t2.pixelRatio !== e2.bucket.pixelRatio || 0 !== r2.get("icon-rotate").constantOr(1)) && (e2.bucket.iconsNeedLinear = true)); - } - const v3 = zu(f2.horizontal) || f2.vertical; - e2.bucket.iconsInText = !!v3 && v3.iconsInText, (v3 || m2) && Su(e2.bucket, n3, f2, m2, e2.imageMap, i2, h3, p3, g2, x2, e2.canonical); - } - e2.showCollisionBoxes && e2.bucket.generateCollisionDebugBuffers(); + var R2 = void 0, U2 = false; + if (a3.icon && a3.icon.name) { + var j2 = n2[a3.icon.name]; + j2 && (R2 = function(t3, e3, r3) { + var n3 = Bu(r3), i3 = e3[0] - t3.displaySize[0] * n3.horizontalAlign, a4 = e3[1] - t3.displaySize[1] * n3.verticalAlign; + return { image: t3, top: a4, bottom: a4 + t3.displaySize[1], left: i3, right: i3 + t3.displaySize[0] }; + }(i2[a3.icon.name], s2.get("icon-offset").evaluate(a3, {}, o2), s2.get("icon-anchor").evaluate(a3, {}, o2)), U2 = j2.sdf, void 0 === t2.sdfIcons ? t2.sdfIcons = j2.sdf : t2.sdfIcons !== j2.sdf && A2("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"), (j2.pixelRatio !== t2.pixelRatio || 0 !== s2.get("icon-rotate").constantOr(1)) && (t2.iconsNeedLinear = true)); + } + var q2 = ul(f3.horizontal) || f3.vertical; + t2.iconsInText = !!q2 && q2.iconsInText, (q2 || R2) && function(t3, e3, r3, n3, i3, a4, o3, s3, u4, l3, p5) { + var c5 = a4.textMaxSize.evaluate(e3, {}); + void 0 === c5 && (c5 = o3); + var h5, f4 = t3.layers[0].layout, y4 = f4.get("icon-offset").evaluate(e3, {}, p5), d3 = ul(r3.horizontal), m3 = o3 / 24, v4 = t3.tilePixelRatio * m3, g4 = t3.tilePixelRatio * c5 / 24, x3 = t3.tilePixelRatio * s3, b3 = t3.tilePixelRatio * f4.get("symbol-spacing"), w3 = f4.get("text-padding") * t3.tilePixelRatio, _3 = f4.get("icon-padding") * t3.tilePixelRatio, S3 = f4.get("text-max-angle") / 180 * Math.PI, k3 = "map" === f4.get("text-rotation-alignment") && "point" !== f4.get("symbol-placement"), I4 = "map" === f4.get("icon-rotation-alignment") && "point" !== f4.get("symbol-placement"), z3 = f4.get("symbol-placement"), C3 = b3 / 2, E3 = f4.get("icon-text-fit"); + n3 && "none" !== E3 && (t3.allowVerticalPlacement && r3.vertical && (h5 = Vu(n3, r3.vertical, E3, f4.get("icon-text-fit-padding"), y4, m3)), d3 && (n3 = Vu(n3, d3, E3, f4.get("icon-text-fit-padding"), y4, m3))); + var P3 = function(s4, c6) { + c6.x < 0 || c6.x >= 8192 || c6.y < 0 || c6.y >= 8192 || function(t4, e4, r4, n4, i4, a5, o4, s5, u5, l4, p6, c7, h6, f5, y5, d4, m4, v5, g5, x4, b4, w4, _4, S4, k4) { + var I5, z4, C4, E4, P4, M4 = t4.addToLineVertexArray(e4, r4), B4 = 0, T4 = 0, V5 = 0, F4 = 0, D4 = -1, L4 = -1, O5 = {}, R4 = ha(""), U4 = 0, j4 = 0; + if (void 0 === s5._unevaluatedLayout.getValue("text-radial-offset") ? (U4 = (I5 = s5.layout.get("text-offset").evaluate(b4, {}, S4).map(function(t5) { + return 24 * t5; + }))[0], j4 = I5[1]) : (U4 = 24 * s5.layout.get("text-radial-offset").evaluate(b4, {}, S4), j4 = il), t4.allowVerticalPlacement && n4.vertical) { + var q4 = s5.layout.get("text-rotate").evaluate(b4, {}, S4) + 90; + E4 = new Wu(u5, e4, l4, p6, c7, n4.vertical, h6, f5, y5, q4), o4 && (P4 = new Wu(u5, e4, l4, p6, c7, o4, m4, v5, y5, q4)); + } + if (i4) { + var N3 = s5.layout.get("icon-rotate").evaluate(b4, {}), K3 = "none" !== s5.layout.get("icon-text-fit"), G3 = Xu(i4, N3, _4, K3), Z4 = o4 ? Xu(o4, N3, _4, K3) : void 0; + C4 = new Wu(u5, e4, l4, p6, c7, i4, m4, v5, false, N3), B4 = 4 * G3.length; + var X3 = t4.iconSizeData, J3 = null; + "source" === X3.kind ? (J3 = [128 * s5.layout.get("icon-size").evaluate(b4, {})])[0] > 32640 && A2(t4.layerIds[0] + ': Value for "icon-size" is >= 255. Reduce your "icon-size".') : "composite" === X3.kind && ((J3 = [128 * w4.compositeIconSizes[0].evaluate(b4, {}, S4), 128 * w4.compositeIconSizes[1].evaluate(b4, {}, S4)])[0] > 32640 || J3[1] > 32640) && A2(t4.layerIds[0] + ': Value for "icon-size" is >= 255. Reduce your "icon-size".'), t4.addSymbols(t4.icon, G3, J3, x4, g5, b4, false, e4, M4.lineStartIndex, M4.lineLength, -1, S4), D4 = t4.icon.placedSymbolArray.length - 1, Z4 && (T4 = 4 * Z4.length, t4.addSymbols(t4.icon, Z4, J3, x4, g5, b4, wu.vertical, e4, M4.lineStartIndex, M4.lineLength, -1, S4), L4 = t4.icon.placedSymbolArray.length - 1); + } + for (var H3 in n4.horizontal) { + var Y3 = n4.horizontal[H3]; + if (!z4) { + R4 = ha(Y3.text); + var $3 = s5.layout.get("text-rotate").evaluate(b4, {}, S4); + z4 = new Wu(u5, e4, l4, p6, c7, Y3, h6, f5, y5, $3); + } + var W3 = 1 === Y3.positionedLines.length; + if (V5 += sl(t4, e4, Y3, a5, s5, y5, b4, d4, M4, n4.vertical ? wu.horizontal : wu.horizontalOnly, W3 ? Object.keys(n4.horizontal) : [H3], O5, D4, w4, S4), W3) + break; + } + n4.vertical && (F4 += sl(t4, e4, n4.vertical, a5, s5, y5, b4, d4, M4, wu.vertical, ["vertical"], O5, L4, w4, S4)); + var Q2 = z4 ? z4.boxStartIndex : t4.collisionBoxArray.length, tt2 = z4 ? z4.boxEndIndex : t4.collisionBoxArray.length, et2 = E4 ? E4.boxStartIndex : t4.collisionBoxArray.length, rt2 = E4 ? E4.boxEndIndex : t4.collisionBoxArray.length, nt2 = C4 ? C4.boxStartIndex : t4.collisionBoxArray.length, it2 = C4 ? C4.boxEndIndex : t4.collisionBoxArray.length, at2 = P4 ? P4.boxStartIndex : t4.collisionBoxArray.length, ot2 = P4 ? P4.boxEndIndex : t4.collisionBoxArray.length, st2 = -1, ut2 = function(t5, e5) { + return t5 && t5.circleDiameter ? Math.max(t5.circleDiameter, e5) : e5; + }; + st2 = ut2(z4, st2), st2 = ut2(E4, st2), st2 = ut2(C4, st2); + var lt2 = (st2 = ut2(P4, st2)) > -1 ? 1 : 0; + lt2 && (st2 *= k4 / 24), t4.glyphOffsetArray.length >= vl.MAX_GLYPHS && A2("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"), void 0 !== b4.sortKey && t4.addToSortKeyRanges(t4.symbolInstances.length, b4.sortKey), t4.symbolInstances.emplaceBack(e4.x, e4.y, O5.right >= 0 ? O5.right : -1, O5.center >= 0 ? O5.center : -1, O5.left >= 0 ? O5.left : -1, O5.vertical || -1, D4, L4, R4, Q2, tt2, et2, rt2, nt2, it2, at2, ot2, l4, V5, F4, B4, T4, lt2, 0, h6, U4, j4, st2); + }(t3, c6, s4, r3, n3, i3, h5, t3.layers[0], t3.collisionBoxArray, e3.index, e3.sourceLayerIndex, t3.index, v4, w3, k3, u4, x3, _3, I4, y4, e3, a4, l3, p5, o3); + }; + if ("line" === z3) + for (var M3 = 0, B3 = Zu(e3.geometry, 0, 0, 8192, 8192); M3 < B3.length; M3 += 1) + for (var T3 = B3[M3], V4 = 0, F3 = Gu(T3, b3, S3, r3.vertical || d3, n3, 24, g4, t3.overscaling, 8192); V4 < F3.length; V4 += 1) { + var D3 = F3[V4]; + d3 && ll(t3, d3.text, C3, D3) || P3(T3, D3); + } + else if ("line-center" === z3) + for (var L3 = 0, O4 = e3.geometry; L3 < O4.length; L3 += 1) { + var R3 = O4[L3]; + if (R3.length > 1) { + var U3 = Ku(R3, S3, r3.vertical || d3, n3, 24, g4); + U3 && P3(R3, U3); + } + } + else if ("Polygon" === e3.type) + for (var j3 = 0, q3 = ns(e3.geometry, 0); j3 < q3.length; j3 += 1) { + var N2 = q3[j3], K2 = el(N2, 16); + P3(N2[0], new Fu(K2.x, K2.y, 0)); + } + else if ("LineString" === e3.type) + for (var G2 = 0, Z3 = e3.geometry; G2 < Z3.length; G2 += 1) { + var X2 = Z3[G2]; + P3(X2, new Fu(X2[0].x, X2[0].y, 0)); + } + else if ("Point" === e3.type) + for (var J2 = 0, H2 = e3.geometry; J2 < H2.length; J2 += 1) + for (var Y2 = 0, $2 = H2[J2]; Y2 < $2.length; Y2 += 1) { + var W2 = $2[Y2]; + P3([W2], new Fu(W2.x, W2.y, 0)); + } + }(t2, a3, f3, R2, n2, l2, c4, h4, w2, U2, o2); + }, x2 = 0, b2 = t2.features; x2 < b2.length; x2 += 1) + g2(); + a2 && t2.generateCollisionDebugBuffers(); }, t.perspective = function(t2, e2, r2, n2, i2) { - var a2, s2 = 1 / Math.tan(e2 / 2); - return t2[0] = s2 / r2, t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[4] = 0, t2[5] = s2, t2[6] = 0, t2[7] = 0, t2[8] = 0, t2[9] = 0, t2[11] = -1, t2[12] = 0, t2[13] = 0, t2[15] = 0, null != i2 && i2 !== 1 / 0 ? (t2[10] = (i2 + n2) * (a2 = 1 / (n2 - i2)), t2[14] = 2 * i2 * n2 * a2) : (t2[10] = -1, t2[14] = -2 * n2), t2; + var a2, o2 = 1 / Math.tan(e2 / 2); + return t2[0] = o2 / r2, t2[1] = 0, t2[2] = 0, t2[3] = 0, t2[4] = 0, t2[5] = o2, t2[6] = 0, t2[7] = 0, t2[8] = 0, t2[9] = 0, t2[11] = -1, t2[12] = 0, t2[13] = 0, t2[15] = 0, null != i2 && i2 !== 1 / 0 ? (t2[10] = (i2 + n2) * (a2 = 1 / (n2 - i2)), t2[14] = 2 * i2 * n2 * a2) : (t2[10] = -1, t2[14] = -2 * n2), t2; }, t.pick = function(t2, e2) { - const r2 = {}; - for (let n2 = 0; n2 < e2.length; n2++) { - const i2 = e2[n2]; + for (var r2 = {}, n2 = 0; n2 < e2.length; n2++) { + var i2 = e2[n2]; i2 in t2 && (r2[i2] = t2[i2]); } return r2; - }, t.plugin = Wn, t.pointGeometry = S, t.polygonIntersectsPolygon = Xa, t.potpack = Tl, t.refProperties = ["type", "source", "source-layer", "minzoom", "maxzoom", "filter", "layout"], t.register = Mn, t.registerForPluginStateChange = function(t2) { - return t2({ pluginStatus: Zn, pluginURL: Kn }), Xn.on("pluginStateChange", t2), t2; - }, t.renderColorRamp = Cs, t.rotateX = function(t2, e2, r2) { - var n2 = Math.sin(r2), i2 = Math.cos(r2), a2 = e2[4], s2 = e2[5], o2 = e2[6], l2 = e2[7], u2 = e2[8], c3 = e2[9], h3 = e2[10], p3 = e2[11]; - return e2 !== t2 && (t2[0] = e2[0], t2[1] = e2[1], t2[2] = e2[2], t2[3] = e2[3], t2[12] = e2[12], t2[13] = e2[13], t2[14] = e2[14], t2[15] = e2[15]), t2[4] = a2 * i2 + u2 * n2, t2[5] = s2 * i2 + c3 * n2, t2[6] = o2 * i2 + h3 * n2, t2[7] = l2 * i2 + p3 * n2, t2[8] = u2 * i2 - a2 * n2, t2[9] = c3 * i2 - s2 * n2, t2[10] = h3 * i2 - o2 * n2, t2[11] = p3 * i2 - l2 * n2, t2; + }, t.plugin = oi, t.polygonIntersectsPolygon = Na, t.postMapLoadEvent = ot, t.postTurnstileEvent = it, t.potpack = vu, t.refProperties = ["type", "source", "source-layer", "minzoom", "maxzoom", "filter", "layout"], t.register = On, t.registerForPluginStateChange = function(t2) { + return t2({ pluginStatus: Qn, pluginURL: ti }), ni.on("pluginStateChange", t2), t2; + }, t.renderColorRamp = wo, t.rotate = function(t2, e2, r2) { + var n2 = e2[0], i2 = e2[1], a2 = e2[2], o2 = e2[3], s2 = Math.sin(r2), u2 = Math.cos(r2); + return t2[0] = n2 * u2 + a2 * s2, t2[1] = i2 * u2 + o2 * s2, t2[2] = n2 * -s2 + a2 * u2, t2[3] = i2 * -s2 + o2 * u2, t2; + }, t.rotateX = function(t2, e2, r2) { + var n2 = Math.sin(r2), i2 = Math.cos(r2), a2 = e2[4], o2 = e2[5], s2 = e2[6], u2 = e2[7], l2 = e2[8], p3 = e2[9], c3 = e2[10], h3 = e2[11]; + return e2 !== t2 && (t2[0] = e2[0], t2[1] = e2[1], t2[2] = e2[2], t2[3] = e2[3], t2[12] = e2[12], t2[13] = e2[13], t2[14] = e2[14], t2[15] = e2[15]), t2[4] = a2 * i2 + l2 * n2, t2[5] = o2 * i2 + p3 * n2, t2[6] = s2 * i2 + c3 * n2, t2[7] = u2 * i2 + h3 * n2, t2[8] = l2 * i2 - a2 * n2, t2[9] = p3 * i2 - o2 * n2, t2[10] = c3 * i2 - s2 * n2, t2[11] = h3 * i2 - u2 * n2, t2; }, t.rotateZ = function(t2, e2, r2) { - var n2 = Math.sin(r2), i2 = Math.cos(r2), a2 = e2[0], s2 = e2[1], o2 = e2[2], l2 = e2[3], u2 = e2[4], c3 = e2[5], h3 = e2[6], p3 = e2[7]; - return e2 !== t2 && (t2[8] = e2[8], t2[9] = e2[9], t2[10] = e2[10], t2[11] = e2[11], t2[12] = e2[12], t2[13] = e2[13], t2[14] = e2[14], t2[15] = e2[15]), t2[0] = a2 * i2 + u2 * n2, t2[1] = s2 * i2 + c3 * n2, t2[2] = o2 * i2 + h3 * n2, t2[3] = l2 * i2 + p3 * n2, t2[4] = u2 * i2 - a2 * n2, t2[5] = c3 * i2 - s2 * n2, t2[6] = h3 * i2 - o2 * n2, t2[7] = p3 * i2 - l2 * n2, t2; + var n2 = Math.sin(r2), i2 = Math.cos(r2), a2 = e2[0], o2 = e2[1], s2 = e2[2], u2 = e2[3], l2 = e2[4], p3 = e2[5], c3 = e2[6], h3 = e2[7]; + return e2 !== t2 && (t2[8] = e2[8], t2[9] = e2[9], t2[10] = e2[10], t2[11] = e2[11], t2[12] = e2[12], t2[13] = e2[13], t2[14] = e2[14], t2[15] = e2[15]), t2[0] = a2 * i2 + l2 * n2, t2[1] = o2 * i2 + p3 * n2, t2[2] = s2 * i2 + c3 * n2, t2[3] = u2 * i2 + h3 * n2, t2[4] = l2 * i2 - a2 * n2, t2[5] = p3 * i2 - o2 * n2, t2[6] = c3 * i2 - s2 * n2, t2[7] = h3 * i2 - u2 * n2, t2; }, t.scale = function(t2, e2, r2) { var n2 = r2[0], i2 = r2[1], a2 = r2[2]; return t2[0] = e2[0] * n2, t2[1] = e2[1] * n2, t2[2] = e2[2] * n2, t2[3] = e2[3] * n2, t2[4] = e2[4] * i2, t2[5] = e2[5] * i2, t2[6] = e2[6] * i2, t2[7] = e2[7] * i2, t2[8] = e2[8] * a2, t2[9] = e2[9] * a2, t2[10] = e2[10] * a2, t2[11] = e2[11] * a2, t2[12] = e2[12], t2[13] = e2[13], t2[14] = e2[14], t2[15] = e2[15], t2; }, t.scale$1 = function(t2, e2, r2) { + return t2[0] = e2[0] * r2, t2[1] = e2[1] * r2, t2[2] = e2[2] * r2, t2[3] = e2[3] * r2, t2; + }, t.scale$2 = function(t2, e2, r2) { return t2[0] = e2[0] * r2, t2[1] = e2[1] * r2, t2[2] = e2[2] * r2, t2; }, t.setCacheLimits = function(t2, e2) { - P = t2, V2 = e2; - }, t.setRTLTextPlugin = function(t2, e2, r2 = false) { - if (Zn === Un || Zn === qn || Zn === jn) + st = t2, ut = e2; + }, t.setRTLTextPlugin = function(t2, e2, r2) { + if (void 0 === r2 && (r2 = false), "deferred" === Qn || "loading" === Qn || "loaded" === Qn) throw new Error("setRTLTextPlugin cannot be called multiple times."); - Kn = k.resolveURL(t2), Zn = Un, Nn = e2, Jn(), r2 || Hn(); - }, t.spec = nt, t.sphericalToCartesian = function([t2, e2, r2]) { - return e2 += 90, e2 *= Math.PI / 180, r2 *= Math.PI / 180, { x: t2 * Math.cos(e2) * Math.sin(r2), y: t2 * Math.sin(e2) * Math.sin(r2), z: t2 * Math.cos(r2) }; + ti = O2.resolveURL(t2), Qn = "deferred", Wn = e2, ri(), r2 || ai(); + }, t.sphericalToCartesian = function(t2) { + var e2 = t2[0], r2 = t2[1], n2 = t2[2]; + return r2 += 90, r2 *= Math.PI / 180, n2 *= Math.PI / 180, { x: e2 * Math.cos(r2) * Math.sin(n2), y: e2 * Math.sin(r2) * Math.sin(n2), z: e2 * Math.cos(n2) }; }, t.sqrLen = function(t2) { var e2 = t2[0], r2 = t2[1]; return e2 * e2 + r2 * r2; - }, t.sub = function(t2, e2, r2) { + }, t.styleSpec = Et, t.sub = function(t2, e2, r2) { return t2[0] = e2[0] - r2[0], t2[1] = e2[1] - r2[1], t2[2] = e2[2] - r2[2], t2; - }, t.toEvaluationFeature = Ka, t.transformMat3 = function(t2, e2, r2) { + }, t.symbolSize = Ru, t.transformMat3 = function(t2, e2, r2) { var n2 = e2[0], i2 = e2[1], a2 = e2[2]; return t2[0] = n2 * r2[0] + i2 * r2[3] + a2 * r2[6], t2[1] = n2 * r2[1] + i2 * r2[4] + a2 * r2[7], t2[2] = n2 * r2[2] + i2 * r2[5] + a2 * r2[8], t2; - }, t.transformMat4 = bs, t.transformMat4$1 = function(t2, e2, r2) { - var n2 = e2[0], i2 = e2[1]; - return t2[0] = r2[0] * n2 + r2[4] * i2 + r2[12], t2[1] = r2[1] * n2 + r2[5] * i2 + r2[13], t2; - }, t.translate = function(t2, e2, r2) { - var n2, i2, a2, s2, o2, l2, u2, c3, h3, p3, f2, d2, y3 = r2[0], m2 = r2[1], g2 = r2[2]; - return e2 === t2 ? (t2[12] = e2[0] * y3 + e2[4] * m2 + e2[8] * g2 + e2[12], t2[13] = e2[1] * y3 + e2[5] * m2 + e2[9] * g2 + e2[13], t2[14] = e2[2] * y3 + e2[6] * m2 + e2[10] * g2 + e2[14], t2[15] = e2[3] * y3 + e2[7] * m2 + e2[11] * g2 + e2[15]) : (i2 = e2[1], a2 = e2[2], s2 = e2[3], o2 = e2[4], l2 = e2[5], u2 = e2[6], c3 = e2[7], h3 = e2[8], p3 = e2[9], f2 = e2[10], d2 = e2[11], t2[0] = n2 = e2[0], t2[1] = i2, t2[2] = a2, t2[3] = s2, t2[4] = o2, t2[5] = l2, t2[6] = u2, t2[7] = c3, t2[8] = h3, t2[9] = p3, t2[10] = f2, t2[11] = d2, t2[12] = n2 * y3 + o2 * m2 + h3 * g2 + e2[12], t2[13] = i2 * y3 + l2 * m2 + p3 * g2 + e2[13], t2[14] = a2 * y3 + u2 * m2 + f2 * g2 + e2[14], t2[15] = s2 * y3 + c3 * m2 + d2 * g2 + e2[15]), t2; - }, t.triggerPluginCompletionEvent = Gn, t.unicodeBlockLookup = Vn, t.uniqueId = function() { - return l++; - }, t.validateCustomStyleLayer = function(t2) { - const e2 = [], r2 = t2.id; - return void 0 === r2 && e2.push({ message: `layers.${r2}: missing required property "id"` }), void 0 === t2.render && e2.push({ message: `layers.${r2}: missing required method "render"` }), t2.renderingMode && "2d" !== t2.renderingMode && "3d" !== t2.renderingMode && e2.push({ message: `layers.${r2}: property "renderingMode" must be either "2d" or "3d"` }), e2; - }, t.validateLight = wn, t.validateStyle = bn, t.vectorTile = _o, t.warnOnce = d, t.wrap = s; + }, t.transformMat4 = po, t.translate = function(t2, e2, r2) { + var n2, i2, a2, o2, s2, u2, l2, p3, c3, h3, f2, y3, d2 = r2[0], m2 = r2[1], v3 = r2[2]; + return e2 === t2 ? (t2[12] = e2[0] * d2 + e2[4] * m2 + e2[8] * v3 + e2[12], t2[13] = e2[1] * d2 + e2[5] * m2 + e2[9] * v3 + e2[13], t2[14] = e2[2] * d2 + e2[6] * m2 + e2[10] * v3 + e2[14], t2[15] = e2[3] * d2 + e2[7] * m2 + e2[11] * v3 + e2[15]) : (i2 = e2[1], a2 = e2[2], o2 = e2[3], s2 = e2[4], u2 = e2[5], l2 = e2[6], p3 = e2[7], c3 = e2[8], h3 = e2[9], f2 = e2[10], y3 = e2[11], t2[0] = n2 = e2[0], t2[1] = i2, t2[2] = a2, t2[3] = o2, t2[4] = s2, t2[5] = u2, t2[6] = l2, t2[7] = p3, t2[8] = c3, t2[9] = h3, t2[10] = f2, t2[11] = y3, t2[12] = n2 * d2 + s2 * m2 + c3 * v3 + e2[12], t2[13] = i2 * d2 + u2 * m2 + h3 * v3 + e2[13], t2[14] = a2 * d2 + l2 * m2 + f2 * v3 + e2[14], t2[15] = o2 * d2 + p3 * m2 + y3 * v3 + e2[15]), t2; + }, t.triggerPluginCompletionEvent = ei, t.uniqueId = y2, t.validateCustomStyleLayer = function(t2) { + var e2 = [], r2 = t2.id; + return void 0 === r2 && e2.push({ message: "layers." + r2 + ': missing required property "id"' }), void 0 === t2.render && e2.push({ message: "layers." + r2 + ': missing required method "render"' }), t2.renderingMode && "2d" !== t2.renderingMode && "3d" !== t2.renderingMode && e2.push({ message: "layers." + r2 + ': property "renderingMode" must be either "2d" or "3d"' }), e2; + }, t.validateLight = En, t.validateStyle = Cn, t.values = function(t2) { + var e2 = []; + for (var r2 in t2) + e2.push(t2[r2]); + return e2; + }, t.vectorTile = bs, t.version = "1.13.3", t.warnOnce = A2, t.webpSupported = U, t.window = o, t.wrap = c2; }); define2(["./shared"], function(e) { function t(e2) { - const o2 = typeof e2; - if ("number" === o2 || "boolean" === o2 || "string" === o2 || null == e2) + var r2 = typeof e2; + if ("number" === r2 || "boolean" === r2 || "string" === r2 || null == e2) return JSON.stringify(e2); if (Array.isArray(e2)) { - let o3 = "["; - for (const i3 of e2) - o3 += `${t(i3)},`; - return `${o3}]`; - } - const i2 = Object.keys(e2).sort(); - let r2 = "{"; - for (let o3 = 0; o3 < i2.length; o3++) - r2 += `${JSON.stringify(i2[o3])}:${t(e2[i2[o3]])},`; - return `${r2}}`; - } - function o(o2) { - let i2 = ""; - for (const r2 of e.refProperties) - i2 += `/${t(o2[r2])}`; + for (var i2 = "[", o2 = 0, n2 = e2; o2 < n2.length; o2 += 1) + i2 += t(n2[o2]) + ","; + return i2 + "]"; + } + for (var a2 = Object.keys(e2).sort(), s2 = "{", l2 = 0; l2 < a2.length; l2++) + s2 += JSON.stringify(a2[l2]) + ":" + t(e2[a2[l2]]) + ","; + return s2 + "}"; + } + function r(r2) { + for (var i2 = "", o2 = 0, n2 = e.refProperties; o2 < n2.length; o2 += 1) + i2 += "/" + t(r2[n2[o2]]); return i2; } - class i { - constructor(e2) { - this.keyCache = {}, e2 && this.replace(e2); - } - replace(e2) { - this._layerConfigs = {}, this._layers = {}, this.update(e2, []); - } - update(t2, i2) { - for (const o2 of t2) { - this._layerConfigs[o2.id] = o2; - const t3 = this._layers[o2.id] = e.createStyleLayer(o2); - t3._featureFilter = e.createFilter(t3.filter), this.keyCache[o2.id] && delete this.keyCache[o2.id]; - } - for (const e2 of i2) - delete this.keyCache[e2], delete this._layerConfigs[e2], delete this._layers[e2]; - this.familiesBySource = {}; - const r2 = function(e2, t3) { - const i3 = {}; - for (let r4 = 0; r4 < e2.length; r4++) { - const n2 = t3 && t3[e2[r4].id] || o(e2[r4]); - t3 && (t3[e2[r4].id] = n2); - let s2 = i3[n2]; - s2 || (s2 = i3[n2] = []), s2.push(e2[r4]); - } - const r3 = []; - for (const e3 in i3) - r3.push(i3[e3]); - return r3; - }(Object.values(this._layerConfigs), this.keyCache); - for (const e2 of r2) { - const t3 = e2.map((e3) => this._layers[e3.id]), o2 = t3[0]; - if ("none" === o2.visibility) - continue; - const i3 = o2.source || ""; - let r3 = this.familiesBySource[i3]; - r3 || (r3 = this.familiesBySource[i3] = {}); - const n2 = o2.sourceLayer || "_geojsonTileLayer"; - let s2 = r3[n2]; - s2 || (s2 = r3[n2] = []), s2.push(t3); - } - } - } - class r { - constructor(t2) { - const o2 = {}, i2 = []; - for (const e2 in t2) { - const r3 = t2[e2], n3 = o2[e2] = {}; - for (const e3 in r3) { - const t3 = r3[+e3]; - if (!t3 || 0 === t3.bitmap.width || 0 === t3.bitmap.height) - continue; - const o3 = { x: 0, y: 0, w: t3.bitmap.width + 2, h: t3.bitmap.height + 2 }; - i2.push(o3), n3[e3] = { rect: o3, metrics: t3.metrics }; - } - } - const { w: r2, h: n2 } = e.potpack(i2), s2 = new e.AlphaImage({ width: r2 || 1, height: n2 || 1 }); - for (const i3 in t2) { - const r3 = t2[i3]; - for (const t3 in r3) { - const n3 = r3[+t3]; - if (!n3 || 0 === n3.bitmap.width || 0 === n3.bitmap.height) - continue; - const a2 = o2[i3][t3].rect; - e.AlphaImage.copy(n3.bitmap, s2, { x: 0, y: 0 }, { x: a2.x + 1, y: a2.y + 1 }, n3.bitmap); - } + var i = function(e2) { + this.keyCache = {}, e2 && this.replace(e2); + }; + i.prototype.replace = function(e2) { + this._layerConfigs = {}, this._layers = {}, this.update(e2, []); + }, i.prototype.update = function(t2, i2) { + for (var o2 = this, n2 = 0, a2 = t2; n2 < a2.length; n2 += 1) { + var s2 = a2[n2]; + this._layerConfigs[s2.id] = s2; + var l2 = this._layers[s2.id] = e.createStyleLayer(s2); + l2._featureFilter = e.featureFilter(l2.filter), this.keyCache[s2.id] && delete this.keyCache[s2.id]; + } + for (var u2 = 0, h3 = i2; u2 < h3.length; u2 += 1) { + var c3 = h3[u2]; + delete this.keyCache[c3], delete this._layerConfigs[c3], delete this._layers[c3]; + } + this.familiesBySource = {}; + for (var p3 = 0, f2 = function(e2, t3) { + for (var i3 = {}, o3 = 0; o3 < e2.length; o3++) { + var n3 = t3 && t3[e2[o3].id] || r(e2[o3]); + t3 && (t3[e2[o3].id] = n3); + var a3 = i3[n3]; + a3 || (a3 = i3[n3] = []), a3.push(e2[o3]); + } + var s3 = []; + for (var l3 in i3) + s3.push(i3[l3]); + return s3; + }(e.values(this._layerConfigs), this.keyCache); p3 < f2.length; p3 += 1) { + var d2 = f2[p3].map(function(e2) { + return o2._layers[e2.id]; + }), g2 = d2[0]; + if ("none" !== g2.visibility) { + var v3 = g2.source || "", m2 = this.familiesBySource[v3]; + m2 || (m2 = this.familiesBySource[v3] = {}); + var y3 = g2.sourceLayer || "_geojsonTileLayer", x2 = m2[y3]; + x2 || (x2 = m2[y3] = []), x2.push(d2); } - this.image = s2, this.positions = o2; - } - } - e.register("GlyphAtlas", r); - class n { - constructor(t2) { - this.tileID = new e.OverscaledTileID(t2.tileID.overscaledZ, t2.tileID.wrap, t2.tileID.canonical.z, t2.tileID.canonical.x, t2.tileID.canonical.y), this.uid = t2.uid, this.zoom = t2.zoom, this.pixelRatio = t2.pixelRatio, this.tileSize = t2.tileSize, this.source = t2.source, this.overscaling = this.tileID.overscaleFactor(), this.showCollisionBoxes = t2.showCollisionBoxes, this.collectResourceTiming = !!t2.collectResourceTiming, this.returnDependencies = !!t2.returnDependencies, this.promoteId = t2.promoteId; } - parse(t2, o2, i2, n2, a2) { - this.status = "parsing", this.data = t2, this.collisionBoxArray = new e.CollisionBoxArray(); - const l2 = new e.DictionaryCoder(Object.keys(t2.layers).sort()), c3 = new e.FeatureIndex(this.tileID, this.promoteId); - c3.bucketLayerIDs = []; - const u2 = {}, h3 = { featureIndex: c3, iconDependencies: {}, patternDependencies: {}, glyphDependencies: {}, availableImages: i2 }, p3 = o2.familiesBySource[this.source]; - for (const o3 in p3) { - const r2 = t2.layers[o3]; - if (!r2) - continue; - 1 === r2.version && e.warnOnce(`Vector tile source "${this.source}" layer "${o3}" does not use vector tile spec v2 and therefore may have some rendering errors.`); - const n3 = l2.encode(o3), a3 = []; - for (let e2 = 0; e2 < r2.length; e2++) { - const t3 = r2.feature(e2), i3 = c3.getId(t3, o3); - a3.push({ feature: t3, id: i3, index: e2, sourceLayerIndex: n3 }); - } - for (const t3 of p3[o3]) { - const o4 = t3[0]; - o4.source !== this.source && e.warnOnce(`layer.source = ${o4.source} does not equal this.source = ${this.source}`), o4.minzoom && this.zoom < Math.floor(o4.minzoom) || o4.maxzoom && this.zoom >= o4.maxzoom || "none" !== o4.visibility && (s(t3, this.zoom, i2), (u2[o4.id] = o4.createBucket({ index: c3.bucketLayerIDs.length, layers: t3, zoom: this.zoom, pixelRatio: this.pixelRatio, overscaling: this.overscaling, collisionBoxArray: this.collisionBoxArray, sourceLayerIndex: n3, sourceID: this.source })).populate(a3, h3, this.tileID.canonical), c3.bucketLayerIDs.push(t3.map((e2) => e2.id))); + }; + var o = function(t2) { + var r2 = {}, i2 = []; + for (var o2 in t2) { + var n2 = t2[o2], a2 = r2[o2] = {}; + for (var s2 in n2) { + var l2 = n2[+s2]; + if (l2 && 0 !== l2.bitmap.width && 0 !== l2.bitmap.height) { + var u2 = { x: 0, y: 0, w: l2.bitmap.width + 2, h: l2.bitmap.height + 2 }; + i2.push(u2), a2[s2] = { rect: u2, metrics: l2.metrics }; } } - let f2, d2, g2, m2; - const y3 = e.mapObject(h3.glyphDependencies, (e2) => Object.keys(e2).map(Number)); - Object.keys(y3).length ? n2.send("getGlyphs", { uid: this.uid, stacks: y3 }, (e2, t3) => { - f2 || (f2 = e2, d2 = t3, w2.call(this)); - }) : d2 = {}; - const v3 = Object.keys(h3.iconDependencies); - v3.length ? n2.send("getImages", { icons: v3, source: this.source, tileID: this.tileID, type: "icons" }, (e2, t3) => { - f2 || (f2 = e2, g2 = t3, w2.call(this)); - }) : g2 = {}; - const x2 = Object.keys(h3.patternDependencies); - function w2() { - if (f2) - return a2(f2); - if (d2 && g2 && m2) { - const t3 = new r(d2), o3 = new e.ImageAtlas(g2, m2); - for (const r2 in u2) { - const n3 = u2[r2]; - n3 instanceof e.SymbolBucket ? (s(n3.layers, this.zoom, i2), e.performSymbolLayout({ bucket: n3, glyphMap: d2, glyphPositions: t3.positions, imageMap: g2, imagePositions: o3.iconPositions, showCollisionBoxes: this.showCollisionBoxes, canonical: this.tileID.canonical })) : n3.hasPattern && (n3 instanceof e.LineBucket || n3 instanceof e.FillBucket || n3 instanceof e.FillExtrusionBucket) && (s(n3.layers, this.zoom, i2), n3.addFeatures(h3, this.tileID.canonical, o3.patternPositions)); - } - this.status = "done", a2(null, { buckets: Object.values(u2).filter((e2) => !e2.isEmpty()), featureIndex: c3, collisionBoxArray: this.collisionBoxArray, glyphAtlasImage: t3.image, imageAtlas: o3, glyphMap: this.returnDependencies ? d2 : null, iconMap: this.returnDependencies ? g2 : null, glyphPositions: this.returnDependencies ? t3.positions : null }); + } + var h3 = e.potpack(i2), c3 = new e.AlphaImage({ width: h3.w || 1, height: h3.h || 1 }); + for (var p3 in t2) { + var f2 = t2[p3]; + for (var d2 in f2) { + var g2 = f2[+d2]; + if (g2 && 0 !== g2.bitmap.width && 0 !== g2.bitmap.height) { + var v3 = r2[p3][d2].rect; + e.AlphaImage.copy(g2.bitmap, c3, { x: 0, y: 0 }, { x: v3.x + 1, y: v3.y + 1 }, g2.bitmap); } } - x2.length ? n2.send("getImages", { icons: x2, source: this.source, tileID: this.tileID, type: "patterns" }, (e2, t3) => { - f2 || (f2 = e2, m2 = t3, w2.call(this)); - }) : m2 = {}, w2.call(this); } + this.image = c3, this.positions = r2; + }; + e.register("GlyphAtlas", o); + var n = function(t2) { + this.tileID = new e.OverscaledTileID(t2.tileID.overscaledZ, t2.tileID.wrap, t2.tileID.canonical.z, t2.tileID.canonical.x, t2.tileID.canonical.y), this.uid = t2.uid, this.zoom = t2.zoom, this.pixelRatio = t2.pixelRatio, this.tileSize = t2.tileSize, this.source = t2.source, this.overscaling = this.tileID.overscaleFactor(), this.showCollisionBoxes = t2.showCollisionBoxes, this.collectResourceTiming = !!t2.collectResourceTiming, this.returnDependencies = !!t2.returnDependencies, this.promoteId = t2.promoteId; + }; + function a(t2, r2, i2) { + for (var o2 = new e.EvaluationParameters(r2), n2 = 0, a2 = t2; n2 < a2.length; n2 += 1) + a2[n2].recalculate(o2, i2); } - function s(t2, o2, i2) { - const r2 = new e.EvaluationParameters(o2); - for (const e2 of t2) - e2.recalculate(r2, i2); - } - function a(t2, o2) { - const i2 = e.getArrayBuffer(t2.request, (t3, i3, r2, n2) => { - t3 ? o2(t3) : i3 && o2(null, { vectorTile: new e.vectorTile.VectorTile(new e.pbf(i3)), rawData: i3, cacheControl: r2, expires: n2 }); + function s(t2, r2) { + var i2 = e.getArrayBuffer(t2.request, function(t3, i3, o2, n2) { + t3 ? r2(t3) : i3 && r2(null, { vectorTile: new e.vectorTile.VectorTile(new e.pbf(i3)), rawData: i3, cacheControl: o2, expires: n2 }); }); - return () => { - i2.cancel(), o2(); + return function() { + i2.cancel(), r2(); }; } - class l { - constructor(e2, t2, o2, i2) { - this.actor = e2, this.layerIndex = t2, this.availableImages = o2, this.loadVectorData = i2 || a, this.loading = {}, this.loaded = {}; - } - loadTile(t2, o2) { - const i2 = t2.uid; - this.loading || (this.loading = {}); - const r2 = !!(t2 && t2.request && t2.request.collectResourceTiming) && new e.RequestPerformance(t2.request), s2 = this.loading[i2] = new n(t2); - s2.abort = this.loadVectorData(t2, (t3, n2) => { - if (delete this.loading[i2], t3 || !n2) - return s2.status = "done", this.loaded[i2] = s2, o2(t3); - const a2 = n2.rawData, l2 = {}; - n2.expires && (l2.expires = n2.expires), n2.cacheControl && (l2.cacheControl = n2.cacheControl); - const c3 = {}; - if (r2) { - const e2 = r2.finish(); - e2 && (c3.resourceTiming = JSON.parse(JSON.stringify(e2))); + n.prototype.parse = function(t2, r2, i2, n2, s2) { + var l2 = this; + this.status = "parsing", this.data = t2, this.collisionBoxArray = new e.CollisionBoxArray(); + var u2 = new e.DictionaryCoder(Object.keys(t2.layers).sort()), h3 = new e.FeatureIndex(this.tileID, this.promoteId); + h3.bucketLayerIDs = []; + var c3, p3, f2, d2, g2 = {}, v3 = { featureIndex: h3, iconDependencies: {}, patternDependencies: {}, glyphDependencies: {}, availableImages: i2 }, m2 = r2.familiesBySource[this.source]; + for (var y3 in m2) { + var x2 = t2.layers[y3]; + if (x2) { + 1 === x2.version && e.warnOnce('Vector tile source "' + this.source + '" layer "' + y3 + '" does not use vector tile spec v2 and therefore may have some rendering errors.'); + for (var w2 = u2.encode(y3), S2 = [], I3 = 0; I3 < x2.length; I3++) { + var M2 = x2.feature(I3), b2 = h3.getId(M2, y3); + S2.push({ feature: M2, id: b2, index: I3, sourceLayerIndex: w2 }); } - s2.vectorTile = n2.vectorTile, s2.parse(n2.vectorTile, this.layerIndex, this.availableImages, this.actor, (t4, i3) => { - if (t4 || !i3) - return o2(t4); - o2(null, e.extend({ rawTileData: a2.slice(0) }, i3, l2, c3)); - }), this.loaded = this.loaded || {}, this.loaded[i2] = s2; - }); + for (var _2 = 0, k2 = m2[y3]; _2 < k2.length; _2 += 1) { + var P2 = k2[_2], T2 = P2[0]; + T2.minzoom && this.zoom < Math.floor(T2.minzoom) || T2.maxzoom && this.zoom >= T2.maxzoom || "none" !== T2.visibility && (a(P2, this.zoom, i2), (g2[T2.id] = T2.createBucket({ index: h3.bucketLayerIDs.length, layers: P2, zoom: this.zoom, pixelRatio: this.pixelRatio, overscaling: this.overscaling, collisionBoxArray: this.collisionBoxArray, sourceLayerIndex: w2, sourceID: this.source })).populate(S2, v3, this.tileID.canonical), h3.bucketLayerIDs.push(P2.map(function(e2) { + return e2.id; + }))); + } + } } - reloadTile(e2, t2) { - const o2 = this.loaded, i2 = e2.uid, r2 = this; - if (o2 && o2[i2]) { - const n2 = o2[i2]; - n2.showCollisionBoxes = e2.showCollisionBoxes; - const s2 = (e3, o3) => { - const i3 = n2.reloadCallback; - i3 && (delete n2.reloadCallback, n2.parse(n2.vectorTile, r2.layerIndex, this.availableImages, r2.actor, i3)), t2(e3, o3); - }; - "parsing" === n2.status ? n2.reloadCallback = s2 : "done" === n2.status && (n2.vectorTile ? n2.parse(n2.vectorTile, this.layerIndex, this.availableImages, this.actor, s2) : s2()); - } - } - abortTile(e2, t2) { - const o2 = this.loading, i2 = e2.uid; - o2 && o2[i2] && o2[i2].abort && (o2[i2].abort(), delete o2[i2]), t2(); - } - removeTile(e2, t2) { - const o2 = this.loaded, i2 = e2.uid; - o2 && o2[i2] && delete o2[i2], t2(); - } - } - class c2 { - constructor() { - this.loaded = {}; - } - loadTile(t2, o2) { - const { uid: i2, encoding: r2, rawImageData: n2 } = t2, s2 = e.isImageBitmap(n2) ? this.getImageData(n2) : n2, a2 = new e.DEMData(i2, s2, r2); - this.loaded = this.loaded || {}, this.loaded[i2] = a2, o2(null, a2); - } - getImageData(t2) { - this.offscreenCanvas && this.offscreenCanvasContext || (this.offscreenCanvas = new OffscreenCanvas(t2.width, t2.height), this.offscreenCanvasContext = this.offscreenCanvas.getContext("2d")), this.offscreenCanvas.width = t2.width, this.offscreenCanvas.height = t2.height, this.offscreenCanvasContext.drawImage(t2, 0, 0, t2.width, t2.height); - const o2 = this.offscreenCanvasContext.getImageData(-1, -1, t2.width + 2, t2.height + 2); - return this.offscreenCanvasContext.clearRect(0, 0, this.offscreenCanvas.width, this.offscreenCanvas.height), new e.RGBAImage({ width: o2.width, height: o2.height }, o2.data); - } - removeTile(e2) { - const t2 = this.loaded, o2 = e2.uid; - t2 && t2[o2] && delete t2[o2]; - } - } - var u = function e2(t2, o2) { - var i2, r2 = t2 && t2.type; - if ("FeatureCollection" === r2) - for (i2 = 0; i2 < t2.features.length; i2++) - e2(t2.features[i2], o2); - else if ("GeometryCollection" === r2) - for (i2 = 0; i2 < t2.geometries.length; i2++) - e2(t2.geometries[i2], o2); - else if ("Feature" === r2) - e2(t2.geometry, o2); - else if ("Polygon" === r2) - h2(t2.coordinates, o2); - else if ("MultiPolygon" === r2) - for (i2 = 0; i2 < t2.coordinates.length; i2++) - h2(t2.coordinates[i2], o2); - return t2; + var C2 = e.mapObject(v3.glyphDependencies, function(e2) { + return Object.keys(e2).map(Number); + }); + Object.keys(C2).length ? n2.send("getGlyphs", { uid: this.uid, stacks: C2 }, function(e2, t3) { + c3 || (c3 = e2, p3 = t3, z2.call(l2)); + }) : p3 = {}; + var D2 = Object.keys(v3.iconDependencies); + D2.length ? n2.send("getImages", { icons: D2, source: this.source, tileID: this.tileID, type: "icons" }, function(e2, t3) { + c3 || (c3 = e2, f2 = t3, z2.call(l2)); + }) : f2 = {}; + var L2 = Object.keys(v3.patternDependencies); + function z2() { + if (c3) + return s2(c3); + if (p3 && f2 && d2) { + var t3 = new o(p3), r3 = new e.ImageAtlas(f2, d2); + for (var n3 in g2) { + var l3 = g2[n3]; + l3 instanceof e.SymbolBucket ? (a(l3.layers, this.zoom, i2), e.performSymbolLayout(l3, p3, t3.positions, f2, r3.iconPositions, this.showCollisionBoxes, this.tileID.canonical)) : l3.hasPattern && (l3 instanceof e.LineBucket || l3 instanceof e.FillBucket || l3 instanceof e.FillExtrusionBucket) && (a(l3.layers, this.zoom, i2), l3.addFeatures(v3, this.tileID.canonical, r3.patternPositions)); + } + this.status = "done", s2(null, { buckets: e.values(g2).filter(function(e2) { + return !e2.isEmpty(); + }), featureIndex: h3, collisionBoxArray: this.collisionBoxArray, glyphAtlasImage: t3.image, imageAtlas: r3, glyphMap: this.returnDependencies ? p3 : null, iconMap: this.returnDependencies ? f2 : null, glyphPositions: this.returnDependencies ? t3.positions : null }); + } + } + L2.length ? n2.send("getImages", { icons: L2, source: this.source, tileID: this.tileID, type: "patterns" }, function(e2, t3) { + c3 || (c3 = e2, d2 = t3, z2.call(l2)); + }) : d2 = {}, z2.call(this); + }; + var l = function(e2, t2, r2, i2) { + this.actor = e2, this.layerIndex = t2, this.availableImages = r2, this.loadVectorData = i2 || s, this.loading = {}, this.loaded = {}; + }; + l.prototype.loadTile = function(t2, r2) { + var i2 = this, o2 = t2.uid; + this.loading || (this.loading = {}); + var a2 = !!(t2 && t2.request && t2.request.collectResourceTiming) && new e.RequestPerformance(t2.request), s2 = this.loading[o2] = new n(t2); + s2.abort = this.loadVectorData(t2, function(t3, n2) { + if (delete i2.loading[o2], t3 || !n2) + return s2.status = "done", i2.loaded[o2] = s2, r2(t3); + var l2 = n2.rawData, u2 = {}; + n2.expires && (u2.expires = n2.expires), n2.cacheControl && (u2.cacheControl = n2.cacheControl); + var h3 = {}; + if (a2) { + var c3 = a2.finish(); + c3 && (h3.resourceTiming = JSON.parse(JSON.stringify(c3))); + } + s2.vectorTile = n2.vectorTile, s2.parse(n2.vectorTile, i2.layerIndex, i2.availableImages, i2.actor, function(t4, i3) { + if (t4 || !i3) + return r2(t4); + r2(null, e.extend({ rawTileData: l2.slice(0) }, i3, u2, h3)); + }), i2.loaded = i2.loaded || {}, i2.loaded[o2] = s2; + }); + }, l.prototype.reloadTile = function(e2, t2) { + var r2 = this, i2 = this.loaded, o2 = e2.uid, n2 = this; + if (i2 && i2[o2]) { + var a2 = i2[o2]; + a2.showCollisionBoxes = e2.showCollisionBoxes; + var s2 = function(e3, i3) { + var o3 = a2.reloadCallback; + o3 && (delete a2.reloadCallback, a2.parse(a2.vectorTile, n2.layerIndex, r2.availableImages, n2.actor, o3)), t2(e3, i3); + }; + "parsing" === a2.status ? a2.reloadCallback = s2 : "done" === a2.status && (a2.vectorTile ? a2.parse(a2.vectorTile, this.layerIndex, this.availableImages, this.actor, s2) : s2()); + } + }, l.prototype.abortTile = function(e2, t2) { + var r2 = this.loading, i2 = e2.uid; + r2 && r2[i2] && r2[i2].abort && (r2[i2].abort(), delete r2[i2]), t2(); + }, l.prototype.removeTile = function(e2, t2) { + var r2 = this.loaded, i2 = e2.uid; + r2 && r2[i2] && delete r2[i2], t2(); + }; + var u = e.window.ImageBitmap, h2 = function() { + this.loaded = {}; }; - function h2(e2, t2) { + function c2(e2, t2) { if (0 !== e2.length) { p2(e2[0], t2); - for (var o2 = 1; o2 < e2.length; o2++) - p2(e2[o2], !t2); + for (var r2 = 1; r2 < e2.length; r2++) + p2(e2[r2], !t2); } } function p2(e2, t2) { - for (var o2 = 0, i2 = 0, r2 = 0, n2 = e2.length, s2 = n2 - 1; r2 < n2; s2 = r2++) { - var a2 = (e2[r2][0] - e2[s2][0]) * (e2[s2][1] + e2[r2][1]), l2 = o2 + a2; - i2 += Math.abs(o2) >= Math.abs(a2) ? o2 - l2 + a2 : a2 - l2 + o2, o2 = l2; - } - o2 + i2 >= 0 != !!t2 && e2.reverse(); - } - const f = e.vectorTile.VectorTileFeature.prototype.toGeoJSON; - class d { - constructor(t2) { - this._feature = t2, this.extent = e.EXTENT, this.type = t2.type, this.properties = t2.tags, "id" in t2 && !isNaN(t2.id) && (this.id = parseInt(t2.id, 10)); - } - loadGeometry() { - if (1 === this._feature.type) { - const t2 = []; - for (const o2 of this._feature.geometry) - t2.push([new e.pointGeometry(o2[0], o2[1])]); - return t2; - } - { - const t2 = []; - for (const o2 of this._feature.geometry) { - const i2 = []; - for (const t3 of o2) - i2.push(new e.pointGeometry(t3[0], t3[1])); - t2.push(i2); - } - return t2; + for (var r2 = 0, i2 = 0, o2 = 0, n2 = e2.length, a2 = n2 - 1; o2 < n2; a2 = o2++) { + var s2 = (e2[o2][0] - e2[a2][0]) * (e2[a2][1] + e2[o2][1]), l2 = r2 + s2; + i2 += Math.abs(r2) >= Math.abs(s2) ? r2 - l2 + s2 : s2 - l2 + r2, r2 = l2; + } + r2 + i2 >= 0 != !!t2 && e2.reverse(); + } + h2.prototype.loadTile = function(t2, r2) { + var i2 = t2.uid, o2 = t2.encoding, n2 = t2.rawImageData, a2 = u && n2 instanceof u ? this.getImageData(n2) : n2, s2 = new e.DEMData(i2, a2, o2); + this.loaded = this.loaded || {}, this.loaded[i2] = s2, r2(null, s2); + }, h2.prototype.getImageData = function(t2) { + this.offscreenCanvas && this.offscreenCanvasContext || (this.offscreenCanvas = new OffscreenCanvas(t2.width, t2.height), this.offscreenCanvasContext = this.offscreenCanvas.getContext("2d")), this.offscreenCanvas.width = t2.width, this.offscreenCanvas.height = t2.height, this.offscreenCanvasContext.drawImage(t2, 0, 0, t2.width, t2.height); + var r2 = this.offscreenCanvasContext.getImageData(-1, -1, t2.width + 2, t2.height + 2); + return this.offscreenCanvasContext.clearRect(0, 0, this.offscreenCanvas.width, this.offscreenCanvas.height), new e.RGBAImage({ width: r2.width, height: r2.height }, r2.data); + }, h2.prototype.removeTile = function(e2) { + var t2 = this.loaded, r2 = e2.uid; + t2 && t2[r2] && delete t2[r2]; + }; + var f = e.vectorTile.VectorTileFeature.prototype.toGeoJSON, d = function(t2) { + this._feature = t2, this.extent = e.EXTENT, this.type = t2.type, this.properties = t2.tags, "id" in t2 && !isNaN(t2.id) && (this.id = parseInt(t2.id, 10)); + }; + d.prototype.loadGeometry = function() { + if (1 === this._feature.type) { + for (var t2 = [], r2 = 0, i2 = this._feature.geometry; r2 < i2.length; r2 += 1) { + var o2 = i2[r2]; + t2.push([new e.Point$1(o2[0], o2[1])]); } + return t2; } - toGeoJSON(e2, t2, o2) { - return f.call(this, e2, t2, o2); - } - } - class g { - constructor(t2) { - this.layers = { _geojsonTileLayer: this }, this.name = "_geojsonTileLayer", this.extent = e.EXTENT, this.length = t2.length, this._features = t2; - } - feature(e2) { - return new d(this._features[e2]); + for (var n2 = [], a2 = 0, s2 = this._feature.geometry; a2 < s2.length; a2 += 1) { + for (var l2 = [], u2 = 0, h3 = s2[a2]; u2 < h3.length; u2 += 1) { + var c3 = h3[u2]; + l2.push(new e.Point$1(c3[0], c3[1])); + } + n2.push(l2); } - } - var m = { exports: {} }, y2 = e.pointGeometry, v2 = e.vectorTile.VectorTileFeature, x = w; - function w(e2, t2) { + return n2; + }, d.prototype.toGeoJSON = function(e2, t2, r2) { + return f.call(this, e2, t2, r2); + }; + var g = function(t2) { + this.layers = { _geojsonTileLayer: this }, this.name = "_geojsonTileLayer", this.extent = e.EXTENT, this.length = t2.length, this._features = t2; + }; + g.prototype.feature = function(e2) { + return new d(this._features[e2]); + }; + var v2 = e.vectorTile.VectorTileFeature, m = y2; + function y2(e2, t2) { this.options = t2 || {}, this.features = e2, this.length = e2.length; } - function S(e2, t2) { + function x(e2, t2) { this.id = "number" == typeof e2.id ? e2.id : void 0, this.type = e2.type, this.rawGeometry = 1 === e2.type ? [e2.geometry] : e2.geometry, this.properties = e2.tags, this.extent = t2 || 4096; } - w.prototype.feature = function(e2) { - return new S(this.features[e2], this.options.extent); - }, S.prototype.loadGeometry = function() { - var e2 = this.rawGeometry; + y2.prototype.feature = function(e2) { + return new x(this.features[e2], this.options.extent); + }, x.prototype.loadGeometry = function() { + var t2 = this.rawGeometry; this.geometry = []; - for (var t2 = 0; t2 < e2.length; t2++) { - for (var o2 = e2[t2], i2 = [], r2 = 0; r2 < o2.length; r2++) - i2.push(new y2(o2[r2][0], o2[r2][1])); - this.geometry.push(i2); + for (var r2 = 0; r2 < t2.length; r2++) { + for (var i2 = t2[r2], o2 = [], n2 = 0; n2 < i2.length; n2++) + o2.push(new e.Point$1(i2[n2][0], i2[n2][1])); + this.geometry.push(o2); } return this.geometry; - }, S.prototype.bbox = function() { + }, x.prototype.bbox = function() { this.geometry || this.loadGeometry(); - for (var e2 = this.geometry, t2 = 1 / 0, o2 = -1 / 0, i2 = 1 / 0, r2 = -1 / 0, n2 = 0; n2 < e2.length; n2++) - for (var s2 = e2[n2], a2 = 0; a2 < s2.length; a2++) { - var l2 = s2[a2]; - t2 = Math.min(t2, l2.x), o2 = Math.max(o2, l2.x), i2 = Math.min(i2, l2.y), r2 = Math.max(r2, l2.y); - } - return [t2, i2, o2, r2]; - }, S.prototype.toGeoJSON = v2.prototype.toGeoJSON; - var M = e.pbf, I2 = x; - function b(e2) { - var t2 = new M(); - return function(e3, t3) { - for (var o2 in e3.layers) - t3.writeMessage(3, k, e3.layers[o2]); - }(e2, t2), t2.finish(); - } - function k(e2, t2) { - var o2; + for (var e2 = this.geometry, t2 = 1 / 0, r2 = -1 / 0, i2 = 1 / 0, o2 = -1 / 0, n2 = 0; n2 < e2.length; n2++) + for (var a2 = e2[n2], s2 = 0; s2 < a2.length; s2++) { + var l2 = a2[s2]; + t2 = Math.min(t2, l2.x), r2 = Math.max(r2, l2.x), i2 = Math.min(i2, l2.y), o2 = Math.max(o2, l2.y); + } + return [t2, i2, r2, o2]; + }, x.prototype.toGeoJSON = v2.prototype.toGeoJSON; + var w = I2, S = m; + function I2(t2) { + var r2 = new e.pbf(); + return function(e2, t3) { + for (var r3 in e2.layers) + t3.writeMessage(3, M, e2.layers[r3]); + }(t2, r2), r2.finish(); + } + function M(e2, t2) { + var r2; t2.writeVarintField(15, e2.version || 1), t2.writeStringField(1, e2.name || ""), t2.writeVarintField(5, e2.extent || 4096); var i2 = { keys: [], values: [], keycache: {}, valuecache: {} }; - for (o2 = 0; o2 < e2.length; o2++) - i2.feature = e2.feature(o2), t2.writeMessage(2, P, i2); - var r2 = i2.keys; - for (o2 = 0; o2 < r2.length; o2++) - t2.writeStringField(3, r2[o2]); + for (r2 = 0; r2 < e2.length; r2++) + i2.feature = e2.feature(r2), t2.writeMessage(2, b, i2); + var o2 = i2.keys; + for (r2 = 0; r2 < o2.length; r2++) + t2.writeStringField(3, o2[r2]); var n2 = i2.values; - for (o2 = 0; o2 < n2.length; o2++) - t2.writeMessage(4, L, n2[o2]); + for (r2 = 0; r2 < n2.length; r2++) + t2.writeMessage(4, C, n2[r2]); } - function P(e2, t2) { - var o2 = e2.feature; - void 0 !== o2.id && t2.writeVarintField(1, o2.id), t2.writeMessage(2, T, e2), t2.writeVarintField(3, o2.type), t2.writeMessage(4, D, o2); + function b(e2, t2) { + var r2 = e2.feature; + void 0 !== r2.id && t2.writeVarintField(1, r2.id), t2.writeMessage(2, _, e2), t2.writeVarintField(3, r2.type), t2.writeMessage(4, T, r2); } - function T(e2, t2) { - var o2 = e2.feature, i2 = e2.keys, r2 = e2.values, n2 = e2.keycache, s2 = e2.valuecache; - for (var a2 in o2.properties) { - var l2 = o2.properties[a2], c3 = n2[a2]; - if (null !== l2) { - void 0 === c3 && (i2.push(a2), n2[a2] = c3 = i2.length - 1), t2.writeVarint(c3); - var u2 = typeof l2; - "string" !== u2 && "boolean" !== u2 && "number" !== u2 && (l2 = JSON.stringify(l2)); - var h3 = u2 + ":" + l2, p3 = s2[h3]; - void 0 === p3 && (r2.push(l2), s2[h3] = p3 = r2.length - 1), t2.writeVarint(p3); - } + function _(e2, t2) { + var r2 = e2.feature, i2 = e2.keys, o2 = e2.values, n2 = e2.keycache, a2 = e2.valuecache; + for (var s2 in r2.properties) { + var l2 = n2[s2]; + void 0 === l2 && (i2.push(s2), n2[s2] = l2 = i2.length - 1), t2.writeVarint(l2); + var u2 = r2.properties[s2], h3 = typeof u2; + "string" !== h3 && "boolean" !== h3 && "number" !== h3 && (u2 = JSON.stringify(u2)); + var c3 = h3 + ":" + u2, p3 = a2[c3]; + void 0 === p3 && (o2.push(u2), a2[c3] = p3 = o2.length - 1), t2.writeVarint(p3); } } - function C(e2, t2) { + function k(e2, t2) { return (t2 << 3) + (7 & e2); } - function _(e2) { + function P(e2) { return e2 << 1 ^ e2 >> 31; } - function D(e2, t2) { - for (var o2 = e2.loadGeometry(), i2 = e2.type, r2 = 0, n2 = 0, s2 = o2.length, a2 = 0; a2 < s2; a2++) { - var l2 = o2[a2], c3 = 1; - 1 === i2 && (c3 = l2.length), t2.writeVarint(C(1, c3)); - for (var u2 = 3 === i2 ? l2.length - 1 : l2.length, h3 = 0; h3 < u2; h3++) { - 1 === h3 && 1 !== i2 && t2.writeVarint(C(2, u2 - 1)); - var p3 = l2[h3].x - r2, f2 = l2[h3].y - n2; - t2.writeVarint(_(p3)), t2.writeVarint(_(f2)), r2 += p3, n2 += f2; + function T(e2, t2) { + for (var r2 = e2.loadGeometry(), i2 = e2.type, o2 = 0, n2 = 0, a2 = r2.length, s2 = 0; s2 < a2; s2++) { + var l2 = r2[s2], u2 = 1; + 1 === i2 && (u2 = l2.length), t2.writeVarint(k(1, u2)); + for (var h3 = 3 === i2 ? l2.length - 1 : l2.length, c3 = 0; c3 < h3; c3++) { + 1 === c3 && 1 !== i2 && t2.writeVarint(k(2, h3 - 1)); + var p3 = l2[c3].x - o2, f2 = l2[c3].y - n2; + t2.writeVarint(P(p3)), t2.writeVarint(P(f2)), o2 += p3, n2 += f2; } - 3 === i2 && t2.writeVarint(C(7, 1)); + 3 === i2 && t2.writeVarint(k(7, 1)); } } - function L(e2, t2) { - var o2 = typeof e2; - "string" === o2 ? t2.writeStringField(1, e2) : "boolean" === o2 ? t2.writeBooleanField(7, e2) : "number" === o2 && (e2 % 1 != 0 ? t2.writeDoubleField(3, e2) : e2 < 0 ? t2.writeSVarintField(6, e2) : t2.writeVarintField(5, e2)); - } - function z(e2, t2, o2, i2, r2, n2) { - if (r2 - i2 <= o2) - return; - const s2 = i2 + r2 >> 1; - O2(e2, t2, s2, i2, r2, n2 % 2), z(e2, t2, o2, i2, s2 - 1, n2 + 1), z(e2, t2, o2, s2 + 1, r2, n2 + 1); - } - function O2(e2, t2, o2, i2, r2, n2) { - for (; r2 > i2; ) { - if (r2 - i2 > 600) { - const s3 = r2 - i2 + 1, a3 = o2 - i2 + 1, l3 = Math.log(s3), c3 = 0.5 * Math.exp(2 * l3 / 3), u2 = 0.5 * Math.sqrt(l3 * c3 * (s3 - c3) / s3) * (a3 - s3 / 2 < 0 ? -1 : 1); - O2(e2, t2, o2, Math.max(i2, Math.floor(o2 - a3 * c3 / s3 + u2)), Math.min(r2, Math.floor(o2 + (s3 - a3) * c3 / s3 + u2)), n2); - } - const s2 = t2[2 * o2 + n2]; - let a2 = i2, l2 = r2; - for (E(e2, t2, i2, o2), t2[2 * r2 + n2] > s2 && E(e2, t2, i2, r2); a2 < l2; ) { - for (E(e2, t2, a2, l2), a2++, l2--; t2[2 * a2 + n2] < s2; ) - a2++; - for (; t2[2 * l2 + n2] > s2; ) - l2--; - } - t2[2 * i2 + n2] === s2 ? E(e2, t2, i2, l2) : (l2++, E(e2, t2, l2, r2)), l2 <= o2 && (i2 = l2 + 1), o2 <= l2 && (r2 = l2 - 1); - } + function C(e2, t2) { + var r2 = typeof e2; + "string" === r2 ? t2.writeStringField(1, e2) : "boolean" === r2 ? t2.writeBooleanField(7, e2) : "number" === r2 && (e2 % 1 != 0 ? t2.writeDoubleField(3, e2) : e2 < 0 ? t2.writeSVarintField(6, e2) : t2.writeVarintField(5, e2)); } - function E(e2, t2, o2, i2) { - F(e2, o2, i2), F(t2, 2 * o2, 2 * i2), F(t2, 2 * o2 + 1, 2 * i2 + 1); + function D(e2, t2, r2, i2) { + L(e2, r2, i2), L(t2, 2 * r2, 2 * i2), L(t2, 2 * r2 + 1, 2 * i2 + 1); } - function F(e2, t2, o2) { - const i2 = e2[t2]; - e2[t2] = e2[o2], e2[o2] = i2; + function L(e2, t2, r2) { + var i2 = e2[t2]; + e2[t2] = e2[r2], e2[r2] = i2; } - function N(e2, t2, o2, i2) { - const r2 = e2 - o2, n2 = t2 - i2; - return r2 * r2 + n2 * n2; + function z(e2, t2, r2, i2) { + var o2 = e2 - r2, n2 = t2 - i2; + return o2 * o2 + n2 * n2; } - m.exports = b, m.exports.fromVectorTileJs = b, m.exports.fromGeojsonVt = function(e2, t2) { + w.fromVectorTileJs = I2, w.fromGeojsonVt = function(e2, t2) { t2 = t2 || {}; - var o2 = {}; + var r2 = {}; for (var i2 in e2) - o2[i2] = new I2(e2[i2].features, t2), o2[i2].name = i2, o2[i2].version = t2.version, o2[i2].extent = t2.extent; - return b({ layers: o2 }); - }, m.exports.GeoJSONWrapper = I2; - const A2 = (e2) => e2[0], B = (e2) => e2[1]; - class J { - constructor(e2, t2 = A2, o2 = B, i2 = 64, r2 = Float64Array) { - this.nodeSize = i2, this.points = e2; - const n2 = e2.length < 65536 ? Uint16Array : Uint32Array, s2 = this.ids = new n2(e2.length), a2 = this.coords = new r2(2 * e2.length); - for (let i3 = 0; i3 < e2.length; i3++) - s2[i3] = i3, a2[2 * i3] = t2(e2[i3]), a2[2 * i3 + 1] = o2(e2[i3]); - z(s2, a2, i2, 0, s2.length - 1, 0); - } - range(e2, t2, o2, i2) { - return function(e3, t3, o3, i3, r2, n2, s2) { - const a2 = [0, e3.length - 1, 0], l2 = []; - let c3, u2; - for (; a2.length; ) { - const h3 = a2.pop(), p3 = a2.pop(), f2 = a2.pop(); - if (p3 - f2 <= s2) { - for (let s3 = f2; s3 <= p3; s3++) - c3 = t3[2 * s3], u2 = t3[2 * s3 + 1], c3 >= o3 && c3 <= r2 && u2 >= i3 && u2 <= n2 && l2.push(e3[s3]); - continue; - } - const d2 = Math.floor((f2 + p3) / 2); - c3 = t3[2 * d2], u2 = t3[2 * d2 + 1], c3 >= o3 && c3 <= r2 && u2 >= i3 && u2 <= n2 && l2.push(e3[d2]); - const g2 = (h3 + 1) % 2; - (0 === h3 ? o3 <= c3 : i3 <= u2) && (a2.push(f2), a2.push(d2 - 1), a2.push(g2)), (0 === h3 ? r2 >= c3 : n2 >= u2) && (a2.push(d2 + 1), a2.push(p3), a2.push(g2)); - } - return l2; - }(this.ids, this.coords, e2, t2, o2, i2, this.nodeSize); - } - within(e2, t2, o2) { - return function(e3, t3, o3, i2, r2, n2) { - const s2 = [0, e3.length - 1, 0], a2 = [], l2 = r2 * r2; - for (; s2.length; ) { - const c3 = s2.pop(), u2 = s2.pop(), h3 = s2.pop(); - if (u2 - h3 <= n2) { - for (let r3 = h3; r3 <= u2; r3++) - N(t3[2 * r3], t3[2 * r3 + 1], o3, i2) <= l2 && a2.push(e3[r3]); - continue; + r2[i2] = new m(e2[i2].features, t2), r2[i2].name = i2, r2[i2].version = t2.version, r2[i2].extent = t2.extent; + return I2({ layers: r2 }); + }, w.GeoJSONWrapper = S; + var O2 = function(e2) { + return e2[0]; + }, E = function(e2) { + return e2[1]; + }, F = function(e2, t2, r2, i2, o2) { + void 0 === t2 && (t2 = O2), void 0 === r2 && (r2 = E), void 0 === i2 && (i2 = 64), void 0 === o2 && (o2 = Float64Array), this.nodeSize = i2, this.points = e2; + for (var n2 = e2.length < 65536 ? Uint16Array : Uint32Array, a2 = this.ids = new n2(e2.length), s2 = this.coords = new o2(2 * e2.length), l2 = 0; l2 < e2.length; l2++) + a2[l2] = l2, s2[2 * l2] = t2(e2[l2]), s2[2 * l2 + 1] = r2(e2[l2]); + !function e3(t3, r3, i3, o3, n3, a3) { + if (!(n3 - o3 <= i3)) { + var s3 = o3 + n3 >> 1; + !function e4(t4, r4, i4, o4, n4, a4) { + for (; n4 > o4; ) { + if (n4 - o4 > 600) { + var s4 = n4 - o4 + 1, l3 = i4 - o4 + 1, u2 = Math.log(s4), h3 = 0.5 * Math.exp(2 * u2 / 3), c3 = 0.5 * Math.sqrt(u2 * h3 * (s4 - h3) / s4) * (l3 - s4 / 2 < 0 ? -1 : 1); + e4(t4, r4, i4, Math.max(o4, Math.floor(i4 - l3 * h3 / s4 + c3)), Math.min(n4, Math.floor(i4 + (s4 - l3) * h3 / s4 + c3)), a4); + } + var p3 = r4[2 * i4 + a4], f2 = o4, d2 = n4; + for (D(t4, r4, o4, i4), r4[2 * n4 + a4] > p3 && D(t4, r4, o4, n4); f2 < d2; ) { + for (D(t4, r4, f2, d2), f2++, d2--; r4[2 * f2 + a4] < p3; ) + f2++; + for (; r4[2 * d2 + a4] > p3; ) + d2--; + } + r4[2 * o4 + a4] === p3 ? D(t4, r4, o4, d2) : D(t4, r4, ++d2, n4), d2 <= i4 && (o4 = d2 + 1), i4 <= d2 && (n4 = d2 - 1); } - const p3 = Math.floor((h3 + u2) / 2), f2 = t3[2 * p3], d2 = t3[2 * p3 + 1]; - N(f2, d2, o3, i2) <= l2 && a2.push(e3[p3]); - const g2 = (c3 + 1) % 2; - (0 === c3 ? o3 - r2 <= f2 : i2 - r2 <= d2) && (s2.push(h3), s2.push(p3 - 1), s2.push(g2)), (0 === c3 ? o3 + r2 >= f2 : i2 + r2 >= d2) && (s2.push(p3 + 1), s2.push(u2), s2.push(g2)); - } - return a2; - }(this.ids, this.coords, e2, t2, o2, this.nodeSize); - } - } - const Z2 = { minZoom: 0, maxZoom: 16, minPoints: 2, radius: 40, extent: 512, nodeSize: 64, log: false, generateId: false, reduce: null, map: (e2) => e2 }, G = Math.fround || (j = new Float32Array(1), (e2) => (j[0] = +e2, j[0])); - var j; - class Y { - constructor(e2) { - this.options = H(Object.create(Z2), e2), this.trees = new Array(this.options.maxZoom + 1); - } - load(e2) { - const { log: t2, minZoom: o2, maxZoom: i2, nodeSize: r2 } = this.options; - t2 && console.time("total time"); - const n2 = `prepare ${e2.length} points`; - t2 && console.time(n2), this.points = e2; - let s2 = []; - for (let t3 = 0; t3 < e2.length; t3++) - e2[t3].geometry && s2.push(X(e2[t3], t3)); - this.trees[i2 + 1] = new J(s2, K, Q, r2, Float32Array), t2 && console.timeEnd(n2); - for (let e3 = i2; e3 >= o2; e3--) { - const o3 = +Date.now(); - s2 = this._cluster(s2, e3), this.trees[e3] = new J(s2, K, Q, r2, Float32Array), t2 && console.log("z%d: %d clusters in %dms", e3, s2.length, +Date.now() - o3); - } - return t2 && console.timeEnd("total time"), this; - } - getClusters(e2, t2) { - let o2 = ((e2[0] + 180) % 360 + 360) % 360 - 180; - const i2 = Math.max(-90, Math.min(90, e2[1])); - let r2 = 180 === e2[2] ? 180 : ((e2[2] + 180) % 360 + 360) % 360 - 180; - const n2 = Math.max(-90, Math.min(90, e2[3])); - if (e2[2] - e2[0] >= 360) - o2 = -180, r2 = 180; - else if (o2 > r2) { - const e3 = this.getClusters([o2, i2, 180, n2], t2), s3 = this.getClusters([-180, i2, r2, n2], t2); - return e3.concat(s3); - } - const s2 = this.trees[this._limitZoom(t2)], a2 = s2.range($(o2), q(n2), $(r2), q(i2)), l2 = []; - for (const e3 of a2) { - const t3 = s2.points[e3]; - l2.push(t3.numPoints ? R(t3) : this.points[t3.index]); - } - return l2; - } - getChildren(e2) { - const t2 = this._getOriginId(e2), o2 = this._getOriginZoom(e2), i2 = "No cluster with the specified id.", r2 = this.trees[o2]; - if (!r2) - throw new Error(i2); - const n2 = r2.points[t2]; - if (!n2) - throw new Error(i2); - const s2 = this.options.radius / (this.options.extent * Math.pow(2, o2 - 1)), a2 = r2.within(n2.x, n2.y, s2), l2 = []; - for (const t3 of a2) { - const o3 = r2.points[t3]; - o3.parentId === e2 && l2.push(o3.numPoints ? R(o3) : this.points[o3.index]); - } - if (0 === l2.length) - throw new Error(i2); - return l2; - } - getLeaves(e2, t2, o2) { - const i2 = []; - return this._appendLeaves(i2, e2, t2 = t2 || 10, o2 = o2 || 0, 0), i2; - } - getTile(e2, t2, o2) { - const i2 = this.trees[this._limitZoom(e2)], r2 = Math.pow(2, e2), { extent: n2, radius: s2 } = this.options, a2 = s2 / n2, l2 = (o2 - a2) / r2, c3 = (o2 + 1 + a2) / r2, u2 = { features: [] }; - return this._addTileFeatures(i2.range((t2 - a2) / r2, l2, (t2 + 1 + a2) / r2, c3), i2.points, t2, o2, r2, u2), 0 === t2 && this._addTileFeatures(i2.range(1 - a2 / r2, l2, 1, c3), i2.points, r2, o2, r2, u2), t2 === r2 - 1 && this._addTileFeatures(i2.range(0, l2, a2 / r2, c3), i2.points, -1, o2, r2, u2), u2.features.length ? u2 : null; - } - getClusterExpansionZoom(e2) { - let t2 = this._getOriginZoom(e2) - 1; - for (; t2 <= this.options.maxZoom; ) { - const o2 = this.getChildren(e2); - if (t2++, 1 !== o2.length) - break; - e2 = o2[0].properties.cluster_id; - } - return t2; - } - _appendLeaves(e2, t2, o2, i2, r2) { - const n2 = this.getChildren(t2); - for (const t3 of n2) { - const n3 = t3.properties; - if (n3 && n3.cluster ? r2 + n3.point_count <= i2 ? r2 += n3.point_count : r2 = this._appendLeaves(e2, n3.cluster_id, o2, i2, r2) : r2 < i2 ? r2++ : e2.push(t3), e2.length === o2) - break; + }(t3, r3, s3, o3, n3, a3 % 2), e3(t3, r3, i3, o3, s3 - 1, a3 + 1), e3(t3, r3, i3, s3 + 1, n3, a3 + 1); } - return r2; - } - _addTileFeatures(e2, t2, o2, i2, r2, n2) { - for (const s2 of e2) { - const e3 = t2[s2], a2 = e3.numPoints; - let l2, c3, u2; - if (a2) - l2 = W(e3), c3 = e3.x, u2 = e3.y; + }(a2, s2, i2, 0, a2.length - 1, 0); + }; + F.prototype.range = function(e2, t2, r2, i2) { + return function(e3, t3, r3, i3, o2, n2, a2) { + for (var s2, l2, u2 = [0, e3.length - 1, 0], h3 = []; u2.length; ) { + var c3 = u2.pop(), p3 = u2.pop(), f2 = u2.pop(); + if (p3 - f2 <= a2) + for (var d2 = f2; d2 <= p3; d2++) + l2 = t3[2 * d2 + 1], (s2 = t3[2 * d2]) >= r3 && s2 <= o2 && l2 >= i3 && l2 <= n2 && h3.push(e3[d2]); else { - const t3 = this.points[e3.index]; - l2 = t3.properties, c3 = $(t3.geometry.coordinates[0]), u2 = q(t3.geometry.coordinates[1]); + var g2 = Math.floor((f2 + p3) / 2); + l2 = t3[2 * g2 + 1], (s2 = t3[2 * g2]) >= r3 && s2 <= o2 && l2 >= i3 && l2 <= n2 && h3.push(e3[g2]); + var v3 = (c3 + 1) % 2; + (0 === c3 ? r3 <= s2 : i3 <= l2) && (u2.push(f2), u2.push(g2 - 1), u2.push(v3)), (0 === c3 ? o2 >= s2 : n2 >= l2) && (u2.push(g2 + 1), u2.push(p3), u2.push(v3)); } - const h3 = { type: 1, geometry: [[Math.round(this.options.extent * (c3 * r2 - o2)), Math.round(this.options.extent * (u2 * r2 - i2))]], tags: l2 }; - let p3; - a2 ? p3 = e3.id : this.options.generateId ? p3 = e3.index : this.points[e3.index].id && (p3 = this.points[e3.index].id), void 0 !== p3 && (h3.id = p3), n2.features.push(h3); } - } - _limitZoom(e2) { - return Math.max(this.options.minZoom, Math.min(Math.floor(+e2), this.options.maxZoom + 1)); - } - _cluster(e2, t2) { - const o2 = [], { radius: i2, extent: r2, reduce: n2, minPoints: s2 } = this.options, a2 = i2 / (r2 * Math.pow(2, t2)); - for (let i3 = 0; i3 < e2.length; i3++) { - const r3 = e2[i3]; - if (r3.zoom <= t2) - continue; - r3.zoom = t2; - const l2 = this.trees[t2 + 1], c3 = l2.within(r3.x, r3.y, a2), u2 = r3.numPoints || 1; - let h3 = u2; - for (const e3 of c3) { - const o3 = l2.points[e3]; - o3.zoom > t2 && (h3 += o3.numPoints || 1); + return h3; + }(this.ids, this.coords, e2, t2, r2, i2, this.nodeSize); + }, F.prototype.within = function(e2, t2, r2) { + return function(e3, t3, r3, i2, o2, n2) { + for (var a2 = [0, e3.length - 1, 0], s2 = [], l2 = o2 * o2; a2.length; ) { + var u2 = a2.pop(), h3 = a2.pop(), c3 = a2.pop(); + if (h3 - c3 <= n2) + for (var p3 = c3; p3 <= h3; p3++) + z(t3[2 * p3], t3[2 * p3 + 1], r3, i2) <= l2 && s2.push(e3[p3]); + else { + var f2 = Math.floor((c3 + h3) / 2), d2 = t3[2 * f2], g2 = t3[2 * f2 + 1]; + z(d2, g2, r3, i2) <= l2 && s2.push(e3[f2]); + var v3 = (u2 + 1) % 2; + (0 === u2 ? r3 - o2 <= d2 : i2 - o2 <= g2) && (a2.push(c3), a2.push(f2 - 1), a2.push(v3)), (0 === u2 ? r3 + o2 >= d2 : i2 + o2 >= g2) && (a2.push(f2 + 1), a2.push(h3), a2.push(v3)); } - if (h3 > u2 && h3 >= s2) { - let e3 = r3.x * u2, s3 = r3.y * u2, a3 = n2 && u2 > 1 ? this._map(r3, true) : null; - const p3 = (i3 << 5) + (t2 + 1) + this.points.length; - for (const o3 of c3) { - const i4 = l2.points[o3]; - if (i4.zoom <= t2) - continue; - i4.zoom = t2; - const c4 = i4.numPoints || 1; - e3 += i4.x * c4, s3 += i4.y * c4, i4.parentId = p3, n2 && (a3 || (a3 = this._map(r3, true)), n2(a3, this._map(i4))); - } - r3.parentId = p3, o2.push(V2(e3 / h3, s3 / h3, p3, h3, a3)); - } else if (o2.push(r3), h3 > 1) - for (const e3 of c3) { - const i4 = l2.points[e3]; - i4.zoom <= t2 || (i4.zoom = t2, o2.push(i4)); - } } - return o2; - } - _getOriginId(e2) { - return e2 - this.points.length >> 5; - } - _getOriginZoom(e2) { - return (e2 - this.points.length) % 32; - } - _map(e2, t2) { - if (e2.numPoints) - return t2 ? H({}, e2.properties) : e2.properties; - const o2 = this.points[e2.index].properties, i2 = this.options.map(o2); - return t2 && i2 === o2 ? H({}, i2) : i2; - } - } - function V2(e2, t2, o2, i2, r2) { - return { x: G(e2), y: G(t2), zoom: 1 / 0, id: o2, parentId: -1, numPoints: i2, properties: r2 }; + return s2; + }(this.ids, this.coords, e2, t2, r2, this.nodeSize); + }; + var N = { minZoom: 0, maxZoom: 16, minPoints: 2, radius: 40, extent: 512, nodeSize: 64, log: false, generateId: false, reduce: null, map: function(e2) { + return e2; + } }, J = function(e2) { + this.options = V2(Object.create(N), e2), this.trees = new Array(this.options.maxZoom + 1); + }; + function Z2(e2, t2, r2, i2, o2) { + return { x: e2, y: t2, zoom: 1 / 0, id: r2, parentId: -1, numPoints: i2, properties: o2 }; } - function X(e2, t2) { - const [o2, i2] = e2.geometry.coordinates; - return { x: G($(o2)), y: G(q(i2)), zoom: 1 / 0, index: t2, parentId: -1 }; + function A2(e2, t2) { + var r2 = e2.geometry.coordinates, i2 = r2[1]; + return { x: Y(r2[0]), y: j(i2), zoom: 1 / 0, index: t2, parentId: -1 }; } - function R(e2) { - return { type: "Feature", id: e2.id, properties: W(e2), geometry: { type: "Point", coordinates: [(t2 = e2.x, 360 * (t2 - 0.5)), U(e2.y)] } }; - var t2; + function B(e2) { + return { type: "Feature", id: e2.id, properties: G(e2), geometry: { type: "Point", coordinates: [(i2 = e2.x, 360 * (i2 - 0.5)), (t2 = e2.y, r2 = (180 - 360 * t2) * Math.PI / 180, 360 * Math.atan(Math.exp(r2)) / Math.PI - 90)] } }; + var t2, r2, i2; } - function W(e2) { - const t2 = e2.numPoints, o2 = t2 >= 1e4 ? `${Math.round(t2 / 1e3)}k` : t2 >= 1e3 ? Math.round(t2 / 100) / 10 + "k" : t2; - return H(H({}, e2.properties), { cluster: true, cluster_id: e2.id, point_count: t2, point_count_abbreviated: o2 }); + function G(e2) { + var t2 = e2.numPoints, r2 = t2 >= 1e4 ? Math.round(t2 / 1e3) + "k" : t2 >= 1e3 ? Math.round(t2 / 100) / 10 + "k" : t2; + return V2(V2({}, e2.properties), { cluster: true, cluster_id: e2.id, point_count: t2, point_count_abbreviated: r2 }); } - function $(e2) { + function Y(e2) { return e2 / 360 + 0.5; } - function q(e2) { - const t2 = Math.sin(e2 * Math.PI / 180), o2 = 0.5 - 0.25 * Math.log((1 + t2) / (1 - t2)) / Math.PI; - return o2 < 0 ? 0 : o2 > 1 ? 1 : o2; + function j(e2) { + var t2 = Math.sin(e2 * Math.PI / 180), r2 = 0.5 - 0.25 * Math.log((1 + t2) / (1 - t2)) / Math.PI; + return r2 < 0 ? 0 : r2 > 1 ? 1 : r2; } - function U(e2) { - const t2 = (180 - 360 * e2) * Math.PI / 180; - return 360 * Math.atan(Math.exp(t2)) / Math.PI - 90; - } - function H(e2, t2) { - for (const o2 in t2) - e2[o2] = t2[o2]; + function V2(e2, t2) { + for (var r2 in t2) + e2[r2] = t2[r2]; return e2; } - function K(e2) { + function X(e2) { return e2.x; } - function Q(e2) { + function W(e2) { return e2.y; } - function ee(e2, t2, o2, i2) { - for (var r2, n2 = i2, s2 = o2 - t2 >> 1, a2 = o2 - t2, l2 = e2[t2], c3 = e2[t2 + 1], u2 = e2[o2], h3 = e2[o2 + 1], p3 = t2 + 3; p3 < o2; p3 += 3) { - var f2 = te(e2[p3], e2[p3 + 1], l2, c3, u2, h3); - if (f2 > n2) - r2 = p3, n2 = f2; - else if (f2 === n2) { - var d2 = Math.abs(p3 - s2); - d2 < a2 && (r2 = p3, a2 = d2); - } - } - n2 > i2 && (r2 - t2 > 3 && ee(e2, t2, r2, i2), e2[r2 + 2] = n2, o2 - r2 > 3 && ee(e2, r2, o2, i2)); - } - function te(e2, t2, o2, i2, r2, n2) { - var s2 = r2 - o2, a2 = n2 - i2; - if (0 !== s2 || 0 !== a2) { - var l2 = ((e2 - o2) * s2 + (t2 - i2) * a2) / (s2 * s2 + a2 * a2); - l2 > 1 ? (o2 = r2, i2 = n2) : l2 > 0 && (o2 += s2 * l2, i2 += a2 * l2); + function R(e2, t2, r2, i2, o2, n2) { + var a2 = o2 - r2, s2 = n2 - i2; + if (0 !== a2 || 0 !== s2) { + var l2 = ((e2 - r2) * a2 + (t2 - i2) * s2) / (a2 * a2 + s2 * s2); + l2 > 1 ? (r2 = o2, i2 = n2) : l2 > 0 && (r2 += a2 * l2, i2 += s2 * l2); } - return (s2 = e2 - o2) * s2 + (a2 = t2 - i2) * a2; + return (a2 = e2 - r2) * a2 + (s2 = t2 - i2) * s2; } - function oe(e2, t2, o2, i2) { - var r2 = { id: void 0 === e2 ? null : e2, type: t2, geometry: o2, tags: i2, minX: 1 / 0, minY: 1 / 0, maxX: -1 / 0, maxY: -1 / 0 }; + function q(e2, t2, r2, i2) { + var o2 = { id: void 0 === e2 ? null : e2, type: t2, geometry: r2, tags: i2, minX: 1 / 0, minY: 1 / 0, maxX: -1 / 0, maxY: -1 / 0 }; return function(e3) { - var t3 = e3.geometry, o3 = e3.type; - if ("Point" === o3 || "MultiPoint" === o3 || "LineString" === o3) - ie(e3, t3); - else if ("Polygon" === o3 || "MultiLineString" === o3) + var t3 = e3.geometry, r3 = e3.type; + if ("Point" === r3 || "MultiPoint" === r3 || "LineString" === r3) + U(e3, t3); + else if ("Polygon" === r3 || "MultiLineString" === r3) for (var i3 = 0; i3 < t3.length; i3++) - ie(e3, t3[i3]); - else if ("MultiPolygon" === o3) + U(e3, t3[i3]); + else if ("MultiPolygon" === r3) for (i3 = 0; i3 < t3.length; i3++) - for (var r3 = 0; r3 < t3[i3].length; r3++) - ie(e3, t3[i3][r3]); - }(r2), r2; + for (var o3 = 0; o3 < t3[i3].length; o3++) + U(e3, t3[i3][o3]); + }(o2), o2; } - function ie(e2, t2) { - for (var o2 = 0; o2 < t2.length; o2 += 3) - e2.minX = Math.min(e2.minX, t2[o2]), e2.minY = Math.min(e2.minY, t2[o2 + 1]), e2.maxX = Math.max(e2.maxX, t2[o2]), e2.maxY = Math.max(e2.maxY, t2[o2 + 1]); + function U(e2, t2) { + for (var r2 = 0; r2 < t2.length; r2 += 3) + e2.minX = Math.min(e2.minX, t2[r2]), e2.minY = Math.min(e2.minY, t2[r2 + 1]), e2.maxX = Math.max(e2.maxX, t2[r2]), e2.maxY = Math.max(e2.maxY, t2[r2 + 1]); } - function re(e2, t2, o2, i2) { + function $(e2, t2, r2, i2) { if (t2.geometry) { - var r2 = t2.geometry.coordinates, n2 = t2.geometry.type, s2 = Math.pow(o2.tolerance / ((1 << o2.maxZoom) * o2.extent), 2), a2 = [], l2 = t2.id; - if (o2.promoteId ? l2 = t2.properties[o2.promoteId] : o2.generateId && (l2 = i2 || 0), "Point" === n2) - ne(r2, a2); + var o2 = t2.geometry.coordinates, n2 = t2.geometry.type, a2 = Math.pow(r2.tolerance / ((1 << r2.maxZoom) * r2.extent), 2), s2 = [], l2 = t2.id; + if (r2.promoteId ? l2 = t2.properties[r2.promoteId] : r2.generateId && (l2 = i2 || 0), "Point" === n2) + H(o2, s2); else if ("MultiPoint" === n2) - for (var c3 = 0; c3 < r2.length; c3++) - ne(r2[c3], a2); + for (var u2 = 0; u2 < o2.length; u2++) + H(o2[u2], s2); else if ("LineString" === n2) - se(r2, a2, s2, false); + K(o2, s2, a2, false); else if ("MultiLineString" === n2) { - if (o2.lineMetrics) { - for (c3 = 0; c3 < r2.length; c3++) - se(r2[c3], a2 = [], s2, false), e2.push(oe(l2, "LineString", a2, t2.properties)); + if (r2.lineMetrics) { + for (u2 = 0; u2 < o2.length; u2++) + K(o2[u2], s2 = [], a2, false), e2.push(q(l2, "LineString", s2, t2.properties)); return; } - ae(r2, a2, s2, false); + Q(o2, s2, a2, false); } else if ("Polygon" === n2) - ae(r2, a2, s2, true); + Q(o2, s2, a2, true); else { if ("MultiPolygon" !== n2) { if ("GeometryCollection" === n2) { - for (c3 = 0; c3 < t2.geometry.geometries.length; c3++) - re(e2, { id: l2, geometry: t2.geometry.geometries[c3], properties: t2.properties }, o2, i2); + for (u2 = 0; u2 < t2.geometry.geometries.length; u2++) + $(e2, { id: l2, geometry: t2.geometry.geometries[u2], properties: t2.properties }, r2, i2); return; } throw new Error("Input data is not a valid GeoJSON object."); } - for (c3 = 0; c3 < r2.length; c3++) { - var u2 = []; - ae(r2[c3], u2, s2, true), a2.push(u2); + for (u2 = 0; u2 < o2.length; u2++) { + var h3 = []; + Q(o2[u2], h3, a2, true), s2.push(h3); } } - e2.push(oe(l2, n2, a2, t2.properties)); + e2.push(q(l2, n2, s2, t2.properties)); } } - function ne(e2, t2) { - t2.push(le(e2[0])), t2.push(ce(e2[1])), t2.push(0); - } - function se(e2, t2, o2, i2) { - for (var r2, n2, s2 = 0, a2 = 0; a2 < e2.length; a2++) { - var l2 = le(e2[a2][0]), c3 = ce(e2[a2][1]); - t2.push(l2), t2.push(c3), t2.push(0), a2 > 0 && (s2 += i2 ? (r2 * c3 - l2 * n2) / 2 : Math.sqrt(Math.pow(l2 - r2, 2) + Math.pow(c3 - n2, 2))), r2 = l2, n2 = c3; - } - var u2 = t2.length - 3; - t2[2] = 1, ee(t2, 0, u2, o2), t2[u2 + 2] = 1, t2.size = Math.abs(s2), t2.start = 0, t2.end = t2.size; + function H(e2, t2) { + t2.push(ee(e2[0])), t2.push(te(e2[1])), t2.push(0); + } + function K(e2, t2, r2, i2) { + for (var o2, n2, a2 = 0, s2 = 0; s2 < e2.length; s2++) { + var l2 = ee(e2[s2][0]), u2 = te(e2[s2][1]); + t2.push(l2), t2.push(u2), t2.push(0), s2 > 0 && (a2 += i2 ? (o2 * u2 - l2 * n2) / 2 : Math.sqrt(Math.pow(l2 - o2, 2) + Math.pow(u2 - n2, 2))), o2 = l2, n2 = u2; + } + var h3 = t2.length - 3; + t2[2] = 1, function e3(t3, r3, i3, o3) { + for (var n3, a3 = o3, s3 = i3 - r3 >> 1, l3 = i3 - r3, u3 = t3[r3], h4 = t3[r3 + 1], c3 = t3[i3], p3 = t3[i3 + 1], f2 = r3 + 3; f2 < i3; f2 += 3) { + var d2 = R(t3[f2], t3[f2 + 1], u3, h4, c3, p3); + if (d2 > a3) + n3 = f2, a3 = d2; + else if (d2 === a3) { + var g2 = Math.abs(f2 - s3); + g2 < l3 && (n3 = f2, l3 = g2); + } + } + a3 > o3 && (n3 - r3 > 3 && e3(t3, r3, n3, o3), t3[n3 + 2] = a3, i3 - n3 > 3 && e3(t3, n3, i3, o3)); + }(t2, 0, h3, r2), t2[h3 + 2] = 1, t2.size = Math.abs(a2), t2.start = 0, t2.end = t2.size; } - function ae(e2, t2, o2, i2) { - for (var r2 = 0; r2 < e2.length; r2++) { + function Q(e2, t2, r2, i2) { + for (var o2 = 0; o2 < e2.length; o2++) { var n2 = []; - se(e2[r2], n2, o2, i2), t2.push(n2); + K(e2[o2], n2, r2, i2), t2.push(n2); } } - function le(e2) { + function ee(e2) { return e2 / 360 + 0.5; } - function ce(e2) { - var t2 = Math.sin(e2 * Math.PI / 180), o2 = 0.5 - 0.25 * Math.log((1 + t2) / (1 - t2)) / Math.PI; - return o2 < 0 ? 0 : o2 > 1 ? 1 : o2; + function te(e2) { + var t2 = Math.sin(e2 * Math.PI / 180), r2 = 0.5 - 0.25 * Math.log((1 + t2) / (1 - t2)) / Math.PI; + return r2 < 0 ? 0 : r2 > 1 ? 1 : r2; } - function ue(e2, t2, o2, i2, r2, n2, s2, a2) { - if (i2 /= t2, n2 >= (o2 /= t2) && s2 < i2) + function re(e2, t2, r2, i2, o2, n2, a2, s2) { + if (i2 /= t2, n2 >= (r2 /= t2) && a2 < i2) return e2; - if (s2 < o2 || n2 >= i2) + if (a2 < r2 || n2 >= i2) return null; - for (var l2 = [], c3 = 0; c3 < e2.length; c3++) { - var u2 = e2[c3], h3 = u2.geometry, p3 = u2.type, f2 = 0 === r2 ? u2.minX : u2.minY, d2 = 0 === r2 ? u2.maxX : u2.maxY; - if (f2 >= o2 && d2 < i2) - l2.push(u2); - else if (!(d2 < o2 || f2 >= i2)) { + for (var l2 = [], u2 = 0; u2 < e2.length; u2++) { + var h3 = e2[u2], c3 = h3.geometry, p3 = h3.type, f2 = 0 === o2 ? h3.minX : h3.minY, d2 = 0 === o2 ? h3.maxX : h3.maxY; + if (f2 >= r2 && d2 < i2) + l2.push(h3); + else if (!(d2 < r2 || f2 >= i2)) { var g2 = []; if ("Point" === p3 || "MultiPoint" === p3) - he(h3, g2, o2, i2, r2); + ie(c3, g2, r2, i2, o2); else if ("LineString" === p3) - pe(h3, g2, o2, i2, r2, false, a2.lineMetrics); + oe(c3, g2, r2, i2, o2, false, s2.lineMetrics); else if ("MultiLineString" === p3) - de(h3, g2, o2, i2, r2, false); + ae(c3, g2, r2, i2, o2, false); else if ("Polygon" === p3) - de(h3, g2, o2, i2, r2, true); + ae(c3, g2, r2, i2, o2, true); else if ("MultiPolygon" === p3) - for (var m2 = 0; m2 < h3.length; m2++) { - var y3 = []; - de(h3[m2], y3, o2, i2, r2, true), y3.length && g2.push(y3); + for (var v3 = 0; v3 < c3.length; v3++) { + var m2 = []; + ae(c3[v3], m2, r2, i2, o2, true), m2.length && g2.push(m2); } if (g2.length) { - if (a2.lineMetrics && "LineString" === p3) { - for (m2 = 0; m2 < g2.length; m2++) - l2.push(oe(u2.id, p3, g2[m2], u2.tags)); + if (s2.lineMetrics && "LineString" === p3) { + for (v3 = 0; v3 < g2.length; v3++) + l2.push(q(h3.id, p3, g2[v3], h3.tags)); continue; } - "LineString" !== p3 && "MultiLineString" !== p3 || (1 === g2.length ? (p3 = "LineString", g2 = g2[0]) : p3 = "MultiLineString"), "Point" !== p3 && "MultiPoint" !== p3 || (p3 = 3 === g2.length ? "Point" : "MultiPoint"), l2.push(oe(u2.id, p3, g2, u2.tags)); + "LineString" !== p3 && "MultiLineString" !== p3 || (1 === g2.length ? (p3 = "LineString", g2 = g2[0]) : p3 = "MultiLineString"), "Point" !== p3 && "MultiPoint" !== p3 || (p3 = 3 === g2.length ? "Point" : "MultiPoint"), l2.push(q(h3.id, p3, g2, h3.tags)); } } } return l2.length ? l2 : null; } - function he(e2, t2, o2, i2, r2) { + function ie(e2, t2, r2, i2, o2) { for (var n2 = 0; n2 < e2.length; n2 += 3) { - var s2 = e2[n2 + r2]; - s2 >= o2 && s2 <= i2 && (t2.push(e2[n2]), t2.push(e2[n2 + 1]), t2.push(e2[n2 + 2])); + var a2 = e2[n2 + o2]; + a2 >= r2 && a2 <= i2 && (t2.push(e2[n2]), t2.push(e2[n2 + 1]), t2.push(e2[n2 + 2])); } } - function pe(e2, t2, o2, i2, r2, n2, s2) { - for (var a2, l2, c3 = fe(e2), u2 = 0 === r2 ? me : ye, h3 = e2.start, p3 = 0; p3 < e2.length - 3; p3 += 3) { - var f2 = e2[p3], d2 = e2[p3 + 1], g2 = e2[p3 + 2], m2 = e2[p3 + 3], y3 = e2[p3 + 4], v3 = 0 === r2 ? f2 : d2, x2 = 0 === r2 ? m2 : y3, w2 = false; - s2 && (a2 = Math.sqrt(Math.pow(f2 - m2, 2) + Math.pow(d2 - y3, 2))), v3 < o2 ? x2 > o2 && (l2 = u2(c3, f2, d2, m2, y3, o2), s2 && (c3.start = h3 + a2 * l2)) : v3 > i2 ? x2 < i2 && (l2 = u2(c3, f2, d2, m2, y3, i2), s2 && (c3.start = h3 + a2 * l2)) : ge(c3, f2, d2, g2), x2 < o2 && v3 >= o2 && (l2 = u2(c3, f2, d2, m2, y3, o2), w2 = true), x2 > i2 && v3 <= i2 && (l2 = u2(c3, f2, d2, m2, y3, i2), w2 = true), !n2 && w2 && (s2 && (c3.end = h3 + a2 * l2), t2.push(c3), c3 = fe(e2)), s2 && (h3 += a2); + function oe(e2, t2, r2, i2, o2, n2, a2) { + for (var s2, l2, u2 = ne(e2), h3 = 0 === o2 ? le : ue, c3 = e2.start, p3 = 0; p3 < e2.length - 3; p3 += 3) { + var f2 = e2[p3], d2 = e2[p3 + 1], g2 = e2[p3 + 2], v3 = e2[p3 + 3], m2 = e2[p3 + 4], y3 = 0 === o2 ? f2 : d2, x2 = 0 === o2 ? v3 : m2, w2 = false; + a2 && (s2 = Math.sqrt(Math.pow(f2 - v3, 2) + Math.pow(d2 - m2, 2))), y3 < r2 ? x2 > r2 && (l2 = h3(u2, f2, d2, v3, m2, r2), a2 && (u2.start = c3 + s2 * l2)) : y3 > i2 ? x2 < i2 && (l2 = h3(u2, f2, d2, v3, m2, i2), a2 && (u2.start = c3 + s2 * l2)) : se(u2, f2, d2, g2), x2 < r2 && y3 >= r2 && (l2 = h3(u2, f2, d2, v3, m2, r2), w2 = true), x2 > i2 && y3 <= i2 && (l2 = h3(u2, f2, d2, v3, m2, i2), w2 = true), !n2 && w2 && (a2 && (u2.end = c3 + s2 * l2), t2.push(u2), u2 = ne(e2)), a2 && (c3 += s2); } var S2 = e2.length - 3; - f2 = e2[S2], d2 = e2[S2 + 1], g2 = e2[S2 + 2], (v3 = 0 === r2 ? f2 : d2) >= o2 && v3 <= i2 && ge(c3, f2, d2, g2), S2 = c3.length - 3, n2 && S2 >= 3 && (c3[S2] !== c3[0] || c3[S2 + 1] !== c3[1]) && ge(c3, c3[0], c3[1], c3[2]), c3.length && t2.push(c3); + f2 = e2[S2], d2 = e2[S2 + 1], g2 = e2[S2 + 2], (y3 = 0 === o2 ? f2 : d2) >= r2 && y3 <= i2 && se(u2, f2, d2, g2), S2 = u2.length - 3, n2 && S2 >= 3 && (u2[S2] !== u2[0] || u2[S2 + 1] !== u2[1]) && se(u2, u2[0], u2[1], u2[2]), u2.length && t2.push(u2); } - function fe(e2) { + function ne(e2) { var t2 = []; return t2.size = e2.size, t2.start = e2.start, t2.end = e2.end, t2; } - function de(e2, t2, o2, i2, r2, n2) { - for (var s2 = 0; s2 < e2.length; s2++) - pe(e2[s2], t2, o2, i2, r2, n2, false); - } - function ge(e2, t2, o2, i2) { - e2.push(t2), e2.push(o2), e2.push(i2); - } - function me(e2, t2, o2, i2, r2, n2) { - var s2 = (n2 - t2) / (i2 - t2); - return e2.push(n2), e2.push(o2 + (r2 - o2) * s2), e2.push(1), s2; - } - function ye(e2, t2, o2, i2, r2, n2) { - var s2 = (n2 - o2) / (r2 - o2); - return e2.push(t2 + (i2 - t2) * s2), e2.push(n2), e2.push(1), s2; - } - function ve(e2, t2) { - for (var o2 = [], i2 = 0; i2 < e2.length; i2++) { - var r2, n2 = e2[i2], s2 = n2.type; - if ("Point" === s2 || "MultiPoint" === s2 || "LineString" === s2) - r2 = xe(n2.geometry, t2); - else if ("MultiLineString" === s2 || "Polygon" === s2) { - r2 = []; - for (var a2 = 0; a2 < n2.geometry.length; a2++) - r2.push(xe(n2.geometry[a2], t2)); - } else if ("MultiPolygon" === s2) - for (r2 = [], a2 = 0; a2 < n2.geometry.length; a2++) { - for (var l2 = [], c3 = 0; c3 < n2.geometry[a2].length; c3++) - l2.push(xe(n2.geometry[a2][c3], t2)); - r2.push(l2); + function ae(e2, t2, r2, i2, o2, n2) { + for (var a2 = 0; a2 < e2.length; a2++) + oe(e2[a2], t2, r2, i2, o2, n2, false); + } + function se(e2, t2, r2, i2) { + e2.push(t2), e2.push(r2), e2.push(i2); + } + function le(e2, t2, r2, i2, o2, n2) { + var a2 = (n2 - t2) / (i2 - t2); + return e2.push(n2), e2.push(r2 + (o2 - r2) * a2), e2.push(1), a2; + } + function ue(e2, t2, r2, i2, o2, n2) { + var a2 = (n2 - r2) / (o2 - r2); + return e2.push(t2 + (i2 - t2) * a2), e2.push(n2), e2.push(1), a2; + } + function he(e2, t2) { + for (var r2 = [], i2 = 0; i2 < e2.length; i2++) { + var o2, n2 = e2[i2], a2 = n2.type; + if ("Point" === a2 || "MultiPoint" === a2 || "LineString" === a2) + o2 = ce(n2.geometry, t2); + else if ("MultiLineString" === a2 || "Polygon" === a2) { + o2 = []; + for (var s2 = 0; s2 < n2.geometry.length; s2++) + o2.push(ce(n2.geometry[s2], t2)); + } else if ("MultiPolygon" === a2) + for (o2 = [], s2 = 0; s2 < n2.geometry.length; s2++) { + for (var l2 = [], u2 = 0; u2 < n2.geometry[s2].length; u2++) + l2.push(ce(n2.geometry[s2][u2], t2)); + o2.push(l2); } - o2.push(oe(n2.id, s2, r2, n2.tags)); + r2.push(q(n2.id, a2, o2, n2.tags)); } - return o2; + return r2; } - function xe(e2, t2) { - var o2 = []; - o2.size = e2.size, void 0 !== e2.start && (o2.start = e2.start, o2.end = e2.end); + function ce(e2, t2) { + var r2 = []; + r2.size = e2.size, void 0 !== e2.start && (r2.start = e2.start, r2.end = e2.end); for (var i2 = 0; i2 < e2.length; i2 += 3) - o2.push(e2[i2] + t2, e2[i2 + 1], e2[i2 + 2]); - return o2; + r2.push(e2[i2] + t2, e2[i2 + 1], e2[i2 + 2]); + return r2; } - function we(e2, t2) { + function pe(e2, t2) { if (e2.transformed) return e2; - var o2, i2, r2, n2 = 1 << e2.z, s2 = e2.x, a2 = e2.y; - for (o2 = 0; o2 < e2.features.length; o2++) { - var l2 = e2.features[o2], c3 = l2.geometry, u2 = l2.type; - if (l2.geometry = [], 1 === u2) - for (i2 = 0; i2 < c3.length; i2 += 2) - l2.geometry.push(Se(c3[i2], c3[i2 + 1], t2, n2, s2, a2)); + var r2, i2, o2, n2 = 1 << e2.z, a2 = e2.x, s2 = e2.y; + for (r2 = 0; r2 < e2.features.length; r2++) { + var l2 = e2.features[r2], u2 = l2.geometry, h3 = l2.type; + if (l2.geometry = [], 1 === h3) + for (i2 = 0; i2 < u2.length; i2 += 2) + l2.geometry.push(fe(u2[i2], u2[i2 + 1], t2, n2, a2, s2)); else - for (i2 = 0; i2 < c3.length; i2++) { - var h3 = []; - for (r2 = 0; r2 < c3[i2].length; r2 += 2) - h3.push(Se(c3[i2][r2], c3[i2][r2 + 1], t2, n2, s2, a2)); - l2.geometry.push(h3); + for (i2 = 0; i2 < u2.length; i2++) { + var c3 = []; + for (o2 = 0; o2 < u2[i2].length; o2 += 2) + c3.push(fe(u2[i2][o2], u2[i2][o2 + 1], t2, n2, a2, s2)); + l2.geometry.push(c3); } } return e2.transformed = true, e2; } - function Se(e2, t2, o2, i2, r2, n2) { - return [Math.round(o2 * (e2 * i2 - r2)), Math.round(o2 * (t2 * i2 - n2))]; + function fe(e2, t2, r2, i2, o2, n2) { + return [Math.round(r2 * (e2 * i2 - o2)), Math.round(r2 * (t2 * i2 - n2))]; } - function Me(e2, t2, o2, i2, r2) { - for (var n2 = t2 === r2.maxZoom ? 0 : r2.tolerance / ((1 << t2) * r2.extent), s2 = { features: [], numPoints: 0, numSimplified: 0, numFeatures: 0, source: null, x: o2, y: i2, z: t2, transformed: false, minX: 2, minY: 1, maxX: -1, maxY: 0 }, a2 = 0; a2 < e2.length; a2++) { - s2.numFeatures++, Ie(s2, e2[a2], n2, r2); - var l2 = e2[a2].minX, c3 = e2[a2].minY, u2 = e2[a2].maxX, h3 = e2[a2].maxY; - l2 < s2.minX && (s2.minX = l2), c3 < s2.minY && (s2.minY = c3), u2 > s2.maxX && (s2.maxX = u2), h3 > s2.maxY && (s2.maxY = h3); + function de(e2, t2, r2, i2, o2) { + for (var n2 = t2 === o2.maxZoom ? 0 : o2.tolerance / ((1 << t2) * o2.extent), a2 = { features: [], numPoints: 0, numSimplified: 0, numFeatures: 0, source: null, x: r2, y: i2, z: t2, transformed: false, minX: 2, minY: 1, maxX: -1, maxY: 0 }, s2 = 0; s2 < e2.length; s2++) { + a2.numFeatures++, ge(a2, e2[s2], n2, o2); + var l2 = e2[s2].minX, u2 = e2[s2].minY, h3 = e2[s2].maxX, c3 = e2[s2].maxY; + l2 < a2.minX && (a2.minX = l2), u2 < a2.minY && (a2.minY = u2), h3 > a2.maxX && (a2.maxX = h3), c3 > a2.maxY && (a2.maxY = c3); } - return s2; + return a2; } - function Ie(e2, t2, o2, i2) { - var r2 = t2.geometry, n2 = t2.type, s2 = []; + function ge(e2, t2, r2, i2) { + var o2 = t2.geometry, n2 = t2.type, a2 = []; if ("Point" === n2 || "MultiPoint" === n2) - for (var a2 = 0; a2 < r2.length; a2 += 3) - s2.push(r2[a2]), s2.push(r2[a2 + 1]), e2.numPoints++, e2.numSimplified++; + for (var s2 = 0; s2 < o2.length; s2 += 3) + a2.push(o2[s2]), a2.push(o2[s2 + 1]), e2.numPoints++, e2.numSimplified++; else if ("LineString" === n2) - be(s2, r2, e2, o2, false, false); + ve(a2, o2, e2, r2, false, false); else if ("MultiLineString" === n2 || "Polygon" === n2) - for (a2 = 0; a2 < r2.length; a2++) - be(s2, r2[a2], e2, o2, "Polygon" === n2, 0 === a2); + for (s2 = 0; s2 < o2.length; s2++) + ve(a2, o2[s2], e2, r2, "Polygon" === n2, 0 === s2); else if ("MultiPolygon" === n2) - for (var l2 = 0; l2 < r2.length; l2++) { - var c3 = r2[l2]; - for (a2 = 0; a2 < c3.length; a2++) - be(s2, c3[a2], e2, o2, true, 0 === a2); + for (var l2 = 0; l2 < o2.length; l2++) { + var u2 = o2[l2]; + for (s2 = 0; s2 < u2.length; s2++) + ve(a2, u2[s2], e2, r2, true, 0 === s2); } - if (s2.length) { - var u2 = t2.tags || null; + if (a2.length) { + var h3 = t2.tags || null; if ("LineString" === n2 && i2.lineMetrics) { - for (var h3 in u2 = {}, t2.tags) - u2[h3] = t2.tags[h3]; - u2.mapbox_clip_start = r2.start / r2.size, u2.mapbox_clip_end = r2.end / r2.size; + for (var c3 in h3 = {}, t2.tags) + h3[c3] = t2.tags[c3]; + h3.mapbox_clip_start = o2.start / o2.size, h3.mapbox_clip_end = o2.end / o2.size; } - var p3 = { geometry: s2, type: "Polygon" === n2 || "MultiPolygon" === n2 ? 3 : "LineString" === n2 || "MultiLineString" === n2 ? 2 : 1, tags: u2 }; + var p3 = { geometry: a2, type: "Polygon" === n2 || "MultiPolygon" === n2 ? 3 : "LineString" === n2 || "MultiLineString" === n2 ? 2 : 1, tags: h3 }; null !== t2.id && (p3.id = t2.id), e2.features.push(p3); } } - function be(e2, t2, o2, i2, r2, n2) { - var s2 = i2 * i2; - if (i2 > 0 && t2.size < (r2 ? s2 : i2)) - o2.numPoints += t2.length / 3; + function ve(e2, t2, r2, i2, o2, n2) { + var a2 = i2 * i2; + if (i2 > 0 && t2.size < (o2 ? a2 : i2)) + r2.numPoints += t2.length / 3; else { - for (var a2 = [], l2 = 0; l2 < t2.length; l2 += 3) - (0 === i2 || t2[l2 + 2] > s2) && (o2.numSimplified++, a2.push(t2[l2]), a2.push(t2[l2 + 1])), o2.numPoints++; - r2 && function(e3, t3) { - for (var o3 = 0, i3 = 0, r3 = e3.length, n3 = r3 - 2; i3 < r3; n3 = i3, i3 += 2) - o3 += (e3[i3] - e3[n3]) * (e3[i3 + 1] + e3[n3 + 1]); - if (o3 > 0 === t3) - for (i3 = 0, r3 = e3.length; i3 < r3 / 2; i3 += 2) { - var s3 = e3[i3], a3 = e3[i3 + 1]; - e3[i3] = e3[r3 - 2 - i3], e3[i3 + 1] = e3[r3 - 1 - i3], e3[r3 - 2 - i3] = s3, e3[r3 - 1 - i3] = a3; + for (var s2 = [], l2 = 0; l2 < t2.length; l2 += 3) + (0 === i2 || t2[l2 + 2] > a2) && (r2.numSimplified++, s2.push(t2[l2]), s2.push(t2[l2 + 1])), r2.numPoints++; + o2 && function(e3, t3) { + for (var r3 = 0, i3 = 0, o3 = e3.length, n3 = o3 - 2; i3 < o3; n3 = i3, i3 += 2) + r3 += (e3[i3] - e3[n3]) * (e3[i3 + 1] + e3[n3 + 1]); + if (r3 > 0 === t3) + for (i3 = 0, o3 = e3.length; i3 < o3 / 2; i3 += 2) { + var a3 = e3[i3], s3 = e3[i3 + 1]; + e3[i3] = e3[o3 - 2 - i3], e3[i3 + 1] = e3[o3 - 1 - i3], e3[o3 - 2 - i3] = a3, e3[o3 - 1 - i3] = s3; } - }(a2, n2), e2.push(a2); + }(s2, n2), e2.push(s2); } } - function ke(e2, t2) { - var o2 = (t2 = this.options = function(e3, t3) { - for (var o3 in t3) - e3[o3] = t3[o3]; + function me(e2, t2) { + var r2 = (t2 = this.options = function(e3, t3) { + for (var r3 in t3) + e3[r3] = t3[r3]; return e3; }(Object.create(this.options), t2)).debug; - if (o2 && console.time("preprocess data"), t2.maxZoom < 0 || t2.maxZoom > 24) + if (r2 && console.time("preprocess data"), t2.maxZoom < 0 || t2.maxZoom > 24) throw new Error("maxZoom should be in the 0-24 range"); if (t2.promoteId && t2.generateId) throw new Error("promoteId and generateId cannot be used together."); var i2 = function(e3, t3) { - var o3 = []; + var r3 = []; if ("FeatureCollection" === e3.type) for (var i3 = 0; i3 < e3.features.length; i3++) - re(o3, e3.features[i3], t3, i3); + $(r3, e3.features[i3], t3, i3); else - re(o3, "Feature" === e3.type ? e3 : { geometry: e3 }, t3); - return o3; + $(r3, "Feature" === e3.type ? e3 : { geometry: e3 }, t3); + return r3; }(e2, t2); - this.tiles = {}, this.tileCoords = [], o2 && (console.timeEnd("preprocess data"), console.log("index: maxZoom: %d, maxPoints: %d", t2.indexMaxZoom, t2.indexMaxPoints), console.time("generate tiles"), this.stats = {}, this.total = 0), i2 = function(e3, t3) { - var o3 = t3.buffer / t3.extent, i3 = e3, r2 = ue(e3, 1, -1 - o3, o3, 0, -1, 2, t3), n2 = ue(e3, 1, 1 - o3, 2 + o3, 0, -1, 2, t3); - return (r2 || n2) && (i3 = ue(e3, 1, -o3, 1 + o3, 0, -1, 2, t3) || [], r2 && (i3 = ve(r2, 1).concat(i3)), n2 && (i3 = i3.concat(ve(n2, -1)))), i3; - }(i2, t2), i2.length && this.splitTile(i2, 0, 0, 0), o2 && (i2.length && console.log("features: %d, points: %d", this.tiles[0].numFeatures, this.tiles[0].numPoints), console.timeEnd("generate tiles"), console.log("tiles generated:", this.total, JSON.stringify(this.stats))); + this.tiles = {}, this.tileCoords = [], r2 && (console.timeEnd("preprocess data"), console.log("index: maxZoom: %d, maxPoints: %d", t2.indexMaxZoom, t2.indexMaxPoints), console.time("generate tiles"), this.stats = {}, this.total = 0), (i2 = function(e3, t3) { + var r3 = t3.buffer / t3.extent, i3 = e3, o2 = re(e3, 1, -1 - r3, r3, 0, -1, 2, t3), n2 = re(e3, 1, 1 - r3, 2 + r3, 0, -1, 2, t3); + return (o2 || n2) && (i3 = re(e3, 1, -r3, 1 + r3, 0, -1, 2, t3) || [], o2 && (i3 = he(o2, 1).concat(i3)), n2 && (i3 = i3.concat(he(n2, -1)))), i3; + }(i2, t2)).length && this.splitTile(i2, 0, 0, 0), r2 && (i2.length && console.log("features: %d, points: %d", this.tiles[0].numFeatures, this.tiles[0].numPoints), console.timeEnd("generate tiles"), console.log("tiles generated:", this.total, JSON.stringify(this.stats))); } - function Pe(e2, t2, o2) { - return 32 * ((1 << e2) * o2 + t2) + e2; + function ye(e2, t2, r2) { + return 32 * ((1 << e2) * r2 + t2) + e2; } - function Te(e2, t2) { - const o2 = e2.tileID.canonical; + function xe(e2, t2) { + var r2 = e2.tileID.canonical; if (!this._geoJSONIndex) return t2(null, null); - const i2 = this._geoJSONIndex.getTile(o2.z, o2.x, o2.y); + var i2 = this._geoJSONIndex.getTile(r2.z, r2.x, r2.y); if (!i2) return t2(null, null); - const r2 = new g(i2.features); - let n2 = m.exports(r2); - 0 === n2.byteOffset && n2.byteLength === n2.buffer.byteLength || (n2 = new Uint8Array(n2)), t2(null, { vectorTile: r2, rawData: n2.buffer }); - } - ke.prototype.options = { maxZoom: 14, indexMaxZoom: 5, indexMaxPoints: 1e5, tolerance: 3, extent: 4096, buffer: 64, lineMetrics: false, promoteId: null, generateId: false, debug: 0 }, ke.prototype.splitTile = function(e2, t2, o2, i2, r2, n2, s2) { - for (var a2 = [e2, t2, o2, i2], l2 = this.options, c3 = l2.debug; a2.length; ) { - i2 = a2.pop(), o2 = a2.pop(), t2 = a2.pop(), e2 = a2.pop(); - var u2 = 1 << t2, h3 = Pe(t2, o2, i2), p3 = this.tiles[h3]; - if (!p3 && (c3 > 1 && console.time("creation"), p3 = this.tiles[h3] = Me(e2, t2, o2, i2, l2), this.tileCoords.push({ z: t2, x: o2, y: i2 }), c3)) { - c3 > 1 && (console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)", t2, o2, i2, p3.numFeatures, p3.numPoints, p3.numSimplified), console.timeEnd("creation")); + var o2 = new g(i2.features), n2 = w(o2); + 0 === n2.byteOffset && n2.byteLength === n2.buffer.byteLength || (n2 = new Uint8Array(n2)), t2(null, { vectorTile: o2, rawData: n2.buffer }); + } + J.prototype.load = function(e2) { + var t2 = this.options, r2 = t2.log, i2 = t2.minZoom, o2 = t2.maxZoom, n2 = t2.nodeSize; + r2 && console.time("total time"); + var a2 = "prepare " + e2.length + " points"; + r2 && console.time(a2), this.points = e2; + for (var s2 = [], l2 = 0; l2 < e2.length; l2++) + e2[l2].geometry && s2.push(A2(e2[l2], l2)); + this.trees[o2 + 1] = new F(s2, X, W, n2, Float32Array), r2 && console.timeEnd(a2); + for (var u2 = o2; u2 >= i2; u2--) { + var h3 = +Date.now(); + s2 = this._cluster(s2, u2), this.trees[u2] = new F(s2, X, W, n2, Float32Array), r2 && console.log("z%d: %d clusters in %dms", u2, s2.length, +Date.now() - h3); + } + return r2 && console.timeEnd("total time"), this; + }, J.prototype.getClusters = function(e2, t2) { + var r2 = ((e2[0] + 180) % 360 + 360) % 360 - 180, i2 = Math.max(-90, Math.min(90, e2[1])), o2 = 180 === e2[2] ? 180 : ((e2[2] + 180) % 360 + 360) % 360 - 180, n2 = Math.max(-90, Math.min(90, e2[3])); + if (e2[2] - e2[0] >= 360) + r2 = -180, o2 = 180; + else if (r2 > o2) { + var a2 = this.getClusters([r2, i2, 180, n2], t2), s2 = this.getClusters([-180, i2, o2, n2], t2); + return a2.concat(s2); + } + for (var l2 = this.trees[this._limitZoom(t2)], u2 = [], h3 = 0, c3 = l2.range(Y(r2), j(n2), Y(o2), j(i2)); h3 < c3.length; h3 += 1) { + var p3 = l2.points[c3[h3]]; + u2.push(p3.numPoints ? B(p3) : this.points[p3.index]); + } + return u2; + }, J.prototype.getChildren = function(e2) { + var t2 = this._getOriginId(e2), r2 = this._getOriginZoom(e2), i2 = "No cluster with the specified id.", o2 = this.trees[r2]; + if (!o2) + throw new Error(i2); + var n2 = o2.points[t2]; + if (!n2) + throw new Error(i2); + for (var a2 = this.options.radius / (this.options.extent * Math.pow(2, r2 - 1)), s2 = [], l2 = 0, u2 = o2.within(n2.x, n2.y, a2); l2 < u2.length; l2 += 1) { + var h3 = o2.points[u2[l2]]; + h3.parentId === e2 && s2.push(h3.numPoints ? B(h3) : this.points[h3.index]); + } + if (0 === s2.length) + throw new Error(i2); + return s2; + }, J.prototype.getLeaves = function(e2, t2, r2) { + var i2 = []; + return this._appendLeaves(i2, e2, t2 = t2 || 10, r2 = r2 || 0, 0), i2; + }, J.prototype.getTile = function(e2, t2, r2) { + var i2 = this.trees[this._limitZoom(e2)], o2 = Math.pow(2, e2), n2 = this.options, a2 = n2.radius / n2.extent, s2 = (r2 - a2) / o2, l2 = (r2 + 1 + a2) / o2, u2 = { features: [] }; + return this._addTileFeatures(i2.range((t2 - a2) / o2, s2, (t2 + 1 + a2) / o2, l2), i2.points, t2, r2, o2, u2), 0 === t2 && this._addTileFeatures(i2.range(1 - a2 / o2, s2, 1, l2), i2.points, o2, r2, o2, u2), t2 === o2 - 1 && this._addTileFeatures(i2.range(0, s2, a2 / o2, l2), i2.points, -1, r2, o2, u2), u2.features.length ? u2 : null; + }, J.prototype.getClusterExpansionZoom = function(e2) { + for (var t2 = this._getOriginZoom(e2) - 1; t2 <= this.options.maxZoom; ) { + var r2 = this.getChildren(e2); + if (t2++, 1 !== r2.length) + break; + e2 = r2[0].properties.cluster_id; + } + return t2; + }, J.prototype._appendLeaves = function(e2, t2, r2, i2, o2) { + for (var n2 = 0, a2 = this.getChildren(t2); n2 < a2.length; n2 += 1) { + var s2 = a2[n2], l2 = s2.properties; + if (l2 && l2.cluster ? o2 + l2.point_count <= i2 ? o2 += l2.point_count : o2 = this._appendLeaves(e2, l2.cluster_id, r2, i2, o2) : o2 < i2 ? o2++ : e2.push(s2), e2.length === r2) + break; + } + return o2; + }, J.prototype._addTileFeatures = function(e2, t2, r2, i2, o2, n2) { + for (var a2 = 0, s2 = e2; a2 < s2.length; a2 += 1) { + var l2 = t2[s2[a2]], u2 = l2.numPoints, h3 = { type: 1, geometry: [[Math.round(this.options.extent * (l2.x * o2 - r2)), Math.round(this.options.extent * (l2.y * o2 - i2))]], tags: u2 ? G(l2) : this.points[l2.index].properties }, c3 = void 0; + u2 ? c3 = l2.id : this.options.generateId ? c3 = l2.index : this.points[l2.index].id && (c3 = this.points[l2.index].id), void 0 !== c3 && (h3.id = c3), n2.features.push(h3); + } + }, J.prototype._limitZoom = function(e2) { + return Math.max(this.options.minZoom, Math.min(+e2, this.options.maxZoom + 1)); + }, J.prototype._cluster = function(e2, t2) { + for (var r2 = [], i2 = this.options, o2 = i2.reduce, n2 = i2.minPoints, a2 = i2.radius / (i2.extent * Math.pow(2, t2)), s2 = 0; s2 < e2.length; s2++) { + var l2 = e2[s2]; + if (!(l2.zoom <= t2)) { + l2.zoom = t2; + for (var u2 = this.trees[t2 + 1], h3 = u2.within(l2.x, l2.y, a2), c3 = l2.numPoints || 1, p3 = c3, f2 = 0, d2 = h3; f2 < d2.length; f2 += 1) { + var g2 = u2.points[d2[f2]]; + g2.zoom > t2 && (p3 += g2.numPoints || 1); + } + if (p3 >= n2) { + for (var v3 = l2.x * c3, m2 = l2.y * c3, y3 = o2 && c3 > 1 ? this._map(l2, true) : null, x2 = (s2 << 5) + (t2 + 1) + this.points.length, w2 = 0, S2 = h3; w2 < S2.length; w2 += 1) { + var I3 = u2.points[S2[w2]]; + if (!(I3.zoom <= t2)) { + I3.zoom = t2; + var M2 = I3.numPoints || 1; + v3 += I3.x * M2, m2 += I3.y * M2, I3.parentId = x2, o2 && (y3 || (y3 = this._map(l2, true)), o2(y3, this._map(I3))); + } + } + l2.parentId = x2, r2.push(Z2(v3 / p3, m2 / p3, x2, p3, y3)); + } else if (r2.push(l2), p3 > 1) + for (var b2 = 0, _2 = h3; b2 < _2.length; b2 += 1) { + var k2 = u2.points[_2[b2]]; + k2.zoom <= t2 || (k2.zoom = t2, r2.push(k2)); + } + } + } + return r2; + }, J.prototype._getOriginId = function(e2) { + return e2 - this.points.length >> 5; + }, J.prototype._getOriginZoom = function(e2) { + return (e2 - this.points.length) % 32; + }, J.prototype._map = function(e2, t2) { + if (e2.numPoints) + return t2 ? V2({}, e2.properties) : e2.properties; + var r2 = this.points[e2.index].properties, i2 = this.options.map(r2); + return t2 && i2 === r2 ? V2({}, i2) : i2; + }, me.prototype.options = { maxZoom: 14, indexMaxZoom: 5, indexMaxPoints: 1e5, tolerance: 3, extent: 4096, buffer: 64, lineMetrics: false, promoteId: null, generateId: false, debug: 0 }, me.prototype.splitTile = function(e2, t2, r2, i2, o2, n2, a2) { + for (var s2 = [e2, t2, r2, i2], l2 = this.options, u2 = l2.debug; s2.length; ) { + i2 = s2.pop(), r2 = s2.pop(), t2 = s2.pop(), e2 = s2.pop(); + var h3 = 1 << t2, c3 = ye(t2, r2, i2), p3 = this.tiles[c3]; + if (!p3 && (u2 > 1 && console.time("creation"), p3 = this.tiles[c3] = de(e2, t2, r2, i2, l2), this.tileCoords.push({ z: t2, x: r2, y: i2 }), u2)) { + u2 > 1 && (console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)", t2, r2, i2, p3.numFeatures, p3.numPoints, p3.numSimplified), console.timeEnd("creation")); var f2 = "z" + t2; this.stats[f2] = (this.stats[f2] || 0) + 1, this.total++; } - if (p3.source = e2, r2) { - if (t2 === l2.maxZoom || t2 === r2) + if (p3.source = e2, o2) { + if (t2 === l2.maxZoom || t2 === o2) continue; - var d2 = 1 << r2 - t2; - if (o2 !== Math.floor(n2 / d2) || i2 !== Math.floor(s2 / d2)) + var d2 = 1 << o2 - t2; + if (r2 !== Math.floor(n2 / d2) || i2 !== Math.floor(a2 / d2)) continue; } else if (t2 === l2.indexMaxZoom || p3.numPoints <= l2.indexMaxPoints) continue; if (p3.source = null, 0 !== e2.length) { - c3 > 1 && console.time("clipping"); - var g2, m2, y3, v3, x2, w2, S2 = 0.5 * l2.buffer / l2.extent, M2 = 0.5 - S2, I3 = 0.5 + S2, b2 = 1 + S2; - g2 = m2 = y3 = v3 = null, x2 = ue(e2, u2, o2 - S2, o2 + I3, 0, p3.minX, p3.maxX, l2), w2 = ue(e2, u2, o2 + M2, o2 + b2, 0, p3.minX, p3.maxX, l2), e2 = null, x2 && (g2 = ue(x2, u2, i2 - S2, i2 + I3, 1, p3.minY, p3.maxY, l2), m2 = ue(x2, u2, i2 + M2, i2 + b2, 1, p3.minY, p3.maxY, l2), x2 = null), w2 && (y3 = ue(w2, u2, i2 - S2, i2 + I3, 1, p3.minY, p3.maxY, l2), v3 = ue(w2, u2, i2 + M2, i2 + b2, 1, p3.minY, p3.maxY, l2), w2 = null), c3 > 1 && console.timeEnd("clipping"), a2.push(g2 || [], t2 + 1, 2 * o2, 2 * i2), a2.push(m2 || [], t2 + 1, 2 * o2, 2 * i2 + 1), a2.push(y3 || [], t2 + 1, 2 * o2 + 1, 2 * i2), a2.push(v3 || [], t2 + 1, 2 * o2 + 1, 2 * i2 + 1); + u2 > 1 && console.time("clipping"); + var g2, v3, m2, y3, x2, w2, S2 = 0.5 * l2.buffer / l2.extent, I3 = 0.5 - S2, M2 = 0.5 + S2, b2 = 1 + S2; + g2 = v3 = m2 = y3 = null, x2 = re(e2, h3, r2 - S2, r2 + M2, 0, p3.minX, p3.maxX, l2), w2 = re(e2, h3, r2 + I3, r2 + b2, 0, p3.minX, p3.maxX, l2), e2 = null, x2 && (g2 = re(x2, h3, i2 - S2, i2 + M2, 1, p3.minY, p3.maxY, l2), v3 = re(x2, h3, i2 + I3, i2 + b2, 1, p3.minY, p3.maxY, l2), x2 = null), w2 && (m2 = re(w2, h3, i2 - S2, i2 + M2, 1, p3.minY, p3.maxY, l2), y3 = re(w2, h3, i2 + I3, i2 + b2, 1, p3.minY, p3.maxY, l2), w2 = null), u2 > 1 && console.timeEnd("clipping"), s2.push(g2 || [], t2 + 1, 2 * r2, 2 * i2), s2.push(v3 || [], t2 + 1, 2 * r2, 2 * i2 + 1), s2.push(m2 || [], t2 + 1, 2 * r2 + 1, 2 * i2), s2.push(y3 || [], t2 + 1, 2 * r2 + 1, 2 * i2 + 1); } } - }, ke.prototype.getTile = function(e2, t2, o2) { - var i2 = this.options, r2 = i2.extent, n2 = i2.debug; + }, me.prototype.getTile = function(e2, t2, r2) { + var i2 = this.options, o2 = i2.extent, n2 = i2.debug; if (e2 < 0 || e2 > 24) return null; - var s2 = 1 << e2, a2 = Pe(e2, t2 = (t2 % s2 + s2) % s2, o2); - if (this.tiles[a2]) - return we(this.tiles[a2], r2); - n2 > 1 && console.log("drilling down to z%d-%d-%d", e2, t2, o2); - for (var l2, c3 = e2, u2 = t2, h3 = o2; !l2 && c3 > 0; ) - c3--, u2 = Math.floor(u2 / 2), h3 = Math.floor(h3 / 2), l2 = this.tiles[Pe(c3, u2, h3)]; - return l2 && l2.source ? (n2 > 1 && console.log("found parent tile z%d-%d-%d", c3, u2, h3), n2 > 1 && console.time("drilling down"), this.splitTile(l2.source, c3, u2, h3, e2, t2, o2), n2 > 1 && console.timeEnd("drilling down"), this.tiles[a2] ? we(this.tiles[a2], r2) : null) : null; - }; - class Ce extends l { - constructor(e2, t2, o2, i2) { - super(e2, t2, o2, Te), i2 && (this.loadGeoJSON = i2); - } - loadData(t2, o2) { - var i2; - null === (i2 = this._pendingRequest) || void 0 === i2 || i2.cancel(), this._pendingCallback && this._pendingCallback(null, { abandoned: true }); - const r2 = !!(t2 && t2.request && t2.request.collectResourceTiming) && new e.RequestPerformance(t2.request); - this._pendingCallback = o2, this._pendingRequest = this.loadGeoJSON(t2, (i3, n2) => { - if (delete this._pendingCallback, delete this._pendingRequest, i3 || !n2) - return o2(i3); - if ("object" != typeof n2) - return o2(new Error(`Input data given to '${t2.source}' is not a valid GeoJSON object.`)); - { - u(n2, true); + var a2 = 1 << e2, s2 = ye(e2, t2 = (t2 % a2 + a2) % a2, r2); + if (this.tiles[s2]) + return pe(this.tiles[s2], o2); + n2 > 1 && console.log("drilling down to z%d-%d-%d", e2, t2, r2); + for (var l2, u2 = e2, h3 = t2, c3 = r2; !l2 && u2 > 0; ) + u2--, h3 = Math.floor(h3 / 2), c3 = Math.floor(c3 / 2), l2 = this.tiles[ye(u2, h3, c3)]; + return l2 && l2.source ? (n2 > 1 && console.log("found parent tile z%d-%d-%d", u2, h3, c3), n2 > 1 && console.time("drilling down"), this.splitTile(l2.source, u2, h3, c3, e2, t2, r2), n2 > 1 && console.timeEnd("drilling down"), this.tiles[s2] ? pe(this.tiles[s2], o2) : null) : null; + }; + var we = function(t2) { + function r2(e2, r3, i2, o2) { + t2.call(this, e2, r3, i2, xe), o2 && (this.loadGeoJSON = o2); + } + return t2 && (r2.__proto__ = t2), (r2.prototype = Object.create(t2 && t2.prototype)).constructor = r2, r2.prototype.loadData = function(e2, t3) { + this._pendingCallback && this._pendingCallback(null, { abandoned: true }), this._pendingCallback = t3, this._pendingLoadDataParams = e2, this._state && "Idle" !== this._state ? this._state = "NeedsLoadData" : (this._state = "Coalescing", this._loadData()); + }, r2.prototype._loadData = function() { + var t3 = this; + if (this._pendingCallback && this._pendingLoadDataParams) { + var r3 = this._pendingCallback, i2 = this._pendingLoadDataParams; + delete this._pendingCallback, delete this._pendingLoadDataParams; + var o2 = !!(i2 && i2.request && i2.request.collectResourceTiming) && new e.RequestPerformance(i2.request); + this.loadGeoJSON(i2, function(n2, a2) { + if (n2 || !a2) + return r3(n2); + if ("object" != typeof a2) + return r3(new Error("Input data given to '" + i2.source + "' is not a valid GeoJSON object.")); + !function e2(t4, r4) { + var i3, o3 = t4 && t4.type; + if ("FeatureCollection" === o3) + for (i3 = 0; i3 < t4.features.length; i3++) + e2(t4.features[i3], r4); + else if ("GeometryCollection" === o3) + for (i3 = 0; i3 < t4.geometries.length; i3++) + e2(t4.geometries[i3], r4); + else if ("Feature" === o3) + e2(t4.geometry, r4); + else if ("Polygon" === o3) + c2(t4.coordinates, r4); + else if ("MultiPolygon" === o3) + for (i3 = 0; i3 < t4.coordinates.length; i3++) + c2(t4.coordinates[i3], r4); + return t4; + }(a2, true); try { - if (t2.filter) { - const o3 = e.createExpression(t2.filter, { type: "boolean", "property-type": "data-driven", overridable: false, transition: false }); - if ("error" === o3.result) - throw new Error(o3.value.map((e2) => `${e2.key}: ${e2.message}`).join(", ")); - const i4 = n2.features.filter((e2) => o3.value.evaluate({ zoom: 0 }, e2)); - n2 = { type: "FeatureCollection", features: i4 }; + if (i2.filter) { + var s2 = e.createExpression(i2.filter, { type: "boolean", "property-type": "data-driven", overridable: false, transition: false }); + if ("error" === s2.result) + throw new Error(s2.value.map(function(e2) { + return e2.key + ": " + e2.message; + }).join(", ")); + var l2 = a2.features.filter(function(e2) { + return s2.value.evaluate({ zoom: 0 }, e2); + }); + a2 = { type: "FeatureCollection", features: l2 }; } - this._geoJSONIndex = t2.cluster ? new Y(function({ superclusterOptions: t3, clusterProperties: o3 }) { - if (!o3 || !t3) - return t3; - const i4 = {}, r3 = {}, n3 = { accumulated: null, zoom: 0 }, s3 = { properties: null }, a2 = Object.keys(o3); - for (const t4 of a2) { - const [n4, s4] = o3[t4], a3 = e.createExpression(s4), l2 = e.createExpression("string" == typeof n4 ? [n4, ["accumulated"], ["get", t4]] : n4); - i4[t4] = a3.value, r3[t4] = l2.value; + t3._geoJSONIndex = i2.cluster ? new J(function(t4) { + var r4 = t4.superclusterOptions, i3 = t4.clusterProperties; + if (!i3 || !r4) + return r4; + for (var o3 = {}, n3 = {}, a3 = { accumulated: null, zoom: 0 }, s3 = { properties: null }, l3 = Object.keys(i3), u3 = 0, h4 = l3; u3 < h4.length; u3 += 1) { + var c3 = h4[u3], p3 = i3[c3], f2 = p3[0], d2 = e.createExpression(p3[1]), g2 = e.createExpression("string" == typeof f2 ? [f2, ["accumulated"], ["get", c3]] : f2); + o3[c3] = d2.value, n3[c3] = g2.value; } - return t3.map = (e2) => { + return r4.map = function(e2) { s3.properties = e2; - const t4 = {}; - for (const e3 of a2) - t4[e3] = i4[e3].evaluate(n3, s3); - return t4; - }, t3.reduce = (e2, t4) => { - s3.properties = t4; - for (const t5 of a2) - n3.accumulated = e2[t5], e2[t5] = r3[t5].evaluate(n3, s3); - }, t3; - }(t2)).load(n2.features) : function(e2, t3) { - return new ke(e2, t3); - }(n2, t2.geojsonVtOptions); - } catch (i4) { - return o2(i4); + for (var t5 = {}, r5 = 0, i4 = l3; r5 < i4.length; r5 += 1) { + var n4 = i4[r5]; + t5[n4] = o3[n4].evaluate(a3, s3); + } + return t5; + }, r4.reduce = function(e2, t5) { + s3.properties = t5; + for (var r5 = 0, i4 = l3; r5 < i4.length; r5 += 1) { + var o4 = i4[r5]; + a3.accumulated = e2[o4], e2[o4] = n3[o4].evaluate(a3, s3); + } + }, r4; + }(i2)).load(a2.features) : function(e2, t4) { + return new me(e2, t4); + }(a2, i2.geojsonVtOptions); + } catch (n3) { + return r3(n3); } - this.loaded = {}; - const s2 = {}; - if (r2) { - const e2 = r2.finish(); - e2 && (s2.resourceTiming = {}, s2.resourceTiming[t2.source] = JSON.parse(JSON.stringify(e2))); + t3.loaded = {}; + var u2 = {}; + if (o2) { + var h3 = o2.finish(); + h3 && (u2.resourceTiming = {}, u2.resourceTiming[i2.source] = JSON.parse(JSON.stringify(h3))); } - o2(null, s2); - } - }); - } - reloadTile(e2, t2) { - const o2 = this.loaded; - return o2 && o2[e2.uid] ? super.reloadTile(e2, t2) : this.loadTile(e2, t2); - } - loadGeoJSON(t2, o2) { - if (t2.request) - return e.getJSON(t2.request, o2); - if ("string" == typeof t2.data) + r3(null, u2); + }); + } + }, r2.prototype.coalesce = function() { + "Coalescing" === this._state ? this._state = "Idle" : "NeedsLoadData" === this._state && (this._state = "Coalescing", this._loadData()); + }, r2.prototype.reloadTile = function(e2, r3) { + var i2 = this.loaded; + return i2 && i2[e2.uid] ? t2.prototype.reloadTile.call(this, e2, r3) : this.loadTile(e2, r3); + }, r2.prototype.loadGeoJSON = function(t3, r3) { + if (t3.request) + e.getJSON(t3.request, r3); + else { + if ("string" != typeof t3.data) + return r3(new Error("Input data given to '" + t3.source + "' is not a valid GeoJSON object.")); try { - o2(null, JSON.parse(t2.data)); + return r3(null, JSON.parse(t3.data)); } catch (e2) { - o2(new Error(`Input data given to '${t2.source}' is not a valid GeoJSON object.`)); + return r3(new Error("Input data given to '" + t3.source + "' is not a valid GeoJSON object.")); } - else - o2(new Error(`Input data given to '${t2.source}' is not a valid GeoJSON object.`)); - return { cancel: () => { - } }; - } - removeSource(e2, t2) { - this._pendingCallback && this._pendingCallback(null, { abandoned: true }), t2(); - } - getClusterExpansionZoom(e2, t2) { - try { - t2(null, this._geoJSONIndex.getClusterExpansionZoom(e2.clusterId)); - } catch (e3) { - t2(e3); } - } - getClusterChildren(e2, t2) { + }, r2.prototype.removeSource = function(e2, t3) { + this._pendingCallback && this._pendingCallback(null, { abandoned: true }), t3(); + }, r2.prototype.getClusterExpansionZoom = function(e2, t3) { try { - t2(null, this._geoJSONIndex.getChildren(e2.clusterId)); + t3(null, this._geoJSONIndex.getClusterExpansionZoom(e2.clusterId)); } catch (e3) { - t2(e3); + t3(e3); } - } - getClusterLeaves(e2, t2) { + }, r2.prototype.getClusterChildren = function(e2, t3) { try { - t2(null, this._geoJSONIndex.getLeaves(e2.clusterId, e2.limit, e2.offset)); + t3(null, this._geoJSONIndex.getChildren(e2.clusterId)); } catch (e3) { - t2(e3); + t3(e3); } - } - } - class _e { - constructor(t2) { - this.self = t2, this.actor = new e.Actor(t2, this), this.layerIndexes = {}, this.availableImages = {}, this.workerSourceTypes = { vector: l, geojson: Ce }, this.workerSources = {}, this.demWorkerSources = {}, this.self.registerWorkerSource = (e2, t3) => { - if (this.workerSourceTypes[e2]) - throw new Error(`Worker source with name "${e2}" already registered.`); - this.workerSourceTypes[e2] = t3; - }, this.self.registerRTLTextPlugin = (t3) => { - if (e.plugin.isParsed()) - throw new Error("RTL text plugin already registered."); - e.plugin.applyArabicShaping = t3.applyArabicShaping, e.plugin.processBidirectionalText = t3.processBidirectionalText, e.plugin.processStyledBidirectionalText = t3.processStyledBidirectionalText; - }; - } - setReferrer(e2, t2) { - this.referrer = t2; - } - setImages(e2, t2, o2) { - this.availableImages[e2] = t2; - for (const o3 in this.workerSources[e2]) { - const i2 = this.workerSources[e2][o3]; - for (const e3 in i2) - i2[e3].availableImages = t2; - } - o2(); - } - setLayers(e2, t2, o2) { - this.getLayerIndex(e2).replace(t2), o2(); - } - updateLayers(e2, t2, o2) { - this.getLayerIndex(e2).update(t2.layers, t2.removedIds), o2(); - } - loadTile(e2, t2, o2) { - this.getWorkerSource(e2, t2.type, t2.source).loadTile(t2, o2); - } - loadDEMTile(e2, t2, o2) { - this.getDEMWorkerSource(e2, t2.source).loadTile(t2, o2); - } - reloadTile(e2, t2, o2) { - this.getWorkerSource(e2, t2.type, t2.source).reloadTile(t2, o2); - } - abortTile(e2, t2, o2) { - this.getWorkerSource(e2, t2.type, t2.source).abortTile(t2, o2); - } - removeTile(e2, t2, o2) { - this.getWorkerSource(e2, t2.type, t2.source).removeTile(t2, o2); - } - removeDEMTile(e2, t2) { - this.getDEMWorkerSource(e2, t2.source).removeTile(t2); - } - removeSource(e2, t2, o2) { - if (!this.workerSources[e2] || !this.workerSources[e2][t2.type] || !this.workerSources[e2][t2.type][t2.source]) - return; - const i2 = this.workerSources[e2][t2.type][t2.source]; - delete this.workerSources[e2][t2.type][t2.source], void 0 !== i2.removeSource ? i2.removeSource(t2, o2) : o2(); - } - loadWorkerSource(e2, t2, o2) { + }, r2.prototype.getClusterLeaves = function(e2, t3) { try { - this.self.importScripts(t2.url), o2(); + t3(null, this._geoJSONIndex.getLeaves(e2.clusterId, e2.limit, e2.offset)); } catch (e3) { - o2(e3.toString()); - } - } - syncRTLPluginState(t2, o2, i2) { - try { - e.plugin.setState(o2); - const t3 = e.plugin.getPluginURL(); - if (e.plugin.isLoaded() && !e.plugin.isParsed() && null != t3) { - this.self.importScripts(t3); - const o3 = e.plugin.isParsed(); - i2(o3 ? void 0 : new Error(`RTL Text Plugin failed to import scripts from ${t3}`), o3); - } - } catch (e2) { - i2(e2.toString()); - } - } - getAvailableImages(e2) { - let t2 = this.availableImages[e2]; - return t2 || (t2 = []), t2; - } - getLayerIndex(e2) { - let t2 = this.layerIndexes[e2]; - return t2 || (t2 = this.layerIndexes[e2] = new i()), t2; - } - getWorkerSource(e2, t2, o2) { - if (this.workerSources[e2] || (this.workerSources[e2] = {}), this.workerSources[e2][t2] || (this.workerSources[e2][t2] = {}), !this.workerSources[e2][t2][o2]) { - const i2 = { send: (t3, o3, i3) => { - this.actor.send(t3, o3, i3, e2); - } }; - this.workerSources[e2][t2][o2] = new this.workerSourceTypes[t2](i2, this.getLayerIndex(e2), this.getAvailableImages(e2)); - } - return this.workerSources[e2][t2][o2]; - } - getDEMWorkerSource(e2, t2) { - return this.demWorkerSources[e2] || (this.demWorkerSources[e2] = {}), this.demWorkerSources[e2][t2] || (this.demWorkerSources[e2][t2] = new c2()), this.demWorkerSources[e2][t2]; - } - enforceCacheSizeLimit(t2, o2) { - e.enforceCacheSizeLimit(o2); + t3(e3); + } + }, r2; + }(l), Se = function(t2) { + var r2 = this; + this.self = t2, this.actor = new e.Actor(t2, this), this.layerIndexes = {}, this.availableImages = {}, this.workerSourceTypes = { vector: l, geojson: we }, this.workerSources = {}, this.demWorkerSources = {}, this.self.registerWorkerSource = function(e2, t3) { + if (r2.workerSourceTypes[e2]) + throw new Error('Worker source with name "' + e2 + '" already registered.'); + r2.workerSourceTypes[e2] = t3; + }, this.self.registerRTLTextPlugin = function(t3) { + if (e.plugin.isParsed()) + throw new Error("RTL text plugin already registered."); + e.plugin.applyArabicShaping = t3.applyArabicShaping, e.plugin.processBidirectionalText = t3.processBidirectionalText, e.plugin.processStyledBidirectionalText = t3.processStyledBidirectionalText; + }; + }; + return Se.prototype.setReferrer = function(e2, t2) { + this.referrer = t2; + }, Se.prototype.setImages = function(e2, t2, r2) { + for (var i2 in this.availableImages[e2] = t2, this.workerSources[e2]) { + var o2 = this.workerSources[e2][i2]; + for (var n2 in o2) + o2[n2].availableImages = t2; + } + r2(); + }, Se.prototype.setLayers = function(e2, t2, r2) { + this.getLayerIndex(e2).replace(t2), r2(); + }, Se.prototype.updateLayers = function(e2, t2, r2) { + this.getLayerIndex(e2).update(t2.layers, t2.removedIds), r2(); + }, Se.prototype.loadTile = function(e2, t2, r2) { + this.getWorkerSource(e2, t2.type, t2.source).loadTile(t2, r2); + }, Se.prototype.loadDEMTile = function(e2, t2, r2) { + this.getDEMWorkerSource(e2, t2.source).loadTile(t2, r2); + }, Se.prototype.reloadTile = function(e2, t2, r2) { + this.getWorkerSource(e2, t2.type, t2.source).reloadTile(t2, r2); + }, Se.prototype.abortTile = function(e2, t2, r2) { + this.getWorkerSource(e2, t2.type, t2.source).abortTile(t2, r2); + }, Se.prototype.removeTile = function(e2, t2, r2) { + this.getWorkerSource(e2, t2.type, t2.source).removeTile(t2, r2); + }, Se.prototype.removeDEMTile = function(e2, t2) { + this.getDEMWorkerSource(e2, t2.source).removeTile(t2); + }, Se.prototype.removeSource = function(e2, t2, r2) { + if (this.workerSources[e2] && this.workerSources[e2][t2.type] && this.workerSources[e2][t2.type][t2.source]) { + var i2 = this.workerSources[e2][t2.type][t2.source]; + delete this.workerSources[e2][t2.type][t2.source], void 0 !== i2.removeSource ? i2.removeSource(t2, r2) : r2(); + } + }, Se.prototype.loadWorkerSource = function(e2, t2, r2) { + try { + this.self.importScripts(t2.url), r2(); + } catch (e3) { + r2(e3.toString()); } - } - return e.isWorker() && (self.worker = new _e(self)), _e; + }, Se.prototype.syncRTLPluginState = function(t2, r2, i2) { + try { + e.plugin.setState(r2); + var o2 = e.plugin.getPluginURL(); + if (e.plugin.isLoaded() && !e.plugin.isParsed() && null != o2) { + this.self.importScripts(o2); + var n2 = e.plugin.isParsed(); + i2(n2 ? void 0 : new Error("RTL Text Plugin failed to import scripts from " + o2), n2); + } + } catch (e2) { + i2(e2.toString()); + } + }, Se.prototype.getAvailableImages = function(e2) { + var t2 = this.availableImages[e2]; + return t2 || (t2 = []), t2; + }, Se.prototype.getLayerIndex = function(e2) { + var t2 = this.layerIndexes[e2]; + return t2 || (t2 = this.layerIndexes[e2] = new i()), t2; + }, Se.prototype.getWorkerSource = function(e2, t2, r2) { + var i2 = this; + return this.workerSources[e2] || (this.workerSources[e2] = {}), this.workerSources[e2][t2] || (this.workerSources[e2][t2] = {}), this.workerSources[e2][t2][r2] || (this.workerSources[e2][t2][r2] = new this.workerSourceTypes[t2]({ send: function(t3, r3, o2) { + i2.actor.send(t3, r3, o2, e2); + } }, this.getLayerIndex(e2), this.getAvailableImages(e2))), this.workerSources[e2][t2][r2]; + }, Se.prototype.getDEMWorkerSource = function(e2, t2) { + return this.demWorkerSources[e2] || (this.demWorkerSources[e2] = {}), this.demWorkerSources[e2][t2] || (this.demWorkerSources[e2][t2] = new h2()), this.demWorkerSources[e2][t2]; + }, Se.prototype.enforceCacheSizeLimit = function(t2, r2) { + e.enforceCacheSizeLimit(r2); + }, "undefined" != typeof WorkerGlobalScope && "undefined" != typeof self && self instanceof WorkerGlobalScope && (self.worker = new Se(self)), Se; }); define2(["./shared"], function(t) { - var e = i; - function i(t2) { - return !function(t3) { + var e = t.createCommonjsModule(function(t2) { + function e2(t3) { + return !i2(t3); + } + function i2(t3) { return "undefined" == typeof window || "undefined" == typeof document ? "not a browser" : Array.prototype && Array.prototype.every && Array.prototype.filter && Array.prototype.forEach && Array.prototype.indexOf && Array.prototype.lastIndexOf && Array.prototype.map && Array.prototype.some && Array.prototype.reduce && Array.prototype.reduceRight && Array.isArray ? Function.prototype && Function.prototype.bind ? Object.keys && Object.create && Object.getPrototypeOf && Object.getOwnPropertyNames && Object.isSealed && Object.isFrozen && Object.isExtensible && Object.getOwnPropertyDescriptor && Object.defineProperty && Object.defineProperties && Object.seal && Object.freeze && Object.preventExtensions ? "JSON" in window && "parse" in JSON && "stringify" in JSON ? function() { if (!("Worker" in window && "Blob" in window && "URL" in window)) return false; - var t4, e3, i2 = new Blob([""], { type: "text/javascript" }), o2 = URL.createObjectURL(i2); + var t4, e3, i4 = new Blob([""], { type: "text/javascript" }), o3 = URL.createObjectURL(i4); try { - e3 = new Worker(o2), t4 = true; + e3 = new Worker(o3), t4 = true; } catch (e4) { t4 = false; } - return e3 && e3.terminate(), URL.revokeObjectURL(o2), t4; + return e3 && e3.terminate(), URL.revokeObjectURL(o3), t4; }() ? "Uint8ClampedArray" in window ? ArrayBuffer.isView ? function() { var t4 = document.createElement("canvas"); t4.width = t4.height = 1; var e3 = t4.getContext("2d"); if (!e3) return false; - var i2 = e3.getImageData(0, 0, 1, 1); - return i2 && i2.width === t4.width; - }() ? (void 0 === o[e2 = t3 && t3.failIfMajorPerformanceCaveat] && (o[e2] = function(t4) { - var e3, o2 = function(t5) { - var e4 = document.createElement("canvas"), o3 = Object.create(i.webGLContextAttributes); - return o3.failIfMajorPerformanceCaveat = t5, e4.getContext("webgl", o3) || e4.getContext("experimental-webgl", o3); + var i4 = e3.getImageData(0, 0, 1, 1); + return i4 && i4.width === t4.width; + }() ? (void 0 === o2[i3 = t3 && t3.failIfMajorPerformanceCaveat] && (o2[i3] = function(t4) { + var i4 = function(t5) { + var i5 = document.createElement("canvas"), o4 = Object.create(e2.webGLContextAttributes); + return o4.failIfMajorPerformanceCaveat = t5, i5.probablySupportsContext ? i5.probablySupportsContext("webgl", o4) || i5.probablySupportsContext("experimental-webgl", o4) : i5.supportsContext ? i5.supportsContext("webgl", o4) || i5.supportsContext("experimental-webgl", o4) : i5.getContext("webgl", o4) || i5.getContext("experimental-webgl", o4); }(t4); - if (!o2) - return false; - try { - e3 = o2.createShader(o2.VERTEX_SHADER); - } catch (t5) { - return false; - } - return !(!e3 || o2.isContextLost()) && (o2.shaderSource(e3, "void main() {}"), o2.compileShader(e3), true === o2.getShaderParameter(e3, o2.COMPILE_STATUS)); - }(e2)), o[e2] ? document.documentMode ? "insufficient ECMAScript 6 support" : void 0 : "insufficient WebGL support") : "insufficient Canvas/getImageData support" : "insufficient ArrayBuffer support" : "insufficient Uint8ClampedArray support" : "insufficient worker support" : "insufficient JSON support" : "insufficient Object support" : "insufficient Function support" : "insufficent Array support"; - var e2; - }(t2); - } - var o = {}; - function a(t2, e2) { - if (Array.isArray(t2)) { - if (!Array.isArray(e2) || t2.length !== e2.length) - return false; - for (let i2 = 0; i2 < t2.length; i2++) - if (!a(t2[i2], e2[i2])) - return false; - return true; - } - if ("object" == typeof t2 && null !== t2 && null !== e2) { - if ("object" != typeof e2) - return false; - if (Object.keys(t2).length !== Object.keys(e2).length) - return false; - for (const i2 in t2) - if (!a(t2[i2], e2[i2])) + if (!i4) return false; - return true; + var o3 = i4.createShader(i4.VERTEX_SHADER); + return !(!o3 || i4.isContextLost()) && (i4.shaderSource(o3, "void main() {}"), i4.compileShader(o3), true === i4.getShaderParameter(o3, i4.COMPILE_STATUS)); + }(i3)), o2[i3] ? void 0 : "insufficient WebGL support") : "insufficient Canvas/getImageData support" : "insufficient ArrayBuffer support" : "insufficient Uint8ClampedArray support" : "insufficient worker support" : "insufficient JSON support" : "insufficient Object support" : "insufficient Function support" : "insufficent Array support"; + var i3; } - return t2 === e2; - } - i.webGLContextAttributes = { antialias: false, alpha: true, stencil: true, depth: true }; - class r { - static testProp(t2) { - if (!r.docStyle) - return t2[0]; - for (let e2 = 0; e2 < t2.length; e2++) - if (t2[e2] in r.docStyle) - return t2[e2]; + t2.exports ? t2.exports = e2 : window && (window.mapboxgl = window.mapboxgl || {}, window.mapboxgl.supported = e2, window.mapboxgl.notSupportedReason = i2); + var o2 = {}; + e2.webGLContextAttributes = { antialias: false, alpha: true, stencil: true, depth: true }; + }), i = { create: function(e2, i2, o2) { + var r2 = t.window.document.createElement(e2); + return void 0 !== i2 && (r2.className = i2), o2 && o2.appendChild(r2), r2; + }, createNS: function(e2, i2) { + return t.window.document.createElementNS(e2, i2); + } }, o = t.window.document && t.window.document.documentElement.style; + function r(t2) { + if (!o) return t2[0]; - } - static create(t2, e2, i2) { - const o2 = window.document.createElement(t2); - return void 0 !== e2 && (o2.className = e2), i2 && i2.appendChild(o2), o2; - } - static createNS(t2, e2) { - return window.document.createElementNS(t2, e2); - } - static disableDrag() { - r.docStyle && r.selectProp && (r.userSelect = r.docStyle[r.selectProp], r.docStyle[r.selectProp] = "none"); - } - static enableDrag() { - r.docStyle && r.selectProp && (r.docStyle[r.selectProp] = r.userSelect); - } - static setTransform(t2, e2) { - t2.style[r.transformProp] = e2; - } - static addEventListener(t2, e2, i2, o2 = {}) { - t2.addEventListener(e2, i2, "passive" in o2 ? o2 : o2.capture); - } - static removeEventListener(t2, e2, i2, o2 = {}) { - t2.removeEventListener(e2, i2, "passive" in o2 ? o2 : o2.capture); - } - static suppressClickInternal(t2) { - t2.preventDefault(), t2.stopPropagation(), window.removeEventListener("click", r.suppressClickInternal, true); - } - static suppressClick() { - window.addEventListener("click", r.suppressClickInternal, true), window.setTimeout(() => { - window.removeEventListener("click", r.suppressClickInternal, true); - }, 0); - } - static mousePos(e2, i2) { - const o2 = e2.getBoundingClientRect(); - return new t.pointGeometry(i2.clientX - o2.left - e2.clientLeft, i2.clientY - o2.top - e2.clientTop); - } - static touchPos(e2, i2) { - const o2 = e2.getBoundingClientRect(), a2 = []; - for (let r2 = 0; r2 < i2.length; r2++) - a2.push(new t.pointGeometry(i2[r2].clientX - o2.left - e2.clientLeft, i2[r2].clientY - o2.top - e2.clientTop)); - return a2; - } - static mouseButton(t2) { - return t2.button; - } - static remove(t2) { - t2.parentNode && t2.parentNode.removeChild(t2); - } - } - r.docStyle = "undefined" != typeof window && window.document && window.document.documentElement.style, r.selectProp = r.testProp(["userSelect", "MozUserSelect", "WebkitUserSelect", "msUserSelect"]), r.transformProp = r.testProp(["transform", "WebkitTransform"]); - class s { - constructor(t2) { - this._transformRequestFn = t2; - } - transformRequest(t2, e2) { - return this._transformRequestFn && this._transformRequestFn(t2, e2) || { url: t2 }; - } - normalizeSpriteURL(t2, e2, i2) { - const o2 = function(t3) { - const e3 = t3.match(n); - if (!e3) - throw new Error(`Unable to parse URL "${t3}"`); - return { protocol: e3[1], authority: e3[2], path: e3[3] || "/", params: e3[4] ? e3[4].split("&") : [] }; - }(t2); - return o2.path += `${e2}${i2}`, function(t3) { - const e3 = t3.params.length ? `?${t3.params.join("&")}` : ""; - return `${t3.protocol}://${t3.authority}${t3.path}${e3}`; - }(o2); - } - setTransformRequest(t2) { - this._transformRequestFn = t2; - } - } - const n = /^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/; - class l { - constructor(t2, e2, i2, o2) { - this.context = t2, this.format = i2, this.texture = t2.gl.createTexture(), this.update(e2, o2); - } - update(e2, i2, o2) { - const { width: a2, height: r2 } = e2, s2 = !(this.size && this.size[0] === a2 && this.size[1] === r2 || o2), { context: n2 } = this, { gl: l2 } = n2; - if (this.useMipmap = Boolean(i2 && i2.useMipmap), l2.bindTexture(l2.TEXTURE_2D, this.texture), n2.pixelStoreUnpackFlipY.set(false), n2.pixelStoreUnpack.set(1), n2.pixelStoreUnpackPremultiplyAlpha.set(this.format === l2.RGBA && (!i2 || false !== i2.premultiply)), s2) - this.size = [a2, r2], e2 instanceof HTMLImageElement || e2 instanceof HTMLCanvasElement || e2 instanceof HTMLVideoElement || e2 instanceof ImageData || t.isImageBitmap(e2) ? l2.texImage2D(l2.TEXTURE_2D, 0, this.format, this.format, l2.UNSIGNED_BYTE, e2) : l2.texImage2D(l2.TEXTURE_2D, 0, this.format, a2, r2, 0, this.format, l2.UNSIGNED_BYTE, e2.data); - else { - const { x: i3, y: s3 } = o2 || { x: 0, y: 0 }; - e2 instanceof HTMLImageElement || e2 instanceof HTMLCanvasElement || e2 instanceof HTMLVideoElement || e2 instanceof ImageData || t.isImageBitmap(e2) ? l2.texSubImage2D(l2.TEXTURE_2D, 0, i3, s3, l2.RGBA, l2.UNSIGNED_BYTE, e2) : l2.texSubImage2D(l2.TEXTURE_2D, 0, i3, s3, a2, r2, l2.RGBA, l2.UNSIGNED_BYTE, e2.data); - } - this.useMipmap && this.isSizePowerOfTwo() && l2.generateMipmap(l2.TEXTURE_2D); - } - bind(t2, e2, i2) { - const { context: o2 } = this, { gl: a2 } = o2; - a2.bindTexture(a2.TEXTURE_2D, this.texture), i2 !== a2.LINEAR_MIPMAP_NEAREST || this.isSizePowerOfTwo() || (i2 = a2.LINEAR), t2 !== this.filter && (a2.texParameteri(a2.TEXTURE_2D, a2.TEXTURE_MAG_FILTER, t2), a2.texParameteri(a2.TEXTURE_2D, a2.TEXTURE_MIN_FILTER, i2 || t2), this.filter = t2), e2 !== this.wrap && (a2.texParameteri(a2.TEXTURE_2D, a2.TEXTURE_WRAP_S, e2), a2.texParameteri(a2.TEXTURE_2D, a2.TEXTURE_WRAP_T, e2), this.wrap = e2); - } - isSizePowerOfTwo() { - return this.size[0] === this.size[1] && Math.log(this.size[0]) / Math.LN2 % 1 == 0; - } - destroy() { - const { gl: t2 } = this.context; - t2.deleteTexture(this.texture), this.texture = null; - } + for (var e2 = 0; e2 < t2.length; e2++) + if (t2[e2] in o) + return t2[e2]; + return t2[0]; + } + var a, n = r(["userSelect", "MozUserSelect", "WebkitUserSelect", "msUserSelect"]); + i.disableDrag = function() { + o && n && (a = o[n], o[n] = "none"); + }, i.enableDrag = function() { + o && n && (o[n] = a); + }; + var s = r(["transform", "WebkitTransform"]); + i.setTransform = function(t2, e2) { + t2.style[s] = e2; + }; + var l = false; + try { + var c2 = Object.defineProperty({}, "passive", { get: function() { + l = true; + } }); + t.window.addEventListener("test", c2, c2), t.window.removeEventListener("test", c2, c2); + } catch (t2) { + l = false; } - function c2(t2) { - const { userImage: e2 } = t2; + i.addEventListener = function(t2, e2, i2, o2) { + void 0 === o2 && (o2 = {}), t2.addEventListener(e2, i2, "passive" in o2 && l ? o2 : o2.capture); + }, i.removeEventListener = function(t2, e2, i2, o2) { + void 0 === o2 && (o2 = {}), t2.removeEventListener(e2, i2, "passive" in o2 && l ? o2 : o2.capture); + }; + var u = function(e2) { + e2.preventDefault(), e2.stopPropagation(), t.window.removeEventListener("click", u, true); + }; + function h2(t2) { + var e2 = t2.userImage; return !!(e2 && e2.render && e2.render()) && (t2.data.replace(new Uint8Array(e2.data.buffer)), true); } - class h2 extends t.Evented { - constructor() { - super(), this.images = {}, this.updatedImages = {}, this.callbackDispatchedThisFrame = {}, this.loaded = false, this.requestors = [], this.patterns = {}, this.atlasImage = new t.RGBAImage({ width: 1, height: 1 }), this.dirty = true; + i.suppressClick = function() { + t.window.addEventListener("click", u, true), t.window.setTimeout(function() { + t.window.removeEventListener("click", u, true); + }, 0); + }, i.mousePos = function(e2, i2) { + var o2 = e2.getBoundingClientRect(); + return new t.Point(i2.clientX - o2.left - e2.clientLeft, i2.clientY - o2.top - e2.clientTop); + }, i.touchPos = function(e2, i2) { + for (var o2 = e2.getBoundingClientRect(), r2 = [], a2 = 0; a2 < i2.length; a2++) + r2.push(new t.Point(i2[a2].clientX - o2.left - e2.clientLeft, i2[a2].clientY - o2.top - e2.clientTop)); + return r2; + }, i.mouseButton = function(e2) { + return void 0 !== t.window.InstallTrigger && 2 === e2.button && e2.ctrlKey && t.window.navigator.platform.toUpperCase().indexOf("MAC") >= 0 ? 0 : e2.button; + }, i.remove = function(t2) { + t2.parentNode && t2.parentNode.removeChild(t2); + }; + var p2 = function(e2) { + function i2() { + e2.call(this), this.images = {}, this.updatedImages = {}, this.callbackDispatchedThisFrame = {}, this.loaded = false, this.requestors = [], this.patterns = {}, this.atlasImage = new t.RGBAImage({ width: 1, height: 1 }), this.dirty = true; } - isLoaded() { + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.isLoaded = function() { return this.loaded; - } - setLoaded(t2) { + }, i2.prototype.setLoaded = function(t2) { if (this.loaded !== t2 && (this.loaded = t2, t2)) { - for (const { ids: t3, callback: e2 } of this.requestors) - this._notify(t3, e2); + for (var e3 = 0, i3 = this.requestors; e3 < i3.length; e3 += 1) { + var o2 = i3[e3]; + this._notify(o2.ids, o2.callback); + } this.requestors = []; } - } - getImage(t2) { + }, i2.prototype.getImage = function(t2) { return this.images[t2]; - } - addImage(t2, e2) { - if (this.images[t2]) - throw new Error(`Image id ${t2} already exist, use updateImage instead`); - this._validate(t2, e2) && (this.images[t2] = e2); - } - _validate(e2, i2) { - let o2 = true; - return this._validateStretch(i2.stretchX, i2.data && i2.data.width) || (this.fire(new t.ErrorEvent(new Error(`Image "${e2}" has invalid "stretchX" value`))), o2 = false), this._validateStretch(i2.stretchY, i2.data && i2.data.height) || (this.fire(new t.ErrorEvent(new Error(`Image "${e2}" has invalid "stretchY" value`))), o2 = false), this._validateContent(i2.content, i2) || (this.fire(new t.ErrorEvent(new Error(`Image "${e2}" has invalid "content" value`))), o2 = false), o2; - } - _validateStretch(t2, e2) { + }, i2.prototype.addImage = function(t2, e3) { + this._validate(t2, e3) && (this.images[t2] = e3); + }, i2.prototype._validate = function(e3, i3) { + var o2 = true; + return this._validateStretch(i3.stretchX, i3.data && i3.data.width) || (this.fire(new t.ErrorEvent(new Error('Image "' + e3 + '" has invalid "stretchX" value'))), o2 = false), this._validateStretch(i3.stretchY, i3.data && i3.data.height) || (this.fire(new t.ErrorEvent(new Error('Image "' + e3 + '" has invalid "stretchY" value'))), o2 = false), this._validateContent(i3.content, i3) || (this.fire(new t.ErrorEvent(new Error('Image "' + e3 + '" has invalid "content" value'))), o2 = false), o2; + }, i2.prototype._validateStretch = function(t2, e3) { if (!t2) return true; - let i2 = 0; - for (const o2 of t2) { - if (o2[0] < i2 || o2[1] < o2[0] || e2 < o2[1]) + for (var i3 = 0, o2 = 0, r2 = t2; o2 < r2.length; o2 += 1) { + var a2 = r2[o2]; + if (a2[0] < i3 || a2[1] < a2[0] || e3 < a2[1]) return false; - i2 = o2[1]; + i3 = a2[1]; } return true; - } - _validateContent(t2, e2) { - return !(t2 && (4 !== t2.length || t2[0] < 0 || e2.data.width < t2[0] || t2[1] < 0 || e2.data.height < t2[1] || t2[2] < 0 || e2.data.width < t2[2] || t2[3] < 0 || e2.data.height < t2[3] || t2[2] < t2[0] || t2[3] < t2[1])); - } - updateImage(t2, e2) { - const i2 = this.images[t2]; - if (i2.data.width !== e2.data.width || i2.data.height !== e2.data.height) - throw new Error(`size mismatch between old image (${i2.data.width}x${i2.data.height}) and new image (${e2.data.width}x${e2.data.height}).`); - e2.version = i2.version + 1, this.images[t2] = e2, this.updatedImages[t2] = true; - } - removeImage(t2) { - const e2 = this.images[t2]; - delete this.images[t2], delete this.patterns[t2], e2.userImage && e2.userImage.onRemove && e2.userImage.onRemove(); - } - listImages() { + }, i2.prototype._validateContent = function(t2, e3) { + return !(t2 && (4 !== t2.length || t2[0] < 0 || e3.data.width < t2[0] || t2[1] < 0 || e3.data.height < t2[1] || t2[2] < 0 || e3.data.width < t2[2] || t2[3] < 0 || e3.data.height < t2[3] || t2[2] < t2[0] || t2[3] < t2[1])); + }, i2.prototype.updateImage = function(t2, e3) { + e3.version = this.images[t2].version + 1, this.images[t2] = e3, this.updatedImages[t2] = true; + }, i2.prototype.removeImage = function(t2) { + var e3 = this.images[t2]; + delete this.images[t2], delete this.patterns[t2], e3.userImage && e3.userImage.onRemove && e3.userImage.onRemove(); + }, i2.prototype.listImages = function() { return Object.keys(this.images); - } - getImages(t2, e2) { - let i2 = true; + }, i2.prototype.getImages = function(t2, e3) { + var i3 = true; if (!this.isLoaded()) - for (const e3 of t2) - this.images[e3] || (i2 = false); - this.isLoaded() || i2 ? this._notify(t2, e2) : this.requestors.push({ ids: t2, callback: e2 }); - } - _notify(e2, i2) { - const o2 = {}; - for (const i3 of e2) { - this.images[i3] || this.fire(new t.Event("styleimagemissing", { id: i3 })); - const e3 = this.images[i3]; - e3 ? o2[i3] = { data: e3.data.clone(), pixelRatio: e3.pixelRatio, sdf: e3.sdf, version: e3.version, stretchX: e3.stretchX, stretchY: e3.stretchY, content: e3.content, hasRenderCallback: Boolean(e3.userImage && e3.userImage.render) } : t.warnOnce(`Image "${i3}" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.`); - } - i2(null, o2); - } - getPixelSize() { - const { width: t2, height: e2 } = this.atlasImage; - return { width: t2, height: e2 }; - } - getPattern(e2) { - const i2 = this.patterns[e2], o2 = this.getImage(e2); + for (var o2 = 0, r2 = t2; o2 < r2.length; o2 += 1) + this.images[r2[o2]] || (i3 = false); + this.isLoaded() || i3 ? this._notify(t2, e3) : this.requestors.push({ ids: t2, callback: e3 }); + }, i2.prototype._notify = function(e3, i3) { + for (var o2 = {}, r2 = 0, a2 = e3; r2 < a2.length; r2 += 1) { + var n2 = a2[r2]; + this.images[n2] || this.fire(new t.Event("styleimagemissing", { id: n2 })); + var s2 = this.images[n2]; + s2 ? o2[n2] = { data: s2.data.clone(), pixelRatio: s2.pixelRatio, sdf: s2.sdf, version: s2.version, stretchX: s2.stretchX, stretchY: s2.stretchY, content: s2.content, hasRenderCallback: Boolean(s2.userImage && s2.userImage.render) } : t.warnOnce('Image "' + n2 + '" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.'); + } + i3(null, o2); + }, i2.prototype.getPixelSize = function() { + var t2 = this.atlasImage; + return { width: t2.width, height: t2.height }; + }, i2.prototype.getPattern = function(e3) { + var i3 = this.patterns[e3], o2 = this.getImage(e3); if (!o2) return null; - if (i2 && i2.position.version === o2.version) - return i2.position; - if (i2) - i2.position.version = o2.version; + if (i3 && i3.position.version === o2.version) + return i3.position; + if (i3) + i3.position.version = o2.version; else { - const i3 = { w: o2.data.width + 2, h: o2.data.height + 2, x: 0, y: 0 }, a2 = new t.ImagePosition(i3, o2); - this.patterns[e2] = { bin: i3, position: a2 }; - } - return this._updatePatternAtlas(), this.patterns[e2].position; - } - bind(t2) { - const e2 = t2.gl; - this.atlasTexture ? this.dirty && (this.atlasTexture.update(this.atlasImage), this.dirty = false) : this.atlasTexture = new l(t2, this.atlasImage, e2.RGBA), this.atlasTexture.bind(e2.LINEAR, e2.CLAMP_TO_EDGE); - } - _updatePatternAtlas() { - const e2 = []; - for (const t2 in this.patterns) - e2.push(this.patterns[t2].bin); - const { w: i2, h: o2 } = t.potpack(e2), a2 = this.atlasImage; - a2.resize({ width: i2 || 1, height: o2 || 1 }); - for (const e3 in this.patterns) { - const { bin: i3 } = this.patterns[e3], o3 = i3.x + 1, r2 = i3.y + 1, s2 = this.images[e3].data, n2 = s2.width, l2 = s2.height; - t.RGBAImage.copy(s2, a2, { x: 0, y: 0 }, { x: o3, y: r2 }, { width: n2, height: l2 }), t.RGBAImage.copy(s2, a2, { x: 0, y: l2 - 1 }, { x: o3, y: r2 - 1 }, { width: n2, height: 1 }), t.RGBAImage.copy(s2, a2, { x: 0, y: 0 }, { x: o3, y: r2 + l2 }, { width: n2, height: 1 }), t.RGBAImage.copy(s2, a2, { x: n2 - 1, y: 0 }, { x: o3 - 1, y: r2 }, { width: 1, height: l2 }), t.RGBAImage.copy(s2, a2, { x: 0, y: 0 }, { x: o3 + n2, y: r2 }, { width: 1, height: l2 }); + var r2 = { w: o2.data.width + 2, h: o2.data.height + 2, x: 0, y: 0 }, a2 = new t.ImagePosition(r2, o2); + this.patterns[e3] = { bin: r2, position: a2 }; + } + return this._updatePatternAtlas(), this.patterns[e3].position; + }, i2.prototype.bind = function(e3) { + var i3 = e3.gl; + this.atlasTexture ? this.dirty && (this.atlasTexture.update(this.atlasImage), this.dirty = false) : this.atlasTexture = new t.Texture(e3, this.atlasImage, i3.RGBA), this.atlasTexture.bind(i3.LINEAR, i3.CLAMP_TO_EDGE); + }, i2.prototype._updatePatternAtlas = function() { + var e3 = []; + for (var i3 in this.patterns) + e3.push(this.patterns[i3].bin); + var o2 = t.potpack(e3), r2 = o2.w, a2 = o2.h, n2 = this.atlasImage; + for (var s2 in n2.resize({ width: r2 || 1, height: a2 || 1 }), this.patterns) { + var l2 = this.patterns[s2].bin, c3 = l2.x + 1, u2 = l2.y + 1, h3 = this.images[s2].data, p3 = h3.width, d2 = h3.height; + t.RGBAImage.copy(h3, n2, { x: 0, y: 0 }, { x: c3, y: u2 }, { width: p3, height: d2 }), t.RGBAImage.copy(h3, n2, { x: 0, y: d2 - 1 }, { x: c3, y: u2 - 1 }, { width: p3, height: 1 }), t.RGBAImage.copy(h3, n2, { x: 0, y: 0 }, { x: c3, y: u2 + d2 }, { width: p3, height: 1 }), t.RGBAImage.copy(h3, n2, { x: p3 - 1, y: 0 }, { x: c3 - 1, y: u2 }, { width: 1, height: d2 }), t.RGBAImage.copy(h3, n2, { x: 0, y: 0 }, { x: c3 + p3, y: u2 }, { width: 1, height: d2 }); } this.dirty = true; - } - beginFrame() { + }, i2.prototype.beginFrame = function() { this.callbackDispatchedThisFrame = {}; - } - dispatchRenderCallbacks(e2) { - for (const i2 of e2) { - if (this.callbackDispatchedThisFrame[i2]) - continue; - this.callbackDispatchedThisFrame[i2] = true; - const e3 = this.images[i2]; - e3 || t.warnOnce(`Image with ID: "${i2}" was not found`), c2(e3) && this.updateImage(i2, e3); + }, i2.prototype.dispatchRenderCallbacks = function(t2) { + for (var e3 = 0, i3 = t2; e3 < i3.length; e3 += 1) { + var o2 = i3[e3]; + if (!this.callbackDispatchedThisFrame[o2]) { + this.callbackDispatchedThisFrame[o2] = true; + var r2 = this.images[o2]; + h2(r2) && this.updateImage(o2, r2); + } } - } - } - const u = 1e20; - function d(t2, e2, i2, o2, a2, r2, s2, n2, l2) { - for (let c3 = e2; c3 < e2 + o2; c3++) - m(t2, i2 * r2 + c3, r2, a2, s2, n2, l2); - for (let c3 = i2; c3 < i2 + a2; c3++) - m(t2, c3 * r2 + e2, 1, o2, s2, n2, l2); - } - function m(t2, e2, i2, o2, a2, r2, s2) { - r2[0] = 0, s2[0] = -u, s2[1] = u, a2[0] = t2[e2]; - for (let n2 = 1, l2 = 0, c3 = 0; n2 < o2; n2++) { - a2[n2] = t2[e2 + n2 * i2]; - const o3 = n2 * n2; - do { - const t3 = r2[l2]; - c3 = (a2[n2] - a2[t3] + o3 - t3 * t3) / (n2 - t3) / 2; - } while (c3 <= s2[l2] && --l2 > -1); - l2++, r2[l2] = n2, s2[l2] = c3, s2[l2 + 1] = u; - } - for (let n2 = 0, l2 = 0; n2 < o2; n2++) { - for (; s2[l2 + 1] < n2; ) - l2++; - const o3 = r2[l2], c3 = n2 - o3; - t2[e2 + n2 * i2] = a2[o3] + c3 * c3; - } - } - class _ { - constructor(t2, e2) { - this.requestManager = t2, this.localIdeographFontFamily = e2, this.entries = {}; - } - setURL(t2) { - this.url = t2; - } - getGlyphs(e2, i2) { - const o2 = []; - for (const t2 in e2) - for (const i3 of e2[t2]) - o2.push({ stack: t2, id: i3 }); - t.asyncAll(o2, ({ stack: t2, id: e3 }, i3) => { - let o3 = this.entries[t2]; - o3 || (o3 = this.entries[t2] = { glyphs: {}, requests: {}, ranges: {} }); - let a2 = o3.glyphs[e3]; - if (void 0 !== a2) - return void i3(null, { stack: t2, id: e3, glyph: a2 }); - if (a2 = this._tinySDF(o3, t2, e3), a2) - return o3.glyphs[e3] = a2, void i3(null, { stack: t2, id: e3, glyph: a2 }); - const r2 = Math.floor(e3 / 256); - if (256 * r2 > 65535) - return void i3(new Error("glyphs > 65535 not supported")); - if (o3.ranges[r2]) - return void i3(null, { stack: t2, id: e3, glyph: a2 }); - let s2 = o3.requests[r2]; - s2 || (s2 = o3.requests[r2] = [], _.loadGlyphRange(t2, r2, this.url, this.requestManager, (t3, e4) => { - if (e4) { - for (const t4 in e4) - this._doesCharSupportLocalGlyph(+t4) || (o3.glyphs[+t4] = e4[+t4]); - o3.ranges[r2] = true; - } - for (const i4 of s2) - i4(t3, e4); - delete o3.requests[r2]; - })), s2.push((o4, a3) => { - o4 ? i3(o4) : a3 && i3(null, { stack: t2, id: e3, glyph: a3[e3] || null }); - }); - }, (t2, e3) => { - if (t2) - i2(t2); - else if (e3) { - const t3 = {}; - for (const { stack: i3, id: o3, glyph: a2 } of e3) - (t3[i3] || (t3[i3] = {}))[o3] = a2 && { id: a2.id, bitmap: a2.bitmap.clone(), metrics: a2.metrics }; - i2(null, t3); + }, i2; + }(t.Evented), d = m, _ = m, f = 1e20; + function m(t2, e2, i2, o2, r2, a2) { + this.fontSize = t2 || 24, this.buffer = void 0 === e2 ? 3 : e2, this.cutoff = o2 || 0.25, this.fontFamily = r2 || "sans-serif", this.fontWeight = a2 || "normal", this.radius = i2 || 8; + var n2 = this.size = this.fontSize + 2 * this.buffer; + this.canvas = document.createElement("canvas"), this.canvas.width = this.canvas.height = n2, this.ctx = this.canvas.getContext("2d"), this.ctx.font = this.fontWeight + " " + this.fontSize + "px " + this.fontFamily, this.ctx.textBaseline = "middle", this.ctx.fillStyle = "black", this.gridOuter = new Float64Array(n2 * n2), this.gridInner = new Float64Array(n2 * n2), this.f = new Float64Array(n2), this.d = new Float64Array(n2), this.z = new Float64Array(n2 + 1), this.v = new Int16Array(n2), this.middle = Math.round(n2 / 2 * (navigator.userAgent.indexOf("Gecko/") >= 0 ? 1.2 : 1)); + } + function g(t2, e2, i2, o2, r2, a2, n2) { + for (var s2 = 0; s2 < e2; s2++) { + for (var l2 = 0; l2 < i2; l2++) + o2[l2] = t2[l2 * e2 + s2]; + for (v2(o2, r2, a2, n2, i2), l2 = 0; l2 < i2; l2++) + t2[l2 * e2 + s2] = r2[l2]; + } + for (l2 = 0; l2 < i2; l2++) { + for (s2 = 0; s2 < e2; s2++) + o2[s2] = t2[l2 * e2 + s2]; + for (v2(o2, r2, a2, n2, e2), s2 = 0; s2 < e2; s2++) + t2[l2 * e2 + s2] = Math.sqrt(r2[s2]); + } + } + function v2(t2, e2, i2, o2, r2) { + i2[0] = 0, o2[0] = -f, o2[1] = +f; + for (var a2 = 1, n2 = 0; a2 < r2; a2++) { + for (var s2 = (t2[a2] + a2 * a2 - (t2[i2[n2]] + i2[n2] * i2[n2])) / (2 * a2 - 2 * i2[n2]); s2 <= o2[n2]; ) + n2--, s2 = (t2[a2] + a2 * a2 - (t2[i2[n2]] + i2[n2] * i2[n2])) / (2 * a2 - 2 * i2[n2]); + i2[++n2] = a2, o2[n2] = s2, o2[n2 + 1] = +f; + } + for (a2 = 0, n2 = 0; a2 < r2; a2++) { + for (; o2[n2 + 1] < a2; ) + n2++; + e2[a2] = (a2 - i2[n2]) * (a2 - i2[n2]) + t2[i2[n2]]; + } + } + m.prototype.draw = function(t2) { + this.ctx.clearRect(0, 0, this.size, this.size), this.ctx.fillText(t2, this.buffer, this.middle); + for (var e2 = this.ctx.getImageData(0, 0, this.size, this.size), i2 = new Uint8ClampedArray(this.size * this.size), o2 = 0; o2 < this.size * this.size; o2++) { + var r2 = e2.data[4 * o2 + 3] / 255; + this.gridOuter[o2] = 1 === r2 ? 0 : 0 === r2 ? f : Math.pow(Math.max(0, 0.5 - r2), 2), this.gridInner[o2] = 1 === r2 ? f : 0 === r2 ? 0 : Math.pow(Math.max(0, r2 - 0.5), 2); + } + for (g(this.gridOuter, this.size, this.size, this.f, this.d, this.v, this.z), g(this.gridInner, this.size, this.size, this.f, this.d, this.v, this.z), o2 = 0; o2 < this.size * this.size; o2++) + i2[o2] = Math.max(0, Math.min(255, Math.round(255 - 255 * ((this.gridOuter[o2] - this.gridInner[o2]) / this.radius + this.cutoff)))); + return i2; + }, d.default = _; + var y2 = function(t2, e2) { + this.requestManager = t2, this.localIdeographFontFamily = e2, this.entries = {}; + }; + y2.prototype.setURL = function(t2) { + this.url = t2; + }, y2.prototype.getGlyphs = function(e2, i2) { + var o2 = this, r2 = []; + for (var a2 in e2) + for (var n2 = 0, s2 = e2[a2]; n2 < s2.length; n2 += 1) + r2.push({ stack: a2, id: s2[n2] }); + t.asyncAll(r2, function(t2, e3) { + var i3 = t2.stack, r3 = t2.id, a3 = o2.entries[i3]; + a3 || (a3 = o2.entries[i3] = { glyphs: {}, requests: {}, ranges: {} }); + var n3 = a3.glyphs[r3]; + if (void 0 === n3) { + if (n3 = o2._tinySDF(a3, i3, r3)) + return a3.glyphs[r3] = n3, void e3(null, { stack: i3, id: r3, glyph: n3 }); + var s3 = Math.floor(r3 / 256); + if (256 * s3 > 65535) + e3(new Error("glyphs > 65535 not supported")); + else if (a3.ranges[s3]) + e3(null, { stack: i3, id: r3, glyph: n3 }); + else { + var l2 = a3.requests[s3]; + l2 || (l2 = a3.requests[s3] = [], y2.loadGlyphRange(i3, s3, o2.url, o2.requestManager, function(t3, e4) { + if (e4) { + for (var i4 in e4) + o2._doesCharSupportLocalGlyph(+i4) || (a3.glyphs[+i4] = e4[+i4]); + a3.ranges[s3] = true; + } + for (var r4 = 0, n4 = l2; r4 < n4.length; r4 += 1) + (0, n4[r4])(t3, e4); + delete a3.requests[s3]; + })), l2.push(function(t3, o3) { + t3 ? e3(t3) : o3 && e3(null, { stack: i3, id: r3, glyph: o3[r3] || null }); + }); } - }); - } - _doesCharSupportLocalGlyph(e2) { - return !!this.localIdeographFontFamily && (t.unicodeBlockLookup["CJK Unified Ideographs"](e2) || t.unicodeBlockLookup["Hangul Syllables"](e2) || t.unicodeBlockLookup.Hiragana(e2) || t.unicodeBlockLookup.Katakana(e2)); - } - _tinySDF(e2, i2, o2) { - const a2 = this.localIdeographFontFamily; - if (!a2) - return; - if (!this._doesCharSupportLocalGlyph(o2)) - return; - let r2 = e2.tinySDF; - if (!r2) { - let t2 = "400"; - /bold/i.test(i2) ? t2 = "900" : /medium/i.test(i2) ? t2 = "500" : /light/i.test(i2) && (t2 = "200"), r2 = e2.tinySDF = new _.TinySDF({ fontSize: 24, buffer: 3, radius: 8, cutoff: 0.25, fontFamily: a2, fontWeight: t2 }); + } else + e3(null, { stack: i3, id: r3, glyph: n3 }); + }, function(t2, e3) { + if (t2) + i2(t2); + else if (e3) { + for (var o3 = {}, r3 = 0, a3 = e3; r3 < a3.length; r3 += 1) { + var n3 = a3[r3], s3 = n3.stack, l2 = n3.id, c3 = n3.glyph; + (o3[s3] || (o3[s3] = {}))[l2] = c3 && { id: c3.id, bitmap: c3.bitmap.clone(), metrics: c3.metrics }; + } + i2(null, o3); } - const s2 = r2.draw(String.fromCharCode(o2)); - return { id: o2, bitmap: new t.AlphaImage({ width: s2.width || 30, height: s2.height || 30 }, s2.data), metrics: { width: s2.glyphWidth || 24, height: s2.glyphHeight || 24, left: s2.glyphLeft || 0, top: s2.glyphTop - 27 || -8, advance: s2.glyphAdvance || 24 } }; - } - } - _.loadGlyphRange = function(e2, i2, o2, a2, r2) { - const s2 = 256 * i2, n2 = s2 + 255, l2 = a2.transformRequest(o2.replace("{fontstack}", e2).replace("{range}", `${s2}-${n2}`), t.ResourceType.Glyphs); - t.getArrayBuffer(l2, (e3, i3) => { + }); + }, y2.prototype._doesCharSupportLocalGlyph = function(e2) { + return !!this.localIdeographFontFamily && (t.isChar["CJK Unified Ideographs"](e2) || t.isChar["Hangul Syllables"](e2) || t.isChar.Hiragana(e2) || t.isChar.Katakana(e2)); + }, y2.prototype._tinySDF = function(e2, i2, o2) { + var r2 = this.localIdeographFontFamily; + if (r2 && this._doesCharSupportLocalGlyph(o2)) { + var a2 = e2.tinySDF; + if (!a2) { + var n2 = "400"; + /bold/i.test(i2) ? n2 = "900" : /medium/i.test(i2) ? n2 = "500" : /light/i.test(i2) && (n2 = "200"), a2 = e2.tinySDF = new y2.TinySDF(24, 3, 8, 0.25, r2, n2); + } + return { id: o2, bitmap: new t.AlphaImage({ width: 30, height: 30 }, a2.draw(String.fromCharCode(o2))), metrics: { width: 24, height: 24, left: 0, top: -8, advance: 24 } }; + } + }, y2.loadGlyphRange = function(e2, i2, o2, r2, a2) { + var n2 = 256 * i2, s2 = n2 + 255, l2 = r2.transformRequest(r2.normalizeGlyphsURL(o2).replace("{fontstack}", e2).replace("{range}", n2 + "-" + s2), t.ResourceType.Glyphs); + t.getArrayBuffer(l2, function(e3, i3) { if (e3) - r2(e3); + a2(e3); else if (i3) { - const e4 = {}; - for (const o3 of t.parseGlyphPbf(i3)) - e4[o3.id] = o3; - r2(null, e4); - } - }); - }, _.TinySDF = class { - constructor({ fontSize: t2 = 24, buffer: e2 = 3, radius: i2 = 8, cutoff: o2 = 0.25, fontFamily: a2 = "sans-serif", fontWeight: r2 = "normal", fontStyle: s2 = "normal" } = {}) { - this.buffer = e2, this.cutoff = o2, this.radius = i2; - const n2 = this.size = t2 + 4 * e2, l2 = this._createCanvas(n2), c3 = this.ctx = l2.getContext("2d", { willReadFrequently: true }); - c3.font = `${s2} ${r2} ${t2}px ${a2}`, c3.textBaseline = "alphabetic", c3.textAlign = "left", c3.fillStyle = "black", this.gridOuter = new Float64Array(n2 * n2), this.gridInner = new Float64Array(n2 * n2), this.f = new Float64Array(n2), this.z = new Float64Array(n2 + 1), this.v = new Uint16Array(n2); - } - _createCanvas(t2) { - const e2 = document.createElement("canvas"); - return e2.width = e2.height = t2, e2; - } - draw(t2) { - const { width: e2, actualBoundingBoxAscent: i2, actualBoundingBoxDescent: o2, actualBoundingBoxLeft: a2, actualBoundingBoxRight: r2 } = this.ctx.measureText(t2), s2 = Math.ceil(i2), n2 = Math.min(this.size - this.buffer, Math.ceil(r2 - a2)), l2 = Math.min(this.size - this.buffer, s2 + Math.ceil(o2)), c3 = n2 + 2 * this.buffer, h3 = l2 + 2 * this.buffer, m2 = Math.max(c3 * h3, 0), _2 = new Uint8ClampedArray(m2), p3 = { data: _2, width: c3, height: h3, glyphWidth: n2, glyphHeight: l2, glyphTop: s2, glyphLeft: 0, glyphAdvance: e2 }; - if (0 === n2 || 0 === l2) - return p3; - const { ctx: f2, buffer: g2, gridInner: x2, gridOuter: v3 } = this; - f2.clearRect(g2, g2, n2, l2), f2.fillText(t2, g2, g2 + s2); - const y3 = f2.getImageData(g2, g2, n2, l2); - v3.fill(u, 0, m2), x2.fill(0, 0, m2); - for (let t3 = 0; t3 < l2; t3++) - for (let e3 = 0; e3 < n2; e3++) { - const i3 = y3.data[4 * (t3 * n2 + e3) + 3] / 255; - if (0 === i3) - continue; - const o3 = (t3 + g2) * c3 + e3 + g2; - if (1 === i3) - v3[o3] = 0, x2[o3] = u; - else { - const t4 = 0.5 - i3; - v3[o3] = t4 > 0 ? t4 * t4 : 0, x2[o3] = t4 < 0 ? t4 * t4 : 0; - } + for (var o3 = {}, r3 = 0, n3 = t.parseGlyphPBF(i3); r3 < n3.length; r3 += 1) { + var s3 = n3[r3]; + o3[s3.id] = s3; } - d(v3, 0, 0, c3, h3, c3, this.f, this.v, this.z), d(x2, g2, g2, n2, l2, c3, this.f, this.v, this.z); - for (let t3 = 0; t3 < m2; t3++) { - const e3 = Math.sqrt(v3[t3]) - Math.sqrt(x2[t3]); - _2[t3] = Math.round(255 - 255 * (e3 / this.radius + this.cutoff)); + a2(null, o3); } - return p3; - } + }); + }, y2.TinySDF = d; + var x = function() { + this.specification = t.styleSpec.light.position; }; - const p2 = new t.Properties({ anchor: new t.DataConstantProperty(t.spec.light.anchor), position: new class { - constructor() { - this.specification = t.spec.light.position; - } - possiblyEvaluate(e2, i2) { - return t.sphericalToCartesian(e2.expression.evaluate(i2)); - } - interpolate(e2, i2, o2) { - return { x: t.number(e2.x, i2.x, o2), y: t.number(e2.y, i2.y, o2), z: t.number(e2.z, i2.z, o2) }; - } - }(), color: new t.DataConstantProperty(t.spec.light.color), intensity: new t.DataConstantProperty(t.spec.light.intensity) }), f = "-transition"; - class g extends t.Evented { - constructor(e2) { - super(), this._transitionable = new t.Transitionable(p2), this.setLight(e2), this._transitioning = this._transitionable.untransitioned(); + x.prototype.possiblyEvaluate = function(e2, i2) { + return t.sphericalToCartesian(e2.expression.evaluate(i2)); + }, x.prototype.interpolate = function(e2, i2, o2) { + return { x: t.number(e2.x, i2.x, o2), y: t.number(e2.y, i2.y, o2), z: t.number(e2.z, i2.z, o2) }; + }; + var b = new t.Properties({ anchor: new t.DataConstantProperty(t.styleSpec.light.anchor), position: new x(), color: new t.DataConstantProperty(t.styleSpec.light.color), intensity: new t.DataConstantProperty(t.styleSpec.light.intensity) }), w = function(e2) { + function i2(i3) { + e2.call(this), this._transitionable = new t.Transitionable(b), this.setLight(i3), this._transitioning = this._transitionable.untransitioned(); } - getLight() { + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.getLight = function() { return this._transitionable.serialize(); - } - setLight(e2, i2 = {}) { - if (!this._validate(t.validateLight, e2, i2)) - for (const t2 in e2) { - const i3 = e2[t2]; - t2.endsWith(f) ? this._transitionable.setTransition(t2.slice(0, -f.length), i3) : this._transitionable.setValue(t2, i3); + }, i2.prototype.setLight = function(e3, i3) { + if (void 0 === i3 && (i3 = {}), !this._validate(t.validateLight, e3, i3)) + for (var o2 in e3) { + var r2 = e3[o2]; + t.endsWith(o2, "-transition") ? this._transitionable.setTransition(o2.slice(0, -"-transition".length), r2) : this._transitionable.setValue(o2, r2); } - } - updateTransitions(t2) { + }, i2.prototype.updateTransitions = function(t2) { this._transitioning = this._transitionable.transitioned(t2, this._transitioning); - } - hasTransition() { + }, i2.prototype.hasTransition = function() { return this._transitioning.hasTransition(); - } - recalculate(t2) { + }, i2.prototype.recalculate = function(t2) { this.properties = this._transitioning.possiblyEvaluate(t2); + }, i2.prototype._validate = function(e3, i3, o2) { + return (!o2 || false !== o2.validate) && t.emitValidationErrors(this, e3.call(t.validateStyle, t.extend({ value: i3, style: { glyphs: true, sprite: true }, styleSpec: t.styleSpec }))); + }, i2; + }(t.Evented), T = function(t2, e2) { + this.width = t2, this.height = e2, this.nextRow = 0, this.data = new Uint8Array(this.width * this.height), this.dashEntry = {}; + }; + T.prototype.getDash = function(t2, e2) { + var i2 = t2.join(",") + String(e2); + return this.dashEntry[i2] || (this.dashEntry[i2] = this.addDash(t2, e2)), this.dashEntry[i2]; + }, T.prototype.getDashRanges = function(t2, e2, i2) { + var o2 = [], r2 = t2.length % 2 == 1 ? -t2[t2.length - 1] * i2 : 0, a2 = t2[0] * i2, n2 = true; + o2.push({ left: r2, right: a2, isDash: n2, zeroLength: 0 === t2[0] }); + for (var s2 = t2[0], l2 = 1; l2 < t2.length; l2++) { + var c3 = t2[l2]; + o2.push({ left: r2 = s2 * i2, right: a2 = (s2 += c3) * i2, isDash: n2 = !n2, zeroLength: 0 === c3 }); } - _validate(e2, i2, o2) { - return (!o2 || false !== o2.validate) && t.emitValidationErrors(this, e2.call(t.validateStyle, t.extend({ value: i2, style: { glyphs: true, sprite: true }, styleSpec: t.spec }))); - } - } - class x { - constructor(t2, e2) { - this.width = t2, this.height = e2, this.nextRow = 0, this.data = new Uint8Array(this.width * this.height), this.dashEntry = {}; - } - getDash(t2, e2) { - const i2 = t2.join(",") + String(e2); - return this.dashEntry[i2] || (this.dashEntry[i2] = this.addDash(t2, e2)), this.dashEntry[i2]; - } - getDashRanges(t2, e2, i2) { - const o2 = []; - let a2 = t2.length % 2 == 1 ? -t2[t2.length - 1] * i2 : 0, r2 = t2[0] * i2, s2 = true; - o2.push({ left: a2, right: r2, isDash: s2, zeroLength: 0 === t2[0] }); - let n2 = t2[0]; - for (let e3 = 1; e3 < t2.length; e3++) { - s2 = !s2; - const l2 = t2[e3]; - a2 = n2 * i2, n2 += l2, r2 = n2 * i2, o2.push({ left: a2, right: r2, isDash: s2, zeroLength: 0 === l2 }); - } - return o2; - } - addRoundDash(t2, e2, i2) { - const o2 = e2 / 2; - for (let e3 = -i2; e3 <= i2; e3++) { - const a2 = this.width * (this.nextRow + i2 + e3); - let r2 = 0, s2 = t2[r2]; - for (let n2 = 0; n2 < this.width; n2++) { - n2 / s2.right > 1 && (s2 = t2[++r2]); - const l2 = Math.abs(n2 - s2.left), c3 = Math.abs(n2 - s2.right), h3 = Math.min(l2, c3); - let u2; - const d2 = e3 / i2 * (o2 + 1); - if (s2.isDash) { - const t3 = o2 - Math.abs(d2); - u2 = Math.sqrt(h3 * h3 + t3 * t3); - } else - u2 = o2 - Math.sqrt(h3 * h3 + d2 * d2); - this.data[a2 + n2] = Math.max(0, Math.min(255, u2 + 128)); - } - } - } - addRegularDash(t2) { - for (let e3 = t2.length - 1; e3 >= 0; --e3) { - const i3 = t2[e3], o3 = t2[e3 + 1]; - i3.zeroLength ? t2.splice(e3, 1) : o3 && o3.isDash === i3.isDash && (o3.left = i3.left, t2.splice(e3, 1)); - } - const e2 = t2[0], i2 = t2[t2.length - 1]; - e2.isDash === i2.isDash && (e2.left = i2.left - this.width, i2.right = e2.right + this.width); - const o2 = this.width * this.nextRow; - let a2 = 0, r2 = t2[a2]; - for (let e3 = 0; e3 < this.width; e3++) { - e3 / r2.right > 1 && (r2 = t2[++a2]); - const i3 = Math.abs(e3 - r2.left), s2 = Math.abs(e3 - r2.right), n2 = Math.min(i3, s2); - this.data[o2 + e3] = Math.max(0, Math.min(255, (r2.isDash ? n2 : -n2) + 128)); - } - } - addDash(e2, i2) { - const o2 = i2 ? 7 : 0, a2 = 2 * o2 + 1; - if (this.nextRow + a2 > this.height) - return t.warnOnce("LineAtlas out of space"), null; - let r2 = 0; - for (let t2 = 0; t2 < e2.length; t2++) - r2 += e2[t2]; - if (0 !== r2) { - const t2 = this.width / r2, a3 = this.getDashRanges(e2, this.width, t2); - i2 ? this.addRoundDash(a3, t2, o2) : this.addRegularDash(a3); - } - const s2 = { y: (this.nextRow + o2 + 0.5) / this.height, height: 2 * o2 / this.height, width: r2 }; - return this.nextRow += a2, this.dirty = true, s2; - } - bind(t2) { - const e2 = t2.gl; - this.texture ? (e2.bindTexture(e2.TEXTURE_2D, this.texture), this.dirty && (this.dirty = false, e2.texSubImage2D(e2.TEXTURE_2D, 0, 0, 0, this.width, this.height, e2.ALPHA, e2.UNSIGNED_BYTE, this.data))) : (this.texture = e2.createTexture(), e2.bindTexture(e2.TEXTURE_2D, this.texture), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_WRAP_S, e2.REPEAT), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_WRAP_T, e2.REPEAT), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_MIN_FILTER, e2.LINEAR), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_MAG_FILTER, e2.LINEAR), e2.texImage2D(e2.TEXTURE_2D, 0, e2.ALPHA, this.width, this.height, 0, e2.ALPHA, e2.UNSIGNED_BYTE, this.data)); - } - } - class v2 { - constructor(e2, i2) { - this.workerPool = e2, this.actors = [], this.currentActor = 0, this.id = t.uniqueId(); - const o2 = this.workerPool.acquire(this.id); - for (let t2 = 0; t2 < o2.length; t2++) { - const e3 = new v2.Actor(o2[t2], i2, this.id); - e3.name = `Worker ${t2}`, this.actors.push(e3); - } - if (!this.actors.length) - throw new Error("No actors found"); - } - broadcast(e2, i2, o2) { - t.asyncAll(this.actors, (t2, o3) => { - t2.send(e2, i2, o3); - }, o2 = o2 || function() { - }); - } - getActor() { - return this.currentActor = (this.currentActor + 1) % this.actors.length, this.actors[this.currentActor]; - } - remove() { - this.actors.forEach((t2) => { - t2.remove(); - }), this.actors = [], this.workerPool.release(this.id); + return o2; + }, T.prototype.addRoundDash = function(t2, e2, i2) { + for (var o2 = e2 / 2, r2 = -i2; r2 <= i2; r2++) + for (var a2 = this.width * (this.nextRow + i2 + r2), n2 = 0, s2 = t2[n2], l2 = 0; l2 < this.width; l2++) { + l2 / s2.right > 1 && (s2 = t2[++n2]); + var c3 = Math.abs(l2 - s2.left), u2 = Math.abs(l2 - s2.right), h3 = Math.min(c3, u2), p3 = void 0, d2 = r2 / i2 * (o2 + 1); + if (s2.isDash) { + var _2 = o2 - Math.abs(d2); + p3 = Math.sqrt(h3 * h3 + _2 * _2); + } else + p3 = o2 - Math.sqrt(h3 * h3 + d2 * d2); + this.data[a2 + l2] = Math.max(0, Math.min(255, p3 + 128)); + } + }, T.prototype.addRegularDash = function(t2) { + for (var e2 = t2.length - 1; e2 >= 0; --e2) { + var i2 = t2[e2], o2 = t2[e2 + 1]; + i2.zeroLength ? t2.splice(e2, 1) : o2 && o2.isDash === i2.isDash && (o2.left = i2.left, t2.splice(e2, 1)); + } + var r2 = t2[0], a2 = t2[t2.length - 1]; + r2.isDash === a2.isDash && (r2.left = a2.left - this.width, a2.right = r2.right + this.width); + for (var n2 = this.width * this.nextRow, s2 = 0, l2 = t2[s2], c3 = 0; c3 < this.width; c3++) { + c3 / l2.right > 1 && (l2 = t2[++s2]); + var u2 = Math.abs(c3 - l2.left), h3 = Math.abs(c3 - l2.right), p3 = Math.min(u2, h3); + this.data[n2 + c3] = Math.max(0, Math.min(255, (l2.isDash ? p3 : -p3) + 128)); + } + }, T.prototype.addDash = function(e2, i2) { + var o2 = i2 ? 7 : 0, r2 = 2 * o2 + 1; + if (this.nextRow + r2 > this.height) + return t.warnOnce("LineAtlas out of space"), null; + for (var a2 = 0, n2 = 0; n2 < e2.length; n2++) + a2 += e2[n2]; + if (0 !== a2) { + var s2 = this.width / a2, l2 = this.getDashRanges(e2, this.width, s2); + i2 ? this.addRoundDash(l2, s2, o2) : this.addRegularDash(l2); + } + var c3 = { y: (this.nextRow + o2 + 0.5) / this.height, height: 2 * o2 / this.height, width: a2 }; + return this.nextRow += r2, this.dirty = true, c3; + }, T.prototype.bind = function(t2) { + var e2 = t2.gl; + this.texture ? (e2.bindTexture(e2.TEXTURE_2D, this.texture), this.dirty && (this.dirty = false, e2.texSubImage2D(e2.TEXTURE_2D, 0, 0, 0, this.width, this.height, e2.ALPHA, e2.UNSIGNED_BYTE, this.data))) : (this.texture = e2.createTexture(), e2.bindTexture(e2.TEXTURE_2D, this.texture), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_WRAP_S, e2.REPEAT), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_WRAP_T, e2.REPEAT), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_MIN_FILTER, e2.LINEAR), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_MAG_FILTER, e2.LINEAR), e2.texImage2D(e2.TEXTURE_2D, 0, e2.ALPHA, this.width, this.height, 0, e2.ALPHA, e2.UNSIGNED_BYTE, this.data)); + }; + var E = function e2(i2, o2) { + this.workerPool = i2, this.actors = [], this.currentActor = 0, this.id = t.uniqueId(); + for (var r2 = this.workerPool.acquire(this.id), a2 = 0; a2 < r2.length; a2++) { + var n2 = new e2.Actor(r2[a2], o2, this.id); + n2.name = "Worker " + a2, this.actors.push(n2); } - } - function y2(e2, i2, o2) { - const a2 = function(i3, a3) { - if (i3) - return o2(i3); - if (a3) { - const i4 = t.pick(t.extend(a3, e2), ["tiles", "minzoom", "maxzoom", "attribution", "bounds", "scheme", "tileSize", "encoding"]); - a3.vector_layers && (i4.vectorLayers = a3.vector_layers, i4.vectorLayerIds = i4.vectorLayers.map((t2) => t2.id)), o2(null, i4); + }; + function I2(e2, i2, o2) { + var r2 = function(r3, a2) { + if (r3) + return o2(r3); + if (a2) { + var n2 = t.pick(t.extend(a2, e2), ["tiles", "minzoom", "maxzoom", "attribution", "mapbox_logo", "bounds", "scheme", "tileSize", "encoding"]); + a2.vector_layers && (n2.vectorLayers = a2.vector_layers, n2.vectorLayerIds = n2.vectorLayers.map(function(t2) { + return t2.id; + })), n2.tiles = i2.canonicalizeTileset(n2, e2.url), o2(null, n2); } }; - return e2.url ? t.getJSON(i2.transformRequest(e2.url, t.ResourceType.Source), a2) : t.exported.frame(() => a2(null, e2)); - } - v2.Actor = t.Actor; - class b { - constructor(e2, i2, o2) { - this.bounds = t.LngLatBounds.convert(this.validateBounds(e2)), this.minzoom = i2 || 0, this.maxzoom = o2 || 24; - } - validateBounds(t2) { - return Array.isArray(t2) && 4 === t2.length ? [Math.max(-180, t2[0]), Math.max(-90, t2[1]), Math.min(180, t2[2]), Math.min(90, t2[3])] : [-180, -90, 180, 90]; - } - contains(e2) { - const i2 = Math.pow(2, e2.z), o2 = Math.floor(t.mercatorXfromLng(this.bounds.getWest()) * i2), a2 = Math.floor(t.mercatorYfromLat(this.bounds.getNorth()) * i2), r2 = Math.ceil(t.mercatorXfromLng(this.bounds.getEast()) * i2), s2 = Math.ceil(t.mercatorYfromLat(this.bounds.getSouth()) * i2); - return e2.x >= o2 && e2.x < r2 && e2.y >= a2 && e2.y < s2; - } + return e2.url ? t.getJSON(i2.transformRequest(i2.normalizeSourceURL(e2.url), t.ResourceType.Source), r2) : t.browser.frame(function() { + return r2(null, e2); + }); } - class w extends t.Evented { - constructor(e2, i2, o2, a2) { - if (super(), this.id = e2, this.dispatcher = o2, this.type = "vector", this.minzoom = 0, this.maxzoom = 22, this.scheme = "xyz", this.tileSize = 512, this.reparseOverscaled = true, this.isTileClipped = true, this._loaded = false, t.extend(this, t.pick(i2, ["url", "scheme", "tileSize", "promoteId"])), this._options = t.extend({ type: "vector" }, i2), this._collectResourceTiming = i2.collectResourceTiming, 512 !== this.tileSize) + E.prototype.broadcast = function(e2, i2, o2) { + t.asyncAll(this.actors, function(t2, o3) { + t2.send(e2, i2, o3); + }, o2 = o2 || function() { + }); + }, E.prototype.getActor = function() { + return this.currentActor = (this.currentActor + 1) % this.actors.length, this.actors[this.currentActor]; + }, E.prototype.remove = function() { + this.actors.forEach(function(t2) { + t2.remove(); + }), this.actors = [], this.workerPool.release(this.id); + }, E.Actor = t.Actor; + var P = function(e2, i2, o2) { + this.bounds = t.LngLatBounds.convert(this.validateBounds(e2)), this.minzoom = i2 || 0, this.maxzoom = o2 || 24; + }; + P.prototype.validateBounds = function(t2) { + return Array.isArray(t2) && 4 === t2.length ? [Math.max(-180, t2[0]), Math.max(-90, t2[1]), Math.min(180, t2[2]), Math.min(90, t2[3])] : [-180, -90, 180, 90]; + }, P.prototype.contains = function(e2) { + var i2 = Math.pow(2, e2.z), o2 = Math.floor(t.mercatorXfromLng(this.bounds.getWest()) * i2), r2 = Math.floor(t.mercatorYfromLat(this.bounds.getNorth()) * i2), a2 = Math.ceil(t.mercatorXfromLng(this.bounds.getEast()) * i2), n2 = Math.ceil(t.mercatorYfromLat(this.bounds.getSouth()) * i2); + return e2.x >= o2 && e2.x < a2 && e2.y >= r2 && e2.y < n2; + }; + var S = function(e2) { + function i2(i3, o2, r2, a2) { + if (e2.call(this), this.id = i3, this.dispatcher = r2, this.type = "vector", this.minzoom = 0, this.maxzoom = 22, this.scheme = "xyz", this.tileSize = 512, this.reparseOverscaled = true, this.isTileClipped = true, this._loaded = false, t.extend(this, t.pick(o2, ["url", "scheme", "tileSize", "promoteId"])), this._options = t.extend({ type: "vector" }, o2), this._collectResourceTiming = o2.collectResourceTiming, 512 !== this.tileSize) throw new Error("vector tile sources must have a tileSize of 512"); this.setEventedParent(a2); } - load() { - this._loaded = false, this.fire(new t.Event("dataloading", { dataType: "source" })), this._tileJSONRequest = y2(this._options, this.map._requestManager, (e2, i2) => { - this._tileJSONRequest = null, this._loaded = true, this.map.style.sourceCaches[this.id].clearTiles(), e2 ? this.fire(new t.ErrorEvent(e2)) : i2 && (t.extend(this, i2), i2.bounds && (this.tileBounds = new b(i2.bounds, this.minzoom, this.maxzoom)), this.fire(new t.Event("data", { dataType: "source", sourceDataType: "metadata" })), this.fire(new t.Event("data", { dataType: "source", sourceDataType: "content" }))); + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.load = function() { + var e3 = this; + this._loaded = false, this.fire(new t.Event("dataloading", { dataType: "source" })), this._tileJSONRequest = I2(this._options, this.map._requestManager, function(i3, o2) { + e3._tileJSONRequest = null, e3._loaded = true, i3 ? e3.fire(new t.ErrorEvent(i3)) : o2 && (t.extend(e3, o2), o2.bounds && (e3.tileBounds = new P(o2.bounds, e3.minzoom, e3.maxzoom)), t.postTurnstileEvent(o2.tiles, e3.map._requestManager._customAccessToken), t.postMapLoadEvent(o2.tiles, e3.map._getMapId(), e3.map._requestManager._skuToken, e3.map._requestManager._customAccessToken), e3.fire(new t.Event("data", { dataType: "source", sourceDataType: "metadata" })), e3.fire(new t.Event("data", { dataType: "source", sourceDataType: "content" }))); }); - } - loaded() { + }, i2.prototype.loaded = function() { return this._loaded; - } - hasTile(t2) { + }, i2.prototype.hasTile = function(t2) { return !this.tileBounds || this.tileBounds.contains(t2.canonical); - } - onAdd(t2) { + }, i2.prototype.onAdd = function(t2) { this.map = t2, this.load(); - } - setSourceProperty(t2) { - this._tileJSONRequest && this._tileJSONRequest.cancel(), t2(), this.load(); - } - setTiles(t2) { - return this.setSourceProperty(() => { - this._options.tiles = t2; + }, i2.prototype.setSourceProperty = function(t2) { + this._tileJSONRequest && this._tileJSONRequest.cancel(), t2(), this.map.style.sourceCaches[this.id].clearTiles(), this.load(); + }, i2.prototype.setTiles = function(t2) { + var e3 = this; + return this.setSourceProperty(function() { + e3._options.tiles = t2; }), this; - } - setUrl(t2) { - return this.setSourceProperty(() => { - this.url = t2, this._options.url = t2; + }, i2.prototype.setUrl = function(t2) { + var e3 = this; + return this.setSourceProperty(function() { + e3.url = t2, e3._options.url = t2; }), this; - } - onRemove() { + }, i2.prototype.onRemove = function() { this._tileJSONRequest && (this._tileJSONRequest.cancel(), this._tileJSONRequest = null); - } - serialize() { + }, i2.prototype.serialize = function() { return t.extend({}, this._options); - } - loadTile(e2, i2) { - const o2 = e2.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme), a2 = { request: this.map._requestManager.transformRequest(o2, t.ResourceType.Tile), uid: e2.uid, tileID: e2.tileID, zoom: e2.tileID.overscaledZ, tileSize: this.tileSize * e2.tileID.overscaleFactor(), type: this.type, source: this.id, pixelRatio: this.map.getPixelRatio(), showCollisionBoxes: this.map.showCollisionBoxes, promoteId: this.promoteId }; - function r2(o3, a3) { - return delete e2.request, e2.aborted ? i2(null) : o3 && 404 !== o3.status ? i2(o3) : (a3 && a3.resourceTiming && (e2.resourceTiming = a3.resourceTiming), this.map._refreshExpiredTiles && a3 && e2.setExpiryData(a3), e2.loadVectorData(a3, this.map.painter), t.cacheEntryPossiblyAdded(this.dispatcher), i2(null), void (e2.reloadCallback && (this.loadTile(e2, e2.reloadCallback), e2.reloadCallback = null))); + }, i2.prototype.loadTile = function(e3, i3) { + var o2 = this.map._requestManager.normalizeTileURL(e3.tileID.canonical.url(this.tiles, this.scheme)), r2 = { request: this.map._requestManager.transformRequest(o2, t.ResourceType.Tile), uid: e3.uid, tileID: e3.tileID, zoom: e3.tileID.overscaledZ, tileSize: this.tileSize * e3.tileID.overscaleFactor(), type: this.type, source: this.id, pixelRatio: t.browser.devicePixelRatio, showCollisionBoxes: this.map.showCollisionBoxes, promoteId: this.promoteId }; + function a2(o3, r3) { + return delete e3.request, e3.aborted ? i3(null) : o3 && 404 !== o3.status ? i3(o3) : (r3 && r3.resourceTiming && (e3.resourceTiming = r3.resourceTiming), this.map._refreshExpiredTiles && r3 && e3.setExpiryData(r3), e3.loadVectorData(r3, this.map.painter), t.cacheEntryPossiblyAdded(this.dispatcher), i3(null), void (e3.reloadCallback && (this.loadTile(e3, e3.reloadCallback), e3.reloadCallback = null))); } - a2.request.collectResourceTiming = this._collectResourceTiming, e2.actor && "expired" !== e2.state ? "loading" === e2.state ? e2.reloadCallback = i2 : e2.request = e2.actor.send("reloadTile", a2, r2.bind(this)) : (e2.actor = this.dispatcher.getActor(), e2.request = e2.actor.send("loadTile", a2, r2.bind(this))); - } - abortTile(t2) { + r2.request.collectResourceTiming = this._collectResourceTiming, e3.actor && "expired" !== e3.state ? "loading" === e3.state ? e3.reloadCallback = i3 : e3.request = e3.actor.send("reloadTile", r2, a2.bind(this)) : (e3.actor = this.dispatcher.getActor(), e3.request = e3.actor.send("loadTile", r2, a2.bind(this))); + }, i2.prototype.abortTile = function(t2) { t2.request && (t2.request.cancel(), delete t2.request), t2.actor && t2.actor.send("abortTile", { uid: t2.uid, type: this.type, source: this.id }, void 0); - } - unloadTile(t2) { + }, i2.prototype.unloadTile = function(t2) { t2.unloadVectorData(), t2.actor && t2.actor.send("removeTile", { uid: t2.uid, type: this.type, source: this.id }, void 0); - } - hasTransition() { + }, i2.prototype.hasTransition = function() { return false; - } - } - class T extends t.Evented { - constructor(e2, i2, o2, a2) { - super(), this.id = e2, this.dispatcher = o2, this.setEventedParent(a2), this.type = "raster", this.minzoom = 0, this.maxzoom = 22, this.roundZoom = true, this.scheme = "xyz", this.tileSize = 512, this._loaded = false, this._options = t.extend({ type: "raster" }, i2), t.extend(this, t.pick(i2, ["url", "scheme", "tileSize"])); - } - load() { - this._loaded = false, this.fire(new t.Event("dataloading", { dataType: "source" })), this._tileJSONRequest = y2(this._options, this.map._requestManager, (e2, i2) => { - this._tileJSONRequest = null, this._loaded = true, e2 ? this.fire(new t.ErrorEvent(e2)) : i2 && (t.extend(this, i2), i2.bounds && (this.tileBounds = new b(i2.bounds, this.minzoom, this.maxzoom)), this.fire(new t.Event("data", { dataType: "source", sourceDataType: "metadata" })), this.fire(new t.Event("data", { dataType: "source", sourceDataType: "content" }))); + }, i2; + }(t.Evented), C = function(e2) { + function i2(i3, o2, r2, a2) { + e2.call(this), this.id = i3, this.dispatcher = r2, this.setEventedParent(a2), this.type = "raster", this.minzoom = 0, this.maxzoom = 22, this.roundZoom = true, this.scheme = "xyz", this.tileSize = 512, this._loaded = false, this._options = t.extend({ type: "raster" }, o2), t.extend(this, t.pick(o2, ["url", "scheme", "tileSize"])); + } + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.load = function() { + var e3 = this; + this._loaded = false, this.fire(new t.Event("dataloading", { dataType: "source" })), this._tileJSONRequest = I2(this._options, this.map._requestManager, function(i3, o2) { + e3._tileJSONRequest = null, e3._loaded = true, i3 ? e3.fire(new t.ErrorEvent(i3)) : o2 && (t.extend(e3, o2), o2.bounds && (e3.tileBounds = new P(o2.bounds, e3.minzoom, e3.maxzoom)), t.postTurnstileEvent(o2.tiles), t.postMapLoadEvent(o2.tiles, e3.map._getMapId(), e3.map._requestManager._skuToken), e3.fire(new t.Event("data", { dataType: "source", sourceDataType: "metadata" })), e3.fire(new t.Event("data", { dataType: "source", sourceDataType: "content" }))); }); - } - loaded() { + }, i2.prototype.loaded = function() { return this._loaded; - } - onAdd(t2) { + }, i2.prototype.onAdd = function(t2) { this.map = t2, this.load(); - } - onRemove() { + }, i2.prototype.onRemove = function() { this._tileJSONRequest && (this._tileJSONRequest.cancel(), this._tileJSONRequest = null); - } - serialize() { + }, i2.prototype.serialize = function() { return t.extend({}, this._options); - } - hasTile(t2) { + }, i2.prototype.hasTile = function(t2) { return !this.tileBounds || this.tileBounds.contains(t2.canonical); - } - loadTile(e2, i2) { - const o2 = e2.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme); - e2.request = t.getImage(this.map._requestManager.transformRequest(o2, t.ResourceType.Tile), (o3, a2, r2) => { - if (delete e2.request, e2.aborted) - e2.state = "unloaded", i2(null); - else if (o3) - e2.state = "errored", i2(o3); + }, i2.prototype.loadTile = function(e3, i3) { + var o2 = this, r2 = this.map._requestManager.normalizeTileURL(e3.tileID.canonical.url(this.tiles, this.scheme), this.tileSize); + e3.request = t.getImage(this.map._requestManager.transformRequest(r2, t.ResourceType.Tile), function(r3, a2) { + if (delete e3.request, e3.aborted) + e3.state = "unloaded", i3(null); + else if (r3) + e3.state = "errored", i3(r3); else if (a2) { - this.map._refreshExpiredTiles && e2.setExpiryData(r2); - const o4 = this.map.painter.context, s2 = o4.gl; - e2.texture = this.map.painter.getTileTexture(a2.width), e2.texture ? e2.texture.update(a2, { useMipmap: true }) : (e2.texture = new l(o4, a2, s2.RGBA, { useMipmap: true }), e2.texture.bind(s2.LINEAR, s2.CLAMP_TO_EDGE, s2.LINEAR_MIPMAP_NEAREST), o4.extTextureFilterAnisotropic && s2.texParameterf(s2.TEXTURE_2D, o4.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT, o4.extTextureFilterAnisotropicMax)), e2.state = "loaded", t.cacheEntryPossiblyAdded(this.dispatcher), i2(null); + o2.map._refreshExpiredTiles && e3.setExpiryData(a2), delete a2.cacheControl, delete a2.expires; + var n2 = o2.map.painter.context, s2 = n2.gl; + e3.texture = o2.map.painter.getTileTexture(a2.width), e3.texture ? e3.texture.update(a2, { useMipmap: true }) : (e3.texture = new t.Texture(n2, a2, s2.RGBA, { useMipmap: true }), e3.texture.bind(s2.LINEAR, s2.CLAMP_TO_EDGE, s2.LINEAR_MIPMAP_NEAREST), n2.extTextureFilterAnisotropic && s2.texParameterf(s2.TEXTURE_2D, n2.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT, n2.extTextureFilterAnisotropicMax)), e3.state = "loaded", t.cacheEntryPossiblyAdded(o2.dispatcher), i3(null); } }); - } - abortTile(t2, e2) { - t2.request && (t2.request.cancel(), delete t2.request), e2(); - } - unloadTile(t2, e2) { - t2.texture && this.map.painter.saveTileTexture(t2.texture), e2(); - } - hasTransition() { + }, i2.prototype.abortTile = function(t2, e3) { + t2.request && (t2.request.cancel(), delete t2.request), e3(); + }, i2.prototype.unloadTile = function(t2, e3) { + t2.texture && this.map.painter.saveTileTexture(t2.texture), e3(); + }, i2.prototype.hasTransition = function() { return false; + }, i2; + }(t.Evented), z = function(e2) { + function i2(i3, o2, r2, a2) { + e2.call(this, i3, o2, r2, a2), this.type = "raster-dem", this.maxzoom = 22, this._options = t.extend({ type: "raster-dem" }, o2), this.encoding = o2.encoding || "mapbox"; } - } - let E; - class I2 extends T { - constructor(e2, i2, o2, a2) { - super(e2, i2, o2, a2), this.type = "raster-dem", this.maxzoom = 22, this._options = t.extend({ type: "raster-dem" }, i2), this.encoding = i2.encoding || "mapbox"; - } - serialize() { + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.serialize = function() { return { type: "raster-dem", url: this.url, tileSize: this.tileSize, tiles: this.tiles, bounds: this.bounds, encoding: this.encoding }; - } - loadTile(e2, i2) { - const o2 = e2.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme); - function a2(t2, o3) { - t2 && (e2.state = "errored", i2(t2)), o3 && (e2.dem = o3, e2.needsHillshadePrepare = true, e2.needsTerrainPrepare = true, e2.state = "loaded", i2(null)); - } - e2.request = t.getImage(this.map._requestManager.transformRequest(o2, t.ResourceType.Tile), function(o3, r2) { - if (delete e2.request, e2.aborted) - e2.state = "unloaded", i2(null); + }, i2.prototype.loadTile = function(e3, i3) { + var o2 = this.map._requestManager.normalizeTileURL(e3.tileID.canonical.url(this.tiles, this.scheme), this.tileSize); + function r2(t2, o3) { + t2 && (e3.state = "errored", i3(t2)), o3 && (e3.dem = o3, e3.needsHillshadePrepare = true, e3.state = "loaded", i3(null)); + } + e3.request = t.getImage(this.map._requestManager.transformRequest(o2, t.ResourceType.Tile), function(o3, a2) { + if (delete e3.request, e3.aborted) + e3.state = "unloaded", i3(null); else if (o3) - e2.state = "errored", i2(o3); - else if (r2) { - this.map._refreshExpiredTiles && e2.setExpiryData(r2), delete r2.cacheControl, delete r2.expires; - const i3 = t.isImageBitmap(r2) && (null == E && (E = "undefined" != typeof OffscreenCanvas && new OffscreenCanvas(1, 1).getContext("2d") && "function" == typeof createImageBitmap), E) ? r2 : t.exported.getImageData(r2, 1), o4 = { uid: e2.uid, coord: e2.tileID, source: this.id, rawImageData: i3, encoding: this.encoding }; - e2.actor && "expired" !== e2.state || (e2.actor = this.dispatcher.getActor(), e2.actor.send("loadDEMTile", o4, a2.bind(this))); + e3.state = "errored", i3(o3); + else if (a2) { + this.map._refreshExpiredTiles && e3.setExpiryData(a2), delete a2.cacheControl, delete a2.expires; + var n2 = t.window.ImageBitmap && a2 instanceof t.window.ImageBitmap && t.offscreenCanvasSupported() ? a2 : t.browser.getImageData(a2, 1), s2 = { uid: e3.uid, coord: e3.tileID, source: this.id, rawImageData: n2, encoding: this.encoding }; + e3.actor && "expired" !== e3.state || (e3.actor = this.dispatcher.getActor(), e3.actor.send("loadDEMTile", s2, r2.bind(this))); } - }.bind(this)), e2.neighboringTiles = this._getNeighboringTiles(e2.tileID); - } - _getNeighboringTiles(e2) { - const i2 = e2.canonical, o2 = Math.pow(2, i2.z), a2 = (i2.x - 1 + o2) % o2, r2 = 0 === i2.x ? e2.wrap - 1 : e2.wrap, s2 = (i2.x + 1 + o2) % o2, n2 = i2.x + 1 === o2 ? e2.wrap + 1 : e2.wrap, l2 = {}; - return l2[new t.OverscaledTileID(e2.overscaledZ, r2, i2.z, a2, i2.y).key] = { backfilled: false }, l2[new t.OverscaledTileID(e2.overscaledZ, n2, i2.z, s2, i2.y).key] = { backfilled: false }, i2.y > 0 && (l2[new t.OverscaledTileID(e2.overscaledZ, r2, i2.z, a2, i2.y - 1).key] = { backfilled: false }, l2[new t.OverscaledTileID(e2.overscaledZ, e2.wrap, i2.z, i2.x, i2.y - 1).key] = { backfilled: false }, l2[new t.OverscaledTileID(e2.overscaledZ, n2, i2.z, s2, i2.y - 1).key] = { backfilled: false }), i2.y + 1 < o2 && (l2[new t.OverscaledTileID(e2.overscaledZ, r2, i2.z, a2, i2.y + 1).key] = { backfilled: false }, l2[new t.OverscaledTileID(e2.overscaledZ, e2.wrap, i2.z, i2.x, i2.y + 1).key] = { backfilled: false }, l2[new t.OverscaledTileID(e2.overscaledZ, n2, i2.z, s2, i2.y + 1).key] = { backfilled: false }), l2; - } - unloadTile(t2) { + }.bind(this)), e3.neighboringTiles = this._getNeighboringTiles(e3.tileID); + }, i2.prototype._getNeighboringTiles = function(e3) { + var i3 = e3.canonical, o2 = Math.pow(2, i3.z), r2 = (i3.x - 1 + o2) % o2, a2 = 0 === i3.x ? e3.wrap - 1 : e3.wrap, n2 = (i3.x + 1 + o2) % o2, s2 = i3.x + 1 === o2 ? e3.wrap + 1 : e3.wrap, l2 = {}; + return l2[new t.OverscaledTileID(e3.overscaledZ, a2, i3.z, r2, i3.y).key] = { backfilled: false }, l2[new t.OverscaledTileID(e3.overscaledZ, s2, i3.z, n2, i3.y).key] = { backfilled: false }, i3.y > 0 && (l2[new t.OverscaledTileID(e3.overscaledZ, a2, i3.z, r2, i3.y - 1).key] = { backfilled: false }, l2[new t.OverscaledTileID(e3.overscaledZ, e3.wrap, i3.z, i3.x, i3.y - 1).key] = { backfilled: false }, l2[new t.OverscaledTileID(e3.overscaledZ, s2, i3.z, n2, i3.y - 1).key] = { backfilled: false }), i3.y + 1 < o2 && (l2[new t.OverscaledTileID(e3.overscaledZ, a2, i3.z, r2, i3.y + 1).key] = { backfilled: false }, l2[new t.OverscaledTileID(e3.overscaledZ, e3.wrap, i3.z, i3.x, i3.y + 1).key] = { backfilled: false }, l2[new t.OverscaledTileID(e3.overscaledZ, s2, i3.z, n2, i3.y + 1).key] = { backfilled: false }), l2; + }, i2.prototype.unloadTile = function(t2) { t2.demTexture && this.map.painter.saveTileTexture(t2.demTexture), t2.fbo && (t2.fbo.destroy(), delete t2.fbo), t2.dem && delete t2.dem, delete t2.neighboringTiles, t2.state = "unloaded", t2.actor && t2.actor.send("removeDEMTile", { uid: t2.uid, source: this.id }); - } - } - class C extends t.Evented { - constructor(e2, i2, o2, a2) { - super(), this.id = e2, this.type = "geojson", this.minzoom = 0, this.maxzoom = 18, this.tileSize = 512, this.isTileClipped = true, this.reparseOverscaled = true, this._removed = false, this._pendingLoads = 0, this.actor = o2.getActor(), this.setEventedParent(a2), this._data = i2.data, this._options = t.extend({}, i2), this._collectResourceTiming = i2.collectResourceTiming, void 0 !== i2.maxzoom && (this.maxzoom = i2.maxzoom), i2.type && (this.type = i2.type), i2.attribution && (this.attribution = i2.attribution), this.promoteId = i2.promoteId; - const r2 = t.EXTENT / this.tileSize; - this.workerOptions = t.extend({ source: this.id, cluster: i2.cluster || false, geojsonVtOptions: { buffer: (void 0 !== i2.buffer ? i2.buffer : 128) * r2, tolerance: (void 0 !== i2.tolerance ? i2.tolerance : 0.375) * r2, extent: t.EXTENT, maxZoom: this.maxzoom, lineMetrics: i2.lineMetrics || false, generateId: i2.generateId || false }, superclusterOptions: { maxZoom: void 0 !== i2.clusterMaxZoom ? i2.clusterMaxZoom : this.maxzoom - 1, minPoints: Math.max(2, i2.clusterMinPoints || 2), extent: t.EXTENT, radius: (i2.clusterRadius || 50) * r2, log: false, generateId: i2.generateId || false }, clusterProperties: i2.clusterProperties, filter: i2.filter }, i2.workerOptions); - } - load() { - this._updateWorkerData("metadata"); - } - onAdd(t2) { + }, i2; + }(C), D = function(e2) { + function i2(i3, o2, r2, a2) { + e2.call(this), this.id = i3, this.type = "geojson", this.minzoom = 0, this.maxzoom = 18, this.tileSize = 512, this.isTileClipped = true, this.reparseOverscaled = true, this._removed = false, this._loaded = false, this.actor = r2.getActor(), this.setEventedParent(a2), this._data = o2.data, this._options = t.extend({}, o2), this._collectResourceTiming = o2.collectResourceTiming, this._resourceTiming = [], void 0 !== o2.maxzoom && (this.maxzoom = o2.maxzoom), o2.type && (this.type = o2.type), o2.attribution && (this.attribution = o2.attribution), this.promoteId = o2.promoteId; + var n2 = t.EXTENT / this.tileSize; + this.workerOptions = t.extend({ source: this.id, cluster: o2.cluster || false, geojsonVtOptions: { buffer: (void 0 !== o2.buffer ? o2.buffer : 128) * n2, tolerance: (void 0 !== o2.tolerance ? o2.tolerance : 0.375) * n2, extent: t.EXTENT, maxZoom: this.maxzoom, lineMetrics: o2.lineMetrics || false, generateId: o2.generateId || false }, superclusterOptions: { maxZoom: void 0 !== o2.clusterMaxZoom ? Math.min(o2.clusterMaxZoom, this.maxzoom - 1) : this.maxzoom - 1, minPoints: Math.max(2, o2.clusterMinPoints || 2), extent: t.EXTENT, radius: (o2.clusterRadius || 50) * n2, log: false, generateId: o2.generateId || false }, clusterProperties: o2.clusterProperties, filter: o2.filter }, o2.workerOptions); + } + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.load = function() { + var e3 = this; + this.fire(new t.Event("dataloading", { dataType: "source" })), this._updateWorkerData(function(i3) { + if (i3) + e3.fire(new t.ErrorEvent(i3)); + else { + var o2 = { dataType: "source", sourceDataType: "metadata" }; + e3._collectResourceTiming && e3._resourceTiming && e3._resourceTiming.length > 0 && (o2.resourceTiming = e3._resourceTiming, e3._resourceTiming = []), e3.fire(new t.Event("data", o2)); + } + }); + }, i2.prototype.onAdd = function(t2) { this.map = t2, this.load(); - } - setData(t2) { - return this._data = t2, this._updateWorkerData("content"), this; - } - getClusterExpansionZoom(t2, e2) { - return this.actor.send("geojson.getClusterExpansionZoom", { clusterId: t2, source: this.id }, e2), this; - } - getClusterChildren(t2, e2) { - return this.actor.send("geojson.getClusterChildren", { clusterId: t2, source: this.id }, e2), this; - } - getClusterLeaves(t2, e2, i2, o2) { - return this.actor.send("geojson.getClusterLeaves", { source: this.id, clusterId: t2, limit: e2, offset: i2 }, o2), this; - } - _updateWorkerData(e2) { - const i2 = t.extend({}, this.workerOptions), o2 = this._data; - "string" == typeof o2 ? (i2.request = this.map._requestManager.transformRequest(t.exported.resolveURL(o2), t.ResourceType.Source), i2.request.collectResourceTiming = this._collectResourceTiming) : i2.data = JSON.stringify(o2), this._pendingLoads++, this.fire(new t.Event("dataloading", { dataType: "source" })), this.actor.send(`${this.type}.loadData`, i2, (i3, o3) => { - if (this._pendingLoads--, this._removed || o3 && o3.abandoned) - return void this.fire(new t.Event("dataabort", { dataType: "source", sourceDataType: e2 })); - let a2 = null; - if (o3 && o3.resourceTiming && o3.resourceTiming[this.id] && (a2 = o3.resourceTiming[this.id].slice(0)), i3) - return void this.fire(new t.ErrorEvent(i3)); - const r2 = { dataType: "source", sourceDataType: e2 }; - this._collectResourceTiming && a2 && a2.length > 0 && t.extend(r2, { resourceTiming: a2 }), this.fire(new t.Event("data", r2)); + }, i2.prototype.setData = function(e3) { + var i3 = this; + return this._data = e3, this.fire(new t.Event("dataloading", { dataType: "source" })), this._updateWorkerData(function(e4) { + if (e4) + i3.fire(new t.ErrorEvent(e4)); + else { + var o2 = { dataType: "source", sourceDataType: "content" }; + i3._collectResourceTiming && i3._resourceTiming && i3._resourceTiming.length > 0 && (o2.resourceTiming = i3._resourceTiming, i3._resourceTiming = []), i3.fire(new t.Event("data", o2)); + } + }), this; + }, i2.prototype.getClusterExpansionZoom = function(t2, e3) { + return this.actor.send("geojson.getClusterExpansionZoom", { clusterId: t2, source: this.id }, e3), this; + }, i2.prototype.getClusterChildren = function(t2, e3) { + return this.actor.send("geojson.getClusterChildren", { clusterId: t2, source: this.id }, e3), this; + }, i2.prototype.getClusterLeaves = function(t2, e3, i3, o2) { + return this.actor.send("geojson.getClusterLeaves", { source: this.id, clusterId: t2, limit: e3, offset: i3 }, o2), this; + }, i2.prototype._updateWorkerData = function(e3) { + var i3 = this; + this._loaded = false; + var o2 = t.extend({}, this.workerOptions), r2 = this._data; + "string" == typeof r2 ? (o2.request = this.map._requestManager.transformRequest(t.browser.resolveURL(r2), t.ResourceType.Source), o2.request.collectResourceTiming = this._collectResourceTiming) : o2.data = JSON.stringify(r2), this.actor.send(this.type + ".loadData", o2, function(t2, r3) { + i3._removed || r3 && r3.abandoned || (i3._loaded = true, r3 && r3.resourceTiming && r3.resourceTiming[i3.id] && (i3._resourceTiming = r3.resourceTiming[i3.id].slice(0)), i3.actor.send(i3.type + ".coalesce", { source: o2.source }, null), e3(t2)); }); - } - loaded() { - return 0 === this._pendingLoads; - } - loadTile(t2, e2) { - const i2 = t2.actor ? "reloadTile" : "loadTile"; - t2.actor = this.actor; - const o2 = { type: this.type, uid: t2.uid, tileID: t2.tileID, zoom: t2.tileID.overscaledZ, maxZoom: this.maxzoom, tileSize: this.tileSize, source: this.id, pixelRatio: this.map.getPixelRatio(), showCollisionBoxes: this.map.showCollisionBoxes, promoteId: this.promoteId }; - t2.request = this.actor.send(i2, o2, (o3, a2) => (delete t2.request, t2.unloadVectorData(), t2.aborted ? e2(null) : o3 ? e2(o3) : (t2.loadVectorData(a2, this.map.painter, "reloadTile" === i2), e2(null)))); - } - abortTile(t2) { + }, i2.prototype.loaded = function() { + return this._loaded; + }, i2.prototype.loadTile = function(e3, i3) { + var o2 = this, r2 = e3.actor ? "reloadTile" : "loadTile"; + e3.actor = this.actor, e3.request = this.actor.send(r2, { type: this.type, uid: e3.uid, tileID: e3.tileID, zoom: e3.tileID.overscaledZ, maxZoom: this.maxzoom, tileSize: this.tileSize, source: this.id, pixelRatio: t.browser.devicePixelRatio, showCollisionBoxes: this.map.showCollisionBoxes, promoteId: this.promoteId }, function(t2, a2) { + return delete e3.request, e3.unloadVectorData(), e3.aborted ? i3(null) : t2 ? i3(t2) : (e3.loadVectorData(a2, o2.map.painter, "reloadTile" === r2), i3(null)); + }); + }, i2.prototype.abortTile = function(t2) { t2.request && (t2.request.cancel(), delete t2.request), t2.aborted = true; - } - unloadTile(t2) { + }, i2.prototype.unloadTile = function(t2) { t2.unloadVectorData(), this.actor.send("removeTile", { uid: t2.uid, type: this.type, source: this.id }); - } - onRemove() { + }, i2.prototype.onRemove = function() { this._removed = true, this.actor.send("removeSource", { type: this.type, source: this.id }); - } - serialize() { + }, i2.prototype.serialize = function() { return t.extend({}, this._options, { type: this.type, data: this._data }); - } - hasTransition() { + }, i2.prototype.hasTransition = function() { return false; - } - } - var S = t.createLayout([{ name: "a_pos", type: "Int16", components: 2 }, { name: "a_texture_pos", type: "Int16", components: 2 }]); - class D extends t.Evented { - constructor(t2, e2, i2, o2) { - super(), this.id = t2, this.dispatcher = i2, this.coordinates = e2.coordinates, this.type = "image", this.minzoom = 0, this.maxzoom = 22, this.tileSize = 512, this.tiles = {}, this._loaded = false, this.setEventedParent(o2), this.options = e2; - } - load(e2, i2) { - this._loaded = false, this.fire(new t.Event("dataloading", { dataType: "source" })), this.url = this.options.url, t.getImage(this.map._requestManager.transformRequest(this.url, t.ResourceType.Image), (o2, a2) => { - this._loaded = true, o2 ? this.fire(new t.ErrorEvent(o2)) : a2 && (this.image = a2, e2 && (this.coordinates = e2), i2 && i2(), this._finishLoading()); + }, i2; + }(t.Evented), A2 = t.createLayout([{ name: "a_pos", type: "Int16", components: 2 }, { name: "a_texture_pos", type: "Int16", components: 2 }]), M = function(e2) { + function i2(t2, i3, o2, r2) { + e2.call(this), this.id = t2, this.dispatcher = o2, this.coordinates = i3.coordinates, this.type = "image", this.minzoom = 0, this.maxzoom = 22, this.tileSize = 512, this.tiles = {}, this._loaded = false, this.setEventedParent(r2), this.options = i3; + } + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.load = function(e3, i3) { + var o2 = this; + this._loaded = false, this.fire(new t.Event("dataloading", { dataType: "source" })), this.url = this.options.url, t.getImage(this.map._requestManager.transformRequest(this.url, t.ResourceType.Image), function(r2, a2) { + o2._loaded = true, r2 ? o2.fire(new t.ErrorEvent(r2)) : a2 && (o2.image = a2, e3 && (o2.coordinates = e3), i3 && i3(), o2._finishLoading()); }); - } - loaded() { + }, i2.prototype.loaded = function() { return this._loaded; - } - updateImage(t2) { - return this.image && t2.url ? (this.options.url = t2.url, this.load(t2.coordinates, () => { - this.texture = null; + }, i2.prototype.updateImage = function(t2) { + var e3 = this; + return this.image && t2.url ? (this.options.url = t2.url, this.load(t2.coordinates, function() { + e3.texture = null; }), this) : this; - } - _finishLoading() { + }, i2.prototype._finishLoading = function() { this.map && (this.setCoordinates(this.coordinates), this.fire(new t.Event("data", { dataType: "source", sourceDataType: "metadata" }))); - } - onAdd(t2) { + }, i2.prototype.onAdd = function(t2) { this.map = t2, this.load(); - } - setCoordinates(e2) { - this.coordinates = e2; - const i2 = e2.map(t.MercatorCoordinate.fromLngLat); - this.tileID = function(e3) { - let i3 = 1 / 0, o3 = 1 / 0, a2 = -1 / 0, r2 = -1 / 0; - for (const t2 of e3) - i3 = Math.min(i3, t2.x), o3 = Math.min(o3, t2.y), a2 = Math.max(a2, t2.x), r2 = Math.max(r2, t2.y); - const s2 = Math.max(a2 - i3, r2 - o3), n2 = Math.max(0, Math.floor(-Math.log(s2) / Math.LN2)), l2 = Math.pow(2, n2); - return new t.CanonicalTileID(n2, Math.floor((i3 + a2) / 2 * l2), Math.floor((o3 + r2) / 2 * l2)); - }(i2), this.minzoom = this.maxzoom = this.tileID.z; - const o2 = i2.map((t2) => this.tileID.getTilePoint(t2)._round()); - return this._boundsArray = new t.RasterBoundsArray(), this._boundsArray.emplaceBack(o2[0].x, o2[0].y, 0, 0), this._boundsArray.emplaceBack(o2[1].x, o2[1].y, t.EXTENT, 0), this._boundsArray.emplaceBack(o2[3].x, o2[3].y, 0, t.EXTENT), this._boundsArray.emplaceBack(o2[2].x, o2[2].y, t.EXTENT, t.EXTENT), this.boundsBuffer && (this.boundsBuffer.destroy(), delete this.boundsBuffer), this.fire(new t.Event("data", { dataType: "source", sourceDataType: "content" })), this; - } - prepare() { - if (0 === Object.keys(this.tiles).length || !this.image) - return; - const e2 = this.map.painter.context, i2 = e2.gl; - this.boundsBuffer || (this.boundsBuffer = e2.createVertexBuffer(this._boundsArray, S.members)), this.boundsSegments || (this.boundsSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2)), this.texture || (this.texture = new l(e2, this.image, i2.RGBA), this.texture.bind(i2.LINEAR, i2.CLAMP_TO_EDGE)); - for (const t2 in this.tiles) { - const e3 = this.tiles[t2]; - "loaded" !== e3.state && (e3.state = "loaded", e3.texture = this.texture); + }, i2.prototype.setCoordinates = function(e3) { + var i3 = this; + this.coordinates = e3; + var o2 = e3.map(t.MercatorCoordinate.fromLngLat); + this.tileID = function(e4) { + for (var i4 = 1 / 0, o3 = 1 / 0, r3 = -1 / 0, a2 = -1 / 0, n2 = 0, s2 = e4; n2 < s2.length; n2 += 1) { + var l2 = s2[n2]; + i4 = Math.min(i4, l2.x), o3 = Math.min(o3, l2.y), r3 = Math.max(r3, l2.x), a2 = Math.max(a2, l2.y); + } + var c3 = Math.max(r3 - i4, a2 - o3), u2 = Math.max(0, Math.floor(-Math.log(c3) / Math.LN2)), h3 = Math.pow(2, u2); + return new t.CanonicalTileID(u2, Math.floor((i4 + r3) / 2 * h3), Math.floor((o3 + a2) / 2 * h3)); + }(o2), this.minzoom = this.maxzoom = this.tileID.z; + var r2 = o2.map(function(t2) { + return i3.tileID.getTilePoint(t2)._round(); + }); + return this._boundsArray = new t.StructArrayLayout4i8(), this._boundsArray.emplaceBack(r2[0].x, r2[0].y, 0, 0), this._boundsArray.emplaceBack(r2[1].x, r2[1].y, t.EXTENT, 0), this._boundsArray.emplaceBack(r2[3].x, r2[3].y, 0, t.EXTENT), this._boundsArray.emplaceBack(r2[2].x, r2[2].y, t.EXTENT, t.EXTENT), this.boundsBuffer && (this.boundsBuffer.destroy(), delete this.boundsBuffer), this.fire(new t.Event("data", { dataType: "source", sourceDataType: "content" })), this; + }, i2.prototype.prepare = function() { + if (0 !== Object.keys(this.tiles).length && this.image) { + var e3 = this.map.painter.context, i3 = e3.gl; + for (var o2 in this.boundsBuffer || (this.boundsBuffer = e3.createVertexBuffer(this._boundsArray, A2.members)), this.boundsSegments || (this.boundsSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2)), this.texture || (this.texture = new t.Texture(e3, this.image, i3.RGBA), this.texture.bind(i3.LINEAR, i3.CLAMP_TO_EDGE)), this.tiles) { + var r2 = this.tiles[o2]; + "loaded" !== r2.state && (r2.state = "loaded", r2.texture = this.texture); + } } - } - loadTile(t2, e2) { - this.tileID && this.tileID.equals(t2.tileID.canonical) ? (this.tiles[String(t2.tileID.wrap)] = t2, t2.buckets = {}, e2(null)) : (t2.state = "errored", e2(null)); - } - serialize() { + }, i2.prototype.loadTile = function(t2, e3) { + this.tileID && this.tileID.equals(t2.tileID.canonical) ? (this.tiles[String(t2.tileID.wrap)] = t2, t2.buckets = {}, e3(null)) : (t2.state = "errored", e3(null)); + }, i2.prototype.serialize = function() { return { type: "image", url: this.options.url, coordinates: this.coordinates }; - } - hasTransition() { + }, i2.prototype.hasTransition = function() { return false; + }, i2; + }(t.Evented), L = function(e2) { + function i2(t2, i3, o2, r2) { + e2.call(this, t2, i3, o2, r2), this.roundZoom = true, this.type = "video", this.options = i3; } - } - class z extends D { - constructor(t2, e2, i2, o2) { - super(t2, e2, i2, o2), this.roundZoom = true, this.type = "video", this.options = e2; - } - load() { + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.load = function() { + var e3 = this; this._loaded = false; - const e2 = this.options; + var i3 = this.options; this.urls = []; - for (const i2 of e2.urls) - this.urls.push(this.map._requestManager.transformRequest(i2, t.ResourceType.Source).url); - t.getVideo(this.urls, (e3, i2) => { - this._loaded = true, e3 ? this.fire(new t.ErrorEvent(e3)) : i2 && (this.video = i2, this.video.loop = true, this.video.addEventListener("playing", () => { - this.map.triggerRepaint(); - }), this.map && this.video.play(), this._finishLoading()); + for (var o2 = 0, r2 = i3.urls; o2 < r2.length; o2 += 1) + this.urls.push(this.map._requestManager.transformRequest(r2[o2], t.ResourceType.Source).url); + t.getVideo(this.urls, function(i4, o3) { + e3._loaded = true, i4 ? e3.fire(new t.ErrorEvent(i4)) : o3 && (e3.video = o3, e3.video.loop = true, e3.video.setAttribute("playsinline", ""), e3.video.addEventListener("playing", function() { + e3.map.triggerRepaint(); + }), e3.map && e3.video.play(), e3._finishLoading()); }); - } - pause() { + }, i2.prototype.pause = function() { this.video && this.video.pause(); - } - play() { + }, i2.prototype.play = function() { this.video && this.video.play(); - } - seek(e2) { + }, i2.prototype.seek = function(e3) { if (this.video) { - const i2 = this.video.seekable; - e2 < i2.start(0) || e2 > i2.end(0) ? this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${this.id}`, null, `Playback for this video can be set only between the ${i2.start(0)} and ${i2.end(0)}-second mark.`))) : this.video.currentTime = e2; + var i3 = this.video.seekable; + e3 < i3.start(0) || e3 > i3.end(0) ? this.fire(new t.ErrorEvent(new t.ValidationError("sources." + this.id, null, "Playback for this video can be set only between the " + i3.start(0) + " and " + i3.end(0) + "-second mark."))) : this.video.currentTime = e3; } - } - getVideo() { + }, i2.prototype.getVideo = function() { return this.video; - } - onAdd(t2) { + }, i2.prototype.onAdd = function(t2) { this.map || (this.map = t2, this.load(), this.video && (this.video.play(), this.setCoordinates(this.coordinates))); - } - prepare() { - if (0 === Object.keys(this.tiles).length || this.video.readyState < 2) - return; - const e2 = this.map.painter.context, i2 = e2.gl; - this.boundsBuffer || (this.boundsBuffer = e2.createVertexBuffer(this._boundsArray, S.members)), this.boundsSegments || (this.boundsSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2)), this.texture ? this.video.paused || (this.texture.bind(i2.LINEAR, i2.CLAMP_TO_EDGE), i2.texSubImage2D(i2.TEXTURE_2D, 0, 0, 0, i2.RGBA, i2.UNSIGNED_BYTE, this.video)) : (this.texture = new l(e2, this.video, i2.RGBA), this.texture.bind(i2.LINEAR, i2.CLAMP_TO_EDGE)); - for (const t2 in this.tiles) { - const e3 = this.tiles[t2]; - "loaded" !== e3.state && (e3.state = "loaded", e3.texture = this.texture); + }, i2.prototype.prepare = function() { + if (!(0 === Object.keys(this.tiles).length || this.video.readyState < 2)) { + var e3 = this.map.painter.context, i3 = e3.gl; + for (var o2 in this.boundsBuffer || (this.boundsBuffer = e3.createVertexBuffer(this._boundsArray, A2.members)), this.boundsSegments || (this.boundsSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2)), this.texture ? this.video.paused || (this.texture.bind(i3.LINEAR, i3.CLAMP_TO_EDGE), i3.texSubImage2D(i3.TEXTURE_2D, 0, 0, 0, i3.RGBA, i3.UNSIGNED_BYTE, this.video)) : (this.texture = new t.Texture(e3, this.video, i3.RGBA), this.texture.bind(i3.LINEAR, i3.CLAMP_TO_EDGE)), this.tiles) { + var r2 = this.tiles[o2]; + "loaded" !== r2.state && (r2.state = "loaded", r2.texture = this.texture); + } } - } - serialize() { + }, i2.prototype.serialize = function() { return { type: "video", urls: this.urls, coordinates: this.coordinates }; - } - hasTransition() { + }, i2.prototype.hasTransition = function() { return this.video && !this.video.paused; + }, i2; + }(M), R = function(e2) { + function i2(i3, o2, r2, a2) { + e2.call(this, i3, o2, r2, a2), o2.coordinates ? Array.isArray(o2.coordinates) && 4 === o2.coordinates.length && !o2.coordinates.some(function(t2) { + return !Array.isArray(t2) || 2 !== t2.length || t2.some(function(t3) { + return "number" != typeof t3; + }); + }) || this.fire(new t.ErrorEvent(new t.ValidationError("sources." + i3, null, '"coordinates" property must be an array of 4 longitude/latitude array pairs'))) : this.fire(new t.ErrorEvent(new t.ValidationError("sources." + i3, null, 'missing required property "coordinates"'))), o2.animate && "boolean" != typeof o2.animate && this.fire(new t.ErrorEvent(new t.ValidationError("sources." + i3, null, 'optional "animate" property must be a boolean value'))), o2.canvas ? "string" == typeof o2.canvas || o2.canvas instanceof t.window.HTMLCanvasElement || this.fire(new t.ErrorEvent(new t.ValidationError("sources." + i3, null, '"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))) : this.fire(new t.ErrorEvent(new t.ValidationError("sources." + i3, null, 'missing required property "canvas"'))), this.options = o2, this.animate = void 0 === o2.animate || o2.animate; } - } - class P extends D { - constructor(e2, i2, o2, a2) { - super(e2, i2, o2, a2), i2.coordinates ? Array.isArray(i2.coordinates) && 4 === i2.coordinates.length && !i2.coordinates.some((t2) => !Array.isArray(t2) || 2 !== t2.length || t2.some((t3) => "number" != typeof t3)) || this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${e2}`, null, '"coordinates" property must be an array of 4 longitude/latitude array pairs'))) : this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${e2}`, null, 'missing required property "coordinates"'))), i2.animate && "boolean" != typeof i2.animate && this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${e2}`, null, 'optional "animate" property must be a boolean value'))), i2.canvas ? "string" == typeof i2.canvas || i2.canvas instanceof HTMLCanvasElement || this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${e2}`, null, '"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))) : this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${e2}`, null, 'missing required property "canvas"'))), this.options = i2, this.animate = void 0 === i2.animate || i2.animate; - } - load() { - this._loaded = true, this.canvas || (this.canvas = this.options.canvas instanceof HTMLCanvasElement ? this.options.canvas : document.getElementById(this.options.canvas)), this.width = this.canvas.width, this.height = this.canvas.height, this._hasInvalidDimensions() ? this.fire(new t.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))) : (this.play = function() { + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.load = function() { + this._loaded = true, this.canvas || (this.canvas = this.options.canvas instanceof t.window.HTMLCanvasElement ? this.options.canvas : t.window.document.getElementById(this.options.canvas)), this.width = this.canvas.width, this.height = this.canvas.height, this._hasInvalidDimensions() ? this.fire(new t.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))) : (this.play = function() { this._playing = true, this.map.triggerRepaint(); }, this.pause = function() { this._playing && (this.prepare(), this._playing = false); }, this._finishLoading()); - } - getCanvas() { + }, i2.prototype.getCanvas = function() { return this.canvas; - } - onAdd(t2) { + }, i2.prototype.onAdd = function(t2) { this.map = t2, this.load(), this.canvas && this.animate && this.play(); - } - onRemove() { + }, i2.prototype.onRemove = function() { this.pause(); - } - prepare() { - let e2 = false; - if (this.canvas.width !== this.width && (this.width = this.canvas.width, e2 = true), this.canvas.height !== this.height && (this.height = this.canvas.height, e2 = true), this._hasInvalidDimensions()) - return; - if (0 === Object.keys(this.tiles).length) - return; - const i2 = this.map.painter.context, o2 = i2.gl; - this.boundsBuffer || (this.boundsBuffer = i2.createVertexBuffer(this._boundsArray, S.members)), this.boundsSegments || (this.boundsSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2)), this.texture ? (e2 || this._playing) && this.texture.update(this.canvas, { premultiply: true }) : this.texture = new l(i2, this.canvas, o2.RGBA, { premultiply: true }); - for (const t2 in this.tiles) { - const e3 = this.tiles[t2]; - "loaded" !== e3.state && (e3.state = "loaded", e3.texture = this.texture); + }, i2.prototype.prepare = function() { + var e3 = false; + if (this.canvas.width !== this.width && (this.width = this.canvas.width, e3 = true), this.canvas.height !== this.height && (this.height = this.canvas.height, e3 = true), !this._hasInvalidDimensions() && 0 !== Object.keys(this.tiles).length) { + var i3 = this.map.painter.context, o2 = i3.gl; + for (var r2 in this.boundsBuffer || (this.boundsBuffer = i3.createVertexBuffer(this._boundsArray, A2.members)), this.boundsSegments || (this.boundsSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2)), this.texture ? (e3 || this._playing) && this.texture.update(this.canvas, { premultiply: true }) : this.texture = new t.Texture(i3, this.canvas, o2.RGBA, { premultiply: true }), this.tiles) { + var a2 = this.tiles[r2]; + "loaded" !== a2.state && (a2.state = "loaded", a2.texture = this.texture); + } } - } - serialize() { + }, i2.prototype.serialize = function() { return { type: "canvas", coordinates: this.coordinates }; - } - hasTransition() { + }, i2.prototype.hasTransition = function() { return this._playing; - } - _hasInvalidDimensions() { - for (const t2 of [this.canvas.width, this.canvas.height]) - if (isNaN(t2) || t2 <= 0) + }, i2.prototype._hasInvalidDimensions = function() { + for (var t2 = 0, e3 = [this.canvas.width, this.canvas.height]; t2 < e3.length; t2 += 1) { + var i3 = e3[t2]; + if (isNaN(i3) || i3 <= 0) return true; + } return false; - } - } - const M = { vector: w, raster: T, "raster-dem": I2, geojson: C, video: z, image: D, canvas: P }; - function A2(e2, i2) { - const o2 = t.create(); + }, i2; + }(M), k = { vector: S, raster: C, "raster-dem": z, geojson: D, video: L, image: M, canvas: R }; + function B(e2, i2) { + var o2 = t.identity([]); return t.translate(o2, o2, [1, 1, 0]), t.scale(o2, o2, [0.5 * e2.width, 0.5 * e2.height, 1]), t.multiply(o2, o2, e2.calculatePosMatrix(i2.toUnwrapped())); } - function L(t2, e2, i2, o2, a2, r2) { - const s2 = function(t3, e3, i3) { + function O2(t2, e2, i2, o2, r2, a2) { + var n2 = function(t3, e3, i3) { if (t3) - for (const o3 of t3) { - const t4 = e3[o3]; - if (t4 && t4.source === i3 && "fill-extrusion" === t4.type) + for (var o3 = 0, r3 = t3; o3 < r3.length; o3 += 1) { + var a3 = e3[r3[o3]]; + if (a3 && a3.source === i3 && "fill-extrusion" === a3.type) return true; } else - for (const t4 in e3) { - const o3 = e3[t4]; - if (o3.source === i3 && "fill-extrusion" === o3.type) + for (var n3 in e3) { + var s3 = e3[n3]; + if (s3.source === i3 && "fill-extrusion" === s3.type) return true; } return false; - }(a2 && a2.layers, e2, t2.id), n2 = r2.maxPitchScaleFactor(), l2 = t2.tilesIn(o2, n2, s2); - l2.sort(R); - const c3 = []; - for (const o3 of l2) - c3.push({ wrappedTileID: o3.tileID.wrapped().key, queryResults: o3.tile.queryRenderedFeatures(e2, i2, t2._state, o3.queryGeometry, o3.cameraQueryGeometry, o3.scale, a2, r2, n2, A2(t2.transform, o3.tileID)) }); - const h3 = function(t3) { - const e3 = {}, i3 = {}; - for (const o3 of t3) { - const t4 = o3.queryResults, a3 = o3.wrappedTileID, r3 = i3[a3] = i3[a3] || {}; - for (const i4 in t4) { - const o4 = t4[i4], a4 = r3[i4] = r3[i4] || {}, s3 = e3[i4] = e3[i4] || []; - for (const t5 of o4) - a4[t5.featureIndex] || (a4[t5.featureIndex] = true, s3.push(t5)); - } + }(r2 && r2.layers, e2, t2.id), s2 = a2.maxPitchScaleFactor(), l2 = t2.tilesIn(o2, s2, n2); + l2.sort(F); + for (var c3 = [], u2 = 0, h3 = l2; u2 < h3.length; u2 += 1) { + var p3 = h3[u2]; + c3.push({ wrappedTileID: p3.tileID.wrapped().key, queryResults: p3.tile.queryRenderedFeatures(e2, i2, t2._state, p3.queryGeometry, p3.cameraQueryGeometry, p3.scale, r2, a2, s2, B(t2.transform, p3.tileID)) }); + } + var d2 = function(t3) { + for (var e3 = {}, i3 = {}, o3 = 0, r3 = t3; o3 < r3.length; o3 += 1) { + var a3 = r3[o3], n3 = a3.queryResults, s3 = a3.wrappedTileID, l3 = i3[s3] = i3[s3] || {}; + for (var c4 in n3) + for (var u3 = n3[c4], h4 = l3[c4] = l3[c4] || {}, p4 = e3[c4] = e3[c4] || [], d3 = 0, _3 = u3; d3 < _3.length; d3 += 1) { + var f2 = _3[d3]; + h4[f2.featureIndex] || (h4[f2.featureIndex] = true, p4.push(f2)); + } } return e3; }(c3); - for (const e3 in h3) - h3[e3].forEach((e4) => { - const i3 = e4.feature, o3 = t2.getFeatureState(i3.layer["source-layer"], i3.id); + for (var _2 in d2) + d2[_2].forEach(function(e3) { + var i3 = e3.feature, o3 = t2.getFeatureState(i3.layer["source-layer"], i3.id); i3.source = i3.layer.source, i3.layer["source-layer"] && (i3.sourceLayer = i3.layer["source-layer"]), i3.state = o3; }); - return h3; + return d2; } - function R(t2, e2) { - const i2 = t2.tileID, o2 = e2.tileID; + function F(t2, e2) { + var i2 = t2.tileID, o2 = e2.tileID; return i2.overscaledZ - o2.overscaledZ || i2.canonical.y - o2.canonical.y || i2.wrap - o2.wrap || i2.canonical.x - o2.canonical.x; } - class k { - constructor(e2, i2) { - this.tileID = e2, this.uid = t.uniqueId(), this.uses = 0, this.tileSize = i2, this.buckets = {}, this.expirationTime = null, this.queryPadding = 0, this.hasSymbolBuckets = false, this.hasRTLText = false, this.dependencies = {}, this.textures = [], this.textureCoords = {}, this.expiredRequestCount = 0, this.state = "loading"; - } - registerFadeDuration(e2) { - const i2 = e2 + this.timeAdded; - i2 < t.exported.now() || this.fadeEndTime && i2 < this.fadeEndTime || (this.fadeEndTime = i2); - } - wasRequested() { - return "errored" === this.state || "loaded" === this.state || "reloading" === this.state; - } - clearTextures(t2) { - this.demTexture && t2.saveTileTexture(this.demTexture), this.textures.forEach((e2) => t2.saveTileTexture(e2)), this.demTexture = null, this.textures = [], this.textureCoords = {}; - } - loadVectorData(e2, i2, o2) { - if (this.hasData() && this.unloadVectorData(), this.state = "loaded", e2) { - e2.featureIndex && (this.latestFeatureIndex = e2.featureIndex, e2.rawTileData ? (this.latestRawTileData = e2.rawTileData, this.latestFeatureIndex.rawTileData = e2.rawTileData) : this.latestRawTileData && (this.latestFeatureIndex.rawTileData = this.latestRawTileData)), this.collisionBoxArray = e2.collisionBoxArray, this.buckets = function(t2, e3) { - const i3 = {}; - if (!e3) - return i3; - for (const o3 of t2) { - const t3 = o3.layerIds.map((t4) => e3.getLayer(t4)).filter(Boolean); - if (0 !== t3.length) { - o3.layers = t3, o3.stateDependentLayerIds && (o3.stateDependentLayers = o3.stateDependentLayerIds.map((e4) => t3.filter((t4) => t4.id === e4)[0])); - for (const e4 of t3) - i3[e4.id] = o3; - } - } - return i3; - }(e2.buckets, i2.style), this.hasSymbolBuckets = false; - for (const e3 in this.buckets) { - const i3 = this.buckets[e3]; - if (i3 instanceof t.SymbolBucket) { - if (this.hasSymbolBuckets = true, !o2) - break; - i3.justReloaded = true; - } - } - if (this.hasRTLText = false, this.hasSymbolBuckets) - for (const e3 in this.buckets) { - const i3 = this.buckets[e3]; - if (i3 instanceof t.SymbolBucket && i3.hasRTLText) { - this.hasRTLText = true, t.lazyLoadRTLTextPlugin(); - break; - } - } - this.queryPadding = 0; - for (const t2 in this.buckets) { - const e3 = this.buckets[t2]; - this.queryPadding = Math.max(this.queryPadding, i2.style.getLayer(t2).queryRadius(e3)); - } - e2.imageAtlas && (this.imageAtlas = e2.imageAtlas), e2.glyphAtlasImage && (this.glyphAtlasImage = e2.glyphAtlasImage); - } else - this.collisionBoxArray = new t.CollisionBoxArray(); - } - unloadVectorData() { - for (const t2 in this.buckets) - this.buckets[t2].destroy(); - this.buckets = {}, this.imageAtlasTexture && this.imageAtlasTexture.destroy(), this.imageAtlas && (this.imageAtlas = null), this.glyphAtlasTexture && this.glyphAtlasTexture.destroy(), this.latestFeatureIndex = null, this.state = "unloaded"; + var U = function(t2, e2) { + this.max = t2, this.onRemove = e2, this.reset(); + }; + U.prototype.reset = function() { + for (var t2 in this.data) + for (var e2 = 0, i2 = this.data[t2]; e2 < i2.length; e2 += 1) { + var o2 = i2[e2]; + o2.timeout && clearTimeout(o2.timeout), this.onRemove(o2.value); + } + return this.data = {}, this.order = [], this; + }, U.prototype.add = function(t2, e2, i2) { + var o2 = this, r2 = t2.wrapped().key; + void 0 === this.data[r2] && (this.data[r2] = []); + var a2 = { value: e2, timeout: void 0 }; + if (void 0 !== i2 && (a2.timeout = setTimeout(function() { + o2.remove(t2, a2); + }, i2)), this.data[r2].push(a2), this.order.push(r2), this.order.length > this.max) { + var n2 = this._getAndRemoveByKey(this.order[0]); + n2 && this.onRemove(n2); } - getBucket(t2) { - return this.buckets[t2.id]; + return this; + }, U.prototype.has = function(t2) { + return t2.wrapped().key in this.data; + }, U.prototype.getAndRemove = function(t2) { + return this.has(t2) ? this._getAndRemoveByKey(t2.wrapped().key) : null; + }, U.prototype._getAndRemoveByKey = function(t2) { + var e2 = this.data[t2].shift(); + return e2.timeout && clearTimeout(e2.timeout), 0 === this.data[t2].length && delete this.data[t2], this.order.splice(this.order.indexOf(t2), 1), e2.value; + }, U.prototype.getByKey = function(t2) { + var e2 = this.data[t2]; + return e2 ? e2[0].value : null; + }, U.prototype.get = function(t2) { + return this.has(t2) ? this.data[t2.wrapped().key][0].value : null; + }, U.prototype.remove = function(t2, e2) { + if (!this.has(t2)) + return this; + var i2 = t2.wrapped().key, o2 = void 0 === e2 ? 0 : this.data[i2].indexOf(e2), r2 = this.data[i2][o2]; + return this.data[i2].splice(o2, 1), r2.timeout && clearTimeout(r2.timeout), 0 === this.data[i2].length && delete this.data[i2], this.onRemove(r2.value), this.order.splice(this.order.indexOf(i2), 1), this; + }, U.prototype.setMaxSize = function(t2) { + for (this.max = t2; this.order.length > this.max; ) { + var e2 = this._getAndRemoveByKey(this.order[0]); + e2 && this.onRemove(e2); } - upload(t2) { - for (const e3 in this.buckets) { - const i2 = this.buckets[e3]; - i2.uploadPending() && i2.upload(t2); + return this; + }, U.prototype.filter = function(t2) { + var e2 = []; + for (var i2 in this.data) + for (var o2 = 0, r2 = this.data[i2]; o2 < r2.length; o2 += 1) { + var a2 = r2[o2]; + t2(a2.value) || e2.push(a2); } - const e2 = t2.gl; - this.imageAtlas && !this.imageAtlas.uploaded && (this.imageAtlasTexture = new l(t2, this.imageAtlas.image, e2.RGBA), this.imageAtlas.uploaded = true), this.glyphAtlasImage && (this.glyphAtlasTexture = new l(t2, this.glyphAtlasImage, e2.ALPHA), this.glyphAtlasImage = null); - } - prepare(t2) { - this.imageAtlas && this.imageAtlas.patchUpdatedImages(t2, this.imageAtlasTexture); + for (var n2 = 0, s2 = e2; n2 < s2.length; n2 += 1) { + var l2 = s2[n2]; + this.remove(l2.value.tileID, l2); } - queryRenderedFeatures(t2, e2, i2, o2, a2, r2, s2, n2, l2, c3) { - return this.latestFeatureIndex && this.latestFeatureIndex.rawTileData ? this.latestFeatureIndex.query({ queryGeometry: o2, cameraQueryGeometry: a2, scale: r2, tileSize: this.tileSize, pixelPosMatrix: c3, transform: n2, params: s2, queryPadding: this.queryPadding * l2 }, t2, e2, i2) : {}; + }; + var N = function(t2, e2, i2) { + this.context = t2; + var o2 = t2.gl; + this.buffer = o2.createBuffer(), this.dynamicDraw = Boolean(i2), this.context.unbindVAO(), t2.bindElementBuffer.set(this.buffer), o2.bufferData(o2.ELEMENT_ARRAY_BUFFER, e2.arrayBuffer, this.dynamicDraw ? o2.DYNAMIC_DRAW : o2.STATIC_DRAW), this.dynamicDraw || delete e2.arrayBuffer; + }; + N.prototype.bind = function() { + this.context.bindElementBuffer.set(this.buffer); + }, N.prototype.updateData = function(t2) { + var e2 = this.context.gl; + this.context.unbindVAO(), this.bind(), e2.bufferSubData(e2.ELEMENT_ARRAY_BUFFER, 0, t2.arrayBuffer); + }, N.prototype.destroy = function() { + this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer); + }; + var Z2 = { Int8: "BYTE", Uint8: "UNSIGNED_BYTE", Int16: "SHORT", Uint16: "UNSIGNED_SHORT", Int32: "INT", Uint32: "UNSIGNED_INT", Float32: "FLOAT" }, q = function(t2, e2, i2, o2) { + this.length = e2.length, this.attributes = i2, this.itemSize = e2.bytesPerElement, this.dynamicDraw = o2, this.context = t2; + var r2 = t2.gl; + this.buffer = r2.createBuffer(), t2.bindVertexBuffer.set(this.buffer), r2.bufferData(r2.ARRAY_BUFFER, e2.arrayBuffer, this.dynamicDraw ? r2.DYNAMIC_DRAW : r2.STATIC_DRAW), this.dynamicDraw || delete e2.arrayBuffer; + }; + q.prototype.bind = function() { + this.context.bindVertexBuffer.set(this.buffer); + }, q.prototype.updateData = function(t2) { + var e2 = this.context.gl; + this.bind(), e2.bufferSubData(e2.ARRAY_BUFFER, 0, t2.arrayBuffer); + }, q.prototype.enableAttributes = function(t2, e2) { + for (var i2 = 0; i2 < this.attributes.length; i2++) { + var o2 = e2.attributes[this.attributes[i2].name]; + void 0 !== o2 && t2.enableVertexAttribArray(o2); + } + }, q.prototype.setVertexAttribPointers = function(t2, e2, i2) { + for (var o2 = 0; o2 < this.attributes.length; o2++) { + var r2 = this.attributes[o2], a2 = e2.attributes[r2.name]; + void 0 !== a2 && t2.vertexAttribPointer(a2, r2.components, t2[Z2[r2.type]], false, this.itemSize, r2.offset + this.itemSize * (i2 || 0)); + } + }, q.prototype.destroy = function() { + this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer); + }; + var j = function(t2) { + this.gl = t2.gl, this.default = this.getDefault(), this.current = this.default, this.dirty = false; + }; + j.prototype.get = function() { + return this.current; + }, j.prototype.set = function(t2) { + }, j.prototype.getDefault = function() { + return this.default; + }, j.prototype.setDefault = function() { + this.set(this.default); + }; + var V2 = function(e2) { + function i2() { + e2.apply(this, arguments); } - querySourceFeatures(e2, i2) { - const o2 = this.latestFeatureIndex; - if (!o2 || !o2.rawTileData) - return; - const a2 = o2.loadVTLayers(), r2 = i2 ? i2.sourceLayer : "", s2 = a2._geojsonTileLayer || a2[r2]; - if (!s2) - return; - const n2 = t.createFilter(i2 && i2.filter), { z: l2, x: c3, y: h3 } = this.tileID.canonical, u2 = { z: l2, x: c3, y: h3 }; - for (let i3 = 0; i3 < s2.length; i3++) { - const a3 = s2.feature(i3); - if (n2.needGeometry) { - const e3 = t.toEvaluationFeature(a3, true); - if (!n2.filter(new t.EvaluationParameters(this.tileID.overscaledZ), e3, this.tileID.canonical)) - continue; - } else if (!n2.filter(new t.EvaluationParameters(this.tileID.overscaledZ), a3)) - continue; - const d2 = o2.getId(a3, r2), m2 = new t.GeoJSONFeature(a3, l2, c3, h3, d2); - m2.tile = u2, e2.push(m2); + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.getDefault = function() { + return t.Color.transparent; + }, i2.prototype.set = function(t2) { + var e3 = this.current; + (t2.r !== e3.r || t2.g !== e3.g || t2.b !== e3.b || t2.a !== e3.a || this.dirty) && (this.gl.clearColor(t2.r, t2.g, t2.b, t2.a), this.current = t2, this.dirty = false); + }, i2; + }(j), G = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return 1; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.clearDepth(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), W = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return 0; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.clearStencil(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), X = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return [true, true, true, true]; + }, e2.prototype.set = function(t3) { + var e3 = this.current; + (t3[0] !== e3[0] || t3[1] !== e3[1] || t3[2] !== e3[2] || t3[3] !== e3[3] || this.dirty) && (this.gl.colorMask(t3[0], t3[1], t3[2], t3[3]), this.current = t3, this.dirty = false); + }, e2; + }(j), H = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return true; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.depthMask(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), K = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return 255; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.stencilMask(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), Y = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return { func: this.gl.ALWAYS, ref: 0, mask: 255 }; + }, e2.prototype.set = function(t3) { + var e3 = this.current; + (t3.func !== e3.func || t3.ref !== e3.ref || t3.mask !== e3.mask || this.dirty) && (this.gl.stencilFunc(t3.func, t3.ref, t3.mask), this.current = t3, this.dirty = false); + }, e2; + }(j), J = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + var t3 = this.gl; + return [t3.KEEP, t3.KEEP, t3.KEEP]; + }, e2.prototype.set = function(t3) { + var e3 = this.current; + (t3[0] !== e3[0] || t3[1] !== e3[1] || t3[2] !== e3[2] || this.dirty) && (this.gl.stencilOp(t3[0], t3[1], t3[2]), this.current = t3, this.dirty = false); + }, e2; + }(j), Q = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return false; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + t3 ? e3.enable(e3.STENCIL_TEST) : e3.disable(e3.STENCIL_TEST), this.current = t3, this.dirty = false; } + }, e2; + }(j), $ = function(t2) { + function e2() { + t2.apply(this, arguments); } - hasData() { - return "loaded" === this.state || "reloading" === this.state || "expired" === this.state; - } - patternsLoaded() { - return this.imageAtlas && !!Object.keys(this.imageAtlas.patternPositions).length; - } - setExpiryData(e2) { - const i2 = this.expirationTime; - if (e2.cacheControl) { - const i3 = t.parseCacheControl(e2.cacheControl); - i3["max-age"] && (this.expirationTime = Date.now() + 1e3 * i3["max-age"]); - } else - e2.expires && (this.expirationTime = new Date(e2.expires).getTime()); - if (this.expirationTime) { - const t2 = Date.now(); - let e3 = false; - if (this.expirationTime > t2) - e3 = false; - else if (i2) - if (this.expirationTime < i2) - e3 = true; - else { - const o2 = this.expirationTime - i2; - o2 ? this.expirationTime = t2 + Math.max(o2, 3e4) : e3 = true; - } - else - e3 = true; - e3 ? (this.expiredRequestCount++, this.state = "expired") : this.expiredRequestCount = 0; + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return [0, 1]; + }, e2.prototype.set = function(t3) { + var e3 = this.current; + (t3[0] !== e3[0] || t3[1] !== e3[1] || this.dirty) && (this.gl.depthRange(t3[0], t3[1]), this.current = t3, this.dirty = false); + }, e2; + }(j), tt = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return false; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + t3 ? e3.enable(e3.DEPTH_TEST) : e3.disable(e3.DEPTH_TEST), this.current = t3, this.dirty = false; } + }, e2; + }(j), et = function(t2) { + function e2() { + t2.apply(this, arguments); } - getExpiryTimeout() { - if (this.expirationTime) - return this.expiredRequestCount ? 1e3 * (1 << Math.min(this.expiredRequestCount - 1, 31)) : Math.min(this.expirationTime - new Date().getTime(), Math.pow(2, 31) - 1); - } - setFeatureState(t2, e2) { - if (!this.latestFeatureIndex || !this.latestFeatureIndex.rawTileData || 0 === Object.keys(t2).length) - return; - const i2 = this.latestFeatureIndex.loadVTLayers(); - for (const o2 in this.buckets) { - if (!e2.style.hasLayer(o2)) - continue; - const a2 = this.buckets[o2], r2 = a2.layers[0].sourceLayer || "_geojsonTileLayer", s2 = i2[r2], n2 = t2[r2]; - if (!s2 || !n2 || 0 === Object.keys(n2).length) - continue; - a2.update(n2, s2, this.imageAtlas && this.imageAtlas.patternPositions || {}); - const l2 = e2 && e2.style && e2.style.getLayer(o2); - l2 && (this.queryPadding = Math.max(this.queryPadding, l2.queryRadius(a2))); + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return this.gl.LESS; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.depthFunc(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), it = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return false; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + t3 ? e3.enable(e3.BLEND) : e3.disable(e3.BLEND), this.current = t3, this.dirty = false; + } + }, e2; + }(j), ot = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + var t3 = this.gl; + return [t3.ONE, t3.ZERO]; + }, e2.prototype.set = function(t3) { + var e3 = this.current; + (t3[0] !== e3[0] || t3[1] !== e3[1] || this.dirty) && (this.gl.blendFunc(t3[0], t3[1]), this.current = t3, this.dirty = false); + }, e2; + }(j), rt = function(e2) { + function i2() { + e2.apply(this, arguments); + } + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.getDefault = function() { + return t.Color.transparent; + }, i2.prototype.set = function(t2) { + var e3 = this.current; + (t2.r !== e3.r || t2.g !== e3.g || t2.b !== e3.b || t2.a !== e3.a || this.dirty) && (this.gl.blendColor(t2.r, t2.g, t2.b, t2.a), this.current = t2, this.dirty = false); + }, i2; + }(j), at = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return this.gl.FUNC_ADD; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.blendEquation(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), nt = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return false; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + t3 ? e3.enable(e3.CULL_FACE) : e3.disable(e3.CULL_FACE), this.current = t3, this.dirty = false; } + }, e2; + }(j), st = function(t2) { + function e2() { + t2.apply(this, arguments); } - holdingForFade() { - return void 0 !== this.symbolFadeHoldUntil; - } - symbolFadeFinished() { - return !this.symbolFadeHoldUntil || this.symbolFadeHoldUntil < t.exported.now(); - } - clearFadeHold() { - this.symbolFadeHoldUntil = void 0; - } - setHoldDuration(e2) { - this.symbolFadeHoldUntil = t.exported.now() + e2; - } - setDependencies(t2, e2) { - const i2 = {}; - for (const t3 of e2) - i2[t3] = true; - this.dependencies[t2] = i2; - } - hasDependency(t2, e2) { - for (const i2 of t2) { - const t3 = this.dependencies[i2]; - if (t3) { - for (const i3 of e2) - if (t3[i3]) - return true; - } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return this.gl.BACK; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.cullFace(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), lt = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return this.gl.CCW; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.frontFace(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), ct = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return null; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.useProgram(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), ut = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return this.gl.TEXTURE0; + }, e2.prototype.set = function(t3) { + (t3 !== this.current || this.dirty) && (this.gl.activeTexture(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), ht = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + var t3 = this.gl; + return [0, 0, t3.drawingBufferWidth, t3.drawingBufferHeight]; + }, e2.prototype.set = function(t3) { + var e3 = this.current; + (t3[0] !== e3[0] || t3[1] !== e3[1] || t3[2] !== e3[2] || t3[3] !== e3[3] || this.dirty) && (this.gl.viewport(t3[0], t3[1], t3[2], t3[3]), this.current = t3, this.dirty = false); + }, e2; + }(j), pt = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return null; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + e3.bindFramebuffer(e3.FRAMEBUFFER, t3), this.current = t3, this.dirty = false; } - return false; - } - } - class B { - constructor(t2, e2) { - this.max = t2, this.onRemove = e2, this.reset(); + }, e2; + }(j), dt = function(t2) { + function e2() { + t2.apply(this, arguments); } - reset() { - for (const t2 in this.data) - for (const e2 of this.data[t2]) - e2.timeout && clearTimeout(e2.timeout), this.onRemove(e2.value); - return this.data = {}, this.order = [], this; - } - add(t2, e2, i2) { - const o2 = t2.wrapped().key; - void 0 === this.data[o2] && (this.data[o2] = []); - const a2 = { value: e2, timeout: void 0 }; - if (void 0 !== i2 && (a2.timeout = setTimeout(() => { - this.remove(t2, a2); - }, i2)), this.data[o2].push(a2), this.order.push(o2), this.order.length > this.max) { - const t3 = this._getAndRemoveByKey(this.order[0]); - t3 && this.onRemove(t3); + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return null; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + e3.bindRenderbuffer(e3.RENDERBUFFER, t3), this.current = t3, this.dirty = false; } - return this; - } - has(t2) { - return t2.wrapped().key in this.data; + }, e2; + }(j), _t = function(t2) { + function e2() { + t2.apply(this, arguments); } - getAndRemove(t2) { - return this.has(t2) ? this._getAndRemoveByKey(t2.wrapped().key) : null; - } - _getAndRemoveByKey(t2) { - const e2 = this.data[t2].shift(); - return e2.timeout && clearTimeout(e2.timeout), 0 === this.data[t2].length && delete this.data[t2], this.order.splice(this.order.indexOf(t2), 1), e2.value; - } - getByKey(t2) { - const e2 = this.data[t2]; - return e2 ? e2[0].value : null; - } - get(t2) { - return this.has(t2) ? this.data[t2.wrapped().key][0].value : null; - } - remove(t2, e2) { - if (!this.has(t2)) - return this; - const i2 = t2.wrapped().key, o2 = void 0 === e2 ? 0 : this.data[i2].indexOf(e2), a2 = this.data[i2][o2]; - return this.data[i2].splice(o2, 1), a2.timeout && clearTimeout(a2.timeout), 0 === this.data[i2].length && delete this.data[i2], this.onRemove(a2.value), this.order.splice(this.order.indexOf(i2), 1), this; + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return null; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + e3.bindTexture(e3.TEXTURE_2D, t3), this.current = t3, this.dirty = false; + } + }, e2; + }(j), ft = function(t2) { + function e2() { + t2.apply(this, arguments); } - setMaxSize(t2) { - for (this.max = t2; this.order.length > this.max; ) { - const t3 = this._getAndRemoveByKey(this.order[0]); - t3 && this.onRemove(t3); + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return null; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + e3.bindBuffer(e3.ARRAY_BUFFER, t3), this.current = t3, this.dirty = false; } - return this; + }, e2; + }(j), mt = function(t2) { + function e2() { + t2.apply(this, arguments); } - filter(t2) { - const e2 = []; - for (const i2 in this.data) - for (const o2 of this.data[i2]) - t2(o2.value) || e2.push(o2); - for (const t3 of e2) - this.remove(t3.value.tileID, t3); - } - } - class F { - constructor() { - this.state = {}, this.stateChanges = {}, this.deletedStates = {}; - } - updateState(e2, i2, o2) { - const a2 = String(i2); - if (this.stateChanges[e2] = this.stateChanges[e2] || {}, this.stateChanges[e2][a2] = this.stateChanges[e2][a2] || {}, t.extend(this.stateChanges[e2][a2], o2), null === this.deletedStates[e2]) { - this.deletedStates[e2] = {}; - for (const t2 in this.state[e2]) - t2 !== a2 && (this.deletedStates[e2][t2] = null); - } else if (this.deletedStates[e2] && null === this.deletedStates[e2][a2]) { - this.deletedStates[e2][a2] = {}; - for (const t2 in this.state[e2][a2]) - o2[t2] || (this.deletedStates[e2][a2][t2] = null); - } else - for (const t2 in o2) - this.deletedStates[e2] && this.deletedStates[e2][a2] && null === this.deletedStates[e2][a2][t2] && delete this.deletedStates[e2][a2][t2]; + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return null; + }, e2.prototype.set = function(t3) { + var e3 = this.gl; + e3.bindBuffer(e3.ELEMENT_ARRAY_BUFFER, t3), this.current = t3, this.dirty = false; + }, e2; + }(j), gt = function(t2) { + function e2(e3) { + t2.call(this, e3), this.vao = e3.extVertexArrayObject; + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return null; + }, e2.prototype.set = function(t3) { + this.vao && (t3 !== this.current || this.dirty) && (this.vao.bindVertexArrayOES(t3), this.current = t3, this.dirty = false); + }, e2; + }(j), vt = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return 4; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + e3.pixelStorei(e3.UNPACK_ALIGNMENT, t3), this.current = t3, this.dirty = false; + } + }, e2; + }(j), yt = function(t2) { + function e2() { + t2.apply(this, arguments); } - removeFeatureState(t2, e2, i2) { - if (null === this.deletedStates[t2]) - return; - const o2 = String(e2); - if (this.deletedStates[t2] = this.deletedStates[t2] || {}, i2 && void 0 !== e2) - null !== this.deletedStates[t2][o2] && (this.deletedStates[t2][o2] = this.deletedStates[t2][o2] || {}, this.deletedStates[t2][o2][i2] = null); - else if (void 0 !== e2) - if (this.stateChanges[t2] && this.stateChanges[t2][o2]) - for (i2 in this.deletedStates[t2][o2] = {}, this.stateChanges[t2][o2]) - this.deletedStates[t2][o2][i2] = null; - else - this.deletedStates[t2][o2] = null; - else - this.deletedStates[t2] = null; + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return false; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + e3.pixelStorei(e3.UNPACK_PREMULTIPLY_ALPHA_WEBGL, t3), this.current = t3, this.dirty = false; + } + }, e2; + }(j), xt = function(t2) { + function e2() { + t2.apply(this, arguments); } - getState(e2, i2) { - const o2 = String(i2), a2 = t.extend({}, (this.state[e2] || {})[o2], (this.stateChanges[e2] || {})[o2]); - if (null === this.deletedStates[e2]) - return {}; - if (this.deletedStates[e2]) { - const t2 = this.deletedStates[e2][i2]; - if (null === t2) - return {}; - for (const e3 in t2) - delete a2[e3]; + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return false; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + var e3 = this.gl; + e3.pixelStorei(e3.UNPACK_FLIP_Y_WEBGL, t3), this.current = t3, this.dirty = false; } - return a2; + }, e2; + }(j), bt = function(t2) { + function e2(e3, i2) { + t2.call(this, e3), this.context = e3, this.parent = i2; } - initializeTileState(t2, e2) { - t2.setFeatureState(this.state, e2); - } - coalesceChanges(e2, i2) { - const o2 = {}; - for (const e3 in this.stateChanges) { - this.state[e3] = this.state[e3] || {}; - const i3 = {}; - for (const o3 in this.stateChanges[e3]) - this.state[e3][o3] || (this.state[e3][o3] = {}), t.extend(this.state[e3][o3], this.stateChanges[e3][o3]), i3[o3] = this.state[e3][o3]; - o2[e3] = i3; - } - for (const e3 in this.deletedStates) { - this.state[e3] = this.state[e3] || {}; - const i3 = {}; - if (null === this.deletedStates[e3]) - for (const t2 in this.state[e3]) - i3[t2] = {}, this.state[e3][t2] = {}; - else - for (const t2 in this.deletedStates[e3]) { - if (null === this.deletedStates[e3][t2]) - this.state[e3][t2] = {}; - else - for (const i4 of Object.keys(this.deletedStates[e3][t2])) - delete this.state[e3][t2][i4]; - i3[t2] = this.state[e3][t2]; - } - o2[e3] = o2[e3] || {}, t.extend(o2[e3], i3); - } - if (this.stateChanges = {}, this.deletedStates = {}, 0 !== Object.keys(o2).length) - for (const t2 in e2) - e2[t2].setFeatureState(o2, i2); - } - } - class O2 extends t.Evented { - constructor(e2, i2, o2) { - super(), this.id = e2, this.dispatcher = o2, this.on("data", (t2) => { - "source" === t2.dataType && "metadata" === t2.sourceDataType && (this._sourceLoaded = true), this._sourceLoaded && !this._paused && "source" === t2.dataType && "content" === t2.sourceDataType && (this.reload(), this.transform && this.update(this.transform, this.terrain)); - }), this.on("dataloading", () => { - this._sourceErrored = false; - }), this.on("error", () => { - this._sourceErrored = this._source.loaded(); - }), this._source = function(e3, i3, o3, a2) { - const r2 = new M[i3.type](e3, i3, o3, a2); - if (r2.id !== e3) - throw new Error(`Expected Source id to be ${e3} instead of ${r2.id}`); - return t.bindAll(["load", "abort", "unload", "serialize", "prepare"], r2), r2; - }(e2, i2, o2, this), this._tiles = {}, this._cache = new B(0, this._unloadTile.bind(this)), this._timers = {}, this._cacheTimers = {}, this._maxTileCacheSize = null, this._loadedParentTiles = {}, this._coveredTiles = {}, this._state = new F(); - } - onAdd(t2) { - this.map = t2, this._maxTileCacheSize = t2 ? t2._maxTileCacheSize : null, this._source && this._source.onAdd && this._source.onAdd(t2); + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.getDefault = function() { + return null; + }, e2; + }(j), wt = function(t2) { + function e2() { + t2.apply(this, arguments); } - onRemove(t2) { - this.clearTiles(), this._source && this._source.onRemove && this._source.onRemove(t2); + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.setDirty = function() { + this.dirty = true; + }, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + this.context.bindFramebuffer.set(this.parent); + var e3 = this.gl; + e3.framebufferTexture2D(e3.FRAMEBUFFER, e3.COLOR_ATTACHMENT0, e3.TEXTURE_2D, t3, 0), this.current = t3, this.dirty = false; + } + }, e2; + }(bt), Tt = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.set = function(t3) { + if (t3 !== this.current || this.dirty) { + this.context.bindFramebuffer.set(this.parent); + var e3 = this.gl; + e3.framebufferRenderbuffer(e3.FRAMEBUFFER, e3.DEPTH_ATTACHMENT, e3.RENDERBUFFER, t3), this.current = t3, this.dirty = false; + } + }, e2; + }(bt), Et = function(t2, e2, i2, o2) { + this.context = t2, this.width = e2, this.height = i2; + var r2 = this.framebuffer = t2.gl.createFramebuffer(); + this.colorAttachment = new wt(t2, r2), o2 && (this.depthAttachment = new Tt(t2, r2)); + }; + Et.prototype.destroy = function() { + var t2 = this.context.gl, e2 = this.colorAttachment.get(); + if (e2 && t2.deleteTexture(e2), this.depthAttachment) { + var i2 = this.depthAttachment.get(); + i2 && t2.deleteRenderbuffer(i2); } - loaded() { + t2.deleteFramebuffer(this.framebuffer); + }; + var It = function(t2, e2, i2) { + this.func = t2, this.mask = e2, this.range = i2; + }; + It.ReadOnly = false, It.ReadWrite = true, It.disabled = new It(519, It.ReadOnly, [0, 1]); + var Pt = function(t2, e2, i2, o2, r2, a2) { + this.test = t2, this.ref = e2, this.mask = i2, this.fail = o2, this.depthFail = r2, this.pass = a2; + }; + Pt.disabled = new Pt({ func: 519, mask: 0 }, 0, 0, 7680, 7680, 7680); + var St = function(t2, e2, i2) { + this.blendFunction = t2, this.blendColor = e2, this.mask = i2; + }; + St.disabled = new St(St.Replace = [1, 0], t.Color.transparent, [false, false, false, false]), St.unblended = new St(St.Replace, t.Color.transparent, [true, true, true, true]), St.alphaBlended = new St([1, 771], t.Color.transparent, [true, true, true, true]); + var Ct = function(t2, e2, i2) { + this.enable = t2, this.mode = e2, this.frontFace = i2; + }; + Ct.disabled = new Ct(false, 1029, 2305), Ct.backCCW = new Ct(true, 1029, 2305); + var zt = function(t2) { + this.gl = t2, this.extVertexArrayObject = this.gl.getExtension("OES_vertex_array_object"), this.clearColor = new V2(this), this.clearDepth = new G(this), this.clearStencil = new W(this), this.colorMask = new X(this), this.depthMask = new H(this), this.stencilMask = new K(this), this.stencilFunc = new Y(this), this.stencilOp = new J(this), this.stencilTest = new Q(this), this.depthRange = new $(this), this.depthTest = new tt(this), this.depthFunc = new et(this), this.blend = new it(this), this.blendFunc = new ot(this), this.blendColor = new rt(this), this.blendEquation = new at(this), this.cullFace = new nt(this), this.cullFaceSide = new st(this), this.frontFace = new lt(this), this.program = new ct(this), this.activeTexture = new ut(this), this.viewport = new ht(this), this.bindFramebuffer = new pt(this), this.bindRenderbuffer = new dt(this), this.bindTexture = new _t(this), this.bindVertexBuffer = new ft(this), this.bindElementBuffer = new mt(this), this.bindVertexArrayOES = this.extVertexArrayObject && new gt(this), this.pixelStoreUnpack = new vt(this), this.pixelStoreUnpackPremultiplyAlpha = new yt(this), this.pixelStoreUnpackFlipY = new xt(this), this.extTextureFilterAnisotropic = t2.getExtension("EXT_texture_filter_anisotropic") || t2.getExtension("MOZ_EXT_texture_filter_anisotropic") || t2.getExtension("WEBKIT_EXT_texture_filter_anisotropic"), this.extTextureFilterAnisotropic && (this.extTextureFilterAnisotropicMax = t2.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)), this.extTextureHalfFloat = t2.getExtension("OES_texture_half_float"), this.extTextureHalfFloat && (t2.getExtension("OES_texture_half_float_linear"), this.extRenderToTextureHalfFloat = t2.getExtension("EXT_color_buffer_half_float")), this.extTimerQuery = t2.getExtension("EXT_disjoint_timer_query"), this.maxTextureSize = t2.getParameter(t2.MAX_TEXTURE_SIZE); + }; + zt.prototype.setDefault = function() { + this.unbindVAO(), this.clearColor.setDefault(), this.clearDepth.setDefault(), this.clearStencil.setDefault(), this.colorMask.setDefault(), this.depthMask.setDefault(), this.stencilMask.setDefault(), this.stencilFunc.setDefault(), this.stencilOp.setDefault(), this.stencilTest.setDefault(), this.depthRange.setDefault(), this.depthTest.setDefault(), this.depthFunc.setDefault(), this.blend.setDefault(), this.blendFunc.setDefault(), this.blendColor.setDefault(), this.blendEquation.setDefault(), this.cullFace.setDefault(), this.cullFaceSide.setDefault(), this.frontFace.setDefault(), this.program.setDefault(), this.activeTexture.setDefault(), this.bindFramebuffer.setDefault(), this.pixelStoreUnpack.setDefault(), this.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.pixelStoreUnpackFlipY.setDefault(); + }, zt.prototype.setDirty = function() { + this.clearColor.dirty = true, this.clearDepth.dirty = true, this.clearStencil.dirty = true, this.colorMask.dirty = true, this.depthMask.dirty = true, this.stencilMask.dirty = true, this.stencilFunc.dirty = true, this.stencilOp.dirty = true, this.stencilTest.dirty = true, this.depthRange.dirty = true, this.depthTest.dirty = true, this.depthFunc.dirty = true, this.blend.dirty = true, this.blendFunc.dirty = true, this.blendColor.dirty = true, this.blendEquation.dirty = true, this.cullFace.dirty = true, this.cullFaceSide.dirty = true, this.frontFace.dirty = true, this.program.dirty = true, this.activeTexture.dirty = true, this.viewport.dirty = true, this.bindFramebuffer.dirty = true, this.bindRenderbuffer.dirty = true, this.bindTexture.dirty = true, this.bindVertexBuffer.dirty = true, this.bindElementBuffer.dirty = true, this.extVertexArrayObject && (this.bindVertexArrayOES.dirty = true), this.pixelStoreUnpack.dirty = true, this.pixelStoreUnpackPremultiplyAlpha.dirty = true, this.pixelStoreUnpackFlipY.dirty = true; + }, zt.prototype.createIndexBuffer = function(t2, e2) { + return new N(this, t2, e2); + }, zt.prototype.createVertexBuffer = function(t2, e2, i2) { + return new q(this, t2, e2, i2); + }, zt.prototype.createRenderbuffer = function(t2, e2, i2) { + var o2 = this.gl, r2 = o2.createRenderbuffer(); + return this.bindRenderbuffer.set(r2), o2.renderbufferStorage(o2.RENDERBUFFER, t2, e2, i2), this.bindRenderbuffer.set(null), r2; + }, zt.prototype.createFramebuffer = function(t2, e2, i2) { + return new Et(this, t2, e2, i2); + }, zt.prototype.clear = function(t2) { + var e2 = t2.color, i2 = t2.depth, o2 = this.gl, r2 = 0; + e2 && (r2 |= o2.COLOR_BUFFER_BIT, this.clearColor.set(e2), this.colorMask.set([true, true, true, true])), void 0 !== i2 && (r2 |= o2.DEPTH_BUFFER_BIT, this.depthRange.set([0, 1]), this.clearDepth.set(i2), this.depthMask.set(true)), o2.clear(r2); + }, zt.prototype.setCullFace = function(t2) { + false === t2.enable ? this.cullFace.set(false) : (this.cullFace.set(true), this.cullFaceSide.set(t2.mode), this.frontFace.set(t2.frontFace)); + }, zt.prototype.setDepthMode = function(t2) { + t2.func !== this.gl.ALWAYS || t2.mask ? (this.depthTest.set(true), this.depthFunc.set(t2.func), this.depthMask.set(t2.mask), this.depthRange.set(t2.range)) : this.depthTest.set(false); + }, zt.prototype.setStencilMode = function(t2) { + t2.test.func !== this.gl.ALWAYS || t2.mask ? (this.stencilTest.set(true), this.stencilMask.set(t2.mask), this.stencilOp.set([t2.fail, t2.depthFail, t2.pass]), this.stencilFunc.set({ func: t2.test.func, ref: t2.ref, mask: t2.test.mask })) : this.stencilTest.set(false); + }, zt.prototype.setColorMode = function(e2) { + t.deepEqual(e2.blendFunction, St.Replace) ? this.blend.set(false) : (this.blend.set(true), this.blendFunc.set(e2.blendFunction), this.blendColor.set(e2.blendColor)), this.colorMask.set(e2.mask); + }, zt.prototype.unbindVAO = function() { + this.extVertexArrayObject && this.bindVertexArrayOES.set(null); + }; + var Dt = function(e2) { + function i2(i3, o2, r2) { + var a2 = this; + e2.call(this), this.id = i3, this.dispatcher = r2, this.on("data", function(t2) { + "source" === t2.dataType && "metadata" === t2.sourceDataType && (a2._sourceLoaded = true), a2._sourceLoaded && !a2._paused && "source" === t2.dataType && "content" === t2.sourceDataType && (a2.reload(), a2.transform && a2.update(a2.transform)); + }), this.on("error", function() { + a2._sourceErrored = true; + }), this._source = function(e3, i4, o3, r3) { + var a3 = new k[i4.type](e3, i4, o3, r3); + if (a3.id !== e3) + throw new Error("Expected Source id to be " + e3 + " instead of " + a3.id); + return t.bindAll(["load", "abort", "unload", "serialize", "prepare"], a3), a3; + }(i3, o2, r2, this), this._tiles = {}, this._cache = new U(0, this._unloadTile.bind(this)), this._timers = {}, this._cacheTimers = {}, this._maxTileCacheSize = null, this._loadedParentTiles = {}, this._coveredTiles = {}, this._state = new t.SourceFeatureState(); + } + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.onAdd = function(t2) { + this.map = t2, this._maxTileCacheSize = t2 ? t2._maxTileCacheSize : null, this._source && this._source.onAdd && this._source.onAdd(t2); + }, i2.prototype.onRemove = function(t2) { + this._source && this._source.onRemove && this._source.onRemove(t2); + }, i2.prototype.loaded = function() { if (this._sourceErrored) return true; if (!this._sourceLoaded) return false; if (!this._source.loaded()) return false; - for (const t2 in this._tiles) { - const e2 = this._tiles[t2]; - if ("loaded" !== e2.state && "errored" !== e2.state) + for (var t2 in this._tiles) { + var e3 = this._tiles[t2]; + if ("loaded" !== e3.state && "errored" !== e3.state) return false; } return true; - } - getSource() { + }, i2.prototype.getSource = function() { return this._source; - } - pause() { + }, i2.prototype.pause = function() { this._paused = true; - } - resume() { - if (!this._paused) - return; - const t2 = this._shouldReloadOnResume; - this._paused = false, this._shouldReloadOnResume = false, t2 && this.reload(), this.transform && this.update(this.transform, this.terrain); - } - _loadTile(t2, e2) { - return this._source.loadTile(t2, e2); - } - _unloadTile(t2) { + }, i2.prototype.resume = function() { + if (this._paused) { + var t2 = this._shouldReloadOnResume; + this._paused = false, this._shouldReloadOnResume = false, t2 && this.reload(), this.transform && this.update(this.transform); + } + }, i2.prototype._loadTile = function(t2, e3) { + return this._source.loadTile(t2, e3); + }, i2.prototype._unloadTile = function(t2) { if (this._source.unloadTile) - return this._source.unloadTile(t2, () => { + return this._source.unloadTile(t2, function() { }); - } - _abortTile(e2) { - this._source.abortTile && this._source.abortTile(e2, () => { - }), this._source.fire(new t.Event("dataabort", { tile: e2, coord: e2.tileID, dataType: "source" })); - } - serialize() { + }, i2.prototype._abortTile = function(t2) { + if (this._source.abortTile) + return this._source.abortTile(t2, function() { + }); + }, i2.prototype.serialize = function() { return this._source.serialize(); - } - prepare(t2) { - this._source.prepare && this._source.prepare(), this._state.coalesceChanges(this._tiles, this.map ? this.map.painter : null); - for (const e2 in this._tiles) { - const i2 = this._tiles[e2]; - i2.upload(t2), i2.prepare(this.map.style.imageManager); - } - } - getIds() { - return Object.values(this._tiles).map((t2) => t2.tileID).sort(U).map((t2) => t2.key); - } - getRenderableIds(e2) { - const i2 = []; - for (const t2 in this._tiles) - this._isIdRenderable(t2, e2) && i2.push(this._tiles[t2]); - return e2 ? i2.sort((e3, i3) => { - const o2 = e3.tileID, a2 = i3.tileID, r2 = new t.pointGeometry(o2.canonical.x, o2.canonical.y)._rotate(this.transform.angle), s2 = new t.pointGeometry(a2.canonical.x, a2.canonical.y)._rotate(this.transform.angle); - return o2.overscaledZ - a2.overscaledZ || s2.y - r2.y || s2.x - r2.x; - }).map((t2) => t2.tileID.key) : i2.map((t2) => t2.tileID).sort(U).map((t2) => t2.key); - } - hasRenderableParent(t2) { - const e2 = this.findLoadedParent(t2, 0); - return !!e2 && this._isIdRenderable(e2.tileID.key); - } - _isIdRenderable(t2, e2) { - return this._tiles[t2] && this._tiles[t2].hasData() && !this._coveredTiles[t2] && (e2 || !this._tiles[t2].holdingForFade()); - } - reload() { + }, i2.prototype.prepare = function(t2) { + for (var e3 in this._source.prepare && this._source.prepare(), this._state.coalesceChanges(this._tiles, this.map ? this.map.painter : null), this._tiles) { + var i3 = this._tiles[e3]; + i3.upload(t2), i3.prepare(this.map.style.imageManager); + } + }, i2.prototype.getIds = function() { + return t.values(this._tiles).map(function(t2) { + return t2.tileID; + }).sort(At).map(function(t2) { + return t2.key; + }); + }, i2.prototype.getRenderableIds = function(e3) { + var i3 = this, o2 = []; + for (var r2 in this._tiles) + this._isIdRenderable(r2, e3) && o2.push(this._tiles[r2]); + return e3 ? o2.sort(function(e4, o3) { + var r3 = e4.tileID, a2 = o3.tileID, n2 = new t.Point(r3.canonical.x, r3.canonical.y)._rotate(i3.transform.angle), s2 = new t.Point(a2.canonical.x, a2.canonical.y)._rotate(i3.transform.angle); + return r3.overscaledZ - a2.overscaledZ || s2.y - n2.y || s2.x - n2.x; + }).map(function(t2) { + return t2.tileID.key; + }) : o2.map(function(t2) { + return t2.tileID; + }).sort(At).map(function(t2) { + return t2.key; + }); + }, i2.prototype.hasRenderableParent = function(t2) { + var e3 = this.findLoadedParent(t2, 0); + return !!e3 && this._isIdRenderable(e3.tileID.key); + }, i2.prototype._isIdRenderable = function(t2, e3) { + return this._tiles[t2] && this._tiles[t2].hasData() && !this._coveredTiles[t2] && (e3 || !this._tiles[t2].holdingForFade()); + }, i2.prototype.reload = function() { if (this._paused) this._shouldReloadOnResume = true; - else { - this._cache.reset(); - for (const t2 in this._tiles) + else + for (var t2 in this._cache.reset(), this._tiles) "errored" !== this._tiles[t2].state && this._reloadTile(t2, "reloading"); - } - } - _reloadTile(t2, e2) { - const i2 = this._tiles[t2]; - i2 && ("loading" !== i2.state && (i2.state = e2), this._loadTile(i2, this._tileLoaded.bind(this, i2, t2, e2))); - } - _tileLoaded(e2, i2, o2, a2) { - if (a2) - return e2.state = "errored", void (404 !== a2.status ? this._source.fire(new t.ErrorEvent(a2, { tile: e2 })) : this.update(this.transform, this.terrain)); - e2.timeAdded = t.exported.now(), "expired" === o2 && (e2.refreshedUponExpiration = true), this._setTileReloadTimer(i2, e2), "raster-dem" === this.getSource().type && e2.dem && this._backfillDEM(e2), this._state.initializeTileState(e2, this.map ? this.map.painter : null), e2.aborted || this._source.fire(new t.Event("data", { dataType: "source", tile: e2, coord: e2.tileID })); - } - _backfillDEM(t2) { - const e2 = this.getRenderableIds(); - for (let o2 = 0; o2 < e2.length; o2++) { - const a2 = e2[o2]; - if (t2.neighboringTiles && t2.neighboringTiles[a2]) { - const e3 = this.getTileByID(a2); - i2(t2, e3), i2(e3, t2); + }, i2.prototype._reloadTile = function(t2, e3) { + var i3 = this._tiles[t2]; + i3 && ("loading" !== i3.state && (i3.state = e3), this._loadTile(i3, this._tileLoaded.bind(this, i3, t2, e3))); + }, i2.prototype._tileLoaded = function(e3, i3, o2, r2) { + if (r2) + return e3.state = "errored", void (404 !== r2.status ? this._source.fire(new t.ErrorEvent(r2, { tile: e3 })) : this.update(this.transform)); + e3.timeAdded = t.browser.now(), "expired" === o2 && (e3.refreshedUponExpiration = true), this._setTileReloadTimer(i3, e3), "raster-dem" === this.getSource().type && e3.dem && this._backfillDEM(e3), this._state.initializeTileState(e3, this.map ? this.map.painter : null), this._source.fire(new t.Event("data", { dataType: "source", tile: e3, coord: e3.tileID })); + }, i2.prototype._backfillDEM = function(t2) { + for (var e3 = this.getRenderableIds(), i3 = 0; i3 < e3.length; i3++) { + var o2 = e3[i3]; + if (t2.neighboringTiles && t2.neighboringTiles[o2]) { + var r2 = this.getTileByID(o2); + a2(t2, r2), a2(r2, t2); } } - function i2(t3, e3) { - t3.needsHillshadePrepare = true, t3.needsTerrainPrepare = true; - let i3 = e3.tileID.canonical.x - t3.tileID.canonical.x; - const o2 = e3.tileID.canonical.y - t3.tileID.canonical.y, a2 = Math.pow(2, t3.tileID.canonical.z), r2 = e3.tileID.key; - 0 === i3 && 0 === o2 || Math.abs(o2) > 1 || (Math.abs(i3) > 1 && (1 === Math.abs(i3 + a2) ? i3 += a2 : 1 === Math.abs(i3 - a2) && (i3 -= a2)), e3.dem && t3.dem && (t3.dem.backfillBorder(e3.dem, i3, o2), t3.neighboringTiles && t3.neighboringTiles[r2] && (t3.neighboringTiles[r2].backfilled = true))); + function a2(t3, e4) { + t3.needsHillshadePrepare = true; + var i4 = e4.tileID.canonical.x - t3.tileID.canonical.x, o3 = e4.tileID.canonical.y - t3.tileID.canonical.y, r3 = Math.pow(2, t3.tileID.canonical.z), a3 = e4.tileID.key; + 0 === i4 && 0 === o3 || Math.abs(o3) > 1 || (Math.abs(i4) > 1 && (1 === Math.abs(i4 + r3) ? i4 += r3 : 1 === Math.abs(i4 - r3) && (i4 -= r3)), e4.dem && t3.dem && (t3.dem.backfillBorder(e4.dem, i4, o3), t3.neighboringTiles && t3.neighboringTiles[a3] && (t3.neighboringTiles[a3].backfilled = true))); } - } - getTile(t2) { + }, i2.prototype.getTile = function(t2) { return this.getTileByID(t2.key); - } - getTileByID(t2) { + }, i2.prototype.getTileByID = function(t2) { return this._tiles[t2]; - } - _retainLoadedChildren(t2, e2, i2, o2) { - for (const a2 in this._tiles) { - let r2 = this._tiles[a2]; - if (o2[a2] || !r2.hasData() || r2.tileID.overscaledZ <= e2 || r2.tileID.overscaledZ > i2) - continue; - let s2 = r2.tileID; - for (; r2 && r2.tileID.overscaledZ > e2 + 1; ) { - const t3 = r2.tileID.scaledTo(r2.tileID.overscaledZ - 1); - r2 = this._tiles[t3.key], r2 && r2.hasData() && (s2 = t3); - } - let n2 = s2; - for (; n2.overscaledZ > e2; ) - if (n2 = n2.scaledTo(n2.overscaledZ - 1), t2[n2.key]) { - o2[s2.key] = s2; - break; + }, i2.prototype._retainLoadedChildren = function(t2, e3, i3, o2) { + for (var r2 in this._tiles) { + var a2 = this._tiles[r2]; + if (!(o2[r2] || !a2.hasData() || a2.tileID.overscaledZ <= e3 || a2.tileID.overscaledZ > i3)) { + for (var n2 = a2.tileID; a2 && a2.tileID.overscaledZ > e3 + 1; ) { + var s2 = a2.tileID.scaledTo(a2.tileID.overscaledZ - 1); + (a2 = this._tiles[s2.key]) && a2.hasData() && (n2 = s2); } + for (var l2 = n2; l2.overscaledZ > e3; ) + if (t2[(l2 = l2.scaledTo(l2.overscaledZ - 1)).key]) { + o2[n2.key] = n2; + break; + } + } } - } - findLoadedParent(t2, e2) { + }, i2.prototype.findLoadedParent = function(t2, e3) { if (t2.key in this._loadedParentTiles) { - const i2 = this._loadedParentTiles[t2.key]; - return i2 && i2.tileID.overscaledZ >= e2 ? i2 : null; - } - for (let i2 = t2.overscaledZ - 1; i2 >= e2; i2--) { - const e3 = t2.scaledTo(i2), o2 = this._getLoadedTile(e3); - if (o2) - return o2; - } - } - _getLoadedTile(t2) { - const e2 = this._tiles[t2.key]; - return e2 && e2.hasData() ? e2 : this._cache.getByKey(t2.wrapped().key); - } - updateCacheSize(t2) { - const e2 = Math.ceil(t2.width / this._source.tileSize) + 1, i2 = Math.ceil(t2.height / this._source.tileSize) + 1, o2 = Math.floor(e2 * i2 * 5), a2 = "number" == typeof this._maxTileCacheSize ? Math.min(this._maxTileCacheSize, o2) : o2; - this._cache.setMaxSize(a2); - } - handleWrapJump(t2) { - const e2 = Math.round((t2 - (void 0 === this._prevLng ? t2 : this._prevLng)) / 360); - if (this._prevLng = t2, e2) { - const t3 = {}; - for (const i2 in this._tiles) { - const o2 = this._tiles[i2]; - o2.tileID = o2.tileID.unwrapTo(o2.tileID.wrap + e2), t3[o2.tileID.key] = o2; - } - this._tiles = t3; - for (const t4 in this._timers) - clearTimeout(this._timers[t4]), delete this._timers[t4]; - for (const t4 in this._tiles) - this._setTileReloadTimer(t4, this._tiles[t4]); + var i3 = this._loadedParentTiles[t2.key]; + return i3 && i3.tileID.overscaledZ >= e3 ? i3 : null; } - } - update(e2, i2) { - if (this.transform = e2, this.terrain = i2, !this._sourceLoaded || this._paused) - return; - let o2; - this.updateCacheSize(e2), this.handleWrapJump(this.transform.center.lng), this._coveredTiles = {}, this.used || this.usedForTerrain ? this._source.tileID ? o2 = e2.getVisibleUnwrappedCoordinates(this._source.tileID).map((e3) => new t.OverscaledTileID(e3.canonical.z, e3.wrap, e3.canonical.z, e3.canonical.x, e3.canonical.y)) : (o2 = e2.coveringTiles({ tileSize: this.usedForTerrain ? this.tileSize : this._source.tileSize, minzoom: this._source.minzoom, maxzoom: this._source.maxzoom, roundZoom: !this.usedForTerrain && this._source.roundZoom, reparseOverscaled: this._source.reparseOverscaled, terrain: i2 }), this._source.hasTile && (o2 = o2.filter((t2) => this._source.hasTile(t2)))) : o2 = []; - const a2 = e2.coveringZoomLevel(this._source), r2 = Math.max(a2 - O2.maxOverzooming, this._source.minzoom), s2 = Math.max(a2 + O2.maxUnderzooming, this._source.minzoom); - if (this.usedForTerrain) { - const t2 = {}; - for (const e3 of o2) - if (e3.canonical.z > this._source.minzoom) { - const i3 = e3.scaledTo(e3.canonical.z - 1); - t2[i3.key] = i3; - const o3 = e3.scaledTo(Math.max(this._source.minzoom, Math.min(e3.canonical.z, 5))); - t2[o3.key] = o3; - } - o2 = o2.concat(Object.values(t2)); - } - const n2 = this._updateRetainedTiles(o2, a2); - if (N(this._source.type)) { - const e3 = {}, l3 = {}, c3 = Object.keys(n2); - for (const i3 of c3) { - const o3 = n2[i3], a3 = this._tiles[i3]; - if (!a3 || a3.fadeEndTime && a3.fadeEndTime <= t.exported.now()) - continue; - const s3 = this.findLoadedParent(o3, r2); - s3 && (this._addTile(s3.tileID), e3[s3.tileID.key] = s3.tileID), l3[i3] = o3; + for (var o2 = t2.overscaledZ - 1; o2 >= e3; o2--) { + var r2 = t2.scaledTo(o2), a2 = this._getLoadedTile(r2); + if (a2) + return a2; + } + }, i2.prototype._getLoadedTile = function(t2) { + var e3 = this._tiles[t2.key]; + return e3 && e3.hasData() ? e3 : this._cache.getByKey(t2.wrapped().key); + }, i2.prototype.updateCacheSize = function(t2) { + var e3 = Math.ceil(t2.width / this._source.tileSize) + 1, i3 = Math.ceil(t2.height / this._source.tileSize) + 1, o2 = Math.floor(e3 * i3 * 5), r2 = "number" == typeof this._maxTileCacheSize ? Math.min(this._maxTileCacheSize, o2) : o2; + this._cache.setMaxSize(r2); + }, i2.prototype.handleWrapJump = function(t2) { + var e3 = Math.round((t2 - (void 0 === this._prevLng ? t2 : this._prevLng)) / 360); + if (this._prevLng = t2, e3) { + var i3 = {}; + for (var o2 in this._tiles) { + var r2 = this._tiles[o2]; + r2.tileID = r2.tileID.unwrapTo(r2.tileID.wrap + e3), i3[r2.tileID.key] = r2; } - this._retainLoadedChildren(l3, a2, s2, n2); - for (const t2 in e3) - n2[t2] || (this._coveredTiles[t2] = true, n2[t2] = e3[t2]); - if (i2) { - const t2 = {}, e4 = {}; - for (const i3 of o2) - this._tiles[i3.key].hasData() ? t2[i3.key] = i3 : e4[i3.key] = i3; - for (const i3 in e4) { - const o3 = e4[i3].children(this._source.maxzoom); - this._tiles[o3[0].key] && this._tiles[o3[1].key] && this._tiles[o3[2].key] && this._tiles[o3[3].key] && (t2[o3[0].key] = n2[o3[0].key] = o3[0], t2[o3[1].key] = n2[o3[1].key] = o3[1], t2[o3[2].key] = n2[o3[2].key] = o3[2], t2[o3[3].key] = n2[o3[3].key] = o3[3], delete e4[i3]); - } - for (const i3 in e4) { - const o3 = this.findLoadedParent(e4[i3], this._source.minzoom); - if (o3) { - t2[o3.tileID.key] = n2[o3.tileID.key] = o3.tileID; - for (const e5 in t2) - t2[e5].isChildOf(o3.tileID) && delete t2[e5]; + for (var a2 in this._tiles = i3, this._timers) + clearTimeout(this._timers[a2]), delete this._timers[a2]; + for (var n2 in this._tiles) + this._setTileReloadTimer(n2, this._tiles[n2]); + } + }, i2.prototype.update = function(e3) { + var o2 = this; + if (this.transform = e3, this._sourceLoaded && !this._paused) { + var r2; + this.updateCacheSize(e3), this.handleWrapJump(this.transform.center.lng), this._coveredTiles = {}, this.used ? this._source.tileID ? r2 = e3.getVisibleUnwrappedCoordinates(this._source.tileID).map(function(e4) { + return new t.OverscaledTileID(e4.canonical.z, e4.wrap, e4.canonical.z, e4.canonical.x, e4.canonical.y); + }) : (r2 = e3.coveringTiles({ tileSize: this._source.tileSize, minzoom: this._source.minzoom, maxzoom: this._source.maxzoom, roundZoom: this._source.roundZoom, reparseOverscaled: this._source.reparseOverscaled }), this._source.hasTile && (r2 = r2.filter(function(t2) { + return o2._source.hasTile(t2); + }))) : r2 = []; + var a2 = e3.coveringZoomLevel(this._source), n2 = Math.max(a2 - i2.maxOverzooming, this._source.minzoom), s2 = Math.max(a2 + i2.maxUnderzooming, this._source.minzoom), l2 = this._updateRetainedTiles(r2, a2); + if (Mt(this._source.type)) { + for (var c3 = {}, u2 = {}, h3 = 0, p3 = Object.keys(l2); h3 < p3.length; h3 += 1) { + var d2 = p3[h3], _2 = l2[d2], f2 = this._tiles[d2]; + if (f2 && !(f2.fadeEndTime && f2.fadeEndTime <= t.browser.now())) { + var m2 = this.findLoadedParent(_2, n2); + m2 && (this._addTile(m2.tileID), c3[m2.tileID.key] = m2.tileID), u2[d2] = _2; } } - for (const e5 in this._tiles) - t2[e5] || (this._coveredTiles[e5] = true); + for (var g2 in this._retainLoadedChildren(u2, a2, s2, l2), c3) + l2[g2] || (this._coveredTiles[g2] = true, l2[g2] = c3[g2]); } + for (var v3 in l2) + this._tiles[v3].clearFadeHold(); + for (var y3 = 0, x2 = t.keysDifference(this._tiles, l2); y3 < x2.length; y3 += 1) { + var b2 = x2[y3], w2 = this._tiles[b2]; + w2.hasSymbolBuckets && !w2.holdingForFade() ? w2.setHoldDuration(this.map._fadeDuration) : w2.hasSymbolBuckets && !w2.symbolFadeFinished() || this._removeTile(b2); + } + this._updateLoadedParentTileCache(); } - for (const t2 in n2) - this._tiles[t2].clearFadeHold(); - const l2 = t.keysDifference(this._tiles, n2); - for (const t2 of l2) { - const e3 = this._tiles[t2]; - e3.hasSymbolBuckets && !e3.holdingForFade() ? e3.setHoldDuration(this.map._fadeDuration) : e3.hasSymbolBuckets && !e3.symbolFadeFinished() || this._removeTile(t2); - } - this._updateLoadedParentTileCache(); - } - releaseSymbolFadeTiles() { - for (const t2 in this._tiles) + }, i2.prototype.releaseSymbolFadeTiles = function() { + for (var t2 in this._tiles) this._tiles[t2].holdingForFade() && this._removeTile(t2); - } - _updateRetainedTiles(t2, e2) { - const i2 = {}, o2 = {}, a2 = Math.max(e2 - O2.maxOverzooming, this._source.minzoom), r2 = Math.max(e2 + O2.maxUnderzooming, this._source.minzoom), s2 = {}; - for (const o3 of t2) { - const t3 = this._addTile(o3); - i2[o3.key] = o3, t3.hasData() || e2 < this._source.maxzoom && (s2[o3.key] = o3); - } - this._retainLoadedChildren(s2, e2, r2, i2); - for (const r3 of t2) { - let t3 = this._tiles[r3.key]; - if (t3.hasData()) - continue; - if (e2 + 1 > this._source.maxzoom) { - const t4 = r3.children(this._source.maxzoom)[0], e3 = this.getTile(t4); - if (e3 && e3.hasData()) { - i2[t4.key] = t4; - continue; + }, i2.prototype._updateRetainedTiles = function(t2, e3) { + for (var o2 = {}, r2 = {}, a2 = Math.max(e3 - i2.maxOverzooming, this._source.minzoom), n2 = Math.max(e3 + i2.maxUnderzooming, this._source.minzoom), s2 = {}, l2 = 0, c3 = t2; l2 < c3.length; l2 += 1) { + var u2 = c3[l2], h3 = this._addTile(u2); + o2[u2.key] = u2, h3.hasData() || e3 < this._source.maxzoom && (s2[u2.key] = u2); + } + this._retainLoadedChildren(s2, e3, n2, o2); + for (var p3 = 0, d2 = t2; p3 < d2.length; p3 += 1) { + var _2 = d2[p3], f2 = this._tiles[_2.key]; + if (!f2.hasData()) { + if (e3 + 1 > this._source.maxzoom) { + var m2 = _2.children(this._source.maxzoom)[0], g2 = this.getTile(m2); + if (g2 && g2.hasData()) { + o2[m2.key] = m2; + continue; + } + } else { + var v3 = _2.children(this._source.maxzoom); + if (o2[v3[0].key] && o2[v3[1].key] && o2[v3[2].key] && o2[v3[3].key]) + continue; + } + for (var y3 = f2.wasRequested(), x2 = _2.overscaledZ - 1; x2 >= a2; --x2) { + var b2 = _2.scaledTo(x2); + if (r2[b2.key]) + break; + if (r2[b2.key] = true, !(f2 = this.getTile(b2)) && y3 && (f2 = this._addTile(b2)), f2 && (o2[b2.key] = b2, y3 = f2.wasRequested(), f2.hasData())) + break; } - } else { - const t4 = r3.children(this._source.maxzoom); - if (i2[t4[0].key] && i2[t4[1].key] && i2[t4[2].key] && i2[t4[3].key]) - continue; - } - let s3 = t3.wasRequested(); - for (let e3 = r3.overscaledZ - 1; e3 >= a2; --e3) { - const a3 = r3.scaledTo(e3); - if (o2[a3.key]) - break; - if (o2[a3.key] = true, t3 = this.getTile(a3), !t3 && s3 && (t3 = this._addTile(a3)), t3 && (i2[a3.key] = a3, s3 = t3.wasRequested(), t3.hasData())) - break; } } - return i2; - } - _updateLoadedParentTileCache() { - this._loadedParentTiles = {}; - for (const t2 in this._tiles) { - const e2 = []; - let i2, o2 = this._tiles[t2].tileID; - for (; o2.overscaledZ > 0; ) { + return o2; + }, i2.prototype._updateLoadedParentTileCache = function() { + for (var t2 in this._loadedParentTiles = {}, this._tiles) { + for (var e3 = [], i3 = void 0, o2 = this._tiles[t2].tileID; o2.overscaledZ > 0; ) { if (o2.key in this._loadedParentTiles) { - i2 = this._loadedParentTiles[o2.key]; + i3 = this._loadedParentTiles[o2.key]; break; } - e2.push(o2.key); - const t3 = o2.scaledTo(o2.overscaledZ - 1); - if (i2 = this._getLoadedTile(t3), i2) + e3.push(o2.key); + var r2 = o2.scaledTo(o2.overscaledZ - 1); + if (i3 = this._getLoadedTile(r2)) break; - o2 = t3; + o2 = r2; } - for (const t3 of e2) - this._loadedParentTiles[t3] = i2; + for (var a2 = 0, n2 = e3; a2 < n2.length; a2 += 1) + this._loadedParentTiles[n2[a2]] = i3; } - } - _addTile(e2) { - let i2 = this._tiles[e2.key]; - if (i2) - return i2; - i2 = this._cache.getAndRemove(e2), i2 && (this._setTileReloadTimer(e2.key, i2), i2.tileID = e2, this._state.initializeTileState(i2, this.map ? this.map.painter : null), this._cacheTimers[e2.key] && (clearTimeout(this._cacheTimers[e2.key]), delete this._cacheTimers[e2.key], this._setTileReloadTimer(e2.key, i2))); - const o2 = i2; - return i2 || (i2 = new k(e2, this._source.tileSize * e2.overscaleFactor()), this._loadTile(i2, this._tileLoaded.bind(this, i2, e2.key, i2.state))), i2.uses++, this._tiles[e2.key] = i2, o2 || this._source.fire(new t.Event("dataloading", { tile: i2, coord: i2.tileID, dataType: "source" })), i2; - } - _setTileReloadTimer(t2, e2) { + }, i2.prototype._addTile = function(e3) { + var i3 = this._tiles[e3.key]; + if (i3) + return i3; + (i3 = this._cache.getAndRemove(e3)) && (this._setTileReloadTimer(e3.key, i3), i3.tileID = e3, this._state.initializeTileState(i3, this.map ? this.map.painter : null), this._cacheTimers[e3.key] && (clearTimeout(this._cacheTimers[e3.key]), delete this._cacheTimers[e3.key], this._setTileReloadTimer(e3.key, i3))); + var o2 = Boolean(i3); + return o2 || (i3 = new t.Tile(e3, this._source.tileSize * e3.overscaleFactor()), this._loadTile(i3, this._tileLoaded.bind(this, i3, e3.key, i3.state))), i3 ? (i3.uses++, this._tiles[e3.key] = i3, o2 || this._source.fire(new t.Event("dataloading", { tile: i3, coord: i3.tileID, dataType: "source" })), i3) : null; + }, i2.prototype._setTileReloadTimer = function(t2, e3) { + var i3 = this; t2 in this._timers && (clearTimeout(this._timers[t2]), delete this._timers[t2]); - const i2 = e2.getExpiryTimeout(); - i2 && (this._timers[t2] = setTimeout(() => { - this._reloadTile(t2, "expired"), delete this._timers[t2]; - }, i2)); - } - _removeTile(t2) { - const e2 = this._tiles[t2]; - e2 && (e2.uses--, delete this._tiles[t2], this._timers[t2] && (clearTimeout(this._timers[t2]), delete this._timers[t2]), e2.uses > 0 || (e2.hasData() && "reloading" !== e2.state ? this._cache.add(e2.tileID, e2, e2.getExpiryTimeout()) : (e2.aborted = true, this._abortTile(e2), this._unloadTile(e2)))); - } - clearTiles() { - this._shouldReloadOnResume = false, this._paused = false; - for (const t2 in this._tiles) + var o2 = e3.getExpiryTimeout(); + o2 && (this._timers[t2] = setTimeout(function() { + i3._reloadTile(t2, "expired"), delete i3._timers[t2]; + }, o2)); + }, i2.prototype._removeTile = function(t2) { + var e3 = this._tiles[t2]; + e3 && (e3.uses--, delete this._tiles[t2], this._timers[t2] && (clearTimeout(this._timers[t2]), delete this._timers[t2]), e3.uses > 0 || (e3.hasData() && "reloading" !== e3.state ? this._cache.add(e3.tileID, e3, e3.getExpiryTimeout()) : (e3.aborted = true, this._abortTile(e3), this._unloadTile(e3)))); + }, i2.prototype.clearTiles = function() { + for (var t2 in this._shouldReloadOnResume = false, this._paused = false, this._tiles) this._removeTile(t2); this._cache.reset(); - } - tilesIn(e2, i2, o2) { - const a2 = [], r2 = this.transform; - if (!r2) + }, i2.prototype.tilesIn = function(e3, i3, o2) { + var r2 = this, a2 = [], n2 = this.transform; + if (!n2) return a2; - const s2 = o2 ? r2.getCameraQueryGeometry(e2) : e2, n2 = e2.map((t2) => r2.pointCoordinate(t2, this.terrain)), l2 = s2.map((t2) => r2.pointCoordinate(t2, this.terrain)), c3 = this.getIds(); - let h3 = 1 / 0, u2 = 1 / 0, d2 = -1 / 0, m2 = -1 / 0; - for (const t2 of l2) - h3 = Math.min(h3, t2.x), u2 = Math.min(u2, t2.y), d2 = Math.max(d2, t2.x), m2 = Math.max(m2, t2.y); - for (let e3 = 0; e3 < c3.length; e3++) { - const o3 = this._tiles[c3[e3]]; - if (o3.holdingForFade()) - continue; - const s3 = o3.tileID, _2 = Math.pow(2, r2.zoom - o3.tileID.overscaledZ), p3 = i2 * o3.queryPadding * t.EXTENT / o3.tileSize / _2, f2 = [s3.getTilePoint(new t.MercatorCoordinate(h3, u2)), s3.getTilePoint(new t.MercatorCoordinate(d2, m2))]; - if (f2[0].x - p3 < t.EXTENT && f2[0].y - p3 < t.EXTENT && f2[1].x + p3 >= 0 && f2[1].y + p3 >= 0) { - const t2 = n2.map((t3) => s3.getTilePoint(t3)), e4 = l2.map((t3) => s3.getTilePoint(t3)); - a2.push({ tile: o3, tileID: s3, queryGeometry: t2, cameraQueryGeometry: e4, scale: _2 }); + for (var s2 = o2 ? n2.getCameraQueryGeometry(e3) : e3, l2 = e3.map(function(t2) { + return n2.pointCoordinate(t2); + }), c3 = s2.map(function(t2) { + return n2.pointCoordinate(t2); + }), u2 = this.getIds(), h3 = 1 / 0, p3 = 1 / 0, d2 = -1 / 0, _2 = -1 / 0, f2 = 0, m2 = c3; f2 < m2.length; f2 += 1) { + var g2 = m2[f2]; + h3 = Math.min(h3, g2.x), p3 = Math.min(p3, g2.y), d2 = Math.max(d2, g2.x), _2 = Math.max(_2, g2.y); + } + for (var v3 = function(e4) { + var o3 = r2._tiles[u2[e4]]; + if (!o3.holdingForFade()) { + var s3 = o3.tileID, f3 = Math.pow(2, n2.zoom - o3.tileID.overscaledZ), m3 = i3 * o3.queryPadding * t.EXTENT / o3.tileSize / f3, g3 = [s3.getTilePoint(new t.MercatorCoordinate(h3, p3)), s3.getTilePoint(new t.MercatorCoordinate(d2, _2))]; + if (g3[0].x - m3 < t.EXTENT && g3[0].y - m3 < t.EXTENT && g3[1].x + m3 >= 0 && g3[1].y + m3 >= 0) { + var v4 = l2.map(function(t2) { + return s3.getTilePoint(t2); + }), y4 = c3.map(function(t2) { + return s3.getTilePoint(t2); + }); + a2.push({ tile: o3, tileID: s3, queryGeometry: v4, cameraQueryGeometry: y4, scale: f3 }); + } } - } + }, y3 = 0; y3 < u2.length; y3++) + v3(y3); return a2; - } - getVisibleCoordinates(t2) { - const e2 = this.getRenderableIds(t2).map((t3) => this._tiles[t3].tileID); - for (const t3 of e2) - t3.posMatrix = this.transform.calculatePosMatrix(t3.toUnwrapped()); - return e2; - } - hasTransition() { + }, i2.prototype.getVisibleCoordinates = function(t2) { + for (var e3 = this, i3 = this.getRenderableIds(t2).map(function(t3) { + return e3._tiles[t3].tileID; + }), o2 = 0, r2 = i3; o2 < r2.length; o2 += 1) { + var a2 = r2[o2]; + a2.posMatrix = this.transform.calculatePosMatrix(a2.toUnwrapped()); + } + return i3; + }, i2.prototype.hasTransition = function() { if (this._source.hasTransition()) return true; - if (N(this._source.type)) - for (const e2 in this._tiles) { - const i2 = this._tiles[e2]; - if (void 0 !== i2.fadeEndTime && i2.fadeEndTime >= t.exported.now()) + if (Mt(this._source.type)) + for (var e3 in this._tiles) { + var i3 = this._tiles[e3]; + if (void 0 !== i3.fadeEndTime && i3.fadeEndTime >= t.browser.now()) return true; } return false; - } - setFeatureState(t2, e2, i2) { - this._state.updateState(t2 = t2 || "_geojsonTileLayer", e2, i2); - } - removeFeatureState(t2, e2, i2) { - this._state.removeFeatureState(t2 = t2 || "_geojsonTileLayer", e2, i2); - } - getFeatureState(t2, e2) { - return this._state.getState(t2 = t2 || "_geojsonTileLayer", e2); - } - setDependencies(t2, e2, i2) { - const o2 = this._tiles[t2]; - o2 && o2.setDependencies(e2, i2); - } - reloadTilesForDependencies(t2, e2) { - for (const i2 in this._tiles) - this._tiles[i2].hasDependency(t2, e2) && this._reloadTile(i2, "reloading"); - this._cache.filter((i2) => !i2.hasDependency(t2, e2)); - } - } - function U(t2, e2) { - const i2 = Math.abs(2 * t2.wrap) - +(t2.wrap < 0), o2 = Math.abs(2 * e2.wrap) - +(e2.wrap < 0); + }, i2.prototype.setFeatureState = function(t2, e3, i3) { + this._state.updateState(t2 = t2 || "_geojsonTileLayer", e3, i3); + }, i2.prototype.removeFeatureState = function(t2, e3, i3) { + this._state.removeFeatureState(t2 = t2 || "_geojsonTileLayer", e3, i3); + }, i2.prototype.getFeatureState = function(t2, e3) { + return this._state.getState(t2 = t2 || "_geojsonTileLayer", e3); + }, i2.prototype.setDependencies = function(t2, e3, i3) { + var o2 = this._tiles[t2]; + o2 && o2.setDependencies(e3, i3); + }, i2.prototype.reloadTilesForDependencies = function(t2, e3) { + for (var i3 in this._tiles) + this._tiles[i3].hasDependency(t2, e3) && this._reloadTile(i3, "reloading"); + this._cache.filter(function(i4) { + return !i4.hasDependency(t2, e3); + }); + }, i2; + }(t.Evented); + function At(t2, e2) { + var i2 = Math.abs(2 * t2.wrap) - +(t2.wrap < 0), o2 = Math.abs(2 * e2.wrap) - +(e2.wrap < 0); return t2.overscaledZ - e2.overscaledZ || o2 - i2 || e2.canonical.y - t2.canonical.y || e2.canonical.x - t2.canonical.x; } - function N(t2) { + function Mt(t2) { return "raster" === t2 || "image" === t2 || "video" === t2; } - O2.maxOverzooming = 10, O2.maxUnderzooming = 3; - const G = "mapboxgl_preloaded_worker_pool"; - class Z2 { - constructor() { - this.active = {}; - } - acquire(t2) { - if (!this.workers) - for (this.workers = []; this.workers.length < Z2.workerCount; ) - this.workers.push(new Worker(ba.workerUrl)); - return this.active[t2] = true, this.workers.slice(); - } - release(t2) { - delete this.active[t2], 0 === this.numActive() && (this.workers.forEach((t3) => { - t3.terminate(); - }), this.workers = null); - } - isPreloaded() { - return !!this.active[G]; - } - numActive() { - return Object.keys(this.active).length; - } + function Lt() { + return new t.window.Worker(Kr.workerUrl); } - const V2 = Math.floor(t.exported.hardwareConcurrency / 2); - let q; - function j() { - return q || (q = new Z2()), q; + Dt.maxOverzooming = 10, Dt.maxUnderzooming = 3; + var Rt = "mapboxgl_preloaded_worker_pool", kt = function() { + this.active = {}; + }; + kt.prototype.acquire = function(t2) { + if (!this.workers) + for (this.workers = []; this.workers.length < kt.workerCount; ) + this.workers.push(new Lt()); + return this.active[t2] = true, this.workers.slice(); + }, kt.prototype.release = function(t2) { + delete this.active[t2], 0 === this.numActive() && (this.workers.forEach(function(t3) { + t3.terminate(); + }), this.workers = null); + }, kt.prototype.isPreloaded = function() { + return !!this.active[Rt]; + }, kt.prototype.numActive = function() { + return Object.keys(this.active).length; + }; + var Bt, Ot = Math.floor(t.browser.hardwareConcurrency / 2); + function Ft() { + return Bt || (Bt = new kt()), Bt; } - function $(e2, i2) { - const o2 = {}; - for (const t2 in e2) - "ref" !== t2 && (o2[t2] = e2[t2]); - return t.refProperties.forEach((t2) => { + function Ut(e2, i2) { + var o2 = {}; + for (var r2 in e2) + "ref" !== r2 && (o2[r2] = e2[r2]); + return t.refProperties.forEach(function(t2) { t2 in i2 && (o2[t2] = i2[t2]); }), o2; } - function X(t2) { + function Nt(t2) { t2 = t2.slice(); - const e2 = /* @__PURE__ */ Object.create(null); - for (let i2 = 0; i2 < t2.length; i2++) + for (var e2 = /* @__PURE__ */ Object.create(null), i2 = 0; i2 < t2.length; i2++) e2[t2[i2].id] = t2[i2]; - for (let i2 = 0; i2 < t2.length; i2++) - "ref" in t2[i2] && (t2[i2] = $(t2[i2], e2[t2[i2].ref])); + for (var o2 = 0; o2 < t2.length; o2++) + "ref" in t2[o2] && (t2[o2] = Ut(t2[o2], e2[t2[o2].ref])); return t2; } - Z2.workerCount = Math.max(Math.min(V2, 6), 1); - const W = { setStyle: "setStyle", addLayer: "addLayer", removeLayer: "removeLayer", setPaintProperty: "setPaintProperty", setLayoutProperty: "setLayoutProperty", setFilter: "setFilter", addSource: "addSource", removeSource: "removeSource", setGeoJSONSourceData: "setGeoJSONSourceData", setLayerZoomRange: "setLayerZoomRange", setLayerProperty: "setLayerProperty", setCenter: "setCenter", setZoom: "setZoom", setBearing: "setBearing", setPitch: "setPitch", setSprite: "setSprite", setGlyphs: "setGlyphs", setTransition: "setTransition", setLight: "setLight" }; - function H(t2, e2, i2) { - i2.push({ command: W.addSource, args: [t2, e2[t2]] }); + kt.workerCount = Math.max(Math.min(Ot, 6), 1); + var Zt = { setStyle: "setStyle", addLayer: "addLayer", removeLayer: "removeLayer", setPaintProperty: "setPaintProperty", setLayoutProperty: "setLayoutProperty", setFilter: "setFilter", addSource: "addSource", removeSource: "removeSource", setGeoJSONSourceData: "setGeoJSONSourceData", setLayerZoomRange: "setLayerZoomRange", setLayerProperty: "setLayerProperty", setCenter: "setCenter", setZoom: "setZoom", setBearing: "setBearing", setPitch: "setPitch", setSprite: "setSprite", setGlyphs: "setGlyphs", setTransition: "setTransition", setLight: "setLight" }; + function qt(t2, e2, i2) { + i2.push({ command: Zt.addSource, args: [t2, e2[t2]] }); } - function K(t2, e2, i2) { - e2.push({ command: W.removeSource, args: [t2] }), i2[t2] = true; + function jt(t2, e2, i2) { + e2.push({ command: Zt.removeSource, args: [t2] }), i2[t2] = true; } - function Y(t2, e2, i2, o2) { - K(t2, i2, o2), H(t2, e2, i2); + function Vt(t2, e2, i2, o2) { + jt(t2, i2, o2), qt(t2, e2, i2); } - function J(t2, e2, i2) { - let o2; - for (o2 in t2[i2]) - if (Object.prototype.hasOwnProperty.call(t2[i2], o2) && "data" !== o2 && !a(t2[i2][o2], e2[i2][o2])) + function Gt(e2, i2, o2) { + var r2; + for (r2 in e2[o2]) + if (e2[o2].hasOwnProperty(r2) && "data" !== r2 && !t.deepEqual(e2[o2][r2], i2[o2][r2])) return false; - for (o2 in e2[i2]) - if (Object.prototype.hasOwnProperty.call(e2[i2], o2) && "data" !== o2 && !a(t2[i2][o2], e2[i2][o2])) + for (r2 in i2[o2]) + if (i2[o2].hasOwnProperty(r2) && "data" !== r2 && !t.deepEqual(e2[o2][r2], i2[o2][r2])) return false; return true; } - function Q(t2, e2, i2, o2, r2, s2) { - let n2; - for (n2 in e2 = e2 || {}, t2 = t2 || {}) - Object.prototype.hasOwnProperty.call(t2, n2) && (a(t2[n2], e2[n2]) || i2.push({ command: s2, args: [o2, n2, e2[n2], r2] })); - for (n2 in e2) - Object.prototype.hasOwnProperty.call(e2, n2) && !Object.prototype.hasOwnProperty.call(t2, n2) && (a(t2[n2], e2[n2]) || i2.push({ command: s2, args: [o2, n2, e2[n2], r2] })); + function Wt(e2, i2, o2, r2, a2, n2) { + var s2; + for (s2 in i2 = i2 || {}, e2 = e2 || {}) + e2.hasOwnProperty(s2) && (t.deepEqual(e2[s2], i2[s2]) || o2.push({ command: n2, args: [r2, s2, i2[s2], a2] })); + for (s2 in i2) + i2.hasOwnProperty(s2) && !e2.hasOwnProperty(s2) && (t.deepEqual(e2[s2], i2[s2]) || o2.push({ command: n2, args: [r2, s2, i2[s2], a2] })); } - function tt(t2) { + function Xt(t2) { return t2.id; } - function et(t2, e2) { + function Ht(t2, e2) { return t2[e2.id] = e2, t2; } - class it { - constructor(t2, e2) { - this.reset(t2, e2); - } - reset(t2, e2) { - this.points = t2 || [], this._distances = [0]; - for (let t3 = 1; t3 < this.points.length; t3++) - this._distances[t3] = this._distances[t3 - 1] + this.points[t3].dist(this.points[t3 - 1]); - this.length = this._distances[this._distances.length - 1], this.padding = Math.min(e2 || 0, 0.5 * this.length), this.paddedLength = this.length - 2 * this.padding; - } - lerp(e2) { - if (1 === this.points.length) - return this.points[0]; - e2 = t.clamp(e2, 0, 1); - let i2 = 1, o2 = this._distances[i2]; - const a2 = e2 * this.paddedLength + this.padding; - for (; o2 < a2 && i2 < this._distances.length; ) - o2 = this._distances[++i2]; - const r2 = i2 - 1, s2 = this._distances[r2], n2 = o2 - s2, l2 = n2 > 0 ? (a2 - s2) / n2 : 0; - return this.points[r2].mult(1 - l2).add(this.points[i2].mult(l2)); - } - } - function ot(t2, e2) { - let i2 = true; - return "always" === t2 || "never" !== t2 && "never" !== e2 || (i2 = false), i2; - } - class at { - constructor(t2, e2, i2) { - const o2 = this.boxCells = [], a2 = this.circleCells = []; - this.xCellCount = Math.ceil(t2 / i2), this.yCellCount = Math.ceil(e2 / i2); - for (let t3 = 0; t3 < this.xCellCount * this.yCellCount; t3++) - o2.push([]), a2.push([]); - this.circleKeys = [], this.boxKeys = [], this.bboxes = [], this.circles = [], this.width = t2, this.height = e2, this.xScale = this.xCellCount / t2, this.yScale = this.yCellCount / e2, this.boxUid = 0, this.circleUid = 0; - } - keysLength() { - return this.boxKeys.length + this.circleKeys.length; - } - insert(t2, e2, i2, o2, a2) { - this._forEachCell(e2, i2, o2, a2, this._insertBoxCell, this.boxUid++), this.boxKeys.push(t2), this.bboxes.push(e2), this.bboxes.push(i2), this.bboxes.push(o2), this.bboxes.push(a2); - } - insertCircle(t2, e2, i2, o2) { - this._forEachCell(e2 - o2, i2 - o2, e2 + o2, i2 + o2, this._insertCircleCell, this.circleUid++), this.circleKeys.push(t2), this.circles.push(e2), this.circles.push(i2), this.circles.push(o2); - } - _insertBoxCell(t2, e2, i2, o2, a2, r2) { - this.boxCells[a2].push(r2); - } - _insertCircleCell(t2, e2, i2, o2, a2, r2) { - this.circleCells[a2].push(r2); - } - _query(t2, e2, i2, o2, a2, r2, s2) { - if (i2 < 0 || t2 > this.width || o2 < 0 || e2 > this.height) - return []; - const n2 = []; - if (t2 <= 0 && e2 <= 0 && this.width <= i2 && this.height <= o2) { - if (a2) - return [{ key: null, x1: t2, y1: e2, x2: i2, y2: o2 }]; - for (let t3 = 0; t3 < this.boxKeys.length; t3++) - n2.push({ key: this.boxKeys[t3], x1: this.bboxes[4 * t3], y1: this.bboxes[4 * t3 + 1], x2: this.bboxes[4 * t3 + 2], y2: this.bboxes[4 * t3 + 3] }); - for (let t3 = 0; t3 < this.circleKeys.length; t3++) { - const e3 = this.circles[3 * t3], i3 = this.circles[3 * t3 + 1], o3 = this.circles[3 * t3 + 2]; - n2.push({ key: this.circleKeys[t3], x1: e3 - o3, y1: i3 - o3, x2: e3 + o3, y2: i3 + o3 }); - } - } else - this._forEachCell(t2, e2, i2, o2, this._queryCell, n2, { hitTest: a2, overlapMode: r2, seenUids: { box: {}, circle: {} } }, s2); - return n2; - } - query(t2, e2, i2, o2) { - return this._query(t2, e2, i2, o2, false, null); - } - hitTest(t2, e2, i2, o2, a2, r2) { - return this._query(t2, e2, i2, o2, true, a2, r2).length > 0; - } - hitTestCircle(t2, e2, i2, o2, a2) { - const r2 = t2 - i2, s2 = t2 + i2, n2 = e2 - i2, l2 = e2 + i2; - if (s2 < 0 || r2 > this.width || l2 < 0 || n2 > this.height) - return false; - const c3 = []; - return this._forEachCell(r2, n2, s2, l2, this._queryCellCircle, c3, { hitTest: true, overlapMode: o2, circle: { x: t2, y: e2, radius: i2 }, seenUids: { box: {}, circle: {} } }, a2), c3.length > 0; - } - _queryCell(t2, e2, i2, o2, a2, r2, s2, n2) { - const { seenUids: l2, hitTest: c3, overlapMode: h3 } = s2, u2 = this.boxCells[a2]; - if (null !== u2) { - const a3 = this.bboxes; - for (const s3 of u2) - if (!l2.box[s3]) { - l2.box[s3] = true; - const u3 = 4 * s3, d3 = this.boxKeys[s3]; - if (t2 <= a3[u3 + 2] && e2 <= a3[u3 + 3] && i2 >= a3[u3 + 0] && o2 >= a3[u3 + 1] && (!n2 || n2(d3)) && (!c3 || !ot(h3, d3.overlapMode)) && (r2.push({ key: d3, x1: a3[u3], y1: a3[u3 + 1], x2: a3[u3 + 2], y2: a3[u3 + 3] }), c3)) - return true; - } - } - const d2 = this.circleCells[a2]; - if (null !== d2) { - const a3 = this.circles; - for (const s3 of d2) - if (!l2.circle[s3]) { - l2.circle[s3] = true; - const u3 = 3 * s3, d3 = this.circleKeys[s3]; - if (this._circleAndRectCollide(a3[u3], a3[u3 + 1], a3[u3 + 2], t2, e2, i2, o2) && (!n2 || n2(d3)) && (!c3 || !ot(h3, d3.overlapMode))) { - const t3 = a3[u3], e3 = a3[u3 + 1], i3 = a3[u3 + 2]; - if (r2.push({ key: d3, x1: t3 - i3, y1: e3 - i3, x2: t3 + i3, y2: e3 + i3 }), c3) - return true; - } - } - } - return false; - } - _queryCellCircle(t2, e2, i2, o2, a2, r2, s2, n2) { - const { circle: l2, seenUids: c3, overlapMode: h3 } = s2, u2 = this.boxCells[a2]; - if (null !== u2) { - const t3 = this.bboxes; - for (const e3 of u2) - if (!c3.box[e3]) { - c3.box[e3] = true; - const i3 = 4 * e3, o3 = this.boxKeys[e3]; - if (this._circleAndRectCollide(l2.x, l2.y, l2.radius, t3[i3 + 0], t3[i3 + 1], t3[i3 + 2], t3[i3 + 3]) && (!n2 || n2(o3)) && !ot(h3, o3.overlapMode)) - return r2.push(true), true; - } - } - const d2 = this.circleCells[a2]; - if (null !== d2) { - const t3 = this.circles; - for (const e3 of d2) - if (!c3.circle[e3]) { - c3.circle[e3] = true; - const i3 = 3 * e3, o3 = this.circleKeys[e3]; - if (this._circlesCollide(t3[i3], t3[i3 + 1], t3[i3 + 2], l2.x, l2.y, l2.radius) && (!n2 || n2(o3)) && !ot(h3, o3.overlapMode)) - return r2.push(true), true; - } - } - } - _forEachCell(t2, e2, i2, o2, a2, r2, s2, n2) { - const l2 = this._convertToXCellCoord(t2), c3 = this._convertToYCellCoord(e2), h3 = this._convertToXCellCoord(i2), u2 = this._convertToYCellCoord(o2); - for (let d2 = l2; d2 <= h3; d2++) - for (let l3 = c3; l3 <= u2; l3++) - if (a2.call(this, t2, e2, i2, o2, this.xCellCount * l3 + d2, r2, s2, n2)) - return; - } - _convertToXCellCoord(t2) { - return Math.max(0, Math.min(this.xCellCount - 1, Math.floor(t2 * this.xScale))); - } - _convertToYCellCoord(t2) { - return Math.max(0, Math.min(this.yCellCount - 1, Math.floor(t2 * this.yScale))); - } - _circlesCollide(t2, e2, i2, o2, a2, r2) { - const s2 = o2 - t2, n2 = a2 - e2, l2 = i2 + r2; - return l2 * l2 > s2 * s2 + n2 * n2; - } - _circleAndRectCollide(t2, e2, i2, o2, a2, r2, s2) { - const n2 = (r2 - o2) / 2, l2 = Math.abs(t2 - (o2 + n2)); - if (l2 > n2 + i2) - return false; - const c3 = (s2 - a2) / 2, h3 = Math.abs(e2 - (a2 + c3)); - if (h3 > c3 + i2) - return false; - if (l2 <= n2 || h3 <= c3) - return true; - const u2 = l2 - n2, d2 = h3 - c3; - return u2 * u2 + d2 * d2 <= i2 * i2; - } - } - function rt(e2, i2, o2, a2, r2) { - const s2 = t.create(); - return i2 ? (t.scale(s2, s2, [1 / r2, 1 / r2, 1]), o2 || t.rotateZ(s2, s2, a2.angle)) : t.multiply(s2, a2.labelPlaneMatrix, e2), s2; + var Kt = function(t2, e2) { + this.reset(t2, e2); + }; + Kt.prototype.reset = function(t2, e2) { + this.points = t2 || [], this._distances = [0]; + for (var i2 = 1; i2 < this.points.length; i2++) + this._distances[i2] = this._distances[i2 - 1] + this.points[i2].dist(this.points[i2 - 1]); + this.length = this._distances[this._distances.length - 1], this.padding = Math.min(e2 || 0, 0.5 * this.length), this.paddedLength = this.length - 2 * this.padding; + }, Kt.prototype.lerp = function(e2) { + if (1 === this.points.length) + return this.points[0]; + e2 = t.clamp(e2, 0, 1); + for (var i2 = 1, o2 = this._distances[i2], r2 = e2 * this.paddedLength + this.padding; o2 < r2 && i2 < this._distances.length; ) + o2 = this._distances[++i2]; + var a2 = i2 - 1, n2 = this._distances[a2], s2 = o2 - n2, l2 = s2 > 0 ? (r2 - n2) / s2 : 0; + return this.points[a2].mult(1 - l2).add(this.points[i2].mult(l2)); + }; + var Yt = function(t2, e2, i2) { + var o2 = this.boxCells = [], r2 = this.circleCells = []; + this.xCellCount = Math.ceil(t2 / i2), this.yCellCount = Math.ceil(e2 / i2); + for (var a2 = 0; a2 < this.xCellCount * this.yCellCount; a2++) + o2.push([]), r2.push([]); + this.circleKeys = [], this.boxKeys = [], this.bboxes = [], this.circles = [], this.width = t2, this.height = e2, this.xScale = this.xCellCount / t2, this.yScale = this.yCellCount / e2, this.boxUid = 0, this.circleUid = 0; + }; + function Jt(e2, i2, o2, r2, a2) { + var n2 = t.create(); + return i2 ? (t.scale(n2, n2, [1 / a2, 1 / a2, 1]), o2 || t.rotateZ(n2, n2, r2.angle)) : t.multiply(n2, r2.labelPlaneMatrix, e2), n2; } - function st(e2, i2, o2, a2, r2) { + function Qt(e2, i2, o2, r2, a2) { if (i2) { - const i3 = t.clone(e2); - return t.scale(i3, i3, [r2, r2, 1]), o2 || t.rotateZ(i3, i3, -a2.angle), i3; + var n2 = t.clone(e2); + return t.scale(n2, n2, [a2, a2, 1]), o2 || t.rotateZ(n2, n2, -r2.angle), n2; } - return a2.glCoordMatrix; + return r2.glCoordMatrix; } - function nt(e2, i2, o2) { - let a2; - o2 ? (a2 = [e2.x, e2.y, o2(e2.x, e2.y), 1], t.transformMat4(a2, a2, i2)) : (a2 = [e2.x, e2.y, 0, 1], xt(a2, a2, i2)); - const r2 = a2[3]; - return { point: new t.pointGeometry(a2[0] / r2, a2[1] / r2), signedDistanceFromCamera: r2 }; + function $t(e2, i2) { + var o2 = [e2.x, e2.y, 0, 1]; + ue(o2, o2, i2); + var r2 = o2[3]; + return { point: new t.Point(o2[0] / r2, o2[1] / r2), signedDistanceFromCamera: r2 }; } - function lt(t2, e2) { + function te(t2, e2) { return 0.5 + t2 / e2 * 0.5; } - function ct(t2, e2) { - const i2 = t2[0] / t2[3], o2 = t2[1] / t2[3]; + function ee(t2, e2) { + var i2 = t2[0] / t2[3], o2 = t2[1] / t2[3]; return i2 >= -e2[0] && i2 <= e2[0] && o2 >= -e2[1] && o2 <= e2[1]; } - function ht(e2, i2, o2, a2, r2, s2, n2, l2, c3, h3) { - const u2 = a2 ? e2.textSizeData : e2.iconSizeData, d2 = t.evaluateSizeForZoom(u2, o2.transform.zoom), m2 = [256 / o2.width * 2 + 1, 256 / o2.height * 2 + 1], _2 = a2 ? e2.text.dynamicLayoutVertexArray : e2.icon.dynamicLayoutVertexArray; - _2.clear(); - const p3 = e2.lineVertexArray, f2 = a2 ? e2.text.placedSymbolArray : e2.icon.placedSymbolArray, g2 = o2.transform.width / o2.transform.height; - let x2 = false; - for (let a3 = 0; a3 < f2.length; a3++) { - const v3 = f2.get(a3); - if (v3.hidden || v3.writingMode === t.WritingMode.vertical && !x2) { - gt(v3.numGlyphs, _2); - continue; - } - let y3; - if (x2 = false, h3 ? (y3 = [v3.anchorX, v3.anchorY, h3(v3.anchorX, v3.anchorY), 1], t.transformMat4(y3, y3, i2)) : (y3 = [v3.anchorX, v3.anchorY, 0, 1], xt(y3, y3, i2)), !ct(y3, m2)) { - gt(v3.numGlyphs, _2); - continue; + function ie(e2, i2, o2, r2, a2, n2, s2, l2) { + var c3 = r2 ? e2.textSizeData : e2.iconSizeData, u2 = t.evaluateSizeForZoom(c3, o2.transform.zoom), h3 = [256 / o2.width * 2 + 1, 256 / o2.height * 2 + 1], p3 = r2 ? e2.text.dynamicLayoutVertexArray : e2.icon.dynamicLayoutVertexArray; + p3.clear(); + for (var d2 = e2.lineVertexArray, _2 = r2 ? e2.text.placedSymbolArray : e2.icon.placedSymbolArray, f2 = o2.transform.width / o2.transform.height, m2 = false, g2 = 0; g2 < _2.length; g2++) { + var v3 = _2.get(g2); + if (v3.hidden || v3.writingMode === t.WritingMode.vertical && !m2) + ce(v3.numGlyphs, p3); + else { + m2 = false; + var y3 = [v3.anchorX, v3.anchorY, 0, 1]; + if (t.transformMat4(y3, y3, i2), ee(y3, h3)) { + var x2 = te(o2.transform.cameraToCenterDistance, y3[3]), b2 = t.evaluateSizeForFeature(c3, u2, v3), w2 = s2 ? b2 / x2 : b2 * x2, T2 = new t.Point(v3.anchorX, v3.anchorY), E2 = $t(T2, a2).point, I3 = {}, P2 = ae(v3, w2, false, l2, i2, a2, n2, e2.glyphOffsetArray, d2, p3, E2, T2, I3, f2); + m2 = P2.useVertical, (P2.notEnoughRoom || m2 || P2.needsFlipping && ae(v3, w2, true, l2, i2, a2, n2, e2.glyphOffsetArray, d2, p3, E2, T2, I3, f2).notEnoughRoom) && ce(v3.numGlyphs, p3); + } else + ce(v3.numGlyphs, p3); } - const b2 = lt(o2.transform.cameraToCenterDistance, y3[3]), w2 = t.evaluateSizeForFeature(u2, d2, v3), T2 = n2 ? w2 / b2 : w2 * b2, E2 = new t.pointGeometry(v3.anchorX, v3.anchorY), I3 = nt(E2, r2, h3).point, C2 = {}, S2 = mt(v3, T2, false, l2, i2, r2, s2, e2.glyphOffsetArray, p3, _2, I3, E2, C2, g2, c3, h3); - x2 = S2.useVertical, (S2.notEnoughRoom || x2 || S2.needsFlipping && mt(v3, T2, true, l2, i2, r2, s2, e2.glyphOffsetArray, p3, _2, I3, E2, C2, g2, c3, h3).notEnoughRoom) && gt(v3.numGlyphs, _2); } - a2 ? e2.text.dynamicLayoutVertexBuffer.updateData(_2) : e2.icon.dynamicLayoutVertexBuffer.updateData(_2); + r2 ? e2.text.dynamicLayoutVertexBuffer.updateData(p3) : e2.icon.dynamicLayoutVertexBuffer.updateData(p3); } - function ut(t2, e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2, d2) { - const m2 = n2.glyphStartIndex + n2.numGlyphs, _2 = n2.lineStartIndex, p3 = n2.lineStartIndex + n2.lineLength, f2 = e2.getoffsetX(n2.glyphStartIndex), g2 = e2.getoffsetX(m2 - 1), x2 = pt(t2 * f2, i2, o2, a2, r2, s2, n2.segment, _2, p3, l2, c3, h3, u2, d2); - if (!x2) + function oe(t2, e2, i2, o2, r2, a2, n2, s2, l2, c3, u2) { + var h3 = s2.glyphStartIndex + s2.numGlyphs, p3 = s2.lineStartIndex, d2 = s2.lineStartIndex + s2.lineLength, _2 = e2.getoffsetX(s2.glyphStartIndex), f2 = e2.getoffsetX(h3 - 1), m2 = se(t2 * _2, i2, o2, r2, a2, n2, s2.segment, p3, d2, l2, c3, u2); + if (!m2) return null; - const v3 = pt(t2 * g2, i2, o2, a2, r2, s2, n2.segment, _2, p3, l2, c3, h3, u2, d2); - return v3 ? { first: x2, last: v3 } : null; + var g2 = se(t2 * f2, i2, o2, r2, a2, n2, s2.segment, p3, d2, l2, c3, u2); + return g2 ? { first: m2, last: g2 } : null; } - function dt(e2, i2, o2, a2) { - return e2 === t.WritingMode.horizontal && Math.abs(o2.y - i2.y) > Math.abs(o2.x - i2.x) * a2 ? { useVertical: true } : (e2 === t.WritingMode.vertical ? i2.y < o2.y : i2.x > o2.x) ? { needsFlipping: true } : null; + function re(e2, i2, o2, r2) { + return e2 === t.WritingMode.horizontal && Math.abs(o2.y - i2.y) > Math.abs(o2.x - i2.x) * r2 ? { useVertical: true } : (e2 === t.WritingMode.vertical ? i2.y < o2.y : i2.x > o2.x) ? { needsFlipping: true } : null; } - function mt(e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2, d2, m2, _2, p3, f2) { - const g2 = i2 / 24, x2 = e2.lineOffsetX * g2, v3 = e2.lineOffsetY * g2; - let y3; + function ae(e2, i2, o2, r2, a2, n2, s2, l2, c3, u2, h3, p3, d2, _2) { + var f2, m2 = i2 / 24, g2 = e2.lineOffsetX * m2, v3 = e2.lineOffsetY * m2; if (e2.numGlyphs > 1) { - const t2 = e2.glyphStartIndex + e2.numGlyphs, i3 = e2.lineStartIndex, r3 = e2.lineStartIndex + e2.lineLength, h4 = ut(g2, l2, x2, v3, o2, u2, d2, e2, c3, s2, m2, p3, f2); - if (!h4) + var y3 = e2.glyphStartIndex + e2.numGlyphs, x2 = e2.lineStartIndex, b2 = e2.lineStartIndex + e2.lineLength, w2 = oe(m2, l2, g2, v3, o2, h3, p3, e2, c3, n2, d2); + if (!w2) return { notEnoughRoom: true }; - const b2 = nt(h4.first.point, n2, f2).point, w2 = nt(h4.last.point, n2, f2).point; - if (a2 && !o2) { - const t3 = dt(e2.writingMode, b2, w2, _2); - if (t3) - return t3; - } - y3 = [h4.first]; - for (let a3 = e2.glyphStartIndex + 1; a3 < t2 - 1; a3++) - y3.push(pt(g2 * l2.getoffsetX(a3), x2, v3, o2, u2, d2, e2.segment, i3, r3, c3, s2, m2, p3, f2)); - y3.push(h4.last); + var T2 = $t(w2.first.point, s2).point, E2 = $t(w2.last.point, s2).point; + if (r2 && !o2) { + var I3 = re(e2.writingMode, T2, E2, _2); + if (I3) + return I3; + } + f2 = [w2.first]; + for (var P2 = e2.glyphStartIndex + 1; P2 < y3 - 1; P2++) + f2.push(se(m2 * l2.getoffsetX(P2), g2, v3, o2, h3, p3, e2.segment, x2, b2, c3, n2, d2)); + f2.push(w2.last); } else { - if (a2 && !o2) { - const i4 = nt(d2, r2, f2).point, o3 = e2.lineStartIndex + e2.segment + 1, a3 = new t.pointGeometry(c3.getx(o3), c3.gety(o3)), s3 = nt(a3, r2, f2), n3 = s3.signedDistanceFromCamera > 0 ? s3.point : _t(d2, a3, i4, 1, r2, f2), l3 = dt(e2.writingMode, i4, n3, _2); - if (l3) - return l3; + if (r2 && !o2) { + var S2 = $t(p3, a2).point, C2 = e2.lineStartIndex + e2.segment + 1, z2 = new t.Point(c3.getx(C2), c3.gety(C2)), D2 = $t(z2, a2), A3 = D2.signedDistanceFromCamera > 0 ? D2.point : ne(p3, z2, S2, 1, a2), M2 = re(e2.writingMode, S2, A3, _2); + if (M2) + return M2; } - const i3 = pt(g2 * l2.getoffsetX(e2.glyphStartIndex), x2, v3, o2, u2, d2, e2.segment, e2.lineStartIndex, e2.lineStartIndex + e2.lineLength, c3, s2, m2, p3, f2); - if (!i3) + var L2 = se(m2 * l2.getoffsetX(e2.glyphStartIndex), g2, v3, o2, h3, p3, e2.segment, e2.lineStartIndex, e2.lineStartIndex + e2.lineLength, c3, n2, d2); + if (!L2) return { notEnoughRoom: true }; - y3 = [i3]; + f2 = [L2]; + } + for (var R2 = 0, k2 = f2; R2 < k2.length; R2 += 1) { + var B2 = k2[R2]; + t.addDynamicAttributes(u2, B2.point, B2.angle); } - for (const e3 of y3) - t.addDynamicAttributes(h3, e3.point, e3.angle); return {}; } - function _t(t2, e2, i2, o2, a2, r2) { - const s2 = nt(t2.add(t2.sub(e2)._unit()), a2, r2).point, n2 = i2.sub(s2); + function ne(t2, e2, i2, o2, r2) { + var a2 = $t(t2.add(t2.sub(e2)._unit()), r2).point, n2 = i2.sub(a2); return i2.add(n2._mult(o2 / n2.mag())); } - function pt(e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2, d2, m2, _2) { - const p3 = a2 ? e2 - i2 : e2 + i2; - let f2 = p3 > 0 ? 1 : -1, g2 = 0; - a2 && (f2 *= -1, g2 = Math.PI), f2 < 0 && (g2 += Math.PI); - let x2 = f2 > 0 ? l2 + n2 : l2 + n2 + 1, v3 = r2, y3 = r2, b2 = 0, w2 = 0; - const T2 = Math.abs(p3), E2 = []; - for (; b2 + w2 <= T2; ) { - if (x2 += f2, x2 < l2 || x2 >= c3) + function se(e2, i2, o2, r2, a2, n2, s2, l2, c3, u2, h3, p3) { + var d2 = r2 ? e2 - i2 : e2 + i2, _2 = d2 > 0 ? 1 : -1, f2 = 0; + r2 && (_2 *= -1, f2 = Math.PI), _2 < 0 && (f2 += Math.PI); + for (var m2 = _2 > 0 ? l2 + s2 : l2 + s2 + 1, g2 = a2, v3 = a2, y3 = 0, x2 = 0, b2 = Math.abs(d2), w2 = []; y3 + x2 <= b2; ) { + if ((m2 += _2) < l2 || m2 >= c3) return null; - if (y3 = v3, E2.push(v3), v3 = d2[x2], void 0 === v3) { - const e3 = new t.pointGeometry(h3.getx(x2), h3.gety(x2)), i3 = nt(e3, u2, _2); - if (i3.signedDistanceFromCamera > 0) - v3 = d2[x2] = i3.point; + if (v3 = g2, w2.push(g2), void 0 === (g2 = p3[m2])) { + var T2 = new t.Point(u2.getx(m2), u2.gety(m2)), E2 = $t(T2, h3); + if (E2.signedDistanceFromCamera > 0) + g2 = p3[m2] = E2.point; else { - const i4 = x2 - f2; - v3 = _t(0 === b2 ? s2 : new t.pointGeometry(h3.getx(i4), h3.gety(i4)), e3, y3, T2 - b2 + 1, u2, _2); + var I3 = m2 - _2; + g2 = ne(0 === y3 ? n2 : new t.Point(u2.getx(I3), u2.gety(I3)), T2, v3, b2 - y3 + 1, h3); } } - b2 += w2, w2 = y3.dist(v3); - } - const I3 = (T2 - b2) / w2, C2 = v3.sub(y3), S2 = C2.mult(I3)._add(y3); - S2._add(C2._unit()._perp()._mult(o2 * f2)); - const D2 = g2 + Math.atan2(v3.y - y3.y, v3.x - y3.x); - return E2.push(S2), { point: S2, angle: m2 ? D2 : 0, path: E2 }; - } - const ft = new Float32Array([-1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0]); - function gt(t2, e2) { - for (let i2 = 0; i2 < t2; i2++) { - const t3 = e2.length; - e2.resize(t3 + 4), e2.float32.set(ft, 3 * t3); - } - } - function xt(t2, e2, i2) { - const o2 = e2[0], a2 = e2[1]; - return t2[0] = i2[0] * o2 + i2[4] * a2 + i2[12], t2[1] = i2[1] * o2 + i2[5] * a2 + i2[13], t2[3] = i2[3] * o2 + i2[7] * a2 + i2[15], t2; - } - const vt = 100; - class yt { - constructor(t2, e2 = new at(t2.width + 200, t2.height + 200, 25), i2 = new at(t2.width + 200, t2.height + 200, 25)) { - this.transform = t2, this.grid = e2, this.ignoredGrid = i2, this.pitchfactor = Math.cos(t2._pitch) * t2.cameraToCenterDistance, this.screenRightBoundary = t2.width + vt, this.screenBottomBoundary = t2.height + vt, this.gridRightBoundary = t2.width + 200, this.gridBottomBoundary = t2.height + 200, this.perspectiveRatioCutoff = 0.6; - } - placeCollisionBox(t2, e2, i2, o2, a2, r2) { - const s2 = this.projectAndGetPerspectiveRatio(o2, t2.anchorPointX, t2.anchorPointY, r2), n2 = i2 * s2.perspectiveRatio, l2 = t2.x1 * n2 + s2.point.x, c3 = t2.y1 * n2 + s2.point.y, h3 = t2.x2 * n2 + s2.point.x, u2 = t2.y2 * n2 + s2.point.y; - return !this.isInsideGrid(l2, c3, h3, u2) || "always" !== e2 && this.grid.hitTest(l2, c3, h3, u2, e2, a2) || s2.perspectiveRatio < this.perspectiveRatioCutoff ? { box: [], offscreen: false } : { box: [l2, c3, h3, u2], offscreen: this.isOffscreen(l2, c3, h3, u2) }; - } - placeCollisionCircles(e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2, d2, m2, _2) { - const p3 = [], f2 = new t.pointGeometry(i2.anchorX, i2.anchorY), g2 = nt(f2, s2, _2), x2 = lt(this.transform.cameraToCenterDistance, g2.signedDistanceFromCamera), v3 = (h3 ? r2 / x2 : r2 * x2) / t.ONE_EM, y3 = nt(f2, n2, _2).point, b2 = ut(v3, a2, i2.lineOffsetX * v3, i2.lineOffsetY * v3, false, y3, f2, i2, o2, n2, {}, false, _2); - let w2 = false, T2 = false, E2 = true; - if (b2) { - const i3 = 0.5 * d2 * x2 + m2, o3 = new t.pointGeometry(-100, -100), a3 = new t.pointGeometry(this.screenRightBoundary, this.screenBottomBoundary), r3 = new it(), s3 = b2.first, n3 = b2.last; - let h4 = []; - for (let t2 = s3.path.length - 1; t2 >= 1; t2--) - h4.push(s3.path[t2]); - for (let t2 = 1; t2 < n3.path.length; t2++) - h4.push(n3.path[t2]); - const f3 = 2.5 * i3; - if (l2) { - const t2 = h4.map((t3) => nt(t3, l2, _2)); - h4 = t2.some((t3) => t3.signedDistanceFromCamera <= 0) ? [] : t2.map((t3) => t3.point); - } - let g3 = []; - if (h4.length > 0) { - const e3 = h4[0].clone(), i4 = h4[0].clone(); - for (let t2 = 1; t2 < h4.length; t2++) - e3.x = Math.min(e3.x, h4[t2].x), e3.y = Math.min(e3.y, h4[t2].y), i4.x = Math.max(i4.x, h4[t2].x), i4.y = Math.max(i4.y, h4[t2].y); - g3 = e3.x >= o3.x && i4.x <= a3.x && e3.y >= o3.y && i4.y <= a3.y ? [h4] : i4.x < o3.x || e3.x > a3.x || i4.y < o3.y || e3.y > a3.y ? [] : t.clipLine([h4], o3.x, o3.y, a3.x, a3.y); + y3 += x2, x2 = v3.dist(g2); + } + var P2 = (b2 - y3) / x2, S2 = g2.sub(v3), C2 = S2.mult(P2)._add(v3); + C2._add(S2._unit()._perp()._mult(o2 * _2)); + var z2 = f2 + Math.atan2(g2.y - v3.y, g2.x - v3.x); + return w2.push(C2), { point: C2, angle: z2, path: w2 }; + } + Yt.prototype.keysLength = function() { + return this.boxKeys.length + this.circleKeys.length; + }, Yt.prototype.insert = function(t2, e2, i2, o2, r2) { + this._forEachCell(e2, i2, o2, r2, this._insertBoxCell, this.boxUid++), this.boxKeys.push(t2), this.bboxes.push(e2), this.bboxes.push(i2), this.bboxes.push(o2), this.bboxes.push(r2); + }, Yt.prototype.insertCircle = function(t2, e2, i2, o2) { + this._forEachCell(e2 - o2, i2 - o2, e2 + o2, i2 + o2, this._insertCircleCell, this.circleUid++), this.circleKeys.push(t2), this.circles.push(e2), this.circles.push(i2), this.circles.push(o2); + }, Yt.prototype._insertBoxCell = function(t2, e2, i2, o2, r2, a2) { + this.boxCells[r2].push(a2); + }, Yt.prototype._insertCircleCell = function(t2, e2, i2, o2, r2, a2) { + this.circleCells[r2].push(a2); + }, Yt.prototype._query = function(t2, e2, i2, o2, r2, a2) { + if (i2 < 0 || t2 > this.width || o2 < 0 || e2 > this.height) + return !r2 && []; + var n2 = []; + if (t2 <= 0 && e2 <= 0 && this.width <= i2 && this.height <= o2) { + if (r2) + return true; + for (var s2 = 0; s2 < this.boxKeys.length; s2++) + n2.push({ key: this.boxKeys[s2], x1: this.bboxes[4 * s2], y1: this.bboxes[4 * s2 + 1], x2: this.bboxes[4 * s2 + 2], y2: this.bboxes[4 * s2 + 3] }); + for (var l2 = 0; l2 < this.circleKeys.length; l2++) { + var c3 = this.circles[3 * l2], u2 = this.circles[3 * l2 + 1], h3 = this.circles[3 * l2 + 2]; + n2.push({ key: this.circleKeys[l2], x1: c3 - h3, y1: u2 - h3, x2: c3 + h3, y2: u2 + h3 }); + } + return a2 ? n2.filter(a2) : n2; + } + return this._forEachCell(t2, e2, i2, o2, this._queryCell, n2, { hitTest: r2, seenUids: { box: {}, circle: {} } }, a2), r2 ? n2.length > 0 : n2; + }, Yt.prototype._queryCircle = function(t2, e2, i2, o2, r2) { + var a2 = t2 - i2, n2 = t2 + i2, s2 = e2 - i2, l2 = e2 + i2; + if (n2 < 0 || a2 > this.width || l2 < 0 || s2 > this.height) + return !o2 && []; + var c3 = []; + return this._forEachCell(a2, s2, n2, l2, this._queryCellCircle, c3, { hitTest: o2, circle: { x: t2, y: e2, radius: i2 }, seenUids: { box: {}, circle: {} } }, r2), o2 ? c3.length > 0 : c3; + }, Yt.prototype.query = function(t2, e2, i2, o2, r2) { + return this._query(t2, e2, i2, o2, false, r2); + }, Yt.prototype.hitTest = function(t2, e2, i2, o2, r2) { + return this._query(t2, e2, i2, o2, true, r2); + }, Yt.prototype.hitTestCircle = function(t2, e2, i2, o2) { + return this._queryCircle(t2, e2, i2, true, o2); + }, Yt.prototype._queryCell = function(t2, e2, i2, o2, r2, a2, n2, s2) { + var l2 = n2.seenUids, c3 = this.boxCells[r2]; + if (null !== c3) + for (var u2 = this.bboxes, h3 = 0, p3 = c3; h3 < p3.length; h3 += 1) { + var d2 = p3[h3]; + if (!l2.box[d2]) { + l2.box[d2] = true; + var _2 = 4 * d2; + if (t2 <= u2[_2 + 2] && e2 <= u2[_2 + 3] && i2 >= u2[_2 + 0] && o2 >= u2[_2 + 1] && (!s2 || s2(this.boxKeys[d2]))) { + if (n2.hitTest) + return a2.push(true), true; + a2.push({ key: this.boxKeys[d2], x1: u2[_2], y1: u2[_2 + 1], x2: u2[_2 + 2], y2: u2[_2 + 3] }); + } } - for (const t2 of g3) { - r3.reset(t2, 0.25 * i3); - let o4 = 0; - o4 = r3.length <= 0.5 * i3 ? 1 : Math.ceil(r3.paddedLength / f3) + 1; - for (let t3 = 0; t3 < o4; t3++) { - const a4 = t3 / Math.max(o4 - 1, 1), s4 = r3.lerp(a4), n4 = s4.x + vt, l3 = s4.y + vt; - p3.push(n4, l3, i3, 0); - const h5 = n4 - i3, d3 = l3 - i3, m3 = n4 + i3, _3 = l3 + i3; - if (E2 = E2 && this.isOffscreen(h5, d3, m3, _3), T2 = T2 || this.isInsideGrid(h5, d3, m3, _3), "always" !== e2 && this.grid.hitTestCircle(n4, l3, i3, e2, u2) && (w2 = true, !c3)) - return { circles: [], offscreen: false, collisionDetected: w2 }; + } + var f2 = this.circleCells[r2]; + if (null !== f2) + for (var m2 = this.circles, g2 = 0, v3 = f2; g2 < v3.length; g2 += 1) { + var y3 = v3[g2]; + if (!l2.circle[y3]) { + l2.circle[y3] = true; + var x2 = 3 * y3; + if (this._circleAndRectCollide(m2[x2], m2[x2 + 1], m2[x2 + 2], t2, e2, i2, o2) && (!s2 || s2(this.circleKeys[y3]))) { + if (n2.hitTest) + return a2.push(true), true; + var b2 = m2[x2], w2 = m2[x2 + 1], T2 = m2[x2 + 2]; + a2.push({ key: this.circleKeys[y3], x1: b2 - T2, y1: w2 - T2, x2: b2 + T2, y2: w2 + T2 }); } } } - return { circles: !c3 && w2 || !T2 || x2 < this.perspectiveRatioCutoff ? [] : p3, offscreen: E2, collisionDetected: w2 }; - } - queryRenderedSymbols(e2) { - if (0 === e2.length || 0 === this.grid.keysLength() && 0 === this.ignoredGrid.keysLength()) - return {}; - const i2 = []; - let o2 = 1 / 0, a2 = 1 / 0, r2 = -1 / 0, s2 = -1 / 0; - for (const n3 of e2) { - const e3 = new t.pointGeometry(n3.x + vt, n3.y + vt); - o2 = Math.min(o2, e3.x), a2 = Math.min(a2, e3.y), r2 = Math.max(r2, e3.x), s2 = Math.max(s2, e3.y), i2.push(e3); - } - const n2 = this.grid.query(o2, a2, r2, s2).concat(this.ignoredGrid.query(o2, a2, r2, s2)), l2 = {}, c3 = {}; - for (const e3 of n2) { - const o3 = e3.key; - if (void 0 === l2[o3.bucketInstanceId] && (l2[o3.bucketInstanceId] = {}), l2[o3.bucketInstanceId][o3.featureIndex]) - continue; - const a3 = [new t.pointGeometry(e3.x1, e3.y1), new t.pointGeometry(e3.x2, e3.y1), new t.pointGeometry(e3.x2, e3.y2), new t.pointGeometry(e3.x1, e3.y2)]; - t.polygonIntersectsPolygon(i2, a3) && (l2[o3.bucketInstanceId][o3.featureIndex] = true, void 0 === c3[o3.bucketInstanceId] && (c3[o3.bucketInstanceId] = []), c3[o3.bucketInstanceId].push(o3.featureIndex)); + }, Yt.prototype._queryCellCircle = function(t2, e2, i2, o2, r2, a2, n2, s2) { + var l2 = n2.circle, c3 = n2.seenUids, u2 = this.boxCells[r2]; + if (null !== u2) + for (var h3 = this.bboxes, p3 = 0, d2 = u2; p3 < d2.length; p3 += 1) { + var _2 = d2[p3]; + if (!c3.box[_2]) { + c3.box[_2] = true; + var f2 = 4 * _2; + if (this._circleAndRectCollide(l2.x, l2.y, l2.radius, h3[f2 + 0], h3[f2 + 1], h3[f2 + 2], h3[f2 + 3]) && (!s2 || s2(this.boxKeys[_2]))) + return a2.push(true), true; + } } - return c3; - } - insertCollisionBox(t2, e2, i2, o2, a2, r2) { - (i2 ? this.ignoredGrid : this.grid).insert({ bucketInstanceId: o2, featureIndex: a2, collisionGroupID: r2, overlapMode: e2 }, t2[0], t2[1], t2[2], t2[3]); - } - insertCollisionCircles(t2, e2, i2, o2, a2, r2) { - const s2 = i2 ? this.ignoredGrid : this.grid, n2 = { bucketInstanceId: o2, featureIndex: a2, collisionGroupID: r2, overlapMode: e2 }; - for (let e3 = 0; e3 < t2.length; e3 += 4) - s2.insertCircle(n2, t2[e3], t2[e3 + 1], t2[e3 + 2]); - } - projectAndGetPerspectiveRatio(e2, i2, o2, a2) { - let r2; - return a2 ? (r2 = [i2, o2, a2(i2, o2), 1], t.transformMat4(r2, r2, e2)) : (r2 = [i2, o2, 0, 1], xt(r2, r2, e2)), { point: new t.pointGeometry((r2[0] / r2[3] + 1) / 2 * this.transform.width + vt, (-r2[1] / r2[3] + 1) / 2 * this.transform.height + vt), perspectiveRatio: 0.5 + this.transform.cameraToCenterDistance / r2[3] * 0.5 }; - } - isOffscreen(t2, e2, i2, o2) { - return i2 < vt || t2 >= this.screenRightBoundary || o2 < vt || e2 > this.screenBottomBoundary; - } - isInsideGrid(t2, e2, i2, o2) { - return i2 >= 0 && t2 < this.gridRightBoundary && o2 >= 0 && e2 < this.gridBottomBoundary; - } - getViewportMatrix() { - const e2 = t.identity([]); - return t.translate(e2, e2, [-100, -100, 0]), e2; - } - } - function bt(e2, i2, o2) { - return i2 * (t.EXTENT / (e2.tileSize * Math.pow(2, o2 - e2.tileID.overscaledZ))); - } - class wt { - constructor(t2, e2, i2, o2) { - this.opacity = t2 ? Math.max(0, Math.min(1, t2.opacity + (t2.placed ? e2 : -e2))) : o2 && i2 ? 1 : 0, this.placed = i2; - } - isHidden() { - return 0 === this.opacity && !this.placed; - } - } - class Tt { - constructor(t2, e2, i2, o2, a2) { - this.text = new wt(t2 ? t2.text : null, e2, i2, a2), this.icon = new wt(t2 ? t2.icon : null, e2, o2, a2); - } - isHidden() { - return this.text.isHidden() && this.icon.isHidden(); - } - } - class Et { - constructor(t2, e2, i2) { - this.text = t2, this.icon = e2, this.skipFade = i2; + var m2 = this.circleCells[r2]; + if (null !== m2) + for (var g2 = this.circles, v3 = 0, y3 = m2; v3 < y3.length; v3 += 1) { + var x2 = y3[v3]; + if (!c3.circle[x2]) { + c3.circle[x2] = true; + var b2 = 3 * x2; + if (this._circlesCollide(g2[b2], g2[b2 + 1], g2[b2 + 2], l2.x, l2.y, l2.radius) && (!s2 || s2(this.circleKeys[x2]))) + return a2.push(true), true; + } + } + }, Yt.prototype._forEachCell = function(t2, e2, i2, o2, r2, a2, n2, s2) { + for (var l2 = this._convertToXCellCoord(t2), c3 = this._convertToYCellCoord(e2), u2 = this._convertToXCellCoord(i2), h3 = this._convertToYCellCoord(o2), p3 = l2; p3 <= u2; p3++) + for (var d2 = c3; d2 <= h3; d2++) + if (r2.call(this, t2, e2, i2, o2, this.xCellCount * d2 + p3, a2, n2, s2)) + return; + }, Yt.prototype._convertToXCellCoord = function(t2) { + return Math.max(0, Math.min(this.xCellCount - 1, Math.floor(t2 * this.xScale))); + }, Yt.prototype._convertToYCellCoord = function(t2) { + return Math.max(0, Math.min(this.yCellCount - 1, Math.floor(t2 * this.yScale))); + }, Yt.prototype._circlesCollide = function(t2, e2, i2, o2, r2, a2) { + var n2 = o2 - t2, s2 = r2 - e2, l2 = i2 + a2; + return l2 * l2 > n2 * n2 + s2 * s2; + }, Yt.prototype._circleAndRectCollide = function(t2, e2, i2, o2, r2, a2, n2) { + var s2 = (a2 - o2) / 2, l2 = Math.abs(t2 - (o2 + s2)); + if (l2 > s2 + i2) + return false; + var c3 = (n2 - r2) / 2, u2 = Math.abs(e2 - (r2 + c3)); + if (u2 > c3 + i2) + return false; + if (l2 <= s2 || u2 <= c3) + return true; + var h3 = l2 - s2, p3 = u2 - c3; + return h3 * h3 + p3 * p3 <= i2 * i2; + }; + var le = new Float32Array([-1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0]); + function ce(t2, e2) { + for (var i2 = 0; i2 < t2; i2++) { + var o2 = e2.length; + e2.resize(o2 + 4), e2.float32.set(le, 3 * o2); } } - class It { - constructor() { - this.invProjMatrix = t.create(), this.viewportMatrix = t.create(), this.circles = []; - } + function ue(t2, e2, i2) { + var o2 = e2[0], r2 = e2[1]; + return t2[0] = i2[0] * o2 + i2[4] * r2 + i2[12], t2[1] = i2[1] * o2 + i2[5] * r2 + i2[13], t2[3] = i2[3] * o2 + i2[7] * r2 + i2[15], t2; } - class Ct { - constructor(t2, e2, i2, o2, a2) { - this.bucketInstanceId = t2, this.featureIndex = e2, this.sourceLayerIndex = i2, this.bucketIndex = o2, this.tileID = a2; - } + var he = function(t2, e2, i2) { + void 0 === e2 && (e2 = new Yt(t2.width + 200, t2.height + 200, 25)), void 0 === i2 && (i2 = new Yt(t2.width + 200, t2.height + 200, 25)), this.transform = t2, this.grid = e2, this.ignoredGrid = i2, this.pitchfactor = Math.cos(t2._pitch) * t2.cameraToCenterDistance, this.screenRightBoundary = t2.width + 100, this.screenBottomBoundary = t2.height + 100, this.gridRightBoundary = t2.width + 200, this.gridBottomBoundary = t2.height + 200; + }; + function pe(e2, i2, o2) { + return i2 * (t.EXTENT / (e2.tileSize * Math.pow(2, o2 - e2.tileID.overscaledZ))); } - class St { - constructor(t2) { - this.crossSourceCollisions = t2, this.maxGroupID = 0, this.collisionGroups = {}; - } - get(t2) { - if (this.crossSourceCollisions) - return { ID: 0, predicate: null }; - if (!this.collisionGroups[t2]) { - const e2 = ++this.maxGroupID; - this.collisionGroups[t2] = { ID: e2, predicate: (t3) => t3.collisionGroupID === e2 }; + he.prototype.placeCollisionBox = function(t2, e2, i2, o2, r2) { + var a2 = this.projectAndGetPerspectiveRatio(o2, t2.anchorPointX, t2.anchorPointY), n2 = i2 * a2.perspectiveRatio, s2 = t2.x1 * n2 + a2.point.x, l2 = t2.y1 * n2 + a2.point.y, c3 = t2.x2 * n2 + a2.point.x, u2 = t2.y2 * n2 + a2.point.y; + return !this.isInsideGrid(s2, l2, c3, u2) || !e2 && this.grid.hitTest(s2, l2, c3, u2, r2) ? { box: [], offscreen: false } : { box: [s2, l2, c3, u2], offscreen: this.isOffscreen(s2, l2, c3, u2) }; + }, he.prototype.placeCollisionCircles = function(e2, i2, o2, r2, a2, n2, s2, l2, c3, u2, h3, p3, d2) { + var _2 = [], f2 = new t.Point(i2.anchorX, i2.anchorY), m2 = $t(f2, n2), g2 = te(this.transform.cameraToCenterDistance, m2.signedDistanceFromCamera), v3 = (u2 ? a2 / g2 : a2 * g2) / t.ONE_EM, y3 = $t(f2, s2).point, x2 = oe(v3, r2, i2.lineOffsetX * v3, i2.lineOffsetY * v3, false, y3, f2, i2, o2, s2, {}), b2 = false, w2 = false, T2 = true; + if (x2) { + for (var E2 = 0.5 * p3 * g2 + d2, I3 = new t.Point(-100, -100), P2 = new t.Point(this.screenRightBoundary, this.screenBottomBoundary), S2 = new Kt(), C2 = x2.first, z2 = x2.last, D2 = [], A3 = C2.path.length - 1; A3 >= 1; A3--) + D2.push(C2.path[A3]); + for (var M2 = 1; M2 < z2.path.length; M2++) + D2.push(z2.path[M2]); + var L2 = 2.5 * E2; + if (l2) { + var R2 = D2.map(function(t2) { + return $t(t2, l2); + }); + D2 = R2.some(function(t2) { + return t2.signedDistanceFromCamera <= 0; + }) ? [] : R2.map(function(t2) { + return t2.point; + }); + } + var k2 = []; + if (D2.length > 0) { + for (var B2 = D2[0].clone(), O3 = D2[0].clone(), F2 = 1; F2 < D2.length; F2++) + B2.x = Math.min(B2.x, D2[F2].x), B2.y = Math.min(B2.y, D2[F2].y), O3.x = Math.max(O3.x, D2[F2].x), O3.y = Math.max(O3.y, D2[F2].y); + k2 = B2.x >= I3.x && O3.x <= P2.x && B2.y >= I3.y && O3.y <= P2.y ? [D2] : O3.x < I3.x || B2.x > P2.x || O3.y < I3.y || B2.y > P2.y ? [] : t.clipLine([D2], I3.x, I3.y, P2.x, P2.y); + } + for (var U2 = 0, N2 = k2; U2 < N2.length; U2 += 1) { + var Z3; + S2.reset(N2[U2], 0.25 * E2), Z3 = S2.length <= 0.5 * E2 ? 1 : Math.ceil(S2.paddedLength / L2) + 1; + for (var q2 = 0; q2 < Z3; q2++) { + var j2 = q2 / Math.max(Z3 - 1, 1), V3 = S2.lerp(j2), G2 = V3.x + 100, W2 = V3.y + 100; + _2.push(G2, W2, E2, 0); + var X2 = G2 - E2, H2 = W2 - E2, K2 = G2 + E2, Y2 = W2 + E2; + if (T2 = T2 && this.isOffscreen(X2, H2, K2, Y2), w2 = w2 || this.isInsideGrid(X2, H2, K2, Y2), !e2 && this.grid.hitTestCircle(G2, W2, E2, h3) && (b2 = true, !c3)) + return { circles: [], offscreen: false, collisionDetected: b2 }; + } } - return this.collisionGroups[t2]; } - } - function Dt(e2, i2, o2, a2, r2) { - const { horizontalAlign: s2, verticalAlign: n2 } = t.getAnchorAlignment(e2), l2 = -(s2 - 0.5) * i2, c3 = -(n2 - 0.5) * o2, h3 = t.evaluateVariableOffset(e2, a2); - return new t.pointGeometry(l2 + h3[0] * r2, c3 + h3[1] * r2); - } - function zt(e2, i2, o2, a2, r2, s2) { - const { x1: n2, x2: l2, y1: c3, y2: h3, anchorPointX: u2, anchorPointY: d2 } = e2, m2 = new t.pointGeometry(i2, o2); - return a2 && m2._rotate(r2 ? s2 : -s2), { x1: n2 + m2.x, y1: c3 + m2.y, x2: l2 + m2.x, y2: h3 + m2.y, anchorPointX: u2, anchorPointY: d2 }; - } - class Pt { - constructor(t2, e2, i2, o2, a2) { - this.transform = t2.clone(), this.terrain = e2, this.collisionIndex = new yt(this.transform), this.placements = {}, this.opacities = {}, this.variableOffsets = {}, this.stale = false, this.commitTime = 0, this.fadeDuration = i2, this.retainedQueryData = {}, this.collisionGroups = new St(o2), this.collisionCircleArrays = {}, this.prevPlacement = a2, a2 && (a2.prevPlacement = void 0), this.placedOrientations = {}; + return { circles: !c3 && b2 || !w2 ? [] : _2, offscreen: T2, collisionDetected: b2 }; + }, he.prototype.queryRenderedSymbols = function(e2) { + if (0 === e2.length || 0 === this.grid.keysLength() && 0 === this.ignoredGrid.keysLength()) + return {}; + for (var i2 = [], o2 = 1 / 0, r2 = 1 / 0, a2 = -1 / 0, n2 = -1 / 0, s2 = 0, l2 = e2; s2 < l2.length; s2 += 1) { + var c3 = l2[s2], u2 = new t.Point(c3.x + 100, c3.y + 100); + o2 = Math.min(o2, u2.x), r2 = Math.min(r2, u2.y), a2 = Math.max(a2, u2.x), n2 = Math.max(n2, u2.y), i2.push(u2); + } + for (var h3 = {}, p3 = {}, d2 = 0, _2 = this.grid.query(o2, r2, a2, n2).concat(this.ignoredGrid.query(o2, r2, a2, n2)); d2 < _2.length; d2 += 1) { + var f2 = _2[d2], m2 = f2.key; + if (void 0 === h3[m2.bucketInstanceId] && (h3[m2.bucketInstanceId] = {}), !h3[m2.bucketInstanceId][m2.featureIndex]) { + var g2 = [new t.Point(f2.x1, f2.y1), new t.Point(f2.x2, f2.y1), new t.Point(f2.x2, f2.y2), new t.Point(f2.x1, f2.y2)]; + t.polygonIntersectsPolygon(i2, g2) && (h3[m2.bucketInstanceId][m2.featureIndex] = true, void 0 === p3[m2.bucketInstanceId] && (p3[m2.bucketInstanceId] = []), p3[m2.bucketInstanceId].push(m2.featureIndex)); + } + } + return p3; + }, he.prototype.insertCollisionBox = function(t2, e2, i2, o2, r2) { + (e2 ? this.ignoredGrid : this.grid).insert({ bucketInstanceId: i2, featureIndex: o2, collisionGroupID: r2 }, t2[0], t2[1], t2[2], t2[3]); + }, he.prototype.insertCollisionCircles = function(t2, e2, i2, o2, r2) { + for (var a2 = e2 ? this.ignoredGrid : this.grid, n2 = { bucketInstanceId: i2, featureIndex: o2, collisionGroupID: r2 }, s2 = 0; s2 < t2.length; s2 += 4) + a2.insertCircle(n2, t2[s2], t2[s2 + 1], t2[s2 + 2]); + }, he.prototype.projectAndGetPerspectiveRatio = function(e2, i2, o2) { + var r2 = [i2, o2, 0, 1]; + return ue(r2, r2, e2), { point: new t.Point((r2[0] / r2[3] + 1) / 2 * this.transform.width + 100, (-r2[1] / r2[3] + 1) / 2 * this.transform.height + 100), perspectiveRatio: 0.5 + this.transform.cameraToCenterDistance / r2[3] * 0.5 }; + }, he.prototype.isOffscreen = function(t2, e2, i2, o2) { + return i2 < 100 || t2 >= this.screenRightBoundary || o2 < 100 || e2 > this.screenBottomBoundary; + }, he.prototype.isInsideGrid = function(t2, e2, i2, o2) { + return i2 >= 0 && t2 < this.gridRightBoundary && o2 >= 0 && e2 < this.gridBottomBoundary; + }, he.prototype.getViewportMatrix = function() { + var e2 = t.identity([]); + return t.translate(e2, e2, [-100, -100, 0]), e2; + }; + var de = function(t2, e2, i2, o2) { + this.opacity = t2 ? Math.max(0, Math.min(1, t2.opacity + (t2.placed ? e2 : -e2))) : o2 && i2 ? 1 : 0, this.placed = i2; + }; + de.prototype.isHidden = function() { + return 0 === this.opacity && !this.placed; + }; + var _e = function(t2, e2, i2, o2, r2) { + this.text = new de(t2 ? t2.text : null, e2, i2, r2), this.icon = new de(t2 ? t2.icon : null, e2, o2, r2); + }; + _e.prototype.isHidden = function() { + return this.text.isHidden() && this.icon.isHidden(); + }; + var fe = function(t2, e2, i2) { + this.text = t2, this.icon = e2, this.skipFade = i2; + }, me = function() { + this.invProjMatrix = t.create(), this.viewportMatrix = t.create(), this.circles = []; + }, ge = function(t2, e2, i2, o2, r2) { + this.bucketInstanceId = t2, this.featureIndex = e2, this.sourceLayerIndex = i2, this.bucketIndex = o2, this.tileID = r2; + }, ve = function(t2) { + this.crossSourceCollisions = t2, this.maxGroupID = 0, this.collisionGroups = {}; + }; + function ye(e2, i2, o2, r2, a2) { + var n2 = t.getAnchorAlignment(e2), s2 = -(n2.horizontalAlign - 0.5) * i2, l2 = -(n2.verticalAlign - 0.5) * o2, c3 = t.evaluateVariableOffset(e2, r2); + return new t.Point(s2 + c3[0] * a2, l2 + c3[1] * a2); + } + function xe(e2, i2, o2, r2, a2, n2) { + var s2 = e2.x1, l2 = e2.x2, c3 = e2.y1, u2 = e2.y2, h3 = e2.anchorPointX, p3 = e2.anchorPointY, d2 = new t.Point(i2, o2); + return r2 && d2._rotate(a2 ? n2 : -n2), { x1: s2 + d2.x, y1: c3 + d2.y, x2: l2 + d2.x, y2: u2 + d2.y, anchorPointX: h3, anchorPointY: p3 }; + } + ve.prototype.get = function(t2) { + if (this.crossSourceCollisions) + return { ID: 0, predicate: null }; + if (!this.collisionGroups[t2]) { + var e2 = ++this.maxGroupID; + this.collisionGroups[t2] = { ID: e2, predicate: function(t3) { + return t3.collisionGroupID === e2; + } }; } - getBucketParts(e2, i2, o2, a2) { - const r2 = o2.getBucket(i2), s2 = o2.latestFeatureIndex; - if (!r2 || !s2 || i2.id !== r2.layerIds[0]) - return; - const n2 = o2.collisionBoxArray, l2 = r2.layers[0].layout, c3 = Math.pow(2, this.transform.zoom - o2.tileID.overscaledZ), h3 = o2.tileSize / t.EXTENT, u2 = this.transform.calculatePosMatrix(o2.tileID.toUnwrapped()), d2 = "map" === l2.get("text-pitch-alignment"), m2 = "map" === l2.get("text-rotation-alignment"), _2 = bt(o2, 1, this.transform.zoom), p3 = rt(u2, d2, m2, this.transform, _2); - let f2 = null; - if (d2) { - const e3 = st(u2, d2, m2, this.transform, _2); - f2 = t.multiply([], this.transform.labelPlaneMatrix, e3); - } - this.retainedQueryData[r2.bucketInstanceId] = new Ct(r2.bucketInstanceId, s2, r2.sourceLayerIndex, r2.index, o2.tileID); - const g2 = { bucket: r2, layout: l2, posMatrix: u2, textLabelPlaneMatrix: p3, labelToScreenMatrix: f2, scale: c3, textPixelRatio: h3, holdingForFade: o2.holdingForFade(), collisionBoxArray: n2, partiallyEvaluatedTextSize: t.evaluateSizeForZoom(r2.textSizeData, this.transform.zoom), collisionGroup: this.collisionGroups.get(r2.sourceID) }; - if (a2) - for (const t2 of r2.sortKeyRanges) { - const { sortKey: i3, symbolInstanceStart: o3, symbolInstanceEnd: a3 } = t2; - e2.push({ sortKey: i3, symbolInstanceStart: o3, symbolInstanceEnd: a3, parameters: g2 }); + return this.collisionGroups[t2]; + }; + var be = function(t2, e2, i2, o2) { + this.transform = t2.clone(), this.collisionIndex = new he(this.transform), this.placements = {}, this.opacities = {}, this.variableOffsets = {}, this.stale = false, this.commitTime = 0, this.fadeDuration = e2, this.retainedQueryData = {}, this.collisionGroups = new ve(i2), this.collisionCircleArrays = {}, this.prevPlacement = o2, o2 && (o2.prevPlacement = void 0), this.placedOrientations = {}; + }; + function we(t2, e2, i2, o2, r2) { + t2.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, o2 || 0, r2 || 0), t2.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, o2 || 0, r2 || 0), t2.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, o2 || 0, r2 || 0), t2.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, o2 || 0, r2 || 0); + } + be.prototype.getBucketParts = function(e2, i2, o2, r2) { + var a2 = o2.getBucket(i2), n2 = o2.latestFeatureIndex; + if (a2 && n2 && i2.id === a2.layerIds[0]) { + var s2 = o2.collisionBoxArray, l2 = a2.layers[0].layout, c3 = Math.pow(2, this.transform.zoom - o2.tileID.overscaledZ), u2 = o2.tileSize / t.EXTENT, h3 = this.transform.calculatePosMatrix(o2.tileID.toUnwrapped()), p3 = "map" === l2.get("text-pitch-alignment"), d2 = "map" === l2.get("text-rotation-alignment"), _2 = pe(o2, 1, this.transform.zoom), f2 = Jt(h3, p3, d2, this.transform, _2), m2 = null; + if (p3) { + var g2 = Qt(h3, p3, d2, this.transform, _2); + m2 = t.multiply([], this.transform.labelPlaneMatrix, g2); + } + this.retainedQueryData[a2.bucketInstanceId] = new ge(a2.bucketInstanceId, n2, a2.sourceLayerIndex, a2.index, o2.tileID); + var v3 = { bucket: a2, layout: l2, posMatrix: h3, textLabelPlaneMatrix: f2, labelToScreenMatrix: m2, scale: c3, textPixelRatio: u2, holdingForFade: o2.holdingForFade(), collisionBoxArray: s2, partiallyEvaluatedTextSize: t.evaluateSizeForZoom(a2.textSizeData, this.transform.zoom), collisionGroup: this.collisionGroups.get(a2.sourceID) }; + if (r2) + for (var y3 = 0, x2 = a2.sortKeyRanges; y3 < x2.length; y3 += 1) { + var b2 = x2[y3]; + e2.push({ sortKey: b2.sortKey, symbolInstanceStart: b2.symbolInstanceStart, symbolInstanceEnd: b2.symbolInstanceEnd, parameters: v3 }); } else - e2.push({ symbolInstanceStart: 0, symbolInstanceEnd: r2.symbolInstances.length, parameters: g2 }); - } - attemptAnchorPlacement(t2, e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2, d2, m2, _2, p3) { - const f2 = [u2.textOffset0, u2.textOffset1], g2 = Dt(t2, i2, o2, f2, a2), x2 = this.collisionIndex.placeCollisionBox(zt(e2, g2.x, g2.y, r2, s2, this.transform.angle), h3, n2, l2, c3.predicate, p3); - if ((!_2 || 0 !== this.collisionIndex.placeCollisionBox(zt(_2, g2.x, g2.y, r2, s2, this.transform.angle), h3, n2, l2, c3.predicate, p3).box.length) && x2.box.length > 0) { - let e3; - if (this.prevPlacement && this.prevPlacement.variableOffsets[u2.crossTileID] && this.prevPlacement.placements[u2.crossTileID] && this.prevPlacement.placements[u2.crossTileID].text && (e3 = this.prevPlacement.variableOffsets[u2.crossTileID].anchor), 0 === u2.crossTileID) - throw new Error("symbolInstance.crossTileID can't be 0"); - return this.variableOffsets[u2.crossTileID] = { textOffset: f2, width: i2, height: o2, anchor: t2, textBoxScale: a2, prevAnchor: e3 }, this.markUsedJustification(d2, t2, u2, m2), d2.allowVerticalPlacement && (this.markUsedOrientation(d2, m2, u2), this.placedOrientations[u2.crossTileID] = m2), { shift: g2, placedGlyphBoxes: x2 }; - } - } - placeLayerBucketPart(e2, i2, o2) { - const { bucket: a2, layout: r2, posMatrix: s2, textLabelPlaneMatrix: n2, labelToScreenMatrix: l2, textPixelRatio: c3, holdingForFade: h3, collisionBoxArray: u2, partiallyEvaluatedTextSize: d2, collisionGroup: m2 } = e2.parameters, _2 = r2.get("text-optional"), p3 = r2.get("icon-optional"), f2 = t.getOverlapMode(r2, "text-overlap", "text-allow-overlap"), g2 = "always" === f2, x2 = t.getOverlapMode(r2, "icon-overlap", "icon-allow-overlap"), v3 = "always" === x2, y3 = "map" === r2.get("text-rotation-alignment"), b2 = "map" === r2.get("text-pitch-alignment"), w2 = "none" !== r2.get("icon-text-fit"), T2 = "viewport-y" === r2.get("symbol-z-order"), E2 = g2 && (v3 || !a2.hasIconData() || p3), I3 = v3 && (g2 || !a2.hasTextData() || _2); - !a2.collisionArrays && u2 && a2.deserializeCollisionBoxes(u2); - const C2 = (e3, u3) => { - if (i2[e3.crossTileID]) - return; - if (h3) - return void (this.placements[e3.crossTileID] = new Et(false, false, false)); - let v4 = false, T3 = false, C3 = true, S2 = null, D2 = { box: null, offscreen: null }, z2 = { box: null, offscreen: null }, P2 = null, M2 = null, A3 = null, L2 = 0, R2 = 0, k2 = 0; - u3.textFeatureIndex ? L2 = u3.textFeatureIndex : e3.useRuntimeCollisionCircles && (L2 = e3.featureIndex), u3.verticalTextFeatureIndex && (R2 = u3.verticalTextFeatureIndex); - const B2 = this.retainedQueryData[a2.bucketInstanceId].tileID, F2 = this.terrain ? (t2, e4) => this.terrain.getElevation(B2, t2, e4) : null; - for (const t2 of ["textBox", "verticalTextBox", "iconBox", "verticalIconBox"]) { - const e4 = u3[t2]; - e4 && (e4.elevation = F2 ? F2(e4.anchorPointX, e4.anchorPointY) : 0); - } - const O3 = u3.textBox; - if (O3) { - const i3 = (i4) => { - let o4 = t.WritingMode.horizontal; - if (a2.allowVerticalPlacement && !i4 && this.prevPlacement) { - const t2 = this.prevPlacement.placedOrientations[e3.crossTileID]; - t2 && (this.placedOrientations[e3.crossTileID] = t2, o4 = t2, this.markUsedOrientation(a2, o4, e3)); - } - return o4; - }, o3 = (i4, o4) => { - if (a2.allowVerticalPlacement && e3.numVerticalGlyphVertices > 0 && u3.verticalTextBox) { - for (const e4 of a2.writingModes) - if (e4 === t.WritingMode.vertical ? (D2 = o4(), z2 = D2) : D2 = i4(), D2 && D2.box && D2.box.length) - break; - } else - D2 = i4(); - }; - if (r2.get("text-variable-anchor")) { - let n3 = r2.get("text-variable-anchor"); - if (this.prevPlacement && this.prevPlacement.variableOffsets[e3.crossTileID]) { - const t2 = this.prevPlacement.variableOffsets[e3.crossTileID]; - n3.indexOf(t2.anchor) > 0 && (n3 = n3.filter((e4) => e4 !== t2.anchor), n3.unshift(t2.anchor)); - } - const l3 = (t2, i4, o4) => { - const r3 = t2.x2 - t2.x1, l4 = t2.y2 - t2.y1, h5 = e3.textBoxScale, u4 = w2 && "never" === x2 ? i4 : null; - let d3 = { box: [], offscreen: false }; - const _3 = "never" !== f2 ? 2 * n3.length : n3.length; - for (let i5 = 0; i5 < _3; ++i5) { - const _4 = this.attemptAnchorPlacement(n3[i5 % n3.length], t2, r3, l4, h5, y3, b2, c3, s2, m2, i5 >= n3.length ? f2 : "never", e3, a2, o4, u4, F2); - if (_4 && (d3 = _4.placedGlyphBoxes, d3 && d3.box && d3.box.length)) { - v4 = true, S2 = _4.shift; - break; - } + e2.push({ symbolInstanceStart: 0, symbolInstanceEnd: a2.symbolInstances.length, parameters: v3 }); + } + }, be.prototype.attemptAnchorPlacement = function(t2, e2, i2, o2, r2, a2, n2, s2, l2, c3, u2, h3, p3, d2, _2) { + var f2, m2 = [h3.textOffset0, h3.textOffset1], g2 = ye(t2, i2, o2, m2, r2), v3 = this.collisionIndex.placeCollisionBox(xe(e2, g2.x, g2.y, a2, n2, this.transform.angle), u2, s2, l2, c3.predicate); + if (!_2 || 0 !== this.collisionIndex.placeCollisionBox(xe(_2, g2.x, g2.y, a2, n2, this.transform.angle), u2, s2, l2, c3.predicate).box.length) + return v3.box.length > 0 ? (this.prevPlacement && this.prevPlacement.variableOffsets[h3.crossTileID] && this.prevPlacement.placements[h3.crossTileID] && this.prevPlacement.placements[h3.crossTileID].text && (f2 = this.prevPlacement.variableOffsets[h3.crossTileID].anchor), this.variableOffsets[h3.crossTileID] = { textOffset: m2, width: i2, height: o2, anchor: t2, textBoxScale: r2, prevAnchor: f2 }, this.markUsedJustification(p3, t2, h3, d2), p3.allowVerticalPlacement && (this.markUsedOrientation(p3, d2, h3), this.placedOrientations[h3.crossTileID] = d2), { shift: g2, placedGlyphBoxes: v3 }) : void 0; + }, be.prototype.placeLayerBucketPart = function(e2, i2, o2) { + var r2 = this, a2 = e2.parameters, n2 = a2.bucket, s2 = a2.layout, l2 = a2.posMatrix, c3 = a2.textLabelPlaneMatrix, u2 = a2.labelToScreenMatrix, h3 = a2.textPixelRatio, p3 = a2.holdingForFade, d2 = a2.collisionBoxArray, _2 = a2.partiallyEvaluatedTextSize, f2 = a2.collisionGroup, m2 = s2.get("text-optional"), g2 = s2.get("icon-optional"), v3 = s2.get("text-allow-overlap"), y3 = s2.get("icon-allow-overlap"), x2 = "map" === s2.get("text-rotation-alignment"), b2 = "map" === s2.get("text-pitch-alignment"), w2 = "none" !== s2.get("icon-text-fit"), T2 = "viewport-y" === s2.get("symbol-z-order"), E2 = v3 && (y3 || !n2.hasIconData() || g2), I3 = y3 && (v3 || !n2.hasTextData() || m2); + !n2.collisionArrays && d2 && n2.deserializeCollisionBoxes(d2); + var P2 = function(e3, a3) { + if (!i2[e3.crossTileID]) + if (p3) + r2.placements[e3.crossTileID] = new fe(false, false, false); + else { + var d3, T3 = false, P3 = false, S3 = true, C3 = null, z3 = { box: null, offscreen: null }, D3 = { box: null, offscreen: null }, A4 = null, M2 = null, L2 = 0, R2 = 0, k2 = 0; + a3.textFeatureIndex ? L2 = a3.textFeatureIndex : e3.useRuntimeCollisionCircles && (L2 = e3.featureIndex), a3.verticalTextFeatureIndex && (R2 = a3.verticalTextFeatureIndex); + var B2 = a3.textBox; + if (B2) { + var O3 = function(i3) { + var o3 = t.WritingMode.horizontal; + if (n2.allowVerticalPlacement && !i3 && r2.prevPlacement) { + var a4 = r2.prevPlacement.placedOrientations[e3.crossTileID]; + a4 && (r2.placedOrientations[e3.crossTileID] = a4, r2.markUsedOrientation(n2, o3 = a4, e3)); } - return d3; + return o3; + }, F2 = function(i3, o3) { + if (n2.allowVerticalPlacement && e3.numVerticalGlyphVertices > 0 && a3.verticalTextBox) + for (var r3 = 0, s3 = n2.writingModes; r3 < s3.length && (s3[r3] === t.WritingMode.vertical ? (z3 = o3(), D3 = z3) : z3 = i3(), !(z3 && z3.box && z3.box.length)); r3 += 1) + ; + else + z3 = i3(); }; - o3(() => l3(O3, u3.iconBox, t.WritingMode.horizontal), () => { - const i4 = u3.verticalTextBox; - return a2.allowVerticalPlacement && !(D2 && D2.box && D2.box.length) && e3.numVerticalGlyphVertices > 0 && i4 ? l3(i4, u3.verticalIconBox, t.WritingMode.vertical) : { box: null, offscreen: null }; - }), D2 && (v4 = D2.box, C3 = D2.offscreen); - const h4 = i3(D2 && D2.box); - if (!v4 && this.prevPlacement) { - const t2 = this.prevPlacement.variableOffsets[e3.crossTileID]; - t2 && (this.variableOffsets[e3.crossTileID] = t2, this.markUsedJustification(a2, t2.anchor, e3, h4)); + if (s2.get("text-variable-anchor")) { + var U2 = s2.get("text-variable-anchor"); + if (r2.prevPlacement && r2.prevPlacement.variableOffsets[e3.crossTileID]) { + var N2 = r2.prevPlacement.variableOffsets[e3.crossTileID]; + U2.indexOf(N2.anchor) > 0 && (U2 = U2.filter(function(t2) { + return t2 !== N2.anchor; + })).unshift(N2.anchor); + } + var Z3 = function(t2, i3, o3) { + for (var a4 = t2.x2 - t2.x1, s3 = t2.y2 - t2.y1, c4 = e3.textBoxScale, u3 = w2 && !y3 ? i3 : null, p4 = { box: [], offscreen: false }, d4 = v3 ? 2 * U2.length : U2.length, _3 = 0; _3 < d4; ++_3) { + var m3 = r2.attemptAnchorPlacement(U2[_3 % U2.length], t2, a4, s3, c4, x2, b2, h3, l2, f2, _3 >= U2.length, e3, n2, o3, u3); + if (m3 && (p4 = m3.placedGlyphBoxes) && p4.box && p4.box.length) { + T3 = true, C3 = m3.shift; + break; + } + } + return p4; + }; + F2(function() { + return Z3(B2, a3.iconBox, t.WritingMode.horizontal); + }, function() { + var i3 = a3.verticalTextBox; + return n2.allowVerticalPlacement && !(z3 && z3.box && z3.box.length) && e3.numVerticalGlyphVertices > 0 && i3 ? Z3(i3, a3.verticalIconBox, t.WritingMode.vertical) : { box: null, offscreen: null }; + }), z3 && (T3 = z3.box, S3 = z3.offscreen); + var q2 = O3(z3 && z3.box); + if (!T3 && r2.prevPlacement) { + var j2 = r2.prevPlacement.variableOffsets[e3.crossTileID]; + j2 && (r2.variableOffsets[e3.crossTileID] = j2, r2.markUsedJustification(n2, j2.anchor, e3, q2)); + } + } else { + var V3 = function(t2, i3) { + var o3 = r2.collisionIndex.placeCollisionBox(t2, v3, h3, l2, f2.predicate); + return o3 && o3.box && o3.box.length && (r2.markUsedOrientation(n2, i3, e3), r2.placedOrientations[e3.crossTileID] = i3), o3; + }; + F2(function() { + return V3(B2, t.WritingMode.horizontal); + }, function() { + var i3 = a3.verticalTextBox; + return n2.allowVerticalPlacement && e3.numVerticalGlyphVertices > 0 && i3 ? V3(i3, t.WritingMode.vertical) : { box: null, offscreen: null }; + }), O3(z3 && z3.box && z3.box.length); } - } else { - const r3 = (t2, i4) => { - const o4 = this.collisionIndex.placeCollisionBox(t2, f2, c3, s2, m2.predicate, F2); - return o4 && o4.box && o4.box.length && (this.markUsedOrientation(a2, i4, e3), this.placedOrientations[e3.crossTileID] = i4), o4; + } + if (T3 = (d3 = z3) && d3.box && d3.box.length > 0, S3 = d3 && d3.offscreen, e3.useRuntimeCollisionCircles) { + var G2 = n2.text.placedSymbolArray.get(e3.centerJustifiedTextSymbolIndex), W2 = t.evaluateSizeForFeature(n2.textSizeData, _2, G2), X2 = s2.get("text-padding"); + A4 = r2.collisionIndex.placeCollisionCircles(v3, G2, n2.lineVertexArray, n2.glyphOffsetArray, W2, l2, c3, u2, o2, b2, f2.predicate, e3.collisionCircleDiameter, X2), T3 = v3 || A4.circles.length > 0 && !A4.collisionDetected, S3 = S3 && A4.offscreen; + } + if (a3.iconFeatureIndex && (k2 = a3.iconFeatureIndex), a3.iconBox) { + var H2 = function(t2) { + var e4 = w2 && C3 ? xe(t2, C3.x, C3.y, x2, b2, r2.transform.angle) : t2; + return r2.collisionIndex.placeCollisionBox(e4, y3, h3, l2, f2.predicate); }; - o3(() => r3(O3, t.WritingMode.horizontal), () => { - const i4 = u3.verticalTextBox; - return a2.allowVerticalPlacement && e3.numVerticalGlyphVertices > 0 && i4 ? r3(i4, t.WritingMode.vertical) : { box: null, offscreen: null }; - }), i3(D2 && D2.box && D2.box.length); + P3 = D3 && D3.box && D3.box.length && a3.verticalIconBox ? (M2 = H2(a3.verticalIconBox)).box.length > 0 : (M2 = H2(a3.iconBox)).box.length > 0, S3 = S3 && M2.offscreen; } + var K2 = m2 || 0 === e3.numHorizontalGlyphVertices && 0 === e3.numVerticalGlyphVertices, Y2 = g2 || 0 === e3.numIconVertices; + if (K2 || Y2 ? Y2 ? K2 || (P3 = P3 && T3) : T3 = P3 && T3 : P3 = T3 = P3 && T3, T3 && d3 && d3.box && r2.collisionIndex.insertCollisionBox(d3.box, s2.get("text-ignore-placement"), n2.bucketInstanceId, D3 && D3.box && R2 ? R2 : L2, f2.ID), P3 && M2 && r2.collisionIndex.insertCollisionBox(M2.box, s2.get("icon-ignore-placement"), n2.bucketInstanceId, k2, f2.ID), A4 && (T3 && r2.collisionIndex.insertCollisionCircles(A4.circles, s2.get("text-ignore-placement"), n2.bucketInstanceId, L2, f2.ID), o2)) { + var J2 = n2.bucketInstanceId, Q2 = r2.collisionCircleArrays[J2]; + void 0 === Q2 && (Q2 = r2.collisionCircleArrays[J2] = new me()); + for (var $2 = 0; $2 < A4.circles.length; $2 += 4) + Q2.circles.push(A4.circles[$2 + 0]), Q2.circles.push(A4.circles[$2 + 1]), Q2.circles.push(A4.circles[$2 + 2]), Q2.circles.push(A4.collisionDetected ? 1 : 0); + } + r2.placements[e3.crossTileID] = new fe(T3 || E2, P3 || I3, S3 || n2.justReloaded), i2[e3.crossTileID] = true; } - if (P2 = D2, v4 = P2 && P2.box && P2.box.length > 0, C3 = P2 && P2.offscreen, e3.useRuntimeCollisionCircles) { - const i3 = a2.text.placedSymbolArray.get(e3.centerJustifiedTextSymbolIndex), c4 = t.evaluateSizeForFeature(a2.textSizeData, d2, i3), h4 = r2.get("text-padding"); - M2 = this.collisionIndex.placeCollisionCircles(f2, i3, a2.lineVertexArray, a2.glyphOffsetArray, c4, s2, n2, l2, o2, b2, m2.predicate, e3.collisionCircleDiameter, h4, F2), M2.circles.length && M2.collisionDetected && !o2 && t.warnOnce("Collisions detected, but collision boxes are not shown"), v4 = g2 || M2.circles.length > 0 && !M2.collisionDetected, C3 = C3 && M2.offscreen; - } - if (u3.iconFeatureIndex && (k2 = u3.iconFeatureIndex), u3.iconBox) { - const t2 = (t3) => { - const e4 = w2 && S2 ? zt(t3, S2.x, S2.y, y3, b2, this.transform.angle) : t3; - return this.collisionIndex.placeCollisionBox(e4, x2, c3, s2, m2.predicate, F2); - }; - z2 && z2.box && z2.box.length && u3.verticalIconBox ? (A3 = t2(u3.verticalIconBox), T3 = A3.box.length > 0) : (A3 = t2(u3.iconBox), T3 = A3.box.length > 0), C3 = C3 && A3.offscreen; - } - const U2 = _2 || 0 === e3.numHorizontalGlyphVertices && 0 === e3.numVerticalGlyphVertices, N2 = p3 || 0 === e3.numIconVertices; - if (U2 || N2 ? N2 ? U2 || (T3 = T3 && v4) : v4 = T3 && v4 : T3 = v4 = T3 && v4, v4 && P2 && P2.box && this.collisionIndex.insertCollisionBox(P2.box, f2, r2.get("text-ignore-placement"), a2.bucketInstanceId, z2 && z2.box && R2 ? R2 : L2, m2.ID), T3 && A3 && this.collisionIndex.insertCollisionBox(A3.box, x2, r2.get("icon-ignore-placement"), a2.bucketInstanceId, k2, m2.ID), M2 && (v4 && this.collisionIndex.insertCollisionCircles(M2.circles, f2, r2.get("text-ignore-placement"), a2.bucketInstanceId, L2, m2.ID), o2)) { - const t2 = a2.bucketInstanceId; - let e4 = this.collisionCircleArrays[t2]; - void 0 === e4 && (e4 = this.collisionCircleArrays[t2] = new It()); - for (let t3 = 0; t3 < M2.circles.length; t3 += 4) - e4.circles.push(M2.circles[t3 + 0]), e4.circles.push(M2.circles[t3 + 1]), e4.circles.push(M2.circles[t3 + 2]), e4.circles.push(M2.collisionDetected ? 1 : 0); - } - if (0 === e3.crossTileID) - throw new Error("symbolInstance.crossTileID can't be 0"); - if (0 === a2.bucketInstanceId) - throw new Error("bucket.bucketInstanceId can't be 0"); - this.placements[e3.crossTileID] = new Et(v4 || E2, T3 || I3, C3 || a2.justReloaded), i2[e3.crossTileID] = true; - }; - if (T2) { - if (0 !== e2.symbolInstanceStart) - throw new Error("bucket.bucketInstanceId should be 0"); - const t2 = a2.getSortedSymbolIndexes(this.transform.angle); - for (let e3 = t2.length - 1; e3 >= 0; --e3) { - const i3 = t2[e3]; - C2(a2.symbolInstances.get(i3), a2.collisionArrays[i3]); - } - } else - for (let t2 = e2.symbolInstanceStart; t2 < e2.symbolInstanceEnd; t2++) - C2(a2.symbolInstances.get(t2), a2.collisionArrays[t2]); - if (o2 && a2.bucketInstanceId in this.collisionCircleArrays) { - const e3 = this.collisionCircleArrays[a2.bucketInstanceId]; - t.invert(e3.invProjMatrix, s2), e3.viewportMatrix = this.collisionIndex.getViewportMatrix(); - } - a2.justReloaded = false; - } - markUsedJustification(e2, i2, o2, a2) { - let r2; - r2 = a2 === t.WritingMode.vertical ? o2.verticalPlacedTextSymbolIndex : { left: o2.leftJustifiedTextSymbolIndex, center: o2.centerJustifiedTextSymbolIndex, right: o2.rightJustifiedTextSymbolIndex }[t.getAnchorJustification(i2)]; - const s2 = [o2.leftJustifiedTextSymbolIndex, o2.centerJustifiedTextSymbolIndex, o2.rightJustifiedTextSymbolIndex, o2.verticalPlacedTextSymbolIndex]; - for (const t2 of s2) - t2 >= 0 && (e2.text.placedSymbolArray.get(t2).crossTileID = r2 >= 0 && t2 !== r2 ? 0 : o2.crossTileID); - } - markUsedOrientation(e2, i2, o2) { - const a2 = i2 === t.WritingMode.horizontal || i2 === t.WritingMode.horizontalOnly ? i2 : 0, r2 = i2 === t.WritingMode.vertical ? i2 : 0, s2 = [o2.leftJustifiedTextSymbolIndex, o2.centerJustifiedTextSymbolIndex, o2.rightJustifiedTextSymbolIndex]; - for (const t2 of s2) - e2.text.placedSymbolArray.get(t2).placedOrientation = a2; - o2.verticalPlacedTextSymbolIndex && (e2.text.placedSymbolArray.get(o2.verticalPlacedTextSymbolIndex).placedOrientation = r2); - } - commit(t2) { - this.commitTime = t2, this.zoomAtLastRecencyCheck = this.transform.zoom; - const e2 = this.prevPlacement; - let i2 = false; - this.prevZoomAdjustment = e2 ? e2.zoomAdjustment(this.transform.zoom) : 0; - const o2 = e2 ? e2.symbolFadeChange(t2) : 1, a2 = e2 ? e2.opacities : {}, r2 = e2 ? e2.variableOffsets : {}, s2 = e2 ? e2.placedOrientations : {}; - for (const t3 in this.placements) { - const e3 = this.placements[t3], r3 = a2[t3]; - r3 ? (this.opacities[t3] = new Tt(r3, o2, e3.text, e3.icon), i2 = i2 || e3.text !== r3.text.placed || e3.icon !== r3.icon.placed) : (this.opacities[t3] = new Tt(null, o2, e3.text, e3.icon, e3.skipFade), i2 = i2 || e3.text || e3.icon); - } - for (const t3 in a2) { - const e3 = a2[t3]; - if (!this.opacities[t3]) { - const a3 = new Tt(e3, o2, false, false); - a3.isHidden() || (this.opacities[t3] = a3, i2 = i2 || e3.text.placed || e3.icon.placed); - } + }; + if (T2) + for (var S2 = n2.getSortedSymbolIndexes(this.transform.angle), C2 = S2.length - 1; C2 >= 0; --C2) { + var z2 = S2[C2]; + P2(n2.symbolInstances.get(z2), n2.collisionArrays[z2]); } - for (const t3 in r2) - this.variableOffsets[t3] || !this.opacities[t3] || this.opacities[t3].isHidden() || (this.variableOffsets[t3] = r2[t3]); - for (const t3 in s2) - this.placedOrientations[t3] || !this.opacities[t3] || this.opacities[t3].isHidden() || (this.placedOrientations[t3] = s2[t3]); - if (e2 && void 0 === e2.lastPlacementChangeTime) - throw new Error("Last placement time for previous placement is not defined"); - i2 ? this.lastPlacementChangeTime = t2 : "number" != typeof this.lastPlacementChangeTime && (this.lastPlacementChangeTime = e2 ? e2.lastPlacementChangeTime : t2); - } - updateLayerOpacities(t2, e2) { - const i2 = {}; - for (const o2 of e2) { - const e3 = o2.getBucket(t2); - e3 && o2.latestFeatureIndex && t2.id === e3.layerIds[0] && this.updateBucketOpacities(e3, i2, o2.collisionBoxArray); - } - } - updateBucketOpacities(e2, i2, o2) { - e2.hasTextData() && e2.text.opacityVertexArray.clear(), e2.hasIconData() && e2.icon.opacityVertexArray.clear(), e2.hasIconCollisionBoxData() && e2.iconCollisionBox.collisionVertexArray.clear(), e2.hasTextCollisionBoxData() && e2.textCollisionBox.collisionVertexArray.clear(); - const a2 = e2.layers[0].layout, r2 = new Tt(null, 0, false, false, true), s2 = a2.get("text-allow-overlap"), n2 = a2.get("icon-allow-overlap"), l2 = a2.get("text-variable-anchor"), c3 = "map" === a2.get("text-rotation-alignment"), h3 = "map" === a2.get("text-pitch-alignment"), u2 = "none" !== a2.get("icon-text-fit"), d2 = new Tt(null, 0, s2 && (n2 || !e2.hasIconData() || a2.get("icon-optional")), n2 && (s2 || !e2.hasTextData() || a2.get("text-optional")), true); - !e2.collisionArrays && o2 && (e2.hasIconCollisionBoxData() || e2.hasTextCollisionBoxData()) && e2.deserializeCollisionBoxes(o2); - const m2 = (t2, e3, i3) => { - for (let o3 = 0; o3 < e3 / 4; o3++) - t2.opacityVertexArray.emplaceBack(i3); - }; - for (let o3 = 0; o3 < e2.symbolInstances.length; o3++) { - const a3 = e2.symbolInstances.get(o3), { numHorizontalGlyphVertices: s3, numVerticalGlyphVertices: n3, crossTileID: _2 } = a3; - let p3 = this.opacities[_2]; - i2[_2] ? p3 = r2 : p3 || (p3 = d2, this.opacities[_2] = p3), i2[_2] = true; - const f2 = a3.numIconVertices > 0, g2 = this.placedOrientations[a3.crossTileID], x2 = g2 === t.WritingMode.vertical, v3 = g2 === t.WritingMode.horizontal || g2 === t.WritingMode.horizontalOnly; - if (s3 > 0 || n3 > 0) { - const t2 = Ut(p3.text); - m2(e2.text, s3, x2 ? Nt : t2), m2(e2.text, n3, v3 ? Nt : t2); - const i3 = p3.text.isHidden(); - [a3.rightJustifiedTextSymbolIndex, a3.centerJustifiedTextSymbolIndex, a3.leftJustifiedTextSymbolIndex].forEach((t3) => { - t3 >= 0 && (e2.text.placedSymbolArray.get(t3).hidden = i3 || x2 ? 1 : 0); - }), a3.verticalPlacedTextSymbolIndex >= 0 && (e2.text.placedSymbolArray.get(a3.verticalPlacedTextSymbolIndex).hidden = i3 || v3 ? 1 : 0); - const o4 = this.variableOffsets[a3.crossTileID]; - o4 && this.markUsedJustification(e2, o4.anchor, a3, g2); - const r3 = this.placedOrientations[a3.crossTileID]; - r3 && (this.markUsedJustification(e2, "left", a3, r3), this.markUsedOrientation(e2, r3, a3)); - } - if (f2) { - const t2 = Ut(p3.icon), i3 = !(u2 && a3.verticalPlacedIconSymbolIndex && x2); - a3.placedIconSymbolIndex >= 0 && (m2(e2.icon, a3.numIconVertices, i3 ? t2 : Nt), e2.icon.placedSymbolArray.get(a3.placedIconSymbolIndex).hidden = p3.icon.isHidden()), a3.verticalPlacedIconSymbolIndex >= 0 && (m2(e2.icon, a3.numVerticalIconVertices, i3 ? Nt : t2), e2.icon.placedSymbolArray.get(a3.verticalPlacedIconSymbolIndex).hidden = p3.icon.isHidden()); - } - if (e2.hasIconCollisionBoxData() || e2.hasTextCollisionBoxData()) { - const i3 = e2.collisionArrays[o3]; - if (i3) { - let o4 = new t.pointGeometry(0, 0); - if (i3.textBox || i3.verticalTextBox) { - let t2 = true; - if (l2) { - const e3 = this.variableOffsets[_2]; - e3 ? (o4 = Dt(e3.anchor, e3.width, e3.height, e3.textOffset, e3.textBoxScale), c3 && o4._rotate(h3 ? this.transform.angle : -this.transform.angle)) : t2 = false; - } - i3.textBox && Mt(e2.textCollisionBox.collisionVertexArray, p3.text.placed, !t2 || x2, o4.x, o4.y), i3.verticalTextBox && Mt(e2.textCollisionBox.collisionVertexArray, p3.text.placed, !t2 || v3, o4.x, o4.y); + else + for (var D2 = e2.symbolInstanceStart; D2 < e2.symbolInstanceEnd; D2++) + P2(n2.symbolInstances.get(D2), n2.collisionArrays[D2]); + if (o2 && n2.bucketInstanceId in this.collisionCircleArrays) { + var A3 = this.collisionCircleArrays[n2.bucketInstanceId]; + t.invert(A3.invProjMatrix, l2), A3.viewportMatrix = this.collisionIndex.getViewportMatrix(); + } + n2.justReloaded = false; + }, be.prototype.markUsedJustification = function(e2, i2, o2, r2) { + var a2; + a2 = r2 === t.WritingMode.vertical ? o2.verticalPlacedTextSymbolIndex : { left: o2.leftJustifiedTextSymbolIndex, center: o2.centerJustifiedTextSymbolIndex, right: o2.rightJustifiedTextSymbolIndex }[t.getAnchorJustification(i2)]; + for (var n2 = 0, s2 = [o2.leftJustifiedTextSymbolIndex, o2.centerJustifiedTextSymbolIndex, o2.rightJustifiedTextSymbolIndex, o2.verticalPlacedTextSymbolIndex]; n2 < s2.length; n2 += 1) { + var l2 = s2[n2]; + l2 >= 0 && (e2.text.placedSymbolArray.get(l2).crossTileID = a2 >= 0 && l2 !== a2 ? 0 : o2.crossTileID); + } + }, be.prototype.markUsedOrientation = function(e2, i2, o2) { + for (var r2 = i2 === t.WritingMode.horizontal || i2 === t.WritingMode.horizontalOnly ? i2 : 0, a2 = i2 === t.WritingMode.vertical ? i2 : 0, n2 = 0, s2 = [o2.leftJustifiedTextSymbolIndex, o2.centerJustifiedTextSymbolIndex, o2.rightJustifiedTextSymbolIndex]; n2 < s2.length; n2 += 1) + e2.text.placedSymbolArray.get(s2[n2]).placedOrientation = r2; + o2.verticalPlacedTextSymbolIndex && (e2.text.placedSymbolArray.get(o2.verticalPlacedTextSymbolIndex).placedOrientation = a2); + }, be.prototype.commit = function(t2) { + this.commitTime = t2, this.zoomAtLastRecencyCheck = this.transform.zoom; + var e2 = this.prevPlacement, i2 = false; + this.prevZoomAdjustment = e2 ? e2.zoomAdjustment(this.transform.zoom) : 0; + var o2 = e2 ? e2.symbolFadeChange(t2) : 1, r2 = e2 ? e2.opacities : {}, a2 = e2 ? e2.variableOffsets : {}, n2 = e2 ? e2.placedOrientations : {}; + for (var s2 in this.placements) { + var l2 = this.placements[s2], c3 = r2[s2]; + c3 ? (this.opacities[s2] = new _e(c3, o2, l2.text, l2.icon), i2 = i2 || l2.text !== c3.text.placed || l2.icon !== c3.icon.placed) : (this.opacities[s2] = new _e(null, o2, l2.text, l2.icon, l2.skipFade), i2 = i2 || l2.text || l2.icon); + } + for (var u2 in r2) { + var h3 = r2[u2]; + if (!this.opacities[u2]) { + var p3 = new _e(h3, o2, false, false); + p3.isHidden() || (this.opacities[u2] = p3, i2 = i2 || h3.text.placed || h3.icon.placed); + } + } + for (var d2 in a2) + this.variableOffsets[d2] || !this.opacities[d2] || this.opacities[d2].isHidden() || (this.variableOffsets[d2] = a2[d2]); + for (var _2 in n2) + this.placedOrientations[_2] || !this.opacities[_2] || this.opacities[_2].isHidden() || (this.placedOrientations[_2] = n2[_2]); + i2 ? this.lastPlacementChangeTime = t2 : "number" != typeof this.lastPlacementChangeTime && (this.lastPlacementChangeTime = e2 ? e2.lastPlacementChangeTime : t2); + }, be.prototype.updateLayerOpacities = function(t2, e2) { + for (var i2 = {}, o2 = 0, r2 = e2; o2 < r2.length; o2 += 1) { + var a2 = r2[o2], n2 = a2.getBucket(t2); + n2 && a2.latestFeatureIndex && t2.id === n2.layerIds[0] && this.updateBucketOpacities(n2, i2, a2.collisionBoxArray); + } + }, be.prototype.updateBucketOpacities = function(e2, i2, o2) { + var r2 = this; + e2.hasTextData() && e2.text.opacityVertexArray.clear(), e2.hasIconData() && e2.icon.opacityVertexArray.clear(), e2.hasIconCollisionBoxData() && e2.iconCollisionBox.collisionVertexArray.clear(), e2.hasTextCollisionBoxData() && e2.textCollisionBox.collisionVertexArray.clear(); + var a2 = e2.layers[0].layout, n2 = new _e(null, 0, false, false, true), s2 = a2.get("text-allow-overlap"), l2 = a2.get("icon-allow-overlap"), c3 = a2.get("text-variable-anchor"), u2 = "map" === a2.get("text-rotation-alignment"), h3 = "map" === a2.get("text-pitch-alignment"), p3 = "none" !== a2.get("icon-text-fit"), d2 = new _e(null, 0, s2 && (l2 || !e2.hasIconData() || a2.get("icon-optional")), l2 && (s2 || !e2.hasTextData() || a2.get("text-optional")), true); + !e2.collisionArrays && o2 && (e2.hasIconCollisionBoxData() || e2.hasTextCollisionBoxData()) && e2.deserializeCollisionBoxes(o2); + for (var _2 = function(t2, e3, i3) { + for (var o3 = 0; o3 < e3 / 4; o3++) + t2.opacityVertexArray.emplaceBack(i3); + }, f2 = function(o3) { + var a3 = e2.symbolInstances.get(o3), s3 = a3.numHorizontalGlyphVertices, l3 = a3.numVerticalGlyphVertices, f3 = a3.crossTileID, m3 = r2.opacities[f3]; + i2[f3] ? m3 = n2 : m3 || (r2.opacities[f3] = m3 = d2), i2[f3] = true; + var g3 = a3.numIconVertices > 0, v3 = r2.placedOrientations[a3.crossTileID], y3 = v3 === t.WritingMode.vertical, x2 = v3 === t.WritingMode.horizontal || v3 === t.WritingMode.horizontalOnly; + if (s3 > 0 || l3 > 0) { + var b2 = De(m3.text); + _2(e2.text, s3, y3 ? Ae : b2), _2(e2.text, l3, x2 ? Ae : b2); + var w2 = m3.text.isHidden(); + [a3.rightJustifiedTextSymbolIndex, a3.centerJustifiedTextSymbolIndex, a3.leftJustifiedTextSymbolIndex].forEach(function(t2) { + t2 >= 0 && (e2.text.placedSymbolArray.get(t2).hidden = w2 || y3 ? 1 : 0); + }), a3.verticalPlacedTextSymbolIndex >= 0 && (e2.text.placedSymbolArray.get(a3.verticalPlacedTextSymbolIndex).hidden = w2 || x2 ? 1 : 0); + var T2 = r2.variableOffsets[a3.crossTileID]; + T2 && r2.markUsedJustification(e2, T2.anchor, a3, v3); + var E2 = r2.placedOrientations[a3.crossTileID]; + E2 && (r2.markUsedJustification(e2, "left", a3, E2), r2.markUsedOrientation(e2, E2, a3)); + } + if (g3) { + var I3 = De(m3.icon), P2 = !(p3 && a3.verticalPlacedIconSymbolIndex && y3); + a3.placedIconSymbolIndex >= 0 && (_2(e2.icon, a3.numIconVertices, P2 ? I3 : Ae), e2.icon.placedSymbolArray.get(a3.placedIconSymbolIndex).hidden = m3.icon.isHidden()), a3.verticalPlacedIconSymbolIndex >= 0 && (_2(e2.icon, a3.numVerticalIconVertices, P2 ? Ae : I3), e2.icon.placedSymbolArray.get(a3.verticalPlacedIconSymbolIndex).hidden = m3.icon.isHidden()); + } + if (e2.hasIconCollisionBoxData() || e2.hasTextCollisionBoxData()) { + var S2 = e2.collisionArrays[o3]; + if (S2) { + var C2 = new t.Point(0, 0); + if (S2.textBox || S2.verticalTextBox) { + var z2 = true; + if (c3) { + var D2 = r2.variableOffsets[f3]; + D2 ? (C2 = ye(D2.anchor, D2.width, D2.height, D2.textOffset, D2.textBoxScale), u2 && C2._rotate(h3 ? r2.transform.angle : -r2.transform.angle)) : z2 = false; } - const a4 = Boolean(!v3 && i3.verticalIconBox); - i3.iconBox && Mt(e2.iconCollisionBox.collisionVertexArray, p3.icon.placed, a4, u2 ? o4.x : 0, u2 ? o4.y : 0), i3.verticalIconBox && Mt(e2.iconCollisionBox.collisionVertexArray, p3.icon.placed, !a4, u2 ? o4.x : 0, u2 ? o4.y : 0); + S2.textBox && we(e2.textCollisionBox.collisionVertexArray, m3.text.placed, !z2 || y3, C2.x, C2.y), S2.verticalTextBox && we(e2.textCollisionBox.collisionVertexArray, m3.text.placed, !z2 || x2, C2.x, C2.y); } + var A3 = Boolean(!x2 && S2.verticalIconBox); + S2.iconBox && we(e2.iconCollisionBox.collisionVertexArray, m3.icon.placed, A3, p3 ? C2.x : 0, p3 ? C2.y : 0), S2.verticalIconBox && we(e2.iconCollisionBox.collisionVertexArray, m3.icon.placed, !A3, p3 ? C2.x : 0, p3 ? C2.y : 0); } } - if (e2.sortFeatures(this.transform.angle), this.retainedQueryData[e2.bucketInstanceId] && (this.retainedQueryData[e2.bucketInstanceId].featureSortOrder = e2.featureSortOrder), e2.hasTextData() && e2.text.opacityVertexBuffer && e2.text.opacityVertexBuffer.updateData(e2.text.opacityVertexArray), e2.hasIconData() && e2.icon.opacityVertexBuffer && e2.icon.opacityVertexBuffer.updateData(e2.icon.opacityVertexArray), e2.hasIconCollisionBoxData() && e2.iconCollisionBox.collisionVertexBuffer && e2.iconCollisionBox.collisionVertexBuffer.updateData(e2.iconCollisionBox.collisionVertexArray), e2.hasTextCollisionBoxData() && e2.textCollisionBox.collisionVertexBuffer && e2.textCollisionBox.collisionVertexBuffer.updateData(e2.textCollisionBox.collisionVertexArray), e2.text.opacityVertexArray.length !== e2.text.layoutVertexArray.length / 4) - throw new Error(`bucket.text.opacityVertexArray.length (= ${e2.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${e2.text.layoutVertexArray.length}) / 4`); - if (e2.icon.opacityVertexArray.length !== e2.icon.layoutVertexArray.length / 4) - throw new Error(`bucket.icon.opacityVertexArray.length (= ${e2.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${e2.icon.layoutVertexArray.length}) / 4`); - if (e2.bucketInstanceId in this.collisionCircleArrays) { - const t2 = this.collisionCircleArrays[e2.bucketInstanceId]; - e2.placementInvProjMatrix = t2.invProjMatrix, e2.placementViewportMatrix = t2.viewportMatrix, e2.collisionCircleArray = t2.circles, delete this.collisionCircleArrays[e2.bucketInstanceId]; - } - } - symbolFadeChange(t2) { - return 0 === this.fadeDuration ? 1 : (t2 - this.commitTime) / this.fadeDuration + this.prevZoomAdjustment; - } - zoomAdjustment(t2) { - return Math.max(0, (this.transform.zoom - t2) / 1.5); - } - hasTransitions(t2) { - return this.stale || t2 - this.lastPlacementChangeTime < this.fadeDuration; - } - stillRecent(t2, e2) { - const i2 = this.zoomAtLastRecencyCheck === e2 ? 1 - this.zoomAdjustment(e2) : 1; - return this.zoomAtLastRecencyCheck = e2, this.commitTime + this.fadeDuration * i2 > t2; - } - setStale() { - this.stale = true; - } - } - function Mt(t2, e2, i2, o2, a2) { - t2.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, o2 || 0, a2 || 0), t2.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, o2 || 0, a2 || 0), t2.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, o2 || 0, a2 || 0), t2.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, o2 || 0, a2 || 0); - } - const At = Math.pow(2, 25), Lt = Math.pow(2, 24), Rt = Math.pow(2, 17), kt = Math.pow(2, 16), Bt = Math.pow(2, 9), Ft = Math.pow(2, 8), Ot = Math.pow(2, 1); - function Ut(t2) { + }, m2 = 0; m2 < e2.symbolInstances.length; m2++) + f2(m2); + if (e2.sortFeatures(this.transform.angle), this.retainedQueryData[e2.bucketInstanceId] && (this.retainedQueryData[e2.bucketInstanceId].featureSortOrder = e2.featureSortOrder), e2.hasTextData() && e2.text.opacityVertexBuffer && e2.text.opacityVertexBuffer.updateData(e2.text.opacityVertexArray), e2.hasIconData() && e2.icon.opacityVertexBuffer && e2.icon.opacityVertexBuffer.updateData(e2.icon.opacityVertexArray), e2.hasIconCollisionBoxData() && e2.iconCollisionBox.collisionVertexBuffer && e2.iconCollisionBox.collisionVertexBuffer.updateData(e2.iconCollisionBox.collisionVertexArray), e2.hasTextCollisionBoxData() && e2.textCollisionBox.collisionVertexBuffer && e2.textCollisionBox.collisionVertexBuffer.updateData(e2.textCollisionBox.collisionVertexArray), e2.bucketInstanceId in this.collisionCircleArrays) { + var g2 = this.collisionCircleArrays[e2.bucketInstanceId]; + e2.placementInvProjMatrix = g2.invProjMatrix, e2.placementViewportMatrix = g2.viewportMatrix, e2.collisionCircleArray = g2.circles, delete this.collisionCircleArrays[e2.bucketInstanceId]; + } + }, be.prototype.symbolFadeChange = function(t2) { + return 0 === this.fadeDuration ? 1 : (t2 - this.commitTime) / this.fadeDuration + this.prevZoomAdjustment; + }, be.prototype.zoomAdjustment = function(t2) { + return Math.max(0, (this.transform.zoom - t2) / 1.5); + }, be.prototype.hasTransitions = function(t2) { + return this.stale || t2 - this.lastPlacementChangeTime < this.fadeDuration; + }, be.prototype.stillRecent = function(t2, e2) { + var i2 = this.zoomAtLastRecencyCheck === e2 ? 1 - this.zoomAdjustment(e2) : 1; + return this.zoomAtLastRecencyCheck = e2, this.commitTime + this.fadeDuration * i2 > t2; + }, be.prototype.setStale = function() { + this.stale = true; + }; + var Te = Math.pow(2, 25), Ee = Math.pow(2, 24), Ie = Math.pow(2, 17), Pe = Math.pow(2, 16), Se = Math.pow(2, 9), Ce = Math.pow(2, 8), ze = Math.pow(2, 1); + function De(t2) { if (0 === t2.opacity && !t2.placed) return 0; if (1 === t2.opacity && t2.placed) return 4294967295; - const e2 = t2.placed ? 1 : 0, i2 = Math.floor(127 * t2.opacity); - return i2 * At + e2 * Lt + i2 * Rt + e2 * kt + i2 * Bt + e2 * Ft + i2 * Ot + e2; - } - const Nt = 0; - class Gt { - constructor(t2) { - this._sortAcrossTiles = "viewport-y" !== t2.layout.get("symbol-z-order") && !t2.layout.get("symbol-sort-key").isConstant(), this._currentTileIndex = 0, this._currentPartIndex = 0, this._seenCrossTileIDs = {}, this._bucketParts = []; - } - continuePlacement(t2, e2, i2, o2, a2) { - const r2 = this._bucketParts; - for (; this._currentTileIndex < t2.length; ) - if (e2.getBucketParts(r2, o2, t2[this._currentTileIndex], this._sortAcrossTiles), this._currentTileIndex++, a2()) - return true; - for (this._sortAcrossTiles && (this._sortAcrossTiles = false, r2.sort((t3, e3) => t3.sortKey - e3.sortKey)); this._currentPartIndex < r2.length; ) - if (e2.placeLayerBucketPart(r2[this._currentPartIndex], this._seenCrossTileIDs, i2), this._currentPartIndex++, a2()) - return true; - return false; - } - } - class Zt { - constructor(t2, e2, i2, o2, a2, r2, s2, n2) { - this.placement = new Pt(t2, e2, r2, s2, n2), this._currentPlacementIndex = i2.length - 1, this._forceFullPlacement = o2, this._showCollisionBoxes = a2, this._done = false; - } - isDone() { - return this._done; - } - continuePlacement(e2, i2, o2) { - const a2 = t.exported.now(), r2 = () => { - const e3 = t.exported.now() - a2; - return !this._forceFullPlacement && e3 > 2; - }; - for (; this._currentPlacementIndex >= 0; ) { - const t2 = i2[e2[this._currentPlacementIndex]], a3 = this.placement.collisionIndex.transform.zoom; - if ("symbol" === t2.type && (!t2.minzoom || t2.minzoom <= a3) && (!t2.maxzoom || t2.maxzoom > a3)) { - if (this._inProgressLayer || (this._inProgressLayer = new Gt(t2)), this._inProgressLayer.continuePlacement(o2[t2.source], this.placement, this._showCollisionBoxes, t2, r2)) - return; - delete this._inProgressLayer; - } - this._currentPlacementIndex--; - } - this._done = true; - } - commit(t2) { - return this.placement.commit(t2), this.placement; - } + var e2 = t2.placed ? 1 : 0, i2 = Math.floor(127 * t2.opacity); + return i2 * Te + e2 * Ee + i2 * Ie + e2 * Pe + i2 * Se + e2 * Ce + i2 * ze + e2; } - const Vt = 512 / t.EXTENT / 2; - class qt { - constructor(t2, e2, i2) { - this.tileID = t2, this.indexedSymbolInstances = {}, this.bucketInstanceId = i2; - for (let i3 = 0; i3 < e2.length; i3++) { - const o2 = e2.get(i3), a2 = o2.key; - this.indexedSymbolInstances[a2] || (this.indexedSymbolInstances[a2] = []), this.indexedSymbolInstances[a2].push({ crossTileID: o2.crossTileID, coord: this.getScaledCoordinates(o2, t2) }); + var Ae = 0, Me = function(t2) { + this._sortAcrossTiles = "viewport-y" !== t2.layout.get("symbol-z-order") && void 0 !== t2.layout.get("symbol-sort-key").constantOr(1), this._currentTileIndex = 0, this._currentPartIndex = 0, this._seenCrossTileIDs = {}, this._bucketParts = []; + }; + Me.prototype.continuePlacement = function(t2, e2, i2, o2, r2) { + for (var a2 = this._bucketParts; this._currentTileIndex < t2.length; ) + if (e2.getBucketParts(a2, o2, t2[this._currentTileIndex], this._sortAcrossTiles), this._currentTileIndex++, r2()) + return true; + for (this._sortAcrossTiles && (this._sortAcrossTiles = false, a2.sort(function(t3, e3) { + return t3.sortKey - e3.sortKey; + })); this._currentPartIndex < a2.length; ) + if (e2.placeLayerBucketPart(a2[this._currentPartIndex], this._seenCrossTileIDs, i2), this._currentPartIndex++, r2()) + return true; + return false; + }; + var Le = function(t2, e2, i2, o2, r2, a2, n2) { + this.placement = new be(t2, r2, a2, n2), this._currentPlacementIndex = e2.length - 1, this._forceFullPlacement = i2, this._showCollisionBoxes = o2, this._done = false; + }; + Le.prototype.isDone = function() { + return this._done; + }, Le.prototype.continuePlacement = function(e2, i2, o2) { + for (var r2 = this, a2 = t.browser.now(), n2 = function() { + var e3 = t.browser.now() - a2; + return !r2._forceFullPlacement && e3 > 2; + }; this._currentPlacementIndex >= 0; ) { + var s2 = i2[e2[this._currentPlacementIndex]], l2 = this.placement.collisionIndex.transform.zoom; + if ("symbol" === s2.type && (!s2.minzoom || s2.minzoom <= l2) && (!s2.maxzoom || s2.maxzoom > l2)) { + if (this._inProgressLayer || (this._inProgressLayer = new Me(s2)), this._inProgressLayer.continuePlacement(o2[s2.source], this.placement, this._showCollisionBoxes, s2, n2)) + return; + delete this._inProgressLayer; } + this._currentPlacementIndex--; } - getScaledCoordinates(e2, i2) { - const o2 = Vt / Math.pow(2, i2.canonical.z - this.tileID.canonical.z); - return { x: Math.floor((i2.canonical.x * t.EXTENT + e2.anchorX) * o2), y: Math.floor((i2.canonical.y * t.EXTENT + e2.anchorY) * o2) }; + this._done = true; + }, Le.prototype.commit = function(t2) { + return this.placement.commit(t2), this.placement; + }; + var Re = 512 / t.EXTENT / 2, ke = function(t2, e2, i2) { + this.tileID = t2, this.indexedSymbolInstances = {}, this.bucketInstanceId = i2; + for (var o2 = 0; o2 < e2.length; o2++) { + var r2 = e2.get(o2), a2 = r2.key; + this.indexedSymbolInstances[a2] || (this.indexedSymbolInstances[a2] = []), this.indexedSymbolInstances[a2].push({ crossTileID: r2.crossTileID, coord: this.getScaledCoordinates(r2, t2) }); } - findMatches(t2, e2, i2) { - const o2 = this.tileID.canonical.z < e2.canonical.z ? 1 : Math.pow(2, this.tileID.canonical.z - e2.canonical.z); - for (let a2 = 0; a2 < t2.length; a2++) { - const r2 = t2.get(a2); - if (r2.crossTileID) - continue; - const s2 = this.indexedSymbolInstances[r2.key]; - if (!s2) - continue; - const n2 = this.getScaledCoordinates(r2, e2); - for (const t3 of s2) - if (Math.abs(t3.coord.x - n2.x) <= o2 && Math.abs(t3.coord.y - n2.y) <= o2 && !i2[t3.crossTileID]) { - i2[t3.crossTileID] = true, r2.crossTileID = t3.crossTileID; - break; + }; + ke.prototype.getScaledCoordinates = function(e2, i2) { + var o2 = Re / Math.pow(2, i2.canonical.z - this.tileID.canonical.z); + return { x: Math.floor((i2.canonical.x * t.EXTENT + e2.anchorX) * o2), y: Math.floor((i2.canonical.y * t.EXTENT + e2.anchorY) * o2) }; + }, ke.prototype.findMatches = function(t2, e2, i2) { + for (var o2 = this.tileID.canonical.z < e2.canonical.z ? 1 : Math.pow(2, this.tileID.canonical.z - e2.canonical.z), r2 = 0; r2 < t2.length; r2++) { + var a2 = t2.get(r2); + if (!a2.crossTileID) { + var n2 = this.indexedSymbolInstances[a2.key]; + if (n2) + for (var s2 = this.getScaledCoordinates(a2, e2), l2 = 0, c3 = n2; l2 < c3.length; l2 += 1) { + var u2 = c3[l2]; + if (Math.abs(u2.coord.x - s2.x) <= o2 && Math.abs(u2.coord.y - s2.y) <= o2 && !i2[u2.crossTileID]) { + i2[u2.crossTileID] = true, a2.crossTileID = u2.crossTileID; + break; + } } } } - } - class jt { - constructor() { - this.maxCrossTileID = 0; - } - generate() { - return ++this.maxCrossTileID; - } - } - class $t { - constructor() { - this.indexes = {}, this.usedCrossTileIDs = {}, this.lng = 0; - } - handleWrapJump(t2) { - const e2 = Math.round((t2 - this.lng) / 360); - if (0 !== e2) - for (const t3 in this.indexes) { - const i2 = this.indexes[t3], o2 = {}; - for (const t4 in i2) { - const a2 = i2[t4]; - a2.tileID = a2.tileID.unwrapTo(a2.tileID.wrap + e2), o2[a2.tileID.key] = a2; - } - this.indexes[t3] = o2; - } - this.lng = t2; - } - addBucket(t2, e2, i2) { - if (this.indexes[t2.overscaledZ] && this.indexes[t2.overscaledZ][t2.key]) { - if (this.indexes[t2.overscaledZ][t2.key].bucketInstanceId === e2.bucketInstanceId) - return false; - this.removeBucketCrossTileIDs(t2.overscaledZ, this.indexes[t2.overscaledZ][t2.key]); - } - for (let t3 = 0; t3 < e2.symbolInstances.length; t3++) - e2.symbolInstances.get(t3).crossTileID = 0; - this.usedCrossTileIDs[t2.overscaledZ] || (this.usedCrossTileIDs[t2.overscaledZ] = {}); - const o2 = this.usedCrossTileIDs[t2.overscaledZ]; - for (const i3 in this.indexes) { - const a2 = this.indexes[i3]; - if (Number(i3) > t2.overscaledZ) - for (const i4 in a2) { - const r2 = a2[i4]; - r2.tileID.isChildOf(t2) && r2.findMatches(e2.symbolInstances, t2, o2); - } - else { - const r2 = a2[t2.scaledTo(Number(i3)).key]; - r2 && r2.findMatches(e2.symbolInstances, t2, o2); + }; + var Be = function() { + this.maxCrossTileID = 0; + }; + Be.prototype.generate = function() { + return ++this.maxCrossTileID; + }; + var Oe = function() { + this.indexes = {}, this.usedCrossTileIDs = {}, this.lng = 0; + }; + Oe.prototype.handleWrapJump = function(t2) { + var e2 = Math.round((t2 - this.lng) / 360); + if (0 !== e2) + for (var i2 in this.indexes) { + var o2 = this.indexes[i2], r2 = {}; + for (var a2 in o2) { + var n2 = o2[a2]; + n2.tileID = n2.tileID.unwrapTo(n2.tileID.wrap + e2), r2[n2.tileID.key] = n2; } + this.indexes[i2] = r2; } - for (let t3 = 0; t3 < e2.symbolInstances.length; t3++) { - const a2 = e2.symbolInstances.get(t3); - a2.crossTileID || (a2.crossTileID = i2.generate(), o2[a2.crossTileID] = true); - } - return void 0 === this.indexes[t2.overscaledZ] && (this.indexes[t2.overscaledZ] = {}), this.indexes[t2.overscaledZ][t2.key] = new qt(t2, e2.symbolInstances, e2.bucketInstanceId), true; - } - removeBucketCrossTileIDs(t2, e2) { - for (const i2 in e2.indexedSymbolInstances) - for (const o2 of e2.indexedSymbolInstances[i2]) - delete this.usedCrossTileIDs[t2][o2.crossTileID]; - } - removeStaleBuckets(t2) { - let e2 = false; - for (const i2 in this.indexes) { - const o2 = this.indexes[i2]; - for (const a2 in o2) - t2[o2[a2].bucketInstanceId] || (this.removeBucketCrossTileIDs(i2, o2[a2]), delete o2[a2], e2 = true); - } - return e2; - } - } - class Xt { - constructor() { - this.layerIndexes = {}, this.crossTileIDs = new jt(), this.maxBucketInstanceId = 0, this.bucketsInCurrentPlacement = {}; - } - addLayer(t2, e2, i2) { - let o2 = this.layerIndexes[t2.id]; - void 0 === o2 && (o2 = this.layerIndexes[t2.id] = new $t()); - let a2 = false; - const r2 = {}; - o2.handleWrapJump(i2); - for (const i3 of e2) { - const e3 = i3.getBucket(t2); - e3 && t2.id === e3.layerIds[0] && (e3.bucketInstanceId || (e3.bucketInstanceId = ++this.maxBucketInstanceId), o2.addBucket(i3.tileID, e3, this.crossTileIDs) && (a2 = true), r2[e3.bucketInstanceId] = true); - } - return o2.removeStaleBuckets(r2) && (a2 = true), a2; - } - pruneUnusedLayers(t2) { - const e2 = {}; - t2.forEach((t3) => { - e2[t3] = true; - }); - for (const t3 in this.layerIndexes) - e2[t3] || delete this.layerIndexes[t3]; - } - } - var Wt = t.createLayout([{ name: "a_pos", type: "Int16", components: 2 }]); - class Ht extends t.Evented { - constructor(t2) { - super(), this.sourceCache = t2, this._tiles = {}, this._renderableTilesKeys = [], this._sourceTileCache = {}, this.renderHistory = [], this.minzoom = 0, this.maxzoom = 22, this.tileSize = 512, this.deltaZoom = 1, this.renderHistorySize = t2._cache.max, t2.usedForTerrain = true, t2.tileSize = this.tileSize * 2 ** this.deltaZoom; - } - destruct() { - this.sourceCache.usedForTerrain = false, this.sourceCache.tileSize = null; - for (const t2 in this._tiles) { - const e2 = this._tiles[t2]; - e2.textures.forEach((t3) => t3.destroy()), e2.textures = []; - } - } - update(e2, i2) { - this.sourceCache.update(e2, i2), this._renderableTilesKeys = []; - for (const o2 of e2.coveringTiles({ tileSize: this.tileSize, minzoom: this.minzoom, maxzoom: this.maxzoom, reparseOverscaled: false, terrain: i2 })) - this._renderableTilesKeys.push(o2.key), this._tiles[o2.key] || (o2.posMatrix = new Float64Array(16), t.ortho(o2.posMatrix, 0, t.EXTENT, 0, t.EXTENT, 0, 1), this._tiles[o2.key] = new k(o2, this.tileSize)); - } - removeOutdated(t2) { - const e2 = {}; - this.renderHistory = this.renderHistory.filter((t3, e3) => this.renderHistory.indexOf(t3) === e3).slice(0, this.renderHistorySize); - for (const t3 of this._renderableTilesKeys) - e2[t3] = true; - for (const t3 of this.renderHistory) - e2[t3] = true; - for (const i2 in this._tiles) - e2[i2] || (this._tiles[i2].clearTextures(t2), delete this._tiles[i2]); - } - getRenderableTiles() { - return this._renderableTilesKeys.map((t2) => this.getTileByID(t2)); - } - getTileByID(t2) { - return this._tiles[t2]; - } - getTerrainCoords(e2) { - const i2 = {}; - for (const o2 of this._renderableTilesKeys) { - const a2 = this._tiles[o2].tileID; - if (a2.canonical.equals(e2.canonical)) { - const a3 = e2.clone(); - a3.posMatrix = new Float64Array(16), t.ortho(a3.posMatrix, 0, t.EXTENT, 0, t.EXTENT, 0, 1), i2[o2] = a3; - } else if (a2.canonical.isChildOf(e2.canonical)) { - const r2 = e2.clone(); - r2.posMatrix = new Float64Array(16); - const s2 = a2.canonical.z - e2.canonical.z, n2 = a2.canonical.x - (a2.canonical.x >> s2 << s2), l2 = a2.canonical.y - (a2.canonical.y >> s2 << s2), c3 = t.EXTENT >> s2; - t.ortho(r2.posMatrix, 0, c3, 0, c3, 0, 1), t.translate(r2.posMatrix, r2.posMatrix, [-n2 * c3, -l2 * c3, 0]), i2[o2] = r2; - } else if (e2.canonical.isChildOf(a2.canonical)) { - const r2 = e2.clone(); - r2.posMatrix = new Float64Array(16); - const s2 = e2.canonical.z - a2.canonical.z, n2 = e2.canonical.x - (e2.canonical.x >> s2 << s2), l2 = e2.canonical.y - (e2.canonical.y >> s2 << s2), c3 = t.EXTENT >> s2; - t.ortho(r2.posMatrix, 0, t.EXTENT, 0, t.EXTENT, 0, 1), t.translate(r2.posMatrix, r2.posMatrix, [n2 * c3, l2 * c3, 0]), t.scale(r2.posMatrix, r2.posMatrix, [1 / 2 ** s2, 1 / 2 ** s2, 0]), i2[o2] = r2; + this.lng = t2; + }, Oe.prototype.addBucket = function(t2, e2, i2) { + if (this.indexes[t2.overscaledZ] && this.indexes[t2.overscaledZ][t2.key]) { + if (this.indexes[t2.overscaledZ][t2.key].bucketInstanceId === e2.bucketInstanceId) + return false; + this.removeBucketCrossTileIDs(t2.overscaledZ, this.indexes[t2.overscaledZ][t2.key]); + } + for (var o2 = 0; o2 < e2.symbolInstances.length; o2++) + e2.symbolInstances.get(o2).crossTileID = 0; + this.usedCrossTileIDs[t2.overscaledZ] || (this.usedCrossTileIDs[t2.overscaledZ] = {}); + var r2 = this.usedCrossTileIDs[t2.overscaledZ]; + for (var a2 in this.indexes) { + var n2 = this.indexes[a2]; + if (Number(a2) > t2.overscaledZ) + for (var s2 in n2) { + var l2 = n2[s2]; + l2.tileID.isChildOf(t2) && l2.findMatches(e2.symbolInstances, t2, r2); } - } - return i2; - } - getSourceTile(t2, e2) { - const i2 = this.sourceCache._source; - let o2 = t2.overscaledZ - this.deltaZoom; - if (o2 > i2.maxzoom && (o2 = i2.maxzoom), o2 < i2.minzoom) - return null; - this._sourceTileCache[t2.key] || (this._sourceTileCache[t2.key] = t2.scaledTo(o2).key); - let a2 = this.sourceCache.getTileByID(this._sourceTileCache[t2.key]); - if ((!a2 || !a2.dem) && e2) - for (; o2 >= i2.minzoom && (!a2 || !a2.dem); ) - a2 = this.sourceCache.getTileByID(t2.scaledTo(o2--).key); - return a2; - } - tilesAfterTime(t2 = Date.now()) { - return Object.values(this._tiles).filter((e2) => e2.timeLoaded >= t2); - } - } - class Kt { - constructor(t2, e2, i2) { - this.style = t2, this.sourceCache = new Ht(e2), this.options = i2, this.exaggeration = "number" == typeof i2.exaggeration ? i2.exaggeration : 1, this.elevationOffset = "number" == typeof i2.elevationOffset ? i2.elevationOffset : 450, this.qualityFactor = 2, this.meshSize = 128, this._demMatrixCache = {}, this.coordsIndex = [], this._coordsTextureSize = 1024, this.clearRerenderCache(); - } - getDEMElevation(e2, i2, o2, a2 = t.EXTENT) { - if (!(i2 >= 0 && i2 < a2 && o2 >= 0 && o2 < a2)) - return this.elevationOffset; - let r2 = 0; - const s2 = this.getTerrainData(e2); - if (s2.tile && s2.tile.dem) { - const e3 = t.transformMat4$1([], [i2 / a2 * t.EXTENT, o2 / a2 * t.EXTENT], s2.u_terrain_matrix), n2 = [e3[0] * s2.tile.dem.dim, e3[1] * s2.tile.dem.dim], l2 = [Math.floor(n2[0]), Math.floor(n2[1])], c3 = s2.tile.dem.get(l2[0], l2[1]), h3 = s2.tile.dem.get(l2[0], l2[1] + 1), u2 = s2.tile.dem.get(l2[0] + 1, l2[1]), d2 = s2.tile.dem.get(l2[0] + 1, l2[1] + 1); - r2 = t.number(t.number(c3, h3, n2[0] - l2[0]), t.number(u2, d2, n2[0] - l2[0]), n2[1] - l2[1]); - } - return r2; + else { + var c3 = n2[t2.scaledTo(Number(a2)).key]; + c3 && c3.findMatches(e2.symbolInstances, t2, r2); + } + } + for (var u2 = 0; u2 < e2.symbolInstances.length; u2++) { + var h3 = e2.symbolInstances.get(u2); + h3.crossTileID || (h3.crossTileID = i2.generate(), r2[h3.crossTileID] = true); + } + return void 0 === this.indexes[t2.overscaledZ] && (this.indexes[t2.overscaledZ] = {}), this.indexes[t2.overscaledZ][t2.key] = new ke(t2, e2.symbolInstances, e2.bucketInstanceId), true; + }, Oe.prototype.removeBucketCrossTileIDs = function(t2, e2) { + for (var i2 in e2.indexedSymbolInstances) + for (var o2 = 0, r2 = e2.indexedSymbolInstances[i2]; o2 < r2.length; o2 += 1) + delete this.usedCrossTileIDs[t2][r2[o2].crossTileID]; + }, Oe.prototype.removeStaleBuckets = function(t2) { + var e2 = false; + for (var i2 in this.indexes) { + var o2 = this.indexes[i2]; + for (var r2 in o2) + t2[o2[r2].bucketInstanceId] || (this.removeBucketCrossTileIDs(i2, o2[r2]), delete o2[r2], e2 = true); } - rememberForRerender(t2, e2) { - for (const i2 in this.sourceCache._tiles) { - const o2 = this.sourceCache._tiles[i2]; - (o2.tileID.equals(e2) || o2.tileID.isChildOf(e2)) && (t2 === this.sourceCache.sourceCache.id && (o2.timeLoaded = Date.now()), this._rerender[t2] = this._rerender[t2] || {}, this._rerender[t2][o2.tileID.key] = true); - } - } - needsRerender(t2, e2) { - return this._rerender[t2] && this._rerender[t2][e2.key]; - } - clearRerenderCache() { - this._rerender = {}; - } - getElevation(e2, i2, o2, a2 = t.EXTENT) { - return (this.getDEMElevation(e2, i2, o2, a2) + this.elevationOffset) * this.exaggeration; - } - getTerrainData(e2) { - if (!this._emptyDemTexture) { - const e3 = this.style.map.painter.context, i3 = new t.RGBAImage({ width: 1, height: 1 }, new Uint8Array(4)); - this._emptyDepthTexture = new l(e3, i3, e3.gl.RGBA, { premultiply: false }), this._emptyDemUnpack = [0, 0, 0, 0], this._emptyDemTexture = new l(e3, new t.RGBAImage({ width: 1, height: 1 }), e3.gl.RGBA, { premultiply: false }), this._emptyDemTexture.bind(e3.gl.NEAREST, e3.gl.CLAMP_TO_EDGE), this._emptyDemMatrix = t.identity([]); - } - const i2 = this.sourceCache.getSourceTile(e2, true); - if (i2 && i2.dem && (!i2.demTexture || i2.needsTerrainPrepare)) { - const t2 = this.style.map.painter.context; - i2.demTexture = this.style.map.painter.getTileTexture(i2.dem.stride), i2.demTexture ? i2.demTexture.update(i2.dem.getPixels(), { premultiply: false }) : i2.demTexture = new l(t2, i2.dem.getPixels(), t2.gl.RGBA, { premultiply: false }), i2.demTexture.bind(t2.gl.NEAREST, t2.gl.CLAMP_TO_EDGE), i2.needsTerrainPrepare = false; - } - const o2 = i2 && i2 + i2.tileID.key + e2.key; - if (o2 && !this._demMatrixCache[o2]) { - const o3 = this.sourceCache.sourceCache._source.maxzoom; - let a2 = e2.canonical.z - i2.tileID.canonical.z; - e2.overscaledZ > e2.canonical.z && (e2.canonical.z >= o3 ? a2 = e2.canonical.z - o3 : t.warnOnce("cannot calculate elevation if elevation maxzoom > source.maxzoom")); - const r2 = e2.canonical.x - (e2.canonical.x >> a2 << a2), s2 = e2.canonical.y - (e2.canonical.y >> a2 << a2), n2 = t.fromScaling(new Float64Array(16), [1 / (t.EXTENT << a2), 1 / (t.EXTENT << a2), 0]); - t.translate(n2, n2, [r2 * t.EXTENT, s2 * t.EXTENT, 0]), this._demMatrixCache[e2.key] = { matrix: n2, coord: e2 }; - } - return { u_depth: 2, u_terrain: 3, u_terrain_dim: i2 && i2.dem && i2.dem.dim || 1, u_terrain_matrix: o2 ? this._demMatrixCache[e2.key].matrix : this._emptyDemMatrix, u_terrain_unpack: i2 && i2.dem && i2.dem.getUnpackVector() || this._emptyDemUnpack, u_terrain_offset: this.elevationOffset, u_terrain_exaggeration: this.exaggeration, texture: (i2 && i2.demTexture || this._emptyDemTexture).texture, depthTexture: (this._fboDepthTexture || this._emptyDepthTexture).texture, tile: i2 }; - } - getRTTFramebuffer() { - const t2 = this.style.map.painter; - if (!this._rttFramebuffer) { - const e2 = this.sourceCache.tileSize * this.qualityFactor; - this._rttFramebuffer = t2.context.createFramebuffer(e2, e2, true), this._rttFramebuffer.depthAttachment.set(t2.context.createRenderbuffer(t2.context.gl.DEPTH_COMPONENT16, e2, e2)); - } - return this._rttFramebuffer; - } - getFramebuffer(t2) { - const e2 = this.style.map.painter, i2 = e2.width / devicePixelRatio, o2 = e2.height / devicePixelRatio; - return !this._fbo || this._fbo.width === i2 && this._fbo.height === o2 || (this._fbo.destroy(), this._fboCoordsTexture.destroy(), this._fboDepthTexture.destroy(), delete this._fbo, delete this._fboDepthTexture, delete this._fboCoordsTexture), this._fboCoordsTexture || (this._fboCoordsTexture = new l(e2.context, { width: i2, height: o2, data: null }, e2.context.gl.RGBA, { premultiply: false }), this._fboCoordsTexture.bind(e2.context.gl.NEAREST, e2.context.gl.CLAMP_TO_EDGE)), this._fboDepthTexture || (this._fboDepthTexture = new l(e2.context, { width: i2, height: o2, data: null }, e2.context.gl.RGBA, { premultiply: false }), this._fboDepthTexture.bind(e2.context.gl.NEAREST, e2.context.gl.CLAMP_TO_EDGE)), this._fbo || (this._fbo = e2.context.createFramebuffer(i2, o2, true), this._fbo.depthAttachment.set(e2.context.createRenderbuffer(e2.context.gl.DEPTH_COMPONENT16, i2, o2))), this._fbo.colorAttachment.set("coords" === t2 ? this._fboCoordsTexture.texture : this._fboDepthTexture.texture), this._fbo; - } - getCoordsTexture() { - const e2 = this.style.map.painter.context; - if (this._coordsTexture) - return this._coordsTexture; - const i2 = new Uint8Array(this._coordsTextureSize * this._coordsTextureSize * 4); - for (let t2 = 0, e3 = 0; t2 < this._coordsTextureSize; t2++) - for (let o3 = 0; o3 < this._coordsTextureSize; o3++, e3 += 4) - i2[e3 + 0] = 255 & o3, i2[e3 + 1] = 255 & t2, i2[e3 + 2] = o3 >> 8 << 4 | t2 >> 8, i2[e3 + 3] = 0; - const o2 = new t.RGBAImage({ width: this._coordsTextureSize, height: this._coordsTextureSize }, new Uint8Array(i2.buffer)), a2 = new l(e2, o2, e2.gl.RGBA, { premultiply: false }); - return a2.bind(e2.gl.NEAREST, e2.gl.CLAMP_TO_EDGE), this._coordsTexture = a2, a2; - } - pointCoordinate(e2) { - const i2 = new Uint8Array(4), o2 = this.style.map.painter, a2 = o2.context, r2 = a2.gl; - a2.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer), r2.readPixels(e2.x, o2.height / devicePixelRatio - e2.y - 1, 1, 1, r2.RGBA, r2.UNSIGNED_BYTE, i2), a2.bindFramebuffer.set(null); - const s2 = i2[0] + (i2[2] >> 4 << 8), n2 = i2[1] + ((15 & i2[2]) << 8), l2 = this.coordsIndex[255 - i2[3]], c3 = l2 && this.sourceCache.getTileByID(l2); - if (!c3) - return null; - const h3 = this._coordsTextureSize, u2 = (1 << c3.tileID.canonical.z) * h3; - return new t.MercatorCoordinate((c3.tileID.canonical.x * h3 + s2) / u2, (c3.tileID.canonical.y * h3 + n2) / u2, this.getElevation(c3.tileID, s2, n2, h3)); - } - getTerrainMesh() { - if (this._mesh) - return this._mesh; - const e2 = this.style.map.painter.context, i2 = new t.PosArray(), o2 = new t.TriangleIndexArray(), a2 = this.meshSize, r2 = t.EXTENT / a2, s2 = a2 * a2; - for (let t2 = 0; t2 <= a2; t2++) - for (let e3 = 0; e3 <= a2; e3++) - i2.emplaceBack(e3 * r2, t2 * r2); - for (let t2 = 0; t2 < s2; t2 += a2 + 1) - for (let e3 = 0; e3 < a2; e3++) - o2.emplaceBack(e3 + t2, a2 + e3 + t2 + 1, a2 + e3 + t2 + 2), o2.emplaceBack(e3 + t2, a2 + e3 + t2 + 2, e3 + t2 + 1); - return this._mesh = { indexBuffer: e2.createIndexBuffer(o2), vertexBuffer: e2.createVertexBuffer(i2, Wt.members), segments: t.SegmentVector.simpleSegment(0, 0, i2.length, o2.length) }, this._mesh; - } - getMinMaxElevation(t2) { - const e2 = this.getTerrainData(t2).tile, i2 = { minElevation: null, maxElevation: null }; - return e2 && e2.dem && (i2.minElevation = (e2.dem.min + this.elevationOffset) * this.exaggeration, i2.maxElevation = (e2.dem.max + this.elevationOffset) * this.exaggeration), i2; - } - } - const Yt = (e2, i2) => t.emitValidationErrors(e2, i2 && i2.filter((t2) => "source.canvas" !== t2.identifier)), Jt = t.pick(W, ["addLayer", "removeLayer", "setPaintProperty", "setLayoutProperty", "setFilter", "addSource", "removeSource", "setLayerZoomRange", "setLight", "setTransition", "setGeoJSONSourceData"]), Qt = t.pick(W, ["setCenter", "setZoom", "setBearing", "setPitch"]), te = function() { - const e2 = {}, i2 = t.spec.$version; - for (const o2 in t.spec.$root) { - const a2 = t.spec.$root[o2]; - if (a2.required) { - let t2 = null; - t2 = "version" === o2 ? i2 : "array" === a2.type ? [] : {}, null != t2 && (e2[o2] = t2); - } + return e2; + }; + var Fe = function() { + this.layerIndexes = {}, this.crossTileIDs = new Be(), this.maxBucketInstanceId = 0, this.bucketsInCurrentPlacement = {}; + }; + Fe.prototype.addLayer = function(t2, e2, i2) { + var o2 = this.layerIndexes[t2.id]; + void 0 === o2 && (o2 = this.layerIndexes[t2.id] = new Oe()); + var r2 = false, a2 = {}; + o2.handleWrapJump(i2); + for (var n2 = 0, s2 = e2; n2 < s2.length; n2 += 1) { + var l2 = s2[n2], c3 = l2.getBucket(t2); + c3 && t2.id === c3.layerIds[0] && (c3.bucketInstanceId || (c3.bucketInstanceId = ++this.maxBucketInstanceId), o2.addBucket(l2.tileID, c3, this.crossTileIDs) && (r2 = true), a2[c3.bucketInstanceId] = true); + } + return o2.removeStaleBuckets(a2) && (r2 = true), r2; + }, Fe.prototype.pruneUnusedLayers = function(t2) { + var e2 = {}; + for (var i2 in t2.forEach(function(t3) { + e2[t3] = true; + }), this.layerIndexes) + e2[i2] || delete this.layerIndexes[i2]; + }; + var Ue = function(e2, i2) { + return t.emitValidationErrors(e2, i2 && i2.filter(function(t2) { + return "source.canvas" !== t2.identifier; + })); + }, Ne = t.pick(Zt, ["addLayer", "removeLayer", "setPaintProperty", "setLayoutProperty", "setFilter", "addSource", "removeSource", "setLayerZoomRange", "setLight", "setTransition", "setGeoJSONSourceData"]), Ze = t.pick(Zt, ["setCenter", "setZoom", "setBearing", "setPitch"]), qe = function() { + var e2 = {}, i2 = t.styleSpec.$version; + for (var o2 in t.styleSpec.$root) { + var r2, a2 = t.styleSpec.$root[o2]; + if (a2.required) + null != (r2 = "version" === o2 ? i2 : "array" === a2.type ? [] : {}) && (e2[o2] = r2); } return e2; - }(); - class ee extends t.Evented { - constructor(e2, i2 = {}) { - super(), this.map = e2, this.dispatcher = new v2(j(), this), this.imageManager = new h2(), this.imageManager.setEventedParent(this), this.glyphManager = new _(e2._requestManager, i2.localIdeographFontFamily), this.lineAtlas = new x(256, 512), this.crossTileSymbolIndex = new Xt(), this._layers = {}, this._serializedLayers = {}, this._order = [], this.sourceCaches = {}, this.zoomHistory = new t.ZoomHistory(), this._loaded = false, this._availableImages = [], this._resetUpdates(), this.dispatcher.broadcast("setReferrer", t.getReferrer()); - const o2 = this; - this._rtlTextPluginCallback = ee.registerForPluginStateChange((e3) => { - o2.dispatcher.broadcast("syncRTLPluginState", { pluginStatus: e3.pluginStatus, pluginURL: e3.pluginURL }, (e4, i3) => { - if (t.triggerPluginCompletionEvent(e4), i3 && i3.every((t2) => t2)) - for (const t2 in o2.sourceCaches) - o2.sourceCaches[t2].reload(); + }(), je = function(e2) { + function i2(o2, r2) { + var a2 = this; + void 0 === r2 && (r2 = {}), e2.call(this), this.map = o2, this.dispatcher = new E(Ft(), this), this.imageManager = new p2(), this.imageManager.setEventedParent(this), this.glyphManager = new y2(o2._requestManager, r2.localIdeographFontFamily), this.lineAtlas = new T(256, 512), this.crossTileSymbolIndex = new Fe(), this._layers = {}, this._serializedLayers = {}, this._order = [], this.sourceCaches = {}, this.zoomHistory = new t.ZoomHistory(), this._loaded = false, this._availableImages = [], this._resetUpdates(), this.dispatcher.broadcast("setReferrer", t.getReferrer()); + var n2 = this; + this._rtlTextPluginCallback = i2.registerForPluginStateChange(function(e3) { + n2.dispatcher.broadcast("syncRTLPluginState", { pluginStatus: e3.pluginStatus, pluginURL: e3.pluginURL }, function(e4, i3) { + if (t.triggerPluginCompletionEvent(e4), i3 && i3.every(function(t2) { + return t2; + })) + for (var o3 in n2.sourceCaches) + n2.sourceCaches[o3].reload(); }); - }), this.on("data", (t2) => { - if ("source" !== t2.dataType || "metadata" !== t2.sourceDataType) - return; - const e3 = this.sourceCaches[t2.sourceId]; - if (!e3) - return; - const i3 = e3.getSource(); - if (i3 && i3.vectorLayerIds) - for (const t3 in this._layers) { - const e4 = this._layers[t3]; - e4.source === i3.id && this._validateLayer(e4); + }), this.on("data", function(t2) { + if ("source" === t2.dataType && "metadata" === t2.sourceDataType) { + var e3 = a2.sourceCaches[t2.sourceId]; + if (e3) { + var i3 = e3.getSource(); + if (i3 && i3.vectorLayerIds) + for (var o3 in a2._layers) { + var r3 = a2._layers[o3]; + r3.source === i3.id && a2._validateLayer(r3); + } } + } }); } - loadURL(e2, i2 = {}) { - this.fire(new t.Event("dataloading", { dataType: "style" })); - const o2 = "boolean" != typeof i2.validate || i2.validate, a2 = this.map._requestManager.transformRequest(e2, t.ResourceType.Style); - this._request = t.getJSON(a2, (e3, i3) => { - this._request = null, e3 ? this.fire(new t.ErrorEvent(e3)) : i3 && this._load(i3, o2); + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.loadURL = function(e3, i3) { + var o2 = this; + void 0 === i3 && (i3 = {}), this.fire(new t.Event("dataloading", { dataType: "style" })); + var r2 = "boolean" == typeof i3.validate ? i3.validate : !t.isMapboxURL(e3); + e3 = this.map._requestManager.normalizeStyleURL(e3, i3.accessToken); + var a2 = this.map._requestManager.transformRequest(e3, t.ResourceType.Style); + this._request = t.getJSON(a2, function(e4, i4) { + o2._request = null, e4 ? o2.fire(new t.ErrorEvent(e4)) : i4 && o2._load(i4, r2); }); - } - loadJSON(e2, i2 = {}) { - this.fire(new t.Event("dataloading", { dataType: "style" })), this._request = t.exported.frame(() => { - this._request = null, this._load(e2, false !== i2.validate); + }, i2.prototype.loadJSON = function(e3, i3) { + var o2 = this; + void 0 === i3 && (i3 = {}), this.fire(new t.Event("dataloading", { dataType: "style" })), this._request = t.browser.frame(function() { + o2._request = null, o2._load(e3, false !== i3.validate); }); - } - loadEmpty() { - this.fire(new t.Event("dataloading", { dataType: "style" })), this._load(te, false); - } - _load(e2, i2) { - if (i2 && Yt(this, t.validateStyle(e2))) - return; - this._loaded = true, this.stylesheet = e2; - for (const t2 in e2.sources) - this.addSource(t2, e2.sources[t2], { validate: false }); - e2.sprite ? this._loadSprite(e2.sprite) : this.imageManager.setLoaded(true), this.glyphManager.setURL(e2.glyphs); - const o2 = X(this.stylesheet.layers); - this._order = o2.map((t2) => t2.id), this._layers = {}, this._serializedLayers = {}; - for (let e3 of o2) - e3 = t.createStyleLayer(e3), e3.setEventedParent(this, { layer: { id: e3.id } }), this._layers[e3.id] = e3, this._serializedLayers[e3.id] = e3.serialize(); - this.dispatcher.broadcast("setLayers", this._serializeLayers(this._order)), this.light = new g(this.stylesheet.light), this.setTerrain(this.stylesheet.terrain), this.fire(new t.Event("data", { dataType: "style" })), this.fire(new t.Event("style.load")); - } - _loadSprite(e2) { - this._spriteRequest = function(e3, i2, o2, a2) { - let r2, s2, n2; - const l2 = o2 > 1 ? "@2x" : ""; - let c3 = t.getJSON(i2.transformRequest(i2.normalizeSpriteURL(e3, l2, ".json"), t.ResourceType.SpriteJSON), (t2, e4) => { - c3 = null, n2 || (n2 = t2, r2 = e4, u2()); - }), h3 = t.getImage(i2.transformRequest(i2.normalizeSpriteURL(e3, l2, ".png"), t.ResourceType.SpriteImage), (t2, e4) => { - h3 = null, n2 || (n2 = t2, s2 = e4, u2()); + }, i2.prototype.loadEmpty = function() { + this.fire(new t.Event("dataloading", { dataType: "style" })), this._load(qe, false); + }, i2.prototype._load = function(e3, i3) { + if (!i3 || !Ue(this, t.validateStyle(e3))) { + for (var o2 in this._loaded = true, this.stylesheet = e3, e3.sources) + this.addSource(o2, e3.sources[o2], { validate: false }); + e3.sprite ? this._loadSprite(e3.sprite) : this.imageManager.setLoaded(true), this.glyphManager.setURL(e3.glyphs); + var r2 = Nt(this.stylesheet.layers); + this._order = r2.map(function(t2) { + return t2.id; + }), this._layers = {}, this._serializedLayers = {}; + for (var a2 = 0, n2 = r2; a2 < n2.length; a2 += 1) { + var s2 = n2[a2]; + (s2 = t.createStyleLayer(s2)).setEventedParent(this, { layer: { id: s2.id } }), this._layers[s2.id] = s2, this._serializedLayers[s2.id] = s2.serialize(); + } + this.dispatcher.broadcast("setLayers", this._serializeLayers(this._order)), this.light = new w(this.stylesheet.light), this.fire(new t.Event("data", { dataType: "style" })), this.fire(new t.Event("style.load")); + } + }, i2.prototype._loadSprite = function(e3) { + var i3 = this; + this._spriteRequest = function(e4, i4, o2) { + var r2, a2, n2, s2 = t.browser.devicePixelRatio > 1 ? "@2x" : "", l2 = t.getJSON(i4.transformRequest(i4.normalizeSpriteURL(e4, s2, ".json"), t.ResourceType.SpriteJSON), function(t2, e5) { + l2 = null, n2 || (n2 = t2, r2 = e5, u2()); + }), c3 = t.getImage(i4.transformRequest(i4.normalizeSpriteURL(e4, s2, ".png"), t.ResourceType.SpriteImage), function(t2, e5) { + c3 = null, n2 || (n2 = t2, a2 = e5, u2()); }); function u2() { if (n2) - a2(n2); - else if (r2 && s2) { - const e4 = t.exported.getImageData(s2), i3 = {}; - for (const o3 in r2) { - const { width: a3, height: s3, x: n3, y: l3, sdf: c4, pixelRatio: h4, stretchX: u3, stretchY: d2, content: m2 } = r2[o3], _2 = new t.RGBAImage({ width: a3, height: s3 }); - t.RGBAImage.copy(e4, _2, { x: n3, y: l3 }, { x: 0, y: 0 }, { width: a3, height: s3 }), i3[o3] = { data: _2, pixelRatio: h4, sdf: c4, stretchX: u3, stretchY: d2, content: m2 }; + o2(n2); + else if (r2 && a2) { + var e5 = t.browser.getImageData(a2), i5 = {}; + for (var s3 in r2) { + var l3 = r2[s3], c4 = l3.width, u3 = l3.height, h3 = l3.x, p3 = l3.y, d2 = l3.sdf, _2 = l3.pixelRatio, f2 = l3.stretchX, m2 = l3.stretchY, g2 = l3.content, v3 = new t.RGBAImage({ width: c4, height: u3 }); + t.RGBAImage.copy(e5, v3, { x: h3, y: p3 }, { x: 0, y: 0 }, { width: c4, height: u3 }), i5[s3] = { data: v3, pixelRatio: _2, sdf: d2, stretchX: f2, stretchY: m2, content: g2 }; } - a2(null, i3); + o2(null, i5); } } - return { cancel() { - c3 && (c3.cancel(), c3 = null), h3 && (h3.cancel(), h3 = null); + return { cancel: function() { + l2 && (l2.cancel(), l2 = null), c3 && (c3.cancel(), c3 = null); } }; - }(e2, this.map._requestManager, this.map.getPixelRatio(), (e3, i2) => { - if (this._spriteRequest = null, e3) - this.fire(new t.ErrorEvent(e3)); - else if (i2) - for (const t2 in i2) - this.imageManager.addImage(t2, i2[t2]); - this.imageManager.setLoaded(true), this._availableImages = this.imageManager.listImages(), this.dispatcher.broadcast("setImages", this._availableImages), this.fire(new t.Event("data", { dataType: "style" })); + }(e3, this.map._requestManager, function(e4, o2) { + if (i3._spriteRequest = null, e4) + i3.fire(new t.ErrorEvent(e4)); + else if (o2) + for (var r2 in o2) + i3.imageManager.addImage(r2, o2[r2]); + i3.imageManager.setLoaded(true), i3._availableImages = i3.imageManager.listImages(), i3.dispatcher.broadcast("setImages", i3._availableImages), i3.fire(new t.Event("data", { dataType: "style" })); }); - } - _validateLayer(e2) { - const i2 = this.sourceCaches[e2.source]; - if (!i2) - return; - const o2 = e2.sourceLayer; - if (!o2) - return; - const a2 = i2.getSource(); - ("geojson" === a2.type || a2.vectorLayerIds && -1 === a2.vectorLayerIds.indexOf(o2)) && this.fire(new t.ErrorEvent(new Error(`Source layer "${o2}" does not exist on source "${a2.id}" as specified by style layer "${e2.id}".`))); - } - loaded() { + }, i2.prototype._validateLayer = function(e3) { + var i3 = this.sourceCaches[e3.source]; + if (i3) { + var o2 = e3.sourceLayer; + if (o2) { + var r2 = i3.getSource(); + ("geojson" === r2.type || r2.vectorLayerIds && -1 === r2.vectorLayerIds.indexOf(o2)) && this.fire(new t.ErrorEvent(new Error('Source layer "' + o2 + '" does not exist on source "' + r2.id + '" as specified by style layer "' + e3.id + '"'))); + } + } + }, i2.prototype.loaded = function() { if (!this._loaded) return false; if (Object.keys(this._updatedSources).length) return false; - for (const t2 in this.sourceCaches) + for (var t2 in this.sourceCaches) if (!this.sourceCaches[t2].loaded()) return false; return !!this.imageManager.isLoaded(); - } - _serializeLayers(t2) { - const e2 = []; - for (const i2 of t2) { - const t3 = this._layers[i2]; - "custom" !== t3.type && e2.push(t3.serialize()); + }, i2.prototype._serializeLayers = function(t2) { + for (var e3 = [], i3 = 0, o2 = t2; i3 < o2.length; i3 += 1) { + var r2 = this._layers[o2[i3]]; + "custom" !== r2.type && e3.push(r2.serialize()); } - return e2; - } - hasTransitions() { + return e3; + }, i2.prototype.hasTransitions = function() { if (this.light && this.light.hasTransition()) return true; - for (const t2 in this.sourceCaches) + for (var t2 in this.sourceCaches) if (this.sourceCaches[t2].hasTransition()) return true; - for (const t2 in this._layers) - if (this._layers[t2].hasTransition()) + for (var e3 in this._layers) + if (this._layers[e3].hasTransition()) return true; return false; - } - _checkLoaded() { - if (!this._loaded) - throw new Error("Style is not done loading."); - } - update(e2) { + }, i2.prototype._checkLoaded = function() { if (!this._loaded) - return; - const i2 = this._changed; - if (this._changed) { - const t2 = Object.keys(this._updatedLayers), i3 = Object.keys(this._removedLayers); - (t2.length || i3.length) && this._updateWorkerLayers(t2, i3); - for (const t3 in this._updatedSources) { - const e3 = this._updatedSources[t3]; - if ("reload" === e3) - this._reloadSource(t3); - else { - if ("clear" !== e3) - throw new Error(`Invalid action ${e3}`); - this._clearSource(t3); + throw new Error("Style is not done loading"); + }, i2.prototype.update = function(e3) { + if (this._loaded) { + var i3 = this._changed; + if (this._changed) { + var o2 = Object.keys(this._updatedLayers), r2 = Object.keys(this._removedLayers); + for (var a2 in (o2.length || r2.length) && this._updateWorkerLayers(o2, r2), this._updatedSources) { + var n2 = this._updatedSources[a2]; + "reload" === n2 ? this._reloadSource(a2) : "clear" === n2 && this._clearSource(a2); } + for (var s2 in this._updateTilesForChangedImages(), this._updatedPaintProps) + this._layers[s2].updateTransitions(e3); + this.light.updateTransitions(e3), this._resetUpdates(); } - this._updateTilesForChangedImages(); - for (const t3 in this._updatedPaintProps) - this._layers[t3].updateTransitions(e2); - this.light.updateTransitions(e2), this._resetUpdates(); - } - const o2 = {}; - for (const t2 in this.sourceCaches) { - const e3 = this.sourceCaches[t2]; - o2[t2] = e3.used, e3.used = false; + var l2 = {}; + for (var c3 in this.sourceCaches) { + var u2 = this.sourceCaches[c3]; + l2[c3] = u2.used, u2.used = false; + } + for (var h3 = 0, p3 = this._order; h3 < p3.length; h3 += 1) { + var d2 = this._layers[p3[h3]]; + d2.recalculate(e3, this._availableImages), !d2.isHidden(e3.zoom) && d2.source && (this.sourceCaches[d2.source].used = true); + } + for (var _2 in l2) { + var f2 = this.sourceCaches[_2]; + l2[_2] !== f2.used && f2.fire(new t.Event("data", { sourceDataType: "visibility", dataType: "source", sourceId: _2 })); + } + this.light.recalculate(e3), this.z = e3.zoom, i3 && this.fire(new t.Event("data", { dataType: "style" })); } - for (const t2 of this._order) { - const i3 = this._layers[t2]; - i3.recalculate(e2, this._availableImages), !i3.isHidden(e2.zoom) && i3.source && (this.sourceCaches[i3.source].used = true); + }, i2.prototype._updateTilesForChangedImages = function() { + var t2 = Object.keys(this._changedImages); + if (t2.length) { + for (var e3 in this.sourceCaches) + this.sourceCaches[e3].reloadTilesForDependencies(["icons", "patterns"], t2); + this._changedImages = {}; } - for (const e3 in o2) { - const i3 = this.sourceCaches[e3]; - o2[e3] !== i3.used && i3.fire(new t.Event("data", { sourceDataType: "visibility", dataType: "source", sourceId: e3 })); - } - this.light.recalculate(e2), this.z = e2.zoom, i2 && this.fire(new t.Event("data", { dataType: "style" })); - } - _updateTilesForChangedImages() { - const t2 = Object.keys(this._changedImages); - if (t2.length) { - for (const e2 in this.sourceCaches) - this.sourceCaches[e2].reloadTilesForDependencies(["icons", "patterns"], t2); - this._changedImages = {}; - } - } - _updateWorkerLayers(t2, e2) { - this.dispatcher.broadcast("updateLayers", { layers: this._serializeLayers(t2), removedIds: e2 }); - } - _resetUpdates() { + }, i2.prototype._updateWorkerLayers = function(t2, e3) { + this.dispatcher.broadcast("updateLayers", { layers: this._serializeLayers(t2), removedIds: e3 }); + }, i2.prototype._resetUpdates = function() { this._changed = false, this._updatedLayers = {}, this._removedLayers = {}, this._updatedSources = {}, this._updatedPaintProps = {}, this._changedImages = {}; - } - setTerrain(e2) { - if (this._checkLoaded(), this._terrainDataCallback && this.off("data", this._terrainDataCallback), this._terrainfreezeElevationCallback && this.map.off("freezeElevation", this._terrainfreezeElevationCallback), e2) { - const t2 = this.sourceCaches[e2.source]; - if (!t2) - throw new Error(`cannot load terrain, because there exists no source with ID: ${e2.source}`); - this.terrain = new Kt(this, t2, e2), this.map.transform.updateElevation(this.terrain), this._terrainfreezeElevationCallback = (t3) => { - t3.freeze ? this.map.transform.freezeElevation = true : (this.map.transform.freezeElevation = false, this.map.transform.recalculateZoom(this.terrain)); - }, this._terrainDataCallback = (t3) => { - t3.tile && (t3.sourceId === e2.source ? (this.map.transform.updateElevation(this.terrain), this.terrain.rememberForRerender(t3.sourceId, t3.tile.tileID)) : "geojson" === t3.source.type && this.terrain.rememberForRerender(t3.sourceId, t3.tile.tileID)); - }, this.on("data", this._terrainDataCallback), this.map.on("freezeElevation", this._terrainfreezeElevationCallback); - } else - this.terrain && this.terrain.sourceCache.destruct(), this.terrain = null, this.map.transform.updateElevation(this.terrain); - this.map.fire(new t.Event("terrain", { terrain: e2 })); - } - setState(e2) { - if (this._checkLoaded(), Yt(this, t.validateStyle(e2))) + }, i2.prototype.setState = function(e3) { + var i3 = this; + if (this._checkLoaded(), Ue(this, t.validateStyle(e3))) return false; - (e2 = t.clone$1(e2)).layers = X(e2.layers); - const i2 = function(t2, e3) { - if (!t2) - return [{ command: W.setStyle, args: [e3] }]; - let i3 = []; + (e3 = t.clone$1(e3)).layers = Nt(e3.layers); + var o2 = function(e4, i4) { + if (!e4) + return [{ command: Zt.setStyle, args: [i4] }]; + var o3 = []; try { - if (!a(t2.version, e3.version)) - return [{ command: W.setStyle, args: [e3] }]; - a(t2.center, e3.center) || i3.push({ command: W.setCenter, args: [e3.center] }), a(t2.zoom, e3.zoom) || i3.push({ command: W.setZoom, args: [e3.zoom] }), a(t2.bearing, e3.bearing) || i3.push({ command: W.setBearing, args: [e3.bearing] }), a(t2.pitch, e3.pitch) || i3.push({ command: W.setPitch, args: [e3.pitch] }), a(t2.sprite, e3.sprite) || i3.push({ command: W.setSprite, args: [e3.sprite] }), a(t2.glyphs, e3.glyphs) || i3.push({ command: W.setGlyphs, args: [e3.glyphs] }), a(t2.transition, e3.transition) || i3.push({ command: W.setTransition, args: [e3.transition] }), a(t2.light, e3.light) || i3.push({ command: W.setLight, args: [e3.light] }); - const o3 = {}, r2 = []; - !function(t3, e4, i4, o4) { - let r3; - for (r3 in e4 = e4 || {}, t3 = t3 || {}) - Object.prototype.hasOwnProperty.call(t3, r3) && (Object.prototype.hasOwnProperty.call(e4, r3) || K(r3, i4, o4)); - for (r3 in e4) - Object.prototype.hasOwnProperty.call(e4, r3) && (Object.prototype.hasOwnProperty.call(t3, r3) ? a(t3[r3], e4[r3]) || ("geojson" === t3[r3].type && "geojson" === e4[r3].type && J(t3, e4, r3) ? i4.push({ command: W.setGeoJSONSourceData, args: [r3, e4[r3].data] }) : Y(r3, e4, i4, o4)) : H(r3, e4, i4)); - }(t2.sources, e3.sources, r2, o3); - const s2 = []; - t2.layers && t2.layers.forEach((t3) => { - o3[t3.source] ? i3.push({ command: W.removeLayer, args: [t3.id] }) : s2.push(t3); - }), i3 = i3.concat(r2), function(t3, e4, i4) { - e4 = e4 || []; - const o4 = (t3 = t3 || []).map(tt), r3 = e4.map(tt), s3 = t3.reduce(et, {}), n2 = e4.reduce(et, {}), l2 = o4.slice(), c3 = /* @__PURE__ */ Object.create(null); - let h3, u2, d2, m2, _2, p3, f2; - for (h3 = 0, u2 = 0; h3 < o4.length; h3++) - d2 = o4[h3], Object.prototype.hasOwnProperty.call(n2, d2) ? u2++ : (i4.push({ command: W.removeLayer, args: [d2] }), l2.splice(l2.indexOf(d2, u2), 1)); - for (h3 = 0, u2 = 0; h3 < r3.length; h3++) - d2 = r3[r3.length - 1 - h3], l2[l2.length - 1 - h3] !== d2 && (Object.prototype.hasOwnProperty.call(s3, d2) ? (i4.push({ command: W.removeLayer, args: [d2] }), l2.splice(l2.lastIndexOf(d2, l2.length - u2), 1)) : u2++, p3 = l2[l2.length - h3], i4.push({ command: W.addLayer, args: [n2[d2], p3] }), l2.splice(l2.length - h3, 0, d2), c3[d2] = true); - for (h3 = 0; h3 < r3.length; h3++) - if (d2 = r3[h3], m2 = s3[d2], _2 = n2[d2], !c3[d2] && !a(m2, _2)) - if (a(m2.source, _2.source) && a(m2["source-layer"], _2["source-layer"]) && a(m2.type, _2.type)) { - for (f2 in Q(m2.layout, _2.layout, i4, d2, null, W.setLayoutProperty), Q(m2.paint, _2.paint, i4, d2, null, W.setPaintProperty), a(m2.filter, _2.filter) || i4.push({ command: W.setFilter, args: [d2, _2.filter] }), a(m2.minzoom, _2.minzoom) && a(m2.maxzoom, _2.maxzoom) || i4.push({ command: W.setLayerZoomRange, args: [d2, _2.minzoom, _2.maxzoom] }), m2) - Object.prototype.hasOwnProperty.call(m2, f2) && "layout" !== f2 && "paint" !== f2 && "filter" !== f2 && "metadata" !== f2 && "minzoom" !== f2 && "maxzoom" !== f2 && (0 === f2.indexOf("paint.") ? Q(m2[f2], _2[f2], i4, d2, f2.slice(6), W.setPaintProperty) : a(m2[f2], _2[f2]) || i4.push({ command: W.setLayerProperty, args: [d2, f2, _2[f2]] })); - for (f2 in _2) - Object.prototype.hasOwnProperty.call(_2, f2) && !Object.prototype.hasOwnProperty.call(m2, f2) && "layout" !== f2 && "paint" !== f2 && "filter" !== f2 && "metadata" !== f2 && "minzoom" !== f2 && "maxzoom" !== f2 && (0 === f2.indexOf("paint.") ? Q(m2[f2], _2[f2], i4, d2, f2.slice(6), W.setPaintProperty) : a(m2[f2], _2[f2]) || i4.push({ command: W.setLayerProperty, args: [d2, f2, _2[f2]] })); + if (!t.deepEqual(e4.version, i4.version)) + return [{ command: Zt.setStyle, args: [i4] }]; + t.deepEqual(e4.center, i4.center) || o3.push({ command: Zt.setCenter, args: [i4.center] }), t.deepEqual(e4.zoom, i4.zoom) || o3.push({ command: Zt.setZoom, args: [i4.zoom] }), t.deepEqual(e4.bearing, i4.bearing) || o3.push({ command: Zt.setBearing, args: [i4.bearing] }), t.deepEqual(e4.pitch, i4.pitch) || o3.push({ command: Zt.setPitch, args: [i4.pitch] }), t.deepEqual(e4.sprite, i4.sprite) || o3.push({ command: Zt.setSprite, args: [i4.sprite] }), t.deepEqual(e4.glyphs, i4.glyphs) || o3.push({ command: Zt.setGlyphs, args: [i4.glyphs] }), t.deepEqual(e4.transition, i4.transition) || o3.push({ command: Zt.setTransition, args: [i4.transition] }), t.deepEqual(e4.light, i4.light) || o3.push({ command: Zt.setLight, args: [i4.light] }); + var r3 = {}, a2 = []; + !function(e5, i5, o4, r4) { + var a3; + for (a3 in i5 = i5 || {}, e5 = e5 || {}) + e5.hasOwnProperty(a3) && (i5.hasOwnProperty(a3) || jt(a3, o4, r4)); + for (a3 in i5) + i5.hasOwnProperty(a3) && (e5.hasOwnProperty(a3) ? t.deepEqual(e5[a3], i5[a3]) || ("geojson" === e5[a3].type && "geojson" === i5[a3].type && Gt(e5, i5, a3) ? o4.push({ command: Zt.setGeoJSONSourceData, args: [a3, i5[a3].data] }) : Vt(a3, i5, o4, r4)) : qt(a3, i5, o4)); + }(e4.sources, i4.sources, a2, r3); + var n2 = []; + e4.layers && e4.layers.forEach(function(t2) { + r3[t2.source] ? o3.push({ command: Zt.removeLayer, args: [t2.id] }) : n2.push(t2); + }), o3 = o3.concat(a2), function(e5, i5, o4) { + i5 = i5 || []; + var r4, a3, n3, s2, l2, c3, u2, h3 = (e5 = e5 || []).map(Xt), p3 = i5.map(Xt), d2 = e5.reduce(Ht, {}), _2 = i5.reduce(Ht, {}), f2 = h3.slice(), m2 = /* @__PURE__ */ Object.create(null); + for (r4 = 0, a3 = 0; r4 < h3.length; r4++) + _2.hasOwnProperty(n3 = h3[r4]) ? a3++ : (o4.push({ command: Zt.removeLayer, args: [n3] }), f2.splice(f2.indexOf(n3, a3), 1)); + for (r4 = 0, a3 = 0; r4 < p3.length; r4++) + f2[f2.length - 1 - r4] !== (n3 = p3[p3.length - 1 - r4]) && (d2.hasOwnProperty(n3) ? (o4.push({ command: Zt.removeLayer, args: [n3] }), f2.splice(f2.lastIndexOf(n3, f2.length - a3), 1)) : a3++, o4.push({ command: Zt.addLayer, args: [_2[n3], c3 = f2[f2.length - r4]] }), f2.splice(f2.length - r4, 0, n3), m2[n3] = true); + for (r4 = 0; r4 < p3.length; r4++) + if (s2 = d2[n3 = p3[r4]], l2 = _2[n3], !m2[n3] && !t.deepEqual(s2, l2)) + if (t.deepEqual(s2.source, l2.source) && t.deepEqual(s2["source-layer"], l2["source-layer"]) && t.deepEqual(s2.type, l2.type)) { + for (u2 in Wt(s2.layout, l2.layout, o4, n3, null, Zt.setLayoutProperty), Wt(s2.paint, l2.paint, o4, n3, null, Zt.setPaintProperty), t.deepEqual(s2.filter, l2.filter) || o4.push({ command: Zt.setFilter, args: [n3, l2.filter] }), t.deepEqual(s2.minzoom, l2.minzoom) && t.deepEqual(s2.maxzoom, l2.maxzoom) || o4.push({ command: Zt.setLayerZoomRange, args: [n3, l2.minzoom, l2.maxzoom] }), s2) + s2.hasOwnProperty(u2) && "layout" !== u2 && "paint" !== u2 && "filter" !== u2 && "metadata" !== u2 && "minzoom" !== u2 && "maxzoom" !== u2 && (0 === u2.indexOf("paint.") ? Wt(s2[u2], l2[u2], o4, n3, u2.slice(6), Zt.setPaintProperty) : t.deepEqual(s2[u2], l2[u2]) || o4.push({ command: Zt.setLayerProperty, args: [n3, u2, l2[u2]] })); + for (u2 in l2) + l2.hasOwnProperty(u2) && !s2.hasOwnProperty(u2) && "layout" !== u2 && "paint" !== u2 && "filter" !== u2 && "metadata" !== u2 && "minzoom" !== u2 && "maxzoom" !== u2 && (0 === u2.indexOf("paint.") ? Wt(s2[u2], l2[u2], o4, n3, u2.slice(6), Zt.setPaintProperty) : t.deepEqual(s2[u2], l2[u2]) || o4.push({ command: Zt.setLayerProperty, args: [n3, u2, l2[u2]] })); } else - i4.push({ command: W.removeLayer, args: [d2] }), p3 = l2[l2.lastIndexOf(d2) + 1], i4.push({ command: W.addLayer, args: [_2, p3] }); - }(s2, e3.layers, i3); - } catch (t3) { - console.warn("Unable to compute style diff:", t3), i3 = [{ command: W.setStyle, args: [e3] }]; + o4.push({ command: Zt.removeLayer, args: [n3] }), c3 = f2[f2.lastIndexOf(n3) + 1], o4.push({ command: Zt.addLayer, args: [l2, c3] }); + }(n2, i4.layers, o3); + } catch (t2) { + console.warn("Unable to compute style diff:", t2), o3 = [{ command: Zt.setStyle, args: [i4] }]; } - return i3; - }(this.serialize(), e2).filter((t2) => !(t2.command in Qt)); - if (0 === i2.length) + return o3; + }(this.serialize(), e3).filter(function(t2) { + return !(t2.command in Ze); + }); + if (0 === o2.length) return false; - const o2 = i2.filter((t2) => !(t2.command in Jt)); - if (o2.length > 0) - throw new Error(`Unimplemented: ${o2.map((t2) => t2.command).join(", ")}.`); - return i2.forEach((t2) => { - "setTransition" !== t2.command && this[t2.command].apply(this, t2.args); - }), this.stylesheet = e2, true; - } - addImage(e2, i2) { - if (this.getImage(e2)) - return this.fire(new t.ErrorEvent(new Error(`An image named "${e2}" already exists.`))); - this.imageManager.addImage(e2, i2), this._afterImageUpdated(e2); - } - updateImage(t2, e2) { - this.imageManager.updateImage(t2, e2); - } - getImage(t2) { + var r2 = o2.filter(function(t2) { + return !(t2.command in Ne); + }); + if (r2.length > 0) + throw new Error("Unimplemented: " + r2.map(function(t2) { + return t2.command; + }).join(", ") + "."); + return o2.forEach(function(t2) { + "setTransition" !== t2.command && i3[t2.command].apply(i3, t2.args); + }), this.stylesheet = e3, true; + }, i2.prototype.addImage = function(e3, i3) { + if (this.getImage(e3)) + return this.fire(new t.ErrorEvent(new Error("An image with this name already exists."))); + this.imageManager.addImage(e3, i3), this._afterImageUpdated(e3); + }, i2.prototype.updateImage = function(t2, e3) { + this.imageManager.updateImage(t2, e3); + }, i2.prototype.getImage = function(t2) { return this.imageManager.getImage(t2); - } - removeImage(e2) { - if (!this.getImage(e2)) - return this.fire(new t.ErrorEvent(new Error(`An image named "${e2}" does not exist.`))); - this.imageManager.removeImage(e2), this._afterImageUpdated(e2); - } - _afterImageUpdated(e2) { - this._availableImages = this.imageManager.listImages(), this._changedImages[e2] = true, this._changed = true, this.dispatcher.broadcast("setImages", this._availableImages), this.fire(new t.Event("data", { dataType: "style" })); - } - listImages() { + }, i2.prototype.removeImage = function(e3) { + if (!this.getImage(e3)) + return this.fire(new t.ErrorEvent(new Error("No image with this name exists."))); + this.imageManager.removeImage(e3), this._afterImageUpdated(e3); + }, i2.prototype._afterImageUpdated = function(e3) { + this._availableImages = this.imageManager.listImages(), this._changedImages[e3] = true, this._changed = true, this.dispatcher.broadcast("setImages", this._availableImages), this.fire(new t.Event("data", { dataType: "style" })); + }, i2.prototype.listImages = function() { return this._checkLoaded(), this.imageManager.listImages(); - } - addSource(e2, i2, o2 = {}) { - if (this._checkLoaded(), void 0 !== this.sourceCaches[e2]) - throw new Error(`Source "${e2}" already exists.`); - if (!i2.type) - throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(i2).join(", ")}.`); - if (["vector", "raster", "geojson", "video", "image"].indexOf(i2.type) >= 0 && this._validate(t.validateStyle.source, `sources.${e2}`, i2, null, o2)) - return; - this.map && this.map._collectResourceTiming && (i2.collectResourceTiming = true); - const a2 = this.sourceCaches[e2] = new O2(e2, i2, this.dispatcher); - a2.style = this, a2.setEventedParent(this, () => ({ isSourceLoaded: this.loaded(), source: a2.serialize(), sourceId: e2 })), a2.onAdd(this.map), this._changed = true; - } - removeSource(e2) { - if (this._checkLoaded(), void 0 === this.sourceCaches[e2]) + }, i2.prototype.addSource = function(e3, i3, o2) { + var r2 = this; + if (void 0 === o2 && (o2 = {}), this._checkLoaded(), void 0 !== this.sourceCaches[e3]) + throw new Error("There is already a source with this ID"); + if (!i3.type) + throw new Error("The type property must be defined, but only the following properties were given: " + Object.keys(i3).join(", ") + "."); + if (!(["vector", "raster", "geojson", "video", "image"].indexOf(i3.type) >= 0 && this._validate(t.validateStyle.source, "sources." + e3, i3, null, o2))) { + this.map && this.map._collectResourceTiming && (i3.collectResourceTiming = true); + var a2 = this.sourceCaches[e3] = new Dt(e3, i3, this.dispatcher); + a2.style = this, a2.setEventedParent(this, function() { + return { isSourceLoaded: r2.loaded(), source: a2.serialize(), sourceId: e3 }; + }), a2.onAdd(this.map), this._changed = true; + } + }, i2.prototype.removeSource = function(e3) { + if (this._checkLoaded(), void 0 === this.sourceCaches[e3]) throw new Error("There is no source with this ID"); - for (const i3 in this._layers) - if (this._layers[i3].source === e2) - return this.fire(new t.ErrorEvent(new Error(`Source "${e2}" cannot be removed while layer "${i3}" is using it.`))); - const i2 = this.sourceCaches[e2]; - delete this.sourceCaches[e2], delete this._updatedSources[e2], i2.fire(new t.Event("data", { sourceDataType: "metadata", dataType: "source", sourceId: e2 })), i2.setEventedParent(null), i2.onRemove(this.map), this._changed = true; - } - setGeoJSONSourceData(t2, e2) { - if (this._checkLoaded(), void 0 === this.sourceCaches[t2]) - throw new Error(`There is no source with this ID=${t2}`); - const i2 = this.sourceCaches[t2].getSource(); - if ("geojson" !== i2.type) - throw new Error(`geojsonSource.type is ${i2.type}, which is !== 'geojson`); - i2.setData(e2), this._changed = true; - } - getSource(t2) { + for (var i3 in this._layers) + if (this._layers[i3].source === e3) + return this.fire(new t.ErrorEvent(new Error('Source "' + e3 + '" cannot be removed while layer "' + i3 + '" is using it.'))); + var o2 = this.sourceCaches[e3]; + delete this.sourceCaches[e3], delete this._updatedSources[e3], o2.fire(new t.Event("data", { sourceDataType: "metadata", dataType: "source", sourceId: e3 })), o2.setEventedParent(null), o2.clearTiles(), o2.onRemove && o2.onRemove(this.map), this._changed = true; + }, i2.prototype.setGeoJSONSourceData = function(t2, e3) { + this._checkLoaded(), this.sourceCaches[t2].getSource().setData(e3), this._changed = true; + }, i2.prototype.getSource = function(t2) { return this.sourceCaches[t2] && this.sourceCaches[t2].getSource(); - } - addLayer(e2, i2, o2 = {}) { - this._checkLoaded(); - const a2 = e2.id; - if (this.getLayer(a2)) - return void this.fire(new t.ErrorEvent(new Error(`Layer "${a2}" already exists on this map.`))); - let r2; - if ("custom" === e2.type) { - if (Yt(this, t.validateCustomStyleLayer(e2))) - return; - r2 = t.createStyleLayer(e2); - } else { - if ("object" == typeof e2.source && (this.addSource(a2, e2.source), e2 = t.clone$1(e2), e2 = t.extend(e2, { source: a2 })), this._validate(t.validateStyle.layer, `layers.${a2}`, e2, { arrayIndex: -1 }, o2)) - return; - r2 = t.createStyleLayer(e2), this._validateLayer(r2), r2.setEventedParent(this, { layer: { id: a2 } }), this._serializedLayers[r2.id] = r2.serialize(); - } - const s2 = i2 ? this._order.indexOf(i2) : this._order.length; - if (i2 && -1 === s2) - this.fire(new t.ErrorEvent(new Error(`Cannot add layer "${a2}" before non-existing layer "${i2}".`))); + }, i2.prototype.addLayer = function(e3, i3, o2) { + void 0 === o2 && (o2 = {}), this._checkLoaded(); + var r2 = e3.id; + if (this.getLayer(r2)) + this.fire(new t.ErrorEvent(new Error('Layer with id "' + r2 + '" already exists on this map'))); else { - if (this._order.splice(s2, 0, a2), this._layerOrderChanged = true, this._layers[a2] = r2, this._removedLayers[a2] && r2.source && "custom" !== r2.type) { - const t2 = this._removedLayers[a2]; - delete this._removedLayers[a2], t2.type !== r2.type ? this._updatedSources[r2.source] = "clear" : (this._updatedSources[r2.source] = "reload", this.sourceCaches[r2.source].pause()); + var a2; + if ("custom" === e3.type) { + if (Ue(this, t.validateCustomStyleLayer(e3))) + return; + a2 = t.createStyleLayer(e3); + } else { + if ("object" == typeof e3.source && (this.addSource(r2, e3.source), e3 = t.clone$1(e3), e3 = t.extend(e3, { source: r2 })), this._validate(t.validateStyle.layer, "layers." + r2, e3, { arrayIndex: -1 }, o2)) + return; + a2 = t.createStyleLayer(e3), this._validateLayer(a2), a2.setEventedParent(this, { layer: { id: r2 } }), this._serializedLayers[a2.id] = a2.serialize(); + } + var n2 = i3 ? this._order.indexOf(i3) : this._order.length; + if (i3 && -1 === n2) + this.fire(new t.ErrorEvent(new Error('Layer with id "' + i3 + '" does not exist on this map.'))); + else { + if (this._order.splice(n2, 0, r2), this._layerOrderChanged = true, this._layers[r2] = a2, this._removedLayers[r2] && a2.source && "custom" !== a2.type) { + var s2 = this._removedLayers[r2]; + delete this._removedLayers[r2], s2.type !== a2.type ? this._updatedSources[a2.source] = "clear" : (this._updatedSources[a2.source] = "reload", this.sourceCaches[a2.source].pause()); + } + this._updateLayer(a2), a2.onAdd && a2.onAdd(this.map); } - this._updateLayer(r2), r2.onAdd && r2.onAdd(this.map); } - } - moveLayer(e2, i2) { - if (this._checkLoaded(), this._changed = true, !this._layers[e2]) - return void this.fire(new t.ErrorEvent(new Error(`The layer '${e2}' does not exist in the map's style and cannot be moved.`))); - if (e2 === i2) - return; - const o2 = this._order.indexOf(e2); - this._order.splice(o2, 1); - const a2 = i2 ? this._order.indexOf(i2) : this._order.length; - i2 && -1 === a2 ? this.fire(new t.ErrorEvent(new Error(`Cannot move layer "${e2}" before non-existing layer "${i2}".`))) : (this._order.splice(a2, 0, e2), this._layerOrderChanged = true); - } - removeLayer(e2) { + }, i2.prototype.moveLayer = function(e3, i3) { + if (this._checkLoaded(), this._changed = true, this._layers[e3]) { + if (e3 !== i3) { + var o2 = this._order.indexOf(e3); + this._order.splice(o2, 1); + var r2 = i3 ? this._order.indexOf(i3) : this._order.length; + i3 && -1 === r2 ? this.fire(new t.ErrorEvent(new Error('Layer with id "' + i3 + '" does not exist on this map.'))) : (this._order.splice(r2, 0, e3), this._layerOrderChanged = true); + } + } else + this.fire(new t.ErrorEvent(new Error("The layer '" + e3 + "' does not exist in the map's style and cannot be moved."))); + }, i2.prototype.removeLayer = function(e3) { this._checkLoaded(); - const i2 = this._layers[e2]; - if (!i2) - return void this.fire(new t.ErrorEvent(new Error(`Cannot remove non-existing layer "${e2}".`))); - i2.setEventedParent(null); - const o2 = this._order.indexOf(e2); - this._order.splice(o2, 1), this._layerOrderChanged = true, this._changed = true, this._removedLayers[e2] = i2, delete this._layers[e2], delete this._serializedLayers[e2], delete this._updatedLayers[e2], delete this._updatedPaintProps[e2], i2.onRemove && i2.onRemove(this.map); - } - getLayer(t2) { + var i3 = this._layers[e3]; + if (i3) { + i3.setEventedParent(null); + var o2 = this._order.indexOf(e3); + this._order.splice(o2, 1), this._layerOrderChanged = true, this._changed = true, this._removedLayers[e3] = i3, delete this._layers[e3], delete this._serializedLayers[e3], delete this._updatedLayers[e3], delete this._updatedPaintProps[e3], i3.onRemove && i3.onRemove(this.map); + } else + this.fire(new t.ErrorEvent(new Error("The layer '" + e3 + "' does not exist in the map's style and cannot be removed."))); + }, i2.prototype.getLayer = function(t2) { return this._layers[t2]; - } - hasLayer(t2) { + }, i2.prototype.hasLayer = function(t2) { return t2 in this._layers; - } - setLayerZoomRange(e2, i2, o2) { + }, i2.prototype.setLayerZoomRange = function(e3, i3, o2) { this._checkLoaded(); - const a2 = this.getLayer(e2); - a2 ? a2.minzoom === i2 && a2.maxzoom === o2 || (null != i2 && (a2.minzoom = i2), null != o2 && (a2.maxzoom = o2), this._updateLayer(a2)) : this.fire(new t.ErrorEvent(new Error(`Cannot set the zoom range of non-existing layer "${e2}".`))); - } - setFilter(e2, i2, o2 = {}) { - this._checkLoaded(); - const r2 = this.getLayer(e2); + var r2 = this.getLayer(e3); + r2 ? r2.minzoom === i3 && r2.maxzoom === o2 || (null != i3 && (r2.minzoom = i3), null != o2 && (r2.maxzoom = o2), this._updateLayer(r2)) : this.fire(new t.ErrorEvent(new Error("The layer '" + e3 + "' does not exist in the map's style and cannot have zoom extent."))); + }, i2.prototype.setFilter = function(e3, i3, o2) { + void 0 === o2 && (o2 = {}), this._checkLoaded(); + var r2 = this.getLayer(e3); if (r2) { - if (!a(r2.filter, i2)) - return null == i2 ? (r2.filter = void 0, void this._updateLayer(r2)) : void (this._validate(t.validateStyle.filter, `layers.${r2.id}.filter`, i2, null, o2) || (r2.filter = t.clone$1(i2), this._updateLayer(r2))); + if (!t.deepEqual(r2.filter, i3)) + return null == i3 ? (r2.filter = void 0, void this._updateLayer(r2)) : void (this._validate(t.validateStyle.filter, "layers." + r2.id + ".filter", i3, null, o2) || (r2.filter = t.clone$1(i3), this._updateLayer(r2))); } else - this.fire(new t.ErrorEvent(new Error(`Cannot filter non-existing layer "${e2}".`))); - } - getFilter(e2) { - return t.clone$1(this.getLayer(e2).filter); - } - setLayoutProperty(e2, i2, o2, r2 = {}) { - this._checkLoaded(); - const s2 = this.getLayer(e2); - s2 ? a(s2.getLayoutProperty(i2), o2) || (s2.setLayoutProperty(i2, o2, r2), this._updateLayer(s2)) : this.fire(new t.ErrorEvent(new Error(`Cannot style non-existing layer "${e2}".`))); - } - getLayoutProperty(e2, i2) { - const o2 = this.getLayer(e2); + this.fire(new t.ErrorEvent(new Error("The layer '" + e3 + "' does not exist in the map's style and cannot be filtered."))); + }, i2.prototype.getFilter = function(e3) { + return t.clone$1(this.getLayer(e3).filter); + }, i2.prototype.setLayoutProperty = function(e3, i3, o2, r2) { + void 0 === r2 && (r2 = {}), this._checkLoaded(); + var a2 = this.getLayer(e3); + a2 ? t.deepEqual(a2.getLayoutProperty(i3), o2) || (a2.setLayoutProperty(i3, o2, r2), this._updateLayer(a2)) : this.fire(new t.ErrorEvent(new Error("The layer '" + e3 + "' does not exist in the map's style and cannot be styled."))); + }, i2.prototype.getLayoutProperty = function(e3, i3) { + var o2 = this.getLayer(e3); if (o2) - return o2.getLayoutProperty(i2); - this.fire(new t.ErrorEvent(new Error(`Cannot get style of non-existing layer "${e2}".`))); - } - setPaintProperty(e2, i2, o2, r2 = {}) { - this._checkLoaded(); - const s2 = this.getLayer(e2); - s2 ? a(s2.getPaintProperty(i2), o2) || (s2.setPaintProperty(i2, o2, r2) && this._updateLayer(s2), this._changed = true, this._updatedPaintProps[e2] = true) : this.fire(new t.ErrorEvent(new Error(`Cannot style non-existing layer "${e2}".`))); - } - getPaintProperty(t2, e2) { - return this.getLayer(t2).getPaintProperty(e2); - } - setFeatureState(e2, i2) { + return o2.getLayoutProperty(i3); + this.fire(new t.ErrorEvent(new Error("The layer '" + e3 + "' does not exist in the map's style."))); + }, i2.prototype.setPaintProperty = function(e3, i3, o2, r2) { + void 0 === r2 && (r2 = {}), this._checkLoaded(); + var a2 = this.getLayer(e3); + a2 ? t.deepEqual(a2.getPaintProperty(i3), o2) || (a2.setPaintProperty(i3, o2, r2) && this._updateLayer(a2), this._changed = true, this._updatedPaintProps[e3] = true) : this.fire(new t.ErrorEvent(new Error("The layer '" + e3 + "' does not exist in the map's style and cannot be styled."))); + }, i2.prototype.getPaintProperty = function(t2, e3) { + return this.getLayer(t2).getPaintProperty(e3); + }, i2.prototype.setFeatureState = function(e3, i3) { this._checkLoaded(); - const o2 = e2.source, a2 = e2.sourceLayer, r2 = this.sourceCaches[o2]; - if (void 0 === r2) - return void this.fire(new t.ErrorEvent(new Error(`The source '${o2}' does not exist in the map's style.`))); - const s2 = r2.getSource().type; - "geojson" === s2 && a2 ? this.fire(new t.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))) : "vector" !== s2 || a2 ? (void 0 === e2.id && this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))), r2.setFeatureState(a2, e2.id, i2)) : this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types."))); - } - removeFeatureState(e2, i2) { + var o2 = e3.source, r2 = e3.sourceLayer, a2 = this.sourceCaches[o2]; + if (void 0 !== a2) { + var n2 = a2.getSource().type; + "geojson" === n2 && r2 ? this.fire(new t.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))) : "vector" !== n2 || r2 ? (void 0 === e3.id && this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))), a2.setFeatureState(r2, e3.id, i3)) : this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types."))); + } else + this.fire(new t.ErrorEvent(new Error("The source '" + o2 + "' does not exist in the map's style."))); + }, i2.prototype.removeFeatureState = function(e3, i3) { this._checkLoaded(); - const o2 = e2.source, a2 = this.sourceCaches[o2]; - if (void 0 === a2) - return void this.fire(new t.ErrorEvent(new Error(`The source '${o2}' does not exist in the map's style.`))); - const r2 = a2.getSource().type, s2 = "vector" === r2 ? e2.sourceLayer : void 0; - "vector" !== r2 || s2 ? i2 && "string" != typeof e2.id && "number" != typeof e2.id ? this.fire(new t.ErrorEvent(new Error("A feature id is required to remove its specific state property."))) : a2.removeFeatureState(s2, e2.id, i2) : this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types."))); - } - getFeatureState(e2) { + var o2 = e3.source, r2 = this.sourceCaches[o2]; + if (void 0 !== r2) { + var a2 = r2.getSource().type, n2 = "vector" === a2 ? e3.sourceLayer : void 0; + "vector" !== a2 || n2 ? i3 && "string" != typeof e3.id && "number" != typeof e3.id ? this.fire(new t.ErrorEvent(new Error("A feature id is required to remove its specific state property."))) : r2.removeFeatureState(n2, e3.id, i3) : this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types."))); + } else + this.fire(new t.ErrorEvent(new Error("The source '" + o2 + "' does not exist in the map's style."))); + }, i2.prototype.getFeatureState = function(e3) { this._checkLoaded(); - const i2 = e2.source, o2 = e2.sourceLayer, a2 = this.sourceCaches[i2]; - if (void 0 !== a2) - return "vector" !== a2.getSource().type || o2 ? (void 0 === e2.id && this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))), a2.getFeatureState(o2, e2.id)) : void this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types."))); - this.fire(new t.ErrorEvent(new Error(`The source '${i2}' does not exist in the map's style.`))); - } - getTransition() { + var i3 = e3.source, o2 = e3.sourceLayer, r2 = this.sourceCaches[i3]; + if (void 0 !== r2) { + if ("vector" !== r2.getSource().type || o2) + return void 0 === e3.id && this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))), r2.getFeatureState(o2, e3.id); + this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types."))); + } else + this.fire(new t.ErrorEvent(new Error("The source '" + i3 + "' does not exist in the map's style."))); + }, i2.prototype.getTransition = function() { return t.extend({ duration: 300, delay: 0 }, this.stylesheet && this.stylesheet.transition); - } - serialize() { - return t.filterObject({ version: this.stylesheet.version, name: this.stylesheet.name, metadata: this.stylesheet.metadata, light: this.stylesheet.light, center: this.stylesheet.center, zoom: this.stylesheet.zoom, bearing: this.stylesheet.bearing, pitch: this.stylesheet.pitch, sprite: this.stylesheet.sprite, glyphs: this.stylesheet.glyphs, transition: this.stylesheet.transition, sources: t.mapObject(this.sourceCaches, (t2) => t2.serialize()), layers: this._serializeLayers(this._order) }, (t2) => void 0 !== t2); - } - _updateLayer(t2) { + }, i2.prototype.serialize = function() { + return t.filterObject({ version: this.stylesheet.version, name: this.stylesheet.name, metadata: this.stylesheet.metadata, light: this.stylesheet.light, center: this.stylesheet.center, zoom: this.stylesheet.zoom, bearing: this.stylesheet.bearing, pitch: this.stylesheet.pitch, sprite: this.stylesheet.sprite, glyphs: this.stylesheet.glyphs, transition: this.stylesheet.transition, sources: t.mapObject(this.sourceCaches, function(t2) { + return t2.serialize(); + }), layers: this._serializeLayers(this._order) }, function(t2) { + return void 0 !== t2; + }); + }, i2.prototype._updateLayer = function(t2) { this._updatedLayers[t2.id] = true, t2.source && !this._updatedSources[t2.source] && "raster" !== this.sourceCaches[t2.source].getSource().type && (this._updatedSources[t2.source] = "reload", this.sourceCaches[t2.source].pause()), this._changed = true; - } - _flattenAndSortRenderedFeatures(t2) { - const e2 = (t3) => "fill-extrusion" === this._layers[t3].type, i2 = {}, o2 = []; - for (let a3 = this._order.length - 1; a3 >= 0; a3--) { - const r2 = this._order[a3]; - if (e2(r2)) { - i2[r2] = a3; - for (const e3 of t2) { - const t3 = e3[r2]; - if (t3) - for (const e4 of t3) - o2.push(e4); + }, i2.prototype._flattenAndSortRenderedFeatures = function(t2) { + for (var e3 = this, i3 = function(t3) { + return "fill-extrusion" === e3._layers[t3].type; + }, o2 = {}, r2 = [], a2 = this._order.length - 1; a2 >= 0; a2--) { + var n2 = this._order[a2]; + if (i3(n2)) { + o2[n2] = a2; + for (var s2 = 0, l2 = t2; s2 < l2.length; s2 += 1) { + var c3 = l2[s2][n2]; + if (c3) + for (var u2 = 0, h3 = c3; u2 < h3.length; u2 += 1) + r2.push(h3[u2]); } } } - o2.sort((t3, e3) => e3.intersectionZ - t3.intersectionZ); - const a2 = []; - for (let r2 = this._order.length - 1; r2 >= 0; r2--) { - const s2 = this._order[r2]; - if (e2(s2)) - for (let t3 = o2.length - 1; t3 >= 0; t3--) { - const e3 = o2[t3].feature; - if (i2[e3.layer.id] < r2) + r2.sort(function(t3, e4) { + return e4.intersectionZ - t3.intersectionZ; + }); + for (var p3 = [], d2 = this._order.length - 1; d2 >= 0; d2--) { + var _2 = this._order[d2]; + if (i3(_2)) + for (var f2 = r2.length - 1; f2 >= 0; f2--) { + var m2 = r2[f2].feature; + if (o2[m2.layer.id] < d2) break; - a2.push(e3), o2.pop(); + p3.push(m2), r2.pop(); } else - for (const e3 of t2) { - const t3 = e3[s2]; - if (t3) - for (const e4 of t3) - a2.push(e4.feature); + for (var g2 = 0, v3 = t2; g2 < v3.length; g2 += 1) { + var y3 = v3[g2][_2]; + if (y3) + for (var x2 = 0, b2 = y3; x2 < b2.length; x2 += 1) + p3.push(b2[x2].feature); } } - return a2; - } - queryRenderedFeatures(e2, i2, o2) { - i2 && i2.filter && this._validate(t.validateStyle.filter, "queryRenderedFeatures.filter", i2.filter, null, i2); - const a2 = {}; - if (i2 && i2.layers) { - if (!Array.isArray(i2.layers)) + return p3; + }, i2.prototype.queryRenderedFeatures = function(e3, i3, o2) { + i3 && i3.filter && this._validate(t.validateStyle.filter, "queryRenderedFeatures.filter", i3.filter, null, i3); + var r2 = {}; + if (i3 && i3.layers) { + if (!Array.isArray(i3.layers)) return this.fire(new t.ErrorEvent(new Error("parameters.layers must be an Array."))), []; - for (const e3 of i2.layers) { - const i3 = this._layers[e3]; - if (!i3) - return this.fire(new t.ErrorEvent(new Error(`The layer '${e3}' does not exist in the map's style and cannot be queried for features.`))), []; - a2[i3.source] = true; + for (var a2 = 0, n2 = i3.layers; a2 < n2.length; a2 += 1) { + var s2 = n2[a2], l2 = this._layers[s2]; + if (!l2) + return this.fire(new t.ErrorEvent(new Error("The layer '" + s2 + "' does not exist in the map's style and cannot be queried for features."))), []; + r2[l2.source] = true; } } - const r2 = []; - i2.availableImages = this._availableImages; - for (const t2 in this.sourceCaches) - i2.layers && !a2[t2] || r2.push(L(this.sourceCaches[t2], this._layers, this._serializedLayers, e2, i2, o2)); - return this.placement && r2.push(function(t2, e3, i3, o3, a3, r3, s2) { - const n2 = {}, l2 = r3.queryRenderedSymbols(o3), c3 = []; - for (const t3 of Object.keys(l2).map(Number)) - c3.push(s2[t3]); - c3.sort(R); - for (const i4 of c3) { - const o4 = i4.featureIndex.lookupSymbolFeatures(l2[i4.bucketInstanceId], e3, i4.bucketIndex, i4.sourceLayerIndex, a3.filter, a3.layers, a3.availableImages, t2); - for (const t3 in o4) { - const e4 = n2[t3] = n2[t3] || [], a4 = o4[t3]; - a4.sort((t4, e5) => { - const o5 = i4.featureSortOrder; + var c3 = []; + for (var u2 in i3.availableImages = this._availableImages, this.sourceCaches) + i3.layers && !r2[u2] || c3.push(O2(this.sourceCaches[u2], this._layers, this._serializedLayers, e3, i3, o2)); + return this.placement && c3.push(function(t2, e4, i4, o3, r3, a3, n3) { + for (var s3 = {}, l3 = a3.queryRenderedSymbols(o3), c4 = [], u3 = 0, h3 = Object.keys(l3).map(Number); u3 < h3.length; u3 += 1) + c4.push(n3[h3[u3]]); + c4.sort(F); + for (var p3 = function() { + var i5 = _2[d2], o4 = i5.featureIndex.lookupSymbolFeatures(l3[i5.bucketInstanceId], e4, i5.bucketIndex, i5.sourceLayerIndex, r3.filter, r3.layers, r3.availableImages, t2); + for (var a4 in o4) { + var n4 = s3[a4] = s3[a4] || [], c5 = o4[a4]; + c5.sort(function(t3, e5) { + var o5 = i5.featureSortOrder; if (o5) { - const i5 = o5.indexOf(t4.featureIndex); - return o5.indexOf(e5.featureIndex) - i5; + var r4 = o5.indexOf(t3.featureIndex); + return o5.indexOf(e5.featureIndex) - r4; } - return e5.featureIndex - t4.featureIndex; + return e5.featureIndex - t3.featureIndex; }); - for (const t4 of a4) - e4.push(t4); + for (var u4 = 0, h4 = c5; u4 < h4.length; u4 += 1) + n4.push(h4[u4]); } - } - for (const e4 in n2) - n2[e4].forEach((o4) => { - const a4 = o4.feature, r4 = i3[t2[e4].source].getFeatureState(a4.layer["source-layer"], a4.id); - a4.source = a4.layer.source, a4.layer["source-layer"] && (a4.sourceLayer = a4.layer["source-layer"]), a4.state = r4; + }, d2 = 0, _2 = c4; d2 < _2.length; d2 += 1) + p3(); + var f2 = function(e5) { + s3[e5].forEach(function(o4) { + var r4 = o4.feature, a4 = i4[t2[e5].source].getFeatureState(r4.layer["source-layer"], r4.id); + r4.source = r4.layer.source, r4.layer["source-layer"] && (r4.sourceLayer = r4.layer["source-layer"]), r4.state = a4; }); - return n2; - }(this._layers, this._serializedLayers, this.sourceCaches, e2, i2, this.placement.collisionIndex, this.placement.retainedQueryData)), this._flattenAndSortRenderedFeatures(r2); - } - querySourceFeatures(e2, i2) { - i2 && i2.filter && this._validate(t.validateStyle.filter, "querySourceFeatures.filter", i2.filter, null, i2); - const o2 = this.sourceCaches[e2]; - return o2 ? function(t2, e3) { - const i3 = t2.getRenderableIds().map((e4) => t2.getTileByID(e4)), o3 = [], a2 = {}; - for (let t3 = 0; t3 < i3.length; t3++) { - const r2 = i3[t3], s2 = r2.tileID.canonical.key; - a2[s2] || (a2[s2] = true, r2.querySourceFeatures(o3, e3)); + }; + for (var m2 in s3) + f2(m2); + return s3; + }(this._layers, this._serializedLayers, this.sourceCaches, e3, i3, this.placement.collisionIndex, this.placement.retainedQueryData)), this._flattenAndSortRenderedFeatures(c3); + }, i2.prototype.querySourceFeatures = function(e3, i3) { + i3 && i3.filter && this._validate(t.validateStyle.filter, "querySourceFeatures.filter", i3.filter, null, i3); + var o2 = this.sourceCaches[e3]; + return o2 ? function(t2, e4) { + for (var i4 = t2.getRenderableIds().map(function(e5) { + return t2.getTileByID(e5); + }), o3 = [], r2 = {}, a2 = 0; a2 < i4.length; a2++) { + var n2 = i4[a2], s2 = n2.tileID.canonical.key; + r2[s2] || (r2[s2] = true, n2.querySourceFeatures(o3, e4)); } return o3; - }(o2, i2) : []; - } - addSourceType(t2, e2, i2) { - return ee.getSourceType(t2) ? i2(new Error(`A source type called "${t2}" already exists.`)) : (ee.setSourceType(t2, e2), e2.workerSourceURL ? void this.dispatcher.broadcast("loadWorkerSource", { name: t2, url: e2.workerSourceURL }, i2) : i2(null, null)); - } - getLight() { + }(o2, i3) : []; + }, i2.prototype.addSourceType = function(t2, e3, o2) { + return i2.getSourceType(t2) ? o2(new Error('A source type called "' + t2 + '" already exists.')) : (i2.setSourceType(t2, e3), e3.workerSourceURL ? void this.dispatcher.broadcast("loadWorkerSource", { name: t2, url: e3.workerSourceURL }, o2) : o2(null, null)); + }, i2.prototype.getLight = function() { return this.light.getLight(); - } - setLight(e2, i2 = {}) { - this._checkLoaded(); - const o2 = this.light.getLight(); - let r2 = false; - for (const t2 in e2) - if (!a(e2[t2], o2[t2])) { + }, i2.prototype.setLight = function(e3, i3) { + void 0 === i3 && (i3 = {}), this._checkLoaded(); + var o2 = this.light.getLight(), r2 = false; + for (var a2 in e3) + if (!t.deepEqual(e3[a2], o2[a2])) { r2 = true; break; } - if (!r2) - return; - const s2 = { now: t.exported.now(), transition: t.extend({ duration: 300, delay: 0 }, this.stylesheet.transition) }; - this.light.setLight(e2, i2), this.light.updateTransitions(s2); - } - _validate(e2, i2, o2, a2, r2 = {}) { - return (!r2 || false !== r2.validate) && Yt(this, e2.call(t.validateStyle, t.extend({ key: i2, style: this.serialize(), value: o2, styleSpec: t.spec }, a2))); - } - _remove() { - this._request && (this._request.cancel(), this._request = null), this._spriteRequest && (this._spriteRequest.cancel(), this._spriteRequest = null), t.evented.off("pluginStateChange", this._rtlTextPluginCallback); - for (const t2 in this._layers) - this._layers[t2].setEventedParent(null); - for (const t2 in this.sourceCaches) { - const e2 = this.sourceCaches[t2]; - e2.setEventedParent(null), e2.onRemove(this.map); - } + if (r2) { + var n2 = { now: t.browser.now(), transition: t.extend({ duration: 300, delay: 0 }, this.stylesheet.transition) }; + this.light.setLight(e3, i3), this.light.updateTransitions(n2); + } + }, i2.prototype._validate = function(e3, i3, o2, r2, a2) { + return void 0 === a2 && (a2 = {}), (!a2 || false !== a2.validate) && Ue(this, e3.call(t.validateStyle, t.extend({ key: i3, style: this.serialize(), value: o2, styleSpec: t.styleSpec }, r2))); + }, i2.prototype._remove = function() { + for (var e3 in this._request && (this._request.cancel(), this._request = null), this._spriteRequest && (this._spriteRequest.cancel(), this._spriteRequest = null), t.evented.off("pluginStateChange", this._rtlTextPluginCallback), this._layers) + this._layers[e3].setEventedParent(null); + for (var i3 in this.sourceCaches) + this.sourceCaches[i3].clearTiles(), this.sourceCaches[i3].setEventedParent(null); this.imageManager.setEventedParent(null), this.setEventedParent(null), this.dispatcher.remove(); - } - _clearSource(t2) { + }, i2.prototype._clearSource = function(t2) { this.sourceCaches[t2].clearTiles(); - } - _reloadSource(t2) { + }, i2.prototype._reloadSource = function(t2) { this.sourceCaches[t2].resume(), this.sourceCaches[t2].reload(); - } - _updateSources(t2) { - for (const e2 in this.sourceCaches) - this.sourceCaches[e2].update(t2, this.terrain); - } - _generateCollisionBoxes() { - for (const t2 in this.sourceCaches) + }, i2.prototype._updateSources = function(t2) { + for (var e3 in this.sourceCaches) + this.sourceCaches[e3].update(t2); + }, i2.prototype._generateCollisionBoxes = function() { + for (var t2 in this.sourceCaches) this._reloadSource(t2); - } - _updatePlacement(e2, i2, o2, a2, r2 = false) { - let s2 = false, n2 = false; - const l2 = {}; - for (const t2 of this._order) { - const i3 = this._layers[t2]; - if ("symbol" !== i3.type) - continue; - if (!l2[i3.source]) { - const t3 = this.sourceCaches[i3.source]; - l2[i3.source] = t3.getRenderableIds(true).map((e3) => t3.getTileByID(e3)).sort((t4, e3) => e3.tileID.overscaledZ - t4.tileID.overscaledZ || (t4.tileID.isLessThan(e3.tileID) ? -1 : 1)); + }, i2.prototype._updatePlacement = function(e3, i3, o2, r2, a2) { + void 0 === a2 && (a2 = false); + for (var n2 = false, s2 = false, l2 = {}, c3 = 0, u2 = this._order; c3 < u2.length; c3 += 1) { + var h3 = this._layers[u2[c3]]; + if ("symbol" === h3.type) { + if (!l2[h3.source]) { + var p3 = this.sourceCaches[h3.source]; + l2[h3.source] = p3.getRenderableIds(true).map(function(t2) { + return p3.getTileByID(t2); + }).sort(function(t2, e4) { + return e4.tileID.overscaledZ - t2.tileID.overscaledZ || (t2.tileID.isLessThan(e4.tileID) ? -1 : 1); + }); + } + var d2 = this.crossTileSymbolIndex.addLayer(h3, l2[h3.source], e3.center.lng); + n2 = n2 || d2; } - const o3 = this.crossTileSymbolIndex.addLayer(i3, l2[i3.source], e2.center.lng); - s2 = s2 || o3; } - if (this.crossTileSymbolIndex.pruneUnusedLayers(this._order), ((r2 = r2 || this._layerOrderChanged || 0 === o2) || !this.pauseablePlacement || this.pauseablePlacement.isDone() && !this.placement.stillRecent(t.exported.now(), e2.zoom)) && (this.pauseablePlacement = new Zt(e2, this.terrain, this._order, r2, i2, o2, a2, this.placement), this._layerOrderChanged = false), this.pauseablePlacement.isDone() ? this.placement.setStale() : (this.pauseablePlacement.continuePlacement(this._order, this._layers, l2), this.pauseablePlacement.isDone() && (this.placement = this.pauseablePlacement.commit(t.exported.now()), n2 = true), s2 && this.pauseablePlacement.placement.setStale()), n2 || s2) - for (const t2 of this._order) { - const e3 = this._layers[t2]; - "symbol" === e3.type && this.placement.updateLayerOpacities(e3, l2[e3.source]); + if (this.crossTileSymbolIndex.pruneUnusedLayers(this._order), ((a2 = a2 || this._layerOrderChanged || 0 === o2) || !this.pauseablePlacement || this.pauseablePlacement.isDone() && !this.placement.stillRecent(t.browser.now(), e3.zoom)) && (this.pauseablePlacement = new Le(e3, this._order, a2, i3, o2, r2, this.placement), this._layerOrderChanged = false), this.pauseablePlacement.isDone() ? this.placement.setStale() : (this.pauseablePlacement.continuePlacement(this._order, this._layers, l2), this.pauseablePlacement.isDone() && (this.placement = this.pauseablePlacement.commit(t.browser.now()), s2 = true), n2 && this.pauseablePlacement.placement.setStale()), s2 || n2) + for (var _2 = 0, f2 = this._order; _2 < f2.length; _2 += 1) { + var m2 = this._layers[f2[_2]]; + "symbol" === m2.type && this.placement.updateLayerOpacities(m2, l2[m2.source]); } - return !this.pauseablePlacement.isDone() || this.placement.hasTransitions(t.exported.now()); - } - _releaseSymbolFadeTiles() { - for (const t2 in this.sourceCaches) + return !this.pauseablePlacement.isDone() || this.placement.hasTransitions(t.browser.now()); + }, i2.prototype._releaseSymbolFadeTiles = function() { + for (var t2 in this.sourceCaches) this.sourceCaches[t2].releaseSymbolFadeTiles(); - } - getImages(t2, e2, i2) { - this.imageManager.getImages(e2.icons, i2), this._updateTilesForChangedImages(); - const o2 = this.sourceCaches[e2.source]; - o2 && o2.setDependencies(e2.tileID.key, e2.type, e2.icons); - } - getGlyphs(t2, e2, i2) { - this.glyphManager.getGlyphs(e2.stacks, i2); - } - getResource(e2, i2, o2) { - return t.makeRequest(i2, o2); - } - } - ee.getSourceType = function(t2) { - return M[t2]; - }, ee.setSourceType = function(t2, e2) { - M[t2] = e2; - }, ee.registerForPluginStateChange = t.registerForPluginStateChange; - var ie = "attribute vec2 a_pos;uniform mat4 u_matrix;varying vec2 v_texture_pos;varying float v_depth;void main() {v_texture_pos=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos,get_elevation(a_pos),1.0);v_depth=gl_Position.z/gl_Position.w;}"; - const oe = { prelude: ae("#ifdef GL_ES\nprecision mediump float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif", "#ifdef GL_ES\nprecision highp float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}\n#ifdef TERRAIN3D\nuniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_offset;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth;\n#endif\nconst highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {\n#ifdef TERRAIN3D\nhighp float d=unpack(texture2D(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));\n#else\nreturn 1.0;\n#endif\n}float calculate_visibility(vec4 pos) {\n#ifdef TERRAIN3D\nvec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;\n#else\nreturn 1.0;\n#endif\n}float ele(vec2 pos) {\n#ifdef TERRAIN3D\nvec4 rgb=(texture2D(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;\n#else\nreturn 0.0;\n#endif\n}float get_elevation(vec2 pos) {\n#ifdef TERRAIN3D\nvec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return (elevation+u_terrain_offset)*u_terrain_exaggeration;\n#else\nreturn 0.0;\n#endif\n}"), background: ae("uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"), backgroundPattern: ae("uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"), circle: ae("varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);float ele=get_elevation(circle_center);v_visibility=calculate_visibility(u_matrix*vec4(circle_center,ele,1.0));if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,ele,1);} else {gl_Position=u_matrix*vec4(circle_center,ele,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}"), clippingMask: ae("void main() {gl_FragColor=vec4(1.0);}", "attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"), heatmap: ae("uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}"), heatmapTexture: ae("uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}"), collisionBox: ae("varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}", "attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,get_elevation(a_pos),1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"), collisionCircle: ae("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}", "attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"), debug: ae("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}", "attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,get_elevation(a_pos),1);}"), fill: ae("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}"), fillOutline: ae("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"), fillOutlinePattern: ae("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"), fillPattern: ae("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}"), fillExtrusion: ae("varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\n#ifdef TERRAIN3D\nattribute vec2 a_centroid;\n#endif\nvarying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;\n#ifdef TERRAIN3D\nfloat baseDelta=10.0;float ele=get_elevation(a_centroid);\n#else\nfloat baseDelta=0.0;float ele=0.0;\n#endif\nbase=max(0.0,ele+base-baseDelta);height=max(0.0,ele+height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}"), fillExtrusionPattern: ae("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\n#ifdef TERRAIN3D\nattribute vec2 a_centroid;\n#endif\nvarying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;\n#ifdef TERRAIN3D\nfloat baseDelta=10.0;float ele=get_elevation(a_centroid);\n#else\nfloat baseDelta=0.0;float ele=0.0;\n#endif\nbase=max(0.0,ele+base-baseDelta);height=max(0.0,ele+height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}"), hillshadePrepare: ae("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"), hillshade: ae("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"), line: ae("uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}"), lineGradient: ae("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}"), linePattern: ae("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}"), lineSDF: ae("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}"), raster: ae("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"), symbolIcon: ae("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),z,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}"), symbolSDF: ae("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}"), symbolTextAndIcon: ae("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}"), terrain: ae("uniform sampler2D u_texture;varying vec2 v_texture_pos;void main() {gl_FragColor=texture2D(u_texture,v_texture_pos);}", ie), terrainDepth: ae("varying float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {gl_FragColor=pack(v_depth);}", ie), terrainCoords: ae("precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;varying vec2 v_texture_pos;void main() {vec4 rgba=texture2D(u_texture,v_texture_pos);gl_FragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}", ie) }; - function ae(t2, e2) { - const i2 = /#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g, o2 = e2.match(/attribute ([\w]+) ([\w]+)/g), a2 = t2.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), r2 = e2.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), s2 = r2 ? r2.concat(a2) : a2, n2 = {}; - return { fragmentSource: t2 = t2.replace(i2, (t3, e3, i3, o3, a3) => (n2[a3] = true, "define" === e3 ? ` -#ifndef HAS_UNIFORM_u_${a3} -varying ${i3} ${o3} ${a3}; -#else -uniform ${i3} ${o3} u_${a3}; -#endif -` : ` -#ifdef HAS_UNIFORM_u_${a3} - ${i3} ${o3} ${a3} = u_${a3}; -#endif -`)), vertexSource: e2 = e2.replace(i2, (t3, e3, i3, o3, a3) => { - const r3 = "float" === o3 ? "vec2" : "vec4", s3 = a3.match(/color/) ? "color" : r3; - return n2[a3] ? "define" === e3 ? ` -#ifndef HAS_UNIFORM_u_${a3} -uniform lowp float u_${a3}_t; -attribute ${i3} ${r3} a_${a3}; -varying ${i3} ${o3} ${a3}; -#else -uniform ${i3} ${o3} u_${a3}; -#endif -` : "vec4" === s3 ? ` -#ifndef HAS_UNIFORM_u_${a3} - ${a3} = a_${a3}; -#else - ${i3} ${o3} ${a3} = u_${a3}; -#endif -` : ` -#ifndef HAS_UNIFORM_u_${a3} - ${a3} = unpack_mix_${s3}(a_${a3}, u_${a3}_t); -#else - ${i3} ${o3} ${a3} = u_${a3}; -#endif -` : "define" === e3 ? ` -#ifndef HAS_UNIFORM_u_${a3} -uniform lowp float u_${a3}_t; -attribute ${i3} ${r3} a_${a3}; -#else -uniform ${i3} ${o3} u_${a3}; -#endif -` : "vec4" === s3 ? ` -#ifndef HAS_UNIFORM_u_${a3} - ${i3} ${o3} ${a3} = a_${a3}; -#else - ${i3} ${o3} ${a3} = u_${a3}; -#endif -` : ` -#ifndef HAS_UNIFORM_u_${a3} - ${i3} ${o3} ${a3} = unpack_mix_${s3}(a_${a3}, u_${a3}_t); -#else - ${i3} ${o3} ${a3} = u_${a3}; -#endif -`; - }), staticAttributes: o2, staticUniforms: s2 }; - } - class re { - constructor() { - this.boundProgram = null, this.boundLayoutVertexBuffer = null, this.boundPaintVertexBuffers = [], this.boundIndexBuffer = null, this.boundVertexOffset = null, this.boundDynamicVertexBuffer = null, this.vao = null; - } - bind(t2, e2, i2, o2, a2, r2, s2, n2, l2) { - this.context = t2; - let c3 = this.boundPaintVertexBuffers.length !== o2.length; - for (let t3 = 0; !c3 && t3 < o2.length; t3++) - this.boundPaintVertexBuffers[t3] !== o2[t3] && (c3 = true); - t2.extVertexArrayObject && this.vao && this.boundProgram === e2 && this.boundLayoutVertexBuffer === i2 && !c3 && this.boundIndexBuffer === a2 && this.boundVertexOffset === r2 && this.boundDynamicVertexBuffer === s2 && this.boundDynamicVertexBuffer2 === n2 && this.boundDynamicVertexBuffer3 === l2 ? (t2.bindVertexArrayOES.set(this.vao), s2 && s2.bind(), a2 && a2.dynamicDraw && a2.bind(), n2 && n2.bind(), l2 && l2.bind()) : this.freshBind(e2, i2, o2, a2, r2, s2, n2, l2); - } - freshBind(t2, e2, i2, o2, a2, r2, s2, n2) { - let l2; - const c3 = t2.numAttributes, h3 = this.context, u2 = h3.gl; - if (h3.extVertexArrayObject) - this.vao && this.destroy(), this.vao = h3.extVertexArrayObject.createVertexArrayOES(), h3.bindVertexArrayOES.set(this.vao), l2 = 0, this.boundProgram = t2, this.boundLayoutVertexBuffer = e2, this.boundPaintVertexBuffers = i2, this.boundIndexBuffer = o2, this.boundVertexOffset = a2, this.boundDynamicVertexBuffer = r2, this.boundDynamicVertexBuffer2 = s2, this.boundDynamicVertexBuffer3 = n2; - else { - l2 = h3.currentNumAttributes || 0; - for (let t3 = c3; t3 < l2; t3++) - u2.disableVertexAttribArray(t3); + }, i2.prototype.getImages = function(t2, e3, i3) { + this.imageManager.getImages(e3.icons, i3), this._updateTilesForChangedImages(); + var o2 = this.sourceCaches[e3.source]; + o2 && o2.setDependencies(e3.tileID.key, e3.type, e3.icons); + }, i2.prototype.getGlyphs = function(t2, e3, i3) { + this.glyphManager.getGlyphs(e3.stacks, i3); + }, i2.prototype.getResource = function(e3, i3, o2) { + return t.makeRequest(i3, o2); + }, i2; + }(t.Evented); + je.getSourceType = function(t2) { + return k[t2]; + }, je.setSourceType = function(t2, e2) { + k[t2] = e2; + }, je.registerForPluginStateChange = t.registerForPluginStateChange; + var Ve = t.createLayout([{ name: "a_pos", type: "Int16", components: 2 }]), Ge = gi("#ifdef GL_ES\nprecision mediump float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif", "#ifdef GL_ES\nprecision highp float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}"), We = gi("uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"), Xe = gi("uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"), He = gi("varying vec3 v_data;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,0,1);} else {gl_Position=u_matrix*vec4(circle_center,0,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}"), Ke = gi("void main() {gl_FragColor=vec4(1.0);}", "attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"), Ye = gi("uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}"), Je = gi("uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}"), Qe = gi("varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}", "attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"), $e = gi("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}", "attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"), ti = gi("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}", "attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,0,1);}"), ei = gi("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}"), ii = gi("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"), oi = gi("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"), ri = gi("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}"), ai = gi("varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}"), ni = gi("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}"), si = gi("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"), li = gi("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"), ci = gi("uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"), ui = gi("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"), hi = gi("uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}"), pi = gi("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}"), di = gi("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"), _i = gi("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}"), fi = gi("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}"), mi = gi("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}", "const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}"); + function gi(t2, e2) { + var i2 = /#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g, o2 = e2.match(/attribute ([\w]+) ([\w]+)/g), r2 = t2.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), a2 = e2.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), n2 = a2 ? a2.concat(r2) : r2, s2 = {}; + return { fragmentSource: t2 = t2.replace(i2, function(t3, e3, i3, o3, r3) { + return s2[r3] = true, "define" === e3 ? "\n#ifndef HAS_UNIFORM_u_" + r3 + "\nvarying " + i3 + " " + o3 + " " + r3 + ";\n#else\nuniform " + i3 + " " + o3 + " u_" + r3 + ";\n#endif\n" : "\n#ifdef HAS_UNIFORM_u_" + r3 + "\n " + i3 + " " + o3 + " " + r3 + " = u_" + r3 + ";\n#endif\n"; + }), vertexSource: e2 = e2.replace(i2, function(t3, e3, i3, o3, r3) { + var a3 = "float" === o3 ? "vec2" : "vec4", n3 = r3.match(/color/) ? "color" : a3; + return s2[r3] ? "define" === e3 ? "\n#ifndef HAS_UNIFORM_u_" + r3 + "\nuniform lowp float u_" + r3 + "_t;\nattribute " + i3 + " " + a3 + " a_" + r3 + ";\nvarying " + i3 + " " + o3 + " " + r3 + ";\n#else\nuniform " + i3 + " " + o3 + " u_" + r3 + ";\n#endif\n" : "vec4" === n3 ? "\n#ifndef HAS_UNIFORM_u_" + r3 + "\n " + r3 + " = a_" + r3 + ";\n#else\n " + i3 + " " + o3 + " " + r3 + " = u_" + r3 + ";\n#endif\n" : "\n#ifndef HAS_UNIFORM_u_" + r3 + "\n " + r3 + " = unpack_mix_" + n3 + "(a_" + r3 + ", u_" + r3 + "_t);\n#else\n " + i3 + " " + o3 + " " + r3 + " = u_" + r3 + ";\n#endif\n" : "define" === e3 ? "\n#ifndef HAS_UNIFORM_u_" + r3 + "\nuniform lowp float u_" + r3 + "_t;\nattribute " + i3 + " " + a3 + " a_" + r3 + ";\n#else\nuniform " + i3 + " " + o3 + " u_" + r3 + ";\n#endif\n" : "vec4" === n3 ? "\n#ifndef HAS_UNIFORM_u_" + r3 + "\n " + i3 + " " + o3 + " " + r3 + " = a_" + r3 + ";\n#else\n " + i3 + " " + o3 + " " + r3 + " = u_" + r3 + ";\n#endif\n" : "\n#ifndef HAS_UNIFORM_u_" + r3 + "\n " + i3 + " " + o3 + " " + r3 + " = unpack_mix_" + n3 + "(a_" + r3 + ", u_" + r3 + "_t);\n#else\n " + i3 + " " + o3 + " " + r3 + " = u_" + r3 + ";\n#endif\n"; + }), staticAttributes: o2, staticUniforms: n2 }; + } + var vi = Object.freeze({ __proto__: null, prelude: Ge, background: We, backgroundPattern: Xe, circle: He, clippingMask: Ke, heatmap: Ye, heatmapTexture: Je, collisionBox: Qe, collisionCircle: $e, debug: ti, fill: ei, fillOutline: ii, fillOutlinePattern: oi, fillPattern: ri, fillExtrusion: ai, fillExtrusionPattern: ni, hillshadePrepare: si, hillshade: li, line: ci, lineGradient: ui, linePattern: hi, lineSDF: pi, raster: di, symbolIcon: _i, symbolSDF: fi, symbolTextAndIcon: mi }), yi = function() { + this.boundProgram = null, this.boundLayoutVertexBuffer = null, this.boundPaintVertexBuffers = [], this.boundIndexBuffer = null, this.boundVertexOffset = null, this.boundDynamicVertexBuffer = null, this.vao = null; + }; + function xi(t2) { + for (var e2 = [], i2 = 0; i2 < t2.length; i2++) + if (null !== t2[i2]) { + var o2 = t2[i2].split(" "); + e2.push(o2.pop()); } - e2.enableAttributes(u2, t2); - for (const e3 of i2) - e3.enableAttributes(u2, t2); - r2 && r2.enableAttributes(u2, t2), s2 && s2.enableAttributes(u2, t2), n2 && n2.enableAttributes(u2, t2), e2.bind(), e2.setVertexAttribPointers(u2, t2, a2); - for (const e3 of i2) - e3.bind(), e3.setVertexAttribPointers(u2, t2, a2); - r2 && (r2.bind(), r2.setVertexAttribPointers(u2, t2, a2)), o2 && o2.bind(), s2 && (s2.bind(), s2.setVertexAttribPointers(u2, t2, a2)), n2 && (n2.bind(), n2.setVertexAttribPointers(u2, t2, a2)), h3.currentNumAttributes = c3; - } - destroy() { - this.vao && (this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao), this.vao = null); - } - } - function se(t2) { - const e2 = []; - for (let i2 = 0; i2 < t2.length; i2++) { - if (null === t2[i2]) - continue; - const o2 = t2[i2].split(" "); - e2.push(o2.pop()); - } return e2; } - class ne { - constructor(e2, i2, o2, a2, r2, s2, n2) { - const l2 = e2.gl; - this.program = l2.createProgram(); - const c3 = se(o2.staticAttributes), h3 = a2 ? a2.getBinderAttributes() : [], u2 = c3.concat(h3), d2 = oe.prelude.staticUniforms ? se(oe.prelude.staticUniforms) : [], m2 = o2.staticUniforms ? se(o2.staticUniforms) : [], _2 = a2 ? a2.getBinderUniforms() : [], p3 = d2.concat(m2).concat(_2), f2 = []; - for (const t2 of p3) - f2.indexOf(t2) < 0 && f2.push(t2); - const g2 = a2 ? a2.defines() : []; - s2 && g2.push("#define OVERDRAW_INSPECTOR;"), n2 && g2.push("#define TERRAIN3D;"); - const x2 = g2.concat(oe.prelude.fragmentSource, o2.fragmentSource).join("\n"), v3 = g2.concat(oe.prelude.vertexSource, o2.vertexSource).join("\n"), y3 = l2.createShader(l2.FRAGMENT_SHADER); - if (l2.isContextLost()) - return void (this.failedToCreate = true); - l2.shaderSource(y3, x2), l2.compileShader(y3), l2.attachShader(this.program, y3); - const b2 = l2.createShader(l2.VERTEX_SHADER); - if (l2.isContextLost()) - return void (this.failedToCreate = true); - l2.shaderSource(b2, v3), l2.compileShader(b2), l2.attachShader(this.program, b2), this.attributes = {}; - const w2 = {}; - this.numAttributes = u2.length; - for (let t2 = 0; t2 < this.numAttributes; t2++) - u2[t2] && (l2.bindAttribLocation(this.program, t2, u2[t2]), this.attributes[u2[t2]] = t2); - l2.linkProgram(this.program), l2.deleteShader(b2), l2.deleteShader(y3); - for (let t2 = 0; t2 < f2.length; t2++) { - const e3 = f2[t2]; - if (e3 && !w2[e3]) { - const t3 = l2.getUniformLocation(this.program, e3); - t3 && (w2[e3] = t3); + yi.prototype.bind = function(t2, e2, i2, o2, r2, a2, n2, s2) { + this.context = t2; + for (var l2 = this.boundPaintVertexBuffers.length !== o2.length, c3 = 0; !l2 && c3 < o2.length; c3++) + this.boundPaintVertexBuffers[c3] !== o2[c3] && (l2 = true); + t2.extVertexArrayObject && this.vao && this.boundProgram === e2 && this.boundLayoutVertexBuffer === i2 && !l2 && this.boundIndexBuffer === r2 && this.boundVertexOffset === a2 && this.boundDynamicVertexBuffer === n2 && this.boundDynamicVertexBuffer2 === s2 ? (t2.bindVertexArrayOES.set(this.vao), n2 && n2.bind(), r2 && r2.dynamicDraw && r2.bind(), s2 && s2.bind()) : this.freshBind(e2, i2, o2, r2, a2, n2, s2); + }, yi.prototype.freshBind = function(t2, e2, i2, o2, r2, a2, n2) { + var s2, l2 = t2.numAttributes, c3 = this.context, u2 = c3.gl; + if (c3.extVertexArrayObject) + this.vao && this.destroy(), this.vao = c3.extVertexArrayObject.createVertexArrayOES(), c3.bindVertexArrayOES.set(this.vao), s2 = 0, this.boundProgram = t2, this.boundLayoutVertexBuffer = e2, this.boundPaintVertexBuffers = i2, this.boundIndexBuffer = o2, this.boundVertexOffset = r2, this.boundDynamicVertexBuffer = a2, this.boundDynamicVertexBuffer2 = n2; + else { + s2 = c3.currentNumAttributes || 0; + for (var h3 = l2; h3 < s2; h3++) + u2.disableVertexAttribArray(h3); + } + e2.enableAttributes(u2, t2); + for (var p3 = 0, d2 = i2; p3 < d2.length; p3 += 1) + d2[p3].enableAttributes(u2, t2); + a2 && a2.enableAttributes(u2, t2), n2 && n2.enableAttributes(u2, t2), e2.bind(), e2.setVertexAttribPointers(u2, t2, r2); + for (var _2 = 0, f2 = i2; _2 < f2.length; _2 += 1) { + var m2 = f2[_2]; + m2.bind(), m2.setVertexAttribPointers(u2, t2, r2); + } + a2 && (a2.bind(), a2.setVertexAttribPointers(u2, t2, r2)), o2 && o2.bind(), n2 && (n2.bind(), n2.setVertexAttribPointers(u2, t2, r2)), c3.currentNumAttributes = l2; + }, yi.prototype.destroy = function() { + this.vao && (this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao), this.vao = null); + }; + var bi = function(t2, e2, i2, o2, r2, a2) { + var n2 = t2.gl; + this.program = n2.createProgram(); + for (var s2 = xi(i2.staticAttributes), l2 = o2 ? o2.getBinderAttributes() : [], c3 = s2.concat(l2), u2 = i2.staticUniforms ? xi(i2.staticUniforms) : [], h3 = o2 ? o2.getBinderUniforms() : [], p3 = [], d2 = 0, _2 = u2.concat(h3); d2 < _2.length; d2 += 1) { + var f2 = _2[d2]; + p3.indexOf(f2) < 0 && p3.push(f2); + } + var m2 = o2 ? o2.defines() : []; + a2 && m2.push("#define OVERDRAW_INSPECTOR;"); + var g2 = m2.concat(Ge.fragmentSource, i2.fragmentSource).join("\n"), v3 = m2.concat(Ge.vertexSource, i2.vertexSource).join("\n"), y3 = n2.createShader(n2.FRAGMENT_SHADER); + if (n2.isContextLost()) + this.failedToCreate = true; + else { + n2.shaderSource(y3, g2), n2.compileShader(y3), n2.attachShader(this.program, y3); + var x2 = n2.createShader(n2.VERTEX_SHADER); + if (n2.isContextLost()) + this.failedToCreate = true; + else { + n2.shaderSource(x2, v3), n2.compileShader(x2), n2.attachShader(this.program, x2), this.attributes = {}; + var b2 = {}; + this.numAttributes = c3.length; + for (var w2 = 0; w2 < this.numAttributes; w2++) + c3[w2] && (n2.bindAttribLocation(this.program, w2, c3[w2]), this.attributes[c3[w2]] = w2); + n2.linkProgram(this.program), n2.deleteShader(x2), n2.deleteShader(y3); + for (var T2 = 0; T2 < p3.length; T2++) { + var E2 = p3[T2]; + if (E2 && !b2[E2]) { + var I3 = n2.getUniformLocation(this.program, E2); + I3 && (b2[E2] = I3); + } } + this.fixedUniforms = r2(t2, b2), this.binderUniforms = o2 ? o2.getUniforms(t2, b2) : []; } - this.fixedUniforms = r2(e2, w2), this.terrainUniforms = ((e3, i3) => ({ u_depth: new t.Uniform1i(e3, i3.u_depth), u_terrain: new t.Uniform1i(e3, i3.u_terrain), u_terrain_dim: new t.Uniform1f(e3, i3.u_terrain_dim), u_terrain_matrix: new t.UniformMatrix4f(e3, i3.u_terrain_matrix), u_terrain_unpack: new t.Uniform4f(e3, i3.u_terrain_unpack), u_terrain_offset: new t.Uniform1f(e3, i3.u_terrain_offset), u_terrain_exaggeration: new t.Uniform1f(e3, i3.u_terrain_exaggeration) }))(e2, w2), this.binderUniforms = a2 ? a2.getUniforms(e2, w2) : []; } - draw(t2, e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2, d2, m2, _2, p3, f2, g2) { - const x2 = t2.gl; - if (this.failedToCreate) - return; - if (t2.program.set(this.program), t2.setDepthMode(i2), t2.setStencilMode(o2), t2.setColorMode(a2), t2.setCullFace(r2), n2) { - t2.activeTexture.set(x2.TEXTURE2), x2.bindTexture(x2.TEXTURE_2D, n2.depthTexture), t2.activeTexture.set(x2.TEXTURE3), x2.bindTexture(x2.TEXTURE_2D, n2.texture); - for (const t3 in this.terrainUniforms) - this.terrainUniforms[t3].set(n2[t3]); - } - for (const t3 in this.fixedUniforms) - this.fixedUniforms[t3].set(s2[t3]); - _2 && _2.setUniforms(t2, this.binderUniforms, d2, { zoom: m2 }); - let v3 = 0; - switch (e2) { - case x2.LINES: - v3 = 2; - break; - case x2.TRIANGLES: - v3 = 3; - break; - case x2.LINE_STRIP: - v3 = 1; - } - for (const i3 of u2.get()) { - const o3 = i3.vaos || (i3.vaos = {}); - (o3[l2] || (o3[l2] = new re())).bind(t2, this, c3, _2 ? _2.getPaintVertexBuffers() : [], h3, i3.vertexOffset, p3, f2, g2), x2.drawElements(e2, i3.primitiveLength * v3, x2.UNSIGNED_SHORT, i3.primitiveOffset * v3 * 2); - } - } - } - function le(t2, e2, i2) { - const o2 = 1 / bt(i2, 1, e2.transform.tileZoom), a2 = Math.pow(2, i2.tileID.overscaledZ), r2 = i2.tileSize * Math.pow(2, e2.transform.tileZoom) / a2, s2 = r2 * (i2.tileID.canonical.x + i2.tileID.wrap * a2), n2 = r2 * i2.tileID.canonical.y; - return { u_image: 0, u_texsize: i2.imageAtlasTexture.size, u_scale: [o2, t2.fromScale, t2.toScale], u_fade: t2.t, u_pixel_coord_upper: [s2 >> 16, n2 >> 16], u_pixel_coord_lower: [65535 & s2, 65535 & n2] }; - } - const ce = (e2, i2, o2, a2) => { - const r2 = i2.style.light, s2 = r2.properties.get("position"), n2 = [s2.x, s2.y, s2.z], l2 = t.create$1(); - "viewport" === r2.properties.get("anchor") && t.fromRotation(l2, -i2.transform.angle), t.transformMat3(n2, n2, l2); - const c3 = r2.properties.get("color"); - return { u_matrix: e2, u_lightpos: n2, u_lightintensity: r2.properties.get("intensity"), u_lightcolor: [c3.r, c3.g, c3.b], u_vertical_gradient: +o2, u_opacity: a2 }; - }, he = (e2, i2, o2, a2, r2, s2, n2) => t.extend(ce(e2, i2, o2, a2), le(s2, i2, n2), { u_height_factor: -Math.pow(2, r2.overscaledZ) / n2.tileSize / 8 }), ue = (t2) => ({ u_matrix: t2 }), de = (e2, i2, o2, a2) => t.extend(ue(e2), le(o2, i2, a2)), me = (t2, e2) => ({ u_matrix: t2, u_world: e2 }), _e = (e2, i2, o2, a2, r2) => t.extend(de(e2, i2, o2, a2), { u_world: r2 }), pe = (t2, e2, i2, o2) => { - const a2 = t2.transform; - let r2, s2; - if ("map" === o2.paint.get("circle-pitch-alignment")) { - const t3 = bt(i2, 1, a2.zoom); - r2 = true, s2 = [t3, t3]; + }; + function wi(t2, e2, i2) { + var o2 = 1 / pe(i2, 1, e2.transform.tileZoom), r2 = Math.pow(2, i2.tileID.overscaledZ), a2 = i2.tileSize * Math.pow(2, e2.transform.tileZoom) / r2, n2 = a2 * (i2.tileID.canonical.x + i2.tileID.wrap * r2), s2 = a2 * i2.tileID.canonical.y; + return { u_image: 0, u_texsize: i2.imageAtlasTexture.size, u_scale: [o2, t2.fromScale, t2.toScale], u_fade: t2.t, u_pixel_coord_upper: [n2 >> 16, s2 >> 16], u_pixel_coord_lower: [65535 & n2, 65535 & s2] }; + } + bi.prototype.draw = function(t2, e2, i2, o2, r2, a2, n2, s2, l2, c3, u2, h3, p3, d2, _2, f2) { + var m2, g2 = t2.gl; + if (!this.failedToCreate) { + for (var v3 in t2.program.set(this.program), t2.setDepthMode(i2), t2.setStencilMode(o2), t2.setColorMode(r2), t2.setCullFace(a2), this.fixedUniforms) + this.fixedUniforms[v3].set(n2[v3]); + d2 && d2.setUniforms(t2, this.binderUniforms, h3, { zoom: p3 }); + for (var y3 = (m2 = {}, m2[g2.LINES] = 2, m2[g2.TRIANGLES] = 3, m2[g2.LINE_STRIP] = 1, m2)[e2], x2 = 0, b2 = u2.get(); x2 < b2.length; x2 += 1) { + var w2 = b2[x2], T2 = w2.vaos || (w2.vaos = {}); + (T2[s2] || (T2[s2] = new yi())).bind(t2, this, l2, d2 ? d2.getPaintVertexBuffers() : [], c3, w2.vertexOffset, _2, f2), g2.drawElements(e2, w2.primitiveLength * y3, g2.UNSIGNED_SHORT, w2.primitiveOffset * y3 * 2); + } + } + }; + var Ti = function(e2, i2, o2, r2) { + var a2 = i2.style.light, n2 = a2.properties.get("position"), s2 = [n2.x, n2.y, n2.z], l2 = t.create$1(); + "viewport" === a2.properties.get("anchor") && t.fromRotation(l2, -i2.transform.angle), t.transformMat3(s2, s2, l2); + var c3 = a2.properties.get("color"); + return { u_matrix: e2, u_lightpos: s2, u_lightintensity: a2.properties.get("intensity"), u_lightcolor: [c3.r, c3.g, c3.b], u_vertical_gradient: +o2, u_opacity: r2 }; + }, Ei = function(e2, i2, o2, r2, a2, n2, s2) { + return t.extend(Ti(e2, i2, o2, r2), wi(n2, i2, s2), { u_height_factor: -Math.pow(2, a2.overscaledZ) / s2.tileSize / 8 }); + }, Ii = function(t2) { + return { u_matrix: t2 }; + }, Pi = function(e2, i2, o2, r2) { + return t.extend(Ii(e2), wi(o2, i2, r2)); + }, Si = function(t2, e2) { + return { u_matrix: t2, u_world: e2 }; + }, Ci = function(e2, i2, o2, r2, a2) { + return t.extend(Pi(e2, i2, o2, r2), { u_world: a2 }); + }, zi = function(e2, i2, o2, r2) { + var a2, n2, s2 = e2.transform; + if ("map" === r2.paint.get("circle-pitch-alignment")) { + var l2 = pe(o2, 1, s2.zoom); + a2 = true, n2 = [l2, l2]; } else - r2 = false, s2 = a2.pixelsToGLUnits; - return { u_camera_to_center_distance: a2.cameraToCenterDistance, u_scale_with_map: +("map" === o2.paint.get("circle-pitch-scale")), u_matrix: t2.translatePosMatrix(e2.posMatrix, i2, o2.paint.get("circle-translate"), o2.paint.get("circle-translate-anchor")), u_pitch_with_map: +r2, u_device_pixel_ratio: t2.pixelRatio, u_extrude_scale: s2 }; - }, fe = (t2, e2, i2) => { - const o2 = bt(i2, 1, e2.zoom), a2 = Math.pow(2, e2.zoom - i2.tileID.overscaledZ), r2 = i2.tileID.overscaleFactor(); - return { u_matrix: t2, u_camera_to_center_distance: e2.cameraToCenterDistance, u_pixels_to_tile_units: o2, u_extrude_scale: [e2.pixelsToGLUnits[0] / (o2 * a2), e2.pixelsToGLUnits[1] / (o2 * a2)], u_overscale_factor: r2 }; - }, ge = (t2, e2, i2 = 1) => ({ u_matrix: t2, u_color: e2, u_overlay: 0, u_overlay_scale: i2 }), xe = (t2) => ({ u_matrix: t2 }), ve = (t2, e2, i2, o2) => ({ u_matrix: t2, u_extrude_scale: bt(e2, 1, i2), u_intensity: o2 }); - function ye(e2, i2) { - const o2 = Math.pow(2, i2.canonical.z), a2 = i2.canonical.y; - return [new t.MercatorCoordinate(0, a2 / o2).toLngLat().lat, new t.MercatorCoordinate(0, (a2 + 1) / o2).toLngLat().lat]; - } - const be = (t2, e2, i2, o2) => { - const a2 = t2.transform; - return { u_matrix: Ce(t2, e2, i2, o2), u_ratio: 1 / bt(e2, 1, a2.zoom), u_device_pixel_ratio: t2.pixelRatio, u_units_to_pixels: [1 / a2.pixelsToGLUnits[0], 1 / a2.pixelsToGLUnits[1]] }; - }, we = (e2, i2, o2, a2, r2) => t.extend(be(e2, i2, o2, r2), { u_image: 0, u_image_height: a2 }), Te = (t2, e2, i2, o2, a2) => { - const r2 = t2.transform, s2 = Ie(e2, r2); - return { u_matrix: Ce(t2, e2, i2, a2), u_texsize: e2.imageAtlasTexture.size, u_ratio: 1 / bt(e2, 1, r2.zoom), u_device_pixel_ratio: t2.pixelRatio, u_image: 0, u_scale: [s2, o2.fromScale, o2.toScale], u_fade: o2.t, u_units_to_pixels: [1 / r2.pixelsToGLUnits[0], 1 / r2.pixelsToGLUnits[1]] }; - }, Ee = (e2, i2, o2, a2, r2, s2) => { - const n2 = e2.lineAtlas, l2 = Ie(i2, e2.transform), c3 = "round" === o2.layout.get("line-cap"), h3 = n2.getDash(a2.from, c3), u2 = n2.getDash(a2.to, c3), d2 = h3.width * r2.fromScale, m2 = u2.width * r2.toScale; - return t.extend(be(e2, i2, o2, s2), { u_patternscale_a: [l2 / d2, -h3.height / 2], u_patternscale_b: [l2 / m2, -u2.height / 2], u_sdfgamma: n2.width / (256 * Math.min(d2, m2) * e2.pixelRatio) / 2, u_image: 0, u_tex_y_a: h3.y, u_tex_y_b: u2.y, u_mix: r2.t }); + a2 = false, n2 = s2.pixelsToGLUnits; + return { u_camera_to_center_distance: s2.cameraToCenterDistance, u_scale_with_map: +("map" === r2.paint.get("circle-pitch-scale")), u_matrix: e2.translatePosMatrix(i2.posMatrix, o2, r2.paint.get("circle-translate"), r2.paint.get("circle-translate-anchor")), u_pitch_with_map: +a2, u_device_pixel_ratio: t.browser.devicePixelRatio, u_extrude_scale: n2 }; + }, Di = function(t2, e2, i2) { + var o2 = pe(i2, 1, e2.zoom), r2 = Math.pow(2, e2.zoom - i2.tileID.overscaledZ), a2 = i2.tileID.overscaleFactor(); + return { u_matrix: t2, u_camera_to_center_distance: e2.cameraToCenterDistance, u_pixels_to_tile_units: o2, u_extrude_scale: [e2.pixelsToGLUnits[0] / (o2 * r2), e2.pixelsToGLUnits[1] / (o2 * r2)], u_overscale_factor: a2 }; + }, Ai = function(t2, e2, i2) { + return { u_matrix: t2, u_inv_matrix: e2, u_camera_to_center_distance: i2.cameraToCenterDistance, u_viewport_size: [i2.width, i2.height] }; + }, Mi = function(t2, e2, i2) { + return void 0 === i2 && (i2 = 1), { u_matrix: t2, u_color: e2, u_overlay: 0, u_overlay_scale: i2 }; + }, Li = function(t2) { + return { u_matrix: t2 }; + }, Ri = function(t2, e2, i2, o2) { + return { u_matrix: t2, u_extrude_scale: pe(e2, 1, i2), u_intensity: o2 }; + }, ki = function(e2, i2, o2) { + var r2 = e2.transform; + return { u_matrix: Ni(e2, i2, o2), u_ratio: 1 / pe(i2, 1, r2.zoom), u_device_pixel_ratio: t.browser.devicePixelRatio, u_units_to_pixels: [1 / r2.pixelsToGLUnits[0], 1 / r2.pixelsToGLUnits[1]] }; + }, Bi = function(e2, i2, o2, r2) { + return t.extend(ki(e2, i2, o2), { u_image: 0, u_image_height: r2 }); + }, Oi = function(e2, i2, o2, r2) { + var a2 = e2.transform, n2 = Ui(i2, a2); + return { u_matrix: Ni(e2, i2, o2), u_texsize: i2.imageAtlasTexture.size, u_ratio: 1 / pe(i2, 1, a2.zoom), u_device_pixel_ratio: t.browser.devicePixelRatio, u_image: 0, u_scale: [n2, r2.fromScale, r2.toScale], u_fade: r2.t, u_units_to_pixels: [1 / a2.pixelsToGLUnits[0], 1 / a2.pixelsToGLUnits[1]] }; + }, Fi = function(e2, i2, o2, r2, a2) { + var n2 = e2.lineAtlas, s2 = Ui(i2, e2.transform), l2 = "round" === o2.layout.get("line-cap"), c3 = n2.getDash(r2.from, l2), u2 = n2.getDash(r2.to, l2), h3 = c3.width * a2.fromScale, p3 = u2.width * a2.toScale; + return t.extend(ki(e2, i2, o2), { u_patternscale_a: [s2 / h3, -c3.height / 2], u_patternscale_b: [s2 / p3, -u2.height / 2], u_sdfgamma: n2.width / (256 * Math.min(h3, p3) * t.browser.devicePixelRatio) / 2, u_image: 0, u_tex_y_a: c3.y, u_tex_y_b: u2.y, u_mix: a2.t }); }; - function Ie(t2, e2) { - return 1 / bt(t2, 1, e2.tileZoom); + function Ui(t2, e2) { + return 1 / pe(t2, 1, e2.tileZoom); } - function Ce(t2, e2, i2, o2) { - return t2.translatePosMatrix(o2 ? o2.posMatrix : e2.tileID.posMatrix, e2, i2.paint.get("line-translate"), i2.paint.get("line-translate-anchor")); + function Ni(t2, e2, i2) { + return t2.translatePosMatrix(e2.tileID.posMatrix, e2, i2.paint.get("line-translate"), i2.paint.get("line-translate-anchor")); } - const Se = (t2, e2, i2, o2, a2) => { - return { u_matrix: t2, u_tl_parent: e2, u_scale_parent: i2, u_buffer_scale: 1, u_fade_t: o2.mix, u_opacity: o2.opacity * a2.paint.get("raster-opacity"), u_image0: 0, u_image1: 1, u_brightness_low: a2.paint.get("raster-brightness-min"), u_brightness_high: a2.paint.get("raster-brightness-max"), u_saturation_factor: (s2 = a2.paint.get("raster-saturation"), s2 > 0 ? 1 - 1 / (1.001 - s2) : -s2), u_contrast_factor: (r2 = a2.paint.get("raster-contrast"), r2 > 0 ? 1 / (1 - r2) : 1 + r2), u_spin_weights: De(a2.paint.get("raster-hue-rotate")) }; - var r2, s2; + var Zi = function(t2, e2, i2, o2, r2) { + return { u_matrix: t2, u_tl_parent: e2, u_scale_parent: i2, u_buffer_scale: 1, u_fade_t: o2.mix, u_opacity: o2.opacity * r2.paint.get("raster-opacity"), u_image0: 0, u_image1: 1, u_brightness_low: r2.paint.get("raster-brightness-min"), u_brightness_high: r2.paint.get("raster-brightness-max"), u_saturation_factor: (n2 = r2.paint.get("raster-saturation"), n2 > 0 ? 1 - 1 / (1.001 - n2) : -n2), u_contrast_factor: (a2 = r2.paint.get("raster-contrast"), a2 > 0 ? 1 / (1 - a2) : 1 + a2), u_spin_weights: qi(r2.paint.get("raster-hue-rotate")) }; + var a2, n2; }; - function De(t2) { + function qi(t2) { t2 *= Math.PI / 180; - const e2 = Math.sin(t2), i2 = Math.cos(t2); + var e2 = Math.sin(t2), i2 = Math.cos(t2); return [(2 * i2 + 1) / 3, (-Math.sqrt(3) * e2 - i2 + 1) / 3, (Math.sqrt(3) * e2 - i2 + 1) / 3]; } - const ze = (t2, e2, i2, o2, a2, r2, s2, n2, l2, c3) => { - const h3 = a2.transform; - return { u_is_size_zoom_constant: +("constant" === t2 || "source" === t2), u_is_size_feature_constant: +("constant" === t2 || "camera" === t2), u_size_t: e2 ? e2.uSizeT : 0, u_size: e2 ? e2.uSize : 0, u_camera_to_center_distance: h3.cameraToCenterDistance, u_pitch: h3.pitch / 360 * 2 * Math.PI, u_rotate_symbol: +i2, u_aspect_ratio: h3.width / h3.height, u_fade_change: a2.options.fadeDuration ? a2.symbolFadeChange : 1, u_matrix: r2, u_label_plane_matrix: s2, u_coord_matrix: n2, u_is_text: +l2, u_pitch_with_map: +o2, u_texsize: c3, u_texture: 0 }; - }, Pe = (e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2) => { - const d2 = r2.transform; - return t.extend(ze(e2, i2, o2, a2, r2, s2, n2, l2, c3, h3), { u_gamma_scale: a2 ? Math.cos(d2._pitch) * d2.cameraToCenterDistance : 1, u_device_pixel_ratio: r2.pixelRatio, u_is_halo: +u2 }); - }, Me = (e2, i2, o2, a2, r2, s2, n2, l2, c3, h3) => t.extend(Pe(e2, i2, o2, a2, r2, s2, n2, l2, true, c3, true), { u_texsize_icon: h3, u_texture_icon: 1 }), Ae = (t2, e2, i2) => ({ u_matrix: t2, u_opacity: e2, u_color: i2 }), Le = (e2, i2, o2, a2, r2, s2) => t.extend(function(t2, e3, i3, o3) { - const a3 = i3.imageManager.getPattern(t2.from.toString()), r3 = i3.imageManager.getPattern(t2.to.toString()), { width: s3, height: n2 } = i3.imageManager.getPixelSize(), l2 = Math.pow(2, o3.tileID.overscaledZ), c3 = o3.tileSize * Math.pow(2, i3.transform.tileZoom) / l2, h3 = c3 * (o3.tileID.canonical.x + o3.tileID.wrap * l2), u2 = c3 * o3.tileID.canonical.y; - return { u_image: 0, u_pattern_tl_a: a3.tl, u_pattern_br_a: a3.br, u_pattern_tl_b: r3.tl, u_pattern_br_b: r3.br, u_texsize: [s3, n2], u_mix: e3.t, u_pattern_size_a: a3.displaySize, u_pattern_size_b: r3.displaySize, u_scale_a: e3.fromScale, u_scale_b: e3.toScale, u_tile_units_to_pixels: 1 / bt(o3, 1, i3.transform.tileZoom), u_pixel_coord_upper: [h3 >> 16, u2 >> 16], u_pixel_coord_lower: [65535 & h3, 65535 & u2] }; - }(a2, s2, o2, r2), { u_matrix: e2, u_opacity: i2 }), Re = { fillExtrusion: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_lightpos: new t.Uniform3f(e2, i2.u_lightpos), u_lightintensity: new t.Uniform1f(e2, i2.u_lightintensity), u_lightcolor: new t.Uniform3f(e2, i2.u_lightcolor), u_vertical_gradient: new t.Uniform1f(e2, i2.u_vertical_gradient), u_opacity: new t.Uniform1f(e2, i2.u_opacity) }), fillExtrusionPattern: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_lightpos: new t.Uniform3f(e2, i2.u_lightpos), u_lightintensity: new t.Uniform1f(e2, i2.u_lightintensity), u_lightcolor: new t.Uniform3f(e2, i2.u_lightcolor), u_vertical_gradient: new t.Uniform1f(e2, i2.u_vertical_gradient), u_height_factor: new t.Uniform1f(e2, i2.u_height_factor), u_image: new t.Uniform1i(e2, i2.u_image), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_pixel_coord_upper: new t.Uniform2f(e2, i2.u_pixel_coord_upper), u_pixel_coord_lower: new t.Uniform2f(e2, i2.u_pixel_coord_lower), u_scale: new t.Uniform3f(e2, i2.u_scale), u_fade: new t.Uniform1f(e2, i2.u_fade), u_opacity: new t.Uniform1f(e2, i2.u_opacity) }), fill: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }), fillPattern: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_image: new t.Uniform1i(e2, i2.u_image), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_pixel_coord_upper: new t.Uniform2f(e2, i2.u_pixel_coord_upper), u_pixel_coord_lower: new t.Uniform2f(e2, i2.u_pixel_coord_lower), u_scale: new t.Uniform3f(e2, i2.u_scale), u_fade: new t.Uniform1f(e2, i2.u_fade) }), fillOutline: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_world: new t.Uniform2f(e2, i2.u_world) }), fillOutlinePattern: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_world: new t.Uniform2f(e2, i2.u_world), u_image: new t.Uniform1i(e2, i2.u_image), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_pixel_coord_upper: new t.Uniform2f(e2, i2.u_pixel_coord_upper), u_pixel_coord_lower: new t.Uniform2f(e2, i2.u_pixel_coord_lower), u_scale: new t.Uniform3f(e2, i2.u_scale), u_fade: new t.Uniform1f(e2, i2.u_fade) }), circle: (e2, i2) => ({ u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_scale_with_map: new t.Uniform1i(e2, i2.u_scale_with_map), u_pitch_with_map: new t.Uniform1i(e2, i2.u_pitch_with_map), u_extrude_scale: new t.Uniform2f(e2, i2.u_extrude_scale), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }), collisionBox: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_pixels_to_tile_units: new t.Uniform1f(e2, i2.u_pixels_to_tile_units), u_extrude_scale: new t.Uniform2f(e2, i2.u_extrude_scale), u_overscale_factor: new t.Uniform1f(e2, i2.u_overscale_factor) }), collisionCircle: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_inv_matrix: new t.UniformMatrix4f(e2, i2.u_inv_matrix), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_viewport_size: new t.Uniform2f(e2, i2.u_viewport_size) }), debug: (e2, i2) => ({ u_color: new t.UniformColor(e2, i2.u_color), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_overlay: new t.Uniform1i(e2, i2.u_overlay), u_overlay_scale: new t.Uniform1f(e2, i2.u_overlay_scale) }), clippingMask: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }), heatmap: (e2, i2) => ({ u_extrude_scale: new t.Uniform1f(e2, i2.u_extrude_scale), u_intensity: new t.Uniform1f(e2, i2.u_intensity), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }), heatmapTexture: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_world: new t.Uniform2f(e2, i2.u_world), u_image: new t.Uniform1i(e2, i2.u_image), u_color_ramp: new t.Uniform1i(e2, i2.u_color_ramp), u_opacity: new t.Uniform1f(e2, i2.u_opacity) }), hillshade: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_image: new t.Uniform1i(e2, i2.u_image), u_latrange: new t.Uniform2f(e2, i2.u_latrange), u_light: new t.Uniform2f(e2, i2.u_light), u_shadow: new t.UniformColor(e2, i2.u_shadow), u_highlight: new t.UniformColor(e2, i2.u_highlight), u_accent: new t.UniformColor(e2, i2.u_accent) }), hillshadePrepare: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_image: new t.Uniform1i(e2, i2.u_image), u_dimension: new t.Uniform2f(e2, i2.u_dimension), u_zoom: new t.Uniform1f(e2, i2.u_zoom), u_unpack: new t.Uniform4f(e2, i2.u_unpack) }), line: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_ratio: new t.Uniform1f(e2, i2.u_ratio), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_units_to_pixels: new t.Uniform2f(e2, i2.u_units_to_pixels) }), lineGradient: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_ratio: new t.Uniform1f(e2, i2.u_ratio), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_units_to_pixels: new t.Uniform2f(e2, i2.u_units_to_pixels), u_image: new t.Uniform1i(e2, i2.u_image), u_image_height: new t.Uniform1f(e2, i2.u_image_height) }), linePattern: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_ratio: new t.Uniform1f(e2, i2.u_ratio), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_image: new t.Uniform1i(e2, i2.u_image), u_units_to_pixels: new t.Uniform2f(e2, i2.u_units_to_pixels), u_scale: new t.Uniform3f(e2, i2.u_scale), u_fade: new t.Uniform1f(e2, i2.u_fade) }), lineSDF: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_ratio: new t.Uniform1f(e2, i2.u_ratio), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_units_to_pixels: new t.Uniform2f(e2, i2.u_units_to_pixels), u_patternscale_a: new t.Uniform2f(e2, i2.u_patternscale_a), u_patternscale_b: new t.Uniform2f(e2, i2.u_patternscale_b), u_sdfgamma: new t.Uniform1f(e2, i2.u_sdfgamma), u_image: new t.Uniform1i(e2, i2.u_image), u_tex_y_a: new t.Uniform1f(e2, i2.u_tex_y_a), u_tex_y_b: new t.Uniform1f(e2, i2.u_tex_y_b), u_mix: new t.Uniform1f(e2, i2.u_mix) }), raster: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_tl_parent: new t.Uniform2f(e2, i2.u_tl_parent), u_scale_parent: new t.Uniform1f(e2, i2.u_scale_parent), u_buffer_scale: new t.Uniform1f(e2, i2.u_buffer_scale), u_fade_t: new t.Uniform1f(e2, i2.u_fade_t), u_opacity: new t.Uniform1f(e2, i2.u_opacity), u_image0: new t.Uniform1i(e2, i2.u_image0), u_image1: new t.Uniform1i(e2, i2.u_image1), u_brightness_low: new t.Uniform1f(e2, i2.u_brightness_low), u_brightness_high: new t.Uniform1f(e2, i2.u_brightness_high), u_saturation_factor: new t.Uniform1f(e2, i2.u_saturation_factor), u_contrast_factor: new t.Uniform1f(e2, i2.u_contrast_factor), u_spin_weights: new t.Uniform3f(e2, i2.u_spin_weights) }), symbolIcon: (e2, i2) => ({ u_is_size_zoom_constant: new t.Uniform1i(e2, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new t.Uniform1i(e2, i2.u_is_size_feature_constant), u_size_t: new t.Uniform1f(e2, i2.u_size_t), u_size: new t.Uniform1f(e2, i2.u_size), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_pitch: new t.Uniform1f(e2, i2.u_pitch), u_rotate_symbol: new t.Uniform1i(e2, i2.u_rotate_symbol), u_aspect_ratio: new t.Uniform1f(e2, i2.u_aspect_ratio), u_fade_change: new t.Uniform1f(e2, i2.u_fade_change), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_label_plane_matrix: new t.UniformMatrix4f(e2, i2.u_label_plane_matrix), u_coord_matrix: new t.UniformMatrix4f(e2, i2.u_coord_matrix), u_is_text: new t.Uniform1i(e2, i2.u_is_text), u_pitch_with_map: new t.Uniform1i(e2, i2.u_pitch_with_map), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_texture: new t.Uniform1i(e2, i2.u_texture) }), symbolSDF: (e2, i2) => ({ u_is_size_zoom_constant: new t.Uniform1i(e2, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new t.Uniform1i(e2, i2.u_is_size_feature_constant), u_size_t: new t.Uniform1f(e2, i2.u_size_t), u_size: new t.Uniform1f(e2, i2.u_size), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_pitch: new t.Uniform1f(e2, i2.u_pitch), u_rotate_symbol: new t.Uniform1i(e2, i2.u_rotate_symbol), u_aspect_ratio: new t.Uniform1f(e2, i2.u_aspect_ratio), u_fade_change: new t.Uniform1f(e2, i2.u_fade_change), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_label_plane_matrix: new t.UniformMatrix4f(e2, i2.u_label_plane_matrix), u_coord_matrix: new t.UniformMatrix4f(e2, i2.u_coord_matrix), u_is_text: new t.Uniform1i(e2, i2.u_is_text), u_pitch_with_map: new t.Uniform1i(e2, i2.u_pitch_with_map), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_texture: new t.Uniform1i(e2, i2.u_texture), u_gamma_scale: new t.Uniform1f(e2, i2.u_gamma_scale), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_is_halo: new t.Uniform1i(e2, i2.u_is_halo) }), symbolTextAndIcon: (e2, i2) => ({ u_is_size_zoom_constant: new t.Uniform1i(e2, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new t.Uniform1i(e2, i2.u_is_size_feature_constant), u_size_t: new t.Uniform1f(e2, i2.u_size_t), u_size: new t.Uniform1f(e2, i2.u_size), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_pitch: new t.Uniform1f(e2, i2.u_pitch), u_rotate_symbol: new t.Uniform1i(e2, i2.u_rotate_symbol), u_aspect_ratio: new t.Uniform1f(e2, i2.u_aspect_ratio), u_fade_change: new t.Uniform1f(e2, i2.u_fade_change), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_label_plane_matrix: new t.UniformMatrix4f(e2, i2.u_label_plane_matrix), u_coord_matrix: new t.UniformMatrix4f(e2, i2.u_coord_matrix), u_is_text: new t.Uniform1i(e2, i2.u_is_text), u_pitch_with_map: new t.Uniform1i(e2, i2.u_pitch_with_map), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_texsize_icon: new t.Uniform2f(e2, i2.u_texsize_icon), u_texture: new t.Uniform1i(e2, i2.u_texture), u_texture_icon: new t.Uniform1i(e2, i2.u_texture_icon), u_gamma_scale: new t.Uniform1f(e2, i2.u_gamma_scale), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_is_halo: new t.Uniform1i(e2, i2.u_is_halo) }), background: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_opacity: new t.Uniform1f(e2, i2.u_opacity), u_color: new t.UniformColor(e2, i2.u_color) }), backgroundPattern: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_opacity: new t.Uniform1f(e2, i2.u_opacity), u_image: new t.Uniform1i(e2, i2.u_image), u_pattern_tl_a: new t.Uniform2f(e2, i2.u_pattern_tl_a), u_pattern_br_a: new t.Uniform2f(e2, i2.u_pattern_br_a), u_pattern_tl_b: new t.Uniform2f(e2, i2.u_pattern_tl_b), u_pattern_br_b: new t.Uniform2f(e2, i2.u_pattern_br_b), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_mix: new t.Uniform1f(e2, i2.u_mix), u_pattern_size_a: new t.Uniform2f(e2, i2.u_pattern_size_a), u_pattern_size_b: new t.Uniform2f(e2, i2.u_pattern_size_b), u_scale_a: new t.Uniform1f(e2, i2.u_scale_a), u_scale_b: new t.Uniform1f(e2, i2.u_scale_b), u_pixel_coord_upper: new t.Uniform2f(e2, i2.u_pixel_coord_upper), u_pixel_coord_lower: new t.Uniform2f(e2, i2.u_pixel_coord_lower), u_tile_units_to_pixels: new t.Uniform1f(e2, i2.u_tile_units_to_pixels) }), terrain: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_texture: new t.Uniform1i(e2, i2.u_texture) }), terrainDepth: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }), terrainCoords: (e2, i2) => ({ u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_texture: new t.Uniform1i(e2, i2.u_texture), u_terrain_coords_id: new t.Uniform1f(e2, i2.u_terrain_coords_id) }) }; - class ke { - constructor(t2, e2, i2) { - this.context = t2; - const o2 = t2.gl; - this.buffer = o2.createBuffer(), this.dynamicDraw = Boolean(i2), this.context.unbindVAO(), t2.bindElementBuffer.set(this.buffer), o2.bufferData(o2.ELEMENT_ARRAY_BUFFER, e2.arrayBuffer, this.dynamicDraw ? o2.DYNAMIC_DRAW : o2.STATIC_DRAW), this.dynamicDraw || delete e2.arrayBuffer; - } - bind() { - this.context.bindElementBuffer.set(this.buffer); - } - updateData(t2) { - const e2 = this.context.gl; - if (!this.dynamicDraw) - throw new Error("Attempted to update data while not in dynamic mode."); - this.context.unbindVAO(), this.bind(), e2.bufferSubData(e2.ELEMENT_ARRAY_BUFFER, 0, t2.arrayBuffer); - } - destroy() { - this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer); - } - } - const Be = { Int8: "BYTE", Uint8: "UNSIGNED_BYTE", Int16: "SHORT", Uint16: "UNSIGNED_SHORT", Int32: "INT", Uint32: "UNSIGNED_INT", Float32: "FLOAT" }; - class Fe { - constructor(t2, e2, i2, o2) { - this.length = e2.length, this.attributes = i2, this.itemSize = e2.bytesPerElement, this.dynamicDraw = o2, this.context = t2; - const a2 = t2.gl; - this.buffer = a2.createBuffer(), t2.bindVertexBuffer.set(this.buffer), a2.bufferData(a2.ARRAY_BUFFER, e2.arrayBuffer, this.dynamicDraw ? a2.DYNAMIC_DRAW : a2.STATIC_DRAW), this.dynamicDraw || delete e2.arrayBuffer; - } - bind() { - this.context.bindVertexBuffer.set(this.buffer); - } - updateData(t2) { - if (t2.length !== this.length) - throw new Error(`Length of new data is ${t2.length}, which doesn't match current length of ${this.length}`); - const e2 = this.context.gl; - this.bind(), e2.bufferSubData(e2.ARRAY_BUFFER, 0, t2.arrayBuffer); - } - enableAttributes(t2, e2) { - for (let i2 = 0; i2 < this.attributes.length; i2++) { - const o2 = e2.attributes[this.attributes[i2].name]; - void 0 !== o2 && t2.enableVertexAttribArray(o2); - } - } - setVertexAttribPointers(t2, e2, i2) { - for (let o2 = 0; o2 < this.attributes.length; o2++) { - const a2 = this.attributes[o2], r2 = e2.attributes[a2.name]; - void 0 !== r2 && t2.vertexAttribPointer(r2, a2.components, t2[Be[a2.type]], false, this.itemSize, a2.offset + this.itemSize * (i2 || 0)); - } - } - destroy() { - this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer); - } - } - class Oe { - constructor(t2) { - this.gl = t2.gl, this.default = this.getDefault(), this.current = this.default, this.dirty = false; - } - get() { - return this.current; - } - set(t2) { - } - getDefault() { - return this.default; - } - setDefault() { - this.set(this.default); - } - } - class Ue extends Oe { - getDefault() { - return t.Color.transparent; - } - set(t2) { - const e2 = this.current; - (t2.r !== e2.r || t2.g !== e2.g || t2.b !== e2.b || t2.a !== e2.a || this.dirty) && (this.gl.clearColor(t2.r, t2.g, t2.b, t2.a), this.current = t2, this.dirty = false); - } - } - class Ne extends Oe { - getDefault() { - return 1; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.clearDepth(t2), this.current = t2, this.dirty = false); - } - } - class Ge extends Oe { - getDefault() { - return 0; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.clearStencil(t2), this.current = t2, this.dirty = false); - } - } - class Ze extends Oe { - getDefault() { - return [true, true, true, true]; - } - set(t2) { - const e2 = this.current; - (t2[0] !== e2[0] || t2[1] !== e2[1] || t2[2] !== e2[2] || t2[3] !== e2[3] || this.dirty) && (this.gl.colorMask(t2[0], t2[1], t2[2], t2[3]), this.current = t2, this.dirty = false); - } - } - class Ve extends Oe { - getDefault() { - return true; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.depthMask(t2), this.current = t2, this.dirty = false); - } - } - class qe extends Oe { - getDefault() { - return 255; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.stencilMask(t2), this.current = t2, this.dirty = false); - } - } - class je extends Oe { - getDefault() { - return { func: this.gl.ALWAYS, ref: 0, mask: 255 }; - } - set(t2) { - const e2 = this.current; - (t2.func !== e2.func || t2.ref !== e2.ref || t2.mask !== e2.mask || this.dirty) && (this.gl.stencilFunc(t2.func, t2.ref, t2.mask), this.current = t2, this.dirty = false); - } - } - class $e extends Oe { - getDefault() { - const t2 = this.gl; - return [t2.KEEP, t2.KEEP, t2.KEEP]; - } - set(t2) { - const e2 = this.current; - (t2[0] !== e2[0] || t2[1] !== e2[1] || t2[2] !== e2[2] || this.dirty) && (this.gl.stencilOp(t2[0], t2[1], t2[2]), this.current = t2, this.dirty = false); - } - } - class Xe extends Oe { - getDefault() { - return false; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - t2 ? e2.enable(e2.STENCIL_TEST) : e2.disable(e2.STENCIL_TEST), this.current = t2, this.dirty = false; - } - } - class We extends Oe { - getDefault() { - return [0, 1]; - } - set(t2) { - const e2 = this.current; - (t2[0] !== e2[0] || t2[1] !== e2[1] || this.dirty) && (this.gl.depthRange(t2[0], t2[1]), this.current = t2, this.dirty = false); - } - } - class He extends Oe { - getDefault() { - return false; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - t2 ? e2.enable(e2.DEPTH_TEST) : e2.disable(e2.DEPTH_TEST), this.current = t2, this.dirty = false; - } - } - class Ke extends Oe { - getDefault() { - return this.gl.LESS; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.depthFunc(t2), this.current = t2, this.dirty = false); - } - } - class Ye extends Oe { - getDefault() { - return false; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - t2 ? e2.enable(e2.BLEND) : e2.disable(e2.BLEND), this.current = t2, this.dirty = false; - } - } - class Je extends Oe { - getDefault() { - const t2 = this.gl; - return [t2.ONE, t2.ZERO]; - } - set(t2) { - const e2 = this.current; - (t2[0] !== e2[0] || t2[1] !== e2[1] || this.dirty) && (this.gl.blendFunc(t2[0], t2[1]), this.current = t2, this.dirty = false); - } - } - class Qe extends Oe { - getDefault() { - return t.Color.transparent; - } - set(t2) { - const e2 = this.current; - (t2.r !== e2.r || t2.g !== e2.g || t2.b !== e2.b || t2.a !== e2.a || this.dirty) && (this.gl.blendColor(t2.r, t2.g, t2.b, t2.a), this.current = t2, this.dirty = false); - } - } - class ti extends Oe { - getDefault() { - return this.gl.FUNC_ADD; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.blendEquation(t2), this.current = t2, this.dirty = false); - } - } - class ei extends Oe { - getDefault() { - return false; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - t2 ? e2.enable(e2.CULL_FACE) : e2.disable(e2.CULL_FACE), this.current = t2, this.dirty = false; - } - } - class ii extends Oe { - getDefault() { - return this.gl.BACK; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.cullFace(t2), this.current = t2, this.dirty = false); - } - } - class oi extends Oe { - getDefault() { - return this.gl.CCW; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.frontFace(t2), this.current = t2, this.dirty = false); - } - } - class ai extends Oe { - getDefault() { - return null; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.useProgram(t2), this.current = t2, this.dirty = false); - } - } - class ri extends Oe { - getDefault() { - return this.gl.TEXTURE0; - } - set(t2) { - (t2 !== this.current || this.dirty) && (this.gl.activeTexture(t2), this.current = t2, this.dirty = false); - } - } - class si extends Oe { - getDefault() { - const t2 = this.gl; - return [0, 0, t2.drawingBufferWidth, t2.drawingBufferHeight]; - } - set(t2) { - const e2 = this.current; - (t2[0] !== e2[0] || t2[1] !== e2[1] || t2[2] !== e2[2] || t2[3] !== e2[3] || this.dirty) && (this.gl.viewport(t2[0], t2[1], t2[2], t2[3]), this.current = t2, this.dirty = false); - } - } - class ni extends Oe { - getDefault() { - return null; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - e2.bindFramebuffer(e2.FRAMEBUFFER, t2), this.current = t2, this.dirty = false; - } - } - class li extends Oe { - getDefault() { - return null; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - e2.bindRenderbuffer(e2.RENDERBUFFER, t2), this.current = t2, this.dirty = false; - } - } - class ci extends Oe { - getDefault() { - return null; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - e2.bindTexture(e2.TEXTURE_2D, t2), this.current = t2, this.dirty = false; - } - } - class hi extends Oe { - getDefault() { - return null; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - e2.bindBuffer(e2.ARRAY_BUFFER, t2), this.current = t2, this.dirty = false; - } - } - class ui extends Oe { - getDefault() { - return null; - } - set(t2) { - const e2 = this.gl; - e2.bindBuffer(e2.ELEMENT_ARRAY_BUFFER, t2), this.current = t2, this.dirty = false; - } - } - class di extends Oe { - constructor(t2) { - super(t2), this.vao = t2.extVertexArrayObject; - } - getDefault() { - return null; - } - set(t2) { - this.vao && (t2 !== this.current || this.dirty) && (this.vao.bindVertexArrayOES(t2), this.current = t2, this.dirty = false); - } - } - class mi extends Oe { - getDefault() { - return 4; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - e2.pixelStorei(e2.UNPACK_ALIGNMENT, t2), this.current = t2, this.dirty = false; - } - } - class _i extends Oe { - getDefault() { - return false; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - e2.pixelStorei(e2.UNPACK_PREMULTIPLY_ALPHA_WEBGL, t2), this.current = t2, this.dirty = false; - } - } - class pi extends Oe { - getDefault() { - return false; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - const e2 = this.gl; - e2.pixelStorei(e2.UNPACK_FLIP_Y_WEBGL, t2), this.current = t2, this.dirty = false; - } - } - class fi extends Oe { - constructor(t2, e2) { - super(t2), this.context = t2, this.parent = e2; - } - getDefault() { - return null; - } - } - class gi extends fi { - setDirty() { - this.dirty = true; - } - set(t2) { - if (t2 === this.current && !this.dirty) - return; - this.context.bindFramebuffer.set(this.parent); - const e2 = this.gl; - e2.framebufferTexture2D(e2.FRAMEBUFFER, e2.COLOR_ATTACHMENT0, e2.TEXTURE_2D, t2, 0), this.current = t2, this.dirty = false; - } - } - class xi extends fi { - set(t2) { - if (t2 === this.current && !this.dirty) - return; - this.context.bindFramebuffer.set(this.parent); - const e2 = this.gl; - e2.framebufferRenderbuffer(e2.FRAMEBUFFER, e2.DEPTH_ATTACHMENT, e2.RENDERBUFFER, t2), this.current = t2, this.dirty = false; - } - } - class vi { - constructor(t2, e2, i2, o2) { - this.context = t2, this.width = e2, this.height = i2; - const a2 = t2.gl, r2 = this.framebuffer = a2.createFramebuffer(); - if (this.colorAttachment = new gi(t2, r2), o2 && (this.depthAttachment = new xi(t2, r2)), a2.checkFramebufferStatus(a2.FRAMEBUFFER) !== a2.FRAMEBUFFER_COMPLETE) - throw new Error("Framebuffer is not complete"); - } - destroy() { - const t2 = this.context.gl, e2 = this.colorAttachment.get(); - if (e2 && t2.deleteTexture(e2), this.depthAttachment) { - const e3 = this.depthAttachment.get(); - e3 && t2.deleteRenderbuffer(e3); - } - t2.deleteFramebuffer(this.framebuffer); - } - } - class yi { - constructor(t2, e2, i2) { - this.blendFunction = t2, this.blendColor = e2, this.mask = i2; - } - } - yi.Replace = [1, 0], yi.disabled = new yi(yi.Replace, t.Color.transparent, [false, false, false, false]), yi.unblended = new yi(yi.Replace, t.Color.transparent, [true, true, true, true]), yi.alphaBlended = new yi([1, 771], t.Color.transparent, [true, true, true, true]); - class bi { - constructor(t2) { - this.gl = t2, this.extVertexArrayObject = this.gl.getExtension("OES_vertex_array_object"), this.clearColor = new Ue(this), this.clearDepth = new Ne(this), this.clearStencil = new Ge(this), this.colorMask = new Ze(this), this.depthMask = new Ve(this), this.stencilMask = new qe(this), this.stencilFunc = new je(this), this.stencilOp = new $e(this), this.stencilTest = new Xe(this), this.depthRange = new We(this), this.depthTest = new He(this), this.depthFunc = new Ke(this), this.blend = new Ye(this), this.blendFunc = new Je(this), this.blendColor = new Qe(this), this.blendEquation = new ti(this), this.cullFace = new ei(this), this.cullFaceSide = new ii(this), this.frontFace = new oi(this), this.program = new ai(this), this.activeTexture = new ri(this), this.viewport = new si(this), this.bindFramebuffer = new ni(this), this.bindRenderbuffer = new li(this), this.bindTexture = new ci(this), this.bindVertexBuffer = new hi(this), this.bindElementBuffer = new ui(this), this.bindVertexArrayOES = this.extVertexArrayObject && new di(this), this.pixelStoreUnpack = new mi(this), this.pixelStoreUnpackPremultiplyAlpha = new _i(this), this.pixelStoreUnpackFlipY = new pi(this), this.extTextureFilterAnisotropic = t2.getExtension("EXT_texture_filter_anisotropic") || t2.getExtension("MOZ_EXT_texture_filter_anisotropic") || t2.getExtension("WEBKIT_EXT_texture_filter_anisotropic"), this.extTextureFilterAnisotropic && (this.extTextureFilterAnisotropicMax = t2.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)), this.extTextureHalfFloat = t2.getExtension("OES_texture_half_float"), this.extTextureHalfFloat && (t2.getExtension("OES_texture_half_float_linear"), this.extRenderToTextureHalfFloat = t2.getExtension("EXT_color_buffer_half_float")), this.extTimerQuery = t2.getExtension("EXT_disjoint_timer_query"), this.maxTextureSize = t2.getParameter(t2.MAX_TEXTURE_SIZE); - } - setDefault() { - this.unbindVAO(), this.clearColor.setDefault(), this.clearDepth.setDefault(), this.clearStencil.setDefault(), this.colorMask.setDefault(), this.depthMask.setDefault(), this.stencilMask.setDefault(), this.stencilFunc.setDefault(), this.stencilOp.setDefault(), this.stencilTest.setDefault(), this.depthRange.setDefault(), this.depthTest.setDefault(), this.depthFunc.setDefault(), this.blend.setDefault(), this.blendFunc.setDefault(), this.blendColor.setDefault(), this.blendEquation.setDefault(), this.cullFace.setDefault(), this.cullFaceSide.setDefault(), this.frontFace.setDefault(), this.program.setDefault(), this.activeTexture.setDefault(), this.bindFramebuffer.setDefault(), this.pixelStoreUnpack.setDefault(), this.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.pixelStoreUnpackFlipY.setDefault(); - } - setDirty() { - this.clearColor.dirty = true, this.clearDepth.dirty = true, this.clearStencil.dirty = true, this.colorMask.dirty = true, this.depthMask.dirty = true, this.stencilMask.dirty = true, this.stencilFunc.dirty = true, this.stencilOp.dirty = true, this.stencilTest.dirty = true, this.depthRange.dirty = true, this.depthTest.dirty = true, this.depthFunc.dirty = true, this.blend.dirty = true, this.blendFunc.dirty = true, this.blendColor.dirty = true, this.blendEquation.dirty = true, this.cullFace.dirty = true, this.cullFaceSide.dirty = true, this.frontFace.dirty = true, this.program.dirty = true, this.activeTexture.dirty = true, this.viewport.dirty = true, this.bindFramebuffer.dirty = true, this.bindRenderbuffer.dirty = true, this.bindTexture.dirty = true, this.bindVertexBuffer.dirty = true, this.bindElementBuffer.dirty = true, this.extVertexArrayObject && (this.bindVertexArrayOES.dirty = true), this.pixelStoreUnpack.dirty = true, this.pixelStoreUnpackPremultiplyAlpha.dirty = true, this.pixelStoreUnpackFlipY.dirty = true; - } - createIndexBuffer(t2, e2) { - return new ke(this, t2, e2); - } - createVertexBuffer(t2, e2, i2) { - return new Fe(this, t2, e2, i2); - } - createRenderbuffer(t2, e2, i2) { - const o2 = this.gl, a2 = o2.createRenderbuffer(); - return this.bindRenderbuffer.set(a2), o2.renderbufferStorage(o2.RENDERBUFFER, t2, e2, i2), this.bindRenderbuffer.set(null), a2; - } - createFramebuffer(t2, e2, i2) { - return new vi(this, t2, e2, i2); - } - clear({ color: t2, depth: e2 }) { - const i2 = this.gl; - let o2 = 0; - t2 && (o2 |= i2.COLOR_BUFFER_BIT, this.clearColor.set(t2), this.colorMask.set([true, true, true, true])), void 0 !== e2 && (o2 |= i2.DEPTH_BUFFER_BIT, this.depthRange.set([0, 1]), this.clearDepth.set(e2), this.depthMask.set(true)), i2.clear(o2); - } - setCullFace(t2) { - false === t2.enable ? this.cullFace.set(false) : (this.cullFace.set(true), this.cullFaceSide.set(t2.mode), this.frontFace.set(t2.frontFace)); - } - setDepthMode(t2) { - t2.func !== this.gl.ALWAYS || t2.mask ? (this.depthTest.set(true), this.depthFunc.set(t2.func), this.depthMask.set(t2.mask), this.depthRange.set(t2.range)) : this.depthTest.set(false); - } - setStencilMode(t2) { - t2.test.func !== this.gl.ALWAYS || t2.mask ? (this.stencilTest.set(true), this.stencilMask.set(t2.mask), this.stencilOp.set([t2.fail, t2.depthFail, t2.pass]), this.stencilFunc.set({ func: t2.test.func, ref: t2.ref, mask: t2.test.mask })) : this.stencilTest.set(false); - } - setColorMode(t2) { - a(t2.blendFunction, yi.Replace) ? this.blend.set(false) : (this.blend.set(true), this.blendFunc.set(t2.blendFunction), this.blendColor.set(t2.blendColor)), this.colorMask.set(t2.mask); - } - unbindVAO() { - this.extVertexArrayObject && this.bindVertexArrayOES.set(null); - } - } - class wi { - constructor(t2, e2, i2) { - this.func = t2, this.mask = e2, this.range = i2; - } - } - wi.ReadOnly = false, wi.ReadWrite = true, wi.disabled = new wi(519, wi.ReadOnly, [0, 1]); - const Ti = 7680; - class Ei { - constructor(t2, e2, i2, o2, a2, r2) { - this.test = t2, this.ref = e2, this.mask = i2, this.fail = o2, this.depthFail = a2, this.pass = r2; - } - } - Ei.disabled = new Ei({ func: 519, mask: 0 }, 0, 0, Ti, Ti, Ti); - class Ii { - constructor(t2, e2, i2) { - this.enable = t2, this.mode = e2, this.frontFace = i2; - } - } - let Ci; - function Si(e2, i2, o2, a2, r2, s2, n2) { - const l2 = e2.context, c3 = l2.gl, h3 = e2.useProgram("collisionBox"), u2 = []; - let d2 = 0, m2 = 0; - for (let _3 = 0; _3 < a2.length; _3++) { - const p4 = a2[_3], f3 = i2.getTile(p4), g3 = f3.getBucket(o2); - if (!g3) - continue; - let x3 = p4.posMatrix; - 0 === r2[0] && 0 === r2[1] || (x3 = e2.translatePosMatrix(p4.posMatrix, f3, r2, s2)); - const v4 = n2 ? g3.textCollisionBox : g3.iconCollisionBox, y3 = g3.collisionCircleArray; - if (y3.length > 0) { - const i3 = t.create(), o3 = x3; - t.mul(i3, g3.placementInvProjMatrix, e2.transform.glCoordMatrix), t.mul(i3, i3, g3.placementViewportMatrix), u2.push({ circleArray: y3, circleOffset: m2, transform: o3, invTransform: i3, coord: p4 }), d2 += y3.length / 4, m2 = d2; + var ji, Vi = function(t2, e2, i2, o2, r2, a2, n2, s2, l2, c3) { + var u2 = r2.transform; + return { u_is_size_zoom_constant: +("constant" === t2 || "source" === t2), u_is_size_feature_constant: +("constant" === t2 || "camera" === t2), u_size_t: e2 ? e2.uSizeT : 0, u_size: e2 ? e2.uSize : 0, u_camera_to_center_distance: u2.cameraToCenterDistance, u_pitch: u2.pitch / 360 * 2 * Math.PI, u_rotate_symbol: +i2, u_aspect_ratio: u2.width / u2.height, u_fade_change: r2.options.fadeDuration ? r2.symbolFadeChange : 1, u_matrix: a2, u_label_plane_matrix: n2, u_coord_matrix: s2, u_is_text: +l2, u_pitch_with_map: +o2, u_texsize: c3, u_texture: 0 }; + }, Gi = function(e2, i2, o2, r2, a2, n2, s2, l2, c3, u2, h3) { + var p3 = a2.transform; + return t.extend(Vi(e2, i2, o2, r2, a2, n2, s2, l2, c3, u2), { u_gamma_scale: r2 ? Math.cos(p3._pitch) * p3.cameraToCenterDistance : 1, u_device_pixel_ratio: t.browser.devicePixelRatio, u_is_halo: +h3 }); + }, Wi = function(e2, i2, o2, r2, a2, n2, s2, l2, c3, u2) { + return t.extend(Gi(e2, i2, o2, r2, a2, n2, s2, l2, true, c3, true), { u_texsize_icon: u2, u_texture_icon: 1 }); + }, Xi = function(t2, e2, i2) { + return { u_matrix: t2, u_opacity: e2, u_color: i2 }; + }, Hi = function(e2, i2, o2, r2, a2, n2) { + return t.extend(function(t2, e3, i3, o3) { + var r3 = i3.imageManager.getPattern(t2.from.toString()), a3 = i3.imageManager.getPattern(t2.to.toString()), n3 = i3.imageManager.getPixelSize(), s2 = n3.width, l2 = n3.height, c3 = Math.pow(2, o3.tileID.overscaledZ), u2 = o3.tileSize * Math.pow(2, i3.transform.tileZoom) / c3, h3 = u2 * (o3.tileID.canonical.x + o3.tileID.wrap * c3), p3 = u2 * o3.tileID.canonical.y; + return { u_image: 0, u_pattern_tl_a: r3.tl, u_pattern_br_a: r3.br, u_pattern_tl_b: a3.tl, u_pattern_br_b: a3.br, u_texsize: [s2, l2], u_mix: e3.t, u_pattern_size_a: r3.displaySize, u_pattern_size_b: a3.displaySize, u_scale_a: e3.fromScale, u_scale_b: e3.toScale, u_tile_units_to_pixels: 1 / pe(o3, 1, i3.transform.tileZoom), u_pixel_coord_upper: [h3 >> 16, p3 >> 16], u_pixel_coord_lower: [65535 & h3, 65535 & p3] }; + }(r2, n2, o2, a2), { u_matrix: e2, u_opacity: i2 }); + }, Ki = { fillExtrusion: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_lightpos: new t.Uniform3f(e2, i2.u_lightpos), u_lightintensity: new t.Uniform1f(e2, i2.u_lightintensity), u_lightcolor: new t.Uniform3f(e2, i2.u_lightcolor), u_vertical_gradient: new t.Uniform1f(e2, i2.u_vertical_gradient), u_opacity: new t.Uniform1f(e2, i2.u_opacity) }; + }, fillExtrusionPattern: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_lightpos: new t.Uniform3f(e2, i2.u_lightpos), u_lightintensity: new t.Uniform1f(e2, i2.u_lightintensity), u_lightcolor: new t.Uniform3f(e2, i2.u_lightcolor), u_vertical_gradient: new t.Uniform1f(e2, i2.u_vertical_gradient), u_height_factor: new t.Uniform1f(e2, i2.u_height_factor), u_image: new t.Uniform1i(e2, i2.u_image), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_pixel_coord_upper: new t.Uniform2f(e2, i2.u_pixel_coord_upper), u_pixel_coord_lower: new t.Uniform2f(e2, i2.u_pixel_coord_lower), u_scale: new t.Uniform3f(e2, i2.u_scale), u_fade: new t.Uniform1f(e2, i2.u_fade), u_opacity: new t.Uniform1f(e2, i2.u_opacity) }; + }, fill: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }; + }, fillPattern: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_image: new t.Uniform1i(e2, i2.u_image), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_pixel_coord_upper: new t.Uniform2f(e2, i2.u_pixel_coord_upper), u_pixel_coord_lower: new t.Uniform2f(e2, i2.u_pixel_coord_lower), u_scale: new t.Uniform3f(e2, i2.u_scale), u_fade: new t.Uniform1f(e2, i2.u_fade) }; + }, fillOutline: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_world: new t.Uniform2f(e2, i2.u_world) }; + }, fillOutlinePattern: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_world: new t.Uniform2f(e2, i2.u_world), u_image: new t.Uniform1i(e2, i2.u_image), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_pixel_coord_upper: new t.Uniform2f(e2, i2.u_pixel_coord_upper), u_pixel_coord_lower: new t.Uniform2f(e2, i2.u_pixel_coord_lower), u_scale: new t.Uniform3f(e2, i2.u_scale), u_fade: new t.Uniform1f(e2, i2.u_fade) }; + }, circle: function(e2, i2) { + return { u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_scale_with_map: new t.Uniform1i(e2, i2.u_scale_with_map), u_pitch_with_map: new t.Uniform1i(e2, i2.u_pitch_with_map), u_extrude_scale: new t.Uniform2f(e2, i2.u_extrude_scale), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }; + }, collisionBox: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_pixels_to_tile_units: new t.Uniform1f(e2, i2.u_pixels_to_tile_units), u_extrude_scale: new t.Uniform2f(e2, i2.u_extrude_scale), u_overscale_factor: new t.Uniform1f(e2, i2.u_overscale_factor) }; + }, collisionCircle: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_inv_matrix: new t.UniformMatrix4f(e2, i2.u_inv_matrix), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_viewport_size: new t.Uniform2f(e2, i2.u_viewport_size) }; + }, debug: function(e2, i2) { + return { u_color: new t.UniformColor(e2, i2.u_color), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_overlay: new t.Uniform1i(e2, i2.u_overlay), u_overlay_scale: new t.Uniform1f(e2, i2.u_overlay_scale) }; + }, clippingMask: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }; + }, heatmap: function(e2, i2) { + return { u_extrude_scale: new t.Uniform1f(e2, i2.u_extrude_scale), u_intensity: new t.Uniform1f(e2, i2.u_intensity), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix) }; + }, heatmapTexture: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_world: new t.Uniform2f(e2, i2.u_world), u_image: new t.Uniform1i(e2, i2.u_image), u_color_ramp: new t.Uniform1i(e2, i2.u_color_ramp), u_opacity: new t.Uniform1f(e2, i2.u_opacity) }; + }, hillshade: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_image: new t.Uniform1i(e2, i2.u_image), u_latrange: new t.Uniform2f(e2, i2.u_latrange), u_light: new t.Uniform2f(e2, i2.u_light), u_shadow: new t.UniformColor(e2, i2.u_shadow), u_highlight: new t.UniformColor(e2, i2.u_highlight), u_accent: new t.UniformColor(e2, i2.u_accent) }; + }, hillshadePrepare: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_image: new t.Uniform1i(e2, i2.u_image), u_dimension: new t.Uniform2f(e2, i2.u_dimension), u_zoom: new t.Uniform1f(e2, i2.u_zoom), u_unpack: new t.Uniform4f(e2, i2.u_unpack) }; + }, line: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_ratio: new t.Uniform1f(e2, i2.u_ratio), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_units_to_pixels: new t.Uniform2f(e2, i2.u_units_to_pixels) }; + }, lineGradient: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_ratio: new t.Uniform1f(e2, i2.u_ratio), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_units_to_pixels: new t.Uniform2f(e2, i2.u_units_to_pixels), u_image: new t.Uniform1i(e2, i2.u_image), u_image_height: new t.Uniform1f(e2, i2.u_image_height) }; + }, linePattern: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_ratio: new t.Uniform1f(e2, i2.u_ratio), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_image: new t.Uniform1i(e2, i2.u_image), u_units_to_pixels: new t.Uniform2f(e2, i2.u_units_to_pixels), u_scale: new t.Uniform3f(e2, i2.u_scale), u_fade: new t.Uniform1f(e2, i2.u_fade) }; + }, lineSDF: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_ratio: new t.Uniform1f(e2, i2.u_ratio), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_units_to_pixels: new t.Uniform2f(e2, i2.u_units_to_pixels), u_patternscale_a: new t.Uniform2f(e2, i2.u_patternscale_a), u_patternscale_b: new t.Uniform2f(e2, i2.u_patternscale_b), u_sdfgamma: new t.Uniform1f(e2, i2.u_sdfgamma), u_image: new t.Uniform1i(e2, i2.u_image), u_tex_y_a: new t.Uniform1f(e2, i2.u_tex_y_a), u_tex_y_b: new t.Uniform1f(e2, i2.u_tex_y_b), u_mix: new t.Uniform1f(e2, i2.u_mix) }; + }, raster: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_tl_parent: new t.Uniform2f(e2, i2.u_tl_parent), u_scale_parent: new t.Uniform1f(e2, i2.u_scale_parent), u_buffer_scale: new t.Uniform1f(e2, i2.u_buffer_scale), u_fade_t: new t.Uniform1f(e2, i2.u_fade_t), u_opacity: new t.Uniform1f(e2, i2.u_opacity), u_image0: new t.Uniform1i(e2, i2.u_image0), u_image1: new t.Uniform1i(e2, i2.u_image1), u_brightness_low: new t.Uniform1f(e2, i2.u_brightness_low), u_brightness_high: new t.Uniform1f(e2, i2.u_brightness_high), u_saturation_factor: new t.Uniform1f(e2, i2.u_saturation_factor), u_contrast_factor: new t.Uniform1f(e2, i2.u_contrast_factor), u_spin_weights: new t.Uniform3f(e2, i2.u_spin_weights) }; + }, symbolIcon: function(e2, i2) { + return { u_is_size_zoom_constant: new t.Uniform1i(e2, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new t.Uniform1i(e2, i2.u_is_size_feature_constant), u_size_t: new t.Uniform1f(e2, i2.u_size_t), u_size: new t.Uniform1f(e2, i2.u_size), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_pitch: new t.Uniform1f(e2, i2.u_pitch), u_rotate_symbol: new t.Uniform1i(e2, i2.u_rotate_symbol), u_aspect_ratio: new t.Uniform1f(e2, i2.u_aspect_ratio), u_fade_change: new t.Uniform1f(e2, i2.u_fade_change), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_label_plane_matrix: new t.UniformMatrix4f(e2, i2.u_label_plane_matrix), u_coord_matrix: new t.UniformMatrix4f(e2, i2.u_coord_matrix), u_is_text: new t.Uniform1i(e2, i2.u_is_text), u_pitch_with_map: new t.Uniform1i(e2, i2.u_pitch_with_map), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_texture: new t.Uniform1i(e2, i2.u_texture) }; + }, symbolSDF: function(e2, i2) { + return { u_is_size_zoom_constant: new t.Uniform1i(e2, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new t.Uniform1i(e2, i2.u_is_size_feature_constant), u_size_t: new t.Uniform1f(e2, i2.u_size_t), u_size: new t.Uniform1f(e2, i2.u_size), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_pitch: new t.Uniform1f(e2, i2.u_pitch), u_rotate_symbol: new t.Uniform1i(e2, i2.u_rotate_symbol), u_aspect_ratio: new t.Uniform1f(e2, i2.u_aspect_ratio), u_fade_change: new t.Uniform1f(e2, i2.u_fade_change), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_label_plane_matrix: new t.UniformMatrix4f(e2, i2.u_label_plane_matrix), u_coord_matrix: new t.UniformMatrix4f(e2, i2.u_coord_matrix), u_is_text: new t.Uniform1i(e2, i2.u_is_text), u_pitch_with_map: new t.Uniform1i(e2, i2.u_pitch_with_map), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_texture: new t.Uniform1i(e2, i2.u_texture), u_gamma_scale: new t.Uniform1f(e2, i2.u_gamma_scale), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_is_halo: new t.Uniform1i(e2, i2.u_is_halo) }; + }, symbolTextAndIcon: function(e2, i2) { + return { u_is_size_zoom_constant: new t.Uniform1i(e2, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new t.Uniform1i(e2, i2.u_is_size_feature_constant), u_size_t: new t.Uniform1f(e2, i2.u_size_t), u_size: new t.Uniform1f(e2, i2.u_size), u_camera_to_center_distance: new t.Uniform1f(e2, i2.u_camera_to_center_distance), u_pitch: new t.Uniform1f(e2, i2.u_pitch), u_rotate_symbol: new t.Uniform1i(e2, i2.u_rotate_symbol), u_aspect_ratio: new t.Uniform1f(e2, i2.u_aspect_ratio), u_fade_change: new t.Uniform1f(e2, i2.u_fade_change), u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_label_plane_matrix: new t.UniformMatrix4f(e2, i2.u_label_plane_matrix), u_coord_matrix: new t.UniformMatrix4f(e2, i2.u_coord_matrix), u_is_text: new t.Uniform1i(e2, i2.u_is_text), u_pitch_with_map: new t.Uniform1i(e2, i2.u_pitch_with_map), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_texsize_icon: new t.Uniform2f(e2, i2.u_texsize_icon), u_texture: new t.Uniform1i(e2, i2.u_texture), u_texture_icon: new t.Uniform1i(e2, i2.u_texture_icon), u_gamma_scale: new t.Uniform1f(e2, i2.u_gamma_scale), u_device_pixel_ratio: new t.Uniform1f(e2, i2.u_device_pixel_ratio), u_is_halo: new t.Uniform1i(e2, i2.u_is_halo) }; + }, background: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_opacity: new t.Uniform1f(e2, i2.u_opacity), u_color: new t.UniformColor(e2, i2.u_color) }; + }, backgroundPattern: function(e2, i2) { + return { u_matrix: new t.UniformMatrix4f(e2, i2.u_matrix), u_opacity: new t.Uniform1f(e2, i2.u_opacity), u_image: new t.Uniform1i(e2, i2.u_image), u_pattern_tl_a: new t.Uniform2f(e2, i2.u_pattern_tl_a), u_pattern_br_a: new t.Uniform2f(e2, i2.u_pattern_br_a), u_pattern_tl_b: new t.Uniform2f(e2, i2.u_pattern_tl_b), u_pattern_br_b: new t.Uniform2f(e2, i2.u_pattern_br_b), u_texsize: new t.Uniform2f(e2, i2.u_texsize), u_mix: new t.Uniform1f(e2, i2.u_mix), u_pattern_size_a: new t.Uniform2f(e2, i2.u_pattern_size_a), u_pattern_size_b: new t.Uniform2f(e2, i2.u_pattern_size_b), u_scale_a: new t.Uniform1f(e2, i2.u_scale_a), u_scale_b: new t.Uniform1f(e2, i2.u_scale_b), u_pixel_coord_upper: new t.Uniform2f(e2, i2.u_pixel_coord_upper), u_pixel_coord_lower: new t.Uniform2f(e2, i2.u_pixel_coord_lower), u_tile_units_to_pixels: new t.Uniform1f(e2, i2.u_tile_units_to_pixels) }; + } }; + function Yi(e2, i2, o2, r2, a2, n2, s2) { + for (var l2 = e2.context, c3 = l2.gl, u2 = e2.useProgram("collisionBox"), h3 = [], p3 = 0, d2 = 0, _2 = 0; _2 < r2.length; _2++) { + var f2 = r2[_2], m2 = i2.getTile(f2), g2 = m2.getBucket(o2); + if (g2) { + var v3 = f2.posMatrix; + 0 === a2[0] && 0 === a2[1] || (v3 = e2.translatePosMatrix(f2.posMatrix, m2, a2, n2)); + var y3 = s2 ? g2.textCollisionBox : g2.iconCollisionBox, x2 = g2.collisionCircleArray; + if (x2.length > 0) { + var b2 = t.create(), w2 = v3; + t.mul(b2, g2.placementInvProjMatrix, e2.transform.glCoordMatrix), t.mul(b2, b2, g2.placementViewportMatrix), h3.push({ circleArray: x2, circleOffset: d2, transform: w2, invTransform: b2 }), d2 = p3 += x2.length / 4; + } + y3 && u2.draw(l2, c3.LINES, It.disabled, Pt.disabled, e2.colorModeForRenderPass(), Ct.disabled, Di(v3, e2.transform, m2), o2.id, y3.layoutVertexBuffer, y3.indexBuffer, y3.segments, null, e2.transform.zoom, null, null, y3.collisionVertexBuffer); } - v4 && h3.draw(l2, c3.LINES, wi.disabled, Ei.disabled, e2.colorModeForRenderPass(), Ii.disabled, fe(x3, e2.transform, f3), e2.style.terrain && e2.style.terrain.getTerrainData(p4), o2.id, v4.layoutVertexBuffer, v4.indexBuffer, v4.segments, null, e2.transform.zoom, null, null, v4.collisionVertexBuffer); } - if (!n2 || !u2.length) - return; - const _2 = e2.useProgram("collisionCircle"), p3 = new t.CollisionCircleLayoutArray(); - p3.resize(4 * d2), p3._trim(); - let f2 = 0; - for (const t2 of u2) - for (let e3 = 0; e3 < t2.circleArray.length / 4; e3++) { - const i3 = 4 * e3, o3 = t2.circleArray[i3 + 0], a3 = t2.circleArray[i3 + 1], r3 = t2.circleArray[i3 + 2], s3 = t2.circleArray[i3 + 3]; - p3.emplace(f2++, o3, a3, r3, s3, 0), p3.emplace(f2++, o3, a3, r3, s3, 1), p3.emplace(f2++, o3, a3, r3, s3, 2), p3.emplace(f2++, o3, a3, r3, s3, 3); - } - (!Ci || Ci.length < 2 * d2) && (Ci = function(e3) { - const i3 = 2 * e3, o3 = new t.QuadTriangleArray(); - o3.resize(i3), o3._trim(); - for (let t2 = 0; t2 < i3; t2++) { - const e4 = 6 * t2; - o3.uint16[e4 + 0] = 4 * t2 + 0, o3.uint16[e4 + 1] = 4 * t2 + 1, o3.uint16[e4 + 2] = 4 * t2 + 2, o3.uint16[e4 + 3] = 4 * t2 + 2, o3.uint16[e4 + 4] = 4 * t2 + 3, o3.uint16[e4 + 5] = 4 * t2 + 0; - } - return o3; - }(d2)); - const g2 = l2.createIndexBuffer(Ci, true), x2 = l2.createVertexBuffer(p3, t.collisionCircleLayout.members, true); - for (const i3 of u2) { - const a3 = { u_matrix: i3.transform, u_inv_matrix: i3.invTransform, u_camera_to_center_distance: (v3 = e2.transform).cameraToCenterDistance, u_viewport_size: [v3.width, v3.height] }; - _2.draw(l2, c3.TRIANGLES, wi.disabled, Ei.disabled, e2.colorModeForRenderPass(), Ii.disabled, a3, e2.style.terrain && e2.style.terrain.getTerrainData(i3.coord), o2.id, x2, g2, t.SegmentVector.simpleSegment(0, 2 * i3.circleOffset, i3.circleArray.length, i3.circleArray.length / 2), null, e2.transform.zoom, null, null, null); - } - var v3; - x2.destroy(), g2.destroy(); - } - Ii.disabled = new Ii(false, 1029, 2305), Ii.backCCW = new Ii(true, 1029, 2305); - const Di = t.identity(new Float32Array(16)); - function zi(e2, i2, o2, a2, r2, s2) { - const { horizontalAlign: n2, verticalAlign: l2 } = t.getAnchorAlignment(e2), c3 = -(n2 - 0.5) * i2, h3 = -(l2 - 0.5) * o2, u2 = t.evaluateVariableOffset(e2, a2); - return new t.pointGeometry((c3 / r2 + u2[0]) * s2, (h3 / r2 + u2[1]) * s2); - } - function Pi(e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2) { - const d2 = e2.text.placedSymbolArray, m2 = e2.text.dynamicLayoutVertexArray, _2 = e2.icon.dynamicLayoutVertexArray, p3 = {}; - m2.clear(); - for (let _3 = 0; _3 < d2.length; _3++) { - const f2 = d2.get(_3), g2 = e2.allowVerticalPlacement && !f2.placedOrientation, x2 = f2.hidden || !f2.crossTileID || g2 ? null : a2[f2.crossTileID]; - if (x2) { - const a3 = new t.pointGeometry(f2.anchorX, f2.anchorY), d3 = nt(a3, o2 ? n2 : s2, u2), _4 = lt(r2.cameraToCenterDistance, d3.signedDistanceFromCamera); - let g3 = t.evaluateSizeForFeature(e2.textSizeData, c3, f2) * _4 / t.ONE_EM; - o2 && (g3 *= e2.tilePixelRatio / l2); - const { width: v3, height: y3, anchor: b2, textOffset: w2, textBoxScale: T2 } = x2, E2 = zi(b2, v3, y3, w2, T2, g3), I3 = o2 ? nt(a3.add(E2), s2, u2).point : d3.point.add(i2 ? E2.rotate(-r2.angle) : E2), C2 = e2.allowVerticalPlacement && f2.placedOrientation === t.WritingMode.vertical ? Math.PI / 2 : 0; - for (let e3 = 0; e3 < f2.numGlyphs; e3++) - t.addDynamicAttributes(m2, I3, C2); - h3 && f2.associatedIconIndex >= 0 && (p3[f2.associatedIconIndex] = { shiftedAnchor: I3, angle: C2 }); + if (s2 && h3.length) { + var T2 = e2.useProgram("collisionCircle"), E2 = new t.StructArrayLayout2f1f2i16(); + E2.resize(4 * p3), E2._trim(); + for (var I3 = 0, P2 = 0, S2 = h3; P2 < S2.length; P2 += 1) + for (var C2 = S2[P2], z2 = 0; z2 < C2.circleArray.length / 4; z2++) { + var D2 = 4 * z2, A3 = C2.circleArray[D2 + 0], M2 = C2.circleArray[D2 + 1], L2 = C2.circleArray[D2 + 2], R2 = C2.circleArray[D2 + 3]; + E2.emplace(I3++, A3, M2, L2, R2, 0), E2.emplace(I3++, A3, M2, L2, R2, 1), E2.emplace(I3++, A3, M2, L2, R2, 2), E2.emplace(I3++, A3, M2, L2, R2, 3); + } + (!ji || ji.length < 2 * p3) && (ji = function(e3) { + var i3 = 2 * e3, o3 = new t.StructArrayLayout3ui6(); + o3.resize(i3), o3._trim(); + for (var r3 = 0; r3 < i3; r3++) { + var a3 = 6 * r3; + o3.uint16[a3 + 0] = 4 * r3 + 0, o3.uint16[a3 + 1] = 4 * r3 + 1, o3.uint16[a3 + 2] = 4 * r3 + 2, o3.uint16[a3 + 3] = 4 * r3 + 2, o3.uint16[a3 + 4] = 4 * r3 + 3, o3.uint16[a3 + 5] = 4 * r3 + 0; + } + return o3; + }(p3)); + for (var k2 = l2.createIndexBuffer(ji, true), B2 = l2.createVertexBuffer(E2, t.collisionCircleLayout.members, true), O3 = 0, F2 = h3; O3 < F2.length; O3 += 1) { + var U2 = F2[O3], N2 = Ai(U2.transform, U2.invTransform, e2.transform); + T2.draw(l2, c3.TRIANGLES, It.disabled, Pt.disabled, e2.colorModeForRenderPass(), Ct.disabled, N2, o2.id, B2, k2, t.SegmentVector.simpleSegment(0, 2 * U2.circleOffset, U2.circleArray.length, U2.circleArray.length / 2), null, e2.transform.zoom, null, null, null); + } + B2.destroy(), k2.destroy(); + } + } + var Ji = t.identity(new Float32Array(16)); + function Qi(e2, i2, o2, r2, a2, n2) { + var s2 = t.getAnchorAlignment(e2), l2 = -(s2.horizontalAlign - 0.5) * i2, c3 = -(s2.verticalAlign - 0.5) * o2, u2 = t.evaluateVariableOffset(e2, r2); + return new t.Point((l2 / a2 + u2[0]) * n2, (c3 / a2 + u2[1]) * n2); + } + function $i(e2, i2, o2, r2, a2, n2, s2, l2, c3, u2, h3) { + var p3 = e2.text.placedSymbolArray, d2 = e2.text.dynamicLayoutVertexArray, _2 = e2.icon.dynamicLayoutVertexArray, f2 = {}; + d2.clear(); + for (var m2 = 0; m2 < p3.length; m2++) { + var g2 = p3.get(m2), v3 = g2.hidden || !g2.crossTileID || e2.allowVerticalPlacement && !g2.placedOrientation ? null : r2[g2.crossTileID]; + if (v3) { + var y3 = new t.Point(g2.anchorX, g2.anchorY), x2 = $t(y3, o2 ? l2 : s2), b2 = te(n2.cameraToCenterDistance, x2.signedDistanceFromCamera), w2 = a2.evaluateSizeForFeature(e2.textSizeData, u2, g2) * b2 / t.ONE_EM; + o2 && (w2 *= e2.tilePixelRatio / c3); + for (var T2 = Qi(v3.anchor, v3.width, v3.height, v3.textOffset, v3.textBoxScale, w2), E2 = o2 ? $t(y3.add(T2), s2).point : x2.point.add(i2 ? T2.rotate(-n2.angle) : T2), I3 = e2.allowVerticalPlacement && g2.placedOrientation === t.WritingMode.vertical ? Math.PI / 2 : 0, P2 = 0; P2 < g2.numGlyphs; P2++) + t.addDynamicAttributes(d2, E2, I3); + h3 && g2.associatedIconIndex >= 0 && (f2[g2.associatedIconIndex] = { shiftedAnchor: E2, angle: I3 }); } else - gt(f2.numGlyphs, m2); + ce(g2.numGlyphs, d2); } if (h3) { _2.clear(); - const i3 = e2.icon.placedSymbolArray; - for (let e3 = 0; e3 < i3.length; e3++) { - const o3 = i3.get(e3); - if (o3.hidden) - gt(o3.numGlyphs, _2); + for (var S2 = e2.icon.placedSymbolArray, C2 = 0; C2 < S2.length; C2++) { + var z2 = S2.get(C2); + if (z2.hidden) + ce(z2.numGlyphs, _2); else { - const i4 = p3[e3]; - if (i4) - for (let e4 = 0; e4 < o3.numGlyphs; e4++) - t.addDynamicAttributes(_2, i4.shiftedAnchor, i4.angle); + var D2 = f2[C2]; + if (D2) + for (var A3 = 0; A3 < z2.numGlyphs; A3++) + t.addDynamicAttributes(_2, D2.shiftedAnchor, D2.angle); else - gt(o3.numGlyphs, _2); + ce(z2.numGlyphs, _2); } } e2.icon.dynamicLayoutVertexBuffer.updateData(_2); } - e2.text.dynamicLayoutVertexBuffer.updateData(m2); + e2.text.dynamicLayoutVertexBuffer.updateData(d2); } - function Mi(t2, e2, i2) { + function to(t2, e2, i2) { return i2.iconsInText && e2 ? "symbolTextAndIcon" : t2 ? "symbolSDF" : "symbolIcon"; } - function Ai(e2, i2, o2, a2, r2, s2, n2, l2, c3, h3, u2, d2) { - const m2 = e2.context, _2 = m2.gl, p3 = e2.transform, f2 = "map" === l2, g2 = "map" === c3, x2 = "viewport" !== l2 && "point" !== o2.layout.get("symbol-placement"), v3 = f2 && !g2 && !x2, y3 = !o2.layout.get("symbol-sort-key").isConstant(); - let b2 = false; - const w2 = e2.depthModeForSublayer(0, wi.ReadOnly), T2 = o2.layout.get("text-variable-anchor"), E2 = []; - for (const l3 of a2) { - const a3 = i2.getTile(l3), c4 = a3.getBucket(o2); - if (!c4) - continue; - const u3 = r2 ? c4.text : c4.icon; - if (!u3 || !u3.segments.get().length) - continue; - const d3 = u3.programConfigurations.get(o2.id), m3 = r2 || c4.sdfIcons, w3 = r2 ? c4.textSizeData : c4.iconSizeData, I3 = g2 || 0 !== p3.pitch, C2 = e2.useProgram(Mi(m3, r2, c4), d3), S2 = t.evaluateSizeForZoom(w3, p3.zoom), D2 = e2.style.terrain && e2.style.terrain.getTerrainData(l3); - let z2, P2, M2, A3, L2 = [0, 0], R2 = null; - if (r2) { - if (P2 = a3.glyphAtlasTexture, M2 = _2.LINEAR, z2 = a3.glyphAtlasTexture.size, c4.iconsInText) { - L2 = a3.imageAtlasTexture.size, R2 = a3.imageAtlasTexture; - const t2 = "composite" === w3.kind || "camera" === w3.kind; - A3 = I3 || e2.options.rotating || e2.options.zooming || t2 ? _2.LINEAR : _2.NEAREST; + function eo(e2, i2, o2, r2, a2, n2, s2, l2, c3, u2, h3, p3) { + for (var d2 = e2.context, _2 = d2.gl, f2 = e2.transform, m2 = "map" === l2, g2 = "map" === c3, v3 = m2 && "point" !== o2.layout.get("symbol-placement"), y3 = m2 && !g2 && !v3, x2 = void 0 !== o2.layout.get("symbol-sort-key").constantOr(1), b2 = false, w2 = e2.depthModeForSublayer(0, It.ReadOnly), T2 = o2.layout.get("text-variable-anchor"), E2 = [], I3 = 0, P2 = r2; I3 < P2.length; I3 += 1) { + var S2 = P2[I3], C2 = i2.getTile(S2), z2 = C2.getBucket(o2); + if (z2) { + var D2 = a2 ? z2.text : z2.icon; + if (D2 && D2.segments.get().length) { + var A3 = D2.programConfigurations.get(o2.id), M2 = a2 || z2.sdfIcons, L2 = a2 ? z2.textSizeData : z2.iconSizeData, R2 = g2 || 0 !== f2.pitch, k2 = e2.useProgram(to(M2, a2, z2), A3), B2 = t.evaluateSizeForZoom(L2, f2.zoom), O3 = void 0, F2 = [0, 0], U2 = void 0, N2 = void 0, Z3 = null, q2 = void 0; + if (a2) + U2 = C2.glyphAtlasTexture, N2 = _2.LINEAR, O3 = C2.glyphAtlasTexture.size, z2.iconsInText && (F2 = C2.imageAtlasTexture.size, Z3 = C2.imageAtlasTexture, q2 = R2 || e2.options.rotating || e2.options.zooming || "composite" === L2.kind || "camera" === L2.kind ? _2.LINEAR : _2.NEAREST); + else { + var j2 = 1 !== o2.layout.get("icon-size").constantOr(0) || z2.iconsNeedLinear; + U2 = C2.imageAtlasTexture, N2 = M2 || e2.options.rotating || e2.options.zooming || j2 || R2 ? _2.LINEAR : _2.NEAREST, O3 = C2.imageAtlasTexture.size; + } + var V3 = pe(C2, 1, e2.transform.zoom), G2 = Jt(S2.posMatrix, g2, m2, e2.transform, V3), W2 = Qt(S2.posMatrix, g2, m2, e2.transform, V3), X2 = T2 && z2.hasTextData(), H2 = "none" !== o2.layout.get("icon-text-fit") && X2 && z2.hasIconData(); + v3 && ie(z2, S2.posMatrix, e2, a2, G2, W2, g2, u2); + var K2 = e2.translatePosMatrix(S2.posMatrix, C2, n2, s2), Y2 = v3 || a2 && T2 || H2 ? Ji : G2, J2 = e2.translatePosMatrix(W2, C2, n2, s2, true), Q2 = M2 && 0 !== o2.paint.get(a2 ? "text-halo-width" : "icon-halo-width").constantOr(1), $2 = { program: k2, buffers: D2, uniformValues: M2 ? z2.iconsInText ? Wi(L2.kind, B2, y3, g2, e2, K2, Y2, J2, O3, F2) : Gi(L2.kind, B2, y3, g2, e2, K2, Y2, J2, a2, O3, true) : Vi(L2.kind, B2, y3, g2, e2, K2, Y2, J2, a2, O3), atlasTexture: U2, atlasTextureIcon: Z3, atlasInterpolation: N2, atlasInterpolationIcon: q2, isSDF: M2, hasHalo: Q2 }; + if (x2 && z2.canOverlap) { + b2 = true; + for (var tt2 = 0, et2 = D2.segments.get(); tt2 < et2.length; tt2 += 1) { + var it2 = et2[tt2]; + E2.push({ segments: new t.SegmentVector([it2]), sortKey: it2.sortKey, state: $2 }); + } + } else + E2.push({ segments: D2.segments, sortKey: 0, state: $2 }); } - } else { - const t2 = 1 !== o2.layout.get("icon-size").constantOr(0) || c4.iconsNeedLinear; - P2 = a3.imageAtlasTexture, M2 = m3 || e2.options.rotating || e2.options.zooming || t2 || I3 ? _2.LINEAR : _2.NEAREST, z2 = a3.imageAtlasTexture.size; - } - const k2 = bt(a3, 1, e2.transform.zoom), B2 = rt(l3.posMatrix, g2, f2, e2.transform, k2), F2 = st(l3.posMatrix, g2, f2, e2.transform, k2), O3 = T2 && c4.hasTextData(), U2 = "none" !== o2.layout.get("icon-text-fit") && O3 && c4.hasIconData(); - if (x2) { - const t2 = e2.style.terrain ? (t3, i4) => e2.style.terrain.getElevation(l3, t3, i4) : null, i3 = "map" === o2.layout.get("text-rotation-alignment"); - ht(c4, l3.posMatrix, e2, r2, B2, F2, g2, h3, i3, t2); - } - const N2 = e2.translatePosMatrix(l3.posMatrix, a3, s2, n2), G2 = x2 || r2 && T2 || U2 ? Di : B2, Z3 = e2.translatePosMatrix(F2, a3, s2, n2, true), V3 = m3 && 0 !== o2.paint.get(r2 ? "text-halo-width" : "icon-halo-width").constantOr(1); - let q2; - q2 = m3 ? c4.iconsInText ? Me(w3.kind, S2, v3, g2, e2, N2, G2, Z3, z2, L2) : Pe(w3.kind, S2, v3, g2, e2, N2, G2, Z3, r2, z2, true) : ze(w3.kind, S2, v3, g2, e2, N2, G2, Z3, r2, z2); - const j2 = { program: C2, buffers: u3, uniformValues: q2, atlasTexture: P2, atlasTextureIcon: R2, atlasInterpolation: M2, atlasInterpolationIcon: A3, isSDF: m3, hasHalo: V3 }; - if (y3 && c4.canOverlap) { - b2 = true; - const e3 = u3.segments.get(); - for (const i3 of e3) - E2.push({ segments: new t.SegmentVector([i3]), sortKey: i3.sortKey, state: j2, terrainData: D2 }); - } else - E2.push({ segments: u3.segments, sortKey: 0, state: j2, terrainData: D2 }); - } - b2 && E2.sort((t2, e3) => t2.sortKey - e3.sortKey); - for (const t2 of E2) { - const i3 = t2.state; - if (m2.activeTexture.set(_2.TEXTURE0), i3.atlasTexture.bind(i3.atlasInterpolation, _2.CLAMP_TO_EDGE), i3.atlasTextureIcon && (m2.activeTexture.set(_2.TEXTURE1), i3.atlasTextureIcon && i3.atlasTextureIcon.bind(i3.atlasInterpolationIcon, _2.CLAMP_TO_EDGE)), i3.isSDF) { - const a3 = i3.uniformValues; - i3.hasHalo && (a3.u_is_halo = 1, Li(i3.buffers, t2.segments, o2, e2, i3.program, w2, u2, d2, a3, t2.terrainData)), a3.u_is_halo = 0; } - Li(i3.buffers, t2.segments, o2, e2, i3.program, w2, u2, d2, i3.uniformValues, t2.terrainData); - } - } - function Li(t2, e2, i2, o2, a2, r2, s2, n2, l2, c3) { - const h3 = o2.context; - a2.draw(h3, h3.gl.TRIANGLES, r2, s2, n2, Ii.disabled, l2, c3, i2.id, t2.layoutVertexBuffer, t2.indexBuffer, e2, i2.paint, o2.transform.zoom, t2.programConfigurations.get(i2.id), t2.dynamicLayoutVertexBuffer, t2.opacityVertexBuffer); - } - function Ri(t2, e2, i2, o2, a2, r2, s2) { - const n2 = t2.context.gl, l2 = i2.paint.get("fill-pattern"), c3 = l2 && l2.constantOr(1), h3 = i2.getCrossfadeParameters(); - let u2, d2, m2, _2, p3; - s2 ? (d2 = c3 && !i2.getPaintProperty("fill-outline-color") ? "fillOutlinePattern" : "fillOutline", u2 = n2.LINES) : (d2 = c3 ? "fillPattern" : "fill", u2 = n2.TRIANGLES); - for (const f2 of o2) { - const o3 = e2.getTile(f2); - if (c3 && !o3.patternsLoaded()) - continue; - const g2 = o3.getBucket(i2); - if (!g2) - continue; - const x2 = g2.programConfigurations.get(i2.id), v3 = t2.useProgram(d2, x2), y3 = t2.style.terrain && t2.style.terrain.getTerrainData(f2); - c3 && (t2.context.activeTexture.set(n2.TEXTURE0), o3.imageAtlasTexture.bind(n2.LINEAR, n2.CLAMP_TO_EDGE), x2.updatePaintBuffers(h3)); - const b2 = l2.constantOr(null); - if (b2 && o3.imageAtlas) { - const t3 = o3.imageAtlas, e3 = t3.patternPositions[b2.to.toString()], i3 = t3.patternPositions[b2.from.toString()]; - e3 && i3 && x2.setConstantPatternPositions(e3, i3); - } - const w2 = y3 ? f2 : null, T2 = t2.translatePosMatrix(w2 ? w2.posMatrix : f2.posMatrix, o3, i2.paint.get("fill-translate"), i2.paint.get("fill-translate-anchor")); - if (s2) { - _2 = g2.indexBuffer2, p3 = g2.segments2; - const e3 = [n2.drawingBufferWidth, n2.drawingBufferHeight]; - m2 = "fillOutlinePattern" === d2 && c3 ? _e(T2, t2, h3, o3, e3) : me(T2, e3); - } else - _2 = g2.indexBuffer, p3 = g2.segments, m2 = c3 ? de(T2, t2, h3, o3) : ue(T2); - v3.draw(t2.context, u2, a2, t2.stencilModeForClipping(f2), r2, Ii.disabled, m2, y3, i2.id, g2.layoutVertexBuffer, _2, p3, i2.paint, t2.transform.zoom, x2); } - } - function ki(t2, e2, i2, o2, a2, r2, s2) { - const n2 = t2.context, l2 = n2.gl, c3 = i2.paint.get("fill-extrusion-pattern"), h3 = c3.constantOr(1), u2 = i2.getCrossfadeParameters(), d2 = i2.paint.get("fill-extrusion-opacity"); - for (const m2 of o2) { - const o3 = e2.getTile(m2), _2 = o3.getBucket(i2); - if (!_2) - continue; - const p3 = t2.style.terrain && t2.style.terrain.getTerrainData(m2), f2 = _2.programConfigurations.get(i2.id), g2 = t2.useProgram(h3 ? "fillExtrusionPattern" : "fillExtrusion", f2); - h3 && (t2.context.activeTexture.set(l2.TEXTURE0), o3.imageAtlasTexture.bind(l2.LINEAR, l2.CLAMP_TO_EDGE), f2.updatePaintBuffers(u2)); - const x2 = c3.constantOr(null); - if (x2 && o3.imageAtlas) { - const t3 = o3.imageAtlas, e3 = t3.patternPositions[x2.to.toString()], i3 = t3.patternPositions[x2.from.toString()]; - e3 && i3 && f2.setConstantPatternPositions(e3, i3); + b2 && E2.sort(function(t2, e3) { + return t2.sortKey - e3.sortKey; + }); + for (var ot2 = 0, rt2 = E2; ot2 < rt2.length; ot2 += 1) { + var at2 = rt2[ot2], nt2 = at2.state; + if (d2.activeTexture.set(_2.TEXTURE0), nt2.atlasTexture.bind(nt2.atlasInterpolation, _2.CLAMP_TO_EDGE), nt2.atlasTextureIcon && (d2.activeTexture.set(_2.TEXTURE1), nt2.atlasTextureIcon && nt2.atlasTextureIcon.bind(nt2.atlasInterpolationIcon, _2.CLAMP_TO_EDGE)), nt2.isSDF) { + var st2 = nt2.uniformValues; + nt2.hasHalo && (st2.u_is_halo = 1, io(nt2.buffers, at2.segments, o2, e2, nt2.program, w2, h3, p3, st2)), st2.u_is_halo = 0; + } + io(nt2.buffers, at2.segments, o2, e2, nt2.program, w2, h3, p3, nt2.uniformValues); + } + } + function io(t2, e2, i2, o2, r2, a2, n2, s2, l2) { + var c3 = o2.context; + r2.draw(c3, c3.gl.TRIANGLES, a2, n2, s2, Ct.disabled, l2, i2.id, t2.layoutVertexBuffer, t2.indexBuffer, e2, i2.paint, o2.transform.zoom, t2.programConfigurations.get(i2.id), t2.dynamicLayoutVertexBuffer, t2.opacityVertexBuffer); + } + function oo(t2, e2, i2, o2, r2, a2, n2) { + var s2, l2, c3, u2, h3, p3 = t2.context.gl, d2 = i2.paint.get("fill-pattern"), _2 = d2 && d2.constantOr(1), f2 = i2.getCrossfadeParameters(); + n2 ? (l2 = _2 && !i2.getPaintProperty("fill-outline-color") ? "fillOutlinePattern" : "fillOutline", s2 = p3.LINES) : (l2 = _2 ? "fillPattern" : "fill", s2 = p3.TRIANGLES); + for (var m2 = 0, g2 = o2; m2 < g2.length; m2 += 1) { + var v3 = g2[m2], y3 = e2.getTile(v3); + if (!_2 || y3.patternsLoaded()) { + var x2 = y3.getBucket(i2); + if (x2) { + var b2 = x2.programConfigurations.get(i2.id), w2 = t2.useProgram(l2, b2); + _2 && (t2.context.activeTexture.set(p3.TEXTURE0), y3.imageAtlasTexture.bind(p3.LINEAR, p3.CLAMP_TO_EDGE), b2.updatePaintBuffers(f2)); + var T2 = d2.constantOr(null); + if (T2 && y3.imageAtlas) { + var E2 = y3.imageAtlas, I3 = E2.patternPositions[T2.to.toString()], P2 = E2.patternPositions[T2.from.toString()]; + I3 && P2 && b2.setConstantPatternPositions(I3, P2); + } + var S2 = t2.translatePosMatrix(v3.posMatrix, y3, i2.paint.get("fill-translate"), i2.paint.get("fill-translate-anchor")); + if (n2) { + u2 = x2.indexBuffer2, h3 = x2.segments2; + var C2 = [p3.drawingBufferWidth, p3.drawingBufferHeight]; + c3 = "fillOutlinePattern" === l2 && _2 ? Ci(S2, t2, f2, y3, C2) : Si(S2, C2); + } else + u2 = x2.indexBuffer, h3 = x2.segments, c3 = _2 ? Pi(S2, t2, f2, y3) : Ii(S2); + w2.draw(t2.context, s2, r2, t2.stencilModeForClipping(v3), a2, Ct.disabled, c3, i2.id, x2.layoutVertexBuffer, u2, h3, i2.paint, t2.transform.zoom, b2); + } } - const v3 = t2.translatePosMatrix(m2.posMatrix, o3, i2.paint.get("fill-extrusion-translate"), i2.paint.get("fill-extrusion-translate-anchor")), y3 = i2.paint.get("fill-extrusion-vertical-gradient"), b2 = h3 ? he(v3, t2, y3, d2, m2, u2, o3) : ce(v3, t2, y3, d2); - g2.draw(n2, n2.gl.TRIANGLES, a2, r2, s2, Ii.backCCW, b2, p3, i2.id, _2.layoutVertexBuffer, _2.indexBuffer, _2.segments, i2.paint, t2.transform.zoom, f2, t2.style.terrain && _2.centroidVertexBuffer); } } - function Bi(t2, e2, i2, o2, a2, r2, s2) { - const n2 = t2.context, l2 = n2.gl, c3 = i2.fbo; - if (!c3) - return; - const h3 = t2.useProgram("hillshade"), u2 = t2.style.terrain && t2.style.terrain.getTerrainData(e2); - n2.activeTexture.set(l2.TEXTURE0), l2.bindTexture(l2.TEXTURE_2D, c3.colorAttachment.get()), h3.draw(n2, l2.TRIANGLES, a2, r2, s2, Ii.disabled, ((t3, e3, i3, o3) => { - const a3 = i3.paint.get("hillshade-shadow-color"), r3 = i3.paint.get("hillshade-highlight-color"), s3 = i3.paint.get("hillshade-accent-color"); - let n3 = i3.paint.get("hillshade-illumination-direction") * (Math.PI / 180); - "viewport" === i3.paint.get("hillshade-illumination-anchor") && (n3 -= t3.transform.angle); - const l3 = !t3.options.moving; - return { u_matrix: o3 ? o3.posMatrix : t3.transform.calculatePosMatrix(e3.tileID.toUnwrapped(), l3), u_image: 0, u_latrange: ye(0, e3.tileID), u_light: [i3.paint.get("hillshade-exaggeration"), n3], u_shadow: a3, u_highlight: r3, u_accent: s3 }; - })(t2, i2, o2, u2 ? e2 : null), u2, o2.id, t2.rasterBoundsBuffer, t2.quadTriangleIndexBuffer, t2.rasterBoundsSegments); - } - function Fi(e2, i2, o2, a2, r2, s2) { - const n2 = e2.context, c3 = n2.gl, h3 = i2.dem; - if (h3 && h3.data) { - const u2 = h3.dim, d2 = h3.stride, m2 = h3.getPixels(); - if (n2.activeTexture.set(c3.TEXTURE1), n2.pixelStoreUnpackPremultiplyAlpha.set(false), i2.demTexture = i2.demTexture || e2.getTileTexture(d2), i2.demTexture) { - const t2 = i2.demTexture; - t2.update(m2, { premultiply: false }), t2.bind(c3.NEAREST, c3.CLAMP_TO_EDGE); + function ro(t2, e2, i2, o2, r2, a2, n2) { + for (var s2 = t2.context, l2 = s2.gl, c3 = i2.paint.get("fill-extrusion-pattern"), u2 = c3.constantOr(1), h3 = i2.getCrossfadeParameters(), p3 = i2.paint.get("fill-extrusion-opacity"), d2 = 0, _2 = o2; d2 < _2.length; d2 += 1) { + var f2 = _2[d2], m2 = e2.getTile(f2), g2 = m2.getBucket(i2); + if (g2) { + var v3 = g2.programConfigurations.get(i2.id), y3 = t2.useProgram(u2 ? "fillExtrusionPattern" : "fillExtrusion", v3); + u2 && (t2.context.activeTexture.set(l2.TEXTURE0), m2.imageAtlasTexture.bind(l2.LINEAR, l2.CLAMP_TO_EDGE), v3.updatePaintBuffers(h3)); + var x2 = c3.constantOr(null); + if (x2 && m2.imageAtlas) { + var b2 = m2.imageAtlas, w2 = b2.patternPositions[x2.to.toString()], T2 = b2.patternPositions[x2.from.toString()]; + w2 && T2 && v3.setConstantPatternPositions(w2, T2); + } + var E2 = t2.translatePosMatrix(f2.posMatrix, m2, i2.paint.get("fill-extrusion-translate"), i2.paint.get("fill-extrusion-translate-anchor")), I3 = i2.paint.get("fill-extrusion-vertical-gradient"), P2 = u2 ? Ei(E2, t2, I3, p3, f2, h3, m2) : Ti(E2, t2, I3, p3); + y3.draw(s2, s2.gl.TRIANGLES, r2, a2, n2, Ct.backCCW, P2, i2.id, g2.layoutVertexBuffer, g2.indexBuffer, g2.segments, i2.paint, t2.transform.zoom, v3); + } + } + } + function ao(e2, i2, o2, r2, a2, n2) { + var s2 = e2.context, l2 = s2.gl, c3 = i2.fbo; + if (c3) { + var u2 = e2.useProgram("hillshade"); + s2.activeTexture.set(l2.TEXTURE0), l2.bindTexture(l2.TEXTURE_2D, c3.colorAttachment.get()); + var h3 = function(e3, i3, o3) { + var r3 = o3.paint.get("hillshade-shadow-color"), a3 = o3.paint.get("hillshade-highlight-color"), n3 = o3.paint.get("hillshade-accent-color"), s3 = o3.paint.get("hillshade-illumination-direction") * (Math.PI / 180); + "viewport" === o3.paint.get("hillshade-illumination-anchor") && (s3 -= e3.transform.angle); + var l3, c4, u3, h4 = !e3.options.moving; + return { u_matrix: e3.transform.calculatePosMatrix(i3.tileID.toUnwrapped(), h4), u_image: 0, u_latrange: (l3 = i3.tileID, c4 = Math.pow(2, l3.canonical.z), u3 = l3.canonical.y, [new t.MercatorCoordinate(0, u3 / c4).toLngLat().lat, new t.MercatorCoordinate(0, (u3 + 1) / c4).toLngLat().lat]), u_light: [o3.paint.get("hillshade-exaggeration"), s3], u_shadow: r3, u_highlight: a3, u_accent: n3 }; + }(e2, i2, o2); + u2.draw(s2, l2.TRIANGLES, r2, a2, n2, Ct.disabled, h3, o2.id, e2.rasterBoundsBuffer, e2.quadTriangleIndexBuffer, e2.rasterBoundsSegments); + } + } + function no(e2, i2, o2, r2, a2, n2) { + var s2 = e2.context, l2 = s2.gl, c3 = i2.dem; + if (c3 && c3.data) { + var u2 = c3.dim, h3 = c3.stride, p3 = c3.getPixels(); + if (s2.activeTexture.set(l2.TEXTURE1), s2.pixelStoreUnpackPremultiplyAlpha.set(false), i2.demTexture = i2.demTexture || e2.getTileTexture(h3), i2.demTexture) { + var d2 = i2.demTexture; + d2.update(p3, { premultiply: false }), d2.bind(l2.NEAREST, l2.CLAMP_TO_EDGE); } else - i2.demTexture = new l(n2, m2, c3.RGBA, { premultiply: false }), i2.demTexture.bind(c3.NEAREST, c3.CLAMP_TO_EDGE); - n2.activeTexture.set(c3.TEXTURE0); - let _2 = i2.fbo; + i2.demTexture = new t.Texture(s2, p3, l2.RGBA, { premultiply: false }), i2.demTexture.bind(l2.NEAREST, l2.CLAMP_TO_EDGE); + s2.activeTexture.set(l2.TEXTURE0); + var _2 = i2.fbo; if (!_2) { - const t2 = new l(n2, { width: u2, height: u2, data: null }, c3.RGBA); - t2.bind(c3.LINEAR, c3.CLAMP_TO_EDGE), _2 = i2.fbo = n2.createFramebuffer(u2, u2, true), _2.colorAttachment.set(t2.texture); + var f2 = new t.Texture(s2, { width: u2, height: u2, data: null }, l2.RGBA); + f2.bind(l2.LINEAR, l2.CLAMP_TO_EDGE), (_2 = i2.fbo = s2.createFramebuffer(u2, u2, true)).colorAttachment.set(f2.texture); } - n2.bindFramebuffer.set(_2.framebuffer), n2.viewport.set([0, 0, u2, u2]), e2.useProgram("hillshadePrepare").draw(n2, c3.TRIANGLES, a2, r2, s2, Ii.disabled, ((e3, i3) => { - const o3 = i3.stride, a3 = t.create(); - return t.ortho(a3, 0, t.EXTENT, -t.EXTENT, 0, 0, 1), t.translate(a3, a3, [0, -t.EXTENT, 0]), { u_matrix: a3, u_image: 1, u_dimension: [o3, o3], u_zoom: e3.overscaledZ, u_unpack: i3.getUnpackVector() }; - })(i2.tileID, h3), null, o2.id, e2.rasterBoundsBuffer, e2.quadTriangleIndexBuffer, e2.rasterBoundsSegments), i2.needsHillshadePrepare = false; + s2.bindFramebuffer.set(_2.framebuffer), s2.viewport.set([0, 0, u2, u2]), e2.useProgram("hillshadePrepare").draw(s2, l2.TRIANGLES, r2, a2, n2, Ct.disabled, function(e3, i3) { + var o3 = i3.stride, r3 = t.create(); + return t.ortho(r3, 0, t.EXTENT, -t.EXTENT, 0, 0, 1), t.translate(r3, r3, [0, -t.EXTENT, 0]), { u_matrix: r3, u_image: 1, u_dimension: [o3, o3], u_zoom: e3.overscaledZ, u_unpack: i3.getUnpackVector() }; + }(i2.tileID, c3), o2.id, e2.rasterBoundsBuffer, e2.quadTriangleIndexBuffer, e2.rasterBoundsSegments), i2.needsHillshadePrepare = false; } } - function Oi(e2, i2, o2, a2, r2, s2) { - const n2 = a2.paint.get("raster-fade-duration"); - if (!s2 && n2 > 0) { - const a3 = t.exported.now(), s3 = (a3 - e2.timeAdded) / n2, l2 = i2 ? (a3 - i2.timeAdded) / n2 : -1, c3 = o2.getSource(), h3 = r2.coveringZoomLevel({ tileSize: c3.tileSize, roundZoom: c3.roundZoom }), u2 = !i2 || Math.abs(i2.tileID.overscaledZ - h3) > Math.abs(e2.tileID.overscaledZ - h3), d2 = u2 && e2.refreshedUponExpiration ? 1 : t.clamp(u2 ? s3 : 1 - l2, 0, 1); - return e2.refreshedUponExpiration && s3 >= 1 && (e2.refreshedUponExpiration = false), i2 ? { opacity: 1, mix: 1 - d2 } : { opacity: d2, mix: 0 }; + function so(e2, i2, o2, r2, a2) { + var n2 = r2.paint.get("raster-fade-duration"); + if (n2 > 0) { + var s2 = t.browser.now(), l2 = (s2 - e2.timeAdded) / n2, c3 = i2 ? (s2 - i2.timeAdded) / n2 : -1, u2 = o2.getSource(), h3 = a2.coveringZoomLevel({ tileSize: u2.tileSize, roundZoom: u2.roundZoom }), p3 = !i2 || Math.abs(i2.tileID.overscaledZ - h3) > Math.abs(e2.tileID.overscaledZ - h3), d2 = p3 && e2.refreshedUponExpiration ? 1 : t.clamp(p3 ? l2 : 1 - c3, 0, 1); + return e2.refreshedUponExpiration && l2 >= 1 && (e2.refreshedUponExpiration = false), i2 ? { opacity: 1, mix: 1 - d2 } : { opacity: d2, mix: 0 }; } return { opacity: 1, mix: 0 }; } - const Ui = new t.Color(1, 0, 0, 1), Ni = new t.Color(0, 1, 0, 1), Gi = new t.Color(0, 0, 1, 1), Zi = new t.Color(1, 0, 1, 1), Vi = new t.Color(0, 1, 1, 1); - function qi(t2, e2, i2, o2) { - $i(t2, 0, e2 + i2 / 2, t2.transform.width, i2, o2); + var lo = new t.Color(1, 0, 0, 1), co = new t.Color(0, 1, 0, 1), uo = new t.Color(0, 0, 1, 1), ho = new t.Color(1, 0, 1, 1), po = new t.Color(0, 1, 1, 1); + function _o(t2, e2, i2, o2) { + mo(t2, 0, e2 + i2 / 2, t2.transform.width, i2, o2); } - function ji(t2, e2, i2, o2) { - $i(t2, e2 - i2 / 2, 0, i2, t2.transform.height, o2); + function fo(t2, e2, i2, o2) { + mo(t2, e2 - i2 / 2, 0, i2, t2.transform.height, o2); } - function $i(t2, e2, i2, o2, a2, r2) { - const s2 = t2.context, n2 = s2.gl; - n2.enable(n2.SCISSOR_TEST), n2.scissor(e2 * t2.pixelRatio, i2 * t2.pixelRatio, o2 * t2.pixelRatio, a2 * t2.pixelRatio), s2.clear({ color: r2 }), n2.disable(n2.SCISSOR_TEST); + function mo(e2, i2, o2, r2, a2, n2) { + var s2 = e2.context, l2 = s2.gl; + l2.enable(l2.SCISSOR_TEST), l2.scissor(i2 * t.browser.devicePixelRatio, o2 * t.browser.devicePixelRatio, r2 * t.browser.devicePixelRatio, a2 * t.browser.devicePixelRatio), s2.clear({ color: n2 }), l2.disable(l2.SCISSOR_TEST); } - function Xi(e2, i2, o2) { - const a2 = e2.context, r2 = a2.gl, s2 = o2.posMatrix, n2 = e2.useProgram("debug"), l2 = wi.disabled, c3 = Ei.disabled, h3 = e2.colorModeForRenderPass(), u2 = "$debug", d2 = e2.style.terrain && e2.style.terrain.getTerrainData(o2); - a2.activeTexture.set(r2.TEXTURE0), e2.emptyTexture.bind(r2.LINEAR, r2.CLAMP_TO_EDGE); - const m2 = i2.getTileByID(o2.key).latestRawTileData, _2 = Math.floor((m2 && m2.byteLength || 0) / 1024), p3 = i2.getTile(o2).tileSize, f2 = 512 / Math.min(p3, 512) * (o2.overscaledZ / e2.transform.zoom) * 0.5; - let g2 = o2.canonical.toString(); - o2.overscaledZ !== o2.canonical.z && (g2 += ` => ${o2.overscaledZ}`), function(t2, e3) { + function go(e2, i2, o2) { + var r2 = e2.context, a2 = r2.gl, n2 = o2.posMatrix, s2 = e2.useProgram("debug"), l2 = It.disabled, c3 = Pt.disabled, u2 = e2.colorModeForRenderPass(); + r2.activeTexture.set(a2.TEXTURE0), e2.emptyTexture.bind(a2.LINEAR, a2.CLAMP_TO_EDGE), s2.draw(r2, a2.LINE_STRIP, l2, c3, u2, Ct.disabled, Mi(n2, t.Color.red), "$debug", e2.debugBuffer, e2.tileBorderIndexBuffer, e2.debugSegments); + var h3 = i2.getTileByID(o2.key).latestRawTileData, p3 = Math.floor((h3 && h3.byteLength || 0) / 1024), d2 = i2.getTile(o2).tileSize, _2 = 512 / Math.min(d2, 512) * (o2.overscaledZ / e2.transform.zoom) * 0.5, f2 = o2.canonical.toString(); + o2.overscaledZ !== o2.canonical.z && (f2 += " => " + o2.overscaledZ), function(t2, e3) { t2.initDebugOverlayCanvas(); - const i3 = t2.debugOverlayCanvas, o3 = t2.context.gl, a3 = t2.debugOverlayCanvas.getContext("2d"); - a3.clearRect(0, 0, i3.width, i3.height), a3.shadowColor = "white", a3.shadowBlur = 2, a3.lineWidth = 1.5, a3.strokeStyle = "white", a3.textBaseline = "top", a3.font = "bold 36px Open Sans, sans-serif", a3.fillText(e3, 5, 5), a3.strokeText(e3, 5, 5), t2.debugOverlayTexture.update(i3), t2.debugOverlayTexture.bind(o3.LINEAR, o3.CLAMP_TO_EDGE); - }(e2, `${g2} ${_2}kB`), n2.draw(a2, r2.TRIANGLES, l2, c3, yi.alphaBlended, Ii.disabled, ge(s2, t.Color.transparent, f2), null, u2, e2.debugBuffer, e2.quadTriangleIndexBuffer, e2.debugSegments), n2.draw(a2, r2.LINE_STRIP, l2, c3, h3, Ii.disabled, ge(s2, t.Color.red), d2, u2, e2.debugBuffer, e2.tileBorderIndexBuffer, e2.debugSegments); - } - function Wi(t2, e2, i2) { - const o2 = t2.context, a2 = o2.gl, r2 = t2.colorModeForRenderPass(), s2 = new wi(a2.LEQUAL, wi.ReadWrite, t2.depthRangeFor3D), n2 = t2.useProgram("terrain"), l2 = e2.getTerrainMesh(), c3 = e2.getTerrainData(i2.tileID); - o2.bindFramebuffer.set(null), o2.viewport.set([0, 0, t2.width, t2.height]), o2.activeTexture.set(a2.TEXTURE0), a2.bindTexture(a2.TEXTURE_2D, e2.getRTTFramebuffer().colorAttachment.get()); - const h3 = t2.transform.calculatePosMatrix(i2.tileID.toUnwrapped()); - n2.draw(o2, a2.TRIANGLES, s2, Ei.disabled, r2, Ii.backCCW, { u_matrix: h3, u_texture: 0 }, c3, "terrain", l2.vertexBuffer, l2.indexBuffer, l2.segments); - } - function Hi(t2, e2, i2, o2) { - const a2 = t2.context, r2 = i2.tileSize * e2.qualityFactor; - i2.textures[o2] || (i2.textures[o2] = t2.getTileTexture(r2) || new l(a2, { width: r2, height: r2, data: null }, a2.gl.RGBA), i2.textures[o2].bind(a2.gl.LINEAR, a2.gl.CLAMP_TO_EDGE), 0 === o2 && e2.sourceCache.renderHistory.unshift(i2.tileID.key)); - const s2 = e2.getRTTFramebuffer(); - s2.colorAttachment.set(i2.textures[o2].texture), a2.bindFramebuffer.set(s2.framebuffer), a2.viewport.set([0, 0, r2, r2]); - } - class Ki { - constructor(t2) { - this._coordsDescendingInv = {}, this._coordsDescendingInvStr = {}, this.painter = t2, this._renderToTexture = { background: true, fill: true, line: true, raster: true }, this._coordsDescendingInv = {}, this._coordsDescendingInvStr = {}, this._stacks = [], this._prevType = null, this._rerender = {}, this._renderableTiles = t2.style.terrain.sourceCache.getRenderableTiles(), this._init(); - } - _init() { - const t2 = this.painter.style, e2 = t2.terrain; - for (const i2 in t2.sourceCaches) { - this._coordsDescendingInv[i2] = {}; - const o2 = t2.sourceCaches[i2].getVisibleCoordinates(); - for (const t3 of o2) { - const o3 = e2.sourceCache.getTerrainCoords(t3); - for (const t4 in o3) - this._coordsDescendingInv[i2][t4] || (this._coordsDescendingInv[i2][t4] = []), this._coordsDescendingInv[i2][t4].push(o3[t4]); - } - } - for (const e3 of t2._order) { - const i2 = t2._layers[e3], o2 = i2.source; - if (this._renderToTexture[i2.type] && !this._coordsDescendingInvStr[o2]) { - this._coordsDescendingInvStr[o2] = {}; - for (const t3 in this._coordsDescendingInv[o2]) - this._coordsDescendingInvStr[o2][t3] = this._coordsDescendingInv[o2][t3].map((t4) => t4.key).sort().join(); - } - } - return this._renderableTiles.forEach((t3) => { - for (const i2 in this._coordsDescendingInvStr) { - const o2 = this._coordsDescendingInvStr[i2][t3.tileID.key]; - o2 && o2 !== t3.textureCoords[i2] && t3.clearTextures(this.painter), e2.needsRerender(i2, t3.tileID) && t3.clearTextures(this.painter); - } - this._rerender[t3.tileID.key] = !t3.textures.length; - }), e2.clearRerenderCache(), e2.sourceCache.removeOutdated(this.painter), this; - } - renderLayer(e2) { - const i2 = e2.type, o2 = this.painter, a2 = o2.style._order, r2 = o2.currentLayer, s2 = r2 + 1 === a2.length; - if (this._renderToTexture[i2] && (this._prevType && this._renderToTexture[this._prevType] || this._stacks.push([]), this._prevType = i2, this._stacks[this._stacks.length - 1].push(a2[r2]), !s2)) - return true; - if (this._renderToTexture[this._prevType] || "hillshade" === i2 || this._renderToTexture[i2] && s2) { - this._prevType = i2; - const s3 = this._stacks.length - 1, n2 = this._stacks[s3] || []; - for (const e3 of this._renderableTiles) { - if (Hi(o2, o2.style.terrain, e3, s3), this._rerender[e3.tileID.key]) { - o2.context.clear({ color: t.Color.transparent }); - for (let t2 = 0; t2 < n2.length; t2++) { - const i3 = o2.style._layers[n2[t2]], a3 = i3.source ? this._coordsDescendingInv[i3.source][e3.tileID.key] : [e3.tileID]; - o2._renderTileClippingMasks(i3, a3), o2.renderLayer(o2, o2.style.sourceCaches[i3.source], i3, a3), i3.source && (e3.textureCoords[i3.source] = this._coordsDescendingInvStr[i3.source][e3.tileID.key]); + var i3 = t2.debugOverlayCanvas, o3 = t2.context.gl, r3 = t2.debugOverlayCanvas.getContext("2d"); + r3.clearRect(0, 0, i3.width, i3.height), r3.shadowColor = "white", r3.shadowBlur = 2, r3.lineWidth = 1.5, r3.strokeStyle = "white", r3.textBaseline = "top", r3.font = "bold 36px Open Sans, sans-serif", r3.fillText(e3, 5, 5), r3.strokeText(e3, 5, 5), t2.debugOverlayTexture.update(i3), t2.debugOverlayTexture.bind(o3.LINEAR, o3.CLAMP_TO_EDGE); + }(e2, f2 + " " + p3 + "kb"), s2.draw(r2, a2.TRIANGLES, l2, c3, St.alphaBlended, Ct.disabled, Mi(n2, t.Color.transparent, _2), "$debug", e2.debugBuffer, e2.quadTriangleIndexBuffer, e2.debugSegments); + } + var vo = { symbol: function(e2, i2, o2, r2, a2) { + if ("translucent" === e2.renderPass) { + var n2 = Pt.disabled, s2 = e2.colorModeForRenderPass(); + o2.layout.get("text-variable-anchor") && function(e3, i3, o3, r3, a3, n3, s3) { + for (var l2 = i3.transform, c3 = "map" === a3, u2 = "map" === n3, h3 = 0, p3 = e3; h3 < p3.length; h3 += 1) { + var d2 = p3[h3], _2 = r3.getTile(d2), f2 = _2.getBucket(o3); + if (f2 && f2.text && f2.text.segments.get().length) { + var m2 = t.evaluateSizeForZoom(f2.textSizeData, l2.zoom), g2 = pe(_2, 1, i3.transform.zoom), v3 = Jt(d2.posMatrix, u2, c3, i3.transform, g2), y3 = "none" !== o3.layout.get("icon-text-fit") && f2.hasIconData(); + if (m2) { + var x2 = Math.pow(2, l2.zoom - _2.tileID.overscaledZ); + $i(f2, c3, u2, s3, t.symbolSize, l2, v3, d2.posMatrix, x2, m2, y3); } } - Wi(o2, o2.style.terrain, e3); } - if ("hillshade" === i2) { - this._stacks.push([a2[r2]]); - for (const i3 of this._renderableTiles) { - const a3 = this._coordsDescendingInv[e2.source][i3.tileID.key]; - Hi(o2, o2.style.terrain, i3, this._stacks.length - 1), o2.context.clear({ color: t.Color.transparent }), o2._renderTileClippingMasks(e2, a3), o2.renderLayer(o2, o2.style.sourceCaches[e2.source], e2, a3), Wi(o2, o2.style.terrain, i3); + }(r2, e2, o2, i2, o2.layout.get("text-rotation-alignment"), o2.layout.get("text-pitch-alignment"), a2), 0 !== o2.paint.get("icon-opacity").constantOr(1) && eo(e2, i2, o2, r2, false, o2.paint.get("icon-translate"), o2.paint.get("icon-translate-anchor"), o2.layout.get("icon-rotation-alignment"), o2.layout.get("icon-pitch-alignment"), o2.layout.get("icon-keep-upright"), n2, s2), 0 !== o2.paint.get("text-opacity").constantOr(1) && eo(e2, i2, o2, r2, true, o2.paint.get("text-translate"), o2.paint.get("text-translate-anchor"), o2.layout.get("text-rotation-alignment"), o2.layout.get("text-pitch-alignment"), o2.layout.get("text-keep-upright"), n2, s2), i2.map.showCollisionBoxes && (Yi(e2, i2, o2, r2, o2.paint.get("text-translate"), o2.paint.get("text-translate-anchor"), true), Yi(e2, i2, o2, r2, o2.paint.get("icon-translate"), o2.paint.get("icon-translate-anchor"), false)); + } + }, circle: function(e2, i2, o2, r2) { + if ("translucent" === e2.renderPass) { + var a2 = o2.paint.get("circle-opacity"), n2 = o2.paint.get("circle-stroke-width"), s2 = o2.paint.get("circle-stroke-opacity"), l2 = void 0 !== o2.layout.get("circle-sort-key").constantOr(1); + if (0 !== a2.constantOr(1) || 0 !== n2.constantOr(1) && 0 !== s2.constantOr(1)) { + for (var c3 = e2.context, u2 = c3.gl, h3 = e2.depthModeForSublayer(0, It.ReadOnly), p3 = Pt.disabled, d2 = e2.colorModeForRenderPass(), _2 = [], f2 = 0; f2 < r2.length; f2++) { + var m2 = r2[f2], g2 = i2.getTile(m2), v3 = g2.getBucket(o2); + if (v3) { + var y3 = v3.programConfigurations.get(o2.id), x2 = { programConfiguration: y3, program: e2.useProgram("circle", y3), layoutVertexBuffer: v3.layoutVertexBuffer, indexBuffer: v3.indexBuffer, uniformValues: zi(e2, m2, g2, o2) }; + if (l2) + for (var b2 = 0, w2 = v3.segments.get(); b2 < w2.length; b2 += 1) { + var T2 = w2[b2]; + _2.push({ segments: new t.SegmentVector([T2]), sortKey: T2.sortKey, state: x2 }); + } + else + _2.push({ segments: v3.segments, sortKey: 0, state: x2 }); } - return true; } - return this._renderToTexture[i2]; - } - return false; - } - } - const Yi = { symbol: function(e2, i2, o2, a2, r2) { - if ("translucent" !== e2.renderPass) - return; - const s2 = Ei.disabled, n2 = e2.colorModeForRenderPass(); - o2.layout.get("text-variable-anchor") && function(e3, i3, o3, a3, r3, s3, n3) { - const l2 = i3.transform, c3 = "map" === r3, h3 = "map" === s3; - for (const r4 of e3) { - const e4 = a3.getTile(r4), s4 = e4.getBucket(o3); - if (!s4 || !s4.text || !s4.text.segments.get().length) - continue; - const u2 = t.evaluateSizeForZoom(s4.textSizeData, l2.zoom), d2 = bt(e4, 1, i3.transform.zoom), m2 = rt(r4.posMatrix, h3, c3, i3.transform, d2), _2 = "none" !== o3.layout.get("icon-text-fit") && s4.hasIconData(); - if (u2) { - const t2 = Math.pow(2, l2.zoom - e4.tileID.overscaledZ); - Pi(s4, c3, h3, n3, l2, m2, r4.posMatrix, t2, u2, _2, i3.style.terrain ? (t3, e5) => i3.style.terrain.getElevation(r4, t3, e5) : null); + l2 && _2.sort(function(t2, e3) { + return t2.sortKey - e3.sortKey; + }); + for (var E2 = 0, I3 = _2; E2 < I3.length; E2 += 1) { + var P2 = I3[E2], S2 = P2.state; + S2.program.draw(c3, u2.TRIANGLES, h3, p3, d2, Ct.disabled, S2.uniformValues, o2.id, S2.layoutVertexBuffer, S2.indexBuffer, P2.segments, o2.paint, e2.transform.zoom, S2.programConfiguration); } } - }(a2, e2, o2, i2, o2.layout.get("text-rotation-alignment"), o2.layout.get("text-pitch-alignment"), r2), 0 !== o2.paint.get("icon-opacity").constantOr(1) && Ai(e2, i2, o2, a2, false, o2.paint.get("icon-translate"), o2.paint.get("icon-translate-anchor"), o2.layout.get("icon-rotation-alignment"), o2.layout.get("icon-pitch-alignment"), o2.layout.get("icon-keep-upright"), s2, n2), 0 !== o2.paint.get("text-opacity").constantOr(1) && Ai(e2, i2, o2, a2, true, o2.paint.get("text-translate"), o2.paint.get("text-translate-anchor"), o2.layout.get("text-rotation-alignment"), o2.layout.get("text-pitch-alignment"), o2.layout.get("text-keep-upright"), s2, n2), i2.map.showCollisionBoxes && (Si(e2, i2, o2, a2, o2.paint.get("text-translate"), o2.paint.get("text-translate-anchor"), true), Si(e2, i2, o2, a2, o2.paint.get("icon-translate"), o2.paint.get("icon-translate-anchor"), false)); - }, circle: function(e2, i2, o2, a2) { - if ("translucent" !== e2.renderPass) - return; - const r2 = o2.paint.get("circle-opacity"), s2 = o2.paint.get("circle-stroke-width"), n2 = o2.paint.get("circle-stroke-opacity"), l2 = !o2.layout.get("circle-sort-key").isConstant(); - if (0 === r2.constantOr(1) && (0 === s2.constantOr(1) || 0 === n2.constantOr(1))) - return; - const c3 = e2.context, h3 = c3.gl, u2 = e2.depthModeForSublayer(0, wi.ReadOnly), d2 = Ei.disabled, m2 = e2.colorModeForRenderPass(), _2 = []; - for (let r3 = 0; r3 < a2.length; r3++) { - const s3 = a2[r3], n3 = i2.getTile(s3), c4 = n3.getBucket(o2); - if (!c4) - continue; - const h4 = c4.programConfigurations.get(o2.id), u3 = e2.useProgram("circle", h4), d3 = c4.layoutVertexBuffer, m3 = c4.indexBuffer, p3 = e2.style.terrain && e2.style.terrain.getTerrainData(s3), f2 = { programConfiguration: h4, program: u3, layoutVertexBuffer: d3, indexBuffer: m3, uniformValues: pe(e2, s3, n3, o2), terrainData: p3 }; - if (l2) { - const e3 = c4.segments.get(); - for (const i3 of e3) - _2.push({ segments: new t.SegmentVector([i3]), sortKey: i3.sortKey, state: f2 }); - } else - _2.push({ segments: c4.segments, sortKey: 0, state: f2 }); - } - l2 && _2.sort((t2, e3) => t2.sortKey - e3.sortKey); - for (const t2 of _2) { - const { programConfiguration: i3, program: a3, layoutVertexBuffer: r3, indexBuffer: s3, uniformValues: n3, terrainData: l3 } = t2.state; - a3.draw(c3, h3.TRIANGLES, u2, d2, m2, Ii.disabled, n3, l3, o2.id, r3, s3, t2.segments, o2.paint, e2.transform.zoom, i3); } - }, heatmap: function(e2, i2, o2, a2) { + }, heatmap: function(e2, i2, o2, r2) { if (0 !== o2.paint.get("heatmap-opacity")) if ("offscreen" === e2.renderPass) { - const r2 = e2.context, s2 = r2.gl, n2 = Ei.disabled, l2 = new yi([s2.ONE, s2.ONE], t.Color.transparent, [true, true, true, true]); + var a2 = e2.context, n2 = a2.gl, s2 = Pt.disabled, l2 = new St([n2.ONE, n2.ONE], t.Color.transparent, [true, true, true, true]); !function(t2, e3, i3) { - const o3 = t2.gl; + var o3 = t2.gl; t2.activeTexture.set(o3.TEXTURE1), t2.viewport.set([0, 0, e3.width / 4, e3.height / 4]); - let a3 = i3.heatmapFbo; - if (a3) - o3.bindTexture(o3.TEXTURE_2D, a3.colorAttachment.get()), t2.bindFramebuffer.set(a3.framebuffer); + var r3 = i3.heatmapFbo; + if (r3) + o3.bindTexture(o3.TEXTURE_2D, r3.colorAttachment.get()), t2.bindFramebuffer.set(r3.framebuffer); else { - const r3 = o3.createTexture(); - o3.bindTexture(o3.TEXTURE_2D, r3), o3.texParameteri(o3.TEXTURE_2D, o3.TEXTURE_WRAP_S, o3.CLAMP_TO_EDGE), o3.texParameteri(o3.TEXTURE_2D, o3.TEXTURE_WRAP_T, o3.CLAMP_TO_EDGE), o3.texParameteri(o3.TEXTURE_2D, o3.TEXTURE_MIN_FILTER, o3.LINEAR), o3.texParameteri(o3.TEXTURE_2D, o3.TEXTURE_MAG_FILTER, o3.LINEAR), a3 = i3.heatmapFbo = t2.createFramebuffer(e3.width / 4, e3.height / 4, false), function(t3, e4, i4, o4) { - const a4 = t3.gl; - a4.texImage2D(a4.TEXTURE_2D, 0, a4.RGBA, e4.width / 4, e4.height / 4, 0, a4.RGBA, t3.extRenderToTextureHalfFloat ? t3.extTextureHalfFloat.HALF_FLOAT_OES : a4.UNSIGNED_BYTE, null), o4.colorAttachment.set(i4); - }(t2, e3, r3, a3); + var a3 = o3.createTexture(); + o3.bindTexture(o3.TEXTURE_2D, a3), o3.texParameteri(o3.TEXTURE_2D, o3.TEXTURE_WRAP_S, o3.CLAMP_TO_EDGE), o3.texParameteri(o3.TEXTURE_2D, o3.TEXTURE_WRAP_T, o3.CLAMP_TO_EDGE), o3.texParameteri(o3.TEXTURE_2D, o3.TEXTURE_MIN_FILTER, o3.LINEAR), o3.texParameteri(o3.TEXTURE_2D, o3.TEXTURE_MAG_FILTER, o3.LINEAR), r3 = i3.heatmapFbo = t2.createFramebuffer(e3.width / 4, e3.height / 4, false), function(t3, e4, i4, o4) { + var r4 = t3.gl; + r4.texImage2D(r4.TEXTURE_2D, 0, r4.RGBA, e4.width / 4, e4.height / 4, 0, r4.RGBA, t3.extRenderToTextureHalfFloat ? t3.extTextureHalfFloat.HALF_FLOAT_OES : r4.UNSIGNED_BYTE, null), o4.colorAttachment.set(i4); + }(t2, e3, a3, r3); + } + }(a2, e2, o2), a2.clear({ color: t.Color.transparent }); + for (var c3 = 0; c3 < r2.length; c3++) { + var u2 = r2[c3]; + if (!i2.hasRenderableParent(u2)) { + var h3 = i2.getTile(u2), p3 = h3.getBucket(o2); + if (p3) { + var d2 = p3.programConfigurations.get(o2.id); + e2.useProgram("heatmap", d2).draw(a2, n2.TRIANGLES, It.disabled, s2, l2, Ct.disabled, Ri(u2.posMatrix, h3, e2.transform.zoom, o2.paint.get("heatmap-intensity")), o2.id, p3.layoutVertexBuffer, p3.indexBuffer, p3.segments, o2.paint, e2.transform.zoom, d2); + } } - }(r2, e2, o2), r2.clear({ color: t.Color.transparent }); - for (let t2 = 0; t2 < a2.length; t2++) { - const c3 = a2[t2]; - if (i2.hasRenderableParent(c3)) - continue; - const h3 = i2.getTile(c3), u2 = h3.getBucket(o2); - if (!u2) - continue; - const d2 = u2.programConfigurations.get(o2.id), m2 = e2.useProgram("heatmap", d2), { zoom: _2 } = e2.transform; - m2.draw(r2, s2.TRIANGLES, wi.disabled, n2, l2, Ii.disabled, ve(c3.posMatrix, h3, _2, o2.paint.get("heatmap-intensity")), null, o2.id, u2.layoutVertexBuffer, u2.indexBuffer, u2.segments, o2.paint, e2.transform.zoom, d2); } - r2.viewport.set([0, 0, e2.width, e2.height]); + a2.viewport.set([0, 0, e2.width, e2.height]); } else "translucent" === e2.renderPass && (e2.context.setColorMode(e2.colorModeForRenderPass()), function(e3, i3) { - const o3 = e3.context, a3 = o3.gl, r2 = i3.heatmapFbo; - if (!r2) - return; - o3.activeTexture.set(a3.TEXTURE0), a3.bindTexture(a3.TEXTURE_2D, r2.colorAttachment.get()), o3.activeTexture.set(a3.TEXTURE1); - let s2 = i3.colorRampTexture; - s2 || (s2 = i3.colorRampTexture = new l(o3, i3.colorRamp, a3.RGBA)), s2.bind(a3.LINEAR, a3.CLAMP_TO_EDGE), e3.useProgram("heatmapTexture").draw(o3, a3.TRIANGLES, wi.disabled, Ei.disabled, e3.colorModeForRenderPass(), Ii.disabled, ((e4, i4, o4, a4) => { - const r3 = t.create(); - t.ortho(r3, 0, e4.width, e4.height, 0, 0, 1); - const s3 = e4.context.gl; - return { u_matrix: r3, u_world: [s3.drawingBufferWidth, s3.drawingBufferHeight], u_image: 0, u_color_ramp: 1, u_opacity: i4.paint.get("heatmap-opacity") }; - })(e3, i3), null, i3.id, e3.viewportBuffer, e3.quadTriangleIndexBuffer, e3.viewportSegments, i3.paint, e3.transform.zoom); + var o3 = e3.context, r3 = o3.gl, a3 = i3.heatmapFbo; + if (a3) { + o3.activeTexture.set(r3.TEXTURE0), r3.bindTexture(r3.TEXTURE_2D, a3.colorAttachment.get()), o3.activeTexture.set(r3.TEXTURE1); + var n3 = i3.colorRampTexture; + n3 || (n3 = i3.colorRampTexture = new t.Texture(o3, i3.colorRamp, r3.RGBA)), n3.bind(r3.LINEAR, r3.CLAMP_TO_EDGE), e3.useProgram("heatmapTexture").draw(o3, r3.TRIANGLES, It.disabled, Pt.disabled, e3.colorModeForRenderPass(), Ct.disabled, function(e4, i4, o4, r4) { + var a4 = t.create(); + t.ortho(a4, 0, e4.width, e4.height, 0, 0, 1); + var n4 = e4.context.gl; + return { u_matrix: a4, u_world: [n4.drawingBufferWidth, n4.drawingBufferHeight], u_image: 0, u_color_ramp: 1, u_opacity: i4.paint.get("heatmap-opacity") }; + }(e3, i3), i3.id, e3.viewportBuffer, e3.quadTriangleIndexBuffer, e3.viewportSegments, i3.paint, e3.transform.zoom); + } }(e2, o2)); - }, line: function(e2, i2, o2, a2) { - if ("translucent" !== e2.renderPass) - return; - const r2 = o2.paint.get("line-opacity"), s2 = o2.paint.get("line-width"); - if (0 === r2.constantOr(1) || 0 === s2.constantOr(1)) - return; - const n2 = e2.depthModeForSublayer(0, wi.ReadOnly), c3 = e2.colorModeForRenderPass(), h3 = o2.paint.get("line-dasharray"), u2 = o2.paint.get("line-pattern"), d2 = u2.constantOr(1), m2 = o2.paint.get("line-gradient"), _2 = o2.getCrossfadeParameters(), p3 = d2 ? "linePattern" : h3 ? "lineSDF" : m2 ? "lineGradient" : "line", f2 = e2.context, g2 = f2.gl; - let x2 = true; - for (const r3 of a2) { - const a3 = i2.getTile(r3); - if (d2 && !a3.patternsLoaded()) - continue; - const s3 = a3.getBucket(o2); - if (!s3) - continue; - const v3 = s3.programConfigurations.get(o2.id), y3 = e2.context.program.get(), b2 = e2.useProgram(p3, v3), w2 = x2 || b2.program !== y3, T2 = e2.style.terrain && e2.style.terrain.getTerrainData(r3), E2 = u2.constantOr(null); - if (E2 && a3.imageAtlas) { - const t2 = a3.imageAtlas, e3 = t2.patternPositions[E2.to.toString()], i3 = t2.patternPositions[E2.from.toString()]; - e3 && i3 && v3.setConstantPatternPositions(e3, i3); - } - const I3 = T2 ? r3 : null, C2 = d2 ? Te(e2, a3, o2, _2, I3) : h3 ? Ee(e2, a3, o2, h3, _2, I3) : m2 ? we(e2, a3, o2, s3.lineClipsArray.length, I3) : be(e2, a3, o2, I3); - if (d2) - f2.activeTexture.set(g2.TEXTURE0), a3.imageAtlasTexture.bind(g2.LINEAR, g2.CLAMP_TO_EDGE), v3.updatePaintBuffers(_2); - else if (h3 && (w2 || e2.lineAtlas.dirty)) - f2.activeTexture.set(g2.TEXTURE0), e2.lineAtlas.bind(f2); - else if (m2) { - const a4 = s3.gradients[o2.id]; - let n3 = a4.texture; - if (o2.gradientVersion !== a4.version) { - let c4 = 256; - if (o2.stepInterpolant) { - const o3 = i2.getSource().maxzoom, a5 = r3.canonical.z === o3 ? Math.ceil(1 << e2.transform.maxZoom - r3.canonical.z) : 1; - c4 = t.clamp(t.nextPowerOfTwo(s3.maxLineLength / t.EXTENT * 1024 * a5), 256, f2.maxTextureSize); + }, line: function(e2, i2, o2, r2) { + if ("translucent" === e2.renderPass) { + var a2 = o2.paint.get("line-opacity"), n2 = o2.paint.get("line-width"); + if (0 !== a2.constantOr(1) && 0 !== n2.constantOr(1)) + for (var s2 = e2.depthModeForSublayer(0, It.ReadOnly), l2 = e2.colorModeForRenderPass(), c3 = o2.paint.get("line-dasharray"), u2 = o2.paint.get("line-pattern"), h3 = u2.constantOr(1), p3 = o2.paint.get("line-gradient"), d2 = o2.getCrossfadeParameters(), _2 = h3 ? "linePattern" : c3 ? "lineSDF" : p3 ? "lineGradient" : "line", f2 = e2.context, m2 = f2.gl, g2 = true, v3 = 0, y3 = r2; v3 < y3.length; v3 += 1) { + var x2 = y3[v3], b2 = i2.getTile(x2); + if (!h3 || b2.patternsLoaded()) { + var w2 = b2.getBucket(o2); + if (w2) { + var T2 = w2.programConfigurations.get(o2.id), E2 = e2.context.program.get(), I3 = e2.useProgram(_2, T2), P2 = g2 || I3.program !== E2, S2 = u2.constantOr(null); + if (S2 && b2.imageAtlas) { + var C2 = b2.imageAtlas, z2 = C2.patternPositions[S2.to.toString()], D2 = C2.patternPositions[S2.from.toString()]; + z2 && D2 && T2.setConstantPatternPositions(z2, D2); + } + var A3 = h3 ? Oi(e2, b2, o2, d2) : c3 ? Fi(e2, b2, o2, c3, d2) : p3 ? Bi(e2, b2, o2, w2.lineClipsArray.length) : ki(e2, b2, o2); + if (h3) + f2.activeTexture.set(m2.TEXTURE0), b2.imageAtlasTexture.bind(m2.LINEAR, m2.CLAMP_TO_EDGE), T2.updatePaintBuffers(d2); + else if (c3 && (P2 || e2.lineAtlas.dirty)) + f2.activeTexture.set(m2.TEXTURE0), e2.lineAtlas.bind(f2); + else if (p3) { + var M2 = w2.gradients[o2.id], L2 = M2.texture; + if (o2.gradientVersion !== M2.version) { + var R2 = 256; + if (o2.stepInterpolant) { + var k2 = i2.getSource().maxzoom, B2 = x2.canonical.z === k2 ? Math.ceil(1 << e2.transform.maxZoom - x2.canonical.z) : 1; + R2 = t.clamp(t.nextPowerOfTwo(w2.maxLineLength / t.EXTENT * 1024 * B2), 256, f2.maxTextureSize); + } + M2.gradient = t.renderColorRamp({ expression: o2.gradientExpression(), evaluationKey: "lineProgress", resolution: R2, image: M2.gradient || void 0, clips: w2.lineClipsArray }), M2.texture ? M2.texture.update(M2.gradient) : M2.texture = new t.Texture(f2, M2.gradient, m2.RGBA), M2.version = o2.gradientVersion, L2 = M2.texture; + } + f2.activeTexture.set(m2.TEXTURE0), L2.bind(o2.stepInterpolant ? m2.NEAREST : m2.LINEAR, m2.CLAMP_TO_EDGE); + } + I3.draw(f2, m2.TRIANGLES, s2, e2.stencilModeForClipping(x2), l2, Ct.disabled, A3, o2.id, w2.layoutVertexBuffer, w2.indexBuffer, w2.segments, o2.paint, e2.transform.zoom, T2, w2.layoutVertexBuffer2), g2 = false; + } } - a4.gradient = t.renderColorRamp({ expression: o2.gradientExpression(), evaluationKey: "lineProgress", resolution: c4, image: a4.gradient || void 0, clips: s3.lineClipsArray }), a4.texture ? a4.texture.update(a4.gradient) : a4.texture = new l(f2, a4.gradient, g2.RGBA), a4.version = o2.gradientVersion, n3 = a4.texture; } - f2.activeTexture.set(g2.TEXTURE0), n3.bind(o2.stepInterpolant ? g2.NEAREST : g2.LINEAR, g2.CLAMP_TO_EDGE); - } - b2.draw(f2, g2.TRIANGLES, n2, e2.stencilModeForClipping(r3), c3, Ii.disabled, C2, T2, o2.id, s3.layoutVertexBuffer, s3.indexBuffer, s3.segments, o2.paint, e2.transform.zoom, v3, s3.layoutVertexBuffer2), x2 = false; - } - }, fill: function(e2, i2, o2, a2) { - const r2 = o2.paint.get("fill-color"), s2 = o2.paint.get("fill-opacity"); - if (0 === s2.constantOr(1)) - return; - const n2 = e2.colorModeForRenderPass(), l2 = o2.paint.get("fill-pattern"), c3 = e2.opaquePassEnabledForLayer() && !l2.constantOr(1) && 1 === r2.constantOr(t.Color.transparent).a && 1 === s2.constantOr(0) ? "opaque" : "translucent"; - if (e2.renderPass === c3) { - const t2 = e2.depthModeForSublayer(1, "opaque" === e2.renderPass ? wi.ReadWrite : wi.ReadOnly); - Ri(e2, i2, o2, a2, t2, n2, false); } - if ("translucent" === e2.renderPass && o2.paint.get("fill-antialias")) { - const t2 = e2.depthModeForSublayer(o2.getPaintProperty("fill-outline-color") ? 2 : 0, wi.ReadOnly); - Ri(e2, i2, o2, a2, t2, n2, true); + }, fill: function(e2, i2, o2, r2) { + var a2 = o2.paint.get("fill-color"), n2 = o2.paint.get("fill-opacity"); + if (0 !== n2.constantOr(1)) { + var s2 = e2.colorModeForRenderPass(), l2 = o2.paint.get("fill-pattern"), c3 = e2.opaquePassEnabledForLayer() && !l2.constantOr(1) && 1 === a2.constantOr(t.Color.transparent).a && 1 === n2.constantOr(0) ? "opaque" : "translucent"; + if (e2.renderPass === c3) { + var u2 = e2.depthModeForSublayer(1, "opaque" === e2.renderPass ? It.ReadWrite : It.ReadOnly); + oo(e2, i2, o2, r2, u2, s2, false); + } + if ("translucent" === e2.renderPass && o2.paint.get("fill-antialias")) { + var h3 = e2.depthModeForSublayer(o2.getPaintProperty("fill-outline-color") ? 2 : 0, It.ReadOnly); + oo(e2, i2, o2, r2, h3, s2, true); + } } }, "fill-extrusion": function(t2, e2, i2, o2) { - const a2 = i2.paint.get("fill-extrusion-opacity"); - if (0 !== a2 && "translucent" === t2.renderPass) { - const r2 = new wi(t2.context.gl.LEQUAL, wi.ReadWrite, t2.depthRangeFor3D); - if (1 !== a2 || i2.paint.get("fill-extrusion-pattern").constantOr(1)) - ki(t2, e2, i2, o2, r2, Ei.disabled, yi.disabled), ki(t2, e2, i2, o2, r2, t2.stencilModeFor3D(), t2.colorModeForRenderPass()); + var r2 = i2.paint.get("fill-extrusion-opacity"); + if (0 !== r2 && "translucent" === t2.renderPass) { + var a2 = new It(t2.context.gl.LEQUAL, It.ReadWrite, t2.depthRangeFor3D); + if (1 !== r2 || i2.paint.get("fill-extrusion-pattern").constantOr(1)) + ro(t2, e2, i2, o2, a2, Pt.disabled, St.disabled), ro(t2, e2, i2, o2, a2, t2.stencilModeFor3D(), t2.colorModeForRenderPass()); else { - const a3 = t2.colorModeForRenderPass(); - ki(t2, e2, i2, o2, r2, Ei.disabled, a3); + var n2 = t2.colorModeForRenderPass(); + ro(t2, e2, i2, o2, a2, Pt.disabled, n2); } } }, hillshade: function(t2, e2, i2, o2) { - if ("offscreen" !== t2.renderPass && "translucent" !== t2.renderPass) - return; - const a2 = t2.context, r2 = t2.depthModeForSublayer(0, wi.ReadOnly), s2 = t2.colorModeForRenderPass(), [n2, l2] = "translucent" === t2.renderPass ? t2.stencilConfigForOverlap(o2) : [{}, o2]; - for (const o3 of l2) { - const a3 = e2.getTile(o3); - void 0 !== a3.needsHillshadePrepare && a3.needsHillshadePrepare && "offscreen" === t2.renderPass ? Fi(t2, a3, i2, r2, Ei.disabled, s2) : "translucent" === t2.renderPass && Bi(t2, o3, a3, i2, r2, n2[o3.overscaledZ], s2); + if ("offscreen" === t2.renderPass || "translucent" === t2.renderPass) { + for (var r2 = t2.context, a2 = t2.depthModeForSublayer(0, It.ReadOnly), n2 = t2.colorModeForRenderPass(), s2 = "translucent" === t2.renderPass ? t2.stencilConfigForOverlap(o2) : [{}, o2], l2 = s2[0], c3 = 0, u2 = s2[1]; c3 < u2.length; c3 += 1) { + var h3 = u2[c3], p3 = e2.getTile(h3); + p3.needsHillshadePrepare && "offscreen" === t2.renderPass ? no(t2, p3, i2, a2, Pt.disabled, n2) : "translucent" === t2.renderPass && ao(t2, p3, i2, a2, l2[h3.overscaledZ], n2); + } + r2.viewport.set([0, 0, t2.width, t2.height]); } - a2.viewport.set([0, 0, t2.width, t2.height]); }, raster: function(t2, e2, i2, o2) { - if ("translucent" !== t2.renderPass) - return; - if (0 === i2.paint.get("raster-opacity")) - return; - if (!o2.length) - return; - const a2 = t2.context, r2 = a2.gl, s2 = e2.getSource(), n2 = t2.useProgram("raster"), l2 = t2.colorModeForRenderPass(), [c3, h3] = s2 instanceof D ? [{}, o2] : t2.stencilConfigForOverlap(o2), u2 = h3[h3.length - 1].overscaledZ, d2 = !t2.options.moving; - for (const o3 of h3) { - const h4 = t2.depthModeForSublayer(o3.overscaledZ - u2, 1 === i2.paint.get("raster-opacity") ? wi.ReadWrite : wi.ReadOnly, r2.LESS), m2 = e2.getTile(o3); - m2.registerFadeDuration(i2.paint.get("raster-fade-duration")); - const _2 = e2.findLoadedParent(o3, 0), p3 = Oi(m2, _2, e2, i2, t2.transform, t2.style.terrain); - let f2, g2; - const x2 = "nearest" === i2.paint.get("raster-resampling") ? r2.NEAREST : r2.LINEAR; - a2.activeTexture.set(r2.TEXTURE0), m2.texture.bind(x2, r2.CLAMP_TO_EDGE, r2.LINEAR_MIPMAP_NEAREST), a2.activeTexture.set(r2.TEXTURE1), _2 ? (_2.texture.bind(x2, r2.CLAMP_TO_EDGE, r2.LINEAR_MIPMAP_NEAREST), f2 = Math.pow(2, _2.tileID.overscaledZ - m2.tileID.overscaledZ), g2 = [m2.tileID.canonical.x * f2 % 1, m2.tileID.canonical.y * f2 % 1]) : m2.texture.bind(x2, r2.CLAMP_TO_EDGE, r2.LINEAR_MIPMAP_NEAREST); - const v3 = t2.style.terrain && t2.style.terrain.getTerrainData(o3), y3 = v3 ? o3 : null, b2 = y3 ? y3.posMatrix : t2.transform.calculatePosMatrix(o3.toUnwrapped(), d2), w2 = Se(b2, g2 || [0, 0], f2 || 1, p3, i2); - s2 instanceof D ? n2.draw(a2, r2.TRIANGLES, h4, Ei.disabled, l2, Ii.disabled, w2, v3, i2.id, s2.boundsBuffer, t2.quadTriangleIndexBuffer, s2.boundsSegments) : n2.draw(a2, r2.TRIANGLES, h4, c3[o3.overscaledZ], l2, Ii.disabled, w2, v3, i2.id, t2.rasterBoundsBuffer, t2.quadTriangleIndexBuffer, t2.rasterBoundsSegments); - } - }, background: function(t2, e2, i2, o2) { - const a2 = i2.paint.get("background-color"), r2 = i2.paint.get("background-opacity"); - if (0 === r2) - return; - const s2 = t2.context, n2 = s2.gl, l2 = t2.transform, c3 = l2.tileSize, h3 = i2.paint.get("background-pattern"); - if (t2.isPatternMissing(h3)) - return; - const u2 = !h3 && 1 === a2.a && 1 === r2 && t2.opaquePassEnabledForLayer() ? "opaque" : "translucent"; - if (t2.renderPass !== u2) - return; - const d2 = Ei.disabled, m2 = t2.depthModeForSublayer(0, "opaque" === u2 ? wi.ReadWrite : wi.ReadOnly), _2 = t2.colorModeForRenderPass(), p3 = t2.useProgram(h3 ? "backgroundPattern" : "background"), f2 = o2 || l2.coveringTiles({ tileSize: c3, terrain: t2.style.terrain }); - h3 && (s2.activeTexture.set(n2.TEXTURE0), t2.imageManager.bind(t2.context)); - const g2 = i2.getCrossfadeParameters(); - for (const e3 of f2) { - const l3 = o2 ? e3.posMatrix : t2.transform.calculatePosMatrix(e3.toUnwrapped()), u3 = h3 ? Le(l3, r2, t2, h3, { tileID: e3, tileSize: c3 }, g2) : Ae(l3, r2, a2), f3 = t2.style.terrain && t2.style.terrain.getTerrainData(e3); - p3.draw(s2, n2.TRIANGLES, m2, d2, _2, Ii.disabled, u3, f3, i2.id, t2.tileExtentBuffer, t2.quadTriangleIndexBuffer, t2.tileExtentSegments); + if ("translucent" === t2.renderPass && 0 !== i2.paint.get("raster-opacity") && o2.length) + for (var r2 = t2.context, a2 = r2.gl, n2 = e2.getSource(), s2 = t2.useProgram("raster"), l2 = t2.colorModeForRenderPass(), c3 = n2 instanceof M ? [{}, o2] : t2.stencilConfigForOverlap(o2), u2 = c3[0], h3 = c3[1], p3 = h3[h3.length - 1].overscaledZ, d2 = !t2.options.moving, _2 = 0, f2 = h3; _2 < f2.length; _2 += 1) { + var m2 = f2[_2], g2 = t2.depthModeForSublayer(m2.overscaledZ - p3, 1 === i2.paint.get("raster-opacity") ? It.ReadWrite : It.ReadOnly, a2.LESS), v3 = e2.getTile(m2), y3 = t2.transform.calculatePosMatrix(m2.toUnwrapped(), d2); + v3.registerFadeDuration(i2.paint.get("raster-fade-duration")); + var x2 = e2.findLoadedParent(m2, 0), b2 = so(v3, x2, e2, i2, t2.transform), w2 = void 0, T2 = void 0, E2 = "nearest" === i2.paint.get("raster-resampling") ? a2.NEAREST : a2.LINEAR; + r2.activeTexture.set(a2.TEXTURE0), v3.texture.bind(E2, a2.CLAMP_TO_EDGE, a2.LINEAR_MIPMAP_NEAREST), r2.activeTexture.set(a2.TEXTURE1), x2 ? (x2.texture.bind(E2, a2.CLAMP_TO_EDGE, a2.LINEAR_MIPMAP_NEAREST), w2 = Math.pow(2, x2.tileID.overscaledZ - v3.tileID.overscaledZ), T2 = [v3.tileID.canonical.x * w2 % 1, v3.tileID.canonical.y * w2 % 1]) : v3.texture.bind(E2, a2.CLAMP_TO_EDGE, a2.LINEAR_MIPMAP_NEAREST); + var I3 = Zi(y3, T2 || [0, 0], w2 || 1, b2, i2); + n2 instanceof M ? s2.draw(r2, a2.TRIANGLES, g2, Pt.disabled, l2, Ct.disabled, I3, i2.id, n2.boundsBuffer, t2.quadTriangleIndexBuffer, n2.boundsSegments) : s2.draw(r2, a2.TRIANGLES, g2, u2[m2.overscaledZ], l2, Ct.disabled, I3, i2.id, t2.rasterBoundsBuffer, t2.quadTriangleIndexBuffer, t2.rasterBoundsSegments); + } + }, background: function(t2, e2, i2) { + var o2 = i2.paint.get("background-color"), r2 = i2.paint.get("background-opacity"); + if (0 !== r2) { + var a2 = t2.context, n2 = a2.gl, s2 = t2.transform, l2 = s2.tileSize, c3 = i2.paint.get("background-pattern"); + if (!t2.isPatternMissing(c3)) { + var u2 = !c3 && 1 === o2.a && 1 === r2 && t2.opaquePassEnabledForLayer() ? "opaque" : "translucent"; + if (t2.renderPass === u2) { + var h3 = Pt.disabled, p3 = t2.depthModeForSublayer(0, "opaque" === u2 ? It.ReadWrite : It.ReadOnly), d2 = t2.colorModeForRenderPass(), _2 = t2.useProgram(c3 ? "backgroundPattern" : "background"), f2 = s2.coveringTiles({ tileSize: l2 }); + c3 && (a2.activeTexture.set(n2.TEXTURE0), t2.imageManager.bind(t2.context)); + for (var m2 = i2.getCrossfadeParameters(), g2 = 0, v3 = f2; g2 < v3.length; g2 += 1) { + var y3 = v3[g2], x2 = t2.transform.calculatePosMatrix(y3.toUnwrapped()), b2 = c3 ? Hi(x2, r2, t2, c3, { tileID: y3, tileSize: l2 }, m2) : Xi(x2, r2, o2); + _2.draw(a2, n2.TRIANGLES, p3, h3, d2, Ct.disabled, b2, i2.id, t2.tileExtentBuffer, t2.quadTriangleIndexBuffer, t2.tileExtentSegments); + } + } + } } }, debug: function(t2, e2, i2) { - for (let o2 = 0; o2 < i2.length; o2++) - Xi(t2, e2, i2[o2]); + for (var o2 = 0; o2 < i2.length; o2++) + go(t2, e2, i2[o2]); }, custom: function(t2, e2, i2) { - const o2 = t2.context, a2 = i2.implementation; + var o2 = t2.context, r2 = i2.implementation; if ("offscreen" === t2.renderPass) { - const e3 = a2.prerender; - e3 && (t2.setCustomLayerDefaults(), o2.setColorMode(t2.colorModeForRenderPass()), e3.call(a2, o2.gl, t2.transform.customLayerMatrix()), o2.setDirty(), t2.setBaseState()); + var a2 = r2.prerender; + a2 && (t2.setCustomLayerDefaults(), o2.setColorMode(t2.colorModeForRenderPass()), a2.call(r2, o2.gl, t2.transform.customLayerMatrix()), o2.setDirty(), t2.setBaseState()); } else if ("translucent" === t2.renderPass) { - t2.setCustomLayerDefaults(), o2.setColorMode(t2.colorModeForRenderPass()), o2.setStencilMode(Ei.disabled); - const e3 = "3d" === a2.renderingMode ? new wi(t2.context.gl.LEQUAL, wi.ReadWrite, t2.depthRangeFor3D) : t2.depthModeForSublayer(0, wi.ReadOnly); - o2.setDepthMode(e3), a2.render(o2.gl, t2.transform.customLayerMatrix()), o2.setDirty(), t2.setBaseState(), o2.bindFramebuffer.set(null); + t2.setCustomLayerDefaults(), o2.setColorMode(t2.colorModeForRenderPass()), o2.setStencilMode(Pt.disabled); + var n2 = "3d" === r2.renderingMode ? new It(t2.context.gl.LEQUAL, It.ReadWrite, t2.depthRangeFor3D) : t2.depthModeForSublayer(0, It.ReadOnly); + o2.setDepthMode(n2), r2.render(o2.gl, t2.transform.customLayerMatrix()), o2.setDirty(), t2.setBaseState(), o2.bindFramebuffer.set(null); } - } }; - class Ji { - constructor(e2, i2) { - this.context = new bi(e2), this.transform = i2, this._tileTextures = {}, this.terrainFacilitator = { dirty: true, matrix: t.create(), renderTime: 0 }, this.setup(), this.numSublayers = O2.maxUnderzooming + O2.maxOverzooming + 1, this.depthEpsilon = 1 / Math.pow(2, 16), this.crossTileSymbolIndex = new Xt(), this.gpuTimers = {}; - } - resize(t2, e2, i2) { - if (this.width = t2 * i2, this.height = e2 * i2, this.pixelRatio = i2, this.context.viewport.set([0, 0, this.width, this.height]), this.style) - for (const t3 of this.style._order) - this.style._layers[t3].resize(); - } - setup() { - const e2 = this.context, i2 = new t.PosArray(); - i2.emplaceBack(0, 0), i2.emplaceBack(t.EXTENT, 0), i2.emplaceBack(0, t.EXTENT), i2.emplaceBack(t.EXTENT, t.EXTENT), this.tileExtentBuffer = e2.createVertexBuffer(i2, Wt.members), this.tileExtentSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2); - const o2 = new t.PosArray(); - o2.emplaceBack(0, 0), o2.emplaceBack(t.EXTENT, 0), o2.emplaceBack(0, t.EXTENT), o2.emplaceBack(t.EXTENT, t.EXTENT), this.debugBuffer = e2.createVertexBuffer(o2, Wt.members), this.debugSegments = t.SegmentVector.simpleSegment(0, 0, 4, 5); - const a2 = new t.RasterBoundsArray(); - a2.emplaceBack(0, 0, 0, 0), a2.emplaceBack(t.EXTENT, 0, t.EXTENT, 0), a2.emplaceBack(0, t.EXTENT, 0, t.EXTENT), a2.emplaceBack(t.EXTENT, t.EXTENT, t.EXTENT, t.EXTENT), this.rasterBoundsBuffer = e2.createVertexBuffer(a2, S.members), this.rasterBoundsSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2); - const r2 = new t.PosArray(); - r2.emplaceBack(0, 0), r2.emplaceBack(1, 0), r2.emplaceBack(0, 1), r2.emplaceBack(1, 1), this.viewportBuffer = e2.createVertexBuffer(r2, Wt.members), this.viewportSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2); - const s2 = new t.LineStripIndexArray(); - s2.emplaceBack(0), s2.emplaceBack(1), s2.emplaceBack(3), s2.emplaceBack(2), s2.emplaceBack(0), this.tileBorderIndexBuffer = e2.createIndexBuffer(s2); - const n2 = new t.TriangleIndexArray(); - n2.emplaceBack(0, 1, 2), n2.emplaceBack(2, 1, 3), this.quadTriangleIndexBuffer = e2.createIndexBuffer(n2), this.emptyTexture = new l(e2, { width: 1, height: 1, data: new Uint8Array([0, 0, 0, 0]) }, e2.gl.RGBA); - const c3 = this.context.gl; - this.stencilClearMode = new Ei({ func: c3.ALWAYS, mask: 0 }, 0, 255, c3.ZERO, c3.ZERO, c3.ZERO); - } - clearStencil() { - const e2 = this.context, i2 = e2.gl; - this.nextStencilID = 1, this.currentStencilSource = void 0; - const o2 = t.create(); - t.ortho(o2, 0, this.width, this.height, 0, 0, 1), t.scale(o2, o2, [i2.drawingBufferWidth, i2.drawingBufferHeight, 0]), this.useProgram("clippingMask").draw(e2, i2.TRIANGLES, wi.disabled, this.stencilClearMode, yi.disabled, Ii.disabled, xe(o2), null, "$clipping", this.viewportBuffer, this.quadTriangleIndexBuffer, this.viewportSegments); - } - _renderTileClippingMasks(t2, e2) { - if (this.currentStencilSource === t2.source || !t2.isTileClipped() || !e2 || !e2.length) - return; + } }, yo = function(t2, e2) { + this.context = new zt(t2), this.transform = e2, this._tileTextures = {}, this.setup(), this.numSublayers = Dt.maxUnderzooming + Dt.maxOverzooming + 1, this.depthEpsilon = 1 / Math.pow(2, 16), this.crossTileSymbolIndex = new Fe(), this.gpuTimers = {}; + }; + yo.prototype.resize = function(e2, i2) { + if (this.width = e2 * t.browser.devicePixelRatio, this.height = i2 * t.browser.devicePixelRatio, this.context.viewport.set([0, 0, this.width, this.height]), this.style) + for (var o2 = 0, r2 = this.style._order; o2 < r2.length; o2 += 1) + this.style._layers[r2[o2]].resize(); + }, yo.prototype.setup = function() { + var e2 = this.context, i2 = new t.StructArrayLayout2i4(); + i2.emplaceBack(0, 0), i2.emplaceBack(t.EXTENT, 0), i2.emplaceBack(0, t.EXTENT), i2.emplaceBack(t.EXTENT, t.EXTENT), this.tileExtentBuffer = e2.createVertexBuffer(i2, Ve.members), this.tileExtentSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2); + var o2 = new t.StructArrayLayout2i4(); + o2.emplaceBack(0, 0), o2.emplaceBack(t.EXTENT, 0), o2.emplaceBack(0, t.EXTENT), o2.emplaceBack(t.EXTENT, t.EXTENT), this.debugBuffer = e2.createVertexBuffer(o2, Ve.members), this.debugSegments = t.SegmentVector.simpleSegment(0, 0, 4, 5); + var r2 = new t.StructArrayLayout4i8(); + r2.emplaceBack(0, 0, 0, 0), r2.emplaceBack(t.EXTENT, 0, t.EXTENT, 0), r2.emplaceBack(0, t.EXTENT, 0, t.EXTENT), r2.emplaceBack(t.EXTENT, t.EXTENT, t.EXTENT, t.EXTENT), this.rasterBoundsBuffer = e2.createVertexBuffer(r2, A2.members), this.rasterBoundsSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2); + var a2 = new t.StructArrayLayout2i4(); + a2.emplaceBack(0, 0), a2.emplaceBack(1, 0), a2.emplaceBack(0, 1), a2.emplaceBack(1, 1), this.viewportBuffer = e2.createVertexBuffer(a2, Ve.members), this.viewportSegments = t.SegmentVector.simpleSegment(0, 0, 4, 2); + var n2 = new t.StructArrayLayout1ui2(); + n2.emplaceBack(0), n2.emplaceBack(1), n2.emplaceBack(3), n2.emplaceBack(2), n2.emplaceBack(0), this.tileBorderIndexBuffer = e2.createIndexBuffer(n2); + var s2 = new t.StructArrayLayout3ui6(); + s2.emplaceBack(0, 1, 2), s2.emplaceBack(2, 1, 3), this.quadTriangleIndexBuffer = e2.createIndexBuffer(s2), this.emptyTexture = new t.Texture(e2, { width: 1, height: 1, data: new Uint8Array([0, 0, 0, 0]) }, e2.gl.RGBA); + var l2 = this.context.gl; + this.stencilClearMode = new Pt({ func: l2.ALWAYS, mask: 0 }, 0, 255, l2.ZERO, l2.ZERO, l2.ZERO); + }, yo.prototype.clearStencil = function() { + var e2 = this.context, i2 = e2.gl; + this.nextStencilID = 1, this.currentStencilSource = void 0; + var o2 = t.create(); + t.ortho(o2, 0, this.width, this.height, 0, 0, 1), t.scale(o2, o2, [i2.drawingBufferWidth, i2.drawingBufferHeight, 0]), this.useProgram("clippingMask").draw(e2, i2.TRIANGLES, It.disabled, this.stencilClearMode, St.disabled, Ct.disabled, Li(o2), "$clipping", this.viewportBuffer, this.quadTriangleIndexBuffer, this.viewportSegments); + }, yo.prototype._renderTileClippingMasks = function(t2, e2) { + if (this.currentStencilSource !== t2.source && t2.isTileClipped() && e2 && e2.length) { this.currentStencilSource = t2.source; - const i2 = this.context, o2 = i2.gl; - this.nextStencilID + e2.length > 256 && this.clearStencil(), i2.setColorMode(yi.disabled), i2.setDepthMode(wi.disabled); - const a2 = this.useProgram("clippingMask"); + var i2 = this.context, o2 = i2.gl; + this.nextStencilID + e2.length > 256 && this.clearStencil(), i2.setColorMode(St.disabled), i2.setDepthMode(It.disabled); + var r2 = this.useProgram("clippingMask"); this._tileClippingMaskIDs = {}; - for (const t3 of e2) { - const e3 = this._tileClippingMaskIDs[t3.key] = this.nextStencilID++, r2 = this.style.terrain && this.style.terrain.getTerrainData(t3); - a2.draw(i2, o2.TRIANGLES, wi.disabled, new Ei({ func: o2.ALWAYS, mask: 0 }, e3, 255, o2.KEEP, o2.KEEP, o2.REPLACE), yi.disabled, Ii.disabled, xe(t3.posMatrix), r2, "$clipping", this.tileExtentBuffer, this.quadTriangleIndexBuffer, this.tileExtentSegments); - } - } - stencilModeFor3D() { - this.currentStencilSource = void 0, this.nextStencilID + 1 > 256 && this.clearStencil(); - const t2 = this.nextStencilID++, e2 = this.context.gl; - return new Ei({ func: e2.NOTEQUAL, mask: 255 }, t2, 255, e2.KEEP, e2.KEEP, e2.REPLACE); - } - stencilModeForClipping(t2) { - const e2 = this.context.gl; - return new Ei({ func: e2.EQUAL, mask: 255 }, this._tileClippingMaskIDs[t2.key], 0, e2.KEEP, e2.KEEP, e2.REPLACE); - } - stencilConfigForOverlap(t2) { - const e2 = this.context.gl, i2 = t2.sort((t3, e3) => e3.overscaledZ - t3.overscaledZ), o2 = i2[i2.length - 1].overscaledZ, a2 = i2[0].overscaledZ - o2 + 1; - if (a2 > 1) { - this.currentStencilSource = void 0, this.nextStencilID + a2 > 256 && this.clearStencil(); - const t3 = {}; - for (let i3 = 0; i3 < a2; i3++) - t3[i3 + o2] = new Ei({ func: e2.GEQUAL, mask: 255 }, i3 + this.nextStencilID, 255, e2.KEEP, e2.KEEP, e2.REPLACE); - return this.nextStencilID += a2, [t3, i2]; - } - return [{ [o2]: Ei.disabled }, i2]; - } - colorModeForRenderPass() { - const e2 = this.context.gl; - if (this._showOverdrawInspector) { - const i2 = 1 / 8; - return new yi([e2.CONSTANT_COLOR, e2.ONE], new t.Color(i2, i2, i2, 0), [true, true, true, true]); - } - return "opaque" === this.renderPass ? yi.unblended : yi.alphaBlended; - } - depthModeForSublayer(t2, e2, i2) { - if (!this.opaquePassEnabledForLayer()) - return wi.disabled; - const o2 = 1 - ((1 + this.currentLayer) * this.numSublayers + t2) * this.depthEpsilon; - return new wi(i2 || this.context.gl.LEQUAL, e2, [o2, o2]); - } - opaquePassEnabledForLayer() { - return this.currentLayer < this.opaquePassCutoff; - } - render(e2, i2) { - this.style = e2, this.options = i2, this.lineAtlas = e2.lineAtlas, this.imageManager = e2.imageManager, this.glyphManager = e2.glyphManager, this.symbolFadeChange = e2.placement.symbolFadeChange(t.exported.now()), this.imageManager.beginFrame(); - const o2 = this.style._order, a2 = this.style.sourceCaches, r2 = this.style.terrain && new Ki(this); - for (const t2 in a2) { - const e3 = a2[t2]; - e3.used && e3.prepare(this.context); - } - const s2 = {}, n2 = {}, l2 = {}; - for (const t2 in a2) { - const e3 = a2[t2]; - s2[t2] = e3.getVisibleCoordinates(), n2[t2] = s2[t2].slice().reverse(), l2[t2] = e3.getVisibleCoordinates(true).reverse(); - } - this.opaquePassCutoff = 1 / 0; - for (let t2 = 0; t2 < o2.length; t2++) - if (this.style._layers[o2[t2]].is3D()) { - this.opaquePassCutoff = t2; - break; - } - if (r2) { - this.opaquePassCutoff = 0; - const e3 = this.style.terrain.sourceCache.tilesAfterTime(this.terrainFacilitator.renderTime); - (this.terrainFacilitator.dirty || !t.equals(this.terrainFacilitator.matrix, this.transform.projMatrix) || e3.length) && (t.copy(this.terrainFacilitator.matrix, this.transform.projMatrix), this.terrainFacilitator.renderTime = Date.now(), this.terrainFacilitator.dirty = false, function(e4, i3) { - const o3 = e4.context, a3 = o3.gl, r3 = yi.unblended, s3 = new wi(a3.LEQUAL, wi.ReadWrite, [0, 1]), n3 = i3.getTerrainMesh(), l3 = i3.sourceCache.getRenderableTiles(), c3 = e4.useProgram("terrainDepth"); - o3.bindFramebuffer.set(i3.getFramebuffer("depth").framebuffer), o3.viewport.set([0, 0, e4.width / devicePixelRatio, e4.height / devicePixelRatio]), o3.clear({ color: t.Color.transparent, depth: 1 }); - for (const t2 of l3) { - const l4 = i3.getTerrainData(t2.tileID), h3 = e4.transform.calculatePosMatrix(t2.tileID.toUnwrapped()); - c3.draw(o3, a3.TRIANGLES, s3, Ei.disabled, r3, Ii.backCCW, { u_matrix: h3 }, l4, "terrain", n3.vertexBuffer, n3.indexBuffer, n3.segments); - } - o3.bindFramebuffer.set(null), o3.viewport.set([0, 0, e4.width, e4.height]); - }(this, this.style.terrain), function(e4, i3) { - const o3 = e4.context, a3 = o3.gl, r3 = yi.unblended, s3 = new wi(a3.LEQUAL, wi.ReadWrite, [0, 1]), n3 = i3.getTerrainMesh(), l3 = i3.getCoordsTexture(), c3 = i3.sourceCache.getRenderableTiles(), h3 = e4.useProgram("terrainCoords"); - o3.bindFramebuffer.set(i3.getFramebuffer("coords").framebuffer), o3.viewport.set([0, 0, e4.width / devicePixelRatio, e4.height / devicePixelRatio]), o3.clear({ color: t.Color.transparent, depth: 1 }), i3.coordsIndex = []; - for (const t2 of c3) { - const c4 = i3.getTerrainData(t2.tileID); - o3.activeTexture.set(a3.TEXTURE0), a3.bindTexture(a3.TEXTURE_2D, l3.texture); - const u2 = e4.transform.calculatePosMatrix(t2.tileID.toUnwrapped()); - h3.draw(o3, a3.TRIANGLES, s3, Ei.disabled, r3, Ii.backCCW, { u_matrix: u2, u_terrain_coords_id: (255 - i3.coordsIndex.length) / 255, u_texture: 0 }, c4, "terrain", n3.vertexBuffer, n3.indexBuffer, n3.segments), i3.coordsIndex.push(t2.tileID.key); - } - o3.bindFramebuffer.set(null), o3.viewport.set([0, 0, e4.width, e4.height]); - }(this, this.style.terrain)); - } - this.renderPass = "offscreen"; - for (const t2 of o2) { - const e3 = this.style._layers[t2]; - if (!e3.hasOffscreenPass() || e3.isHidden(this.transform.zoom)) - continue; - const i3 = n2[e3.source]; - ("custom" === e3.type || i3.length) && this.renderLayer(this, a2[e3.source], e3, i3); + for (var a2 = 0, n2 = e2; a2 < n2.length; a2 += 1) { + var s2 = n2[a2], l2 = this._tileClippingMaskIDs[s2.key] = this.nextStencilID++; + r2.draw(i2, o2.TRIANGLES, It.disabled, new Pt({ func: o2.ALWAYS, mask: 0 }, l2, 255, o2.KEEP, o2.KEEP, o2.REPLACE), St.disabled, Ct.disabled, Li(s2.posMatrix), "$clipping", this.tileExtentBuffer, this.quadTriangleIndexBuffer, this.tileExtentSegments); + } + } + }, yo.prototype.stencilModeFor3D = function() { + this.currentStencilSource = void 0, this.nextStencilID + 1 > 256 && this.clearStencil(); + var t2 = this.nextStencilID++, e2 = this.context.gl; + return new Pt({ func: e2.NOTEQUAL, mask: 255 }, t2, 255, e2.KEEP, e2.KEEP, e2.REPLACE); + }, yo.prototype.stencilModeForClipping = function(t2) { + var e2 = this.context.gl; + return new Pt({ func: e2.EQUAL, mask: 255 }, this._tileClippingMaskIDs[t2.key], 0, e2.KEEP, e2.KEEP, e2.REPLACE); + }, yo.prototype.stencilConfigForOverlap = function(t2) { + var e2, i2 = this.context.gl, o2 = t2.sort(function(t3, e3) { + return e3.overscaledZ - t3.overscaledZ; + }), r2 = o2[o2.length - 1].overscaledZ, a2 = o2[0].overscaledZ - r2 + 1; + if (a2 > 1) { + this.currentStencilSource = void 0, this.nextStencilID + a2 > 256 && this.clearStencil(); + for (var n2 = {}, s2 = 0; s2 < a2; s2++) + n2[s2 + r2] = new Pt({ func: i2.GEQUAL, mask: 255 }, s2 + this.nextStencilID, 255, i2.KEEP, i2.KEEP, i2.REPLACE); + return this.nextStencilID += a2, [n2, o2]; + } + return [(e2 = {}, e2[r2] = Pt.disabled, e2), o2]; + }, yo.prototype.colorModeForRenderPass = function() { + var e2 = this.context.gl; + return this._showOverdrawInspector ? new St([e2.CONSTANT_COLOR, e2.ONE], new t.Color(1 / 8, 1 / 8, 1 / 8, 0), [true, true, true, true]) : "opaque" === this.renderPass ? St.unblended : St.alphaBlended; + }, yo.prototype.depthModeForSublayer = function(t2, e2, i2) { + if (!this.opaquePassEnabledForLayer()) + return It.disabled; + var o2 = 1 - ((1 + this.currentLayer) * this.numSublayers + t2) * this.depthEpsilon; + return new It(i2 || this.context.gl.LEQUAL, e2, [o2, o2]); + }, yo.prototype.opaquePassEnabledForLayer = function() { + return this.currentLayer < this.opaquePassCutoff; + }, yo.prototype.render = function(e2, i2) { + var o2 = this; + this.style = e2, this.options = i2, this.lineAtlas = e2.lineAtlas, this.imageManager = e2.imageManager, this.glyphManager = e2.glyphManager, this.symbolFadeChange = e2.placement.symbolFadeChange(t.browser.now()), this.imageManager.beginFrame(); + var r2 = this.style._order, a2 = this.style.sourceCaches; + for (var n2 in a2) { + var s2 = a2[n2]; + s2.used && s2.prepare(this.context); + } + var l2, c3, u2 = {}, h3 = {}, p3 = {}; + for (var d2 in a2) { + var _2 = a2[d2]; + u2[d2] = _2.getVisibleCoordinates(), h3[d2] = u2[d2].slice().reverse(), p3[d2] = _2.getVisibleCoordinates(true).reverse(); + } + this.opaquePassCutoff = 1 / 0; + for (var f2 = 0; f2 < r2.length; f2++) + if (this.style._layers[r2[f2]].is3D()) { + this.opaquePassCutoff = f2; + break; } - if (this.context.bindFramebuffer.set(null), this.context.clear({ color: i2.showOverdrawInspector ? t.Color.black : t.Color.transparent, depth: 1 }), this.clearStencil(), this._showOverdrawInspector = i2.showOverdrawInspector, this.depthRangeFor3D = [0, 1 - (e2._order.length + 2) * this.numSublayers * this.depthEpsilon], !r2) - for (this.renderPass = "opaque", this.currentLayer = o2.length - 1; this.currentLayer >= 0; this.currentLayer--) { - const t2 = this.style._layers[o2[this.currentLayer]], e3 = a2[t2.source], i3 = s2[t2.source]; - this._renderTileClippingMasks(t2, i3), this.renderLayer(this, e3, t2, i3); - } - for (this.renderPass = "translucent", this.currentLayer = 0; this.currentLayer < o2.length; this.currentLayer++) { - const t2 = this.style._layers[o2[this.currentLayer]], e3 = a2[t2.source]; - if (r2 && r2.renderLayer(t2)) - continue; - const i3 = ("symbol" === t2.type ? l2 : n2)[t2.source]; - this._renderTileClippingMasks(t2, s2[t2.source]), this.renderLayer(this, e3, t2, i3); - } - if (this.options.showTileBoundaries) { - let t2, e3; - Object.values(this.style._layers).forEach((i3) => { - i3.source && !i3.isHidden(this.transform.zoom) && (i3.source !== (e3 && e3.id) && (e3 = this.style.sourceCaches[i3.source]), (!t2 || t2.getSource().maxzoom < e3.getSource().maxzoom) && (t2 = e3)); - }), t2 && Yi.debug(this, t2, t2.getVisibleCoordinates()); - } - this.options.showPadding && function(t2) { - const e3 = t2.transform.padding; - qi(t2, t2.transform.height - (e3.top || 0), 3, Ui), qi(t2, e3.bottom || 0, 3, Ni), ji(t2, e3.left || 0, 3, Gi), ji(t2, t2.transform.width - (e3.right || 0), 3, Zi); - const i3 = t2.transform.centerPoint; - !function(t3, e4, i4, o3) { - $i(t3, e4 - 1, i4 - 10, 2, 20, o3), $i(t3, e4 - 10, i4 - 1, 20, 2, o3); - }(t2, i3.x, t2.transform.height - i3.y, Vi); - }(this), this.context.setDefault(); - } - renderLayer(t2, e2, i2, o2) { - i2.isHidden(this.transform.zoom) || ("background" === i2.type || "custom" === i2.type || (o2 || []).length) && (this.id = i2.id, this.gpuTimingStart(i2), Yi[i2.type](t2, e2, i2, o2, this.style.placement.variableOffsets), this.gpuTimingEnd()); - } - gpuTimingStart(t2) { - if (!this.options.gpuTiming) - return; - const e2 = this.context.extTimerQuery; - let i2 = this.gpuTimers[t2.id]; + this.renderPass = "offscreen"; + for (var m2 = 0, g2 = r2; m2 < g2.length; m2 += 1) { + var v3 = this.style._layers[g2[m2]]; + if (v3.hasOffscreenPass() && !v3.isHidden(this.transform.zoom)) { + var y3 = h3[v3.source]; + ("custom" === v3.type || y3.length) && this.renderLayer(this, a2[v3.source], v3, y3); + } + } + for (this.context.bindFramebuffer.set(null), this.context.clear({ color: i2.showOverdrawInspector ? t.Color.black : t.Color.transparent, depth: 1 }), this.clearStencil(), this._showOverdrawInspector = i2.showOverdrawInspector, this.depthRangeFor3D = [0, 1 - (e2._order.length + 2) * this.numSublayers * this.depthEpsilon], this.renderPass = "opaque", this.currentLayer = r2.length - 1; this.currentLayer >= 0; this.currentLayer--) { + var x2 = this.style._layers[r2[this.currentLayer]], b2 = a2[x2.source], w2 = u2[x2.source]; + this._renderTileClippingMasks(x2, w2), this.renderLayer(this, b2, x2, w2); + } + for (this.renderPass = "translucent", this.currentLayer = 0; this.currentLayer < r2.length; this.currentLayer++) { + var T2 = this.style._layers[r2[this.currentLayer]], E2 = a2[T2.source], I3 = ("symbol" === T2.type ? p3 : h3)[T2.source]; + this._renderTileClippingMasks(T2, u2[T2.source]), this.renderLayer(this, E2, T2, I3); + } + this.options.showTileBoundaries && (t.values(this.style._layers).forEach(function(t2) { + t2.source && !t2.isHidden(o2.transform.zoom) && (t2.source !== (c3 && c3.id) && (c3 = o2.style.sourceCaches[t2.source]), (!l2 || l2.getSource().maxzoom < c3.getSource().maxzoom) && (l2 = c3)); + }), l2 && vo.debug(this, l2, l2.getVisibleCoordinates())), this.options.showPadding && function(t2) { + var e3 = t2.transform.padding; + _o(t2, t2.transform.height - (e3.top || 0), 3, lo), _o(t2, e3.bottom || 0, 3, co), fo(t2, e3.left || 0, 3, uo), fo(t2, t2.transform.width - (e3.right || 0), 3, ho); + var i3 = t2.transform.centerPoint; + !function(t3, e4, i4, o3) { + mo(t3, e4 - 1, i4 - 10, 2, 20, o3), mo(t3, e4 - 10, i4 - 1, 20, 2, o3); + }(t2, i3.x, t2.transform.height - i3.y, po); + }(this), this.context.setDefault(); + }, yo.prototype.renderLayer = function(t2, e2, i2, o2) { + i2.isHidden(this.transform.zoom) || ("background" === i2.type || "custom" === i2.type || o2.length) && (this.id = i2.id, this.gpuTimingStart(i2), vo[i2.type](t2, e2, i2, o2, this.style.placement.variableOffsets), this.gpuTimingEnd()); + }, yo.prototype.gpuTimingStart = function(t2) { + if (this.options.gpuTiming) { + var e2 = this.context.extTimerQuery, i2 = this.gpuTimers[t2.id]; i2 || (i2 = this.gpuTimers[t2.id] = { calls: 0, cpuTime: 0, query: e2.createQueryEXT() }), i2.calls++, e2.beginQueryEXT(e2.TIME_ELAPSED_EXT, i2.query); } - gpuTimingEnd() { - if (!this.options.gpuTiming) - return; - const t2 = this.context.extTimerQuery; + }, yo.prototype.gpuTimingEnd = function() { + if (this.options.gpuTiming) { + var t2 = this.context.extTimerQuery; t2.endQueryEXT(t2.TIME_ELAPSED_EXT); } - collectGpuTimers() { - const t2 = this.gpuTimers; - return this.gpuTimers = {}, t2; + }, yo.prototype.collectGpuTimers = function() { + var t2 = this.gpuTimers; + return this.gpuTimers = {}, t2; + }, yo.prototype.queryGpuTimers = function(t2) { + var e2 = {}; + for (var i2 in t2) { + var o2 = t2[i2], r2 = this.context.extTimerQuery, a2 = r2.getQueryObjectEXT(o2.query, r2.QUERY_RESULT_EXT) / 1e6; + r2.deleteQueryEXT(o2.query), e2[i2] = a2; } - queryGpuTimers(t2) { - const e2 = {}; - for (const i2 in t2) { - const o2 = t2[i2], a2 = this.context.extTimerQuery, r2 = a2.getQueryObjectEXT(o2.query, a2.QUERY_RESULT_EXT) / 1e6; - a2.deleteQueryEXT(o2.query), e2[i2] = r2; - } + return e2; + }, yo.prototype.translatePosMatrix = function(e2, i2, o2, r2, a2) { + if (!o2[0] && !o2[1]) return e2; - } - translatePosMatrix(e2, i2, o2, a2, r2) { - if (!o2[0] && !o2[1]) - return e2; - const s2 = r2 ? "map" === a2 ? this.transform.angle : 0 : "viewport" === a2 ? -this.transform.angle : 0; - if (s2) { - const t2 = Math.sin(s2), e3 = Math.cos(s2); - o2 = [o2[0] * e3 - o2[1] * t2, o2[0] * t2 + o2[1] * e3]; + var n2 = a2 ? "map" === r2 ? this.transform.angle : 0 : "viewport" === r2 ? -this.transform.angle : 0; + if (n2) { + var s2 = Math.sin(n2), l2 = Math.cos(n2); + o2 = [o2[0] * l2 - o2[1] * s2, o2[0] * s2 + o2[1] * l2]; + } + var c3 = [a2 ? o2[0] : pe(i2, o2[0], this.transform.zoom), a2 ? o2[1] : pe(i2, o2[1], this.transform.zoom), 0], u2 = new Float32Array(16); + return t.translate(u2, e2, c3), u2; + }, yo.prototype.saveTileTexture = function(t2) { + var e2 = this._tileTextures[t2.size[0]]; + e2 ? e2.push(t2) : this._tileTextures[t2.size[0]] = [t2]; + }, yo.prototype.getTileTexture = function(t2) { + var e2 = this._tileTextures[t2]; + return e2 && e2.length > 0 ? e2.pop() : null; + }, yo.prototype.isPatternMissing = function(t2) { + if (!t2) + return false; + if (!t2.from || !t2.to) + return true; + var e2 = this.imageManager.getPattern(t2.from.toString()), i2 = this.imageManager.getPattern(t2.to.toString()); + return !e2 || !i2; + }, yo.prototype.useProgram = function(t2, e2) { + this.cache = this.cache || {}; + var i2 = "" + t2 + (e2 ? e2.cacheKey : "") + (this._showOverdrawInspector ? "/overdraw" : ""); + return this.cache[i2] || (this.cache[i2] = new bi(this.context, t2, vi[t2], e2, Ki[t2], this._showOverdrawInspector)), this.cache[i2]; + }, yo.prototype.setCustomLayerDefaults = function() { + this.context.unbindVAO(), this.context.cullFace.setDefault(), this.context.activeTexture.setDefault(), this.context.pixelStoreUnpack.setDefault(), this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.context.pixelStoreUnpackFlipY.setDefault(); + }, yo.prototype.setBaseState = function() { + var t2 = this.context.gl; + this.context.cullFace.set(false), this.context.viewport.set([0, 0, this.width, this.height]), this.context.blendEquation.set(t2.FUNC_ADD); + }, yo.prototype.initDebugOverlayCanvas = function() { + null == this.debugOverlayCanvas && (this.debugOverlayCanvas = t.window.document.createElement("canvas"), this.debugOverlayCanvas.width = 512, this.debugOverlayCanvas.height = 512, this.debugOverlayTexture = new t.Texture(this.context, this.debugOverlayCanvas, this.context.gl.RGBA)); + }, yo.prototype.destroy = function() { + this.emptyTexture.destroy(), this.debugOverlayTexture && this.debugOverlayTexture.destroy(); + }; + var xo = function(t2, e2) { + this.points = t2, this.planes = e2; + }; + xo.fromInvProjectionMatrix = function(e2, i2, o2) { + var r2 = Math.pow(2, o2), a2 = [[-1, 1, -1, 1], [1, 1, -1, 1], [1, -1, -1, 1], [-1, -1, -1, 1], [-1, 1, 1, 1], [1, 1, 1, 1], [1, -1, 1, 1], [-1, -1, 1, 1]].map(function(i3) { + return t.transformMat4([], i3, e2); + }).map(function(e3) { + return t.scale$1([], e3, 1 / e3[3] / i2 * r2); + }), n2 = [[0, 1, 2], [6, 5, 4], [0, 3, 7], [2, 1, 5], [3, 2, 6], [0, 4, 5]].map(function(e3) { + var i3 = t.sub([], a2[e3[0]], a2[e3[1]]), o3 = t.sub([], a2[e3[2]], a2[e3[1]]), r3 = t.normalize([], t.cross([], i3, o3)), n3 = -t.dot(r3, a2[e3[1]]); + return r3.concat(n3); + }); + return new xo(a2, n2); + }; + var bo = function(e2, i2) { + this.min = e2, this.max = i2, this.center = t.scale$2([], t.add([], this.min, this.max), 0.5); + }; + bo.prototype.quadrant = function(e2) { + for (var i2 = [e2 % 2 == 0, e2 < 2], o2 = t.clone$2(this.min), r2 = t.clone$2(this.max), a2 = 0; a2 < i2.length; a2++) + o2[a2] = i2[a2] ? this.min[a2] : this.center[a2], r2[a2] = i2[a2] ? this.center[a2] : this.max[a2]; + return r2[2] = this.max[2], new bo(o2, r2); + }, bo.prototype.distanceX = function(t2) { + return Math.max(Math.min(this.max[0], t2[0]), this.min[0]) - t2[0]; + }, bo.prototype.distanceY = function(t2) { + return Math.max(Math.min(this.max[1], t2[1]), this.min[1]) - t2[1]; + }, bo.prototype.intersects = function(e2) { + for (var i2 = [[this.min[0], this.min[1], 0, 1], [this.max[0], this.min[1], 0, 1], [this.max[0], this.max[1], 0, 1], [this.min[0], this.max[1], 0, 1]], o2 = true, r2 = 0; r2 < e2.planes.length; r2++) { + for (var a2 = e2.planes[r2], n2 = 0, s2 = 0; s2 < i2.length; s2++) + n2 += t.dot$1(a2, i2[s2]) >= 0; + if (0 === n2) + return 0; + n2 !== i2.length && (o2 = false); + } + if (o2) + return 2; + for (var l2 = 0; l2 < 3; l2++) { + for (var c3 = Number.MAX_VALUE, u2 = -Number.MAX_VALUE, h3 = 0; h3 < e2.points.length; h3++) { + var p3 = e2.points[h3][l2] - this.min[l2]; + c3 = Math.min(c3, p3), u2 = Math.max(u2, p3); + } + if (u2 < 0 || c3 > this.max[l2] - this.min[l2]) + return 0; + } + return 1; + }; + var wo = function(t2, e2, i2, o2) { + if (void 0 === t2 && (t2 = 0), void 0 === e2 && (e2 = 0), void 0 === i2 && (i2 = 0), void 0 === o2 && (o2 = 0), isNaN(t2) || t2 < 0 || isNaN(e2) || e2 < 0 || isNaN(i2) || i2 < 0 || isNaN(o2) || o2 < 0) + throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers"); + this.top = t2, this.bottom = e2, this.left = i2, this.right = o2; + }; + wo.prototype.interpolate = function(e2, i2, o2) { + return null != i2.top && null != e2.top && (this.top = t.number(e2.top, i2.top, o2)), null != i2.bottom && null != e2.bottom && (this.bottom = t.number(e2.bottom, i2.bottom, o2)), null != i2.left && null != e2.left && (this.left = t.number(e2.left, i2.left, o2)), null != i2.right && null != e2.right && (this.right = t.number(e2.right, i2.right, o2)), this; + }, wo.prototype.getCenter = function(e2, i2) { + var o2 = t.clamp((this.left + e2 - this.right) / 2, 0, e2), r2 = t.clamp((this.top + i2 - this.bottom) / 2, 0, i2); + return new t.Point(o2, r2); + }, wo.prototype.equals = function(t2) { + return this.top === t2.top && this.bottom === t2.bottom && this.left === t2.left && this.right === t2.right; + }, wo.prototype.clone = function() { + return new wo(this.top, this.bottom, this.left, this.right); + }, wo.prototype.toJSON = function() { + return { top: this.top, bottom: this.bottom, left: this.left, right: this.right }; + }; + var To = function(e2, i2, o2, r2, a2) { + this.tileSize = 512, this.maxValidLatitude = 85.051129, this._renderWorldCopies = void 0 === a2 || a2, this._minZoom = e2 || 0, this._maxZoom = i2 || 22, this._minPitch = null == o2 ? 0 : o2, this._maxPitch = null == r2 ? 60 : r2, this.setMaxBounds(), this.width = 0, this.height = 0, this._center = new t.LngLat(0, 0), this.zoom = 0, this.angle = 0, this._fov = 0.6435011087932844, this._pitch = 0, this._unmodified = true, this._edgeInsets = new wo(), this._posMatrixCache = {}, this._alignedPosMatrixCache = {}; + }, Eo = { minZoom: { configurable: true }, maxZoom: { configurable: true }, minPitch: { configurable: true }, maxPitch: { configurable: true }, renderWorldCopies: { configurable: true }, worldSize: { configurable: true }, centerOffset: { configurable: true }, size: { configurable: true }, bearing: { configurable: true }, pitch: { configurable: true }, fov: { configurable: true }, zoom: { configurable: true }, center: { configurable: true }, padding: { configurable: true }, centerPoint: { configurable: true }, unmodified: { configurable: true }, point: { configurable: true } }; + To.prototype.clone = function() { + var t2 = new To(this._minZoom, this._maxZoom, this._minPitch, this.maxPitch, this._renderWorldCopies); + return t2.tileSize = this.tileSize, t2.latRange = this.latRange, t2.width = this.width, t2.height = this.height, t2._center = this._center, t2.zoom = this.zoom, t2.angle = this.angle, t2._fov = this._fov, t2._pitch = this._pitch, t2._unmodified = this._unmodified, t2._edgeInsets = this._edgeInsets.clone(), t2._calcMatrices(), t2; + }, Eo.minZoom.get = function() { + return this._minZoom; + }, Eo.minZoom.set = function(t2) { + this._minZoom !== t2 && (this._minZoom = t2, this.zoom = Math.max(this.zoom, t2)); + }, Eo.maxZoom.get = function() { + return this._maxZoom; + }, Eo.maxZoom.set = function(t2) { + this._maxZoom !== t2 && (this._maxZoom = t2, this.zoom = Math.min(this.zoom, t2)); + }, Eo.minPitch.get = function() { + return this._minPitch; + }, Eo.minPitch.set = function(t2) { + this._minPitch !== t2 && (this._minPitch = t2, this.pitch = Math.max(this.pitch, t2)); + }, Eo.maxPitch.get = function() { + return this._maxPitch; + }, Eo.maxPitch.set = function(t2) { + this._maxPitch !== t2 && (this._maxPitch = t2, this.pitch = Math.min(this.pitch, t2)); + }, Eo.renderWorldCopies.get = function() { + return this._renderWorldCopies; + }, Eo.renderWorldCopies.set = function(t2) { + void 0 === t2 ? t2 = true : null === t2 && (t2 = false), this._renderWorldCopies = t2; + }, Eo.worldSize.get = function() { + return this.tileSize * this.scale; + }, Eo.centerOffset.get = function() { + return this.centerPoint._sub(this.size._div(2)); + }, Eo.size.get = function() { + return new t.Point(this.width, this.height); + }, Eo.bearing.get = function() { + return -this.angle / Math.PI * 180; + }, Eo.bearing.set = function(e2) { + var i2 = -t.wrap(e2, -180, 180) * Math.PI / 180; + this.angle !== i2 && (this._unmodified = false, this.angle = i2, this._calcMatrices(), this.rotationMatrix = t.create$2(), t.rotate(this.rotationMatrix, this.rotationMatrix, this.angle)); + }, Eo.pitch.get = function() { + return this._pitch / Math.PI * 180; + }, Eo.pitch.set = function(e2) { + var i2 = t.clamp(e2, this.minPitch, this.maxPitch) / 180 * Math.PI; + this._pitch !== i2 && (this._unmodified = false, this._pitch = i2, this._calcMatrices()); + }, Eo.fov.get = function() { + return this._fov / Math.PI * 180; + }, Eo.fov.set = function(t2) { + t2 = Math.max(0.01, Math.min(60, t2)), this._fov !== t2 && (this._unmodified = false, this._fov = t2 / 180 * Math.PI, this._calcMatrices()); + }, Eo.zoom.get = function() { + return this._zoom; + }, Eo.zoom.set = function(t2) { + var e2 = Math.min(Math.max(t2, this.minZoom), this.maxZoom); + this._zoom !== e2 && (this._unmodified = false, this._zoom = e2, this.scale = this.zoomScale(e2), this.tileZoom = Math.floor(e2), this.zoomFraction = e2 - this.tileZoom, this._constrain(), this._calcMatrices()); + }, Eo.center.get = function() { + return this._center; + }, Eo.center.set = function(t2) { + t2.lat === this._center.lat && t2.lng === this._center.lng || (this._unmodified = false, this._center = t2, this._constrain(), this._calcMatrices()); + }, Eo.padding.get = function() { + return this._edgeInsets.toJSON(); + }, Eo.padding.set = function(t2) { + this._edgeInsets.equals(t2) || (this._unmodified = false, this._edgeInsets.interpolate(this._edgeInsets, t2, 1), this._calcMatrices()); + }, Eo.centerPoint.get = function() { + return this._edgeInsets.getCenter(this.width, this.height); + }, To.prototype.isPaddingEqual = function(t2) { + return this._edgeInsets.equals(t2); + }, To.prototype.interpolatePadding = function(t2, e2, i2) { + this._unmodified = false, this._edgeInsets.interpolate(t2, e2, i2), this._constrain(), this._calcMatrices(); + }, To.prototype.coveringZoomLevel = function(t2) { + var e2 = (t2.roundZoom ? Math.round : Math.floor)(this.zoom + this.scaleZoom(this.tileSize / t2.tileSize)); + return Math.max(0, e2); + }, To.prototype.getVisibleUnwrappedCoordinates = function(e2) { + var i2 = [new t.UnwrappedTileID(0, e2)]; + if (this._renderWorldCopies) + for (var o2 = this.pointCoordinate(new t.Point(0, 0)), r2 = this.pointCoordinate(new t.Point(this.width, 0)), a2 = this.pointCoordinate(new t.Point(this.width, this.height)), n2 = this.pointCoordinate(new t.Point(0, this.height)), s2 = Math.floor(Math.min(o2.x, r2.x, a2.x, n2.x)), l2 = Math.floor(Math.max(o2.x, r2.x, a2.x, n2.x)), c3 = s2 - 1; c3 <= l2 + 1; c3++) + 0 !== c3 && i2.push(new t.UnwrappedTileID(c3, e2)); + return i2; + }, To.prototype.coveringTiles = function(e2) { + var i2 = this.coveringZoomLevel(e2), o2 = i2; + if (void 0 !== e2.minzoom && i2 < e2.minzoom) + return []; + void 0 !== e2.maxzoom && i2 > e2.maxzoom && (i2 = e2.maxzoom); + var r2 = t.MercatorCoordinate.fromLngLat(this.center), a2 = Math.pow(2, i2), n2 = [a2 * r2.x, a2 * r2.y, 0], s2 = xo.fromInvProjectionMatrix(this.invProjMatrix, this.worldSize, i2), l2 = e2.minzoom || 0; + this.pitch <= 60 && this._edgeInsets.top < 0.1 && (l2 = i2); + var c3 = function(t2) { + return { aabb: new bo([t2 * a2, 0, 0], [(t2 + 1) * a2, a2, 0]), zoom: 0, x: 0, y: 0, wrap: t2, fullyVisible: false }; + }, u2 = [], h3 = [], p3 = i2, d2 = e2.reparseOverscaled ? o2 : i2; + if (this._renderWorldCopies) + for (var _2 = 1; _2 <= 3; _2++) + u2.push(c3(-_2)), u2.push(c3(_2)); + for (u2.push(c3(0)); u2.length > 0; ) { + var f2 = u2.pop(), m2 = f2.x, g2 = f2.y, v3 = f2.fullyVisible; + if (!v3) { + var y3 = f2.aabb.intersects(s2); + if (0 === y3) + continue; + v3 = 2 === y3; } - const n2 = [r2 ? o2[0] : bt(i2, o2[0], this.transform.zoom), r2 ? o2[1] : bt(i2, o2[1], this.transform.zoom), 0], l2 = new Float32Array(16); - return t.translate(l2, e2, n2), l2; - } - saveTileTexture(t2) { - const e2 = this._tileTextures[t2.size[0]]; - e2 ? e2.push(t2) : this._tileTextures[t2.size[0]] = [t2]; - } - getTileTexture(t2) { - const e2 = this._tileTextures[t2]; - return e2 && e2.length > 0 ? e2.pop() : null; - } - isPatternMissing(t2) { - if (!t2) - return false; - if (!t2.from || !t2.to) - return true; - const e2 = this.imageManager.getPattern(t2.from.toString()), i2 = this.imageManager.getPattern(t2.to.toString()); - return !e2 || !i2; - } - useProgram(t2, e2) { - this.cache = this.cache || {}; - const i2 = t2 + (e2 ? e2.cacheKey : "") + (this._showOverdrawInspector ? "/overdraw" : "") + (this.style.terrain ? "/terrain" : ""); - return this.cache[i2] || (this.cache[i2] = new ne(this.context, t2, oe[t2], e2, Re[t2], this._showOverdrawInspector, this.style.terrain)), this.cache[i2]; - } - setCustomLayerDefaults() { - this.context.unbindVAO(), this.context.cullFace.setDefault(), this.context.activeTexture.setDefault(), this.context.pixelStoreUnpack.setDefault(), this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.context.pixelStoreUnpackFlipY.setDefault(); + var x2 = f2.aabb.distanceX(n2), b2 = f2.aabb.distanceY(n2), w2 = Math.max(Math.abs(x2), Math.abs(b2)); + if (f2.zoom === p3 || w2 > 3 + (1 << p3 - f2.zoom) - 2 && f2.zoom >= l2) + h3.push({ tileID: new t.OverscaledTileID(f2.zoom === p3 ? d2 : f2.zoom, f2.wrap, f2.zoom, m2, g2), distanceSq: t.sqrLen([n2[0] - 0.5 - m2, n2[1] - 0.5 - g2]) }); + else + for (var T2 = 0; T2 < 4; T2++) { + var E2 = (m2 << 1) + T2 % 2, I3 = (g2 << 1) + (T2 >> 1); + u2.push({ aabb: f2.aabb.quadrant(T2), zoom: f2.zoom + 1, x: E2, y: I3, wrap: f2.wrap, fullyVisible: v3 }); + } } - setBaseState() { - const t2 = this.context.gl; - this.context.cullFace.set(false), this.context.viewport.set([0, 0, this.width, this.height]), this.context.blendEquation.set(t2.FUNC_ADD); + return h3.sort(function(t2, e3) { + return t2.distanceSq - e3.distanceSq; + }).map(function(t2) { + return t2.tileID; + }); + }, To.prototype.resize = function(t2, e2) { + this.width = t2, this.height = e2, this.pixelsToGLUnits = [2 / t2, -2 / e2], this._constrain(), this._calcMatrices(); + }, Eo.unmodified.get = function() { + return this._unmodified; + }, To.prototype.zoomScale = function(t2) { + return Math.pow(2, t2); + }, To.prototype.scaleZoom = function(t2) { + return Math.log(t2) / Math.LN2; + }, To.prototype.project = function(e2) { + var i2 = t.clamp(e2.lat, -this.maxValidLatitude, this.maxValidLatitude); + return new t.Point(t.mercatorXfromLng(e2.lng) * this.worldSize, t.mercatorYfromLat(i2) * this.worldSize); + }, To.prototype.unproject = function(e2) { + return new t.MercatorCoordinate(e2.x / this.worldSize, e2.y / this.worldSize).toLngLat(); + }, Eo.point.get = function() { + return this.project(this.center); + }, To.prototype.setLocationAtPoint = function(e2, i2) { + var o2 = this.pointCoordinate(i2), r2 = this.pointCoordinate(this.centerPoint), a2 = this.locationCoordinate(e2), n2 = new t.MercatorCoordinate(a2.x - (o2.x - r2.x), a2.y - (o2.y - r2.y)); + this.center = this.coordinateLocation(n2), this._renderWorldCopies && (this.center = this.center.wrap()); + }, To.prototype.locationPoint = function(t2) { + return this.coordinatePoint(this.locationCoordinate(t2)); + }, To.prototype.pointLocation = function(t2) { + return this.coordinateLocation(this.pointCoordinate(t2)); + }, To.prototype.locationCoordinate = function(e2) { + return t.MercatorCoordinate.fromLngLat(e2); + }, To.prototype.coordinateLocation = function(t2) { + return t2.toLngLat(); + }, To.prototype.pointCoordinate = function(e2) { + var i2 = [e2.x, e2.y, 0, 1], o2 = [e2.x, e2.y, 1, 1]; + t.transformMat4(i2, i2, this.pixelMatrixInverse), t.transformMat4(o2, o2, this.pixelMatrixInverse); + var r2 = i2[3], a2 = o2[3], n2 = i2[1] / r2, s2 = o2[1] / a2, l2 = i2[2] / r2, c3 = o2[2] / a2, u2 = l2 === c3 ? 0 : (0 - l2) / (c3 - l2); + return new t.MercatorCoordinate(t.number(i2[0] / r2, o2[0] / a2, u2) / this.worldSize, t.number(n2, s2, u2) / this.worldSize); + }, To.prototype.coordinatePoint = function(e2) { + var i2 = [e2.x * this.worldSize, e2.y * this.worldSize, 0, 1]; + return t.transformMat4(i2, i2, this.pixelMatrix), new t.Point(i2[0] / i2[3], i2[1] / i2[3]); + }, To.prototype.getBounds = function() { + return new t.LngLatBounds().extend(this.pointLocation(new t.Point(0, 0))).extend(this.pointLocation(new t.Point(this.width, 0))).extend(this.pointLocation(new t.Point(this.width, this.height))).extend(this.pointLocation(new t.Point(0, this.height))); + }, To.prototype.getMaxBounds = function() { + return this.latRange && 2 === this.latRange.length && this.lngRange && 2 === this.lngRange.length ? new t.LngLatBounds([this.lngRange[0], this.latRange[0]], [this.lngRange[1], this.latRange[1]]) : null; + }, To.prototype.setMaxBounds = function(t2) { + t2 ? (this.lngRange = [t2.getWest(), t2.getEast()], this.latRange = [t2.getSouth(), t2.getNorth()], this._constrain()) : (this.lngRange = null, this.latRange = [-this.maxValidLatitude, this.maxValidLatitude]); + }, To.prototype.calculatePosMatrix = function(e2, i2) { + void 0 === i2 && (i2 = false); + var o2 = e2.key, r2 = i2 ? this._alignedPosMatrixCache : this._posMatrixCache; + if (r2[o2]) + return r2[o2]; + var a2 = e2.canonical, n2 = this.worldSize / this.zoomScale(a2.z), s2 = a2.x + Math.pow(2, a2.z) * e2.wrap, l2 = t.identity(new Float64Array(16)); + return t.translate(l2, l2, [s2 * n2, a2.y * n2, 0]), t.scale(l2, l2, [n2 / t.EXTENT, n2 / t.EXTENT, 1]), t.multiply(l2, i2 ? this.alignedProjMatrix : this.projMatrix, l2), r2[o2] = new Float32Array(l2), r2[o2]; + }, To.prototype.customLayerMatrix = function() { + return this.mercatorMatrix.slice(); + }, To.prototype._constrain = function() { + if (this.center && this.width && this.height && !this._constraining) { + this._constraining = true; + var e2, i2, o2, r2, a2 = -90, n2 = 90, s2 = -180, l2 = 180, c3 = this.size, u2 = this._unmodified; + if (this.latRange) { + var h3 = this.latRange; + a2 = t.mercatorYfromLat(h3[1]) * this.worldSize, e2 = (n2 = t.mercatorYfromLat(h3[0]) * this.worldSize) - a2 < c3.y ? c3.y / (n2 - a2) : 0; + } + if (this.lngRange) { + var p3 = this.lngRange; + s2 = t.mercatorXfromLng(p3[0]) * this.worldSize, i2 = (l2 = t.mercatorXfromLng(p3[1]) * this.worldSize) - s2 < c3.x ? c3.x / (l2 - s2) : 0; + } + var d2 = this.point, _2 = Math.max(i2 || 0, e2 || 0); + if (_2) + return this.center = this.unproject(new t.Point(i2 ? (l2 + s2) / 2 : d2.x, e2 ? (n2 + a2) / 2 : d2.y)), this.zoom += this.scaleZoom(_2), this._unmodified = u2, void (this._constraining = false); + if (this.latRange) { + var f2 = d2.y, m2 = c3.y / 2; + f2 - m2 < a2 && (r2 = a2 + m2), f2 + m2 > n2 && (r2 = n2 - m2); + } + if (this.lngRange) { + var g2 = d2.x, v3 = c3.x / 2; + g2 - v3 < s2 && (o2 = s2 + v3), g2 + v3 > l2 && (o2 = l2 - v3); + } + void 0 === o2 && void 0 === r2 || (this.center = this.unproject(new t.Point(void 0 !== o2 ? o2 : d2.x, void 0 !== r2 ? r2 : d2.y))), this._unmodified = u2, this._constraining = false; + } + }, To.prototype._calcMatrices = function() { + if (this.height) { + var e2 = this.centerOffset; + this.cameraToCenterDistance = 0.5 / Math.tan(this._fov / 2) * this.height; + var i2 = Math.PI / 2 + this._pitch, o2 = this._fov * (0.5 + e2.y / this.height), r2 = Math.sin(o2) * this.cameraToCenterDistance / Math.sin(t.clamp(Math.PI - i2 - o2, 0.01, Math.PI - 0.01)), a2 = this.point, n2 = a2.x, s2 = a2.y, l2 = 1.01 * (Math.cos(Math.PI / 2 - this._pitch) * r2 + this.cameraToCenterDistance), c3 = this.height / 50, u2 = new Float64Array(16); + t.perspective(u2, this._fov, this.width / this.height, c3, l2), u2[8] = 2 * -e2.x / this.width, u2[9] = 2 * e2.y / this.height, t.scale(u2, u2, [1, -1, 1]), t.translate(u2, u2, [0, 0, -this.cameraToCenterDistance]), t.rotateX(u2, u2, this._pitch), t.rotateZ(u2, u2, this.angle), t.translate(u2, u2, [-n2, -s2, 0]), this.mercatorMatrix = t.scale([], u2, [this.worldSize, this.worldSize, this.worldSize]), t.scale(u2, u2, [1, 1, t.mercatorZfromAltitude(1, this.center.lat) * this.worldSize, 1]), this.projMatrix = u2, this.invProjMatrix = t.invert([], this.projMatrix); + var h3 = this.width % 2 / 2, p3 = this.height % 2 / 2, d2 = Math.cos(this.angle), _2 = Math.sin(this.angle), f2 = n2 - Math.round(n2) + d2 * h3 + _2 * p3, m2 = s2 - Math.round(s2) + d2 * p3 + _2 * h3, g2 = new Float64Array(u2); + if (t.translate(g2, g2, [f2 > 0.5 ? f2 - 1 : f2, m2 > 0.5 ? m2 - 1 : m2, 0]), this.alignedProjMatrix = g2, u2 = t.create(), t.scale(u2, u2, [this.width / 2, -this.height / 2, 1]), t.translate(u2, u2, [1, -1, 0]), this.labelPlaneMatrix = u2, u2 = t.create(), t.scale(u2, u2, [1, -1, 1]), t.translate(u2, u2, [-1, -1, 0]), t.scale(u2, u2, [2 / this.width, 2 / this.height, 1]), this.glCoordMatrix = u2, this.pixelMatrix = t.multiply(new Float64Array(16), this.labelPlaneMatrix, this.projMatrix), !(u2 = t.invert(new Float64Array(16), this.pixelMatrix))) + throw new Error("failed to invert matrix"); + this.pixelMatrixInverse = u2, this._posMatrixCache = {}, this._alignedPosMatrixCache = {}; } - initDebugOverlayCanvas() { - null == this.debugOverlayCanvas && (this.debugOverlayCanvas = document.createElement("canvas"), this.debugOverlayCanvas.width = 512, this.debugOverlayCanvas.height = 512, this.debugOverlayTexture = new l(this.context, this.debugOverlayCanvas, this.context.gl.RGBA)); + }, To.prototype.maxPitchScaleFactor = function() { + if (!this.pixelMatrixInverse) + return 1; + var e2 = this.pointCoordinate(new t.Point(0, 0)), i2 = [e2.x * this.worldSize, e2.y * this.worldSize, 0, 1]; + return t.transformMat4(i2, i2, this.pixelMatrix)[3] / this.cameraToCenterDistance; + }, To.prototype.getCameraPoint = function() { + var e2 = Math.tan(this._pitch) * (this.cameraToCenterDistance || 1); + return this.centerPoint.add(new t.Point(0, e2)); + }, To.prototype.getCameraQueryGeometry = function(e2) { + var i2 = this.getCameraPoint(); + if (1 === e2.length) + return [e2[0], i2]; + for (var o2 = i2.x, r2 = i2.y, a2 = i2.x, n2 = i2.y, s2 = 0, l2 = e2; s2 < l2.length; s2 += 1) { + var c3 = l2[s2]; + o2 = Math.min(o2, c3.x), r2 = Math.min(r2, c3.y), a2 = Math.max(a2, c3.x), n2 = Math.max(n2, c3.y); + } + return [new t.Point(o2, r2), new t.Point(a2, r2), new t.Point(a2, n2), new t.Point(o2, n2), new t.Point(o2, r2)]; + }, Object.defineProperties(To.prototype, Eo); + var Io = function(e2) { + var i2, o2, r2, a2; + this._hashName = e2 && encodeURIComponent(e2), t.bindAll(["_getCurrentHash", "_onHashChange", "_updateHash"], this), this._updateHash = (i2 = this._updateHashUnthrottled.bind(this), o2 = false, r2 = null, a2 = function() { + r2 = null, o2 && (i2(), r2 = setTimeout(a2, 300), o2 = false); + }, function() { + return o2 = true, r2 || a2(), r2; + }); + }; + Io.prototype.addTo = function(e2) { + return this._map = e2, t.window.addEventListener("hashchange", this._onHashChange, false), this._map.on("moveend", this._updateHash), this; + }, Io.prototype.remove = function() { + return t.window.removeEventListener("hashchange", this._onHashChange, false), this._map.off("moveend", this._updateHash), clearTimeout(this._updateHash()), delete this._map, this; + }, Io.prototype.getHashString = function(e2) { + var i2 = this._map.getCenter(), o2 = Math.round(100 * this._map.getZoom()) / 100, r2 = Math.ceil((o2 * Math.LN2 + Math.log(512 / 360 / 0.5)) / Math.LN10), a2 = Math.pow(10, r2), n2 = Math.round(i2.lng * a2) / a2, s2 = Math.round(i2.lat * a2) / a2, l2 = this._map.getBearing(), c3 = this._map.getPitch(), u2 = ""; + if (u2 += e2 ? "/" + n2 + "/" + s2 + "/" + o2 : o2 + "/" + s2 + "/" + n2, (l2 || c3) && (u2 += "/" + Math.round(10 * l2) / 10), c3 && (u2 += "/" + Math.round(c3)), this._hashName) { + var h3 = this._hashName, p3 = false, d2 = t.window.location.hash.slice(1).split("&").map(function(t2) { + var e3 = t2.split("=")[0]; + return e3 === h3 ? (p3 = true, e3 + "=" + u2) : t2; + }).filter(function(t2) { + return t2; + }); + return p3 || d2.push(h3 + "=" + u2), "#" + d2.join("&"); + } + return "#" + u2; + }, Io.prototype._getCurrentHash = function() { + var e2, i2 = this, o2 = t.window.location.hash.replace("#", ""); + return this._hashName ? (o2.split("&").map(function(t2) { + return t2.split("="); + }).forEach(function(t2) { + t2[0] === i2._hashName && (e2 = t2); + }), (e2 && e2[1] || "").split("/")) : o2.split("/"); + }, Io.prototype._onHashChange = function() { + var t2 = this._getCurrentHash(); + if (t2.length >= 3 && !t2.some(function(t3) { + return isNaN(t3); + })) { + var e2 = this._map.dragRotate.isEnabled() && this._map.touchZoomRotate.isEnabled() ? +(t2[3] || 0) : this._map.getBearing(); + return this._map.jumpTo({ center: [+t2[2], +t2[1]], zoom: +t2[0], bearing: e2, pitch: +(t2[4] || 0) }), true; } - destroy() { - this.emptyTexture.destroy(), this.debugOverlayTexture && this.debugOverlayTexture.destroy(); + return false; + }, Io.prototype._updateHashUnthrottled = function() { + var e2 = t.window.location.href.replace(/(#.+)?$/, this.getHashString()); + try { + t.window.history.replaceState(t.window.history.state, null, e2); + } catch (t2) { } + }; + var Po = { linearity: 0.3, easing: t.bezier(0, 0, 0.3, 1) }, So = t.extend({ deceleration: 2500, maxSpeed: 1400 }, Po), Co = t.extend({ deceleration: 20, maxSpeed: 1400 }, Po), zo = t.extend({ deceleration: 1e3, maxSpeed: 360 }, Po), Do = t.extend({ deceleration: 1e3, maxSpeed: 90 }, Po), Ao = function(t2) { + this._map = t2, this.clear(); + }; + function Mo(t2, e2) { + (!t2.duration || t2.duration < e2.duration) && (t2.duration = e2.duration, t2.easing = e2.easing); } - class Qi { - constructor(t2, e2) { - this.points = t2, this.planes = e2; - } - static fromInvProjectionMatrix(e2, i2, o2) { - const a2 = Math.pow(2, o2), r2 = [[-1, 1, -1, 1], [1, 1, -1, 1], [1, -1, -1, 1], [-1, -1, -1, 1], [-1, 1, 1, 1], [1, 1, 1, 1], [1, -1, 1, 1], [-1, -1, 1, 1]].map((o3) => { - const r3 = 1 / (o3 = t.transformMat4([], o3, e2))[3] / i2 * a2; - return t.mul$1(o3, o3, [r3, r3, 1 / o3[3], r3]); - }), s2 = [[0, 1, 2], [6, 5, 4], [0, 3, 7], [2, 1, 5], [3, 2, 6], [0, 4, 5]].map((e3) => { - const i3 = t.sub([], r2[e3[0]], r2[e3[1]]), o3 = t.sub([], r2[e3[2]], r2[e3[1]]), a3 = t.normalize([], t.cross([], i3, o3)), s3 = -t.dot(a3, r2[e3[1]]); - return a3.concat(s3); - }); - return new Qi(r2, s2); - } - } - class to { - constructor(e2, i2) { - this.min = e2, this.max = i2, this.center = t.scale$1([], t.add([], this.min, this.max), 0.5); - } - quadrant(e2) { - const i2 = [e2 % 2 == 0, e2 < 2], o2 = t.clone$2(this.min), a2 = t.clone$2(this.max); - for (let t2 = 0; t2 < i2.length; t2++) - o2[t2] = i2[t2] ? this.min[t2] : this.center[t2], a2[t2] = i2[t2] ? this.center[t2] : this.max[t2]; - return a2[2] = this.max[2], new to(o2, a2); - } - distanceX(t2) { - return Math.max(Math.min(this.max[0], t2[0]), this.min[0]) - t2[0]; - } - distanceY(t2) { - return Math.max(Math.min(this.max[1], t2[1]), this.min[1]) - t2[1]; - } - intersects(e2) { - const i2 = [[this.min[0], this.min[1], this.min[2], 1], [this.max[0], this.min[1], this.min[2], 1], [this.max[0], this.max[1], this.min[2], 1], [this.min[0], this.max[1], this.min[2], 1], [this.min[0], this.min[1], this.max[2], 1], [this.max[0], this.min[1], this.max[2], 1], [this.max[0], this.max[1], this.max[2], 1], [this.min[0], this.max[1], this.max[2], 1]]; - let o2 = true; - for (let a2 = 0; a2 < e2.planes.length; a2++) { - const r2 = e2.planes[a2]; - let s2 = 0; - for (let e3 = 0; e3 < i2.length; e3++) - t.dot$1(r2, i2[e3]) >= 0 && s2++; - if (0 === s2) - return 0; - s2 !== i2.length && (o2 = false); + function Lo(e2, i2, o2) { + var r2 = o2.maxSpeed, a2 = o2.linearity, n2 = o2.deceleration, s2 = t.clamp(e2 * a2 / (i2 / 1e3), -r2, r2), l2 = Math.abs(s2) / (n2 * a2); + return { easing: o2.easing, duration: 1e3 * l2, amount: s2 * (l2 / 2) }; + } + Ao.prototype.clear = function() { + this._inertiaBuffer = []; + }, Ao.prototype.record = function(e2) { + this._drainInertiaBuffer(), this._inertiaBuffer.push({ time: t.browser.now(), settings: e2 }); + }, Ao.prototype._drainInertiaBuffer = function() { + for (var e2 = this._inertiaBuffer, i2 = t.browser.now(); e2.length > 0 && i2 - e2[0].time > 160; ) + e2.shift(); + }, Ao.prototype._onMoveEnd = function(e2) { + if (this._drainInertiaBuffer(), !(this._inertiaBuffer.length < 2)) { + for (var i2 = { zoom: 0, bearing: 0, pitch: 0, pan: new t.Point(0, 0), pinchAround: void 0, around: void 0 }, o2 = 0, r2 = this._inertiaBuffer; o2 < r2.length; o2 += 1) { + var a2 = r2[o2].settings; + i2.zoom += a2.zoomDelta || 0, i2.bearing += a2.bearingDelta || 0, i2.pitch += a2.pitchDelta || 0, a2.panDelta && i2.pan._add(a2.panDelta), a2.around && (i2.around = a2.around), a2.pinchAround && (i2.pinchAround = a2.pinchAround); + } + var n2 = this._inertiaBuffer[this._inertiaBuffer.length - 1].time - this._inertiaBuffer[0].time, s2 = {}; + if (i2.pan.mag()) { + var l2 = Lo(i2.pan.mag(), n2, t.extend({}, So, e2 || {})); + s2.offset = i2.pan.mult(l2.amount / i2.pan.mag()), s2.center = this._map.transform.center, Mo(s2, l2); } - if (o2) - return 2; - for (let t2 = 0; t2 < 3; t2++) { - let i3 = Number.MAX_VALUE, o3 = -Number.MAX_VALUE; - for (let a2 = 0; a2 < e2.points.length; a2++) { - const r2 = e2.points[a2][t2] - this.min[t2]; - i3 = Math.min(i3, r2), o3 = Math.max(o3, r2); - } - if (o3 < 0 || i3 > this.max[t2] - this.min[t2]) - return 0; + if (i2.zoom) { + var c3 = Lo(i2.zoom, n2, Co); + s2.zoom = this._map.transform.zoom + c3.amount, Mo(s2, c3); } - return 1; - } - } - class eo { - constructor(t2 = 0, e2 = 0, i2 = 0, o2 = 0) { - if (isNaN(t2) || t2 < 0 || isNaN(e2) || e2 < 0 || isNaN(i2) || i2 < 0 || isNaN(o2) || o2 < 0) - throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers"); - this.top = t2, this.bottom = e2, this.left = i2, this.right = o2; - } - interpolate(e2, i2, o2) { - return null != i2.top && null != e2.top && (this.top = t.number(e2.top, i2.top, o2)), null != i2.bottom && null != e2.bottom && (this.bottom = t.number(e2.bottom, i2.bottom, o2)), null != i2.left && null != e2.left && (this.left = t.number(e2.left, i2.left, o2)), null != i2.right && null != e2.right && (this.right = t.number(e2.right, i2.right, o2)), this; - } - getCenter(e2, i2) { - const o2 = t.clamp((this.left + e2 - this.right) / 2, 0, e2), a2 = t.clamp((this.top + i2 - this.bottom) / 2, 0, i2); - return new t.pointGeometry(o2, a2); - } - equals(t2) { - return this.top === t2.top && this.bottom === t2.bottom && this.left === t2.left && this.right === t2.right; - } - clone() { - return new eo(this.top, this.bottom, this.left, this.right); - } - toJSON() { - return { top: this.top, bottom: this.bottom, left: this.left, right: this.right }; + if (i2.bearing) { + var u2 = Lo(i2.bearing, n2, zo); + s2.bearing = this._map.transform.bearing + t.clamp(u2.amount, -179, 179), Mo(s2, u2); + } + if (i2.pitch) { + var h3 = Lo(i2.pitch, n2, Do); + s2.pitch = this._map.transform.pitch + h3.amount, Mo(s2, h3); + } + if (s2.zoom || s2.bearing) { + var p3 = void 0 === i2.pinchAround ? i2.around : i2.pinchAround; + s2.around = p3 ? this._map.unproject(p3) : this._map.getCenter(); + } + return this.clear(), t.extend(s2, { noMoveStart: true }); } + }; + var Ro = function(e2) { + function o2(o3, r3, a2, n2) { + void 0 === n2 && (n2 = {}); + var s2 = i.mousePos(r3.getCanvasContainer(), a2), l2 = r3.unproject(s2); + e2.call(this, o3, t.extend({ point: s2, lngLat: l2, originalEvent: a2 }, n2)), this._defaultPrevented = false, this.target = r3; + } + e2 && (o2.__proto__ = e2), (o2.prototype = Object.create(e2 && e2.prototype)).constructor = o2; + var r2 = { defaultPrevented: { configurable: true } }; + return o2.prototype.preventDefault = function() { + this._defaultPrevented = true; + }, r2.defaultPrevented.get = function() { + return this._defaultPrevented; + }, Object.defineProperties(o2.prototype, r2), o2; + }(t.Event), ko = function(e2) { + function o2(o3, r3, a2) { + var n2 = "touchend" === o3 ? a2.changedTouches : a2.touches, s2 = i.touchPos(r3.getCanvasContainer(), n2), l2 = s2.map(function(t2) { + return r3.unproject(t2); + }), c3 = s2.reduce(function(t2, e3, i2, o4) { + return t2.add(e3.div(o4.length)); + }, new t.Point(0, 0)), u2 = r3.unproject(c3); + e2.call(this, o3, { points: s2, point: c3, lngLats: l2, lngLat: u2, originalEvent: a2 }), this._defaultPrevented = false; + } + e2 && (o2.__proto__ = e2), (o2.prototype = Object.create(e2 && e2.prototype)).constructor = o2; + var r2 = { defaultPrevented: { configurable: true } }; + return o2.prototype.preventDefault = function() { + this._defaultPrevented = true; + }, r2.defaultPrevented.get = function() { + return this._defaultPrevented; + }, Object.defineProperties(o2.prototype, r2), o2; + }(t.Event), Bo = function(t2) { + function e2(e3, i3, o2) { + t2.call(this, e3, { originalEvent: o2 }), this._defaultPrevented = false; + } + t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2; + var i2 = { defaultPrevented: { configurable: true } }; + return e2.prototype.preventDefault = function() { + this._defaultPrevented = true; + }, i2.defaultPrevented.get = function() { + return this._defaultPrevented; + }, Object.defineProperties(e2.prototype, i2), e2; + }(t.Event), Oo = function(t2, e2) { + this._map = t2, this._clickTolerance = e2.clickTolerance; + }; + Oo.prototype.reset = function() { + delete this._mousedownPos; + }, Oo.prototype.wheel = function(t2) { + return this._firePreventable(new Bo(t2.type, this._map, t2)); + }, Oo.prototype.mousedown = function(t2, e2) { + return this._mousedownPos = e2, this._firePreventable(new Ro(t2.type, this._map, t2)); + }, Oo.prototype.mouseup = function(t2) { + this._map.fire(new Ro(t2.type, this._map, t2)); + }, Oo.prototype.click = function(t2, e2) { + this._mousedownPos && this._mousedownPos.dist(e2) >= this._clickTolerance || this._map.fire(new Ro(t2.type, this._map, t2)); + }, Oo.prototype.dblclick = function(t2) { + return this._firePreventable(new Ro(t2.type, this._map, t2)); + }, Oo.prototype.mouseover = function(t2) { + this._map.fire(new Ro(t2.type, this._map, t2)); + }, Oo.prototype.mouseout = function(t2) { + this._map.fire(new Ro(t2.type, this._map, t2)); + }, Oo.prototype.touchstart = function(t2) { + return this._firePreventable(new ko(t2.type, this._map, t2)); + }, Oo.prototype.touchmove = function(t2) { + this._map.fire(new ko(t2.type, this._map, t2)); + }, Oo.prototype.touchend = function(t2) { + this._map.fire(new ko(t2.type, this._map, t2)); + }, Oo.prototype.touchcancel = function(t2) { + this._map.fire(new ko(t2.type, this._map, t2)); + }, Oo.prototype._firePreventable = function(t2) { + if (this._map.fire(t2), t2.defaultPrevented) + return {}; + }, Oo.prototype.isEnabled = function() { + return true; + }, Oo.prototype.isActive = function() { + return false; + }, Oo.prototype.enable = function() { + }, Oo.prototype.disable = function() { + }; + var Fo = function(t2) { + this._map = t2; + }; + Fo.prototype.reset = function() { + this._delayContextMenu = false, delete this._contextMenuEvent; + }, Fo.prototype.mousemove = function(t2) { + this._map.fire(new Ro(t2.type, this._map, t2)); + }, Fo.prototype.mousedown = function() { + this._delayContextMenu = true; + }, Fo.prototype.mouseup = function() { + this._delayContextMenu = false, this._contextMenuEvent && (this._map.fire(new Ro("contextmenu", this._map, this._contextMenuEvent)), delete this._contextMenuEvent); + }, Fo.prototype.contextmenu = function(t2) { + this._delayContextMenu ? this._contextMenuEvent = t2 : this._map.fire(new Ro(t2.type, this._map, t2)), this._map.listens("contextmenu") && t2.preventDefault(); + }, Fo.prototype.isEnabled = function() { + return true; + }, Fo.prototype.isActive = function() { + return false; + }, Fo.prototype.enable = function() { + }, Fo.prototype.disable = function() { + }; + var Uo = function(t2, e2) { + this._map = t2, this._el = t2.getCanvasContainer(), this._container = t2.getContainer(), this._clickTolerance = e2.clickTolerance || 1; + }; + function No(t2, e2) { + for (var i2 = {}, o2 = 0; o2 < t2.length; o2++) + i2[t2[o2].identifier] = e2[o2]; + return i2; } - class io { - constructor(e2, i2, o2, a2, r2) { - this.tileSize = 512, this.maxValidLatitude = 85.051129, this.freezeElevation = false, this._renderWorldCopies = void 0 === r2 || !!r2, this._minZoom = e2 || 0, this._maxZoom = i2 || 22, this._minPitch = null == o2 ? 0 : o2, this._maxPitch = null == a2 ? 60 : a2, this.setMaxBounds(), this.width = 0, this.height = 0, this._center = new t.LngLat(0, 0), this._elevation = 0, this.zoom = 0, this.angle = 0, this._fov = 0.6435011087932844, this._pitch = 0, this._unmodified = true, this._edgeInsets = new eo(), this._posMatrixCache = {}, this._alignedPosMatrixCache = {}; - } - clone() { - const t2 = new io(this._minZoom, this._maxZoom, this._minPitch, this.maxPitch, this._renderWorldCopies); - return t2.tileSize = this.tileSize, t2.latRange = this.latRange, t2.width = this.width, t2.height = this.height, t2._center = this._center, t2._elevation = this._elevation, t2.zoom = this.zoom, t2.angle = this.angle, t2._fov = this._fov, t2._pitch = this._pitch, t2._unmodified = this._unmodified, t2._edgeInsets = this._edgeInsets.clone(), t2._calcMatrices(), t2; - } - get minZoom() { - return this._minZoom; - } - set minZoom(t2) { - this._minZoom !== t2 && (this._minZoom = t2, this.zoom = Math.max(this.zoom, t2)); - } - get maxZoom() { - return this._maxZoom; + Uo.prototype.isEnabled = function() { + return !!this._enabled; + }, Uo.prototype.isActive = function() { + return !!this._active; + }, Uo.prototype.enable = function() { + this.isEnabled() || (this._enabled = true); + }, Uo.prototype.disable = function() { + this.isEnabled() && (this._enabled = false); + }, Uo.prototype.mousedown = function(t2, e2) { + this.isEnabled() && t2.shiftKey && 0 === t2.button && (i.disableDrag(), this._startPos = this._lastPos = e2, this._active = true); + }, Uo.prototype.mousemoveWindow = function(t2, e2) { + if (this._active) { + var o2 = e2; + if (!(this._lastPos.equals(o2) || !this._box && o2.dist(this._startPos) < this._clickTolerance)) { + var r2 = this._startPos; + this._lastPos = o2, this._box || (this._box = i.create("div", "mapboxgl-boxzoom", this._container), this._container.classList.add("mapboxgl-crosshair"), this._fireEvent("boxzoomstart", t2)); + var a2 = Math.min(r2.x, o2.x), n2 = Math.max(r2.x, o2.x), s2 = Math.min(r2.y, o2.y), l2 = Math.max(r2.y, o2.y); + i.setTransform(this._box, "translate(" + a2 + "px," + s2 + "px)"), this._box.style.width = n2 - a2 + "px", this._box.style.height = l2 - s2 + "px"; + } + } + }, Uo.prototype.mouseupWindow = function(e2, o2) { + var r2 = this; + if (this._active && 0 === e2.button) { + var a2 = this._startPos, n2 = o2; + if (this.reset(), i.suppressClick(), a2.x !== n2.x || a2.y !== n2.y) + return this._map.fire(new t.Event("boxzoomend", { originalEvent: e2 })), { cameraAnimation: function(t2) { + return t2.fitScreenCoordinates(a2, n2, r2._map.getBearing(), { linear: true }); + } }; + this._fireEvent("boxzoomcancel", e2); } - set maxZoom(t2) { - this._maxZoom !== t2 && (this._maxZoom = t2, this.zoom = Math.min(this.zoom, t2)); + }, Uo.prototype.keydown = function(t2) { + this._active && 27 === t2.keyCode && (this.reset(), this._fireEvent("boxzoomcancel", t2)); + }, Uo.prototype.blur = function() { + this.reset(); + }, Uo.prototype.reset = function() { + this._active = false, this._container.classList.remove("mapboxgl-crosshair"), this._box && (i.remove(this._box), this._box = null), i.enableDrag(), delete this._startPos, delete this._lastPos; + }, Uo.prototype._fireEvent = function(e2, i2) { + return this._map.fire(new t.Event(e2, { originalEvent: i2 })); + }; + var Zo = function(t2) { + this.reset(), this.numTouches = t2.numTouches; + }; + Zo.prototype.reset = function() { + delete this.centroid, delete this.startTime, delete this.touches, this.aborted = false; + }, Zo.prototype.touchstart = function(e2, i2, o2) { + (this.centroid || o2.length > this.numTouches) && (this.aborted = true), this.aborted || (void 0 === this.startTime && (this.startTime = e2.timeStamp), o2.length === this.numTouches && (this.centroid = function(e3) { + for (var i3 = new t.Point(0, 0), o3 = 0, r2 = e3; o3 < r2.length; o3 += 1) + i3._add(r2[o3]); + return i3.div(e3.length); + }(i2), this.touches = No(o2, i2))); + }, Zo.prototype.touchmove = function(t2, e2, i2) { + if (!this.aborted && this.centroid) { + var o2 = No(i2, e2); + for (var r2 in this.touches) { + var a2 = o2[r2]; + (!a2 || a2.dist(this.touches[r2]) > 30) && (this.aborted = true); + } + } + }, Zo.prototype.touchend = function(t2, e2, i2) { + if ((!this.centroid || t2.timeStamp - this.startTime > 500) && (this.aborted = true), 0 === i2.length) { + var o2 = !this.aborted && this.centroid; + if (this.reset(), o2) + return o2; } - get minPitch() { - return this._minPitch; + }; + var qo = function(t2) { + this.singleTap = new Zo(t2), this.numTaps = t2.numTaps, this.reset(); + }; + qo.prototype.reset = function() { + this.lastTime = 1 / 0, delete this.lastTap, this.count = 0, this.singleTap.reset(); + }, qo.prototype.touchstart = function(t2, e2, i2) { + this.singleTap.touchstart(t2, e2, i2); + }, qo.prototype.touchmove = function(t2, e2, i2) { + this.singleTap.touchmove(t2, e2, i2); + }, qo.prototype.touchend = function(t2, e2, i2) { + var o2 = this.singleTap.touchend(t2, e2, i2); + if (o2) { + var r2 = t2.timeStamp - this.lastTime < 500, a2 = !this.lastTap || this.lastTap.dist(o2) < 30; + if (r2 && a2 || this.reset(), this.count++, this.lastTime = t2.timeStamp, this.lastTap = o2, this.count === this.numTaps) + return this.reset(), o2; } - set minPitch(t2) { - this._minPitch !== t2 && (this._minPitch = t2, this.pitch = Math.max(this.pitch, t2)); + }; + var jo = function() { + this._zoomIn = new qo({ numTouches: 1, numTaps: 2 }), this._zoomOut = new qo({ numTouches: 2, numTaps: 1 }), this.reset(); + }; + jo.prototype.reset = function() { + this._active = false, this._zoomIn.reset(), this._zoomOut.reset(); + }, jo.prototype.touchstart = function(t2, e2, i2) { + this._zoomIn.touchstart(t2, e2, i2), this._zoomOut.touchstart(t2, e2, i2); + }, jo.prototype.touchmove = function(t2, e2, i2) { + this._zoomIn.touchmove(t2, e2, i2), this._zoomOut.touchmove(t2, e2, i2); + }, jo.prototype.touchend = function(t2, e2, i2) { + var o2 = this, r2 = this._zoomIn.touchend(t2, e2, i2), a2 = this._zoomOut.touchend(t2, e2, i2); + return r2 ? (this._active = true, t2.preventDefault(), setTimeout(function() { + return o2.reset(); + }, 0), { cameraAnimation: function(e3) { + return e3.easeTo({ duration: 300, zoom: e3.getZoom() + 1, around: e3.unproject(r2) }, { originalEvent: t2 }); + } }) : a2 ? (this._active = true, t2.preventDefault(), setTimeout(function() { + return o2.reset(); + }, 0), { cameraAnimation: function(e3) { + return e3.easeTo({ duration: 300, zoom: e3.getZoom() - 1, around: e3.unproject(a2) }, { originalEvent: t2 }); + } }) : void 0; + }, jo.prototype.touchcancel = function() { + this.reset(); + }, jo.prototype.enable = function() { + this._enabled = true; + }, jo.prototype.disable = function() { + this._enabled = false, this.reset(); + }, jo.prototype.isEnabled = function() { + return this._enabled; + }, jo.prototype.isActive = function() { + return this._active; + }; + var Vo = { 0: 1, 2: 2 }, Go = function(t2) { + this.reset(), this._clickTolerance = t2.clickTolerance || 1; + }; + Go.prototype.blur = function() { + this.reset(); + }, Go.prototype.reset = function() { + this._active = false, this._moved = false, delete this._lastPoint, delete this._eventButton; + }, Go.prototype._correctButton = function(t2, e2) { + return false; + }, Go.prototype._move = function(t2, e2) { + return {}; + }, Go.prototype.mousedown = function(t2, e2) { + if (!this._lastPoint) { + var o2 = i.mouseButton(t2); + this._correctButton(t2, o2) && (this._lastPoint = e2, this._eventButton = o2); } - get maxPitch() { - return this._maxPitch; - } - set maxPitch(t2) { - this._maxPitch !== t2 && (this._maxPitch = t2, this.pitch = Math.min(this.pitch, t2)); - } - get renderWorldCopies() { - return this._renderWorldCopies; - } - set renderWorldCopies(t2) { - void 0 === t2 ? t2 = true : null === t2 && (t2 = false), this._renderWorldCopies = t2; - } - get worldSize() { - return this.tileSize * this.scale; - } - get centerOffset() { - return this.centerPoint._sub(this.size._div(2)); - } - get size() { - return new t.pointGeometry(this.width, this.height); - } - get bearing() { - return -this.angle / Math.PI * 180; - } - set bearing(e2) { - const i2 = -t.wrap(e2, -180, 180) * Math.PI / 180; - var o2; - this.angle !== i2 && (this._unmodified = false, this.angle = i2, this._calcMatrices(), this.rotationMatrix = (o2 = new t.ARRAY_TYPE(4), t.ARRAY_TYPE != Float32Array && (o2[1] = 0, o2[2] = 0), o2[0] = 1, o2[3] = 1, o2), function(t2, e3, i3) { - var o3 = e3[0], a2 = e3[1], r2 = e3[2], s2 = e3[3], n2 = Math.sin(i3), l2 = Math.cos(i3); - t2[0] = o3 * l2 + r2 * n2, t2[1] = a2 * l2 + s2 * n2, t2[2] = o3 * -n2 + r2 * l2, t2[3] = a2 * -n2 + s2 * l2; - }(this.rotationMatrix, this.rotationMatrix, this.angle)); - } - get pitch() { - return this._pitch / Math.PI * 180; - } - set pitch(e2) { - const i2 = t.clamp(e2, this.minPitch, this.maxPitch) / 180 * Math.PI; - this._pitch !== i2 && (this._unmodified = false, this._pitch = i2, this._calcMatrices()); - } - get fov() { - return this._fov / Math.PI * 180; - } - set fov(t2) { - t2 = Math.max(0.01, Math.min(60, t2)), this._fov !== t2 && (this._unmodified = false, this._fov = t2 / 180 * Math.PI, this._calcMatrices()); - } - get zoom() { - return this._zoom; - } - set zoom(t2) { - const e2 = Math.min(Math.max(t2, this.minZoom), this.maxZoom); - this._zoom !== e2 && (this._unmodified = false, this._zoom = e2, this.scale = this.zoomScale(e2), this.tileZoom = Math.floor(e2), this.zoomFraction = e2 - this.tileZoom, this._constrain(), this._calcMatrices()); - } - get center() { - return this._center; - } - set center(t2) { - t2.lat === this._center.lat && t2.lng === this._center.lng || (this._unmodified = false, this._center = t2, this._constrain(), this._calcMatrices()); - } - get elevation() { - return this._elevation; - } - set elevation(t2) { - t2 !== this._elevation && (this._elevation = t2, this._constrain(), this._calcMatrices()); - } - get padding() { - return this._edgeInsets.toJSON(); - } - set padding(t2) { - this._edgeInsets.equals(t2) || (this._unmodified = false, this._edgeInsets.interpolate(this._edgeInsets, t2, 1), this._calcMatrices()); - } - get centerPoint() { - return this._edgeInsets.getCenter(this.width, this.height); - } - isPaddingEqual(t2) { - return this._edgeInsets.equals(t2); - } - interpolatePadding(t2, e2, i2) { - this._unmodified = false, this._edgeInsets.interpolate(t2, e2, i2), this._constrain(), this._calcMatrices(); - } - coveringZoomLevel(t2) { - const e2 = (t2.roundZoom ? Math.round : Math.floor)(this.zoom + this.scaleZoom(this.tileSize / t2.tileSize)); - return Math.max(0, e2); - } - getVisibleUnwrappedCoordinates(e2) { - const i2 = [new t.UnwrappedTileID(0, e2)]; - if (this._renderWorldCopies) { - const o2 = this.pointCoordinate(new t.pointGeometry(0, 0)), a2 = this.pointCoordinate(new t.pointGeometry(this.width, 0)), r2 = this.pointCoordinate(new t.pointGeometry(this.width, this.height)), s2 = this.pointCoordinate(new t.pointGeometry(0, this.height)), n2 = Math.floor(Math.min(o2.x, a2.x, r2.x, s2.x)), l2 = Math.floor(Math.max(o2.x, a2.x, r2.x, s2.x)), c3 = 1; - for (let o3 = n2 - c3; o3 <= l2 + c3; o3++) - 0 !== o3 && i2.push(new t.UnwrappedTileID(o3, e2)); - } - return i2; - } - coveringTiles(e2) { - var i2, o2; - let a2 = this.coveringZoomLevel(e2); - const r2 = a2; - if (void 0 !== e2.minzoom && a2 < e2.minzoom) - return []; - void 0 !== e2.maxzoom && a2 > e2.maxzoom && (a2 = e2.maxzoom); - const s2 = this.pointCoordinate(this.getCameraPoint()), n2 = t.MercatorCoordinate.fromLngLat(this.center), l2 = Math.pow(2, a2), c3 = [l2 * s2.x, l2 * s2.y, 0], h3 = [l2 * n2.x, l2 * n2.y, 0], u2 = Qi.fromInvProjectionMatrix(this.invProjMatrix, this.worldSize, a2); - let d2 = e2.minzoom || 0; - !e2.terrain && this.pitch <= 60 && this._edgeInsets.top < 0.1 && (d2 = a2); - const m2 = e2.terrain ? 2 / Math.min(this.tileSize, e2.tileSize) * this.tileSize : 3, _2 = (t2) => ({ aabb: new to([t2 * l2, 0, 0], [(t2 + 1) * l2, l2, 0]), zoom: 0, x: 0, y: 0, wrap: t2, fullyVisible: false }), p3 = [], f2 = [], g2 = a2, x2 = e2.reparseOverscaled ? r2 : a2; - if (this._renderWorldCopies) - for (let t2 = 1; t2 <= 3; t2++) - p3.push(_2(-t2)), p3.push(_2(t2)); - for (p3.push(_2(0)); p3.length > 0; ) { - const a3 = p3.pop(), r3 = a3.x, s3 = a3.y; - let n3 = a3.fullyVisible; - if (!n3) { - const t2 = a3.aabb.intersects(u2); - if (0 === t2) - continue; - n3 = 2 === t2; - } - const l3 = e2.terrain ? c3 : h3, _3 = a3.aabb.distanceX(l3), v3 = a3.aabb.distanceY(l3), y3 = Math.max(Math.abs(_3), Math.abs(v3)), b2 = m2 + (1 << g2 - a3.zoom) - 2; - if (a3.zoom === g2 || y3 > b2 && a3.zoom >= d2) { - const e3 = g2 - a3.zoom, i3 = c3[0] - 0.5 - (r3 << e3), o3 = c3[1] - 0.5 - (s3 << e3); - f2.push({ tileID: new t.OverscaledTileID(a3.zoom === g2 ? x2 : a3.zoom, a3.wrap, a3.zoom, r3, s3), distanceSq: t.sqrLen([h3[0] - 0.5 - r3, h3[1] - 0.5 - s3]), tileDistanceToCamera: Math.sqrt(i3 * i3 + o3 * o3) }); - } else - for (let l4 = 0; l4 < 4; l4++) { - const c4 = (r3 << 1) + l4 % 2, h4 = (s3 << 1) + (l4 >> 1), u3 = a3.zoom + 1; - let d3 = a3.aabb.quadrant(l4); - if (e2.terrain) { - const r4 = new t.OverscaledTileID(u3, a3.wrap, u3, c4, h4), s4 = e2.terrain.getMinMaxElevation(r4), n4 = null !== (i2 = s4.minElevation) && void 0 !== i2 ? i2 : this.elevation, l5 = null !== (o2 = s4.maxElevation) && void 0 !== o2 ? o2 : this.elevation; - d3 = new to([d3.min[0], d3.min[1], n4], [d3.max[0], d3.max[1], l5]); - } - p3.push({ aabb: d3, zoom: u3, x: c4, y: h4, wrap: a3.wrap, fullyVisible: n3 }); - } - } - return f2.sort((t2, e3) => t2.distanceSq - e3.distanceSq).map((t2) => t2.tileID); - } - resize(t2, e2) { - this.width = t2, this.height = e2, this.pixelsToGLUnits = [2 / t2, -2 / e2], this._constrain(), this._calcMatrices(); - } - get unmodified() { - return this._unmodified; - } - zoomScale(t2) { - return Math.pow(2, t2); - } - scaleZoom(t2) { - return Math.log(t2) / Math.LN2; - } - project(e2) { - const i2 = t.clamp(e2.lat, -this.maxValidLatitude, this.maxValidLatitude); - return new t.pointGeometry(t.mercatorXfromLng(e2.lng) * this.worldSize, t.mercatorYfromLat(i2) * this.worldSize); - } - unproject(e2) { - return new t.MercatorCoordinate(e2.x / this.worldSize, e2.y / this.worldSize).toLngLat(); - } - get point() { - return this.project(this.center); - } - updateElevation(t2) { - this.freezeElevation || (this.elevation = t2 ? this.getElevation(this._center, t2) : 0); - } - getElevation(e2, i2) { - const o2 = t.MercatorCoordinate.fromLngLat(e2), a2 = (1 << this.tileZoom) * t.EXTENT, r2 = o2.x * a2, s2 = o2.y * a2, n2 = Math.floor(r2 / t.EXTENT), l2 = Math.floor(s2 / t.EXTENT), c3 = new t.OverscaledTileID(this.tileZoom, 0, this.tileZoom, n2, l2); - return i2.getElevation(c3, r2 % t.EXTENT, s2 % t.EXTENT, t.EXTENT); - } - getCameraPosition() { - return { lngLat: this.pointLocation(this.getCameraPoint()), altitude: Math.cos(this._pitch) * this.cameraToCenterDistance / this._pixelPerMeter + this.elevation }; - } - recalculateZoom(e2) { - const i2 = this.pointLocation(this.centerPoint, e2), o2 = this.getElevation(i2, e2); - if (!(this.elevation - o2)) - return; - const a2 = this.getCameraPosition(), r2 = t.MercatorCoordinate.fromLngLat(a2.lngLat, a2.altitude), s2 = t.MercatorCoordinate.fromLngLat(i2, o2), n2 = r2.x - s2.x, l2 = r2.y - s2.y, c3 = r2.z - s2.z, h3 = Math.sqrt(n2 * n2 + l2 * l2 + c3 * c3), u2 = this.scaleZoom(this.cameraToCenterDistance / h3 / this.tileSize); - this._elevation = o2, this._center = i2, this.zoom = u2; - } - setLocationAtPoint(e2, i2) { - const o2 = this.pointCoordinate(i2), a2 = this.pointCoordinate(this.centerPoint), r2 = this.locationCoordinate(e2), s2 = new t.MercatorCoordinate(r2.x - (o2.x - a2.x), r2.y - (o2.y - a2.y)); - this.center = this.coordinateLocation(s2), this._renderWorldCopies && (this.center = this.center.wrap()); - } - locationPoint(t2, e2) { - return e2 ? this.coordinatePoint(this.locationCoordinate(t2), this.getElevation(t2, e2), this.pixelMatrix3D) : this.coordinatePoint(this.locationCoordinate(t2)); - } - pointLocation(t2, e2) { - return this.coordinateLocation(this.pointCoordinate(t2, e2)); - } - locationCoordinate(e2) { - return t.MercatorCoordinate.fromLngLat(e2); - } - coordinateLocation(t2) { - return t2 && t2.toLngLat(); - } - pointCoordinate(e2, i2) { - if (i2) { - const t2 = i2.pointCoordinate(e2); - if (null != t2) - return t2; - } - const o2 = [e2.x, e2.y, 0, 1], a2 = [e2.x, e2.y, 1, 1]; - t.transformMat4(o2, o2, this.pixelMatrixInverse), t.transformMat4(a2, a2, this.pixelMatrixInverse); - const r2 = o2[3], s2 = a2[3], n2 = o2[1] / r2, l2 = a2[1] / s2, c3 = o2[2] / r2, h3 = a2[2] / s2, u2 = c3 === h3 ? 0 : (0 - c3) / (h3 - c3); - return new t.MercatorCoordinate(t.number(o2[0] / r2, a2[0] / s2, u2) / this.worldSize, t.number(n2, l2, u2) / this.worldSize); - } - coordinatePoint(e2, i2 = 0, o2 = this.pixelMatrix) { - const a2 = [e2.x * this.worldSize, e2.y * this.worldSize, i2, 1]; - return t.transformMat4(a2, a2, o2), new t.pointGeometry(a2[0] / a2[3], a2[1] / a2[3]); - } - getBounds() { - const e2 = Math.max(0, this.height / 2 - this.getHorizon()); - return new t.LngLatBounds().extend(this.pointLocation(new t.pointGeometry(0, e2))).extend(this.pointLocation(new t.pointGeometry(this.width, e2))).extend(this.pointLocation(new t.pointGeometry(this.width, this.height))).extend(this.pointLocation(new t.pointGeometry(0, this.height))); - } - getMaxBounds() { - return this.latRange && 2 === this.latRange.length && this.lngRange && 2 === this.lngRange.length ? new t.LngLatBounds([this.lngRange[0], this.latRange[0]], [this.lngRange[1], this.latRange[1]]) : null; - } - getHorizon() { - return Math.tan(Math.PI / 2 - this._pitch) * this.cameraToCenterDistance * 0.85; - } - setMaxBounds(t2) { - t2 ? (this.lngRange = [t2.getWest(), t2.getEast()], this.latRange = [t2.getSouth(), t2.getNorth()], this._constrain()) : (this.lngRange = null, this.latRange = [-this.maxValidLatitude, this.maxValidLatitude]); - } - calculatePosMatrix(e2, i2 = false) { - const o2 = e2.key, a2 = i2 ? this._alignedPosMatrixCache : this._posMatrixCache; - if (a2[o2]) - return a2[o2]; - const r2 = e2.canonical, s2 = this.worldSize / this.zoomScale(r2.z), n2 = r2.x + Math.pow(2, r2.z) * e2.wrap, l2 = t.identity(new Float64Array(16)); - return t.translate(l2, l2, [n2 * s2, r2.y * s2, 0]), t.scale(l2, l2, [s2 / t.EXTENT, s2 / t.EXTENT, 1]), t.multiply(l2, i2 ? this.alignedProjMatrix : this.projMatrix, l2), a2[o2] = new Float32Array(l2), a2[o2]; - } - customLayerMatrix() { - return this.mercatorMatrix.slice(); - } - _constrain() { - if (!this.center || !this.width || !this.height || this._constraining) - return; - this._constraining = true; - let e2, i2, o2, a2, r2 = -90, s2 = 90, n2 = -180, l2 = 180; - const c3 = this.size, h3 = this._unmodified; - if (this.latRange) { - const i3 = this.latRange; - r2 = t.mercatorYfromLat(i3[1]) * this.worldSize, s2 = t.mercatorYfromLat(i3[0]) * this.worldSize, e2 = s2 - r2 < c3.y ? c3.y / (s2 - r2) : 0; - } - if (this.lngRange) { - const e3 = this.lngRange; - n2 = t.wrap(t.mercatorXfromLng(e3[0]) * this.worldSize, 0, this.worldSize), l2 = t.wrap(t.mercatorXfromLng(e3[1]) * this.worldSize, 0, this.worldSize), l2 < n2 && (l2 += this.worldSize), i2 = l2 - n2 < c3.x ? c3.x / (l2 - n2) : 0; - } - const u2 = this.point, d2 = Math.max(i2 || 0, e2 || 0); - if (d2) - return this.center = this.unproject(new t.pointGeometry(i2 ? (l2 + n2) / 2 : u2.x, e2 ? (s2 + r2) / 2 : u2.y)), this.zoom += this.scaleZoom(d2), this._unmodified = h3, void (this._constraining = false); - if (this.latRange) { - const t2 = u2.y, e3 = c3.y / 2; - t2 - e3 < r2 && (a2 = r2 + e3), t2 + e3 > s2 && (a2 = s2 - e3); - } - if (this.lngRange) { - const e3 = (n2 + l2) / 2, i3 = t.wrap(u2.x, e3 - this.worldSize / 2, e3 + this.worldSize / 2), a3 = c3.x / 2; - i3 - a3 < n2 && (o2 = n2 + a3), i3 + a3 > l2 && (o2 = l2 - a3); - } - void 0 === o2 && void 0 === a2 || (this.center = this.unproject(new t.pointGeometry(void 0 !== o2 ? o2 : u2.x, void 0 !== a2 ? a2 : u2.y)).wrap()), this._unmodified = h3, this._constraining = false; - } - _calcMatrices() { - if (!this.height) - return; - const e2 = this.centerOffset, i2 = this.point.x, o2 = this.point.y; - this.cameraToCenterDistance = 0.5 / Math.tan(this._fov / 2) * this.height, this._pixelPerMeter = t.mercatorZfromAltitude(1, this.center.lat) * this.worldSize; - let a2 = t.identity(new Float64Array(16)); - t.scale(a2, a2, [this.width / 2, -this.height / 2, 1]), t.translate(a2, a2, [1, -1, 0]), this.labelPlaneMatrix = a2, a2 = t.identity(new Float64Array(16)), t.scale(a2, a2, [1, -1, 1]), t.translate(a2, a2, [-1, -1, 0]), t.scale(a2, a2, [2 / this.width, 2 / this.height, 1]), this.glCoordMatrix = a2, this.cameraToSeaLevelDistance = this.cameraToCenterDistance + this._elevation * this._pixelPerMeter / Math.cos(this._pitch); - const r2 = Math.PI / 2 + this._pitch, s2 = this._fov * (0.5 + e2.y / this.height), n2 = Math.sin(s2) * this.cameraToSeaLevelDistance / Math.sin(t.clamp(Math.PI - r2 - s2, 0.01, Math.PI - 0.01)), l2 = this.getHorizon(), c3 = 2 * Math.atan(l2 / this.cameraToCenterDistance) * (0.5 + e2.y / (2 * l2)), h3 = Math.sin(c3) * this.cameraToSeaLevelDistance / Math.sin(t.clamp(Math.PI - r2 - c3, 0.01, Math.PI - 0.01)), u2 = Math.cos(Math.PI / 2 - this._pitch) * n2 + this.cameraToSeaLevelDistance, d2 = Math.cos(Math.PI / 2 - this._pitch) * h3 + this.cameraToSeaLevelDistance, m2 = 1.01 * Math.min(u2, d2), _2 = this.height / 50; - a2 = new Float64Array(16), t.perspective(a2, this._fov, this.width / this.height, _2, m2), a2[8] = 2 * -e2.x / this.width, a2[9] = 2 * e2.y / this.height, t.scale(a2, a2, [1, -1, 1]), t.translate(a2, a2, [0, 0, -this.cameraToCenterDistance]), t.rotateX(a2, a2, this._pitch), t.rotateZ(a2, a2, this.angle), t.translate(a2, a2, [-i2, -o2, 0]), this.mercatorMatrix = t.scale([], a2, [this.worldSize, this.worldSize, this.worldSize]), t.scale(a2, a2, [1, 1, this._pixelPerMeter]), this.pixelMatrix = t.multiply(new Float64Array(16), this.labelPlaneMatrix, a2), t.translate(a2, a2, [0, 0, -this.elevation]), this.projMatrix = a2, this.invProjMatrix = t.invert([], a2), this.pixelMatrix3D = t.multiply(new Float64Array(16), this.labelPlaneMatrix, a2); - const p3 = this.width % 2 / 2, f2 = this.height % 2 / 2, g2 = Math.cos(this.angle), x2 = Math.sin(this.angle), v3 = i2 - Math.round(i2) + g2 * p3 + x2 * f2, y3 = o2 - Math.round(o2) + g2 * f2 + x2 * p3, b2 = new Float64Array(a2); - if (t.translate(b2, b2, [v3 > 0.5 ? v3 - 1 : v3, y3 > 0.5 ? y3 - 1 : y3, 0]), this.alignedProjMatrix = b2, a2 = t.invert(new Float64Array(16), this.pixelMatrix), !a2) - throw new Error("failed to invert matrix"); - this.pixelMatrixInverse = a2, this._posMatrixCache = {}, this._alignedPosMatrixCache = {}; - } - maxPitchScaleFactor() { - if (!this.pixelMatrixInverse) - return 1; - const e2 = this.pointCoordinate(new t.pointGeometry(0, 0)), i2 = [e2.x * this.worldSize, e2.y * this.worldSize, 0, 1]; - return t.transformMat4(i2, i2, this.pixelMatrix)[3] / this.cameraToCenterDistance; - } - getCameraPoint() { - const e2 = Math.tan(this._pitch) * (this.cameraToCenterDistance || 1); - return this.centerPoint.add(new t.pointGeometry(0, e2)); - } - getCameraQueryGeometry(e2) { - const i2 = this.getCameraPoint(); - if (1 === e2.length) - return [e2[0], i2]; - { - let o2 = i2.x, a2 = i2.y, r2 = i2.x, s2 = i2.y; - for (const t2 of e2) - o2 = Math.min(o2, t2.x), a2 = Math.min(a2, t2.y), r2 = Math.max(r2, t2.x), s2 = Math.max(s2, t2.y); - return [new t.pointGeometry(o2, a2), new t.pointGeometry(r2, a2), new t.pointGeometry(r2, s2), new t.pointGeometry(o2, s2), new t.pointGeometry(o2, a2)]; - } - } - } - class oo { - constructor(e2) { - this._hashName = e2 && encodeURIComponent(e2), t.bindAll(["_getCurrentHash", "_onHashChange", "_updateHash"], this), this._updateHash = function(t2, e3) { - let i2 = false, o2 = null; - const a2 = () => { - o2 = null, i2 && (t2(), o2 = setTimeout(a2, 300), i2 = false); - }; - return () => (i2 = true, o2 || a2(), o2); - }(this._updateHashUnthrottled.bind(this)); - } - addTo(t2) { - return this._map = t2, addEventListener("hashchange", this._onHashChange, false), this._map.on("moveend", this._updateHash), this; - } - remove() { - return removeEventListener("hashchange", this._onHashChange, false), this._map.off("moveend", this._updateHash), clearTimeout(this._updateHash()), delete this._map, this; - } - getHashString(t2) { - const e2 = this._map.getCenter(), i2 = Math.round(100 * this._map.getZoom()) / 100, o2 = Math.ceil((i2 * Math.LN2 + Math.log(512 / 360 / 0.5)) / Math.LN10), a2 = Math.pow(10, o2), r2 = Math.round(e2.lng * a2) / a2, s2 = Math.round(e2.lat * a2) / a2, n2 = this._map.getBearing(), l2 = this._map.getPitch(); - let c3 = ""; - if (c3 += t2 ? `/${r2}/${s2}/${i2}` : `${i2}/${s2}/${r2}`, (n2 || l2) && (c3 += "/" + Math.round(10 * n2) / 10), l2 && (c3 += `/${Math.round(l2)}`), this._hashName) { - const t3 = this._hashName; - let e3 = false; - const i3 = window.location.hash.slice(1).split("&").map((i4) => { - const o3 = i4.split("=")[0]; - return o3 === t3 ? (e3 = true, `${o3}=${c3}`) : i4; - }).filter((t4) => t4); - return e3 || i3.push(`${t3}=${c3}`), `#${i3.join("&")}`; - } - return `#${c3}`; - } - _getCurrentHash() { - const t2 = window.location.hash.replace("#", ""); - if (this._hashName) { - let e2; - return t2.split("&").map((t3) => t3.split("=")).forEach((t3) => { - t3[0] === this._hashName && (e2 = t3); - }), (e2 && e2[1] || "").split("/"); - } - return t2.split("/"); - } - _onHashChange() { - const t2 = this._getCurrentHash(); - if (t2.length >= 3 && !t2.some((t3) => isNaN(t3))) { - const e2 = this._map.dragRotate.isEnabled() && this._map.touchZoomRotate.isEnabled() ? +(t2[3] || 0) : this._map.getBearing(); - return this._map.jumpTo({ center: [+t2[2], +t2[1]], zoom: +t2[0], bearing: e2, pitch: +(t2[4] || 0) }), true; - } - return false; - } - _updateHashUnthrottled() { - const t2 = window.location.href.replace(/(#.+)?$/, this.getHashString()); - try { - window.history.replaceState(window.history.state, null, t2); - } catch (t3) { - } - } - } - const ao = { linearity: 0.3, easing: t.bezier(0, 0, 0.3, 1) }, ro = t.extend({ deceleration: 2500, maxSpeed: 1400 }, ao), so = t.extend({ deceleration: 20, maxSpeed: 1400 }, ao), no = t.extend({ deceleration: 1e3, maxSpeed: 360 }, ao), lo = t.extend({ deceleration: 1e3, maxSpeed: 90 }, ao); - class co { - constructor(t2) { - this._map = t2, this.clear(); - } - clear() { - this._inertiaBuffer = []; - } - record(e2) { - this._drainInertiaBuffer(), this._inertiaBuffer.push({ time: t.exported.now(), settings: e2 }); - } - _drainInertiaBuffer() { - const e2 = this._inertiaBuffer, i2 = t.exported.now(); - for (; e2.length > 0 && i2 - e2[0].time > 160; ) - e2.shift(); - } - _onMoveEnd(e2) { - if (this._drainInertiaBuffer(), this._inertiaBuffer.length < 2) - return; - const i2 = { zoom: 0, bearing: 0, pitch: 0, pan: new t.pointGeometry(0, 0), pinchAround: void 0, around: void 0 }; - for (const { settings: t2 } of this._inertiaBuffer) - i2.zoom += t2.zoomDelta || 0, i2.bearing += t2.bearingDelta || 0, i2.pitch += t2.pitchDelta || 0, t2.panDelta && i2.pan._add(t2.panDelta), t2.around && (i2.around = t2.around), t2.pinchAround && (i2.pinchAround = t2.pinchAround); - const o2 = this._inertiaBuffer[this._inertiaBuffer.length - 1].time - this._inertiaBuffer[0].time, a2 = {}; - if (i2.pan.mag()) { - const r2 = uo(i2.pan.mag(), o2, t.extend({}, ro, e2 || {})); - a2.offset = i2.pan.mult(r2.amount / i2.pan.mag()), a2.center = this._map.transform.center, ho(a2, r2); - } - if (i2.zoom) { - const t2 = uo(i2.zoom, o2, so); - a2.zoom = this._map.transform.zoom + t2.amount, ho(a2, t2); - } - if (i2.bearing) { - const e3 = uo(i2.bearing, o2, no); - a2.bearing = this._map.transform.bearing + t.clamp(e3.amount, -179, 179), ho(a2, e3); - } - if (i2.pitch) { - const t2 = uo(i2.pitch, o2, lo); - a2.pitch = this._map.transform.pitch + t2.amount, ho(a2, t2); - } - if (a2.zoom || a2.bearing) { - const t2 = void 0 === i2.pinchAround ? i2.around : i2.pinchAround; - a2.around = t2 ? this._map.unproject(t2) : this._map.getCenter(); - } - return this.clear(), t.extend(a2, { noMoveStart: true }); - } - } - function ho(t2, e2) { - (!t2.duration || t2.duration < e2.duration) && (t2.duration = e2.duration, t2.easing = e2.easing); - } - function uo(e2, i2, o2) { - const { maxSpeed: a2, linearity: r2, deceleration: s2 } = o2, n2 = t.clamp(e2 * r2 / (i2 / 1e3), -a2, a2), l2 = Math.abs(n2) / (s2 * r2); - return { easing: o2.easing, duration: 1e3 * l2, amount: n2 * (l2 / 2) }; - } - class mo extends t.Event { - constructor(e2, i2, o2, a2 = {}) { - const s2 = r.mousePos(i2.getCanvasContainer(), o2), n2 = i2.unproject(s2); - super(e2, t.extend({ point: s2, lngLat: n2, originalEvent: o2 }, a2)), this._defaultPrevented = false, this.target = i2; - } - preventDefault() { - this._defaultPrevented = true; - } - get defaultPrevented() { - return this._defaultPrevented; - } - } - class _o extends t.Event { - constructor(e2, i2, o2) { - const a2 = "touchend" === e2 ? o2.changedTouches : o2.touches, s2 = r.touchPos(i2.getCanvasContainer(), a2), n2 = s2.map((t2) => i2.unproject(t2)), l2 = s2.reduce((t2, e3, i3, o3) => t2.add(e3.div(o3.length)), new t.pointGeometry(0, 0)); - super(e2, { points: s2, point: l2, lngLats: n2, lngLat: i2.unproject(l2), originalEvent: o2 }), this._defaultPrevented = false; - } - preventDefault() { - this._defaultPrevented = true; - } - get defaultPrevented() { - return this._defaultPrevented; - } - } - class po extends t.Event { - constructor(t2, e2, i2) { - super(t2, { originalEvent: i2 }), this._defaultPrevented = false; - } - preventDefault() { - this._defaultPrevented = true; - } - get defaultPrevented() { - return this._defaultPrevented; - } - } - class fo { - constructor(t2, e2) { - this._map = t2, this._clickTolerance = e2.clickTolerance; - } - reset() { - delete this._mousedownPos; - } - wheel(t2) { - return this._firePreventable(new po(t2.type, this._map, t2)); - } - mousedown(t2, e2) { - return this._mousedownPos = e2, this._firePreventable(new mo(t2.type, this._map, t2)); - } - mouseup(t2) { - this._map.fire(new mo(t2.type, this._map, t2)); - } - click(t2, e2) { - this._mousedownPos && this._mousedownPos.dist(e2) >= this._clickTolerance || this._map.fire(new mo(t2.type, this._map, t2)); - } - dblclick(t2) { - return this._firePreventable(new mo(t2.type, this._map, t2)); - } - mouseover(t2) { - this._map.fire(new mo(t2.type, this._map, t2)); - } - mouseout(t2) { - this._map.fire(new mo(t2.type, this._map, t2)); - } - touchstart(t2) { - return this._firePreventable(new _o(t2.type, this._map, t2)); - } - touchmove(t2) { - this._map.fire(new _o(t2.type, this._map, t2)); - } - touchend(t2) { - this._map.fire(new _o(t2.type, this._map, t2)); - } - touchcancel(t2) { - this._map.fire(new _o(t2.type, this._map, t2)); - } - _firePreventable(t2) { - if (this._map.fire(t2), t2.defaultPrevented) - return {}; - } - isEnabled() { - return true; - } - isActive() { - return false; - } - enable() { - } - disable() { - } - } - class go { - constructor(t2) { - this._map = t2; - } - reset() { - this._delayContextMenu = false, this._ignoreContextMenu = true, delete this._contextMenuEvent; - } - mousemove(t2) { - this._map.fire(new mo(t2.type, this._map, t2)); - } - mousedown() { - this._delayContextMenu = true, this._ignoreContextMenu = false; - } - mouseup() { - this._delayContextMenu = false, this._contextMenuEvent && (this._map.fire(new mo("contextmenu", this._map, this._contextMenuEvent)), delete this._contextMenuEvent); - } - contextmenu(t2) { - this._delayContextMenu ? this._contextMenuEvent = t2 : this._ignoreContextMenu || this._map.fire(new mo(t2.type, this._map, t2)), this._map.listens("contextmenu") && t2.preventDefault(); - } - isEnabled() { - return true; - } - isActive() { - return false; - } - enable() { - } - disable() { - } - } - class xo { - constructor(t2, e2) { - this._map = t2, this._el = t2.getCanvasContainer(), this._container = t2.getContainer(), this._clickTolerance = e2.clickTolerance || 1; - } - isEnabled() { - return !!this._enabled; - } - isActive() { - return !!this._active; - } - enable() { - this.isEnabled() || (this._enabled = true); - } - disable() { - this.isEnabled() && (this._enabled = false); - } - mousedown(t2, e2) { - this.isEnabled() && t2.shiftKey && 0 === t2.button && (r.disableDrag(), this._startPos = this._lastPos = e2, this._active = true); - } - mousemoveWindow(t2, e2) { - if (!this._active) - return; - const i2 = e2; - if (this._lastPos.equals(i2) || !this._box && i2.dist(this._startPos) < this._clickTolerance) - return; - const o2 = this._startPos; - this._lastPos = i2, this._box || (this._box = r.create("div", "maplibregl-boxzoom mapboxgl-boxzoom", this._container), this._container.classList.add("maplibregl-crosshair", "mapboxgl-crosshair"), this._fireEvent("boxzoomstart", t2)); - const a2 = Math.min(o2.x, i2.x), s2 = Math.max(o2.x, i2.x), n2 = Math.min(o2.y, i2.y), l2 = Math.max(o2.y, i2.y); - r.setTransform(this._box, `translate(${a2}px,${n2}px)`), this._box.style.width = s2 - a2 + "px", this._box.style.height = l2 - n2 + "px"; - } - mouseupWindow(e2, i2) { - if (!this._active) - return; - if (0 !== e2.button) - return; - const o2 = this._startPos, a2 = i2; - if (this.reset(), r.suppressClick(), o2.x !== a2.x || o2.y !== a2.y) - return this._map.fire(new t.Event("boxzoomend", { originalEvent: e2 })), { cameraAnimation: (t2) => t2.fitScreenCoordinates(o2, a2, this._map.getBearing(), { linear: true }) }; - this._fireEvent("boxzoomcancel", e2); - } - keydown(t2) { - this._active && 27 === t2.keyCode && (this.reset(), this._fireEvent("boxzoomcancel", t2)); - } - reset() { - this._active = false, this._container.classList.remove("maplibregl-crosshair", "mapboxgl-crosshair"), this._box && (r.remove(this._box), this._box = null), r.enableDrag(), delete this._startPos, delete this._lastPos; - } - _fireEvent(e2, i2) { - return this._map.fire(new t.Event(e2, { originalEvent: i2 })); - } - } - function vo(t2, e2) { - if (t2.length !== e2.length) - throw new Error(`The number of touches and points are not equal - touches ${t2.length}, points ${e2.length}`); - const i2 = {}; - for (let o2 = 0; o2 < t2.length; o2++) - i2[t2[o2].identifier] = e2[o2]; - return i2; - } - class yo { - constructor(t2) { - this.reset(), this.numTouches = t2.numTouches; - } - reset() { - delete this.centroid, delete this.startTime, delete this.touches, this.aborted = false; - } - touchstart(e2, i2, o2) { - (this.centroid || o2.length > this.numTouches) && (this.aborted = true), this.aborted || (void 0 === this.startTime && (this.startTime = e2.timeStamp), o2.length === this.numTouches && (this.centroid = function(e3) { - const i3 = new t.pointGeometry(0, 0); - for (const t2 of e3) - i3._add(t2); - return i3.div(e3.length); - }(i2), this.touches = vo(o2, i2))); - } - touchmove(t2, e2, i2) { - if (this.aborted || !this.centroid) - return; - const o2 = vo(i2, e2); - for (const t3 in this.touches) { - const e3 = this.touches[t3], i3 = o2[t3]; - (!i3 || i3.dist(e3) > 30) && (this.aborted = true); - } - } - touchend(t2, e2, i2) { - if ((!this.centroid || t2.timeStamp - this.startTime > 500) && (this.aborted = true), 0 === i2.length) { - const t3 = !this.aborted && this.centroid; - if (this.reset(), t3) - return t3; - } - } - } - class bo { - constructor(t2) { - this.singleTap = new yo(t2), this.numTaps = t2.numTaps, this.reset(); - } - reset() { - this.lastTime = 1 / 0, delete this.lastTap, this.count = 0, this.singleTap.reset(); - } - touchstart(t2, e2, i2) { - this.singleTap.touchstart(t2, e2, i2); - } - touchmove(t2, e2, i2) { - this.singleTap.touchmove(t2, e2, i2); - } - touchend(t2, e2, i2) { - const o2 = this.singleTap.touchend(t2, e2, i2); - if (o2) { - const e3 = t2.timeStamp - this.lastTime < 500, i3 = !this.lastTap || this.lastTap.dist(o2) < 30; - if (e3 && i3 || this.reset(), this.count++, this.lastTime = t2.timeStamp, this.lastTap = o2, this.count === this.numTaps) - return this.reset(), o2; - } - } - } - class wo { - constructor() { - this._zoomIn = new bo({ numTouches: 1, numTaps: 2 }), this._zoomOut = new bo({ numTouches: 2, numTaps: 1 }), this.reset(); - } - reset() { - this._active = false, this._zoomIn.reset(), this._zoomOut.reset(); - } - touchstart(t2, e2, i2) { - this._zoomIn.touchstart(t2, e2, i2), this._zoomOut.touchstart(t2, e2, i2); - } - touchmove(t2, e2, i2) { - this._zoomIn.touchmove(t2, e2, i2), this._zoomOut.touchmove(t2, e2, i2); - } - touchend(t2, e2, i2) { - const o2 = this._zoomIn.touchend(t2, e2, i2), a2 = this._zoomOut.touchend(t2, e2, i2); - return o2 ? (this._active = true, t2.preventDefault(), setTimeout(() => this.reset(), 0), { cameraAnimation: (e3) => e3.easeTo({ duration: 300, zoom: e3.getZoom() + 1, around: e3.unproject(o2) }, { originalEvent: t2 }) }) : a2 ? (this._active = true, t2.preventDefault(), setTimeout(() => this.reset(), 0), { cameraAnimation: (e3) => e3.easeTo({ duration: 300, zoom: e3.getZoom() - 1, around: e3.unproject(a2) }, { originalEvent: t2 }) }) : void 0; - } - touchcancel() { - this.reset(); - } - enable() { - this._enabled = true; - } - disable() { - this._enabled = false, this.reset(); - } - isEnabled() { - return this._enabled; - } - isActive() { - return this._active; - } - } - const To = { 0: 1, 2: 2 }; - class Eo { - constructor(t2) { - this.reset(), this._clickTolerance = t2.clickTolerance || 1; - } - reset() { - this._active = false, this._moved = false, delete this._lastPoint, delete this._eventButton; - } - _correctButton(t2, e2) { - return false; - } - _move(t2, e2) { - return {}; - } - mousedown(t2, e2) { - if (this._lastPoint) - return; - const i2 = r.mouseButton(t2); - this._correctButton(t2, i2) && (this._lastPoint = e2, this._eventButton = i2); - } - mousemoveWindow(t2, e2) { - const i2 = this._lastPoint; - if (i2) { - if (t2.preventDefault(), function(t3, e3) { - const i3 = To[e3]; - return void 0 === t3.buttons || (t3.buttons & i3) !== i3; - }(t2, this._eventButton)) - this.reset(); - else if (this._moved || !(e2.dist(i2) < this._clickTolerance)) - return this._moved = true, this._lastPoint = e2, this._move(i2, e2); - } - } - mouseupWindow(t2) { - this._lastPoint && r.mouseButton(t2) === this._eventButton && (this._moved && r.suppressClick(), this.reset()); - } - enable() { - this._enabled = true; - } - disable() { - this._enabled = false, this.reset(); - } - isEnabled() { - return this._enabled; - } - isActive() { - return this._active; - } - } - class Io extends Eo { - mousedown(t2, e2) { - super.mousedown(t2, e2), this._lastPoint && (this._active = true); - } - _correctButton(t2, e2) { - return 0 === e2 && !t2.ctrlKey; - } - _move(t2, e2) { - return { around: e2, panDelta: e2.sub(t2) }; - } - } - class Co extends Eo { - _correctButton(t2, e2) { - return 0 === e2 && t2.ctrlKey || 2 === e2; - } - _move(t2, e2) { - const i2 = 0.8 * (e2.x - t2.x); + }, Go.prototype.mousemoveWindow = function(t2, e2) { + var i2 = this._lastPoint; + if (i2) { + if (t2.preventDefault(), function(t3, e3) { + var i3 = Vo[e3]; + return void 0 === t3.buttons || (t3.buttons & i3) !== i3; + }(t2, this._eventButton)) + this.reset(); + else if (this._moved || !(e2.dist(i2) < this._clickTolerance)) + return this._moved = true, this._lastPoint = e2, this._move(i2, e2); + } + }, Go.prototype.mouseupWindow = function(t2) { + this._lastPoint && i.mouseButton(t2) === this._eventButton && (this._moved && i.suppressClick(), this.reset()); + }, Go.prototype.enable = function() { + this._enabled = true; + }, Go.prototype.disable = function() { + this._enabled = false, this.reset(); + }, Go.prototype.isEnabled = function() { + return this._enabled; + }, Go.prototype.isActive = function() { + return this._active; + }; + var Wo = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.mousedown = function(e3, i2) { + t2.prototype.mousedown.call(this, e3, i2), this._lastPoint && (this._active = true); + }, e2.prototype._correctButton = function(t3, e3) { + return 0 === e3 && !t3.ctrlKey; + }, e2.prototype._move = function(t3, e3) { + return { around: e3, panDelta: e3.sub(t3) }; + }, e2; + }(Go), Xo = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._correctButton = function(t3, e3) { + return 0 === e3 && t3.ctrlKey || 2 === e3; + }, e2.prototype._move = function(t3, e3) { + var i2 = 0.8 * (e3.x - t3.x); if (i2) return this._active = true, { bearingDelta: i2 }; - } - contextmenu(t2) { - t2.preventDefault(); - } - } - class So extends Eo { - _correctButton(t2, e2) { - return 0 === e2 && t2.ctrlKey || 2 === e2; - } - _move(t2, e2) { - const i2 = -0.5 * (e2.y - t2.y); + }, e2.prototype.contextmenu = function(t3) { + t3.preventDefault(); + }, e2; + }(Go), Ho = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype._correctButton = function(t3, e3) { + return 0 === e3 && t3.ctrlKey || 2 === e3; + }, e2.prototype._move = function(t3, e3) { + var i2 = -0.5 * (e3.y - t3.y); if (i2) return this._active = true, { pitchDelta: i2 }; - } - contextmenu(t2) { - t2.preventDefault(); - } - } - class Do { - constructor(t2, e2) { - this._minTouches = t2.cooperativeGestures ? 2 : 1, this._clickTolerance = t2.clickTolerance || 1, this._map = e2, this.reset(); - } - reset() { - this._active = false, this._touches = {}, this._sum = new t.pointGeometry(0, 0), setTimeout(() => { - this._cancelCooperativeMessage = false; - }, 200); - } - touchstart(t2, e2, i2) { - return this._calculateTransform(t2, e2, i2); - } - touchmove(t2, e2, i2) { - if (this._map._cooperativeGestures && (2 === this._minTouches && i2.length < 2 && !this._cancelCooperativeMessage ? this._map._onCooperativeGesture(t2, false, i2.length) : this._cancelCooperativeMessage || (this._cancelCooperativeMessage = true)), this._active && !(i2.length < this._minTouches)) - return t2.preventDefault(), this._calculateTransform(t2, e2, i2); - } - touchend(t2, e2, i2) { - this._calculateTransform(t2, e2, i2), this._active && i2.length < this._minTouches && this.reset(); - } - touchcancel() { - this.reset(); - } - _calculateTransform(e2, i2, o2) { - o2.length > 0 && (this._active = true); - const a2 = vo(o2, i2), r2 = new t.pointGeometry(0, 0), s2 = new t.pointGeometry(0, 0); - let n2 = 0; - for (const t2 in a2) { - const e3 = a2[t2], i3 = this._touches[t2]; - i3 && (r2._add(e3), s2._add(e3.sub(i3)), n2++, a2[t2] = e3); - } - if (this._touches = a2, n2 < this._minTouches || !s2.mag()) - return; - const l2 = s2.div(n2); - return this._sum._add(l2), this._sum.mag() < this._clickTolerance ? void 0 : { around: r2.div(n2), panDelta: l2 }; - } - enable() { - this._enabled = true; - } - disable() { - this._enabled = false, this.reset(); - } - isEnabled() { - return this._enabled; - } - isActive() { - return this._active; - } - } - class zo { - constructor() { - this.reset(); - } - reset() { - this._active = false, delete this._firstTwoTouches; - } - _start(t2) { - } - _move(t2, e2, i2) { - return {}; - } - touchstart(t2, e2, i2) { - this._firstTwoTouches || i2.length < 2 || (this._firstTwoTouches = [i2[0].identifier, i2[1].identifier], this._start([e2[0], e2[1]])); - } - touchmove(t2, e2, i2) { - if (!this._firstTwoTouches) - return; - t2.preventDefault(); - const [o2, a2] = this._firstTwoTouches, r2 = Po(i2, e2, o2), s2 = Po(i2, e2, a2); - if (!r2 || !s2) - return; - const n2 = this._aroundCenter ? null : r2.add(s2).div(2); - return this._move([r2, s2], n2, t2); - } - touchend(t2, e2, i2) { - if (!this._firstTwoTouches) - return; - const [o2, a2] = this._firstTwoTouches, s2 = Po(i2, e2, o2), n2 = Po(i2, e2, a2); - s2 && n2 || (this._active && r.suppressClick(), this.reset()); - } - touchcancel() { - this.reset(); - } - enable(t2) { - this._enabled = true, this._aroundCenter = !!t2 && "center" === t2.around; - } - disable() { - this._enabled = false, this.reset(); - } - isEnabled() { - return this._enabled; - } - isActive() { - return this._active; - } - } - function Po(t2, e2, i2) { - for (let o2 = 0; o2 < t2.length; o2++) + }, e2.prototype.contextmenu = function(t3) { + t3.preventDefault(); + }, e2; + }(Go), Ko = function(t2) { + this._minTouches = 1, this._clickTolerance = t2.clickTolerance || 1, this.reset(); + }; + Ko.prototype.reset = function() { + this._active = false, this._touches = {}, this._sum = new t.Point(0, 0); + }, Ko.prototype.touchstart = function(t2, e2, i2) { + return this._calculateTransform(t2, e2, i2); + }, Ko.prototype.touchmove = function(t2, e2, i2) { + if (this._active && !(i2.length < this._minTouches)) + return t2.preventDefault(), this._calculateTransform(t2, e2, i2); + }, Ko.prototype.touchend = function(t2, e2, i2) { + this._calculateTransform(t2, e2, i2), this._active && i2.length < this._minTouches && this.reset(); + }, Ko.prototype.touchcancel = function() { + this.reset(); + }, Ko.prototype._calculateTransform = function(e2, i2, o2) { + o2.length > 0 && (this._active = true); + var r2 = No(o2, i2), a2 = new t.Point(0, 0), n2 = new t.Point(0, 0), s2 = 0; + for (var l2 in r2) { + var c3 = r2[l2], u2 = this._touches[l2]; + u2 && (a2._add(c3), n2._add(c3.sub(u2)), s2++, r2[l2] = c3); + } + if (this._touches = r2, !(s2 < this._minTouches) && n2.mag()) { + var h3 = n2.div(s2); + if (this._sum._add(h3), !(this._sum.mag() < this._clickTolerance)) + return { around: a2.div(s2), panDelta: h3 }; + } + }, Ko.prototype.enable = function() { + this._enabled = true; + }, Ko.prototype.disable = function() { + this._enabled = false, this.reset(); + }, Ko.prototype.isEnabled = function() { + return this._enabled; + }, Ko.prototype.isActive = function() { + return this._active; + }; + var Yo = function() { + this.reset(); + }; + function Jo(t2, e2, i2) { + for (var o2 = 0; o2 < t2.length; o2++) if (t2[o2].identifier === i2) return e2[o2]; } - function Mo(t2, e2) { + function Qo(t2, e2) { return Math.log(t2 / e2) / Math.LN2; } - class Ao extends zo { - reset() { - super.reset(), delete this._distance, delete this._startDistance; - } - _start(t2) { - this._startDistance = this._distance = t2[0].dist(t2[1]); - } - _move(t2, e2) { - const i2 = this._distance; - if (this._distance = t2[0].dist(t2[1]), this._active || !(Math.abs(Mo(this._distance, this._startDistance)) < 0.1)) - return this._active = true, { zoomDelta: Mo(this._distance, i2), pinchAround: e2 }; - } - } - function Lo(t2, e2) { + Yo.prototype.reset = function() { + this._active = false, delete this._firstTwoTouches; + }, Yo.prototype._start = function(t2) { + }, Yo.prototype._move = function(t2, e2, i2) { + return {}; + }, Yo.prototype.touchstart = function(t2, e2, i2) { + this._firstTwoTouches || i2.length < 2 || (this._firstTwoTouches = [i2[0].identifier, i2[1].identifier], this._start([e2[0], e2[1]])); + }, Yo.prototype.touchmove = function(t2, e2, i2) { + if (this._firstTwoTouches) { + t2.preventDefault(); + var o2 = this._firstTwoTouches, r2 = o2[1], a2 = Jo(i2, e2, o2[0]), n2 = Jo(i2, e2, r2); + if (a2 && n2) { + var s2 = this._aroundCenter ? null : a2.add(n2).div(2); + return this._move([a2, n2], s2, t2); + } + } + }, Yo.prototype.touchend = function(t2, e2, o2) { + if (this._firstTwoTouches) { + var r2 = this._firstTwoTouches, a2 = r2[1], n2 = Jo(o2, e2, r2[0]), s2 = Jo(o2, e2, a2); + n2 && s2 || (this._active && i.suppressClick(), this.reset()); + } + }, Yo.prototype.touchcancel = function() { + this.reset(); + }, Yo.prototype.enable = function(t2) { + this._enabled = true, this._aroundCenter = !!t2 && "center" === t2.around; + }, Yo.prototype.disable = function() { + this._enabled = false, this.reset(); + }, Yo.prototype.isEnabled = function() { + return this._enabled; + }, Yo.prototype.isActive = function() { + return this._active; + }; + var $o = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.reset = function() { + t2.prototype.reset.call(this), delete this._distance, delete this._startDistance; + }, e2.prototype._start = function(t3) { + this._startDistance = this._distance = t3[0].dist(t3[1]); + }, e2.prototype._move = function(t3, e3) { + var i2 = this._distance; + if (this._distance = t3[0].dist(t3[1]), this._active || !(Math.abs(Qo(this._distance, this._startDistance)) < 0.1)) + return this._active = true, { zoomDelta: Qo(this._distance, i2), pinchAround: e3 }; + }, e2; + }(Yo); + function tr(t2, e2) { return 180 * t2.angleWith(e2) / Math.PI; } - class Ro extends zo { - reset() { - super.reset(), delete this._minDiameter, delete this._startVector, delete this._vector; - } - _start(t2) { - this._startVector = this._vector = t2[0].sub(t2[1]), this._minDiameter = t2[0].dist(t2[1]); - } - _move(t2, e2) { - const i2 = this._vector; - if (this._vector = t2[0].sub(t2[1]), this._active || !this._isBelowThreshold(this._vector)) - return this._active = true, { bearingDelta: Lo(this._vector, i2), pinchAround: e2 }; - } - _isBelowThreshold(t2) { - this._minDiameter = Math.min(this._minDiameter, t2.mag()); - const e2 = 25 / (Math.PI * this._minDiameter) * 360, i2 = Lo(t2, this._startVector); - return Math.abs(i2) < e2; - } - } - function ko(t2) { + var er = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.reset = function() { + t2.prototype.reset.call(this), delete this._minDiameter, delete this._startVector, delete this._vector; + }, e2.prototype._start = function(t3) { + this._startVector = this._vector = t3[0].sub(t3[1]), this._minDiameter = t3[0].dist(t3[1]); + }, e2.prototype._move = function(t3, e3) { + var i2 = this._vector; + if (this._vector = t3[0].sub(t3[1]), this._active || !this._isBelowThreshold(this._vector)) + return this._active = true, { bearingDelta: tr(this._vector, i2), pinchAround: e3 }; + }, e2.prototype._isBelowThreshold = function(t3) { + this._minDiameter = Math.min(this._minDiameter, t3.mag()); + var e3 = 25 / (Math.PI * this._minDiameter) * 360, i2 = tr(t3, this._startVector); + return Math.abs(i2) < e3; + }, e2; + }(Yo); + function ir(t2) { return Math.abs(t2.y) > Math.abs(t2.x); } - class Bo extends zo { - constructor(t2) { - super(), this._map = t2; - } - reset() { - super.reset(), this._valid = void 0, delete this._firstMove, delete this._lastPoints; - } - touchstart(t2, e2, i2) { - super.touchstart(t2, e2, i2), this._currentTouchCount = i2.length; - } - _start(t2) { - this._lastPoints = t2, ko(t2[0].sub(t2[1])) && (this._valid = false); - } - _move(t2, e2, i2) { - if (this._map._cooperativeGestures && this._currentTouchCount < 3) - return; - const o2 = t2[0].sub(this._lastPoints[0]), a2 = t2[1].sub(this._lastPoints[1]); - return this._valid = this.gestureBeginsVertically(o2, a2, i2.timeStamp), this._valid ? (this._lastPoints = t2, this._active = true, { pitchDelta: (o2.y + a2.y) / 2 * -0.5 }) : void 0; - } - gestureBeginsVertically(t2, e2, i2) { + var or = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2.prototype.reset = function() { + t2.prototype.reset.call(this), this._valid = void 0, delete this._firstMove, delete this._lastPoints; + }, e2.prototype._start = function(t3) { + this._lastPoints = t3, ir(t3[0].sub(t3[1])) && (this._valid = false); + }, e2.prototype._move = function(t3, e3, i2) { + var o2 = t3[0].sub(this._lastPoints[0]), r2 = t3[1].sub(this._lastPoints[1]); + if (this._valid = this.gestureBeginsVertically(o2, r2, i2.timeStamp), this._valid) + return this._lastPoints = t3, this._active = true, { pitchDelta: (o2.y + r2.y) / 2 * -0.5 }; + }, e2.prototype.gestureBeginsVertically = function(t3, e3, i2) { if (void 0 !== this._valid) return this._valid; - const o2 = t2.mag() >= 2, a2 = e2.mag() >= 2; - if (!o2 && !a2) - return; - if (!o2 || !a2) - return void 0 === this._firstMove && (this._firstMove = i2), i2 - this._firstMove < 100 && void 0; - const r2 = t2.y > 0 == e2.y > 0; - return ko(t2) && ko(e2) && r2; - } + var o2 = t3.mag() >= 2, r2 = e3.mag() >= 2; + if (o2 || r2) { + if (!o2 || !r2) + return void 0 === this._firstMove && (this._firstMove = i2), i2 - this._firstMove < 100 && void 0; + var a2 = t3.y > 0 == e3.y > 0; + return ir(t3) && ir(e3) && a2; + } + }, e2; + }(Yo), rr = { panStep: 100, bearingStep: 15, pitchStep: 10 }, ar = function() { + var t2 = rr; + this._panStep = t2.panStep, this._bearingStep = t2.bearingStep, this._pitchStep = t2.pitchStep, this._rotationDisabled = false; + }; + function nr(t2) { + return t2 * (2 - t2); } - const Fo = { panStep: 100, bearingStep: 15, pitchStep: 10 }; - class Oo { - constructor() { - const t2 = Fo; - this._panStep = t2.panStep, this._bearingStep = t2.bearingStep, this._pitchStep = t2.pitchStep, this._rotationDisabled = false; - } - reset() { - this._active = false; - } - keydown(t2) { - if (t2.altKey || t2.ctrlKey || t2.metaKey) - return; - let e2 = 0, i2 = 0, o2 = 0, a2 = 0, r2 = 0; + ar.prototype.blur = function() { + this.reset(); + }, ar.prototype.reset = function() { + this._active = false; + }, ar.prototype.keydown = function(t2) { + var e2 = this; + if (!(t2.altKey || t2.ctrlKey || t2.metaKey)) { + var i2 = 0, o2 = 0, r2 = 0, a2 = 0, n2 = 0; switch (t2.keyCode) { case 61: case 107: case 171: case 187: - e2 = 1; + i2 = 1; break; case 189: case 109: case 173: - e2 = -1; + i2 = -1; break; case 37: - t2.shiftKey ? i2 = -1 : (t2.preventDefault(), a2 = -1); + t2.shiftKey ? o2 = -1 : (t2.preventDefault(), a2 = -1); break; case 39: - t2.shiftKey ? i2 = 1 : (t2.preventDefault(), a2 = 1); + t2.shiftKey ? o2 = 1 : (t2.preventDefault(), a2 = 1); break; case 38: - t2.shiftKey ? o2 = 1 : (t2.preventDefault(), r2 = -1); + t2.shiftKey ? r2 = 1 : (t2.preventDefault(), n2 = -1); break; case 40: - t2.shiftKey ? o2 = -1 : (t2.preventDefault(), r2 = 1); + t2.shiftKey ? r2 = -1 : (t2.preventDefault(), n2 = 1); break; default: return; } - return this._rotationDisabled && (i2 = 0, o2 = 0), { cameraAnimation: (s2) => { - const n2 = s2.getZoom(); - s2.easeTo({ duration: 300, easeId: "keyboardHandler", easing: Uo, zoom: e2 ? Math.round(n2) + e2 * (t2.shiftKey ? 2 : 1) : n2, bearing: s2.getBearing() + i2 * this._bearingStep, pitch: s2.getPitch() + o2 * this._pitchStep, offset: [-a2 * this._panStep, -r2 * this._panStep], center: s2.getCenter() }, { originalEvent: t2 }); + return this._rotationDisabled && (o2 = 0, r2 = 0), { cameraAnimation: function(s2) { + var l2 = s2.getZoom(); + s2.easeTo({ duration: 300, easeId: "keyboardHandler", easing: nr, zoom: i2 ? Math.round(l2) + i2 * (t2.shiftKey ? 2 : 1) : l2, bearing: s2.getBearing() + o2 * e2._bearingStep, pitch: s2.getPitch() + r2 * e2._pitchStep, offset: [-a2 * e2._panStep, -n2 * e2._panStep], center: s2.getCenter() }, { originalEvent: t2 }); } }; } - enable() { - this._enabled = true; - } - disable() { - this._enabled = false, this.reset(); - } - isEnabled() { - return this._enabled; - } - isActive() { - return this._active; - } - disableRotation() { - this._rotationDisabled = true; - } - enableRotation() { - this._rotationDisabled = false; - } - } - function Uo(t2) { - return t2 * (2 - t2); - } - const No = 4.000244140625; - class Go { - constructor(e2, i2) { - this._map = e2, this._el = e2.getCanvasContainer(), this._handler = i2, this._delta = 0, this._defaultZoomRate = 0.01, this._wheelZoomRate = 0.0022222222222222222, t.bindAll(["_onTimeout"], this); - } - setZoomRate(t2) { - this._defaultZoomRate = t2; - } - setWheelZoomRate(t2) { - this._wheelZoomRate = t2; - } - isEnabled() { - return !!this._enabled; - } - isActive() { - return !!this._active || void 0 !== this._finishTimeout; - } - isZooming() { - return !!this._zooming; - } - enable(t2) { - this.isEnabled() || (this._enabled = true, this._aroundCenter = t2 && "center" === t2.around); - } - disable() { - this.isEnabled() && (this._enabled = false); - } - wheel(e2) { - if (!this.isEnabled()) - return; - if (this._map._cooperativeGestures) { - if (!this._map._metaPress) - return; - e2.preventDefault(); - } - let i2 = e2.deltaMode === WheelEvent.DOM_DELTA_LINE ? 40 * e2.deltaY : e2.deltaY; - const o2 = t.exported.now(), a2 = o2 - (this._lastWheelEventTime || 0); - this._lastWheelEventTime = o2, 0 !== i2 && i2 % No == 0 ? this._type = "wheel" : 0 !== i2 && Math.abs(i2) < 4 ? this._type = "trackpad" : a2 > 400 ? (this._type = null, this._lastValue = i2, this._timeout = setTimeout(this._onTimeout, 40, e2)) : this._type || (this._type = Math.abs(a2 * i2) < 200 ? "trackpad" : "wheel", this._timeout && (clearTimeout(this._timeout), this._timeout = null, i2 += this._lastValue)), e2.shiftKey && i2 && (i2 /= 4), this._type && (this._lastWheelEvent = e2, this._delta -= i2, this._active || this._start(e2)), e2.preventDefault(); - } - _onTimeout(t2) { - this._type = "wheel", this._delta -= this._lastValue, this._active || this._start(t2); - } - _start(e2) { - if (!this._delta) - return; + }, ar.prototype.enable = function() { + this._enabled = true; + }, ar.prototype.disable = function() { + this._enabled = false, this.reset(); + }, ar.prototype.isEnabled = function() { + return this._enabled; + }, ar.prototype.isActive = function() { + return this._active; + }, ar.prototype.disableRotation = function() { + this._rotationDisabled = true; + }, ar.prototype.enableRotation = function() { + this._rotationDisabled = false; + }; + var sr = function(e2, i2) { + this._map = e2, this._el = e2.getCanvasContainer(), this._handler = i2, this._delta = 0, this._defaultZoomRate = 0.01, this._wheelZoomRate = 1 / 450, t.bindAll(["_onTimeout"], this); + }; + sr.prototype.setZoomRate = function(t2) { + this._defaultZoomRate = t2; + }, sr.prototype.setWheelZoomRate = function(t2) { + this._wheelZoomRate = t2; + }, sr.prototype.isEnabled = function() { + return !!this._enabled; + }, sr.prototype.isActive = function() { + return !!this._active || void 0 !== this._finishTimeout; + }, sr.prototype.isZooming = function() { + return !!this._zooming; + }, sr.prototype.enable = function(t2) { + this.isEnabled() || (this._enabled = true, this._aroundCenter = t2 && "center" === t2.around); + }, sr.prototype.disable = function() { + this.isEnabled() && (this._enabled = false); + }, sr.prototype.wheel = function(e2) { + if (this.isEnabled()) { + var i2 = e2.deltaMode === t.window.WheelEvent.DOM_DELTA_LINE ? 40 * e2.deltaY : e2.deltaY, o2 = t.browser.now(), r2 = o2 - (this._lastWheelEventTime || 0); + this._lastWheelEventTime = o2, 0 !== i2 && i2 % 4.000244140625 == 0 ? this._type = "wheel" : 0 !== i2 && Math.abs(i2) < 4 ? this._type = "trackpad" : r2 > 400 ? (this._type = null, this._lastValue = i2, this._timeout = setTimeout(this._onTimeout, 40, e2)) : this._type || (this._type = Math.abs(r2 * i2) < 200 ? "trackpad" : "wheel", this._timeout && (clearTimeout(this._timeout), this._timeout = null, i2 += this._lastValue)), e2.shiftKey && i2 && (i2 /= 4), this._type && (this._lastWheelEvent = e2, this._delta -= i2, this._active || this._start(e2)), e2.preventDefault(); + } + }, sr.prototype._onTimeout = function(t2) { + this._type = "wheel", this._delta -= this._lastValue, this._active || this._start(t2); + }, sr.prototype._start = function(e2) { + if (this._delta) { this._frameId && (this._frameId = null), this._active = true, this.isZooming() || (this._zooming = true), this._finishTimeout && (clearTimeout(this._finishTimeout), delete this._finishTimeout); - const i2 = r.mousePos(this._el, e2); - this._around = t.LngLat.convert(this._aroundCenter ? this._map.getCenter() : this._map.unproject(i2)), this._aroundPoint = this._map.transform.locationPoint(this._around), this._frameId || (this._frameId = true, this._handler._triggerRenderFrame()); + var o2 = i.mousePos(this._el, e2); + this._around = t.LngLat.convert(this._aroundCenter ? this._map.getCenter() : this._map.unproject(o2)), this._aroundPoint = this._map.transform.locationPoint(this._around), this._frameId || (this._frameId = true, this._handler._triggerRenderFrame()); } - renderFrame() { - if (!this._frameId) - return; - if (this._frameId = null, !this.isActive()) - return; - const e2 = this._map.transform; + }, sr.prototype.renderFrame = function() { + var e2 = this; + if (this._frameId && (this._frameId = null, this.isActive())) { + var i2 = this._map.transform; if (0 !== this._delta) { - const t2 = "wheel" === this._type && Math.abs(this._delta) > No ? this._wheelZoomRate : this._defaultZoomRate; - let i3 = 2 / (1 + Math.exp(-Math.abs(this._delta * t2))); - this._delta < 0 && 0 !== i3 && (i3 = 1 / i3); - const o3 = "number" == typeof this._targetZoom ? e2.zoomScale(this._targetZoom) : e2.scale; - this._targetZoom = Math.min(e2.maxZoom, Math.max(e2.minZoom, e2.scaleZoom(o3 * i3))), "wheel" === this._type && (this._startZoom = e2.zoom, this._easing = this._smoothOutEasing(200)), this._delta = 0; - } - const i2 = "number" == typeof this._targetZoom ? this._targetZoom : e2.zoom, o2 = this._startZoom, a2 = this._easing; - let r2, s2 = false; - if ("wheel" === this._type && o2 && a2) { - const e3 = Math.min((t.exported.now() - this._lastWheelEventTime) / 200, 1), n2 = a2(e3); - r2 = t.number(o2, i2, n2), e3 < 1 ? this._frameId || (this._frameId = true) : s2 = true; + var o2 = "wheel" === this._type && Math.abs(this._delta) > 4.000244140625 ? this._wheelZoomRate : this._defaultZoomRate, r2 = 2 / (1 + Math.exp(-Math.abs(this._delta * o2))); + this._delta < 0 && 0 !== r2 && (r2 = 1 / r2); + var a2 = "number" == typeof this._targetZoom ? i2.zoomScale(this._targetZoom) : i2.scale; + this._targetZoom = Math.min(i2.maxZoom, Math.max(i2.minZoom, i2.scaleZoom(a2 * r2))), "wheel" === this._type && (this._startZoom = i2.zoom, this._easing = this._smoothOutEasing(200)), this._delta = 0; + } + var n2, s2 = "number" == typeof this._targetZoom ? this._targetZoom : i2.zoom, l2 = this._startZoom, c3 = this._easing, u2 = false; + if ("wheel" === this._type && l2 && c3) { + var h3 = Math.min((t.browser.now() - this._lastWheelEventTime) / 200, 1), p3 = c3(h3); + n2 = t.number(l2, s2, p3), h3 < 1 ? this._frameId || (this._frameId = true) : u2 = true; } else - r2 = i2, s2 = true; - return this._active = true, s2 && (this._active = false, this._finishTimeout = setTimeout(() => { - this._zooming = false, this._handler._triggerRenderFrame(), delete this._targetZoom, delete this._finishTimeout; - }, 200)), { noInertia: true, needsRenderFrame: !s2, zoomDelta: r2 - e2.zoom, around: this._aroundPoint, originalEvent: this._lastWheelEvent }; - } - _smoothOutEasing(e2) { - let i2 = t.ease; - if (this._prevEase) { - const e3 = this._prevEase, o2 = (t.exported.now() - e3.start) / e3.duration, a2 = e3.easing(o2 + 0.01) - e3.easing(o2), r2 = 0.27 / Math.sqrt(a2 * a2 + 1e-4) * 0.01, s2 = Math.sqrt(0.0729 - r2 * r2); - i2 = t.bezier(r2, s2, 0.25, 1); + n2 = s2, u2 = true; + return this._active = true, u2 && (this._active = false, this._finishTimeout = setTimeout(function() { + e2._zooming = false, e2._handler._triggerRenderFrame(), delete e2._targetZoom, delete e2._finishTimeout; + }, 200)), { noInertia: true, needsRenderFrame: !u2, zoomDelta: n2 - i2.zoom, around: this._aroundPoint, originalEvent: this._lastWheelEvent }; + } + }, sr.prototype._smoothOutEasing = function(e2) { + var i2 = t.ease; + if (this._prevEase) { + var o2 = this._prevEase, r2 = (t.browser.now() - o2.start) / o2.duration, a2 = o2.easing(r2 + 0.01) - o2.easing(r2), n2 = 0.27 / Math.sqrt(a2 * a2 + 1e-4) * 0.01, s2 = Math.sqrt(0.0729 - n2 * n2); + i2 = t.bezier(n2, s2, 0.25, 1); + } + return this._prevEase = { start: t.browser.now(), duration: e2, easing: i2 }, i2; + }, sr.prototype.blur = function() { + this.reset(); + }, sr.prototype.reset = function() { + this._active = false; + }; + var lr = function(t2, e2) { + this._clickZoom = t2, this._tapZoom = e2; + }; + lr.prototype.enable = function() { + this._clickZoom.enable(), this._tapZoom.enable(); + }, lr.prototype.disable = function() { + this._clickZoom.disable(), this._tapZoom.disable(); + }, lr.prototype.isEnabled = function() { + return this._clickZoom.isEnabled() && this._tapZoom.isEnabled(); + }, lr.prototype.isActive = function() { + return this._clickZoom.isActive() || this._tapZoom.isActive(); + }; + var cr = function() { + this.reset(); + }; + cr.prototype.reset = function() { + this._active = false; + }, cr.prototype.blur = function() { + this.reset(); + }, cr.prototype.dblclick = function(t2, e2) { + return t2.preventDefault(), { cameraAnimation: function(i2) { + i2.easeTo({ duration: 300, zoom: i2.getZoom() + (t2.shiftKey ? -1 : 1), around: i2.unproject(e2) }, { originalEvent: t2 }); + } }; + }, cr.prototype.enable = function() { + this._enabled = true; + }, cr.prototype.disable = function() { + this._enabled = false, this.reset(); + }, cr.prototype.isEnabled = function() { + return this._enabled; + }, cr.prototype.isActive = function() { + return this._active; + }; + var ur = function() { + this._tap = new qo({ numTouches: 1, numTaps: 1 }), this.reset(); + }; + ur.prototype.reset = function() { + this._active = false, delete this._swipePoint, delete this._swipeTouch, delete this._tapTime, this._tap.reset(); + }, ur.prototype.touchstart = function(t2, e2, i2) { + this._swipePoint || (this._tapTime && t2.timeStamp - this._tapTime > 500 && this.reset(), this._tapTime ? i2.length > 0 && (this._swipePoint = e2[0], this._swipeTouch = i2[0].identifier) : this._tap.touchstart(t2, e2, i2)); + }, ur.prototype.touchmove = function(t2, e2, i2) { + if (this._tapTime) { + if (this._swipePoint) { + if (i2[0].identifier !== this._swipeTouch) + return; + var o2 = e2[0], r2 = o2.y - this._swipePoint.y; + return this._swipePoint = o2, t2.preventDefault(), this._active = true, { zoomDelta: r2 / 128 }; } - return this._prevEase = { start: t.exported.now(), duration: e2, easing: i2 }, i2; - } - reset() { - this._active = false; - } - } - class Zo { - constructor(t2, e2) { - this._clickZoom = t2, this._tapZoom = e2; - } - enable() { - this._clickZoom.enable(), this._tapZoom.enable(); - } - disable() { - this._clickZoom.disable(), this._tapZoom.disable(); - } - isEnabled() { - return this._clickZoom.isEnabled() && this._tapZoom.isEnabled(); - } - isActive() { - return this._clickZoom.isActive() || this._tapZoom.isActive(); - } - } - class Vo { - constructor() { - this.reset(); - } - reset() { - this._active = false; - } - dblclick(t2, e2) { - return t2.preventDefault(), { cameraAnimation: (i2) => { - i2.easeTo({ duration: 300, zoom: i2.getZoom() + (t2.shiftKey ? -1 : 1), around: i2.unproject(e2) }, { originalEvent: t2 }); - } }; - } - enable() { - this._enabled = true; - } - disable() { - this._enabled = false, this.reset(); - } - isEnabled() { - return this._enabled; - } - isActive() { - return this._active; - } - } - class qo { - constructor() { - this._tap = new bo({ numTouches: 1, numTaps: 1 }), this.reset(); - } - reset() { - this._active = false, delete this._swipePoint, delete this._swipeTouch, delete this._tapTime, this._tap.reset(); - } - touchstart(t2, e2, i2) { - this._swipePoint || (this._tapTime && t2.timeStamp - this._tapTime > 500 && this.reset(), this._tapTime ? i2.length > 0 && (this._swipePoint = e2[0], this._swipeTouch = i2[0].identifier) : this._tap.touchstart(t2, e2, i2)); - } - touchmove(t2, e2, i2) { - if (this._tapTime) { - if (this._swipePoint) { - if (i2[0].identifier !== this._swipeTouch) - return; - const o2 = e2[0], a2 = o2.y - this._swipePoint.y; - return this._swipePoint = o2, t2.preventDefault(), this._active = true, { zoomDelta: a2 / 128 }; - } - } else - this._tap.touchmove(t2, e2, i2); - } - touchend(t2, e2, i2) { - this._tapTime ? this._swipePoint && 0 === i2.length && this.reset() : this._tap.touchend(t2, e2, i2) && (this._tapTime = t2.timeStamp); - } - touchcancel() { - this.reset(); - } - enable() { - this._enabled = true; - } - disable() { - this._enabled = false, this.reset(); - } - isEnabled() { - return this._enabled; - } - isActive() { - return this._active; - } - } - class jo { - constructor(t2, e2, i2) { - this._el = t2, this._mousePan = e2, this._touchPan = i2; - } - enable(t2) { - this._inertiaOptions = t2 || {}, this._mousePan.enable(), this._touchPan.enable(), this._el.classList.add("maplibregl-touch-drag-pan", "mapboxgl-touch-drag-pan"); - } - disable() { - this._mousePan.disable(), this._touchPan.disable(), this._el.classList.remove("maplibregl-touch-drag-pan", "mapboxgl-touch-drag-pan"); - } - isEnabled() { - return this._mousePan.isEnabled() && this._touchPan.isEnabled(); - } - isActive() { - return this._mousePan.isActive() || this._touchPan.isActive(); - } - } - class $o { - constructor(t2, e2, i2) { - this._pitchWithRotate = t2.pitchWithRotate, this._mouseRotate = e2, this._mousePitch = i2; - } - enable() { - this._mouseRotate.enable(), this._pitchWithRotate && this._mousePitch.enable(); - } - disable() { - this._mouseRotate.disable(), this._mousePitch.disable(); - } - isEnabled() { - return this._mouseRotate.isEnabled() && (!this._pitchWithRotate || this._mousePitch.isEnabled()); - } - isActive() { - return this._mouseRotate.isActive() || this._mousePitch.isActive(); - } - } - class Xo { - constructor(t2, e2, i2, o2) { - this._el = t2, this._touchZoom = e2, this._touchRotate = i2, this._tapDragZoom = o2, this._rotationDisabled = false, this._enabled = true; - } - enable(t2) { - this._touchZoom.enable(t2), this._rotationDisabled || this._touchRotate.enable(t2), this._tapDragZoom.enable(), this._el.classList.add("maplibregl-touch-zoom-rotate", "mapboxgl-touch-zoom-rotate"); - } - disable() { - this._touchZoom.disable(), this._touchRotate.disable(), this._tapDragZoom.disable(), this._el.classList.remove("maplibregl-touch-zoom-rotate", "mapboxgl-touch-zoom-rotate"); - } - isEnabled() { - return this._touchZoom.isEnabled() && (this._rotationDisabled || this._touchRotate.isEnabled()) && this._tapDragZoom.isEnabled(); - } - isActive() { - return this._touchZoom.isActive() || this._touchRotate.isActive() || this._tapDragZoom.isActive(); - } - disableRotation() { - this._rotationDisabled = true, this._touchRotate.disable(); - } - enableRotation() { - this._rotationDisabled = false, this._touchZoom.isEnabled() && this._touchRotate.enable(); - } - } - const Wo = (t2) => t2.zoom || t2.drag || t2.pitch || t2.rotate; - class Ho extends t.Event { - } - function Ko(t2) { + } else + this._tap.touchmove(t2, e2, i2); + }, ur.prototype.touchend = function(t2, e2, i2) { + this._tapTime ? this._swipePoint && 0 === i2.length && this.reset() : this._tap.touchend(t2, e2, i2) && (this._tapTime = t2.timeStamp); + }, ur.prototype.touchcancel = function() { + this.reset(); + }, ur.prototype.enable = function() { + this._enabled = true; + }, ur.prototype.disable = function() { + this._enabled = false, this.reset(); + }, ur.prototype.isEnabled = function() { + return this._enabled; + }, ur.prototype.isActive = function() { + return this._active; + }; + var hr = function(t2, e2, i2) { + this._el = t2, this._mousePan = e2, this._touchPan = i2; + }; + hr.prototype.enable = function(t2) { + this._inertiaOptions = t2 || {}, this._mousePan.enable(), this._touchPan.enable(), this._el.classList.add("mapboxgl-touch-drag-pan"); + }, hr.prototype.disable = function() { + this._mousePan.disable(), this._touchPan.disable(), this._el.classList.remove("mapboxgl-touch-drag-pan"); + }, hr.prototype.isEnabled = function() { + return this._mousePan.isEnabled() && this._touchPan.isEnabled(); + }, hr.prototype.isActive = function() { + return this._mousePan.isActive() || this._touchPan.isActive(); + }; + var pr = function(t2, e2, i2) { + this._pitchWithRotate = t2.pitchWithRotate, this._mouseRotate = e2, this._mousePitch = i2; + }; + pr.prototype.enable = function() { + this._mouseRotate.enable(), this._pitchWithRotate && this._mousePitch.enable(); + }, pr.prototype.disable = function() { + this._mouseRotate.disable(), this._mousePitch.disable(); + }, pr.prototype.isEnabled = function() { + return this._mouseRotate.isEnabled() && (!this._pitchWithRotate || this._mousePitch.isEnabled()); + }, pr.prototype.isActive = function() { + return this._mouseRotate.isActive() || this._mousePitch.isActive(); + }; + var dr = function(t2, e2, i2, o2) { + this._el = t2, this._touchZoom = e2, this._touchRotate = i2, this._tapDragZoom = o2, this._rotationDisabled = false, this._enabled = true; + }; + dr.prototype.enable = function(t2) { + this._touchZoom.enable(t2), this._rotationDisabled || this._touchRotate.enable(t2), this._tapDragZoom.enable(), this._el.classList.add("mapboxgl-touch-zoom-rotate"); + }, dr.prototype.disable = function() { + this._touchZoom.disable(), this._touchRotate.disable(), this._tapDragZoom.disable(), this._el.classList.remove("mapboxgl-touch-zoom-rotate"); + }, dr.prototype.isEnabled = function() { + return this._touchZoom.isEnabled() && (this._rotationDisabled || this._touchRotate.isEnabled()) && this._tapDragZoom.isEnabled(); + }, dr.prototype.isActive = function() { + return this._touchZoom.isActive() || this._touchRotate.isActive() || this._tapDragZoom.isActive(); + }, dr.prototype.disableRotation = function() { + this._rotationDisabled = true, this._touchRotate.disable(); + }, dr.prototype.enableRotation = function() { + this._rotationDisabled = false, this._touchZoom.isEnabled() && this._touchRotate.enable(); + }; + var _r = function(t2) { + return t2.zoom || t2.drag || t2.pitch || t2.rotate; + }, fr = function(t2) { + function e2() { + t2.apply(this, arguments); + } + return t2 && (e2.__proto__ = t2), (e2.prototype = Object.create(t2 && t2.prototype)).constructor = e2, e2; + }(t.Event); + function mr(t2) { return t2.panDelta && t2.panDelta.mag() || t2.zoomDelta || t2.bearingDelta || t2.pitchDelta; } - class Yo { - constructor(e2, i2) { - this._map = e2, this._el = this._map.getCanvasContainer(), this._handlers = [], this._handlersById = {}, this._changes = [], this._inertia = new co(e2), this._bearingSnap = i2.bearingSnap, this._previousActiveHandlers = {}, this._eventsInProgress = {}, this._addDefaultHandlers(i2), t.bindAll(["handleEvent", "handleWindowEvent"], this); - const o2 = this._el; - this._listeners = [[o2, "touchstart", { passive: true }], [o2, "touchmove", { passive: false }], [o2, "touchend", void 0], [o2, "touchcancel", void 0], [o2, "mousedown", void 0], [o2, "mousemove", void 0], [o2, "mouseup", void 0], [document, "mousemove", { capture: true }], [document, "mouseup", void 0], [o2, "mouseover", void 0], [o2, "mouseout", void 0], [o2, "dblclick", void 0], [o2, "click", void 0], [o2, "keydown", { capture: false }], [o2, "keyup", void 0], [o2, "wheel", { passive: false }], [o2, "contextmenu", void 0], [window, "blur", void 0]]; - for (const [t2, e3, i3] of this._listeners) - r.addEventListener(t2, e3, t2 === document ? this.handleWindowEvent : this.handleEvent, i3); - } - destroy() { - for (const [t2, e2, i2] of this._listeners) - r.removeEventListener(t2, e2, t2 === document ? this.handleWindowEvent : this.handleEvent, i2); - } - _addDefaultHandlers(t2) { - const e2 = this._map, i2 = e2.getCanvasContainer(); - this._add("mapEvent", new fo(e2, t2)); - const o2 = e2.boxZoom = new xo(e2, t2); - this._add("boxZoom", o2); - const a2 = new wo(), r2 = new Vo(); - e2.doubleClickZoom = new Zo(r2, a2), this._add("tapZoom", a2), this._add("clickZoom", r2); - const s2 = new qo(); - this._add("tapDragZoom", s2); - const n2 = e2.touchPitch = new Bo(e2); - this._add("touchPitch", n2); - const l2 = new Co(t2), c3 = new So(t2); - e2.dragRotate = new $o(t2, l2, c3), this._add("mouseRotate", l2, ["mousePitch"]), this._add("mousePitch", c3, ["mouseRotate"]); - const h3 = new Io(t2), u2 = new Do(t2, e2); - e2.dragPan = new jo(i2, h3, u2), this._add("mousePan", h3), this._add("touchPan", u2, ["touchZoom", "touchRotate"]); - const d2 = new Ro(), m2 = new Ao(); - e2.touchZoomRotate = new Xo(i2, m2, d2, s2), this._add("touchRotate", d2, ["touchPan", "touchZoom"]), this._add("touchZoom", m2, ["touchPan", "touchRotate"]); - const _2 = e2.scrollZoom = new Go(e2, this); - this._add("scrollZoom", _2, ["mousePan"]); - const p3 = e2.keyboard = new Oo(); - this._add("keyboard", p3), this._add("blockableMapEvent", new go(e2)); - for (const i3 of ["boxZoom", "doubleClickZoom", "tapDragZoom", "touchPitch", "dragRotate", "dragPan", "touchZoomRotate", "scrollZoom", "keyboard"]) - t2.interactive && t2[i3] && e2[i3].enable(t2[i3]); - } - _add(t2, e2, i2) { - this._handlers.push({ handlerName: t2, handler: e2, allowed: i2 }), this._handlersById[t2] = e2; - } - stop(t2) { - if (!this._updatingCamera) { - for (const { handler: t3 } of this._handlers) - t3.reset(); - this._inertia.clear(), this._fireEvents({}, {}, t2), this._changes = []; - } - } - isActive() { - for (const { handler: t2 } of this._handlers) - if (t2.isActive()) - return true; - return false; - } - isZooming() { - return !!this._eventsInProgress.zoom || this._map.scrollZoom.isZooming(); - } - isRotating() { - return !!this._eventsInProgress.rotate; - } - isMoving() { - return Boolean(Wo(this._eventsInProgress)) || this.isZooming(); + var gr = function(e2, o2) { + this._map = e2, this._el = this._map.getCanvasContainer(), this._handlers = [], this._handlersById = {}, this._changes = [], this._inertia = new Ao(e2), this._bearingSnap = o2.bearingSnap, this._previousActiveHandlers = {}, this._eventsInProgress = {}, this._addDefaultHandlers(o2), t.bindAll(["handleEvent", "handleWindowEvent"], this); + var r2 = this._el; + this._listeners = [[r2, "touchstart", { passive: true }], [r2, "touchmove", { passive: false }], [r2, "touchend", void 0], [r2, "touchcancel", void 0], [r2, "mousedown", void 0], [r2, "mousemove", void 0], [r2, "mouseup", void 0], [t.window.document, "mousemove", { capture: true }], [t.window.document, "mouseup", void 0], [r2, "mouseover", void 0], [r2, "mouseout", void 0], [r2, "dblclick", void 0], [r2, "click", void 0], [r2, "keydown", { capture: false }], [r2, "keyup", void 0], [r2, "wheel", { passive: false }], [r2, "contextmenu", void 0], [t.window, "blur", void 0]]; + for (var a2 = 0, n2 = this._listeners; a2 < n2.length; a2 += 1) { + var s2 = n2[a2], l2 = s2[0]; + i.addEventListener(l2, s2[1], l2 === t.window.document ? this.handleWindowEvent : this.handleEvent, s2[2]); } - _blockedByActive(t2, e2, i2) { - for (const o2 in t2) - if (o2 !== i2 && (!e2 || e2.indexOf(o2) < 0)) - return true; - return false; - } - handleWindowEvent(t2) { - this.handleEvent(t2, `${t2.type}Window`); - } - _getMapTouches(t2) { - const e2 = []; - for (const i2 of t2) - this._el.contains(i2.target) && e2.push(i2); - return e2; - } - handleEvent(t2, e2) { - if ("blur" === t2.type) - return void this.stop(true); - this._updatingCamera = true; - const i2 = "renderFrame" === t2.type ? void 0 : t2, o2 = { needsRenderFrame: false }, a2 = {}, s2 = {}, n2 = t2.touches, l2 = n2 ? this._getMapTouches(n2) : void 0, c3 = l2 ? r.touchPos(this._el, l2) : r.mousePos(this._el, t2); - for (const { handlerName: r2, handler: n3, allowed: h4 } of this._handlers) { - if (!n3.isEnabled()) - continue; - let u3; - this._blockedByActive(s2, h4, r2) ? n3.reset() : n3[e2 || t2.type] && (u3 = n3[e2 || t2.type](t2, c3, l2), this.mergeHandlerResult(o2, a2, u3, r2, i2), u3 && u3.needsRenderFrame && this._triggerRenderFrame()), (u3 || n3.isActive()) && (s2[r2] = n3); - } - const h3 = {}; - for (const t3 in this._previousActiveHandlers) - s2[t3] || (h3[t3] = i2); - this._previousActiveHandlers = s2, (Object.keys(h3).length || Ko(o2)) && (this._changes.push([o2, a2, h3]), this._triggerRenderFrame()), (Object.keys(s2).length || Ko(o2)) && this._map._stop(true), this._updatingCamera = false; - const { cameraAnimation: u2 } = o2; - u2 && (this._inertia.clear(), this._fireEvents({}, {}, true), this._changes = [], u2(this._map)); + }; + gr.prototype.destroy = function() { + for (var e2 = 0, o2 = this._listeners; e2 < o2.length; e2 += 1) { + var r2 = o2[e2], a2 = r2[0]; + i.removeEventListener(a2, r2[1], a2 === t.window.document ? this.handleWindowEvent : this.handleEvent, r2[2]); + } + }, gr.prototype._addDefaultHandlers = function(t2) { + var e2 = this._map, i2 = e2.getCanvasContainer(); + this._add("mapEvent", new Oo(e2, t2)); + var o2 = e2.boxZoom = new Uo(e2, t2); + this._add("boxZoom", o2); + var r2 = new jo(), a2 = new cr(); + e2.doubleClickZoom = new lr(a2, r2), this._add("tapZoom", r2), this._add("clickZoom", a2); + var n2 = new ur(); + this._add("tapDragZoom", n2); + var s2 = e2.touchPitch = new or(); + this._add("touchPitch", s2); + var l2 = new Xo(t2), c3 = new Ho(t2); + e2.dragRotate = new pr(t2, l2, c3), this._add("mouseRotate", l2, ["mousePitch"]), this._add("mousePitch", c3, ["mouseRotate"]); + var u2 = new Wo(t2), h3 = new Ko(t2); + e2.dragPan = new hr(i2, u2, h3), this._add("mousePan", u2), this._add("touchPan", h3, ["touchZoom", "touchRotate"]); + var p3 = new er(), d2 = new $o(); + e2.touchZoomRotate = new dr(i2, d2, p3, n2), this._add("touchRotate", p3, ["touchPan", "touchZoom"]), this._add("touchZoom", d2, ["touchPan", "touchRotate"]); + var _2 = e2.scrollZoom = new sr(e2, this); + this._add("scrollZoom", _2, ["mousePan"]); + var f2 = e2.keyboard = new ar(); + this._add("keyboard", f2), this._add("blockableMapEvent", new Fo(e2)); + for (var m2 = 0, g2 = ["boxZoom", "doubleClickZoom", "tapDragZoom", "touchPitch", "dragRotate", "dragPan", "touchZoomRotate", "scrollZoom", "keyboard"]; m2 < g2.length; m2 += 1) { + var v3 = g2[m2]; + t2.interactive && t2[v3] && e2[v3].enable(t2[v3]); + } + }, gr.prototype._add = function(t2, e2, i2) { + this._handlers.push({ handlerName: t2, handler: e2, allowed: i2 }), this._handlersById[t2] = e2; + }, gr.prototype.stop = function(t2) { + if (!this._updatingCamera) { + for (var e2 = 0, i2 = this._handlers; e2 < i2.length; e2 += 1) + i2[e2].handler.reset(); + this._inertia.clear(), this._fireEvents({}, {}, t2), this._changes = []; + } + }, gr.prototype.isActive = function() { + for (var t2 = 0, e2 = this._handlers; t2 < e2.length; t2 += 1) + if (e2[t2].handler.isActive()) + return true; + return false; + }, gr.prototype.isZooming = function() { + return !!this._eventsInProgress.zoom || this._map.scrollZoom.isZooming(); + }, gr.prototype.isRotating = function() { + return !!this._eventsInProgress.rotate; + }, gr.prototype.isMoving = function() { + return Boolean(_r(this._eventsInProgress)) || this.isZooming(); + }, gr.prototype._blockedByActive = function(t2, e2, i2) { + for (var o2 in t2) + if (o2 !== i2 && (!e2 || e2.indexOf(o2) < 0)) + return true; + return false; + }, gr.prototype.handleWindowEvent = function(t2) { + this.handleEvent(t2, t2.type + "Window"); + }, gr.prototype._getMapTouches = function(t2) { + for (var e2 = [], i2 = 0, o2 = t2; i2 < o2.length; i2 += 1) { + var r2 = o2[i2]; + this._el.contains(r2.target) && e2.push(r2); } - mergeHandlerResult(e2, i2, o2, a2, r2) { - if (!o2) - return; + return e2; + }, gr.prototype.handleEvent = function(t2, e2) { + this._updatingCamera = true; + for (var o2 = "renderFrame" === t2.type ? void 0 : t2, r2 = { needsRenderFrame: false }, a2 = {}, n2 = {}, s2 = t2.touches ? this._getMapTouches(t2.touches) : void 0, l2 = s2 ? i.touchPos(this._el, s2) : i.mousePos(this._el, t2), c3 = 0, u2 = this._handlers; c3 < u2.length; c3 += 1) { + var h3 = u2[c3], p3 = h3.handlerName, d2 = h3.handler, _2 = h3.allowed; + if (d2.isEnabled()) { + var f2 = void 0; + this._blockedByActive(n2, _2, p3) ? d2.reset() : d2[e2 || t2.type] && (f2 = d2[e2 || t2.type](t2, l2, s2), this.mergeHandlerResult(r2, a2, f2, p3, o2), f2 && f2.needsRenderFrame && this._triggerRenderFrame()), (f2 || d2.isActive()) && (n2[p3] = d2); + } + } + var m2 = {}; + for (var g2 in this._previousActiveHandlers) + n2[g2] || (m2[g2] = o2); + this._previousActiveHandlers = n2, (Object.keys(m2).length || mr(r2)) && (this._changes.push([r2, a2, m2]), this._triggerRenderFrame()), (Object.keys(n2).length || mr(r2)) && this._map._stop(true), this._updatingCamera = false; + var v3 = r2.cameraAnimation; + v3 && (this._inertia.clear(), this._fireEvents({}, {}, true), this._changes = [], v3(this._map)); + }, gr.prototype.mergeHandlerResult = function(e2, i2, o2, r2, a2) { + if (o2) { t.extend(e2, o2); - const s2 = { handlerName: a2, originalEvent: o2.originalEvent || r2 }; - void 0 !== o2.zoomDelta && (i2.zoom = s2), void 0 !== o2.panDelta && (i2.drag = s2), void 0 !== o2.pitchDelta && (i2.pitch = s2), void 0 !== o2.bearingDelta && (i2.rotate = s2); - } - _applyChanges() { - const e2 = {}, i2 = {}, o2 = {}; - for (const [a2, r2, s2] of this._changes) - a2.panDelta && (e2.panDelta = (e2.panDelta || new t.pointGeometry(0, 0))._add(a2.panDelta)), a2.zoomDelta && (e2.zoomDelta = (e2.zoomDelta || 0) + a2.zoomDelta), a2.bearingDelta && (e2.bearingDelta = (e2.bearingDelta || 0) + a2.bearingDelta), a2.pitchDelta && (e2.pitchDelta = (e2.pitchDelta || 0) + a2.pitchDelta), void 0 !== a2.around && (e2.around = a2.around), void 0 !== a2.pinchAround && (e2.pinchAround = a2.pinchAround), a2.noInertia && (e2.noInertia = a2.noInertia), t.extend(i2, r2), t.extend(o2, s2); - this._updateMapTransform(e2, i2, o2), this._changes = []; - } - _updateMapTransform(e2, i2, o2) { - const a2 = this._map, r2 = a2.transform, s2 = a2.style && a2.style.terrain; - if (!(Ko(e2) || s2 && this._drag)) - return this._fireEvents(i2, o2, true); - let { panDelta: n2, zoomDelta: l2, bearingDelta: c3, pitchDelta: h3, around: u2, pinchAround: d2 } = e2; - void 0 !== d2 && (u2 = d2), a2._stop(true), u2 = u2 || a2.transform.centerPoint; - const m2 = r2.pointLocation(n2 ? u2.sub(n2) : u2); - c3 && (r2.bearing += c3), h3 && (r2.pitch += h3), l2 && (r2.zoom += l2), s2 ? i2.drag && !this._drag ? (this._drag = { center: r2.centerPoint, lngLat: r2.pointLocation(u2), point: u2, handlerName: i2.drag.handlerName }, a2.fire(new t.Event("freezeElevation", { freeze: true }))) : this._drag && o2[this._drag.handlerName] ? (a2.fire(new t.Event("freezeElevation", { freeze: false })), this._drag = null) : i2.drag && this._drag && (r2.center = r2.pointLocation(r2.centerPoint.sub(n2))) : r2.setLocationAtPoint(m2, u2), this._map._update(), e2.noInertia || this._inertia.record(e2), this._fireEvents(i2, o2, true); - } - _fireEvents(e2, i2, o2) { - const a2 = Wo(this._eventsInProgress), r2 = Wo(e2), s2 = {}; - for (const t2 in e2) { - const { originalEvent: i3 } = e2[t2]; - this._eventsInProgress[t2] || (s2[`${t2}start`] = i3), this._eventsInProgress[t2] = e2[t2]; - } - !a2 && r2 && this._fireEvent("movestart", r2.originalEvent); - for (const t2 in s2) - this._fireEvent(t2, s2[t2]); - r2 && this._fireEvent("move", r2.originalEvent); - for (const t2 in e2) { - const { originalEvent: i3 } = e2[t2]; - this._fireEvent(t2, i3); - } - const n2 = {}; - let l2; - for (const t2 in this._eventsInProgress) { - const { handlerName: e3, originalEvent: o3 } = this._eventsInProgress[t2]; - this._handlersById[e3].isActive() || (delete this._eventsInProgress[t2], l2 = i2[e3] || o3, n2[`${t2}end`] = l2); - } - for (const t2 in n2) - this._fireEvent(t2, n2[t2]); - const c3 = Wo(this._eventsInProgress); - if (o2 && (a2 || r2) && !c3) { - this._updatingCamera = true; - const e3 = this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions), i3 = (t2) => 0 !== t2 && -this._bearingSnap < t2 && t2 < this._bearingSnap; - e3 ? (i3(e3.bearing || this._map.getBearing()) && (e3.bearing = 0), this._map.easeTo(e3, { originalEvent: l2 })) : (this._map.fire(new t.Event("moveend", { originalEvent: l2 })), i3(this._map.getBearing()) && this._map.resetNorth()), this._updatingCamera = false; - } - } - _fireEvent(e2, i2) { - this._map.fire(new t.Event(e2, i2 ? { originalEvent: i2 } : {})); - } - _requestFrame() { - return this._map.triggerRepaint(), this._map._renderTaskQueue.add((t2) => { - delete this._frameId, this.handleEvent(new Ho("renderFrame", { timeStamp: t2 })), this._applyChanges(); - }); - } - _triggerRenderFrame() { - void 0 === this._frameId && (this._frameId = this._requestFrame()); - } - } - const Jo = { extend: (e2, ...i2) => t.extend(e2, ...i2), run(t2) { - t2(); - }, logToElement(t2, e2 = false, i2 = "log") { - const o2 = window.document.getElementById(i2); - o2 && (e2 && (o2.innerHTML = ""), o2.innerHTML += `
${t2}`); - } }; - class Qo extends t.Evented { - constructor(e2, i2) { - super(), this._moving = false, this._zooming = false, this.transform = e2, this._bearingSnap = i2.bearingSnap, t.bindAll(["_renderFrameCallback"], this); + var n2 = { handlerName: r2, originalEvent: o2.originalEvent || a2 }; + void 0 !== o2.zoomDelta && (i2.zoom = n2), void 0 !== o2.panDelta && (i2.drag = n2), void 0 !== o2.pitchDelta && (i2.pitch = n2), void 0 !== o2.bearingDelta && (i2.rotate = n2); + } + }, gr.prototype._applyChanges = function() { + for (var e2 = {}, i2 = {}, o2 = {}, r2 = 0, a2 = this._changes; r2 < a2.length; r2 += 1) { + var n2 = a2[r2], s2 = n2[0], l2 = n2[1], c3 = n2[2]; + s2.panDelta && (e2.panDelta = (e2.panDelta || new t.Point(0, 0))._add(s2.panDelta)), s2.zoomDelta && (e2.zoomDelta = (e2.zoomDelta || 0) + s2.zoomDelta), s2.bearingDelta && (e2.bearingDelta = (e2.bearingDelta || 0) + s2.bearingDelta), s2.pitchDelta && (e2.pitchDelta = (e2.pitchDelta || 0) + s2.pitchDelta), void 0 !== s2.around && (e2.around = s2.around), void 0 !== s2.pinchAround && (e2.pinchAround = s2.pinchAround), s2.noInertia && (e2.noInertia = s2.noInertia), t.extend(i2, l2), t.extend(o2, c3); + } + this._updateMapTransform(e2, i2, o2), this._changes = []; + }, gr.prototype._updateMapTransform = function(t2, e2, i2) { + var o2 = this._map, r2 = o2.transform; + if (!mr(t2)) + return this._fireEvents(e2, i2, true); + var a2 = t2.panDelta, n2 = t2.zoomDelta, s2 = t2.bearingDelta, l2 = t2.pitchDelta, c3 = t2.around, u2 = t2.pinchAround; + void 0 !== u2 && (c3 = u2), o2._stop(true), c3 = c3 || o2.transform.centerPoint; + var h3 = r2.pointLocation(a2 ? c3.sub(a2) : c3); + s2 && (r2.bearing += s2), l2 && (r2.pitch += l2), n2 && (r2.zoom += n2), r2.setLocationAtPoint(h3, c3), this._map._update(), t2.noInertia || this._inertia.record(t2), this._fireEvents(e2, i2, true); + }, gr.prototype._fireEvents = function(e2, i2, o2) { + var r2 = this, a2 = _r(this._eventsInProgress), n2 = _r(e2), s2 = {}; + for (var l2 in e2) + this._eventsInProgress[l2] || (s2[l2 + "start"] = e2[l2].originalEvent), this._eventsInProgress[l2] = e2[l2]; + for (var c3 in !a2 && n2 && this._fireEvent("movestart", n2.originalEvent), s2) + this._fireEvent(c3, s2[c3]); + for (var u2 in n2 && this._fireEvent("move", n2.originalEvent), e2) + this._fireEvent(u2, e2[u2].originalEvent); + var h3, p3 = {}; + for (var d2 in this._eventsInProgress) { + var _2 = this._eventsInProgress[d2], f2 = _2.handlerName, m2 = _2.originalEvent; + this._handlersById[f2].isActive() || (delete this._eventsInProgress[d2], p3[d2 + "end"] = h3 = i2[f2] || m2); + } + for (var g2 in p3) + this._fireEvent(g2, p3[g2]); + var v3 = _r(this._eventsInProgress); + if (o2 && (a2 || n2) && !v3) { + this._updatingCamera = true; + var y3 = this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions), x2 = function(t2) { + return 0 !== t2 && -r2._bearingSnap < t2 && t2 < r2._bearingSnap; + }; + y3 ? (x2(y3.bearing || this._map.getBearing()) && (y3.bearing = 0), this._map.easeTo(y3, { originalEvent: h3 })) : (this._map.fire(new t.Event("moveend", { originalEvent: h3 })), x2(this._map.getBearing()) && this._map.resetNorth()), this._updatingCamera = false; + } + }, gr.prototype._fireEvent = function(e2, i2) { + this._map.fire(new t.Event(e2, i2 ? { originalEvent: i2 } : {})); + }, gr.prototype._requestFrame = function() { + var t2 = this; + return this._map.triggerRepaint(), this._map._renderTaskQueue.add(function(e2) { + delete t2._frameId, t2.handleEvent(new fr("renderFrame", { timeStamp: e2 })), t2._applyChanges(); + }); + }, gr.prototype._triggerRenderFrame = function() { + void 0 === this._frameId && (this._frameId = this._requestFrame()); + }; + var vr = function(e2) { + function i2(i3, o2) { + e2.call(this), this._moving = false, this._zooming = false, this.transform = i3, this._bearingSnap = o2.bearingSnap, t.bindAll(["_renderFrameCallback"], this); } - getCenter() { + return e2 && (i2.__proto__ = e2), (i2.prototype = Object.create(e2 && e2.prototype)).constructor = i2, i2.prototype.getCenter = function() { return new t.LngLat(this.transform.center.lng, this.transform.center.lat); - } - setCenter(t2, e2) { - return this.jumpTo({ center: t2 }, e2); - } - panBy(e2, i2, o2) { - return e2 = t.pointGeometry.convert(e2).mult(-1), this.panTo(this.transform.center, t.extend({ offset: e2 }, i2), o2); - } - panTo(e2, i2, o2) { - return this.easeTo(t.extend({ center: e2 }, i2), o2); - } - getZoom() { + }, i2.prototype.setCenter = function(t2, e3) { + return this.jumpTo({ center: t2 }, e3); + }, i2.prototype.panBy = function(e3, i3, o2) { + return e3 = t.Point.convert(e3).mult(-1), this.panTo(this.transform.center, t.extend({ offset: e3 }, i3), o2); + }, i2.prototype.panTo = function(e3, i3, o2) { + return this.easeTo(t.extend({ center: e3 }, i3), o2); + }, i2.prototype.getZoom = function() { return this.transform.zoom; - } - setZoom(t2, e2) { - return this.jumpTo({ zoom: t2 }, e2), this; - } - zoomTo(e2, i2, o2) { - return this.easeTo(t.extend({ zoom: e2 }, i2), o2); - } - zoomIn(t2, e2) { - return this.zoomTo(this.getZoom() + 1, t2, e2), this; - } - zoomOut(t2, e2) { - return this.zoomTo(this.getZoom() - 1, t2, e2), this; - } - getBearing() { + }, i2.prototype.setZoom = function(t2, e3) { + return this.jumpTo({ zoom: t2 }, e3), this; + }, i2.prototype.zoomTo = function(e3, i3, o2) { + return this.easeTo(t.extend({ zoom: e3 }, i3), o2); + }, i2.prototype.zoomIn = function(t2, e3) { + return this.zoomTo(this.getZoom() + 1, t2, e3), this; + }, i2.prototype.zoomOut = function(t2, e3) { + return this.zoomTo(this.getZoom() - 1, t2, e3), this; + }, i2.prototype.getBearing = function() { return this.transform.bearing; - } - setBearing(t2, e2) { - return this.jumpTo({ bearing: t2 }, e2), this; - } - getPadding() { + }, i2.prototype.setBearing = function(t2, e3) { + return this.jumpTo({ bearing: t2 }, e3), this; + }, i2.prototype.getPadding = function() { return this.transform.padding; - } - setPadding(t2, e2) { - return this.jumpTo({ padding: t2 }, e2), this; - } - rotateTo(e2, i2, o2) { - return this.easeTo(t.extend({ bearing: e2 }, i2), o2); - } - resetNorth(e2, i2) { - return this.rotateTo(0, t.extend({ duration: 1e3 }, e2), i2), this; - } - resetNorthPitch(e2, i2) { - return this.easeTo(t.extend({ bearing: 0, pitch: 0, duration: 1e3 }, e2), i2), this; - } - snapToNorth(t2, e2) { - return Math.abs(this.getBearing()) < this._bearingSnap ? this.resetNorth(t2, e2) : this; - } - getPitch() { + }, i2.prototype.setPadding = function(t2, e3) { + return this.jumpTo({ padding: t2 }, e3), this; + }, i2.prototype.rotateTo = function(e3, i3, o2) { + return this.easeTo(t.extend({ bearing: e3 }, i3), o2); + }, i2.prototype.resetNorth = function(e3, i3) { + return this.rotateTo(0, t.extend({ duration: 1e3 }, e3), i3), this; + }, i2.prototype.resetNorthPitch = function(e3, i3) { + return this.easeTo(t.extend({ bearing: 0, pitch: 0, duration: 1e3 }, e3), i3), this; + }, i2.prototype.snapToNorth = function(t2, e3) { + return Math.abs(this.getBearing()) < this._bearingSnap ? this.resetNorth(t2, e3) : this; + }, i2.prototype.getPitch = function() { return this.transform.pitch; - } - setPitch(t2, e2) { - return this.jumpTo({ pitch: t2 }, e2), this; - } - cameraForBounds(e2, i2) { - e2 = t.LngLatBounds.convert(e2); - const o2 = i2 && i2.bearing || 0; - return this._cameraForBoxAndBearing(e2.getNorthWest(), e2.getSouthEast(), o2, i2); - } - _cameraForBoxAndBearing(e2, i2, o2, a2) { - const r2 = { top: 0, bottom: 0, right: 0, left: 0 }; - if ("number" == typeof (a2 = t.extend({ padding: r2, offset: [0, 0], maxZoom: this.transform.maxZoom }, a2)).padding) { - const t2 = a2.padding; - a2.padding = { top: t2, bottom: t2, right: t2, left: t2 }; - } - a2.padding = t.extend(r2, a2.padding); - const s2 = this.transform, n2 = s2.padding, l2 = s2.project(t.LngLat.convert(e2)), c3 = s2.project(t.LngLat.convert(i2)), h3 = l2.rotate(-o2 * Math.PI / 180), u2 = c3.rotate(-o2 * Math.PI / 180), d2 = new t.pointGeometry(Math.max(h3.x, u2.x), Math.max(h3.y, u2.y)), m2 = new t.pointGeometry(Math.min(h3.x, u2.x), Math.min(h3.y, u2.y)), _2 = d2.sub(m2), p3 = (s2.width - (n2.left + n2.right + a2.padding.left + a2.padding.right)) / _2.x, f2 = (s2.height - (n2.top + n2.bottom + a2.padding.top + a2.padding.bottom)) / _2.y; - if (f2 < 0 || p3 < 0) - return void t.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset."); - const g2 = Math.min(s2.scaleZoom(s2.scale * Math.min(p3, f2)), a2.maxZoom), x2 = t.pointGeometry.convert(a2.offset), v3 = new t.pointGeometry((a2.padding.left - a2.padding.right) / 2, (a2.padding.top - a2.padding.bottom) / 2).rotate(o2 * Math.PI / 180), y3 = x2.add(v3).mult(s2.scale / s2.zoomScale(g2)); - return { center: s2.unproject(l2.add(c3).div(2).sub(y3)), zoom: g2, bearing: o2 }; - } - fitBounds(t2, e2, i2) { - return this._fitInternal(this.cameraForBounds(t2, e2), e2, i2); - } - fitScreenCoordinates(e2, i2, o2, a2, r2) { - return this._fitInternal(this._cameraForBoxAndBearing(this.transform.pointLocation(t.pointGeometry.convert(e2)), this.transform.pointLocation(t.pointGeometry.convert(i2)), o2, a2), a2, r2); - } - _fitInternal(e2, i2, o2) { - return e2 ? (delete (i2 = t.extend(e2, i2)).padding, i2.linear ? this.easeTo(i2, o2) : this.flyTo(i2, o2)) : this; - } - jumpTo(e2, i2) { + }, i2.prototype.setPitch = function(t2, e3) { + return this.jumpTo({ pitch: t2 }, e3), this; + }, i2.prototype.cameraForBounds = function(e3, i3) { + e3 = t.LngLatBounds.convert(e3); + var o2 = i3 && i3.bearing || 0; + return this._cameraForBoxAndBearing(e3.getNorthWest(), e3.getSouthEast(), o2, i3); + }, i2.prototype._cameraForBoxAndBearing = function(e3, i3, o2, r2) { + var a2 = { top: 0, bottom: 0, right: 0, left: 0 }; + if ("number" == typeof (r2 = t.extend({ padding: a2, offset: [0, 0], maxZoom: this.transform.maxZoom }, r2)).padding) { + var n2 = r2.padding; + r2.padding = { top: n2, bottom: n2, right: n2, left: n2 }; + } + r2.padding = t.extend(a2, r2.padding); + var s2 = this.transform, l2 = s2.padding, c3 = s2.project(t.LngLat.convert(e3)), u2 = s2.project(t.LngLat.convert(i3)), h3 = c3.rotate(-o2 * Math.PI / 180), p3 = u2.rotate(-o2 * Math.PI / 180), d2 = new t.Point(Math.max(h3.x, p3.x), Math.max(h3.y, p3.y)), _2 = new t.Point(Math.min(h3.x, p3.x), Math.min(h3.y, p3.y)), f2 = d2.sub(_2), m2 = (s2.width - (l2.left + l2.right + r2.padding.left + r2.padding.right)) / f2.x, g2 = (s2.height - (l2.top + l2.bottom + r2.padding.top + r2.padding.bottom)) / f2.y; + if (!(g2 < 0 || m2 < 0)) { + var v3 = Math.min(s2.scaleZoom(s2.scale * Math.min(m2, g2)), r2.maxZoom), y3 = "number" == typeof r2.offset.x ? new t.Point(r2.offset.x, r2.offset.y) : t.Point.convert(r2.offset), x2 = new t.Point((r2.padding.left - r2.padding.right) / 2, (r2.padding.top - r2.padding.bottom) / 2).rotate(o2 * Math.PI / 180), b2 = y3.add(x2).mult(s2.scale / s2.zoomScale(v3)); + return { center: s2.unproject(c3.add(u2).div(2).sub(b2)), zoom: v3, bearing: o2 }; + } + t.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset."); + }, i2.prototype.fitBounds = function(t2, e3, i3) { + return this._fitInternal(this.cameraForBounds(t2, e3), e3, i3); + }, i2.prototype.fitScreenCoordinates = function(e3, i3, o2, r2, a2) { + return this._fitInternal(this._cameraForBoxAndBearing(this.transform.pointLocation(t.Point.convert(e3)), this.transform.pointLocation(t.Point.convert(i3)), o2, r2), r2, a2); + }, i2.prototype._fitInternal = function(e3, i3, o2) { + return e3 ? (delete (i3 = t.extend(e3, i3)).padding, i3.linear ? this.easeTo(i3, o2) : this.flyTo(i3, o2)) : this; + }, i2.prototype.jumpTo = function(e3, i3) { this.stop(); - const o2 = this.transform; - let a2 = false, r2 = false, s2 = false; - return "zoom" in e2 && o2.zoom !== +e2.zoom && (a2 = true, o2.zoom = +e2.zoom), void 0 !== e2.center && (o2.center = t.LngLat.convert(e2.center)), "bearing" in e2 && o2.bearing !== +e2.bearing && (r2 = true, o2.bearing = +e2.bearing), "pitch" in e2 && o2.pitch !== +e2.pitch && (s2 = true, o2.pitch = +e2.pitch), null == e2.padding || o2.isPaddingEqual(e2.padding) || (o2.padding = e2.padding), this.fire(new t.Event("movestart", i2)).fire(new t.Event("move", i2)), a2 && this.fire(new t.Event("zoomstart", i2)).fire(new t.Event("zoom", i2)).fire(new t.Event("zoomend", i2)), r2 && this.fire(new t.Event("rotatestart", i2)).fire(new t.Event("rotate", i2)).fire(new t.Event("rotateend", i2)), s2 && this.fire(new t.Event("pitchstart", i2)).fire(new t.Event("pitch", i2)).fire(new t.Event("pitchend", i2)), this.fire(new t.Event("moveend", i2)); - } - calculateCameraOptionsFromTo(e2, i2, o2, a2 = 0) { - const r2 = t.MercatorCoordinate.fromLngLat(e2, i2), s2 = t.MercatorCoordinate.fromLngLat(o2, a2), n2 = s2.x - r2.x, l2 = s2.y - r2.y, c3 = s2.z - r2.z, h3 = Math.hypot(n2, l2, c3); - if (0 === h3) - throw new Error("Can't calculate camera options with same From and To"); - const u2 = Math.hypot(n2, l2), d2 = this.transform.scaleZoom(this.transform.cameraToCenterDistance / h3 / this.transform.tileSize), m2 = 180 * Math.atan2(n2, -l2) / Math.PI; - let _2 = 180 * Math.acos(u2 / h3) / Math.PI; - return _2 = c3 < 0 ? 90 - _2 : 90 + _2, { center: s2.toLngLat(), zoom: d2, pitch: _2, bearing: m2 }; - } - easeTo(e2, i2) { - this._stop(false, e2.easeId), (false === (e2 = t.extend({ offset: [0, 0], duration: 500, easing: t.ease }, e2)).animate || !e2.essential && t.exported.prefersReducedMotion) && (e2.duration = 0); - const o2 = this.transform, a2 = this.getZoom(), r2 = this.getBearing(), s2 = this.getPitch(), n2 = this.getPadding(), l2 = "zoom" in e2 ? +e2.zoom : a2, c3 = "bearing" in e2 ? this._normalizeBearing(e2.bearing, r2) : r2, h3 = "pitch" in e2 ? +e2.pitch : s2, u2 = "padding" in e2 ? e2.padding : o2.padding, d2 = t.pointGeometry.convert(e2.offset); - let m2 = o2.centerPoint.add(d2); - const _2 = o2.pointLocation(m2), p3 = t.LngLat.convert(e2.center || _2); - this._normalizeCenter(p3); - const f2 = o2.project(_2), g2 = o2.project(p3).sub(f2), x2 = o2.zoomScale(l2 - a2); - let v3, y3; - e2.around && (v3 = t.LngLat.convert(e2.around), y3 = o2.locationPoint(v3)); - const b2 = { moving: this._moving, zooming: this._zooming, rotating: this._rotating, pitching: this._pitching }; - return this._zooming = this._zooming || l2 !== a2, this._rotating = this._rotating || r2 !== c3, this._pitching = this._pitching || h3 !== s2, this._padding = !o2.isPaddingEqual(u2), this._easeId = e2.easeId, this._prepareEase(i2, e2.noMoveStart, b2), this._ease((e3) => { - if (this._zooming && (o2.zoom = t.number(a2, l2, e3)), this._rotating && (o2.bearing = t.number(r2, c3, e3)), this._pitching && (o2.pitch = t.number(s2, h3, e3)), this._padding && (o2.interpolatePadding(n2, u2, e3), m2 = o2.centerPoint.add(d2)), v3) - o2.setLocationAtPoint(v3, y3); + var o2 = this.transform, r2 = false, a2 = false, n2 = false; + return "zoom" in e3 && o2.zoom !== +e3.zoom && (r2 = true, o2.zoom = +e3.zoom), void 0 !== e3.center && (o2.center = t.LngLat.convert(e3.center)), "bearing" in e3 && o2.bearing !== +e3.bearing && (a2 = true, o2.bearing = +e3.bearing), "pitch" in e3 && o2.pitch !== +e3.pitch && (n2 = true, o2.pitch = +e3.pitch), null == e3.padding || o2.isPaddingEqual(e3.padding) || (o2.padding = e3.padding), this.fire(new t.Event("movestart", i3)).fire(new t.Event("move", i3)), r2 && this.fire(new t.Event("zoomstart", i3)).fire(new t.Event("zoom", i3)).fire(new t.Event("zoomend", i3)), a2 && this.fire(new t.Event("rotatestart", i3)).fire(new t.Event("rotate", i3)).fire(new t.Event("rotateend", i3)), n2 && this.fire(new t.Event("pitchstart", i3)).fire(new t.Event("pitch", i3)).fire(new t.Event("pitchend", i3)), this.fire(new t.Event("moveend", i3)); + }, i2.prototype.easeTo = function(e3, i3) { + var o2 = this; + this._stop(false, e3.easeId), (false === (e3 = t.extend({ offset: [0, 0], duration: 500, easing: t.ease }, e3)).animate || !e3.essential && t.browser.prefersReducedMotion) && (e3.duration = 0); + var r2 = this.transform, a2 = this.getZoom(), n2 = this.getBearing(), s2 = this.getPitch(), l2 = this.getPadding(), c3 = "zoom" in e3 ? +e3.zoom : a2, u2 = "bearing" in e3 ? this._normalizeBearing(e3.bearing, n2) : n2, h3 = "pitch" in e3 ? +e3.pitch : s2, p3 = "padding" in e3 ? e3.padding : r2.padding, d2 = t.Point.convert(e3.offset), _2 = r2.centerPoint.add(d2), f2 = r2.pointLocation(_2), m2 = t.LngLat.convert(e3.center || f2); + this._normalizeCenter(m2); + var g2, v3, y3 = r2.project(f2), x2 = r2.project(m2).sub(y3), b2 = r2.zoomScale(c3 - a2); + e3.around && (g2 = t.LngLat.convert(e3.around), v3 = r2.locationPoint(g2)); + var w2 = { moving: this._moving, zooming: this._zooming, rotating: this._rotating, pitching: this._pitching }; + return this._zooming = this._zooming || c3 !== a2, this._rotating = this._rotating || n2 !== u2, this._pitching = this._pitching || h3 !== s2, this._padding = !r2.isPaddingEqual(p3), this._easeId = e3.easeId, this._prepareEase(i3, e3.noMoveStart, w2), this._ease(function(e4) { + if (o2._zooming && (r2.zoom = t.number(a2, c3, e4)), o2._rotating && (r2.bearing = t.number(n2, u2, e4)), o2._pitching && (r2.pitch = t.number(s2, h3, e4)), o2._padding && (r2.interpolatePadding(l2, p3, e4), _2 = r2.centerPoint.add(d2)), g2) + r2.setLocationAtPoint(g2, v3); else { - const t2 = o2.zoomScale(o2.zoom - a2), i3 = l2 > a2 ? Math.min(2, x2) : Math.max(0.5, x2), r3 = Math.pow(i3, 1 - e3), s3 = o2.unproject(f2.add(g2.mult(e3 * r3)).mult(t2)); - o2.setLocationAtPoint(o2.renderWorldCopies ? s3.wrap() : s3, m2); + var f3 = r2.zoomScale(r2.zoom - a2), m3 = c3 > a2 ? Math.min(2, b2) : Math.max(0.5, b2), w3 = Math.pow(m3, 1 - e4), T2 = r2.unproject(y3.add(x2.mult(e4 * w3)).mult(f3)); + r2.setLocationAtPoint(r2.renderWorldCopies ? T2.wrap() : T2, _2); } - this._fireMoveEvents(i2); - }, (t2) => { - this._afterEase(i2, t2); - }, e2), this; - } - _prepareEase(e2, i2, o2 = {}) { - this._moving = true, this.fire(new t.Event("freezeElevation", { freeze: true })), i2 || o2.moving || this.fire(new t.Event("movestart", e2)), this._zooming && !o2.zooming && this.fire(new t.Event("zoomstart", e2)), this._rotating && !o2.rotating && this.fire(new t.Event("rotatestart", e2)), this._pitching && !o2.pitching && this.fire(new t.Event("pitchstart", e2)); - } - _fireMoveEvents(e2) { - this.fire(new t.Event("move", e2)), this._zooming && this.fire(new t.Event("zoom", e2)), this._rotating && this.fire(new t.Event("rotate", e2)), this._pitching && this.fire(new t.Event("pitch", e2)); - } - _afterEase(e2, i2) { - if (this._easeId && i2 && this._easeId === i2) - return; - delete this._easeId, this.fire(new t.Event("freezeElevation", { freeze: false })); - const o2 = this._zooming, a2 = this._rotating, r2 = this._pitching; - this._moving = false, this._zooming = false, this._rotating = false, this._pitching = false, this._padding = false, o2 && this.fire(new t.Event("zoomend", e2)), a2 && this.fire(new t.Event("rotateend", e2)), r2 && this.fire(new t.Event("pitchend", e2)), this.fire(new t.Event("moveend", e2)); - } - flyTo(e2, i2) { - if (!e2.essential && t.exported.prefersReducedMotion) { - const o3 = t.pick(e2, ["center", "zoom", "bearing", "pitch", "around"]); - return this.jumpTo(o3, i2); - } - this.stop(), e2 = t.extend({ offset: [0, 0], speed: 1.2, curve: 1.42, easing: t.ease }, e2); - const o2 = this.transform, a2 = this.getZoom(), r2 = this.getBearing(), s2 = this.getPitch(), n2 = this.getPadding(), l2 = "zoom" in e2 ? t.clamp(+e2.zoom, o2.minZoom, o2.maxZoom) : a2, c3 = "bearing" in e2 ? this._normalizeBearing(e2.bearing, r2) : r2, h3 = "pitch" in e2 ? +e2.pitch : s2, u2 = "padding" in e2 ? e2.padding : o2.padding, d2 = o2.zoomScale(l2 - a2), m2 = t.pointGeometry.convert(e2.offset); - let _2 = o2.centerPoint.add(m2); - const p3 = o2.pointLocation(_2), f2 = t.LngLat.convert(e2.center || p3); - this._normalizeCenter(f2); - const g2 = o2.project(p3), x2 = o2.project(f2).sub(g2); - let v3 = e2.curve; - const y3 = Math.max(o2.width, o2.height), b2 = y3 / d2, w2 = x2.mag(); - if ("minZoom" in e2) { - const i3 = t.clamp(Math.min(e2.minZoom, a2, l2), o2.minZoom, o2.maxZoom), r3 = y3 / o2.zoomScale(i3 - a2); - v3 = Math.sqrt(r3 / w2 * 2); - } - const T2 = v3 * v3; - function E2(t2) { - const e3 = (b2 * b2 - y3 * y3 + (t2 ? -1 : 1) * T2 * T2 * w2 * w2) / (2 * (t2 ? b2 : y3) * T2 * w2); - return Math.log(Math.sqrt(e3 * e3 + 1) - e3); - } - function I3(t2) { + o2._fireMoveEvents(i3); + }, function(t2) { + o2._afterEase(i3, t2); + }, e3), this; + }, i2.prototype._prepareEase = function(e3, i3, o2) { + void 0 === o2 && (o2 = {}), this._moving = true, i3 || o2.moving || this.fire(new t.Event("movestart", e3)), this._zooming && !o2.zooming && this.fire(new t.Event("zoomstart", e3)), this._rotating && !o2.rotating && this.fire(new t.Event("rotatestart", e3)), this._pitching && !o2.pitching && this.fire(new t.Event("pitchstart", e3)); + }, i2.prototype._fireMoveEvents = function(e3) { + this.fire(new t.Event("move", e3)), this._zooming && this.fire(new t.Event("zoom", e3)), this._rotating && this.fire(new t.Event("rotate", e3)), this._pitching && this.fire(new t.Event("pitch", e3)); + }, i2.prototype._afterEase = function(e3, i3) { + if (!this._easeId || !i3 || this._easeId !== i3) { + delete this._easeId; + var o2 = this._zooming, r2 = this._rotating, a2 = this._pitching; + this._moving = false, this._zooming = false, this._rotating = false, this._pitching = false, this._padding = false, o2 && this.fire(new t.Event("zoomend", e3)), r2 && this.fire(new t.Event("rotateend", e3)), a2 && this.fire(new t.Event("pitchend", e3)), this.fire(new t.Event("moveend", e3)); + } + }, i2.prototype.flyTo = function(e3, i3) { + var o2 = this; + if (!e3.essential && t.browser.prefersReducedMotion) { + var r2 = t.pick(e3, ["center", "zoom", "bearing", "pitch", "around"]); + return this.jumpTo(r2, i3); + } + this.stop(), e3 = t.extend({ offset: [0, 0], speed: 1.2, curve: 1.42, easing: t.ease }, e3); + var a2 = this.transform, n2 = this.getZoom(), s2 = this.getBearing(), l2 = this.getPitch(), c3 = this.getPadding(), u2 = "zoom" in e3 ? t.clamp(+e3.zoom, a2.minZoom, a2.maxZoom) : n2, h3 = "bearing" in e3 ? this._normalizeBearing(e3.bearing, s2) : s2, p3 = "pitch" in e3 ? +e3.pitch : l2, d2 = "padding" in e3 ? e3.padding : a2.padding, _2 = a2.zoomScale(u2 - n2), f2 = t.Point.convert(e3.offset), m2 = a2.centerPoint.add(f2), g2 = a2.pointLocation(m2), v3 = t.LngLat.convert(e3.center || g2); + this._normalizeCenter(v3); + var y3 = a2.project(g2), x2 = a2.project(v3).sub(y3), b2 = e3.curve, w2 = Math.max(a2.width, a2.height), T2 = w2 / _2, E2 = x2.mag(); + if ("minZoom" in e3) { + var I3 = t.clamp(Math.min(e3.minZoom, n2, u2), a2.minZoom, a2.maxZoom), P2 = w2 / a2.zoomScale(I3 - n2); + b2 = Math.sqrt(P2 / E2 * 2); + } + var S2 = b2 * b2; + function C2(t2) { + var e4 = (T2 * T2 - w2 * w2 + (t2 ? -1 : 1) * S2 * S2 * E2 * E2) / (2 * (t2 ? T2 : w2) * S2 * E2); + return Math.log(Math.sqrt(e4 * e4 + 1) - e4); + } + function z2(t2) { return (Math.exp(t2) - Math.exp(-t2)) / 2; } - function C2(t2) { + function D2(t2) { return (Math.exp(t2) + Math.exp(-t2)) / 2; } - const S2 = E2(0); - let D2 = function(t2) { - return C2(S2) / C2(S2 + v3 * t2); - }, z2 = function(t2) { - return y3 * ((C2(S2) * (I3(e3 = S2 + v3 * t2) / C2(e3)) - I3(S2)) / T2) / w2; - var e3; - }, P2 = (E2(1) - S2) / v3; - if (Math.abs(w2) < 1e-6 || !isFinite(P2)) { - if (Math.abs(y3 - b2) < 1e-6) - return this.easeTo(e2, i2); - const t2 = b2 < y3 ? -1 : 1; - P2 = Math.abs(Math.log(b2 / y3)) / v3, z2 = function() { + var A3 = C2(0), M2 = function(t2) { + return D2(A3) / D2(A3 + b2 * t2); + }, L2 = function(t2) { + return w2 * ((D2(A3) * (z2(e4 = A3 + b2 * t2) / D2(e4)) - z2(A3)) / S2) / E2; + var e4; + }, R2 = (C2(1) - A3) / b2; + if (Math.abs(E2) < 1e-6 || !isFinite(R2)) { + if (Math.abs(w2 - T2) < 1e-6) + return this.easeTo(e3, i3); + var k2 = T2 < w2 ? -1 : 1; + R2 = Math.abs(Math.log(T2 / w2)) / b2, L2 = function() { return 0; - }, D2 = function(e3) { - return Math.exp(t2 * v3 * e3); + }, M2 = function(t2) { + return Math.exp(k2 * b2 * t2); }; } - return e2.duration = "duration" in e2 ? +e2.duration : 1e3 * P2 / ("screenSpeed" in e2 ? +e2.screenSpeed / v3 : +e2.speed), e2.maxDuration && e2.duration > e2.maxDuration && (e2.duration = 0), this._zooming = true, this._rotating = r2 !== c3, this._pitching = h3 !== s2, this._padding = !o2.isPaddingEqual(u2), this._prepareEase(i2, false), this._ease((e3) => { - const d3 = e3 * P2, p4 = 1 / D2(d3); - o2.zoom = 1 === e3 ? l2 : a2 + o2.scaleZoom(p4), this._rotating && (o2.bearing = t.number(r2, c3, e3)), this._pitching && (o2.pitch = t.number(s2, h3, e3)), this._padding && (o2.interpolatePadding(n2, u2, e3), _2 = o2.centerPoint.add(m2)); - const v4 = 1 === e3 ? f2 : o2.unproject(g2.add(x2.mult(z2(d3))).mult(p4)); - o2.setLocationAtPoint(o2.renderWorldCopies ? v4.wrap() : v4, _2), this._fireMoveEvents(i2); - }, () => this._afterEase(i2), e2), this; - } - isEasing() { + return e3.duration = "duration" in e3 ? +e3.duration : 1e3 * R2 / ("screenSpeed" in e3 ? +e3.screenSpeed / b2 : +e3.speed), e3.maxDuration && e3.duration > e3.maxDuration && (e3.duration = 0), this._zooming = true, this._rotating = s2 !== h3, this._pitching = p3 !== l2, this._padding = !a2.isPaddingEqual(d2), this._prepareEase(i3, false), this._ease(function(e4) { + var r3 = e4 * R2, _3 = 1 / M2(r3); + a2.zoom = 1 === e4 ? u2 : n2 + a2.scaleZoom(_3), o2._rotating && (a2.bearing = t.number(s2, h3, e4)), o2._pitching && (a2.pitch = t.number(l2, p3, e4)), o2._padding && (a2.interpolatePadding(c3, d2, e4), m2 = a2.centerPoint.add(f2)); + var g3 = 1 === e4 ? v3 : a2.unproject(y3.add(x2.mult(L2(r3))).mult(_3)); + a2.setLocationAtPoint(a2.renderWorldCopies ? g3.wrap() : g3, m2), o2._fireMoveEvents(i3); + }, function() { + return o2._afterEase(i3); + }, e3), this; + }, i2.prototype.isEasing = function() { return !!this._easeFrameId; - } - stop() { + }, i2.prototype.stop = function() { return this._stop(); - } - _stop(t2, e2) { + }, i2.prototype._stop = function(t2, e3) { if (this._easeFrameId && (this._cancelRenderFrame(this._easeFrameId), delete this._easeFrameId, delete this._onEaseFrame), this._onEaseEnd) { - const t3 = this._onEaseEnd; - delete this._onEaseEnd, t3.call(this, e2); + var i3 = this._onEaseEnd; + delete this._onEaseEnd, i3.call(this, e3); } if (!t2) { - const t3 = this.handlers; - t3 && t3.stop(false); + var o2 = this.handlers; + o2 && o2.stop(false); } return this; - } - _ease(e2, i2, o2) { - false === o2.animate || 0 === o2.duration ? (e2(1), i2()) : (this._easeStart = t.exported.now(), this._easeOptions = o2, this._onEaseFrame = e2, this._onEaseEnd = i2, this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback)); - } - _renderFrameCallback() { - const e2 = Math.min((t.exported.now() - this._easeStart) / this._easeOptions.duration, 1); - this._onEaseFrame(this._easeOptions.easing(e2)), e2 < 1 ? this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback) : this.stop(); - } - _normalizeBearing(e2, i2) { - e2 = t.wrap(e2, -180, 180); - const o2 = Math.abs(e2 - i2); - return Math.abs(e2 - 360 - i2) < o2 && (e2 -= 360), Math.abs(e2 + 360 - i2) < o2 && (e2 += 360), e2; - } - _normalizeCenter(t2) { - const e2 = this.transform; - if (!e2.renderWorldCopies || e2.lngRange) - return; - const i2 = t2.lng - e2.center.lng; - t2.lng += i2 > 180 ? -360 : i2 < -180 ? 360 : 0; - } - } - class ta { - constructor(e2 = {}) { - this.options = e2, t.bindAll(["_toggleAttribution", "_updateData", "_updateCompact", "_updateCompactMinimize"], this); - } - getDefaultPosition() { - return "bottom-right"; - } - onAdd(t2) { - return this._map = t2, this._compact = this.options && this.options.compact, this._container = r.create("details", "maplibregl-ctrl maplibregl-ctrl-attrib mapboxgl-ctrl mapboxgl-ctrl-attrib"), this._compactButton = r.create("summary", "maplibregl-ctrl-attrib-button mapboxgl-ctrl-attrib-button", this._container), this._compactButton.addEventListener("click", this._toggleAttribution), this._setElementTitle(this._compactButton, "ToggleAttribution"), this._innerContainer = r.create("div", "maplibregl-ctrl-attrib-inner mapboxgl-ctrl-attrib-inner", this._container), this._updateAttributions(), this._updateCompact(), this._map.on("styledata", this._updateData), this._map.on("sourcedata", this._updateData), this._map.on("terrain", this._updateData), this._map.on("resize", this._updateCompact), this._map.on("drag", this._updateCompactMinimize), this._container; - } - onRemove() { - r.remove(this._container), this._map.off("styledata", this._updateData), this._map.off("sourcedata", this._updateData), this._map.off("terrain", this._updateData), this._map.off("resize", this._updateCompact), this._map.off("drag", this._updateCompactMinimize), this._map = void 0, this._compact = void 0, this._attribHTML = void 0; - } - _setElementTitle(t2, e2) { - const i2 = this._map._getUIString(`AttributionControl.${e2}`); - t2.title = i2, t2.setAttribute("aria-label", i2); - } - _toggleAttribution() { - this._container.classList.contains("maplibregl-compact") && (this._container.classList.contains("maplibregl-compact-show") ? (this._container.setAttribute("open", ""), this._container.classList.remove("maplibregl-compact-show", "mapboxgl-compact-show")) : (this._container.classList.add("maplibregl-compact-show", "mapboxgl-compact-show"), this._container.removeAttribute("open"))); - } - _updateData(t2) { - !t2 || "metadata" !== t2.sourceDataType && "visibility" !== t2.sourceDataType && "style" !== t2.dataType && "terrain" !== t2.type || this._updateAttributions(); - } - _updateAttributions() { - if (!this._map.style) - return; - let t2 = []; - if (this.options.customAttribution && (Array.isArray(this.options.customAttribution) ? t2 = t2.concat(this.options.customAttribution.map((t3) => "string" != typeof t3 ? "" : t3)) : "string" == typeof this.options.customAttribution && t2.push(this.options.customAttribution)), this._map.style.stylesheet) { - const t3 = this._map.style.stylesheet; - this.styleOwner = t3.owner, this.styleId = t3.id; - } - const e2 = this._map.style.sourceCaches; - for (const i3 in e2) { - const o2 = e2[i3]; - if (o2.used || o2.usedForTerrain) { - const e3 = o2.getSource(); - e3.attribution && t2.indexOf(e3.attribution) < 0 && t2.push(e3.attribution); + }, i2.prototype._ease = function(e3, i3, o2) { + false === o2.animate || 0 === o2.duration ? (e3(1), i3()) : (this._easeStart = t.browser.now(), this._easeOptions = o2, this._onEaseFrame = e3, this._onEaseEnd = i3, this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback)); + }, i2.prototype._renderFrameCallback = function() { + var e3 = Math.min((t.browser.now() - this._easeStart) / this._easeOptions.duration, 1); + this._onEaseFrame(this._easeOptions.easing(e3)), e3 < 1 ? this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback) : this.stop(); + }, i2.prototype._normalizeBearing = function(e3, i3) { + e3 = t.wrap(e3, -180, 180); + var o2 = Math.abs(e3 - i3); + return Math.abs(e3 - 360 - i3) < o2 && (e3 -= 360), Math.abs(e3 + 360 - i3) < o2 && (e3 += 360), e3; + }, i2.prototype._normalizeCenter = function(t2) { + var e3 = this.transform; + if (e3.renderWorldCopies && !e3.lngRange) { + var i3 = t2.lng - e3.center.lng; + t2.lng += i3 > 180 ? -360 : i3 < -180 ? 360 : 0; + } + }, i2; + }(t.Evented), yr = function(e2) { + void 0 === e2 && (e2 = {}), this.options = e2, t.bindAll(["_toggleAttribution", "_updateEditLink", "_updateData", "_updateCompact"], this); + }; + yr.prototype.getDefaultPosition = function() { + return "bottom-right"; + }, yr.prototype.onAdd = function(t2) { + var e2 = this.options && this.options.compact; + return this._map = t2, this._container = i.create("div", "mapboxgl-ctrl mapboxgl-ctrl-attrib"), this._compactButton = i.create("button", "mapboxgl-ctrl-attrib-button", this._container), this._compactButton.addEventListener("click", this._toggleAttribution), this._setElementTitle(this._compactButton, "ToggleAttribution"), this._innerContainer = i.create("div", "mapboxgl-ctrl-attrib-inner", this._container), this._innerContainer.setAttribute("role", "list"), e2 && this._container.classList.add("mapboxgl-compact"), this._updateAttributions(), this._updateEditLink(), this._map.on("styledata", this._updateData), this._map.on("sourcedata", this._updateData), this._map.on("moveend", this._updateEditLink), void 0 === e2 && (this._map.on("resize", this._updateCompact), this._updateCompact()), this._container; + }, yr.prototype.onRemove = function() { + i.remove(this._container), this._map.off("styledata", this._updateData), this._map.off("sourcedata", this._updateData), this._map.off("moveend", this._updateEditLink), this._map.off("resize", this._updateCompact), this._map = void 0, this._attribHTML = void 0; + }, yr.prototype._setElementTitle = function(t2, e2) { + var i2 = this._map._getUIString("AttributionControl." + e2); + t2.title = i2, t2.setAttribute("aria-label", i2); + }, yr.prototype._toggleAttribution = function() { + this._container.classList.contains("mapboxgl-compact-show") ? (this._container.classList.remove("mapboxgl-compact-show"), this._compactButton.setAttribute("aria-pressed", "false")) : (this._container.classList.add("mapboxgl-compact-show"), this._compactButton.setAttribute("aria-pressed", "true")); + }, yr.prototype._updateEditLink = function() { + var e2 = this._editLink; + e2 || (e2 = this._editLink = this._container.querySelector(".mapbox-improve-map")); + var i2 = [{ key: "owner", value: this.styleOwner }, { key: "id", value: this.styleId }, { key: "access_token", value: this._map._requestManager._customAccessToken || t.config.ACCESS_TOKEN }]; + if (e2) { + var o2 = i2.reduce(function(t2, e3, o3) { + return e3.value && (t2 += e3.key + "=" + e3.value + (o3 < i2.length - 1 ? "&" : "")), t2; + }, "?"); + e2.href = t.config.FEEDBACK_URL + "/" + o2 + (this._map._hash ? this._map._hash.getHashString(true) : ""), e2.rel = "noopener nofollow", this._setElementTitle(e2, "MapFeedback"); + } + }, yr.prototype._updateData = function(t2) { + !t2 || "metadata" !== t2.sourceDataType && "visibility" !== t2.sourceDataType && "style" !== t2.dataType || (this._updateAttributions(), this._updateEditLink()); + }, yr.prototype._updateAttributions = function() { + if (this._map.style) { + var t2 = []; + if (this.options.customAttribution && (Array.isArray(this.options.customAttribution) ? t2 = t2.concat(this.options.customAttribution.map(function(t3) { + return "string" != typeof t3 ? "" : t3; + })) : "string" == typeof this.options.customAttribution && t2.push(this.options.customAttribution)), this._map.style.stylesheet) { + var e2 = this._map.style.stylesheet; + this.styleOwner = e2.owner, this.styleId = e2.id; + } + var i2 = this._map.style.sourceCaches; + for (var o2 in i2) { + var r2 = i2[o2]; + if (r2.used) { + var a2 = r2.getSource(); + a2.attribution && t2.indexOf(a2.attribution) < 0 && t2.push(a2.attribution); } } - t2 = t2.filter((t3) => String(t3).trim()), t2.sort((t3, e3) => t3.length - e3.length), t2 = t2.filter((e3, i3) => { - for (let o2 = i3 + 1; o2 < t2.length; o2++) - if (t2[o2].indexOf(e3) >= 0) + t2.sort(function(t3, e3) { + return t3.length - e3.length; + }); + var n2 = (t2 = t2.filter(function(e3, i3) { + for (var o3 = i3 + 1; o3 < t2.length; o3++) + if (t2[o3].indexOf(e3) >= 0) return false; return true; - }); - const i2 = t2.join(" | "); - i2 !== this._attribHTML && (this._attribHTML = i2, t2.length ? (this._innerContainer.innerHTML = i2, this._container.classList.remove("maplibregl-attrib-empty", "mapboxgl-attrib-empty")) : this._container.classList.add("maplibregl-attrib-empty", "mapboxgl-attrib-empty"), this._updateCompact(), this._editLink = null); - } - _updateCompact() { - this._map.getCanvasContainer().offsetWidth <= 640 || this._compact ? false === this._compact ? this._container.setAttribute("open", "") : this._container.classList.contains("maplibregl-compact") || this._container.classList.contains("maplibregl-attrib-empty") || (this._container.setAttribute("open", ""), this._container.classList.add("maplibregl-compact", "mapboxgl-compact", "maplibregl-compact-show", "mapboxgl-compact-show")) : (this._container.setAttribute("open", ""), this._container.classList.contains("maplibregl-compact") && this._container.classList.remove("maplibregl-compact", "maplibregl-compact-show", "mapboxgl-compact", "mapboxgl-compact-show")); - } - _updateCompactMinimize() { - this._container.classList.contains("maplibregl-compact") && this._container.classList.contains("maplibregl-compact-show") && this._container.classList.remove("maplibregl-compact-show", "mapboxgl-compact-show"); - } - } - class ea { - constructor(e2 = {}) { - this.options = e2, t.bindAll(["_updateCompact"], this); + })).join(" | "); + n2 !== this._attribHTML && (this._attribHTML = n2, t2.length ? (this._innerContainer.innerHTML = n2, this._container.classList.remove("mapboxgl-attrib-empty")) : this._container.classList.add("mapboxgl-attrib-empty"), this._editLink = null); } - getDefaultPosition() { - return "bottom-left"; + }, yr.prototype._updateCompact = function() { + this._map.getCanvasContainer().offsetWidth <= 640 ? this._container.classList.add("mapboxgl-compact") : this._container.classList.remove("mapboxgl-compact", "mapboxgl-compact-show"); + }; + var xr = function() { + t.bindAll(["_updateLogo"], this), t.bindAll(["_updateCompact"], this); + }; + xr.prototype.onAdd = function(t2) { + this._map = t2, this._container = i.create("div", "mapboxgl-ctrl"); + var e2 = i.create("a", "mapboxgl-ctrl-logo"); + return e2.target = "_blank", e2.rel = "noopener nofollow", e2.href = "https://www.mapbox.com/", e2.setAttribute("aria-label", this._map._getUIString("LogoControl.Title")), e2.setAttribute("rel", "noopener nofollow"), this._container.appendChild(e2), this._container.style.display = "none", this._map.on("sourcedata", this._updateLogo), this._updateLogo(), this._map.on("resize", this._updateCompact), this._updateCompact(), this._container; + }, xr.prototype.onRemove = function() { + i.remove(this._container), this._map.off("sourcedata", this._updateLogo), this._map.off("resize", this._updateCompact); + }, xr.prototype.getDefaultPosition = function() { + return "bottom-left"; + }, xr.prototype._updateLogo = function(t2) { + t2 && "metadata" !== t2.sourceDataType || (this._container.style.display = this._logoRequired() ? "block" : "none"); + }, xr.prototype._logoRequired = function() { + if (this._map.style) { + var t2 = this._map.style.sourceCaches; + for (var e2 in t2) + if (t2[e2].getSource().mapbox_logo) + return true; + return false; } - onAdd(t2) { - this._map = t2, this._compact = this.options && this.options.compact, this._container = r.create("div", "maplibregl-ctrl mapboxgl-ctrl"); - const e2 = r.create("a", "maplibregl-ctrl-logo mapboxgl-ctrl-logo"); - return e2.target = "_blank", e2.rel = "noopener nofollow", e2.href = "https://maplibre.org/", e2.setAttribute("aria-label", this._map._getUIString("LogoControl.Title")), e2.setAttribute("rel", "noopener nofollow"), this._container.appendChild(e2), this._container.style.display = "block", this._map.on("resize", this._updateCompact), this._updateCompact(), this._container; + }, xr.prototype._updateCompact = function() { + var t2 = this._container.children; + if (t2.length) { + var e2 = t2[0]; + this._map.getCanvasContainer().offsetWidth < 250 ? e2.classList.add("mapboxgl-compact") : e2.classList.remove("mapboxgl-compact"); } - onRemove() { - r.remove(this._container), this._map.off("resize", this._updateCompact), this._map = void 0, this._compact = void 0; + }; + var br = function() { + this._queue = [], this._id = 0, this._cleared = false, this._currentlyRunning = false; + }; + br.prototype.add = function(t2) { + var e2 = ++this._id; + return this._queue.push({ callback: t2, id: e2, cancelled: false }), e2; + }, br.prototype.remove = function(t2) { + for (var e2 = this._currentlyRunning, i2 = 0, o2 = e2 ? this._queue.concat(e2) : this._queue; i2 < o2.length; i2 += 1) { + var r2 = o2[i2]; + if (r2.id === t2) + return void (r2.cancelled = true); + } + }, br.prototype.run = function(t2) { + void 0 === t2 && (t2 = 0); + var e2 = this._currentlyRunning = this._queue; + this._queue = []; + for (var i2 = 0, o2 = e2; i2 < o2.length; i2 += 1) { + var r2 = o2[i2]; + if (!r2.cancelled && (r2.callback(t2), this._cleared)) + break; } - _updateCompact() { - const t2 = this._container.children; - if (t2.length) { - const e2 = t2[0]; - this._map.getCanvasContainer().offsetWidth <= 640 || this._compact ? false !== this._compact && e2.classList.add("maplibregl-compact", "mapboxgl-compact") : e2.classList.remove("maplibregl-compact", "mapboxgl-compact"); - } - } - } - class ia { - constructor() { - this._queue = [], this._id = 0, this._cleared = false, this._currentlyRunning = false; - } - add(t2) { - const e2 = ++this._id; - return this._queue.push({ callback: t2, id: e2, cancelled: false }), e2; - } - remove(t2) { - const e2 = this._currentlyRunning, i2 = e2 ? this._queue.concat(e2) : this._queue; - for (const e3 of i2) - if (e3.id === t2) - return void (e3.cancelled = true); - } - run(t2 = 0) { - if (this._currentlyRunning) - throw new Error("Attempting to run(), but is already running."); - const e2 = this._currentlyRunning = this._queue; - this._queue = []; - for (const i2 of e2) - if (!i2.cancelled && (i2.callback(t2), this._cleared)) - break; - this._cleared = false, this._currentlyRunning = false; - } - clear() { - this._currentlyRunning && (this._cleared = true), this._queue = []; - } - } - const oa = { "AttributionControl.ToggleAttribution": "Toggle attribution", "AttributionControl.MapFeedback": "Map feedback", "FullscreenControl.Enter": "Enter fullscreen", "FullscreenControl.Exit": "Exit fullscreen", "GeolocateControl.FindMyLocation": "Find my location", "GeolocateControl.LocationNotAvailable": "Location not available", "LogoControl.Title": "Mapbox logo", "NavigationControl.ResetBearing": "Reset bearing to north", "NavigationControl.ZoomIn": "Zoom in", "NavigationControl.ZoomOut": "Zoom out", "ScaleControl.Feet": "ft", "ScaleControl.Meters": "m", "ScaleControl.Kilometers": "km", "ScaleControl.Miles": "mi", "ScaleControl.NauticalMiles": "nm", "TerrainControl.enableTerrain": "Enable terrain", "TerrainControl.disableTerrain": "Disable terrain" }, aa = { center: [0, 0], zoom: 0, bearing: 0, pitch: 0, minZoom: -2, maxZoom: 22, minPitch: 0, maxPitch: 60, interactive: true, scrollZoom: true, boxZoom: true, dragRotate: true, dragPan: true, keyboard: true, doubleClickZoom: true, touchZoomRotate: true, touchPitch: true, cooperativeGestures: void 0, bearingSnap: 7, clickTolerance: 3, pitchWithRotate: true, hash: false, attributionControl: true, maplibreLogo: false, failIfMajorPerformanceCaveat: false, preserveDrawingBuffer: false, trackResize: true, renderWorldCopies: true, refreshExpiredTiles: true, maxTileCacheSize: null, localIdeographFontFamily: "sans-serif", transformRequest: null, fadeDuration: 300, crossSourceCollisions: true }, ra = { showCompass: true, showZoom: true, visualizePitch: false }; - class sa { - constructor(e2, i2, o2 = false) { - this._clickTolerance = 10, this.element = i2, this.mouseRotate = new Co({ clickTolerance: e2.dragRotate._mouseRotate._clickTolerance }), this.map = e2, o2 && (this.mousePitch = new So({ clickTolerance: e2.dragRotate._mousePitch._clickTolerance })), t.bindAll(["mousedown", "mousemove", "mouseup", "touchstart", "touchmove", "touchend", "reset"], this), r.addEventListener(i2, "mousedown", this.mousedown), r.addEventListener(i2, "touchstart", this.touchstart, { passive: false }), r.addEventListener(i2, "touchmove", this.touchmove), r.addEventListener(i2, "touchend", this.touchend), r.addEventListener(i2, "touchcancel", this.reset); - } - down(t2, e2) { - this.mouseRotate.mousedown(t2, e2), this.mousePitch && this.mousePitch.mousedown(t2, e2), r.disableDrag(); - } - move(t2, e2) { - const i2 = this.map, o2 = this.mouseRotate.mousemoveWindow(t2, e2); - if (o2 && o2.bearingDelta && i2.setBearing(i2.getBearing() + o2.bearingDelta), this.mousePitch) { - const o3 = this.mousePitch.mousemoveWindow(t2, e2); - o3 && o3.pitchDelta && i2.setPitch(i2.getPitch() + o3.pitchDelta); - } - } - off() { - const t2 = this.element; - r.removeEventListener(t2, "mousedown", this.mousedown), r.removeEventListener(t2, "touchstart", this.touchstart, { passive: false }), r.removeEventListener(t2, "touchmove", this.touchmove), r.removeEventListener(t2, "touchend", this.touchend), r.removeEventListener(t2, "touchcancel", this.reset), this.offTemp(); - } - offTemp() { - r.enableDrag(), r.removeEventListener(window, "mousemove", this.mousemove), r.removeEventListener(window, "mouseup", this.mouseup); - } - mousedown(e2) { - this.down(t.extend({}, e2, { ctrlKey: true, preventDefault: () => e2.preventDefault() }), r.mousePos(this.element, e2)), r.addEventListener(window, "mousemove", this.mousemove), r.addEventListener(window, "mouseup", this.mouseup); - } - mousemove(t2) { - this.move(t2, r.mousePos(this.element, t2)); - } - mouseup(t2) { - this.mouseRotate.mouseupWindow(t2), this.mousePitch && this.mousePitch.mouseupWindow(t2), this.offTemp(); - } - touchstart(t2) { - 1 !== t2.targetTouches.length ? this.reset() : (this._startPos = this._lastPos = r.touchPos(this.element, t2.targetTouches)[0], this.down({ type: "mousedown", button: 0, ctrlKey: true, preventDefault: () => t2.preventDefault() }, this._startPos)); - } - touchmove(t2) { - 1 !== t2.targetTouches.length ? this.reset() : (this._lastPos = r.touchPos(this.element, t2.targetTouches)[0], this.move({ preventDefault: () => t2.preventDefault() }, this._lastPos)); - } - touchend(t2) { - 0 === t2.targetTouches.length && this._startPos && this._lastPos && this._startPos.dist(this._lastPos) < this._clickTolerance && this.element.click(), this.reset(); - } - reset() { - this.mouseRotate.reset(), this.mousePitch && this.mousePitch.reset(), delete this._startPos, delete this._lastPos, this.offTemp(); - } - } - function na(e2, i2, o2) { - if (e2 = new t.LngLat(e2.lng, e2.lat), i2) { - const a2 = new t.LngLat(e2.lng - 360, e2.lat), r2 = new t.LngLat(e2.lng + 360, e2.lat), s2 = o2.locationPoint(e2).distSqr(i2); - o2.locationPoint(a2).distSqr(i2) < s2 ? e2 = a2 : o2.locationPoint(r2).distSqr(i2) < s2 && (e2 = r2); - } - for (; Math.abs(e2.lng - o2.center.lng) > 180; ) { - const t2 = o2.locationPoint(e2); - if (t2.x >= 0 && t2.y >= 0 && t2.x <= o2.width && t2.y <= o2.height) - break; - e2.lng > o2.center.lng ? e2.lng -= 360 : e2.lng += 360; - } - return e2; - } - const la = { center: "translate(-50%,-50%)", top: "translate(-50%,0)", "top-left": "translate(0,0)", "top-right": "translate(-100%,0)", bottom: "translate(-50%,-100%)", "bottom-left": "translate(0,-100%)", "bottom-right": "translate(-100%,-100%)", left: "translate(0,-50%)", right: "translate(-100%,-50%)" }; - function ca(t2, e2, i2) { - const o2 = t2.classList; - for (const t3 in la) - o2.remove(`maplibregl-${i2}-anchor-${t3}`, `mapboxgl-${i2}-anchor-${t3}`); - o2.add(`maplibregl-${i2}-anchor-${e2}`, `mapboxgl-${i2}-anchor-${e2}`); - } - class ha extends t.Evented { - constructor(e2, i2) { - if (super(), (e2 instanceof HTMLElement || i2) && (e2 = t.extend({ element: e2 }, i2)), t.bindAll(["_update", "_onMove", "_onUp", "_addDragHandler", "_onMapClick", "_onKeyPress"], this), this._anchor = e2 && e2.anchor || "center", this._color = e2 && e2.color || "#3FB1CE", this._scale = e2 && e2.scale || 1, this._draggable = e2 && e2.draggable || false, this._clickTolerance = e2 && e2.clickTolerance || 0, this._isDragging = false, this._state = "inactive", this._rotation = e2 && e2.rotation || 0, this._rotationAlignment = e2 && e2.rotationAlignment || "auto", this._pitchAlignment = e2 && e2.pitchAlignment && "auto" !== e2.pitchAlignment ? e2.pitchAlignment : this._rotationAlignment, e2 && e2.element) - this._element = e2.element, this._offset = t.pointGeometry.convert(e2 && e2.offset || [0, 0]); - else { - this._defaultMarker = true, this._element = r.create("div"), this._element.setAttribute("aria-label", "Map marker"); - const i3 = r.createNS("http://www.w3.org/2000/svg", "svg"), o2 = 41, a2 = 27; - i3.setAttributeNS(null, "display", "block"), i3.setAttributeNS(null, "height", `${o2}px`), i3.setAttributeNS(null, "width", `${a2}px`), i3.setAttributeNS(null, "viewBox", `0 0 ${a2} ${o2}`); - const s2 = r.createNS("http://www.w3.org/2000/svg", "g"); - s2.setAttributeNS(null, "stroke", "none"), s2.setAttributeNS(null, "stroke-width", "1"), s2.setAttributeNS(null, "fill", "none"), s2.setAttributeNS(null, "fill-rule", "evenodd"); - const n2 = r.createNS("http://www.w3.org/2000/svg", "g"); - n2.setAttributeNS(null, "fill-rule", "nonzero"); - const l2 = r.createNS("http://www.w3.org/2000/svg", "g"); - l2.setAttributeNS(null, "transform", "translate(3.0, 29.0)"), l2.setAttributeNS(null, "fill", "#000000"); - const c3 = [{ rx: "10.5", ry: "5.25002273" }, { rx: "10.5", ry: "5.25002273" }, { rx: "9.5", ry: "4.77275007" }, { rx: "8.5", ry: "4.29549936" }, { rx: "7.5", ry: "3.81822308" }, { rx: "6.5", ry: "3.34094679" }, { rx: "5.5", ry: "2.86367051" }, { rx: "4.5", ry: "2.38636864" }]; - for (const t2 of c3) { - const e3 = r.createNS("http://www.w3.org/2000/svg", "ellipse"); - e3.setAttributeNS(null, "opacity", "0.04"), e3.setAttributeNS(null, "cx", "10.5"), e3.setAttributeNS(null, "cy", "5.80029008"), e3.setAttributeNS(null, "rx", t2.rx), e3.setAttributeNS(null, "ry", t2.ry), l2.appendChild(e3); - } - const h3 = r.createNS("http://www.w3.org/2000/svg", "g"); - h3.setAttributeNS(null, "fill", this._color); - const u2 = r.createNS("http://www.w3.org/2000/svg", "path"); - u2.setAttributeNS(null, "d", "M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"), h3.appendChild(u2); - const d2 = r.createNS("http://www.w3.org/2000/svg", "g"); - d2.setAttributeNS(null, "opacity", "0.25"), d2.setAttributeNS(null, "fill", "#000000"); - const m2 = r.createNS("http://www.w3.org/2000/svg", "path"); - m2.setAttributeNS(null, "d", "M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"), d2.appendChild(m2); - const _2 = r.createNS("http://www.w3.org/2000/svg", "g"); - _2.setAttributeNS(null, "transform", "translate(6.0, 7.0)"), _2.setAttributeNS(null, "fill", "#FFFFFF"); - const p3 = r.createNS("http://www.w3.org/2000/svg", "g"); - p3.setAttributeNS(null, "transform", "translate(8.0, 8.0)"); - const f2 = r.createNS("http://www.w3.org/2000/svg", "circle"); - f2.setAttributeNS(null, "fill", "#000000"), f2.setAttributeNS(null, "opacity", "0.25"), f2.setAttributeNS(null, "cx", "5.5"), f2.setAttributeNS(null, "cy", "5.5"), f2.setAttributeNS(null, "r", "5.4999962"); - const g2 = r.createNS("http://www.w3.org/2000/svg", "circle"); - g2.setAttributeNS(null, "fill", "#FFFFFF"), g2.setAttributeNS(null, "cx", "5.5"), g2.setAttributeNS(null, "cy", "5.5"), g2.setAttributeNS(null, "r", "5.4999962"), p3.appendChild(f2), p3.appendChild(g2), n2.appendChild(l2), n2.appendChild(h3), n2.appendChild(d2), n2.appendChild(_2), n2.appendChild(p3), i3.appendChild(n2), i3.setAttributeNS(null, "height", o2 * this._scale + "px"), i3.setAttributeNS(null, "width", a2 * this._scale + "px"), this._element.appendChild(i3), this._offset = t.pointGeometry.convert(e2 && e2.offset || [0, -14]); - } - this._element.classList.add("maplibregl-marker", "mapboxgl-marker"), this._element.addEventListener("dragstart", (t2) => { - t2.preventDefault(); - }), this._element.addEventListener("mousedown", (t2) => { - t2.preventDefault(); - }), ca(this._element, this._anchor, "marker"), this._popup = null; - } - addTo(t2) { - return this.remove(), this._map = t2, t2.getCanvasContainer().appendChild(this._element), t2.on("move", this._update), t2.on("moveend", this._update), this.setDraggable(this._draggable), this._update(), this._map.on("click", this._onMapClick), this; - } - remove() { - return this._opacityTimeout && (clearTimeout(this._opacityTimeout), delete this._opacityTimeout), this._map && (this._map.off("click", this._onMapClick), this._map.off("move", this._update), this._map.off("moveend", this._update), this._map.off("mousedown", this._addDragHandler), this._map.off("touchstart", this._addDragHandler), this._map.off("mouseup", this._onUp), this._map.off("touchend", this._onUp), this._map.off("mousemove", this._onMove), this._map.off("touchmove", this._onMove), delete this._map), r.remove(this._element), this._popup && this._popup.remove(), this; - } - getLngLat() { - return this._lngLat; - } - setLngLat(e2) { - return this._lngLat = t.LngLat.convert(e2), this._pos = null, this._popup && this._popup.setLngLat(this._lngLat), this._update(), this; - } - getElement() { - return this._element; - } - setPopup(t2) { - if (this._popup && (this._popup.remove(), this._popup = null, this._element.removeEventListener("keypress", this._onKeyPress), this._originalTabIndex || this._element.removeAttribute("tabindex")), t2) { - if (!("offset" in t2.options)) { - const e2 = 38.1, i2 = 13.5, o2 = Math.sqrt(Math.pow(i2, 2) / 2); - t2.options.offset = this._defaultMarker ? { top: [0, 0], "top-left": [0, 0], "top-right": [0, 0], bottom: [0, -e2], "bottom-left": [o2, -1 * (e2 - i2 + o2)], "bottom-right": [-o2, -1 * (e2 - i2 + o2)], left: [i2, -1 * (e2 - i2)], right: [-i2, -1 * (e2 - i2)] } : this._offset; - } - this._popup = t2, this._lngLat && this._popup.setLngLat(this._lngLat), this._originalTabIndex = this._element.getAttribute("tabindex"), this._originalTabIndex || this._element.setAttribute("tabindex", "0"), this._element.addEventListener("keypress", this._onKeyPress); - } - return this; - } - _onKeyPress(t2) { - const e2 = t2.code, i2 = t2.charCode || t2.keyCode; - "Space" !== e2 && "Enter" !== e2 && 32 !== i2 && 13 !== i2 || this.togglePopup(); - } - _onMapClick(t2) { - const e2 = t2.originalEvent.target, i2 = this._element; - this._popup && (e2 === i2 || i2.contains(e2)) && this.togglePopup(); - } - getPopup() { - return this._popup; - } - togglePopup() { - const t2 = this._popup; - return t2 ? (t2.isOpen() ? t2.remove() : t2.addTo(this._map), this) : this; - } - _update(t2) { - if (!this._map) - return; - this._map.transform.renderWorldCopies && (this._lngLat = na(this._lngLat, this._pos, this._map.transform)), this._pos = this._map.project(this._lngLat)._add(this._offset); - let e2 = ""; - "viewport" === this._rotationAlignment || "auto" === this._rotationAlignment ? e2 = `rotateZ(${this._rotation}deg)` : "map" === this._rotationAlignment && (e2 = `rotateZ(${this._rotation - this._map.getBearing()}deg)`); - let i2 = ""; - "viewport" === this._pitchAlignment || "auto" === this._pitchAlignment ? i2 = "rotateX(0deg)" : "map" === this._pitchAlignment && (i2 = `rotateX(${this._map.getPitch()}deg)`), t2 && "moveend" !== t2.type || (this._pos = this._pos.round()), r.setTransform(this._element, `${la[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${i2} ${e2}`), this._map.style && this._map.style.terrain && !this._opacityTimeout && (this._opacityTimeout = setTimeout(() => { - const t3 = this._map.unproject(this._pos), e3 = 40075016686e-3 * Math.abs(Math.cos(this._lngLat.lat * Math.PI / 180)) / Math.pow(2, this._map.transform.tileZoom + 8); - this._element.style.opacity = t3.distanceTo(this._lngLat) > 20 * e3 ? "0.2" : "1.0", this._opacityTimeout = null; - }, 100)); - } - getOffset() { - return this._offset; - } - setOffset(e2) { - return this._offset = t.pointGeometry.convert(e2), this._update(), this; - } - _onMove(e2) { - if (!this._isDragging) { - const t2 = this._clickTolerance || this._map._clickTolerance; - this._isDragging = e2.point.dist(this._pointerdownPos) >= t2; - } - this._isDragging && (this._pos = e2.point.sub(this._positionDelta), this._lngLat = this._map.unproject(this._pos), this.setLngLat(this._lngLat), this._element.style.pointerEvents = "none", "pending" === this._state && (this._state = "active", this.fire(new t.Event("dragstart"))), this.fire(new t.Event("drag"))); - } - _onUp() { - this._element.style.pointerEvents = "auto", this._positionDelta = null, this._pointerdownPos = null, this._isDragging = false, this._map.off("mousemove", this._onMove), this._map.off("touchmove", this._onMove), "active" === this._state && this.fire(new t.Event("dragend")), this._state = "inactive"; - } - _addDragHandler(t2) { - this._element.contains(t2.originalEvent.target) && (t2.preventDefault(), this._positionDelta = t2.point.sub(this._pos).add(this._offset), this._pointerdownPos = t2.point, this._state = "pending", this._map.on("mousemove", this._onMove), this._map.on("touchmove", this._onMove), this._map.once("mouseup", this._onUp), this._map.once("touchend", this._onUp)); - } - setDraggable(t2) { - return this._draggable = !!t2, this._map && (t2 ? (this._map.on("mousedown", this._addDragHandler), this._map.on("touchstart", this._addDragHandler)) : (this._map.off("mousedown", this._addDragHandler), this._map.off("touchstart", this._addDragHandler))), this; - } - isDraggable() { - return this._draggable; - } - setRotation(t2) { - return this._rotation = t2 || 0, this._update(), this; - } - getRotation() { - return this._rotation; - } - setRotationAlignment(t2) { - return this._rotationAlignment = t2 || "auto", this._update(), this; - } - getRotationAlignment() { - return this._rotationAlignment; - } - setPitchAlignment(t2) { - return this._pitchAlignment = t2 && "auto" !== t2 ? t2 : this._rotationAlignment, this._update(), this; - } - getPitchAlignment() { - return this._pitchAlignment; - } - } - const ua = { positionOptions: { enableHighAccuracy: false, maximumAge: 0, timeout: 6e3 }, fitBoundsOptions: { maxZoom: 15 }, trackUserLocation: false, showAccuracyCircle: true, showUserLocation: true }; - let da, ma = 0, _a = false; - const pa = { maxWidth: 100, unit: "metric" }; - function fa(t2, e2, i2) { - const o2 = i2 && i2.maxWidth || 100, a2 = t2._container.clientHeight / 2, r2 = t2.unproject([0, a2]), s2 = t2.unproject([o2, a2]), n2 = r2.distanceTo(s2); - if (i2 && "imperial" === i2.unit) { - const i3 = 3.2808 * n2; - i3 > 5280 ? ga(e2, o2, i3 / 5280, t2._getUIString("ScaleControl.Miles")) : ga(e2, o2, i3, t2._getUIString("ScaleControl.Feet")); - } else - i2 && "nautical" === i2.unit ? ga(e2, o2, n2 / 1852, t2._getUIString("ScaleControl.NauticalMiles")) : n2 >= 1e3 ? ga(e2, o2, n2 / 1e3, t2._getUIString("ScaleControl.Kilometers")) : ga(e2, o2, n2, t2._getUIString("ScaleControl.Meters")); - } - function ga(t2, e2, i2, o2) { - const a2 = function(t3) { - const e3 = Math.pow(10, `${Math.floor(t3)}`.length - 1); - let i3 = t3 / e3; - return i3 = i3 >= 10 ? 10 : i3 >= 5 ? 5 : i3 >= 3 ? 3 : i3 >= 2 ? 2 : i3 >= 1 ? 1 : function(t4) { - const e4 = Math.pow(10, Math.ceil(-Math.log(t4) / Math.LN10)); - return Math.round(t4 * e4) / e4; - }(i3), e3 * i3; - }(i2); - t2.style.width = e2 * (a2 / i2) + "px", t2.innerHTML = `${a2} ${o2}`; - } - const xa = { closeButton: true, closeOnClick: true, focusAfterOpen: true, className: "", maxWidth: "240px" }, va = ["a[href]", "[tabindex]:not([tabindex='-1'])", "[contenteditable]:not([contenteditable='false'])", "button:not([disabled])", "input:not([disabled])", "select:not([disabled])", "textarea:not([disabled])"].join(", "); - function ya(e2) { - if (e2) { - if ("number" == typeof e2) { - const i2 = Math.round(Math.sqrt(0.5 * Math.pow(e2, 2))); - return { center: new t.pointGeometry(0, 0), top: new t.pointGeometry(0, e2), "top-left": new t.pointGeometry(i2, i2), "top-right": new t.pointGeometry(-i2, i2), bottom: new t.pointGeometry(0, -e2), "bottom-left": new t.pointGeometry(i2, -i2), "bottom-right": new t.pointGeometry(-i2, -i2), left: new t.pointGeometry(e2, 0), right: new t.pointGeometry(-e2, 0) }; - } - if (e2 instanceof t.pointGeometry || Array.isArray(e2)) { - const i2 = t.pointGeometry.convert(e2); - return { center: i2, top: i2, "top-left": i2, "top-right": i2, bottom: i2, "bottom-left": i2, "bottom-right": i2, left: i2, right: i2 }; - } - return { center: t.pointGeometry.convert(e2.center || [0, 0]), top: t.pointGeometry.convert(e2.top || [0, 0]), "top-left": t.pointGeometry.convert(e2["top-left"] || [0, 0]), "top-right": t.pointGeometry.convert(e2["top-right"] || [0, 0]), bottom: t.pointGeometry.convert(e2.bottom || [0, 0]), "bottom-left": t.pointGeometry.convert(e2["bottom-left"] || [0, 0]), "bottom-right": t.pointGeometry.convert(e2["bottom-right"] || [0, 0]), left: t.pointGeometry.convert(e2.left || [0, 0]), right: t.pointGeometry.convert(e2.right || [0, 0]) }; - } - return ya(new t.pointGeometry(0, 0)); - } - const ba = { supported: e, setRTLTextPlugin: t.setRTLTextPlugin, getRTLTextPluginStatus: t.getRTLTextPluginStatus, Map: class extends Qo { - constructor(e2) { - var i2; - if (t.PerformanceUtils.mark(t.PerformanceMarkers.create), null != (e2 = t.extend({}, aa, e2)).minZoom && null != e2.maxZoom && e2.minZoom > e2.maxZoom) - throw new Error("maxZoom must be greater than or equal to minZoom"); - if (null != e2.minPitch && null != e2.maxPitch && e2.minPitch > e2.maxPitch) - throw new Error("maxPitch must be greater than or equal to minPitch"); - if (null != e2.minPitch && e2.minPitch < 0) - throw new Error("minPitch must be greater than or equal to 0"); - if (null != e2.maxPitch && e2.maxPitch > 85) - throw new Error("maxPitch must be less than or equal to 85"); - if (super(new io(e2.minZoom, e2.maxZoom, e2.minPitch, e2.maxPitch, e2.renderWorldCopies), { bearingSnap: e2.bearingSnap }), this._interactive = e2.interactive, this._cooperativeGestures = e2.cooperativeGestures, this._maxTileCacheSize = e2.maxTileCacheSize, this._failIfMajorPerformanceCaveat = e2.failIfMajorPerformanceCaveat, this._preserveDrawingBuffer = e2.preserveDrawingBuffer, this._antialias = e2.antialias, this._trackResize = e2.trackResize, this._bearingSnap = e2.bearingSnap, this._refreshExpiredTiles = e2.refreshExpiredTiles, this._fadeDuration = e2.fadeDuration, this._crossSourceCollisions = e2.crossSourceCollisions, this._crossFadingFactor = 1, this._collectResourceTiming = e2.collectResourceTiming, this._renderTaskQueue = new ia(), this._controls = [], this._mapId = t.uniqueId(), this._locale = t.extend({}, oa, e2.locale), this._clickTolerance = e2.clickTolerance, this._pixelRatio = null !== (i2 = e2.pixelRatio) && void 0 !== i2 ? i2 : devicePixelRatio, this._requestManager = new s(e2.transformRequest), "string" == typeof e2.container) { - if (this._container = document.getElementById(e2.container), !this._container) - throw new Error(`Container '${e2.container}' not found.`); - } else { - if (!(e2.container instanceof HTMLElement)) - throw new Error("Invalid type: 'container' must be a String or HTMLElement."); - this._container = e2.container; + this._cleared = false, this._currentlyRunning = false; + }, br.prototype.clear = function() { + this._currentlyRunning && (this._cleared = true), this._queue = []; + }; + var wr = { "AttributionControl.ToggleAttribution": "Toggle attribution", "AttributionControl.MapFeedback": "Map feedback", "FullscreenControl.Enter": "Enter fullscreen", "FullscreenControl.Exit": "Exit fullscreen", "GeolocateControl.FindMyLocation": "Find my location", "GeolocateControl.LocationNotAvailable": "Location not available", "LogoControl.Title": "Mapbox logo", "NavigationControl.ResetBearing": "Reset bearing to north", "NavigationControl.ZoomIn": "Zoom in", "NavigationControl.ZoomOut": "Zoom out", "ScaleControl.Feet": "ft", "ScaleControl.Meters": "m", "ScaleControl.Kilometers": "km", "ScaleControl.Miles": "mi", "ScaleControl.NauticalMiles": "nm" }, Tr = t.window.HTMLImageElement, Er = t.window.HTMLElement, Ir = t.window.ImageBitmap, Pr = { center: [0, 0], zoom: 0, bearing: 0, pitch: 0, minZoom: -2, maxZoom: 22, minPitch: 0, maxPitch: 60, interactive: true, scrollZoom: true, boxZoom: true, dragRotate: true, dragPan: true, keyboard: true, doubleClickZoom: true, touchZoomRotate: true, touchPitch: true, bearingSnap: 7, clickTolerance: 3, pitchWithRotate: true, hash: false, attributionControl: true, failIfMajorPerformanceCaveat: false, preserveDrawingBuffer: false, trackResize: true, renderWorldCopies: true, refreshExpiredTiles: true, maxTileCacheSize: null, localIdeographFontFamily: "sans-serif", transformRequest: null, accessToken: null, fadeDuration: 300, crossSourceCollisions: true }, Sr = function(o2) { + function r2(e2) { + var i2 = this; + if (null != (e2 = t.extend({}, Pr, e2)).minZoom && null != e2.maxZoom && e2.minZoom > e2.maxZoom) + throw new Error("maxZoom must be greater than or equal to minZoom"); + if (null != e2.minPitch && null != e2.maxPitch && e2.minPitch > e2.maxPitch) + throw new Error("maxPitch must be greater than or equal to minPitch"); + if (null != e2.minPitch && e2.minPitch < 0) + throw new Error("minPitch must be greater than or equal to 0"); + if (null != e2.maxPitch && e2.maxPitch > 60) + throw new Error("maxPitch must be less than or equal to 60"); + var r3 = new To(e2.minZoom, e2.maxZoom, e2.minPitch, e2.maxPitch, e2.renderWorldCopies); + if (o2.call(this, r3, e2), this._interactive = e2.interactive, this._maxTileCacheSize = e2.maxTileCacheSize, this._failIfMajorPerformanceCaveat = e2.failIfMajorPerformanceCaveat, this._preserveDrawingBuffer = e2.preserveDrawingBuffer, this._antialias = e2.antialias, this._trackResize = e2.trackResize, this._bearingSnap = e2.bearingSnap, this._refreshExpiredTiles = e2.refreshExpiredTiles, this._fadeDuration = e2.fadeDuration, this._crossSourceCollisions = e2.crossSourceCollisions, this._crossFadingFactor = 1, this._collectResourceTiming = e2.collectResourceTiming, this._renderTaskQueue = new br(), this._controls = [], this._mapId = t.uniqueId(), this._locale = t.extend({}, wr, e2.locale), this._clickTolerance = e2.clickTolerance, this._requestManager = new t.RequestManager(e2.transformRequest, e2.accessToken), "string" == typeof e2.container) { + if (this._container = t.window.document.getElementById(e2.container), !this._container) + throw new Error("Container '" + e2.container + "' not found."); + } else { + if (!(e2.container instanceof Er)) + throw new Error("Invalid type: 'container' must be a String or HTMLElement."); + this._container = e2.container; } if (e2.maxBounds && this.setMaxBounds(e2.maxBounds), t.bindAll(["_onWindowOnline", "_onWindowResize", "_onMapScroll", "_contextLost", "_contextRestored"], this), this._setupContainer(), this._setupPainter(), void 0 === this.painter) throw new Error("Failed to initialize WebGL."); - this.on("move", () => this._update(false)), this.on("moveend", () => this._update(false)), this.on("zoom", () => this._update(true)), this.on("terrain", () => { - this.painter.terrainFacilitator.dirty = true, this._update(true); - }), "undefined" != typeof window && (addEventListener("online", this._onWindowOnline, false), addEventListener("resize", this._onWindowResize, false), addEventListener("orientationchange", this._onWindowResize, false)), this.handlers = new Yo(this, e2), this._cooperativeGestures && this._setupCooperativeGestures(), this._hash = e2.hash && new oo("string" == typeof e2.hash && e2.hash || void 0).addTo(this), this._hash && this._hash._onHashChange() || (this.jumpTo({ center: e2.center, zoom: e2.zoom, bearing: e2.bearing, pitch: e2.pitch }), e2.bounds && (this.resize(), this.fitBounds(e2.bounds, t.extend({}, e2.fitBoundsOptions, { duration: 0 })))), this.resize(), this._localIdeographFontFamily = e2.localIdeographFontFamily, e2.style && this.setStyle(e2.style, { localIdeographFontFamily: e2.localIdeographFontFamily }), e2.attributionControl && this.addControl(new ta({ customAttribution: e2.customAttribution })), e2.maplibreLogo && this.addControl(new ea(), e2.logoPosition), this.on("style.load", () => { - this.transform.unmodified && this.jumpTo(this.style.stylesheet); - }), this.on("data", (e3) => { - this._update("style" === e3.dataType), this.fire(new t.Event(`${e3.dataType}data`, e3)); - }), this.on("dataloading", (e3) => { - this.fire(new t.Event(`${e3.dataType}dataloading`, e3)); - }), this.on("dataabort", (e3) => { - this.fire(new t.Event("sourcedataabort", e3)); + this.on("move", function() { + return i2._update(false); + }), this.on("moveend", function() { + return i2._update(false); + }), this.on("zoom", function() { + return i2._update(true); + }), void 0 !== t.window && (t.window.addEventListener("online", this._onWindowOnline, false), t.window.addEventListener("resize", this._onWindowResize, false), t.window.addEventListener("orientationchange", this._onWindowResize, false)), this.handlers = new gr(this, e2), this._hash = e2.hash && new Io("string" == typeof e2.hash && e2.hash || void 0).addTo(this), this._hash && this._hash._onHashChange() || (this.jumpTo({ center: e2.center, zoom: e2.zoom, bearing: e2.bearing, pitch: e2.pitch }), e2.bounds && (this.resize(), this.fitBounds(e2.bounds, t.extend({}, e2.fitBoundsOptions, { duration: 0 })))), this.resize(), this._localIdeographFontFamily = e2.localIdeographFontFamily, e2.style && this.setStyle(e2.style, { localIdeographFontFamily: e2.localIdeographFontFamily }), e2.attributionControl && this.addControl(new yr({ customAttribution: e2.customAttribution })), this.addControl(new xr(), e2.logoPosition), this.on("style.load", function() { + i2.transform.unmodified && i2.jumpTo(i2.style.stylesheet); + }), this.on("data", function(e3) { + i2._update("style" === e3.dataType), i2.fire(new t.Event(e3.dataType + "data", e3)); + }), this.on("dataloading", function(e3) { + i2.fire(new t.Event(e3.dataType + "dataloading", e3)); }); } - _getMapId() { + o2 && (r2.__proto__ = o2), (r2.prototype = Object.create(o2 && o2.prototype)).constructor = r2; + var a2 = { showTileBoundaries: { configurable: true }, showPadding: { configurable: true }, showCollisionBoxes: { configurable: true }, showOverdrawInspector: { configurable: true }, repaint: { configurable: true }, vertices: { configurable: true }, version: { configurable: true } }; + return r2.prototype._getMapId = function() { return this._mapId; - } - addControl(e2, i2) { + }, r2.prototype.addControl = function(e2, i2) { if (void 0 === i2 && (i2 = e2.getDefaultPosition ? e2.getDefaultPosition() : "top-right"), !e2 || !e2.onAdd) return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods."))); - const o2 = e2.onAdd(this); + var o3 = e2.onAdd(this); this._controls.push(e2); - const a2 = this._controlPositions[i2]; - return -1 !== i2.indexOf("bottom") ? a2.insertBefore(o2, a2.firstChild) : a2.appendChild(o2), this; - } - removeControl(e2) { + var r3 = this._controlPositions[i2]; + return -1 !== i2.indexOf("bottom") ? r3.insertBefore(o3, r3.firstChild) : r3.appendChild(o3), this; + }, r2.prototype.removeControl = function(e2) { if (!e2 || !e2.onRemove) return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods."))); - const i2 = this._controls.indexOf(e2); + var i2 = this._controls.indexOf(e2); return i2 > -1 && this._controls.splice(i2, 1), e2.onRemove(this), this; - } - hasControl(t2) { + }, r2.prototype.hasControl = function(t2) { return this._controls.indexOf(t2) > -1; - } - calculateCameraOptionsFromTo(t2, e2, i2, o2) { - return null == o2 && this.style.terrain && (o2 = this.transform.getElevation(i2, this.style.terrain)), super.calculateCameraOptionsFromTo(t2, e2, i2, o2); - } - resize(e2) { - const i2 = this._containerDimensions(), o2 = i2[0], a2 = i2[1]; - this._resizeCanvas(o2, a2, this.getPixelRatio()), this.transform.resize(o2, a2), this.painter.resize(o2, a2, this.getPixelRatio()); - const r2 = !this._moving; - return r2 && (this.stop(), this.fire(new t.Event("movestart", e2)).fire(new t.Event("move", e2))), this.fire(new t.Event("resize", e2)), r2 && this.fire(new t.Event("moveend", e2)), this; - } - getPixelRatio() { - return this._pixelRatio; - } - setPixelRatio(t2) { - const [e2, i2] = this._containerDimensions(); - this._pixelRatio = t2, this._resizeCanvas(e2, i2, t2), this.painter.resize(e2, i2, t2); - } - getBounds() { + }, r2.prototype.resize = function(e2) { + var i2 = this._containerDimensions(), o3 = i2[0], r3 = i2[1]; + if (o3 === this.transform.width && r3 === this.transform.height) + return this; + this._resizeCanvas(o3, r3), this.transform.resize(o3, r3), this.painter.resize(o3, r3); + var a3 = !this._moving; + return a3 && this.fire(new t.Event("movestart", e2)).fire(new t.Event("move", e2)), this.fire(new t.Event("resize", e2)), a3 && this.fire(new t.Event("moveend", e2)), this; + }, r2.prototype.getBounds = function() { return this.transform.getBounds(); - } - getMaxBounds() { + }, r2.prototype.getMaxBounds = function() { return this.transform.getMaxBounds(); - } - setMaxBounds(e2) { + }, r2.prototype.setMaxBounds = function(e2) { return this.transform.setMaxBounds(t.LngLatBounds.convert(e2)), this._update(); - } - setMinZoom(t2) { + }, r2.prototype.setMinZoom = function(t2) { if ((t2 = null == t2 ? -2 : t2) >= -2 && t2 <= this.transform.maxZoom) return this.transform.minZoom = t2, this._update(), this.getZoom() < t2 && this.setZoom(t2), this; throw new Error("minZoom must be between -2 and the current maxZoom, inclusive"); - } - getMinZoom() { + }, r2.prototype.getMinZoom = function() { return this.transform.minZoom; - } - setMaxZoom(t2) { + }, r2.prototype.setMaxZoom = function(t2) { if ((t2 = null == t2 ? 22 : t2) >= this.transform.minZoom) return this.transform.maxZoom = t2, this._update(), this.getZoom() > t2 && this.setZoom(t2), this; throw new Error("maxZoom must be greater than the current minZoom"); - } - getMaxZoom() { + }, r2.prototype.getMaxZoom = function() { return this.transform.maxZoom; - } - setMinPitch(t2) { + }, r2.prototype.setMinPitch = function(t2) { if ((t2 = null == t2 ? 0 : t2) < 0) throw new Error("minPitch must be greater than or equal to 0"); if (t2 >= 0 && t2 <= this.transform.maxPitch) return this.transform.minPitch = t2, this._update(), this.getPitch() < t2 && this.setPitch(t2), this; throw new Error("minPitch must be between 0 and the current maxPitch, inclusive"); - } - getMinPitch() { + }, r2.prototype.getMinPitch = function() { return this.transform.minPitch; - } - setMaxPitch(t2) { - if ((t2 = null == t2 ? 60 : t2) > 85) - throw new Error("maxPitch must be less than or equal to 85"); + }, r2.prototype.setMaxPitch = function(t2) { + if ((t2 = null == t2 ? 60 : t2) > 60) + throw new Error("maxPitch must be less than or equal to 60"); if (t2 >= this.transform.minPitch) return this.transform.maxPitch = t2, this._update(), this.getPitch() > t2 && this.setPitch(t2), this; throw new Error("maxPitch must be greater than the current minPitch"); - } - getMaxPitch() { + }, r2.prototype.getMaxPitch = function() { return this.transform.maxPitch; - } - getRenderWorldCopies() { + }, r2.prototype.getRenderWorldCopies = function() { return this.transform.renderWorldCopies; - } - setRenderWorldCopies(t2) { + }, r2.prototype.setRenderWorldCopies = function(t2) { return this.transform.renderWorldCopies = t2, this._update(); - } - project(e2) { - return this.transform.locationPoint(t.LngLat.convert(e2), this.style && this.style.terrain); - } - unproject(e2) { - return this.transform.pointLocation(t.pointGeometry.convert(e2), this.style && this.style.terrain); - } - isMoving() { + }, r2.prototype.project = function(e2) { + return this.transform.locationPoint(t.LngLat.convert(e2)); + }, r2.prototype.unproject = function(e2) { + return this.transform.pointLocation(t.Point.convert(e2)); + }, r2.prototype.isMoving = function() { return this._moving || this.handlers.isMoving(); - } - isZooming() { + }, r2.prototype.isZooming = function() { return this._zooming || this.handlers.isZooming(); - } - isRotating() { + }, r2.prototype.isRotating = function() { return this._rotating || this.handlers.isRotating(); - } - _createDelegatedListener(t2, e2, i2) { + }, r2.prototype._createDelegatedListener = function(t2, e2, i2) { + var o3, r3 = this; if ("mouseenter" === t2 || "mouseover" === t2) { - let o2 = false; - const a2 = (a3) => { - const r2 = this.getLayer(e2) ? this.queryRenderedFeatures(a3.point, { layers: [e2] }) : []; - r2.length ? o2 || (o2 = true, i2.call(this, new mo(t2, this, a3.originalEvent, { features: r2 }))) : o2 = false; - }; - return { layer: e2, listener: i2, delegates: { mousemove: a2, mouseout: () => { - o2 = false; + var a3 = false; + return { layer: e2, listener: i2, delegates: { mousemove: function(o4) { + var n3 = r3.getLayer(e2) ? r3.queryRenderedFeatures(o4.point, { layers: [e2] }) : []; + n3.length ? a3 || (a3 = true, i2.call(r3, new Ro(t2, r3, o4.originalEvent, { features: n3 }))) : a3 = false; + }, mouseout: function() { + a3 = false; } } }; } if ("mouseleave" === t2 || "mouseout" === t2) { - let o2 = false; - const a2 = (a3) => { - (this.getLayer(e2) ? this.queryRenderedFeatures(a3.point, { layers: [e2] }) : []).length ? o2 = true : o2 && (o2 = false, i2.call(this, new mo(t2, this, a3.originalEvent))); - }, r2 = (e3) => { - o2 && (o2 = false, i2.call(this, new mo(t2, this, e3.originalEvent))); - }; - return { layer: e2, listener: i2, delegates: { mousemove: a2, mouseout: r2 } }; - } - { - const o2 = (t3) => { - const o3 = this.getLayer(e2) ? this.queryRenderedFeatures(t3.point, { layers: [e2] }) : []; - o3.length && (t3.features = o3, i2.call(this, t3), delete t3.features); - }; - return { layer: e2, listener: i2, delegates: { [t2]: o2 } }; + var n2 = false; + return { layer: e2, listener: i2, delegates: { mousemove: function(o4) { + (r3.getLayer(e2) ? r3.queryRenderedFeatures(o4.point, { layers: [e2] }) : []).length ? n2 = true : n2 && (n2 = false, i2.call(r3, new Ro(t2, r3, o4.originalEvent))); + }, mouseout: function(e3) { + n2 && (n2 = false, i2.call(r3, new Ro(t2, r3, e3.originalEvent))); + } } }; } - } - on(t2, e2, i2) { + return { layer: e2, listener: i2, delegates: (o3 = {}, o3[t2] = function(t3) { + var o4 = r3.getLayer(e2) ? r3.queryRenderedFeatures(t3.point, { layers: [e2] }) : []; + o4.length && (t3.features = o4, i2.call(r3, t3), delete t3.features); + }, o3) }; + }, r2.prototype.on = function(t2, e2, i2) { if (void 0 === i2) - return super.on(t2, e2); - const o2 = this._createDelegatedListener(t2, e2, i2); - this._delegatedListeners = this._delegatedListeners || {}, this._delegatedListeners[t2] = this._delegatedListeners[t2] || [], this._delegatedListeners[t2].push(o2); - for (const t3 in o2.delegates) - this.on(t3, o2.delegates[t3]); + return o2.prototype.on.call(this, t2, e2); + var r3 = this._createDelegatedListener(t2, e2, i2); + for (var a3 in this._delegatedListeners = this._delegatedListeners || {}, this._delegatedListeners[t2] = this._delegatedListeners[t2] || [], this._delegatedListeners[t2].push(r3), r3.delegates) + this.on(a3, r3.delegates[a3]); return this; - } - once(t2, e2, i2) { + }, r2.prototype.once = function(t2, e2, i2) { if (void 0 === i2) - return super.once(t2, e2); - const o2 = this._createDelegatedListener(t2, e2, i2); - for (const t3 in o2.delegates) - this.once(t3, o2.delegates[t3]); + return o2.prototype.once.call(this, t2, e2); + var r3 = this._createDelegatedListener(t2, e2, i2); + for (var a3 in r3.delegates) + this.once(a3, r3.delegates[a3]); return this; - } - off(t2, e2, i2) { - return void 0 === i2 ? super.off(t2, e2) : (this._delegatedListeners && this._delegatedListeners[t2] && ((o2) => { - const a2 = this._delegatedListeners[t2]; - for (let t3 = 0; t3 < a2.length; t3++) { - const o3 = a2[t3]; - if (o3.layer === e2 && o3.listener === i2) { - for (const t4 in o3.delegates) - this.off(t4, o3.delegates[t4]); - return a2.splice(t3, 1), this; + }, r2.prototype.off = function(t2, e2, i2) { + var r3 = this; + return void 0 === i2 ? o2.prototype.off.call(this, t2, e2) : (this._delegatedListeners && this._delegatedListeners[t2] && function(o3) { + for (var a3 = o3[t2], n2 = 0; n2 < a3.length; n2++) { + var s2 = a3[n2]; + if (s2.layer === e2 && s2.listener === i2) { + for (var l2 in s2.delegates) + r3.off(l2, s2.delegates[l2]); + return a3.splice(n2, 1), r3; } } - })(), this); - } - queryRenderedFeatures(e2, i2) { + }(this._delegatedListeners), this); + }, r2.prototype.queryRenderedFeatures = function(e2, i2) { if (!this.style) return []; - let o2; - if (void 0 !== i2 || void 0 === e2 || e2 instanceof t.pointGeometry || Array.isArray(e2) || (i2 = e2, e2 = void 0), i2 = i2 || {}, (e2 = e2 || [[0, 0], [this.transform.width, this.transform.height]]) instanceof t.pointGeometry || "number" == typeof e2[0]) - o2 = [t.pointGeometry.convert(e2)]; + var o3; + if (void 0 !== i2 || void 0 === e2 || e2 instanceof t.Point || Array.isArray(e2) || (i2 = e2, e2 = void 0), i2 = i2 || {}, (e2 = e2 || [[0, 0], [this.transform.width, this.transform.height]]) instanceof t.Point || "number" == typeof e2[0]) + o3 = [t.Point.convert(e2)]; else { - const i3 = t.pointGeometry.convert(e2[0]), a2 = t.pointGeometry.convert(e2[1]); - o2 = [i3, new t.pointGeometry(a2.x, i3.y), a2, new t.pointGeometry(i3.x, a2.y), i3]; + var r3 = t.Point.convert(e2[0]), a3 = t.Point.convert(e2[1]); + o3 = [r3, new t.Point(a3.x, r3.y), a3, new t.Point(r3.x, a3.y), r3]; } - return this.style.queryRenderedFeatures(o2, i2, this.transform); - } - querySourceFeatures(t2, e2) { + return this.style.queryRenderedFeatures(o3, i2, this.transform); + }, r2.prototype.querySourceFeatures = function(t2, e2) { return this.style.querySourceFeatures(t2, e2); - } - setStyle(e2, i2) { + }, r2.prototype.setStyle = function(e2, i2) { return false !== (i2 = t.extend({}, { localIdeographFontFamily: this._localIdeographFontFamily }, i2)).diff && i2.localIdeographFontFamily === this._localIdeographFontFamily && this.style && e2 ? (this._diffStyle(e2, i2), this) : (this._localIdeographFontFamily = i2.localIdeographFontFamily, this._updateStyle(e2, i2)); - } - setTransformRequest(t2) { - return this._requestManager.setTransformRequest(t2), this; - } - _getUIString(t2) { - const e2 = this._locale[t2]; + }, r2.prototype._getUIString = function(t2) { + var e2 = this._locale[t2]; if (null == e2) - throw new Error(`Missing UI string '${t2}'`); + throw new Error("Missing UI string '" + t2 + "'"); return e2; - } - _updateStyle(t2, e2) { - return this.style && (this.style.setEventedParent(null), this.style._remove()), t2 ? (this.style = new ee(this, e2 || {}), this.style.setEventedParent(this, { style: this.style }), "string" == typeof t2 ? this.style.loadURL(t2) : this.style.loadJSON(t2), this) : (delete this.style, this); - } - _lazyInitEmptyStyle() { - this.style || (this.style = new ee(this, {}), this.style.setEventedParent(this, { style: this.style }), this.style.loadEmpty()); - } - _diffStyle(e2, i2) { + }, r2.prototype._updateStyle = function(t2, e2) { + return this.style && (this.style.setEventedParent(null), this.style._remove()), t2 ? (this.style = new je(this, e2 || {}), this.style.setEventedParent(this, { style: this.style }), "string" == typeof t2 ? this.style.loadURL(t2) : this.style.loadJSON(t2), this) : (delete this.style, this); + }, r2.prototype._lazyInitEmptyStyle = function() { + this.style || (this.style = new je(this, {}), this.style.setEventedParent(this, { style: this.style }), this.style.loadEmpty()); + }, r2.prototype._diffStyle = function(e2, i2) { + var o3 = this; if ("string" == typeof e2) { - const o2 = this._requestManager.transformRequest(e2, t.ResourceType.Style); - t.getJSON(o2, (e3, o3) => { - e3 ? this.fire(new t.ErrorEvent(e3)) : o3 && this._updateDiff(o3, i2); + var r3 = this._requestManager.normalizeStyleURL(e2), a3 = this._requestManager.transformRequest(r3, t.ResourceType.Style); + t.getJSON(a3, function(e3, r4) { + e3 ? o3.fire(new t.ErrorEvent(e3)) : r4 && o3._updateDiff(r4, i2); }); } else "object" == typeof e2 && this._updateDiff(e2, i2); - } - _updateDiff(e2, i2) { + }, r2.prototype._updateDiff = function(e2, i2) { try { this.style.setState(e2) && this._update(true); - } catch (o2) { - t.warnOnce(`Unable to perform style diff: ${o2.message || o2.error || o2}. Rebuilding the style from scratch.`), this._updateStyle(e2, i2); + } catch (o3) { + t.warnOnce("Unable to perform style diff: " + (o3.message || o3.error || o3) + ". Rebuilding the style from scratch."), this._updateStyle(e2, i2); } - } - getStyle() { + }, r2.prototype.getStyle = function() { if (this.style) return this.style.serialize(); - } - isStyleLoaded() { + }, r2.prototype.isStyleLoaded = function() { return this.style ? this.style.loaded() : t.warnOnce("There is no style added to the map."); - } - addSource(t2, e2) { + }, r2.prototype.addSource = function(t2, e2) { return this._lazyInitEmptyStyle(), this.style.addSource(t2, e2), this._update(true); - } - isSourceLoaded(e2) { - const i2 = this.style && this.style.sourceCaches[e2]; + }, r2.prototype.isSourceLoaded = function(e2) { + var i2 = this.style && this.style.sourceCaches[e2]; if (void 0 !== i2) return i2.loaded(); - this.fire(new t.ErrorEvent(new Error(`There is no source with ID '${e2}'`))); - } - setTerrain(t2) { - return this.style.setTerrain(t2), this; - } - getTerrain() { - return this.style.terrain && this.style.terrain.options; - } - areTilesLoaded() { - const t2 = this.style && this.style.sourceCaches; - for (const e2 in t2) { - const i2 = t2[e2]._tiles; - for (const t3 in i2) { - const e3 = i2[t3]; - if ("loaded" !== e3.state && "errored" !== e3.state) + this.fire(new t.ErrorEvent(new Error("There is no source with ID '" + e2 + "'"))); + }, r2.prototype.areTilesLoaded = function() { + var t2 = this.style && this.style.sourceCaches; + for (var e2 in t2) { + var i2 = t2[e2]._tiles; + for (var o3 in i2) { + var r3 = i2[o3]; + if ("loaded" !== r3.state && "errored" !== r3.state) return false; } } return true; - } - addSourceType(t2, e2, i2) { + }, r2.prototype.addSourceType = function(t2, e2, i2) { return this._lazyInitEmptyStyle(), this.style.addSourceType(t2, e2, i2); - } - removeSource(t2) { + }, r2.prototype.removeSource = function(t2) { return this.style.removeSource(t2), this._update(true); - } - getSource(t2) { + }, r2.prototype.getSource = function(t2) { return this.style.getSource(t2); - } - addImage(e2, i2, { pixelRatio: o2 = 1, sdf: a2 = false, stretchX: r2, stretchY: s2, content: n2 } = {}) { - if (this._lazyInitEmptyStyle(), i2 instanceof HTMLImageElement || t.isImageBitmap(i2)) { - const { width: l2, height: c3, data: h3 } = t.exported.getImageData(i2); - this.style.addImage(e2, { data: new t.RGBAImage({ width: l2, height: c3 }, h3), pixelRatio: o2, stretchX: r2, stretchY: s2, content: n2, sdf: a2, version: 0 }); + }, r2.prototype.addImage = function(e2, i2, o3) { + void 0 === o3 && (o3 = {}); + var r3 = o3.pixelRatio; + void 0 === r3 && (r3 = 1); + var a3 = o3.sdf; + void 0 === a3 && (a3 = false); + var n2 = o3.stretchX, s2 = o3.stretchY, l2 = o3.content; + if (this._lazyInitEmptyStyle(), i2 instanceof Tr || Ir && i2 instanceof Ir) { + var c3 = t.browser.getImageData(i2); + this.style.addImage(e2, { data: new t.RGBAImage({ width: c3.width, height: c3.height }, c3.data), pixelRatio: r3, stretchX: n2, stretchY: s2, content: l2, sdf: a3, version: 0 }); } else { if (void 0 === i2.width || void 0 === i2.height) return this.fire(new t.ErrorEvent(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`"))); - { - const { width: l2, height: c3, data: h3 } = i2, u2 = i2; - this.style.addImage(e2, { data: new t.RGBAImage({ width: l2, height: c3 }, new Uint8Array(h3)), pixelRatio: o2, stretchX: r2, stretchY: s2, content: n2, sdf: a2, version: 0, userImage: u2 }), u2.onAdd && u2.onAdd(this, e2); - } + var u2 = i2; + this.style.addImage(e2, { data: new t.RGBAImage({ width: i2.width, height: i2.height }, new Uint8Array(i2.data)), pixelRatio: r3, stretchX: n2, stretchY: s2, content: l2, sdf: a3, version: 0, userImage: u2 }), u2.onAdd && u2.onAdd(this, e2); } - } - updateImage(e2, i2) { - const o2 = this.style.getImage(e2); - if (!o2) + }, r2.prototype.updateImage = function(e2, i2) { + var o3 = this.style.getImage(e2); + if (!o3) return this.fire(new t.ErrorEvent(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead."))); - const a2 = i2 instanceof HTMLImageElement || t.isImageBitmap(i2) ? t.exported.getImageData(i2) : i2, { width: r2, height: s2, data: n2 } = a2; - if (void 0 === r2 || void 0 === s2) - return this.fire(new t.ErrorEvent(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`"))); - if (r2 !== o2.data.width || s2 !== o2.data.height) - return this.fire(new t.ErrorEvent(new Error("The width and height of the updated image must be that same as the previous version of the image"))); - const l2 = !(i2 instanceof HTMLImageElement || t.isImageBitmap(i2)); - o2.data.replace(n2, l2), this.style.updateImage(e2, o2); - } - hasImage(e2) { + var r3 = i2 instanceof Tr || Ir && i2 instanceof Ir ? t.browser.getImageData(i2) : i2, a3 = r3.width, n2 = r3.height, s2 = r3.data; + return void 0 === a3 || void 0 === n2 ? this.fire(new t.ErrorEvent(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`"))) : a3 !== o3.data.width || n2 !== o3.data.height ? this.fire(new t.ErrorEvent(new Error("The width and height of the updated image must be that same as the previous version of the image"))) : (o3.data.replace(s2, !(i2 instanceof Tr || Ir && i2 instanceof Ir)), void this.style.updateImage(e2, o3)); + }, r2.prototype.hasImage = function(e2) { return e2 ? !!this.style.getImage(e2) : (this.fire(new t.ErrorEvent(new Error("Missing required image id"))), false); - } - removeImage(t2) { + }, r2.prototype.removeImage = function(t2) { this.style.removeImage(t2); - } - loadImage(e2, i2) { + }, r2.prototype.loadImage = function(e2, i2) { t.getImage(this._requestManager.transformRequest(e2, t.ResourceType.Image), i2); - } - listImages() { + }, r2.prototype.listImages = function() { return this.style.listImages(); - } - addLayer(t2, e2) { + }, r2.prototype.addLayer = function(t2, e2) { return this._lazyInitEmptyStyle(), this.style.addLayer(t2, e2), this._update(true); - } - moveLayer(t2, e2) { + }, r2.prototype.moveLayer = function(t2, e2) { return this.style.moveLayer(t2, e2), this._update(true); - } - removeLayer(t2) { + }, r2.prototype.removeLayer = function(t2) { return this.style.removeLayer(t2), this._update(true); - } - getLayer(t2) { + }, r2.prototype.getLayer = function(t2) { return this.style.getLayer(t2); - } - setLayerZoomRange(t2, e2, i2) { + }, r2.prototype.setLayerZoomRange = function(t2, e2, i2) { return this.style.setLayerZoomRange(t2, e2, i2), this._update(true); - } - setFilter(t2, e2, i2 = {}) { - return this.style.setFilter(t2, e2, i2), this._update(true); - } - getFilter(t2) { + }, r2.prototype.setFilter = function(t2, e2, i2) { + return void 0 === i2 && (i2 = {}), this.style.setFilter(t2, e2, i2), this._update(true); + }, r2.prototype.getFilter = function(t2) { return this.style.getFilter(t2); - } - setPaintProperty(t2, e2, i2, o2 = {}) { - return this.style.setPaintProperty(t2, e2, i2, o2), this._update(true); - } - getPaintProperty(t2, e2) { + }, r2.prototype.setPaintProperty = function(t2, e2, i2, o3) { + return void 0 === o3 && (o3 = {}), this.style.setPaintProperty(t2, e2, i2, o3), this._update(true); + }, r2.prototype.getPaintProperty = function(t2, e2) { return this.style.getPaintProperty(t2, e2); - } - setLayoutProperty(t2, e2, i2, o2 = {}) { - return this.style.setLayoutProperty(t2, e2, i2, o2), this._update(true); - } - getLayoutProperty(t2, e2) { + }, r2.prototype.setLayoutProperty = function(t2, e2, i2, o3) { + return void 0 === o3 && (o3 = {}), this.style.setLayoutProperty(t2, e2, i2, o3), this._update(true); + }, r2.prototype.getLayoutProperty = function(t2, e2) { return this.style.getLayoutProperty(t2, e2); - } - setLight(t2, e2 = {}) { - return this._lazyInitEmptyStyle(), this.style.setLight(t2, e2), this._update(true); - } - getLight() { + }, r2.prototype.setLight = function(t2, e2) { + return void 0 === e2 && (e2 = {}), this._lazyInitEmptyStyle(), this.style.setLight(t2, e2), this._update(true); + }, r2.prototype.getLight = function() { return this.style.getLight(); - } - setFeatureState(t2, e2) { + }, r2.prototype.setFeatureState = function(t2, e2) { return this.style.setFeatureState(t2, e2), this._update(); - } - removeFeatureState(t2, e2) { + }, r2.prototype.removeFeatureState = function(t2, e2) { return this.style.removeFeatureState(t2, e2), this._update(); - } - getFeatureState(t2) { + }, r2.prototype.getFeatureState = function(t2) { return this.style.getFeatureState(t2); - } - getContainer() { + }, r2.prototype.getContainer = function() { return this._container; - } - getCanvasContainer() { + }, r2.prototype.getCanvasContainer = function() { return this._canvasContainer; - } - getCanvas() { + }, r2.prototype.getCanvas = function() { return this._canvas; - } - _containerDimensions() { - let t2 = 0, e2 = 0; + }, r2.prototype._containerDimensions = function() { + var t2 = 0, e2 = 0; return this._container && (t2 = this._container.clientWidth || 400, e2 = this._container.clientHeight || 300), [t2, e2]; - } - _setupContainer() { - const t2 = this._container; - t2.classList.add("maplibregl-map", "mapboxgl-map"); - const e2 = this._canvasContainer = r.create("div", "maplibregl-canvas-container mapboxgl-canvas-container", t2); - this._interactive && e2.classList.add("maplibregl-interactive", "mapboxgl-interactive"), this._canvas = r.create("canvas", "maplibregl-canvas mapboxgl-canvas", e2), this._canvas.addEventListener("webglcontextlost", this._contextLost, false), this._canvas.addEventListener("webglcontextrestored", this._contextRestored, false), this._canvas.setAttribute("tabindex", "0"), this._canvas.setAttribute("aria-label", "Map"), this._canvas.setAttribute("role", "region"); - const i2 = this._containerDimensions(); - this._resizeCanvas(i2[0], i2[1], this.getPixelRatio()); - const o2 = this._controlContainer = r.create("div", "maplibregl-control-container mapboxgl-control-container", t2), a2 = this._controlPositions = {}; - ["top-left", "top-right", "bottom-left", "bottom-right"].forEach((t3) => { - a2[t3] = r.create("div", `maplibregl-ctrl-${t3} mapboxgl-ctrl-${t3}`, o2); + }, r2.prototype._detectMissingCSS = function() { + "rgb(250, 128, 114)" !== t.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color") && t.warnOnce("This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/."); + }, r2.prototype._setupContainer = function() { + var t2 = this._container; + t2.classList.add("mapboxgl-map"), (this._missingCSSCanary = i.create("div", "mapboxgl-canary", t2)).style.visibility = "hidden", this._detectMissingCSS(); + var e2 = this._canvasContainer = i.create("div", "mapboxgl-canvas-container", t2); + this._interactive && e2.classList.add("mapboxgl-interactive"), this._canvas = i.create("canvas", "mapboxgl-canvas", e2), this._canvas.addEventListener("webglcontextlost", this._contextLost, false), this._canvas.addEventListener("webglcontextrestored", this._contextRestored, false), this._canvas.setAttribute("tabindex", "0"), this._canvas.setAttribute("aria-label", "Map"), this._canvas.setAttribute("role", "region"); + var o3 = this._containerDimensions(); + this._resizeCanvas(o3[0], o3[1]); + var r3 = this._controlContainer = i.create("div", "mapboxgl-control-container", t2), a3 = this._controlPositions = {}; + ["top-left", "top-right", "bottom-left", "bottom-right"].forEach(function(t3) { + a3[t3] = i.create("div", "mapboxgl-ctrl-" + t3, r3); }), this._container.addEventListener("scroll", this._onMapScroll, false); - } - _setupCooperativeGestures() { - const t2 = this._container; - this._metaPress = false, this._cooperativeGesturesScreen = r.create("div", "maplibregl-cooperative-gesture-screen", t2); - let e2 = "Control", i2 = "boolean" != typeof this._cooperativeGestures && this._cooperativeGestures.windowsHelpText ? this._cooperativeGestures.windowsHelpText : "Use Ctrl + scroll to zoom the map"; - 0 === navigator.platform.indexOf("Mac") && (i2 = "boolean" != typeof this._cooperativeGestures && this._cooperativeGestures.macHelpText ? this._cooperativeGestures.macHelpText : "Use \u2318 + scroll to zoom the map", e2 = "Meta"), this._cooperativeGesturesScreen.innerHTML = ` -
${i2}
-
${"boolean" != typeof this._cooperativeGestures && this._cooperativeGestures.mobileHelpText ? this._cooperativeGestures.mobileHelpText : "Use two fingers to move the map"}
- `, document.addEventListener("keydown", (t3) => { - t3.key === e2 && (this._metaPress = true); - }), document.addEventListener("keyup", (t3) => { - t3.key === e2 && (this._metaPress = false); - }), this._canvasContainer.addEventListener("wheel", (t3) => { - this._onCooperativeGesture(t3, this._metaPress, 1); - }, false), this._canvasContainer.classList.remove("mapboxgl-touch-drag-pan", "maplibregl-touch-drag-pan"); - } - _resizeCanvas(t2, e2, i2) { - this._canvas.width = i2 * t2, this._canvas.height = i2 * e2, this._canvas.style.width = `${t2}px`, this._canvas.style.height = `${e2}px`; - } - _setupPainter() { - const i2 = t.extend({}, e.webGLContextAttributes, { failIfMajorPerformanceCaveat: this._failIfMajorPerformanceCaveat, preserveDrawingBuffer: this._preserveDrawingBuffer, antialias: this._antialias || false }), o2 = this._canvas.getContext("webgl", i2) || this._canvas.getContext("experimental-webgl", i2); - o2 ? (this.painter = new Ji(o2, this.transform), t.exported$1.testSupport(o2)) : this.fire(new t.ErrorEvent(new Error("Failed to initialize WebGL"))); - } - _contextLost(e2) { + }, r2.prototype._resizeCanvas = function(e2, i2) { + var o3 = t.browser.devicePixelRatio || 1; + this._canvas.width = o3 * e2, this._canvas.height = o3 * i2, this._canvas.style.width = e2 + "px", this._canvas.style.height = i2 + "px"; + }, r2.prototype._setupPainter = function() { + var i2 = t.extend({}, e.webGLContextAttributes, { failIfMajorPerformanceCaveat: this._failIfMajorPerformanceCaveat, preserveDrawingBuffer: this._preserveDrawingBuffer, antialias: this._antialias || false }), o3 = this._canvas.getContext("webgl", i2) || this._canvas.getContext("experimental-webgl", i2); + o3 ? (this.painter = new yo(o3, this.transform), t.webpSupported.testSupport(o3)) : this.fire(new t.ErrorEvent(new Error("Failed to initialize WebGL"))); + }, r2.prototype._contextLost = function(e2) { e2.preventDefault(), this._frame && (this._frame.cancel(), this._frame = null), this.fire(new t.Event("webglcontextlost", { originalEvent: e2 })); - } - _contextRestored(e2) { + }, r2.prototype._contextRestored = function(e2) { this._setupPainter(), this.resize(), this._update(), this.fire(new t.Event("webglcontextrestored", { originalEvent: e2 })); - } - _onMapScroll(t2) { + }, r2.prototype._onMapScroll = function(t2) { if (t2.target === this._container) return this._container.scrollTop = 0, this._container.scrollLeft = 0, false; - } - _onCooperativeGesture(t2, e2, i2) { - return !e2 && i2 < 2 && (this._cooperativeGesturesScreen.classList.add("maplibregl-show"), setTimeout(() => { - this._cooperativeGesturesScreen.classList.remove("maplibregl-show"); - }, 100)), false; - } - loaded() { + }, r2.prototype.loaded = function() { return !this._styleDirty && !this._sourcesDirty && !!this.style && this.style.loaded(); - } - _update(t2) { + }, r2.prototype._update = function(t2) { return this.style ? (this._styleDirty = this._styleDirty || t2, this._sourcesDirty = true, this.triggerRepaint(), this) : this; - } - _requestRenderFrame(t2) { + }, r2.prototype._requestRenderFrame = function(t2) { return this._update(), this._renderTaskQueue.add(t2); - } - _cancelRenderFrame(t2) { + }, r2.prototype._cancelRenderFrame = function(t2) { this._renderTaskQueue.remove(t2); - } - _render(e2) { - let i2, o2 = 0; - const a2 = this.painter.context.extTimerQuery; - if (this.listens("gpu-timing-frame") && (i2 = a2.createQueryEXT(), a2.beginQueryEXT(a2.TIME_ELAPSED_EXT, i2), o2 = t.exported.now()), this.painter.context.setDirty(), this.painter.setBaseState(), this._renderTaskQueue.run(e2), this._removed) - return; - let r2 = false; - if (this.style && this._styleDirty) { - this._styleDirty = false; - const e3 = this.transform.zoom, i3 = t.exported.now(); - this.style.zoomHistory.update(e3, i3); - const o3 = new t.EvaluationParameters(e3, { now: i3, fadeDuration: this._fadeDuration, zoomHistory: this.style.zoomHistory, transition: this.style.getTransition() }), a3 = o3.crossFadingFactor(); - 1 === a3 && a3 === this._crossFadingFactor || (r2 = true, this._crossFadingFactor = a3), this.style.update(o3); - } - if (this.style && this._sourcesDirty && (this._sourcesDirty = false, this.style._updateSources(this.transform)), this.style.terrain && this.style.terrain.sourceCache.update(this.transform, this.style.terrain), this.transform.updateElevation(this.style.terrain), this._placementDirty = this.style && this.style._updatePlacement(this.painter.transform, this.showCollisionBoxes, this._fadeDuration, this._crossSourceCollisions), this.painter.render(this.style, { showTileBoundaries: this.showTileBoundaries, showOverdrawInspector: this._showOverdrawInspector, rotating: this.isRotating(), zooming: this.isZooming(), moving: this.isMoving(), fadeDuration: this._fadeDuration, showPadding: this.showPadding, gpuTiming: !!this.listens("gpu-timing-layer") }), this.fire(new t.Event("render")), this.loaded() && !this._loaded && (this._loaded = true, t.PerformanceUtils.mark(t.PerformanceMarkers.load), this.fire(new t.Event("load"))), this.style && (this.style.hasTransitions() || r2) && (this._styleDirty = true), this.style && !this._placementDirty && this.style._releaseSymbolFadeTiles(), this.listens("gpu-timing-frame")) { - const e3 = t.exported.now() - o2; - a2.endQueryEXT(a2.TIME_ELAPSED_EXT, i2), setTimeout(() => { - const o3 = a2.getQueryObjectEXT(i2, a2.QUERY_RESULT_EXT) / 1e6; - a2.deleteQueryEXT(i2), this.fire(new t.Event("gpu-timing-frame", { cpuTime: e3, gpuTime: o3 })); - }, 50); - } - if (this.listens("gpu-timing-layer")) { - const e3 = this.painter.collectGpuTimers(); - setTimeout(() => { - const i3 = this.painter.queryGpuTimers(e3); - this.fire(new t.Event("gpu-timing-layer", { layerTimes: i3 })); - }, 50); - } - const s2 = this._sourcesDirty || this._styleDirty || this._placementDirty; - return s2 || this._repaint ? this.triggerRepaint() : !this.isMoving() && this.loaded() && this.fire(new t.Event("idle")), !this._loaded || this._fullyLoaded || s2 || (this._fullyLoaded = true, t.PerformanceUtils.mark(t.PerformanceMarkers.fullLoad)), this; - } - redraw() { - return this.style && (this._frame && (this._frame.cancel(), this._frame = null), this._render(0)), this; - } - remove() { + }, r2.prototype._render = function(e2) { + var i2, o3 = this, r3 = 0, a3 = this.painter.context.extTimerQuery; + if (this.listens("gpu-timing-frame") && (i2 = a3.createQueryEXT(), a3.beginQueryEXT(a3.TIME_ELAPSED_EXT, i2), r3 = t.browser.now()), this.painter.context.setDirty(), this.painter.setBaseState(), this._renderTaskQueue.run(e2), !this._removed) { + var n2 = false; + if (this.style && this._styleDirty) { + this._styleDirty = false; + var s2 = this.transform.zoom, l2 = t.browser.now(); + this.style.zoomHistory.update(s2, l2); + var c3 = new t.EvaluationParameters(s2, { now: l2, fadeDuration: this._fadeDuration, zoomHistory: this.style.zoomHistory, transition: this.style.getTransition() }), u2 = c3.crossFadingFactor(); + 1 === u2 && u2 === this._crossFadingFactor || (n2 = true, this._crossFadingFactor = u2), this.style.update(c3); + } + if (this.style && this._sourcesDirty && (this._sourcesDirty = false, this.style._updateSources(this.transform)), this._placementDirty = this.style && this.style._updatePlacement(this.painter.transform, this.showCollisionBoxes, this._fadeDuration, this._crossSourceCollisions), this.painter.render(this.style, { showTileBoundaries: this.showTileBoundaries, showOverdrawInspector: this._showOverdrawInspector, rotating: this.isRotating(), zooming: this.isZooming(), moving: this.isMoving(), fadeDuration: this._fadeDuration, showPadding: this.showPadding, gpuTiming: !!this.listens("gpu-timing-layer") }), this.fire(new t.Event("render")), this.loaded() && !this._loaded && (this._loaded = true, this.fire(new t.Event("load"))), this.style && (this.style.hasTransitions() || n2) && (this._styleDirty = true), this.style && !this._placementDirty && this.style._releaseSymbolFadeTiles(), this.listens("gpu-timing-frame")) { + var h3 = t.browser.now() - r3; + a3.endQueryEXT(a3.TIME_ELAPSED_EXT, i2), setTimeout(function() { + var e3 = a3.getQueryObjectEXT(i2, a3.QUERY_RESULT_EXT) / 1e6; + a3.deleteQueryEXT(i2), o3.fire(new t.Event("gpu-timing-frame", { cpuTime: h3, gpuTime: e3 })); + }, 50); + } + if (this.listens("gpu-timing-layer")) { + var p3 = this.painter.collectGpuTimers(); + setTimeout(function() { + var e3 = o3.painter.queryGpuTimers(p3); + o3.fire(new t.Event("gpu-timing-layer", { layerTimes: e3 })); + }, 50); + } + var d2 = this._sourcesDirty || this._styleDirty || this._placementDirty; + return d2 || this._repaint ? this.triggerRepaint() : !this.isMoving() && this.loaded() && this.fire(new t.Event("idle")), !this._loaded || this._fullyLoaded || d2 || (this._fullyLoaded = true), this; + } + }, r2.prototype.remove = function() { this._hash && this._hash.remove(); - for (const t2 of this._controls) - t2.onRemove(this); - this._controls = [], this._frame && (this._frame.cancel(), this._frame = null), this._renderTaskQueue.clear(), this.painter.destroy(), this.handlers.destroy(), delete this.handlers, this.setStyle(null), "undefined" != typeof window && (removeEventListener("resize", this._onWindowResize, false), removeEventListener("orientationchange", this._onWindowResize, false), removeEventListener("online", this._onWindowOnline, false)); - const e2 = this.painter.context.gl.getExtension("WEBGL_lose_context"); - e2 && e2.loseContext(), this._canvas.removeEventListener("webglcontextrestored", this._contextRestored, false), this._canvas.removeEventListener("webglcontextlost", this._contextLost, false), r.remove(this._canvasContainer), r.remove(this._controlContainer), this._cooperativeGestures && r.remove(this._cooperativeGesturesScreen), this._container.classList.remove("maplibregl-map", "mapboxgl-map"), t.PerformanceUtils.clearMetrics(), this._removed = true, this.fire(new t.Event("remove")); - } - triggerRepaint() { - this.style && !this._frame && (this._frame = t.exported.frame((e2) => { - t.PerformanceUtils.frame(e2), this._frame = null, this._render(e2); + for (var e2 = 0, i2 = this._controls; e2 < i2.length; e2 += 1) + i2[e2].onRemove(this); + this._controls = [], this._frame && (this._frame.cancel(), this._frame = null), this._renderTaskQueue.clear(), this.painter.destroy(), this.handlers.destroy(), delete this.handlers, this.setStyle(null), void 0 !== t.window && (t.window.removeEventListener("resize", this._onWindowResize, false), t.window.removeEventListener("orientationchange", this._onWindowResize, false), t.window.removeEventListener("online", this._onWindowOnline, false)); + var o3 = this.painter.context.gl.getExtension("WEBGL_lose_context"); + o3 && o3.loseContext(), Cr(this._canvasContainer), Cr(this._controlContainer), Cr(this._missingCSSCanary), this._container.classList.remove("mapboxgl-map"), this._removed = true, this.fire(new t.Event("remove")); + }, r2.prototype.triggerRepaint = function() { + var e2 = this; + this.style && !this._frame && (this._frame = t.browser.frame(function(t2) { + e2._frame = null, e2._render(t2); })); - } - _onWindowOnline() { + }, r2.prototype._onWindowOnline = function() { this._update(); - } - _onWindowResize(t2) { + }, r2.prototype._onWindowResize = function(t2) { this._trackResize && this.resize({ originalEvent: t2 })._update(); - } - get showTileBoundaries() { + }, a2.showTileBoundaries.get = function() { return !!this._showTileBoundaries; - } - set showTileBoundaries(t2) { + }, a2.showTileBoundaries.set = function(t2) { this._showTileBoundaries !== t2 && (this._showTileBoundaries = t2, this._update()); - } - get showPadding() { + }, a2.showPadding.get = function() { return !!this._showPadding; - } - set showPadding(t2) { + }, a2.showPadding.set = function(t2) { this._showPadding !== t2 && (this._showPadding = t2, this._update()); - } - get showCollisionBoxes() { + }, a2.showCollisionBoxes.get = function() { return !!this._showCollisionBoxes; - } - set showCollisionBoxes(t2) { + }, a2.showCollisionBoxes.set = function(t2) { this._showCollisionBoxes !== t2 && (this._showCollisionBoxes = t2, t2 ? this.style._generateCollisionBoxes() : this._update()); - } - get showOverdrawInspector() { + }, a2.showOverdrawInspector.get = function() { return !!this._showOverdrawInspector; - } - set showOverdrawInspector(t2) { + }, a2.showOverdrawInspector.set = function(t2) { this._showOverdrawInspector !== t2 && (this._showOverdrawInspector = t2, this._update()); - } - get repaint() { + }, a2.repaint.get = function() { return !!this._repaint; - } - set repaint(t2) { + }, a2.repaint.set = function(t2) { this._repaint !== t2 && (this._repaint = t2, this.triggerRepaint()); - } - get vertices() { + }, a2.vertices.get = function() { return !!this._vertices; - } - set vertices(t2) { + }, a2.vertices.set = function(t2) { this._vertices = t2, this._update(); - } - _setCacheLimits(e2, i2) { + }, r2.prototype._setCacheLimits = function(e2, i2) { t.setCacheLimits(e2, i2); + }, a2.version.get = function() { + return t.version; + }, Object.defineProperties(r2.prototype, a2), r2; + }(vr); + function Cr(t2) { + t2.parentNode && t2.parentNode.removeChild(t2); + } + var zr = { showCompass: true, showZoom: true, visualizePitch: false }, Dr = function(e2) { + var o2 = this; + this.options = t.extend({}, zr, e2), this._container = i.create("div", "mapboxgl-ctrl mapboxgl-ctrl-group"), this._container.addEventListener("contextmenu", function(t2) { + return t2.preventDefault(); + }), this.options.showZoom && (t.bindAll(["_setButtonTitle", "_updateZoomButtons"], this), this._zoomInButton = this._createButton("mapboxgl-ctrl-zoom-in", function(t2) { + return o2._map.zoomIn({}, { originalEvent: t2 }); + }), i.create("span", "mapboxgl-ctrl-icon", this._zoomInButton).setAttribute("aria-hidden", true), this._zoomOutButton = this._createButton("mapboxgl-ctrl-zoom-out", function(t2) { + return o2._map.zoomOut({}, { originalEvent: t2 }); + }), i.create("span", "mapboxgl-ctrl-icon", this._zoomOutButton).setAttribute("aria-hidden", true)), this.options.showCompass && (t.bindAll(["_rotateCompassArrow"], this), this._compass = this._createButton("mapboxgl-ctrl-compass", function(t2) { + o2.options.visualizePitch ? o2._map.resetNorthPitch({}, { originalEvent: t2 }) : o2._map.resetNorth({}, { originalEvent: t2 }); + }), this._compassIcon = i.create("span", "mapboxgl-ctrl-icon", this._compass), this._compassIcon.setAttribute("aria-hidden", true)); + }; + Dr.prototype._updateZoomButtons = function() { + var t2 = this._map.getZoom(), e2 = t2 === this._map.getMaxZoom(), i2 = t2 === this._map.getMinZoom(); + this._zoomInButton.disabled = e2, this._zoomOutButton.disabled = i2, this._zoomInButton.setAttribute("aria-disabled", e2.toString()), this._zoomOutButton.setAttribute("aria-disabled", i2.toString()); + }, Dr.prototype._rotateCompassArrow = function() { + var t2 = this.options.visualizePitch ? "scale(" + 1 / Math.pow(Math.cos(this._map.transform.pitch * (Math.PI / 180)), 0.5) + ") rotateX(" + 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 = t2; + }, Dr.prototype.onAdd = function(t2) { + return this._map = t2, this.options.showZoom && (this._setButtonTitle(this._zoomInButton, "ZoomIn"), this._setButtonTitle(this._zoomOutButton, "ZoomOut"), this._map.on("zoom", this._updateZoomButtons), this._updateZoomButtons()), this.options.showCompass && (this._setButtonTitle(this._compass, "ResetBearing"), this.options.visualizePitch && this._map.on("pitch", this._rotateCompassArrow), this._map.on("rotate", this._rotateCompassArrow), this._rotateCompassArrow(), this._handler = new Ar(this._map, this._compass, this.options.visualizePitch)), this._container; + }, Dr.prototype.onRemove = function() { + i.remove(this._container), this.options.showZoom && this._map.off("zoom", this._updateZoomButtons), this.options.showCompass && (this.options.visualizePitch && this._map.off("pitch", this._rotateCompassArrow), this._map.off("rotate", this._rotateCompassArrow), this._handler.off(), delete this._handler), delete this._map; + }, Dr.prototype._createButton = function(t2, e2) { + var o2 = i.create("button", t2, this._container); + return o2.type = "button", o2.addEventListener("click", e2), o2; + }, Dr.prototype._setButtonTitle = function(t2, e2) { + var i2 = this._map._getUIString("NavigationControl." + e2); + t2.title = i2, t2.setAttribute("aria-label", i2); + }; + var Ar = function(e2, o2, r2) { + void 0 === r2 && (r2 = false), this._clickTolerance = 10, this.element = o2, this.mouseRotate = new Xo({ clickTolerance: e2.dragRotate._mouseRotate._clickTolerance }), this.map = e2, r2 && (this.mousePitch = new Ho({ clickTolerance: e2.dragRotate._mousePitch._clickTolerance })), t.bindAll(["mousedown", "mousemove", "mouseup", "touchstart", "touchmove", "touchend", "reset"], this), i.addEventListener(o2, "mousedown", this.mousedown), i.addEventListener(o2, "touchstart", this.touchstart, { passive: false }), i.addEventListener(o2, "touchmove", this.touchmove), i.addEventListener(o2, "touchend", this.touchend), i.addEventListener(o2, "touchcancel", this.reset); + }; + function Mr(e2, i2, o2) { + if (e2 = new t.LngLat(e2.lng, e2.lat), i2) { + var r2 = new t.LngLat(e2.lng - 360, e2.lat), a2 = new t.LngLat(e2.lng + 360, e2.lat), n2 = o2.locationPoint(e2).distSqr(i2); + o2.locationPoint(r2).distSqr(i2) < n2 ? e2 = r2 : o2.locationPoint(a2).distSqr(i2) < n2 && (e2 = a2); } - get version() { - return "2.4.0"; - } - }, NavigationControl: class { - constructor(e2) { - this.options = t.extend({}, ra, e2), this._container = r.create("div", "maplibregl-ctrl maplibregl-ctrl-group mapboxgl-ctrl mapboxgl-ctrl-group"), this._container.addEventListener("contextmenu", (t2) => t2.preventDefault()), this.options.showZoom && (t.bindAll(["_setButtonTitle", "_updateZoomButtons"], this), this._zoomInButton = this._createButton("maplibregl-ctrl-zoom-in mapboxgl-ctrl-zoom-in", (t2) => this._map.zoomIn({}, { originalEvent: t2 })), r.create("span", "maplibregl-ctrl-icon mapboxgl-ctrl-icon", this._zoomInButton).setAttribute("aria-hidden", "true"), this._zoomOutButton = this._createButton("maplibregl-ctrl-zoom-out mapboxgl-ctrl-zoom-out", (t2) => this._map.zoomOut({}, { originalEvent: t2 })), r.create("span", "maplibregl-ctrl-icon mapboxgl-ctrl-icon", this._zoomOutButton).setAttribute("aria-hidden", "true")), this.options.showCompass && (t.bindAll(["_rotateCompassArrow"], this), this._compass = this._createButton("maplibregl-ctrl-compass mapboxgl-ctrl-compass", (t2) => { - this.options.visualizePitch ? this._map.resetNorthPitch({}, { originalEvent: t2 }) : this._map.resetNorth({}, { originalEvent: t2 }); - }), this._compassIcon = r.create("span", "maplibregl-ctrl-icon mapboxgl-ctrl-icon", this._compass), this._compassIcon.setAttribute("aria-hidden", "true")); - } - _updateZoomButtons() { - const t2 = this._map.getZoom(), e2 = t2 === this._map.getMaxZoom(), i2 = t2 === this._map.getMinZoom(); - this._zoomInButton.disabled = e2, this._zoomOutButton.disabled = i2, this._zoomInButton.setAttribute("aria-disabled", e2.toString()), this._zoomOutButton.setAttribute("aria-disabled", i2.toString()); - } - _rotateCompassArrow() { - const t2 = this.options.visualizePitch ? `scale(${1 / Math.pow(Math.cos(this._map.transform.pitch * (Math.PI / 180)), 0.5)}) rotateX(${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 = t2; - } - onAdd(t2) { - return this._map = t2, this.options.showZoom && (this._setButtonTitle(this._zoomInButton, "ZoomIn"), this._setButtonTitle(this._zoomOutButton, "ZoomOut"), this._map.on("zoom", this._updateZoomButtons), this._updateZoomButtons()), this.options.showCompass && (this._setButtonTitle(this._compass, "ResetBearing"), this.options.visualizePitch && this._map.on("pitch", this._rotateCompassArrow), this._map.on("rotate", this._rotateCompassArrow), this._rotateCompassArrow(), this._handler = new sa(this._map, this._compass, this.options.visualizePitch)), this._container; - } - onRemove() { - r.remove(this._container), this.options.showZoom && this._map.off("zoom", this._updateZoomButtons), this.options.showCompass && (this.options.visualizePitch && this._map.off("pitch", this._rotateCompassArrow), this._map.off("rotate", this._rotateCompassArrow), this._handler.off(), delete this._handler), delete this._map; - } - _createButton(t2, e2) { - const i2 = r.create("button", t2, this._container); - return i2.type = "button", i2.addEventListener("click", e2), i2; - } - _setButtonTitle(t2, e2) { - const i2 = this._map._getUIString(`NavigationControl.${e2}`); - t2.title = i2, t2.setAttribute("aria-label", i2); - } - }, GeolocateControl: class extends t.Evented { - constructor(e2) { - super(), this.options = t.extend({}, ua, e2), t.bindAll(["_onSuccess", "_onError", "_onZoom", "_finish", "_setupUI", "_updateCamera", "_updateMarker"], this); - } - onAdd(t2) { - var e2; - return this._map = t2, this._container = r.create("div", "maplibregl-ctrl maplibregl-ctrl-group mapboxgl-ctrl mapboxgl-ctrl-group"), e2 = this._setupUI, void 0 !== da ? e2(da) : void 0 !== window.navigator.permissions ? window.navigator.permissions.query({ name: "geolocation" }).then((t3) => { - da = "denied" !== t3.state, e2(da); - }) : (da = !!window.navigator.geolocation, e2(da)), this._container; - } - onRemove() { - void 0 !== this._geolocationWatchID && (window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0), this.options.showUserLocation && this._userLocationDotMarker && this._userLocationDotMarker.remove(), this.options.showAccuracyCircle && this._accuracyCircleMarker && this._accuracyCircleMarker.remove(), r.remove(this._container), this._map.off("zoom", this._onZoom), this._map = void 0, ma = 0, _a = false; + for (; Math.abs(e2.lng - o2.center.lng) > 180; ) { + var s2 = o2.locationPoint(e2); + if (s2.x >= 0 && s2.y >= 0 && s2.x <= o2.width && s2.y <= o2.height) + break; + e2.lng > o2.center.lng ? e2.lng -= 360 : e2.lng += 360; } - _isOutOfMapMaxBounds(t2) { - const e2 = this._map.getMaxBounds(), i2 = t2.coords; - return e2 && (i2.longitude < e2.getWest() || i2.longitude > e2.getEast() || i2.latitude < e2.getSouth() || i2.latitude > e2.getNorth()); + return e2; + } + Ar.prototype.down = function(t2, e2) { + this.mouseRotate.mousedown(t2, e2), this.mousePitch && this.mousePitch.mousedown(t2, e2), i.disableDrag(); + }, Ar.prototype.move = function(t2, e2) { + var i2 = this.map, o2 = this.mouseRotate.mousemoveWindow(t2, e2); + if (o2 && o2.bearingDelta && i2.setBearing(i2.getBearing() + o2.bearingDelta), this.mousePitch) { + var r2 = this.mousePitch.mousemoveWindow(t2, e2); + r2 && r2.pitchDelta && i2.setPitch(i2.getPitch() + r2.pitchDelta); + } + }, Ar.prototype.off = function() { + var t2 = this.element; + i.removeEventListener(t2, "mousedown", this.mousedown), i.removeEventListener(t2, "touchstart", this.touchstart, { passive: false }), i.removeEventListener(t2, "touchmove", this.touchmove), i.removeEventListener(t2, "touchend", this.touchend), i.removeEventListener(t2, "touchcancel", this.reset), this.offTemp(); + }, Ar.prototype.offTemp = function() { + i.enableDrag(), i.removeEventListener(t.window, "mousemove", this.mousemove), i.removeEventListener(t.window, "mouseup", this.mouseup); + }, Ar.prototype.mousedown = function(e2) { + this.down(t.extend({}, e2, { ctrlKey: true, preventDefault: function() { + return e2.preventDefault(); + } }), i.mousePos(this.element, e2)), i.addEventListener(t.window, "mousemove", this.mousemove), i.addEventListener(t.window, "mouseup", this.mouseup); + }, Ar.prototype.mousemove = function(t2) { + this.move(t2, i.mousePos(this.element, t2)); + }, Ar.prototype.mouseup = function(t2) { + this.mouseRotate.mouseupWindow(t2), this.mousePitch && this.mousePitch.mouseupWindow(t2), this.offTemp(); + }, Ar.prototype.touchstart = function(t2) { + 1 !== t2.targetTouches.length ? this.reset() : (this._startPos = this._lastPos = i.touchPos(this.element, t2.targetTouches)[0], this.down({ type: "mousedown", button: 0, ctrlKey: true, preventDefault: function() { + return t2.preventDefault(); + } }, this._startPos)); + }, Ar.prototype.touchmove = function(t2) { + 1 !== t2.targetTouches.length ? this.reset() : (this._lastPos = i.touchPos(this.element, t2.targetTouches)[0], this.move({ preventDefault: function() { + return t2.preventDefault(); + } }, this._lastPos)); + }, Ar.prototype.touchend = function(t2) { + 0 === t2.targetTouches.length && this._startPos && this._lastPos && this._startPos.dist(this._lastPos) < this._clickTolerance && this.element.click(), this.reset(); + }, Ar.prototype.reset = function() { + this.mouseRotate.reset(), this.mousePitch && this.mousePitch.reset(), delete this._startPos, delete this._lastPos, this.offTemp(); + }; + var Lr = { center: "translate(-50%,-50%)", top: "translate(-50%,0)", "top-left": "translate(0,0)", "top-right": "translate(-100%,0)", bottom: "translate(-50%,-100%)", "bottom-left": "translate(0,-100%)", "bottom-right": "translate(-100%,-100%)", left: "translate(0,-50%)", right: "translate(-100%,-50%)" }; + function Rr(t2, e2, i2) { + var o2 = t2.classList; + for (var r2 in Lr) + o2.remove("mapboxgl-" + i2 + "-anchor-" + r2); + o2.add("mapboxgl-" + i2 + "-anchor-" + e2); + } + var kr, Br = function(e2) { + function o2(o3, r2) { + if (e2.call(this), (o3 instanceof t.window.HTMLElement || r2) && (o3 = t.extend({ element: o3 }, r2)), t.bindAll(["_update", "_onMove", "_onUp", "_addDragHandler", "_onMapClick", "_onKeyPress"], this), this._anchor = o3 && o3.anchor || "center", this._color = o3 && o3.color || "#3FB1CE", this._scale = o3 && o3.scale || 1, this._draggable = o3 && o3.draggable || false, this._clickTolerance = o3 && o3.clickTolerance || 0, this._isDragging = false, this._state = "inactive", this._rotation = o3 && o3.rotation || 0, this._rotationAlignment = o3 && o3.rotationAlignment || "auto", this._pitchAlignment = o3 && o3.pitchAlignment && "auto" !== o3.pitchAlignment ? o3.pitchAlignment : this._rotationAlignment, o3 && o3.element) + this._element = o3.element, this._offset = t.Point.convert(o3 && o3.offset || [0, 0]); + else { + this._defaultMarker = true, this._element = i.create("div"), this._element.setAttribute("aria-label", "Map marker"); + var a2 = i.createNS("http://www.w3.org/2000/svg", "svg"); + a2.setAttributeNS(null, "display", "block"), a2.setAttributeNS(null, "height", "41px"), a2.setAttributeNS(null, "width", "27px"), a2.setAttributeNS(null, "viewBox", "0 0 27 41"); + var n2 = i.createNS("http://www.w3.org/2000/svg", "g"); + n2.setAttributeNS(null, "stroke", "none"), n2.setAttributeNS(null, "stroke-width", "1"), n2.setAttributeNS(null, "fill", "none"), n2.setAttributeNS(null, "fill-rule", "evenodd"); + var s2 = i.createNS("http://www.w3.org/2000/svg", "g"); + s2.setAttributeNS(null, "fill-rule", "nonzero"); + var l2 = i.createNS("http://www.w3.org/2000/svg", "g"); + l2.setAttributeNS(null, "transform", "translate(3.0, 29.0)"), l2.setAttributeNS(null, "fill", "#000000"); + for (var c3 = 0, u2 = [{ rx: "10.5", ry: "5.25002273" }, { rx: "10.5", ry: "5.25002273" }, { rx: "9.5", ry: "4.77275007" }, { rx: "8.5", ry: "4.29549936" }, { rx: "7.5", ry: "3.81822308" }, { rx: "6.5", ry: "3.34094679" }, { rx: "5.5", ry: "2.86367051" }, { rx: "4.5", ry: "2.38636864" }]; c3 < u2.length; c3 += 1) { + var h3 = u2[c3], p3 = i.createNS("http://www.w3.org/2000/svg", "ellipse"); + p3.setAttributeNS(null, "opacity", "0.04"), p3.setAttributeNS(null, "cx", "10.5"), p3.setAttributeNS(null, "cy", "5.80029008"), p3.setAttributeNS(null, "rx", h3.rx), p3.setAttributeNS(null, "ry", h3.ry), l2.appendChild(p3); + } + var d2 = i.createNS("http://www.w3.org/2000/svg", "g"); + d2.setAttributeNS(null, "fill", this._color); + var _2 = i.createNS("http://www.w3.org/2000/svg", "path"); + _2.setAttributeNS(null, "d", "M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"), d2.appendChild(_2); + var f2 = i.createNS("http://www.w3.org/2000/svg", "g"); + f2.setAttributeNS(null, "opacity", "0.25"), f2.setAttributeNS(null, "fill", "#000000"); + var m2 = i.createNS("http://www.w3.org/2000/svg", "path"); + m2.setAttributeNS(null, "d", "M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"), f2.appendChild(m2); + var g2 = i.createNS("http://www.w3.org/2000/svg", "g"); + g2.setAttributeNS(null, "transform", "translate(6.0, 7.0)"), g2.setAttributeNS(null, "fill", "#FFFFFF"); + var v3 = i.createNS("http://www.w3.org/2000/svg", "g"); + v3.setAttributeNS(null, "transform", "translate(8.0, 8.0)"); + var y3 = i.createNS("http://www.w3.org/2000/svg", "circle"); + y3.setAttributeNS(null, "fill", "#000000"), y3.setAttributeNS(null, "opacity", "0.25"), y3.setAttributeNS(null, "cx", "5.5"), y3.setAttributeNS(null, "cy", "5.5"), y3.setAttributeNS(null, "r", "5.4999962"); + var x2 = i.createNS("http://www.w3.org/2000/svg", "circle"); + x2.setAttributeNS(null, "fill", "#FFFFFF"), x2.setAttributeNS(null, "cx", "5.5"), x2.setAttributeNS(null, "cy", "5.5"), x2.setAttributeNS(null, "r", "5.4999962"), v3.appendChild(y3), v3.appendChild(x2), s2.appendChild(l2), s2.appendChild(d2), s2.appendChild(f2), s2.appendChild(g2), s2.appendChild(v3), a2.appendChild(s2), a2.setAttributeNS(null, "height", 41 * this._scale + "px"), a2.setAttributeNS(null, "width", 27 * this._scale + "px"), this._element.appendChild(a2), this._offset = t.Point.convert(o3 && o3.offset || [0, -14]); + } + this._element.classList.add("mapboxgl-marker"), this._element.addEventListener("dragstart", function(t2) { + t2.preventDefault(); + }), this._element.addEventListener("mousedown", function(t2) { + t2.preventDefault(); + }), Rr(this._element, this._anchor, "marker"), this._popup = null; } - _setErrorState() { + return e2 && (o2.__proto__ = e2), (o2.prototype = Object.create(e2 && e2.prototype)).constructor = o2, o2.prototype.addTo = function(t2) { + return this.remove(), this._map = t2, t2.getCanvasContainer().appendChild(this._element), t2.on("move", this._update), t2.on("moveend", this._update), this.setDraggable(this._draggable), this._update(), this._map.on("click", this._onMapClick), this; + }, o2.prototype.remove = function() { + return this._map && (this._map.off("click", this._onMapClick), this._map.off("move", this._update), this._map.off("moveend", this._update), this._map.off("mousedown", this._addDragHandler), this._map.off("touchstart", this._addDragHandler), this._map.off("mouseup", this._onUp), this._map.off("touchend", this._onUp), this._map.off("mousemove", this._onMove), this._map.off("touchmove", this._onMove), delete this._map), i.remove(this._element), this._popup && this._popup.remove(), this; + }, o2.prototype.getLngLat = function() { + return this._lngLat; + }, o2.prototype.setLngLat = function(e3) { + return this._lngLat = t.LngLat.convert(e3), this._pos = null, this._popup && this._popup.setLngLat(this._lngLat), this._update(), this; + }, o2.prototype.getElement = function() { + return this._element; + }, o2.prototype.setPopup = function(t2) { + if (this._popup && (this._popup.remove(), this._popup = null, this._element.removeEventListener("keypress", this._onKeyPress), this._originalTabIndex || this._element.removeAttribute("tabindex")), t2) { + if (!("offset" in t2.options)) { + var e3 = Math.sqrt(Math.pow(13.5, 2) / 2); + t2.options.offset = this._defaultMarker ? { top: [0, 0], "top-left": [0, 0], "top-right": [0, 0], bottom: [0, -38.1], "bottom-left": [e3, -1 * (24.6 + e3)], "bottom-right": [-e3, -1 * (24.6 + e3)], left: [13.5, -24.6], right: [-13.5, -24.6] } : this._offset; + } + this._popup = t2, this._lngLat && this._popup.setLngLat(this._lngLat), this._originalTabIndex = this._element.getAttribute("tabindex"), this._originalTabIndex || this._element.setAttribute("tabindex", "0"), this._element.addEventListener("keypress", this._onKeyPress); + } + return this; + }, o2.prototype._onKeyPress = function(t2) { + var e3 = t2.code, i2 = t2.charCode || t2.keyCode; + "Space" !== e3 && "Enter" !== e3 && 32 !== i2 && 13 !== i2 || this.togglePopup(); + }, o2.prototype._onMapClick = function(t2) { + var e3 = t2.originalEvent.target, i2 = this._element; + this._popup && (e3 === i2 || i2.contains(e3)) && this.togglePopup(); + }, o2.prototype.getPopup = function() { + return this._popup; + }, o2.prototype.togglePopup = function() { + var t2 = this._popup; + return t2 ? (t2.isOpen() ? t2.remove() : t2.addTo(this._map), this) : this; + }, o2.prototype._update = function(t2) { + if (this._map) { + this._map.transform.renderWorldCopies && (this._lngLat = Mr(this._lngLat, this._pos, this._map.transform)), this._pos = this._map.project(this._lngLat)._add(this._offset); + var e3 = ""; + "viewport" === this._rotationAlignment || "auto" === this._rotationAlignment ? e3 = "rotateZ(" + this._rotation + "deg)" : "map" === this._rotationAlignment && (e3 = "rotateZ(" + (this._rotation - this._map.getBearing()) + "deg)"); + var o3 = ""; + "viewport" === this._pitchAlignment || "auto" === this._pitchAlignment ? o3 = "rotateX(0deg)" : "map" === this._pitchAlignment && (o3 = "rotateX(" + this._map.getPitch() + "deg)"), t2 && "moveend" !== t2.type || (this._pos = this._pos.round()), i.setTransform(this._element, Lr[this._anchor] + " translate(" + this._pos.x + "px, " + this._pos.y + "px) " + o3 + " " + e3); + } + }, o2.prototype.getOffset = function() { + return this._offset; + }, o2.prototype.setOffset = function(e3) { + return this._offset = t.Point.convert(e3), this._update(), this; + }, o2.prototype._onMove = function(e3) { + if (!this._isDragging) { + var i2 = this._clickTolerance || this._map._clickTolerance; + this._isDragging = e3.point.dist(this._pointerdownPos) >= i2; + } + this._isDragging && (this._pos = e3.point.sub(this._positionDelta), this._lngLat = this._map.unproject(this._pos), this.setLngLat(this._lngLat), this._element.style.pointerEvents = "none", "pending" === this._state && (this._state = "active", this.fire(new t.Event("dragstart"))), this.fire(new t.Event("drag"))); + }, o2.prototype._onUp = function() { + this._element.style.pointerEvents = "auto", this._positionDelta = null, this._pointerdownPos = null, this._isDragging = false, this._map.off("mousemove", this._onMove), this._map.off("touchmove", this._onMove), "active" === this._state && this.fire(new t.Event("dragend")), this._state = "inactive"; + }, o2.prototype._addDragHandler = function(t2) { + this._element.contains(t2.originalEvent.target) && (t2.preventDefault(), this._positionDelta = t2.point.sub(this._pos).add(this._offset), this._pointerdownPos = t2.point, this._state = "pending", this._map.on("mousemove", this._onMove), this._map.on("touchmove", this._onMove), this._map.once("mouseup", this._onUp), this._map.once("touchend", this._onUp)); + }, o2.prototype.setDraggable = function(t2) { + return this._draggable = !!t2, this._map && (t2 ? (this._map.on("mousedown", this._addDragHandler), this._map.on("touchstart", this._addDragHandler)) : (this._map.off("mousedown", this._addDragHandler), this._map.off("touchstart", this._addDragHandler))), this; + }, o2.prototype.isDraggable = function() { + return this._draggable; + }, o2.prototype.setRotation = function(t2) { + return this._rotation = t2 || 0, this._update(), this; + }, o2.prototype.getRotation = function() { + return this._rotation; + }, o2.prototype.setRotationAlignment = function(t2) { + return this._rotationAlignment = t2 || "auto", this._update(), this; + }, o2.prototype.getRotationAlignment = function() { + return this._rotationAlignment; + }, o2.prototype.setPitchAlignment = function(t2) { + return this._pitchAlignment = t2 && "auto" !== t2 ? t2 : this._rotationAlignment, this._update(), this; + }, o2.prototype.getPitchAlignment = function() { + return this._pitchAlignment; + }, o2; + }(t.Evented), Or = { positionOptions: { enableHighAccuracy: false, maximumAge: 0, timeout: 6e3 }, fitBoundsOptions: { maxZoom: 15 }, trackUserLocation: false, showAccuracyCircle: true, showUserLocation: true }, Fr = 0, Ur = false, Nr = function(e2) { + function o2(i2) { + e2.call(this), this.options = t.extend({}, Or, i2), t.bindAll(["_onSuccess", "_onError", "_onZoom", "_finish", "_setupUI", "_updateCamera", "_updateMarker"], this); + } + return e2 && (o2.__proto__ = e2), (o2.prototype = Object.create(e2 && e2.prototype)).constructor = o2, o2.prototype.onAdd = function(e3) { + var o3; + return this._map = e3, this._container = i.create("div", "mapboxgl-ctrl mapboxgl-ctrl-group"), o3 = this._setupUI, void 0 !== kr ? o3(kr) : void 0 !== t.window.navigator.permissions ? t.window.navigator.permissions.query({ name: "geolocation" }).then(function(t2) { + o3(kr = "denied" !== t2.state); + }) : o3(kr = !!t.window.navigator.geolocation), this._container; + }, o2.prototype.onRemove = function() { + void 0 !== this._geolocationWatchID && (t.window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0), this.options.showUserLocation && this._userLocationDotMarker && this._userLocationDotMarker.remove(), this.options.showAccuracyCircle && this._accuracyCircleMarker && this._accuracyCircleMarker.remove(), i.remove(this._container), this._map.off("zoom", this._onZoom), this._map = void 0, Fr = 0, Ur = false; + }, o2.prototype._isOutOfMapMaxBounds = function(t2) { + var e3 = this._map.getMaxBounds(), i2 = t2.coords; + return e3 && (i2.longitude < e3.getWest() || i2.longitude > e3.getEast() || i2.latitude < e3.getSouth() || i2.latitude > e3.getNorth()); + }, o2.prototype._setErrorState = function() { switch (this._watchState) { case "WAITING_ACTIVE": - this._watchState = "ACTIVE_ERROR", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active", "mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error", "mapboxgl-ctrl-geolocate-active-error"); + this._watchState = "ACTIVE_ERROR", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"); break; case "ACTIVE_LOCK": - this._watchState = "ACTIVE_ERROR", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active", "mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error", "mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"); + this._watchState = "ACTIVE_ERROR", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"); break; case "BACKGROUND": - this._watchState = "BACKGROUND_ERROR", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background", "mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background-error", "mapboxgl-ctrl-geolocate-background-error"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"); - break; - case "ACTIVE_ERROR": - break; - default: - throw new Error(`Unexpected watchState ${this._watchState}`); + this._watchState = "BACKGROUND_ERROR", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"); } - } - _onSuccess(e2) { + }, o2.prototype._onSuccess = function(e3) { if (this._map) { - if (this._isOutOfMapMaxBounds(e2)) - return this._setErrorState(), this.fire(new t.Event("outofmaxbounds", e2)), this._updateMarker(), void this._finish(); + if (this._isOutOfMapMaxBounds(e3)) + return this._setErrorState(), this.fire(new t.Event("outofmaxbounds", e3)), this._updateMarker(), void this._finish(); if (this.options.trackUserLocation) - switch (this._lastKnownPosition = e2, this._watchState) { + switch (this._lastKnownPosition = e3, this._watchState) { case "WAITING_ACTIVE": case "ACTIVE_LOCK": case "ACTIVE_ERROR": - this._watchState = "ACTIVE_LOCK", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error", "mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active", "mapboxgl-ctrl-geolocate-active"); + this._watchState = "ACTIVE_LOCK", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active"); break; case "BACKGROUND": case "BACKGROUND_ERROR": - this._watchState = "BACKGROUND", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error", "mapboxgl-ctrl-geolocate-background-error"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background", "mapboxgl-ctrl-geolocate-background"); - break; - default: - throw new Error(`Unexpected watchState ${this._watchState}`); + this._watchState = "BACKGROUND", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"); } - this.options.showUserLocation && "OFF" !== this._watchState && this._updateMarker(e2), this.options.trackUserLocation && "ACTIVE_LOCK" !== this._watchState || this._updateCamera(e2), this.options.showUserLocation && this._dotElement.classList.remove("maplibregl-user-location-dot-stale", "mapboxgl-user-location-dot-stale"), this.fire(new t.Event("geolocate", e2)), this._finish(); - } - } - _updateCamera(e2) { - const i2 = new t.LngLat(e2.coords.longitude, e2.coords.latitude), o2 = e2.coords.accuracy, a2 = this._map.getBearing(), r2 = t.extend({ bearing: a2 }, this.options.fitBoundsOptions); - this._map.fitBounds(i2.toBounds(o2), r2, { geolocateSource: true }); - } - _updateMarker(e2) { - if (e2) { - const i2 = new t.LngLat(e2.coords.longitude, e2.coords.latitude); - this._accuracyCircleMarker.setLngLat(i2).addTo(this._map), this._userLocationDotMarker.setLngLat(i2).addTo(this._map), this._accuracy = e2.coords.accuracy, this.options.showUserLocation && this.options.showAccuracyCircle && this._updateCircleRadius(); + this.options.showUserLocation && "OFF" !== this._watchState && this._updateMarker(e3), this.options.trackUserLocation && "ACTIVE_LOCK" !== this._watchState || this._updateCamera(e3), this.options.showUserLocation && this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"), this.fire(new t.Event("geolocate", e3)), this._finish(); + } + }, o2.prototype._updateCamera = function(e3) { + var i2 = new t.LngLat(e3.coords.longitude, e3.coords.latitude), o3 = e3.coords.accuracy, r2 = this._map.getBearing(), a2 = t.extend({ bearing: r2 }, this.options.fitBoundsOptions); + this._map.fitBounds(i2.toBounds(o3), a2, { geolocateSource: true }); + }, o2.prototype._updateMarker = function(e3) { + if (e3) { + var i2 = new t.LngLat(e3.coords.longitude, e3.coords.latitude); + this._accuracyCircleMarker.setLngLat(i2).addTo(this._map), this._userLocationDotMarker.setLngLat(i2).addTo(this._map), this._accuracy = e3.coords.accuracy, this.options.showUserLocation && this.options.showAccuracyCircle && this._updateCircleRadius(); } else this._userLocationDotMarker.remove(), this._accuracyCircleMarker.remove(); - } - _updateCircleRadius() { - const t2 = this._map._container.clientHeight / 2, e2 = this._map.unproject([0, t2]), i2 = this._map.unproject([1, t2]), o2 = e2.distanceTo(i2), a2 = Math.ceil(2 * this._accuracy / o2); - this._circleElement.style.width = `${a2}px`, this._circleElement.style.height = `${a2}px`; - } - _onZoom() { + }, o2.prototype._updateCircleRadius = function() { + var t2 = this._map._container.clientHeight / 2, e3 = this._map.unproject([0, t2]), i2 = this._map.unproject([1, t2]), o3 = e3.distanceTo(i2), r2 = Math.ceil(2 * this._accuracy / o3); + this._circleElement.style.width = r2 + "px", this._circleElement.style.height = r2 + "px"; + }, o2.prototype._onZoom = function() { this.options.showUserLocation && this.options.showAccuracyCircle && this._updateCircleRadius(); - } - _onError(e2) { + }, o2.prototype._onError = function(e3) { if (this._map) { if (this.options.trackUserLocation) - if (1 === e2.code) { - this._watchState = "OFF", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active", "mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error", "mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background", "mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error", "mapboxgl-ctrl-geolocate-background-error"), this._geolocateButton.disabled = true; - const t2 = this._map._getUIString("GeolocateControl.LocationNotAvailable"); - this._geolocateButton.title = t2, this._geolocateButton.setAttribute("aria-label", t2), void 0 !== this._geolocationWatchID && this._clearWatch(); + if (1 === e3.code) { + this._watchState = "OFF", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"), this._geolocateButton.disabled = true; + var i2 = this._map._getUIString("GeolocateControl.LocationNotAvailable"); + this._geolocateButton.title = i2, this._geolocateButton.setAttribute("aria-label", i2), void 0 !== this._geolocationWatchID && this._clearWatch(); } else { - if (3 === e2.code && _a) + if (3 === e3.code && Ur) return; this._setErrorState(); } - "OFF" !== this._watchState && this.options.showUserLocation && this._dotElement.classList.add("maplibregl-user-location-dot-stale", "mapboxgl-user-location-dot-stale"), this.fire(new t.Event("error", e2)), this._finish(); + "OFF" !== this._watchState && this.options.showUserLocation && this._dotElement.classList.add("mapboxgl-user-location-dot-stale"), this.fire(new t.Event("error", e3)), this._finish(); } - } - _finish() { + }, o2.prototype._finish = function() { this._timeoutId && clearTimeout(this._timeoutId), this._timeoutId = void 0; - } - _setupUI(e2) { - if (this._container.addEventListener("contextmenu", (t2) => t2.preventDefault()), this._geolocateButton = r.create("button", "maplibregl-ctrl-geolocate mapboxgl-ctrl-geolocate", this._container), r.create("span", "maplibregl-ctrl-icon mapboxgl-ctrl-icon", this._geolocateButton).setAttribute("aria-hidden", "true"), this._geolocateButton.type = "button", false === e2) { + }, o2.prototype._setupUI = function(e3) { + var o3 = this; + if (this._container.addEventListener("contextmenu", function(t2) { + return t2.preventDefault(); + }), this._geolocateButton = i.create("button", "mapboxgl-ctrl-geolocate", this._container), i.create("span", "mapboxgl-ctrl-icon", this._geolocateButton).setAttribute("aria-hidden", true), this._geolocateButton.type = "button", false === e3) { t.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled."); - const e3 = this._map._getUIString("GeolocateControl.LocationNotAvailable"); - this._geolocateButton.disabled = true, this._geolocateButton.title = e3, this._geolocateButton.setAttribute("aria-label", e3); + var r2 = this._map._getUIString("GeolocateControl.LocationNotAvailable"); + this._geolocateButton.disabled = true, this._geolocateButton.title = r2, this._geolocateButton.setAttribute("aria-label", r2); } else { - const t2 = this._map._getUIString("GeolocateControl.FindMyLocation"); - this._geolocateButton.title = t2, this._geolocateButton.setAttribute("aria-label", t2); + var a2 = this._map._getUIString("GeolocateControl.FindMyLocation"); + this._geolocateButton.title = a2, this._geolocateButton.setAttribute("aria-label", a2); } - this.options.trackUserLocation && (this._geolocateButton.setAttribute("aria-pressed", "false"), this._watchState = "OFF"), this.options.showUserLocation && (this._dotElement = r.create("div", "maplibregl-user-location-dot mapboxgl-user-location-dot"), this._userLocationDotMarker = new ha(this._dotElement), this._circleElement = r.create("div", "maplibregl-user-location-accuracy-circle mapboxgl-user-location-accuracy-circle"), this._accuracyCircleMarker = new ha({ element: this._circleElement, pitchAlignment: "map" }), this.options.trackUserLocation && (this._watchState = "OFF"), this._map.on("zoom", this._onZoom)), this._geolocateButton.addEventListener("click", this.trigger.bind(this)), this._setup = true, this.options.trackUserLocation && this._map.on("movestart", (e3) => { - e3.geolocateSource || "ACTIVE_LOCK" !== this._watchState || e3.originalEvent && "resize" === e3.originalEvent.type || (this._watchState = "BACKGROUND", this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background", "mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active", "mapboxgl-ctrl-geolocate-active"), this.fire(new t.Event("trackuserlocationend"))); + this.options.trackUserLocation && (this._geolocateButton.setAttribute("aria-pressed", "false"), this._watchState = "OFF"), this.options.showUserLocation && (this._dotElement = i.create("div", "mapboxgl-user-location-dot"), this._userLocationDotMarker = new Br(this._dotElement), this._circleElement = i.create("div", "mapboxgl-user-location-accuracy-circle"), this._accuracyCircleMarker = new Br({ element: this._circleElement, pitchAlignment: "map" }), this.options.trackUserLocation && (this._watchState = "OFF"), this._map.on("zoom", this._onZoom)), this._geolocateButton.addEventListener("click", this.trigger.bind(this)), this._setup = true, this.options.trackUserLocation && this._map.on("movestart", function(e4) { + e4.geolocateSource || "ACTIVE_LOCK" !== o3._watchState || e4.originalEvent && "resize" === e4.originalEvent.type || (o3._watchState = "BACKGROUND", o3._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"), o3._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"), o3.fire(new t.Event("trackuserlocationend"))); }); - } - trigger() { + }, o2.prototype.trigger = function() { if (!this._setup) return t.warnOnce("Geolocate control triggered before added to a map"), false; if (this.options.trackUserLocation) { @@ -32382,285 +30794,274 @@ uniform ${i3} ${o3} u_${a3}; case "ACTIVE_LOCK": case "ACTIVE_ERROR": case "BACKGROUND_ERROR": - ma--, _a = false, this._watchState = "OFF", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active", "mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error", "mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background", "mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error", "mapboxgl-ctrl-geolocate-background-error"), this.fire(new t.Event("trackuserlocationend")); + Fr--, Ur = false, this._watchState = "OFF", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"), this.fire(new t.Event("trackuserlocationend")); break; case "BACKGROUND": - this._watchState = "ACTIVE_LOCK", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background", "mapboxgl-ctrl-geolocate-background"), this._lastKnownPosition && this._updateCamera(this._lastKnownPosition), this.fire(new t.Event("trackuserlocationstart")); - break; - default: - throw new Error(`Unexpected watchState ${this._watchState}`); + this._watchState = "ACTIVE_LOCK", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"), this._lastKnownPosition && this._updateCamera(this._lastKnownPosition), this.fire(new t.Event("trackuserlocationstart")); } switch (this._watchState) { case "WAITING_ACTIVE": - this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active", "mapboxgl-ctrl-geolocate-active"); + this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active"); break; case "ACTIVE_LOCK": - this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active", "mapboxgl-ctrl-geolocate-active"); + this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active"); break; - case "OFF": + case "ACTIVE_ERROR": + this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"); + break; + case "BACKGROUND": + this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"); break; - default: - throw new Error(`Unexpected watchState ${this._watchState}`); + case "BACKGROUND_ERROR": + this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"); } if ("OFF" === this._watchState && void 0 !== this._geolocationWatchID) this._clearWatch(); else if (void 0 === this._geolocationWatchID) { - let t2; - this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.setAttribute("aria-pressed", "true"), ma++, ma > 1 ? (t2 = { maximumAge: 6e5, timeout: 0 }, _a = true) : (t2 = this.options.positionOptions, _a = false), this._geolocationWatchID = window.navigator.geolocation.watchPosition(this._onSuccess, this._onError, t2); + var e3; + this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.setAttribute("aria-pressed", "true"), ++Fr > 1 ? (e3 = { maximumAge: 6e5, timeout: 0 }, Ur = true) : (e3 = this.options.positionOptions, Ur = false), this._geolocationWatchID = t.window.navigator.geolocation.watchPosition(this._onSuccess, this._onError, e3); } } else - window.navigator.geolocation.getCurrentPosition(this._onSuccess, this._onError, this.options.positionOptions), this._timeoutId = setTimeout(this._finish, 1e4); + t.window.navigator.geolocation.getCurrentPosition(this._onSuccess, this._onError, this.options.positionOptions), this._timeoutId = setTimeout(this._finish, 1e4); return true; + }, o2.prototype._clearWatch = function() { + t.window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0, this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.setAttribute("aria-pressed", "false"), this.options.showUserLocation && this._updateMarker(null); + }, o2; + }(t.Evented), Zr = { maxWidth: 100, unit: "metric" }, qr = function(e2) { + this.options = t.extend({}, Zr, e2), t.bindAll(["_onMove", "setUnit"], this); + }; + function jr(t2, e2, i2) { + var o2 = i2 && i2.maxWidth || 100, r2 = t2._container.clientHeight / 2, a2 = t2.unproject([0, r2]), n2 = t2.unproject([o2, r2]), s2 = a2.distanceTo(n2); + if (i2 && "imperial" === i2.unit) { + var l2 = 3.2808 * s2; + l2 > 5280 ? Vr(e2, o2, l2 / 5280, t2._getUIString("ScaleControl.Miles")) : Vr(e2, o2, l2, t2._getUIString("ScaleControl.Feet")); + } else + i2 && "nautical" === i2.unit ? Vr(e2, o2, s2 / 1852, t2._getUIString("ScaleControl.NauticalMiles")) : s2 >= 1e3 ? Vr(e2, o2, s2 / 1e3, t2._getUIString("ScaleControl.Kilometers")) : Vr(e2, o2, s2, t2._getUIString("ScaleControl.Meters")); + } + function Vr(t2, e2, i2, o2) { + var r2, a2, n2, s2 = (r2 = i2, (a2 = Math.pow(10, ("" + Math.floor(r2)).length - 1)) * (n2 = (n2 = r2 / a2) >= 10 ? 10 : n2 >= 5 ? 5 : n2 >= 3 ? 3 : n2 >= 2 ? 2 : n2 >= 1 ? 1 : function(t3) { + var e3 = Math.pow(10, Math.ceil(-Math.log(t3) / Math.LN10)); + return Math.round(t3 * e3) / e3; + }(n2))); + t2.style.width = e2 * (s2 / i2) + "px", t2.innerHTML = s2 + " " + o2; + } + qr.prototype.getDefaultPosition = function() { + return "bottom-left"; + }, qr.prototype._onMove = function() { + jr(this._map, this._container, this.options); + }, qr.prototype.onAdd = function(t2) { + return this._map = t2, this._container = i.create("div", "mapboxgl-ctrl mapboxgl-ctrl-scale", t2.getContainer()), this._map.on("move", this._onMove), this._onMove(), this._container; + }, qr.prototype.onRemove = function() { + i.remove(this._container), this._map.off("move", this._onMove), this._map = void 0; + }, qr.prototype.setUnit = function(t2) { + this.options.unit = t2, jr(this._map, this._container, this.options); + }; + var Gr = function(e2) { + this._fullscreen = false, e2 && e2.container && (e2.container instanceof t.window.HTMLElement ? this._container = e2.container : t.warnOnce("Full screen control 'container' must be a DOM element.")), t.bindAll(["_onClickFullscreen", "_changeIcon"], this), "onfullscreenchange" in t.window.document ? this._fullscreenchange = "fullscreenchange" : "onmozfullscreenchange" in t.window.document ? this._fullscreenchange = "mozfullscreenchange" : "onwebkitfullscreenchange" in t.window.document ? this._fullscreenchange = "webkitfullscreenchange" : "onmsfullscreenchange" in t.window.document && (this._fullscreenchange = "MSFullscreenChange"); + }; + Gr.prototype.onAdd = function(e2) { + return this._map = e2, this._container || (this._container = this._map.getContainer()), this._controlContainer = i.create("div", "mapboxgl-ctrl mapboxgl-ctrl-group"), this._checkFullscreenSupport() ? this._setupUI() : (this._controlContainer.style.display = "none", t.warnOnce("This device does not support fullscreen mode.")), this._controlContainer; + }, Gr.prototype.onRemove = function() { + i.remove(this._controlContainer), this._map = null, t.window.document.removeEventListener(this._fullscreenchange, this._changeIcon); + }, Gr.prototype._checkFullscreenSupport = function() { + return !!(t.window.document.fullscreenEnabled || t.window.document.mozFullScreenEnabled || t.window.document.msFullscreenEnabled || t.window.document.webkitFullscreenEnabled); + }, Gr.prototype._setupUI = function() { + var e2 = this._fullscreenButton = i.create("button", "mapboxgl-ctrl-fullscreen", this._controlContainer); + i.create("span", "mapboxgl-ctrl-icon", e2).setAttribute("aria-hidden", true), e2.type = "button", this._updateTitle(), this._fullscreenButton.addEventListener("click", this._onClickFullscreen), t.window.document.addEventListener(this._fullscreenchange, this._changeIcon); + }, Gr.prototype._updateTitle = function() { + var t2 = this._getTitle(); + this._fullscreenButton.setAttribute("aria-label", t2), this._fullscreenButton.title = t2; + }, Gr.prototype._getTitle = function() { + return this._map._getUIString(this._isFullscreen() ? "FullscreenControl.Exit" : "FullscreenControl.Enter"); + }, Gr.prototype._isFullscreen = function() { + return this._fullscreen; + }, Gr.prototype._changeIcon = function() { + (t.window.document.fullscreenElement || t.window.document.mozFullScreenElement || t.window.document.webkitFullscreenElement || t.window.document.msFullscreenElement) === this._container !== this._fullscreen && (this._fullscreen = !this._fullscreen, this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"), this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"), this._updateTitle()); + }, Gr.prototype._onClickFullscreen = function() { + this._isFullscreen() ? t.window.document.exitFullscreen ? t.window.document.exitFullscreen() : t.window.document.mozCancelFullScreen ? t.window.document.mozCancelFullScreen() : t.window.document.msExitFullscreen ? t.window.document.msExitFullscreen() : t.window.document.webkitCancelFullScreen && t.window.document.webkitCancelFullScreen() : this._container.requestFullscreen ? this._container.requestFullscreen() : this._container.mozRequestFullScreen ? this._container.mozRequestFullScreen() : this._container.msRequestFullscreen ? this._container.msRequestFullscreen() : this._container.webkitRequestFullscreen && this._container.webkitRequestFullscreen(); + }; + var Wr = { closeButton: true, closeOnClick: true, focusAfterOpen: true, className: "", maxWidth: "240px" }, Xr = ["a[href]", "[tabindex]:not([tabindex='-1'])", "[contenteditable]:not([contenteditable='false'])", "button:not([disabled])", "input:not([disabled])", "select:not([disabled])", "textarea:not([disabled])"].join(", "), Hr = function(e2) { + function o2(i2) { + e2.call(this), this.options = t.extend(Object.create(Wr), i2), t.bindAll(["_update", "_onClose", "remove", "_onMouseMove", "_onMouseUp", "_onDrag"], this); } - _clearWatch() { - window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0, this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting", "mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.setAttribute("aria-pressed", "false"), this.options.showUserLocation && this._updateMarker(null); - } - }, AttributionControl: ta, LogoControl: ea, ScaleControl: class { - constructor(e2) { - this.options = t.extend({}, pa, e2), t.bindAll(["_onMove", "setUnit"], this); - } - getDefaultPosition() { - return "bottom-left"; - } - _onMove() { - fa(this._map, this._container, this.options); - } - onAdd(t2) { - return this._map = t2, this._container = r.create("div", "maplibregl-ctrl maplibregl-ctrl-scale mapboxgl-ctrl mapboxgl-ctrl-scale", t2.getContainer()), this._map.on("move", this._onMove), this._onMove(), this._container; - } - onRemove() { - r.remove(this._container), this._map.off("move", this._onMove), this._map = void 0; - } - setUnit(t2) { - this.options.unit = t2, fa(this._map, this._container, this.options); - } - }, FullscreenControl: class { - constructor(e2) { - this._fullscreen = false, e2 && e2.container && (e2.container instanceof HTMLElement ? this._container = e2.container : t.warnOnce("Full screen control 'container' must be a DOM element.")), t.bindAll(["_onClickFullscreen", "_changeIcon"], this), "onfullscreenchange" in document ? this._fullscreenchange = "fullscreenchange" : "onmozfullscreenchange" in document ? this._fullscreenchange = "mozfullscreenchange" : "onwebkitfullscreenchange" in document ? this._fullscreenchange = "webkitfullscreenchange" : "onmsfullscreenchange" in document && (this._fullscreenchange = "MSFullscreenChange"); - } - onAdd(e2) { - return this._map = e2, this._container || (this._container = this._map.getContainer()), this._controlContainer = r.create("div", "maplibregl-ctrl maplibregl-ctrl-group mapboxgl-ctrl mapboxgl-ctrl-group"), this._checkFullscreenSupport() ? this._setupUI() : (this._controlContainer.style.display = "none", t.warnOnce("This device does not support fullscreen mode.")), this._controlContainer; - } - onRemove() { - r.remove(this._controlContainer), this._map = null, window.document.removeEventListener(this._fullscreenchange, this._changeIcon); - } - _checkFullscreenSupport() { - return !!(document.fullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled || document.webkitFullscreenEnabled); - } - _setupUI() { - const t2 = this._fullscreenButton = r.create("button", "maplibregl-ctrl-fullscreen mapboxgl-ctrl-fullscreen", this._controlContainer); - r.create("span", "maplibregl-ctrl-icon mapboxgl-ctrl-icon", t2).setAttribute("aria-hidden", "true"), t2.type = "button", this._updateTitle(), this._fullscreenButton.addEventListener("click", this._onClickFullscreen), window.document.addEventListener(this._fullscreenchange, this._changeIcon); - } - _updateTitle() { - const t2 = this._getTitle(); - this._fullscreenButton.setAttribute("aria-label", t2), this._fullscreenButton.title = t2; - } - _getTitle() { - return this._map._getUIString(this._isFullscreen() ? "FullscreenControl.Exit" : "FullscreenControl.Enter"); - } - _isFullscreen() { - return this._fullscreen; - } - _changeIcon() { - (window.document.fullscreenElement || window.document.mozFullScreenElement || window.document.webkitFullscreenElement || window.document.msFullscreenElement) === this._container !== this._fullscreen && (this._fullscreen = !this._fullscreen, this._fullscreenButton.classList.toggle("maplibregl-ctrl-shrink"), this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"), this._fullscreenButton.classList.toggle("maplibregl-ctrl-fullscreen"), this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"), this._updateTitle()); - } - _onClickFullscreen() { - this._isFullscreen() ? window.document.exitFullscreen ? window.document.exitFullscreen() : window.document.mozCancelFullScreen ? window.document.mozCancelFullScreen() : window.document.msExitFullscreen ? window.document.msExitFullscreen() : window.document.webkitCancelFullScreen && window.document.webkitCancelFullScreen() : this._container.requestFullscreen ? this._container.requestFullscreen() : this._container.mozRequestFullScreen ? this._container.mozRequestFullScreen() : this._container.msRequestFullscreen ? this._container.msRequestFullscreen() : this._container.webkitRequestFullscreen && this._container.webkitRequestFullscreen(); - } - }, TerrainControl: class { - constructor(e2) { - this.options = e2, t.bindAll(["_toggleTerrain", "_updateTerrainIcon"], this); - } - onAdd(t2) { - return this._map = t2, this._container = r.create("div", "maplibregl-ctrl maplibregl-ctrl-group mapboxgl-ctrl mapboxgl-ctrl-group"), this._terrainButton = r.create("button", "maplibregl-ctrl-terrain mapboxgl-ctrl-terrain", this._container), r.create("span", "maplibregl-ctrl-icon mapboxgl-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() { - r.remove(this._container), this._map.off("terrain", this._updateTerrainIcon), this._map = void 0; - } - _toggleTerrain() { - this._map.getTerrain() ? this._map.setTerrain(null) : this._map.setTerrain(this.options), this._updateTerrainIcon(); - } - _updateTerrainIcon() { - this._terrainButton.classList.remove("maplibregl-ctrl-terrain", "mapboxgl-ctrl-terrain"), this._terrainButton.classList.remove("maplibregl-ctrl-terrain-enabled", "mapboxgl-ctrl-terrain-enabled"), this._map.style.terrain ? (this._terrainButton.classList.add("maplibregl-ctrl-terrain-enabled", "mapboxgl-ctrl-terrain-enabled"), this._terrainButton.title = this._map._getUIString("TerrainControl.disableTerrain")) : (this._terrainButton.classList.add("maplibregl-ctrl-terrain", "mapboxgl-ctrl-terrain"), this._terrainButton.title = this._map._getUIString("TerrainControl.enableTerrain")); - } - }, Popup: class extends t.Evented { - constructor(e2) { - super(), this.options = t.extend(Object.create(xa), e2), t.bindAll(["_update", "_onClose", "remove", "_onMouseMove", "_onMouseUp", "_onDrag"], this); - } - addTo(e2) { - return this._map && this.remove(), this._map = e2, this.options.closeOnClick && this._map.on("click", this._onClose), this.options.closeOnMove && this._map.on("move", this._onClose), this._map.on("remove", this.remove), this._update(), this._focusFirstElement(), this._trackPointer ? (this._map.on("mousemove", this._onMouseMove), this._map.on("mouseup", this._onMouseUp), this._container && this._container.classList.add("maplibregl-popup-track-pointer", "mapboxgl-popup-track-pointer"), this._map._canvasContainer.classList.add("maplibregl-track-pointer", "mapboxgl-track-pointer")) : this._map.on("move", this._update), this.fire(new t.Event("open")), this; - } - isOpen() { + return e2 && (o2.__proto__ = e2), (o2.prototype = Object.create(e2 && e2.prototype)).constructor = o2, o2.prototype.addTo = function(e3) { + return this._map && this.remove(), this._map = e3, this.options.closeOnClick && this._map.on("click", this._onClose), this.options.closeOnMove && this._map.on("move", this._onClose), this._map.on("remove", this.remove), this._update(), this._focusFirstElement(), this._trackPointer ? (this._map.on("mousemove", this._onMouseMove), this._map.on("mouseup", this._onMouseUp), this._container && this._container.classList.add("mapboxgl-popup-track-pointer"), this._map._canvasContainer.classList.add("mapboxgl-track-pointer")) : this._map.on("move", this._update), this.fire(new t.Event("open")), this; + }, o2.prototype.isOpen = function() { return !!this._map; - } - remove() { - return this._content && r.remove(this._content), this._container && (r.remove(this._container), delete this._container), this._map && (this._map.off("move", this._update), this._map.off("move", this._onClose), this._map.off("click", this._onClose), this._map.off("remove", this.remove), this._map.off("mousemove", this._onMouseMove), this._map.off("mouseup", this._onMouseUp), this._map.off("drag", this._onDrag), delete this._map), this.fire(new t.Event("close")), this; - } - getLngLat() { + }, o2.prototype.remove = function() { + return this._content && i.remove(this._content), this._container && (i.remove(this._container), delete this._container), this._map && (this._map.off("move", this._update), this._map.off("move", this._onClose), this._map.off("click", this._onClose), this._map.off("remove", this.remove), this._map.off("mousemove", this._onMouseMove), this._map.off("mouseup", this._onMouseUp), this._map.off("drag", this._onDrag), delete this._map), this.fire(new t.Event("close")), this; + }, o2.prototype.getLngLat = function() { return this._lngLat; - } - setLngLat(e2) { - return this._lngLat = t.LngLat.convert(e2), this._pos = null, this._trackPointer = false, this._update(), this._map && (this._map.on("move", this._update), this._map.off("mousemove", this._onMouseMove), this._container && this._container.classList.remove("maplibregl-popup-track-pointer", "mapboxgl-popup-track-pointer"), this._map._canvasContainer.classList.remove("maplibregl-track-pointer", "mapboxgl-track-pointer")), this; - } - trackPointer() { - return this._trackPointer = true, this._pos = null, this._update(), this._map && (this._map.off("move", this._update), this._map.on("mousemove", this._onMouseMove), this._map.on("drag", this._onDrag), this._container && this._container.classList.add("maplibregl-popup-track-pointer", "mapboxgl-popup-track-pointer"), this._map._canvasContainer.classList.add("maplibregl-track-pointer", "mapboxgl-track-pointer")), this; - } - getElement() { + }, o2.prototype.setLngLat = function(e3) { + return this._lngLat = t.LngLat.convert(e3), this._pos = null, this._trackPointer = false, this._update(), this._map && (this._map.on("move", this._update), this._map.off("mousemove", this._onMouseMove), this._container && this._container.classList.remove("mapboxgl-popup-track-pointer"), this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")), this; + }, o2.prototype.trackPointer = function() { + return this._trackPointer = true, this._pos = null, this._update(), this._map && (this._map.off("move", this._update), this._map.on("mousemove", this._onMouseMove), this._map.on("drag", this._onDrag), this._container && this._container.classList.add("mapboxgl-popup-track-pointer"), this._map._canvasContainer.classList.add("mapboxgl-track-pointer")), this; + }, o2.prototype.getElement = function() { return this._container; - } - setText(t2) { - return this.setDOMContent(document.createTextNode(t2)); - } - setHTML(t2) { - const e2 = document.createDocumentFragment(), i2 = document.createElement("body"); - let o2; - for (i2.innerHTML = t2; o2 = i2.firstChild, o2; ) - e2.appendChild(o2); - return this.setDOMContent(e2); - } - getMaxWidth() { + }, o2.prototype.setText = function(e3) { + return this.setDOMContent(t.window.document.createTextNode(e3)); + }, o2.prototype.setHTML = function(e3) { + var i2, o3 = t.window.document.createDocumentFragment(), r2 = t.window.document.createElement("body"); + for (r2.innerHTML = e3; i2 = r2.firstChild; ) + o3.appendChild(i2); + return this.setDOMContent(o3); + }, o2.prototype.getMaxWidth = function() { return this._container && this._container.style.maxWidth; - } - setMaxWidth(t2) { + }, o2.prototype.setMaxWidth = function(t2) { return this.options.maxWidth = t2, this._update(), this; - } - setDOMContent(t2) { + }, o2.prototype.setDOMContent = function(t2) { if (this._content) for (; this._content.hasChildNodes(); ) this._content.firstChild && this._content.removeChild(this._content.firstChild); else - this._content = r.create("div", "maplibregl-popup-content mapboxgl-popup-content", this._container); + this._content = i.create("div", "mapboxgl-popup-content", this._container); return this._content.appendChild(t2), this._createCloseButton(), this._update(), this._focusFirstElement(), this; - } - addClassName(t2) { + }, o2.prototype.addClassName = function(t2) { this._container && this._container.classList.add(t2); - } - removeClassName(t2) { + }, o2.prototype.removeClassName = function(t2) { this._container && this._container.classList.remove(t2); - } - setOffset(t2) { + }, o2.prototype.setOffset = function(t2) { return this.options.offset = t2, this._update(), this; - } - toggleClassName(t2) { + }, o2.prototype.toggleClassName = function(t2) { if (this._container) return this._container.classList.toggle(t2); - } - _createCloseButton() { - this.options.closeButton && (this._closeButton = r.create("button", "maplibregl-popup-close-button mapboxgl-popup-close-button", this._content), this._closeButton.type = "button", this._closeButton.setAttribute("aria-label", "Close popup"), this._closeButton.innerHTML = "×", this._closeButton.addEventListener("click", this._onClose)); - } - _onMouseUp(t2) { + }, o2.prototype._createCloseButton = function() { + this.options.closeButton && (this._closeButton = i.create("button", "mapboxgl-popup-close-button", this._content), this._closeButton.type = "button", this._closeButton.setAttribute("aria-label", "Close popup"), this._closeButton.innerHTML = "×", this._closeButton.addEventListener("click", this._onClose)); + }, o2.prototype._onMouseUp = function(t2) { this._update(t2.point); - } - _onMouseMove(t2) { + }, o2.prototype._onMouseMove = function(t2) { this._update(t2.point); - } - _onDrag(t2) { + }, o2.prototype._onDrag = function(t2) { this._update(t2.point); - } - _update(t2) { - if (!this._map || !this._lngLat && !this._trackPointer || !this._content) - return; - if (this._container || (this._container = r.create("div", "maplibregl-popup mapboxgl-popup", this._map.getContainer()), this._tip = r.create("div", "maplibregl-popup-tip mapboxgl-popup-tip", this._container), this._container.appendChild(this._content), this.options.className && this.options.className.split(" ").forEach((t3) => this._container.classList.add(t3)), this._trackPointer && this._container.classList.add("maplibregl-popup-track-pointer", "mapboxgl-popup-track-pointer")), this.options.maxWidth && this._container.style.maxWidth !== this.options.maxWidth && (this._container.style.maxWidth = this.options.maxWidth), this._map.transform.renderWorldCopies && !this._trackPointer && (this._lngLat = na(this._lngLat, this._pos, this._map.transform)), this._trackPointer && !t2) - return; - const e2 = this._pos = this._trackPointer && t2 ? t2 : this._map.project(this._lngLat); - let i2 = this.options.anchor; - const o2 = ya(this.options.offset); - if (!i2) { - const t3 = this._container.offsetWidth, a3 = this._container.offsetHeight; - let r2; - r2 = e2.y + o2.bottom.y < a3 ? ["top"] : e2.y > this._map.transform.height - a3 ? ["bottom"] : [], e2.x < t3 / 2 ? r2.push("left") : e2.x > this._map.transform.width - t3 / 2 && r2.push("right"), i2 = 0 === r2.length ? "bottom" : r2.join("-"); - } - const a2 = e2.add(o2[i2]).round(); - r.setTransform(this._container, `${la[i2]} translate(${a2.x}px,${a2.y}px)`), ca(this._container, i2, "popup"); - } - _focusFirstElement() { - if (!this.options.focusAfterOpen || !this._container) - return; - const t2 = this._container.querySelector(va); - t2 && t2.focus(); - } - _onClose() { + }, o2.prototype._update = function(e3) { + var o3 = this; + if (this._map && (this._lngLat || this._trackPointer) && this._content && (this._container || (this._container = i.create("div", "mapboxgl-popup", this._map.getContainer()), this._tip = i.create("div", "mapboxgl-popup-tip", this._container), this._container.appendChild(this._content), this.options.className && this.options.className.split(" ").forEach(function(t2) { + return o3._container.classList.add(t2); + }), this._trackPointer && this._container.classList.add("mapboxgl-popup-track-pointer")), this.options.maxWidth && this._container.style.maxWidth !== this.options.maxWidth && (this._container.style.maxWidth = this.options.maxWidth), this._map.transform.renderWorldCopies && !this._trackPointer && (this._lngLat = Mr(this._lngLat, this._pos, this._map.transform)), !this._trackPointer || e3)) { + var r2 = this._pos = this._trackPointer && e3 ? e3 : this._map.project(this._lngLat), a2 = this.options.anchor, n2 = function e4(i2) { + if (i2) { + if ("number" == typeof i2) { + var o4 = Math.round(Math.sqrt(0.5 * Math.pow(i2, 2))); + return { center: new t.Point(0, 0), top: new t.Point(0, i2), "top-left": new t.Point(o4, o4), "top-right": new t.Point(-o4, o4), bottom: new t.Point(0, -i2), "bottom-left": new t.Point(o4, -o4), "bottom-right": new t.Point(-o4, -o4), left: new t.Point(i2, 0), right: new t.Point(-i2, 0) }; + } + if (i2 instanceof t.Point || Array.isArray(i2)) { + var r3 = t.Point.convert(i2); + return { center: r3, top: r3, "top-left": r3, "top-right": r3, bottom: r3, "bottom-left": r3, "bottom-right": r3, left: r3, right: r3 }; + } + return { center: t.Point.convert(i2.center || [0, 0]), top: t.Point.convert(i2.top || [0, 0]), "top-left": t.Point.convert(i2["top-left"] || [0, 0]), "top-right": t.Point.convert(i2["top-right"] || [0, 0]), bottom: t.Point.convert(i2.bottom || [0, 0]), "bottom-left": t.Point.convert(i2["bottom-left"] || [0, 0]), "bottom-right": t.Point.convert(i2["bottom-right"] || [0, 0]), left: t.Point.convert(i2.left || [0, 0]), right: t.Point.convert(i2.right || [0, 0]) }; + } + return e4(new t.Point(0, 0)); + }(this.options.offset); + if (!a2) { + var s2, l2 = this._container.offsetWidth, c3 = this._container.offsetHeight; + s2 = r2.y + n2.bottom.y < c3 ? ["top"] : r2.y > this._map.transform.height - c3 ? ["bottom"] : [], r2.x < l2 / 2 ? s2.push("left") : r2.x > this._map.transform.width - l2 / 2 && s2.push("right"), a2 = 0 === s2.length ? "bottom" : s2.join("-"); + } + var u2 = r2.add(n2[a2]).round(); + i.setTransform(this._container, Lr[a2] + " translate(" + u2.x + "px," + u2.y + "px)"), Rr(this._container, a2, "popup"); + } + }, o2.prototype._focusFirstElement = function() { + if (this.options.focusAfterOpen && this._container) { + var t2 = this._container.querySelector(Xr); + t2 && t2.focus(); + } + }, o2.prototype._onClose = function() { this.remove(); - } - }, Marker: ha, Style: ee, LngLat: t.LngLat, LngLatBounds: t.LngLatBounds, Point: t.pointGeometry, MercatorCoordinate: t.MercatorCoordinate, Evented: t.Evented, AJAXError: t.AJAXError, config: t.config, CanvasSource: P, GeoJSONSource: C, ImageSource: D, RasterDEMTileSource: I2, RasterTileSource: T, VectorTileSource: w, VideoSource: z, prewarm: function() { - j().acquire(G); + }, o2; + }(t.Evented), Kr = { version: t.version, supported: e, setRTLTextPlugin: t.setRTLTextPlugin, getRTLTextPluginStatus: t.getRTLTextPluginStatus, Map: Sr, NavigationControl: Dr, GeolocateControl: Nr, AttributionControl: yr, ScaleControl: qr, FullscreenControl: Gr, Popup: Hr, Marker: Br, Style: je, LngLat: t.LngLat, LngLatBounds: t.LngLatBounds, Point: t.Point, MercatorCoordinate: t.MercatorCoordinate, Evented: t.Evented, config: t.config, prewarm: function() { + Ft().acquire(Rt); }, clearPrewarmedResources: function() { - const t2 = q; - t2 && (t2.isPreloaded() && 1 === t2.numActive() ? (t2.release(G), q = null) : console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()")); - }, get version() { - return "2.4.0"; + var t2 = Bt; + t2 && (t2.isPreloaded() && 1 === t2.numActive() ? (t2.release(Rt), Bt = null) : console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()")); + }, get accessToken() { + return t.config.ACCESS_TOKEN; + }, set accessToken(e2) { + t.config.ACCESS_TOKEN = e2; + }, get baseApiUrl() { + return t.config.API_URL; + }, set baseApiUrl(e2) { + t.config.API_URL = e2; }, get workerCount() { - return Z2.workerCount; + return kt.workerCount; }, set workerCount(t2) { - Z2.workerCount = t2; + kt.workerCount = t2; }, get maxParallelImageRequests() { return t.config.MAX_PARALLEL_IMAGE_REQUESTS; }, set maxParallelImageRequests(e2) { t.config.MAX_PARALLEL_IMAGE_REQUESTS = e2; - }, clearStorage(e2) { + }, clearStorage: function(e2) { t.clearTileCache(e2); - }, workerUrl: "", addProtocol(e2, i2) { - t.config.REGISTERED_PROTOCOLS[e2] = i2; - }, removeProtocol(e2) { - delete t.config.REGISTERED_PROTOCOLS[e2]; - } }; - return Jo.extend(ba, { isSafari: t.isSafari, getPerformanceMetrics: t.PerformanceUtils.getPerformanceMetrics }), ba; + }, workerUrl: "" }; + return Kr; }); - var maplibregl$1 = maplibregl2; - return maplibregl$1; + return mapboxgl2; }); - })(maplibreGl); - const maplibregl = maplibreGl.exports; - class MapLibreLayer extends Layer__default.default { + })(mapboxGl); + const mapboxgl = mapboxGl.exports; + class MapBox extends Layer__default.default { constructor(options) { const baseOptions = Object.assign({}, options); - delete baseOptions.maplibreOptions; + delete baseOptions.accessToken; + delete baseOptions.style; + delete baseOptions.container; + delete baseOptions.xyz; super(baseOptions); - const container = document.createElement("div"); - container.style.position = "absolute"; - container.style.width = "100%"; - container.style.height = "100%"; - this.maplibreMap = new maplibregl.Map( - Object.assign({}, options.maplibreOptions, { - container, - attributionControl: false, - interactive: false, - trackResize: false - }) - ); - this.applyOpacity_(); + this.set("xyz", options.maplibreOptions.xyz); + this.set("xyz_custom", options.maplibreOptions.xyz_custom); + this.xyz_ = options.xyz; + if (options.accessToken) { + mapboxgl.accessToken = options.accessToken; + } + this.map_ = new mapboxgl.Map({ + container: options.maplibreOptions.container, + style: options.maplibreOptions.style, + attributionControl: false, + interactive: false + }); + this.maplibreMap = this.map_; + } + getMapBoxMap() { + return this.map_; } - setOpacity(opacity) { - super.setOpacity(opacity); - this.applyOpacity_(); + getMapLibreMap() { + return this.map_; } - applyOpacity_() { - const canvas = this.maplibreMap.getCanvas(); + render(frameState) { + const canvas = this.map_.getCanvas(); + const viewState = frameState.viewState; + canvas.style.position = "absolute"; + const visible = this.getVisible(); + canvas.style.display = visible ? "block" : "none"; const opacity = this.getOpacity().toString(); if (opacity !== canvas.style.opacity) { canvas.style.opacity = opacity; } - } - render(frameState) { - const viewState = frameState.viewState; - this.maplibreMap.jumpTo({ - center: proj.toLonLat(viewState.center), + const rotation = viewState.rotation; + if (rotation) { + this.map_.rotateTo(math.toDegrees(-rotation), { + animate: false + }); + } + this.map_.jumpTo({ + center: proj_js.toLonLat(viewState.center), zoom: viewState.zoom - 1, - bearing: math.toDegrees(-viewState.rotation), animate: false }); - const maplibreCanvas = this.maplibreMap.getCanvas(); - if (!maplibreCanvas.isConnected) { - this.getMapInternal().render(); - } else if (!sameSize(maplibreCanvas, frameState)) { - this.maplibreMap.resize(); + if (this.map_._frame) { + this.map_._frame.cancel(); + this.map_._frame = null; } - this.maplibreMap.redraw(); - return this.maplibreMap.getContainer(); + this.map_._render(); + return canvas; + } + setLayerVisibility(name, visible) { + this.map_.setLayoutProperty(name, "visibility", visible ? "visible" : "none"); + } + getStyle() { + return this.map_.getStyle(); + } + getXYZ() { + return this.get("xyz"); } - } - function sameSize(canvas, frameState) { - return canvas.width === Math.floor(frameState.size[0] * frameState.pixelRatio) || canvas.height === Math.floor(frameState.size[1] * frameState.pixelRatio); } const layersCache = /* @__PURE__ */ new Map(); class StorageStyleMapper { @@ -32727,6 +31128,7 @@ uniform ${i3} ${o3} u_${a3}; const SP_KEY_LAYERS_OPEN = "layersOpen"; const SP_KEY_ADDRESS = "address"; const SP_KEY_VERSION = "version"; + const SP_KEY_MAPID = "map_id"; const SP_KEY_LAYERS = "layers"; const SP_KEY_BGLAYER = "bgLayer"; const SP_KEY_OPACITIES = "opacities"; @@ -33565,9 +31967,9 @@ uniform ${i3} ${o3} u_${a3}; } return baseStyle; } - const getvtstyleUrl_ = "http://localhost:8080/getvtstyle"; - const uploadvtstyleUrl_ = "http://localhost:8080/uploadvtstyle"; - const deletevtstyleUrl_ = "http://localhost:8080/deletevtstyle"; + const getvtstyleUrl_ = "/getvtstyle"; + const uploadvtstyleUrl_ = "/uploadvtstyle"; + const deletevtstyleUrl_ = "/deletevtstyle"; function unregisterStyle(styleId) { if (styleId === null) { return Promise.resolve(); @@ -33899,6 +32301,7 @@ uniform ${i3} ${o3} u_${a3}; "20", "21" ]; + const DEFAULT_BGZINDEX = -200; const proxyWmsUrl = "https://map.geoportail.lu/ogcproxywms"; const remoteProxyWms = "https://map.geoportail.lu/httpsproxy"; function getOlcsExtent() { @@ -33927,6 +32330,9 @@ uniform ${i3} ${o3} u_${a3}; ...url !== void 0 && url !== null || remoteProxyWms ? { crossOrigin: "anonymous" } : {} }) }); + olLayer.set("olcs.extent", getOlcsExtent()); + olLayer.set("label", name); + olLayer.set("id", id); return olLayer; } function createWmtsLayer(layer) { @@ -33958,6 +32364,9 @@ uniform ${i3} ${o3} u_${a3}; id } }); + olLayer.set("olcs.extent", getOlcsExtent()); + olLayer.set("label", name); + olLayer.set("id", id); return olLayer; } function createVectorLayer(vectorSources, bgLayer) { @@ -33972,7 +32381,7 @@ uniform ${i3} ${o3} u_${a3}; }, styleSource ); - const newBgBaseLayer = new MapLibreLayer({ + const newBgBaseLayer = new MapBox({ maplibreOptions: options, label: bgLayer.name, id: bgLayer.id, @@ -34078,13 +32487,13 @@ uniform ${i3} ${o3} u_${a3}; } function applyOnBgLayer(olMap2, callbackFunction) { const mapLayers = olMap2.getLayers(); - const bgLayer = mapLayers.getArray().find((layer) => layer.getZIndex() === -1); + const bgLayer = mapLayers.getArray().find((layer) => layer.getZIndex() === DEFAULT_BGZINDEX); if (bgLayer) callbackFunction(bgLayer); } function setBgLayer(olMap2, bgLayer, vectorSources) { const mapLayers = olMap2.getLayers(); - const currentBgLayerPos = mapLayers.getArray().findIndex((layer) => layer.getZIndex() === -1); + const currentBgLayerPos = mapLayers.getArray().findIndex((layer) => layer.getZIndex() === DEFAULT_BGZINDEX); let bgBaseLayer = void 0; if (bgLayer) { if (isLayerCached(bgLayer)) { @@ -34099,14 +32508,14 @@ uniform ${i3} ${o3} u_${a3}; } if (currentBgLayerPos >= 0) { if (bgBaseLayer) { - bgBaseLayer.setZIndex(-1); + bgBaseLayer.setZIndex(DEFAULT_BGZINDEX); mapLayers.setAt(currentBgLayerPos, bgBaseLayer); } else { mapLayers.removeAt(currentBgLayerPos); } } else { if (bgBaseLayer) { - bgBaseLayer.setZIndex(-1); + bgBaseLayer.setZIndex(DEFAULT_BGZINDEX); olMap2.addLayer(bgBaseLayer); } } @@ -34318,18 +32727,19 @@ uniform ${i3} ${o3} u_${a3}; const _sfc_main$z = /* @__PURE__ */ defineComponent({ __name: "attribution-control", props: { - className: { default: "geoportailv3-attribution" }, - collapsed: { type: Boolean, default: false }, - collapsible: { type: Boolean, default: false } + className: { type: String, required: false, default: "geoportailv3-attribution" }, + collapsed: { type: Boolean, required: false, default: false }, + collapsible: { type: Boolean, required: false, default: false } }, setup(__props) { const props = __props; useControl(Attribution__default.default, props); return (_ctx, _cache) => { - return createCommentVNode("", true); + return createCommentVNode("v-if", true); }; } }); + const AttributionControl = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/map-controls/attribution-control.vue"]]); function install(app2, { i18next, rerenderOn = ["languageChanged", "loaded", "added", "removed"] @@ -34486,9 +32896,9 @@ uniform ${i3} ${o3} u_${a3}; const _sfc_main$y = /* @__PURE__ */ defineComponent({ __name: "location-control", props: { - className: { default: "location-button" }, - label: { default: "\uE800" }, - tipLabel: { default: "Location" } + className: { type: String, required: false, default: "location-button" }, + label: { type: String, required: false, default: "\uE800" }, + tipLabel: { type: String, required: false, default: "Location" } }, setup(__props) { const props = __props; @@ -34513,36 +32923,39 @@ uniform ${i3} ${o3} u_${a3}; }; } }); + const LocationControl = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/map-controls/location-control.vue"]]); const _sfc_main$x = /* @__PURE__ */ defineComponent({ __name: "fullscreen-control", props: { - className: null, - label: { default: "\uE01C" }, - labelActive: { default: "\uE02C" } + className: { type: String, required: false }, + label: { type: String, required: false, default: "\uE01C" }, + labelActive: { type: String, required: false, default: "\uE02C" } }, setup(__props) { const props = __props; useControl(FullScreen__default.default, props); return (_ctx, _cache) => { - return createCommentVNode("", true); + return createCommentVNode("v-if", true); }; } }); + const FullscreenControl = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/map-controls/fullscreen-control.vue"]]); const _sfc_main$w = /* @__PURE__ */ defineComponent({ __name: "zoom-control", props: { - className: null, - zoomInLabel: { default: "\uE032" }, - zoomOutLabel: { default: "\uE033" } + className: { type: String, required: false }, + zoomInLabel: { type: String, required: false, default: "\uE032" }, + zoomOutLabel: { type: String, required: false, default: "\uE033" } }, setup(__props) { const props = __props; useControl(Zoom__default.default, props); return (_ctx, _cache) => { - return createCommentVNode("", true); + return createCommentVNode("v-if", true); }; } }); + const ZoomControl = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/map-controls/zoom-control.vue"]]); class ZoomToExtent extends OlControlZoomToExtent__default.default { constructor(optOptions) { super(optOptions); @@ -34559,19 +32972,20 @@ uniform ${i3} ${o3} u_${a3}; const _sfc_main$v = /* @__PURE__ */ defineComponent({ __name: "zoom-to-extent-control", props: { - className: null, - label: { default: "\uE01B" }, - tipLabel: null, - extent: null + className: { type: String, required: false }, + label: { type: String, required: false, default: "\uE01B" }, + tipLabel: { type: String, required: false }, + extent: { type: null, required: true } }, setup(__props) { const props = __props; useControl(ZoomToExtent, props); return (_ctx, _cache) => { - return createCommentVNode("", true); + return createCommentVNode("v-if", true); }; } }); + const ZoomToExtentControl = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/map-controls/zoom-to-extent-control.vue"]]); const _sfc_main$u = /* @__PURE__ */ defineComponent({ __name: "map-container", setup(__props) { @@ -34600,15 +33014,16 @@ uniform ${i3} ${o3} u_${a3}; ref: mapContainer, class: "h-full w-full bg-white absolute" }, [ - createVNode(_sfc_main$w), - createVNode(_sfc_main$v, { extent: DEFAULT_EXTENT }), - createVNode(_sfc_main$x), - createVNode(_sfc_main$z), - createVNode(_sfc_main$y) + createVNode(ZoomControl), + createVNode(ZoomToExtentControl, { extent: DEFAULT_EXTENT }), + createVNode(FullscreenControl), + createVNode(AttributionControl), + createVNode(LocationControl) ], 512); }; } }); + const MapContainer = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/map/map-container.vue"]]); function _typeof$4(obj) { "@babel/helpers - typeof"; return _typeof$4 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) { @@ -37774,20 +36189,68 @@ uniform ${i3} ${o3} u_${a3}; toggleLayer }; } + const DEFAULT_LANG = "fr"; + const DEFAULT_LAYER_PANEL_OPENED = true; + const useAppStore = defineStore( + "app", + () => { + const lang = ref(DEFAULT_LANG); + const layersOpen = ref(DEFAULT_LAYER_PANEL_OPENED); + const mapId = ref(); + const remoteLayersOpen = ref(); + const styleEditorOpen = ref(false); + function setLang(language) { + lang.value = language; + } + function setLayersOpen(open2) { + layersOpen.value = open2; + } + function setRemoteLayersOpen(open2) { + remoteLayersOpen.value = open2; + } + function setMapId(id) { + mapId.value = id; + } + function openStyleEditorPanel() { + styleEditorOpen.value = true; + } + function closeStyleEditorPanel() { + styleEditorOpen.value = false; + } + return { + lang, + layersOpen, + mapId, + styleEditorOpen, + remoteLayersOpen, + setLang, + setLayersOpen, + setRemoteLayersOpen, + setMapId, + openStyleEditorPanel, + closeStyleEditorPanel + }; + }, + {} + ); const BLANK_BACKGROUNDLAYER = { name: "blank", id: 0 }; function useBackgroundLayer() { + const appStore = useAppStore(); + const { mapId } = storeToRefs(appStore); const theme = useThemes(); const mapStore = useMapStore(); const layers = useLayers(); const defaultSelectedBgId = computed(() => { var _a; - const theme_name = (_a = useThemeStore().theme) == null ? void 0 : _a.name; - if (theme_name) { - const defaultBgLayers = bgConfigFixture().bg_layer_theme_defaults; - return defaultBgLayers[theme_name] || getDefaultSelectedId(); + if (!mapId.value) { + const themeName = (_a = useThemeStore().theme) == null ? void 0 : _a.name; + if (themeName) { + const defaultBgLayers = bgConfigFixture().bg_layer_theme_defaults; + return defaultBgLayers[themeName] || getDefaultSelectedId(); + } } return getDefaultSelectedId(); }); @@ -37831,6 +36294,412 @@ uniform ${i3} ${o3} u_${a3}; defaultSelectedBgId }; } + const _hoisted_1$o = ["title"]; + const _sfc_main$t = /* @__PURE__ */ defineComponent({ + __name: "background-selector-item", + props: { + bgTitle: { + type: String, + default: "" + }, + bgName: { + type: String, + default: "" + } + }, + setup(__props) { + const props = __props; + const { t } = useTranslation(); + const buttonTitle = computed(() => { + const localizedTitle = t(props.bgTitle); + const hasTitle = props.bgTitle.length > 0; + const localizedLayerName = `${t("Background layer:")} ${t(props.bgName)}`; + return `${localizedTitle}${hasTitle ? " - " : ""}${localizedLayerName}`; + }); + const buttonClasses = computed( + () => `h-full w-full rounded-sm lux-bg-sel-icon + lux-bg-sel-${props.bgName} + bg-${props.bgName}_sm + md:bg-${props.bgName} + hd:bg-${props.bgName}_sm_hi + hd_md:bg-${props.bgName}_hi` + ); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("button", { + title: unref(buttonTitle), + class: normalizeClass(unref(buttonClasses)) + }, null, 10, _hoisted_1$o); + }; + } + }); + const BackgroundSelectorItem = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/background-selector/background-selector-item.vue"]]); + const _hoisted_1$n = { class: "flex flex-row-reverse" }; + const _sfc_main$s = /* @__PURE__ */ defineComponent({ + __name: "background-selector", + props: { + isOpen: { + type: Boolean, + default: false + } + }, + setup(__props) { + const props = __props; + const { t } = useTranslation(); + const backgroundLayer = useBackgroundLayer(); + const mapStore = useMapStore(); + const themeStore = useThemeStore(); + const { bgLayer: bgLayerContext } = storeToRefs(mapStore); + const isOpen = ref(props.isOpen); + const bgLayers = ref([]); + const activeLayerId = computed( + () => { + var _a, _b; + return (_b = (_a = bgLayerContext.value) == null ? void 0 : _a.id) != null ? _b : backgroundLayer.getNullId(); + } + ); + const activeLayerName = computed( + () => { + var _a, _b; + return (_b = (_a = bgLayers.value) == null ? void 0 : _a.find((layer) => layer.id === activeLayerId.value)) == null ? void 0 : _b.name; + } + ); + watch( + () => themeStore.bgLayers, + (bgLayersContext) => { + bgLayers.value = bgConfigFixture().bg_layers.map( + (bgl) => Object.assign( + { + id: bgl.id + }, + bgLayersContext.find((l) => bgl.id === l.id), + { + name: bgl.icon_id + } + ) + ); + }, + { immediate: true } + ); + watch( + () => mapStore.bgLayer, + (bgLayerContext2, bgLayerContextOld) => { + const layersContext = mapStore.layers; + if (bgLayerContextOld === void 0 && bgLayerContext2 === null && (layersContext == null ? void 0 : layersContext.length) === 0) { + backgroundLayer.setBgLayer(backgroundLayer.defaultSelectedBgId.value); + if (bgLayerContext2 === null) { + useAlertNotificationsStore().addNotification( + t( + "Aucune couche n'\xE9tant d\xE9finie pour cette carte, une couche de fond a automatiquement \xE9t\xE9 ajout\xE9e.", + { ns: "client" } + ) + ); + } + } + } + ); + function setBackgroundLayer(layer) { + backgroundLayer.setBgLayer(layer.id); + isOpen.value = false; + } + function toggleSelector() { + isOpen.value = !isOpen.value; + } + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", _hoisted_1$n, [ + createBaseVNode("div", { + class: normalizeClass(["lux-bg-sel border border-black", isOpen.value === true ? "hidden" : "block"]) + }, [ + createVNode(BackgroundSelectorItem, { + "aria-expanded": isOpen.value, + "bg-title": "Select BG layer", + "bg-name": unref(activeLayerName), + onClick: toggleSelector + }, null, 8, ["aria-expanded", "bg-name"]) + ], 2), + createBaseVNode("div", { + class: normalizeClass(isOpen.value === true ? "flex flex-col md:flex-row" : "hidden") + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(bgLayers.value, (layer) => { + return openBlock(), createElementBlock("div", { + key: layer.id, + class: normalizeClass([ + "lux-bg-sel hover:bg-cyan-600", + layer.id === unref(activeLayerId) ? "border-red-500 border-2" : "border-black border" + ]) + }, [ + createVNode(BackgroundSelectorItem, { + "bg-name": layer.name, + onClick: ($event) => setBackgroundLayer(layer) + }, null, 8, ["bg-name", "onClick"]) + ], 2); + }), 128)) + ], 2) + ]); + }; + } + }); + const BackgroundSelector = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/background-selector/background-selector.vue"]]); + const _hoisted_1$m = /* @__PURE__ */ createBaseVNode("div", { class: "fixed inset-0 bg-gray-900 opacity-40 z-[1050]" }, null, -1); + const _hoisted_2$j = { class: "bg-white shadow-modal rounded-lg overflow-hidden w-[700px]" }; + const _hoisted_3$h = { class: "relative flex flex-row justify-center p-4 border-b-[1px]" }; + const _hoisted_4$f = { class: "text-xl" }; + const _hoisted_5$d = /* @__PURE__ */ createBaseVNode("span", { "aria-hidden": "true" }, "\xD7", -1); + const _hoisted_6$9 = [ + _hoisted_5$d + ]; + const _hoisted_7$6 = { + key: 0, + class: "p-[15px] border-t-[1px]" + }; + const _hoisted_8$6 = { class: "flex flex-row justify-end" }; + const _sfc_main$r = /* @__PURE__ */ defineComponent({ + __name: "modal-dialog", + props: { + footer: { + type: Boolean, + default: true + }, + maxHeight: { + type: Boolean, + default: false + }, + title: String + }, + emits: ["close"], + setup(__props) { + const { t } = useTranslation(); + const modal = ref(); + onMounted(() => { + modal.value.focus(); + }); + const displayModal = shallowRef(true); + function close() { + displayModal.value = false; + } + return (_ctx, _cache) => { + return openBlock(), createBlock(Teleport, { to: "body" }, [ + createCommentVNode(" backdrop "), + _hoisted_1$m, + createCommentVNode(" modal "), + createVNode(Transition, { + appear: "", + "enter-active-class": "duration-200 ease-out", + "enter-from-class": "transform opacity-0 -translate-y-60", + "enter-to-class": "opacity-100 translate-y-0", + "leave-active-class": "duration-200 ease-in", + "leave-from-class": "opacity-100 translate-y-0", + "leave-to-class": "transform opacity-0 -translate-y-60", + onAfterLeave: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("close")) + }, { + default: withCtx(() => [ + unref(displayModal) ? (openBlock(), createElementBlock("div", { + key: 0, + role: "dialog", + ref_key: "modal", + ref: modal, + tabindex: "0", + onKeydown: _cache[2] || (_cache[2] = withKeys(($event) => close(), ["esc"])), + class: "fixed inset-x-0 inset-y-8 flex items-start justify-center z-[1100] outline-none" + }, [ + createBaseVNode("div", _hoisted_2$j, [ + createCommentVNode(" header (title)"), + createBaseVNode("div", _hoisted_3$h, [ + createBaseVNode("h4", _hoisted_4$f, toDisplayString(__props.title), 1), + createBaseVNode("button", { + type: "button", + class: "absolute right-2 top-1 text-slate-400 text-[24px]", + "data-dismiss": "modal", + "aria-label": "Close", + onClick: _cache[0] || (_cache[0] = ($event) => close()) + }, _hoisted_6$9) + ]), + createCommentVNode(" content slot "), + createBaseVNode("div", { + class: normalizeClass(["p-[15px] overflow-y-auto", __props.maxHeight ? "max-h-96" : "max-h-full"]) + }, [ + renderSlot(_ctx.$slots, "content") + ], 2), + createCommentVNode(" footer (optional)"), + __props.footer ? (openBlock(), createElementBlock("div", _hoisted_7$6, [ + createBaseVNode("div", _hoisted_8$6, [ + createBaseVNode("button", { + type: "button", + class: "lux-btn", + "data-dismiss": "modal", + onClick: _cache[1] || (_cache[1] = ($event) => close()) + }, toDisplayString(unref(t)("Close", { ns: "client" })), 1) + ]) + ])) : createCommentVNode("v-if", true) + ]) + ], 544)) : createCommentVNode("v-if", true) + ]), + _: 3 + }) + ]); + }; + } + }); + const ModalDialog = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/common/modal-dialog.vue"]]); + const useMetadataStore = defineStore( + "metadata", + () => { + const metadataId = ref(); + function setMetadataId(id) { + metadataId.value = id; + } + function clearMetadataId() { + metadataId.value = void 0; + } + return { + metadataId, + setMetadataId, + clearMetadataId + }; + }, + {} + ); + const _hoisted_1$l = { + class: "mb-px", + key: "node.id" + }; + const _hoisted_2$i = ["aria-expanded", "data-cy"]; + const _hoisted_3$g = { class: "leading-6" }; + const _hoisted_4$e = ["aria-expanded", "data-cy"]; + const _hoisted_5$c = { class: "grow" }; + const _hoisted_6$8 = { class: "leading-6" }; + const _hoisted_7$5 = { + key: 1, + class: "flex text-tertiary pr-2" + }; + const _hoisted_8$5 = ["data-cy"]; + const _hoisted_9$3 = { class: "ml-1 hover:underline" }; + const _sfc_main$q = /* @__PURE__ */ defineComponent({ + __name: "layer-tree-node", + props: { + node: { type: null, required: true } + }, + emits: ["toggleLayer", "toggleParent"], + setup(__props, { emit: emit2 }) { + const props = __props; + const { t } = useTranslation(); + const { setMetadataId } = useMetadataStore(); + const isParent = !!props.node.children; + const isRoot = props.node.depth === 0; + const isMaxDepth = props.node.depth >= 10; + const label = computed(() => t(props.node.name, { ns: "client" })); + function toggleLayer(node) { + emit2("toggleLayer", node); + } + function toggleParent(node) { + emit2("toggleParent", node); + } + return (_ctx, _cache) => { + const _component_layer_tree_node = resolveComponent("layer-tree-node", true); + return isParent ? (openBlock(), createElementBlock("div", _hoisted_1$l, [ + createCommentVNode(" First level parents"), + __props.node.depth === 1 ? (openBlock(), createElementBlock("button", { + key: 0, + class: "group node-1 w-full text-left flex px-2 py-1.5 uppercase bg-tertiary", + "aria-expanded": __props.node.expanded, + onClick: _cache[0] || (_cache[0] = ($event) => toggleParent(__props.node)), + "data-cy": `parentLayerLabel-${__props.node.id}` + }, [ + createBaseVNode("div", { + class: normalizeClass(["grow", __props.node.expanded ? "text-white" : "text-secondary"]) + }, toDisplayString(unref(label)), 3), + createBaseVNode("div", _hoisted_3$g, [ + createBaseVNode("div", { + class: normalizeClass(["fa fa-sharp fa-solid group-hover:text-white text-primary", __props.node.expanded ? "fa-caret-up" : "fa-caret-down"]) + }, null, 2) + ]) + ], 8, _hoisted_2$i)) : __props.node.depth > 1 && !isMaxDepth ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + createCommentVNode(" Other parents"), + createBaseVNode("button", { + class: normalizeClass(["w-full text-left flex px-2 py-1.5 pl-2", __props.node.expanded ? "text-tertiary" : "bg-white text-primary"]), + "aria-expanded": __props.node.expanded, + onClick: _cache[1] || (_cache[1] = ($event) => toggleParent(__props.node)), + "data-cy": `parentLayerLabel-${__props.node.id}` + }, [ + createBaseVNode("div", _hoisted_5$c, toDisplayString(unref(label)), 1), + createBaseVNode("div", _hoisted_6$8, [ + createBaseVNode("div", { + class: normalizeClass(["fa-sharp fa-solid", __props.node.expanded ? "fa-minus" : "fa-plus"]) + }, null, 2) + ]) + ], 10, _hoisted_4$e) + ], 2112)) : createCommentVNode("v-if", true), + createCommentVNode(" Children"), + !isMaxDepth ? (openBlock(), createElementBlock("div", { + key: 2, + class: normalizeClass(["bg-secondary", [ + { "pl-2": __props.node.depth > 1 }, + { "lux-collapse": !isRoot }, + { expanded: !isRoot && __props.node.expanded } + ]]) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(__props.node.children, (child) => { + return openBlock(), createBlock(_component_layer_tree_node, { + key: child.id, + node: child, + onToggleParent: _cache[2] || (_cache[2] = ($event) => toggleParent($event)), + onToggleLayer: _cache[3] || (_cache[3] = ($event) => toggleLayer($event)) + }, null, 8, ["node"]); + }), 128)) + ], 2)) : createCommentVNode("v-if", true) + ])) : (openBlock(), createElementBlock("div", _hoisted_7$5, [ + createBaseVNode("button", { + class: "self-start before:text-[.85rem] before:transform before:translate-y-[.1rem] before:inline-block before:content-['\\f129'] fa-solid fa-fw fa-fh fa-info", + onClick: _cache[4] || (_cache[4] = ($event) => unref(setMetadataId)(__props.node.id)) + }), + createBaseVNode("button", { + class: normalizeClass(["w-full text-left", { "font-bold": __props.node.checked }]), + onClick: _cache[5] || (_cache[5] = ($event) => toggleLayer(__props.node)), + "data-cy": `layerLabel-${__props.node.id}` + }, [ + createBaseVNode("i", { + class: normalizeClass(["fa-solid", __props.node.checked ? "fa-check-square" : "fa-square"]) + }, null, 2), + createBaseVNode("span", _hoisted_9$3, toDisplayString(unref(label)), 1) + ], 10, _hoisted_8$5) + ])); + }; + } + }); + const LayerTreeNode = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/layer-tree/layer-tree-node.vue"]]); + class LayerTreeService { + toggleNode(id, node, propertyName) { + var _a; + if ((node == null ? void 0 : node.id) === id) { + return { + ...node, + [propertyName]: !node[propertyName] + }; + } else { + return { + ...node, + children: (_a = node.children) == null ? void 0 : _a.map( + (child) => this.toggleNode(id, child, propertyName) + ) + }; + } + } + updateLayers(node, layers) { + const { id } = node; + if (node.children) { + return { + ...node, + children: node.children.map((child) => this.updateLayers(child, layers)) + }; + } else { + const checked = !!(layers == null ? void 0 : layers.find((l) => l.id === id)); + return { + ...node, + checked + }; + } + } + } + const layerTreeService = new LayerTreeService(); var LayerImageType = /* @__PURE__ */ ((LayerImageType2) => { LayerImageType2["PNG"] = "image/png"; LayerImageType2["JPG"] = "image/jpeg"; @@ -39243,828 +38112,282 @@ uniform ${i3} ${o3} u_${a3}; const bboxEl = findChildElement(featureTypeEl, "LatLongBoundingBox"); return ["minx", "miny", "maxx", "maxy"].map((name) => getElementAttribute(bboxEl, name)).map(parseFloat); } - function parseBBox() { - const bboxEl = findChildElement(featureTypeEl, "WGS84BoundingBox"); - return ["LowerCorner", "UpperCorner"].map((elName) => findChildElement(bboxEl, elName)).map((cornerEl) => getElementText(cornerEl).split(" ")).reduce((prev, curr) => [...prev, ...curr]).map(parseFloat); - } - const otherCrs = serviceVersion.startsWith("1.0") ? [] : findChildrenElement(featureTypeEl, `Other${srsTag}`).map(getElementText).map(simplifyEpsgUrn); - const outputFormats = serviceVersion.startsWith("1.0") ? [] : findChildrenElement( - findChildElement(featureTypeEl, "OutputFormats"), - "Format" - ).map(getElementText); - return { - name: getElementText(findChildElement(featureTypeEl, "Name")), - title: getElementText(findChildElement(featureTypeEl, "Title")), - abstract: getElementText(findChildElement(featureTypeEl, "Abstract")), - defaultCrs: simplifyEpsgUrn( - getElementText(findChildElement(featureTypeEl, defaultSrsTag)) - ), - otherCrs, - outputFormats: outputFormats.length > 0 ? outputFormats : defaultOutputFormats, - latLonBoundingBox: serviceVersion.startsWith("1.0") ? parseBBox100() : parseBBox() - }; - } - function parseFeatureProps(getFeaturesDoc, featureTypeFull, serviceVersion) { - const collection = getRootElement(getFeaturesDoc); - let members; - if (serviceVersion.startsWith("2.0")) { - members = findChildrenElement(collection, "member").map( - (parent) => getChildrenElement(parent)[0] - ); - } else { - const membersRoot = findChildElement(collection, "featureMembers"); - members = membersRoot ? getChildrenElement(membersRoot) : findChildrenElement(collection, "featureMember").map( - (parent) => getChildrenElement(parent)[0] - ); - } - const idAttr = serviceVersion === "1.0.0" ? "fid" : "gml:id"; - function isElementProperty(propName) { - return propName in featureTypeFull.properties; - } - function parseElementPropertyValue(propName, valueAsString) { - const type = featureTypeFull.properties[propName]; - switch (type) { - case "integer": - return parseInt(valueAsString); - case "float": - return parseFloat(valueAsString); - case "boolean": - return valueAsString === "true"; - default: - return valueAsString; - } - } - function getProperties(memberEl) { - return getChildrenElement(memberEl).filter((el) => isElementProperty(stripNamespace(getElementName(el)))).reduce((prev, curr) => { - const propName = stripNamespace(getElementName(curr)); - return { - ...prev, - [propName]: parseElementPropertyValue(propName, getElementText(curr)) - }; - }, {}); - } - return members.map((el) => ({ - id: getElementAttribute(el, idAttr), - properties: getProperties(el) - })); - } - function computeFeaturePropsDetails(featuresWithProps) { - return featuresWithProps.reduce((prev, curr) => { - for (const propName in curr.properties) { - const propValue = curr.properties[propName]; - if (!(propName in prev)) { - prev[propName] = { uniqueValues: [] }; - } - const uniqueValue = prev[propName].uniqueValues.find( - (v2) => v2.value === propValue - ); - if (uniqueValue) - uniqueValue.count++; - else - prev[propName].uniqueValues.push({ value: propValue, count: 1 }); - } - return prev; - }, {}); - } - addTaskHandler( - "parseWmsCapabilities", - self, - ({ url }) => queryXmlDocument(url).then((xmlDoc) => ({ - info: readInfoFromCapabilities$1(xmlDoc), - layers: readLayersFromCapabilities(xmlDoc), - version: readVersionFromCapabilities$1(xmlDoc) - })) - ); - addTaskHandler( - "parseWfsCapabilities", - self, - ({ url }) => queryXmlDocument(url).then((xmlDoc) => ({ - info: readInfoFromCapabilities(xmlDoc), - featureTypes: readFeatureTypesFromCapabilities(xmlDoc), - version: readVersionFromCapabilities(xmlDoc) - })) - ); - addTaskHandler( - "queryWfsFeatureTypeDetails", - self, - ({ url, serviceVersion, featureTypeFull }) => { - const getFeatureUrl = generateGetFeatureUrl( - url, - serviceVersion, - featureTypeFull.name, - void 0, - void 0, - Object.keys(featureTypeFull.properties) - ); - return queryXmlDocument(getFeatureUrl).then((getFeatureDoc) => ({ - props: computeFeaturePropsDetails( - parseFeatureProps(getFeatureDoc, featureTypeFull, serviceVersion) - ) - })); - } - ); - const predefinedWmsFixture = () => { - return [ - { - url: "http://wmts1.geoportail.lu/opendata/service", - label: "Open Data Webservices WMS" - }, - { - url: "http://ows.terrestris.de/osm-gray/service", - label: "OpenStreetMap by Terrestris (Grey)" - }, - { - url: "http://ows.terrestris.de/osm/service", - label: "OpenStreetMap by Terrestris (Color)" - } - ]; - }; - class WmtsEndpoint { - constructor(url) { - __publicField(this, "capabilitiesPromise"); - __publicField(this, "serviceInfo"); - __publicField(this, "layers"); - const parser = new WMTSCapabilities__default.default(); - let separator = "&"; - if (url.indexOf("?") === -1) { - separator = "?"; - } - if (url.indexOf("Capabilities") === -1) { - url = url + separator + "SERVICE=WMTS&REQUEST=GetCapabilities"; - } - this.capabilitiesPromise = fetch(url).then((response) => { - return response.text(); - }).then((text2) => { - var _a; - const result = parser.read(text2); - this.serviceInfo = this.mapServiceInfo(result.ServiceIdentification); - this.layers = this.mapToRemoteLayers((_a = result.Contents) == null ? void 0 : _a.Layer); - }); - } - mapToRemoteLayers(layers) { - return [ - { - type: REMOTE_SERVICE_TYPE.WMTS, - children: layers.map( - (layer) => ({ - type: REMOTE_SERVICE_TYPE.WMTS, - abstract: layer.Abstract, - format: layer.Format, - name: layer.Identifier, - title: layer.Title, - tileMatrixSetLink: layer.TileMatrixSetLink, - wgs84BoundingBox: layer.WGS84BoundingBox - }) - ) - } - ]; - } - mapServiceInfo(serviceInfo) { - return { - type: REMOTE_SERVICE_TYPE.WMTS, - title: serviceInfo.Title, - abstract: serviceInfo.Abstract, - fees: serviceInfo.Fees, - constraints: serviceInfo.AccessConstraints, - serviceTypeVersion: serviceInfo.ServiceTypeVersion - }; - } - isReady() { - return this.capabilitiesPromise.then(() => this); - } - getLayerByName(name) { - return this.layers[0].children.filter((layer) => layer.name === name)[0]; - } - getLayers() { - return this.layers; - } - getServiceInfo() { - return this.serviceInfo; - } - } - class RemoteLayersService { - async getRemoteEndpoint(url) { - let wmtsEndpoint; - const wmsEndpoint = await this.getWmsEndpoint(url).isReady().catch(async () => { - wmtsEndpoint = await this.getWmtsEndpoint(url).isReady(); - }); - return wmsEndpoint || wmtsEndpoint; - } - getWmsEndpoint(url) { - return new WmsEndpoint(this.getProxyfiedUrl(url)); - } - getWmtsEndpoint(url) { - return new WmtsEndpoint(this.getProxyfiedUrl(url)); - } - getProxyfiedUrl(url) { - if (url.indexOf("httpsproxy") > 0) { - return url; - } - { - return remoteProxyWms + "?url=" + encodeURIComponent(url); - } - } - async fetchRemoteWmsEndpoint() { - return new Promise((resolve2) => resolve2(predefinedWmsFixture())); - } - isRemoteLayer(layerId) { - return typeof layerId === "string" && (layerId.indexOf(REMOTE_SERVICE_TYPE.WMS) === 0 || layerId.indexOf(REMOTE_SERVICE_TYPE.WMTS) === 0); - } - } - const remoteLayersService = new RemoteLayersService(); - function sortLayerTreeNoChildrenFirst(a, b) { - var _a, _b; - if (a.children && !b.children || ((_a = b.children) == null ? void 0 : _a.length) === 0) { - return 1; - } - if (b.children && !a.children || ((_b = a.children) == null ? void 0 : _b.length) === 0) { - return -1; - } - return 0; - } - function remoteLayersToLayerTreeMapper(node, urlWms, depth = 0) { - const { name = "", type = REMOTE_SERVICE_TYPE.WMS, children } = node; - const id = `${type}||${urlWms}||${name}`.split("-").join("%2D"); - const mapStore = useMapStore(); - return { - id, - name, - depth, - children: children == null ? void 0 : children.sort(sortLayerTreeNoChildrenFirst).map((child) => remoteLayersToLayerTreeMapper(child, urlWms, depth + 1)), - checked: mapStore.hasLayer(id), - expanded: false - }; - } - function remoteLayerIdtoLayer(layerId) { - const id = decodeURIComponent(layerId); - const [type, url, name] = id.split("||"); - return remoteLayerToLayer({ - id, - url: remoteLayersService.getProxyfiedUrl(url), - remoteLayer: { name, type } - }); - } - function remoteLayerToLayer({ - id, - url, - remoteLayer - }) { - const { name = "", type = REMOTE_SERVICE_TYPE.WMS } = remoteLayer; - return { - id, - name, - layers: name, - url, - type, - imageType: LayerImageType.PNG - }; - } - const STORAGE_SEPARATOR = "-"; - const STORAGE_SEPARATOR_V2 = ","; - class StorageLayerMapper { - constructor() { - __publicField(this, "layersOpacitiesToNumbersV2", (opacitiesText) => { - return this.layersOpacitiesToNumbers(opacitiesText, STORAGE_SEPARATOR_V2); - }); - } - layerIdsToLayers(layerIdsText) { - const themes2 = useThemes(); - const layers = useLayers(); - const layerIds = layerIdsText ? layerIdsText.split(STORAGE_SEPARATOR) : []; - return layerIds.map((layerId) => { - const layer = remoteLayersService.isRemoteLayer(layerId) ? remoteLayerIdtoLayer(layerId) : themes2.findById(parseInt(layerId, 10)); - return layer ? layers.initLayer(layer) : void 0; - }); - } - layerNamesToLayersV2(layersNamesText) { - const themes2 = useThemes(); - const layers = useLayers(); - const layersNames = layersNamesText ? layersNamesText.split(STORAGE_SEPARATOR_V2) : []; - return layersNames.map((layerName) => { - const layer = themes2.findByName(layerName); - return layer ? layers.initLayer(layer) : void 0; - }); - } - layersOpacitiesToNumbers(opacitiesText, separator = STORAGE_SEPARATOR) { - return stringToNumbers(opacitiesText, separator); - } - layersVisibilitiesToBooleansV2(visibilitiesText) { - return stringToBooleans(visibilitiesText, STORAGE_SEPARATOR_V2); - } - layersToLayerIds(layers) { - return (layers == null ? void 0 : layers.map((layer) => layer.id).join(STORAGE_SEPARATOR)) || ""; - } - layersToLayerOpacities(layers) { - return (layers == null ? void 0 : layers.map((layer) => { - var _a; - return (_a = layer.opacity) != null ? _a : 1; - }).join(STORAGE_SEPARATOR)) || ""; - } - bgLayerNameToBgLayer(bgLayerName) { - const themes2 = useThemes(); - return bgLayerName ? themes2.findBgLayerByName(bgLayerName) : null; - } - bgLayerToBgLayerName(layer) { - return (layer == null ? void 0 : layer.name) || BLANK_BACKGROUNDLAYER.name; - } - } - const storageLayerMapper = new StorageLayerMapper(); - const DEFAULT_BGLAYER_NAME = "basemap_2015_global"; - const DEFAULT_BGLAYER_NAME_V2 = "orthogr_2013_global"; - const V2_BGLAYER_TO_V3_ = { - webbasemap: "basemap_2015_global", - "pixelmaps-color": "topogr_global", - "pixelmaps-gray": "topo_bw_jpeg", - streets: "streets_jpeg", - voidlayer: "blank" - }; - class StatePersistorBgLayerService { - bootstrap() { - const themeStore = useThemeStore(); - let stop; - stop = watchEffect(() => { - if (themeStore.bgLayers.length > 0) { - this.restore(); - this.persist(); - stop && stop(); - } - }); - } - persist() { - const mapStore = useMapStore(); - const { bgLayer } = storeToRefs(mapStore); - watch( - bgLayer, - (value, oldValue) => { - if (oldValue !== value) { - storageHelper.setValue( - SP_KEY_BGLAYER, - value, - storageLayerMapper.bgLayerToBgLayerName - ); - } - }, - { immediate: true } - ); - } - restore() { - const { setMapBackground } = useBackgroundLayer(); - const bgLayer = this.getBgLayerFromStorage(); - setMapBackground(bgLayer); - } - getBgLayerFromStorage() { - const version2 = storageHelper.getInitialVersion(); - const bgLayerName = storageHelper.getValue(SP_KEY_BGLAYER); - const bgLayer = !bgLayerName ? storageLayerMapper.bgLayerNameToBgLayer(DEFAULT_BGLAYER_NAME) : version2 === 2 ? this.getBgLayerFromStorageV2(bgLayerName) : storageLayerMapper.bgLayerNameToBgLayer(bgLayerName); - return bgLayer; - } - getBgLayerFromStorageV2(bgLayerNameFromStorage) { - const bgLayerOpacity = storageHelper.getValue( - SP_KEY_V2_BGLAYEROPACITY, - stringToNumber - ); - let bgLayerName = ""; - if (bgLayerNameFromStorage) { - bgLayerName = V2_BGLAYER_TO_V3_[bgLayerNameFromStorage]; - } else if (bgLayerOpacity === 0) { - bgLayerName = DEFAULT_BGLAYER_NAME_V2; - } - return storageLayerMapper.bgLayerNameToBgLayer(bgLayerName); - } - } - const statePersistorBgLayerService = new StatePersistorBgLayerService(); - const _hoisted_1$o = ["title"]; - const _sfc_main$t = /* @__PURE__ */ defineComponent({ - __name: "background-selector-item", - props: { - bgTitle: { - type: String, - default: "" - }, - bgName: { - type: String, - default: "" - } - }, - setup(__props) { - const props = __props; - const { t } = useTranslation(); - const buttonTitle = computed(() => { - const localizedTitle = t(props.bgTitle); - const hasTitle = props.bgTitle.length > 0; - const localizedLayerName = `${t("Background layer:")} ${t(props.bgName)}`; - return `${localizedTitle}${hasTitle ? " - " : ""}${localizedLayerName}`; - }); - const buttonClasses = computed( - () => `h-full w-full rounded-sm lux-bg-sel-icon - lux-bg-sel-${props.bgName} - bg-${props.bgName}_sm - md:bg-${props.bgName} - hd:bg-${props.bgName}_sm_hi - hd_md:bg-${props.bgName}_hi` - ); - return (_ctx, _cache) => { - return openBlock(), createElementBlock("button", { - title: unref(buttonTitle), - class: normalizeClass(unref(buttonClasses)) - }, null, 10, _hoisted_1$o); - }; - } - }); - const _hoisted_1$n = { class: "flex flex-row-reverse" }; - const _sfc_main$s = /* @__PURE__ */ defineComponent({ - __name: "background-selector", - props: { - isOpen: { - type: Boolean, - default: false - } - }, - setup(__props) { - const props = __props; - const { t } = useTranslation(); - const backgroundLayer = useBackgroundLayer(); - const mapStore = useMapStore(); - const themeStore = useThemeStore(); - const { bgLayer: bgLayerContext } = storeToRefs(mapStore); - statePersistorBgLayerService.bootstrap(); - const isOpen = ref(props.isOpen); - const bgLayers = ref([]); - const activeLayerId = computed( - () => { - var _a, _b; - return (_b = (_a = bgLayerContext.value) == null ? void 0 : _a.id) != null ? _b : backgroundLayer.getNullId(); - } - ); - const activeLayerName = computed( - () => { - var _a, _b; - return (_b = (_a = bgLayers.value) == null ? void 0 : _a.find((layer) => layer.id === activeLayerId.value)) == null ? void 0 : _b.name; - } - ); - watch( - () => themeStore.bgLayers, - (bgLayersContext) => { - bgLayers.value = bgConfigFixture().bg_layers.map( - (bgl) => Object.assign( - { - id: bgl.id - }, - bgLayersContext.find((l) => bgl.id == l.id), - { - name: bgl.icon_id - } - ) - ); - }, - { immediate: true } - ); - watch( - () => mapStore.bgLayer, - (bgLayerContext2, bgLayerContextOld) => { - const layersContext = mapStore.layers; - if (bgLayerContextOld === void 0 && bgLayerContext2 === null && (layersContext == null ? void 0 : layersContext.length) === 0) { - backgroundLayer.setBgLayer(backgroundLayer.defaultSelectedBgId.value); - if (bgLayerContext2 === null) { - console.log( - t( - "Aucune couche n'\xE9tant d\xE9finie pour cette carte, une couche de fond a automatiquement \xE9t\xE9 ajout\xE9e.", - { ns: "client" } - ) - ); - } - } - } - ); - function setBackgroundLayer(layer) { - backgroundLayer.setBgLayer(layer.id); - isOpen.value = false; - } - function toggleSelector() { - isOpen.value = !isOpen.value; - } - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", _hoisted_1$n, [ - createBaseVNode("div", { - class: normalizeClass(["lux-bg-sel border border-black", isOpen.value === true ? "hidden" : "block"]) - }, [ - createVNode(_sfc_main$t, { - "aria-expanded": isOpen.value, - "bg-title": "Select BG layer", - "bg-name": unref(activeLayerName), - onClick: toggleSelector - }, null, 8, ["aria-expanded", "bg-name"]) - ], 2), - createBaseVNode("div", { - class: normalizeClass(isOpen.value === true ? "flex flex-col md:flex-row" : "hidden") - }, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(bgLayers.value, (layer) => { - return openBlock(), createElementBlock("div", { - key: layer.id, - class: normalizeClass([ - "lux-bg-sel hover:bg-cyan-600", - layer.id === unref(activeLayerId) ? "border-red-500 border-2" : "border-black border" - ]) - }, [ - createVNode(_sfc_main$t, { - "bg-name": layer.name, - onClick: ($event) => setBackgroundLayer(layer) - }, null, 8, ["bg-name", "onClick"]) - ], 2); - }), 128)) - ], 2) - ]); - }; - } - }); - const _hoisted_1$m = /* @__PURE__ */ createBaseVNode("div", { class: "fixed inset-0 bg-gray-900 opacity-40 z-[1050]" }, null, -1); - const _hoisted_2$j = { class: "bg-white shadow-modal rounded-lg overflow-hidden w-[700px]" }; - const _hoisted_3$h = { class: "relative flex flex-row justify-center p-4 border-b-[1px]" }; - const _hoisted_4$f = { class: "text-xl" }; - const _hoisted_5$d = /* @__PURE__ */ createBaseVNode("span", { "aria-hidden": "true" }, "\xD7", -1); - const _hoisted_6$9 = [ - _hoisted_5$d - ]; - const _hoisted_7$6 = { - key: 0, - class: "p-[15px] border-t-[1px]" - }; - const _hoisted_8$6 = { class: "flex flex-row justify-end" }; - const _sfc_main$r = /* @__PURE__ */ defineComponent({ - __name: "modal-dialog", - props: { - footer: { - type: Boolean, - default: true - }, - maxHeight: { - type: Boolean, - default: false - }, - title: String - }, - emits: ["close"], - setup(__props) { - const { t } = useTranslation(); - const modal = ref(); - onMounted(() => { - modal.value.focus(); - }); - const displayModal = shallowRef(true); - function close() { - displayModal.value = false; - } - return (_ctx, _cache) => { - return openBlock(), createBlock(Teleport, { to: "body" }, [ - _hoisted_1$m, - createVNode(Transition, { - appear: "", - "enter-active-class": "duration-200 ease-out", - "enter-from-class": "transform opacity-0 -translate-y-60", - "enter-to-class": "opacity-100 translate-y-0", - "leave-active-class": "duration-200 ease-in", - "leave-from-class": "opacity-100 translate-y-0", - "leave-to-class": "transform opacity-0 -translate-y-60", - onAfterLeave: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("close")) - }, { - default: withCtx(() => [ - unref(displayModal) ? (openBlock(), createElementBlock("div", { - key: 0, - role: "dialog", - ref_key: "modal", - ref: modal, - tabindex: "0", - onKeydown: _cache[2] || (_cache[2] = withKeys(($event) => close(), ["esc"])), - class: "fixed inset-x-0 inset-y-8 flex items-start justify-center z-[1100] outline-none" - }, [ - createBaseVNode("div", _hoisted_2$j, [ - createBaseVNode("div", _hoisted_3$h, [ - createBaseVNode("h4", _hoisted_4$f, toDisplayString(__props.title), 1), - createBaseVNode("button", { - type: "button", - class: "absolute right-2 top-1 text-slate-400 text-[24px]", - "data-dismiss": "modal", - "aria-label": "Close", - onClick: _cache[0] || (_cache[0] = ($event) => close()) - }, _hoisted_6$9) - ]), - createBaseVNode("div", { - class: normalizeClass(["p-[15px] overflow-y-auto", __props.maxHeight ? "max-h-96" : "max-h-full"]) - }, [ - renderSlot(_ctx.$slots, "content") - ], 2), - __props.footer ? (openBlock(), createElementBlock("div", _hoisted_7$6, [ - createBaseVNode("div", _hoisted_8$6, [ - createBaseVNode("button", { - type: "button", - class: "lux-btn", - "data-dismiss": "modal", - onClick: _cache[1] || (_cache[1] = ($event) => close()) - }, toDisplayString(unref(t)("Close", { ns: "client" })), 1) - ]) - ])) : createCommentVNode("", true) - ]) - ], 544)) : createCommentVNode("", true) - ]), - _: 3 - }) - ]); - }; - } - }); - const useMetadataStore = defineStore( - "metadata", - () => { - const metadataId = ref(); - function setMetadataId(id) { - metadataId.value = id; - } - function clearMetadataId() { - metadataId.value = void 0; - } - return { - metadataId, - setMetadataId, - clearMetadataId - }; - }, - {} - ); - const _hoisted_1$l = { - class: "mb-px", - key: "node.id" - }; - const _hoisted_2$i = ["aria-expanded", "data-cy"]; - const _hoisted_3$g = { class: "leading-6" }; - const _hoisted_4$e = ["aria-expanded", "data-cy"]; - const _hoisted_5$c = { class: "grow" }; - const _hoisted_6$8 = { class: "leading-6" }; - const _hoisted_7$5 = { - key: 1, - class: "flex text-tertiary pr-2" - }; - const _hoisted_8$5 = ["data-cy"]; - const _hoisted_9$3 = { class: "ml-1 hover:underline" }; - const _sfc_main$q = /* @__PURE__ */ defineComponent({ - __name: "layer-tree-node", - props: { - node: null - }, - emits: ["toggleLayer", "toggleParent"], - setup(__props, { emit: emit2 }) { - const props = __props; - const { t } = useTranslation(); - const { setMetadataId } = useMetadataStore(); - const isParent = !!props.node.children; - const isRoot = props.node.depth === 0; - const isMaxDepth = props.node.depth >= 10; - const label = computed(() => t(props.node.name, { ns: "client" })); - function toggleLayer(node) { - emit2("toggleLayer", node); - } - function toggleParent(node) { - emit2("toggleParent", node); - } - return (_ctx, _cache) => { - const _component_layer_tree_node = resolveComponent("layer-tree-node", true); - return isParent ? (openBlock(), createElementBlock("div", _hoisted_1$l, [ - __props.node.depth === 1 ? (openBlock(), createElementBlock("button", { - key: 0, - class: "group node-1 w-full text-left flex px-2 py-1.5 uppercase bg-tertiary", - "aria-expanded": __props.node.expanded, - onClick: _cache[0] || (_cache[0] = ($event) => toggleParent(__props.node)), - "data-cy": `parentLayerLabel-${__props.node.id}` - }, [ - createBaseVNode("div", { - class: normalizeClass(["grow", __props.node.expanded ? "text-white" : "text-secondary"]) - }, toDisplayString(unref(label)), 3), - createBaseVNode("div", _hoisted_3$g, [ - createBaseVNode("div", { - class: normalizeClass(["fa fa-sharp fa-solid group-hover:text-white text-primary", __props.node.expanded ? "fa-caret-up" : "fa-caret-down"]) - }, null, 2) - ]) - ], 8, _hoisted_2$i)) : __props.node.depth > 1 && !isMaxDepth ? (openBlock(), createElementBlock("button", { - key: 1, - class: normalizeClass(["w-full text-left flex px-2 py-1.5 pl-2", __props.node.expanded ? "text-tertiary" : "bg-white text-primary"]), - "aria-expanded": __props.node.expanded, - onClick: _cache[1] || (_cache[1] = ($event) => toggleParent(__props.node)), - "data-cy": `parentLayerLabel-${__props.node.id}` - }, [ - createBaseVNode("div", _hoisted_5$c, toDisplayString(unref(label)), 1), - createBaseVNode("div", _hoisted_6$8, [ - createBaseVNode("div", { - class: normalizeClass(["fa-sharp fa-solid", __props.node.expanded ? "fa-minus" : "fa-plus"]) - }, null, 2) - ]) - ], 10, _hoisted_4$e)) : createCommentVNode("", true), - !isMaxDepth ? (openBlock(), createElementBlock("div", { - key: 2, - class: normalizeClass(["bg-secondary", [ - { "pl-2": __props.node.depth > 1 }, - { "lux-collapse": !isRoot }, - { expanded: !isRoot && __props.node.expanded } - ]]) - }, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(__props.node.children, (child) => { - return openBlock(), createBlock(_component_layer_tree_node, { - key: child.id, - node: child, - onToggleParent: _cache[2] || (_cache[2] = ($event) => toggleParent($event)), - onToggleLayer: _cache[3] || (_cache[3] = ($event) => toggleLayer($event)) - }, null, 8, ["node"]); - }), 128)) - ], 2)) : createCommentVNode("", true) - ])) : (openBlock(), createElementBlock("div", _hoisted_7$5, [ - createBaseVNode("button", { - class: "self-start before:text-[.85rem] before:transform before:translate-y-[.1rem] before:inline-block before:content-['\\f129'] fa-solid fa-fw fa-fh fa-info", - onClick: _cache[4] || (_cache[4] = ($event) => unref(setMetadataId)(__props.node.id)) - }), - createBaseVNode("button", { - class: normalizeClass(["w-full text-left", { "font-bold": __props.node.checked }]), - onClick: _cache[5] || (_cache[5] = ($event) => toggleLayer(__props.node)), - "data-cy": `layerLabel-${__props.node.id}` - }, [ - createBaseVNode("i", { - class: normalizeClass(["fa-solid", __props.node.checked ? "fa-check-square" : "fa-square"]) - }, null, 2), - createBaseVNode("span", _hoisted_9$3, toDisplayString(unref(label)), 1) - ], 10, _hoisted_8$5) - ])); - }; - } - }); - class LayerTreeService { - toggleNode(id, node, propertyName) { - var _a; - if ((node == null ? void 0 : node.id) === id) { - return { - ...node, - [propertyName]: !node[propertyName] - }; - } else { - return { - ...node, - children: (_a = node.children) == null ? void 0 : _a.map( - (child) => this.toggleNode(id, child, propertyName) - ) - }; + function parseBBox() { + const bboxEl = findChildElement(featureTypeEl, "WGS84BoundingBox"); + return ["LowerCorner", "UpperCorner"].map((elName) => findChildElement(bboxEl, elName)).map((cornerEl) => getElementText(cornerEl).split(" ")).reduce((prev, curr) => [...prev, ...curr]).map(parseFloat); + } + const otherCrs = serviceVersion.startsWith("1.0") ? [] : findChildrenElement(featureTypeEl, `Other${srsTag}`).map(getElementText).map(simplifyEpsgUrn); + const outputFormats = serviceVersion.startsWith("1.0") ? [] : findChildrenElement( + findChildElement(featureTypeEl, "OutputFormats"), + "Format" + ).map(getElementText); + return { + name: getElementText(findChildElement(featureTypeEl, "Name")), + title: getElementText(findChildElement(featureTypeEl, "Title")), + abstract: getElementText(findChildElement(featureTypeEl, "Abstract")), + defaultCrs: simplifyEpsgUrn( + getElementText(findChildElement(featureTypeEl, defaultSrsTag)) + ), + otherCrs, + outputFormats: outputFormats.length > 0 ? outputFormats : defaultOutputFormats, + latLonBoundingBox: serviceVersion.startsWith("1.0") ? parseBBox100() : parseBBox() + }; + } + function parseFeatureProps(getFeaturesDoc, featureTypeFull, serviceVersion) { + const collection = getRootElement(getFeaturesDoc); + let members; + if (serviceVersion.startsWith("2.0")) { + members = findChildrenElement(collection, "member").map( + (parent) => getChildrenElement(parent)[0] + ); + } else { + const membersRoot = findChildElement(collection, "featureMembers"); + members = membersRoot ? getChildrenElement(membersRoot) : findChildrenElement(collection, "featureMember").map( + (parent) => getChildrenElement(parent)[0] + ); + } + const idAttr = serviceVersion === "1.0.0" ? "fid" : "gml:id"; + function isElementProperty(propName) { + return propName in featureTypeFull.properties; + } + function parseElementPropertyValue(propName, valueAsString) { + const type = featureTypeFull.properties[propName]; + switch (type) { + case "integer": + return parseInt(valueAsString); + case "float": + return parseFloat(valueAsString); + case "boolean": + return valueAsString === "true"; + default: + return valueAsString; } } - updateLayers(node, layers) { - const { id } = node; - if (node.children) { - return { - ...node, - children: node.children.map((child) => this.updateLayers(child, layers)) - }; - } else { - const checked = !!(layers == null ? void 0 : layers.find((l) => l.id === id)); + function getProperties(memberEl) { + return getChildrenElement(memberEl).filter((el) => isElementProperty(stripNamespace(getElementName(el)))).reduce((prev, curr) => { + const propName = stripNamespace(getElementName(curr)); return { - ...node, - checked + ...prev, + [propName]: parseElementPropertyValue(propName, getElementText(curr)) }; - } + }, {}); } + return members.map((el) => ({ + id: getElementAttribute(el, idAttr), + properties: getProperties(el) + })); } - const layerTreeService = new LayerTreeService(); - const DEFAULT_LANG = "fr"; - const DEFAULT_LAYER_PANEL_OPENED = true; - const useAppStore = defineStore( - "app", - () => { - const lang = ref(DEFAULT_LANG); - const layersOpen = ref(DEFAULT_LAYER_PANEL_OPENED); - const remoteLayersOpen = ref(); - const styleEditorOpen = ref(false); - function setLang(language) { - lang.value = language; - } - function setLayersOpen(open2) { - layersOpen.value = open2; + function computeFeaturePropsDetails(featuresWithProps) { + return featuresWithProps.reduce((prev, curr) => { + for (const propName in curr.properties) { + const propValue = curr.properties[propName]; + if (!(propName in prev)) { + prev[propName] = { uniqueValues: [] }; + } + const uniqueValue = prev[propName].uniqueValues.find( + (v2) => v2.value === propValue + ); + if (uniqueValue) + uniqueValue.count++; + else + prev[propName].uniqueValues.push({ value: propValue, count: 1 }); } - function setRemoteLayersOpen(open2) { - remoteLayersOpen.value = open2; + return prev; + }, {}); + } + addTaskHandler( + "parseWmsCapabilities", + self, + ({ url }) => queryXmlDocument(url).then((xmlDoc) => ({ + info: readInfoFromCapabilities$1(xmlDoc), + layers: readLayersFromCapabilities(xmlDoc), + version: readVersionFromCapabilities$1(xmlDoc) + })) + ); + addTaskHandler( + "parseWfsCapabilities", + self, + ({ url }) => queryXmlDocument(url).then((xmlDoc) => ({ + info: readInfoFromCapabilities(xmlDoc), + featureTypes: readFeatureTypesFromCapabilities(xmlDoc), + version: readVersionFromCapabilities(xmlDoc) + })) + ); + addTaskHandler( + "queryWfsFeatureTypeDetails", + self, + ({ url, serviceVersion, featureTypeFull }) => { + const getFeatureUrl = generateGetFeatureUrl( + url, + serviceVersion, + featureTypeFull.name, + void 0, + void 0, + Object.keys(featureTypeFull.properties) + ); + return queryXmlDocument(getFeatureUrl).then((getFeatureDoc) => ({ + props: computeFeaturePropsDetails( + parseFeatureProps(getFeatureDoc, featureTypeFull, serviceVersion) + ) + })); + } + ); + const predefinedWmsFixture = () => { + return [ + { + url: "http://wmts1.geoportail.lu/opendata/service", + label: "Open Data Webservices WMS" + }, + { + url: "http://ows.terrestris.de/osm-gray/service", + label: "OpenStreetMap by Terrestris (Grey)" + }, + { + url: "http://ows.terrestris.de/osm/service", + label: "OpenStreetMap by Terrestris (Color)" } - function toggleStyleEditorPanel() { - styleEditorOpen.value = !styleEditorOpen.value; + ]; + }; + class WmtsEndpoint { + constructor(url) { + __publicField(this, "capabilitiesPromise"); + __publicField(this, "serviceInfo"); + __publicField(this, "layers"); + const parser = new WMTSCapabilities__default.default(); + let separator = "&"; + if (url.indexOf("?") === -1) { + separator = "?"; } - function closeStyleEditorPanel() { - styleEditorOpen.value = false; + if (url.indexOf("Capabilities") === -1) { + url = url + separator + "SERVICE=WMTS&REQUEST=GetCapabilities"; } + this.capabilitiesPromise = fetch(url).then((response) => { + return response.text(); + }).then((text2) => { + var _a; + const result = parser.read(text2); + this.serviceInfo = this.mapServiceInfo(result.ServiceIdentification); + this.layers = this.mapToRemoteLayers((_a = result.Contents) == null ? void 0 : _a.Layer); + }); + } + mapToRemoteLayers(layers) { + return [ + { + type: REMOTE_SERVICE_TYPE.WMTS, + children: layers.map( + (layer) => ({ + type: REMOTE_SERVICE_TYPE.WMTS, + abstract: layer.Abstract, + format: layer.Format, + name: layer.Identifier, + title: layer.Title, + tileMatrixSetLink: layer.TileMatrixSetLink, + wgs84BoundingBox: layer.WGS84BoundingBox + }) + ) + } + ]; + } + mapServiceInfo(serviceInfo) { return { - lang, - layersOpen, - styleEditorOpen, - remoteLayersOpen, - setLang, - setLayersOpen, - setRemoteLayersOpen, - toggleStyleEditorPanel, - closeStyleEditorPanel + type: REMOTE_SERVICE_TYPE.WMTS, + title: serviceInfo.Title, + abstract: serviceInfo.Abstract, + fees: serviceInfo.Fees, + constraints: serviceInfo.AccessConstraints, + serviceTypeVersion: serviceInfo.ServiceTypeVersion }; - }, - {} - ); + } + isReady() { + return this.capabilitiesPromise.then(() => this); + } + getLayerByName(name) { + return this.layers[0].children.filter((layer) => layer.name === name)[0]; + } + getLayers() { + return this.layers; + } + getServiceInfo() { + return this.serviceInfo; + } + } + class RemoteLayersService { + async getRemoteEndpoint(url) { + let wmtsEndpoint; + const wmsEndpoint = await this.getWmsEndpoint(url).isReady().catch(async () => { + wmtsEndpoint = await this.getWmtsEndpoint(url).isReady(); + }); + return wmsEndpoint || wmtsEndpoint; + } + getWmsEndpoint(url) { + return new WmsEndpoint(this.getProxyfiedUrl(url)); + } + getWmtsEndpoint(url) { + return new WmtsEndpoint(this.getProxyfiedUrl(url)); + } + getProxyfiedUrl(url) { + if (url.indexOf("httpsproxy") > 0) { + return url; + } + { + return remoteProxyWms + "?url=" + encodeURIComponent(url); + } + } + async fetchRemoteWmsEndpoint() { + return new Promise((resolve2) => resolve2(predefinedWmsFixture())); + } + isRemoteLayer(layerId) { + return typeof layerId === "string" && (layerId.indexOf(REMOTE_SERVICE_TYPE.WMS) === 0 || layerId.indexOf(REMOTE_SERVICE_TYPE.WMTS) === 0); + } + } + const remoteLayersService = new RemoteLayersService(); + function sortLayerTreeNoChildrenFirst(a, b) { + var _a, _b; + if (a.children && !b.children || ((_a = b.children) == null ? void 0 : _a.length) === 0) { + return 1; + } + if (b.children && !a.children || ((_b = a.children) == null ? void 0 : _b.length) === 0) { + return -1; + } + return 0; + } + function remoteLayersToLayerTreeMapper(node, urlWms, depth = 0) { + const { name = "", type = REMOTE_SERVICE_TYPE.WMS, children } = node; + const id = `${type}||${urlWms}||${name}`.split("-").join("%2D"); + const mapStore = useMapStore(); + return { + id, + name, + depth, + children: children == null ? void 0 : children.sort(sortLayerTreeNoChildrenFirst).map((child) => remoteLayersToLayerTreeMapper(child, urlWms, depth + 1)), + checked: mapStore.hasLayer(id), + expanded: false + }; + } + function remoteLayerIdtoLayer(layerId) { + const id = decodeURIComponent(layerId); + const [type, url, name] = id.split("||"); + return remoteLayerToLayer({ + id, + url: remoteLayersService.getProxyfiedUrl(url), + remoteLayer: { name, type } + }); + } + function remoteLayerToLayer({ + id, + url, + remoteLayer + }) { + const { name = "", type = REMOTE_SERVICE_TYPE.WMS } = remoteLayer; + return { + id, + name, + layers: name, + url, + type, + imageType: LayerImageType.PNG + }; + } const _hoisted_1$k = { class: "relative text-center" }; const _hoisted_2$h = ["placeholder", "value"]; const _hoisted_3$f = { @@ -40169,7 +38492,7 @@ uniform ${i3} ${o3} u_${a3}; } } return (_ctx, _cache) => { - return unref(remoteLayersOpen) ? (openBlock(), createBlock(_sfc_main$r, { + return unref(remoteLayersOpen) ? (openBlock(), createBlock(ModalDialog, { key: 0, title: unref(t)("Add external data", { ns: "client" }), onClose: _cache[0] || (_cache[0] = ($event) => unref(setRemoteLayersOpen)(false)) @@ -40178,7 +38501,7 @@ uniform ${i3} ${o3} u_${a3}; var _a, _b; return [ createBaseVNode("div", _hoisted_1$k, [ - createVNode(_sfc_main$A, { + createVNode(DropdownList, { class: "lux-remote-services-dropdown", options: unref(wmsLayers), placeholder: unref(t)("Predefined wms", { ns: "client" }), @@ -40204,35 +38527,36 @@ uniform ${i3} ${o3} u_${a3}; ns: "client" })), 1), createTextVNode(" " + toDisplayString((_a = unref(currentRemoteEndpoint).getServiceInfo()) == null ? void 0 : _a.abstract), 1) - ])) : createCommentVNode("", true), + ])) : createCommentVNode("v-if", true), !unref(isLoading) && unref(currentRemoteEndpoint) ? (openBlock(), createElementBlock("div", _hoisted_5$b, [ createBaseVNode("span", _hoisted_6$7, toDisplayString(unref(t)("Access constraints :", { ns: "client" })), 1), createTextVNode(" " + toDisplayString((_b = unref(currentRemoteEndpoint).getServiceInfo()) == null ? void 0 : _b.constraints), 1) - ])) : createCommentVNode("", true), + ])) : createCommentVNode("v-if", true), unref(isLoading) ? (openBlock(), createElementBlock("div", _hoisted_7$4, [ _hoisted_8$4, createBaseVNode("span", null, toDisplayString(unref(t)("Chargement des informations", { ns: "client" })), 1) - ])) : createCommentVNode("", true), + ])) : createCommentVNode("v-if", true), !unref(isLoading) ? (openBlock(), createElementBlock("div", _hoisted_9$2, [ - unref(layerTree) ? (openBlock(), createBlock(_sfc_main$q, { + unref(layerTree) ? (openBlock(), createBlock(LayerTreeNode, { key: 0, class: "block p-[10px] mb-[11px]", node: unref(layerTree), onToggleParent: toggleParent, onToggleLayer: toggleLayer - }, null, 8, ["node"])) : createCommentVNode("", true) - ])) : createCommentVNode("", true) + }, null, 8, ["node"])) : createCommentVNode("v-if", true) + ])) : createCommentVNode("v-if", true) ]; }), _: 1 - }, 8, ["title"])) : createCommentVNode("", true); + }, 8, ["title"])) : createCommentVNode("v-if", true); }; } }); + const RemoteLayers = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/remote-layers/remote-layers.vue"]]); function formatDate(dateString, language = "fr-FR") { const date = new Date(dateString); return new Intl.DateTimeFormat(language).format(date); @@ -40242,8 +38566,8 @@ uniform ${i3} ${o3} u_${a3}; const _sfc_main$o = /* @__PURE__ */ defineComponent({ __name: "layer-metadata-item", props: { - label: null, - value: null + label: { type: String, required: true }, + value: { type: String, required: true } }, setup(__props) { const props = __props; @@ -40255,6 +38579,7 @@ uniform ${i3} ${o3} u_${a3}; }; } }); + const LayerMetadataItem = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/layer-metadata/layer-metadata-item.vue"]]); function isoLang2To3(code) { const lang = { fr: "fre", @@ -40515,7 +38840,7 @@ uniform ${i3} ${o3} u_${a3}; } return (_ctx, _cache) => { const _directive_dompurify_html = resolveDirective("dompurify-html"); - return layerMetadata.value ? (openBlock(), createBlock(_sfc_main$r, { + return layerMetadata.value ? (openBlock(), createBlock(ModalDialog, { key: 0, footer: false, "max-height": true, @@ -40526,16 +38851,16 @@ uniform ${i3} ${o3} u_${a3}; var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o; return [ createBaseVNode("div", _hoisted_1$i, [ - layerMetadata.value.name ? (openBlock(), createBlock(_sfc_main$o, { + layerMetadata.value.name ? (openBlock(), createBlock(LayerMetadataItem, { key: 0, label: unref(t)("Name"), value: layerMetadata.value.name - }, null, 8, ["label", "value"])) : createCommentVNode("", true), - layerMetadata.value.serviceDescription ? (openBlock(), createBlock(_sfc_main$o, { + }, null, 8, ["label", "value"])) : createCommentVNode("v-if", true), + layerMetadata.value.serviceDescription ? (openBlock(), createBlock(LayerMetadataItem, { key: 1, label: unref(t)("Description du Service"), value: layerMetadata.value.serviceDescription - }, null, 8, ["label", "value"])) : createCommentVNode("", true), + }, null, 8, ["label", "value"])) : createCommentVNode("v-if", true), layerMetadata.value.description ? (openBlock(), createElementBlock("div", _hoisted_2$f, [ createBaseVNode("span", _hoisted_3$e, toDisplayString(unref(t)("Description")), 1), createBaseVNode("span", _hoisted_4$c, [ @@ -40549,7 +38874,7 @@ uniform ${i3} ${o3} u_${a3}; }), onClick: showFullDescription, class: "text-secondary hover:underline" - }, " ... ", 8, _hoisted_5$a)) : createCommentVNode("", true), + }, " ... ", 8, _hoisted_5$a)) : createCommentVNode("v-if", true), displayFullDescription.value && (((_a = unref(description)) == null ? void 0 : _a.length) || 0) > MAX_DESCRIPTION_LENGTH ? (openBlock(), createElementBlock("button", { key: 1, title: unref(t)("Hide full description", { @@ -40557,14 +38882,14 @@ uniform ${i3} ${o3} u_${a3}; }), onClick: hideFullDescription, class: "text-secondary hover:underline" - }, " - ", 8, _hoisted_6$6)) : createCommentVNode("", true) + }, " - ", 8, _hoisted_6$6)) : createCommentVNode("v-if", true) ]) - ])) : createCommentVNode("", true), - layerMetadata.value.legalConstraints ? (openBlock(), createBlock(_sfc_main$o, { + ])) : createCommentVNode("v-if", true), + layerMetadata.value.legalConstraints ? (openBlock(), createBlock(LayerMetadataItem, { key: 3, label: unref(t)(`Contrainte d'utilisation`), value: layerMetadata.value.legalConstraints - }, null, 8, ["label", "value"])) : createCommentVNode("", true), + }, null, 8, ["label", "value"])) : createCommentVNode("v-if", true), ((_b = layerMetadata.value.link) == null ? void 0 : _b.length) !== 0 ? (openBlock(), createElementBlock("div", _hoisted_7$3, [ (openBlock(true), createElementBlock(Fragment, null, renderList(layerMetadata.value.link, (link) => { return openBlock(), createElementBlock("div", { @@ -40581,32 +38906,32 @@ uniform ${i3} ${o3} u_${a3}; ]) ]); }), 128)) - ])) : createCommentVNode("", true), - layerMetadata.value.revisionDate ? (openBlock(), createBlock(_sfc_main$o, { + ])) : createCommentVNode("v-if", true), + layerMetadata.value.revisionDate ? (openBlock(), createBlock(LayerMetadataItem, { key: 5, label: unref(t)("Revision date"), value: unref(formatDate)(layerMetadata.value.revisionDate, unref(i18next).language) - }, null, 8, ["label", "value"])) : createCommentVNode("", true), - layerMetadata.value.keyword ? (openBlock(), createBlock(_sfc_main$o, { + }, null, 8, ["label", "value"])) : createCommentVNode("v-if", true), + layerMetadata.value.keyword ? (openBlock(), createBlock(LayerMetadataItem, { key: 6, label: unref(t)("Keywords"), value: (_c = layerMetadata.value.keyword) == null ? void 0 : _c.join(",") - }, null, 8, ["label", "value"])) : createCommentVNode("", true), + }, null, 8, ["label", "value"])) : createCommentVNode("v-if", true), layerMetadata.value.responsibleParty ? (openBlock(), createElementBlock("div", _hoisted_11$1, [ createBaseVNode("div", _hoisted_12, toDisplayString(unref(t)("Contact")), 1), createBaseVNode("div", _hoisted_13, [ - ((_d = layerMetadata.value.responsibleParty) == null ? void 0 : _d.organisaton) ? (openBlock(), createElementBlock("p", _hoisted_14, toDisplayString((_e = layerMetadata.value.responsibleParty) == null ? void 0 : _e.organisaton), 1)) : createCommentVNode("", true), - ((_f = layerMetadata.value.responsibleParty) == null ? void 0 : _f.name) ? (openBlock(), createElementBlock("p", _hoisted_15, toDisplayString((_g = layerMetadata.value.responsibleParty) == null ? void 0 : _g.name), 1)) : createCommentVNode("", true), - ((_h = layerMetadata.value.responsibleParty) == null ? void 0 : _h.unknown) ? (openBlock(), createElementBlock("p", _hoisted_16, toDisplayString((_i = layerMetadata.value.responsibleParty) == null ? void 0 : _i.unknown), 1)) : createCommentVNode("", true), - ((_j = layerMetadata.value.responsibleParty) == null ? void 0 : _j.address) ? (openBlock(), createElementBlock("p", _hoisted_17, toDisplayString((_k = layerMetadata.value.responsibleParty) == null ? void 0 : _k.address), 1)) : createCommentVNode("", true), + ((_d = layerMetadata.value.responsibleParty) == null ? void 0 : _d.organisaton) ? (openBlock(), createElementBlock("p", _hoisted_14, toDisplayString((_e = layerMetadata.value.responsibleParty) == null ? void 0 : _e.organisaton), 1)) : createCommentVNode("v-if", true), + ((_f = layerMetadata.value.responsibleParty) == null ? void 0 : _f.name) ? (openBlock(), createElementBlock("p", _hoisted_15, toDisplayString((_g = layerMetadata.value.responsibleParty) == null ? void 0 : _g.name), 1)) : createCommentVNode("v-if", true), + ((_h = layerMetadata.value.responsibleParty) == null ? void 0 : _h.unknown) ? (openBlock(), createElementBlock("p", _hoisted_16, toDisplayString((_i = layerMetadata.value.responsibleParty) == null ? void 0 : _i.unknown), 1)) : createCommentVNode("v-if", true), + ((_j = layerMetadata.value.responsibleParty) == null ? void 0 : _j.address) ? (openBlock(), createElementBlock("p", _hoisted_17, toDisplayString((_k = layerMetadata.value.responsibleParty) == null ? void 0 : _k.address), 1)) : createCommentVNode("v-if", true), ((_l = layerMetadata.value.responsibleParty) == null ? void 0 : _l.email) ? (openBlock(), createElementBlock("p", _hoisted_18, [ createBaseVNode("a", { class: "text-secondary hover:underline", href: "mailto:" + ((_m = layerMetadata.value.responsibleParty) == null ? void 0 : _m.email) }, toDisplayString((_n = layerMetadata.value.responsibleParty) == null ? void 0 : _n.email), 9, _hoisted_19) - ])) : createCommentVNode("", true) + ])) : createCommentVNode("v-if", true) ]) - ])) : createCommentVNode("", true), + ])) : createCommentVNode("v-if", true), layerMetadata.value.metadataLink ? (openBlock(), createElementBlock("div", _hoisted_20, [ createBaseVNode("span", _hoisted_21, toDisplayString(unref(t)("Link to the metadata")), 1), createBaseVNode("span", _hoisted_22, [ @@ -40616,23 +38941,24 @@ uniform ${i3} ${o3} u_${a3}; href: layerMetadata.value.metadataLink }, toDisplayString(unref(t)("link")), 9, _hoisted_23) ]) - ])) : createCommentVNode("", true), - layerMetadata.value.isError ? (openBlock(), createElementBlock("div", _hoisted_24, toDisplayString(unref(t)("The metadata is right now not available")), 1)) : createCommentVNode("", true), + ])) : createCommentVNode("v-if", true), + layerMetadata.value.isError ? (openBlock(), createElementBlock("div", _hoisted_24, toDisplayString(unref(t)("The metadata is right now not available")), 1)) : createCommentVNode("v-if", true), layerMetadata.value.legendHtml ? (openBlock(), createElementBlock("div", _hoisted_25, [ createBaseVNode("h4", _hoisted_26, toDisplayString(unref(t)("Legend")), 1), withDirectives(createBaseVNode("span", null, null, 512), [ [_directive_dompurify_html, (_o = layerMetadata.value.legendHtml) == null ? void 0 : _o.innerHTML] ]) - ])) : createCommentVNode("", true), - !layerMetadata.value.hasLegend ? (openBlock(), createElementBlock("div", _hoisted_27, toDisplayString(unref(t)("The legend is not available for this layer")), 1)) : createCommentVNode("", true) + ])) : createCommentVNode("v-if", true), + !layerMetadata.value.hasLegend ? (openBlock(), createElementBlock("div", _hoisted_27, toDisplayString(unref(t)("The legend is not available for this layer")), 1)) : createCommentVNode("v-if", true) ]) ]; }), _: 1 - }, 8, ["title"])) : createCommentVNode("", true); + }, 8, ["title"])) : createCommentVNode("v-if", true); }; } }); + const LayerMetadata = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/layer-metadata/layer-metadata.vue"]]); const _imports_0 = "data:image/png;base64,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"; class StatePersistorLangService { bootstrap() { @@ -40690,7 +39016,7 @@ uniform ${i3} ${o3} u_${a3}; } return (_ctx, _cache) => { return openBlock(), createElementBlock("div", null, [ - createVNode(_sfc_main$A, { + createVNode(DropdownList, { class: "lux-navbar-dropdown lux-dropdown-inline text-white h-full", options: unref(availableLanguages), placeholder: unref(placeholder), @@ -40702,6 +39028,7 @@ uniform ${i3} ${o3} u_${a3}; }; } }); + const LanguageSelector = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/nav-bars/language-selector.vue"]]); class ThemeSelectorService { setCurrentThemeColors(themeName) { const root = document.querySelector(":root"); @@ -40757,7 +39084,7 @@ uniform ${i3} ${o3} u_${a3}; ], 2) ]), createBaseVNode("li", _hoisted_6$5, [ - createVNode(_sfc_main$m, { class: "flex-none h-full" }) + createVNode(LanguageSelector, { class: "flex-none h-full" }) ]) ]) ]) @@ -40765,13 +39092,14 @@ uniform ${i3} ${o3} u_${a3}; }; } }); + const HeaderBar = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/header/header-bar.vue"]]); const _hoisted_1$g = { class: "block text-[13px] sm:text-base uppercase" }; const _sfc_main$k = /* @__PURE__ */ defineComponent({ __name: "button-icon", props: { - label: null, - icon: null, - active: { type: Boolean } + label: { type: String, required: true }, + icon: { type: String, required: true }, + active: { type: Boolean, required: false } }, setup(__props) { const props = __props; @@ -40787,12 +39115,13 @@ uniform ${i3} ${o3} u_${a3}; }; } }); + const ButtonIcon = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/footer/button-icon.vue"]]); const _hoisted_1$f = ["href"]; const _sfc_main$j = /* @__PURE__ */ defineComponent({ __name: "button-link", props: { - label: null, - link: null + label: { type: String, required: true }, + link: { type: String, required: true } }, setup(__props) { const props = __props; @@ -40805,6 +39134,7 @@ uniform ${i3} ${o3} u_${a3}; }; } }); + const ButtonLink = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/footer/button-link.vue"]]); const _hoisted_1$e = { class: "flex flex-col w-12 justify-between bg-white z-5 shrink-0 sm:flex-row sm:w-full sm:h-14 sm:shadow-footer" }; const _hoisted_2$d = { class: "flex flex-col w-full sm:w-80 sm:flex-row justify-start text-primary divide-y sm:divide-y-0 sm:divide-x divide-gray-400 divide-solid box-content border-y sm:border-y-0 border-x border-gray-400" }; const _hoisted_3$c = { class: "flex flex-col w-12 sm:w-64 sm:flex-row justify-start text-primary divide-y sm:divide-y-0 sm:divide-x divide-gray-400 divide-solid box-content border-y sm:border-y-0 border-x border-gray-400" }; @@ -40817,102 +39147,108 @@ uniform ${i3} ${o3} u_${a3}; const { layersOpen } = storeToRefs(useAppStore()); return (_ctx, _cache) => { return openBlock(), createElementBlock("footer", _hoisted_1$e, [ + createCommentVNode(" left buttons "), createBaseVNode("ul", _hoisted_2$d, [ createBaseVNode("li", null, [ - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { label: unref(t)("Layers", { ns: "client" }), icon: "layers", active: unref(layersOpen), onClick: _cache[0] || (_cache[0] = () => unref(setLayersOpen)(!unref(layersOpen))) }, null, 8, ["label", "active"]) ]), + createCommentVNode('TODOs in each button when implemented\n - remove class="text-gray-300"\n - add click handler that calls setLayersOpen(true) and opens tool (also via app store)\n '), createBaseVNode("li", null, [ - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { class: "text-gray-300", label: unref(t)("My Maps", { ns: "client" }), icon: "mymaps" }, null, 8, ["label"]) ]), createBaseVNode("li", null, [ - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { class: "text-gray-300", label: unref(t)("Infos", { ns: "client" }), icon: "infos" }, null, 8, ["label"]) ]), createBaseVNode("li", null, [ - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { class: "text-gray-300", label: unref(t)("Legends", { ns: "client" }), icon: "legends" }, null, 8, ["label"]) ]), createBaseVNode("li", null, [ - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { class: "text-gray-300", label: unref(t)("Routing", { ns: "client" }), icon: "routing" }, null, 8, ["label"]) ]) ]), + createCommentVNode(" center buttons "), createBaseVNode("div", _hoisted_3$c, [ - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { class: "text-gray-300", label: unref(t)("Dessin", { ns: "client" }), icon: "draw" }, null, 8, ["label"]), - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { class: "text-gray-300 hidden sm:block", label: unref(t)("Mesurer", { ns: "client" }), icon: "measure" }, null, 8, ["label"]), - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { class: "text-gray-300 hidden sm:block", label: unref(t)("Imprimer", { ns: "client" }), icon: "print" }, null, 8, ["label"]), - createVNode(_sfc_main$k, { + createVNode(ButtonIcon, { class: "text-gray-300", label: unref(t)("Partager", { ns: "client" }), icon: "share" }, null, 8, ["label"]) ]), + createCommentVNode(" right buttons "), createBaseVNode("div", _hoisted_4$a, [ - createVNode(_sfc_main$j, { + createVNode(ButtonLink, { class: "hidden lg:flex", label: unref(t)("What's new", { ns: "client" }), link: `https://geoportail.lu/${unref(i18next).language}/questions/whats-new/` }, null, 8, ["label", "link"]), - createVNode(_sfc_main$j, { + createCommentVNode("TODO get geonetworkBaseUrl from config"), + createVNode(ButtonLink, { class: "hidden lg:flex", label: unref(t)("Geocatalogue", { ns: "client" }), link: "" }, null, 8, ["label"]), - createVNode(_sfc_main$j, { + createCommentVNode("TODO handle feedback links (for different portals?)"), + createVNode(ButtonLink, { class: "hidden lg:flex", label: unref(t)("Feedback", { ns: "client" }), link: "" }, null, 8, ["label"]), - createVNode(_sfc_main$j, { + createVNode(ButtonLink, { class: "hidden lg:flex", label: unref(t)("A Propos", { ns: "client" }), link: `https://www.geoportail.lu/${unref(i18next).language}/propos/` }, null, 8, ["label", "link"]), - createVNode(_sfc_main$j, { + createVNode(ButtonLink, { class: "hidden lg:flex", label: unref(t)("Aide", { ns: "client" }), link: `https://www.geoportail.lu/${unref(i18next).language}/documentation/` }, null, 8, ["label", "link"]), - createVNode(_sfc_main$j, { + createVNode(ButtonLink, { class: "hidden lg:flex", label: unref(t)("Contact", { ns: "client" }), link: `https://www.geoportail.lu/${unref(i18next).language}/propos/contactez-nous/` }, null, 8, ["label", "link"]), - createVNode(_sfc_main$j, { + createVNode(ButtonLink, { label: unref(t)("Legalites", { ns: "client" }), link: `https://www.geoportail.lu/${unref(i18next).language}/propos/mentions-legales/` }, null, 8, ["label", "link"]), - createVNode(_sfc_main$j, { + createVNode(ButtonLink, { label: unref(t)("ACT", { ns: "client" }), link: `http://www.act.public.lu/` }, null, 8, ["label", "link"]) @@ -40921,6 +39257,7 @@ uniform ${i3} ${o3} u_${a3}; }; } }); + const FooterBar = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/footer/footer-bar.vue"]]); function themesToLayerTree(node, depth = 0) { const { name, id, children, metadata } = node; return { @@ -40961,22 +39298,23 @@ uniform ${i3} ${o3} u_${a3}; layers.toggleLayer(+node.id, !node.checked); } return (_ctx, _cache) => { - return unref(layerTree) ? (openBlock(), createBlock(_sfc_main$q, { + return unref(layerTree) ? (openBlock(), createBlock(LayerTreeNode, { node: unref(layerTree), key: unref(layerTree).id, onToggleParent: toggleParent, onToggleLayer: toggleLayer - }, null, 8, ["node"])) : createCommentVNode("", true); + }, null, 8, ["node"])) : createCommentVNode("v-if", true); }; } }); + const Catalog = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/catalog/catalog-tree.vue"]]); const _hoisted_1$d = { class: "flex flex-row flex-wrap pl-2.5" }; const _hoisted_2$c = ["onClick"]; const _hoisted_3$b = { class: "text-2xl absolute top-5" }; const _sfc_main$g = /* @__PURE__ */ defineComponent({ __name: "theme-grid", props: { - themes: null + themes: { type: Array, required: true } }, setup(__props) { const props = __props; @@ -40999,6 +39337,7 @@ uniform ${i3} ${o3} u_${a3}; }; } }); + const ThemeGrid = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/theme-selector/theme-grid.vue"]]); const _hoisted_1$c = ["aria-expanded"]; const _hoisted_2$b = { class: "py-0.5" }; const _hoisted_3$a = { class: "px-1 py-0.5 shrink-0 flex flex-row text-[12px] bg-secondary text-white" }; @@ -41007,9 +39346,9 @@ uniform ${i3} ${o3} u_${a3}; const _sfc_main$f = /* @__PURE__ */ defineComponent({ __name: "theme-selector-button", props: { - themes: null, - currentTheme: null, - isOpen: { type: Boolean } + themes: { type: Array, required: true }, + currentTheme: { type: null, required: false }, + isOpen: { type: Boolean, required: false } }, setup(__props) { const props = __props; @@ -41040,6 +39379,7 @@ uniform ${i3} ${o3} u_${a3}; }; } }); + const ThemeSelectorButton = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/theme-selector/theme-selector-button.vue"]]); const _hoisted_1$b = { key: 0, class: "absolute inset-x-0 top-14 bottom-0 mt-1 bg-primary overflow-y-auto overflow-x-hidden" @@ -41072,22 +39412,23 @@ uniform ${i3} ${o3} u_${a3}; } return (_ctx, _cache) => { return openBlock(), createElementBlock(Fragment, null, [ - createVNode(_sfc_main$f, { + createVNode(ThemeSelectorButton, { onClick: toggleThemesGrid, themes: unref(themes2), currentTheme: unref(theme), isOpen: unref(isOpen) }, null, 8, ["themes", "currentTheme", "isOpen"]), unref(isOpen) ? (openBlock(), createElementBlock("div", _hoisted_1$b, [ - createVNode(_sfc_main$g, { + createVNode(ThemeGrid, { onSetTheme: setTheme, themes: unref(themes2) }, null, 8, ["themes"]) - ])) : createCommentVNode("", true) + ])) : createCommentVNode("v-if", true) ], 64); }; } }); + const ThemeSelector = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/theme-selector/theme-selector.vue"]]); const _sfc_main$d = /* @__PURE__ */ defineComponent({ __name: "catalog-tab", setup(__props) { @@ -41097,15 +39438,16 @@ uniform ${i3} ${o3} u_${a3}; } return (_ctx, _cache) => { return openBlock(), createElementBlock(Fragment, null, [ - createVNode(_sfc_main$e, { onToggleThemesGrid: toggleThemesGrid }), - unref(themeGridIsOpen) === false ? (openBlock(), createBlock(_sfc_main$h, { + createVNode(ThemeSelector, { onToggleThemesGrid: toggleThemesGrid }), + unref(themeGridIsOpen) === false ? (openBlock(), createBlock(Catalog, { key: 0, class: "pt-5 absolute inset-x-2.5 bg-primary overflow-y-auto overflow-x-hidden" - })) : createCommentVNode("", true) + })) : createCommentVNode("v-if", true) ], 64); }; } }); + const CatalogTab = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/catalog/catalog-tab.vue"]]); /**! * Sortable 1.15.0 * @author RubaXa @@ -43293,8 +41635,8 @@ uniform ${i3} ${o3} u_${a3}; const _sfc_main$c = /* @__PURE__ */ defineComponent({ __name: "layer-item-background", props: { - showEditButton: { type: Boolean }, - layer: null + showEditButton: { type: Boolean, required: true }, + layer: { type: null, required: true } }, emits: ["clickEdit", "clickInfo"], setup(__props, { emit: emit2 }) { @@ -43322,11 +41664,12 @@ uniform ${i3} ${o3} u_${a3}; class: "fa fa-pencil", title: unref(t)("Open editor panel", { ns: "client" }), onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("clickEdit")) - }, null, 8, _hoisted_4$8)) : createCommentVNode("", true) + }, null, 8, _hoisted_4$8)) : createCommentVNode("v-if", true) ]); }; } }); + const LayerManagerItemBackground = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/layer-manager/layer-item/layer-item-background.vue"]]); const _hoisted_1$9 = { class: "lux-layer-manager-item relative" }; const _hoisted_2$9 = { class: "w-full flex flex-nowrap items-start gap-x-2" }; const _hoisted_3$8 = ["title"]; @@ -43341,11 +41684,11 @@ uniform ${i3} ${o3} u_${a3}; const _sfc_main$b = /* @__PURE__ */ defineComponent({ __name: "layer-item", props: { - layer: null, - draggableClassName: null, - isOpen: { type: Boolean }, - isLayerComparatorOpen: { type: Boolean }, - displayLayerComparatorOpen: { type: Boolean } + layer: { type: null, required: true }, + draggableClassName: { type: String, required: true }, + isOpen: { type: Boolean, required: true }, + isLayerComparatorOpen: { type: Boolean, required: true }, + displayLayerComparatorOpen: { type: Boolean, required: true } }, emits: [ "clickInfo", @@ -43470,12 +41813,13 @@ uniform ${i3} ${o3} u_${a3}; layerName: unref(getLabel)() }), onClick: onToggleLayerComparator - }, null, 10, _hoisted_11)) : createCommentVNode("", true) + }, null, 10, _hoisted_11)) : createCommentVNode("v-if", true) ], 10, _hoisted_8$2) ]); }; } }); + const LayerManagerItem = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/layer-manager/layer-item/layer-item.vue"]]); const _hoisted_1$8 = { id: "sortable-layers" }; const _hoisted_2$8 = ["id"]; const _hoisted_3$7 = { class: "flex flex-row justify-center space-x-1 my-2" }; @@ -43524,8 +41868,8 @@ uniform ${i3} ${o3} u_${a3}; function toggleAccordionItem(layer) { isLayerOpenId.value = isLayerOpenId.value !== layer.id ? layer.id : void 0; } - function toggleEditionLayer() { - appStore.toggleStyleEditorPanel(); + function openEditionLayer() { + appStore.openStyleEditorPanel(); } function toggleLayerComparator() { sliderStore.toggleSlider(); @@ -43537,7 +41881,7 @@ uniform ${i3} ${o3} u_${a3}; key: layer.id, id: layer.id }, [ - createVNode(_sfc_main$b, { + createVNode(LayerManagerItem, { draggableClassName, layer, isOpen: unref(isLayerOpenId) === layer.id, @@ -43552,11 +41896,11 @@ uniform ${i3} ${o3} u_${a3}; ], 8, _hoisted_2$8); }), 128)), createBaseVNode("li", null, [ - createVNode(_sfc_main$c, { + createVNode(LayerManagerItemBackground, { layer: unref(bgLayer) || unref(BLANK_BACKGROUNDLAYER), showEditButton: unref(bgLayerIsEditable), onClickInfo: _cache[0] || (_cache[0] = () => unref(bgLayer) && unref(setMetadataId)(unref(bgLayer).id)), - onClickEdit: toggleEditionLayer + onClickEdit: openEditionLayer }, null, 8, ["layer", "showEditButton"]), createBaseVNode("div", _hoisted_3$7, [ createBaseVNode("button", { @@ -43573,6 +41917,7 @@ uniform ${i3} ${o3} u_${a3}; }; } }); + const LayerManager = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/layer-manager/layer-manager.vue"]]); const _hoisted_1$7 = { class: "flex flex-col h-full pt-1.5" }; const _hoisted_2$7 = { class: "h-16 shrink-0 flex justify-between lux-panel-title" }; const _hoisted_3$6 = ["aria-label"]; @@ -43590,6 +41935,7 @@ uniform ${i3} ${o3} u_${a3}; const myLayersOpen = ref(false); return (_ctx, _cache) => { return openBlock(), createElementBlock("div", _hoisted_1$7, [ + createCommentVNode(" Panel title and close button "), createBaseVNode("div", _hoisted_2$7, [ createBaseVNode("div", null, toDisplayString(unref(t)("Layers", { ns: "client" })), 1), createBaseVNode("span", null, [ @@ -43600,6 +41946,7 @@ uniform ${i3} ${o3} u_${a3}; }, null, 8, _hoisted_3$6) ]) ]), + createCommentVNode(" My Layers and Catalog tab labels "), createBaseVNode("div", _hoisted_4$6, [ createBaseVNode("button", { onClick: _cache[1] || (_cache[1] = () => myLayersOpen.value = true), @@ -43607,7 +41954,7 @@ uniform ${i3} ${o3} u_${a3}; "aria-expanded": myLayersOpen.value }, [ createTextVNode(toDisplayString(unref(t)("my_layers", { ns: "client" })) + " ", 1), - unref(layers).length ? (openBlock(), createElementBlock("span", _hoisted_6$3, "(" + toDisplayString(unref(layers).length) + ")", 1)) : createCommentVNode("", true) + unref(layers).length ? (openBlock(), createElementBlock("span", _hoisted_6$3, "(" + toDisplayString(unref(layers).length) + ")", 1)) : createCommentVNode("v-if", true) ], 10, _hoisted_5$6), createBaseVNode("button", { onClick: _cache[2] || (_cache[2] = ($event) => myLayersOpen.value = false), @@ -43615,17 +41962,19 @@ uniform ${i3} ${o3} u_${a3}; "aria-expanded": !myLayersOpen.value }, toDisplayString(unref(t)("Catalog", { ns: "client" })), 11, _hoisted_7$1) ]), + createCommentVNode(" Panel content (MyLayers and Catalog) "), createBaseVNode("div", _hoisted_8$1, [ - !myLayersOpen.value ? (openBlock(), createBlock(_sfc_main$d, { key: 0 })) : createCommentVNode("", true), - myLayersOpen.value ? (openBlock(), createBlock(_sfc_main$a, { + !myLayersOpen.value ? (openBlock(), createBlock(CatalogTab, { key: 0 })) : createCommentVNode("v-if", true), + myLayersOpen.value ? (openBlock(), createBlock(LayerManager, { key: 1, onDisplayCatalog: _cache[3] || (_cache[3] = () => myLayersOpen.value = false) - })) : createCommentVNode("", true) + })) : createCommentVNode("v-if", true) ]) ]); }; } }); + const LayerPanel = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/layer-panel/layer-panel.vue"]]); class StatePersistorLayerComparatorService { bootstrap() { let stop; @@ -43677,11 +42026,11 @@ uniform ${i3} ${o3} u_${a3}; const _sfc_main$8 = /* @__PURE__ */ defineComponent({ __name: "splitter-element", props: { - sliderActive: { type: Boolean }, - sliderRatio: null, - sliderTopLayer: null, - sliderOffset: null, - containerOffset: null + sliderActive: { type: Boolean, required: true }, + sliderRatio: { type: Number, required: true }, + sliderTopLayer: { type: null, required: true }, + sliderOffset: { type: Number, required: true }, + containerOffset: { type: Number, required: true } }, emits: ["moveSplitBar", "escSplitBar"], setup(__props, { expose, emit: emit2 }) { @@ -43754,11 +42103,12 @@ uniform ${i3} ${o3} u_${a3}; __props.sliderTopLayer ? (openBlock(), createElementBlock("span", _hoisted_4$5, [ _hoisted_5$5, createBaseVNode("span", null, toDisplayString(unref(t)(__props.sliderTopLayer.name)), 1) - ])) : createCommentVNode("", true) + ])) : createCommentVNode("v-if", true) ], 44, _hoisted_1$6); }; } }); + const SplitterElement = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/slider/splitter-element.vue"]]); const _sfc_main$7 = /* @__PURE__ */ defineComponent({ __name: "slider-comparator", setup(__props) { @@ -43852,7 +42202,7 @@ uniform ${i3} ${o3} u_${a3}; }); return (_ctx, _cache) => { var _a; - return unref(sliderTopLayer) && unref(sliderActive) ? (openBlock(), createBlock(_sfc_main$8, { + return unref(sliderTopLayer) && unref(sliderActive) ? (openBlock(), createBlock(SplitterElement, { key: 0, ref_key: "splitterElement", ref: splitterElement, @@ -43863,10 +42213,125 @@ uniform ${i3} ${o3} u_${a3}; containerOffset: ((_a = unref(mapWrapperElement)) == null ? void 0 : _a.offsetLeft) || 0, onMoveSplitBar, onEscSplitBar - }, null, 8, ["sliderActive", "sliderRatio", "sliderTopLayer", "sliderOffset", "containerOffset"])) : createCommentVNode("", true); + }, null, 8, ["sliderActive", "sliderRatio", "sliderTopLayer", "sliderOffset", "containerOffset"])) : createCommentVNode("v-if", true); }; } }); + const SliderComparator = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/slider/slider-comparator.vue"]]); + const STORAGE_SEPARATOR = "-"; + const STORAGE_SEPARATOR_V2 = ","; + class StorageLayerMapper { + constructor() { + __publicField(this, "layersOpacitiesToNumbersV2", (opacitiesText) => { + return this.layersOpacitiesToNumbers(opacitiesText, STORAGE_SEPARATOR_V2); + }); + } + layerIdsToLayers(layerIdsText) { + const themes2 = useThemes(); + const layers = useLayers(); + const layerIds = layerIdsText ? layerIdsText.split(STORAGE_SEPARATOR) : []; + return layerIds.map((layerId) => { + const layer = remoteLayersService.isRemoteLayer(layerId) ? remoteLayerIdtoLayer(layerId) : themes2.findById(parseInt(layerId, 10)); + return layer ? layers.initLayer(layer) : void 0; + }); + } + layerNamesToLayersV2(layersNamesText) { + const themes2 = useThemes(); + const layers = useLayers(); + const layersNames = layersNamesText ? layersNamesText.split(STORAGE_SEPARATOR_V2) : []; + return layersNames.map((layerName) => { + const layer = themes2.findByName(layerName); + return layer ? layers.initLayer(layer) : void 0; + }); + } + layersOpacitiesToNumbers(opacitiesText, separator = STORAGE_SEPARATOR) { + return stringToNumbers(opacitiesText, separator); + } + layersVisibilitiesToBooleansV2(visibilitiesText) { + return stringToBooleans(visibilitiesText, STORAGE_SEPARATOR_V2); + } + layersToLayerIds(layers) { + return (layers == null ? void 0 : layers.map((layer) => layer.id).join(STORAGE_SEPARATOR)) || ""; + } + layersToLayerOpacities(layers) { + return (layers == null ? void 0 : layers.map((layer) => { + var _a; + return (_a = layer.opacity) != null ? _a : 1; + }).join(STORAGE_SEPARATOR)) || ""; + } + bgLayerNameToBgLayer(bgLayerName) { + const themes2 = useThemes(); + return bgLayerName ? themes2.findBgLayerByName(bgLayerName) : null; + } + bgLayerToBgLayerName(layer) { + return (layer == null ? void 0 : layer.name) || BLANK_BACKGROUNDLAYER.name; + } + } + const storageLayerMapper = new StorageLayerMapper(); + const DEFAULT_BGLAYER_NAME = "basemap_2015_global"; + const DEFAULT_BGLAYER_NAME_V2 = "orthogr_2013_global"; + const V2_BGLAYER_TO_V3_ = { + webbasemap: "basemap_2015_global", + "pixelmaps-color": "topogr_global", + "pixelmaps-gray": "topo_bw_jpeg", + streets: "streets_jpeg", + voidlayer: "blank" + }; + class StatePersistorBgLayerService { + bootstrap() { + const themeStore = useThemeStore(); + let stop; + stop = watchEffect(() => { + if (themeStore.bgLayers.length > 0) { + this.restore(); + this.persist(); + stop && stop(); + } + }); + } + persist() { + const mapStore = useMapStore(); + const { bgLayer } = storeToRefs(mapStore); + watch( + bgLayer, + (value, oldValue) => { + if (oldValue !== value) { + storageHelper.setValue( + SP_KEY_BGLAYER, + value, + storageLayerMapper.bgLayerToBgLayerName + ); + } + }, + { immediate: true } + ); + } + restore() { + const { setMapBackground } = useBackgroundLayer(); + const bgLayer = this.getBgLayerFromStorage(); + setMapBackground(bgLayer); + } + getBgLayerFromStorage() { + const version2 = storageHelper.getInitialVersion(); + const bgLayerName = storageHelper.getValue(SP_KEY_BGLAYER); + const bgLayer = !bgLayerName ? storageLayerMapper.bgLayerNameToBgLayer(DEFAULT_BGLAYER_NAME) : version2 === 2 ? this.getBgLayerFromStorageV2(bgLayerName) : storageLayerMapper.bgLayerNameToBgLayer(bgLayerName); + return bgLayer; + } + getBgLayerFromStorageV2(bgLayerNameFromStorage) { + const bgLayerOpacity = storageHelper.getValue( + SP_KEY_V2_BGLAYEROPACITY, + stringToNumber + ); + let bgLayerName = ""; + if (bgLayerNameFromStorage) { + bgLayerName = V2_BGLAYER_TO_V3_[bgLayerNameFromStorage]; + } else if (bgLayerOpacity === 0) { + bgLayerName = DEFAULT_BGLAYER_NAME_V2; + } + return storageLayerMapper.bgLayerNameToBgLayer(bgLayerName); + } + } + const statePersistorBgLayerService = new StatePersistorBgLayerService(); class StatePersistorLayersService { bootstrap() { const themeStore = useThemeStore(); @@ -43984,6 +42449,52 @@ uniform ${i3} ${o3} u_${a3}; } } const statePersistorThemeService = new StatePersistorThemeService(); + class StatePersistorLayersOpenService { + bootstrapLayersOpen() { + this.restoreLayersOpen(); + let stop; + stop = watchEffect(() => { + this.persistLayersOpen(); + stop && stop(); + }); + } + persistLayersOpen() { + const appStore = useAppStore(); + const { layersOpen } = storeToRefs(appStore); + watch( + layersOpen, + (value, oldValue) => { + if (oldValue !== value) { + storageHelper.setValue(SP_KEY_LAYERS_OPEN, value); + } + }, + { immediate: true } + ); + } + restoreLayersOpen() { + const layersOpen = storageHelper.getValue(SP_KEY_LAYERS_OPEN) !== "false"; + const { setLayersOpen } = useAppStore(); + setLayersOpen(layersOpen); + } + } + const statePersistorLayersOpenService = new StatePersistorLayersOpenService(); + class StatePersistorMyMapService { + bootstrap() { + this.restore(); + let stop; + stop = watchEffect(() => { + this.persist(); + stop && stop(); + }); + } + persist() { + } + restore() { + const mapId = storageHelper.getValue(SP_KEY_MAPID); + useAppStore().setMapId(mapId); + } + } + const statePersistorMyMapService = new StatePersistorMyMapService(); function _typeof$2(obj) { "@babel/helpers - typeof"; return _typeof$2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) { @@ -44102,9 +42613,9 @@ uniform ${i3} ${o3} u_${a3}; } return iterator; } - function Headers2(headers) { + function Headers(headers) { this.map = {}; - if (headers instanceof Headers2) { + if (headers instanceof Headers) { headers.forEach(function(value, name) { this.append(name, value); }, this); @@ -44118,47 +42629,47 @@ uniform ${i3} ${o3} u_${a3}; }, this); } } - Headers2.prototype.append = function(name, value) { + Headers.prototype.append = function(name, value) { name = normalizeName(name); value = normalizeValue(value); var oldValue = this.map[name]; this.map[name] = oldValue ? oldValue + ", " + value : value; }; - Headers2.prototype["delete"] = function(name) { + Headers.prototype["delete"] = function(name) { delete this.map[normalizeName(name)]; }; - Headers2.prototype.get = function(name) { + Headers.prototype.get = function(name) { name = normalizeName(name); return this.has(name) ? this.map[name] : null; }; - Headers2.prototype.has = function(name) { + Headers.prototype.has = function(name) { return this.map.hasOwnProperty(normalizeName(name)); }; - Headers2.prototype.set = function(name, value) { + Headers.prototype.set = function(name, value) { this.map[normalizeName(name)] = normalizeValue(value); }; - Headers2.prototype.forEach = function(callback, thisArg) { + Headers.prototype.forEach = function(callback, thisArg) { for (var name in this.map) { if (this.map.hasOwnProperty(name)) { callback.call(thisArg, this.map[name], name, this); } } }; - Headers2.prototype.keys = function() { + Headers.prototype.keys = function() { var items = []; this.forEach(function(value, name) { items.push(name); }); return iteratorFor(items); }; - Headers2.prototype.values = function() { + Headers.prototype.values = function() { var items = []; this.forEach(function(value) { items.push(value); }); return iteratorFor(items); }; - Headers2.prototype.entries = function() { + Headers.prototype.entries = function() { var items = []; this.forEach(function(value, name) { items.push([name, value]); @@ -44166,7 +42677,7 @@ uniform ${i3} ${o3} u_${a3}; return iteratorFor(items); }; if (support.iterable) { - Headers2.prototype[Symbol.iterator] = Headers2.prototype.entries; + Headers.prototype[Symbol.iterator] = Headers.prototype.entries; } function consumed(body) { if (body.bodyUsed) { @@ -44299,17 +42810,17 @@ uniform ${i3} ${o3} u_${a3}; var upcased = method.toUpperCase(); return methods.indexOf(upcased) > -1 ? upcased : method; } - function Request2(input, options) { + function Request(input, options) { options = options || {}; var body = options.body; - if (input instanceof Request2) { + if (input instanceof Request) { if (input.bodyUsed) { throw new TypeError("Already read"); } this.url = input.url; this.credentials = input.credentials; if (!options.headers) { - this.headers = new Headers2(input.headers); + this.headers = new Headers(input.headers); } this.method = input.method; this.mode = input.mode; @@ -44323,7 +42834,7 @@ uniform ${i3} ${o3} u_${a3}; } this.credentials = options.credentials || this.credentials || "same-origin"; if (options.headers || !this.headers) { - this.headers = new Headers2(options.headers); + this.headers = new Headers(options.headers); } this.method = normalizeMethod(options.method || this.method || "GET"); this.mode = options.mode || this.mode || null; @@ -44334,8 +42845,8 @@ uniform ${i3} ${o3} u_${a3}; } this._initBody(body); } - Request2.prototype.clone = function() { - return new Request2(this, { body: this._bodyInit }); + Request.prototype.clone = function() { + return new Request(this, { body: this._bodyInit }); }; function decode2(body) { var form = new FormData(); @@ -44350,7 +42861,7 @@ uniform ${i3} ${o3} u_${a3}; return form; } function parseHeaders(rawHeaders) { - var headers = new Headers2(); + var headers = new Headers(); var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, " "); preProcessedHeaders.split(/\r?\n/).forEach(function(line) { var parts = line.split(":"); @@ -44362,7 +42873,7 @@ uniform ${i3} ${o3} u_${a3}; }); return headers; } - Body.call(Request2.prototype); + Body.call(Request.prototype); function Response2(bodyInit, options) { if (!options) { options = {}; @@ -44371,7 +42882,7 @@ uniform ${i3} ${o3} u_${a3}; this.status = options.status === void 0 ? 200 : options.status; this.ok = this.status >= 200 && this.status < 300; this.statusText = "statusText" in options ? options.statusText : "OK"; - this.headers = new Headers2(options.headers); + this.headers = new Headers(options.headers); this.url = options.url || ""; this._initBody(bodyInit); } @@ -44380,7 +42891,7 @@ uniform ${i3} ${o3} u_${a3}; return new Response2(this._bodyInit, { status: this.status, statusText: this.statusText, - headers: new Headers2(this.headers), + headers: new Headers(this.headers), url: this.url }); }; @@ -44411,7 +42922,7 @@ uniform ${i3} ${o3} u_${a3}; } function fetch2(input, init2) { return new Promise(function(resolve2, reject) { - var request2 = new Request2(input, init2); + var request2 = new Request(input, init2); if (request2.signal && request2.signal.aborted) { return reject(new exports4.DOMException("Aborted", "AbortError")); } @@ -44464,12 +42975,12 @@ uniform ${i3} ${o3} u_${a3}; fetch2.polyfill = true; if (!self2.fetch) { self2.fetch = fetch2; - self2.Headers = Headers2; - self2.Request = Request2; + self2.Headers = Headers; + self2.Request = Request; self2.Response = Response2; } - exports4.Headers = Headers2; - exports4.Request = Request2; + exports4.Headers = Headers; + exports4.Request = Request; exports4.Response = Response2; exports4.fetch = fetch2; Object.defineProperty(exports4, "__esModule", { value: true }); @@ -44903,8 +43414,8 @@ uniform ${i3} ${o3} u_${a3}; const _sfc_main$6 = /* @__PURE__ */ defineComponent({ __name: "simple-style-item", props: { - styleName: null, - colors: null + styleName: { type: String, required: true }, + colors: { type: Array, required: true } }, setup(__props) { const props = __props; @@ -44919,6 +43430,7 @@ uniform ${i3} ${o3} u_${a3}; }; } }); + const SimpleStyleItem = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/style-selector/simple-style-item.vue"]]); const _hoisted_1$5 = { class: "text-white border-2 p-[10px] m-[10px]" }; const _hoisted_2$5 = { class: "text-center mb-3" }; const _hoisted_3$4 = ["title"]; @@ -44947,6 +43459,7 @@ uniform ${i3} ${o3} u_${a3}; } return (_ctx, _cache) => { return openBlock(), createElementBlock("div", _hoisted_1$5, [ + createCommentVNode(" TODO: create clean container for simple and advanced style editors "), createBaseVNode("h5", _hoisted_2$5, toDisplayString(unref(t)("Select a style", { ns: "client" })), 1), (openBlock(true), createElementBlock(Fragment, null, renderList(simpleStyles.value, (item) => { return openBlock(), createElementBlock("div", { @@ -44963,7 +43476,7 @@ uniform ${i3} ${o3} u_${a3}; class: "w-full" }, [ createBaseVNode("span", _hoisted_6$2, [ - createVNode(_sfc_main$6, { + createVNode(SimpleStyleItem, { colors: item.colors, "style-name": item.unlocalized_label }, null, 8, ["colors", "style-name"]) @@ -44975,6 +43488,7 @@ uniform ${i3} ${o3} u_${a3}; }; } }); + const SimpleStyleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/style-selector/simple-style-selector.vue"]]); function getDefaultMediumStyling(bgLayer) { const layerDef = getLayerDef(bgLayer); if (!layerDef || !layerDef.medium_style_class) @@ -44995,8 +43509,8 @@ uniform ${i3} ${o3} u_${a3}; const _sfc_main$4 = /* @__PURE__ */ defineComponent({ __name: "medium-style-item", props: { - style: null, - colorEditable: { type: Boolean } + style: { type: null, required: true }, + colorEditable: { type: Boolean, required: true } }, emits: ["changeStyle"], setup(__props, { emit: emit2 }) { @@ -45031,7 +43545,7 @@ uniform ${i3} ${o3} u_${a3}; class: "w-11 h-5 py-[1px] px-[2px]", value: props.style.color, onInput: updateColor - }, null, 40, _hoisted_4$3)) : createCommentVNode("", true) + }, null, 40, _hoisted_4$3)) : createCommentVNode("v-if", true) ]), createBaseVNode("input", { type: "checkbox", @@ -45046,12 +43560,13 @@ uniform ${i3} ${o3} u_${a3}; }; } }); + const MediumStyleItem = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/style-selector/medium-style-item.vue"]]); const _hoisted_1$3 = { class: "text-white border-2 p-[10px] m-[10px]" }; const _hoisted_2$3 = { class: "text-center mb-3" }; const _sfc_main$3 = /* @__PURE__ */ defineComponent({ __name: "medium-style-selector", props: { - layer: null + layer: { type: null, required: true } }, setup(__props) { const props = __props; @@ -45075,7 +43590,7 @@ uniform ${i3} ${o3} u_${a3}; return openBlock(), createElementBlock("div", _hoisted_1$3, [ createBaseVNode("h5", _hoisted_2$3, toDisplayString(unref(isColorVisible) ? unref(t)("Select a colour for every theme") : unref(t)("Activate categories")), 1), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(styles), (item, i) => { - return openBlock(), createBlock(_sfc_main$4, { + return openBlock(), createBlock(MediumStyleItem, { key: item.label, style: normalizeStyle(item), onChangeStyle: ($event) => changeStyle(i, $event), @@ -45086,6 +43601,7 @@ uniform ${i3} ${o3} u_${a3}; }; } }); + const MediumStyleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/style-selector/medium-style-selector.vue"]]); var FileSaver_min = { exports: {} }; (function(module2, exports3) { (function(a, b) { @@ -45243,6 +43759,7 @@ uniform ${i3} ${o3} u_${a3}; }; } }); + const ExpertStyleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/style-selector/expert-style-selector.vue"]]); const _hoisted_1$1 = { key: 0 }; const _hoisted_2$1 = { class: "h-20 shrink-0 flex justify-between lux-panel-title" }; const _hoisted_3$1 = { key: 0 }; @@ -45281,67 +43798,39 @@ uniform ${i3} ${o3} u_${a3}; createBaseVNode("button", { onClick: _cache[1] || (_cache[1] = () => isRef(isSimpleStyleOpen) ? isSimpleStyleOpen.value = !unref(isSimpleStyleOpen) : isSimpleStyleOpen = !unref(isSimpleStyleOpen)) }, toDisplayString(unref(t)("Choose a predefined style")), 1), - createVNode(_sfc_main$5, { + createVNode(SimpleStyleSelector, { class: normalizeClass(unref(isSimpleStyleOpen) ? "" : "hidden") }, null, 8, ["class"]) - ])) : createCommentVNode("", true), + ])) : createCommentVNode("v-if", true), unref(styleCapabilities).hasAdvancedStyle ? (openBlock(), createElementBlock("div", _hoisted_4$1, [ createBaseVNode("button", { onClick: _cache[2] || (_cache[2] = () => isRef(isMediumStyleOpen) ? isMediumStyleOpen.value = !unref(isMediumStyleOpen) : isMediumStyleOpen = !unref(isMediumStyleOpen)) }, toDisplayString(unref(t)("Change main colours")), 1), - unref(bgLayer) ? (openBlock(), createBlock(_sfc_main$3, { + unref(bgLayer) ? (openBlock(), createBlock(MediumStyleSelector, { key: 0, class: normalizeClass(unref(isMediumStyleOpen) ? "" : "hidden"), layer: unref(bgLayer) - }, null, 8, ["class", "layer"])) : createCommentVNode("", true) - ])) : createCommentVNode("", true), + }, null, 8, ["class", "layer"])) : createCommentVNode("v-if", true) + ])) : createCommentVNode("v-if", true), unref(styleCapabilities).hasExpertStyle ? (openBlock(), createElementBlock("div", _hoisted_5$1, [ createBaseVNode("button", { onClick: _cache[3] || (_cache[3] = () => isRef(isAdvancedStyleOpen) ? isAdvancedStyleOpen.value = !unref(isAdvancedStyleOpen) : isAdvancedStyleOpen = !unref(isAdvancedStyleOpen)) }, toDisplayString(unref(t)("Advanced settings")), 1), - unref(bgLayer) ? (openBlock(), createBlock(_sfc_main$2, { + unref(bgLayer) ? (openBlock(), createBlock(ExpertStyleSelector, { key: 0, class: normalizeClass(unref(isAdvancedStyleOpen) ? "" : "hidden"), layer: unref(bgLayer) - }, null, 8, ["class", "layer"])) : createCommentVNode("", true) - ])) : createCommentVNode("", true), + }, null, 8, ["class", "layer"])) : createCommentVNode("v-if", true) + ])) : createCommentVNode("v-if", true), createBaseVNode("button", { onClick: resetStyle, class: "lux-btn" }, toDisplayString(unref(t)("Reset style", { ns: "client" })), 1) - ])) : createCommentVNode("", true); + ])) : createCommentVNode("v-if", true); }; } }); - class StatePersistorLayersOpenService { - bootstrapLayersOpen() { - this.restoreLayersOpen(); - let stop; - stop = watchEffect(() => { - this.persistLayersOpen(); - stop && stop(); - }); - } - persistLayersOpen() { - const appStore = useAppStore(); - const { layersOpen } = storeToRefs(appStore); - watch( - layersOpen, - (value, oldValue) => { - if (oldValue !== value) { - storageHelper.setValue(SP_KEY_LAYERS_OPEN, value); - } - }, - { immediate: true } - ); - } - restoreLayersOpen() { - const layersOpen = storageHelper.getValue(SP_KEY_LAYERS_OPEN) !== "false"; - const { setLayersOpen } = useAppStore(); - setLayersOpen(layersOpen); - } - } - const statePersistorLayersOpenService = new StatePersistorLayersOpenService(); + const StyleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/components/style-selector/style-selector.vue"]]); const _hoisted_1 = { class: "h-screen flex flex-col overflow-hidden" }; const _hoisted_2 = { class: "flex grow" }; const _hoisted_3 = { @@ -45357,10 +43846,12 @@ uniform ${i3} ${o3} u_${a3}; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "App", setup(__props) { + statePersistorMyMapService.bootstrap(); statePersistorLayersService.bootstrap(); statePersistorThemeService.bootstrap(); statePersistorLayersOpenService.bootstrapLayersOpen(); statePersistorStyleService.bootstrapStyle(); + statePersistorBgLayerService.bootstrap(); const { layersOpen, styleEditorOpen } = storeToRefs(useAppStore()); watch( layersOpen, @@ -45370,40 +43861,55 @@ uniform ${i3} ${o3} u_${a3}; ); onMounted(() => window.addEventListener("resize", resizeMap)); onUnmounted(() => window.removeEventListener("resize", resizeMap)); + function traverseLayer(layer, ancestors, visitor) { + const descend = visitor(layer, ancestors); + if (descend && layer instanceof olLayerGroup__default.default) { + layer.getLayers().forEach((childLayer) => { + traverseLayer(childLayer, [...ancestors, layer], visitor); + }); + } + } function resizeMap() { const map2 = useMap().getOlMap(); map2.updateSize(); - map2.getAllLayers().forEach((layer) => { - if (layer instanceof MapLibreLayer) { + traverseLayer(map2.getLayerGroup(), [], (layer) => { + if (layer instanceof MapBox) { layer.maplibreMap.resize(); } + return true; }); } return (_ctx, _cache) => { return openBlock(), createElementBlock("div", _hoisted_1, [ - createVNode(_sfc_main$l), + createVNode(HeaderBar), createBaseVNode("main", _hoisted_2, [ + createCommentVNode(" Layer panel "), unref(layersOpen) ? (openBlock(), createElementBlock("div", _hoisted_3, [ - createVNode(_sfc_main$9) - ])) : createCommentVNode("", true), + createVNode(LayerPanel) + ])) : createCommentVNode("v-if", true), + createCommentVNode(" Style editor "), unref(styleEditorOpen) ? (openBlock(), createElementBlock("div", _hoisted_4, [ - createVNode(_sfc_main$1) - ])) : createCommentVNode("", true), + createVNode(StyleSelector) + ])) : createCommentVNode("v-if", true), + createCommentVNode(" Map container and slider comparator "), createBaseVNode("div", _hoisted_5, [ - createVNode(_sfc_main$u), - createVNode(_sfc_main$7), - createVNode(_sfc_main$p), - createVNode(_sfc_main$n) + createVNode(MapContainer), + createVNode(SliderComparator), + createVNode(RemoteLayers), + createVNode(LayerMetadata) ]), + createCommentVNode(" Background selector "), createBaseVNode("div", _hoisted_6, [ - createVNode(_sfc_main$s) + createVNode(BackgroundSelector) ]) ]), - createVNode(_sfc_main$i, { class: "fixed bottom-5 sm:static z-20" }) + createVNode(FooterBar, { class: "fixed bottom-5 sm:static z-20" }), + createVNode(AlertNotifications) ]); }; } }); + const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/mkirmse/devel/gmf/luxembourg-geoportail_reb/src/App.vue"]]); initProjections(); instance.use(Backend); instance.init({ @@ -45417,7 +43923,7 @@ uniform ${i3} ${o3} u_${a3}; loadPath: `/static-ngeo/web-components/assets/locales/{{ns}}.{{lng}}.json` } }); - const app = createApp(_sfc_main); + const app = createApp(App); app.use(createPinia()); app.use(install, { i18next: instance }); app.use(y); @@ -45434,17 +43940,19 @@ uniform ${i3} ${o3} u_${a3}; { shadowRoot: false } ); }; - exports2.App = _sfc_main; - exports2.BackgroundSelector = _sfc_main$s; - exports2.DropdownList = _sfc_main$A; - exports2.FooterBar = _sfc_main$i; - exports2.HeaderBar = _sfc_main$l; + exports2.AlertNotifications = AlertNotifications; + exports2.App = App; + exports2.BackgroundSelector = BackgroundSelector; + exports2.DropdownList = DropdownList; + exports2.FooterBar = FooterBar; + exports2.HeaderBar = HeaderBar; exports2.I18NextVue = install; - exports2.LayerMetadata = _sfc_main$n; - exports2.LayerPanel = _sfc_main$9; - exports2.MapContainer = _sfc_main$u; - exports2.RemoteLayers = _sfc_main$p; - exports2.SliderComparator = _sfc_main$7; + exports2.LayerMetadata = LayerMetadata; + exports2.LayerPanel = LayerPanel; + exports2.MapContainer = MapContainer; + exports2.MapLibreLayer = MapBox; + exports2.RemoteLayers = RemoteLayers; + exports2.SliderComparator = SliderComparator; exports2.VueDOMPurifyHTML = y; exports2.app = app; exports2.backend = Backend; @@ -45452,13 +43960,18 @@ uniform ${i3} ${o3} u_${a3}; exports2.createPinia = createPinia; exports2.defineCustomElement = defineCustomElement; exports2.i18next = instance; + exports2.statePersistorBgLayerService = statePersistorBgLayerService; + exports2.statePersistorLayersOpenService = statePersistorLayersOpenService; exports2.statePersistorLayersService = statePersistorLayersService; + exports2.statePersistorMyMapService = statePersistorMyMapService; + exports2.statePersistorStyleService = statePersistorStyleService; exports2.statePersistorThemeService = statePersistorThemeService; exports2.storeToRefs = storeToRefs; exports2.themeSelectorService = themeSelectorService; exports2.useAppStore = useAppStore; exports2.useMap = useMap; exports2.useMapStore = useMapStore; + exports2.useOpenLayers = useOpenLayers; exports2.useThemeStore = useThemeStore; exports2.watch = watch; Object.defineProperties(exports2, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); diff --git a/bundle/style.css b/bundle/style.css index 2ef25c61..aff88beb 100644 --- a/bundle/style.css +++ b/bundle/style.css @@ -1 +1,28477 @@ -*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:DINNextLTPro-Condensed,Arial,sans-serif;font-feature-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}body{color:var(--color-default)}input[type=range]::-webkit-slider-thumb{height:1rem;width:1rem;border-radius:9999px;border-color:var(--color-tertiary);background-color:var(--color-tertiary);-webkit-appearance:none}input[type=range]::-moz-range-thumb{height:.75rem;width:.75rem;border-radius:9999px;border-color:var(--color-tertiary);background-color:var(--color-tertiary)}input[type=range]::-ms-thumb{height:1rem;width:1rem;border-radius:9999px;border-color:var(--color-tertiary);background-color:var(--color-tertiary)}:root{--alert-info-primary: #d9edf7;--alert-info-secondary: #bce8f1;--alert-info-tertiary: #31708f;--alert-danger-primary: #f2dede;--alert-danger-secondary: #ebccd1;--alert-danger-tertiary: #a94442;--alert-warning-primary: #fcf850;--alert-warning-secondary: #faebcc;--alert-warning-tertiary: #8a6d3b;--color-default: #333;--color-primary: #2980b9;--color-secondary: #97bbd3;--color-tertiary: #1f5d87;--color-navbar-default: #777;--color-btn-ol: #8394a0;--main-primary: #2980b9;--main-secondary: #97bbd3;--main-tertiary: #1f5d87;--tourisme-primary: #e84c3d;--tourisme-secondary: #e88c83;--tourisme-tertiary: #a50f15;--emwelt-primary: #558b2f;--emwelt-secondary: #85bb5c;--emwelt-tertiary: #255d00;--eau-primary: #03a2ac;--eau-secondary: #45cdd6;--eau-tertiary: #078f98;--pag-primary: #2b8cbe;--pag-secondary: #74a9cf;--pag-tertiary: #045a8d;--agriculture-primary: #f39c11;--agriculture-secondary: #ffc363;--agriculture-tertiary: #9c6101;--lenoz-primary: #f4b72b;--lenoz-secondary: #f3d89b;--lenoz-tertiary: #b3851d;--preizerdaul-primary: #2980b9;--preizerdaul-secondary: #97bbd3;--preizerdaul-tertiary: #1f5d87;--wellenstein-primary: #7ac573;--wellenstein-secondary: #b0e4ab;--wellenstein-tertiary: #42803c;--lintgen-primary: #f3c531;--lintgen-secondary: #f3d89b;--lintgen-tertiary: #b3851d;--remich-primary: #8ca229;--remich-secondary: #bacd63;--remich-tertiary: #5c6b1b;--at-primary: #f4511e;--at-secondary: #ff844c;--at-tertiary: #b91400;--cadastre_hertzien-primary: #7ac573;--cadastre_hertzien-secondary: #b0e4ab;--cadastre_hertzien-tertiary: #42803c;--urban_farming-primary: #028349;--urban_farming-secondary: #4ab475;--urban_farming-tertiary: #005520;--energie-primary: #558b2f;--energie-secondary: #85bb5c;--energie-tertiary: #255d00;--atlas_demographique-primary: #f4b72b;--atlas_demographique-secondary: #f3d89b;--atlas_demographique-tertiary: #b3851d;--logement-primary: #b0271a;--logement-secondary: #e95b43;--logement-tertiary: #790000;--np_our-primary: #76b854;--np_our-secondary: #a8ea82;--np_our-tertiary: #458725;--geosciences-primary: #895e03;--geosciences-secondary: #d7ba87;--geosciences-tertiary: #5e4024;--ahc-primary: #ff5722;--ahc-secondary: #ff8a50;--ahc-tertiary: #c41c00;--municipalities-primary: #9e9ac8;--municipalities-secondary: #cbc9e2;--municipalities-tertiary: #756bb1;--Amenagement_du_territoire-primary: #f4511e;--Amenagement_du_territoire-secondary: #ff844c;--Amenagement_du_territoire-tertiary: #b91400;--Environnement_naturel-primary: #879d31;--Environnement_naturel-secondary: #bacd81;--Environnement_naturel-tertiary: #627529;--Environnement_humain-primary: #558b2f;--Environnement_humain-secondary: #85bb5c;--Environnement_humain-tertiary: #255d00;--Occupation_du_sol-primary: #8d6e63;--Occupation_du_sol-secondary: #bd9b8f;--Occupation_du_sol-tertiary: #5e4238;--intranet-at-primary: #9e9ac8;--intranet-at-secondary: #cbc9e2;--intranet-at-tertiary: #756bb1;--prof-primary: #006d2c;--prof-secondary: #99d8c9;--prof-tertiary: #238b45;--go-primary: #555;--go-secondary: #bbb;--go-tertiary: #756bb1;--sig_secours-primary: #2979ff;--sig_secours-secondary: #75a7ff;--sig_secours-tertiary: #004ecb;--button-bg-color: #ccc}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%;margin-right:auto;margin-left:auto}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.lux-panel-title{padding-left:.75rem;padding-right:.75rem;padding-top:.375rem;font-size:40px;line-height:40px;text-transform:uppercase;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.lux-bg-sel{height:40px;width:40px;cursor:pointer;border-radius:.125rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:.125rem}@media (min-width: 768px){.lux-bg-sel{height:58px;width:90px}}.lux-bg-sel-icon{border-width:.5px;--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));background-size:40px 40px}@media (min-width: 768px){.lux-bg-sel-icon{background-size:90px 58px}}.lux-bg-sel-icon.lux-bg-sel-blank{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.lux-btn{border-width:1px;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:6px 12px;line-height:1.375;color:var(--color-primary)}.lux-btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.lux-btn:hover{background-color:var(--color-primary);--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.lux-btn:focus{--tw-border-opacity: 1;border-color:rgb(140 140 140 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(230 230 230 / var(--tw-bg-opacity));color:var(--color-primary)}.lux-btn{border:1px solid var(--button-bg-color)}.lux-close-cross:after{--tw-content: "\e02c";content:var(--tw-content)}.lux-input{border-width:1px;padding:6px 12px;line-height:1.375;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.lux-input::placeholder{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.lux-input{background-color:var(--color-secondary)}.lux-label{margin-bottom:5px;display:inline-block;font-weight:700}.lux-dropdown{display:inline-block}.lux-dropdown-inline .lux-dropdown-list:not(.hidden){display:flex}.lux-dropdown-list{position:absolute;left:0px;z-index:10;margin-top:2px;width:auto;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding-top:5px;padding-bottom:5px;border:1px solid rgba(0,0,0,.15);box-shadow:0 6px 12px #0000002e}.lux-dropdown-list-item{height:100%;width:100%;cursor:pointer;padding-top:3px;padding-bottom:3px;padding-left:1.25rem;padding-right:1.25rem;text-align:left}.lux-dropdown-list-item:hover{--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity))}.lux-caret{display:inline-block;height:0px;width:0px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \ ;border-right:4px solid transparent;border-left:4px solid transparent}.lux-collapse{position:relative;max-height:0px;overflow:hidden;transition-property:max-height;transition-duration:.15s;transition-duration:.7s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.lux-collapse.expanded{max-height:3000px}.lux-layer-manager-item{margin-bottom:1px;display:flex;user-select:none;flex-wrap:wrap;align-items:center;column-gap:.5rem;background-color:var(--color-secondary);padding:.25rem .625rem;text-transform:capitalize;color:var(--color-tertiary)}.lux-layer-manager-item-content{display:flex;width:100%;user-select:text;align-items:center;overflow:hidden;transition-property:height;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:.25s;transition-timing-function:linear}.lux-sortable-ghost:before{position:absolute;z-index:10;height:100%;width:100%;background-color:var(--color-primary);--tw-content: "";content:var(--tw-content)}.lux-sortable-drag{--tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / .07)) drop-shadow(0 2px 2px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lux-navbar-dropdown .lux-dropdown-btn{outline:none;height:100%;width:4rem;border-style:none;color:var(--color-navbar-default)}.lux-navbar-dropdown .lux-dropdown-btn:after{font-family:geoportail-icons-wc;font-size:1.875rem;line-height:2.25rem;--tw-content: "\e012";content:var(--tw-content)}.lux-navbar-dropdown .lux-dropdown-btn:hover,.lux-navbar-dropdown .lux-dropdown-btn.expanded{background-color:var(--color-primary);--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.lux-navbar-dropdown .lux-dropdown-btn.expanded:after{--tw-content: "\e02c";content:var(--tw-content)}.lux-navbar-dropdown .lux-dropdown-btn>span{display:none}.lux-navbar-dropdown .lux-dropdown-wrapper{position:absolute;right:0px;width:100%}.lux-navbar-dropdown .lux-dropdown-list{position:relative;left:auto;float:right;margin:0;gap:1px;border-style:none;background-color:transparent;padding-top:0;padding-bottom:0;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.lux-navbar-dropdown .lux-dropdown-list li{height:4rem;width:4rem;background-color:var(--color-primary)}.lux-navbar-dropdown .lux-dropdown-list li:hover,.lux-navbar-dropdown .lux-dropdown-list li.selected{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));color:var(--color-primary)}.lux-navbar-dropdown .lux-dropdown-list-item{text-align:center;text-transform:uppercase}.lux-remote-services-dropdown .lux-dropdown-wrapper{position:fixed;width:14rem}.lux-slider-line{position:absolute;left:50%;top:0px;margin-left:-2px;display:block;height:100%;width:4px;cursor:ew-resize;background-color:var(--color-primary)}.lux-slider-arrows{position:absolute;top:50%;right:2px;display:flex;height:1.75rem;width:1.75rem;cursor:ew-resize;align-items:center;justify-content:center;background-color:var(--color-primary)}.lux-slider-arrows>*{height:0px;width:0px;border-top-width:8px;border-bottom-width:8px;--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity));border-top-color:transparent;border-bottom-color:transparent}.lux-slider-arrows>*:first-child{margin-right:2px;border-right-width:8px}.lux-slider-arrows>*:last-child{margin-left:2px;border-left-width:8px}.lux-slider-layer-label{position:absolute;bottom:3.5rem;right:1.75rem;width:8rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:.5rem;font-weight:700}.lux-slider-layer-label:hover{cursor:default}.lux-alert{margin-bottom:1.25rem;border-width:1px;padding:1rem}.lux-alert-info{background-color:var(--alert-info-primary);border-color:var(--alert-info-secondary);color:var(--alert-info-tertiary)}.lux-alert-danger{background-color:var(--alert-danger-primary);border-color:var(--alert-danger-secondary);color:var(--alert-danger-tertiary)}.lux-alert-warning{background-color:var(--alert-warning-primary);border-color:var(--alert-warning-secondary);color:var(--alert-warning-tertiary)}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0px;right:0px;bottom:0px;left:0px}.inset-x-0{left:0px;right:0px}.inset-x-2{left:.5rem;right:.5rem}.inset-x-2\.5{left:.625rem;right:.625rem}.inset-y-8{top:2rem;bottom:2rem}.bottom-0{bottom:0px}.bottom-1{bottom:.25rem}.bottom-5{bottom:1.25rem}.left-1\/2{left:50%}.left-\[20px\]{left:20px}.right-1{right:.25rem}.right-2{right:.5rem}.top-1{top:.25rem}.top-10{top:2.5rem}.top-14{top:3.5rem}.top-16{top:4rem}.top-5{top:1.25rem}.top-\[70px\]{top:70px}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[1050\]{z-index:1050}.z-\[1100\]{z-index:1100}.z-\[5\]{z-index:5}.col-auto{grid-column:auto}.col-span-1{grid-column:span 1 / span 1}.col-span-10{grid-column:span 10 / span 10}.col-span-11{grid-column:span 11 / span 11}.col-span-12{grid-column:span 12 / span 12}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.col-span-4{grid-column:span 4 / span 4}.col-span-5{grid-column:span 5 / span 5}.col-span-6{grid-column:span 6 / span 6}.col-span-7{grid-column:span 7 / span 7}.col-span-8{grid-column:span 8 / span 8}.col-span-9{grid-column:span 9 / span 9}.col-span-full{grid-column:1 / -1}.col-start-1{grid-column-start:1}.col-start-10{grid-column-start:10}.col-start-11{grid-column-start:11}.col-start-12{grid-column-start:12}.col-start-13{grid-column-start:13}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.col-start-4{grid-column-start:4}.col-start-5{grid-column-start:5}.col-start-6{grid-column-start:6}.col-start-7{grid-column-start:7}.col-start-8{grid-column-start:8}.col-start-9{grid-column-start:9}.col-start-auto{grid-column-start:auto}.col-end-1{grid-column-end:1}.col-end-10{grid-column-end:10}.col-end-11{grid-column-end:11}.col-end-12{grid-column-end:12}.col-end-13{grid-column-end:13}.col-end-2{grid-column-end:2}.col-end-3{grid-column-end:3}.col-end-4{grid-column-end:4}.col-end-5{grid-column-end:5}.col-end-6{grid-column-end:6}.col-end-7{grid-column-end:7}.col-end-8{grid-column-end:8}.col-end-9{grid-column-end:9}.col-end-auto{grid-column-end:auto}.m-2{margin:.5rem}.m-2\.5{margin:.625rem}.m-\[10px\]{margin:10px}.m-px{margin:1px}.mx-\[10px\]{margin-left:10px;margin-right:10px}.my-0{margin-top:0;margin-bottom:0}.my-2{margin-top:.5rem;margin-bottom:.5rem}.-mb-3{margin-bottom:-.75rem}.-mt-1{margin-top:-.25rem}.-mt-1\.5{margin-top:-.375rem}.mb-3{margin-bottom:.75rem}.mb-\[11px\]{margin-bottom:11px}.mb-\[15px\]{margin-bottom:15px}.mb-px{margin-bottom:1px}.ml-1{margin-left:.25rem}.ml-\[-250px\]{margin-left:-250px}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.box-content{box-sizing:content-box}.block{display:block}.flex{display:flex}.table-column{display:table-column}.table-column-group{display:table-column-group}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-\[100px\]{height:100px}.h-\[150px\]{height:150px}.h-\[42px\]{height:42px}.h-\[5px\]{height:5px}.h-full{height:100%}.h-screen{height:100vh}.max-h-96{max-height:24rem}.max-h-\[calc\(400px-36px\)\]{max-height:364px}.max-h-full{max-height:100%}.w-1\/2{width:50%}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-80{width:20rem}.w-\[300px\]{width:300px}.w-\[32px\]{width:32px}.w-\[466px\]{width:466px}.w-\[500px\]{width:500px}.w-\[70\%\]{width:70%}.w-\[700px\]{width:700px}.w-\[85px\]{width:85px}.w-full{width:100%}.flex-1{flex:1 1 0%}.flex-none{flex:none}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-y-60{--tw-translate-y: -15rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-all-scroll{cursor:all-scroll}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-pointer{cursor:pointer}.resize{resize:both}.-scroll-m-0{scroll-margin:-0px}.-scroll-m-0\.5{scroll-margin:-.125rem}.-scroll-m-1{scroll-margin:-.25rem}.-scroll-m-1\.5{scroll-margin:-.375rem}.-scroll-m-10{scroll-margin:-2.5rem}.-scroll-m-11{scroll-margin:-2.75rem}.-scroll-m-12{scroll-margin:-3rem}.-scroll-m-14{scroll-margin:-3.5rem}.-scroll-m-16{scroll-margin:-4rem}.-scroll-m-2{scroll-margin:-.5rem}.-scroll-m-2\.5{scroll-margin:-.625rem}.-scroll-m-20{scroll-margin:-5rem}.-scroll-m-24{scroll-margin:-6rem}.-scroll-m-28{scroll-margin:-7rem}.-scroll-m-3{scroll-margin:-.75rem}.-scroll-m-3\.5{scroll-margin:-.875rem}.-scroll-m-32{scroll-margin:-8rem}.-scroll-m-36{scroll-margin:-9rem}.-scroll-m-4{scroll-margin:-1rem}.-scroll-m-40{scroll-margin:-10rem}.-scroll-m-44{scroll-margin:-11rem}.-scroll-m-48{scroll-margin:-12rem}.-scroll-m-5{scroll-margin:-1.25rem}.-scroll-m-52{scroll-margin:-13rem}.-scroll-m-56{scroll-margin:-14rem}.-scroll-m-6{scroll-margin:-1.5rem}.-scroll-m-60{scroll-margin:-15rem}.-scroll-m-64{scroll-margin:-16rem}.-scroll-m-7{scroll-margin:-1.75rem}.-scroll-m-72{scroll-margin:-18rem}.-scroll-m-8{scroll-margin:-2rem}.-scroll-m-80{scroll-margin:-20rem}.-scroll-m-9{scroll-margin:-2.25rem}.-scroll-m-96{scroll-margin:-24rem}.-scroll-m-px{scroll-margin:-1px}.scroll-m-0{scroll-margin:0px}.scroll-m-0\.5{scroll-margin:.125rem}.scroll-m-1{scroll-margin:.25rem}.scroll-m-1\.5{scroll-margin:.375rem}.scroll-m-10{scroll-margin:2.5rem}.scroll-m-11{scroll-margin:2.75rem}.scroll-m-12{scroll-margin:3rem}.scroll-m-14{scroll-margin:3.5rem}.scroll-m-16{scroll-margin:4rem}.scroll-m-2{scroll-margin:.5rem}.scroll-m-2\.5{scroll-margin:.625rem}.scroll-m-20{scroll-margin:5rem}.scroll-m-24{scroll-margin:6rem}.scroll-m-28{scroll-margin:7rem}.scroll-m-3{scroll-margin:.75rem}.scroll-m-3\.5{scroll-margin:.875rem}.scroll-m-32{scroll-margin:8rem}.scroll-m-36{scroll-margin:9rem}.scroll-m-4{scroll-margin:1rem}.scroll-m-40{scroll-margin:10rem}.scroll-m-44{scroll-margin:11rem}.scroll-m-48{scroll-margin:12rem}.scroll-m-5{scroll-margin:1.25rem}.scroll-m-52{scroll-margin:13rem}.scroll-m-56{scroll-margin:14rem}.scroll-m-6{scroll-margin:1.5rem}.scroll-m-60{scroll-margin:15rem}.scroll-m-64{scroll-margin:16rem}.scroll-m-7{scroll-margin:1.75rem}.scroll-m-72{scroll-margin:18rem}.scroll-m-8{scroll-margin:2rem}.scroll-m-80{scroll-margin:20rem}.scroll-m-9{scroll-margin:2.25rem}.scroll-m-96{scroll-margin:24rem}.scroll-m-px{scroll-margin:1px}.-scroll-mx-0{scroll-margin-left:-0px;scroll-margin-right:-0px}.-scroll-mx-0\.5{scroll-margin-left:-.125rem;scroll-margin-right:-.125rem}.-scroll-mx-1{scroll-margin-left:-.25rem;scroll-margin-right:-.25rem}.-scroll-mx-1\.5{scroll-margin-left:-.375rem;scroll-margin-right:-.375rem}.-scroll-mx-10{scroll-margin-left:-2.5rem;scroll-margin-right:-2.5rem}.-scroll-mx-11{scroll-margin-left:-2.75rem;scroll-margin-right:-2.75rem}.-scroll-mx-12{scroll-margin-left:-3rem;scroll-margin-right:-3rem}.-scroll-mx-14{scroll-margin-left:-3.5rem;scroll-margin-right:-3.5rem}.-scroll-mx-16{scroll-margin-left:-4rem;scroll-margin-right:-4rem}.-scroll-mx-2{scroll-margin-left:-.5rem;scroll-margin-right:-.5rem}.-scroll-mx-2\.5{scroll-margin-left:-.625rem;scroll-margin-right:-.625rem}.-scroll-mx-20{scroll-margin-left:-5rem;scroll-margin-right:-5rem}.-scroll-mx-24{scroll-margin-left:-6rem;scroll-margin-right:-6rem}.-scroll-mx-28{scroll-margin-left:-7rem;scroll-margin-right:-7rem}.-scroll-mx-3{scroll-margin-left:-.75rem;scroll-margin-right:-.75rem}.-scroll-mx-3\.5{scroll-margin-left:-.875rem;scroll-margin-right:-.875rem}.-scroll-mx-32{scroll-margin-left:-8rem;scroll-margin-right:-8rem}.-scroll-mx-36{scroll-margin-left:-9rem;scroll-margin-right:-9rem}.-scroll-mx-4{scroll-margin-left:-1rem;scroll-margin-right:-1rem}.-scroll-mx-40{scroll-margin-left:-10rem;scroll-margin-right:-10rem}.-scroll-mx-44{scroll-margin-left:-11rem;scroll-margin-right:-11rem}.-scroll-mx-48{scroll-margin-left:-12rem;scroll-margin-right:-12rem}.-scroll-mx-5{scroll-margin-left:-1.25rem;scroll-margin-right:-1.25rem}.-scroll-mx-52{scroll-margin-left:-13rem;scroll-margin-right:-13rem}.-scroll-mx-56{scroll-margin-left:-14rem;scroll-margin-right:-14rem}.-scroll-mx-6{scroll-margin-left:-1.5rem;scroll-margin-right:-1.5rem}.-scroll-mx-60{scroll-margin-left:-15rem;scroll-margin-right:-15rem}.-scroll-mx-64{scroll-margin-left:-16rem;scroll-margin-right:-16rem}.-scroll-mx-7{scroll-margin-left:-1.75rem;scroll-margin-right:-1.75rem}.-scroll-mx-72{scroll-margin-left:-18rem;scroll-margin-right:-18rem}.-scroll-mx-8{scroll-margin-left:-2rem;scroll-margin-right:-2rem}.-scroll-mx-80{scroll-margin-left:-20rem;scroll-margin-right:-20rem}.-scroll-mx-9{scroll-margin-left:-2.25rem;scroll-margin-right:-2.25rem}.-scroll-mx-96{scroll-margin-left:-24rem;scroll-margin-right:-24rem}.-scroll-mx-px{scroll-margin-left:-1px;scroll-margin-right:-1px}.-scroll-my-0{scroll-margin-top:-0px;scroll-margin-bottom:-0px}.-scroll-my-0\.5{scroll-margin-top:-.125rem;scroll-margin-bottom:-.125rem}.-scroll-my-1{scroll-margin-top:-.25rem;scroll-margin-bottom:-.25rem}.-scroll-my-1\.5{scroll-margin-top:-.375rem;scroll-margin-bottom:-.375rem}.-scroll-my-10{scroll-margin-top:-2.5rem;scroll-margin-bottom:-2.5rem}.-scroll-my-11{scroll-margin-top:-2.75rem;scroll-margin-bottom:-2.75rem}.-scroll-my-12{scroll-margin-top:-3rem;scroll-margin-bottom:-3rem}.-scroll-my-14{scroll-margin-top:-3.5rem;scroll-margin-bottom:-3.5rem}.-scroll-my-16{scroll-margin-top:-4rem;scroll-margin-bottom:-4rem}.-scroll-my-2{scroll-margin-top:-.5rem;scroll-margin-bottom:-.5rem}.-scroll-my-2\.5{scroll-margin-top:-.625rem;scroll-margin-bottom:-.625rem}.-scroll-my-20{scroll-margin-top:-5rem;scroll-margin-bottom:-5rem}.-scroll-my-24{scroll-margin-top:-6rem;scroll-margin-bottom:-6rem}.-scroll-my-28{scroll-margin-top:-7rem;scroll-margin-bottom:-7rem}.-scroll-my-3{scroll-margin-top:-.75rem;scroll-margin-bottom:-.75rem}.-scroll-my-3\.5{scroll-margin-top:-.875rem;scroll-margin-bottom:-.875rem}.-scroll-my-32{scroll-margin-top:-8rem;scroll-margin-bottom:-8rem}.-scroll-my-36{scroll-margin-top:-9rem;scroll-margin-bottom:-9rem}.-scroll-my-4{scroll-margin-top:-1rem;scroll-margin-bottom:-1rem}.-scroll-my-40{scroll-margin-top:-10rem;scroll-margin-bottom:-10rem}.-scroll-my-44{scroll-margin-top:-11rem;scroll-margin-bottom:-11rem}.-scroll-my-48{scroll-margin-top:-12rem;scroll-margin-bottom:-12rem}.-scroll-my-5{scroll-margin-top:-1.25rem;scroll-margin-bottom:-1.25rem}.-scroll-my-52{scroll-margin-top:-13rem;scroll-margin-bottom:-13rem}.-scroll-my-56{scroll-margin-top:-14rem;scroll-margin-bottom:-14rem}.-scroll-my-6{scroll-margin-top:-1.5rem;scroll-margin-bottom:-1.5rem}.-scroll-my-60{scroll-margin-top:-15rem;scroll-margin-bottom:-15rem}.-scroll-my-64{scroll-margin-top:-16rem;scroll-margin-bottom:-16rem}.-scroll-my-7{scroll-margin-top:-1.75rem;scroll-margin-bottom:-1.75rem}.-scroll-my-72{scroll-margin-top:-18rem;scroll-margin-bottom:-18rem}.-scroll-my-8{scroll-margin-top:-2rem;scroll-margin-bottom:-2rem}.-scroll-my-80{scroll-margin-top:-20rem;scroll-margin-bottom:-20rem}.-scroll-my-9{scroll-margin-top:-2.25rem;scroll-margin-bottom:-2.25rem}.-scroll-my-96{scroll-margin-top:-24rem;scroll-margin-bottom:-24rem}.-scroll-my-px{scroll-margin-top:-1px;scroll-margin-bottom:-1px}.scroll-mx-0{scroll-margin-left:0px;scroll-margin-right:0px}.scroll-mx-0\.5{scroll-margin-left:.125rem;scroll-margin-right:.125rem}.scroll-mx-1{scroll-margin-left:.25rem;scroll-margin-right:.25rem}.scroll-mx-1\.5{scroll-margin-left:.375rem;scroll-margin-right:.375rem}.scroll-mx-10{scroll-margin-left:2.5rem;scroll-margin-right:2.5rem}.scroll-mx-11{scroll-margin-left:2.75rem;scroll-margin-right:2.75rem}.scroll-mx-12{scroll-margin-left:3rem;scroll-margin-right:3rem}.scroll-mx-14{scroll-margin-left:3.5rem;scroll-margin-right:3.5rem}.scroll-mx-16{scroll-margin-left:4rem;scroll-margin-right:4rem}.scroll-mx-2{scroll-margin-left:.5rem;scroll-margin-right:.5rem}.scroll-mx-2\.5{scroll-margin-left:.625rem;scroll-margin-right:.625rem}.scroll-mx-20{scroll-margin-left:5rem;scroll-margin-right:5rem}.scroll-mx-24{scroll-margin-left:6rem;scroll-margin-right:6rem}.scroll-mx-28{scroll-margin-left:7rem;scroll-margin-right:7rem}.scroll-mx-3{scroll-margin-left:.75rem;scroll-margin-right:.75rem}.scroll-mx-3\.5{scroll-margin-left:.875rem;scroll-margin-right:.875rem}.scroll-mx-32{scroll-margin-left:8rem;scroll-margin-right:8rem}.scroll-mx-36{scroll-margin-left:9rem;scroll-margin-right:9rem}.scroll-mx-4{scroll-margin-left:1rem;scroll-margin-right:1rem}.scroll-mx-40{scroll-margin-left:10rem;scroll-margin-right:10rem}.scroll-mx-44{scroll-margin-left:11rem;scroll-margin-right:11rem}.scroll-mx-48{scroll-margin-left:12rem;scroll-margin-right:12rem}.scroll-mx-5{scroll-margin-left:1.25rem;scroll-margin-right:1.25rem}.scroll-mx-52{scroll-margin-left:13rem;scroll-margin-right:13rem}.scroll-mx-56{scroll-margin-left:14rem;scroll-margin-right:14rem}.scroll-mx-6{scroll-margin-left:1.5rem;scroll-margin-right:1.5rem}.scroll-mx-60{scroll-margin-left:15rem;scroll-margin-right:15rem}.scroll-mx-64{scroll-margin-left:16rem;scroll-margin-right:16rem}.scroll-mx-7{scroll-margin-left:1.75rem;scroll-margin-right:1.75rem}.scroll-mx-72{scroll-margin-left:18rem;scroll-margin-right:18rem}.scroll-mx-8{scroll-margin-left:2rem;scroll-margin-right:2rem}.scroll-mx-80{scroll-margin-left:20rem;scroll-margin-right:20rem}.scroll-mx-9{scroll-margin-left:2.25rem;scroll-margin-right:2.25rem}.scroll-mx-96{scroll-margin-left:24rem;scroll-margin-right:24rem}.scroll-mx-px{scroll-margin-left:1px;scroll-margin-right:1px}.scroll-my-0{scroll-margin-top:0px;scroll-margin-bottom:0px}.scroll-my-0\.5{scroll-margin-top:.125rem;scroll-margin-bottom:.125rem}.scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.scroll-my-1\.5{scroll-margin-top:.375rem;scroll-margin-bottom:.375rem}.scroll-my-10{scroll-margin-top:2.5rem;scroll-margin-bottom:2.5rem}.scroll-my-11{scroll-margin-top:2.75rem;scroll-margin-bottom:2.75rem}.scroll-my-12{scroll-margin-top:3rem;scroll-margin-bottom:3rem}.scroll-my-14{scroll-margin-top:3.5rem;scroll-margin-bottom:3.5rem}.scroll-my-16{scroll-margin-top:4rem;scroll-margin-bottom:4rem}.scroll-my-2{scroll-margin-top:.5rem;scroll-margin-bottom:.5rem}.scroll-my-2\.5{scroll-margin-top:.625rem;scroll-margin-bottom:.625rem}.scroll-my-20{scroll-margin-top:5rem;scroll-margin-bottom:5rem}.scroll-my-24{scroll-margin-top:6rem;scroll-margin-bottom:6rem}.scroll-my-28{scroll-margin-top:7rem;scroll-margin-bottom:7rem}.scroll-my-3{scroll-margin-top:.75rem;scroll-margin-bottom:.75rem}.scroll-my-3\.5{scroll-margin-top:.875rem;scroll-margin-bottom:.875rem}.scroll-my-32{scroll-margin-top:8rem;scroll-margin-bottom:8rem}.scroll-my-36{scroll-margin-top:9rem;scroll-margin-bottom:9rem}.scroll-my-4{scroll-margin-top:1rem;scroll-margin-bottom:1rem}.scroll-my-40{scroll-margin-top:10rem;scroll-margin-bottom:10rem}.scroll-my-44{scroll-margin-top:11rem;scroll-margin-bottom:11rem}.scroll-my-48{scroll-margin-top:12rem;scroll-margin-bottom:12rem}.scroll-my-5{scroll-margin-top:1.25rem;scroll-margin-bottom:1.25rem}.scroll-my-52{scroll-margin-top:13rem;scroll-margin-bottom:13rem}.scroll-my-56{scroll-margin-top:14rem;scroll-margin-bottom:14rem}.scroll-my-6{scroll-margin-top:1.5rem;scroll-margin-bottom:1.5rem}.scroll-my-60{scroll-margin-top:15rem;scroll-margin-bottom:15rem}.scroll-my-64{scroll-margin-top:16rem;scroll-margin-bottom:16rem}.scroll-my-7{scroll-margin-top:1.75rem;scroll-margin-bottom:1.75rem}.scroll-my-72{scroll-margin-top:18rem;scroll-margin-bottom:18rem}.scroll-my-8{scroll-margin-top:2rem;scroll-margin-bottom:2rem}.scroll-my-80{scroll-margin-top:20rem;scroll-margin-bottom:20rem}.scroll-my-9{scroll-margin-top:2.25rem;scroll-margin-bottom:2.25rem}.scroll-my-96{scroll-margin-top:24rem;scroll-margin-bottom:24rem}.scroll-my-px{scroll-margin-top:1px;scroll-margin-bottom:1px}.-scroll-mb-0{scroll-margin-bottom:-0px}.-scroll-mb-0\.5{scroll-margin-bottom:-.125rem}.-scroll-mb-1{scroll-margin-bottom:-.25rem}.-scroll-mb-1\.5{scroll-margin-bottom:-.375rem}.-scroll-mb-10{scroll-margin-bottom:-2.5rem}.-scroll-mb-11{scroll-margin-bottom:-2.75rem}.-scroll-mb-12{scroll-margin-bottom:-3rem}.-scroll-mb-14{scroll-margin-bottom:-3.5rem}.-scroll-mb-16{scroll-margin-bottom:-4rem}.-scroll-mb-2{scroll-margin-bottom:-.5rem}.-scroll-mb-2\.5{scroll-margin-bottom:-.625rem}.-scroll-mb-20{scroll-margin-bottom:-5rem}.-scroll-mb-24{scroll-margin-bottom:-6rem}.-scroll-mb-28{scroll-margin-bottom:-7rem}.-scroll-mb-3{scroll-margin-bottom:-.75rem}.-scroll-mb-3\.5{scroll-margin-bottom:-.875rem}.-scroll-mb-32{scroll-margin-bottom:-8rem}.-scroll-mb-36{scroll-margin-bottom:-9rem}.-scroll-mb-4{scroll-margin-bottom:-1rem}.-scroll-mb-40{scroll-margin-bottom:-10rem}.-scroll-mb-44{scroll-margin-bottom:-11rem}.-scroll-mb-48{scroll-margin-bottom:-12rem}.-scroll-mb-5{scroll-margin-bottom:-1.25rem}.-scroll-mb-52{scroll-margin-bottom:-13rem}.-scroll-mb-56{scroll-margin-bottom:-14rem}.-scroll-mb-6{scroll-margin-bottom:-1.5rem}.-scroll-mb-60{scroll-margin-bottom:-15rem}.-scroll-mb-64{scroll-margin-bottom:-16rem}.-scroll-mb-7{scroll-margin-bottom:-1.75rem}.-scroll-mb-72{scroll-margin-bottom:-18rem}.-scroll-mb-8{scroll-margin-bottom:-2rem}.-scroll-mb-80{scroll-margin-bottom:-20rem}.-scroll-mb-9{scroll-margin-bottom:-2.25rem}.-scroll-mb-96{scroll-margin-bottom:-24rem}.-scroll-mb-px{scroll-margin-bottom:-1px}.-scroll-ml-0{scroll-margin-left:-0px}.-scroll-ml-0\.5{scroll-margin-left:-.125rem}.-scroll-ml-1{scroll-margin-left:-.25rem}.-scroll-ml-1\.5{scroll-margin-left:-.375rem}.-scroll-ml-10{scroll-margin-left:-2.5rem}.-scroll-ml-11{scroll-margin-left:-2.75rem}.-scroll-ml-12{scroll-margin-left:-3rem}.-scroll-ml-14{scroll-margin-left:-3.5rem}.-scroll-ml-16{scroll-margin-left:-4rem}.-scroll-ml-2{scroll-margin-left:-.5rem}.-scroll-ml-2\.5{scroll-margin-left:-.625rem}.-scroll-ml-20{scroll-margin-left:-5rem}.-scroll-ml-24{scroll-margin-left:-6rem}.-scroll-ml-28{scroll-margin-left:-7rem}.-scroll-ml-3{scroll-margin-left:-.75rem}.-scroll-ml-3\.5{scroll-margin-left:-.875rem}.-scroll-ml-32{scroll-margin-left:-8rem}.-scroll-ml-36{scroll-margin-left:-9rem}.-scroll-ml-4{scroll-margin-left:-1rem}.-scroll-ml-40{scroll-margin-left:-10rem}.-scroll-ml-44{scroll-margin-left:-11rem}.-scroll-ml-48{scroll-margin-left:-12rem}.-scroll-ml-5{scroll-margin-left:-1.25rem}.-scroll-ml-52{scroll-margin-left:-13rem}.-scroll-ml-56{scroll-margin-left:-14rem}.-scroll-ml-6{scroll-margin-left:-1.5rem}.-scroll-ml-60{scroll-margin-left:-15rem}.-scroll-ml-64{scroll-margin-left:-16rem}.-scroll-ml-7{scroll-margin-left:-1.75rem}.-scroll-ml-72{scroll-margin-left:-18rem}.-scroll-ml-8{scroll-margin-left:-2rem}.-scroll-ml-80{scroll-margin-left:-20rem}.-scroll-ml-9{scroll-margin-left:-2.25rem}.-scroll-ml-96{scroll-margin-left:-24rem}.-scroll-ml-px{scroll-margin-left:-1px}.-scroll-mr-0{scroll-margin-right:-0px}.-scroll-mr-0\.5{scroll-margin-right:-.125rem}.-scroll-mr-1{scroll-margin-right:-.25rem}.-scroll-mr-1\.5{scroll-margin-right:-.375rem}.-scroll-mr-10{scroll-margin-right:-2.5rem}.-scroll-mr-11{scroll-margin-right:-2.75rem}.-scroll-mr-12{scroll-margin-right:-3rem}.-scroll-mr-14{scroll-margin-right:-3.5rem}.-scroll-mr-16{scroll-margin-right:-4rem}.-scroll-mr-2{scroll-margin-right:-.5rem}.-scroll-mr-2\.5{scroll-margin-right:-.625rem}.-scroll-mr-20{scroll-margin-right:-5rem}.-scroll-mr-24{scroll-margin-right:-6rem}.-scroll-mr-28{scroll-margin-right:-7rem}.-scroll-mr-3{scroll-margin-right:-.75rem}.-scroll-mr-3\.5{scroll-margin-right:-.875rem}.-scroll-mr-32{scroll-margin-right:-8rem}.-scroll-mr-36{scroll-margin-right:-9rem}.-scroll-mr-4{scroll-margin-right:-1rem}.-scroll-mr-40{scroll-margin-right:-10rem}.-scroll-mr-44{scroll-margin-right:-11rem}.-scroll-mr-48{scroll-margin-right:-12rem}.-scroll-mr-5{scroll-margin-right:-1.25rem}.-scroll-mr-52{scroll-margin-right:-13rem}.-scroll-mr-56{scroll-margin-right:-14rem}.-scroll-mr-6{scroll-margin-right:-1.5rem}.-scroll-mr-60{scroll-margin-right:-15rem}.-scroll-mr-64{scroll-margin-right:-16rem}.-scroll-mr-7{scroll-margin-right:-1.75rem}.-scroll-mr-72{scroll-margin-right:-18rem}.-scroll-mr-8{scroll-margin-right:-2rem}.-scroll-mr-80{scroll-margin-right:-20rem}.-scroll-mr-9{scroll-margin-right:-2.25rem}.-scroll-mr-96{scroll-margin-right:-24rem}.-scroll-mr-px{scroll-margin-right:-1px}.-scroll-mt-0{scroll-margin-top:-0px}.-scroll-mt-0\.5{scroll-margin-top:-.125rem}.-scroll-mt-1{scroll-margin-top:-.25rem}.-scroll-mt-1\.5{scroll-margin-top:-.375rem}.-scroll-mt-10{scroll-margin-top:-2.5rem}.-scroll-mt-11{scroll-margin-top:-2.75rem}.-scroll-mt-12{scroll-margin-top:-3rem}.-scroll-mt-14{scroll-margin-top:-3.5rem}.-scroll-mt-16{scroll-margin-top:-4rem}.-scroll-mt-2{scroll-margin-top:-.5rem}.-scroll-mt-2\.5{scroll-margin-top:-.625rem}.-scroll-mt-20{scroll-margin-top:-5rem}.-scroll-mt-24{scroll-margin-top:-6rem}.-scroll-mt-28{scroll-margin-top:-7rem}.-scroll-mt-3{scroll-margin-top:-.75rem}.-scroll-mt-3\.5{scroll-margin-top:-.875rem}.-scroll-mt-32{scroll-margin-top:-8rem}.-scroll-mt-36{scroll-margin-top:-9rem}.-scroll-mt-4{scroll-margin-top:-1rem}.-scroll-mt-40{scroll-margin-top:-10rem}.-scroll-mt-44{scroll-margin-top:-11rem}.-scroll-mt-48{scroll-margin-top:-12rem}.-scroll-mt-5{scroll-margin-top:-1.25rem}.-scroll-mt-52{scroll-margin-top:-13rem}.-scroll-mt-56{scroll-margin-top:-14rem}.-scroll-mt-6{scroll-margin-top:-1.5rem}.-scroll-mt-60{scroll-margin-top:-15rem}.-scroll-mt-64{scroll-margin-top:-16rem}.-scroll-mt-7{scroll-margin-top:-1.75rem}.-scroll-mt-72{scroll-margin-top:-18rem}.-scroll-mt-8{scroll-margin-top:-2rem}.-scroll-mt-80{scroll-margin-top:-20rem}.-scroll-mt-9{scroll-margin-top:-2.25rem}.-scroll-mt-96{scroll-margin-top:-24rem}.-scroll-mt-px{scroll-margin-top:-1px}.scroll-mb-0{scroll-margin-bottom:0px}.scroll-mb-0\.5{scroll-margin-bottom:.125rem}.scroll-mb-1{scroll-margin-bottom:.25rem}.scroll-mb-1\.5{scroll-margin-bottom:.375rem}.scroll-mb-10{scroll-margin-bottom:2.5rem}.scroll-mb-11{scroll-margin-bottom:2.75rem}.scroll-mb-12{scroll-margin-bottom:3rem}.scroll-mb-14{scroll-margin-bottom:3.5rem}.scroll-mb-16{scroll-margin-bottom:4rem}.scroll-mb-2{scroll-margin-bottom:.5rem}.scroll-mb-2\.5{scroll-margin-bottom:.625rem}.scroll-mb-20{scroll-margin-bottom:5rem}.scroll-mb-24{scroll-margin-bottom:6rem}.scroll-mb-28{scroll-margin-bottom:7rem}.scroll-mb-3{scroll-margin-bottom:.75rem}.scroll-mb-3\.5{scroll-margin-bottom:.875rem}.scroll-mb-32{scroll-margin-bottom:8rem}.scroll-mb-36{scroll-margin-bottom:9rem}.scroll-mb-4{scroll-margin-bottom:1rem}.scroll-mb-40{scroll-margin-bottom:10rem}.scroll-mb-44{scroll-margin-bottom:11rem}.scroll-mb-48{scroll-margin-bottom:12rem}.scroll-mb-5{scroll-margin-bottom:1.25rem}.scroll-mb-52{scroll-margin-bottom:13rem}.scroll-mb-56{scroll-margin-bottom:14rem}.scroll-mb-6{scroll-margin-bottom:1.5rem}.scroll-mb-60{scroll-margin-bottom:15rem}.scroll-mb-64{scroll-margin-bottom:16rem}.scroll-mb-7{scroll-margin-bottom:1.75rem}.scroll-mb-72{scroll-margin-bottom:18rem}.scroll-mb-8{scroll-margin-bottom:2rem}.scroll-mb-80{scroll-margin-bottom:20rem}.scroll-mb-9{scroll-margin-bottom:2.25rem}.scroll-mb-96{scroll-margin-bottom:24rem}.scroll-mb-px{scroll-margin-bottom:1px}.scroll-ml-0{scroll-margin-left:0px}.scroll-ml-0\.5{scroll-margin-left:.125rem}.scroll-ml-1{scroll-margin-left:.25rem}.scroll-ml-1\.5{scroll-margin-left:.375rem}.scroll-ml-10{scroll-margin-left:2.5rem}.scroll-ml-11{scroll-margin-left:2.75rem}.scroll-ml-12{scroll-margin-left:3rem}.scroll-ml-14{scroll-margin-left:3.5rem}.scroll-ml-16{scroll-margin-left:4rem}.scroll-ml-2{scroll-margin-left:.5rem}.scroll-ml-2\.5{scroll-margin-left:.625rem}.scroll-ml-20{scroll-margin-left:5rem}.scroll-ml-24{scroll-margin-left:6rem}.scroll-ml-28{scroll-margin-left:7rem}.scroll-ml-3{scroll-margin-left:.75rem}.scroll-ml-3\.5{scroll-margin-left:.875rem}.scroll-ml-32{scroll-margin-left:8rem}.scroll-ml-36{scroll-margin-left:9rem}.scroll-ml-4{scroll-margin-left:1rem}.scroll-ml-40{scroll-margin-left:10rem}.scroll-ml-44{scroll-margin-left:11rem}.scroll-ml-48{scroll-margin-left:12rem}.scroll-ml-5{scroll-margin-left:1.25rem}.scroll-ml-52{scroll-margin-left:13rem}.scroll-ml-56{scroll-margin-left:14rem}.scroll-ml-6{scroll-margin-left:1.5rem}.scroll-ml-60{scroll-margin-left:15rem}.scroll-ml-64{scroll-margin-left:16rem}.scroll-ml-7{scroll-margin-left:1.75rem}.scroll-ml-72{scroll-margin-left:18rem}.scroll-ml-8{scroll-margin-left:2rem}.scroll-ml-80{scroll-margin-left:20rem}.scroll-ml-9{scroll-margin-left:2.25rem}.scroll-ml-96{scroll-margin-left:24rem}.scroll-ml-px{scroll-margin-left:1px}.scroll-mr-0{scroll-margin-right:0px}.scroll-mr-0\.5{scroll-margin-right:.125rem}.scroll-mr-1{scroll-margin-right:.25rem}.scroll-mr-1\.5{scroll-margin-right:.375rem}.scroll-mr-10{scroll-margin-right:2.5rem}.scroll-mr-11{scroll-margin-right:2.75rem}.scroll-mr-12{scroll-margin-right:3rem}.scroll-mr-14{scroll-margin-right:3.5rem}.scroll-mr-16{scroll-margin-right:4rem}.scroll-mr-2{scroll-margin-right:.5rem}.scroll-mr-2\.5{scroll-margin-right:.625rem}.scroll-mr-20{scroll-margin-right:5rem}.scroll-mr-24{scroll-margin-right:6rem}.scroll-mr-28{scroll-margin-right:7rem}.scroll-mr-3{scroll-margin-right:.75rem}.scroll-mr-3\.5{scroll-margin-right:.875rem}.scroll-mr-32{scroll-margin-right:8rem}.scroll-mr-36{scroll-margin-right:9rem}.scroll-mr-4{scroll-margin-right:1rem}.scroll-mr-40{scroll-margin-right:10rem}.scroll-mr-44{scroll-margin-right:11rem}.scroll-mr-48{scroll-margin-right:12rem}.scroll-mr-5{scroll-margin-right:1.25rem}.scroll-mr-52{scroll-margin-right:13rem}.scroll-mr-56{scroll-margin-right:14rem}.scroll-mr-6{scroll-margin-right:1.5rem}.scroll-mr-60{scroll-margin-right:15rem}.scroll-mr-64{scroll-margin-right:16rem}.scroll-mr-7{scroll-margin-right:1.75rem}.scroll-mr-72{scroll-margin-right:18rem}.scroll-mr-8{scroll-margin-right:2rem}.scroll-mr-80{scroll-margin-right:20rem}.scroll-mr-9{scroll-margin-right:2.25rem}.scroll-mr-96{scroll-margin-right:24rem}.scroll-mr-px{scroll-margin-right:1px}.scroll-mt-0{scroll-margin-top:0px}.scroll-mt-0\.5{scroll-margin-top:.125rem}.scroll-mt-1{scroll-margin-top:.25rem}.scroll-mt-1\.5{scroll-margin-top:.375rem}.scroll-mt-10{scroll-margin-top:2.5rem}.scroll-mt-11{scroll-margin-top:2.75rem}.scroll-mt-12{scroll-margin-top:3rem}.scroll-mt-14{scroll-margin-top:3.5rem}.scroll-mt-16{scroll-margin-top:4rem}.scroll-mt-2{scroll-margin-top:.5rem}.scroll-mt-2\.5{scroll-margin-top:.625rem}.scroll-mt-20{scroll-margin-top:5rem}.scroll-mt-24{scroll-margin-top:6rem}.scroll-mt-28{scroll-margin-top:7rem}.scroll-mt-3{scroll-margin-top:.75rem}.scroll-mt-3\.5{scroll-margin-top:.875rem}.scroll-mt-32{scroll-margin-top:8rem}.scroll-mt-36{scroll-margin-top:9rem}.scroll-mt-4{scroll-margin-top:1rem}.scroll-mt-40{scroll-margin-top:10rem}.scroll-mt-44{scroll-margin-top:11rem}.scroll-mt-48{scroll-margin-top:12rem}.scroll-mt-5{scroll-margin-top:1.25rem}.scroll-mt-52{scroll-margin-top:13rem}.scroll-mt-56{scroll-margin-top:14rem}.scroll-mt-6{scroll-margin-top:1.5rem}.scroll-mt-60{scroll-margin-top:15rem}.scroll-mt-64{scroll-margin-top:16rem}.scroll-mt-7{scroll-margin-top:1.75rem}.scroll-mt-72{scroll-margin-top:18rem}.scroll-mt-8{scroll-margin-top:2rem}.scroll-mt-80{scroll-margin-top:20rem}.scroll-mt-9{scroll-margin-top:2.25rem}.scroll-mt-96{scroll-margin-top:24rem}.scroll-mt-px{scroll-margin-top:1px}.scroll-p-0{scroll-padding:0px}.scroll-p-0\.5{scroll-padding:.125rem}.scroll-p-1{scroll-padding:.25rem}.scroll-p-1\.5{scroll-padding:.375rem}.scroll-p-10{scroll-padding:2.5rem}.scroll-p-11{scroll-padding:2.75rem}.scroll-p-12{scroll-padding:3rem}.scroll-p-14{scroll-padding:3.5rem}.scroll-p-16{scroll-padding:4rem}.scroll-p-2{scroll-padding:.5rem}.scroll-p-2\.5{scroll-padding:.625rem}.scroll-p-20{scroll-padding:5rem}.scroll-p-24{scroll-padding:6rem}.scroll-p-28{scroll-padding:7rem}.scroll-p-3{scroll-padding:.75rem}.scroll-p-3\.5{scroll-padding:.875rem}.scroll-p-32{scroll-padding:8rem}.scroll-p-36{scroll-padding:9rem}.scroll-p-4{scroll-padding:1rem}.scroll-p-40{scroll-padding:10rem}.scroll-p-44{scroll-padding:11rem}.scroll-p-48{scroll-padding:12rem}.scroll-p-5{scroll-padding:1.25rem}.scroll-p-52{scroll-padding:13rem}.scroll-p-56{scroll-padding:14rem}.scroll-p-6{scroll-padding:1.5rem}.scroll-p-60{scroll-padding:15rem}.scroll-p-64{scroll-padding:16rem}.scroll-p-7{scroll-padding:1.75rem}.scroll-p-72{scroll-padding:18rem}.scroll-p-8{scroll-padding:2rem}.scroll-p-80{scroll-padding:20rem}.scroll-p-9{scroll-padding:2.25rem}.scroll-p-96{scroll-padding:24rem}.scroll-p-px{scroll-padding:1px}.scroll-px-0{scroll-padding-left:0px;scroll-padding-right:0px}.scroll-px-0\.5{scroll-padding-left:.125rem;scroll-padding-right:.125rem}.scroll-px-1{scroll-padding-left:.25rem;scroll-padding-right:.25rem}.scroll-px-1\.5{scroll-padding-left:.375rem;scroll-padding-right:.375rem}.scroll-px-10{scroll-padding-left:2.5rem;scroll-padding-right:2.5rem}.scroll-px-11{scroll-padding-left:2.75rem;scroll-padding-right:2.75rem}.scroll-px-12{scroll-padding-left:3rem;scroll-padding-right:3rem}.scroll-px-14{scroll-padding-left:3.5rem;scroll-padding-right:3.5rem}.scroll-px-16{scroll-padding-left:4rem;scroll-padding-right:4rem}.scroll-px-2{scroll-padding-left:.5rem;scroll-padding-right:.5rem}.scroll-px-2\.5{scroll-padding-left:.625rem;scroll-padding-right:.625rem}.scroll-px-20{scroll-padding-left:5rem;scroll-padding-right:5rem}.scroll-px-24{scroll-padding-left:6rem;scroll-padding-right:6rem}.scroll-px-28{scroll-padding-left:7rem;scroll-padding-right:7rem}.scroll-px-3{scroll-padding-left:.75rem;scroll-padding-right:.75rem}.scroll-px-3\.5{scroll-padding-left:.875rem;scroll-padding-right:.875rem}.scroll-px-32{scroll-padding-left:8rem;scroll-padding-right:8rem}.scroll-px-36{scroll-padding-left:9rem;scroll-padding-right:9rem}.scroll-px-4{scroll-padding-left:1rem;scroll-padding-right:1rem}.scroll-px-40{scroll-padding-left:10rem;scroll-padding-right:10rem}.scroll-px-44{scroll-padding-left:11rem;scroll-padding-right:11rem}.scroll-px-48{scroll-padding-left:12rem;scroll-padding-right:12rem}.scroll-px-5{scroll-padding-left:1.25rem;scroll-padding-right:1.25rem}.scroll-px-52{scroll-padding-left:13rem;scroll-padding-right:13rem}.scroll-px-56{scroll-padding-left:14rem;scroll-padding-right:14rem}.scroll-px-6{scroll-padding-left:1.5rem;scroll-padding-right:1.5rem}.scroll-px-60{scroll-padding-left:15rem;scroll-padding-right:15rem}.scroll-px-64{scroll-padding-left:16rem;scroll-padding-right:16rem}.scroll-px-7{scroll-padding-left:1.75rem;scroll-padding-right:1.75rem}.scroll-px-72{scroll-padding-left:18rem;scroll-padding-right:18rem}.scroll-px-8{scroll-padding-left:2rem;scroll-padding-right:2rem}.scroll-px-80{scroll-padding-left:20rem;scroll-padding-right:20rem}.scroll-px-9{scroll-padding-left:2.25rem;scroll-padding-right:2.25rem}.scroll-px-96{scroll-padding-left:24rem;scroll-padding-right:24rem}.scroll-px-px{scroll-padding-left:1px;scroll-padding-right:1px}.scroll-py-0{scroll-padding-top:0px;scroll-padding-bottom:0px}.scroll-py-0\.5{scroll-padding-top:.125rem;scroll-padding-bottom:.125rem}.scroll-py-1{scroll-padding-top:.25rem;scroll-padding-bottom:.25rem}.scroll-py-1\.5{scroll-padding-top:.375rem;scroll-padding-bottom:.375rem}.scroll-py-10{scroll-padding-top:2.5rem;scroll-padding-bottom:2.5rem}.scroll-py-11{scroll-padding-top:2.75rem;scroll-padding-bottom:2.75rem}.scroll-py-12{scroll-padding-top:3rem;scroll-padding-bottom:3rem}.scroll-py-14{scroll-padding-top:3.5rem;scroll-padding-bottom:3.5rem}.scroll-py-16{scroll-padding-top:4rem;scroll-padding-bottom:4rem}.scroll-py-2{scroll-padding-top:.5rem;scroll-padding-bottom:.5rem}.scroll-py-2\.5{scroll-padding-top:.625rem;scroll-padding-bottom:.625rem}.scroll-py-20{scroll-padding-top:5rem;scroll-padding-bottom:5rem}.scroll-py-24{scroll-padding-top:6rem;scroll-padding-bottom:6rem}.scroll-py-28{scroll-padding-top:7rem;scroll-padding-bottom:7rem}.scroll-py-3{scroll-padding-top:.75rem;scroll-padding-bottom:.75rem}.scroll-py-3\.5{scroll-padding-top:.875rem;scroll-padding-bottom:.875rem}.scroll-py-32{scroll-padding-top:8rem;scroll-padding-bottom:8rem}.scroll-py-36{scroll-padding-top:9rem;scroll-padding-bottom:9rem}.scroll-py-4{scroll-padding-top:1rem;scroll-padding-bottom:1rem}.scroll-py-40{scroll-padding-top:10rem;scroll-padding-bottom:10rem}.scroll-py-44{scroll-padding-top:11rem;scroll-padding-bottom:11rem}.scroll-py-48{scroll-padding-top:12rem;scroll-padding-bottom:12rem}.scroll-py-5{scroll-padding-top:1.25rem;scroll-padding-bottom:1.25rem}.scroll-py-52{scroll-padding-top:13rem;scroll-padding-bottom:13rem}.scroll-py-56{scroll-padding-top:14rem;scroll-padding-bottom:14rem}.scroll-py-6{scroll-padding-top:1.5rem;scroll-padding-bottom:1.5rem}.scroll-py-60{scroll-padding-top:15rem;scroll-padding-bottom:15rem}.scroll-py-64{scroll-padding-top:16rem;scroll-padding-bottom:16rem}.scroll-py-7{scroll-padding-top:1.75rem;scroll-padding-bottom:1.75rem}.scroll-py-72{scroll-padding-top:18rem;scroll-padding-bottom:18rem}.scroll-py-8{scroll-padding-top:2rem;scroll-padding-bottom:2rem}.scroll-py-80{scroll-padding-top:20rem;scroll-padding-bottom:20rem}.scroll-py-9{scroll-padding-top:2.25rem;scroll-padding-bottom:2.25rem}.scroll-py-96{scroll-padding-top:24rem;scroll-padding-bottom:24rem}.scroll-py-px{scroll-padding-top:1px;scroll-padding-bottom:1px}.scroll-pb-0{scroll-padding-bottom:0px}.scroll-pb-0\.5{scroll-padding-bottom:.125rem}.scroll-pb-1{scroll-padding-bottom:.25rem}.scroll-pb-1\.5{scroll-padding-bottom:.375rem}.scroll-pb-10{scroll-padding-bottom:2.5rem}.scroll-pb-11{scroll-padding-bottom:2.75rem}.scroll-pb-12{scroll-padding-bottom:3rem}.scroll-pb-14{scroll-padding-bottom:3.5rem}.scroll-pb-16{scroll-padding-bottom:4rem}.scroll-pb-2{scroll-padding-bottom:.5rem}.scroll-pb-2\.5{scroll-padding-bottom:.625rem}.scroll-pb-20{scroll-padding-bottom:5rem}.scroll-pb-24{scroll-padding-bottom:6rem}.scroll-pb-28{scroll-padding-bottom:7rem}.scroll-pb-3{scroll-padding-bottom:.75rem}.scroll-pb-3\.5{scroll-padding-bottom:.875rem}.scroll-pb-32{scroll-padding-bottom:8rem}.scroll-pb-36{scroll-padding-bottom:9rem}.scroll-pb-4{scroll-padding-bottom:1rem}.scroll-pb-40{scroll-padding-bottom:10rem}.scroll-pb-44{scroll-padding-bottom:11rem}.scroll-pb-48{scroll-padding-bottom:12rem}.scroll-pb-5{scroll-padding-bottom:1.25rem}.scroll-pb-52{scroll-padding-bottom:13rem}.scroll-pb-56{scroll-padding-bottom:14rem}.scroll-pb-6{scroll-padding-bottom:1.5rem}.scroll-pb-60{scroll-padding-bottom:15rem}.scroll-pb-64{scroll-padding-bottom:16rem}.scroll-pb-7{scroll-padding-bottom:1.75rem}.scroll-pb-72{scroll-padding-bottom:18rem}.scroll-pb-8{scroll-padding-bottom:2rem}.scroll-pb-80{scroll-padding-bottom:20rem}.scroll-pb-9{scroll-padding-bottom:2.25rem}.scroll-pb-96{scroll-padding-bottom:24rem}.scroll-pb-px{scroll-padding-bottom:1px}.scroll-pl-0{scroll-padding-left:0px}.scroll-pl-0\.5{scroll-padding-left:.125rem}.scroll-pl-1{scroll-padding-left:.25rem}.scroll-pl-1\.5{scroll-padding-left:.375rem}.scroll-pl-10{scroll-padding-left:2.5rem}.scroll-pl-11{scroll-padding-left:2.75rem}.scroll-pl-12{scroll-padding-left:3rem}.scroll-pl-14{scroll-padding-left:3.5rem}.scroll-pl-16{scroll-padding-left:4rem}.scroll-pl-2{scroll-padding-left:.5rem}.scroll-pl-2\.5{scroll-padding-left:.625rem}.scroll-pl-20{scroll-padding-left:5rem}.scroll-pl-24{scroll-padding-left:6rem}.scroll-pl-28{scroll-padding-left:7rem}.scroll-pl-3{scroll-padding-left:.75rem}.scroll-pl-3\.5{scroll-padding-left:.875rem}.scroll-pl-32{scroll-padding-left:8rem}.scroll-pl-36{scroll-padding-left:9rem}.scroll-pl-4{scroll-padding-left:1rem}.scroll-pl-40{scroll-padding-left:10rem}.scroll-pl-44{scroll-padding-left:11rem}.scroll-pl-48{scroll-padding-left:12rem}.scroll-pl-5{scroll-padding-left:1.25rem}.scroll-pl-52{scroll-padding-left:13rem}.scroll-pl-56{scroll-padding-left:14rem}.scroll-pl-6{scroll-padding-left:1.5rem}.scroll-pl-60{scroll-padding-left:15rem}.scroll-pl-64{scroll-padding-left:16rem}.scroll-pl-7{scroll-padding-left:1.75rem}.scroll-pl-72{scroll-padding-left:18rem}.scroll-pl-8{scroll-padding-left:2rem}.scroll-pl-80{scroll-padding-left:20rem}.scroll-pl-9{scroll-padding-left:2.25rem}.scroll-pl-96{scroll-padding-left:24rem}.scroll-pl-px{scroll-padding-left:1px}.scroll-pr-0{scroll-padding-right:0px}.scroll-pr-0\.5{scroll-padding-right:.125rem}.scroll-pr-1{scroll-padding-right:.25rem}.scroll-pr-1\.5{scroll-padding-right:.375rem}.scroll-pr-10{scroll-padding-right:2.5rem}.scroll-pr-11{scroll-padding-right:2.75rem}.scroll-pr-12{scroll-padding-right:3rem}.scroll-pr-14{scroll-padding-right:3.5rem}.scroll-pr-16{scroll-padding-right:4rem}.scroll-pr-2{scroll-padding-right:.5rem}.scroll-pr-2\.5{scroll-padding-right:.625rem}.scroll-pr-20{scroll-padding-right:5rem}.scroll-pr-24{scroll-padding-right:6rem}.scroll-pr-28{scroll-padding-right:7rem}.scroll-pr-3{scroll-padding-right:.75rem}.scroll-pr-3\.5{scroll-padding-right:.875rem}.scroll-pr-32{scroll-padding-right:8rem}.scroll-pr-36{scroll-padding-right:9rem}.scroll-pr-4{scroll-padding-right:1rem}.scroll-pr-40{scroll-padding-right:10rem}.scroll-pr-44{scroll-padding-right:11rem}.scroll-pr-48{scroll-padding-right:12rem}.scroll-pr-5{scroll-padding-right:1.25rem}.scroll-pr-52{scroll-padding-right:13rem}.scroll-pr-56{scroll-padding-right:14rem}.scroll-pr-6{scroll-padding-right:1.5rem}.scroll-pr-60{scroll-padding-right:15rem}.scroll-pr-64{scroll-padding-right:16rem}.scroll-pr-7{scroll-padding-right:1.75rem}.scroll-pr-72{scroll-padding-right:18rem}.scroll-pr-8{scroll-padding-right:2rem}.scroll-pr-80{scroll-padding-right:20rem}.scroll-pr-9{scroll-padding-right:2.25rem}.scroll-pr-96{scroll-padding-right:24rem}.scroll-pr-px{scroll-padding-right:1px}.scroll-pt-0{scroll-padding-top:0px}.scroll-pt-0\.5{scroll-padding-top:.125rem}.scroll-pt-1{scroll-padding-top:.25rem}.scroll-pt-1\.5{scroll-padding-top:.375rem}.scroll-pt-10{scroll-padding-top:2.5rem}.scroll-pt-11{scroll-padding-top:2.75rem}.scroll-pt-12{scroll-padding-top:3rem}.scroll-pt-14{scroll-padding-top:3.5rem}.scroll-pt-16{scroll-padding-top:4rem}.scroll-pt-2{scroll-padding-top:.5rem}.scroll-pt-2\.5{scroll-padding-top:.625rem}.scroll-pt-20{scroll-padding-top:5rem}.scroll-pt-24{scroll-padding-top:6rem}.scroll-pt-28{scroll-padding-top:7rem}.scroll-pt-3{scroll-padding-top:.75rem}.scroll-pt-3\.5{scroll-padding-top:.875rem}.scroll-pt-32{scroll-padding-top:8rem}.scroll-pt-36{scroll-padding-top:9rem}.scroll-pt-4{scroll-padding-top:1rem}.scroll-pt-40{scroll-padding-top:10rem}.scroll-pt-44{scroll-padding-top:11rem}.scroll-pt-48{scroll-padding-top:12rem}.scroll-pt-5{scroll-padding-top:1.25rem}.scroll-pt-52{scroll-padding-top:13rem}.scroll-pt-56{scroll-padding-top:14rem}.scroll-pt-6{scroll-padding-top:1.5rem}.scroll-pt-60{scroll-padding-top:15rem}.scroll-pt-64{scroll-padding-top:16rem}.scroll-pt-7{scroll-padding-top:1.75rem}.scroll-pt-72{scroll-padding-top:18rem}.scroll-pt-8{scroll-padding-top:2rem}.scroll-pt-80{scroll-padding-top:20rem}.scroll-pt-9{scroll-padding-top:2.25rem}.scroll-pt-96{scroll-padding-top:24rem}.scroll-pt-px{scroll-padding-top:1px}.appearance-none{appearance:none}.columns-1{columns:1}.columns-10{columns:10}.columns-11{columns:11}.columns-12{columns:12}.columns-2{columns:2}.columns-2xl{columns:42rem}.columns-2xs{columns:18rem}.columns-3{columns:3}.columns-3xl{columns:48rem}.columns-3xs{columns:16rem}.columns-4{columns:4}.columns-4xl{columns:56rem}.columns-5{columns:5}.columns-5xl{columns:64rem}.columns-6{columns:6}.columns-6xl{columns:72rem}.columns-7{columns:7}.columns-7xl{columns:80rem}.columns-8{columns:8}.columns-9{columns:9}.columns-auto{columns:auto}.columns-lg{columns:32rem}.columns-md{columns:28rem}.columns-sm{columns:24rem}.columns-xl{columns:36rem}.columns-xs{columns:20rem}.break-before-column{break-before:column}.break-inside-avoid-column{break-inside:avoid-column}.break-after-column{break-after:column}.auto-cols-auto{grid-auto-columns:auto}.auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.auto-cols-max{grid-auto-columns:max-content}.auto-cols-min{grid-auto-columns:min-content}.grid-flow-col{grid-auto-flow:column}.grid-flow-col-dense{grid-auto-flow:column dense}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid-cols-none{grid-template-columns:none}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-x-2{column-gap:.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-solid>:not([hidden])~:not([hidden]){border-style:solid}.divide-Occupation_du_sol-primary>:not([hidden])~:not([hidden]){border-color:var(--Occupation_du_sol-primary)}.divide-Occupation_du_sol-secondary>:not([hidden])~:not([hidden]){border-color:var(--Occupation_du_sol-secondary)}.divide-Occupation_du_sol-tertiary>:not([hidden])~:not([hidden]){border-color:var(--Occupation_du_sol-tertiary)}.divide-gray-400>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(156 163 175 / var(--tw-divide-opacity))}.divide-violet-100>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(237 233 254 / var(--tw-divide-opacity))}.divide-violet-100\/0>:not([hidden])~:not([hidden]){border-color:#ede9fe00}.divide-violet-100\/10>:not([hidden])~:not([hidden]){border-color:#ede9fe1a}.divide-violet-100\/100>:not([hidden])~:not([hidden]){border-color:#ede9fe}.divide-violet-100\/20>:not([hidden])~:not([hidden]){border-color:#ede9fe33}.divide-violet-100\/25>:not([hidden])~:not([hidden]){border-color:#ede9fe40}.divide-violet-100\/30>:not([hidden])~:not([hidden]){border-color:#ede9fe4d}.divide-violet-100\/40>:not([hidden])~:not([hidden]){border-color:#ede9fe66}.divide-violet-100\/5>:not([hidden])~:not([hidden]){border-color:#ede9fe0d}.divide-violet-100\/50>:not([hidden])~:not([hidden]){border-color:#ede9fe80}.divide-violet-100\/60>:not([hidden])~:not([hidden]){border-color:#ede9fe99}.divide-violet-100\/70>:not([hidden])~:not([hidden]){border-color:#ede9feb3}.divide-violet-100\/75>:not([hidden])~:not([hidden]){border-color:#ede9febf}.divide-violet-100\/80>:not([hidden])~:not([hidden]){border-color:#ede9fecc}.divide-violet-100\/90>:not([hidden])~:not([hidden]){border-color:#ede9fee6}.divide-violet-100\/95>:not([hidden])~:not([hidden]){border-color:#ede9fef2}.divide-violet-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(221 214 254 / var(--tw-divide-opacity))}.divide-violet-200\/0>:not([hidden])~:not([hidden]){border-color:#ddd6fe00}.divide-violet-200\/10>:not([hidden])~:not([hidden]){border-color:#ddd6fe1a}.divide-violet-200\/100>:not([hidden])~:not([hidden]){border-color:#ddd6fe}.divide-violet-200\/20>:not([hidden])~:not([hidden]){border-color:#ddd6fe33}.divide-violet-200\/25>:not([hidden])~:not([hidden]){border-color:#ddd6fe40}.divide-violet-200\/30>:not([hidden])~:not([hidden]){border-color:#ddd6fe4d}.divide-violet-200\/40>:not([hidden])~:not([hidden]){border-color:#ddd6fe66}.divide-violet-200\/5>:not([hidden])~:not([hidden]){border-color:#ddd6fe0d}.divide-violet-200\/50>:not([hidden])~:not([hidden]){border-color:#ddd6fe80}.divide-violet-200\/60>:not([hidden])~:not([hidden]){border-color:#ddd6fe99}.divide-violet-200\/70>:not([hidden])~:not([hidden]){border-color:#ddd6feb3}.divide-violet-200\/75>:not([hidden])~:not([hidden]){border-color:#ddd6febf}.divide-violet-200\/80>:not([hidden])~:not([hidden]){border-color:#ddd6fecc}.divide-violet-200\/90>:not([hidden])~:not([hidden]){border-color:#ddd6fee6}.divide-violet-200\/95>:not([hidden])~:not([hidden]){border-color:#ddd6fef2}.divide-violet-300>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(196 181 253 / var(--tw-divide-opacity))}.divide-violet-300\/0>:not([hidden])~:not([hidden]){border-color:#c4b5fd00}.divide-violet-300\/10>:not([hidden])~:not([hidden]){border-color:#c4b5fd1a}.divide-violet-300\/100>:not([hidden])~:not([hidden]){border-color:#c4b5fd}.divide-violet-300\/20>:not([hidden])~:not([hidden]){border-color:#c4b5fd33}.divide-violet-300\/25>:not([hidden])~:not([hidden]){border-color:#c4b5fd40}.divide-violet-300\/30>:not([hidden])~:not([hidden]){border-color:#c4b5fd4d}.divide-violet-300\/40>:not([hidden])~:not([hidden]){border-color:#c4b5fd66}.divide-violet-300\/5>:not([hidden])~:not([hidden]){border-color:#c4b5fd0d}.divide-violet-300\/50>:not([hidden])~:not([hidden]){border-color:#c4b5fd80}.divide-violet-300\/60>:not([hidden])~:not([hidden]){border-color:#c4b5fd99}.divide-violet-300\/70>:not([hidden])~:not([hidden]){border-color:#c4b5fdb3}.divide-violet-300\/75>:not([hidden])~:not([hidden]){border-color:#c4b5fdbf}.divide-violet-300\/80>:not([hidden])~:not([hidden]){border-color:#c4b5fdcc}.divide-violet-300\/90>:not([hidden])~:not([hidden]){border-color:#c4b5fde6}.divide-violet-300\/95>:not([hidden])~:not([hidden]){border-color:#c4b5fdf2}.divide-violet-400>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(167 139 250 / var(--tw-divide-opacity))}.divide-violet-400\/0>:not([hidden])~:not([hidden]){border-color:#a78bfa00}.divide-violet-400\/10>:not([hidden])~:not([hidden]){border-color:#a78bfa1a}.divide-violet-400\/100>:not([hidden])~:not([hidden]){border-color:#a78bfa}.divide-violet-400\/20>:not([hidden])~:not([hidden]){border-color:#a78bfa33}.divide-violet-400\/25>:not([hidden])~:not([hidden]){border-color:#a78bfa40}.divide-violet-400\/30>:not([hidden])~:not([hidden]){border-color:#a78bfa4d}.divide-violet-400\/40>:not([hidden])~:not([hidden]){border-color:#a78bfa66}.divide-violet-400\/5>:not([hidden])~:not([hidden]){border-color:#a78bfa0d}.divide-violet-400\/50>:not([hidden])~:not([hidden]){border-color:#a78bfa80}.divide-violet-400\/60>:not([hidden])~:not([hidden]){border-color:#a78bfa99}.divide-violet-400\/70>:not([hidden])~:not([hidden]){border-color:#a78bfab3}.divide-violet-400\/75>:not([hidden])~:not([hidden]){border-color:#a78bfabf}.divide-violet-400\/80>:not([hidden])~:not([hidden]){border-color:#a78bfacc}.divide-violet-400\/90>:not([hidden])~:not([hidden]){border-color:#a78bfae6}.divide-violet-400\/95>:not([hidden])~:not([hidden]){border-color:#a78bfaf2}.divide-violet-50>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(245 243 255 / var(--tw-divide-opacity))}.divide-violet-50\/0>:not([hidden])~:not([hidden]){border-color:#f5f3ff00}.divide-violet-50\/10>:not([hidden])~:not([hidden]){border-color:#f5f3ff1a}.divide-violet-50\/100>:not([hidden])~:not([hidden]){border-color:#f5f3ff}.divide-violet-50\/20>:not([hidden])~:not([hidden]){border-color:#f5f3ff33}.divide-violet-50\/25>:not([hidden])~:not([hidden]){border-color:#f5f3ff40}.divide-violet-50\/30>:not([hidden])~:not([hidden]){border-color:#f5f3ff4d}.divide-violet-50\/40>:not([hidden])~:not([hidden]){border-color:#f5f3ff66}.divide-violet-50\/5>:not([hidden])~:not([hidden]){border-color:#f5f3ff0d}.divide-violet-50\/50>:not([hidden])~:not([hidden]){border-color:#f5f3ff80}.divide-violet-50\/60>:not([hidden])~:not([hidden]){border-color:#f5f3ff99}.divide-violet-50\/70>:not([hidden])~:not([hidden]){border-color:#f5f3ffb3}.divide-violet-50\/75>:not([hidden])~:not([hidden]){border-color:#f5f3ffbf}.divide-violet-50\/80>:not([hidden])~:not([hidden]){border-color:#f5f3ffcc}.divide-violet-50\/90>:not([hidden])~:not([hidden]){border-color:#f5f3ffe6}.divide-violet-50\/95>:not([hidden])~:not([hidden]){border-color:#f5f3fff2}.divide-violet-500>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(139 92 246 / var(--tw-divide-opacity))}.divide-violet-500\/0>:not([hidden])~:not([hidden]){border-color:#8b5cf600}.divide-violet-500\/10>:not([hidden])~:not([hidden]){border-color:#8b5cf61a}.divide-violet-500\/100>:not([hidden])~:not([hidden]){border-color:#8b5cf6}.divide-violet-500\/20>:not([hidden])~:not([hidden]){border-color:#8b5cf633}.divide-violet-500\/25>:not([hidden])~:not([hidden]){border-color:#8b5cf640}.divide-violet-500\/30>:not([hidden])~:not([hidden]){border-color:#8b5cf64d}.divide-violet-500\/40>:not([hidden])~:not([hidden]){border-color:#8b5cf666}.divide-violet-500\/5>:not([hidden])~:not([hidden]){border-color:#8b5cf60d}.divide-violet-500\/50>:not([hidden])~:not([hidden]){border-color:#8b5cf680}.divide-violet-500\/60>:not([hidden])~:not([hidden]){border-color:#8b5cf699}.divide-violet-500\/70>:not([hidden])~:not([hidden]){border-color:#8b5cf6b3}.divide-violet-500\/75>:not([hidden])~:not([hidden]){border-color:#8b5cf6bf}.divide-violet-500\/80>:not([hidden])~:not([hidden]){border-color:#8b5cf6cc}.divide-violet-500\/90>:not([hidden])~:not([hidden]){border-color:#8b5cf6e6}.divide-violet-500\/95>:not([hidden])~:not([hidden]){border-color:#8b5cf6f2}.divide-violet-600>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(124 58 237 / var(--tw-divide-opacity))}.divide-violet-600\/0>:not([hidden])~:not([hidden]){border-color:#7c3aed00}.divide-violet-600\/10>:not([hidden])~:not([hidden]){border-color:#7c3aed1a}.divide-violet-600\/100>:not([hidden])~:not([hidden]){border-color:#7c3aed}.divide-violet-600\/20>:not([hidden])~:not([hidden]){border-color:#7c3aed33}.divide-violet-600\/25>:not([hidden])~:not([hidden]){border-color:#7c3aed40}.divide-violet-600\/30>:not([hidden])~:not([hidden]){border-color:#7c3aed4d}.divide-violet-600\/40>:not([hidden])~:not([hidden]){border-color:#7c3aed66}.divide-violet-600\/5>:not([hidden])~:not([hidden]){border-color:#7c3aed0d}.divide-violet-600\/50>:not([hidden])~:not([hidden]){border-color:#7c3aed80}.divide-violet-600\/60>:not([hidden])~:not([hidden]){border-color:#7c3aed99}.divide-violet-600\/70>:not([hidden])~:not([hidden]){border-color:#7c3aedb3}.divide-violet-600\/75>:not([hidden])~:not([hidden]){border-color:#7c3aedbf}.divide-violet-600\/80>:not([hidden])~:not([hidden]){border-color:#7c3aedcc}.divide-violet-600\/90>:not([hidden])~:not([hidden]){border-color:#7c3aede6}.divide-violet-600\/95>:not([hidden])~:not([hidden]){border-color:#7c3aedf2}.divide-violet-700>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(109 40 217 / var(--tw-divide-opacity))}.divide-violet-700\/0>:not([hidden])~:not([hidden]){border-color:#6d28d900}.divide-violet-700\/10>:not([hidden])~:not([hidden]){border-color:#6d28d91a}.divide-violet-700\/100>:not([hidden])~:not([hidden]){border-color:#6d28d9}.divide-violet-700\/20>:not([hidden])~:not([hidden]){border-color:#6d28d933}.divide-violet-700\/25>:not([hidden])~:not([hidden]){border-color:#6d28d940}.divide-violet-700\/30>:not([hidden])~:not([hidden]){border-color:#6d28d94d}.divide-violet-700\/40>:not([hidden])~:not([hidden]){border-color:#6d28d966}.divide-violet-700\/5>:not([hidden])~:not([hidden]){border-color:#6d28d90d}.divide-violet-700\/50>:not([hidden])~:not([hidden]){border-color:#6d28d980}.divide-violet-700\/60>:not([hidden])~:not([hidden]){border-color:#6d28d999}.divide-violet-700\/70>:not([hidden])~:not([hidden]){border-color:#6d28d9b3}.divide-violet-700\/75>:not([hidden])~:not([hidden]){border-color:#6d28d9bf}.divide-violet-700\/80>:not([hidden])~:not([hidden]){border-color:#6d28d9cc}.divide-violet-700\/90>:not([hidden])~:not([hidden]){border-color:#6d28d9e6}.divide-violet-700\/95>:not([hidden])~:not([hidden]){border-color:#6d28d9f2}.divide-violet-800>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(91 33 182 / var(--tw-divide-opacity))}.divide-violet-800\/0>:not([hidden])~:not([hidden]){border-color:#5b21b600}.divide-violet-800\/10>:not([hidden])~:not([hidden]){border-color:#5b21b61a}.divide-violet-800\/100>:not([hidden])~:not([hidden]){border-color:#5b21b6}.divide-violet-800\/20>:not([hidden])~:not([hidden]){border-color:#5b21b633}.divide-violet-800\/25>:not([hidden])~:not([hidden]){border-color:#5b21b640}.divide-violet-800\/30>:not([hidden])~:not([hidden]){border-color:#5b21b64d}.divide-violet-800\/40>:not([hidden])~:not([hidden]){border-color:#5b21b666}.divide-violet-800\/5>:not([hidden])~:not([hidden]){border-color:#5b21b60d}.divide-violet-800\/50>:not([hidden])~:not([hidden]){border-color:#5b21b680}.divide-violet-800\/60>:not([hidden])~:not([hidden]){border-color:#5b21b699}.divide-violet-800\/70>:not([hidden])~:not([hidden]){border-color:#5b21b6b3}.divide-violet-800\/75>:not([hidden])~:not([hidden]){border-color:#5b21b6bf}.divide-violet-800\/80>:not([hidden])~:not([hidden]){border-color:#5b21b6cc}.divide-violet-800\/90>:not([hidden])~:not([hidden]){border-color:#5b21b6e6}.divide-violet-800\/95>:not([hidden])~:not([hidden]){border-color:#5b21b6f2}.divide-violet-900>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(76 29 149 / var(--tw-divide-opacity))}.divide-violet-900\/0>:not([hidden])~:not([hidden]){border-color:#4c1d9500}.divide-violet-900\/10>:not([hidden])~:not([hidden]){border-color:#4c1d951a}.divide-violet-900\/100>:not([hidden])~:not([hidden]){border-color:#4c1d95}.divide-violet-900\/20>:not([hidden])~:not([hidden]){border-color:#4c1d9533}.divide-violet-900\/25>:not([hidden])~:not([hidden]){border-color:#4c1d9540}.divide-violet-900\/30>:not([hidden])~:not([hidden]){border-color:#4c1d954d}.divide-violet-900\/40>:not([hidden])~:not([hidden]){border-color:#4c1d9566}.divide-violet-900\/5>:not([hidden])~:not([hidden]){border-color:#4c1d950d}.divide-violet-900\/50>:not([hidden])~:not([hidden]){border-color:#4c1d9580}.divide-violet-900\/60>:not([hidden])~:not([hidden]){border-color:#4c1d9599}.divide-violet-900\/70>:not([hidden])~:not([hidden]){border-color:#4c1d95b3}.divide-violet-900\/75>:not([hidden])~:not([hidden]){border-color:#4c1d95bf}.divide-violet-900\/80>:not([hidden])~:not([hidden]){border-color:#4c1d95cc}.divide-violet-900\/90>:not([hidden])~:not([hidden]){border-color:#4c1d95e6}.divide-violet-900\/95>:not([hidden])~:not([hidden]){border-color:#4c1d95f2}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.overscroll-auto{overscroll-behavior:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.overscroll-y-auto{overscroll-behavior-y:auto}.overscroll-y-contain{overscroll-behavior-y:contain}.overscroll-y-none{overscroll-behavior-y:none}.overscroll-x-auto{overscroll-behavior-x:auto}.overscroll-x-contain{overscroll-behavior-x:contain}.overscroll-x-none{overscroll-behavior-x:none}.scroll-auto{scroll-behavior:auto}.scroll-smooth{scroll-behavior:smooth}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded-lg{border-radius:.5rem}.rounded-sm{border-radius:.125rem}.border{border-width:1px}.border-2{border-width:2px}.border-x{border-left-width:1px;border-right-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b-\[1px\]{border-bottom-width:1px}.border-l-\[1px\]{border-left-width:1px}.border-t-\[1px\]{border-top-width:1px}.border-solid{border-style:solid}.border-dotted{border-style:dotted}.border-hidden{border-style:hidden}.border-Occupation_du_sol-primary{border-color:var(--Occupation_du_sol-primary)}.border-Occupation_du_sol-secondary{border-color:var(--Occupation_du_sol-secondary)}.border-Occupation_du_sol-tertiary{border-color:var(--Occupation_du_sol-tertiary)}.border-black{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity))}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity))}.border-stone-300{--tw-border-opacity: 1;border-color:rgb(214 211 209 / var(--tw-border-opacity))}.border-violet-100{--tw-border-opacity: 1;border-color:rgb(237 233 254 / var(--tw-border-opacity))}.border-violet-100\/0{border-color:#ede9fe00}.border-violet-100\/10{border-color:#ede9fe1a}.border-violet-100\/100{border-color:#ede9fe}.border-violet-100\/20{border-color:#ede9fe33}.border-violet-100\/25{border-color:#ede9fe40}.border-violet-100\/30{border-color:#ede9fe4d}.border-violet-100\/40{border-color:#ede9fe66}.border-violet-100\/5{border-color:#ede9fe0d}.border-violet-100\/50{border-color:#ede9fe80}.border-violet-100\/60{border-color:#ede9fe99}.border-violet-100\/70{border-color:#ede9feb3}.border-violet-100\/75{border-color:#ede9febf}.border-violet-100\/80{border-color:#ede9fecc}.border-violet-100\/90{border-color:#ede9fee6}.border-violet-100\/95{border-color:#ede9fef2}.border-violet-200{--tw-border-opacity: 1;border-color:rgb(221 214 254 / var(--tw-border-opacity))}.border-violet-200\/0{border-color:#ddd6fe00}.border-violet-200\/10{border-color:#ddd6fe1a}.border-violet-200\/100{border-color:#ddd6fe}.border-violet-200\/20{border-color:#ddd6fe33}.border-violet-200\/25{border-color:#ddd6fe40}.border-violet-200\/30{border-color:#ddd6fe4d}.border-violet-200\/40{border-color:#ddd6fe66}.border-violet-200\/5{border-color:#ddd6fe0d}.border-violet-200\/50{border-color:#ddd6fe80}.border-violet-200\/60{border-color:#ddd6fe99}.border-violet-200\/70{border-color:#ddd6feb3}.border-violet-200\/75{border-color:#ddd6febf}.border-violet-200\/80{border-color:#ddd6fecc}.border-violet-200\/90{border-color:#ddd6fee6}.border-violet-200\/95{border-color:#ddd6fef2}.border-violet-300{--tw-border-opacity: 1;border-color:rgb(196 181 253 / var(--tw-border-opacity))}.border-violet-300\/0{border-color:#c4b5fd00}.border-violet-300\/10{border-color:#c4b5fd1a}.border-violet-300\/100{border-color:#c4b5fd}.border-violet-300\/20{border-color:#c4b5fd33}.border-violet-300\/25{border-color:#c4b5fd40}.border-violet-300\/30{border-color:#c4b5fd4d}.border-violet-300\/40{border-color:#c4b5fd66}.border-violet-300\/5{border-color:#c4b5fd0d}.border-violet-300\/50{border-color:#c4b5fd80}.border-violet-300\/60{border-color:#c4b5fd99}.border-violet-300\/70{border-color:#c4b5fdb3}.border-violet-300\/75{border-color:#c4b5fdbf}.border-violet-300\/80{border-color:#c4b5fdcc}.border-violet-300\/90{border-color:#c4b5fde6}.border-violet-300\/95{border-color:#c4b5fdf2}.border-violet-400{--tw-border-opacity: 1;border-color:rgb(167 139 250 / var(--tw-border-opacity))}.border-violet-400\/0{border-color:#a78bfa00}.border-violet-400\/10{border-color:#a78bfa1a}.border-violet-400\/100{border-color:#a78bfa}.border-violet-400\/20{border-color:#a78bfa33}.border-violet-400\/25{border-color:#a78bfa40}.border-violet-400\/30{border-color:#a78bfa4d}.border-violet-400\/40{border-color:#a78bfa66}.border-violet-400\/5{border-color:#a78bfa0d}.border-violet-400\/50{border-color:#a78bfa80}.border-violet-400\/60{border-color:#a78bfa99}.border-violet-400\/70{border-color:#a78bfab3}.border-violet-400\/75{border-color:#a78bfabf}.border-violet-400\/80{border-color:#a78bfacc}.border-violet-400\/90{border-color:#a78bfae6}.border-violet-400\/95{border-color:#a78bfaf2}.border-violet-50{--tw-border-opacity: 1;border-color:rgb(245 243 255 / var(--tw-border-opacity))}.border-violet-50\/0{border-color:#f5f3ff00}.border-violet-50\/10{border-color:#f5f3ff1a}.border-violet-50\/100{border-color:#f5f3ff}.border-violet-50\/20{border-color:#f5f3ff33}.border-violet-50\/25{border-color:#f5f3ff40}.border-violet-50\/30{border-color:#f5f3ff4d}.border-violet-50\/40{border-color:#f5f3ff66}.border-violet-50\/5{border-color:#f5f3ff0d}.border-violet-50\/50{border-color:#f5f3ff80}.border-violet-50\/60{border-color:#f5f3ff99}.border-violet-50\/70{border-color:#f5f3ffb3}.border-violet-50\/75{border-color:#f5f3ffbf}.border-violet-50\/80{border-color:#f5f3ffcc}.border-violet-50\/90{border-color:#f5f3ffe6}.border-violet-50\/95{border-color:#f5f3fff2}.border-violet-500{--tw-border-opacity: 1;border-color:rgb(139 92 246 / var(--tw-border-opacity))}.border-violet-500\/0{border-color:#8b5cf600}.border-violet-500\/10{border-color:#8b5cf61a}.border-violet-500\/100{border-color:#8b5cf6}.border-violet-500\/20{border-color:#8b5cf633}.border-violet-500\/25{border-color:#8b5cf640}.border-violet-500\/30{border-color:#8b5cf64d}.border-violet-500\/40{border-color:#8b5cf666}.border-violet-500\/5{border-color:#8b5cf60d}.border-violet-500\/50{border-color:#8b5cf680}.border-violet-500\/60{border-color:#8b5cf699}.border-violet-500\/70{border-color:#8b5cf6b3}.border-violet-500\/75{border-color:#8b5cf6bf}.border-violet-500\/80{border-color:#8b5cf6cc}.border-violet-500\/90{border-color:#8b5cf6e6}.border-violet-500\/95{border-color:#8b5cf6f2}.border-violet-600{--tw-border-opacity: 1;border-color:rgb(124 58 237 / var(--tw-border-opacity))}.border-violet-600\/0{border-color:#7c3aed00}.border-violet-600\/10{border-color:#7c3aed1a}.border-violet-600\/100{border-color:#7c3aed}.border-violet-600\/20{border-color:#7c3aed33}.border-violet-600\/25{border-color:#7c3aed40}.border-violet-600\/30{border-color:#7c3aed4d}.border-violet-600\/40{border-color:#7c3aed66}.border-violet-600\/5{border-color:#7c3aed0d}.border-violet-600\/50{border-color:#7c3aed80}.border-violet-600\/60{border-color:#7c3aed99}.border-violet-600\/70{border-color:#7c3aedb3}.border-violet-600\/75{border-color:#7c3aedbf}.border-violet-600\/80{border-color:#7c3aedcc}.border-violet-600\/90{border-color:#7c3aede6}.border-violet-600\/95{border-color:#7c3aedf2}.border-violet-700{--tw-border-opacity: 1;border-color:rgb(109 40 217 / var(--tw-border-opacity))}.border-violet-700\/0{border-color:#6d28d900}.border-violet-700\/10{border-color:#6d28d91a}.border-violet-700\/100{border-color:#6d28d9}.border-violet-700\/20{border-color:#6d28d933}.border-violet-700\/25{border-color:#6d28d940}.border-violet-700\/30{border-color:#6d28d94d}.border-violet-700\/40{border-color:#6d28d966}.border-violet-700\/5{border-color:#6d28d90d}.border-violet-700\/50{border-color:#6d28d980}.border-violet-700\/60{border-color:#6d28d999}.border-violet-700\/70{border-color:#6d28d9b3}.border-violet-700\/75{border-color:#6d28d9bf}.border-violet-700\/80{border-color:#6d28d9cc}.border-violet-700\/90{border-color:#6d28d9e6}.border-violet-700\/95{border-color:#6d28d9f2}.border-violet-800{--tw-border-opacity: 1;border-color:rgb(91 33 182 / var(--tw-border-opacity))}.border-violet-800\/0{border-color:#5b21b600}.border-violet-800\/10{border-color:#5b21b61a}.border-violet-800\/100{border-color:#5b21b6}.border-violet-800\/20{border-color:#5b21b633}.border-violet-800\/25{border-color:#5b21b640}.border-violet-800\/30{border-color:#5b21b64d}.border-violet-800\/40{border-color:#5b21b666}.border-violet-800\/5{border-color:#5b21b60d}.border-violet-800\/50{border-color:#5b21b680}.border-violet-800\/60{border-color:#5b21b699}.border-violet-800\/70{border-color:#5b21b6b3}.border-violet-800\/75{border-color:#5b21b6bf}.border-violet-800\/80{border-color:#5b21b6cc}.border-violet-800\/90{border-color:#5b21b6e6}.border-violet-800\/95{border-color:#5b21b6f2}.border-violet-900{--tw-border-opacity: 1;border-color:rgb(76 29 149 / var(--tw-border-opacity))}.border-violet-900\/0{border-color:#4c1d9500}.border-violet-900\/10{border-color:#4c1d951a}.border-violet-900\/100{border-color:#4c1d95}.border-violet-900\/20{border-color:#4c1d9533}.border-violet-900\/25{border-color:#4c1d9540}.border-violet-900\/30{border-color:#4c1d954d}.border-violet-900\/40{border-color:#4c1d9566}.border-violet-900\/5{border-color:#4c1d950d}.border-violet-900\/50{border-color:#4c1d9580}.border-violet-900\/60{border-color:#4c1d9599}.border-violet-900\/70{border-color:#4c1d95b3}.border-violet-900\/75{border-color:#4c1d95bf}.border-violet-900\/80{border-color:#4c1d95cc}.border-violet-900\/90{border-color:#4c1d95e6}.border-violet-900\/95{border-color:#4c1d95f2}.border-x-Occupation_du_sol-primary{border-left-color:var(--Occupation_du_sol-primary);border-right-color:var(--Occupation_du_sol-primary)}.border-x-Occupation_du_sol-secondary{border-left-color:var(--Occupation_du_sol-secondary);border-right-color:var(--Occupation_du_sol-secondary)}.border-x-Occupation_du_sol-tertiary{border-left-color:var(--Occupation_du_sol-tertiary);border-right-color:var(--Occupation_du_sol-tertiary)}.border-x-violet-100{--tw-border-opacity: 1;border-left-color:rgb(237 233 254 / var(--tw-border-opacity));border-right-color:rgb(237 233 254 / var(--tw-border-opacity))}.border-x-violet-100\/0{border-left-color:#ede9fe00;border-right-color:#ede9fe00}.border-x-violet-100\/10{border-left-color:#ede9fe1a;border-right-color:#ede9fe1a}.border-x-violet-100\/100{border-left-color:#ede9fe;border-right-color:#ede9fe}.border-x-violet-100\/20{border-left-color:#ede9fe33;border-right-color:#ede9fe33}.border-x-violet-100\/25{border-left-color:#ede9fe40;border-right-color:#ede9fe40}.border-x-violet-100\/30{border-left-color:#ede9fe4d;border-right-color:#ede9fe4d}.border-x-violet-100\/40{border-left-color:#ede9fe66;border-right-color:#ede9fe66}.border-x-violet-100\/5{border-left-color:#ede9fe0d;border-right-color:#ede9fe0d}.border-x-violet-100\/50{border-left-color:#ede9fe80;border-right-color:#ede9fe80}.border-x-violet-100\/60{border-left-color:#ede9fe99;border-right-color:#ede9fe99}.border-x-violet-100\/70{border-left-color:#ede9feb3;border-right-color:#ede9feb3}.border-x-violet-100\/75{border-left-color:#ede9febf;border-right-color:#ede9febf}.border-x-violet-100\/80{border-left-color:#ede9fecc;border-right-color:#ede9fecc}.border-x-violet-100\/90{border-left-color:#ede9fee6;border-right-color:#ede9fee6}.border-x-violet-100\/95{border-left-color:#ede9fef2;border-right-color:#ede9fef2}.border-x-violet-200{--tw-border-opacity: 1;border-left-color:rgb(221 214 254 / var(--tw-border-opacity));border-right-color:rgb(221 214 254 / var(--tw-border-opacity))}.border-x-violet-200\/0{border-left-color:#ddd6fe00;border-right-color:#ddd6fe00}.border-x-violet-200\/10{border-left-color:#ddd6fe1a;border-right-color:#ddd6fe1a}.border-x-violet-200\/100{border-left-color:#ddd6fe;border-right-color:#ddd6fe}.border-x-violet-200\/20{border-left-color:#ddd6fe33;border-right-color:#ddd6fe33}.border-x-violet-200\/25{border-left-color:#ddd6fe40;border-right-color:#ddd6fe40}.border-x-violet-200\/30{border-left-color:#ddd6fe4d;border-right-color:#ddd6fe4d}.border-x-violet-200\/40{border-left-color:#ddd6fe66;border-right-color:#ddd6fe66}.border-x-violet-200\/5{border-left-color:#ddd6fe0d;border-right-color:#ddd6fe0d}.border-x-violet-200\/50{border-left-color:#ddd6fe80;border-right-color:#ddd6fe80}.border-x-violet-200\/60{border-left-color:#ddd6fe99;border-right-color:#ddd6fe99}.border-x-violet-200\/70{border-left-color:#ddd6feb3;border-right-color:#ddd6feb3}.border-x-violet-200\/75{border-left-color:#ddd6febf;border-right-color:#ddd6febf}.border-x-violet-200\/80{border-left-color:#ddd6fecc;border-right-color:#ddd6fecc}.border-x-violet-200\/90{border-left-color:#ddd6fee6;border-right-color:#ddd6fee6}.border-x-violet-200\/95{border-left-color:#ddd6fef2;border-right-color:#ddd6fef2}.border-x-violet-300{--tw-border-opacity: 1;border-left-color:rgb(196 181 253 / var(--tw-border-opacity));border-right-color:rgb(196 181 253 / var(--tw-border-opacity))}.border-x-violet-300\/0{border-left-color:#c4b5fd00;border-right-color:#c4b5fd00}.border-x-violet-300\/10{border-left-color:#c4b5fd1a;border-right-color:#c4b5fd1a}.border-x-violet-300\/100{border-left-color:#c4b5fd;border-right-color:#c4b5fd}.border-x-violet-300\/20{border-left-color:#c4b5fd33;border-right-color:#c4b5fd33}.border-x-violet-300\/25{border-left-color:#c4b5fd40;border-right-color:#c4b5fd40}.border-x-violet-300\/30{border-left-color:#c4b5fd4d;border-right-color:#c4b5fd4d}.border-x-violet-300\/40{border-left-color:#c4b5fd66;border-right-color:#c4b5fd66}.border-x-violet-300\/5{border-left-color:#c4b5fd0d;border-right-color:#c4b5fd0d}.border-x-violet-300\/50{border-left-color:#c4b5fd80;border-right-color:#c4b5fd80}.border-x-violet-300\/60{border-left-color:#c4b5fd99;border-right-color:#c4b5fd99}.border-x-violet-300\/70{border-left-color:#c4b5fdb3;border-right-color:#c4b5fdb3}.border-x-violet-300\/75{border-left-color:#c4b5fdbf;border-right-color:#c4b5fdbf}.border-x-violet-300\/80{border-left-color:#c4b5fdcc;border-right-color:#c4b5fdcc}.border-x-violet-300\/90{border-left-color:#c4b5fde6;border-right-color:#c4b5fde6}.border-x-violet-300\/95{border-left-color:#c4b5fdf2;border-right-color:#c4b5fdf2}.border-x-violet-400{--tw-border-opacity: 1;border-left-color:rgb(167 139 250 / var(--tw-border-opacity));border-right-color:rgb(167 139 250 / var(--tw-border-opacity))}.border-x-violet-400\/0{border-left-color:#a78bfa00;border-right-color:#a78bfa00}.border-x-violet-400\/10{border-left-color:#a78bfa1a;border-right-color:#a78bfa1a}.border-x-violet-400\/100{border-left-color:#a78bfa;border-right-color:#a78bfa}.border-x-violet-400\/20{border-left-color:#a78bfa33;border-right-color:#a78bfa33}.border-x-violet-400\/25{border-left-color:#a78bfa40;border-right-color:#a78bfa40}.border-x-violet-400\/30{border-left-color:#a78bfa4d;border-right-color:#a78bfa4d}.border-x-violet-400\/40{border-left-color:#a78bfa66;border-right-color:#a78bfa66}.border-x-violet-400\/5{border-left-color:#a78bfa0d;border-right-color:#a78bfa0d}.border-x-violet-400\/50{border-left-color:#a78bfa80;border-right-color:#a78bfa80}.border-x-violet-400\/60{border-left-color:#a78bfa99;border-right-color:#a78bfa99}.border-x-violet-400\/70{border-left-color:#a78bfab3;border-right-color:#a78bfab3}.border-x-violet-400\/75{border-left-color:#a78bfabf;border-right-color:#a78bfabf}.border-x-violet-400\/80{border-left-color:#a78bfacc;border-right-color:#a78bfacc}.border-x-violet-400\/90{border-left-color:#a78bfae6;border-right-color:#a78bfae6}.border-x-violet-400\/95{border-left-color:#a78bfaf2;border-right-color:#a78bfaf2}.border-x-violet-50{--tw-border-opacity: 1;border-left-color:rgb(245 243 255 / var(--tw-border-opacity));border-right-color:rgb(245 243 255 / var(--tw-border-opacity))}.border-x-violet-50\/0{border-left-color:#f5f3ff00;border-right-color:#f5f3ff00}.border-x-violet-50\/10{border-left-color:#f5f3ff1a;border-right-color:#f5f3ff1a}.border-x-violet-50\/100{border-left-color:#f5f3ff;border-right-color:#f5f3ff}.border-x-violet-50\/20{border-left-color:#f5f3ff33;border-right-color:#f5f3ff33}.border-x-violet-50\/25{border-left-color:#f5f3ff40;border-right-color:#f5f3ff40}.border-x-violet-50\/30{border-left-color:#f5f3ff4d;border-right-color:#f5f3ff4d}.border-x-violet-50\/40{border-left-color:#f5f3ff66;border-right-color:#f5f3ff66}.border-x-violet-50\/5{border-left-color:#f5f3ff0d;border-right-color:#f5f3ff0d}.border-x-violet-50\/50{border-left-color:#f5f3ff80;border-right-color:#f5f3ff80}.border-x-violet-50\/60{border-left-color:#f5f3ff99;border-right-color:#f5f3ff99}.border-x-violet-50\/70{border-left-color:#f5f3ffb3;border-right-color:#f5f3ffb3}.border-x-violet-50\/75{border-left-color:#f5f3ffbf;border-right-color:#f5f3ffbf}.border-x-violet-50\/80{border-left-color:#f5f3ffcc;border-right-color:#f5f3ffcc}.border-x-violet-50\/90{border-left-color:#f5f3ffe6;border-right-color:#f5f3ffe6}.border-x-violet-50\/95{border-left-color:#f5f3fff2;border-right-color:#f5f3fff2}.border-x-violet-500{--tw-border-opacity: 1;border-left-color:rgb(139 92 246 / var(--tw-border-opacity));border-right-color:rgb(139 92 246 / var(--tw-border-opacity))}.border-x-violet-500\/0{border-left-color:#8b5cf600;border-right-color:#8b5cf600}.border-x-violet-500\/10{border-left-color:#8b5cf61a;border-right-color:#8b5cf61a}.border-x-violet-500\/100{border-left-color:#8b5cf6;border-right-color:#8b5cf6}.border-x-violet-500\/20{border-left-color:#8b5cf633;border-right-color:#8b5cf633}.border-x-violet-500\/25{border-left-color:#8b5cf640;border-right-color:#8b5cf640}.border-x-violet-500\/30{border-left-color:#8b5cf64d;border-right-color:#8b5cf64d}.border-x-violet-500\/40{border-left-color:#8b5cf666;border-right-color:#8b5cf666}.border-x-violet-500\/5{border-left-color:#8b5cf60d;border-right-color:#8b5cf60d}.border-x-violet-500\/50{border-left-color:#8b5cf680;border-right-color:#8b5cf680}.border-x-violet-500\/60{border-left-color:#8b5cf699;border-right-color:#8b5cf699}.border-x-violet-500\/70{border-left-color:#8b5cf6b3;border-right-color:#8b5cf6b3}.border-x-violet-500\/75{border-left-color:#8b5cf6bf;border-right-color:#8b5cf6bf}.border-x-violet-500\/80{border-left-color:#8b5cf6cc;border-right-color:#8b5cf6cc}.border-x-violet-500\/90{border-left-color:#8b5cf6e6;border-right-color:#8b5cf6e6}.border-x-violet-500\/95{border-left-color:#8b5cf6f2;border-right-color:#8b5cf6f2}.border-x-violet-600{--tw-border-opacity: 1;border-left-color:rgb(124 58 237 / var(--tw-border-opacity));border-right-color:rgb(124 58 237 / var(--tw-border-opacity))}.border-x-violet-600\/0{border-left-color:#7c3aed00;border-right-color:#7c3aed00}.border-x-violet-600\/10{border-left-color:#7c3aed1a;border-right-color:#7c3aed1a}.border-x-violet-600\/100{border-left-color:#7c3aed;border-right-color:#7c3aed}.border-x-violet-600\/20{border-left-color:#7c3aed33;border-right-color:#7c3aed33}.border-x-violet-600\/25{border-left-color:#7c3aed40;border-right-color:#7c3aed40}.border-x-violet-600\/30{border-left-color:#7c3aed4d;border-right-color:#7c3aed4d}.border-x-violet-600\/40{border-left-color:#7c3aed66;border-right-color:#7c3aed66}.border-x-violet-600\/5{border-left-color:#7c3aed0d;border-right-color:#7c3aed0d}.border-x-violet-600\/50{border-left-color:#7c3aed80;border-right-color:#7c3aed80}.border-x-violet-600\/60{border-left-color:#7c3aed99;border-right-color:#7c3aed99}.border-x-violet-600\/70{border-left-color:#7c3aedb3;border-right-color:#7c3aedb3}.border-x-violet-600\/75{border-left-color:#7c3aedbf;border-right-color:#7c3aedbf}.border-x-violet-600\/80{border-left-color:#7c3aedcc;border-right-color:#7c3aedcc}.border-x-violet-600\/90{border-left-color:#7c3aede6;border-right-color:#7c3aede6}.border-x-violet-600\/95{border-left-color:#7c3aedf2;border-right-color:#7c3aedf2}.border-x-violet-700{--tw-border-opacity: 1;border-left-color:rgb(109 40 217 / var(--tw-border-opacity));border-right-color:rgb(109 40 217 / var(--tw-border-opacity))}.border-x-violet-700\/0{border-left-color:#6d28d900;border-right-color:#6d28d900}.border-x-violet-700\/10{border-left-color:#6d28d91a;border-right-color:#6d28d91a}.border-x-violet-700\/100{border-left-color:#6d28d9;border-right-color:#6d28d9}.border-x-violet-700\/20{border-left-color:#6d28d933;border-right-color:#6d28d933}.border-x-violet-700\/25{border-left-color:#6d28d940;border-right-color:#6d28d940}.border-x-violet-700\/30{border-left-color:#6d28d94d;border-right-color:#6d28d94d}.border-x-violet-700\/40{border-left-color:#6d28d966;border-right-color:#6d28d966}.border-x-violet-700\/5{border-left-color:#6d28d90d;border-right-color:#6d28d90d}.border-x-violet-700\/50{border-left-color:#6d28d980;border-right-color:#6d28d980}.border-x-violet-700\/60{border-left-color:#6d28d999;border-right-color:#6d28d999}.border-x-violet-700\/70{border-left-color:#6d28d9b3;border-right-color:#6d28d9b3}.border-x-violet-700\/75{border-left-color:#6d28d9bf;border-right-color:#6d28d9bf}.border-x-violet-700\/80{border-left-color:#6d28d9cc;border-right-color:#6d28d9cc}.border-x-violet-700\/90{border-left-color:#6d28d9e6;border-right-color:#6d28d9e6}.border-x-violet-700\/95{border-left-color:#6d28d9f2;border-right-color:#6d28d9f2}.border-x-violet-800{--tw-border-opacity: 1;border-left-color:rgb(91 33 182 / var(--tw-border-opacity));border-right-color:rgb(91 33 182 / var(--tw-border-opacity))}.border-x-violet-800\/0{border-left-color:#5b21b600;border-right-color:#5b21b600}.border-x-violet-800\/10{border-left-color:#5b21b61a;border-right-color:#5b21b61a}.border-x-violet-800\/100{border-left-color:#5b21b6;border-right-color:#5b21b6}.border-x-violet-800\/20{border-left-color:#5b21b633;border-right-color:#5b21b633}.border-x-violet-800\/25{border-left-color:#5b21b640;border-right-color:#5b21b640}.border-x-violet-800\/30{border-left-color:#5b21b64d;border-right-color:#5b21b64d}.border-x-violet-800\/40{border-left-color:#5b21b666;border-right-color:#5b21b666}.border-x-violet-800\/5{border-left-color:#5b21b60d;border-right-color:#5b21b60d}.border-x-violet-800\/50{border-left-color:#5b21b680;border-right-color:#5b21b680}.border-x-violet-800\/60{border-left-color:#5b21b699;border-right-color:#5b21b699}.border-x-violet-800\/70{border-left-color:#5b21b6b3;border-right-color:#5b21b6b3}.border-x-violet-800\/75{border-left-color:#5b21b6bf;border-right-color:#5b21b6bf}.border-x-violet-800\/80{border-left-color:#5b21b6cc;border-right-color:#5b21b6cc}.border-x-violet-800\/90{border-left-color:#5b21b6e6;border-right-color:#5b21b6e6}.border-x-violet-800\/95{border-left-color:#5b21b6f2;border-right-color:#5b21b6f2}.border-x-violet-900{--tw-border-opacity: 1;border-left-color:rgb(76 29 149 / var(--tw-border-opacity));border-right-color:rgb(76 29 149 / var(--tw-border-opacity))}.border-x-violet-900\/0{border-left-color:#4c1d9500;border-right-color:#4c1d9500}.border-x-violet-900\/10{border-left-color:#4c1d951a;border-right-color:#4c1d951a}.border-x-violet-900\/100{border-left-color:#4c1d95;border-right-color:#4c1d95}.border-x-violet-900\/20{border-left-color:#4c1d9533;border-right-color:#4c1d9533}.border-x-violet-900\/25{border-left-color:#4c1d9540;border-right-color:#4c1d9540}.border-x-violet-900\/30{border-left-color:#4c1d954d;border-right-color:#4c1d954d}.border-x-violet-900\/40{border-left-color:#4c1d9566;border-right-color:#4c1d9566}.border-x-violet-900\/5{border-left-color:#4c1d950d;border-right-color:#4c1d950d}.border-x-violet-900\/50{border-left-color:#4c1d9580;border-right-color:#4c1d9580}.border-x-violet-900\/60{border-left-color:#4c1d9599;border-right-color:#4c1d9599}.border-x-violet-900\/70{border-left-color:#4c1d95b3;border-right-color:#4c1d95b3}.border-x-violet-900\/75{border-left-color:#4c1d95bf;border-right-color:#4c1d95bf}.border-x-violet-900\/80{border-left-color:#4c1d95cc;border-right-color:#4c1d95cc}.border-x-violet-900\/90{border-left-color:#4c1d95e6;border-right-color:#4c1d95e6}.border-x-violet-900\/95{border-left-color:#4c1d95f2;border-right-color:#4c1d95f2}.border-y-Occupation_du_sol-primary{border-top-color:var(--Occupation_du_sol-primary);border-bottom-color:var(--Occupation_du_sol-primary)}.border-y-Occupation_du_sol-secondary{border-top-color:var(--Occupation_du_sol-secondary);border-bottom-color:var(--Occupation_du_sol-secondary)}.border-y-Occupation_du_sol-tertiary{border-top-color:var(--Occupation_du_sol-tertiary);border-bottom-color:var(--Occupation_du_sol-tertiary)}.border-y-violet-100{--tw-border-opacity: 1;border-top-color:rgb(237 233 254 / var(--tw-border-opacity));border-bottom-color:rgb(237 233 254 / var(--tw-border-opacity))}.border-y-violet-100\/0{border-top-color:#ede9fe00;border-bottom-color:#ede9fe00}.border-y-violet-100\/10{border-top-color:#ede9fe1a;border-bottom-color:#ede9fe1a}.border-y-violet-100\/100{border-top-color:#ede9fe;border-bottom-color:#ede9fe}.border-y-violet-100\/20{border-top-color:#ede9fe33;border-bottom-color:#ede9fe33}.border-y-violet-100\/25{border-top-color:#ede9fe40;border-bottom-color:#ede9fe40}.border-y-violet-100\/30{border-top-color:#ede9fe4d;border-bottom-color:#ede9fe4d}.border-y-violet-100\/40{border-top-color:#ede9fe66;border-bottom-color:#ede9fe66}.border-y-violet-100\/5{border-top-color:#ede9fe0d;border-bottom-color:#ede9fe0d}.border-y-violet-100\/50{border-top-color:#ede9fe80;border-bottom-color:#ede9fe80}.border-y-violet-100\/60{border-top-color:#ede9fe99;border-bottom-color:#ede9fe99}.border-y-violet-100\/70{border-top-color:#ede9feb3;border-bottom-color:#ede9feb3}.border-y-violet-100\/75{border-top-color:#ede9febf;border-bottom-color:#ede9febf}.border-y-violet-100\/80{border-top-color:#ede9fecc;border-bottom-color:#ede9fecc}.border-y-violet-100\/90{border-top-color:#ede9fee6;border-bottom-color:#ede9fee6}.border-y-violet-100\/95{border-top-color:#ede9fef2;border-bottom-color:#ede9fef2}.border-y-violet-200{--tw-border-opacity: 1;border-top-color:rgb(221 214 254 / var(--tw-border-opacity));border-bottom-color:rgb(221 214 254 / var(--tw-border-opacity))}.border-y-violet-200\/0{border-top-color:#ddd6fe00;border-bottom-color:#ddd6fe00}.border-y-violet-200\/10{border-top-color:#ddd6fe1a;border-bottom-color:#ddd6fe1a}.border-y-violet-200\/100{border-top-color:#ddd6fe;border-bottom-color:#ddd6fe}.border-y-violet-200\/20{border-top-color:#ddd6fe33;border-bottom-color:#ddd6fe33}.border-y-violet-200\/25{border-top-color:#ddd6fe40;border-bottom-color:#ddd6fe40}.border-y-violet-200\/30{border-top-color:#ddd6fe4d;border-bottom-color:#ddd6fe4d}.border-y-violet-200\/40{border-top-color:#ddd6fe66;border-bottom-color:#ddd6fe66}.border-y-violet-200\/5{border-top-color:#ddd6fe0d;border-bottom-color:#ddd6fe0d}.border-y-violet-200\/50{border-top-color:#ddd6fe80;border-bottom-color:#ddd6fe80}.border-y-violet-200\/60{border-top-color:#ddd6fe99;border-bottom-color:#ddd6fe99}.border-y-violet-200\/70{border-top-color:#ddd6feb3;border-bottom-color:#ddd6feb3}.border-y-violet-200\/75{border-top-color:#ddd6febf;border-bottom-color:#ddd6febf}.border-y-violet-200\/80{border-top-color:#ddd6fecc;border-bottom-color:#ddd6fecc}.border-y-violet-200\/90{border-top-color:#ddd6fee6;border-bottom-color:#ddd6fee6}.border-y-violet-200\/95{border-top-color:#ddd6fef2;border-bottom-color:#ddd6fef2}.border-y-violet-300{--tw-border-opacity: 1;border-top-color:rgb(196 181 253 / var(--tw-border-opacity));border-bottom-color:rgb(196 181 253 / var(--tw-border-opacity))}.border-y-violet-300\/0{border-top-color:#c4b5fd00;border-bottom-color:#c4b5fd00}.border-y-violet-300\/10{border-top-color:#c4b5fd1a;border-bottom-color:#c4b5fd1a}.border-y-violet-300\/100{border-top-color:#c4b5fd;border-bottom-color:#c4b5fd}.border-y-violet-300\/20{border-top-color:#c4b5fd33;border-bottom-color:#c4b5fd33}.border-y-violet-300\/25{border-top-color:#c4b5fd40;border-bottom-color:#c4b5fd40}.border-y-violet-300\/30{border-top-color:#c4b5fd4d;border-bottom-color:#c4b5fd4d}.border-y-violet-300\/40{border-top-color:#c4b5fd66;border-bottom-color:#c4b5fd66}.border-y-violet-300\/5{border-top-color:#c4b5fd0d;border-bottom-color:#c4b5fd0d}.border-y-violet-300\/50{border-top-color:#c4b5fd80;border-bottom-color:#c4b5fd80}.border-y-violet-300\/60{border-top-color:#c4b5fd99;border-bottom-color:#c4b5fd99}.border-y-violet-300\/70{border-top-color:#c4b5fdb3;border-bottom-color:#c4b5fdb3}.border-y-violet-300\/75{border-top-color:#c4b5fdbf;border-bottom-color:#c4b5fdbf}.border-y-violet-300\/80{border-top-color:#c4b5fdcc;border-bottom-color:#c4b5fdcc}.border-y-violet-300\/90{border-top-color:#c4b5fde6;border-bottom-color:#c4b5fde6}.border-y-violet-300\/95{border-top-color:#c4b5fdf2;border-bottom-color:#c4b5fdf2}.border-y-violet-400{--tw-border-opacity: 1;border-top-color:rgb(167 139 250 / var(--tw-border-opacity));border-bottom-color:rgb(167 139 250 / var(--tw-border-opacity))}.border-y-violet-400\/0{border-top-color:#a78bfa00;border-bottom-color:#a78bfa00}.border-y-violet-400\/10{border-top-color:#a78bfa1a;border-bottom-color:#a78bfa1a}.border-y-violet-400\/100{border-top-color:#a78bfa;border-bottom-color:#a78bfa}.border-y-violet-400\/20{border-top-color:#a78bfa33;border-bottom-color:#a78bfa33}.border-y-violet-400\/25{border-top-color:#a78bfa40;border-bottom-color:#a78bfa40}.border-y-violet-400\/30{border-top-color:#a78bfa4d;border-bottom-color:#a78bfa4d}.border-y-violet-400\/40{border-top-color:#a78bfa66;border-bottom-color:#a78bfa66}.border-y-violet-400\/5{border-top-color:#a78bfa0d;border-bottom-color:#a78bfa0d}.border-y-violet-400\/50{border-top-color:#a78bfa80;border-bottom-color:#a78bfa80}.border-y-violet-400\/60{border-top-color:#a78bfa99;border-bottom-color:#a78bfa99}.border-y-violet-400\/70{border-top-color:#a78bfab3;border-bottom-color:#a78bfab3}.border-y-violet-400\/75{border-top-color:#a78bfabf;border-bottom-color:#a78bfabf}.border-y-violet-400\/80{border-top-color:#a78bfacc;border-bottom-color:#a78bfacc}.border-y-violet-400\/90{border-top-color:#a78bfae6;border-bottom-color:#a78bfae6}.border-y-violet-400\/95{border-top-color:#a78bfaf2;border-bottom-color:#a78bfaf2}.border-y-violet-50{--tw-border-opacity: 1;border-top-color:rgb(245 243 255 / var(--tw-border-opacity));border-bottom-color:rgb(245 243 255 / var(--tw-border-opacity))}.border-y-violet-50\/0{border-top-color:#f5f3ff00;border-bottom-color:#f5f3ff00}.border-y-violet-50\/10{border-top-color:#f5f3ff1a;border-bottom-color:#f5f3ff1a}.border-y-violet-50\/100{border-top-color:#f5f3ff;border-bottom-color:#f5f3ff}.border-y-violet-50\/20{border-top-color:#f5f3ff33;border-bottom-color:#f5f3ff33}.border-y-violet-50\/25{border-top-color:#f5f3ff40;border-bottom-color:#f5f3ff40}.border-y-violet-50\/30{border-top-color:#f5f3ff4d;border-bottom-color:#f5f3ff4d}.border-y-violet-50\/40{border-top-color:#f5f3ff66;border-bottom-color:#f5f3ff66}.border-y-violet-50\/5{border-top-color:#f5f3ff0d;border-bottom-color:#f5f3ff0d}.border-y-violet-50\/50{border-top-color:#f5f3ff80;border-bottom-color:#f5f3ff80}.border-y-violet-50\/60{border-top-color:#f5f3ff99;border-bottom-color:#f5f3ff99}.border-y-violet-50\/70{border-top-color:#f5f3ffb3;border-bottom-color:#f5f3ffb3}.border-y-violet-50\/75{border-top-color:#f5f3ffbf;border-bottom-color:#f5f3ffbf}.border-y-violet-50\/80{border-top-color:#f5f3ffcc;border-bottom-color:#f5f3ffcc}.border-y-violet-50\/90{border-top-color:#f5f3ffe6;border-bottom-color:#f5f3ffe6}.border-y-violet-50\/95{border-top-color:#f5f3fff2;border-bottom-color:#f5f3fff2}.border-y-violet-500{--tw-border-opacity: 1;border-top-color:rgb(139 92 246 / var(--tw-border-opacity));border-bottom-color:rgb(139 92 246 / var(--tw-border-opacity))}.border-y-violet-500\/0{border-top-color:#8b5cf600;border-bottom-color:#8b5cf600}.border-y-violet-500\/10{border-top-color:#8b5cf61a;border-bottom-color:#8b5cf61a}.border-y-violet-500\/100{border-top-color:#8b5cf6;border-bottom-color:#8b5cf6}.border-y-violet-500\/20{border-top-color:#8b5cf633;border-bottom-color:#8b5cf633}.border-y-violet-500\/25{border-top-color:#8b5cf640;border-bottom-color:#8b5cf640}.border-y-violet-500\/30{border-top-color:#8b5cf64d;border-bottom-color:#8b5cf64d}.border-y-violet-500\/40{border-top-color:#8b5cf666;border-bottom-color:#8b5cf666}.border-y-violet-500\/5{border-top-color:#8b5cf60d;border-bottom-color:#8b5cf60d}.border-y-violet-500\/50{border-top-color:#8b5cf680;border-bottom-color:#8b5cf680}.border-y-violet-500\/60{border-top-color:#8b5cf699;border-bottom-color:#8b5cf699}.border-y-violet-500\/70{border-top-color:#8b5cf6b3;border-bottom-color:#8b5cf6b3}.border-y-violet-500\/75{border-top-color:#8b5cf6bf;border-bottom-color:#8b5cf6bf}.border-y-violet-500\/80{border-top-color:#8b5cf6cc;border-bottom-color:#8b5cf6cc}.border-y-violet-500\/90{border-top-color:#8b5cf6e6;border-bottom-color:#8b5cf6e6}.border-y-violet-500\/95{border-top-color:#8b5cf6f2;border-bottom-color:#8b5cf6f2}.border-y-violet-600{--tw-border-opacity: 1;border-top-color:rgb(124 58 237 / var(--tw-border-opacity));border-bottom-color:rgb(124 58 237 / var(--tw-border-opacity))}.border-y-violet-600\/0{border-top-color:#7c3aed00;border-bottom-color:#7c3aed00}.border-y-violet-600\/10{border-top-color:#7c3aed1a;border-bottom-color:#7c3aed1a}.border-y-violet-600\/100{border-top-color:#7c3aed;border-bottom-color:#7c3aed}.border-y-violet-600\/20{border-top-color:#7c3aed33;border-bottom-color:#7c3aed33}.border-y-violet-600\/25{border-top-color:#7c3aed40;border-bottom-color:#7c3aed40}.border-y-violet-600\/30{border-top-color:#7c3aed4d;border-bottom-color:#7c3aed4d}.border-y-violet-600\/40{border-top-color:#7c3aed66;border-bottom-color:#7c3aed66}.border-y-violet-600\/5{border-top-color:#7c3aed0d;border-bottom-color:#7c3aed0d}.border-y-violet-600\/50{border-top-color:#7c3aed80;border-bottom-color:#7c3aed80}.border-y-violet-600\/60{border-top-color:#7c3aed99;border-bottom-color:#7c3aed99}.border-y-violet-600\/70{border-top-color:#7c3aedb3;border-bottom-color:#7c3aedb3}.border-y-violet-600\/75{border-top-color:#7c3aedbf;border-bottom-color:#7c3aedbf}.border-y-violet-600\/80{border-top-color:#7c3aedcc;border-bottom-color:#7c3aedcc}.border-y-violet-600\/90{border-top-color:#7c3aede6;border-bottom-color:#7c3aede6}.border-y-violet-600\/95{border-top-color:#7c3aedf2;border-bottom-color:#7c3aedf2}.border-y-violet-700{--tw-border-opacity: 1;border-top-color:rgb(109 40 217 / var(--tw-border-opacity));border-bottom-color:rgb(109 40 217 / var(--tw-border-opacity))}.border-y-violet-700\/0{border-top-color:#6d28d900;border-bottom-color:#6d28d900}.border-y-violet-700\/10{border-top-color:#6d28d91a;border-bottom-color:#6d28d91a}.border-y-violet-700\/100{border-top-color:#6d28d9;border-bottom-color:#6d28d9}.border-y-violet-700\/20{border-top-color:#6d28d933;border-bottom-color:#6d28d933}.border-y-violet-700\/25{border-top-color:#6d28d940;border-bottom-color:#6d28d940}.border-y-violet-700\/30{border-top-color:#6d28d94d;border-bottom-color:#6d28d94d}.border-y-violet-700\/40{border-top-color:#6d28d966;border-bottom-color:#6d28d966}.border-y-violet-700\/5{border-top-color:#6d28d90d;border-bottom-color:#6d28d90d}.border-y-violet-700\/50{border-top-color:#6d28d980;border-bottom-color:#6d28d980}.border-y-violet-700\/60{border-top-color:#6d28d999;border-bottom-color:#6d28d999}.border-y-violet-700\/70{border-top-color:#6d28d9b3;border-bottom-color:#6d28d9b3}.border-y-violet-700\/75{border-top-color:#6d28d9bf;border-bottom-color:#6d28d9bf}.border-y-violet-700\/80{border-top-color:#6d28d9cc;border-bottom-color:#6d28d9cc}.border-y-violet-700\/90{border-top-color:#6d28d9e6;border-bottom-color:#6d28d9e6}.border-y-violet-700\/95{border-top-color:#6d28d9f2;border-bottom-color:#6d28d9f2}.border-y-violet-800{--tw-border-opacity: 1;border-top-color:rgb(91 33 182 / var(--tw-border-opacity));border-bottom-color:rgb(91 33 182 / var(--tw-border-opacity))}.border-y-violet-800\/0{border-top-color:#5b21b600;border-bottom-color:#5b21b600}.border-y-violet-800\/10{border-top-color:#5b21b61a;border-bottom-color:#5b21b61a}.border-y-violet-800\/100{border-top-color:#5b21b6;border-bottom-color:#5b21b6}.border-y-violet-800\/20{border-top-color:#5b21b633;border-bottom-color:#5b21b633}.border-y-violet-800\/25{border-top-color:#5b21b640;border-bottom-color:#5b21b640}.border-y-violet-800\/30{border-top-color:#5b21b64d;border-bottom-color:#5b21b64d}.border-y-violet-800\/40{border-top-color:#5b21b666;border-bottom-color:#5b21b666}.border-y-violet-800\/5{border-top-color:#5b21b60d;border-bottom-color:#5b21b60d}.border-y-violet-800\/50{border-top-color:#5b21b680;border-bottom-color:#5b21b680}.border-y-violet-800\/60{border-top-color:#5b21b699;border-bottom-color:#5b21b699}.border-y-violet-800\/70{border-top-color:#5b21b6b3;border-bottom-color:#5b21b6b3}.border-y-violet-800\/75{border-top-color:#5b21b6bf;border-bottom-color:#5b21b6bf}.border-y-violet-800\/80{border-top-color:#5b21b6cc;border-bottom-color:#5b21b6cc}.border-y-violet-800\/90{border-top-color:#5b21b6e6;border-bottom-color:#5b21b6e6}.border-y-violet-800\/95{border-top-color:#5b21b6f2;border-bottom-color:#5b21b6f2}.border-y-violet-900{--tw-border-opacity: 1;border-top-color:rgb(76 29 149 / var(--tw-border-opacity));border-bottom-color:rgb(76 29 149 / var(--tw-border-opacity))}.border-y-violet-900\/0{border-top-color:#4c1d9500;border-bottom-color:#4c1d9500}.border-y-violet-900\/10{border-top-color:#4c1d951a;border-bottom-color:#4c1d951a}.border-y-violet-900\/100{border-top-color:#4c1d95;border-bottom-color:#4c1d95}.border-y-violet-900\/20{border-top-color:#4c1d9533;border-bottom-color:#4c1d9533}.border-y-violet-900\/25{border-top-color:#4c1d9540;border-bottom-color:#4c1d9540}.border-y-violet-900\/30{border-top-color:#4c1d954d;border-bottom-color:#4c1d954d}.border-y-violet-900\/40{border-top-color:#4c1d9566;border-bottom-color:#4c1d9566}.border-y-violet-900\/5{border-top-color:#4c1d950d;border-bottom-color:#4c1d950d}.border-y-violet-900\/50{border-top-color:#4c1d9580;border-bottom-color:#4c1d9580}.border-y-violet-900\/60{border-top-color:#4c1d9599;border-bottom-color:#4c1d9599}.border-y-violet-900\/70{border-top-color:#4c1d95b3;border-bottom-color:#4c1d95b3}.border-y-violet-900\/75{border-top-color:#4c1d95bf;border-bottom-color:#4c1d95bf}.border-y-violet-900\/80{border-top-color:#4c1d95cc;border-bottom-color:#4c1d95cc}.border-y-violet-900\/90{border-top-color:#4c1d95e6;border-bottom-color:#4c1d95e6}.border-y-violet-900\/95{border-top-color:#4c1d95f2;border-bottom-color:#4c1d95f2}.border-b-Occupation_du_sol-primary{border-bottom-color:var(--Occupation_du_sol-primary)}.border-b-Occupation_du_sol-secondary{border-bottom-color:var(--Occupation_du_sol-secondary)}.border-b-Occupation_du_sol-tertiary{border-bottom-color:var(--Occupation_du_sol-tertiary)}.border-b-violet-100{--tw-border-opacity: 1;border-bottom-color:rgb(237 233 254 / var(--tw-border-opacity))}.border-b-violet-100\/0{border-bottom-color:#ede9fe00}.border-b-violet-100\/10{border-bottom-color:#ede9fe1a}.border-b-violet-100\/100{border-bottom-color:#ede9fe}.border-b-violet-100\/20{border-bottom-color:#ede9fe33}.border-b-violet-100\/25{border-bottom-color:#ede9fe40}.border-b-violet-100\/30{border-bottom-color:#ede9fe4d}.border-b-violet-100\/40{border-bottom-color:#ede9fe66}.border-b-violet-100\/5{border-bottom-color:#ede9fe0d}.border-b-violet-100\/50{border-bottom-color:#ede9fe80}.border-b-violet-100\/60{border-bottom-color:#ede9fe99}.border-b-violet-100\/70{border-bottom-color:#ede9feb3}.border-b-violet-100\/75{border-bottom-color:#ede9febf}.border-b-violet-100\/80{border-bottom-color:#ede9fecc}.border-b-violet-100\/90{border-bottom-color:#ede9fee6}.border-b-violet-100\/95{border-bottom-color:#ede9fef2}.border-b-violet-200{--tw-border-opacity: 1;border-bottom-color:rgb(221 214 254 / var(--tw-border-opacity))}.border-b-violet-200\/0{border-bottom-color:#ddd6fe00}.border-b-violet-200\/10{border-bottom-color:#ddd6fe1a}.border-b-violet-200\/100{border-bottom-color:#ddd6fe}.border-b-violet-200\/20{border-bottom-color:#ddd6fe33}.border-b-violet-200\/25{border-bottom-color:#ddd6fe40}.border-b-violet-200\/30{border-bottom-color:#ddd6fe4d}.border-b-violet-200\/40{border-bottom-color:#ddd6fe66}.border-b-violet-200\/5{border-bottom-color:#ddd6fe0d}.border-b-violet-200\/50{border-bottom-color:#ddd6fe80}.border-b-violet-200\/60{border-bottom-color:#ddd6fe99}.border-b-violet-200\/70{border-bottom-color:#ddd6feb3}.border-b-violet-200\/75{border-bottom-color:#ddd6febf}.border-b-violet-200\/80{border-bottom-color:#ddd6fecc}.border-b-violet-200\/90{border-bottom-color:#ddd6fee6}.border-b-violet-200\/95{border-bottom-color:#ddd6fef2}.border-b-violet-300{--tw-border-opacity: 1;border-bottom-color:rgb(196 181 253 / var(--tw-border-opacity))}.border-b-violet-300\/0{border-bottom-color:#c4b5fd00}.border-b-violet-300\/10{border-bottom-color:#c4b5fd1a}.border-b-violet-300\/100{border-bottom-color:#c4b5fd}.border-b-violet-300\/20{border-bottom-color:#c4b5fd33}.border-b-violet-300\/25{border-bottom-color:#c4b5fd40}.border-b-violet-300\/30{border-bottom-color:#c4b5fd4d}.border-b-violet-300\/40{border-bottom-color:#c4b5fd66}.border-b-violet-300\/5{border-bottom-color:#c4b5fd0d}.border-b-violet-300\/50{border-bottom-color:#c4b5fd80}.border-b-violet-300\/60{border-bottom-color:#c4b5fd99}.border-b-violet-300\/70{border-bottom-color:#c4b5fdb3}.border-b-violet-300\/75{border-bottom-color:#c4b5fdbf}.border-b-violet-300\/80{border-bottom-color:#c4b5fdcc}.border-b-violet-300\/90{border-bottom-color:#c4b5fde6}.border-b-violet-300\/95{border-bottom-color:#c4b5fdf2}.border-b-violet-400{--tw-border-opacity: 1;border-bottom-color:rgb(167 139 250 / var(--tw-border-opacity))}.border-b-violet-400\/0{border-bottom-color:#a78bfa00}.border-b-violet-400\/10{border-bottom-color:#a78bfa1a}.border-b-violet-400\/100{border-bottom-color:#a78bfa}.border-b-violet-400\/20{border-bottom-color:#a78bfa33}.border-b-violet-400\/25{border-bottom-color:#a78bfa40}.border-b-violet-400\/30{border-bottom-color:#a78bfa4d}.border-b-violet-400\/40{border-bottom-color:#a78bfa66}.border-b-violet-400\/5{border-bottom-color:#a78bfa0d}.border-b-violet-400\/50{border-bottom-color:#a78bfa80}.border-b-violet-400\/60{border-bottom-color:#a78bfa99}.border-b-violet-400\/70{border-bottom-color:#a78bfab3}.border-b-violet-400\/75{border-bottom-color:#a78bfabf}.border-b-violet-400\/80{border-bottom-color:#a78bfacc}.border-b-violet-400\/90{border-bottom-color:#a78bfae6}.border-b-violet-400\/95{border-bottom-color:#a78bfaf2}.border-b-violet-50{--tw-border-opacity: 1;border-bottom-color:rgb(245 243 255 / var(--tw-border-opacity))}.border-b-violet-50\/0{border-bottom-color:#f5f3ff00}.border-b-violet-50\/10{border-bottom-color:#f5f3ff1a}.border-b-violet-50\/100{border-bottom-color:#f5f3ff}.border-b-violet-50\/20{border-bottom-color:#f5f3ff33}.border-b-violet-50\/25{border-bottom-color:#f5f3ff40}.border-b-violet-50\/30{border-bottom-color:#f5f3ff4d}.border-b-violet-50\/40{border-bottom-color:#f5f3ff66}.border-b-violet-50\/5{border-bottom-color:#f5f3ff0d}.border-b-violet-50\/50{border-bottom-color:#f5f3ff80}.border-b-violet-50\/60{border-bottom-color:#f5f3ff99}.border-b-violet-50\/70{border-bottom-color:#f5f3ffb3}.border-b-violet-50\/75{border-bottom-color:#f5f3ffbf}.border-b-violet-50\/80{border-bottom-color:#f5f3ffcc}.border-b-violet-50\/90{border-bottom-color:#f5f3ffe6}.border-b-violet-50\/95{border-bottom-color:#f5f3fff2}.border-b-violet-500{--tw-border-opacity: 1;border-bottom-color:rgb(139 92 246 / var(--tw-border-opacity))}.border-b-violet-500\/0{border-bottom-color:#8b5cf600}.border-b-violet-500\/10{border-bottom-color:#8b5cf61a}.border-b-violet-500\/100{border-bottom-color:#8b5cf6}.border-b-violet-500\/20{border-bottom-color:#8b5cf633}.border-b-violet-500\/25{border-bottom-color:#8b5cf640}.border-b-violet-500\/30{border-bottom-color:#8b5cf64d}.border-b-violet-500\/40{border-bottom-color:#8b5cf666}.border-b-violet-500\/5{border-bottom-color:#8b5cf60d}.border-b-violet-500\/50{border-bottom-color:#8b5cf680}.border-b-violet-500\/60{border-bottom-color:#8b5cf699}.border-b-violet-500\/70{border-bottom-color:#8b5cf6b3}.border-b-violet-500\/75{border-bottom-color:#8b5cf6bf}.border-b-violet-500\/80{border-bottom-color:#8b5cf6cc}.border-b-violet-500\/90{border-bottom-color:#8b5cf6e6}.border-b-violet-500\/95{border-bottom-color:#8b5cf6f2}.border-b-violet-600{--tw-border-opacity: 1;border-bottom-color:rgb(124 58 237 / var(--tw-border-opacity))}.border-b-violet-600\/0{border-bottom-color:#7c3aed00}.border-b-violet-600\/10{border-bottom-color:#7c3aed1a}.border-b-violet-600\/100{border-bottom-color:#7c3aed}.border-b-violet-600\/20{border-bottom-color:#7c3aed33}.border-b-violet-600\/25{border-bottom-color:#7c3aed40}.border-b-violet-600\/30{border-bottom-color:#7c3aed4d}.border-b-violet-600\/40{border-bottom-color:#7c3aed66}.border-b-violet-600\/5{border-bottom-color:#7c3aed0d}.border-b-violet-600\/50{border-bottom-color:#7c3aed80}.border-b-violet-600\/60{border-bottom-color:#7c3aed99}.border-b-violet-600\/70{border-bottom-color:#7c3aedb3}.border-b-violet-600\/75{border-bottom-color:#7c3aedbf}.border-b-violet-600\/80{border-bottom-color:#7c3aedcc}.border-b-violet-600\/90{border-bottom-color:#7c3aede6}.border-b-violet-600\/95{border-bottom-color:#7c3aedf2}.border-b-violet-700{--tw-border-opacity: 1;border-bottom-color:rgb(109 40 217 / var(--tw-border-opacity))}.border-b-violet-700\/0{border-bottom-color:#6d28d900}.border-b-violet-700\/10{border-bottom-color:#6d28d91a}.border-b-violet-700\/100{border-bottom-color:#6d28d9}.border-b-violet-700\/20{border-bottom-color:#6d28d933}.border-b-violet-700\/25{border-bottom-color:#6d28d940}.border-b-violet-700\/30{border-bottom-color:#6d28d94d}.border-b-violet-700\/40{border-bottom-color:#6d28d966}.border-b-violet-700\/5{border-bottom-color:#6d28d90d}.border-b-violet-700\/50{border-bottom-color:#6d28d980}.border-b-violet-700\/60{border-bottom-color:#6d28d999}.border-b-violet-700\/70{border-bottom-color:#6d28d9b3}.border-b-violet-700\/75{border-bottom-color:#6d28d9bf}.border-b-violet-700\/80{border-bottom-color:#6d28d9cc}.border-b-violet-700\/90{border-bottom-color:#6d28d9e6}.border-b-violet-700\/95{border-bottom-color:#6d28d9f2}.border-b-violet-800{--tw-border-opacity: 1;border-bottom-color:rgb(91 33 182 / var(--tw-border-opacity))}.border-b-violet-800\/0{border-bottom-color:#5b21b600}.border-b-violet-800\/10{border-bottom-color:#5b21b61a}.border-b-violet-800\/100{border-bottom-color:#5b21b6}.border-b-violet-800\/20{border-bottom-color:#5b21b633}.border-b-violet-800\/25{border-bottom-color:#5b21b640}.border-b-violet-800\/30{border-bottom-color:#5b21b64d}.border-b-violet-800\/40{border-bottom-color:#5b21b666}.border-b-violet-800\/5{border-bottom-color:#5b21b60d}.border-b-violet-800\/50{border-bottom-color:#5b21b680}.border-b-violet-800\/60{border-bottom-color:#5b21b699}.border-b-violet-800\/70{border-bottom-color:#5b21b6b3}.border-b-violet-800\/75{border-bottom-color:#5b21b6bf}.border-b-violet-800\/80{border-bottom-color:#5b21b6cc}.border-b-violet-800\/90{border-bottom-color:#5b21b6e6}.border-b-violet-800\/95{border-bottom-color:#5b21b6f2}.border-b-violet-900{--tw-border-opacity: 1;border-bottom-color:rgb(76 29 149 / var(--tw-border-opacity))}.border-b-violet-900\/0{border-bottom-color:#4c1d9500}.border-b-violet-900\/10{border-bottom-color:#4c1d951a}.border-b-violet-900\/100{border-bottom-color:#4c1d95}.border-b-violet-900\/20{border-bottom-color:#4c1d9533}.border-b-violet-900\/25{border-bottom-color:#4c1d9540}.border-b-violet-900\/30{border-bottom-color:#4c1d954d}.border-b-violet-900\/40{border-bottom-color:#4c1d9566}.border-b-violet-900\/5{border-bottom-color:#4c1d950d}.border-b-violet-900\/50{border-bottom-color:#4c1d9580}.border-b-violet-900\/60{border-bottom-color:#4c1d9599}.border-b-violet-900\/70{border-bottom-color:#4c1d95b3}.border-b-violet-900\/75{border-bottom-color:#4c1d95bf}.border-b-violet-900\/80{border-bottom-color:#4c1d95cc}.border-b-violet-900\/90{border-bottom-color:#4c1d95e6}.border-b-violet-900\/95{border-bottom-color:#4c1d95f2}.border-l-Occupation_du_sol-primary{border-left-color:var(--Occupation_du_sol-primary)}.border-l-Occupation_du_sol-secondary{border-left-color:var(--Occupation_du_sol-secondary)}.border-l-Occupation_du_sol-tertiary{border-left-color:var(--Occupation_du_sol-tertiary)}.border-l-violet-100{--tw-border-opacity: 1;border-left-color:rgb(237 233 254 / var(--tw-border-opacity))}.border-l-violet-100\/0{border-left-color:#ede9fe00}.border-l-violet-100\/10{border-left-color:#ede9fe1a}.border-l-violet-100\/100{border-left-color:#ede9fe}.border-l-violet-100\/20{border-left-color:#ede9fe33}.border-l-violet-100\/25{border-left-color:#ede9fe40}.border-l-violet-100\/30{border-left-color:#ede9fe4d}.border-l-violet-100\/40{border-left-color:#ede9fe66}.border-l-violet-100\/5{border-left-color:#ede9fe0d}.border-l-violet-100\/50{border-left-color:#ede9fe80}.border-l-violet-100\/60{border-left-color:#ede9fe99}.border-l-violet-100\/70{border-left-color:#ede9feb3}.border-l-violet-100\/75{border-left-color:#ede9febf}.border-l-violet-100\/80{border-left-color:#ede9fecc}.border-l-violet-100\/90{border-left-color:#ede9fee6}.border-l-violet-100\/95{border-left-color:#ede9fef2}.border-l-violet-200{--tw-border-opacity: 1;border-left-color:rgb(221 214 254 / var(--tw-border-opacity))}.border-l-violet-200\/0{border-left-color:#ddd6fe00}.border-l-violet-200\/10{border-left-color:#ddd6fe1a}.border-l-violet-200\/100{border-left-color:#ddd6fe}.border-l-violet-200\/20{border-left-color:#ddd6fe33}.border-l-violet-200\/25{border-left-color:#ddd6fe40}.border-l-violet-200\/30{border-left-color:#ddd6fe4d}.border-l-violet-200\/40{border-left-color:#ddd6fe66}.border-l-violet-200\/5{border-left-color:#ddd6fe0d}.border-l-violet-200\/50{border-left-color:#ddd6fe80}.border-l-violet-200\/60{border-left-color:#ddd6fe99}.border-l-violet-200\/70{border-left-color:#ddd6feb3}.border-l-violet-200\/75{border-left-color:#ddd6febf}.border-l-violet-200\/80{border-left-color:#ddd6fecc}.border-l-violet-200\/90{border-left-color:#ddd6fee6}.border-l-violet-200\/95{border-left-color:#ddd6fef2}.border-l-violet-300{--tw-border-opacity: 1;border-left-color:rgb(196 181 253 / var(--tw-border-opacity))}.border-l-violet-300\/0{border-left-color:#c4b5fd00}.border-l-violet-300\/10{border-left-color:#c4b5fd1a}.border-l-violet-300\/100{border-left-color:#c4b5fd}.border-l-violet-300\/20{border-left-color:#c4b5fd33}.border-l-violet-300\/25{border-left-color:#c4b5fd40}.border-l-violet-300\/30{border-left-color:#c4b5fd4d}.border-l-violet-300\/40{border-left-color:#c4b5fd66}.border-l-violet-300\/5{border-left-color:#c4b5fd0d}.border-l-violet-300\/50{border-left-color:#c4b5fd80}.border-l-violet-300\/60{border-left-color:#c4b5fd99}.border-l-violet-300\/70{border-left-color:#c4b5fdb3}.border-l-violet-300\/75{border-left-color:#c4b5fdbf}.border-l-violet-300\/80{border-left-color:#c4b5fdcc}.border-l-violet-300\/90{border-left-color:#c4b5fde6}.border-l-violet-300\/95{border-left-color:#c4b5fdf2}.border-l-violet-400{--tw-border-opacity: 1;border-left-color:rgb(167 139 250 / var(--tw-border-opacity))}.border-l-violet-400\/0{border-left-color:#a78bfa00}.border-l-violet-400\/10{border-left-color:#a78bfa1a}.border-l-violet-400\/100{border-left-color:#a78bfa}.border-l-violet-400\/20{border-left-color:#a78bfa33}.border-l-violet-400\/25{border-left-color:#a78bfa40}.border-l-violet-400\/30{border-left-color:#a78bfa4d}.border-l-violet-400\/40{border-left-color:#a78bfa66}.border-l-violet-400\/5{border-left-color:#a78bfa0d}.border-l-violet-400\/50{border-left-color:#a78bfa80}.border-l-violet-400\/60{border-left-color:#a78bfa99}.border-l-violet-400\/70{border-left-color:#a78bfab3}.border-l-violet-400\/75{border-left-color:#a78bfabf}.border-l-violet-400\/80{border-left-color:#a78bfacc}.border-l-violet-400\/90{border-left-color:#a78bfae6}.border-l-violet-400\/95{border-left-color:#a78bfaf2}.border-l-violet-50{--tw-border-opacity: 1;border-left-color:rgb(245 243 255 / var(--tw-border-opacity))}.border-l-violet-50\/0{border-left-color:#f5f3ff00}.border-l-violet-50\/10{border-left-color:#f5f3ff1a}.border-l-violet-50\/100{border-left-color:#f5f3ff}.border-l-violet-50\/20{border-left-color:#f5f3ff33}.border-l-violet-50\/25{border-left-color:#f5f3ff40}.border-l-violet-50\/30{border-left-color:#f5f3ff4d}.border-l-violet-50\/40{border-left-color:#f5f3ff66}.border-l-violet-50\/5{border-left-color:#f5f3ff0d}.border-l-violet-50\/50{border-left-color:#f5f3ff80}.border-l-violet-50\/60{border-left-color:#f5f3ff99}.border-l-violet-50\/70{border-left-color:#f5f3ffb3}.border-l-violet-50\/75{border-left-color:#f5f3ffbf}.border-l-violet-50\/80{border-left-color:#f5f3ffcc}.border-l-violet-50\/90{border-left-color:#f5f3ffe6}.border-l-violet-50\/95{border-left-color:#f5f3fff2}.border-l-violet-500{--tw-border-opacity: 1;border-left-color:rgb(139 92 246 / var(--tw-border-opacity))}.border-l-violet-500\/0{border-left-color:#8b5cf600}.border-l-violet-500\/10{border-left-color:#8b5cf61a}.border-l-violet-500\/100{border-left-color:#8b5cf6}.border-l-violet-500\/20{border-left-color:#8b5cf633}.border-l-violet-500\/25{border-left-color:#8b5cf640}.border-l-violet-500\/30{border-left-color:#8b5cf64d}.border-l-violet-500\/40{border-left-color:#8b5cf666}.border-l-violet-500\/5{border-left-color:#8b5cf60d}.border-l-violet-500\/50{border-left-color:#8b5cf680}.border-l-violet-500\/60{border-left-color:#8b5cf699}.border-l-violet-500\/70{border-left-color:#8b5cf6b3}.border-l-violet-500\/75{border-left-color:#8b5cf6bf}.border-l-violet-500\/80{border-left-color:#8b5cf6cc}.border-l-violet-500\/90{border-left-color:#8b5cf6e6}.border-l-violet-500\/95{border-left-color:#8b5cf6f2}.border-l-violet-600{--tw-border-opacity: 1;border-left-color:rgb(124 58 237 / var(--tw-border-opacity))}.border-l-violet-600\/0{border-left-color:#7c3aed00}.border-l-violet-600\/10{border-left-color:#7c3aed1a}.border-l-violet-600\/100{border-left-color:#7c3aed}.border-l-violet-600\/20{border-left-color:#7c3aed33}.border-l-violet-600\/25{border-left-color:#7c3aed40}.border-l-violet-600\/30{border-left-color:#7c3aed4d}.border-l-violet-600\/40{border-left-color:#7c3aed66}.border-l-violet-600\/5{border-left-color:#7c3aed0d}.border-l-violet-600\/50{border-left-color:#7c3aed80}.border-l-violet-600\/60{border-left-color:#7c3aed99}.border-l-violet-600\/70{border-left-color:#7c3aedb3}.border-l-violet-600\/75{border-left-color:#7c3aedbf}.border-l-violet-600\/80{border-left-color:#7c3aedcc}.border-l-violet-600\/90{border-left-color:#7c3aede6}.border-l-violet-600\/95{border-left-color:#7c3aedf2}.border-l-violet-700{--tw-border-opacity: 1;border-left-color:rgb(109 40 217 / var(--tw-border-opacity))}.border-l-violet-700\/0{border-left-color:#6d28d900}.border-l-violet-700\/10{border-left-color:#6d28d91a}.border-l-violet-700\/100{border-left-color:#6d28d9}.border-l-violet-700\/20{border-left-color:#6d28d933}.border-l-violet-700\/25{border-left-color:#6d28d940}.border-l-violet-700\/30{border-left-color:#6d28d94d}.border-l-violet-700\/40{border-left-color:#6d28d966}.border-l-violet-700\/5{border-left-color:#6d28d90d}.border-l-violet-700\/50{border-left-color:#6d28d980}.border-l-violet-700\/60{border-left-color:#6d28d999}.border-l-violet-700\/70{border-left-color:#6d28d9b3}.border-l-violet-700\/75{border-left-color:#6d28d9bf}.border-l-violet-700\/80{border-left-color:#6d28d9cc}.border-l-violet-700\/90{border-left-color:#6d28d9e6}.border-l-violet-700\/95{border-left-color:#6d28d9f2}.border-l-violet-800{--tw-border-opacity: 1;border-left-color:rgb(91 33 182 / var(--tw-border-opacity))}.border-l-violet-800\/0{border-left-color:#5b21b600}.border-l-violet-800\/10{border-left-color:#5b21b61a}.border-l-violet-800\/100{border-left-color:#5b21b6}.border-l-violet-800\/20{border-left-color:#5b21b633}.border-l-violet-800\/25{border-left-color:#5b21b640}.border-l-violet-800\/30{border-left-color:#5b21b64d}.border-l-violet-800\/40{border-left-color:#5b21b666}.border-l-violet-800\/5{border-left-color:#5b21b60d}.border-l-violet-800\/50{border-left-color:#5b21b680}.border-l-violet-800\/60{border-left-color:#5b21b699}.border-l-violet-800\/70{border-left-color:#5b21b6b3}.border-l-violet-800\/75{border-left-color:#5b21b6bf}.border-l-violet-800\/80{border-left-color:#5b21b6cc}.border-l-violet-800\/90{border-left-color:#5b21b6e6}.border-l-violet-800\/95{border-left-color:#5b21b6f2}.border-l-violet-900{--tw-border-opacity: 1;border-left-color:rgb(76 29 149 / var(--tw-border-opacity))}.border-l-violet-900\/0{border-left-color:#4c1d9500}.border-l-violet-900\/10{border-left-color:#4c1d951a}.border-l-violet-900\/100{border-left-color:#4c1d95}.border-l-violet-900\/20{border-left-color:#4c1d9533}.border-l-violet-900\/25{border-left-color:#4c1d9540}.border-l-violet-900\/30{border-left-color:#4c1d954d}.border-l-violet-900\/40{border-left-color:#4c1d9566}.border-l-violet-900\/5{border-left-color:#4c1d950d}.border-l-violet-900\/50{border-left-color:#4c1d9580}.border-l-violet-900\/60{border-left-color:#4c1d9599}.border-l-violet-900\/70{border-left-color:#4c1d95b3}.border-l-violet-900\/75{border-left-color:#4c1d95bf}.border-l-violet-900\/80{border-left-color:#4c1d95cc}.border-l-violet-900\/90{border-left-color:#4c1d95e6}.border-l-violet-900\/95{border-left-color:#4c1d95f2}.border-r-Occupation_du_sol-primary{border-right-color:var(--Occupation_du_sol-primary)}.border-r-Occupation_du_sol-secondary{border-right-color:var(--Occupation_du_sol-secondary)}.border-r-Occupation_du_sol-tertiary{border-right-color:var(--Occupation_du_sol-tertiary)}.border-r-violet-100{--tw-border-opacity: 1;border-right-color:rgb(237 233 254 / var(--tw-border-opacity))}.border-r-violet-100\/0{border-right-color:#ede9fe00}.border-r-violet-100\/10{border-right-color:#ede9fe1a}.border-r-violet-100\/100{border-right-color:#ede9fe}.border-r-violet-100\/20{border-right-color:#ede9fe33}.border-r-violet-100\/25{border-right-color:#ede9fe40}.border-r-violet-100\/30{border-right-color:#ede9fe4d}.border-r-violet-100\/40{border-right-color:#ede9fe66}.border-r-violet-100\/5{border-right-color:#ede9fe0d}.border-r-violet-100\/50{border-right-color:#ede9fe80}.border-r-violet-100\/60{border-right-color:#ede9fe99}.border-r-violet-100\/70{border-right-color:#ede9feb3}.border-r-violet-100\/75{border-right-color:#ede9febf}.border-r-violet-100\/80{border-right-color:#ede9fecc}.border-r-violet-100\/90{border-right-color:#ede9fee6}.border-r-violet-100\/95{border-right-color:#ede9fef2}.border-r-violet-200{--tw-border-opacity: 1;border-right-color:rgb(221 214 254 / var(--tw-border-opacity))}.border-r-violet-200\/0{border-right-color:#ddd6fe00}.border-r-violet-200\/10{border-right-color:#ddd6fe1a}.border-r-violet-200\/100{border-right-color:#ddd6fe}.border-r-violet-200\/20{border-right-color:#ddd6fe33}.border-r-violet-200\/25{border-right-color:#ddd6fe40}.border-r-violet-200\/30{border-right-color:#ddd6fe4d}.border-r-violet-200\/40{border-right-color:#ddd6fe66}.border-r-violet-200\/5{border-right-color:#ddd6fe0d}.border-r-violet-200\/50{border-right-color:#ddd6fe80}.border-r-violet-200\/60{border-right-color:#ddd6fe99}.border-r-violet-200\/70{border-right-color:#ddd6feb3}.border-r-violet-200\/75{border-right-color:#ddd6febf}.border-r-violet-200\/80{border-right-color:#ddd6fecc}.border-r-violet-200\/90{border-right-color:#ddd6fee6}.border-r-violet-200\/95{border-right-color:#ddd6fef2}.border-r-violet-300{--tw-border-opacity: 1;border-right-color:rgb(196 181 253 / var(--tw-border-opacity))}.border-r-violet-300\/0{border-right-color:#c4b5fd00}.border-r-violet-300\/10{border-right-color:#c4b5fd1a}.border-r-violet-300\/100{border-right-color:#c4b5fd}.border-r-violet-300\/20{border-right-color:#c4b5fd33}.border-r-violet-300\/25{border-right-color:#c4b5fd40}.border-r-violet-300\/30{border-right-color:#c4b5fd4d}.border-r-violet-300\/40{border-right-color:#c4b5fd66}.border-r-violet-300\/5{border-right-color:#c4b5fd0d}.border-r-violet-300\/50{border-right-color:#c4b5fd80}.border-r-violet-300\/60{border-right-color:#c4b5fd99}.border-r-violet-300\/70{border-right-color:#c4b5fdb3}.border-r-violet-300\/75{border-right-color:#c4b5fdbf}.border-r-violet-300\/80{border-right-color:#c4b5fdcc}.border-r-violet-300\/90{border-right-color:#c4b5fde6}.border-r-violet-300\/95{border-right-color:#c4b5fdf2}.border-r-violet-400{--tw-border-opacity: 1;border-right-color:rgb(167 139 250 / var(--tw-border-opacity))}.border-r-violet-400\/0{border-right-color:#a78bfa00}.border-r-violet-400\/10{border-right-color:#a78bfa1a}.border-r-violet-400\/100{border-right-color:#a78bfa}.border-r-violet-400\/20{border-right-color:#a78bfa33}.border-r-violet-400\/25{border-right-color:#a78bfa40}.border-r-violet-400\/30{border-right-color:#a78bfa4d}.border-r-violet-400\/40{border-right-color:#a78bfa66}.border-r-violet-400\/5{border-right-color:#a78bfa0d}.border-r-violet-400\/50{border-right-color:#a78bfa80}.border-r-violet-400\/60{border-right-color:#a78bfa99}.border-r-violet-400\/70{border-right-color:#a78bfab3}.border-r-violet-400\/75{border-right-color:#a78bfabf}.border-r-violet-400\/80{border-right-color:#a78bfacc}.border-r-violet-400\/90{border-right-color:#a78bfae6}.border-r-violet-400\/95{border-right-color:#a78bfaf2}.border-r-violet-50{--tw-border-opacity: 1;border-right-color:rgb(245 243 255 / var(--tw-border-opacity))}.border-r-violet-50\/0{border-right-color:#f5f3ff00}.border-r-violet-50\/10{border-right-color:#f5f3ff1a}.border-r-violet-50\/100{border-right-color:#f5f3ff}.border-r-violet-50\/20{border-right-color:#f5f3ff33}.border-r-violet-50\/25{border-right-color:#f5f3ff40}.border-r-violet-50\/30{border-right-color:#f5f3ff4d}.border-r-violet-50\/40{border-right-color:#f5f3ff66}.border-r-violet-50\/5{border-right-color:#f5f3ff0d}.border-r-violet-50\/50{border-right-color:#f5f3ff80}.border-r-violet-50\/60{border-right-color:#f5f3ff99}.border-r-violet-50\/70{border-right-color:#f5f3ffb3}.border-r-violet-50\/75{border-right-color:#f5f3ffbf}.border-r-violet-50\/80{border-right-color:#f5f3ffcc}.border-r-violet-50\/90{border-right-color:#f5f3ffe6}.border-r-violet-50\/95{border-right-color:#f5f3fff2}.border-r-violet-500{--tw-border-opacity: 1;border-right-color:rgb(139 92 246 / var(--tw-border-opacity))}.border-r-violet-500\/0{border-right-color:#8b5cf600}.border-r-violet-500\/10{border-right-color:#8b5cf61a}.border-r-violet-500\/100{border-right-color:#8b5cf6}.border-r-violet-500\/20{border-right-color:#8b5cf633}.border-r-violet-500\/25{border-right-color:#8b5cf640}.border-r-violet-500\/30{border-right-color:#8b5cf64d}.border-r-violet-500\/40{border-right-color:#8b5cf666}.border-r-violet-500\/5{border-right-color:#8b5cf60d}.border-r-violet-500\/50{border-right-color:#8b5cf680}.border-r-violet-500\/60{border-right-color:#8b5cf699}.border-r-violet-500\/70{border-right-color:#8b5cf6b3}.border-r-violet-500\/75{border-right-color:#8b5cf6bf}.border-r-violet-500\/80{border-right-color:#8b5cf6cc}.border-r-violet-500\/90{border-right-color:#8b5cf6e6}.border-r-violet-500\/95{border-right-color:#8b5cf6f2}.border-r-violet-600{--tw-border-opacity: 1;border-right-color:rgb(124 58 237 / var(--tw-border-opacity))}.border-r-violet-600\/0{border-right-color:#7c3aed00}.border-r-violet-600\/10{border-right-color:#7c3aed1a}.border-r-violet-600\/100{border-right-color:#7c3aed}.border-r-violet-600\/20{border-right-color:#7c3aed33}.border-r-violet-600\/25{border-right-color:#7c3aed40}.border-r-violet-600\/30{border-right-color:#7c3aed4d}.border-r-violet-600\/40{border-right-color:#7c3aed66}.border-r-violet-600\/5{border-right-color:#7c3aed0d}.border-r-violet-600\/50{border-right-color:#7c3aed80}.border-r-violet-600\/60{border-right-color:#7c3aed99}.border-r-violet-600\/70{border-right-color:#7c3aedb3}.border-r-violet-600\/75{border-right-color:#7c3aedbf}.border-r-violet-600\/80{border-right-color:#7c3aedcc}.border-r-violet-600\/90{border-right-color:#7c3aede6}.border-r-violet-600\/95{border-right-color:#7c3aedf2}.border-r-violet-700{--tw-border-opacity: 1;border-right-color:rgb(109 40 217 / var(--tw-border-opacity))}.border-r-violet-700\/0{border-right-color:#6d28d900}.border-r-violet-700\/10{border-right-color:#6d28d91a}.border-r-violet-700\/100{border-right-color:#6d28d9}.border-r-violet-700\/20{border-right-color:#6d28d933}.border-r-violet-700\/25{border-right-color:#6d28d940}.border-r-violet-700\/30{border-right-color:#6d28d94d}.border-r-violet-700\/40{border-right-color:#6d28d966}.border-r-violet-700\/5{border-right-color:#6d28d90d}.border-r-violet-700\/50{border-right-color:#6d28d980}.border-r-violet-700\/60{border-right-color:#6d28d999}.border-r-violet-700\/70{border-right-color:#6d28d9b3}.border-r-violet-700\/75{border-right-color:#6d28d9bf}.border-r-violet-700\/80{border-right-color:#6d28d9cc}.border-r-violet-700\/90{border-right-color:#6d28d9e6}.border-r-violet-700\/95{border-right-color:#6d28d9f2}.border-r-violet-800{--tw-border-opacity: 1;border-right-color:rgb(91 33 182 / var(--tw-border-opacity))}.border-r-violet-800\/0{border-right-color:#5b21b600}.border-r-violet-800\/10{border-right-color:#5b21b61a}.border-r-violet-800\/100{border-right-color:#5b21b6}.border-r-violet-800\/20{border-right-color:#5b21b633}.border-r-violet-800\/25{border-right-color:#5b21b640}.border-r-violet-800\/30{border-right-color:#5b21b64d}.border-r-violet-800\/40{border-right-color:#5b21b666}.border-r-violet-800\/5{border-right-color:#5b21b60d}.border-r-violet-800\/50{border-right-color:#5b21b680}.border-r-violet-800\/60{border-right-color:#5b21b699}.border-r-violet-800\/70{border-right-color:#5b21b6b3}.border-r-violet-800\/75{border-right-color:#5b21b6bf}.border-r-violet-800\/80{border-right-color:#5b21b6cc}.border-r-violet-800\/90{border-right-color:#5b21b6e6}.border-r-violet-800\/95{border-right-color:#5b21b6f2}.border-r-violet-900{--tw-border-opacity: 1;border-right-color:rgb(76 29 149 / var(--tw-border-opacity))}.border-r-violet-900\/0{border-right-color:#4c1d9500}.border-r-violet-900\/10{border-right-color:#4c1d951a}.border-r-violet-900\/100{border-right-color:#4c1d95}.border-r-violet-900\/20{border-right-color:#4c1d9533}.border-r-violet-900\/25{border-right-color:#4c1d9540}.border-r-violet-900\/30{border-right-color:#4c1d954d}.border-r-violet-900\/40{border-right-color:#4c1d9566}.border-r-violet-900\/5{border-right-color:#4c1d950d}.border-r-violet-900\/50{border-right-color:#4c1d9580}.border-r-violet-900\/60{border-right-color:#4c1d9599}.border-r-violet-900\/70{border-right-color:#4c1d95b3}.border-r-violet-900\/75{border-right-color:#4c1d95bf}.border-r-violet-900\/80{border-right-color:#4c1d95cc}.border-r-violet-900\/90{border-right-color:#4c1d95e6}.border-r-violet-900\/95{border-right-color:#4c1d95f2}.border-t-Occupation_du_sol-primary{border-top-color:var(--Occupation_du_sol-primary)}.border-t-Occupation_du_sol-secondary{border-top-color:var(--Occupation_du_sol-secondary)}.border-t-Occupation_du_sol-tertiary{border-top-color:var(--Occupation_du_sol-tertiary)}.border-t-violet-100{--tw-border-opacity: 1;border-top-color:rgb(237 233 254 / var(--tw-border-opacity))}.border-t-violet-100\/0{border-top-color:#ede9fe00}.border-t-violet-100\/10{border-top-color:#ede9fe1a}.border-t-violet-100\/100{border-top-color:#ede9fe}.border-t-violet-100\/20{border-top-color:#ede9fe33}.border-t-violet-100\/25{border-top-color:#ede9fe40}.border-t-violet-100\/30{border-top-color:#ede9fe4d}.border-t-violet-100\/40{border-top-color:#ede9fe66}.border-t-violet-100\/5{border-top-color:#ede9fe0d}.border-t-violet-100\/50{border-top-color:#ede9fe80}.border-t-violet-100\/60{border-top-color:#ede9fe99}.border-t-violet-100\/70{border-top-color:#ede9feb3}.border-t-violet-100\/75{border-top-color:#ede9febf}.border-t-violet-100\/80{border-top-color:#ede9fecc}.border-t-violet-100\/90{border-top-color:#ede9fee6}.border-t-violet-100\/95{border-top-color:#ede9fef2}.border-t-violet-200{--tw-border-opacity: 1;border-top-color:rgb(221 214 254 / var(--tw-border-opacity))}.border-t-violet-200\/0{border-top-color:#ddd6fe00}.border-t-violet-200\/10{border-top-color:#ddd6fe1a}.border-t-violet-200\/100{border-top-color:#ddd6fe}.border-t-violet-200\/20{border-top-color:#ddd6fe33}.border-t-violet-200\/25{border-top-color:#ddd6fe40}.border-t-violet-200\/30{border-top-color:#ddd6fe4d}.border-t-violet-200\/40{border-top-color:#ddd6fe66}.border-t-violet-200\/5{border-top-color:#ddd6fe0d}.border-t-violet-200\/50{border-top-color:#ddd6fe80}.border-t-violet-200\/60{border-top-color:#ddd6fe99}.border-t-violet-200\/70{border-top-color:#ddd6feb3}.border-t-violet-200\/75{border-top-color:#ddd6febf}.border-t-violet-200\/80{border-top-color:#ddd6fecc}.border-t-violet-200\/90{border-top-color:#ddd6fee6}.border-t-violet-200\/95{border-top-color:#ddd6fef2}.border-t-violet-300{--tw-border-opacity: 1;border-top-color:rgb(196 181 253 / var(--tw-border-opacity))}.border-t-violet-300\/0{border-top-color:#c4b5fd00}.border-t-violet-300\/10{border-top-color:#c4b5fd1a}.border-t-violet-300\/100{border-top-color:#c4b5fd}.border-t-violet-300\/20{border-top-color:#c4b5fd33}.border-t-violet-300\/25{border-top-color:#c4b5fd40}.border-t-violet-300\/30{border-top-color:#c4b5fd4d}.border-t-violet-300\/40{border-top-color:#c4b5fd66}.border-t-violet-300\/5{border-top-color:#c4b5fd0d}.border-t-violet-300\/50{border-top-color:#c4b5fd80}.border-t-violet-300\/60{border-top-color:#c4b5fd99}.border-t-violet-300\/70{border-top-color:#c4b5fdb3}.border-t-violet-300\/75{border-top-color:#c4b5fdbf}.border-t-violet-300\/80{border-top-color:#c4b5fdcc}.border-t-violet-300\/90{border-top-color:#c4b5fde6}.border-t-violet-300\/95{border-top-color:#c4b5fdf2}.border-t-violet-400{--tw-border-opacity: 1;border-top-color:rgb(167 139 250 / var(--tw-border-opacity))}.border-t-violet-400\/0{border-top-color:#a78bfa00}.border-t-violet-400\/10{border-top-color:#a78bfa1a}.border-t-violet-400\/100{border-top-color:#a78bfa}.border-t-violet-400\/20{border-top-color:#a78bfa33}.border-t-violet-400\/25{border-top-color:#a78bfa40}.border-t-violet-400\/30{border-top-color:#a78bfa4d}.border-t-violet-400\/40{border-top-color:#a78bfa66}.border-t-violet-400\/5{border-top-color:#a78bfa0d}.border-t-violet-400\/50{border-top-color:#a78bfa80}.border-t-violet-400\/60{border-top-color:#a78bfa99}.border-t-violet-400\/70{border-top-color:#a78bfab3}.border-t-violet-400\/75{border-top-color:#a78bfabf}.border-t-violet-400\/80{border-top-color:#a78bfacc}.border-t-violet-400\/90{border-top-color:#a78bfae6}.border-t-violet-400\/95{border-top-color:#a78bfaf2}.border-t-violet-50{--tw-border-opacity: 1;border-top-color:rgb(245 243 255 / var(--tw-border-opacity))}.border-t-violet-50\/0{border-top-color:#f5f3ff00}.border-t-violet-50\/10{border-top-color:#f5f3ff1a}.border-t-violet-50\/100{border-top-color:#f5f3ff}.border-t-violet-50\/20{border-top-color:#f5f3ff33}.border-t-violet-50\/25{border-top-color:#f5f3ff40}.border-t-violet-50\/30{border-top-color:#f5f3ff4d}.border-t-violet-50\/40{border-top-color:#f5f3ff66}.border-t-violet-50\/5{border-top-color:#f5f3ff0d}.border-t-violet-50\/50{border-top-color:#f5f3ff80}.border-t-violet-50\/60{border-top-color:#f5f3ff99}.border-t-violet-50\/70{border-top-color:#f5f3ffb3}.border-t-violet-50\/75{border-top-color:#f5f3ffbf}.border-t-violet-50\/80{border-top-color:#f5f3ffcc}.border-t-violet-50\/90{border-top-color:#f5f3ffe6}.border-t-violet-50\/95{border-top-color:#f5f3fff2}.border-t-violet-500{--tw-border-opacity: 1;border-top-color:rgb(139 92 246 / var(--tw-border-opacity))}.border-t-violet-500\/0{border-top-color:#8b5cf600}.border-t-violet-500\/10{border-top-color:#8b5cf61a}.border-t-violet-500\/100{border-top-color:#8b5cf6}.border-t-violet-500\/20{border-top-color:#8b5cf633}.border-t-violet-500\/25{border-top-color:#8b5cf640}.border-t-violet-500\/30{border-top-color:#8b5cf64d}.border-t-violet-500\/40{border-top-color:#8b5cf666}.border-t-violet-500\/5{border-top-color:#8b5cf60d}.border-t-violet-500\/50{border-top-color:#8b5cf680}.border-t-violet-500\/60{border-top-color:#8b5cf699}.border-t-violet-500\/70{border-top-color:#8b5cf6b3}.border-t-violet-500\/75{border-top-color:#8b5cf6bf}.border-t-violet-500\/80{border-top-color:#8b5cf6cc}.border-t-violet-500\/90{border-top-color:#8b5cf6e6}.border-t-violet-500\/95{border-top-color:#8b5cf6f2}.border-t-violet-600{--tw-border-opacity: 1;border-top-color:rgb(124 58 237 / var(--tw-border-opacity))}.border-t-violet-600\/0{border-top-color:#7c3aed00}.border-t-violet-600\/10{border-top-color:#7c3aed1a}.border-t-violet-600\/100{border-top-color:#7c3aed}.border-t-violet-600\/20{border-top-color:#7c3aed33}.border-t-violet-600\/25{border-top-color:#7c3aed40}.border-t-violet-600\/30{border-top-color:#7c3aed4d}.border-t-violet-600\/40{border-top-color:#7c3aed66}.border-t-violet-600\/5{border-top-color:#7c3aed0d}.border-t-violet-600\/50{border-top-color:#7c3aed80}.border-t-violet-600\/60{border-top-color:#7c3aed99}.border-t-violet-600\/70{border-top-color:#7c3aedb3}.border-t-violet-600\/75{border-top-color:#7c3aedbf}.border-t-violet-600\/80{border-top-color:#7c3aedcc}.border-t-violet-600\/90{border-top-color:#7c3aede6}.border-t-violet-600\/95{border-top-color:#7c3aedf2}.border-t-violet-700{--tw-border-opacity: 1;border-top-color:rgb(109 40 217 / var(--tw-border-opacity))}.border-t-violet-700\/0{border-top-color:#6d28d900}.border-t-violet-700\/10{border-top-color:#6d28d91a}.border-t-violet-700\/100{border-top-color:#6d28d9}.border-t-violet-700\/20{border-top-color:#6d28d933}.border-t-violet-700\/25{border-top-color:#6d28d940}.border-t-violet-700\/30{border-top-color:#6d28d94d}.border-t-violet-700\/40{border-top-color:#6d28d966}.border-t-violet-700\/5{border-top-color:#6d28d90d}.border-t-violet-700\/50{border-top-color:#6d28d980}.border-t-violet-700\/60{border-top-color:#6d28d999}.border-t-violet-700\/70{border-top-color:#6d28d9b3}.border-t-violet-700\/75{border-top-color:#6d28d9bf}.border-t-violet-700\/80{border-top-color:#6d28d9cc}.border-t-violet-700\/90{border-top-color:#6d28d9e6}.border-t-violet-700\/95{border-top-color:#6d28d9f2}.border-t-violet-800{--tw-border-opacity: 1;border-top-color:rgb(91 33 182 / var(--tw-border-opacity))}.border-t-violet-800\/0{border-top-color:#5b21b600}.border-t-violet-800\/10{border-top-color:#5b21b61a}.border-t-violet-800\/100{border-top-color:#5b21b6}.border-t-violet-800\/20{border-top-color:#5b21b633}.border-t-violet-800\/25{border-top-color:#5b21b640}.border-t-violet-800\/30{border-top-color:#5b21b64d}.border-t-violet-800\/40{border-top-color:#5b21b666}.border-t-violet-800\/5{border-top-color:#5b21b60d}.border-t-violet-800\/50{border-top-color:#5b21b680}.border-t-violet-800\/60{border-top-color:#5b21b699}.border-t-violet-800\/70{border-top-color:#5b21b6b3}.border-t-violet-800\/75{border-top-color:#5b21b6bf}.border-t-violet-800\/80{border-top-color:#5b21b6cc}.border-t-violet-800\/90{border-top-color:#5b21b6e6}.border-t-violet-800\/95{border-top-color:#5b21b6f2}.border-t-violet-900{--tw-border-opacity: 1;border-top-color:rgb(76 29 149 / var(--tw-border-opacity))}.border-t-violet-900\/0{border-top-color:#4c1d9500}.border-t-violet-900\/10{border-top-color:#4c1d951a}.border-t-violet-900\/100{border-top-color:#4c1d95}.border-t-violet-900\/20{border-top-color:#4c1d9533}.border-t-violet-900\/25{border-top-color:#4c1d9540}.border-t-violet-900\/30{border-top-color:#4c1d954d}.border-t-violet-900\/40{border-top-color:#4c1d9566}.border-t-violet-900\/5{border-top-color:#4c1d950d}.border-t-violet-900\/50{border-top-color:#4c1d9580}.border-t-violet-900\/60{border-top-color:#4c1d9599}.border-t-violet-900\/70{border-top-color:#4c1d95b3}.border-t-violet-900\/75{border-top-color:#4c1d95bf}.border-t-violet-900\/80{border-top-color:#4c1d95cc}.border-t-violet-900\/90{border-top-color:#4c1d95e6}.border-t-violet-900\/95{border-top-color:#4c1d95f2}.bg-Amenagement_du_territoire-primary{background-color:var(--Amenagement_du_territoire-primary)}.bg-Environnement_humain-primary{background-color:var(--Environnement_humain-primary)}.bg-Environnement_naturel-primary{background-color:var(--Environnement_naturel-primary)}.bg-Occupation_du_sol-primary{background-color:var(--Occupation_du_sol-primary)}.bg-Occupation_du_sol-secondary{background-color:var(--Occupation_du_sol-secondary)}.bg-Occupation_du_sol-tertiary{background-color:var(--Occupation_du_sol-tertiary)}.bg-agriculture-primary{background-color:var(--agriculture-primary)}.bg-ahc-primary{background-color:var(--ahc-primary)}.bg-at-primary{background-color:var(--at-primary)}.bg-atlas_demographique-primary{background-color:var(--atlas_demographique-primary)}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity))}.bg-cadastre_hertzien-primary{background-color:var(--cadastre_hertzien-primary)}.bg-eau-primary{background-color:var(--eau-primary)}.bg-emwelt-primary{background-color:var(--emwelt-primary)}.bg-energie-primary{background-color:var(--energie-primary)}.bg-geosciences-primary{background-color:var(--geosciences-primary)}.bg-go-primary{background-color:var(--go-primary)}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-intranet-at-primary{background-color:var(--intranet-at-primary)}.bg-lenoz-primary{background-color:var(--lenoz-primary)}.bg-lintgen-primary{background-color:var(--lintgen-primary)}.bg-logement-primary{background-color:var(--logement-primary)}.bg-main-primary{background-color:var(--main-primary)}.bg-municipalities-primary{background-color:var(--municipalities-primary)}.bg-np_our-primary{background-color:var(--np_our-primary)}.bg-pag-primary{background-color:var(--pag-primary)}.bg-preizerdaul-primary{background-color:var(--preizerdaul-primary)}.bg-primary{background-color:var(--color-primary)}.bg-prof-primary{background-color:var(--prof-primary)}.bg-remich-primary{background-color:var(--remich-primary)}.bg-secondary{background-color:var(--color-secondary)}.bg-sig_secours-primary{background-color:var(--sig_secours-primary)}.bg-tertiary{background-color:var(--color-tertiary)}.bg-tourisme-primary{background-color:var(--tourisme-primary)}.bg-urban_farming-primary{background-color:var(--urban_farming-primary)}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity))}.bg-violet-100\/0{background-color:#ede9fe00}.bg-violet-100\/10{background-color:#ede9fe1a}.bg-violet-100\/100{background-color:#ede9fe}.bg-violet-100\/20{background-color:#ede9fe33}.bg-violet-100\/25{background-color:#ede9fe40}.bg-violet-100\/30{background-color:#ede9fe4d}.bg-violet-100\/40{background-color:#ede9fe66}.bg-violet-100\/5{background-color:#ede9fe0d}.bg-violet-100\/50{background-color:#ede9fe80}.bg-violet-100\/60{background-color:#ede9fe99}.bg-violet-100\/70{background-color:#ede9feb3}.bg-violet-100\/75{background-color:#ede9febf}.bg-violet-100\/80{background-color:#ede9fecc}.bg-violet-100\/90{background-color:#ede9fee6}.bg-violet-100\/95{background-color:#ede9fef2}.bg-violet-200{--tw-bg-opacity: 1;background-color:rgb(221 214 254 / var(--tw-bg-opacity))}.bg-violet-200\/0{background-color:#ddd6fe00}.bg-violet-200\/10{background-color:#ddd6fe1a}.bg-violet-200\/100{background-color:#ddd6fe}.bg-violet-200\/20{background-color:#ddd6fe33}.bg-violet-200\/25{background-color:#ddd6fe40}.bg-violet-200\/30{background-color:#ddd6fe4d}.bg-violet-200\/40{background-color:#ddd6fe66}.bg-violet-200\/5{background-color:#ddd6fe0d}.bg-violet-200\/50{background-color:#ddd6fe80}.bg-violet-200\/60{background-color:#ddd6fe99}.bg-violet-200\/70{background-color:#ddd6feb3}.bg-violet-200\/75{background-color:#ddd6febf}.bg-violet-200\/80{background-color:#ddd6fecc}.bg-violet-200\/90{background-color:#ddd6fee6}.bg-violet-200\/95{background-color:#ddd6fef2}.bg-violet-300{--tw-bg-opacity: 1;background-color:rgb(196 181 253 / var(--tw-bg-opacity))}.bg-violet-300\/0{background-color:#c4b5fd00}.bg-violet-300\/10{background-color:#c4b5fd1a}.bg-violet-300\/100{background-color:#c4b5fd}.bg-violet-300\/20{background-color:#c4b5fd33}.bg-violet-300\/25{background-color:#c4b5fd40}.bg-violet-300\/30{background-color:#c4b5fd4d}.bg-violet-300\/40{background-color:#c4b5fd66}.bg-violet-300\/5{background-color:#c4b5fd0d}.bg-violet-300\/50{background-color:#c4b5fd80}.bg-violet-300\/60{background-color:#c4b5fd99}.bg-violet-300\/70{background-color:#c4b5fdb3}.bg-violet-300\/75{background-color:#c4b5fdbf}.bg-violet-300\/80{background-color:#c4b5fdcc}.bg-violet-300\/90{background-color:#c4b5fde6}.bg-violet-300\/95{background-color:#c4b5fdf2}.bg-violet-400{--tw-bg-opacity: 1;background-color:rgb(167 139 250 / var(--tw-bg-opacity))}.bg-violet-400\/0{background-color:#a78bfa00}.bg-violet-400\/10{background-color:#a78bfa1a}.bg-violet-400\/100{background-color:#a78bfa}.bg-violet-400\/20{background-color:#a78bfa33}.bg-violet-400\/25{background-color:#a78bfa40}.bg-violet-400\/30{background-color:#a78bfa4d}.bg-violet-400\/40{background-color:#a78bfa66}.bg-violet-400\/5{background-color:#a78bfa0d}.bg-violet-400\/50{background-color:#a78bfa80}.bg-violet-400\/60{background-color:#a78bfa99}.bg-violet-400\/70{background-color:#a78bfab3}.bg-violet-400\/75{background-color:#a78bfabf}.bg-violet-400\/80{background-color:#a78bfacc}.bg-violet-400\/90{background-color:#a78bfae6}.bg-violet-400\/95{background-color:#a78bfaf2}.bg-violet-50{--tw-bg-opacity: 1;background-color:rgb(245 243 255 / var(--tw-bg-opacity))}.bg-violet-50\/0{background-color:#f5f3ff00}.bg-violet-50\/10{background-color:#f5f3ff1a}.bg-violet-50\/100{background-color:#f5f3ff}.bg-violet-50\/20{background-color:#f5f3ff33}.bg-violet-50\/25{background-color:#f5f3ff40}.bg-violet-50\/30{background-color:#f5f3ff4d}.bg-violet-50\/40{background-color:#f5f3ff66}.bg-violet-50\/5{background-color:#f5f3ff0d}.bg-violet-50\/50{background-color:#f5f3ff80}.bg-violet-50\/60{background-color:#f5f3ff99}.bg-violet-50\/70{background-color:#f5f3ffb3}.bg-violet-50\/75{background-color:#f5f3ffbf}.bg-violet-50\/80{background-color:#f5f3ffcc}.bg-violet-50\/90{background-color:#f5f3ffe6}.bg-violet-50\/95{background-color:#f5f3fff2}.bg-violet-500{--tw-bg-opacity: 1;background-color:rgb(139 92 246 / var(--tw-bg-opacity))}.bg-violet-500\/0{background-color:#8b5cf600}.bg-violet-500\/10{background-color:#8b5cf61a}.bg-violet-500\/100{background-color:#8b5cf6}.bg-violet-500\/20{background-color:#8b5cf633}.bg-violet-500\/25{background-color:#8b5cf640}.bg-violet-500\/30{background-color:#8b5cf64d}.bg-violet-500\/40{background-color:#8b5cf666}.bg-violet-500\/5{background-color:#8b5cf60d}.bg-violet-500\/50{background-color:#8b5cf680}.bg-violet-500\/60{background-color:#8b5cf699}.bg-violet-500\/70{background-color:#8b5cf6b3}.bg-violet-500\/75{background-color:#8b5cf6bf}.bg-violet-500\/80{background-color:#8b5cf6cc}.bg-violet-500\/90{background-color:#8b5cf6e6}.bg-violet-500\/95{background-color:#8b5cf6f2}.bg-violet-600{--tw-bg-opacity: 1;background-color:rgb(124 58 237 / var(--tw-bg-opacity))}.bg-violet-600\/0{background-color:#7c3aed00}.bg-violet-600\/10{background-color:#7c3aed1a}.bg-violet-600\/100{background-color:#7c3aed}.bg-violet-600\/20{background-color:#7c3aed33}.bg-violet-600\/25{background-color:#7c3aed40}.bg-violet-600\/30{background-color:#7c3aed4d}.bg-violet-600\/40{background-color:#7c3aed66}.bg-violet-600\/5{background-color:#7c3aed0d}.bg-violet-600\/50{background-color:#7c3aed80}.bg-violet-600\/60{background-color:#7c3aed99}.bg-violet-600\/70{background-color:#7c3aedb3}.bg-violet-600\/75{background-color:#7c3aedbf}.bg-violet-600\/80{background-color:#7c3aedcc}.bg-violet-600\/90{background-color:#7c3aede6}.bg-violet-600\/95{background-color:#7c3aedf2}.bg-violet-700{--tw-bg-opacity: 1;background-color:rgb(109 40 217 / var(--tw-bg-opacity))}.bg-violet-700\/0{background-color:#6d28d900}.bg-violet-700\/10{background-color:#6d28d91a}.bg-violet-700\/100{background-color:#6d28d9}.bg-violet-700\/20{background-color:#6d28d933}.bg-violet-700\/25{background-color:#6d28d940}.bg-violet-700\/30{background-color:#6d28d94d}.bg-violet-700\/40{background-color:#6d28d966}.bg-violet-700\/5{background-color:#6d28d90d}.bg-violet-700\/50{background-color:#6d28d980}.bg-violet-700\/60{background-color:#6d28d999}.bg-violet-700\/70{background-color:#6d28d9b3}.bg-violet-700\/75{background-color:#6d28d9bf}.bg-violet-700\/80{background-color:#6d28d9cc}.bg-violet-700\/90{background-color:#6d28d9e6}.bg-violet-700\/95{background-color:#6d28d9f2}.bg-violet-800{--tw-bg-opacity: 1;background-color:rgb(91 33 182 / var(--tw-bg-opacity))}.bg-violet-800\/0{background-color:#5b21b600}.bg-violet-800\/10{background-color:#5b21b61a}.bg-violet-800\/100{background-color:#5b21b6}.bg-violet-800\/20{background-color:#5b21b633}.bg-violet-800\/25{background-color:#5b21b640}.bg-violet-800\/30{background-color:#5b21b64d}.bg-violet-800\/40{background-color:#5b21b666}.bg-violet-800\/5{background-color:#5b21b60d}.bg-violet-800\/50{background-color:#5b21b680}.bg-violet-800\/60{background-color:#5b21b699}.bg-violet-800\/70{background-color:#5b21b6b3}.bg-violet-800\/75{background-color:#5b21b6bf}.bg-violet-800\/80{background-color:#5b21b6cc}.bg-violet-800\/90{background-color:#5b21b6e6}.bg-violet-800\/95{background-color:#5b21b6f2}.bg-violet-900{--tw-bg-opacity: 1;background-color:rgb(76 29 149 / var(--tw-bg-opacity))}.bg-violet-900\/0{background-color:#4c1d9500}.bg-violet-900\/10{background-color:#4c1d951a}.bg-violet-900\/100{background-color:#4c1d95}.bg-violet-900\/20{background-color:#4c1d9533}.bg-violet-900\/25{background-color:#4c1d9540}.bg-violet-900\/30{background-color:#4c1d954d}.bg-violet-900\/40{background-color:#4c1d9566}.bg-violet-900\/5{background-color:#4c1d950d}.bg-violet-900\/50{background-color:#4c1d9580}.bg-violet-900\/60{background-color:#4c1d9599}.bg-violet-900\/70{background-color:#4c1d95b3}.bg-violet-900\/75{background-color:#4c1d95bf}.bg-violet-900\/80{background-color:#4c1d95cc}.bg-violet-900\/90{background-color:#4c1d95e6}.bg-violet-900\/95{background-color:#4c1d95f2}.bg-wellenstein-primary{background-color:var(--wellenstein-primary)}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-hybrid_sm{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAMAAACfvvDEAAADAFBMVEUAAQH///8wOjwbJilJV1ICBQZPXVoGBwYxPT41QD00PjwyNTcoMzUiMC8oKyx5hIFRXlZKVFE+RUc3QjkvOjcuMjIhKywaHRwSExMHCgf///z7+/uKlZNYY19TX1tKVU1FUUxCTks8SEpBTkU4Q0EtODkUGBcMExENDw+HkYxgbWtgaWdYZGNaZGFVYV5PWlVBT1FFUlA9Skc0QEI8Rz83PD0vPDQqNzMgKzEtNy8kKCgeIB4XGhv7/f6Qmpp3gYBOWFdUXlVNWlJGUU5ESEg6R0NETEI+QEIyPkE5Pz8rODwpNjclNDMkLDAkLisYJyUVIh4JCw3u7+/q7OvL1crExcOyt7WMmZZ+h4Rmcm9icGVXZFtbYVpLWlpIVldSVVFDT01ITExATEk5Rkc9S0I3QkA2RT45QTwzPzctNTYnMTIbKC4XIykfJCUVHhz19vXl5+XIyMm7vb2vua6jpqWao6KcoZuToJeFkZOOj4+AjYuFiYhzf4J6fHtmamldZ2dhZGBPXV9YXFtHU1JLUFJHVUxMTkxAS0xFUEctOT89RD44OTcpMzAlNS4qMSseKikhIiL5+fjy8/Pf4eHb3drMz8+ssbKlraqjrJ+Unp6XmJiUnZKDjI+Aiot/h4l8ioh4hYeEi4N/gX1wfXx3f3tvfHdud3dmc3V0eXBpbWxlcmlcY2VhbGNba2BVYFlQWk5OVEpBUUlDQ0U5Q0U5RkIvPTgyNDAfLS0eKCshKicgJyUZIiMcISLW2NbS0tPBy7+4wrq0vLitsa6stq2ps6yqqqmep6SfoqCcoZSSlpKRmZGIl417i4GAhn12hX1yeXp4fnZvcW9hbW9oeG1lbmhkZWVQWltNWE5ASEhAS0UjMDcmMDMtLzEjMSgRHiEOGBqfqqacp52LkZWFj4aBg4RzdHZqdXFqcG5xeGxZZGlRYGFfaF1VWltcYlQsOjQrOjAUISO/ycXH0MG7xr22vrOmqKueqKiirKSbmqGMjYiLk4VXX2Q1QkrL08ZcY2FARjx/p0KyAAAGu0lEQVQ4yw3SQ0AkUAAA0D+2p0FunG3btm3btlsj23atbdu2bdzf8YGAyTra2+pTJy9e9M0LJjhFzsboNrs6+ReEoNFoBUpLlM10UN3ppylYJRAoU1cNHzwVEFWt1F1UXouctV6MWdQYItkxCIQrylPPzo2Yz/QOrK5GAriFtIq6tcJi8+xy5Iv+Akk45szJgm7fPDQM5ob9U1Y28mwmqFdeuskNRLdWdiuVc0KQKg7BahyFfhXumcFBUqdknjreDaMlxmw5XhY00E5qagUMvQtFzx3VQqw17dQc7hA0ZOEyFhELCp15RReu8egG+rEjfccPHSVhzUCSWs/wjSS1UqRjYr0DXw5pIVNdbSndM/S8x7RUWlH5aUWo/IEDWX6m2cCup+jXjTsOIS/U6utvOGlITwZokWWQBaV4hwv+pOx7Plu35Xhvk/dT5oHg4fLEpER8cLCanYOe67LObOBkTMwT36Ln0Fpd14Wz2/Zn+RRXaWtT4wFG6KTpEFKpEBKZlKhHcGrWibo4pvrE5EL9XVeCkxNWye9xhUAgELOKBqpv3BzLNaEEN1e9xDvvCG+4gW/fxkgNa8L0nFxdl+OHdgzdcjd4hUK4g1O53QpIuWB1dUKiXuJNdAw3kMslR7nA8PhlgpoSRvGslRGia39G8hDI9T1DlsaoqFfik2CaHN04C3Otiavk2PUUBr0VSTKjXqMmG4mAbao4OHkxqpobTVevRSfZmfg30WgBL6fNHz68FEunD345dBaKE7NnGgg8D7PBqcnbFhYqvEo7vF7Izx2KQq5MwOuXD78ONFmWko5IluC0a1htRqGQ4gwwOZvSLKeKjLTD196cn8do6dBodScyTyjGUwuyKWv2BvaAlZZutUHCG8Tdvt0csRDmqAmFzrfq0lu4+jpj7Ud8skc7Hwh3ATFDVFCOZxtij/EWoEOOgkup89GaUL4mxlI2jns1YCw3c9/7I53hgi0gtAEnIb6TOWeUDgEWvmSyFNyZioZqRobpWgdMka9P5N7bJllFNdDOQIgMwXfxTaLQW0AEyGdyFZQsE6AJjnwXurr/mJZ+VJy55TUKFMfCjVYcyG8DGeKHUY+/fQOy8vfkpa0TGCsJMCzPkqyq46aV0mKFi08OJ4LDEpsl0oisNMjjW5u2gkVpeZIcjIGHrfA14BFasjJSpEvh/6X9OPEyxNbQc3MLiN1s0Ka9ExB0paLpzjDYinOrhiqliSJvUmgv0NZmMudYOzcUbsxCZdQAQMSVZAM57BsMdf0OLGmFcV1FLtbPRF7ArABCo8ti7GJjiVGQv1HMiGiv6FMIBqPpSNMr8XrOfGzpgLKyX2Ey2AKpMEyTkKhh74Zs2r2xyl3MwCpHXhUoLFTCu/LKobU/z241MVWksImvqow9d3rvFE9tM8ra85nI0n5FdPGbsADRSElJE5O8jo4HHSYkuTVEiaeH6CgEsgSOi/u4owDKdhxHjXeLkxkDPLjkji87+ru6xqn2ukLhZ+MtBiL2JsgjgNojfp5pe+uBcxUU3bQ2NQFcNVQizDT6O3hQBgyhnbYBEup+uLExdeMSEDsqNODN3+WvQ/kJd8evgJiFZjdCt2+BmQseIWW8KWvDRmbNUdYjyBYEAC7KLtBaZwb/ph6M8wsoafDC/E0lpSnY9bu7tgrZ6Ru8wffzKG9vQYqLspQcRgmbwIAxIm/eAHA4HdnVeYVCxzKo/5eJDD3Ei9l9Syywpq+vQ7NcVQpLWH+HL3XGgzCkSsq4nzI1/FpF8Wgj6zIIFU9tXDodFHrV/LbOdeyqWRi69R162KEemJFMXcyq1pKTmcRwQ+JuiSVUjnifyCb3UGDdVbKsLCZaLgy6winn1IOiDkq4lZiYUDhawmR7eISjalAz7N7MzJyT5jJTgco6i9ZyGo7BnBeOwPSpwAhna2TrCYGkNc4ZGvbll8182rtvu/mh+7TAKZk4KWlMBFrBbtgRKCLsk1lzIo8D7t6Q86CxrMEmNmfz/cy97dMHT7DNaVrXpSi6PCyMwwHOthAfRFsN5LyPh21ZiaBQcaK396DX3g/bf3jdj+PGNsiqwnWt1Tnzy4AICnF9CCtjSLoh0fM4aDj39eNBL6/f27dnnnt5etqGRtOXlZWlVPLUwC6U+x7IZZAOSc9P3YpIUZQ8ss9rt9exY89svPS3BzXI6NNWpVThcJUeALLy5ySMcaIMY49HbCYmYmD/wY/72j/9nflg8+PE9CUbG/06f1VrpO8OUJKajyqW2MwCCIT7Lr6Z5Lbs9/v3tre8Pvb62MjpcyNBWg2XnvRbRpj6/wM0S23quXLk1wAAAABJRU5ErkJggg==)}.bg-ortho_sm{background-image:url(data:image/png;base64,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)}.bg-route_sm{background-image:url(data:image/png;base64,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)}.bg-topo_bw_sm{background-image:url(data:image/png;base64,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)}.bg-topo_sm{background-image:url(data:image/png;base64,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)}.from-Occupation_du_sol-primary{--tw-gradient-from: var(--Occupation_du_sol-primary);--tw-gradient-to: rgb(255 255 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-Occupation_du_sol-secondary{--tw-gradient-from: var(--Occupation_du_sol-secondary);--tw-gradient-to: rgb(255 255 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-Occupation_du_sol-tertiary{--tw-gradient-from: var(--Occupation_du_sol-tertiary);--tw-gradient-to: rgb(255 255 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100{--tw-gradient-from: #ede9fe;--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100\/0{--tw-gradient-from: rgb(237 233 254 / 0);--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100\/10{--tw-gradient-from: rgb(237 233 254 / .1);--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100\/100{--tw-gradient-from: rgb(237 233 254 / 1);--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100\/20{--tw-gradient-from: rgb(237 233 254 / .2);--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100\/25{--tw-gradient-from: rgb(237 233 254 / .25);--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100\/30{--tw-gradient-from: rgb(237 233 254 / .3);--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100\/40{--tw-gradient-from: rgb(237 233 254 / .4);--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100\/5{--tw-gradient-from: rgb(237 233 254 / .05);--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100\/50{--tw-gradient-from: rgb(237 233 254 / .5);--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100\/60{--tw-gradient-from: rgb(237 233 254 / .6);--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100\/70{--tw-gradient-from: rgb(237 233 254 / .7);--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100\/75{--tw-gradient-from: rgb(237 233 254 / .75);--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100\/80{--tw-gradient-from: rgb(237 233 254 / .8);--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100\/90{--tw-gradient-from: rgb(237 233 254 / .9);--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100\/95{--tw-gradient-from: rgb(237 233 254 / .95);--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200{--tw-gradient-from: #ddd6fe;--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200\/0{--tw-gradient-from: rgb(221 214 254 / 0);--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200\/10{--tw-gradient-from: rgb(221 214 254 / .1);--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200\/100{--tw-gradient-from: rgb(221 214 254 / 1);--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200\/20{--tw-gradient-from: rgb(221 214 254 / .2);--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200\/25{--tw-gradient-from: rgb(221 214 254 / .25);--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200\/30{--tw-gradient-from: rgb(221 214 254 / .3);--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200\/40{--tw-gradient-from: rgb(221 214 254 / .4);--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200\/5{--tw-gradient-from: rgb(221 214 254 / .05);--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200\/50{--tw-gradient-from: rgb(221 214 254 / .5);--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200\/60{--tw-gradient-from: rgb(221 214 254 / .6);--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200\/70{--tw-gradient-from: rgb(221 214 254 / .7);--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200\/75{--tw-gradient-from: rgb(221 214 254 / .75);--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200\/80{--tw-gradient-from: rgb(221 214 254 / .8);--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200\/90{--tw-gradient-from: rgb(221 214 254 / .9);--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200\/95{--tw-gradient-from: rgb(221 214 254 / .95);--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-300{--tw-gradient-from: #c4b5fd;--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-300\/0{--tw-gradient-from: rgb(196 181 253 / 0);--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-300\/10{--tw-gradient-from: rgb(196 181 253 / .1);--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-300\/100{--tw-gradient-from: rgb(196 181 253 / 1);--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-300\/20{--tw-gradient-from: rgb(196 181 253 / .2);--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-300\/25{--tw-gradient-from: rgb(196 181 253 / .25);--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-300\/30{--tw-gradient-from: rgb(196 181 253 / .3);--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-300\/40{--tw-gradient-from: rgb(196 181 253 / .4);--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-300\/5{--tw-gradient-from: rgb(196 181 253 / .05);--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-300\/50{--tw-gradient-from: rgb(196 181 253 / .5);--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-300\/60{--tw-gradient-from: rgb(196 181 253 / .6);--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-300\/70{--tw-gradient-from: rgb(196 181 253 / .7);--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-300\/75{--tw-gradient-from: rgb(196 181 253 / .75);--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-300\/80{--tw-gradient-from: rgb(196 181 253 / .8);--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-300\/90{--tw-gradient-from: rgb(196 181 253 / .9);--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-300\/95{--tw-gradient-from: rgb(196 181 253 / .95);--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400{--tw-gradient-from: #a78bfa;--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400\/0{--tw-gradient-from: rgb(167 139 250 / 0);--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400\/10{--tw-gradient-from: rgb(167 139 250 / .1);--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400\/100{--tw-gradient-from: rgb(167 139 250 / 1);--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400\/20{--tw-gradient-from: rgb(167 139 250 / .2);--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400\/25{--tw-gradient-from: rgb(167 139 250 / .25);--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400\/30{--tw-gradient-from: rgb(167 139 250 / .3);--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400\/40{--tw-gradient-from: rgb(167 139 250 / .4);--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400\/5{--tw-gradient-from: rgb(167 139 250 / .05);--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400\/50{--tw-gradient-from: rgb(167 139 250 / .5);--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400\/60{--tw-gradient-from: rgb(167 139 250 / .6);--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400\/70{--tw-gradient-from: rgb(167 139 250 / .7);--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400\/75{--tw-gradient-from: rgb(167 139 250 / .75);--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400\/80{--tw-gradient-from: rgb(167 139 250 / .8);--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400\/90{--tw-gradient-from: rgb(167 139 250 / .9);--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400\/95{--tw-gradient-from: rgb(167 139 250 / .95);--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50{--tw-gradient-from: #f5f3ff;--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50\/0{--tw-gradient-from: rgb(245 243 255 / 0);--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50\/10{--tw-gradient-from: rgb(245 243 255 / .1);--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50\/100{--tw-gradient-from: rgb(245 243 255 / 1);--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50\/20{--tw-gradient-from: rgb(245 243 255 / .2);--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50\/25{--tw-gradient-from: rgb(245 243 255 / .25);--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50\/30{--tw-gradient-from: rgb(245 243 255 / .3);--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50\/40{--tw-gradient-from: rgb(245 243 255 / .4);--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50\/5{--tw-gradient-from: rgb(245 243 255 / .05);--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50\/50{--tw-gradient-from: rgb(245 243 255 / .5);--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50\/60{--tw-gradient-from: rgb(245 243 255 / .6);--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50\/70{--tw-gradient-from: rgb(245 243 255 / .7);--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50\/75{--tw-gradient-from: rgb(245 243 255 / .75);--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50\/80{--tw-gradient-from: rgb(245 243 255 / .8);--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50\/90{--tw-gradient-from: rgb(245 243 255 / .9);--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50\/95{--tw-gradient-from: rgb(245 243 255 / .95);--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500{--tw-gradient-from: #8b5cf6;--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500\/0{--tw-gradient-from: rgb(139 92 246 / 0);--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500\/10{--tw-gradient-from: rgb(139 92 246 / .1);--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500\/100{--tw-gradient-from: rgb(139 92 246 / 1);--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500\/20{--tw-gradient-from: rgb(139 92 246 / .2);--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500\/25{--tw-gradient-from: rgb(139 92 246 / .25);--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500\/30{--tw-gradient-from: rgb(139 92 246 / .3);--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500\/40{--tw-gradient-from: rgb(139 92 246 / .4);--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500\/5{--tw-gradient-from: rgb(139 92 246 / .05);--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500\/50{--tw-gradient-from: rgb(139 92 246 / .5);--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500\/60{--tw-gradient-from: rgb(139 92 246 / .6);--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500\/70{--tw-gradient-from: rgb(139 92 246 / .7);--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500\/75{--tw-gradient-from: rgb(139 92 246 / .75);--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500\/80{--tw-gradient-from: rgb(139 92 246 / .8);--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500\/90{--tw-gradient-from: rgb(139 92 246 / .9);--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500\/95{--tw-gradient-from: rgb(139 92 246 / .95);--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600{--tw-gradient-from: #7c3aed;--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600\/0{--tw-gradient-from: rgb(124 58 237 / 0);--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600\/10{--tw-gradient-from: rgb(124 58 237 / .1);--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600\/100{--tw-gradient-from: rgb(124 58 237 / 1);--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600\/20{--tw-gradient-from: rgb(124 58 237 / .2);--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600\/25{--tw-gradient-from: rgb(124 58 237 / .25);--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600\/30{--tw-gradient-from: rgb(124 58 237 / .3);--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600\/40{--tw-gradient-from: rgb(124 58 237 / .4);--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600\/5{--tw-gradient-from: rgb(124 58 237 / .05);--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600\/50{--tw-gradient-from: rgb(124 58 237 / .5);--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600\/60{--tw-gradient-from: rgb(124 58 237 / .6);--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600\/70{--tw-gradient-from: rgb(124 58 237 / .7);--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600\/75{--tw-gradient-from: rgb(124 58 237 / .75);--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600\/80{--tw-gradient-from: rgb(124 58 237 / .8);--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600\/90{--tw-gradient-from: rgb(124 58 237 / .9);--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600\/95{--tw-gradient-from: rgb(124 58 237 / .95);--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700{--tw-gradient-from: #6d28d9;--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700\/0{--tw-gradient-from: rgb(109 40 217 / 0);--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700\/10{--tw-gradient-from: rgb(109 40 217 / .1);--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700\/100{--tw-gradient-from: rgb(109 40 217 / 1);--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700\/20{--tw-gradient-from: rgb(109 40 217 / .2);--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700\/25{--tw-gradient-from: rgb(109 40 217 / .25);--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700\/30{--tw-gradient-from: rgb(109 40 217 / .3);--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700\/40{--tw-gradient-from: rgb(109 40 217 / .4);--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700\/5{--tw-gradient-from: rgb(109 40 217 / .05);--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700\/50{--tw-gradient-from: rgb(109 40 217 / .5);--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700\/60{--tw-gradient-from: rgb(109 40 217 / .6);--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700\/70{--tw-gradient-from: rgb(109 40 217 / .7);--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700\/75{--tw-gradient-from: rgb(109 40 217 / .75);--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700\/80{--tw-gradient-from: rgb(109 40 217 / .8);--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700\/90{--tw-gradient-from: rgb(109 40 217 / .9);--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700\/95{--tw-gradient-from: rgb(109 40 217 / .95);--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-800{--tw-gradient-from: #5b21b6;--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-800\/0{--tw-gradient-from: rgb(91 33 182 / 0);--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-800\/10{--tw-gradient-from: rgb(91 33 182 / .1);--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-800\/100{--tw-gradient-from: rgb(91 33 182 / 1);--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-800\/20{--tw-gradient-from: rgb(91 33 182 / .2);--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-800\/25{--tw-gradient-from: rgb(91 33 182 / .25);--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-800\/30{--tw-gradient-from: rgb(91 33 182 / .3);--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-800\/40{--tw-gradient-from: rgb(91 33 182 / .4);--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-800\/5{--tw-gradient-from: rgb(91 33 182 / .05);--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-800\/50{--tw-gradient-from: rgb(91 33 182 / .5);--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-800\/60{--tw-gradient-from: rgb(91 33 182 / .6);--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-800\/70{--tw-gradient-from: rgb(91 33 182 / .7);--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-800\/75{--tw-gradient-from: rgb(91 33 182 / .75);--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-800\/80{--tw-gradient-from: rgb(91 33 182 / .8);--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-800\/90{--tw-gradient-from: rgb(91 33 182 / .9);--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-800\/95{--tw-gradient-from: rgb(91 33 182 / .95);--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-900{--tw-gradient-from: #4c1d95;--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-900\/0{--tw-gradient-from: rgb(76 29 149 / 0);--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-900\/10{--tw-gradient-from: rgb(76 29 149 / .1);--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-900\/100{--tw-gradient-from: rgb(76 29 149 / 1);--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-900\/20{--tw-gradient-from: rgb(76 29 149 / .2);--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-900\/25{--tw-gradient-from: rgb(76 29 149 / .25);--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-900\/30{--tw-gradient-from: rgb(76 29 149 / .3);--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-900\/40{--tw-gradient-from: rgb(76 29 149 / .4);--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-900\/5{--tw-gradient-from: rgb(76 29 149 / .05);--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-900\/50{--tw-gradient-from: rgb(76 29 149 / .5);--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-900\/60{--tw-gradient-from: rgb(76 29 149 / .6);--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-900\/70{--tw-gradient-from: rgb(76 29 149 / .7);--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-900\/75{--tw-gradient-from: rgb(76 29 149 / .75);--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-900\/80{--tw-gradient-from: rgb(76 29 149 / .8);--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-900\/90{--tw-gradient-from: rgb(76 29 149 / .9);--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-900\/95{--tw-gradient-from: rgb(76 29 149 / .95);--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-Occupation_du_sol-primary{--tw-gradient-to: rgb(255 255 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--Occupation_du_sol-primary), var(--tw-gradient-to)}.via-Occupation_du_sol-secondary{--tw-gradient-to: rgb(255 255 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--Occupation_du_sol-secondary), var(--tw-gradient-to)}.via-Occupation_du_sol-tertiary{--tw-gradient-to: rgb(255 255 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--Occupation_du_sol-tertiary), var(--tw-gradient-to)}.via-violet-100{--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), #ede9fe, var(--tw-gradient-to)}.via-violet-100\/0{--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 0), var(--tw-gradient-to)}.via-violet-100\/10{--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / .1), var(--tw-gradient-to)}.via-violet-100\/100{--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 1), var(--tw-gradient-to)}.via-violet-100\/20{--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / .2), var(--tw-gradient-to)}.via-violet-100\/25{--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / .25), var(--tw-gradient-to)}.via-violet-100\/30{--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / .3), var(--tw-gradient-to)}.via-violet-100\/40{--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / .4), var(--tw-gradient-to)}.via-violet-100\/5{--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / .05), var(--tw-gradient-to)}.via-violet-100\/50{--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / .5), var(--tw-gradient-to)}.via-violet-100\/60{--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / .6), var(--tw-gradient-to)}.via-violet-100\/70{--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / .7), var(--tw-gradient-to)}.via-violet-100\/75{--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / .75), var(--tw-gradient-to)}.via-violet-100\/80{--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / .8), var(--tw-gradient-to)}.via-violet-100\/90{--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / .9), var(--tw-gradient-to)}.via-violet-100\/95{--tw-gradient-to: rgb(237 233 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / .95), var(--tw-gradient-to)}.via-violet-200{--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), #ddd6fe, var(--tw-gradient-to)}.via-violet-200\/0{--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 0), var(--tw-gradient-to)}.via-violet-200\/10{--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / .1), var(--tw-gradient-to)}.via-violet-200\/100{--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 1), var(--tw-gradient-to)}.via-violet-200\/20{--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / .2), var(--tw-gradient-to)}.via-violet-200\/25{--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / .25), var(--tw-gradient-to)}.via-violet-200\/30{--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / .3), var(--tw-gradient-to)}.via-violet-200\/40{--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / .4), var(--tw-gradient-to)}.via-violet-200\/5{--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / .05), var(--tw-gradient-to)}.via-violet-200\/50{--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / .5), var(--tw-gradient-to)}.via-violet-200\/60{--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / .6), var(--tw-gradient-to)}.via-violet-200\/70{--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / .7), var(--tw-gradient-to)}.via-violet-200\/75{--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / .75), var(--tw-gradient-to)}.via-violet-200\/80{--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / .8), var(--tw-gradient-to)}.via-violet-200\/90{--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / .9), var(--tw-gradient-to)}.via-violet-200\/95{--tw-gradient-to: rgb(221 214 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / .95), var(--tw-gradient-to)}.via-violet-300{--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), #c4b5fd, var(--tw-gradient-to)}.via-violet-300\/0{--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 0), var(--tw-gradient-to)}.via-violet-300\/10{--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / .1), var(--tw-gradient-to)}.via-violet-300\/100{--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 1), var(--tw-gradient-to)}.via-violet-300\/20{--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / .2), var(--tw-gradient-to)}.via-violet-300\/25{--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / .25), var(--tw-gradient-to)}.via-violet-300\/30{--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / .3), var(--tw-gradient-to)}.via-violet-300\/40{--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / .4), var(--tw-gradient-to)}.via-violet-300\/5{--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / .05), var(--tw-gradient-to)}.via-violet-300\/50{--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / .5), var(--tw-gradient-to)}.via-violet-300\/60{--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / .6), var(--tw-gradient-to)}.via-violet-300\/70{--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / .7), var(--tw-gradient-to)}.via-violet-300\/75{--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / .75), var(--tw-gradient-to)}.via-violet-300\/80{--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / .8), var(--tw-gradient-to)}.via-violet-300\/90{--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / .9), var(--tw-gradient-to)}.via-violet-300\/95{--tw-gradient-to: rgb(196 181 253 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / .95), var(--tw-gradient-to)}.via-violet-400{--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), #a78bfa, var(--tw-gradient-to)}.via-violet-400\/0{--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 0), var(--tw-gradient-to)}.via-violet-400\/10{--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / .1), var(--tw-gradient-to)}.via-violet-400\/100{--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 1), var(--tw-gradient-to)}.via-violet-400\/20{--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / .2), var(--tw-gradient-to)}.via-violet-400\/25{--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / .25), var(--tw-gradient-to)}.via-violet-400\/30{--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / .3), var(--tw-gradient-to)}.via-violet-400\/40{--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / .4), var(--tw-gradient-to)}.via-violet-400\/5{--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / .05), var(--tw-gradient-to)}.via-violet-400\/50{--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / .5), var(--tw-gradient-to)}.via-violet-400\/60{--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / .6), var(--tw-gradient-to)}.via-violet-400\/70{--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / .7), var(--tw-gradient-to)}.via-violet-400\/75{--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / .75), var(--tw-gradient-to)}.via-violet-400\/80{--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / .8), var(--tw-gradient-to)}.via-violet-400\/90{--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / .9), var(--tw-gradient-to)}.via-violet-400\/95{--tw-gradient-to: rgb(167 139 250 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / .95), var(--tw-gradient-to)}.via-violet-50{--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), #f5f3ff, var(--tw-gradient-to)}.via-violet-50\/0{--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 0), var(--tw-gradient-to)}.via-violet-50\/10{--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / .1), var(--tw-gradient-to)}.via-violet-50\/100{--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 1), var(--tw-gradient-to)}.via-violet-50\/20{--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / .2), var(--tw-gradient-to)}.via-violet-50\/25{--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / .25), var(--tw-gradient-to)}.via-violet-50\/30{--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / .3), var(--tw-gradient-to)}.via-violet-50\/40{--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / .4), var(--tw-gradient-to)}.via-violet-50\/5{--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / .05), var(--tw-gradient-to)}.via-violet-50\/50{--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / .5), var(--tw-gradient-to)}.via-violet-50\/60{--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / .6), var(--tw-gradient-to)}.via-violet-50\/70{--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / .7), var(--tw-gradient-to)}.via-violet-50\/75{--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / .75), var(--tw-gradient-to)}.via-violet-50\/80{--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / .8), var(--tw-gradient-to)}.via-violet-50\/90{--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / .9), var(--tw-gradient-to)}.via-violet-50\/95{--tw-gradient-to: rgb(245 243 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / .95), var(--tw-gradient-to)}.via-violet-500{--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), #8b5cf6, var(--tw-gradient-to)}.via-violet-500\/0{--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 0), var(--tw-gradient-to)}.via-violet-500\/10{--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / .1), var(--tw-gradient-to)}.via-violet-500\/100{--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 1), var(--tw-gradient-to)}.via-violet-500\/20{--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / .2), var(--tw-gradient-to)}.via-violet-500\/25{--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / .25), var(--tw-gradient-to)}.via-violet-500\/30{--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / .3), var(--tw-gradient-to)}.via-violet-500\/40{--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / .4), var(--tw-gradient-to)}.via-violet-500\/5{--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / .05), var(--tw-gradient-to)}.via-violet-500\/50{--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / .5), var(--tw-gradient-to)}.via-violet-500\/60{--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / .6), var(--tw-gradient-to)}.via-violet-500\/70{--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / .7), var(--tw-gradient-to)}.via-violet-500\/75{--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / .75), var(--tw-gradient-to)}.via-violet-500\/80{--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / .8), var(--tw-gradient-to)}.via-violet-500\/90{--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / .9), var(--tw-gradient-to)}.via-violet-500\/95{--tw-gradient-to: rgb(139 92 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / .95), var(--tw-gradient-to)}.via-violet-600{--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), #7c3aed, var(--tw-gradient-to)}.via-violet-600\/0{--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 0), var(--tw-gradient-to)}.via-violet-600\/10{--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / .1), var(--tw-gradient-to)}.via-violet-600\/100{--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 1), var(--tw-gradient-to)}.via-violet-600\/20{--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / .2), var(--tw-gradient-to)}.via-violet-600\/25{--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / .25), var(--tw-gradient-to)}.via-violet-600\/30{--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / .3), var(--tw-gradient-to)}.via-violet-600\/40{--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / .4), var(--tw-gradient-to)}.via-violet-600\/5{--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / .05), var(--tw-gradient-to)}.via-violet-600\/50{--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / .5), var(--tw-gradient-to)}.via-violet-600\/60{--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / .6), var(--tw-gradient-to)}.via-violet-600\/70{--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / .7), var(--tw-gradient-to)}.via-violet-600\/75{--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / .75), var(--tw-gradient-to)}.via-violet-600\/80{--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / .8), var(--tw-gradient-to)}.via-violet-600\/90{--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / .9), var(--tw-gradient-to)}.via-violet-600\/95{--tw-gradient-to: rgb(124 58 237 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / .95), var(--tw-gradient-to)}.via-violet-700{--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), #6d28d9, var(--tw-gradient-to)}.via-violet-700\/0{--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 0), var(--tw-gradient-to)}.via-violet-700\/10{--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / .1), var(--tw-gradient-to)}.via-violet-700\/100{--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 1), var(--tw-gradient-to)}.via-violet-700\/20{--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / .2), var(--tw-gradient-to)}.via-violet-700\/25{--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / .25), var(--tw-gradient-to)}.via-violet-700\/30{--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / .3), var(--tw-gradient-to)}.via-violet-700\/40{--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / .4), var(--tw-gradient-to)}.via-violet-700\/5{--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / .05), var(--tw-gradient-to)}.via-violet-700\/50{--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / .5), var(--tw-gradient-to)}.via-violet-700\/60{--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / .6), var(--tw-gradient-to)}.via-violet-700\/70{--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / .7), var(--tw-gradient-to)}.via-violet-700\/75{--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / .75), var(--tw-gradient-to)}.via-violet-700\/80{--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / .8), var(--tw-gradient-to)}.via-violet-700\/90{--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / .9), var(--tw-gradient-to)}.via-violet-700\/95{--tw-gradient-to: rgb(109 40 217 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / .95), var(--tw-gradient-to)}.via-violet-800{--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), #5b21b6, var(--tw-gradient-to)}.via-violet-800\/0{--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 0), var(--tw-gradient-to)}.via-violet-800\/10{--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / .1), var(--tw-gradient-to)}.via-violet-800\/100{--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 1), var(--tw-gradient-to)}.via-violet-800\/20{--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / .2), var(--tw-gradient-to)}.via-violet-800\/25{--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / .25), var(--tw-gradient-to)}.via-violet-800\/30{--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / .3), var(--tw-gradient-to)}.via-violet-800\/40{--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / .4), var(--tw-gradient-to)}.via-violet-800\/5{--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / .05), var(--tw-gradient-to)}.via-violet-800\/50{--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / .5), var(--tw-gradient-to)}.via-violet-800\/60{--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / .6), var(--tw-gradient-to)}.via-violet-800\/70{--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / .7), var(--tw-gradient-to)}.via-violet-800\/75{--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / .75), var(--tw-gradient-to)}.via-violet-800\/80{--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / .8), var(--tw-gradient-to)}.via-violet-800\/90{--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / .9), var(--tw-gradient-to)}.via-violet-800\/95{--tw-gradient-to: rgb(91 33 182 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / .95), var(--tw-gradient-to)}.via-violet-900{--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), #4c1d95, var(--tw-gradient-to)}.via-violet-900\/0{--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 0), var(--tw-gradient-to)}.via-violet-900\/10{--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / .1), var(--tw-gradient-to)}.via-violet-900\/100{--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 1), var(--tw-gradient-to)}.via-violet-900\/20{--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / .2), var(--tw-gradient-to)}.via-violet-900\/25{--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / .25), var(--tw-gradient-to)}.via-violet-900\/30{--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / .3), var(--tw-gradient-to)}.via-violet-900\/40{--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / .4), var(--tw-gradient-to)}.via-violet-900\/5{--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / .05), var(--tw-gradient-to)}.via-violet-900\/50{--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / .5), var(--tw-gradient-to)}.via-violet-900\/60{--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / .6), var(--tw-gradient-to)}.via-violet-900\/70{--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / .7), var(--tw-gradient-to)}.via-violet-900\/75{--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / .75), var(--tw-gradient-to)}.via-violet-900\/80{--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / .8), var(--tw-gradient-to)}.via-violet-900\/90{--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / .9), var(--tw-gradient-to)}.via-violet-900\/95{--tw-gradient-to: rgb(76 29 149 / 0);--tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / .95), var(--tw-gradient-to)}.to-Occupation_du_sol-primary{--tw-gradient-to: var(--Occupation_du_sol-primary)}.to-Occupation_du_sol-secondary{--tw-gradient-to: var(--Occupation_du_sol-secondary)}.to-Occupation_du_sol-tertiary{--tw-gradient-to: var(--Occupation_du_sol-tertiary)}.to-violet-100{--tw-gradient-to: #ede9fe}.to-violet-100\/0{--tw-gradient-to: rgb(237 233 254 / 0)}.to-violet-100\/10{--tw-gradient-to: rgb(237 233 254 / .1)}.to-violet-100\/100{--tw-gradient-to: rgb(237 233 254 / 1)}.to-violet-100\/20{--tw-gradient-to: rgb(237 233 254 / .2)}.to-violet-100\/25{--tw-gradient-to: rgb(237 233 254 / .25)}.to-violet-100\/30{--tw-gradient-to: rgb(237 233 254 / .3)}.to-violet-100\/40{--tw-gradient-to: rgb(237 233 254 / .4)}.to-violet-100\/5{--tw-gradient-to: rgb(237 233 254 / .05)}.to-violet-100\/50{--tw-gradient-to: rgb(237 233 254 / .5)}.to-violet-100\/60{--tw-gradient-to: rgb(237 233 254 / .6)}.to-violet-100\/70{--tw-gradient-to: rgb(237 233 254 / .7)}.to-violet-100\/75{--tw-gradient-to: rgb(237 233 254 / .75)}.to-violet-100\/80{--tw-gradient-to: rgb(237 233 254 / .8)}.to-violet-100\/90{--tw-gradient-to: rgb(237 233 254 / .9)}.to-violet-100\/95{--tw-gradient-to: rgb(237 233 254 / .95)}.to-violet-200{--tw-gradient-to: #ddd6fe}.to-violet-200\/0{--tw-gradient-to: rgb(221 214 254 / 0)}.to-violet-200\/10{--tw-gradient-to: rgb(221 214 254 / .1)}.to-violet-200\/100{--tw-gradient-to: rgb(221 214 254 / 1)}.to-violet-200\/20{--tw-gradient-to: rgb(221 214 254 / .2)}.to-violet-200\/25{--tw-gradient-to: rgb(221 214 254 / .25)}.to-violet-200\/30{--tw-gradient-to: rgb(221 214 254 / .3)}.to-violet-200\/40{--tw-gradient-to: rgb(221 214 254 / .4)}.to-violet-200\/5{--tw-gradient-to: rgb(221 214 254 / .05)}.to-violet-200\/50{--tw-gradient-to: rgb(221 214 254 / .5)}.to-violet-200\/60{--tw-gradient-to: rgb(221 214 254 / .6)}.to-violet-200\/70{--tw-gradient-to: rgb(221 214 254 / .7)}.to-violet-200\/75{--tw-gradient-to: rgb(221 214 254 / .75)}.to-violet-200\/80{--tw-gradient-to: rgb(221 214 254 / .8)}.to-violet-200\/90{--tw-gradient-to: rgb(221 214 254 / .9)}.to-violet-200\/95{--tw-gradient-to: rgb(221 214 254 / .95)}.to-violet-300{--tw-gradient-to: #c4b5fd}.to-violet-300\/0{--tw-gradient-to: rgb(196 181 253 / 0)}.to-violet-300\/10{--tw-gradient-to: rgb(196 181 253 / .1)}.to-violet-300\/100{--tw-gradient-to: rgb(196 181 253 / 1)}.to-violet-300\/20{--tw-gradient-to: rgb(196 181 253 / .2)}.to-violet-300\/25{--tw-gradient-to: rgb(196 181 253 / .25)}.to-violet-300\/30{--tw-gradient-to: rgb(196 181 253 / .3)}.to-violet-300\/40{--tw-gradient-to: rgb(196 181 253 / .4)}.to-violet-300\/5{--tw-gradient-to: rgb(196 181 253 / .05)}.to-violet-300\/50{--tw-gradient-to: rgb(196 181 253 / .5)}.to-violet-300\/60{--tw-gradient-to: rgb(196 181 253 / .6)}.to-violet-300\/70{--tw-gradient-to: rgb(196 181 253 / .7)}.to-violet-300\/75{--tw-gradient-to: rgb(196 181 253 / .75)}.to-violet-300\/80{--tw-gradient-to: rgb(196 181 253 / .8)}.to-violet-300\/90{--tw-gradient-to: rgb(196 181 253 / .9)}.to-violet-300\/95{--tw-gradient-to: rgb(196 181 253 / .95)}.to-violet-400{--tw-gradient-to: #a78bfa}.to-violet-400\/0{--tw-gradient-to: rgb(167 139 250 / 0)}.to-violet-400\/10{--tw-gradient-to: rgb(167 139 250 / .1)}.to-violet-400\/100{--tw-gradient-to: rgb(167 139 250 / 1)}.to-violet-400\/20{--tw-gradient-to: rgb(167 139 250 / .2)}.to-violet-400\/25{--tw-gradient-to: rgb(167 139 250 / .25)}.to-violet-400\/30{--tw-gradient-to: rgb(167 139 250 / .3)}.to-violet-400\/40{--tw-gradient-to: rgb(167 139 250 / .4)}.to-violet-400\/5{--tw-gradient-to: rgb(167 139 250 / .05)}.to-violet-400\/50{--tw-gradient-to: rgb(167 139 250 / .5)}.to-violet-400\/60{--tw-gradient-to: rgb(167 139 250 / .6)}.to-violet-400\/70{--tw-gradient-to: rgb(167 139 250 / .7)}.to-violet-400\/75{--tw-gradient-to: rgb(167 139 250 / .75)}.to-violet-400\/80{--tw-gradient-to: rgb(167 139 250 / .8)}.to-violet-400\/90{--tw-gradient-to: rgb(167 139 250 / .9)}.to-violet-400\/95{--tw-gradient-to: rgb(167 139 250 / .95)}.to-violet-50{--tw-gradient-to: #f5f3ff}.to-violet-50\/0{--tw-gradient-to: rgb(245 243 255 / 0)}.to-violet-50\/10{--tw-gradient-to: rgb(245 243 255 / .1)}.to-violet-50\/100{--tw-gradient-to: rgb(245 243 255 / 1)}.to-violet-50\/20{--tw-gradient-to: rgb(245 243 255 / .2)}.to-violet-50\/25{--tw-gradient-to: rgb(245 243 255 / .25)}.to-violet-50\/30{--tw-gradient-to: rgb(245 243 255 / .3)}.to-violet-50\/40{--tw-gradient-to: rgb(245 243 255 / .4)}.to-violet-50\/5{--tw-gradient-to: rgb(245 243 255 / .05)}.to-violet-50\/50{--tw-gradient-to: rgb(245 243 255 / .5)}.to-violet-50\/60{--tw-gradient-to: rgb(245 243 255 / .6)}.to-violet-50\/70{--tw-gradient-to: rgb(245 243 255 / .7)}.to-violet-50\/75{--tw-gradient-to: rgb(245 243 255 / .75)}.to-violet-50\/80{--tw-gradient-to: rgb(245 243 255 / .8)}.to-violet-50\/90{--tw-gradient-to: rgb(245 243 255 / .9)}.to-violet-50\/95{--tw-gradient-to: rgb(245 243 255 / .95)}.to-violet-500{--tw-gradient-to: #8b5cf6}.to-violet-500\/0{--tw-gradient-to: rgb(139 92 246 / 0)}.to-violet-500\/10{--tw-gradient-to: rgb(139 92 246 / .1)}.to-violet-500\/100{--tw-gradient-to: rgb(139 92 246 / 1)}.to-violet-500\/20{--tw-gradient-to: rgb(139 92 246 / .2)}.to-violet-500\/25{--tw-gradient-to: rgb(139 92 246 / .25)}.to-violet-500\/30{--tw-gradient-to: rgb(139 92 246 / .3)}.to-violet-500\/40{--tw-gradient-to: rgb(139 92 246 / .4)}.to-violet-500\/5{--tw-gradient-to: rgb(139 92 246 / .05)}.to-violet-500\/50{--tw-gradient-to: rgb(139 92 246 / .5)}.to-violet-500\/60{--tw-gradient-to: rgb(139 92 246 / .6)}.to-violet-500\/70{--tw-gradient-to: rgb(139 92 246 / .7)}.to-violet-500\/75{--tw-gradient-to: rgb(139 92 246 / .75)}.to-violet-500\/80{--tw-gradient-to: rgb(139 92 246 / .8)}.to-violet-500\/90{--tw-gradient-to: rgb(139 92 246 / .9)}.to-violet-500\/95{--tw-gradient-to: rgb(139 92 246 / .95)}.to-violet-600{--tw-gradient-to: #7c3aed}.to-violet-600\/0{--tw-gradient-to: rgb(124 58 237 / 0)}.to-violet-600\/10{--tw-gradient-to: rgb(124 58 237 / .1)}.to-violet-600\/100{--tw-gradient-to: rgb(124 58 237 / 1)}.to-violet-600\/20{--tw-gradient-to: rgb(124 58 237 / .2)}.to-violet-600\/25{--tw-gradient-to: rgb(124 58 237 / .25)}.to-violet-600\/30{--tw-gradient-to: rgb(124 58 237 / .3)}.to-violet-600\/40{--tw-gradient-to: rgb(124 58 237 / .4)}.to-violet-600\/5{--tw-gradient-to: rgb(124 58 237 / .05)}.to-violet-600\/50{--tw-gradient-to: rgb(124 58 237 / .5)}.to-violet-600\/60{--tw-gradient-to: rgb(124 58 237 / .6)}.to-violet-600\/70{--tw-gradient-to: rgb(124 58 237 / .7)}.to-violet-600\/75{--tw-gradient-to: rgb(124 58 237 / .75)}.to-violet-600\/80{--tw-gradient-to: rgb(124 58 237 / .8)}.to-violet-600\/90{--tw-gradient-to: rgb(124 58 237 / .9)}.to-violet-600\/95{--tw-gradient-to: rgb(124 58 237 / .95)}.to-violet-700{--tw-gradient-to: #6d28d9}.to-violet-700\/0{--tw-gradient-to: rgb(109 40 217 / 0)}.to-violet-700\/10{--tw-gradient-to: rgb(109 40 217 / .1)}.to-violet-700\/100{--tw-gradient-to: rgb(109 40 217 / 1)}.to-violet-700\/20{--tw-gradient-to: rgb(109 40 217 / .2)}.to-violet-700\/25{--tw-gradient-to: rgb(109 40 217 / .25)}.to-violet-700\/30{--tw-gradient-to: rgb(109 40 217 / .3)}.to-violet-700\/40{--tw-gradient-to: rgb(109 40 217 / .4)}.to-violet-700\/5{--tw-gradient-to: rgb(109 40 217 / .05)}.to-violet-700\/50{--tw-gradient-to: rgb(109 40 217 / .5)}.to-violet-700\/60{--tw-gradient-to: rgb(109 40 217 / .6)}.to-violet-700\/70{--tw-gradient-to: rgb(109 40 217 / .7)}.to-violet-700\/75{--tw-gradient-to: rgb(109 40 217 / .75)}.to-violet-700\/80{--tw-gradient-to: rgb(109 40 217 / .8)}.to-violet-700\/90{--tw-gradient-to: rgb(109 40 217 / .9)}.to-violet-700\/95{--tw-gradient-to: rgb(109 40 217 / .95)}.to-violet-800{--tw-gradient-to: #5b21b6}.to-violet-800\/0{--tw-gradient-to: rgb(91 33 182 / 0)}.to-violet-800\/10{--tw-gradient-to: rgb(91 33 182 / .1)}.to-violet-800\/100{--tw-gradient-to: rgb(91 33 182 / 1)}.to-violet-800\/20{--tw-gradient-to: rgb(91 33 182 / .2)}.to-violet-800\/25{--tw-gradient-to: rgb(91 33 182 / .25)}.to-violet-800\/30{--tw-gradient-to: rgb(91 33 182 / .3)}.to-violet-800\/40{--tw-gradient-to: rgb(91 33 182 / .4)}.to-violet-800\/5{--tw-gradient-to: rgb(91 33 182 / .05)}.to-violet-800\/50{--tw-gradient-to: rgb(91 33 182 / .5)}.to-violet-800\/60{--tw-gradient-to: rgb(91 33 182 / .6)}.to-violet-800\/70{--tw-gradient-to: rgb(91 33 182 / .7)}.to-violet-800\/75{--tw-gradient-to: rgb(91 33 182 / .75)}.to-violet-800\/80{--tw-gradient-to: rgb(91 33 182 / .8)}.to-violet-800\/90{--tw-gradient-to: rgb(91 33 182 / .9)}.to-violet-800\/95{--tw-gradient-to: rgb(91 33 182 / .95)}.to-violet-900{--tw-gradient-to: #4c1d95}.to-violet-900\/0{--tw-gradient-to: rgb(76 29 149 / 0)}.to-violet-900\/10{--tw-gradient-to: rgb(76 29 149 / .1)}.to-violet-900\/100{--tw-gradient-to: rgb(76 29 149 / 1)}.to-violet-900\/20{--tw-gradient-to: rgb(76 29 149 / .2)}.to-violet-900\/25{--tw-gradient-to: rgb(76 29 149 / .25)}.to-violet-900\/30{--tw-gradient-to: rgb(76 29 149 / .3)}.to-violet-900\/40{--tw-gradient-to: rgb(76 29 149 / .4)}.to-violet-900\/5{--tw-gradient-to: rgb(76 29 149 / .05)}.to-violet-900\/50{--tw-gradient-to: rgb(76 29 149 / .5)}.to-violet-900\/60{--tw-gradient-to: rgb(76 29 149 / .6)}.to-violet-900\/70{--tw-gradient-to: rgb(76 29 149 / .7)}.to-violet-900\/75{--tw-gradient-to: rgb(76 29 149 / .75)}.to-violet-900\/80{--tw-gradient-to: rgb(76 29 149 / .8)}.to-violet-900\/90{--tw-gradient-to: rgb(76 29 149 / .9)}.to-violet-900\/95{--tw-gradient-to: rgb(76 29 149 / .95)}.bg-scroll{background-attachment:scroll}.fill-Occupation_du_sol-primary{fill:var(--Occupation_du_sol-primary)}.fill-Occupation_du_sol-secondary{fill:var(--Occupation_du_sol-secondary)}.fill-Occupation_du_sol-tertiary{fill:var(--Occupation_du_sol-tertiary)}.fill-violet-100{fill:#ede9fe}.fill-violet-100\/0{fill:#ede9fe00}.fill-violet-100\/10{fill:#ede9fe1a}.fill-violet-100\/100{fill:#ede9fe}.fill-violet-100\/20{fill:#ede9fe33}.fill-violet-100\/25{fill:#ede9fe40}.fill-violet-100\/30{fill:#ede9fe4d}.fill-violet-100\/40{fill:#ede9fe66}.fill-violet-100\/5{fill:#ede9fe0d}.fill-violet-100\/50{fill:#ede9fe80}.fill-violet-100\/60{fill:#ede9fe99}.fill-violet-100\/70{fill:#ede9feb3}.fill-violet-100\/75{fill:#ede9febf}.fill-violet-100\/80{fill:#ede9fecc}.fill-violet-100\/90{fill:#ede9fee6}.fill-violet-100\/95{fill:#ede9fef2}.fill-violet-200{fill:#ddd6fe}.fill-violet-200\/0{fill:#ddd6fe00}.fill-violet-200\/10{fill:#ddd6fe1a}.fill-violet-200\/100{fill:#ddd6fe}.fill-violet-200\/20{fill:#ddd6fe33}.fill-violet-200\/25{fill:#ddd6fe40}.fill-violet-200\/30{fill:#ddd6fe4d}.fill-violet-200\/40{fill:#ddd6fe66}.fill-violet-200\/5{fill:#ddd6fe0d}.fill-violet-200\/50{fill:#ddd6fe80}.fill-violet-200\/60{fill:#ddd6fe99}.fill-violet-200\/70{fill:#ddd6feb3}.fill-violet-200\/75{fill:#ddd6febf}.fill-violet-200\/80{fill:#ddd6fecc}.fill-violet-200\/90{fill:#ddd6fee6}.fill-violet-200\/95{fill:#ddd6fef2}.fill-violet-300{fill:#c4b5fd}.fill-violet-300\/0{fill:#c4b5fd00}.fill-violet-300\/10{fill:#c4b5fd1a}.fill-violet-300\/100{fill:#c4b5fd}.fill-violet-300\/20{fill:#c4b5fd33}.fill-violet-300\/25{fill:#c4b5fd40}.fill-violet-300\/30{fill:#c4b5fd4d}.fill-violet-300\/40{fill:#c4b5fd66}.fill-violet-300\/5{fill:#c4b5fd0d}.fill-violet-300\/50{fill:#c4b5fd80}.fill-violet-300\/60{fill:#c4b5fd99}.fill-violet-300\/70{fill:#c4b5fdb3}.fill-violet-300\/75{fill:#c4b5fdbf}.fill-violet-300\/80{fill:#c4b5fdcc}.fill-violet-300\/90{fill:#c4b5fde6}.fill-violet-300\/95{fill:#c4b5fdf2}.fill-violet-400{fill:#a78bfa}.fill-violet-400\/0{fill:#a78bfa00}.fill-violet-400\/10{fill:#a78bfa1a}.fill-violet-400\/100{fill:#a78bfa}.fill-violet-400\/20{fill:#a78bfa33}.fill-violet-400\/25{fill:#a78bfa40}.fill-violet-400\/30{fill:#a78bfa4d}.fill-violet-400\/40{fill:#a78bfa66}.fill-violet-400\/5{fill:#a78bfa0d}.fill-violet-400\/50{fill:#a78bfa80}.fill-violet-400\/60{fill:#a78bfa99}.fill-violet-400\/70{fill:#a78bfab3}.fill-violet-400\/75{fill:#a78bfabf}.fill-violet-400\/80{fill:#a78bfacc}.fill-violet-400\/90{fill:#a78bfae6}.fill-violet-400\/95{fill:#a78bfaf2}.fill-violet-50{fill:#f5f3ff}.fill-violet-50\/0{fill:#f5f3ff00}.fill-violet-50\/10{fill:#f5f3ff1a}.fill-violet-50\/100{fill:#f5f3ff}.fill-violet-50\/20{fill:#f5f3ff33}.fill-violet-50\/25{fill:#f5f3ff40}.fill-violet-50\/30{fill:#f5f3ff4d}.fill-violet-50\/40{fill:#f5f3ff66}.fill-violet-50\/5{fill:#f5f3ff0d}.fill-violet-50\/50{fill:#f5f3ff80}.fill-violet-50\/60{fill:#f5f3ff99}.fill-violet-50\/70{fill:#f5f3ffb3}.fill-violet-50\/75{fill:#f5f3ffbf}.fill-violet-50\/80{fill:#f5f3ffcc}.fill-violet-50\/90{fill:#f5f3ffe6}.fill-violet-50\/95{fill:#f5f3fff2}.fill-violet-500{fill:#8b5cf6}.fill-violet-500\/0{fill:#8b5cf600}.fill-violet-500\/10{fill:#8b5cf61a}.fill-violet-500\/100{fill:#8b5cf6}.fill-violet-500\/20{fill:#8b5cf633}.fill-violet-500\/25{fill:#8b5cf640}.fill-violet-500\/30{fill:#8b5cf64d}.fill-violet-500\/40{fill:#8b5cf666}.fill-violet-500\/5{fill:#8b5cf60d}.fill-violet-500\/50{fill:#8b5cf680}.fill-violet-500\/60{fill:#8b5cf699}.fill-violet-500\/70{fill:#8b5cf6b3}.fill-violet-500\/75{fill:#8b5cf6bf}.fill-violet-500\/80{fill:#8b5cf6cc}.fill-violet-500\/90{fill:#8b5cf6e6}.fill-violet-500\/95{fill:#8b5cf6f2}.fill-violet-600{fill:#7c3aed}.fill-violet-600\/0{fill:#7c3aed00}.fill-violet-600\/10{fill:#7c3aed1a}.fill-violet-600\/100{fill:#7c3aed}.fill-violet-600\/20{fill:#7c3aed33}.fill-violet-600\/25{fill:#7c3aed40}.fill-violet-600\/30{fill:#7c3aed4d}.fill-violet-600\/40{fill:#7c3aed66}.fill-violet-600\/5{fill:#7c3aed0d}.fill-violet-600\/50{fill:#7c3aed80}.fill-violet-600\/60{fill:#7c3aed99}.fill-violet-600\/70{fill:#7c3aedb3}.fill-violet-600\/75{fill:#7c3aedbf}.fill-violet-600\/80{fill:#7c3aedcc}.fill-violet-600\/90{fill:#7c3aede6}.fill-violet-600\/95{fill:#7c3aedf2}.fill-violet-700{fill:#6d28d9}.fill-violet-700\/0{fill:#6d28d900}.fill-violet-700\/10{fill:#6d28d91a}.fill-violet-700\/100{fill:#6d28d9}.fill-violet-700\/20{fill:#6d28d933}.fill-violet-700\/25{fill:#6d28d940}.fill-violet-700\/30{fill:#6d28d94d}.fill-violet-700\/40{fill:#6d28d966}.fill-violet-700\/5{fill:#6d28d90d}.fill-violet-700\/50{fill:#6d28d980}.fill-violet-700\/60{fill:#6d28d999}.fill-violet-700\/70{fill:#6d28d9b3}.fill-violet-700\/75{fill:#6d28d9bf}.fill-violet-700\/80{fill:#6d28d9cc}.fill-violet-700\/90{fill:#6d28d9e6}.fill-violet-700\/95{fill:#6d28d9f2}.fill-violet-800{fill:#5b21b6}.fill-violet-800\/0{fill:#5b21b600}.fill-violet-800\/10{fill:#5b21b61a}.fill-violet-800\/100{fill:#5b21b6}.fill-violet-800\/20{fill:#5b21b633}.fill-violet-800\/25{fill:#5b21b640}.fill-violet-800\/30{fill:#5b21b64d}.fill-violet-800\/40{fill:#5b21b666}.fill-violet-800\/5{fill:#5b21b60d}.fill-violet-800\/50{fill:#5b21b680}.fill-violet-800\/60{fill:#5b21b699}.fill-violet-800\/70{fill:#5b21b6b3}.fill-violet-800\/75{fill:#5b21b6bf}.fill-violet-800\/80{fill:#5b21b6cc}.fill-violet-800\/90{fill:#5b21b6e6}.fill-violet-800\/95{fill:#5b21b6f2}.fill-violet-900{fill:#4c1d95}.fill-violet-900\/0{fill:#4c1d9500}.fill-violet-900\/10{fill:#4c1d951a}.fill-violet-900\/100{fill:#4c1d95}.fill-violet-900\/20{fill:#4c1d9533}.fill-violet-900\/25{fill:#4c1d9540}.fill-violet-900\/30{fill:#4c1d954d}.fill-violet-900\/40{fill:#4c1d9566}.fill-violet-900\/5{fill:#4c1d950d}.fill-violet-900\/50{fill:#4c1d9580}.fill-violet-900\/60{fill:#4c1d9599}.fill-violet-900\/70{fill:#4c1d95b3}.fill-violet-900\/75{fill:#4c1d95bf}.fill-violet-900\/80{fill:#4c1d95cc}.fill-violet-900\/90{fill:#4c1d95e6}.fill-violet-900\/95{fill:#4c1d95f2}.stroke-Occupation_du_sol-primary{stroke:var(--Occupation_du_sol-primary)}.stroke-Occupation_du_sol-secondary{stroke:var(--Occupation_du_sol-secondary)}.stroke-Occupation_du_sol-tertiary{stroke:var(--Occupation_du_sol-tertiary)}.stroke-violet-100{stroke:#ede9fe}.stroke-violet-100\/0{stroke:#ede9fe00}.stroke-violet-100\/10{stroke:#ede9fe1a}.stroke-violet-100\/100{stroke:#ede9fe}.stroke-violet-100\/20{stroke:#ede9fe33}.stroke-violet-100\/25{stroke:#ede9fe40}.stroke-violet-100\/30{stroke:#ede9fe4d}.stroke-violet-100\/40{stroke:#ede9fe66}.stroke-violet-100\/5{stroke:#ede9fe0d}.stroke-violet-100\/50{stroke:#ede9fe80}.stroke-violet-100\/60{stroke:#ede9fe99}.stroke-violet-100\/70{stroke:#ede9feb3}.stroke-violet-100\/75{stroke:#ede9febf}.stroke-violet-100\/80{stroke:#ede9fecc}.stroke-violet-100\/90{stroke:#ede9fee6}.stroke-violet-100\/95{stroke:#ede9fef2}.stroke-violet-200{stroke:#ddd6fe}.stroke-violet-200\/0{stroke:#ddd6fe00}.stroke-violet-200\/10{stroke:#ddd6fe1a}.stroke-violet-200\/100{stroke:#ddd6fe}.stroke-violet-200\/20{stroke:#ddd6fe33}.stroke-violet-200\/25{stroke:#ddd6fe40}.stroke-violet-200\/30{stroke:#ddd6fe4d}.stroke-violet-200\/40{stroke:#ddd6fe66}.stroke-violet-200\/5{stroke:#ddd6fe0d}.stroke-violet-200\/50{stroke:#ddd6fe80}.stroke-violet-200\/60{stroke:#ddd6fe99}.stroke-violet-200\/70{stroke:#ddd6feb3}.stroke-violet-200\/75{stroke:#ddd6febf}.stroke-violet-200\/80{stroke:#ddd6fecc}.stroke-violet-200\/90{stroke:#ddd6fee6}.stroke-violet-200\/95{stroke:#ddd6fef2}.stroke-violet-300{stroke:#c4b5fd}.stroke-violet-300\/0{stroke:#c4b5fd00}.stroke-violet-300\/10{stroke:#c4b5fd1a}.stroke-violet-300\/100{stroke:#c4b5fd}.stroke-violet-300\/20{stroke:#c4b5fd33}.stroke-violet-300\/25{stroke:#c4b5fd40}.stroke-violet-300\/30{stroke:#c4b5fd4d}.stroke-violet-300\/40{stroke:#c4b5fd66}.stroke-violet-300\/5{stroke:#c4b5fd0d}.stroke-violet-300\/50{stroke:#c4b5fd80}.stroke-violet-300\/60{stroke:#c4b5fd99}.stroke-violet-300\/70{stroke:#c4b5fdb3}.stroke-violet-300\/75{stroke:#c4b5fdbf}.stroke-violet-300\/80{stroke:#c4b5fdcc}.stroke-violet-300\/90{stroke:#c4b5fde6}.stroke-violet-300\/95{stroke:#c4b5fdf2}.stroke-violet-400{stroke:#a78bfa}.stroke-violet-400\/0{stroke:#a78bfa00}.stroke-violet-400\/10{stroke:#a78bfa1a}.stroke-violet-400\/100{stroke:#a78bfa}.stroke-violet-400\/20{stroke:#a78bfa33}.stroke-violet-400\/25{stroke:#a78bfa40}.stroke-violet-400\/30{stroke:#a78bfa4d}.stroke-violet-400\/40{stroke:#a78bfa66}.stroke-violet-400\/5{stroke:#a78bfa0d}.stroke-violet-400\/50{stroke:#a78bfa80}.stroke-violet-400\/60{stroke:#a78bfa99}.stroke-violet-400\/70{stroke:#a78bfab3}.stroke-violet-400\/75{stroke:#a78bfabf}.stroke-violet-400\/80{stroke:#a78bfacc}.stroke-violet-400\/90{stroke:#a78bfae6}.stroke-violet-400\/95{stroke:#a78bfaf2}.stroke-violet-50{stroke:#f5f3ff}.stroke-violet-50\/0{stroke:#f5f3ff00}.stroke-violet-50\/10{stroke:#f5f3ff1a}.stroke-violet-50\/100{stroke:#f5f3ff}.stroke-violet-50\/20{stroke:#f5f3ff33}.stroke-violet-50\/25{stroke:#f5f3ff40}.stroke-violet-50\/30{stroke:#f5f3ff4d}.stroke-violet-50\/40{stroke:#f5f3ff66}.stroke-violet-50\/5{stroke:#f5f3ff0d}.stroke-violet-50\/50{stroke:#f5f3ff80}.stroke-violet-50\/60{stroke:#f5f3ff99}.stroke-violet-50\/70{stroke:#f5f3ffb3}.stroke-violet-50\/75{stroke:#f5f3ffbf}.stroke-violet-50\/80{stroke:#f5f3ffcc}.stroke-violet-50\/90{stroke:#f5f3ffe6}.stroke-violet-50\/95{stroke:#f5f3fff2}.stroke-violet-500{stroke:#8b5cf6}.stroke-violet-500\/0{stroke:#8b5cf600}.stroke-violet-500\/10{stroke:#8b5cf61a}.stroke-violet-500\/100{stroke:#8b5cf6}.stroke-violet-500\/20{stroke:#8b5cf633}.stroke-violet-500\/25{stroke:#8b5cf640}.stroke-violet-500\/30{stroke:#8b5cf64d}.stroke-violet-500\/40{stroke:#8b5cf666}.stroke-violet-500\/5{stroke:#8b5cf60d}.stroke-violet-500\/50{stroke:#8b5cf680}.stroke-violet-500\/60{stroke:#8b5cf699}.stroke-violet-500\/70{stroke:#8b5cf6b3}.stroke-violet-500\/75{stroke:#8b5cf6bf}.stroke-violet-500\/80{stroke:#8b5cf6cc}.stroke-violet-500\/90{stroke:#8b5cf6e6}.stroke-violet-500\/95{stroke:#8b5cf6f2}.stroke-violet-600{stroke:#7c3aed}.stroke-violet-600\/0{stroke:#7c3aed00}.stroke-violet-600\/10{stroke:#7c3aed1a}.stroke-violet-600\/100{stroke:#7c3aed}.stroke-violet-600\/20{stroke:#7c3aed33}.stroke-violet-600\/25{stroke:#7c3aed40}.stroke-violet-600\/30{stroke:#7c3aed4d}.stroke-violet-600\/40{stroke:#7c3aed66}.stroke-violet-600\/5{stroke:#7c3aed0d}.stroke-violet-600\/50{stroke:#7c3aed80}.stroke-violet-600\/60{stroke:#7c3aed99}.stroke-violet-600\/70{stroke:#7c3aedb3}.stroke-violet-600\/75{stroke:#7c3aedbf}.stroke-violet-600\/80{stroke:#7c3aedcc}.stroke-violet-600\/90{stroke:#7c3aede6}.stroke-violet-600\/95{stroke:#7c3aedf2}.stroke-violet-700{stroke:#6d28d9}.stroke-violet-700\/0{stroke:#6d28d900}.stroke-violet-700\/10{stroke:#6d28d91a}.stroke-violet-700\/100{stroke:#6d28d9}.stroke-violet-700\/20{stroke:#6d28d933}.stroke-violet-700\/25{stroke:#6d28d940}.stroke-violet-700\/30{stroke:#6d28d94d}.stroke-violet-700\/40{stroke:#6d28d966}.stroke-violet-700\/5{stroke:#6d28d90d}.stroke-violet-700\/50{stroke:#6d28d980}.stroke-violet-700\/60{stroke:#6d28d999}.stroke-violet-700\/70{stroke:#6d28d9b3}.stroke-violet-700\/75{stroke:#6d28d9bf}.stroke-violet-700\/80{stroke:#6d28d9cc}.stroke-violet-700\/90{stroke:#6d28d9e6}.stroke-violet-700\/95{stroke:#6d28d9f2}.stroke-violet-800{stroke:#5b21b6}.stroke-violet-800\/0{stroke:#5b21b600}.stroke-violet-800\/10{stroke:#5b21b61a}.stroke-violet-800\/100{stroke:#5b21b6}.stroke-violet-800\/20{stroke:#5b21b633}.stroke-violet-800\/25{stroke:#5b21b640}.stroke-violet-800\/30{stroke:#5b21b64d}.stroke-violet-800\/40{stroke:#5b21b666}.stroke-violet-800\/5{stroke:#5b21b60d}.stroke-violet-800\/50{stroke:#5b21b680}.stroke-violet-800\/60{stroke:#5b21b699}.stroke-violet-800\/70{stroke:#5b21b6b3}.stroke-violet-800\/75{stroke:#5b21b6bf}.stroke-violet-800\/80{stroke:#5b21b6cc}.stroke-violet-800\/90{stroke:#5b21b6e6}.stroke-violet-800\/95{stroke:#5b21b6f2}.stroke-violet-900{stroke:#4c1d95}.stroke-violet-900\/0{stroke:#4c1d9500}.stroke-violet-900\/10{stroke:#4c1d951a}.stroke-violet-900\/100{stroke:#4c1d95}.stroke-violet-900\/20{stroke:#4c1d9533}.stroke-violet-900\/25{stroke:#4c1d9540}.stroke-violet-900\/30{stroke:#4c1d954d}.stroke-violet-900\/40{stroke:#4c1d9566}.stroke-violet-900\/5{stroke:#4c1d950d}.stroke-violet-900\/50{stroke:#4c1d9580}.stroke-violet-900\/60{stroke:#4c1d9599}.stroke-violet-900\/70{stroke:#4c1d95b3}.stroke-violet-900\/75{stroke:#4c1d95bf}.stroke-violet-900\/80{stroke:#4c1d95cc}.stroke-violet-900\/90{stroke:#4c1d95e6}.stroke-violet-900\/95{stroke:#4c1d95f2}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-4{padding:1rem}.p-\[10px\]{padding:10px}.p-\[15px\]{padding:15px}.p-\[5px\]{padding:5px}.p-px{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-4{padding-left:1rem;padding-right:1rem}.px-\[2px\]{padding-left:2px;padding-right:2px}.px-\[7px\]{padding-left:7px;padding-right:7px}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-\[1px\]{padding-top:1px;padding-bottom:1px}.py-\[3px\]{padding-top:3px;padding-bottom:3px}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pr-2{padding-right:.5rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-3{padding-top:.75rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-start{text-align:start}.font-arial{font-family:Arial,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-6xl{font-size:3.75rem;line-height:1}.text-\[1\.7rem\]{font-size:1.7rem}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[24px\]{font-size:24px}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.oldstyle-nums{--tw-numeric-figure: oldstyle-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-6{line-height:1.5rem}.text-Occupation_du_sol-primary{color:var(--Occupation_du_sol-primary)}.text-Occupation_du_sol-secondary{color:var(--Occupation_du_sol-secondary)}.text-Occupation_du_sol-tertiary{color:var(--Occupation_du_sol-tertiary)}.text-gray-100\/40{color:#f3f4f666}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-secondary)}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.text-tertiary{color:var(--color-tertiary)}.text-violet-100{--tw-text-opacity: 1;color:rgb(237 233 254 / var(--tw-text-opacity))}.text-violet-100\/0{color:#ede9fe00}.text-violet-100\/10{color:#ede9fe1a}.text-violet-100\/100{color:#ede9fe}.text-violet-100\/20{color:#ede9fe33}.text-violet-100\/25{color:#ede9fe40}.text-violet-100\/30{color:#ede9fe4d}.text-violet-100\/40{color:#ede9fe66}.text-violet-100\/5{color:#ede9fe0d}.text-violet-100\/50{color:#ede9fe80}.text-violet-100\/60{color:#ede9fe99}.text-violet-100\/70{color:#ede9feb3}.text-violet-100\/75{color:#ede9febf}.text-violet-100\/80{color:#ede9fecc}.text-violet-100\/90{color:#ede9fee6}.text-violet-100\/95{color:#ede9fef2}.text-violet-200{--tw-text-opacity: 1;color:rgb(221 214 254 / var(--tw-text-opacity))}.text-violet-200\/0{color:#ddd6fe00}.text-violet-200\/10{color:#ddd6fe1a}.text-violet-200\/100{color:#ddd6fe}.text-violet-200\/20{color:#ddd6fe33}.text-violet-200\/25{color:#ddd6fe40}.text-violet-200\/30{color:#ddd6fe4d}.text-violet-200\/40{color:#ddd6fe66}.text-violet-200\/5{color:#ddd6fe0d}.text-violet-200\/50{color:#ddd6fe80}.text-violet-200\/60{color:#ddd6fe99}.text-violet-200\/70{color:#ddd6feb3}.text-violet-200\/75{color:#ddd6febf}.text-violet-200\/80{color:#ddd6fecc}.text-violet-200\/90{color:#ddd6fee6}.text-violet-200\/95{color:#ddd6fef2}.text-violet-300{--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity))}.text-violet-300\/0{color:#c4b5fd00}.text-violet-300\/10{color:#c4b5fd1a}.text-violet-300\/100{color:#c4b5fd}.text-violet-300\/20{color:#c4b5fd33}.text-violet-300\/25{color:#c4b5fd40}.text-violet-300\/30{color:#c4b5fd4d}.text-violet-300\/40{color:#c4b5fd66}.text-violet-300\/5{color:#c4b5fd0d}.text-violet-300\/50{color:#c4b5fd80}.text-violet-300\/60{color:#c4b5fd99}.text-violet-300\/70{color:#c4b5fdb3}.text-violet-300\/75{color:#c4b5fdbf}.text-violet-300\/80{color:#c4b5fdcc}.text-violet-300\/90{color:#c4b5fde6}.text-violet-300\/95{color:#c4b5fdf2}.text-violet-400{--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity))}.text-violet-400\/0{color:#a78bfa00}.text-violet-400\/10{color:#a78bfa1a}.text-violet-400\/100{color:#a78bfa}.text-violet-400\/20{color:#a78bfa33}.text-violet-400\/25{color:#a78bfa40}.text-violet-400\/30{color:#a78bfa4d}.text-violet-400\/40{color:#a78bfa66}.text-violet-400\/5{color:#a78bfa0d}.text-violet-400\/50{color:#a78bfa80}.text-violet-400\/60{color:#a78bfa99}.text-violet-400\/70{color:#a78bfab3}.text-violet-400\/75{color:#a78bfabf}.text-violet-400\/80{color:#a78bfacc}.text-violet-400\/90{color:#a78bfae6}.text-violet-400\/95{color:#a78bfaf2}.text-violet-50{--tw-text-opacity: 1;color:rgb(245 243 255 / var(--tw-text-opacity))}.text-violet-50\/0{color:#f5f3ff00}.text-violet-50\/10{color:#f5f3ff1a}.text-violet-50\/100{color:#f5f3ff}.text-violet-50\/20{color:#f5f3ff33}.text-violet-50\/25{color:#f5f3ff40}.text-violet-50\/30{color:#f5f3ff4d}.text-violet-50\/40{color:#f5f3ff66}.text-violet-50\/5{color:#f5f3ff0d}.text-violet-50\/50{color:#f5f3ff80}.text-violet-50\/60{color:#f5f3ff99}.text-violet-50\/70{color:#f5f3ffb3}.text-violet-50\/75{color:#f5f3ffbf}.text-violet-50\/80{color:#f5f3ffcc}.text-violet-50\/90{color:#f5f3ffe6}.text-violet-50\/95{color:#f5f3fff2}.text-violet-500{--tw-text-opacity: 1;color:rgb(139 92 246 / var(--tw-text-opacity))}.text-violet-500\/0{color:#8b5cf600}.text-violet-500\/10{color:#8b5cf61a}.text-violet-500\/100{color:#8b5cf6}.text-violet-500\/20{color:#8b5cf633}.text-violet-500\/25{color:#8b5cf640}.text-violet-500\/30{color:#8b5cf64d}.text-violet-500\/40{color:#8b5cf666}.text-violet-500\/5{color:#8b5cf60d}.text-violet-500\/50{color:#8b5cf680}.text-violet-500\/60{color:#8b5cf699}.text-violet-500\/70{color:#8b5cf6b3}.text-violet-500\/75{color:#8b5cf6bf}.text-violet-500\/80{color:#8b5cf6cc}.text-violet-500\/90{color:#8b5cf6e6}.text-violet-500\/95{color:#8b5cf6f2}.text-violet-600{--tw-text-opacity: 1;color:rgb(124 58 237 / var(--tw-text-opacity))}.text-violet-600\/0{color:#7c3aed00}.text-violet-600\/10{color:#7c3aed1a}.text-violet-600\/100{color:#7c3aed}.text-violet-600\/20{color:#7c3aed33}.text-violet-600\/25{color:#7c3aed40}.text-violet-600\/30{color:#7c3aed4d}.text-violet-600\/40{color:#7c3aed66}.text-violet-600\/5{color:#7c3aed0d}.text-violet-600\/50{color:#7c3aed80}.text-violet-600\/60{color:#7c3aed99}.text-violet-600\/70{color:#7c3aedb3}.text-violet-600\/75{color:#7c3aedbf}.text-violet-600\/80{color:#7c3aedcc}.text-violet-600\/90{color:#7c3aede6}.text-violet-600\/95{color:#7c3aedf2}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity))}.text-violet-700\/0{color:#6d28d900}.text-violet-700\/10{color:#6d28d91a}.text-violet-700\/100{color:#6d28d9}.text-violet-700\/20{color:#6d28d933}.text-violet-700\/25{color:#6d28d940}.text-violet-700\/30{color:#6d28d94d}.text-violet-700\/40{color:#6d28d966}.text-violet-700\/5{color:#6d28d90d}.text-violet-700\/50{color:#6d28d980}.text-violet-700\/60{color:#6d28d999}.text-violet-700\/70{color:#6d28d9b3}.text-violet-700\/75{color:#6d28d9bf}.text-violet-700\/80{color:#6d28d9cc}.text-violet-700\/90{color:#6d28d9e6}.text-violet-700\/95{color:#6d28d9f2}.text-violet-800{--tw-text-opacity: 1;color:rgb(91 33 182 / var(--tw-text-opacity))}.text-violet-800\/0{color:#5b21b600}.text-violet-800\/10{color:#5b21b61a}.text-violet-800\/100{color:#5b21b6}.text-violet-800\/20{color:#5b21b633}.text-violet-800\/25{color:#5b21b640}.text-violet-800\/30{color:#5b21b64d}.text-violet-800\/40{color:#5b21b666}.text-violet-800\/5{color:#5b21b60d}.text-violet-800\/50{color:#5b21b680}.text-violet-800\/60{color:#5b21b699}.text-violet-800\/70{color:#5b21b6b3}.text-violet-800\/75{color:#5b21b6bf}.text-violet-800\/80{color:#5b21b6cc}.text-violet-800\/90{color:#5b21b6e6}.text-violet-800\/95{color:#5b21b6f2}.text-violet-900{--tw-text-opacity: 1;color:rgb(76 29 149 / var(--tw-text-opacity))}.text-violet-900\/0{color:#4c1d9500}.text-violet-900\/10{color:#4c1d951a}.text-violet-900\/100{color:#4c1d95}.text-violet-900\/20{color:#4c1d9533}.text-violet-900\/25{color:#4c1d9540}.text-violet-900\/30{color:#4c1d954d}.text-violet-900\/40{color:#4c1d9566}.text-violet-900\/5{color:#4c1d950d}.text-violet-900\/50{color:#4c1d9580}.text-violet-900\/60{color:#4c1d9599}.text-violet-900\/70{color:#4c1d95b3}.text-violet-900\/75{color:#4c1d95bf}.text-violet-900\/80{color:#4c1d95cc}.text-violet-900\/90{color:#4c1d95e6}.text-violet-900\/95{color:#4c1d95f2}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.decoration-Occupation_du_sol-primary{text-decoration-color:var(--Occupation_du_sol-primary)}.decoration-Occupation_du_sol-secondary{text-decoration-color:var(--Occupation_du_sol-secondary)}.decoration-Occupation_du_sol-tertiary{text-decoration-color:var(--Occupation_du_sol-tertiary)}.decoration-violet-100{text-decoration-color:#ede9fe}.decoration-violet-100\/0{text-decoration-color:#ede9fe00}.decoration-violet-100\/10{text-decoration-color:#ede9fe1a}.decoration-violet-100\/100{text-decoration-color:#ede9fe}.decoration-violet-100\/20{text-decoration-color:#ede9fe33}.decoration-violet-100\/25{text-decoration-color:#ede9fe40}.decoration-violet-100\/30{text-decoration-color:#ede9fe4d}.decoration-violet-100\/40{text-decoration-color:#ede9fe66}.decoration-violet-100\/5{text-decoration-color:#ede9fe0d}.decoration-violet-100\/50{text-decoration-color:#ede9fe80}.decoration-violet-100\/60{text-decoration-color:#ede9fe99}.decoration-violet-100\/70{text-decoration-color:#ede9feb3}.decoration-violet-100\/75{text-decoration-color:#ede9febf}.decoration-violet-100\/80{text-decoration-color:#ede9fecc}.decoration-violet-100\/90{text-decoration-color:#ede9fee6}.decoration-violet-100\/95{text-decoration-color:#ede9fef2}.decoration-violet-200{text-decoration-color:#ddd6fe}.decoration-violet-200\/0{text-decoration-color:#ddd6fe00}.decoration-violet-200\/10{text-decoration-color:#ddd6fe1a}.decoration-violet-200\/100{text-decoration-color:#ddd6fe}.decoration-violet-200\/20{text-decoration-color:#ddd6fe33}.decoration-violet-200\/25{text-decoration-color:#ddd6fe40}.decoration-violet-200\/30{text-decoration-color:#ddd6fe4d}.decoration-violet-200\/40{text-decoration-color:#ddd6fe66}.decoration-violet-200\/5{text-decoration-color:#ddd6fe0d}.decoration-violet-200\/50{text-decoration-color:#ddd6fe80}.decoration-violet-200\/60{text-decoration-color:#ddd6fe99}.decoration-violet-200\/70{text-decoration-color:#ddd6feb3}.decoration-violet-200\/75{text-decoration-color:#ddd6febf}.decoration-violet-200\/80{text-decoration-color:#ddd6fecc}.decoration-violet-200\/90{text-decoration-color:#ddd6fee6}.decoration-violet-200\/95{text-decoration-color:#ddd6fef2}.decoration-violet-300{text-decoration-color:#c4b5fd}.decoration-violet-300\/0{text-decoration-color:#c4b5fd00}.decoration-violet-300\/10{text-decoration-color:#c4b5fd1a}.decoration-violet-300\/100{text-decoration-color:#c4b5fd}.decoration-violet-300\/20{text-decoration-color:#c4b5fd33}.decoration-violet-300\/25{text-decoration-color:#c4b5fd40}.decoration-violet-300\/30{text-decoration-color:#c4b5fd4d}.decoration-violet-300\/40{text-decoration-color:#c4b5fd66}.decoration-violet-300\/5{text-decoration-color:#c4b5fd0d}.decoration-violet-300\/50{text-decoration-color:#c4b5fd80}.decoration-violet-300\/60{text-decoration-color:#c4b5fd99}.decoration-violet-300\/70{text-decoration-color:#c4b5fdb3}.decoration-violet-300\/75{text-decoration-color:#c4b5fdbf}.decoration-violet-300\/80{text-decoration-color:#c4b5fdcc}.decoration-violet-300\/90{text-decoration-color:#c4b5fde6}.decoration-violet-300\/95{text-decoration-color:#c4b5fdf2}.decoration-violet-400{text-decoration-color:#a78bfa}.decoration-violet-400\/0{text-decoration-color:#a78bfa00}.decoration-violet-400\/10{text-decoration-color:#a78bfa1a}.decoration-violet-400\/100{text-decoration-color:#a78bfa}.decoration-violet-400\/20{text-decoration-color:#a78bfa33}.decoration-violet-400\/25{text-decoration-color:#a78bfa40}.decoration-violet-400\/30{text-decoration-color:#a78bfa4d}.decoration-violet-400\/40{text-decoration-color:#a78bfa66}.decoration-violet-400\/5{text-decoration-color:#a78bfa0d}.decoration-violet-400\/50{text-decoration-color:#a78bfa80}.decoration-violet-400\/60{text-decoration-color:#a78bfa99}.decoration-violet-400\/70{text-decoration-color:#a78bfab3}.decoration-violet-400\/75{text-decoration-color:#a78bfabf}.decoration-violet-400\/80{text-decoration-color:#a78bfacc}.decoration-violet-400\/90{text-decoration-color:#a78bfae6}.decoration-violet-400\/95{text-decoration-color:#a78bfaf2}.decoration-violet-50{text-decoration-color:#f5f3ff}.decoration-violet-50\/0{text-decoration-color:#f5f3ff00}.decoration-violet-50\/10{text-decoration-color:#f5f3ff1a}.decoration-violet-50\/100{text-decoration-color:#f5f3ff}.decoration-violet-50\/20{text-decoration-color:#f5f3ff33}.decoration-violet-50\/25{text-decoration-color:#f5f3ff40}.decoration-violet-50\/30{text-decoration-color:#f5f3ff4d}.decoration-violet-50\/40{text-decoration-color:#f5f3ff66}.decoration-violet-50\/5{text-decoration-color:#f5f3ff0d}.decoration-violet-50\/50{text-decoration-color:#f5f3ff80}.decoration-violet-50\/60{text-decoration-color:#f5f3ff99}.decoration-violet-50\/70{text-decoration-color:#f5f3ffb3}.decoration-violet-50\/75{text-decoration-color:#f5f3ffbf}.decoration-violet-50\/80{text-decoration-color:#f5f3ffcc}.decoration-violet-50\/90{text-decoration-color:#f5f3ffe6}.decoration-violet-50\/95{text-decoration-color:#f5f3fff2}.decoration-violet-500{text-decoration-color:#8b5cf6}.decoration-violet-500\/0{text-decoration-color:#8b5cf600}.decoration-violet-500\/10{text-decoration-color:#8b5cf61a}.decoration-violet-500\/100{text-decoration-color:#8b5cf6}.decoration-violet-500\/20{text-decoration-color:#8b5cf633}.decoration-violet-500\/25{text-decoration-color:#8b5cf640}.decoration-violet-500\/30{text-decoration-color:#8b5cf64d}.decoration-violet-500\/40{text-decoration-color:#8b5cf666}.decoration-violet-500\/5{text-decoration-color:#8b5cf60d}.decoration-violet-500\/50{text-decoration-color:#8b5cf680}.decoration-violet-500\/60{text-decoration-color:#8b5cf699}.decoration-violet-500\/70{text-decoration-color:#8b5cf6b3}.decoration-violet-500\/75{text-decoration-color:#8b5cf6bf}.decoration-violet-500\/80{text-decoration-color:#8b5cf6cc}.decoration-violet-500\/90{text-decoration-color:#8b5cf6e6}.decoration-violet-500\/95{text-decoration-color:#8b5cf6f2}.decoration-violet-600{text-decoration-color:#7c3aed}.decoration-violet-600\/0{text-decoration-color:#7c3aed00}.decoration-violet-600\/10{text-decoration-color:#7c3aed1a}.decoration-violet-600\/100{text-decoration-color:#7c3aed}.decoration-violet-600\/20{text-decoration-color:#7c3aed33}.decoration-violet-600\/25{text-decoration-color:#7c3aed40}.decoration-violet-600\/30{text-decoration-color:#7c3aed4d}.decoration-violet-600\/40{text-decoration-color:#7c3aed66}.decoration-violet-600\/5{text-decoration-color:#7c3aed0d}.decoration-violet-600\/50{text-decoration-color:#7c3aed80}.decoration-violet-600\/60{text-decoration-color:#7c3aed99}.decoration-violet-600\/70{text-decoration-color:#7c3aedb3}.decoration-violet-600\/75{text-decoration-color:#7c3aedbf}.decoration-violet-600\/80{text-decoration-color:#7c3aedcc}.decoration-violet-600\/90{text-decoration-color:#7c3aede6}.decoration-violet-600\/95{text-decoration-color:#7c3aedf2}.decoration-violet-700{text-decoration-color:#6d28d9}.decoration-violet-700\/0{text-decoration-color:#6d28d900}.decoration-violet-700\/10{text-decoration-color:#6d28d91a}.decoration-violet-700\/100{text-decoration-color:#6d28d9}.decoration-violet-700\/20{text-decoration-color:#6d28d933}.decoration-violet-700\/25{text-decoration-color:#6d28d940}.decoration-violet-700\/30{text-decoration-color:#6d28d94d}.decoration-violet-700\/40{text-decoration-color:#6d28d966}.decoration-violet-700\/5{text-decoration-color:#6d28d90d}.decoration-violet-700\/50{text-decoration-color:#6d28d980}.decoration-violet-700\/60{text-decoration-color:#6d28d999}.decoration-violet-700\/70{text-decoration-color:#6d28d9b3}.decoration-violet-700\/75{text-decoration-color:#6d28d9bf}.decoration-violet-700\/80{text-decoration-color:#6d28d9cc}.decoration-violet-700\/90{text-decoration-color:#6d28d9e6}.decoration-violet-700\/95{text-decoration-color:#6d28d9f2}.decoration-violet-800{text-decoration-color:#5b21b6}.decoration-violet-800\/0{text-decoration-color:#5b21b600}.decoration-violet-800\/10{text-decoration-color:#5b21b61a}.decoration-violet-800\/100{text-decoration-color:#5b21b6}.decoration-violet-800\/20{text-decoration-color:#5b21b633}.decoration-violet-800\/25{text-decoration-color:#5b21b640}.decoration-violet-800\/30{text-decoration-color:#5b21b64d}.decoration-violet-800\/40{text-decoration-color:#5b21b666}.decoration-violet-800\/5{text-decoration-color:#5b21b60d}.decoration-violet-800\/50{text-decoration-color:#5b21b680}.decoration-violet-800\/60{text-decoration-color:#5b21b699}.decoration-violet-800\/70{text-decoration-color:#5b21b6b3}.decoration-violet-800\/75{text-decoration-color:#5b21b6bf}.decoration-violet-800\/80{text-decoration-color:#5b21b6cc}.decoration-violet-800\/90{text-decoration-color:#5b21b6e6}.decoration-violet-800\/95{text-decoration-color:#5b21b6f2}.decoration-violet-900{text-decoration-color:#4c1d95}.decoration-violet-900\/0{text-decoration-color:#4c1d9500}.decoration-violet-900\/10{text-decoration-color:#4c1d951a}.decoration-violet-900\/100{text-decoration-color:#4c1d95}.decoration-violet-900\/20{text-decoration-color:#4c1d9533}.decoration-violet-900\/25{text-decoration-color:#4c1d9540}.decoration-violet-900\/30{text-decoration-color:#4c1d954d}.decoration-violet-900\/40{text-decoration-color:#4c1d9566}.decoration-violet-900\/5{text-decoration-color:#4c1d950d}.decoration-violet-900\/50{text-decoration-color:#4c1d9580}.decoration-violet-900\/60{text-decoration-color:#4c1d9599}.decoration-violet-900\/70{text-decoration-color:#4c1d95b3}.decoration-violet-900\/75{text-decoration-color:#4c1d95bf}.decoration-violet-900\/80{text-decoration-color:#4c1d95cc}.decoration-violet-900\/90{text-decoration-color:#4c1d95e6}.decoration-violet-900\/95{text-decoration-color:#4c1d95f2}.decoration-solid{text-decoration-style:solid}.placeholder-Amenagement_du_territoire-primary::placeholder{color:var(--Amenagement_du_territoire-primary)}.placeholder-Amenagement_du_territoire-secondary::placeholder{color:var(--Amenagement_du_territoire-secondary)}.placeholder-Amenagement_du_territoire-tertiary::placeholder{color:var(--Amenagement_du_territoire-tertiary)}.placeholder-Environnement_humain-primary::placeholder{color:var(--Environnement_humain-primary)}.placeholder-Environnement_humain-secondary::placeholder{color:var(--Environnement_humain-secondary)}.placeholder-Environnement_humain-tertiary::placeholder{color:var(--Environnement_humain-tertiary)}.placeholder-Environnement_naturel-primary::placeholder{color:var(--Environnement_naturel-primary)}.placeholder-Environnement_naturel-secondary::placeholder{color:var(--Environnement_naturel-secondary)}.placeholder-Environnement_naturel-tertiary::placeholder{color:var(--Environnement_naturel-tertiary)}.placeholder-Occupation_du_sol-primary::placeholder{color:var(--Occupation_du_sol-primary)}.placeholder-Occupation_du_sol-secondary::placeholder{color:var(--Occupation_du_sol-secondary)}.placeholder-Occupation_du_sol-tertiary::placeholder{color:var(--Occupation_du_sol-tertiary)}.placeholder-agriculture-primary::placeholder{color:var(--agriculture-primary)}.placeholder-agriculture-secondary::placeholder{color:var(--agriculture-secondary)}.placeholder-agriculture-tertiary::placeholder{color:var(--agriculture-tertiary)}.placeholder-ahc-primary::placeholder{color:var(--ahc-primary)}.placeholder-ahc-secondary::placeholder{color:var(--ahc-secondary)}.placeholder-ahc-tertiary::placeholder{color:var(--ahc-tertiary)}.placeholder-amber-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(254 243 199 / var(--tw-placeholder-opacity))}.placeholder-amber-100\/0::placeholder{color:#fef3c700}.placeholder-amber-100\/10::placeholder{color:#fef3c71a}.placeholder-amber-100\/100::placeholder{color:#fef3c7}.placeholder-amber-100\/20::placeholder{color:#fef3c733}.placeholder-amber-100\/25::placeholder{color:#fef3c740}.placeholder-amber-100\/30::placeholder{color:#fef3c74d}.placeholder-amber-100\/40::placeholder{color:#fef3c766}.placeholder-amber-100\/5::placeholder{color:#fef3c70d}.placeholder-amber-100\/50::placeholder{color:#fef3c780}.placeholder-amber-100\/60::placeholder{color:#fef3c799}.placeholder-amber-100\/70::placeholder{color:#fef3c7b3}.placeholder-amber-100\/75::placeholder{color:#fef3c7bf}.placeholder-amber-100\/80::placeholder{color:#fef3c7cc}.placeholder-amber-100\/90::placeholder{color:#fef3c7e6}.placeholder-amber-100\/95::placeholder{color:#fef3c7f2}.placeholder-amber-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(253 230 138 / var(--tw-placeholder-opacity))}.placeholder-amber-200\/0::placeholder{color:#fde68a00}.placeholder-amber-200\/10::placeholder{color:#fde68a1a}.placeholder-amber-200\/100::placeholder{color:#fde68a}.placeholder-amber-200\/20::placeholder{color:#fde68a33}.placeholder-amber-200\/25::placeholder{color:#fde68a40}.placeholder-amber-200\/30::placeholder{color:#fde68a4d}.placeholder-amber-200\/40::placeholder{color:#fde68a66}.placeholder-amber-200\/5::placeholder{color:#fde68a0d}.placeholder-amber-200\/50::placeholder{color:#fde68a80}.placeholder-amber-200\/60::placeholder{color:#fde68a99}.placeholder-amber-200\/70::placeholder{color:#fde68ab3}.placeholder-amber-200\/75::placeholder{color:#fde68abf}.placeholder-amber-200\/80::placeholder{color:#fde68acc}.placeholder-amber-200\/90::placeholder{color:#fde68ae6}.placeholder-amber-200\/95::placeholder{color:#fde68af2}.placeholder-amber-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(252 211 77 / var(--tw-placeholder-opacity))}.placeholder-amber-300\/0::placeholder{color:#fcd34d00}.placeholder-amber-300\/10::placeholder{color:#fcd34d1a}.placeholder-amber-300\/100::placeholder{color:#fcd34d}.placeholder-amber-300\/20::placeholder{color:#fcd34d33}.placeholder-amber-300\/25::placeholder{color:#fcd34d40}.placeholder-amber-300\/30::placeholder{color:#fcd34d4d}.placeholder-amber-300\/40::placeholder{color:#fcd34d66}.placeholder-amber-300\/5::placeholder{color:#fcd34d0d}.placeholder-amber-300\/50::placeholder{color:#fcd34d80}.placeholder-amber-300\/60::placeholder{color:#fcd34d99}.placeholder-amber-300\/70::placeholder{color:#fcd34db3}.placeholder-amber-300\/75::placeholder{color:#fcd34dbf}.placeholder-amber-300\/80::placeholder{color:#fcd34dcc}.placeholder-amber-300\/90::placeholder{color:#fcd34de6}.placeholder-amber-300\/95::placeholder{color:#fcd34df2}.placeholder-amber-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(251 191 36 / var(--tw-placeholder-opacity))}.placeholder-amber-400\/0::placeholder{color:#fbbf2400}.placeholder-amber-400\/10::placeholder{color:#fbbf241a}.placeholder-amber-400\/100::placeholder{color:#fbbf24}.placeholder-amber-400\/20::placeholder{color:#fbbf2433}.placeholder-amber-400\/25::placeholder{color:#fbbf2440}.placeholder-amber-400\/30::placeholder{color:#fbbf244d}.placeholder-amber-400\/40::placeholder{color:#fbbf2466}.placeholder-amber-400\/5::placeholder{color:#fbbf240d}.placeholder-amber-400\/50::placeholder{color:#fbbf2480}.placeholder-amber-400\/60::placeholder{color:#fbbf2499}.placeholder-amber-400\/70::placeholder{color:#fbbf24b3}.placeholder-amber-400\/75::placeholder{color:#fbbf24bf}.placeholder-amber-400\/80::placeholder{color:#fbbf24cc}.placeholder-amber-400\/90::placeholder{color:#fbbf24e6}.placeholder-amber-400\/95::placeholder{color:#fbbf24f2}.placeholder-amber-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(255 251 235 / var(--tw-placeholder-opacity))}.placeholder-amber-50\/0::placeholder{color:#fffbeb00}.placeholder-amber-50\/10::placeholder{color:#fffbeb1a}.placeholder-amber-50\/100::placeholder{color:#fffbeb}.placeholder-amber-50\/20::placeholder{color:#fffbeb33}.placeholder-amber-50\/25::placeholder{color:#fffbeb40}.placeholder-amber-50\/30::placeholder{color:#fffbeb4d}.placeholder-amber-50\/40::placeholder{color:#fffbeb66}.placeholder-amber-50\/5::placeholder{color:#fffbeb0d}.placeholder-amber-50\/50::placeholder{color:#fffbeb80}.placeholder-amber-50\/60::placeholder{color:#fffbeb99}.placeholder-amber-50\/70::placeholder{color:#fffbebb3}.placeholder-amber-50\/75::placeholder{color:#fffbebbf}.placeholder-amber-50\/80::placeholder{color:#fffbebcc}.placeholder-amber-50\/90::placeholder{color:#fffbebe6}.placeholder-amber-50\/95::placeholder{color:#fffbebf2}.placeholder-amber-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(245 158 11 / var(--tw-placeholder-opacity))}.placeholder-amber-500\/0::placeholder{color:#f59e0b00}.placeholder-amber-500\/10::placeholder{color:#f59e0b1a}.placeholder-amber-500\/100::placeholder{color:#f59e0b}.placeholder-amber-500\/20::placeholder{color:#f59e0b33}.placeholder-amber-500\/25::placeholder{color:#f59e0b40}.placeholder-amber-500\/30::placeholder{color:#f59e0b4d}.placeholder-amber-500\/40::placeholder{color:#f59e0b66}.placeholder-amber-500\/5::placeholder{color:#f59e0b0d}.placeholder-amber-500\/50::placeholder{color:#f59e0b80}.placeholder-amber-500\/60::placeholder{color:#f59e0b99}.placeholder-amber-500\/70::placeholder{color:#f59e0bb3}.placeholder-amber-500\/75::placeholder{color:#f59e0bbf}.placeholder-amber-500\/80::placeholder{color:#f59e0bcc}.placeholder-amber-500\/90::placeholder{color:#f59e0be6}.placeholder-amber-500\/95::placeholder{color:#f59e0bf2}.placeholder-amber-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(217 119 6 / var(--tw-placeholder-opacity))}.placeholder-amber-600\/0::placeholder{color:#d9770600}.placeholder-amber-600\/10::placeholder{color:#d977061a}.placeholder-amber-600\/100::placeholder{color:#d97706}.placeholder-amber-600\/20::placeholder{color:#d9770633}.placeholder-amber-600\/25::placeholder{color:#d9770640}.placeholder-amber-600\/30::placeholder{color:#d977064d}.placeholder-amber-600\/40::placeholder{color:#d9770666}.placeholder-amber-600\/5::placeholder{color:#d977060d}.placeholder-amber-600\/50::placeholder{color:#d9770680}.placeholder-amber-600\/60::placeholder{color:#d9770699}.placeholder-amber-600\/70::placeholder{color:#d97706b3}.placeholder-amber-600\/75::placeholder{color:#d97706bf}.placeholder-amber-600\/80::placeholder{color:#d97706cc}.placeholder-amber-600\/90::placeholder{color:#d97706e6}.placeholder-amber-600\/95::placeholder{color:#d97706f2}.placeholder-amber-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(180 83 9 / var(--tw-placeholder-opacity))}.placeholder-amber-700\/0::placeholder{color:#b4530900}.placeholder-amber-700\/10::placeholder{color:#b453091a}.placeholder-amber-700\/100::placeholder{color:#b45309}.placeholder-amber-700\/20::placeholder{color:#b4530933}.placeholder-amber-700\/25::placeholder{color:#b4530940}.placeholder-amber-700\/30::placeholder{color:#b453094d}.placeholder-amber-700\/40::placeholder{color:#b4530966}.placeholder-amber-700\/5::placeholder{color:#b453090d}.placeholder-amber-700\/50::placeholder{color:#b4530980}.placeholder-amber-700\/60::placeholder{color:#b4530999}.placeholder-amber-700\/70::placeholder{color:#b45309b3}.placeholder-amber-700\/75::placeholder{color:#b45309bf}.placeholder-amber-700\/80::placeholder{color:#b45309cc}.placeholder-amber-700\/90::placeholder{color:#b45309e6}.placeholder-amber-700\/95::placeholder{color:#b45309f2}.placeholder-amber-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(146 64 14 / var(--tw-placeholder-opacity))}.placeholder-amber-800\/0::placeholder{color:#92400e00}.placeholder-amber-800\/10::placeholder{color:#92400e1a}.placeholder-amber-800\/100::placeholder{color:#92400e}.placeholder-amber-800\/20::placeholder{color:#92400e33}.placeholder-amber-800\/25::placeholder{color:#92400e40}.placeholder-amber-800\/30::placeholder{color:#92400e4d}.placeholder-amber-800\/40::placeholder{color:#92400e66}.placeholder-amber-800\/5::placeholder{color:#92400e0d}.placeholder-amber-800\/50::placeholder{color:#92400e80}.placeholder-amber-800\/60::placeholder{color:#92400e99}.placeholder-amber-800\/70::placeholder{color:#92400eb3}.placeholder-amber-800\/75::placeholder{color:#92400ebf}.placeholder-amber-800\/80::placeholder{color:#92400ecc}.placeholder-amber-800\/90::placeholder{color:#92400ee6}.placeholder-amber-800\/95::placeholder{color:#92400ef2}.placeholder-amber-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(120 53 15 / var(--tw-placeholder-opacity))}.placeholder-amber-900\/0::placeholder{color:#78350f00}.placeholder-amber-900\/10::placeholder{color:#78350f1a}.placeholder-amber-900\/100::placeholder{color:#78350f}.placeholder-amber-900\/20::placeholder{color:#78350f33}.placeholder-amber-900\/25::placeholder{color:#78350f40}.placeholder-amber-900\/30::placeholder{color:#78350f4d}.placeholder-amber-900\/40::placeholder{color:#78350f66}.placeholder-amber-900\/5::placeholder{color:#78350f0d}.placeholder-amber-900\/50::placeholder{color:#78350f80}.placeholder-amber-900\/60::placeholder{color:#78350f99}.placeholder-amber-900\/70::placeholder{color:#78350fb3}.placeholder-amber-900\/75::placeholder{color:#78350fbf}.placeholder-amber-900\/80::placeholder{color:#78350fcc}.placeholder-amber-900\/90::placeholder{color:#78350fe6}.placeholder-amber-900\/95::placeholder{color:#78350ff2}.placeholder-at-primary::placeholder{color:var(--at-primary)}.placeholder-at-secondary::placeholder{color:var(--at-secondary)}.placeholder-at-tertiary::placeholder{color:var(--at-tertiary)}.placeholder-atlas_demographique-primary::placeholder{color:var(--atlas_demographique-primary)}.placeholder-atlas_demographique-secondary::placeholder{color:var(--atlas_demographique-secondary)}.placeholder-atlas_demographique-tertiary::placeholder{color:var(--atlas_demographique-tertiary)}.placeholder-black::placeholder{--tw-placeholder-opacity: 1;color:rgb(0 0 0 / var(--tw-placeholder-opacity))}.placeholder-black\/0::placeholder{color:#0000}.placeholder-black\/10::placeholder{color:#0000001a}.placeholder-black\/100::placeholder{color:#000}.placeholder-black\/20::placeholder{color:#0003}.placeholder-black\/25::placeholder{color:#00000040}.placeholder-black\/30::placeholder{color:#0000004d}.placeholder-black\/40::placeholder{color:#0006}.placeholder-black\/5::placeholder{color:#0000000d}.placeholder-black\/50::placeholder{color:#00000080}.placeholder-black\/60::placeholder{color:#0009}.placeholder-black\/70::placeholder{color:#000000b3}.placeholder-black\/75::placeholder{color:#000000bf}.placeholder-black\/80::placeholder{color:#000c}.placeholder-black\/90::placeholder{color:#000000e6}.placeholder-black\/95::placeholder{color:#000000f2}.placeholder-blue-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(219 234 254 / var(--tw-placeholder-opacity))}.placeholder-blue-100\/0::placeholder{color:#dbeafe00}.placeholder-blue-100\/10::placeholder{color:#dbeafe1a}.placeholder-blue-100\/100::placeholder{color:#dbeafe}.placeholder-blue-100\/20::placeholder{color:#dbeafe33}.placeholder-blue-100\/25::placeholder{color:#dbeafe40}.placeholder-blue-100\/30::placeholder{color:#dbeafe4d}.placeholder-blue-100\/40::placeholder{color:#dbeafe66}.placeholder-blue-100\/5::placeholder{color:#dbeafe0d}.placeholder-blue-100\/50::placeholder{color:#dbeafe80}.placeholder-blue-100\/60::placeholder{color:#dbeafe99}.placeholder-blue-100\/70::placeholder{color:#dbeafeb3}.placeholder-blue-100\/75::placeholder{color:#dbeafebf}.placeholder-blue-100\/80::placeholder{color:#dbeafecc}.placeholder-blue-100\/90::placeholder{color:#dbeafee6}.placeholder-blue-100\/95::placeholder{color:#dbeafef2}.placeholder-blue-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(191 219 254 / var(--tw-placeholder-opacity))}.placeholder-blue-200\/0::placeholder{color:#bfdbfe00}.placeholder-blue-200\/10::placeholder{color:#bfdbfe1a}.placeholder-blue-200\/100::placeholder{color:#bfdbfe}.placeholder-blue-200\/20::placeholder{color:#bfdbfe33}.placeholder-blue-200\/25::placeholder{color:#bfdbfe40}.placeholder-blue-200\/30::placeholder{color:#bfdbfe4d}.placeholder-blue-200\/40::placeholder{color:#bfdbfe66}.placeholder-blue-200\/5::placeholder{color:#bfdbfe0d}.placeholder-blue-200\/50::placeholder{color:#bfdbfe80}.placeholder-blue-200\/60::placeholder{color:#bfdbfe99}.placeholder-blue-200\/70::placeholder{color:#bfdbfeb3}.placeholder-blue-200\/75::placeholder{color:#bfdbfebf}.placeholder-blue-200\/80::placeholder{color:#bfdbfecc}.placeholder-blue-200\/90::placeholder{color:#bfdbfee6}.placeholder-blue-200\/95::placeholder{color:#bfdbfef2}.placeholder-blue-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(147 197 253 / var(--tw-placeholder-opacity))}.placeholder-blue-300\/0::placeholder{color:#93c5fd00}.placeholder-blue-300\/10::placeholder{color:#93c5fd1a}.placeholder-blue-300\/100::placeholder{color:#93c5fd}.placeholder-blue-300\/20::placeholder{color:#93c5fd33}.placeholder-blue-300\/25::placeholder{color:#93c5fd40}.placeholder-blue-300\/30::placeholder{color:#93c5fd4d}.placeholder-blue-300\/40::placeholder{color:#93c5fd66}.placeholder-blue-300\/5::placeholder{color:#93c5fd0d}.placeholder-blue-300\/50::placeholder{color:#93c5fd80}.placeholder-blue-300\/60::placeholder{color:#93c5fd99}.placeholder-blue-300\/70::placeholder{color:#93c5fdb3}.placeholder-blue-300\/75::placeholder{color:#93c5fdbf}.placeholder-blue-300\/80::placeholder{color:#93c5fdcc}.placeholder-blue-300\/90::placeholder{color:#93c5fde6}.placeholder-blue-300\/95::placeholder{color:#93c5fdf2}.placeholder-blue-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(96 165 250 / var(--tw-placeholder-opacity))}.placeholder-blue-400\/0::placeholder{color:#60a5fa00}.placeholder-blue-400\/10::placeholder{color:#60a5fa1a}.placeholder-blue-400\/100::placeholder{color:#60a5fa}.placeholder-blue-400\/20::placeholder{color:#60a5fa33}.placeholder-blue-400\/25::placeholder{color:#60a5fa40}.placeholder-blue-400\/30::placeholder{color:#60a5fa4d}.placeholder-blue-400\/40::placeholder{color:#60a5fa66}.placeholder-blue-400\/5::placeholder{color:#60a5fa0d}.placeholder-blue-400\/50::placeholder{color:#60a5fa80}.placeholder-blue-400\/60::placeholder{color:#60a5fa99}.placeholder-blue-400\/70::placeholder{color:#60a5fab3}.placeholder-blue-400\/75::placeholder{color:#60a5fabf}.placeholder-blue-400\/80::placeholder{color:#60a5facc}.placeholder-blue-400\/90::placeholder{color:#60a5fae6}.placeholder-blue-400\/95::placeholder{color:#60a5faf2}.placeholder-blue-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(239 246 255 / var(--tw-placeholder-opacity))}.placeholder-blue-50\/0::placeholder{color:#eff6ff00}.placeholder-blue-50\/10::placeholder{color:#eff6ff1a}.placeholder-blue-50\/100::placeholder{color:#eff6ff}.placeholder-blue-50\/20::placeholder{color:#eff6ff33}.placeholder-blue-50\/25::placeholder{color:#eff6ff40}.placeholder-blue-50\/30::placeholder{color:#eff6ff4d}.placeholder-blue-50\/40::placeholder{color:#eff6ff66}.placeholder-blue-50\/5::placeholder{color:#eff6ff0d}.placeholder-blue-50\/50::placeholder{color:#eff6ff80}.placeholder-blue-50\/60::placeholder{color:#eff6ff99}.placeholder-blue-50\/70::placeholder{color:#eff6ffb3}.placeholder-blue-50\/75::placeholder{color:#eff6ffbf}.placeholder-blue-50\/80::placeholder{color:#eff6ffcc}.placeholder-blue-50\/90::placeholder{color:#eff6ffe6}.placeholder-blue-50\/95::placeholder{color:#eff6fff2}.placeholder-blue-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(59 130 246 / var(--tw-placeholder-opacity))}.placeholder-blue-500\/0::placeholder{color:#3b82f600}.placeholder-blue-500\/10::placeholder{color:#3b82f61a}.placeholder-blue-500\/100::placeholder{color:#3b82f6}.placeholder-blue-500\/20::placeholder{color:#3b82f633}.placeholder-blue-500\/25::placeholder{color:#3b82f640}.placeholder-blue-500\/30::placeholder{color:#3b82f64d}.placeholder-blue-500\/40::placeholder{color:#3b82f666}.placeholder-blue-500\/5::placeholder{color:#3b82f60d}.placeholder-blue-500\/50::placeholder{color:#3b82f680}.placeholder-blue-500\/60::placeholder{color:#3b82f699}.placeholder-blue-500\/70::placeholder{color:#3b82f6b3}.placeholder-blue-500\/75::placeholder{color:#3b82f6bf}.placeholder-blue-500\/80::placeholder{color:#3b82f6cc}.placeholder-blue-500\/90::placeholder{color:#3b82f6e6}.placeholder-blue-500\/95::placeholder{color:#3b82f6f2}.placeholder-blue-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(37 99 235 / var(--tw-placeholder-opacity))}.placeholder-blue-600\/0::placeholder{color:#2563eb00}.placeholder-blue-600\/10::placeholder{color:#2563eb1a}.placeholder-blue-600\/100::placeholder{color:#2563eb}.placeholder-blue-600\/20::placeholder{color:#2563eb33}.placeholder-blue-600\/25::placeholder{color:#2563eb40}.placeholder-blue-600\/30::placeholder{color:#2563eb4d}.placeholder-blue-600\/40::placeholder{color:#2563eb66}.placeholder-blue-600\/5::placeholder{color:#2563eb0d}.placeholder-blue-600\/50::placeholder{color:#2563eb80}.placeholder-blue-600\/60::placeholder{color:#2563eb99}.placeholder-blue-600\/70::placeholder{color:#2563ebb3}.placeholder-blue-600\/75::placeholder{color:#2563ebbf}.placeholder-blue-600\/80::placeholder{color:#2563ebcc}.placeholder-blue-600\/90::placeholder{color:#2563ebe6}.placeholder-blue-600\/95::placeholder{color:#2563ebf2}.placeholder-blue-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(29 78 216 / var(--tw-placeholder-opacity))}.placeholder-blue-700\/0::placeholder{color:#1d4ed800}.placeholder-blue-700\/10::placeholder{color:#1d4ed81a}.placeholder-blue-700\/100::placeholder{color:#1d4ed8}.placeholder-blue-700\/20::placeholder{color:#1d4ed833}.placeholder-blue-700\/25::placeholder{color:#1d4ed840}.placeholder-blue-700\/30::placeholder{color:#1d4ed84d}.placeholder-blue-700\/40::placeholder{color:#1d4ed866}.placeholder-blue-700\/5::placeholder{color:#1d4ed80d}.placeholder-blue-700\/50::placeholder{color:#1d4ed880}.placeholder-blue-700\/60::placeholder{color:#1d4ed899}.placeholder-blue-700\/70::placeholder{color:#1d4ed8b3}.placeholder-blue-700\/75::placeholder{color:#1d4ed8bf}.placeholder-blue-700\/80::placeholder{color:#1d4ed8cc}.placeholder-blue-700\/90::placeholder{color:#1d4ed8e6}.placeholder-blue-700\/95::placeholder{color:#1d4ed8f2}.placeholder-blue-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(30 64 175 / var(--tw-placeholder-opacity))}.placeholder-blue-800\/0::placeholder{color:#1e40af00}.placeholder-blue-800\/10::placeholder{color:#1e40af1a}.placeholder-blue-800\/100::placeholder{color:#1e40af}.placeholder-blue-800\/20::placeholder{color:#1e40af33}.placeholder-blue-800\/25::placeholder{color:#1e40af40}.placeholder-blue-800\/30::placeholder{color:#1e40af4d}.placeholder-blue-800\/40::placeholder{color:#1e40af66}.placeholder-blue-800\/5::placeholder{color:#1e40af0d}.placeholder-blue-800\/50::placeholder{color:#1e40af80}.placeholder-blue-800\/60::placeholder{color:#1e40af99}.placeholder-blue-800\/70::placeholder{color:#1e40afb3}.placeholder-blue-800\/75::placeholder{color:#1e40afbf}.placeholder-blue-800\/80::placeholder{color:#1e40afcc}.placeholder-blue-800\/90::placeholder{color:#1e40afe6}.placeholder-blue-800\/95::placeholder{color:#1e40aff2}.placeholder-blue-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(30 58 138 / var(--tw-placeholder-opacity))}.placeholder-blue-900\/0::placeholder{color:#1e3a8a00}.placeholder-blue-900\/10::placeholder{color:#1e3a8a1a}.placeholder-blue-900\/100::placeholder{color:#1e3a8a}.placeholder-blue-900\/20::placeholder{color:#1e3a8a33}.placeholder-blue-900\/25::placeholder{color:#1e3a8a40}.placeholder-blue-900\/30::placeholder{color:#1e3a8a4d}.placeholder-blue-900\/40::placeholder{color:#1e3a8a66}.placeholder-blue-900\/5::placeholder{color:#1e3a8a0d}.placeholder-blue-900\/50::placeholder{color:#1e3a8a80}.placeholder-blue-900\/60::placeholder{color:#1e3a8a99}.placeholder-blue-900\/70::placeholder{color:#1e3a8ab3}.placeholder-blue-900\/75::placeholder{color:#1e3a8abf}.placeholder-blue-900\/80::placeholder{color:#1e3a8acc}.placeholder-blue-900\/90::placeholder{color:#1e3a8ae6}.placeholder-blue-900\/95::placeholder{color:#1e3a8af2}.placeholder-cadastre_hertzien-primary::placeholder{color:var(--cadastre_hertzien-primary)}.placeholder-cadastre_hertzien-secondary::placeholder{color:var(--cadastre_hertzien-secondary)}.placeholder-cadastre_hertzien-tertiary::placeholder{color:var(--cadastre_hertzien-tertiary)}.placeholder-current::placeholder{color:currentColor}.placeholder-cyan-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(207 250 254 / var(--tw-placeholder-opacity))}.placeholder-cyan-100\/0::placeholder{color:#cffafe00}.placeholder-cyan-100\/10::placeholder{color:#cffafe1a}.placeholder-cyan-100\/100::placeholder{color:#cffafe}.placeholder-cyan-100\/20::placeholder{color:#cffafe33}.placeholder-cyan-100\/25::placeholder{color:#cffafe40}.placeholder-cyan-100\/30::placeholder{color:#cffafe4d}.placeholder-cyan-100\/40::placeholder{color:#cffafe66}.placeholder-cyan-100\/5::placeholder{color:#cffafe0d}.placeholder-cyan-100\/50::placeholder{color:#cffafe80}.placeholder-cyan-100\/60::placeholder{color:#cffafe99}.placeholder-cyan-100\/70::placeholder{color:#cffafeb3}.placeholder-cyan-100\/75::placeholder{color:#cffafebf}.placeholder-cyan-100\/80::placeholder{color:#cffafecc}.placeholder-cyan-100\/90::placeholder{color:#cffafee6}.placeholder-cyan-100\/95::placeholder{color:#cffafef2}.placeholder-cyan-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(165 243 252 / var(--tw-placeholder-opacity))}.placeholder-cyan-200\/0::placeholder{color:#a5f3fc00}.placeholder-cyan-200\/10::placeholder{color:#a5f3fc1a}.placeholder-cyan-200\/100::placeholder{color:#a5f3fc}.placeholder-cyan-200\/20::placeholder{color:#a5f3fc33}.placeholder-cyan-200\/25::placeholder{color:#a5f3fc40}.placeholder-cyan-200\/30::placeholder{color:#a5f3fc4d}.placeholder-cyan-200\/40::placeholder{color:#a5f3fc66}.placeholder-cyan-200\/5::placeholder{color:#a5f3fc0d}.placeholder-cyan-200\/50::placeholder{color:#a5f3fc80}.placeholder-cyan-200\/60::placeholder{color:#a5f3fc99}.placeholder-cyan-200\/70::placeholder{color:#a5f3fcb3}.placeholder-cyan-200\/75::placeholder{color:#a5f3fcbf}.placeholder-cyan-200\/80::placeholder{color:#a5f3fccc}.placeholder-cyan-200\/90::placeholder{color:#a5f3fce6}.placeholder-cyan-200\/95::placeholder{color:#a5f3fcf2}.placeholder-cyan-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(103 232 249 / var(--tw-placeholder-opacity))}.placeholder-cyan-300\/0::placeholder{color:#67e8f900}.placeholder-cyan-300\/10::placeholder{color:#67e8f91a}.placeholder-cyan-300\/100::placeholder{color:#67e8f9}.placeholder-cyan-300\/20::placeholder{color:#67e8f933}.placeholder-cyan-300\/25::placeholder{color:#67e8f940}.placeholder-cyan-300\/30::placeholder{color:#67e8f94d}.placeholder-cyan-300\/40::placeholder{color:#67e8f966}.placeholder-cyan-300\/5::placeholder{color:#67e8f90d}.placeholder-cyan-300\/50::placeholder{color:#67e8f980}.placeholder-cyan-300\/60::placeholder{color:#67e8f999}.placeholder-cyan-300\/70::placeholder{color:#67e8f9b3}.placeholder-cyan-300\/75::placeholder{color:#67e8f9bf}.placeholder-cyan-300\/80::placeholder{color:#67e8f9cc}.placeholder-cyan-300\/90::placeholder{color:#67e8f9e6}.placeholder-cyan-300\/95::placeholder{color:#67e8f9f2}.placeholder-cyan-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(34 211 238 / var(--tw-placeholder-opacity))}.placeholder-cyan-400\/0::placeholder{color:#22d3ee00}.placeholder-cyan-400\/10::placeholder{color:#22d3ee1a}.placeholder-cyan-400\/100::placeholder{color:#22d3ee}.placeholder-cyan-400\/20::placeholder{color:#22d3ee33}.placeholder-cyan-400\/25::placeholder{color:#22d3ee40}.placeholder-cyan-400\/30::placeholder{color:#22d3ee4d}.placeholder-cyan-400\/40::placeholder{color:#22d3ee66}.placeholder-cyan-400\/5::placeholder{color:#22d3ee0d}.placeholder-cyan-400\/50::placeholder{color:#22d3ee80}.placeholder-cyan-400\/60::placeholder{color:#22d3ee99}.placeholder-cyan-400\/70::placeholder{color:#22d3eeb3}.placeholder-cyan-400\/75::placeholder{color:#22d3eebf}.placeholder-cyan-400\/80::placeholder{color:#22d3eecc}.placeholder-cyan-400\/90::placeholder{color:#22d3eee6}.placeholder-cyan-400\/95::placeholder{color:#22d3eef2}.placeholder-cyan-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(236 254 255 / var(--tw-placeholder-opacity))}.placeholder-cyan-50\/0::placeholder{color:#ecfeff00}.placeholder-cyan-50\/10::placeholder{color:#ecfeff1a}.placeholder-cyan-50\/100::placeholder{color:#ecfeff}.placeholder-cyan-50\/20::placeholder{color:#ecfeff33}.placeholder-cyan-50\/25::placeholder{color:#ecfeff40}.placeholder-cyan-50\/30::placeholder{color:#ecfeff4d}.placeholder-cyan-50\/40::placeholder{color:#ecfeff66}.placeholder-cyan-50\/5::placeholder{color:#ecfeff0d}.placeholder-cyan-50\/50::placeholder{color:#ecfeff80}.placeholder-cyan-50\/60::placeholder{color:#ecfeff99}.placeholder-cyan-50\/70::placeholder{color:#ecfeffb3}.placeholder-cyan-50\/75::placeholder{color:#ecfeffbf}.placeholder-cyan-50\/80::placeholder{color:#ecfeffcc}.placeholder-cyan-50\/90::placeholder{color:#ecfeffe6}.placeholder-cyan-50\/95::placeholder{color:#ecfefff2}.placeholder-cyan-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(6 182 212 / var(--tw-placeholder-opacity))}.placeholder-cyan-500\/0::placeholder{color:#06b6d400}.placeholder-cyan-500\/10::placeholder{color:#06b6d41a}.placeholder-cyan-500\/100::placeholder{color:#06b6d4}.placeholder-cyan-500\/20::placeholder{color:#06b6d433}.placeholder-cyan-500\/25::placeholder{color:#06b6d440}.placeholder-cyan-500\/30::placeholder{color:#06b6d44d}.placeholder-cyan-500\/40::placeholder{color:#06b6d466}.placeholder-cyan-500\/5::placeholder{color:#06b6d40d}.placeholder-cyan-500\/50::placeholder{color:#06b6d480}.placeholder-cyan-500\/60::placeholder{color:#06b6d499}.placeholder-cyan-500\/70::placeholder{color:#06b6d4b3}.placeholder-cyan-500\/75::placeholder{color:#06b6d4bf}.placeholder-cyan-500\/80::placeholder{color:#06b6d4cc}.placeholder-cyan-500\/90::placeholder{color:#06b6d4e6}.placeholder-cyan-500\/95::placeholder{color:#06b6d4f2}.placeholder-cyan-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(8 145 178 / var(--tw-placeholder-opacity))}.placeholder-cyan-600\/0::placeholder{color:#0891b200}.placeholder-cyan-600\/10::placeholder{color:#0891b21a}.placeholder-cyan-600\/100::placeholder{color:#0891b2}.placeholder-cyan-600\/20::placeholder{color:#0891b233}.placeholder-cyan-600\/25::placeholder{color:#0891b240}.placeholder-cyan-600\/30::placeholder{color:#0891b24d}.placeholder-cyan-600\/40::placeholder{color:#0891b266}.placeholder-cyan-600\/5::placeholder{color:#0891b20d}.placeholder-cyan-600\/50::placeholder{color:#0891b280}.placeholder-cyan-600\/60::placeholder{color:#0891b299}.placeholder-cyan-600\/70::placeholder{color:#0891b2b3}.placeholder-cyan-600\/75::placeholder{color:#0891b2bf}.placeholder-cyan-600\/80::placeholder{color:#0891b2cc}.placeholder-cyan-600\/90::placeholder{color:#0891b2e6}.placeholder-cyan-600\/95::placeholder{color:#0891b2f2}.placeholder-cyan-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(14 116 144 / var(--tw-placeholder-opacity))}.placeholder-cyan-700\/0::placeholder{color:#0e749000}.placeholder-cyan-700\/10::placeholder{color:#0e74901a}.placeholder-cyan-700\/100::placeholder{color:#0e7490}.placeholder-cyan-700\/20::placeholder{color:#0e749033}.placeholder-cyan-700\/25::placeholder{color:#0e749040}.placeholder-cyan-700\/30::placeholder{color:#0e74904d}.placeholder-cyan-700\/40::placeholder{color:#0e749066}.placeholder-cyan-700\/5::placeholder{color:#0e74900d}.placeholder-cyan-700\/50::placeholder{color:#0e749080}.placeholder-cyan-700\/60::placeholder{color:#0e749099}.placeholder-cyan-700\/70::placeholder{color:#0e7490b3}.placeholder-cyan-700\/75::placeholder{color:#0e7490bf}.placeholder-cyan-700\/80::placeholder{color:#0e7490cc}.placeholder-cyan-700\/90::placeholder{color:#0e7490e6}.placeholder-cyan-700\/95::placeholder{color:#0e7490f2}.placeholder-cyan-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(21 94 117 / var(--tw-placeholder-opacity))}.placeholder-cyan-800\/0::placeholder{color:#155e7500}.placeholder-cyan-800\/10::placeholder{color:#155e751a}.placeholder-cyan-800\/100::placeholder{color:#155e75}.placeholder-cyan-800\/20::placeholder{color:#155e7533}.placeholder-cyan-800\/25::placeholder{color:#155e7540}.placeholder-cyan-800\/30::placeholder{color:#155e754d}.placeholder-cyan-800\/40::placeholder{color:#155e7566}.placeholder-cyan-800\/5::placeholder{color:#155e750d}.placeholder-cyan-800\/50::placeholder{color:#155e7580}.placeholder-cyan-800\/60::placeholder{color:#155e7599}.placeholder-cyan-800\/70::placeholder{color:#155e75b3}.placeholder-cyan-800\/75::placeholder{color:#155e75bf}.placeholder-cyan-800\/80::placeholder{color:#155e75cc}.placeholder-cyan-800\/90::placeholder{color:#155e75e6}.placeholder-cyan-800\/95::placeholder{color:#155e75f2}.placeholder-cyan-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(22 78 99 / var(--tw-placeholder-opacity))}.placeholder-cyan-900\/0::placeholder{color:#164e6300}.placeholder-cyan-900\/10::placeholder{color:#164e631a}.placeholder-cyan-900\/100::placeholder{color:#164e63}.placeholder-cyan-900\/20::placeholder{color:#164e6333}.placeholder-cyan-900\/25::placeholder{color:#164e6340}.placeholder-cyan-900\/30::placeholder{color:#164e634d}.placeholder-cyan-900\/40::placeholder{color:#164e6366}.placeholder-cyan-900\/5::placeholder{color:#164e630d}.placeholder-cyan-900\/50::placeholder{color:#164e6380}.placeholder-cyan-900\/60::placeholder{color:#164e6399}.placeholder-cyan-900\/70::placeholder{color:#164e63b3}.placeholder-cyan-900\/75::placeholder{color:#164e63bf}.placeholder-cyan-900\/80::placeholder{color:#164e63cc}.placeholder-cyan-900\/90::placeholder{color:#164e63e6}.placeholder-cyan-900\/95::placeholder{color:#164e63f2}.placeholder-default::placeholder{color:var(--color-default)}.placeholder-eau-primary::placeholder{color:var(--eau-primary)}.placeholder-eau-secondary::placeholder{color:var(--eau-secondary)}.placeholder-eau-tertiary::placeholder{color:var(--eau-tertiary)}.placeholder-emerald-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(209 250 229 / var(--tw-placeholder-opacity))}.placeholder-emerald-100\/0::placeholder{color:#d1fae500}.placeholder-emerald-100\/10::placeholder{color:#d1fae51a}.placeholder-emerald-100\/100::placeholder{color:#d1fae5}.placeholder-emerald-100\/20::placeholder{color:#d1fae533}.placeholder-emerald-100\/25::placeholder{color:#d1fae540}.placeholder-emerald-100\/30::placeholder{color:#d1fae54d}.placeholder-emerald-100\/40::placeholder{color:#d1fae566}.placeholder-emerald-100\/5::placeholder{color:#d1fae50d}.placeholder-emerald-100\/50::placeholder{color:#d1fae580}.placeholder-emerald-100\/60::placeholder{color:#d1fae599}.placeholder-emerald-100\/70::placeholder{color:#d1fae5b3}.placeholder-emerald-100\/75::placeholder{color:#d1fae5bf}.placeholder-emerald-100\/80::placeholder{color:#d1fae5cc}.placeholder-emerald-100\/90::placeholder{color:#d1fae5e6}.placeholder-emerald-100\/95::placeholder{color:#d1fae5f2}.placeholder-emerald-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(167 243 208 / var(--tw-placeholder-opacity))}.placeholder-emerald-200\/0::placeholder{color:#a7f3d000}.placeholder-emerald-200\/10::placeholder{color:#a7f3d01a}.placeholder-emerald-200\/100::placeholder{color:#a7f3d0}.placeholder-emerald-200\/20::placeholder{color:#a7f3d033}.placeholder-emerald-200\/25::placeholder{color:#a7f3d040}.placeholder-emerald-200\/30::placeholder{color:#a7f3d04d}.placeholder-emerald-200\/40::placeholder{color:#a7f3d066}.placeholder-emerald-200\/5::placeholder{color:#a7f3d00d}.placeholder-emerald-200\/50::placeholder{color:#a7f3d080}.placeholder-emerald-200\/60::placeholder{color:#a7f3d099}.placeholder-emerald-200\/70::placeholder{color:#a7f3d0b3}.placeholder-emerald-200\/75::placeholder{color:#a7f3d0bf}.placeholder-emerald-200\/80::placeholder{color:#a7f3d0cc}.placeholder-emerald-200\/90::placeholder{color:#a7f3d0e6}.placeholder-emerald-200\/95::placeholder{color:#a7f3d0f2}.placeholder-emerald-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(110 231 183 / var(--tw-placeholder-opacity))}.placeholder-emerald-300\/0::placeholder{color:#6ee7b700}.placeholder-emerald-300\/10::placeholder{color:#6ee7b71a}.placeholder-emerald-300\/100::placeholder{color:#6ee7b7}.placeholder-emerald-300\/20::placeholder{color:#6ee7b733}.placeholder-emerald-300\/25::placeholder{color:#6ee7b740}.placeholder-emerald-300\/30::placeholder{color:#6ee7b74d}.placeholder-emerald-300\/40::placeholder{color:#6ee7b766}.placeholder-emerald-300\/5::placeholder{color:#6ee7b70d}.placeholder-emerald-300\/50::placeholder{color:#6ee7b780}.placeholder-emerald-300\/60::placeholder{color:#6ee7b799}.placeholder-emerald-300\/70::placeholder{color:#6ee7b7b3}.placeholder-emerald-300\/75::placeholder{color:#6ee7b7bf}.placeholder-emerald-300\/80::placeholder{color:#6ee7b7cc}.placeholder-emerald-300\/90::placeholder{color:#6ee7b7e6}.placeholder-emerald-300\/95::placeholder{color:#6ee7b7f2}.placeholder-emerald-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(52 211 153 / var(--tw-placeholder-opacity))}.placeholder-emerald-400\/0::placeholder{color:#34d39900}.placeholder-emerald-400\/10::placeholder{color:#34d3991a}.placeholder-emerald-400\/100::placeholder{color:#34d399}.placeholder-emerald-400\/20::placeholder{color:#34d39933}.placeholder-emerald-400\/25::placeholder{color:#34d39940}.placeholder-emerald-400\/30::placeholder{color:#34d3994d}.placeholder-emerald-400\/40::placeholder{color:#34d39966}.placeholder-emerald-400\/5::placeholder{color:#34d3990d}.placeholder-emerald-400\/50::placeholder{color:#34d39980}.placeholder-emerald-400\/60::placeholder{color:#34d39999}.placeholder-emerald-400\/70::placeholder{color:#34d399b3}.placeholder-emerald-400\/75::placeholder{color:#34d399bf}.placeholder-emerald-400\/80::placeholder{color:#34d399cc}.placeholder-emerald-400\/90::placeholder{color:#34d399e6}.placeholder-emerald-400\/95::placeholder{color:#34d399f2}.placeholder-emerald-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(236 253 245 / var(--tw-placeholder-opacity))}.placeholder-emerald-50\/0::placeholder{color:#ecfdf500}.placeholder-emerald-50\/10::placeholder{color:#ecfdf51a}.placeholder-emerald-50\/100::placeholder{color:#ecfdf5}.placeholder-emerald-50\/20::placeholder{color:#ecfdf533}.placeholder-emerald-50\/25::placeholder{color:#ecfdf540}.placeholder-emerald-50\/30::placeholder{color:#ecfdf54d}.placeholder-emerald-50\/40::placeholder{color:#ecfdf566}.placeholder-emerald-50\/5::placeholder{color:#ecfdf50d}.placeholder-emerald-50\/50::placeholder{color:#ecfdf580}.placeholder-emerald-50\/60::placeholder{color:#ecfdf599}.placeholder-emerald-50\/70::placeholder{color:#ecfdf5b3}.placeholder-emerald-50\/75::placeholder{color:#ecfdf5bf}.placeholder-emerald-50\/80::placeholder{color:#ecfdf5cc}.placeholder-emerald-50\/90::placeholder{color:#ecfdf5e6}.placeholder-emerald-50\/95::placeholder{color:#ecfdf5f2}.placeholder-emerald-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(16 185 129 / var(--tw-placeholder-opacity))}.placeholder-emerald-500\/0::placeholder{color:#10b98100}.placeholder-emerald-500\/10::placeholder{color:#10b9811a}.placeholder-emerald-500\/100::placeholder{color:#10b981}.placeholder-emerald-500\/20::placeholder{color:#10b98133}.placeholder-emerald-500\/25::placeholder{color:#10b98140}.placeholder-emerald-500\/30::placeholder{color:#10b9814d}.placeholder-emerald-500\/40::placeholder{color:#10b98166}.placeholder-emerald-500\/5::placeholder{color:#10b9810d}.placeholder-emerald-500\/50::placeholder{color:#10b98180}.placeholder-emerald-500\/60::placeholder{color:#10b98199}.placeholder-emerald-500\/70::placeholder{color:#10b981b3}.placeholder-emerald-500\/75::placeholder{color:#10b981bf}.placeholder-emerald-500\/80::placeholder{color:#10b981cc}.placeholder-emerald-500\/90::placeholder{color:#10b981e6}.placeholder-emerald-500\/95::placeholder{color:#10b981f2}.placeholder-emerald-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(5 150 105 / var(--tw-placeholder-opacity))}.placeholder-emerald-600\/0::placeholder{color:#05966900}.placeholder-emerald-600\/10::placeholder{color:#0596691a}.placeholder-emerald-600\/100::placeholder{color:#059669}.placeholder-emerald-600\/20::placeholder{color:#05966933}.placeholder-emerald-600\/25::placeholder{color:#05966940}.placeholder-emerald-600\/30::placeholder{color:#0596694d}.placeholder-emerald-600\/40::placeholder{color:#05966966}.placeholder-emerald-600\/5::placeholder{color:#0596690d}.placeholder-emerald-600\/50::placeholder{color:#05966980}.placeholder-emerald-600\/60::placeholder{color:#05966999}.placeholder-emerald-600\/70::placeholder{color:#059669b3}.placeholder-emerald-600\/75::placeholder{color:#059669bf}.placeholder-emerald-600\/80::placeholder{color:#059669cc}.placeholder-emerald-600\/90::placeholder{color:#059669e6}.placeholder-emerald-600\/95::placeholder{color:#059669f2}.placeholder-emerald-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(4 120 87 / var(--tw-placeholder-opacity))}.placeholder-emerald-700\/0::placeholder{color:#04785700}.placeholder-emerald-700\/10::placeholder{color:#0478571a}.placeholder-emerald-700\/100::placeholder{color:#047857}.placeholder-emerald-700\/20::placeholder{color:#04785733}.placeholder-emerald-700\/25::placeholder{color:#04785740}.placeholder-emerald-700\/30::placeholder{color:#0478574d}.placeholder-emerald-700\/40::placeholder{color:#04785766}.placeholder-emerald-700\/5::placeholder{color:#0478570d}.placeholder-emerald-700\/50::placeholder{color:#04785780}.placeholder-emerald-700\/60::placeholder{color:#04785799}.placeholder-emerald-700\/70::placeholder{color:#047857b3}.placeholder-emerald-700\/75::placeholder{color:#047857bf}.placeholder-emerald-700\/80::placeholder{color:#047857cc}.placeholder-emerald-700\/90::placeholder{color:#047857e6}.placeholder-emerald-700\/95::placeholder{color:#047857f2}.placeholder-emerald-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(6 95 70 / var(--tw-placeholder-opacity))}.placeholder-emerald-800\/0::placeholder{color:#065f4600}.placeholder-emerald-800\/10::placeholder{color:#065f461a}.placeholder-emerald-800\/100::placeholder{color:#065f46}.placeholder-emerald-800\/20::placeholder{color:#065f4633}.placeholder-emerald-800\/25::placeholder{color:#065f4640}.placeholder-emerald-800\/30::placeholder{color:#065f464d}.placeholder-emerald-800\/40::placeholder{color:#065f4666}.placeholder-emerald-800\/5::placeholder{color:#065f460d}.placeholder-emerald-800\/50::placeholder{color:#065f4680}.placeholder-emerald-800\/60::placeholder{color:#065f4699}.placeholder-emerald-800\/70::placeholder{color:#065f46b3}.placeholder-emerald-800\/75::placeholder{color:#065f46bf}.placeholder-emerald-800\/80::placeholder{color:#065f46cc}.placeholder-emerald-800\/90::placeholder{color:#065f46e6}.placeholder-emerald-800\/95::placeholder{color:#065f46f2}.placeholder-emerald-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(6 78 59 / var(--tw-placeholder-opacity))}.placeholder-emerald-900\/0::placeholder{color:#064e3b00}.placeholder-emerald-900\/10::placeholder{color:#064e3b1a}.placeholder-emerald-900\/100::placeholder{color:#064e3b}.placeholder-emerald-900\/20::placeholder{color:#064e3b33}.placeholder-emerald-900\/25::placeholder{color:#064e3b40}.placeholder-emerald-900\/30::placeholder{color:#064e3b4d}.placeholder-emerald-900\/40::placeholder{color:#064e3b66}.placeholder-emerald-900\/5::placeholder{color:#064e3b0d}.placeholder-emerald-900\/50::placeholder{color:#064e3b80}.placeholder-emerald-900\/60::placeholder{color:#064e3b99}.placeholder-emerald-900\/70::placeholder{color:#064e3bb3}.placeholder-emerald-900\/75::placeholder{color:#064e3bbf}.placeholder-emerald-900\/80::placeholder{color:#064e3bcc}.placeholder-emerald-900\/90::placeholder{color:#064e3be6}.placeholder-emerald-900\/95::placeholder{color:#064e3bf2}.placeholder-emwelt-primary::placeholder{color:var(--emwelt-primary)}.placeholder-emwelt-secondary::placeholder{color:var(--emwelt-secondary)}.placeholder-emwelt-tertiary::placeholder{color:var(--emwelt-tertiary)}.placeholder-energie-primary::placeholder{color:var(--energie-primary)}.placeholder-energie-secondary::placeholder{color:var(--energie-secondary)}.placeholder-energie-tertiary::placeholder{color:var(--energie-tertiary)}.placeholder-fuchsia-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(250 232 255 / var(--tw-placeholder-opacity))}.placeholder-fuchsia-100\/0::placeholder{color:#fae8ff00}.placeholder-fuchsia-100\/10::placeholder{color:#fae8ff1a}.placeholder-fuchsia-100\/100::placeholder{color:#fae8ff}.placeholder-fuchsia-100\/20::placeholder{color:#fae8ff33}.placeholder-fuchsia-100\/25::placeholder{color:#fae8ff40}.placeholder-fuchsia-100\/30::placeholder{color:#fae8ff4d}.placeholder-fuchsia-100\/40::placeholder{color:#fae8ff66}.placeholder-fuchsia-100\/5::placeholder{color:#fae8ff0d}.placeholder-fuchsia-100\/50::placeholder{color:#fae8ff80}.placeholder-fuchsia-100\/60::placeholder{color:#fae8ff99}.placeholder-fuchsia-100\/70::placeholder{color:#fae8ffb3}.placeholder-fuchsia-100\/75::placeholder{color:#fae8ffbf}.placeholder-fuchsia-100\/80::placeholder{color:#fae8ffcc}.placeholder-fuchsia-100\/90::placeholder{color:#fae8ffe6}.placeholder-fuchsia-100\/95::placeholder{color:#fae8fff2}.placeholder-fuchsia-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(245 208 254 / var(--tw-placeholder-opacity))}.placeholder-fuchsia-200\/0::placeholder{color:#f5d0fe00}.placeholder-fuchsia-200\/10::placeholder{color:#f5d0fe1a}.placeholder-fuchsia-200\/100::placeholder{color:#f5d0fe}.placeholder-fuchsia-200\/20::placeholder{color:#f5d0fe33}.placeholder-fuchsia-200\/25::placeholder{color:#f5d0fe40}.placeholder-fuchsia-200\/30::placeholder{color:#f5d0fe4d}.placeholder-fuchsia-200\/40::placeholder{color:#f5d0fe66}.placeholder-fuchsia-200\/5::placeholder{color:#f5d0fe0d}.placeholder-fuchsia-200\/50::placeholder{color:#f5d0fe80}.placeholder-fuchsia-200\/60::placeholder{color:#f5d0fe99}.placeholder-fuchsia-200\/70::placeholder{color:#f5d0feb3}.placeholder-fuchsia-200\/75::placeholder{color:#f5d0febf}.placeholder-fuchsia-200\/80::placeholder{color:#f5d0fecc}.placeholder-fuchsia-200\/90::placeholder{color:#f5d0fee6}.placeholder-fuchsia-200\/95::placeholder{color:#f5d0fef2}.placeholder-fuchsia-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(240 171 252 / var(--tw-placeholder-opacity))}.placeholder-fuchsia-300\/0::placeholder{color:#f0abfc00}.placeholder-fuchsia-300\/10::placeholder{color:#f0abfc1a}.placeholder-fuchsia-300\/100::placeholder{color:#f0abfc}.placeholder-fuchsia-300\/20::placeholder{color:#f0abfc33}.placeholder-fuchsia-300\/25::placeholder{color:#f0abfc40}.placeholder-fuchsia-300\/30::placeholder{color:#f0abfc4d}.placeholder-fuchsia-300\/40::placeholder{color:#f0abfc66}.placeholder-fuchsia-300\/5::placeholder{color:#f0abfc0d}.placeholder-fuchsia-300\/50::placeholder{color:#f0abfc80}.placeholder-fuchsia-300\/60::placeholder{color:#f0abfc99}.placeholder-fuchsia-300\/70::placeholder{color:#f0abfcb3}.placeholder-fuchsia-300\/75::placeholder{color:#f0abfcbf}.placeholder-fuchsia-300\/80::placeholder{color:#f0abfccc}.placeholder-fuchsia-300\/90::placeholder{color:#f0abfce6}.placeholder-fuchsia-300\/95::placeholder{color:#f0abfcf2}.placeholder-fuchsia-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(232 121 249 / var(--tw-placeholder-opacity))}.placeholder-fuchsia-400\/0::placeholder{color:#e879f900}.placeholder-fuchsia-400\/10::placeholder{color:#e879f91a}.placeholder-fuchsia-400\/100::placeholder{color:#e879f9}.placeholder-fuchsia-400\/20::placeholder{color:#e879f933}.placeholder-fuchsia-400\/25::placeholder{color:#e879f940}.placeholder-fuchsia-400\/30::placeholder{color:#e879f94d}.placeholder-fuchsia-400\/40::placeholder{color:#e879f966}.placeholder-fuchsia-400\/5::placeholder{color:#e879f90d}.placeholder-fuchsia-400\/50::placeholder{color:#e879f980}.placeholder-fuchsia-400\/60::placeholder{color:#e879f999}.placeholder-fuchsia-400\/70::placeholder{color:#e879f9b3}.placeholder-fuchsia-400\/75::placeholder{color:#e879f9bf}.placeholder-fuchsia-400\/80::placeholder{color:#e879f9cc}.placeholder-fuchsia-400\/90::placeholder{color:#e879f9e6}.placeholder-fuchsia-400\/95::placeholder{color:#e879f9f2}.placeholder-fuchsia-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(253 244 255 / var(--tw-placeholder-opacity))}.placeholder-fuchsia-50\/0::placeholder{color:#fdf4ff00}.placeholder-fuchsia-50\/10::placeholder{color:#fdf4ff1a}.placeholder-fuchsia-50\/100::placeholder{color:#fdf4ff}.placeholder-fuchsia-50\/20::placeholder{color:#fdf4ff33}.placeholder-fuchsia-50\/25::placeholder{color:#fdf4ff40}.placeholder-fuchsia-50\/30::placeholder{color:#fdf4ff4d}.placeholder-fuchsia-50\/40::placeholder{color:#fdf4ff66}.placeholder-fuchsia-50\/5::placeholder{color:#fdf4ff0d}.placeholder-fuchsia-50\/50::placeholder{color:#fdf4ff80}.placeholder-fuchsia-50\/60::placeholder{color:#fdf4ff99}.placeholder-fuchsia-50\/70::placeholder{color:#fdf4ffb3}.placeholder-fuchsia-50\/75::placeholder{color:#fdf4ffbf}.placeholder-fuchsia-50\/80::placeholder{color:#fdf4ffcc}.placeholder-fuchsia-50\/90::placeholder{color:#fdf4ffe6}.placeholder-fuchsia-50\/95::placeholder{color:#fdf4fff2}.placeholder-fuchsia-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(217 70 239 / var(--tw-placeholder-opacity))}.placeholder-fuchsia-500\/0::placeholder{color:#d946ef00}.placeholder-fuchsia-500\/10::placeholder{color:#d946ef1a}.placeholder-fuchsia-500\/100::placeholder{color:#d946ef}.placeholder-fuchsia-500\/20::placeholder{color:#d946ef33}.placeholder-fuchsia-500\/25::placeholder{color:#d946ef40}.placeholder-fuchsia-500\/30::placeholder{color:#d946ef4d}.placeholder-fuchsia-500\/40::placeholder{color:#d946ef66}.placeholder-fuchsia-500\/5::placeholder{color:#d946ef0d}.placeholder-fuchsia-500\/50::placeholder{color:#d946ef80}.placeholder-fuchsia-500\/60::placeholder{color:#d946ef99}.placeholder-fuchsia-500\/70::placeholder{color:#d946efb3}.placeholder-fuchsia-500\/75::placeholder{color:#d946efbf}.placeholder-fuchsia-500\/80::placeholder{color:#d946efcc}.placeholder-fuchsia-500\/90::placeholder{color:#d946efe6}.placeholder-fuchsia-500\/95::placeholder{color:#d946eff2}.placeholder-fuchsia-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(192 38 211 / var(--tw-placeholder-opacity))}.placeholder-fuchsia-600\/0::placeholder{color:#c026d300}.placeholder-fuchsia-600\/10::placeholder{color:#c026d31a}.placeholder-fuchsia-600\/100::placeholder{color:#c026d3}.placeholder-fuchsia-600\/20::placeholder{color:#c026d333}.placeholder-fuchsia-600\/25::placeholder{color:#c026d340}.placeholder-fuchsia-600\/30::placeholder{color:#c026d34d}.placeholder-fuchsia-600\/40::placeholder{color:#c026d366}.placeholder-fuchsia-600\/5::placeholder{color:#c026d30d}.placeholder-fuchsia-600\/50::placeholder{color:#c026d380}.placeholder-fuchsia-600\/60::placeholder{color:#c026d399}.placeholder-fuchsia-600\/70::placeholder{color:#c026d3b3}.placeholder-fuchsia-600\/75::placeholder{color:#c026d3bf}.placeholder-fuchsia-600\/80::placeholder{color:#c026d3cc}.placeholder-fuchsia-600\/90::placeholder{color:#c026d3e6}.placeholder-fuchsia-600\/95::placeholder{color:#c026d3f2}.placeholder-fuchsia-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(162 28 175 / var(--tw-placeholder-opacity))}.placeholder-fuchsia-700\/0::placeholder{color:#a21caf00}.placeholder-fuchsia-700\/10::placeholder{color:#a21caf1a}.placeholder-fuchsia-700\/100::placeholder{color:#a21caf}.placeholder-fuchsia-700\/20::placeholder{color:#a21caf33}.placeholder-fuchsia-700\/25::placeholder{color:#a21caf40}.placeholder-fuchsia-700\/30::placeholder{color:#a21caf4d}.placeholder-fuchsia-700\/40::placeholder{color:#a21caf66}.placeholder-fuchsia-700\/5::placeholder{color:#a21caf0d}.placeholder-fuchsia-700\/50::placeholder{color:#a21caf80}.placeholder-fuchsia-700\/60::placeholder{color:#a21caf99}.placeholder-fuchsia-700\/70::placeholder{color:#a21cafb3}.placeholder-fuchsia-700\/75::placeholder{color:#a21cafbf}.placeholder-fuchsia-700\/80::placeholder{color:#a21cafcc}.placeholder-fuchsia-700\/90::placeholder{color:#a21cafe6}.placeholder-fuchsia-700\/95::placeholder{color:#a21caff2}.placeholder-fuchsia-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(134 25 143 / var(--tw-placeholder-opacity))}.placeholder-fuchsia-800\/0::placeholder{color:#86198f00}.placeholder-fuchsia-800\/10::placeholder{color:#86198f1a}.placeholder-fuchsia-800\/100::placeholder{color:#86198f}.placeholder-fuchsia-800\/20::placeholder{color:#86198f33}.placeholder-fuchsia-800\/25::placeholder{color:#86198f40}.placeholder-fuchsia-800\/30::placeholder{color:#86198f4d}.placeholder-fuchsia-800\/40::placeholder{color:#86198f66}.placeholder-fuchsia-800\/5::placeholder{color:#86198f0d}.placeholder-fuchsia-800\/50::placeholder{color:#86198f80}.placeholder-fuchsia-800\/60::placeholder{color:#86198f99}.placeholder-fuchsia-800\/70::placeholder{color:#86198fb3}.placeholder-fuchsia-800\/75::placeholder{color:#86198fbf}.placeholder-fuchsia-800\/80::placeholder{color:#86198fcc}.placeholder-fuchsia-800\/90::placeholder{color:#86198fe6}.placeholder-fuchsia-800\/95::placeholder{color:#86198ff2}.placeholder-fuchsia-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(112 26 117 / var(--tw-placeholder-opacity))}.placeholder-fuchsia-900\/0::placeholder{color:#701a7500}.placeholder-fuchsia-900\/10::placeholder{color:#701a751a}.placeholder-fuchsia-900\/100::placeholder{color:#701a75}.placeholder-fuchsia-900\/20::placeholder{color:#701a7533}.placeholder-fuchsia-900\/25::placeholder{color:#701a7540}.placeholder-fuchsia-900\/30::placeholder{color:#701a754d}.placeholder-fuchsia-900\/40::placeholder{color:#701a7566}.placeholder-fuchsia-900\/5::placeholder{color:#701a750d}.placeholder-fuchsia-900\/50::placeholder{color:#701a7580}.placeholder-fuchsia-900\/60::placeholder{color:#701a7599}.placeholder-fuchsia-900\/70::placeholder{color:#701a75b3}.placeholder-fuchsia-900\/75::placeholder{color:#701a75bf}.placeholder-fuchsia-900\/80::placeholder{color:#701a75cc}.placeholder-fuchsia-900\/90::placeholder{color:#701a75e6}.placeholder-fuchsia-900\/95::placeholder{color:#701a75f2}.placeholder-geosciences-primary::placeholder{color:var(--geosciences-primary)}.placeholder-geosciences-secondary::placeholder{color:var(--geosciences-secondary)}.placeholder-geosciences-tertiary::placeholder{color:var(--geosciences-tertiary)}.placeholder-go-primary::placeholder{color:var(--go-primary)}.placeholder-go-secondary::placeholder{color:var(--go-secondary)}.placeholder-go-tertiary::placeholder{color:var(--go-tertiary)}.placeholder-gray-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(243 244 246 / var(--tw-placeholder-opacity))}.placeholder-gray-100\/0::placeholder{color:#f3f4f600}.placeholder-gray-100\/10::placeholder{color:#f3f4f61a}.placeholder-gray-100\/100::placeholder{color:#f3f4f6}.placeholder-gray-100\/20::placeholder{color:#f3f4f633}.placeholder-gray-100\/25::placeholder{color:#f3f4f640}.placeholder-gray-100\/30::placeholder{color:#f3f4f64d}.placeholder-gray-100\/40::placeholder{color:#f3f4f666}.placeholder-gray-100\/5::placeholder{color:#f3f4f60d}.placeholder-gray-100\/50::placeholder{color:#f3f4f680}.placeholder-gray-100\/60::placeholder{color:#f3f4f699}.placeholder-gray-100\/70::placeholder{color:#f3f4f6b3}.placeholder-gray-100\/75::placeholder{color:#f3f4f6bf}.placeholder-gray-100\/80::placeholder{color:#f3f4f6cc}.placeholder-gray-100\/90::placeholder{color:#f3f4f6e6}.placeholder-gray-100\/95::placeholder{color:#f3f4f6f2}.placeholder-gray-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(229 231 235 / var(--tw-placeholder-opacity))}.placeholder-gray-200\/0::placeholder{color:#e5e7eb00}.placeholder-gray-200\/10::placeholder{color:#e5e7eb1a}.placeholder-gray-200\/100::placeholder{color:#e5e7eb}.placeholder-gray-200\/20::placeholder{color:#e5e7eb33}.placeholder-gray-200\/25::placeholder{color:#e5e7eb40}.placeholder-gray-200\/30::placeholder{color:#e5e7eb4d}.placeholder-gray-200\/40::placeholder{color:#e5e7eb66}.placeholder-gray-200\/5::placeholder{color:#e5e7eb0d}.placeholder-gray-200\/50::placeholder{color:#e5e7eb80}.placeholder-gray-200\/60::placeholder{color:#e5e7eb99}.placeholder-gray-200\/70::placeholder{color:#e5e7ebb3}.placeholder-gray-200\/75::placeholder{color:#e5e7ebbf}.placeholder-gray-200\/80::placeholder{color:#e5e7ebcc}.placeholder-gray-200\/90::placeholder{color:#e5e7ebe6}.placeholder-gray-200\/95::placeholder{color:#e5e7ebf2}.placeholder-gray-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(209 213 219 / var(--tw-placeholder-opacity))}.placeholder-gray-300\/0::placeholder{color:#d1d5db00}.placeholder-gray-300\/10::placeholder{color:#d1d5db1a}.placeholder-gray-300\/100::placeholder{color:#d1d5db}.placeholder-gray-300\/20::placeholder{color:#d1d5db33}.placeholder-gray-300\/25::placeholder{color:#d1d5db40}.placeholder-gray-300\/30::placeholder{color:#d1d5db4d}.placeholder-gray-300\/40::placeholder{color:#d1d5db66}.placeholder-gray-300\/5::placeholder{color:#d1d5db0d}.placeholder-gray-300\/50::placeholder{color:#d1d5db80}.placeholder-gray-300\/60::placeholder{color:#d1d5db99}.placeholder-gray-300\/70::placeholder{color:#d1d5dbb3}.placeholder-gray-300\/75::placeholder{color:#d1d5dbbf}.placeholder-gray-300\/80::placeholder{color:#d1d5dbcc}.placeholder-gray-300\/90::placeholder{color:#d1d5dbe6}.placeholder-gray-300\/95::placeholder{color:#d1d5dbf2}.placeholder-gray-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.placeholder-gray-400\/0::placeholder{color:#9ca3af00}.placeholder-gray-400\/10::placeholder{color:#9ca3af1a}.placeholder-gray-400\/100::placeholder{color:#9ca3af}.placeholder-gray-400\/20::placeholder{color:#9ca3af33}.placeholder-gray-400\/25::placeholder{color:#9ca3af40}.placeholder-gray-400\/30::placeholder{color:#9ca3af4d}.placeholder-gray-400\/40::placeholder{color:#9ca3af66}.placeholder-gray-400\/5::placeholder{color:#9ca3af0d}.placeholder-gray-400\/50::placeholder{color:#9ca3af80}.placeholder-gray-400\/60::placeholder{color:#9ca3af99}.placeholder-gray-400\/70::placeholder{color:#9ca3afb3}.placeholder-gray-400\/75::placeholder{color:#9ca3afbf}.placeholder-gray-400\/80::placeholder{color:#9ca3afcc}.placeholder-gray-400\/90::placeholder{color:#9ca3afe6}.placeholder-gray-400\/95::placeholder{color:#9ca3aff2}.placeholder-gray-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(249 250 251 / var(--tw-placeholder-opacity))}.placeholder-gray-50\/0::placeholder{color:#f9fafb00}.placeholder-gray-50\/10::placeholder{color:#f9fafb1a}.placeholder-gray-50\/100::placeholder{color:#f9fafb}.placeholder-gray-50\/20::placeholder{color:#f9fafb33}.placeholder-gray-50\/25::placeholder{color:#f9fafb40}.placeholder-gray-50\/30::placeholder{color:#f9fafb4d}.placeholder-gray-50\/40::placeholder{color:#f9fafb66}.placeholder-gray-50\/5::placeholder{color:#f9fafb0d}.placeholder-gray-50\/50::placeholder{color:#f9fafb80}.placeholder-gray-50\/60::placeholder{color:#f9fafb99}.placeholder-gray-50\/70::placeholder{color:#f9fafbb3}.placeholder-gray-50\/75::placeholder{color:#f9fafbbf}.placeholder-gray-50\/80::placeholder{color:#f9fafbcc}.placeholder-gray-50\/90::placeholder{color:#f9fafbe6}.placeholder-gray-50\/95::placeholder{color:#f9fafbf2}.placeholder-gray-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity))}.placeholder-gray-500\/0::placeholder{color:#6b728000}.placeholder-gray-500\/10::placeholder{color:#6b72801a}.placeholder-gray-500\/100::placeholder{color:#6b7280}.placeholder-gray-500\/20::placeholder{color:#6b728033}.placeholder-gray-500\/25::placeholder{color:#6b728040}.placeholder-gray-500\/30::placeholder{color:#6b72804d}.placeholder-gray-500\/40::placeholder{color:#6b728066}.placeholder-gray-500\/5::placeholder{color:#6b72800d}.placeholder-gray-500\/50::placeholder{color:#6b728080}.placeholder-gray-500\/60::placeholder{color:#6b728099}.placeholder-gray-500\/70::placeholder{color:#6b7280b3}.placeholder-gray-500\/75::placeholder{color:#6b7280bf}.placeholder-gray-500\/80::placeholder{color:#6b7280cc}.placeholder-gray-500\/90::placeholder{color:#6b7280e6}.placeholder-gray-500\/95::placeholder{color:#6b7280f2}.placeholder-gray-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(75 85 99 / var(--tw-placeholder-opacity))}.placeholder-gray-600\/0::placeholder{color:#4b556300}.placeholder-gray-600\/10::placeholder{color:#4b55631a}.placeholder-gray-600\/100::placeholder{color:#4b5563}.placeholder-gray-600\/20::placeholder{color:#4b556333}.placeholder-gray-600\/25::placeholder{color:#4b556340}.placeholder-gray-600\/30::placeholder{color:#4b55634d}.placeholder-gray-600\/40::placeholder{color:#4b556366}.placeholder-gray-600\/5::placeholder{color:#4b55630d}.placeholder-gray-600\/50::placeholder{color:#4b556380}.placeholder-gray-600\/60::placeholder{color:#4b556399}.placeholder-gray-600\/70::placeholder{color:#4b5563b3}.placeholder-gray-600\/75::placeholder{color:#4b5563bf}.placeholder-gray-600\/80::placeholder{color:#4b5563cc}.placeholder-gray-600\/90::placeholder{color:#4b5563e6}.placeholder-gray-600\/95::placeholder{color:#4b5563f2}.placeholder-gray-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(55 65 81 / var(--tw-placeholder-opacity))}.placeholder-gray-700\/0::placeholder{color:#37415100}.placeholder-gray-700\/10::placeholder{color:#3741511a}.placeholder-gray-700\/100::placeholder{color:#374151}.placeholder-gray-700\/20::placeholder{color:#37415133}.placeholder-gray-700\/25::placeholder{color:#37415140}.placeholder-gray-700\/30::placeholder{color:#3741514d}.placeholder-gray-700\/40::placeholder{color:#37415166}.placeholder-gray-700\/5::placeholder{color:#3741510d}.placeholder-gray-700\/50::placeholder{color:#37415180}.placeholder-gray-700\/60::placeholder{color:#37415199}.placeholder-gray-700\/70::placeholder{color:#374151b3}.placeholder-gray-700\/75::placeholder{color:#374151bf}.placeholder-gray-700\/80::placeholder{color:#374151cc}.placeholder-gray-700\/90::placeholder{color:#374151e6}.placeholder-gray-700\/95::placeholder{color:#374151f2}.placeholder-gray-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(31 41 55 / var(--tw-placeholder-opacity))}.placeholder-gray-800\/0::placeholder{color:#1f293700}.placeholder-gray-800\/10::placeholder{color:#1f29371a}.placeholder-gray-800\/100::placeholder{color:#1f2937}.placeholder-gray-800\/20::placeholder{color:#1f293733}.placeholder-gray-800\/25::placeholder{color:#1f293740}.placeholder-gray-800\/30::placeholder{color:#1f29374d}.placeholder-gray-800\/40::placeholder{color:#1f293766}.placeholder-gray-800\/5::placeholder{color:#1f29370d}.placeholder-gray-800\/50::placeholder{color:#1f293780}.placeholder-gray-800\/60::placeholder{color:#1f293799}.placeholder-gray-800\/70::placeholder{color:#1f2937b3}.placeholder-gray-800\/75::placeholder{color:#1f2937bf}.placeholder-gray-800\/80::placeholder{color:#1f2937cc}.placeholder-gray-800\/90::placeholder{color:#1f2937e6}.placeholder-gray-800\/95::placeholder{color:#1f2937f2}.placeholder-gray-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(17 24 39 / var(--tw-placeholder-opacity))}.placeholder-gray-900\/0::placeholder{color:#11182700}.placeholder-gray-900\/10::placeholder{color:#1118271a}.placeholder-gray-900\/100::placeholder{color:#111827}.placeholder-gray-900\/20::placeholder{color:#11182733}.placeholder-gray-900\/25::placeholder{color:#11182740}.placeholder-gray-900\/30::placeholder{color:#1118274d}.placeholder-gray-900\/40::placeholder{color:#11182766}.placeholder-gray-900\/5::placeholder{color:#1118270d}.placeholder-gray-900\/50::placeholder{color:#11182780}.placeholder-gray-900\/60::placeholder{color:#11182799}.placeholder-gray-900\/70::placeholder{color:#111827b3}.placeholder-gray-900\/75::placeholder{color:#111827bf}.placeholder-gray-900\/80::placeholder{color:#111827cc}.placeholder-gray-900\/90::placeholder{color:#111827e6}.placeholder-gray-900\/95::placeholder{color:#111827f2}.placeholder-green-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(220 252 231 / var(--tw-placeholder-opacity))}.placeholder-green-100\/0::placeholder{color:#dcfce700}.placeholder-green-100\/10::placeholder{color:#dcfce71a}.placeholder-green-100\/100::placeholder{color:#dcfce7}.placeholder-green-100\/20::placeholder{color:#dcfce733}.placeholder-green-100\/25::placeholder{color:#dcfce740}.placeholder-green-100\/30::placeholder{color:#dcfce74d}.placeholder-green-100\/40::placeholder{color:#dcfce766}.placeholder-green-100\/5::placeholder{color:#dcfce70d}.placeholder-green-100\/50::placeholder{color:#dcfce780}.placeholder-green-100\/60::placeholder{color:#dcfce799}.placeholder-green-100\/70::placeholder{color:#dcfce7b3}.placeholder-green-100\/75::placeholder{color:#dcfce7bf}.placeholder-green-100\/80::placeholder{color:#dcfce7cc}.placeholder-green-100\/90::placeholder{color:#dcfce7e6}.placeholder-green-100\/95::placeholder{color:#dcfce7f2}.placeholder-green-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(187 247 208 / var(--tw-placeholder-opacity))}.placeholder-green-200\/0::placeholder{color:#bbf7d000}.placeholder-green-200\/10::placeholder{color:#bbf7d01a}.placeholder-green-200\/100::placeholder{color:#bbf7d0}.placeholder-green-200\/20::placeholder{color:#bbf7d033}.placeholder-green-200\/25::placeholder{color:#bbf7d040}.placeholder-green-200\/30::placeholder{color:#bbf7d04d}.placeholder-green-200\/40::placeholder{color:#bbf7d066}.placeholder-green-200\/5::placeholder{color:#bbf7d00d}.placeholder-green-200\/50::placeholder{color:#bbf7d080}.placeholder-green-200\/60::placeholder{color:#bbf7d099}.placeholder-green-200\/70::placeholder{color:#bbf7d0b3}.placeholder-green-200\/75::placeholder{color:#bbf7d0bf}.placeholder-green-200\/80::placeholder{color:#bbf7d0cc}.placeholder-green-200\/90::placeholder{color:#bbf7d0e6}.placeholder-green-200\/95::placeholder{color:#bbf7d0f2}.placeholder-green-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(134 239 172 / var(--tw-placeholder-opacity))}.placeholder-green-300\/0::placeholder{color:#86efac00}.placeholder-green-300\/10::placeholder{color:#86efac1a}.placeholder-green-300\/100::placeholder{color:#86efac}.placeholder-green-300\/20::placeholder{color:#86efac33}.placeholder-green-300\/25::placeholder{color:#86efac40}.placeholder-green-300\/30::placeholder{color:#86efac4d}.placeholder-green-300\/40::placeholder{color:#86efac66}.placeholder-green-300\/5::placeholder{color:#86efac0d}.placeholder-green-300\/50::placeholder{color:#86efac80}.placeholder-green-300\/60::placeholder{color:#86efac99}.placeholder-green-300\/70::placeholder{color:#86efacb3}.placeholder-green-300\/75::placeholder{color:#86efacbf}.placeholder-green-300\/80::placeholder{color:#86efaccc}.placeholder-green-300\/90::placeholder{color:#86eface6}.placeholder-green-300\/95::placeholder{color:#86efacf2}.placeholder-green-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(74 222 128 / var(--tw-placeholder-opacity))}.placeholder-green-400\/0::placeholder{color:#4ade8000}.placeholder-green-400\/10::placeholder{color:#4ade801a}.placeholder-green-400\/100::placeholder{color:#4ade80}.placeholder-green-400\/20::placeholder{color:#4ade8033}.placeholder-green-400\/25::placeholder{color:#4ade8040}.placeholder-green-400\/30::placeholder{color:#4ade804d}.placeholder-green-400\/40::placeholder{color:#4ade8066}.placeholder-green-400\/5::placeholder{color:#4ade800d}.placeholder-green-400\/50::placeholder{color:#4ade8080}.placeholder-green-400\/60::placeholder{color:#4ade8099}.placeholder-green-400\/70::placeholder{color:#4ade80b3}.placeholder-green-400\/75::placeholder{color:#4ade80bf}.placeholder-green-400\/80::placeholder{color:#4ade80cc}.placeholder-green-400\/90::placeholder{color:#4ade80e6}.placeholder-green-400\/95::placeholder{color:#4ade80f2}.placeholder-green-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(240 253 244 / var(--tw-placeholder-opacity))}.placeholder-green-50\/0::placeholder{color:#f0fdf400}.placeholder-green-50\/10::placeholder{color:#f0fdf41a}.placeholder-green-50\/100::placeholder{color:#f0fdf4}.placeholder-green-50\/20::placeholder{color:#f0fdf433}.placeholder-green-50\/25::placeholder{color:#f0fdf440}.placeholder-green-50\/30::placeholder{color:#f0fdf44d}.placeholder-green-50\/40::placeholder{color:#f0fdf466}.placeholder-green-50\/5::placeholder{color:#f0fdf40d}.placeholder-green-50\/50::placeholder{color:#f0fdf480}.placeholder-green-50\/60::placeholder{color:#f0fdf499}.placeholder-green-50\/70::placeholder{color:#f0fdf4b3}.placeholder-green-50\/75::placeholder{color:#f0fdf4bf}.placeholder-green-50\/80::placeholder{color:#f0fdf4cc}.placeholder-green-50\/90::placeholder{color:#f0fdf4e6}.placeholder-green-50\/95::placeholder{color:#f0fdf4f2}.placeholder-green-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(34 197 94 / var(--tw-placeholder-opacity))}.placeholder-green-500\/0::placeholder{color:#22c55e00}.placeholder-green-500\/10::placeholder{color:#22c55e1a}.placeholder-green-500\/100::placeholder{color:#22c55e}.placeholder-green-500\/20::placeholder{color:#22c55e33}.placeholder-green-500\/25::placeholder{color:#22c55e40}.placeholder-green-500\/30::placeholder{color:#22c55e4d}.placeholder-green-500\/40::placeholder{color:#22c55e66}.placeholder-green-500\/5::placeholder{color:#22c55e0d}.placeholder-green-500\/50::placeholder{color:#22c55e80}.placeholder-green-500\/60::placeholder{color:#22c55e99}.placeholder-green-500\/70::placeholder{color:#22c55eb3}.placeholder-green-500\/75::placeholder{color:#22c55ebf}.placeholder-green-500\/80::placeholder{color:#22c55ecc}.placeholder-green-500\/90::placeholder{color:#22c55ee6}.placeholder-green-500\/95::placeholder{color:#22c55ef2}.placeholder-green-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(22 163 74 / var(--tw-placeholder-opacity))}.placeholder-green-600\/0::placeholder{color:#16a34a00}.placeholder-green-600\/10::placeholder{color:#16a34a1a}.placeholder-green-600\/100::placeholder{color:#16a34a}.placeholder-green-600\/20::placeholder{color:#16a34a33}.placeholder-green-600\/25::placeholder{color:#16a34a40}.placeholder-green-600\/30::placeholder{color:#16a34a4d}.placeholder-green-600\/40::placeholder{color:#16a34a66}.placeholder-green-600\/5::placeholder{color:#16a34a0d}.placeholder-green-600\/50::placeholder{color:#16a34a80}.placeholder-green-600\/60::placeholder{color:#16a34a99}.placeholder-green-600\/70::placeholder{color:#16a34ab3}.placeholder-green-600\/75::placeholder{color:#16a34abf}.placeholder-green-600\/80::placeholder{color:#16a34acc}.placeholder-green-600\/90::placeholder{color:#16a34ae6}.placeholder-green-600\/95::placeholder{color:#16a34af2}.placeholder-green-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(21 128 61 / var(--tw-placeholder-opacity))}.placeholder-green-700\/0::placeholder{color:#15803d00}.placeholder-green-700\/10::placeholder{color:#15803d1a}.placeholder-green-700\/100::placeholder{color:#15803d}.placeholder-green-700\/20::placeholder{color:#15803d33}.placeholder-green-700\/25::placeholder{color:#15803d40}.placeholder-green-700\/30::placeholder{color:#15803d4d}.placeholder-green-700\/40::placeholder{color:#15803d66}.placeholder-green-700\/5::placeholder{color:#15803d0d}.placeholder-green-700\/50::placeholder{color:#15803d80}.placeholder-green-700\/60::placeholder{color:#15803d99}.placeholder-green-700\/70::placeholder{color:#15803db3}.placeholder-green-700\/75::placeholder{color:#15803dbf}.placeholder-green-700\/80::placeholder{color:#15803dcc}.placeholder-green-700\/90::placeholder{color:#15803de6}.placeholder-green-700\/95::placeholder{color:#15803df2}.placeholder-green-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(22 101 52 / var(--tw-placeholder-opacity))}.placeholder-green-800\/0::placeholder{color:#16653400}.placeholder-green-800\/10::placeholder{color:#1665341a}.placeholder-green-800\/100::placeholder{color:#166534}.placeholder-green-800\/20::placeholder{color:#16653433}.placeholder-green-800\/25::placeholder{color:#16653440}.placeholder-green-800\/30::placeholder{color:#1665344d}.placeholder-green-800\/40::placeholder{color:#16653466}.placeholder-green-800\/5::placeholder{color:#1665340d}.placeholder-green-800\/50::placeholder{color:#16653480}.placeholder-green-800\/60::placeholder{color:#16653499}.placeholder-green-800\/70::placeholder{color:#166534b3}.placeholder-green-800\/75::placeholder{color:#166534bf}.placeholder-green-800\/80::placeholder{color:#166534cc}.placeholder-green-800\/90::placeholder{color:#166534e6}.placeholder-green-800\/95::placeholder{color:#166534f2}.placeholder-green-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(20 83 45 / var(--tw-placeholder-opacity))}.placeholder-green-900\/0::placeholder{color:#14532d00}.placeholder-green-900\/10::placeholder{color:#14532d1a}.placeholder-green-900\/100::placeholder{color:#14532d}.placeholder-green-900\/20::placeholder{color:#14532d33}.placeholder-green-900\/25::placeholder{color:#14532d40}.placeholder-green-900\/30::placeholder{color:#14532d4d}.placeholder-green-900\/40::placeholder{color:#14532d66}.placeholder-green-900\/5::placeholder{color:#14532d0d}.placeholder-green-900\/50::placeholder{color:#14532d80}.placeholder-green-900\/60::placeholder{color:#14532d99}.placeholder-green-900\/70::placeholder{color:#14532db3}.placeholder-green-900\/75::placeholder{color:#14532dbf}.placeholder-green-900\/80::placeholder{color:#14532dcc}.placeholder-green-900\/90::placeholder{color:#14532de6}.placeholder-green-900\/95::placeholder{color:#14532df2}.placeholder-indigo-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(224 231 255 / var(--tw-placeholder-opacity))}.placeholder-indigo-100\/0::placeholder{color:#e0e7ff00}.placeholder-indigo-100\/10::placeholder{color:#e0e7ff1a}.placeholder-indigo-100\/100::placeholder{color:#e0e7ff}.placeholder-indigo-100\/20::placeholder{color:#e0e7ff33}.placeholder-indigo-100\/25::placeholder{color:#e0e7ff40}.placeholder-indigo-100\/30::placeholder{color:#e0e7ff4d}.placeholder-indigo-100\/40::placeholder{color:#e0e7ff66}.placeholder-indigo-100\/5::placeholder{color:#e0e7ff0d}.placeholder-indigo-100\/50::placeholder{color:#e0e7ff80}.placeholder-indigo-100\/60::placeholder{color:#e0e7ff99}.placeholder-indigo-100\/70::placeholder{color:#e0e7ffb3}.placeholder-indigo-100\/75::placeholder{color:#e0e7ffbf}.placeholder-indigo-100\/80::placeholder{color:#e0e7ffcc}.placeholder-indigo-100\/90::placeholder{color:#e0e7ffe6}.placeholder-indigo-100\/95::placeholder{color:#e0e7fff2}.placeholder-indigo-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(199 210 254 / var(--tw-placeholder-opacity))}.placeholder-indigo-200\/0::placeholder{color:#c7d2fe00}.placeholder-indigo-200\/10::placeholder{color:#c7d2fe1a}.placeholder-indigo-200\/100::placeholder{color:#c7d2fe}.placeholder-indigo-200\/20::placeholder{color:#c7d2fe33}.placeholder-indigo-200\/25::placeholder{color:#c7d2fe40}.placeholder-indigo-200\/30::placeholder{color:#c7d2fe4d}.placeholder-indigo-200\/40::placeholder{color:#c7d2fe66}.placeholder-indigo-200\/5::placeholder{color:#c7d2fe0d}.placeholder-indigo-200\/50::placeholder{color:#c7d2fe80}.placeholder-indigo-200\/60::placeholder{color:#c7d2fe99}.placeholder-indigo-200\/70::placeholder{color:#c7d2feb3}.placeholder-indigo-200\/75::placeholder{color:#c7d2febf}.placeholder-indigo-200\/80::placeholder{color:#c7d2fecc}.placeholder-indigo-200\/90::placeholder{color:#c7d2fee6}.placeholder-indigo-200\/95::placeholder{color:#c7d2fef2}.placeholder-indigo-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(165 180 252 / var(--tw-placeholder-opacity))}.placeholder-indigo-300\/0::placeholder{color:#a5b4fc00}.placeholder-indigo-300\/10::placeholder{color:#a5b4fc1a}.placeholder-indigo-300\/100::placeholder{color:#a5b4fc}.placeholder-indigo-300\/20::placeholder{color:#a5b4fc33}.placeholder-indigo-300\/25::placeholder{color:#a5b4fc40}.placeholder-indigo-300\/30::placeholder{color:#a5b4fc4d}.placeholder-indigo-300\/40::placeholder{color:#a5b4fc66}.placeholder-indigo-300\/5::placeholder{color:#a5b4fc0d}.placeholder-indigo-300\/50::placeholder{color:#a5b4fc80}.placeholder-indigo-300\/60::placeholder{color:#a5b4fc99}.placeholder-indigo-300\/70::placeholder{color:#a5b4fcb3}.placeholder-indigo-300\/75::placeholder{color:#a5b4fcbf}.placeholder-indigo-300\/80::placeholder{color:#a5b4fccc}.placeholder-indigo-300\/90::placeholder{color:#a5b4fce6}.placeholder-indigo-300\/95::placeholder{color:#a5b4fcf2}.placeholder-indigo-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(129 140 248 / var(--tw-placeholder-opacity))}.placeholder-indigo-400\/0::placeholder{color:#818cf800}.placeholder-indigo-400\/10::placeholder{color:#818cf81a}.placeholder-indigo-400\/100::placeholder{color:#818cf8}.placeholder-indigo-400\/20::placeholder{color:#818cf833}.placeholder-indigo-400\/25::placeholder{color:#818cf840}.placeholder-indigo-400\/30::placeholder{color:#818cf84d}.placeholder-indigo-400\/40::placeholder{color:#818cf866}.placeholder-indigo-400\/5::placeholder{color:#818cf80d}.placeholder-indigo-400\/50::placeholder{color:#818cf880}.placeholder-indigo-400\/60::placeholder{color:#818cf899}.placeholder-indigo-400\/70::placeholder{color:#818cf8b3}.placeholder-indigo-400\/75::placeholder{color:#818cf8bf}.placeholder-indigo-400\/80::placeholder{color:#818cf8cc}.placeholder-indigo-400\/90::placeholder{color:#818cf8e6}.placeholder-indigo-400\/95::placeholder{color:#818cf8f2}.placeholder-indigo-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(238 242 255 / var(--tw-placeholder-opacity))}.placeholder-indigo-50\/0::placeholder{color:#eef2ff00}.placeholder-indigo-50\/10::placeholder{color:#eef2ff1a}.placeholder-indigo-50\/100::placeholder{color:#eef2ff}.placeholder-indigo-50\/20::placeholder{color:#eef2ff33}.placeholder-indigo-50\/25::placeholder{color:#eef2ff40}.placeholder-indigo-50\/30::placeholder{color:#eef2ff4d}.placeholder-indigo-50\/40::placeholder{color:#eef2ff66}.placeholder-indigo-50\/5::placeholder{color:#eef2ff0d}.placeholder-indigo-50\/50::placeholder{color:#eef2ff80}.placeholder-indigo-50\/60::placeholder{color:#eef2ff99}.placeholder-indigo-50\/70::placeholder{color:#eef2ffb3}.placeholder-indigo-50\/75::placeholder{color:#eef2ffbf}.placeholder-indigo-50\/80::placeholder{color:#eef2ffcc}.placeholder-indigo-50\/90::placeholder{color:#eef2ffe6}.placeholder-indigo-50\/95::placeholder{color:#eef2fff2}.placeholder-indigo-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(99 102 241 / var(--tw-placeholder-opacity))}.placeholder-indigo-500\/0::placeholder{color:#6366f100}.placeholder-indigo-500\/10::placeholder{color:#6366f11a}.placeholder-indigo-500\/100::placeholder{color:#6366f1}.placeholder-indigo-500\/20::placeholder{color:#6366f133}.placeholder-indigo-500\/25::placeholder{color:#6366f140}.placeholder-indigo-500\/30::placeholder{color:#6366f14d}.placeholder-indigo-500\/40::placeholder{color:#6366f166}.placeholder-indigo-500\/5::placeholder{color:#6366f10d}.placeholder-indigo-500\/50::placeholder{color:#6366f180}.placeholder-indigo-500\/60::placeholder{color:#6366f199}.placeholder-indigo-500\/70::placeholder{color:#6366f1b3}.placeholder-indigo-500\/75::placeholder{color:#6366f1bf}.placeholder-indigo-500\/80::placeholder{color:#6366f1cc}.placeholder-indigo-500\/90::placeholder{color:#6366f1e6}.placeholder-indigo-500\/95::placeholder{color:#6366f1f2}.placeholder-indigo-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(79 70 229 / var(--tw-placeholder-opacity))}.placeholder-indigo-600\/0::placeholder{color:#4f46e500}.placeholder-indigo-600\/10::placeholder{color:#4f46e51a}.placeholder-indigo-600\/100::placeholder{color:#4f46e5}.placeholder-indigo-600\/20::placeholder{color:#4f46e533}.placeholder-indigo-600\/25::placeholder{color:#4f46e540}.placeholder-indigo-600\/30::placeholder{color:#4f46e54d}.placeholder-indigo-600\/40::placeholder{color:#4f46e566}.placeholder-indigo-600\/5::placeholder{color:#4f46e50d}.placeholder-indigo-600\/50::placeholder{color:#4f46e580}.placeholder-indigo-600\/60::placeholder{color:#4f46e599}.placeholder-indigo-600\/70::placeholder{color:#4f46e5b3}.placeholder-indigo-600\/75::placeholder{color:#4f46e5bf}.placeholder-indigo-600\/80::placeholder{color:#4f46e5cc}.placeholder-indigo-600\/90::placeholder{color:#4f46e5e6}.placeholder-indigo-600\/95::placeholder{color:#4f46e5f2}.placeholder-indigo-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(67 56 202 / var(--tw-placeholder-opacity))}.placeholder-indigo-700\/0::placeholder{color:#4338ca00}.placeholder-indigo-700\/10::placeholder{color:#4338ca1a}.placeholder-indigo-700\/100::placeholder{color:#4338ca}.placeholder-indigo-700\/20::placeholder{color:#4338ca33}.placeholder-indigo-700\/25::placeholder{color:#4338ca40}.placeholder-indigo-700\/30::placeholder{color:#4338ca4d}.placeholder-indigo-700\/40::placeholder{color:#4338ca66}.placeholder-indigo-700\/5::placeholder{color:#4338ca0d}.placeholder-indigo-700\/50::placeholder{color:#4338ca80}.placeholder-indigo-700\/60::placeholder{color:#4338ca99}.placeholder-indigo-700\/70::placeholder{color:#4338cab3}.placeholder-indigo-700\/75::placeholder{color:#4338cabf}.placeholder-indigo-700\/80::placeholder{color:#4338cacc}.placeholder-indigo-700\/90::placeholder{color:#4338cae6}.placeholder-indigo-700\/95::placeholder{color:#4338caf2}.placeholder-indigo-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(55 48 163 / var(--tw-placeholder-opacity))}.placeholder-indigo-800\/0::placeholder{color:#3730a300}.placeholder-indigo-800\/10::placeholder{color:#3730a31a}.placeholder-indigo-800\/100::placeholder{color:#3730a3}.placeholder-indigo-800\/20::placeholder{color:#3730a333}.placeholder-indigo-800\/25::placeholder{color:#3730a340}.placeholder-indigo-800\/30::placeholder{color:#3730a34d}.placeholder-indigo-800\/40::placeholder{color:#3730a366}.placeholder-indigo-800\/5::placeholder{color:#3730a30d}.placeholder-indigo-800\/50::placeholder{color:#3730a380}.placeholder-indigo-800\/60::placeholder{color:#3730a399}.placeholder-indigo-800\/70::placeholder{color:#3730a3b3}.placeholder-indigo-800\/75::placeholder{color:#3730a3bf}.placeholder-indigo-800\/80::placeholder{color:#3730a3cc}.placeholder-indigo-800\/90::placeholder{color:#3730a3e6}.placeholder-indigo-800\/95::placeholder{color:#3730a3f2}.placeholder-indigo-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(49 46 129 / var(--tw-placeholder-opacity))}.placeholder-indigo-900\/0::placeholder{color:#312e8100}.placeholder-indigo-900\/10::placeholder{color:#312e811a}.placeholder-indigo-900\/100::placeholder{color:#312e81}.placeholder-indigo-900\/20::placeholder{color:#312e8133}.placeholder-indigo-900\/25::placeholder{color:#312e8140}.placeholder-indigo-900\/30::placeholder{color:#312e814d}.placeholder-indigo-900\/40::placeholder{color:#312e8166}.placeholder-indigo-900\/5::placeholder{color:#312e810d}.placeholder-indigo-900\/50::placeholder{color:#312e8180}.placeholder-indigo-900\/60::placeholder{color:#312e8199}.placeholder-indigo-900\/70::placeholder{color:#312e81b3}.placeholder-indigo-900\/75::placeholder{color:#312e81bf}.placeholder-indigo-900\/80::placeholder{color:#312e81cc}.placeholder-indigo-900\/90::placeholder{color:#312e81e6}.placeholder-indigo-900\/95::placeholder{color:#312e81f2}.placeholder-inherit::placeholder{color:inherit}.placeholder-intranet-at-primary::placeholder{color:var(--intranet-at-primary)}.placeholder-intranet-at-secondary::placeholder{color:var(--intranet-at-secondary)}.placeholder-intranet-at-tertiary::placeholder{color:var(--intranet-at-tertiary)}.placeholder-lenoz-primary::placeholder{color:var(--lenoz-primary)}.placeholder-lenoz-secondary::placeholder{color:var(--lenoz-secondary)}.placeholder-lenoz-tertiary::placeholder{color:var(--lenoz-tertiary)}.placeholder-lime-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(236 252 203 / var(--tw-placeholder-opacity))}.placeholder-lime-100\/0::placeholder{color:#ecfccb00}.placeholder-lime-100\/10::placeholder{color:#ecfccb1a}.placeholder-lime-100\/100::placeholder{color:#ecfccb}.placeholder-lime-100\/20::placeholder{color:#ecfccb33}.placeholder-lime-100\/25::placeholder{color:#ecfccb40}.placeholder-lime-100\/30::placeholder{color:#ecfccb4d}.placeholder-lime-100\/40::placeholder{color:#ecfccb66}.placeholder-lime-100\/5::placeholder{color:#ecfccb0d}.placeholder-lime-100\/50::placeholder{color:#ecfccb80}.placeholder-lime-100\/60::placeholder{color:#ecfccb99}.placeholder-lime-100\/70::placeholder{color:#ecfccbb3}.placeholder-lime-100\/75::placeholder{color:#ecfccbbf}.placeholder-lime-100\/80::placeholder{color:#ecfccbcc}.placeholder-lime-100\/90::placeholder{color:#ecfccbe6}.placeholder-lime-100\/95::placeholder{color:#ecfccbf2}.placeholder-lime-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(217 249 157 / var(--tw-placeholder-opacity))}.placeholder-lime-200\/0::placeholder{color:#d9f99d00}.placeholder-lime-200\/10::placeholder{color:#d9f99d1a}.placeholder-lime-200\/100::placeholder{color:#d9f99d}.placeholder-lime-200\/20::placeholder{color:#d9f99d33}.placeholder-lime-200\/25::placeholder{color:#d9f99d40}.placeholder-lime-200\/30::placeholder{color:#d9f99d4d}.placeholder-lime-200\/40::placeholder{color:#d9f99d66}.placeholder-lime-200\/5::placeholder{color:#d9f99d0d}.placeholder-lime-200\/50::placeholder{color:#d9f99d80}.placeholder-lime-200\/60::placeholder{color:#d9f99d99}.placeholder-lime-200\/70::placeholder{color:#d9f99db3}.placeholder-lime-200\/75::placeholder{color:#d9f99dbf}.placeholder-lime-200\/80::placeholder{color:#d9f99dcc}.placeholder-lime-200\/90::placeholder{color:#d9f99de6}.placeholder-lime-200\/95::placeholder{color:#d9f99df2}.placeholder-lime-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(190 242 100 / var(--tw-placeholder-opacity))}.placeholder-lime-300\/0::placeholder{color:#bef26400}.placeholder-lime-300\/10::placeholder{color:#bef2641a}.placeholder-lime-300\/100::placeholder{color:#bef264}.placeholder-lime-300\/20::placeholder{color:#bef26433}.placeholder-lime-300\/25::placeholder{color:#bef26440}.placeholder-lime-300\/30::placeholder{color:#bef2644d}.placeholder-lime-300\/40::placeholder{color:#bef26466}.placeholder-lime-300\/5::placeholder{color:#bef2640d}.placeholder-lime-300\/50::placeholder{color:#bef26480}.placeholder-lime-300\/60::placeholder{color:#bef26499}.placeholder-lime-300\/70::placeholder{color:#bef264b3}.placeholder-lime-300\/75::placeholder{color:#bef264bf}.placeholder-lime-300\/80::placeholder{color:#bef264cc}.placeholder-lime-300\/90::placeholder{color:#bef264e6}.placeholder-lime-300\/95::placeholder{color:#bef264f2}.placeholder-lime-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(163 230 53 / var(--tw-placeholder-opacity))}.placeholder-lime-400\/0::placeholder{color:#a3e63500}.placeholder-lime-400\/10::placeholder{color:#a3e6351a}.placeholder-lime-400\/100::placeholder{color:#a3e635}.placeholder-lime-400\/20::placeholder{color:#a3e63533}.placeholder-lime-400\/25::placeholder{color:#a3e63540}.placeholder-lime-400\/30::placeholder{color:#a3e6354d}.placeholder-lime-400\/40::placeholder{color:#a3e63566}.placeholder-lime-400\/5::placeholder{color:#a3e6350d}.placeholder-lime-400\/50::placeholder{color:#a3e63580}.placeholder-lime-400\/60::placeholder{color:#a3e63599}.placeholder-lime-400\/70::placeholder{color:#a3e635b3}.placeholder-lime-400\/75::placeholder{color:#a3e635bf}.placeholder-lime-400\/80::placeholder{color:#a3e635cc}.placeholder-lime-400\/90::placeholder{color:#a3e635e6}.placeholder-lime-400\/95::placeholder{color:#a3e635f2}.placeholder-lime-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(247 254 231 / var(--tw-placeholder-opacity))}.placeholder-lime-50\/0::placeholder{color:#f7fee700}.placeholder-lime-50\/10::placeholder{color:#f7fee71a}.placeholder-lime-50\/100::placeholder{color:#f7fee7}.placeholder-lime-50\/20::placeholder{color:#f7fee733}.placeholder-lime-50\/25::placeholder{color:#f7fee740}.placeholder-lime-50\/30::placeholder{color:#f7fee74d}.placeholder-lime-50\/40::placeholder{color:#f7fee766}.placeholder-lime-50\/5::placeholder{color:#f7fee70d}.placeholder-lime-50\/50::placeholder{color:#f7fee780}.placeholder-lime-50\/60::placeholder{color:#f7fee799}.placeholder-lime-50\/70::placeholder{color:#f7fee7b3}.placeholder-lime-50\/75::placeholder{color:#f7fee7bf}.placeholder-lime-50\/80::placeholder{color:#f7fee7cc}.placeholder-lime-50\/90::placeholder{color:#f7fee7e6}.placeholder-lime-50\/95::placeholder{color:#f7fee7f2}.placeholder-lime-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(132 204 22 / var(--tw-placeholder-opacity))}.placeholder-lime-500\/0::placeholder{color:#84cc1600}.placeholder-lime-500\/10::placeholder{color:#84cc161a}.placeholder-lime-500\/100::placeholder{color:#84cc16}.placeholder-lime-500\/20::placeholder{color:#84cc1633}.placeholder-lime-500\/25::placeholder{color:#84cc1640}.placeholder-lime-500\/30::placeholder{color:#84cc164d}.placeholder-lime-500\/40::placeholder{color:#84cc1666}.placeholder-lime-500\/5::placeholder{color:#84cc160d}.placeholder-lime-500\/50::placeholder{color:#84cc1680}.placeholder-lime-500\/60::placeholder{color:#84cc1699}.placeholder-lime-500\/70::placeholder{color:#84cc16b3}.placeholder-lime-500\/75::placeholder{color:#84cc16bf}.placeholder-lime-500\/80::placeholder{color:#84cc16cc}.placeholder-lime-500\/90::placeholder{color:#84cc16e6}.placeholder-lime-500\/95::placeholder{color:#84cc16f2}.placeholder-lime-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(101 163 13 / var(--tw-placeholder-opacity))}.placeholder-lime-600\/0::placeholder{color:#65a30d00}.placeholder-lime-600\/10::placeholder{color:#65a30d1a}.placeholder-lime-600\/100::placeholder{color:#65a30d}.placeholder-lime-600\/20::placeholder{color:#65a30d33}.placeholder-lime-600\/25::placeholder{color:#65a30d40}.placeholder-lime-600\/30::placeholder{color:#65a30d4d}.placeholder-lime-600\/40::placeholder{color:#65a30d66}.placeholder-lime-600\/5::placeholder{color:#65a30d0d}.placeholder-lime-600\/50::placeholder{color:#65a30d80}.placeholder-lime-600\/60::placeholder{color:#65a30d99}.placeholder-lime-600\/70::placeholder{color:#65a30db3}.placeholder-lime-600\/75::placeholder{color:#65a30dbf}.placeholder-lime-600\/80::placeholder{color:#65a30dcc}.placeholder-lime-600\/90::placeholder{color:#65a30de6}.placeholder-lime-600\/95::placeholder{color:#65a30df2}.placeholder-lime-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(77 124 15 / var(--tw-placeholder-opacity))}.placeholder-lime-700\/0::placeholder{color:#4d7c0f00}.placeholder-lime-700\/10::placeholder{color:#4d7c0f1a}.placeholder-lime-700\/100::placeholder{color:#4d7c0f}.placeholder-lime-700\/20::placeholder{color:#4d7c0f33}.placeholder-lime-700\/25::placeholder{color:#4d7c0f40}.placeholder-lime-700\/30::placeholder{color:#4d7c0f4d}.placeholder-lime-700\/40::placeholder{color:#4d7c0f66}.placeholder-lime-700\/5::placeholder{color:#4d7c0f0d}.placeholder-lime-700\/50::placeholder{color:#4d7c0f80}.placeholder-lime-700\/60::placeholder{color:#4d7c0f99}.placeholder-lime-700\/70::placeholder{color:#4d7c0fb3}.placeholder-lime-700\/75::placeholder{color:#4d7c0fbf}.placeholder-lime-700\/80::placeholder{color:#4d7c0fcc}.placeholder-lime-700\/90::placeholder{color:#4d7c0fe6}.placeholder-lime-700\/95::placeholder{color:#4d7c0ff2}.placeholder-lime-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(63 98 18 / var(--tw-placeholder-opacity))}.placeholder-lime-800\/0::placeholder{color:#3f621200}.placeholder-lime-800\/10::placeholder{color:#3f62121a}.placeholder-lime-800\/100::placeholder{color:#3f6212}.placeholder-lime-800\/20::placeholder{color:#3f621233}.placeholder-lime-800\/25::placeholder{color:#3f621240}.placeholder-lime-800\/30::placeholder{color:#3f62124d}.placeholder-lime-800\/40::placeholder{color:#3f621266}.placeholder-lime-800\/5::placeholder{color:#3f62120d}.placeholder-lime-800\/50::placeholder{color:#3f621280}.placeholder-lime-800\/60::placeholder{color:#3f621299}.placeholder-lime-800\/70::placeholder{color:#3f6212b3}.placeholder-lime-800\/75::placeholder{color:#3f6212bf}.placeholder-lime-800\/80::placeholder{color:#3f6212cc}.placeholder-lime-800\/90::placeholder{color:#3f6212e6}.placeholder-lime-800\/95::placeholder{color:#3f6212f2}.placeholder-lime-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(54 83 20 / var(--tw-placeholder-opacity))}.placeholder-lime-900\/0::placeholder{color:#36531400}.placeholder-lime-900\/10::placeholder{color:#3653141a}.placeholder-lime-900\/100::placeholder{color:#365314}.placeholder-lime-900\/20::placeholder{color:#36531433}.placeholder-lime-900\/25::placeholder{color:#36531440}.placeholder-lime-900\/30::placeholder{color:#3653144d}.placeholder-lime-900\/40::placeholder{color:#36531466}.placeholder-lime-900\/5::placeholder{color:#3653140d}.placeholder-lime-900\/50::placeholder{color:#36531480}.placeholder-lime-900\/60::placeholder{color:#36531499}.placeholder-lime-900\/70::placeholder{color:#365314b3}.placeholder-lime-900\/75::placeholder{color:#365314bf}.placeholder-lime-900\/80::placeholder{color:#365314cc}.placeholder-lime-900\/90::placeholder{color:#365314e6}.placeholder-lime-900\/95::placeholder{color:#365314f2}.placeholder-lintgen-primary::placeholder{color:var(--lintgen-primary)}.placeholder-lintgen-secondary::placeholder{color:var(--lintgen-secondary)}.placeholder-lintgen-tertiary::placeholder{color:var(--lintgen-tertiary)}.placeholder-logement-primary::placeholder{color:var(--logement-primary)}.placeholder-logement-secondary::placeholder{color:var(--logement-secondary)}.placeholder-logement-tertiary::placeholder{color:var(--logement-tertiary)}.placeholder-main-primary::placeholder{color:var(--main-primary)}.placeholder-main-secondary::placeholder{color:var(--main-secondary)}.placeholder-main-tertiary::placeholder{color:var(--main-tertiary)}.placeholder-municipalities-primary::placeholder{color:var(--municipalities-primary)}.placeholder-municipalities-secondary::placeholder{color:var(--municipalities-secondary)}.placeholder-municipalities-tertiary::placeholder{color:var(--municipalities-tertiary)}.placeholder-neutral-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(245 245 245 / var(--tw-placeholder-opacity))}.placeholder-neutral-100\/0::placeholder{color:#f5f5f500}.placeholder-neutral-100\/10::placeholder{color:#f5f5f51a}.placeholder-neutral-100\/100::placeholder{color:#f5f5f5}.placeholder-neutral-100\/20::placeholder{color:#f5f5f533}.placeholder-neutral-100\/25::placeholder{color:#f5f5f540}.placeholder-neutral-100\/30::placeholder{color:#f5f5f54d}.placeholder-neutral-100\/40::placeholder{color:#f5f5f566}.placeholder-neutral-100\/5::placeholder{color:#f5f5f50d}.placeholder-neutral-100\/50::placeholder{color:#f5f5f580}.placeholder-neutral-100\/60::placeholder{color:#f5f5f599}.placeholder-neutral-100\/70::placeholder{color:#f5f5f5b3}.placeholder-neutral-100\/75::placeholder{color:#f5f5f5bf}.placeholder-neutral-100\/80::placeholder{color:#f5f5f5cc}.placeholder-neutral-100\/90::placeholder{color:#f5f5f5e6}.placeholder-neutral-100\/95::placeholder{color:#f5f5f5f2}.placeholder-neutral-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(229 229 229 / var(--tw-placeholder-opacity))}.placeholder-neutral-200\/0::placeholder{color:#e5e5e500}.placeholder-neutral-200\/10::placeholder{color:#e5e5e51a}.placeholder-neutral-200\/100::placeholder{color:#e5e5e5}.placeholder-neutral-200\/20::placeholder{color:#e5e5e533}.placeholder-neutral-200\/25::placeholder{color:#e5e5e540}.placeholder-neutral-200\/30::placeholder{color:#e5e5e54d}.placeholder-neutral-200\/40::placeholder{color:#e5e5e566}.placeholder-neutral-200\/5::placeholder{color:#e5e5e50d}.placeholder-neutral-200\/50::placeholder{color:#e5e5e580}.placeholder-neutral-200\/60::placeholder{color:#e5e5e599}.placeholder-neutral-200\/70::placeholder{color:#e5e5e5b3}.placeholder-neutral-200\/75::placeholder{color:#e5e5e5bf}.placeholder-neutral-200\/80::placeholder{color:#e5e5e5cc}.placeholder-neutral-200\/90::placeholder{color:#e5e5e5e6}.placeholder-neutral-200\/95::placeholder{color:#e5e5e5f2}.placeholder-neutral-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(212 212 212 / var(--tw-placeholder-opacity))}.placeholder-neutral-300\/0::placeholder{color:#d4d4d400}.placeholder-neutral-300\/10::placeholder{color:#d4d4d41a}.placeholder-neutral-300\/100::placeholder{color:#d4d4d4}.placeholder-neutral-300\/20::placeholder{color:#d4d4d433}.placeholder-neutral-300\/25::placeholder{color:#d4d4d440}.placeholder-neutral-300\/30::placeholder{color:#d4d4d44d}.placeholder-neutral-300\/40::placeholder{color:#d4d4d466}.placeholder-neutral-300\/5::placeholder{color:#d4d4d40d}.placeholder-neutral-300\/50::placeholder{color:#d4d4d480}.placeholder-neutral-300\/60::placeholder{color:#d4d4d499}.placeholder-neutral-300\/70::placeholder{color:#d4d4d4b3}.placeholder-neutral-300\/75::placeholder{color:#d4d4d4bf}.placeholder-neutral-300\/80::placeholder{color:#d4d4d4cc}.placeholder-neutral-300\/90::placeholder{color:#d4d4d4e6}.placeholder-neutral-300\/95::placeholder{color:#d4d4d4f2}.placeholder-neutral-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(163 163 163 / var(--tw-placeholder-opacity))}.placeholder-neutral-400\/0::placeholder{color:#a3a3a300}.placeholder-neutral-400\/10::placeholder{color:#a3a3a31a}.placeholder-neutral-400\/100::placeholder{color:#a3a3a3}.placeholder-neutral-400\/20::placeholder{color:#a3a3a333}.placeholder-neutral-400\/25::placeholder{color:#a3a3a340}.placeholder-neutral-400\/30::placeholder{color:#a3a3a34d}.placeholder-neutral-400\/40::placeholder{color:#a3a3a366}.placeholder-neutral-400\/5::placeholder{color:#a3a3a30d}.placeholder-neutral-400\/50::placeholder{color:#a3a3a380}.placeholder-neutral-400\/60::placeholder{color:#a3a3a399}.placeholder-neutral-400\/70::placeholder{color:#a3a3a3b3}.placeholder-neutral-400\/75::placeholder{color:#a3a3a3bf}.placeholder-neutral-400\/80::placeholder{color:#a3a3a3cc}.placeholder-neutral-400\/90::placeholder{color:#a3a3a3e6}.placeholder-neutral-400\/95::placeholder{color:#a3a3a3f2}.placeholder-neutral-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(250 250 250 / var(--tw-placeholder-opacity))}.placeholder-neutral-50\/0::placeholder{color:#fafafa00}.placeholder-neutral-50\/10::placeholder{color:#fafafa1a}.placeholder-neutral-50\/100::placeholder{color:#fafafa}.placeholder-neutral-50\/20::placeholder{color:#fafafa33}.placeholder-neutral-50\/25::placeholder{color:#fafafa40}.placeholder-neutral-50\/30::placeholder{color:#fafafa4d}.placeholder-neutral-50\/40::placeholder{color:#fafafa66}.placeholder-neutral-50\/5::placeholder{color:#fafafa0d}.placeholder-neutral-50\/50::placeholder{color:#fafafa80}.placeholder-neutral-50\/60::placeholder{color:#fafafa99}.placeholder-neutral-50\/70::placeholder{color:#fafafab3}.placeholder-neutral-50\/75::placeholder{color:#fafafabf}.placeholder-neutral-50\/80::placeholder{color:#fafafacc}.placeholder-neutral-50\/90::placeholder{color:#fafafae6}.placeholder-neutral-50\/95::placeholder{color:#fafafaf2}.placeholder-neutral-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(115 115 115 / var(--tw-placeholder-opacity))}.placeholder-neutral-500\/0::placeholder{color:#73737300}.placeholder-neutral-500\/10::placeholder{color:#7373731a}.placeholder-neutral-500\/100::placeholder{color:#737373}.placeholder-neutral-500\/20::placeholder{color:#73737333}.placeholder-neutral-500\/25::placeholder{color:#73737340}.placeholder-neutral-500\/30::placeholder{color:#7373734d}.placeholder-neutral-500\/40::placeholder{color:#73737366}.placeholder-neutral-500\/5::placeholder{color:#7373730d}.placeholder-neutral-500\/50::placeholder{color:#73737380}.placeholder-neutral-500\/60::placeholder{color:#73737399}.placeholder-neutral-500\/70::placeholder{color:#737373b3}.placeholder-neutral-500\/75::placeholder{color:#737373bf}.placeholder-neutral-500\/80::placeholder{color:#737373cc}.placeholder-neutral-500\/90::placeholder{color:#737373e6}.placeholder-neutral-500\/95::placeholder{color:#737373f2}.placeholder-neutral-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(82 82 82 / var(--tw-placeholder-opacity))}.placeholder-neutral-600\/0::placeholder{color:#52525200}.placeholder-neutral-600\/10::placeholder{color:#5252521a}.placeholder-neutral-600\/100::placeholder{color:#525252}.placeholder-neutral-600\/20::placeholder{color:#52525233}.placeholder-neutral-600\/25::placeholder{color:#52525240}.placeholder-neutral-600\/30::placeholder{color:#5252524d}.placeholder-neutral-600\/40::placeholder{color:#52525266}.placeholder-neutral-600\/5::placeholder{color:#5252520d}.placeholder-neutral-600\/50::placeholder{color:#52525280}.placeholder-neutral-600\/60::placeholder{color:#52525299}.placeholder-neutral-600\/70::placeholder{color:#525252b3}.placeholder-neutral-600\/75::placeholder{color:#525252bf}.placeholder-neutral-600\/80::placeholder{color:#525252cc}.placeholder-neutral-600\/90::placeholder{color:#525252e6}.placeholder-neutral-600\/95::placeholder{color:#525252f2}.placeholder-neutral-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(64 64 64 / var(--tw-placeholder-opacity))}.placeholder-neutral-700\/0::placeholder{color:#40404000}.placeholder-neutral-700\/10::placeholder{color:#4040401a}.placeholder-neutral-700\/100::placeholder{color:#404040}.placeholder-neutral-700\/20::placeholder{color:#40404033}.placeholder-neutral-700\/25::placeholder{color:#40404040}.placeholder-neutral-700\/30::placeholder{color:#4040404d}.placeholder-neutral-700\/40::placeholder{color:#40404066}.placeholder-neutral-700\/5::placeholder{color:#4040400d}.placeholder-neutral-700\/50::placeholder{color:#40404080}.placeholder-neutral-700\/60::placeholder{color:#40404099}.placeholder-neutral-700\/70::placeholder{color:#404040b3}.placeholder-neutral-700\/75::placeholder{color:#404040bf}.placeholder-neutral-700\/80::placeholder{color:#404040cc}.placeholder-neutral-700\/90::placeholder{color:#404040e6}.placeholder-neutral-700\/95::placeholder{color:#404040f2}.placeholder-neutral-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(38 38 38 / var(--tw-placeholder-opacity))}.placeholder-neutral-800\/0::placeholder{color:#26262600}.placeholder-neutral-800\/10::placeholder{color:#2626261a}.placeholder-neutral-800\/100::placeholder{color:#262626}.placeholder-neutral-800\/20::placeholder{color:#26262633}.placeholder-neutral-800\/25::placeholder{color:#26262640}.placeholder-neutral-800\/30::placeholder{color:#2626264d}.placeholder-neutral-800\/40::placeholder{color:#26262666}.placeholder-neutral-800\/5::placeholder{color:#2626260d}.placeholder-neutral-800\/50::placeholder{color:#26262680}.placeholder-neutral-800\/60::placeholder{color:#26262699}.placeholder-neutral-800\/70::placeholder{color:#262626b3}.placeholder-neutral-800\/75::placeholder{color:#262626bf}.placeholder-neutral-800\/80::placeholder{color:#262626cc}.placeholder-neutral-800\/90::placeholder{color:#262626e6}.placeholder-neutral-800\/95::placeholder{color:#262626f2}.placeholder-neutral-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(23 23 23 / var(--tw-placeholder-opacity))}.placeholder-neutral-900\/0::placeholder{color:#17171700}.placeholder-neutral-900\/10::placeholder{color:#1717171a}.placeholder-neutral-900\/100::placeholder{color:#171717}.placeholder-neutral-900\/20::placeholder{color:#17171733}.placeholder-neutral-900\/25::placeholder{color:#17171740}.placeholder-neutral-900\/30::placeholder{color:#1717174d}.placeholder-neutral-900\/40::placeholder{color:#17171766}.placeholder-neutral-900\/5::placeholder{color:#1717170d}.placeholder-neutral-900\/50::placeholder{color:#17171780}.placeholder-neutral-900\/60::placeholder{color:#17171799}.placeholder-neutral-900\/70::placeholder{color:#171717b3}.placeholder-neutral-900\/75::placeholder{color:#171717bf}.placeholder-neutral-900\/80::placeholder{color:#171717cc}.placeholder-neutral-900\/90::placeholder{color:#171717e6}.placeholder-neutral-900\/95::placeholder{color:#171717f2}.placeholder-np_our-primary::placeholder{color:var(--np_our-primary)}.placeholder-np_our-secondary::placeholder{color:var(--np_our-secondary)}.placeholder-np_our-tertiary::placeholder{color:var(--np_our-tertiary)}.placeholder-orange-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(255 237 213 / var(--tw-placeholder-opacity))}.placeholder-orange-100\/0::placeholder{color:#ffedd500}.placeholder-orange-100\/10::placeholder{color:#ffedd51a}.placeholder-orange-100\/100::placeholder{color:#ffedd5}.placeholder-orange-100\/20::placeholder{color:#ffedd533}.placeholder-orange-100\/25::placeholder{color:#ffedd540}.placeholder-orange-100\/30::placeholder{color:#ffedd54d}.placeholder-orange-100\/40::placeholder{color:#ffedd566}.placeholder-orange-100\/5::placeholder{color:#ffedd50d}.placeholder-orange-100\/50::placeholder{color:#ffedd580}.placeholder-orange-100\/60::placeholder{color:#ffedd599}.placeholder-orange-100\/70::placeholder{color:#ffedd5b3}.placeholder-orange-100\/75::placeholder{color:#ffedd5bf}.placeholder-orange-100\/80::placeholder{color:#ffedd5cc}.placeholder-orange-100\/90::placeholder{color:#ffedd5e6}.placeholder-orange-100\/95::placeholder{color:#ffedd5f2}.placeholder-orange-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(254 215 170 / var(--tw-placeholder-opacity))}.placeholder-orange-200\/0::placeholder{color:#fed7aa00}.placeholder-orange-200\/10::placeholder{color:#fed7aa1a}.placeholder-orange-200\/100::placeholder{color:#fed7aa}.placeholder-orange-200\/20::placeholder{color:#fed7aa33}.placeholder-orange-200\/25::placeholder{color:#fed7aa40}.placeholder-orange-200\/30::placeholder{color:#fed7aa4d}.placeholder-orange-200\/40::placeholder{color:#fed7aa66}.placeholder-orange-200\/5::placeholder{color:#fed7aa0d}.placeholder-orange-200\/50::placeholder{color:#fed7aa80}.placeholder-orange-200\/60::placeholder{color:#fed7aa99}.placeholder-orange-200\/70::placeholder{color:#fed7aab3}.placeholder-orange-200\/75::placeholder{color:#fed7aabf}.placeholder-orange-200\/80::placeholder{color:#fed7aacc}.placeholder-orange-200\/90::placeholder{color:#fed7aae6}.placeholder-orange-200\/95::placeholder{color:#fed7aaf2}.placeholder-orange-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(253 186 116 / var(--tw-placeholder-opacity))}.placeholder-orange-300\/0::placeholder{color:#fdba7400}.placeholder-orange-300\/10::placeholder{color:#fdba741a}.placeholder-orange-300\/100::placeholder{color:#fdba74}.placeholder-orange-300\/20::placeholder{color:#fdba7433}.placeholder-orange-300\/25::placeholder{color:#fdba7440}.placeholder-orange-300\/30::placeholder{color:#fdba744d}.placeholder-orange-300\/40::placeholder{color:#fdba7466}.placeholder-orange-300\/5::placeholder{color:#fdba740d}.placeholder-orange-300\/50::placeholder{color:#fdba7480}.placeholder-orange-300\/60::placeholder{color:#fdba7499}.placeholder-orange-300\/70::placeholder{color:#fdba74b3}.placeholder-orange-300\/75::placeholder{color:#fdba74bf}.placeholder-orange-300\/80::placeholder{color:#fdba74cc}.placeholder-orange-300\/90::placeholder{color:#fdba74e6}.placeholder-orange-300\/95::placeholder{color:#fdba74f2}.placeholder-orange-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(251 146 60 / var(--tw-placeholder-opacity))}.placeholder-orange-400\/0::placeholder{color:#fb923c00}.placeholder-orange-400\/10::placeholder{color:#fb923c1a}.placeholder-orange-400\/100::placeholder{color:#fb923c}.placeholder-orange-400\/20::placeholder{color:#fb923c33}.placeholder-orange-400\/25::placeholder{color:#fb923c40}.placeholder-orange-400\/30::placeholder{color:#fb923c4d}.placeholder-orange-400\/40::placeholder{color:#fb923c66}.placeholder-orange-400\/5::placeholder{color:#fb923c0d}.placeholder-orange-400\/50::placeholder{color:#fb923c80}.placeholder-orange-400\/60::placeholder{color:#fb923c99}.placeholder-orange-400\/70::placeholder{color:#fb923cb3}.placeholder-orange-400\/75::placeholder{color:#fb923cbf}.placeholder-orange-400\/80::placeholder{color:#fb923ccc}.placeholder-orange-400\/90::placeholder{color:#fb923ce6}.placeholder-orange-400\/95::placeholder{color:#fb923cf2}.placeholder-orange-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(255 247 237 / var(--tw-placeholder-opacity))}.placeholder-orange-50\/0::placeholder{color:#fff7ed00}.placeholder-orange-50\/10::placeholder{color:#fff7ed1a}.placeholder-orange-50\/100::placeholder{color:#fff7ed}.placeholder-orange-50\/20::placeholder{color:#fff7ed33}.placeholder-orange-50\/25::placeholder{color:#fff7ed40}.placeholder-orange-50\/30::placeholder{color:#fff7ed4d}.placeholder-orange-50\/40::placeholder{color:#fff7ed66}.placeholder-orange-50\/5::placeholder{color:#fff7ed0d}.placeholder-orange-50\/50::placeholder{color:#fff7ed80}.placeholder-orange-50\/60::placeholder{color:#fff7ed99}.placeholder-orange-50\/70::placeholder{color:#fff7edb3}.placeholder-orange-50\/75::placeholder{color:#fff7edbf}.placeholder-orange-50\/80::placeholder{color:#fff7edcc}.placeholder-orange-50\/90::placeholder{color:#fff7ede6}.placeholder-orange-50\/95::placeholder{color:#fff7edf2}.placeholder-orange-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(249 115 22 / var(--tw-placeholder-opacity))}.placeholder-orange-500\/0::placeholder{color:#f9731600}.placeholder-orange-500\/10::placeholder{color:#f973161a}.placeholder-orange-500\/100::placeholder{color:#f97316}.placeholder-orange-500\/20::placeholder{color:#f9731633}.placeholder-orange-500\/25::placeholder{color:#f9731640}.placeholder-orange-500\/30::placeholder{color:#f973164d}.placeholder-orange-500\/40::placeholder{color:#f9731666}.placeholder-orange-500\/5::placeholder{color:#f973160d}.placeholder-orange-500\/50::placeholder{color:#f9731680}.placeholder-orange-500\/60::placeholder{color:#f9731699}.placeholder-orange-500\/70::placeholder{color:#f97316b3}.placeholder-orange-500\/75::placeholder{color:#f97316bf}.placeholder-orange-500\/80::placeholder{color:#f97316cc}.placeholder-orange-500\/90::placeholder{color:#f97316e6}.placeholder-orange-500\/95::placeholder{color:#f97316f2}.placeholder-orange-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(234 88 12 / var(--tw-placeholder-opacity))}.placeholder-orange-600\/0::placeholder{color:#ea580c00}.placeholder-orange-600\/10::placeholder{color:#ea580c1a}.placeholder-orange-600\/100::placeholder{color:#ea580c}.placeholder-orange-600\/20::placeholder{color:#ea580c33}.placeholder-orange-600\/25::placeholder{color:#ea580c40}.placeholder-orange-600\/30::placeholder{color:#ea580c4d}.placeholder-orange-600\/40::placeholder{color:#ea580c66}.placeholder-orange-600\/5::placeholder{color:#ea580c0d}.placeholder-orange-600\/50::placeholder{color:#ea580c80}.placeholder-orange-600\/60::placeholder{color:#ea580c99}.placeholder-orange-600\/70::placeholder{color:#ea580cb3}.placeholder-orange-600\/75::placeholder{color:#ea580cbf}.placeholder-orange-600\/80::placeholder{color:#ea580ccc}.placeholder-orange-600\/90::placeholder{color:#ea580ce6}.placeholder-orange-600\/95::placeholder{color:#ea580cf2}.placeholder-orange-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(194 65 12 / var(--tw-placeholder-opacity))}.placeholder-orange-700\/0::placeholder{color:#c2410c00}.placeholder-orange-700\/10::placeholder{color:#c2410c1a}.placeholder-orange-700\/100::placeholder{color:#c2410c}.placeholder-orange-700\/20::placeholder{color:#c2410c33}.placeholder-orange-700\/25::placeholder{color:#c2410c40}.placeholder-orange-700\/30::placeholder{color:#c2410c4d}.placeholder-orange-700\/40::placeholder{color:#c2410c66}.placeholder-orange-700\/5::placeholder{color:#c2410c0d}.placeholder-orange-700\/50::placeholder{color:#c2410c80}.placeholder-orange-700\/60::placeholder{color:#c2410c99}.placeholder-orange-700\/70::placeholder{color:#c2410cb3}.placeholder-orange-700\/75::placeholder{color:#c2410cbf}.placeholder-orange-700\/80::placeholder{color:#c2410ccc}.placeholder-orange-700\/90::placeholder{color:#c2410ce6}.placeholder-orange-700\/95::placeholder{color:#c2410cf2}.placeholder-orange-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(154 52 18 / var(--tw-placeholder-opacity))}.placeholder-orange-800\/0::placeholder{color:#9a341200}.placeholder-orange-800\/10::placeholder{color:#9a34121a}.placeholder-orange-800\/100::placeholder{color:#9a3412}.placeholder-orange-800\/20::placeholder{color:#9a341233}.placeholder-orange-800\/25::placeholder{color:#9a341240}.placeholder-orange-800\/30::placeholder{color:#9a34124d}.placeholder-orange-800\/40::placeholder{color:#9a341266}.placeholder-orange-800\/5::placeholder{color:#9a34120d}.placeholder-orange-800\/50::placeholder{color:#9a341280}.placeholder-orange-800\/60::placeholder{color:#9a341299}.placeholder-orange-800\/70::placeholder{color:#9a3412b3}.placeholder-orange-800\/75::placeholder{color:#9a3412bf}.placeholder-orange-800\/80::placeholder{color:#9a3412cc}.placeholder-orange-800\/90::placeholder{color:#9a3412e6}.placeholder-orange-800\/95::placeholder{color:#9a3412f2}.placeholder-orange-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(124 45 18 / var(--tw-placeholder-opacity))}.placeholder-orange-900\/0::placeholder{color:#7c2d1200}.placeholder-orange-900\/10::placeholder{color:#7c2d121a}.placeholder-orange-900\/100::placeholder{color:#7c2d12}.placeholder-orange-900\/20::placeholder{color:#7c2d1233}.placeholder-orange-900\/25::placeholder{color:#7c2d1240}.placeholder-orange-900\/30::placeholder{color:#7c2d124d}.placeholder-orange-900\/40::placeholder{color:#7c2d1266}.placeholder-orange-900\/5::placeholder{color:#7c2d120d}.placeholder-orange-900\/50::placeholder{color:#7c2d1280}.placeholder-orange-900\/60::placeholder{color:#7c2d1299}.placeholder-orange-900\/70::placeholder{color:#7c2d12b3}.placeholder-orange-900\/75::placeholder{color:#7c2d12bf}.placeholder-orange-900\/80::placeholder{color:#7c2d12cc}.placeholder-orange-900\/90::placeholder{color:#7c2d12e6}.placeholder-orange-900\/95::placeholder{color:#7c2d12f2}.placeholder-pag-primary::placeholder{color:var(--pag-primary)}.placeholder-pag-secondary::placeholder{color:var(--pag-secondary)}.placeholder-pag-tertiary::placeholder{color:var(--pag-tertiary)}.placeholder-pink-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(252 231 243 / var(--tw-placeholder-opacity))}.placeholder-pink-100\/0::placeholder{color:#fce7f300}.placeholder-pink-100\/10::placeholder{color:#fce7f31a}.placeholder-pink-100\/100::placeholder{color:#fce7f3}.placeholder-pink-100\/20::placeholder{color:#fce7f333}.placeholder-pink-100\/25::placeholder{color:#fce7f340}.placeholder-pink-100\/30::placeholder{color:#fce7f34d}.placeholder-pink-100\/40::placeholder{color:#fce7f366}.placeholder-pink-100\/5::placeholder{color:#fce7f30d}.placeholder-pink-100\/50::placeholder{color:#fce7f380}.placeholder-pink-100\/60::placeholder{color:#fce7f399}.placeholder-pink-100\/70::placeholder{color:#fce7f3b3}.placeholder-pink-100\/75::placeholder{color:#fce7f3bf}.placeholder-pink-100\/80::placeholder{color:#fce7f3cc}.placeholder-pink-100\/90::placeholder{color:#fce7f3e6}.placeholder-pink-100\/95::placeholder{color:#fce7f3f2}.placeholder-pink-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(251 207 232 / var(--tw-placeholder-opacity))}.placeholder-pink-200\/0::placeholder{color:#fbcfe800}.placeholder-pink-200\/10::placeholder{color:#fbcfe81a}.placeholder-pink-200\/100::placeholder{color:#fbcfe8}.placeholder-pink-200\/20::placeholder{color:#fbcfe833}.placeholder-pink-200\/25::placeholder{color:#fbcfe840}.placeholder-pink-200\/30::placeholder{color:#fbcfe84d}.placeholder-pink-200\/40::placeholder{color:#fbcfe866}.placeholder-pink-200\/5::placeholder{color:#fbcfe80d}.placeholder-pink-200\/50::placeholder{color:#fbcfe880}.placeholder-pink-200\/60::placeholder{color:#fbcfe899}.placeholder-pink-200\/70::placeholder{color:#fbcfe8b3}.placeholder-pink-200\/75::placeholder{color:#fbcfe8bf}.placeholder-pink-200\/80::placeholder{color:#fbcfe8cc}.placeholder-pink-200\/90::placeholder{color:#fbcfe8e6}.placeholder-pink-200\/95::placeholder{color:#fbcfe8f2}.placeholder-pink-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(249 168 212 / var(--tw-placeholder-opacity))}.placeholder-pink-300\/0::placeholder{color:#f9a8d400}.placeholder-pink-300\/10::placeholder{color:#f9a8d41a}.placeholder-pink-300\/100::placeholder{color:#f9a8d4}.placeholder-pink-300\/20::placeholder{color:#f9a8d433}.placeholder-pink-300\/25::placeholder{color:#f9a8d440}.placeholder-pink-300\/30::placeholder{color:#f9a8d44d}.placeholder-pink-300\/40::placeholder{color:#f9a8d466}.placeholder-pink-300\/5::placeholder{color:#f9a8d40d}.placeholder-pink-300\/50::placeholder{color:#f9a8d480}.placeholder-pink-300\/60::placeholder{color:#f9a8d499}.placeholder-pink-300\/70::placeholder{color:#f9a8d4b3}.placeholder-pink-300\/75::placeholder{color:#f9a8d4bf}.placeholder-pink-300\/80::placeholder{color:#f9a8d4cc}.placeholder-pink-300\/90::placeholder{color:#f9a8d4e6}.placeholder-pink-300\/95::placeholder{color:#f9a8d4f2}.placeholder-pink-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(244 114 182 / var(--tw-placeholder-opacity))}.placeholder-pink-400\/0::placeholder{color:#f472b600}.placeholder-pink-400\/10::placeholder{color:#f472b61a}.placeholder-pink-400\/100::placeholder{color:#f472b6}.placeholder-pink-400\/20::placeholder{color:#f472b633}.placeholder-pink-400\/25::placeholder{color:#f472b640}.placeholder-pink-400\/30::placeholder{color:#f472b64d}.placeholder-pink-400\/40::placeholder{color:#f472b666}.placeholder-pink-400\/5::placeholder{color:#f472b60d}.placeholder-pink-400\/50::placeholder{color:#f472b680}.placeholder-pink-400\/60::placeholder{color:#f472b699}.placeholder-pink-400\/70::placeholder{color:#f472b6b3}.placeholder-pink-400\/75::placeholder{color:#f472b6bf}.placeholder-pink-400\/80::placeholder{color:#f472b6cc}.placeholder-pink-400\/90::placeholder{color:#f472b6e6}.placeholder-pink-400\/95::placeholder{color:#f472b6f2}.placeholder-pink-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(253 242 248 / var(--tw-placeholder-opacity))}.placeholder-pink-50\/0::placeholder{color:#fdf2f800}.placeholder-pink-50\/10::placeholder{color:#fdf2f81a}.placeholder-pink-50\/100::placeholder{color:#fdf2f8}.placeholder-pink-50\/20::placeholder{color:#fdf2f833}.placeholder-pink-50\/25::placeholder{color:#fdf2f840}.placeholder-pink-50\/30::placeholder{color:#fdf2f84d}.placeholder-pink-50\/40::placeholder{color:#fdf2f866}.placeholder-pink-50\/5::placeholder{color:#fdf2f80d}.placeholder-pink-50\/50::placeholder{color:#fdf2f880}.placeholder-pink-50\/60::placeholder{color:#fdf2f899}.placeholder-pink-50\/70::placeholder{color:#fdf2f8b3}.placeholder-pink-50\/75::placeholder{color:#fdf2f8bf}.placeholder-pink-50\/80::placeholder{color:#fdf2f8cc}.placeholder-pink-50\/90::placeholder{color:#fdf2f8e6}.placeholder-pink-50\/95::placeholder{color:#fdf2f8f2}.placeholder-pink-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(236 72 153 / var(--tw-placeholder-opacity))}.placeholder-pink-500\/0::placeholder{color:#ec489900}.placeholder-pink-500\/10::placeholder{color:#ec48991a}.placeholder-pink-500\/100::placeholder{color:#ec4899}.placeholder-pink-500\/20::placeholder{color:#ec489933}.placeholder-pink-500\/25::placeholder{color:#ec489940}.placeholder-pink-500\/30::placeholder{color:#ec48994d}.placeholder-pink-500\/40::placeholder{color:#ec489966}.placeholder-pink-500\/5::placeholder{color:#ec48990d}.placeholder-pink-500\/50::placeholder{color:#ec489980}.placeholder-pink-500\/60::placeholder{color:#ec489999}.placeholder-pink-500\/70::placeholder{color:#ec4899b3}.placeholder-pink-500\/75::placeholder{color:#ec4899bf}.placeholder-pink-500\/80::placeholder{color:#ec4899cc}.placeholder-pink-500\/90::placeholder{color:#ec4899e6}.placeholder-pink-500\/95::placeholder{color:#ec4899f2}.placeholder-pink-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(219 39 119 / var(--tw-placeholder-opacity))}.placeholder-pink-600\/0::placeholder{color:#db277700}.placeholder-pink-600\/10::placeholder{color:#db27771a}.placeholder-pink-600\/100::placeholder{color:#db2777}.placeholder-pink-600\/20::placeholder{color:#db277733}.placeholder-pink-600\/25::placeholder{color:#db277740}.placeholder-pink-600\/30::placeholder{color:#db27774d}.placeholder-pink-600\/40::placeholder{color:#db277766}.placeholder-pink-600\/5::placeholder{color:#db27770d}.placeholder-pink-600\/50::placeholder{color:#db277780}.placeholder-pink-600\/60::placeholder{color:#db277799}.placeholder-pink-600\/70::placeholder{color:#db2777b3}.placeholder-pink-600\/75::placeholder{color:#db2777bf}.placeholder-pink-600\/80::placeholder{color:#db2777cc}.placeholder-pink-600\/90::placeholder{color:#db2777e6}.placeholder-pink-600\/95::placeholder{color:#db2777f2}.placeholder-pink-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(190 24 93 / var(--tw-placeholder-opacity))}.placeholder-pink-700\/0::placeholder{color:#be185d00}.placeholder-pink-700\/10::placeholder{color:#be185d1a}.placeholder-pink-700\/100::placeholder{color:#be185d}.placeholder-pink-700\/20::placeholder{color:#be185d33}.placeholder-pink-700\/25::placeholder{color:#be185d40}.placeholder-pink-700\/30::placeholder{color:#be185d4d}.placeholder-pink-700\/40::placeholder{color:#be185d66}.placeholder-pink-700\/5::placeholder{color:#be185d0d}.placeholder-pink-700\/50::placeholder{color:#be185d80}.placeholder-pink-700\/60::placeholder{color:#be185d99}.placeholder-pink-700\/70::placeholder{color:#be185db3}.placeholder-pink-700\/75::placeholder{color:#be185dbf}.placeholder-pink-700\/80::placeholder{color:#be185dcc}.placeholder-pink-700\/90::placeholder{color:#be185de6}.placeholder-pink-700\/95::placeholder{color:#be185df2}.placeholder-pink-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(157 23 77 / var(--tw-placeholder-opacity))}.placeholder-pink-800\/0::placeholder{color:#9d174d00}.placeholder-pink-800\/10::placeholder{color:#9d174d1a}.placeholder-pink-800\/100::placeholder{color:#9d174d}.placeholder-pink-800\/20::placeholder{color:#9d174d33}.placeholder-pink-800\/25::placeholder{color:#9d174d40}.placeholder-pink-800\/30::placeholder{color:#9d174d4d}.placeholder-pink-800\/40::placeholder{color:#9d174d66}.placeholder-pink-800\/5::placeholder{color:#9d174d0d}.placeholder-pink-800\/50::placeholder{color:#9d174d80}.placeholder-pink-800\/60::placeholder{color:#9d174d99}.placeholder-pink-800\/70::placeholder{color:#9d174db3}.placeholder-pink-800\/75::placeholder{color:#9d174dbf}.placeholder-pink-800\/80::placeholder{color:#9d174dcc}.placeholder-pink-800\/90::placeholder{color:#9d174de6}.placeholder-pink-800\/95::placeholder{color:#9d174df2}.placeholder-pink-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(131 24 67 / var(--tw-placeholder-opacity))}.placeholder-pink-900\/0::placeholder{color:#83184300}.placeholder-pink-900\/10::placeholder{color:#8318431a}.placeholder-pink-900\/100::placeholder{color:#831843}.placeholder-pink-900\/20::placeholder{color:#83184333}.placeholder-pink-900\/25::placeholder{color:#83184340}.placeholder-pink-900\/30::placeholder{color:#8318434d}.placeholder-pink-900\/40::placeholder{color:#83184366}.placeholder-pink-900\/5::placeholder{color:#8318430d}.placeholder-pink-900\/50::placeholder{color:#83184380}.placeholder-pink-900\/60::placeholder{color:#83184399}.placeholder-pink-900\/70::placeholder{color:#831843b3}.placeholder-pink-900\/75::placeholder{color:#831843bf}.placeholder-pink-900\/80::placeholder{color:#831843cc}.placeholder-pink-900\/90::placeholder{color:#831843e6}.placeholder-pink-900\/95::placeholder{color:#831843f2}.placeholder-preizerdaul-primary::placeholder{color:var(--preizerdaul-primary)}.placeholder-preizerdaul-secondary::placeholder{color:var(--preizerdaul-secondary)}.placeholder-preizerdaul-tertiary::placeholder{color:var(--preizerdaul-tertiary)}.placeholder-primary::placeholder{color:var(--color-primary)}.placeholder-prof-primary::placeholder{color:var(--prof-primary)}.placeholder-prof-secondary::placeholder{color:var(--prof-secondary)}.placeholder-prof-tertiary::placeholder{color:var(--prof-tertiary)}.placeholder-purple-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(243 232 255 / var(--tw-placeholder-opacity))}.placeholder-purple-100\/0::placeholder{color:#f3e8ff00}.placeholder-purple-100\/10::placeholder{color:#f3e8ff1a}.placeholder-purple-100\/100::placeholder{color:#f3e8ff}.placeholder-purple-100\/20::placeholder{color:#f3e8ff33}.placeholder-purple-100\/25::placeholder{color:#f3e8ff40}.placeholder-purple-100\/30::placeholder{color:#f3e8ff4d}.placeholder-purple-100\/40::placeholder{color:#f3e8ff66}.placeholder-purple-100\/5::placeholder{color:#f3e8ff0d}.placeholder-purple-100\/50::placeholder{color:#f3e8ff80}.placeholder-purple-100\/60::placeholder{color:#f3e8ff99}.placeholder-purple-100\/70::placeholder{color:#f3e8ffb3}.placeholder-purple-100\/75::placeholder{color:#f3e8ffbf}.placeholder-purple-100\/80::placeholder{color:#f3e8ffcc}.placeholder-purple-100\/90::placeholder{color:#f3e8ffe6}.placeholder-purple-100\/95::placeholder{color:#f3e8fff2}.placeholder-purple-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(233 213 255 / var(--tw-placeholder-opacity))}.placeholder-purple-200\/0::placeholder{color:#e9d5ff00}.placeholder-purple-200\/10::placeholder{color:#e9d5ff1a}.placeholder-purple-200\/100::placeholder{color:#e9d5ff}.placeholder-purple-200\/20::placeholder{color:#e9d5ff33}.placeholder-purple-200\/25::placeholder{color:#e9d5ff40}.placeholder-purple-200\/30::placeholder{color:#e9d5ff4d}.placeholder-purple-200\/40::placeholder{color:#e9d5ff66}.placeholder-purple-200\/5::placeholder{color:#e9d5ff0d}.placeholder-purple-200\/50::placeholder{color:#e9d5ff80}.placeholder-purple-200\/60::placeholder{color:#e9d5ff99}.placeholder-purple-200\/70::placeholder{color:#e9d5ffb3}.placeholder-purple-200\/75::placeholder{color:#e9d5ffbf}.placeholder-purple-200\/80::placeholder{color:#e9d5ffcc}.placeholder-purple-200\/90::placeholder{color:#e9d5ffe6}.placeholder-purple-200\/95::placeholder{color:#e9d5fff2}.placeholder-purple-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(216 180 254 / var(--tw-placeholder-opacity))}.placeholder-purple-300\/0::placeholder{color:#d8b4fe00}.placeholder-purple-300\/10::placeholder{color:#d8b4fe1a}.placeholder-purple-300\/100::placeholder{color:#d8b4fe}.placeholder-purple-300\/20::placeholder{color:#d8b4fe33}.placeholder-purple-300\/25::placeholder{color:#d8b4fe40}.placeholder-purple-300\/30::placeholder{color:#d8b4fe4d}.placeholder-purple-300\/40::placeholder{color:#d8b4fe66}.placeholder-purple-300\/5::placeholder{color:#d8b4fe0d}.placeholder-purple-300\/50::placeholder{color:#d8b4fe80}.placeholder-purple-300\/60::placeholder{color:#d8b4fe99}.placeholder-purple-300\/70::placeholder{color:#d8b4feb3}.placeholder-purple-300\/75::placeholder{color:#d8b4febf}.placeholder-purple-300\/80::placeholder{color:#d8b4fecc}.placeholder-purple-300\/90::placeholder{color:#d8b4fee6}.placeholder-purple-300\/95::placeholder{color:#d8b4fef2}.placeholder-purple-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(192 132 252 / var(--tw-placeholder-opacity))}.placeholder-purple-400\/0::placeholder{color:#c084fc00}.placeholder-purple-400\/10::placeholder{color:#c084fc1a}.placeholder-purple-400\/100::placeholder{color:#c084fc}.placeholder-purple-400\/20::placeholder{color:#c084fc33}.placeholder-purple-400\/25::placeholder{color:#c084fc40}.placeholder-purple-400\/30::placeholder{color:#c084fc4d}.placeholder-purple-400\/40::placeholder{color:#c084fc66}.placeholder-purple-400\/5::placeholder{color:#c084fc0d}.placeholder-purple-400\/50::placeholder{color:#c084fc80}.placeholder-purple-400\/60::placeholder{color:#c084fc99}.placeholder-purple-400\/70::placeholder{color:#c084fcb3}.placeholder-purple-400\/75::placeholder{color:#c084fcbf}.placeholder-purple-400\/80::placeholder{color:#c084fccc}.placeholder-purple-400\/90::placeholder{color:#c084fce6}.placeholder-purple-400\/95::placeholder{color:#c084fcf2}.placeholder-purple-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(250 245 255 / var(--tw-placeholder-opacity))}.placeholder-purple-50\/0::placeholder{color:#faf5ff00}.placeholder-purple-50\/10::placeholder{color:#faf5ff1a}.placeholder-purple-50\/100::placeholder{color:#faf5ff}.placeholder-purple-50\/20::placeholder{color:#faf5ff33}.placeholder-purple-50\/25::placeholder{color:#faf5ff40}.placeholder-purple-50\/30::placeholder{color:#faf5ff4d}.placeholder-purple-50\/40::placeholder{color:#faf5ff66}.placeholder-purple-50\/5::placeholder{color:#faf5ff0d}.placeholder-purple-50\/50::placeholder{color:#faf5ff80}.placeholder-purple-50\/60::placeholder{color:#faf5ff99}.placeholder-purple-50\/70::placeholder{color:#faf5ffb3}.placeholder-purple-50\/75::placeholder{color:#faf5ffbf}.placeholder-purple-50\/80::placeholder{color:#faf5ffcc}.placeholder-purple-50\/90::placeholder{color:#faf5ffe6}.placeholder-purple-50\/95::placeholder{color:#faf5fff2}.placeholder-purple-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(168 85 247 / var(--tw-placeholder-opacity))}.placeholder-purple-500\/0::placeholder{color:#a855f700}.placeholder-purple-500\/10::placeholder{color:#a855f71a}.placeholder-purple-500\/100::placeholder{color:#a855f7}.placeholder-purple-500\/20::placeholder{color:#a855f733}.placeholder-purple-500\/25::placeholder{color:#a855f740}.placeholder-purple-500\/30::placeholder{color:#a855f74d}.placeholder-purple-500\/40::placeholder{color:#a855f766}.placeholder-purple-500\/5::placeholder{color:#a855f70d}.placeholder-purple-500\/50::placeholder{color:#a855f780}.placeholder-purple-500\/60::placeholder{color:#a855f799}.placeholder-purple-500\/70::placeholder{color:#a855f7b3}.placeholder-purple-500\/75::placeholder{color:#a855f7bf}.placeholder-purple-500\/80::placeholder{color:#a855f7cc}.placeholder-purple-500\/90::placeholder{color:#a855f7e6}.placeholder-purple-500\/95::placeholder{color:#a855f7f2}.placeholder-purple-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(147 51 234 / var(--tw-placeholder-opacity))}.placeholder-purple-600\/0::placeholder{color:#9333ea00}.placeholder-purple-600\/10::placeholder{color:#9333ea1a}.placeholder-purple-600\/100::placeholder{color:#9333ea}.placeholder-purple-600\/20::placeholder{color:#9333ea33}.placeholder-purple-600\/25::placeholder{color:#9333ea40}.placeholder-purple-600\/30::placeholder{color:#9333ea4d}.placeholder-purple-600\/40::placeholder{color:#9333ea66}.placeholder-purple-600\/5::placeholder{color:#9333ea0d}.placeholder-purple-600\/50::placeholder{color:#9333ea80}.placeholder-purple-600\/60::placeholder{color:#9333ea99}.placeholder-purple-600\/70::placeholder{color:#9333eab3}.placeholder-purple-600\/75::placeholder{color:#9333eabf}.placeholder-purple-600\/80::placeholder{color:#9333eacc}.placeholder-purple-600\/90::placeholder{color:#9333eae6}.placeholder-purple-600\/95::placeholder{color:#9333eaf2}.placeholder-purple-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(126 34 206 / var(--tw-placeholder-opacity))}.placeholder-purple-700\/0::placeholder{color:#7e22ce00}.placeholder-purple-700\/10::placeholder{color:#7e22ce1a}.placeholder-purple-700\/100::placeholder{color:#7e22ce}.placeholder-purple-700\/20::placeholder{color:#7e22ce33}.placeholder-purple-700\/25::placeholder{color:#7e22ce40}.placeholder-purple-700\/30::placeholder{color:#7e22ce4d}.placeholder-purple-700\/40::placeholder{color:#7e22ce66}.placeholder-purple-700\/5::placeholder{color:#7e22ce0d}.placeholder-purple-700\/50::placeholder{color:#7e22ce80}.placeholder-purple-700\/60::placeholder{color:#7e22ce99}.placeholder-purple-700\/70::placeholder{color:#7e22ceb3}.placeholder-purple-700\/75::placeholder{color:#7e22cebf}.placeholder-purple-700\/80::placeholder{color:#7e22cecc}.placeholder-purple-700\/90::placeholder{color:#7e22cee6}.placeholder-purple-700\/95::placeholder{color:#7e22cef2}.placeholder-purple-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(107 33 168 / var(--tw-placeholder-opacity))}.placeholder-purple-800\/0::placeholder{color:#6b21a800}.placeholder-purple-800\/10::placeholder{color:#6b21a81a}.placeholder-purple-800\/100::placeholder{color:#6b21a8}.placeholder-purple-800\/20::placeholder{color:#6b21a833}.placeholder-purple-800\/25::placeholder{color:#6b21a840}.placeholder-purple-800\/30::placeholder{color:#6b21a84d}.placeholder-purple-800\/40::placeholder{color:#6b21a866}.placeholder-purple-800\/5::placeholder{color:#6b21a80d}.placeholder-purple-800\/50::placeholder{color:#6b21a880}.placeholder-purple-800\/60::placeholder{color:#6b21a899}.placeholder-purple-800\/70::placeholder{color:#6b21a8b3}.placeholder-purple-800\/75::placeholder{color:#6b21a8bf}.placeholder-purple-800\/80::placeholder{color:#6b21a8cc}.placeholder-purple-800\/90::placeholder{color:#6b21a8e6}.placeholder-purple-800\/95::placeholder{color:#6b21a8f2}.placeholder-purple-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(88 28 135 / var(--tw-placeholder-opacity))}.placeholder-purple-900\/0::placeholder{color:#581c8700}.placeholder-purple-900\/10::placeholder{color:#581c871a}.placeholder-purple-900\/100::placeholder{color:#581c87}.placeholder-purple-900\/20::placeholder{color:#581c8733}.placeholder-purple-900\/25::placeholder{color:#581c8740}.placeholder-purple-900\/30::placeholder{color:#581c874d}.placeholder-purple-900\/40::placeholder{color:#581c8766}.placeholder-purple-900\/5::placeholder{color:#581c870d}.placeholder-purple-900\/50::placeholder{color:#581c8780}.placeholder-purple-900\/60::placeholder{color:#581c8799}.placeholder-purple-900\/70::placeholder{color:#581c87b3}.placeholder-purple-900\/75::placeholder{color:#581c87bf}.placeholder-purple-900\/80::placeholder{color:#581c87cc}.placeholder-purple-900\/90::placeholder{color:#581c87e6}.placeholder-purple-900\/95::placeholder{color:#581c87f2}.placeholder-red-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(254 226 226 / var(--tw-placeholder-opacity))}.placeholder-red-100\/0::placeholder{color:#fee2e200}.placeholder-red-100\/10::placeholder{color:#fee2e21a}.placeholder-red-100\/100::placeholder{color:#fee2e2}.placeholder-red-100\/20::placeholder{color:#fee2e233}.placeholder-red-100\/25::placeholder{color:#fee2e240}.placeholder-red-100\/30::placeholder{color:#fee2e24d}.placeholder-red-100\/40::placeholder{color:#fee2e266}.placeholder-red-100\/5::placeholder{color:#fee2e20d}.placeholder-red-100\/50::placeholder{color:#fee2e280}.placeholder-red-100\/60::placeholder{color:#fee2e299}.placeholder-red-100\/70::placeholder{color:#fee2e2b3}.placeholder-red-100\/75::placeholder{color:#fee2e2bf}.placeholder-red-100\/80::placeholder{color:#fee2e2cc}.placeholder-red-100\/90::placeholder{color:#fee2e2e6}.placeholder-red-100\/95::placeholder{color:#fee2e2f2}.placeholder-red-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(254 202 202 / var(--tw-placeholder-opacity))}.placeholder-red-200\/0::placeholder{color:#fecaca00}.placeholder-red-200\/10::placeholder{color:#fecaca1a}.placeholder-red-200\/100::placeholder{color:#fecaca}.placeholder-red-200\/20::placeholder{color:#fecaca33}.placeholder-red-200\/25::placeholder{color:#fecaca40}.placeholder-red-200\/30::placeholder{color:#fecaca4d}.placeholder-red-200\/40::placeholder{color:#fecaca66}.placeholder-red-200\/5::placeholder{color:#fecaca0d}.placeholder-red-200\/50::placeholder{color:#fecaca80}.placeholder-red-200\/60::placeholder{color:#fecaca99}.placeholder-red-200\/70::placeholder{color:#fecacab3}.placeholder-red-200\/75::placeholder{color:#fecacabf}.placeholder-red-200\/80::placeholder{color:#fecacacc}.placeholder-red-200\/90::placeholder{color:#fecacae6}.placeholder-red-200\/95::placeholder{color:#fecacaf2}.placeholder-red-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(252 165 165 / var(--tw-placeholder-opacity))}.placeholder-red-300\/0::placeholder{color:#fca5a500}.placeholder-red-300\/10::placeholder{color:#fca5a51a}.placeholder-red-300\/100::placeholder{color:#fca5a5}.placeholder-red-300\/20::placeholder{color:#fca5a533}.placeholder-red-300\/25::placeholder{color:#fca5a540}.placeholder-red-300\/30::placeholder{color:#fca5a54d}.placeholder-red-300\/40::placeholder{color:#fca5a566}.placeholder-red-300\/5::placeholder{color:#fca5a50d}.placeholder-red-300\/50::placeholder{color:#fca5a580}.placeholder-red-300\/60::placeholder{color:#fca5a599}.placeholder-red-300\/70::placeholder{color:#fca5a5b3}.placeholder-red-300\/75::placeholder{color:#fca5a5bf}.placeholder-red-300\/80::placeholder{color:#fca5a5cc}.placeholder-red-300\/90::placeholder{color:#fca5a5e6}.placeholder-red-300\/95::placeholder{color:#fca5a5f2}.placeholder-red-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(248 113 113 / var(--tw-placeholder-opacity))}.placeholder-red-400\/0::placeholder{color:#f8717100}.placeholder-red-400\/10::placeholder{color:#f871711a}.placeholder-red-400\/100::placeholder{color:#f87171}.placeholder-red-400\/20::placeholder{color:#f8717133}.placeholder-red-400\/25::placeholder{color:#f8717140}.placeholder-red-400\/30::placeholder{color:#f871714d}.placeholder-red-400\/40::placeholder{color:#f8717166}.placeholder-red-400\/5::placeholder{color:#f871710d}.placeholder-red-400\/50::placeholder{color:#f8717180}.placeholder-red-400\/60::placeholder{color:#f8717199}.placeholder-red-400\/70::placeholder{color:#f87171b3}.placeholder-red-400\/75::placeholder{color:#f87171bf}.placeholder-red-400\/80::placeholder{color:#f87171cc}.placeholder-red-400\/90::placeholder{color:#f87171e6}.placeholder-red-400\/95::placeholder{color:#f87171f2}.placeholder-red-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(254 242 242 / var(--tw-placeholder-opacity))}.placeholder-red-50\/0::placeholder{color:#fef2f200}.placeholder-red-50\/10::placeholder{color:#fef2f21a}.placeholder-red-50\/100::placeholder{color:#fef2f2}.placeholder-red-50\/20::placeholder{color:#fef2f233}.placeholder-red-50\/25::placeholder{color:#fef2f240}.placeholder-red-50\/30::placeholder{color:#fef2f24d}.placeholder-red-50\/40::placeholder{color:#fef2f266}.placeholder-red-50\/5::placeholder{color:#fef2f20d}.placeholder-red-50\/50::placeholder{color:#fef2f280}.placeholder-red-50\/60::placeholder{color:#fef2f299}.placeholder-red-50\/70::placeholder{color:#fef2f2b3}.placeholder-red-50\/75::placeholder{color:#fef2f2bf}.placeholder-red-50\/80::placeholder{color:#fef2f2cc}.placeholder-red-50\/90::placeholder{color:#fef2f2e6}.placeholder-red-50\/95::placeholder{color:#fef2f2f2}.placeholder-red-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(239 68 68 / var(--tw-placeholder-opacity))}.placeholder-red-500\/0::placeholder{color:#ef444400}.placeholder-red-500\/10::placeholder{color:#ef44441a}.placeholder-red-500\/100::placeholder{color:#ef4444}.placeholder-red-500\/20::placeholder{color:#ef444433}.placeholder-red-500\/25::placeholder{color:#ef444440}.placeholder-red-500\/30::placeholder{color:#ef44444d}.placeholder-red-500\/40::placeholder{color:#ef444466}.placeholder-red-500\/5::placeholder{color:#ef44440d}.placeholder-red-500\/50::placeholder{color:#ef444480}.placeholder-red-500\/60::placeholder{color:#ef444499}.placeholder-red-500\/70::placeholder{color:#ef4444b3}.placeholder-red-500\/75::placeholder{color:#ef4444bf}.placeholder-red-500\/80::placeholder{color:#ef4444cc}.placeholder-red-500\/90::placeholder{color:#ef4444e6}.placeholder-red-500\/95::placeholder{color:#ef4444f2}.placeholder-red-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(220 38 38 / var(--tw-placeholder-opacity))}.placeholder-red-600\/0::placeholder{color:#dc262600}.placeholder-red-600\/10::placeholder{color:#dc26261a}.placeholder-red-600\/100::placeholder{color:#dc2626}.placeholder-red-600\/20::placeholder{color:#dc262633}.placeholder-red-600\/25::placeholder{color:#dc262640}.placeholder-red-600\/30::placeholder{color:#dc26264d}.placeholder-red-600\/40::placeholder{color:#dc262666}.placeholder-red-600\/5::placeholder{color:#dc26260d}.placeholder-red-600\/50::placeholder{color:#dc262680}.placeholder-red-600\/60::placeholder{color:#dc262699}.placeholder-red-600\/70::placeholder{color:#dc2626b3}.placeholder-red-600\/75::placeholder{color:#dc2626bf}.placeholder-red-600\/80::placeholder{color:#dc2626cc}.placeholder-red-600\/90::placeholder{color:#dc2626e6}.placeholder-red-600\/95::placeholder{color:#dc2626f2}.placeholder-red-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(185 28 28 / var(--tw-placeholder-opacity))}.placeholder-red-700\/0::placeholder{color:#b91c1c00}.placeholder-red-700\/10::placeholder{color:#b91c1c1a}.placeholder-red-700\/100::placeholder{color:#b91c1c}.placeholder-red-700\/20::placeholder{color:#b91c1c33}.placeholder-red-700\/25::placeholder{color:#b91c1c40}.placeholder-red-700\/30::placeholder{color:#b91c1c4d}.placeholder-red-700\/40::placeholder{color:#b91c1c66}.placeholder-red-700\/5::placeholder{color:#b91c1c0d}.placeholder-red-700\/50::placeholder{color:#b91c1c80}.placeholder-red-700\/60::placeholder{color:#b91c1c99}.placeholder-red-700\/70::placeholder{color:#b91c1cb3}.placeholder-red-700\/75::placeholder{color:#b91c1cbf}.placeholder-red-700\/80::placeholder{color:#b91c1ccc}.placeholder-red-700\/90::placeholder{color:#b91c1ce6}.placeholder-red-700\/95::placeholder{color:#b91c1cf2}.placeholder-red-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(153 27 27 / var(--tw-placeholder-opacity))}.placeholder-red-800\/0::placeholder{color:#991b1b00}.placeholder-red-800\/10::placeholder{color:#991b1b1a}.placeholder-red-800\/100::placeholder{color:#991b1b}.placeholder-red-800\/20::placeholder{color:#991b1b33}.placeholder-red-800\/25::placeholder{color:#991b1b40}.placeholder-red-800\/30::placeholder{color:#991b1b4d}.placeholder-red-800\/40::placeholder{color:#991b1b66}.placeholder-red-800\/5::placeholder{color:#991b1b0d}.placeholder-red-800\/50::placeholder{color:#991b1b80}.placeholder-red-800\/60::placeholder{color:#991b1b99}.placeholder-red-800\/70::placeholder{color:#991b1bb3}.placeholder-red-800\/75::placeholder{color:#991b1bbf}.placeholder-red-800\/80::placeholder{color:#991b1bcc}.placeholder-red-800\/90::placeholder{color:#991b1be6}.placeholder-red-800\/95::placeholder{color:#991b1bf2}.placeholder-red-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(127 29 29 / var(--tw-placeholder-opacity))}.placeholder-red-900\/0::placeholder{color:#7f1d1d00}.placeholder-red-900\/10::placeholder{color:#7f1d1d1a}.placeholder-red-900\/100::placeholder{color:#7f1d1d}.placeholder-red-900\/20::placeholder{color:#7f1d1d33}.placeholder-red-900\/25::placeholder{color:#7f1d1d40}.placeholder-red-900\/30::placeholder{color:#7f1d1d4d}.placeholder-red-900\/40::placeholder{color:#7f1d1d66}.placeholder-red-900\/5::placeholder{color:#7f1d1d0d}.placeholder-red-900\/50::placeholder{color:#7f1d1d80}.placeholder-red-900\/60::placeholder{color:#7f1d1d99}.placeholder-red-900\/70::placeholder{color:#7f1d1db3}.placeholder-red-900\/75::placeholder{color:#7f1d1dbf}.placeholder-red-900\/80::placeholder{color:#7f1d1dcc}.placeholder-red-900\/90::placeholder{color:#7f1d1de6}.placeholder-red-900\/95::placeholder{color:#7f1d1df2}.placeholder-remich-primary::placeholder{color:var(--remich-primary)}.placeholder-remich-secondary::placeholder{color:var(--remich-secondary)}.placeholder-remich-tertiary::placeholder{color:var(--remich-tertiary)}.placeholder-rose-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(255 228 230 / var(--tw-placeholder-opacity))}.placeholder-rose-100\/0::placeholder{color:#ffe4e600}.placeholder-rose-100\/10::placeholder{color:#ffe4e61a}.placeholder-rose-100\/100::placeholder{color:#ffe4e6}.placeholder-rose-100\/20::placeholder{color:#ffe4e633}.placeholder-rose-100\/25::placeholder{color:#ffe4e640}.placeholder-rose-100\/30::placeholder{color:#ffe4e64d}.placeholder-rose-100\/40::placeholder{color:#ffe4e666}.placeholder-rose-100\/5::placeholder{color:#ffe4e60d}.placeholder-rose-100\/50::placeholder{color:#ffe4e680}.placeholder-rose-100\/60::placeholder{color:#ffe4e699}.placeholder-rose-100\/70::placeholder{color:#ffe4e6b3}.placeholder-rose-100\/75::placeholder{color:#ffe4e6bf}.placeholder-rose-100\/80::placeholder{color:#ffe4e6cc}.placeholder-rose-100\/90::placeholder{color:#ffe4e6e6}.placeholder-rose-100\/95::placeholder{color:#ffe4e6f2}.placeholder-rose-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(254 205 211 / var(--tw-placeholder-opacity))}.placeholder-rose-200\/0::placeholder{color:#fecdd300}.placeholder-rose-200\/10::placeholder{color:#fecdd31a}.placeholder-rose-200\/100::placeholder{color:#fecdd3}.placeholder-rose-200\/20::placeholder{color:#fecdd333}.placeholder-rose-200\/25::placeholder{color:#fecdd340}.placeholder-rose-200\/30::placeholder{color:#fecdd34d}.placeholder-rose-200\/40::placeholder{color:#fecdd366}.placeholder-rose-200\/5::placeholder{color:#fecdd30d}.placeholder-rose-200\/50::placeholder{color:#fecdd380}.placeholder-rose-200\/60::placeholder{color:#fecdd399}.placeholder-rose-200\/70::placeholder{color:#fecdd3b3}.placeholder-rose-200\/75::placeholder{color:#fecdd3bf}.placeholder-rose-200\/80::placeholder{color:#fecdd3cc}.placeholder-rose-200\/90::placeholder{color:#fecdd3e6}.placeholder-rose-200\/95::placeholder{color:#fecdd3f2}.placeholder-rose-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(253 164 175 / var(--tw-placeholder-opacity))}.placeholder-rose-300\/0::placeholder{color:#fda4af00}.placeholder-rose-300\/10::placeholder{color:#fda4af1a}.placeholder-rose-300\/100::placeholder{color:#fda4af}.placeholder-rose-300\/20::placeholder{color:#fda4af33}.placeholder-rose-300\/25::placeholder{color:#fda4af40}.placeholder-rose-300\/30::placeholder{color:#fda4af4d}.placeholder-rose-300\/40::placeholder{color:#fda4af66}.placeholder-rose-300\/5::placeholder{color:#fda4af0d}.placeholder-rose-300\/50::placeholder{color:#fda4af80}.placeholder-rose-300\/60::placeholder{color:#fda4af99}.placeholder-rose-300\/70::placeholder{color:#fda4afb3}.placeholder-rose-300\/75::placeholder{color:#fda4afbf}.placeholder-rose-300\/80::placeholder{color:#fda4afcc}.placeholder-rose-300\/90::placeholder{color:#fda4afe6}.placeholder-rose-300\/95::placeholder{color:#fda4aff2}.placeholder-rose-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(251 113 133 / var(--tw-placeholder-opacity))}.placeholder-rose-400\/0::placeholder{color:#fb718500}.placeholder-rose-400\/10::placeholder{color:#fb71851a}.placeholder-rose-400\/100::placeholder{color:#fb7185}.placeholder-rose-400\/20::placeholder{color:#fb718533}.placeholder-rose-400\/25::placeholder{color:#fb718540}.placeholder-rose-400\/30::placeholder{color:#fb71854d}.placeholder-rose-400\/40::placeholder{color:#fb718566}.placeholder-rose-400\/5::placeholder{color:#fb71850d}.placeholder-rose-400\/50::placeholder{color:#fb718580}.placeholder-rose-400\/60::placeholder{color:#fb718599}.placeholder-rose-400\/70::placeholder{color:#fb7185b3}.placeholder-rose-400\/75::placeholder{color:#fb7185bf}.placeholder-rose-400\/80::placeholder{color:#fb7185cc}.placeholder-rose-400\/90::placeholder{color:#fb7185e6}.placeholder-rose-400\/95::placeholder{color:#fb7185f2}.placeholder-rose-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(255 241 242 / var(--tw-placeholder-opacity))}.placeholder-rose-50\/0::placeholder{color:#fff1f200}.placeholder-rose-50\/10::placeholder{color:#fff1f21a}.placeholder-rose-50\/100::placeholder{color:#fff1f2}.placeholder-rose-50\/20::placeholder{color:#fff1f233}.placeholder-rose-50\/25::placeholder{color:#fff1f240}.placeholder-rose-50\/30::placeholder{color:#fff1f24d}.placeholder-rose-50\/40::placeholder{color:#fff1f266}.placeholder-rose-50\/5::placeholder{color:#fff1f20d}.placeholder-rose-50\/50::placeholder{color:#fff1f280}.placeholder-rose-50\/60::placeholder{color:#fff1f299}.placeholder-rose-50\/70::placeholder{color:#fff1f2b3}.placeholder-rose-50\/75::placeholder{color:#fff1f2bf}.placeholder-rose-50\/80::placeholder{color:#fff1f2cc}.placeholder-rose-50\/90::placeholder{color:#fff1f2e6}.placeholder-rose-50\/95::placeholder{color:#fff1f2f2}.placeholder-rose-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(244 63 94 / var(--tw-placeholder-opacity))}.placeholder-rose-500\/0::placeholder{color:#f43f5e00}.placeholder-rose-500\/10::placeholder{color:#f43f5e1a}.placeholder-rose-500\/100::placeholder{color:#f43f5e}.placeholder-rose-500\/20::placeholder{color:#f43f5e33}.placeholder-rose-500\/25::placeholder{color:#f43f5e40}.placeholder-rose-500\/30::placeholder{color:#f43f5e4d}.placeholder-rose-500\/40::placeholder{color:#f43f5e66}.placeholder-rose-500\/5::placeholder{color:#f43f5e0d}.placeholder-rose-500\/50::placeholder{color:#f43f5e80}.placeholder-rose-500\/60::placeholder{color:#f43f5e99}.placeholder-rose-500\/70::placeholder{color:#f43f5eb3}.placeholder-rose-500\/75::placeholder{color:#f43f5ebf}.placeholder-rose-500\/80::placeholder{color:#f43f5ecc}.placeholder-rose-500\/90::placeholder{color:#f43f5ee6}.placeholder-rose-500\/95::placeholder{color:#f43f5ef2}.placeholder-rose-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(225 29 72 / var(--tw-placeholder-opacity))}.placeholder-rose-600\/0::placeholder{color:#e11d4800}.placeholder-rose-600\/10::placeholder{color:#e11d481a}.placeholder-rose-600\/100::placeholder{color:#e11d48}.placeholder-rose-600\/20::placeholder{color:#e11d4833}.placeholder-rose-600\/25::placeholder{color:#e11d4840}.placeholder-rose-600\/30::placeholder{color:#e11d484d}.placeholder-rose-600\/40::placeholder{color:#e11d4866}.placeholder-rose-600\/5::placeholder{color:#e11d480d}.placeholder-rose-600\/50::placeholder{color:#e11d4880}.placeholder-rose-600\/60::placeholder{color:#e11d4899}.placeholder-rose-600\/70::placeholder{color:#e11d48b3}.placeholder-rose-600\/75::placeholder{color:#e11d48bf}.placeholder-rose-600\/80::placeholder{color:#e11d48cc}.placeholder-rose-600\/90::placeholder{color:#e11d48e6}.placeholder-rose-600\/95::placeholder{color:#e11d48f2}.placeholder-rose-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(190 18 60 / var(--tw-placeholder-opacity))}.placeholder-rose-700\/0::placeholder{color:#be123c00}.placeholder-rose-700\/10::placeholder{color:#be123c1a}.placeholder-rose-700\/100::placeholder{color:#be123c}.placeholder-rose-700\/20::placeholder{color:#be123c33}.placeholder-rose-700\/25::placeholder{color:#be123c40}.placeholder-rose-700\/30::placeholder{color:#be123c4d}.placeholder-rose-700\/40::placeholder{color:#be123c66}.placeholder-rose-700\/5::placeholder{color:#be123c0d}.placeholder-rose-700\/50::placeholder{color:#be123c80}.placeholder-rose-700\/60::placeholder{color:#be123c99}.placeholder-rose-700\/70::placeholder{color:#be123cb3}.placeholder-rose-700\/75::placeholder{color:#be123cbf}.placeholder-rose-700\/80::placeholder{color:#be123ccc}.placeholder-rose-700\/90::placeholder{color:#be123ce6}.placeholder-rose-700\/95::placeholder{color:#be123cf2}.placeholder-rose-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(159 18 57 / var(--tw-placeholder-opacity))}.placeholder-rose-800\/0::placeholder{color:#9f123900}.placeholder-rose-800\/10::placeholder{color:#9f12391a}.placeholder-rose-800\/100::placeholder{color:#9f1239}.placeholder-rose-800\/20::placeholder{color:#9f123933}.placeholder-rose-800\/25::placeholder{color:#9f123940}.placeholder-rose-800\/30::placeholder{color:#9f12394d}.placeholder-rose-800\/40::placeholder{color:#9f123966}.placeholder-rose-800\/5::placeholder{color:#9f12390d}.placeholder-rose-800\/50::placeholder{color:#9f123980}.placeholder-rose-800\/60::placeholder{color:#9f123999}.placeholder-rose-800\/70::placeholder{color:#9f1239b3}.placeholder-rose-800\/75::placeholder{color:#9f1239bf}.placeholder-rose-800\/80::placeholder{color:#9f1239cc}.placeholder-rose-800\/90::placeholder{color:#9f1239e6}.placeholder-rose-800\/95::placeholder{color:#9f1239f2}.placeholder-rose-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(136 19 55 / var(--tw-placeholder-opacity))}.placeholder-rose-900\/0::placeholder{color:#88133700}.placeholder-rose-900\/10::placeholder{color:#8813371a}.placeholder-rose-900\/100::placeholder{color:#881337}.placeholder-rose-900\/20::placeholder{color:#88133733}.placeholder-rose-900\/25::placeholder{color:#88133740}.placeholder-rose-900\/30::placeholder{color:#8813374d}.placeholder-rose-900\/40::placeholder{color:#88133766}.placeholder-rose-900\/5::placeholder{color:#8813370d}.placeholder-rose-900\/50::placeholder{color:#88133780}.placeholder-rose-900\/60::placeholder{color:#88133799}.placeholder-rose-900\/70::placeholder{color:#881337b3}.placeholder-rose-900\/75::placeholder{color:#881337bf}.placeholder-rose-900\/80::placeholder{color:#881337cc}.placeholder-rose-900\/90::placeholder{color:#881337e6}.placeholder-rose-900\/95::placeholder{color:#881337f2}.placeholder-secondary::placeholder{color:var(--color-secondary)}.placeholder-sig_secours-primary::placeholder{color:var(--sig_secours-primary)}.placeholder-sig_secours-secondary::placeholder{color:var(--sig_secours-secondary)}.placeholder-sig_secours-tertiary::placeholder{color:var(--sig_secours-tertiary)}.placeholder-sky-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(224 242 254 / var(--tw-placeholder-opacity))}.placeholder-sky-100\/0::placeholder{color:#e0f2fe00}.placeholder-sky-100\/10::placeholder{color:#e0f2fe1a}.placeholder-sky-100\/100::placeholder{color:#e0f2fe}.placeholder-sky-100\/20::placeholder{color:#e0f2fe33}.placeholder-sky-100\/25::placeholder{color:#e0f2fe40}.placeholder-sky-100\/30::placeholder{color:#e0f2fe4d}.placeholder-sky-100\/40::placeholder{color:#e0f2fe66}.placeholder-sky-100\/5::placeholder{color:#e0f2fe0d}.placeholder-sky-100\/50::placeholder{color:#e0f2fe80}.placeholder-sky-100\/60::placeholder{color:#e0f2fe99}.placeholder-sky-100\/70::placeholder{color:#e0f2feb3}.placeholder-sky-100\/75::placeholder{color:#e0f2febf}.placeholder-sky-100\/80::placeholder{color:#e0f2fecc}.placeholder-sky-100\/90::placeholder{color:#e0f2fee6}.placeholder-sky-100\/95::placeholder{color:#e0f2fef2}.placeholder-sky-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(186 230 253 / var(--tw-placeholder-opacity))}.placeholder-sky-200\/0::placeholder{color:#bae6fd00}.placeholder-sky-200\/10::placeholder{color:#bae6fd1a}.placeholder-sky-200\/100::placeholder{color:#bae6fd}.placeholder-sky-200\/20::placeholder{color:#bae6fd33}.placeholder-sky-200\/25::placeholder{color:#bae6fd40}.placeholder-sky-200\/30::placeholder{color:#bae6fd4d}.placeholder-sky-200\/40::placeholder{color:#bae6fd66}.placeholder-sky-200\/5::placeholder{color:#bae6fd0d}.placeholder-sky-200\/50::placeholder{color:#bae6fd80}.placeholder-sky-200\/60::placeholder{color:#bae6fd99}.placeholder-sky-200\/70::placeholder{color:#bae6fdb3}.placeholder-sky-200\/75::placeholder{color:#bae6fdbf}.placeholder-sky-200\/80::placeholder{color:#bae6fdcc}.placeholder-sky-200\/90::placeholder{color:#bae6fde6}.placeholder-sky-200\/95::placeholder{color:#bae6fdf2}.placeholder-sky-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(125 211 252 / var(--tw-placeholder-opacity))}.placeholder-sky-300\/0::placeholder{color:#7dd3fc00}.placeholder-sky-300\/10::placeholder{color:#7dd3fc1a}.placeholder-sky-300\/100::placeholder{color:#7dd3fc}.placeholder-sky-300\/20::placeholder{color:#7dd3fc33}.placeholder-sky-300\/25::placeholder{color:#7dd3fc40}.placeholder-sky-300\/30::placeholder{color:#7dd3fc4d}.placeholder-sky-300\/40::placeholder{color:#7dd3fc66}.placeholder-sky-300\/5::placeholder{color:#7dd3fc0d}.placeholder-sky-300\/50::placeholder{color:#7dd3fc80}.placeholder-sky-300\/60::placeholder{color:#7dd3fc99}.placeholder-sky-300\/70::placeholder{color:#7dd3fcb3}.placeholder-sky-300\/75::placeholder{color:#7dd3fcbf}.placeholder-sky-300\/80::placeholder{color:#7dd3fccc}.placeholder-sky-300\/90::placeholder{color:#7dd3fce6}.placeholder-sky-300\/95::placeholder{color:#7dd3fcf2}.placeholder-sky-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(56 189 248 / var(--tw-placeholder-opacity))}.placeholder-sky-400\/0::placeholder{color:#38bdf800}.placeholder-sky-400\/10::placeholder{color:#38bdf81a}.placeholder-sky-400\/100::placeholder{color:#38bdf8}.placeholder-sky-400\/20::placeholder{color:#38bdf833}.placeholder-sky-400\/25::placeholder{color:#38bdf840}.placeholder-sky-400\/30::placeholder{color:#38bdf84d}.placeholder-sky-400\/40::placeholder{color:#38bdf866}.placeholder-sky-400\/5::placeholder{color:#38bdf80d}.placeholder-sky-400\/50::placeholder{color:#38bdf880}.placeholder-sky-400\/60::placeholder{color:#38bdf899}.placeholder-sky-400\/70::placeholder{color:#38bdf8b3}.placeholder-sky-400\/75::placeholder{color:#38bdf8bf}.placeholder-sky-400\/80::placeholder{color:#38bdf8cc}.placeholder-sky-400\/90::placeholder{color:#38bdf8e6}.placeholder-sky-400\/95::placeholder{color:#38bdf8f2}.placeholder-sky-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(240 249 255 / var(--tw-placeholder-opacity))}.placeholder-sky-50\/0::placeholder{color:#f0f9ff00}.placeholder-sky-50\/10::placeholder{color:#f0f9ff1a}.placeholder-sky-50\/100::placeholder{color:#f0f9ff}.placeholder-sky-50\/20::placeholder{color:#f0f9ff33}.placeholder-sky-50\/25::placeholder{color:#f0f9ff40}.placeholder-sky-50\/30::placeholder{color:#f0f9ff4d}.placeholder-sky-50\/40::placeholder{color:#f0f9ff66}.placeholder-sky-50\/5::placeholder{color:#f0f9ff0d}.placeholder-sky-50\/50::placeholder{color:#f0f9ff80}.placeholder-sky-50\/60::placeholder{color:#f0f9ff99}.placeholder-sky-50\/70::placeholder{color:#f0f9ffb3}.placeholder-sky-50\/75::placeholder{color:#f0f9ffbf}.placeholder-sky-50\/80::placeholder{color:#f0f9ffcc}.placeholder-sky-50\/90::placeholder{color:#f0f9ffe6}.placeholder-sky-50\/95::placeholder{color:#f0f9fff2}.placeholder-sky-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(14 165 233 / var(--tw-placeholder-opacity))}.placeholder-sky-500\/0::placeholder{color:#0ea5e900}.placeholder-sky-500\/10::placeholder{color:#0ea5e91a}.placeholder-sky-500\/100::placeholder{color:#0ea5e9}.placeholder-sky-500\/20::placeholder{color:#0ea5e933}.placeholder-sky-500\/25::placeholder{color:#0ea5e940}.placeholder-sky-500\/30::placeholder{color:#0ea5e94d}.placeholder-sky-500\/40::placeholder{color:#0ea5e966}.placeholder-sky-500\/5::placeholder{color:#0ea5e90d}.placeholder-sky-500\/50::placeholder{color:#0ea5e980}.placeholder-sky-500\/60::placeholder{color:#0ea5e999}.placeholder-sky-500\/70::placeholder{color:#0ea5e9b3}.placeholder-sky-500\/75::placeholder{color:#0ea5e9bf}.placeholder-sky-500\/80::placeholder{color:#0ea5e9cc}.placeholder-sky-500\/90::placeholder{color:#0ea5e9e6}.placeholder-sky-500\/95::placeholder{color:#0ea5e9f2}.placeholder-sky-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(2 132 199 / var(--tw-placeholder-opacity))}.placeholder-sky-600\/0::placeholder{color:#0284c700}.placeholder-sky-600\/10::placeholder{color:#0284c71a}.placeholder-sky-600\/100::placeholder{color:#0284c7}.placeholder-sky-600\/20::placeholder{color:#0284c733}.placeholder-sky-600\/25::placeholder{color:#0284c740}.placeholder-sky-600\/30::placeholder{color:#0284c74d}.placeholder-sky-600\/40::placeholder{color:#0284c766}.placeholder-sky-600\/5::placeholder{color:#0284c70d}.placeholder-sky-600\/50::placeholder{color:#0284c780}.placeholder-sky-600\/60::placeholder{color:#0284c799}.placeholder-sky-600\/70::placeholder{color:#0284c7b3}.placeholder-sky-600\/75::placeholder{color:#0284c7bf}.placeholder-sky-600\/80::placeholder{color:#0284c7cc}.placeholder-sky-600\/90::placeholder{color:#0284c7e6}.placeholder-sky-600\/95::placeholder{color:#0284c7f2}.placeholder-sky-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(3 105 161 / var(--tw-placeholder-opacity))}.placeholder-sky-700\/0::placeholder{color:#0369a100}.placeholder-sky-700\/10::placeholder{color:#0369a11a}.placeholder-sky-700\/100::placeholder{color:#0369a1}.placeholder-sky-700\/20::placeholder{color:#0369a133}.placeholder-sky-700\/25::placeholder{color:#0369a140}.placeholder-sky-700\/30::placeholder{color:#0369a14d}.placeholder-sky-700\/40::placeholder{color:#0369a166}.placeholder-sky-700\/5::placeholder{color:#0369a10d}.placeholder-sky-700\/50::placeholder{color:#0369a180}.placeholder-sky-700\/60::placeholder{color:#0369a199}.placeholder-sky-700\/70::placeholder{color:#0369a1b3}.placeholder-sky-700\/75::placeholder{color:#0369a1bf}.placeholder-sky-700\/80::placeholder{color:#0369a1cc}.placeholder-sky-700\/90::placeholder{color:#0369a1e6}.placeholder-sky-700\/95::placeholder{color:#0369a1f2}.placeholder-sky-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(7 89 133 / var(--tw-placeholder-opacity))}.placeholder-sky-800\/0::placeholder{color:#07598500}.placeholder-sky-800\/10::placeholder{color:#0759851a}.placeholder-sky-800\/100::placeholder{color:#075985}.placeholder-sky-800\/20::placeholder{color:#07598533}.placeholder-sky-800\/25::placeholder{color:#07598540}.placeholder-sky-800\/30::placeholder{color:#0759854d}.placeholder-sky-800\/40::placeholder{color:#07598566}.placeholder-sky-800\/5::placeholder{color:#0759850d}.placeholder-sky-800\/50::placeholder{color:#07598580}.placeholder-sky-800\/60::placeholder{color:#07598599}.placeholder-sky-800\/70::placeholder{color:#075985b3}.placeholder-sky-800\/75::placeholder{color:#075985bf}.placeholder-sky-800\/80::placeholder{color:#075985cc}.placeholder-sky-800\/90::placeholder{color:#075985e6}.placeholder-sky-800\/95::placeholder{color:#075985f2}.placeholder-sky-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(12 74 110 / var(--tw-placeholder-opacity))}.placeholder-sky-900\/0::placeholder{color:#0c4a6e00}.placeholder-sky-900\/10::placeholder{color:#0c4a6e1a}.placeholder-sky-900\/100::placeholder{color:#0c4a6e}.placeholder-sky-900\/20::placeholder{color:#0c4a6e33}.placeholder-sky-900\/25::placeholder{color:#0c4a6e40}.placeholder-sky-900\/30::placeholder{color:#0c4a6e4d}.placeholder-sky-900\/40::placeholder{color:#0c4a6e66}.placeholder-sky-900\/5::placeholder{color:#0c4a6e0d}.placeholder-sky-900\/50::placeholder{color:#0c4a6e80}.placeholder-sky-900\/60::placeholder{color:#0c4a6e99}.placeholder-sky-900\/70::placeholder{color:#0c4a6eb3}.placeholder-sky-900\/75::placeholder{color:#0c4a6ebf}.placeholder-sky-900\/80::placeholder{color:#0c4a6ecc}.placeholder-sky-900\/90::placeholder{color:#0c4a6ee6}.placeholder-sky-900\/95::placeholder{color:#0c4a6ef2}.placeholder-slate-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(241 245 249 / var(--tw-placeholder-opacity))}.placeholder-slate-100\/0::placeholder{color:#f1f5f900}.placeholder-slate-100\/10::placeholder{color:#f1f5f91a}.placeholder-slate-100\/100::placeholder{color:#f1f5f9}.placeholder-slate-100\/20::placeholder{color:#f1f5f933}.placeholder-slate-100\/25::placeholder{color:#f1f5f940}.placeholder-slate-100\/30::placeholder{color:#f1f5f94d}.placeholder-slate-100\/40::placeholder{color:#f1f5f966}.placeholder-slate-100\/5::placeholder{color:#f1f5f90d}.placeholder-slate-100\/50::placeholder{color:#f1f5f980}.placeholder-slate-100\/60::placeholder{color:#f1f5f999}.placeholder-slate-100\/70::placeholder{color:#f1f5f9b3}.placeholder-slate-100\/75::placeholder{color:#f1f5f9bf}.placeholder-slate-100\/80::placeholder{color:#f1f5f9cc}.placeholder-slate-100\/90::placeholder{color:#f1f5f9e6}.placeholder-slate-100\/95::placeholder{color:#f1f5f9f2}.placeholder-slate-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(226 232 240 / var(--tw-placeholder-opacity))}.placeholder-slate-200\/0::placeholder{color:#e2e8f000}.placeholder-slate-200\/10::placeholder{color:#e2e8f01a}.placeholder-slate-200\/100::placeholder{color:#e2e8f0}.placeholder-slate-200\/20::placeholder{color:#e2e8f033}.placeholder-slate-200\/25::placeholder{color:#e2e8f040}.placeholder-slate-200\/30::placeholder{color:#e2e8f04d}.placeholder-slate-200\/40::placeholder{color:#e2e8f066}.placeholder-slate-200\/5::placeholder{color:#e2e8f00d}.placeholder-slate-200\/50::placeholder{color:#e2e8f080}.placeholder-slate-200\/60::placeholder{color:#e2e8f099}.placeholder-slate-200\/70::placeholder{color:#e2e8f0b3}.placeholder-slate-200\/75::placeholder{color:#e2e8f0bf}.placeholder-slate-200\/80::placeholder{color:#e2e8f0cc}.placeholder-slate-200\/90::placeholder{color:#e2e8f0e6}.placeholder-slate-200\/95::placeholder{color:#e2e8f0f2}.placeholder-slate-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(203 213 225 / var(--tw-placeholder-opacity))}.placeholder-slate-300\/0::placeholder{color:#cbd5e100}.placeholder-slate-300\/10::placeholder{color:#cbd5e11a}.placeholder-slate-300\/100::placeholder{color:#cbd5e1}.placeholder-slate-300\/20::placeholder{color:#cbd5e133}.placeholder-slate-300\/25::placeholder{color:#cbd5e140}.placeholder-slate-300\/30::placeholder{color:#cbd5e14d}.placeholder-slate-300\/40::placeholder{color:#cbd5e166}.placeholder-slate-300\/5::placeholder{color:#cbd5e10d}.placeholder-slate-300\/50::placeholder{color:#cbd5e180}.placeholder-slate-300\/60::placeholder{color:#cbd5e199}.placeholder-slate-300\/70::placeholder{color:#cbd5e1b3}.placeholder-slate-300\/75::placeholder{color:#cbd5e1bf}.placeholder-slate-300\/80::placeholder{color:#cbd5e1cc}.placeholder-slate-300\/90::placeholder{color:#cbd5e1e6}.placeholder-slate-300\/95::placeholder{color:#cbd5e1f2}.placeholder-slate-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(148 163 184 / var(--tw-placeholder-opacity))}.placeholder-slate-400\/0::placeholder{color:#94a3b800}.placeholder-slate-400\/10::placeholder{color:#94a3b81a}.placeholder-slate-400\/100::placeholder{color:#94a3b8}.placeholder-slate-400\/20::placeholder{color:#94a3b833}.placeholder-slate-400\/25::placeholder{color:#94a3b840}.placeholder-slate-400\/30::placeholder{color:#94a3b84d}.placeholder-slate-400\/40::placeholder{color:#94a3b866}.placeholder-slate-400\/5::placeholder{color:#94a3b80d}.placeholder-slate-400\/50::placeholder{color:#94a3b880}.placeholder-slate-400\/60::placeholder{color:#94a3b899}.placeholder-slate-400\/70::placeholder{color:#94a3b8b3}.placeholder-slate-400\/75::placeholder{color:#94a3b8bf}.placeholder-slate-400\/80::placeholder{color:#94a3b8cc}.placeholder-slate-400\/90::placeholder{color:#94a3b8e6}.placeholder-slate-400\/95::placeholder{color:#94a3b8f2}.placeholder-slate-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(248 250 252 / var(--tw-placeholder-opacity))}.placeholder-slate-50\/0::placeholder{color:#f8fafc00}.placeholder-slate-50\/10::placeholder{color:#f8fafc1a}.placeholder-slate-50\/100::placeholder{color:#f8fafc}.placeholder-slate-50\/20::placeholder{color:#f8fafc33}.placeholder-slate-50\/25::placeholder{color:#f8fafc40}.placeholder-slate-50\/30::placeholder{color:#f8fafc4d}.placeholder-slate-50\/40::placeholder{color:#f8fafc66}.placeholder-slate-50\/5::placeholder{color:#f8fafc0d}.placeholder-slate-50\/50::placeholder{color:#f8fafc80}.placeholder-slate-50\/60::placeholder{color:#f8fafc99}.placeholder-slate-50\/70::placeholder{color:#f8fafcb3}.placeholder-slate-50\/75::placeholder{color:#f8fafcbf}.placeholder-slate-50\/80::placeholder{color:#f8fafccc}.placeholder-slate-50\/90::placeholder{color:#f8fafce6}.placeholder-slate-50\/95::placeholder{color:#f8fafcf2}.placeholder-slate-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity))}.placeholder-slate-500\/0::placeholder{color:#64748b00}.placeholder-slate-500\/10::placeholder{color:#64748b1a}.placeholder-slate-500\/100::placeholder{color:#64748b}.placeholder-slate-500\/20::placeholder{color:#64748b33}.placeholder-slate-500\/25::placeholder{color:#64748b40}.placeholder-slate-500\/30::placeholder{color:#64748b4d}.placeholder-slate-500\/40::placeholder{color:#64748b66}.placeholder-slate-500\/5::placeholder{color:#64748b0d}.placeholder-slate-500\/50::placeholder{color:#64748b80}.placeholder-slate-500\/60::placeholder{color:#64748b99}.placeholder-slate-500\/70::placeholder{color:#64748bb3}.placeholder-slate-500\/75::placeholder{color:#64748bbf}.placeholder-slate-500\/80::placeholder{color:#64748bcc}.placeholder-slate-500\/90::placeholder{color:#64748be6}.placeholder-slate-500\/95::placeholder{color:#64748bf2}.placeholder-slate-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(71 85 105 / var(--tw-placeholder-opacity))}.placeholder-slate-600\/0::placeholder{color:#47556900}.placeholder-slate-600\/10::placeholder{color:#4755691a}.placeholder-slate-600\/100::placeholder{color:#475569}.placeholder-slate-600\/20::placeholder{color:#47556933}.placeholder-slate-600\/25::placeholder{color:#47556940}.placeholder-slate-600\/30::placeholder{color:#4755694d}.placeholder-slate-600\/40::placeholder{color:#47556966}.placeholder-slate-600\/5::placeholder{color:#4755690d}.placeholder-slate-600\/50::placeholder{color:#47556980}.placeholder-slate-600\/60::placeholder{color:#47556999}.placeholder-slate-600\/70::placeholder{color:#475569b3}.placeholder-slate-600\/75::placeholder{color:#475569bf}.placeholder-slate-600\/80::placeholder{color:#475569cc}.placeholder-slate-600\/90::placeholder{color:#475569e6}.placeholder-slate-600\/95::placeholder{color:#475569f2}.placeholder-slate-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(51 65 85 / var(--tw-placeholder-opacity))}.placeholder-slate-700\/0::placeholder{color:#33415500}.placeholder-slate-700\/10::placeholder{color:#3341551a}.placeholder-slate-700\/100::placeholder{color:#334155}.placeholder-slate-700\/20::placeholder{color:#33415533}.placeholder-slate-700\/25::placeholder{color:#33415540}.placeholder-slate-700\/30::placeholder{color:#3341554d}.placeholder-slate-700\/40::placeholder{color:#33415566}.placeholder-slate-700\/5::placeholder{color:#3341550d}.placeholder-slate-700\/50::placeholder{color:#33415580}.placeholder-slate-700\/60::placeholder{color:#33415599}.placeholder-slate-700\/70::placeholder{color:#334155b3}.placeholder-slate-700\/75::placeholder{color:#334155bf}.placeholder-slate-700\/80::placeholder{color:#334155cc}.placeholder-slate-700\/90::placeholder{color:#334155e6}.placeholder-slate-700\/95::placeholder{color:#334155f2}.placeholder-slate-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(30 41 59 / var(--tw-placeholder-opacity))}.placeholder-slate-800\/0::placeholder{color:#1e293b00}.placeholder-slate-800\/10::placeholder{color:#1e293b1a}.placeholder-slate-800\/100::placeholder{color:#1e293b}.placeholder-slate-800\/20::placeholder{color:#1e293b33}.placeholder-slate-800\/25::placeholder{color:#1e293b40}.placeholder-slate-800\/30::placeholder{color:#1e293b4d}.placeholder-slate-800\/40::placeholder{color:#1e293b66}.placeholder-slate-800\/5::placeholder{color:#1e293b0d}.placeholder-slate-800\/50::placeholder{color:#1e293b80}.placeholder-slate-800\/60::placeholder{color:#1e293b99}.placeholder-slate-800\/70::placeholder{color:#1e293bb3}.placeholder-slate-800\/75::placeholder{color:#1e293bbf}.placeholder-slate-800\/80::placeholder{color:#1e293bcc}.placeholder-slate-800\/90::placeholder{color:#1e293be6}.placeholder-slate-800\/95::placeholder{color:#1e293bf2}.placeholder-slate-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(15 23 42 / var(--tw-placeholder-opacity))}.placeholder-slate-900\/0::placeholder{color:#0f172a00}.placeholder-slate-900\/10::placeholder{color:#0f172a1a}.placeholder-slate-900\/100::placeholder{color:#0f172a}.placeholder-slate-900\/20::placeholder{color:#0f172a33}.placeholder-slate-900\/25::placeholder{color:#0f172a40}.placeholder-slate-900\/30::placeholder{color:#0f172a4d}.placeholder-slate-900\/40::placeholder{color:#0f172a66}.placeholder-slate-900\/5::placeholder{color:#0f172a0d}.placeholder-slate-900\/50::placeholder{color:#0f172a80}.placeholder-slate-900\/60::placeholder{color:#0f172a99}.placeholder-slate-900\/70::placeholder{color:#0f172ab3}.placeholder-slate-900\/75::placeholder{color:#0f172abf}.placeholder-slate-900\/80::placeholder{color:#0f172acc}.placeholder-slate-900\/90::placeholder{color:#0f172ae6}.placeholder-slate-900\/95::placeholder{color:#0f172af2}.placeholder-stone-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(245 245 244 / var(--tw-placeholder-opacity))}.placeholder-stone-100\/0::placeholder{color:#f5f5f400}.placeholder-stone-100\/10::placeholder{color:#f5f5f41a}.placeholder-stone-100\/100::placeholder{color:#f5f5f4}.placeholder-stone-100\/20::placeholder{color:#f5f5f433}.placeholder-stone-100\/25::placeholder{color:#f5f5f440}.placeholder-stone-100\/30::placeholder{color:#f5f5f44d}.placeholder-stone-100\/40::placeholder{color:#f5f5f466}.placeholder-stone-100\/5::placeholder{color:#f5f5f40d}.placeholder-stone-100\/50::placeholder{color:#f5f5f480}.placeholder-stone-100\/60::placeholder{color:#f5f5f499}.placeholder-stone-100\/70::placeholder{color:#f5f5f4b3}.placeholder-stone-100\/75::placeholder{color:#f5f5f4bf}.placeholder-stone-100\/80::placeholder{color:#f5f5f4cc}.placeholder-stone-100\/90::placeholder{color:#f5f5f4e6}.placeholder-stone-100\/95::placeholder{color:#f5f5f4f2}.placeholder-stone-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(231 229 228 / var(--tw-placeholder-opacity))}.placeholder-stone-200\/0::placeholder{color:#e7e5e400}.placeholder-stone-200\/10::placeholder{color:#e7e5e41a}.placeholder-stone-200\/100::placeholder{color:#e7e5e4}.placeholder-stone-200\/20::placeholder{color:#e7e5e433}.placeholder-stone-200\/25::placeholder{color:#e7e5e440}.placeholder-stone-200\/30::placeholder{color:#e7e5e44d}.placeholder-stone-200\/40::placeholder{color:#e7e5e466}.placeholder-stone-200\/5::placeholder{color:#e7e5e40d}.placeholder-stone-200\/50::placeholder{color:#e7e5e480}.placeholder-stone-200\/60::placeholder{color:#e7e5e499}.placeholder-stone-200\/70::placeholder{color:#e7e5e4b3}.placeholder-stone-200\/75::placeholder{color:#e7e5e4bf}.placeholder-stone-200\/80::placeholder{color:#e7e5e4cc}.placeholder-stone-200\/90::placeholder{color:#e7e5e4e6}.placeholder-stone-200\/95::placeholder{color:#e7e5e4f2}.placeholder-stone-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(214 211 209 / var(--tw-placeholder-opacity))}.placeholder-stone-300\/0::placeholder{color:#d6d3d100}.placeholder-stone-300\/10::placeholder{color:#d6d3d11a}.placeholder-stone-300\/100::placeholder{color:#d6d3d1}.placeholder-stone-300\/20::placeholder{color:#d6d3d133}.placeholder-stone-300\/25::placeholder{color:#d6d3d140}.placeholder-stone-300\/30::placeholder{color:#d6d3d14d}.placeholder-stone-300\/40::placeholder{color:#d6d3d166}.placeholder-stone-300\/5::placeholder{color:#d6d3d10d}.placeholder-stone-300\/50::placeholder{color:#d6d3d180}.placeholder-stone-300\/60::placeholder{color:#d6d3d199}.placeholder-stone-300\/70::placeholder{color:#d6d3d1b3}.placeholder-stone-300\/75::placeholder{color:#d6d3d1bf}.placeholder-stone-300\/80::placeholder{color:#d6d3d1cc}.placeholder-stone-300\/90::placeholder{color:#d6d3d1e6}.placeholder-stone-300\/95::placeholder{color:#d6d3d1f2}.placeholder-stone-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(168 162 158 / var(--tw-placeholder-opacity))}.placeholder-stone-400\/0::placeholder{color:#a8a29e00}.placeholder-stone-400\/10::placeholder{color:#a8a29e1a}.placeholder-stone-400\/100::placeholder{color:#a8a29e}.placeholder-stone-400\/20::placeholder{color:#a8a29e33}.placeholder-stone-400\/25::placeholder{color:#a8a29e40}.placeholder-stone-400\/30::placeholder{color:#a8a29e4d}.placeholder-stone-400\/40::placeholder{color:#a8a29e66}.placeholder-stone-400\/5::placeholder{color:#a8a29e0d}.placeholder-stone-400\/50::placeholder{color:#a8a29e80}.placeholder-stone-400\/60::placeholder{color:#a8a29e99}.placeholder-stone-400\/70::placeholder{color:#a8a29eb3}.placeholder-stone-400\/75::placeholder{color:#a8a29ebf}.placeholder-stone-400\/80::placeholder{color:#a8a29ecc}.placeholder-stone-400\/90::placeholder{color:#a8a29ee6}.placeholder-stone-400\/95::placeholder{color:#a8a29ef2}.placeholder-stone-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(250 250 249 / var(--tw-placeholder-opacity))}.placeholder-stone-50\/0::placeholder{color:#fafaf900}.placeholder-stone-50\/10::placeholder{color:#fafaf91a}.placeholder-stone-50\/100::placeholder{color:#fafaf9}.placeholder-stone-50\/20::placeholder{color:#fafaf933}.placeholder-stone-50\/25::placeholder{color:#fafaf940}.placeholder-stone-50\/30::placeholder{color:#fafaf94d}.placeholder-stone-50\/40::placeholder{color:#fafaf966}.placeholder-stone-50\/5::placeholder{color:#fafaf90d}.placeholder-stone-50\/50::placeholder{color:#fafaf980}.placeholder-stone-50\/60::placeholder{color:#fafaf999}.placeholder-stone-50\/70::placeholder{color:#fafaf9b3}.placeholder-stone-50\/75::placeholder{color:#fafaf9bf}.placeholder-stone-50\/80::placeholder{color:#fafaf9cc}.placeholder-stone-50\/90::placeholder{color:#fafaf9e6}.placeholder-stone-50\/95::placeholder{color:#fafaf9f2}.placeholder-stone-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(120 113 108 / var(--tw-placeholder-opacity))}.placeholder-stone-500\/0::placeholder{color:#78716c00}.placeholder-stone-500\/10::placeholder{color:#78716c1a}.placeholder-stone-500\/100::placeholder{color:#78716c}.placeholder-stone-500\/20::placeholder{color:#78716c33}.placeholder-stone-500\/25::placeholder{color:#78716c40}.placeholder-stone-500\/30::placeholder{color:#78716c4d}.placeholder-stone-500\/40::placeholder{color:#78716c66}.placeholder-stone-500\/5::placeholder{color:#78716c0d}.placeholder-stone-500\/50::placeholder{color:#78716c80}.placeholder-stone-500\/60::placeholder{color:#78716c99}.placeholder-stone-500\/70::placeholder{color:#78716cb3}.placeholder-stone-500\/75::placeholder{color:#78716cbf}.placeholder-stone-500\/80::placeholder{color:#78716ccc}.placeholder-stone-500\/90::placeholder{color:#78716ce6}.placeholder-stone-500\/95::placeholder{color:#78716cf2}.placeholder-stone-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(87 83 78 / var(--tw-placeholder-opacity))}.placeholder-stone-600\/0::placeholder{color:#57534e00}.placeholder-stone-600\/10::placeholder{color:#57534e1a}.placeholder-stone-600\/100::placeholder{color:#57534e}.placeholder-stone-600\/20::placeholder{color:#57534e33}.placeholder-stone-600\/25::placeholder{color:#57534e40}.placeholder-stone-600\/30::placeholder{color:#57534e4d}.placeholder-stone-600\/40::placeholder{color:#57534e66}.placeholder-stone-600\/5::placeholder{color:#57534e0d}.placeholder-stone-600\/50::placeholder{color:#57534e80}.placeholder-stone-600\/60::placeholder{color:#57534e99}.placeholder-stone-600\/70::placeholder{color:#57534eb3}.placeholder-stone-600\/75::placeholder{color:#57534ebf}.placeholder-stone-600\/80::placeholder{color:#57534ecc}.placeholder-stone-600\/90::placeholder{color:#57534ee6}.placeholder-stone-600\/95::placeholder{color:#57534ef2}.placeholder-stone-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(68 64 60 / var(--tw-placeholder-opacity))}.placeholder-stone-700\/0::placeholder{color:#44403c00}.placeholder-stone-700\/10::placeholder{color:#44403c1a}.placeholder-stone-700\/100::placeholder{color:#44403c}.placeholder-stone-700\/20::placeholder{color:#44403c33}.placeholder-stone-700\/25::placeholder{color:#44403c40}.placeholder-stone-700\/30::placeholder{color:#44403c4d}.placeholder-stone-700\/40::placeholder{color:#44403c66}.placeholder-stone-700\/5::placeholder{color:#44403c0d}.placeholder-stone-700\/50::placeholder{color:#44403c80}.placeholder-stone-700\/60::placeholder{color:#44403c99}.placeholder-stone-700\/70::placeholder{color:#44403cb3}.placeholder-stone-700\/75::placeholder{color:#44403cbf}.placeholder-stone-700\/80::placeholder{color:#44403ccc}.placeholder-stone-700\/90::placeholder{color:#44403ce6}.placeholder-stone-700\/95::placeholder{color:#44403cf2}.placeholder-stone-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(41 37 36 / var(--tw-placeholder-opacity))}.placeholder-stone-800\/0::placeholder{color:#29252400}.placeholder-stone-800\/10::placeholder{color:#2925241a}.placeholder-stone-800\/100::placeholder{color:#292524}.placeholder-stone-800\/20::placeholder{color:#29252433}.placeholder-stone-800\/25::placeholder{color:#29252440}.placeholder-stone-800\/30::placeholder{color:#2925244d}.placeholder-stone-800\/40::placeholder{color:#29252466}.placeholder-stone-800\/5::placeholder{color:#2925240d}.placeholder-stone-800\/50::placeholder{color:#29252480}.placeholder-stone-800\/60::placeholder{color:#29252499}.placeholder-stone-800\/70::placeholder{color:#292524b3}.placeholder-stone-800\/75::placeholder{color:#292524bf}.placeholder-stone-800\/80::placeholder{color:#292524cc}.placeholder-stone-800\/90::placeholder{color:#292524e6}.placeholder-stone-800\/95::placeholder{color:#292524f2}.placeholder-stone-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(28 25 23 / var(--tw-placeholder-opacity))}.placeholder-stone-900\/0::placeholder{color:#1c191700}.placeholder-stone-900\/10::placeholder{color:#1c19171a}.placeholder-stone-900\/100::placeholder{color:#1c1917}.placeholder-stone-900\/20::placeholder{color:#1c191733}.placeholder-stone-900\/25::placeholder{color:#1c191740}.placeholder-stone-900\/30::placeholder{color:#1c19174d}.placeholder-stone-900\/40::placeholder{color:#1c191766}.placeholder-stone-900\/5::placeholder{color:#1c19170d}.placeholder-stone-900\/50::placeholder{color:#1c191780}.placeholder-stone-900\/60::placeholder{color:#1c191799}.placeholder-stone-900\/70::placeholder{color:#1c1917b3}.placeholder-stone-900\/75::placeholder{color:#1c1917bf}.placeholder-stone-900\/80::placeholder{color:#1c1917cc}.placeholder-stone-900\/90::placeholder{color:#1c1917e6}.placeholder-stone-900\/95::placeholder{color:#1c1917f2}.placeholder-teal-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(204 251 241 / var(--tw-placeholder-opacity))}.placeholder-teal-100\/0::placeholder{color:#ccfbf100}.placeholder-teal-100\/10::placeholder{color:#ccfbf11a}.placeholder-teal-100\/100::placeholder{color:#ccfbf1}.placeholder-teal-100\/20::placeholder{color:#ccfbf133}.placeholder-teal-100\/25::placeholder{color:#ccfbf140}.placeholder-teal-100\/30::placeholder{color:#ccfbf14d}.placeholder-teal-100\/40::placeholder{color:#ccfbf166}.placeholder-teal-100\/5::placeholder{color:#ccfbf10d}.placeholder-teal-100\/50::placeholder{color:#ccfbf180}.placeholder-teal-100\/60::placeholder{color:#ccfbf199}.placeholder-teal-100\/70::placeholder{color:#ccfbf1b3}.placeholder-teal-100\/75::placeholder{color:#ccfbf1bf}.placeholder-teal-100\/80::placeholder{color:#ccfbf1cc}.placeholder-teal-100\/90::placeholder{color:#ccfbf1e6}.placeholder-teal-100\/95::placeholder{color:#ccfbf1f2}.placeholder-teal-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(153 246 228 / var(--tw-placeholder-opacity))}.placeholder-teal-200\/0::placeholder{color:#99f6e400}.placeholder-teal-200\/10::placeholder{color:#99f6e41a}.placeholder-teal-200\/100::placeholder{color:#99f6e4}.placeholder-teal-200\/20::placeholder{color:#99f6e433}.placeholder-teal-200\/25::placeholder{color:#99f6e440}.placeholder-teal-200\/30::placeholder{color:#99f6e44d}.placeholder-teal-200\/40::placeholder{color:#99f6e466}.placeholder-teal-200\/5::placeholder{color:#99f6e40d}.placeholder-teal-200\/50::placeholder{color:#99f6e480}.placeholder-teal-200\/60::placeholder{color:#99f6e499}.placeholder-teal-200\/70::placeholder{color:#99f6e4b3}.placeholder-teal-200\/75::placeholder{color:#99f6e4bf}.placeholder-teal-200\/80::placeholder{color:#99f6e4cc}.placeholder-teal-200\/90::placeholder{color:#99f6e4e6}.placeholder-teal-200\/95::placeholder{color:#99f6e4f2}.placeholder-teal-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(94 234 212 / var(--tw-placeholder-opacity))}.placeholder-teal-300\/0::placeholder{color:#5eead400}.placeholder-teal-300\/10::placeholder{color:#5eead41a}.placeholder-teal-300\/100::placeholder{color:#5eead4}.placeholder-teal-300\/20::placeholder{color:#5eead433}.placeholder-teal-300\/25::placeholder{color:#5eead440}.placeholder-teal-300\/30::placeholder{color:#5eead44d}.placeholder-teal-300\/40::placeholder{color:#5eead466}.placeholder-teal-300\/5::placeholder{color:#5eead40d}.placeholder-teal-300\/50::placeholder{color:#5eead480}.placeholder-teal-300\/60::placeholder{color:#5eead499}.placeholder-teal-300\/70::placeholder{color:#5eead4b3}.placeholder-teal-300\/75::placeholder{color:#5eead4bf}.placeholder-teal-300\/80::placeholder{color:#5eead4cc}.placeholder-teal-300\/90::placeholder{color:#5eead4e6}.placeholder-teal-300\/95::placeholder{color:#5eead4f2}.placeholder-teal-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(45 212 191 / var(--tw-placeholder-opacity))}.placeholder-teal-400\/0::placeholder{color:#2dd4bf00}.placeholder-teal-400\/10::placeholder{color:#2dd4bf1a}.placeholder-teal-400\/100::placeholder{color:#2dd4bf}.placeholder-teal-400\/20::placeholder{color:#2dd4bf33}.placeholder-teal-400\/25::placeholder{color:#2dd4bf40}.placeholder-teal-400\/30::placeholder{color:#2dd4bf4d}.placeholder-teal-400\/40::placeholder{color:#2dd4bf66}.placeholder-teal-400\/5::placeholder{color:#2dd4bf0d}.placeholder-teal-400\/50::placeholder{color:#2dd4bf80}.placeholder-teal-400\/60::placeholder{color:#2dd4bf99}.placeholder-teal-400\/70::placeholder{color:#2dd4bfb3}.placeholder-teal-400\/75::placeholder{color:#2dd4bfbf}.placeholder-teal-400\/80::placeholder{color:#2dd4bfcc}.placeholder-teal-400\/90::placeholder{color:#2dd4bfe6}.placeholder-teal-400\/95::placeholder{color:#2dd4bff2}.placeholder-teal-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(240 253 250 / var(--tw-placeholder-opacity))}.placeholder-teal-50\/0::placeholder{color:#f0fdfa00}.placeholder-teal-50\/10::placeholder{color:#f0fdfa1a}.placeholder-teal-50\/100::placeholder{color:#f0fdfa}.placeholder-teal-50\/20::placeholder{color:#f0fdfa33}.placeholder-teal-50\/25::placeholder{color:#f0fdfa40}.placeholder-teal-50\/30::placeholder{color:#f0fdfa4d}.placeholder-teal-50\/40::placeholder{color:#f0fdfa66}.placeholder-teal-50\/5::placeholder{color:#f0fdfa0d}.placeholder-teal-50\/50::placeholder{color:#f0fdfa80}.placeholder-teal-50\/60::placeholder{color:#f0fdfa99}.placeholder-teal-50\/70::placeholder{color:#f0fdfab3}.placeholder-teal-50\/75::placeholder{color:#f0fdfabf}.placeholder-teal-50\/80::placeholder{color:#f0fdfacc}.placeholder-teal-50\/90::placeholder{color:#f0fdfae6}.placeholder-teal-50\/95::placeholder{color:#f0fdfaf2}.placeholder-teal-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(20 184 166 / var(--tw-placeholder-opacity))}.placeholder-teal-500\/0::placeholder{color:#14b8a600}.placeholder-teal-500\/10::placeholder{color:#14b8a61a}.placeholder-teal-500\/100::placeholder{color:#14b8a6}.placeholder-teal-500\/20::placeholder{color:#14b8a633}.placeholder-teal-500\/25::placeholder{color:#14b8a640}.placeholder-teal-500\/30::placeholder{color:#14b8a64d}.placeholder-teal-500\/40::placeholder{color:#14b8a666}.placeholder-teal-500\/5::placeholder{color:#14b8a60d}.placeholder-teal-500\/50::placeholder{color:#14b8a680}.placeholder-teal-500\/60::placeholder{color:#14b8a699}.placeholder-teal-500\/70::placeholder{color:#14b8a6b3}.placeholder-teal-500\/75::placeholder{color:#14b8a6bf}.placeholder-teal-500\/80::placeholder{color:#14b8a6cc}.placeholder-teal-500\/90::placeholder{color:#14b8a6e6}.placeholder-teal-500\/95::placeholder{color:#14b8a6f2}.placeholder-teal-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(13 148 136 / var(--tw-placeholder-opacity))}.placeholder-teal-600\/0::placeholder{color:#0d948800}.placeholder-teal-600\/10::placeholder{color:#0d94881a}.placeholder-teal-600\/100::placeholder{color:#0d9488}.placeholder-teal-600\/20::placeholder{color:#0d948833}.placeholder-teal-600\/25::placeholder{color:#0d948840}.placeholder-teal-600\/30::placeholder{color:#0d94884d}.placeholder-teal-600\/40::placeholder{color:#0d948866}.placeholder-teal-600\/5::placeholder{color:#0d94880d}.placeholder-teal-600\/50::placeholder{color:#0d948880}.placeholder-teal-600\/60::placeholder{color:#0d948899}.placeholder-teal-600\/70::placeholder{color:#0d9488b3}.placeholder-teal-600\/75::placeholder{color:#0d9488bf}.placeholder-teal-600\/80::placeholder{color:#0d9488cc}.placeholder-teal-600\/90::placeholder{color:#0d9488e6}.placeholder-teal-600\/95::placeholder{color:#0d9488f2}.placeholder-teal-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(15 118 110 / var(--tw-placeholder-opacity))}.placeholder-teal-700\/0::placeholder{color:#0f766e00}.placeholder-teal-700\/10::placeholder{color:#0f766e1a}.placeholder-teal-700\/100::placeholder{color:#0f766e}.placeholder-teal-700\/20::placeholder{color:#0f766e33}.placeholder-teal-700\/25::placeholder{color:#0f766e40}.placeholder-teal-700\/30::placeholder{color:#0f766e4d}.placeholder-teal-700\/40::placeholder{color:#0f766e66}.placeholder-teal-700\/5::placeholder{color:#0f766e0d}.placeholder-teal-700\/50::placeholder{color:#0f766e80}.placeholder-teal-700\/60::placeholder{color:#0f766e99}.placeholder-teal-700\/70::placeholder{color:#0f766eb3}.placeholder-teal-700\/75::placeholder{color:#0f766ebf}.placeholder-teal-700\/80::placeholder{color:#0f766ecc}.placeholder-teal-700\/90::placeholder{color:#0f766ee6}.placeholder-teal-700\/95::placeholder{color:#0f766ef2}.placeholder-teal-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(17 94 89 / var(--tw-placeholder-opacity))}.placeholder-teal-800\/0::placeholder{color:#115e5900}.placeholder-teal-800\/10::placeholder{color:#115e591a}.placeholder-teal-800\/100::placeholder{color:#115e59}.placeholder-teal-800\/20::placeholder{color:#115e5933}.placeholder-teal-800\/25::placeholder{color:#115e5940}.placeholder-teal-800\/30::placeholder{color:#115e594d}.placeholder-teal-800\/40::placeholder{color:#115e5966}.placeholder-teal-800\/5::placeholder{color:#115e590d}.placeholder-teal-800\/50::placeholder{color:#115e5980}.placeholder-teal-800\/60::placeholder{color:#115e5999}.placeholder-teal-800\/70::placeholder{color:#115e59b3}.placeholder-teal-800\/75::placeholder{color:#115e59bf}.placeholder-teal-800\/80::placeholder{color:#115e59cc}.placeholder-teal-800\/90::placeholder{color:#115e59e6}.placeholder-teal-800\/95::placeholder{color:#115e59f2}.placeholder-teal-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(19 78 74 / var(--tw-placeholder-opacity))}.placeholder-teal-900\/0::placeholder{color:#134e4a00}.placeholder-teal-900\/10::placeholder{color:#134e4a1a}.placeholder-teal-900\/100::placeholder{color:#134e4a}.placeholder-teal-900\/20::placeholder{color:#134e4a33}.placeholder-teal-900\/25::placeholder{color:#134e4a40}.placeholder-teal-900\/30::placeholder{color:#134e4a4d}.placeholder-teal-900\/40::placeholder{color:#134e4a66}.placeholder-teal-900\/5::placeholder{color:#134e4a0d}.placeholder-teal-900\/50::placeholder{color:#134e4a80}.placeholder-teal-900\/60::placeholder{color:#134e4a99}.placeholder-teal-900\/70::placeholder{color:#134e4ab3}.placeholder-teal-900\/75::placeholder{color:#134e4abf}.placeholder-teal-900\/80::placeholder{color:#134e4acc}.placeholder-teal-900\/90::placeholder{color:#134e4ae6}.placeholder-teal-900\/95::placeholder{color:#134e4af2}.placeholder-tertiary::placeholder{color:var(--color-tertiary)}.placeholder-tourisme-primary::placeholder{color:var(--tourisme-primary)}.placeholder-tourisme-secondary::placeholder{color:var(--tourisme-secondary)}.placeholder-tourisme-tertiary::placeholder{color:var(--tourisme-tertiary)}.placeholder-transparent::placeholder{color:transparent}.placeholder-transparent\/0::placeholder{color:#0000}.placeholder-transparent\/10::placeholder{color:#0000001a}.placeholder-transparent\/100::placeholder{color:#000}.placeholder-transparent\/20::placeholder{color:#0003}.placeholder-transparent\/25::placeholder{color:#00000040}.placeholder-transparent\/30::placeholder{color:#0000004d}.placeholder-transparent\/40::placeholder{color:#0006}.placeholder-transparent\/5::placeholder{color:#0000000d}.placeholder-transparent\/50::placeholder{color:#00000080}.placeholder-transparent\/60::placeholder{color:#0009}.placeholder-transparent\/70::placeholder{color:#000000b3}.placeholder-transparent\/75::placeholder{color:#000000bf}.placeholder-transparent\/80::placeholder{color:#000c}.placeholder-transparent\/90::placeholder{color:#000000e6}.placeholder-transparent\/95::placeholder{color:#000000f2}.placeholder-urban_farming-primary::placeholder{color:var(--urban_farming-primary)}.placeholder-urban_farming-secondary::placeholder{color:var(--urban_farming-secondary)}.placeholder-urban_farming-tertiary::placeholder{color:var(--urban_farming-tertiary)}.placeholder-violet-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(237 233 254 / var(--tw-placeholder-opacity))}.placeholder-violet-100\/0::placeholder{color:#ede9fe00}.placeholder-violet-100\/10::placeholder{color:#ede9fe1a}.placeholder-violet-100\/100::placeholder{color:#ede9fe}.placeholder-violet-100\/20::placeholder{color:#ede9fe33}.placeholder-violet-100\/25::placeholder{color:#ede9fe40}.placeholder-violet-100\/30::placeholder{color:#ede9fe4d}.placeholder-violet-100\/40::placeholder{color:#ede9fe66}.placeholder-violet-100\/5::placeholder{color:#ede9fe0d}.placeholder-violet-100\/50::placeholder{color:#ede9fe80}.placeholder-violet-100\/60::placeholder{color:#ede9fe99}.placeholder-violet-100\/70::placeholder{color:#ede9feb3}.placeholder-violet-100\/75::placeholder{color:#ede9febf}.placeholder-violet-100\/80::placeholder{color:#ede9fecc}.placeholder-violet-100\/90::placeholder{color:#ede9fee6}.placeholder-violet-100\/95::placeholder{color:#ede9fef2}.placeholder-violet-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(221 214 254 / var(--tw-placeholder-opacity))}.placeholder-violet-200\/0::placeholder{color:#ddd6fe00}.placeholder-violet-200\/10::placeholder{color:#ddd6fe1a}.placeholder-violet-200\/100::placeholder{color:#ddd6fe}.placeholder-violet-200\/20::placeholder{color:#ddd6fe33}.placeholder-violet-200\/25::placeholder{color:#ddd6fe40}.placeholder-violet-200\/30::placeholder{color:#ddd6fe4d}.placeholder-violet-200\/40::placeholder{color:#ddd6fe66}.placeholder-violet-200\/5::placeholder{color:#ddd6fe0d}.placeholder-violet-200\/50::placeholder{color:#ddd6fe80}.placeholder-violet-200\/60::placeholder{color:#ddd6fe99}.placeholder-violet-200\/70::placeholder{color:#ddd6feb3}.placeholder-violet-200\/75::placeholder{color:#ddd6febf}.placeholder-violet-200\/80::placeholder{color:#ddd6fecc}.placeholder-violet-200\/90::placeholder{color:#ddd6fee6}.placeholder-violet-200\/95::placeholder{color:#ddd6fef2}.placeholder-violet-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(196 181 253 / var(--tw-placeholder-opacity))}.placeholder-violet-300\/0::placeholder{color:#c4b5fd00}.placeholder-violet-300\/10::placeholder{color:#c4b5fd1a}.placeholder-violet-300\/100::placeholder{color:#c4b5fd}.placeholder-violet-300\/20::placeholder{color:#c4b5fd33}.placeholder-violet-300\/25::placeholder{color:#c4b5fd40}.placeholder-violet-300\/30::placeholder{color:#c4b5fd4d}.placeholder-violet-300\/40::placeholder{color:#c4b5fd66}.placeholder-violet-300\/5::placeholder{color:#c4b5fd0d}.placeholder-violet-300\/50::placeholder{color:#c4b5fd80}.placeholder-violet-300\/60::placeholder{color:#c4b5fd99}.placeholder-violet-300\/70::placeholder{color:#c4b5fdb3}.placeholder-violet-300\/75::placeholder{color:#c4b5fdbf}.placeholder-violet-300\/80::placeholder{color:#c4b5fdcc}.placeholder-violet-300\/90::placeholder{color:#c4b5fde6}.placeholder-violet-300\/95::placeholder{color:#c4b5fdf2}.placeholder-violet-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(167 139 250 / var(--tw-placeholder-opacity))}.placeholder-violet-400\/0::placeholder{color:#a78bfa00}.placeholder-violet-400\/10::placeholder{color:#a78bfa1a}.placeholder-violet-400\/100::placeholder{color:#a78bfa}.placeholder-violet-400\/20::placeholder{color:#a78bfa33}.placeholder-violet-400\/25::placeholder{color:#a78bfa40}.placeholder-violet-400\/30::placeholder{color:#a78bfa4d}.placeholder-violet-400\/40::placeholder{color:#a78bfa66}.placeholder-violet-400\/5::placeholder{color:#a78bfa0d}.placeholder-violet-400\/50::placeholder{color:#a78bfa80}.placeholder-violet-400\/60::placeholder{color:#a78bfa99}.placeholder-violet-400\/70::placeholder{color:#a78bfab3}.placeholder-violet-400\/75::placeholder{color:#a78bfabf}.placeholder-violet-400\/80::placeholder{color:#a78bfacc}.placeholder-violet-400\/90::placeholder{color:#a78bfae6}.placeholder-violet-400\/95::placeholder{color:#a78bfaf2}.placeholder-violet-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(245 243 255 / var(--tw-placeholder-opacity))}.placeholder-violet-50\/0::placeholder{color:#f5f3ff00}.placeholder-violet-50\/10::placeholder{color:#f5f3ff1a}.placeholder-violet-50\/100::placeholder{color:#f5f3ff}.placeholder-violet-50\/20::placeholder{color:#f5f3ff33}.placeholder-violet-50\/25::placeholder{color:#f5f3ff40}.placeholder-violet-50\/30::placeholder{color:#f5f3ff4d}.placeholder-violet-50\/40::placeholder{color:#f5f3ff66}.placeholder-violet-50\/5::placeholder{color:#f5f3ff0d}.placeholder-violet-50\/50::placeholder{color:#f5f3ff80}.placeholder-violet-50\/60::placeholder{color:#f5f3ff99}.placeholder-violet-50\/70::placeholder{color:#f5f3ffb3}.placeholder-violet-50\/75::placeholder{color:#f5f3ffbf}.placeholder-violet-50\/80::placeholder{color:#f5f3ffcc}.placeholder-violet-50\/90::placeholder{color:#f5f3ffe6}.placeholder-violet-50\/95::placeholder{color:#f5f3fff2}.placeholder-violet-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(139 92 246 / var(--tw-placeholder-opacity))}.placeholder-violet-500\/0::placeholder{color:#8b5cf600}.placeholder-violet-500\/10::placeholder{color:#8b5cf61a}.placeholder-violet-500\/100::placeholder{color:#8b5cf6}.placeholder-violet-500\/20::placeholder{color:#8b5cf633}.placeholder-violet-500\/25::placeholder{color:#8b5cf640}.placeholder-violet-500\/30::placeholder{color:#8b5cf64d}.placeholder-violet-500\/40::placeholder{color:#8b5cf666}.placeholder-violet-500\/5::placeholder{color:#8b5cf60d}.placeholder-violet-500\/50::placeholder{color:#8b5cf680}.placeholder-violet-500\/60::placeholder{color:#8b5cf699}.placeholder-violet-500\/70::placeholder{color:#8b5cf6b3}.placeholder-violet-500\/75::placeholder{color:#8b5cf6bf}.placeholder-violet-500\/80::placeholder{color:#8b5cf6cc}.placeholder-violet-500\/90::placeholder{color:#8b5cf6e6}.placeholder-violet-500\/95::placeholder{color:#8b5cf6f2}.placeholder-violet-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(124 58 237 / var(--tw-placeholder-opacity))}.placeholder-violet-600\/0::placeholder{color:#7c3aed00}.placeholder-violet-600\/10::placeholder{color:#7c3aed1a}.placeholder-violet-600\/100::placeholder{color:#7c3aed}.placeholder-violet-600\/20::placeholder{color:#7c3aed33}.placeholder-violet-600\/25::placeholder{color:#7c3aed40}.placeholder-violet-600\/30::placeholder{color:#7c3aed4d}.placeholder-violet-600\/40::placeholder{color:#7c3aed66}.placeholder-violet-600\/5::placeholder{color:#7c3aed0d}.placeholder-violet-600\/50::placeholder{color:#7c3aed80}.placeholder-violet-600\/60::placeholder{color:#7c3aed99}.placeholder-violet-600\/70::placeholder{color:#7c3aedb3}.placeholder-violet-600\/75::placeholder{color:#7c3aedbf}.placeholder-violet-600\/80::placeholder{color:#7c3aedcc}.placeholder-violet-600\/90::placeholder{color:#7c3aede6}.placeholder-violet-600\/95::placeholder{color:#7c3aedf2}.placeholder-violet-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(109 40 217 / var(--tw-placeholder-opacity))}.placeholder-violet-700\/0::placeholder{color:#6d28d900}.placeholder-violet-700\/10::placeholder{color:#6d28d91a}.placeholder-violet-700\/100::placeholder{color:#6d28d9}.placeholder-violet-700\/20::placeholder{color:#6d28d933}.placeholder-violet-700\/25::placeholder{color:#6d28d940}.placeholder-violet-700\/30::placeholder{color:#6d28d94d}.placeholder-violet-700\/40::placeholder{color:#6d28d966}.placeholder-violet-700\/5::placeholder{color:#6d28d90d}.placeholder-violet-700\/50::placeholder{color:#6d28d980}.placeholder-violet-700\/60::placeholder{color:#6d28d999}.placeholder-violet-700\/70::placeholder{color:#6d28d9b3}.placeholder-violet-700\/75::placeholder{color:#6d28d9bf}.placeholder-violet-700\/80::placeholder{color:#6d28d9cc}.placeholder-violet-700\/90::placeholder{color:#6d28d9e6}.placeholder-violet-700\/95::placeholder{color:#6d28d9f2}.placeholder-violet-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(91 33 182 / var(--tw-placeholder-opacity))}.placeholder-violet-800\/0::placeholder{color:#5b21b600}.placeholder-violet-800\/10::placeholder{color:#5b21b61a}.placeholder-violet-800\/100::placeholder{color:#5b21b6}.placeholder-violet-800\/20::placeholder{color:#5b21b633}.placeholder-violet-800\/25::placeholder{color:#5b21b640}.placeholder-violet-800\/30::placeholder{color:#5b21b64d}.placeholder-violet-800\/40::placeholder{color:#5b21b666}.placeholder-violet-800\/5::placeholder{color:#5b21b60d}.placeholder-violet-800\/50::placeholder{color:#5b21b680}.placeholder-violet-800\/60::placeholder{color:#5b21b699}.placeholder-violet-800\/70::placeholder{color:#5b21b6b3}.placeholder-violet-800\/75::placeholder{color:#5b21b6bf}.placeholder-violet-800\/80::placeholder{color:#5b21b6cc}.placeholder-violet-800\/90::placeholder{color:#5b21b6e6}.placeholder-violet-800\/95::placeholder{color:#5b21b6f2}.placeholder-violet-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(76 29 149 / var(--tw-placeholder-opacity))}.placeholder-violet-900\/0::placeholder{color:#4c1d9500}.placeholder-violet-900\/10::placeholder{color:#4c1d951a}.placeholder-violet-900\/100::placeholder{color:#4c1d95}.placeholder-violet-900\/20::placeholder{color:#4c1d9533}.placeholder-violet-900\/25::placeholder{color:#4c1d9540}.placeholder-violet-900\/30::placeholder{color:#4c1d954d}.placeholder-violet-900\/40::placeholder{color:#4c1d9566}.placeholder-violet-900\/5::placeholder{color:#4c1d950d}.placeholder-violet-900\/50::placeholder{color:#4c1d9580}.placeholder-violet-900\/60::placeholder{color:#4c1d9599}.placeholder-violet-900\/70::placeholder{color:#4c1d95b3}.placeholder-violet-900\/75::placeholder{color:#4c1d95bf}.placeholder-violet-900\/80::placeholder{color:#4c1d95cc}.placeholder-violet-900\/90::placeholder{color:#4c1d95e6}.placeholder-violet-900\/95::placeholder{color:#4c1d95f2}.placeholder-wellenstein-primary::placeholder{color:var(--wellenstein-primary)}.placeholder-wellenstein-secondary::placeholder{color:var(--wellenstein-secondary)}.placeholder-wellenstein-tertiary::placeholder{color:var(--wellenstein-tertiary)}.placeholder-white::placeholder{--tw-placeholder-opacity: 1;color:rgb(255 255 255 / var(--tw-placeholder-opacity))}.placeholder-white\/0::placeholder{color:#fff0}.placeholder-white\/10::placeholder{color:#ffffff1a}.placeholder-white\/100::placeholder{color:#fff}.placeholder-white\/20::placeholder{color:#fff3}.placeholder-white\/25::placeholder{color:#ffffff40}.placeholder-white\/30::placeholder{color:#ffffff4d}.placeholder-white\/40::placeholder{color:#fff6}.placeholder-white\/5::placeholder{color:#ffffff0d}.placeholder-white\/50::placeholder{color:#ffffff80}.placeholder-white\/60::placeholder{color:#fff9}.placeholder-white\/70::placeholder{color:#ffffffb3}.placeholder-white\/75::placeholder{color:#ffffffbf}.placeholder-white\/80::placeholder{color:#fffc}.placeholder-white\/90::placeholder{color:#ffffffe6}.placeholder-white\/95::placeholder{color:#fffffff2}.placeholder-yellow-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(254 249 195 / var(--tw-placeholder-opacity))}.placeholder-yellow-100\/0::placeholder{color:#fef9c300}.placeholder-yellow-100\/10::placeholder{color:#fef9c31a}.placeholder-yellow-100\/100::placeholder{color:#fef9c3}.placeholder-yellow-100\/20::placeholder{color:#fef9c333}.placeholder-yellow-100\/25::placeholder{color:#fef9c340}.placeholder-yellow-100\/30::placeholder{color:#fef9c34d}.placeholder-yellow-100\/40::placeholder{color:#fef9c366}.placeholder-yellow-100\/5::placeholder{color:#fef9c30d}.placeholder-yellow-100\/50::placeholder{color:#fef9c380}.placeholder-yellow-100\/60::placeholder{color:#fef9c399}.placeholder-yellow-100\/70::placeholder{color:#fef9c3b3}.placeholder-yellow-100\/75::placeholder{color:#fef9c3bf}.placeholder-yellow-100\/80::placeholder{color:#fef9c3cc}.placeholder-yellow-100\/90::placeholder{color:#fef9c3e6}.placeholder-yellow-100\/95::placeholder{color:#fef9c3f2}.placeholder-yellow-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(254 240 138 / var(--tw-placeholder-opacity))}.placeholder-yellow-200\/0::placeholder{color:#fef08a00}.placeholder-yellow-200\/10::placeholder{color:#fef08a1a}.placeholder-yellow-200\/100::placeholder{color:#fef08a}.placeholder-yellow-200\/20::placeholder{color:#fef08a33}.placeholder-yellow-200\/25::placeholder{color:#fef08a40}.placeholder-yellow-200\/30::placeholder{color:#fef08a4d}.placeholder-yellow-200\/40::placeholder{color:#fef08a66}.placeholder-yellow-200\/5::placeholder{color:#fef08a0d}.placeholder-yellow-200\/50::placeholder{color:#fef08a80}.placeholder-yellow-200\/60::placeholder{color:#fef08a99}.placeholder-yellow-200\/70::placeholder{color:#fef08ab3}.placeholder-yellow-200\/75::placeholder{color:#fef08abf}.placeholder-yellow-200\/80::placeholder{color:#fef08acc}.placeholder-yellow-200\/90::placeholder{color:#fef08ae6}.placeholder-yellow-200\/95::placeholder{color:#fef08af2}.placeholder-yellow-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(253 224 71 / var(--tw-placeholder-opacity))}.placeholder-yellow-300\/0::placeholder{color:#fde04700}.placeholder-yellow-300\/10::placeholder{color:#fde0471a}.placeholder-yellow-300\/100::placeholder{color:#fde047}.placeholder-yellow-300\/20::placeholder{color:#fde04733}.placeholder-yellow-300\/25::placeholder{color:#fde04740}.placeholder-yellow-300\/30::placeholder{color:#fde0474d}.placeholder-yellow-300\/40::placeholder{color:#fde04766}.placeholder-yellow-300\/5::placeholder{color:#fde0470d}.placeholder-yellow-300\/50::placeholder{color:#fde04780}.placeholder-yellow-300\/60::placeholder{color:#fde04799}.placeholder-yellow-300\/70::placeholder{color:#fde047b3}.placeholder-yellow-300\/75::placeholder{color:#fde047bf}.placeholder-yellow-300\/80::placeholder{color:#fde047cc}.placeholder-yellow-300\/90::placeholder{color:#fde047e6}.placeholder-yellow-300\/95::placeholder{color:#fde047f2}.placeholder-yellow-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(250 204 21 / var(--tw-placeholder-opacity))}.placeholder-yellow-400\/0::placeholder{color:#facc1500}.placeholder-yellow-400\/10::placeholder{color:#facc151a}.placeholder-yellow-400\/100::placeholder{color:#facc15}.placeholder-yellow-400\/20::placeholder{color:#facc1533}.placeholder-yellow-400\/25::placeholder{color:#facc1540}.placeholder-yellow-400\/30::placeholder{color:#facc154d}.placeholder-yellow-400\/40::placeholder{color:#facc1566}.placeholder-yellow-400\/5::placeholder{color:#facc150d}.placeholder-yellow-400\/50::placeholder{color:#facc1580}.placeholder-yellow-400\/60::placeholder{color:#facc1599}.placeholder-yellow-400\/70::placeholder{color:#facc15b3}.placeholder-yellow-400\/75::placeholder{color:#facc15bf}.placeholder-yellow-400\/80::placeholder{color:#facc15cc}.placeholder-yellow-400\/90::placeholder{color:#facc15e6}.placeholder-yellow-400\/95::placeholder{color:#facc15f2}.placeholder-yellow-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(254 252 232 / var(--tw-placeholder-opacity))}.placeholder-yellow-50\/0::placeholder{color:#fefce800}.placeholder-yellow-50\/10::placeholder{color:#fefce81a}.placeholder-yellow-50\/100::placeholder{color:#fefce8}.placeholder-yellow-50\/20::placeholder{color:#fefce833}.placeholder-yellow-50\/25::placeholder{color:#fefce840}.placeholder-yellow-50\/30::placeholder{color:#fefce84d}.placeholder-yellow-50\/40::placeholder{color:#fefce866}.placeholder-yellow-50\/5::placeholder{color:#fefce80d}.placeholder-yellow-50\/50::placeholder{color:#fefce880}.placeholder-yellow-50\/60::placeholder{color:#fefce899}.placeholder-yellow-50\/70::placeholder{color:#fefce8b3}.placeholder-yellow-50\/75::placeholder{color:#fefce8bf}.placeholder-yellow-50\/80::placeholder{color:#fefce8cc}.placeholder-yellow-50\/90::placeholder{color:#fefce8e6}.placeholder-yellow-50\/95::placeholder{color:#fefce8f2}.placeholder-yellow-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(234 179 8 / var(--tw-placeholder-opacity))}.placeholder-yellow-500\/0::placeholder{color:#eab30800}.placeholder-yellow-500\/10::placeholder{color:#eab3081a}.placeholder-yellow-500\/100::placeholder{color:#eab308}.placeholder-yellow-500\/20::placeholder{color:#eab30833}.placeholder-yellow-500\/25::placeholder{color:#eab30840}.placeholder-yellow-500\/30::placeholder{color:#eab3084d}.placeholder-yellow-500\/40::placeholder{color:#eab30866}.placeholder-yellow-500\/5::placeholder{color:#eab3080d}.placeholder-yellow-500\/50::placeholder{color:#eab30880}.placeholder-yellow-500\/60::placeholder{color:#eab30899}.placeholder-yellow-500\/70::placeholder{color:#eab308b3}.placeholder-yellow-500\/75::placeholder{color:#eab308bf}.placeholder-yellow-500\/80::placeholder{color:#eab308cc}.placeholder-yellow-500\/90::placeholder{color:#eab308e6}.placeholder-yellow-500\/95::placeholder{color:#eab308f2}.placeholder-yellow-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(202 138 4 / var(--tw-placeholder-opacity))}.placeholder-yellow-600\/0::placeholder{color:#ca8a0400}.placeholder-yellow-600\/10::placeholder{color:#ca8a041a}.placeholder-yellow-600\/100::placeholder{color:#ca8a04}.placeholder-yellow-600\/20::placeholder{color:#ca8a0433}.placeholder-yellow-600\/25::placeholder{color:#ca8a0440}.placeholder-yellow-600\/30::placeholder{color:#ca8a044d}.placeholder-yellow-600\/40::placeholder{color:#ca8a0466}.placeholder-yellow-600\/5::placeholder{color:#ca8a040d}.placeholder-yellow-600\/50::placeholder{color:#ca8a0480}.placeholder-yellow-600\/60::placeholder{color:#ca8a0499}.placeholder-yellow-600\/70::placeholder{color:#ca8a04b3}.placeholder-yellow-600\/75::placeholder{color:#ca8a04bf}.placeholder-yellow-600\/80::placeholder{color:#ca8a04cc}.placeholder-yellow-600\/90::placeholder{color:#ca8a04e6}.placeholder-yellow-600\/95::placeholder{color:#ca8a04f2}.placeholder-yellow-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(161 98 7 / var(--tw-placeholder-opacity))}.placeholder-yellow-700\/0::placeholder{color:#a1620700}.placeholder-yellow-700\/10::placeholder{color:#a162071a}.placeholder-yellow-700\/100::placeholder{color:#a16207}.placeholder-yellow-700\/20::placeholder{color:#a1620733}.placeholder-yellow-700\/25::placeholder{color:#a1620740}.placeholder-yellow-700\/30::placeholder{color:#a162074d}.placeholder-yellow-700\/40::placeholder{color:#a1620766}.placeholder-yellow-700\/5::placeholder{color:#a162070d}.placeholder-yellow-700\/50::placeholder{color:#a1620780}.placeholder-yellow-700\/60::placeholder{color:#a1620799}.placeholder-yellow-700\/70::placeholder{color:#a16207b3}.placeholder-yellow-700\/75::placeholder{color:#a16207bf}.placeholder-yellow-700\/80::placeholder{color:#a16207cc}.placeholder-yellow-700\/90::placeholder{color:#a16207e6}.placeholder-yellow-700\/95::placeholder{color:#a16207f2}.placeholder-yellow-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(133 77 14 / var(--tw-placeholder-opacity))}.placeholder-yellow-800\/0::placeholder{color:#854d0e00}.placeholder-yellow-800\/10::placeholder{color:#854d0e1a}.placeholder-yellow-800\/100::placeholder{color:#854d0e}.placeholder-yellow-800\/20::placeholder{color:#854d0e33}.placeholder-yellow-800\/25::placeholder{color:#854d0e40}.placeholder-yellow-800\/30::placeholder{color:#854d0e4d}.placeholder-yellow-800\/40::placeholder{color:#854d0e66}.placeholder-yellow-800\/5::placeholder{color:#854d0e0d}.placeholder-yellow-800\/50::placeholder{color:#854d0e80}.placeholder-yellow-800\/60::placeholder{color:#854d0e99}.placeholder-yellow-800\/70::placeholder{color:#854d0eb3}.placeholder-yellow-800\/75::placeholder{color:#854d0ebf}.placeholder-yellow-800\/80::placeholder{color:#854d0ecc}.placeholder-yellow-800\/90::placeholder{color:#854d0ee6}.placeholder-yellow-800\/95::placeholder{color:#854d0ef2}.placeholder-yellow-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(113 63 18 / var(--tw-placeholder-opacity))}.placeholder-yellow-900\/0::placeholder{color:#713f1200}.placeholder-yellow-900\/10::placeholder{color:#713f121a}.placeholder-yellow-900\/100::placeholder{color:#713f12}.placeholder-yellow-900\/20::placeholder{color:#713f1233}.placeholder-yellow-900\/25::placeholder{color:#713f1240}.placeholder-yellow-900\/30::placeholder{color:#713f124d}.placeholder-yellow-900\/40::placeholder{color:#713f1266}.placeholder-yellow-900\/5::placeholder{color:#713f120d}.placeholder-yellow-900\/50::placeholder{color:#713f1280}.placeholder-yellow-900\/60::placeholder{color:#713f1299}.placeholder-yellow-900\/70::placeholder{color:#713f12b3}.placeholder-yellow-900\/75::placeholder{color:#713f12bf}.placeholder-yellow-900\/80::placeholder{color:#713f12cc}.placeholder-yellow-900\/90::placeholder{color:#713f12e6}.placeholder-yellow-900\/95::placeholder{color:#713f12f2}.placeholder-zinc-100::placeholder{--tw-placeholder-opacity: 1;color:rgb(244 244 245 / var(--tw-placeholder-opacity))}.placeholder-zinc-100\/0::placeholder{color:#f4f4f500}.placeholder-zinc-100\/10::placeholder{color:#f4f4f51a}.placeholder-zinc-100\/100::placeholder{color:#f4f4f5}.placeholder-zinc-100\/20::placeholder{color:#f4f4f533}.placeholder-zinc-100\/25::placeholder{color:#f4f4f540}.placeholder-zinc-100\/30::placeholder{color:#f4f4f54d}.placeholder-zinc-100\/40::placeholder{color:#f4f4f566}.placeholder-zinc-100\/5::placeholder{color:#f4f4f50d}.placeholder-zinc-100\/50::placeholder{color:#f4f4f580}.placeholder-zinc-100\/60::placeholder{color:#f4f4f599}.placeholder-zinc-100\/70::placeholder{color:#f4f4f5b3}.placeholder-zinc-100\/75::placeholder{color:#f4f4f5bf}.placeholder-zinc-100\/80::placeholder{color:#f4f4f5cc}.placeholder-zinc-100\/90::placeholder{color:#f4f4f5e6}.placeholder-zinc-100\/95::placeholder{color:#f4f4f5f2}.placeholder-zinc-200::placeholder{--tw-placeholder-opacity: 1;color:rgb(228 228 231 / var(--tw-placeholder-opacity))}.placeholder-zinc-200\/0::placeholder{color:#e4e4e700}.placeholder-zinc-200\/10::placeholder{color:#e4e4e71a}.placeholder-zinc-200\/100::placeholder{color:#e4e4e7}.placeholder-zinc-200\/20::placeholder{color:#e4e4e733}.placeholder-zinc-200\/25::placeholder{color:#e4e4e740}.placeholder-zinc-200\/30::placeholder{color:#e4e4e74d}.placeholder-zinc-200\/40::placeholder{color:#e4e4e766}.placeholder-zinc-200\/5::placeholder{color:#e4e4e70d}.placeholder-zinc-200\/50::placeholder{color:#e4e4e780}.placeholder-zinc-200\/60::placeholder{color:#e4e4e799}.placeholder-zinc-200\/70::placeholder{color:#e4e4e7b3}.placeholder-zinc-200\/75::placeholder{color:#e4e4e7bf}.placeholder-zinc-200\/80::placeholder{color:#e4e4e7cc}.placeholder-zinc-200\/90::placeholder{color:#e4e4e7e6}.placeholder-zinc-200\/95::placeholder{color:#e4e4e7f2}.placeholder-zinc-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(212 212 216 / var(--tw-placeholder-opacity))}.placeholder-zinc-300\/0::placeholder{color:#d4d4d800}.placeholder-zinc-300\/10::placeholder{color:#d4d4d81a}.placeholder-zinc-300\/100::placeholder{color:#d4d4d8}.placeholder-zinc-300\/20::placeholder{color:#d4d4d833}.placeholder-zinc-300\/25::placeholder{color:#d4d4d840}.placeholder-zinc-300\/30::placeholder{color:#d4d4d84d}.placeholder-zinc-300\/40::placeholder{color:#d4d4d866}.placeholder-zinc-300\/5::placeholder{color:#d4d4d80d}.placeholder-zinc-300\/50::placeholder{color:#d4d4d880}.placeholder-zinc-300\/60::placeholder{color:#d4d4d899}.placeholder-zinc-300\/70::placeholder{color:#d4d4d8b3}.placeholder-zinc-300\/75::placeholder{color:#d4d4d8bf}.placeholder-zinc-300\/80::placeholder{color:#d4d4d8cc}.placeholder-zinc-300\/90::placeholder{color:#d4d4d8e6}.placeholder-zinc-300\/95::placeholder{color:#d4d4d8f2}.placeholder-zinc-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(161 161 170 / var(--tw-placeholder-opacity))}.placeholder-zinc-400\/0::placeholder{color:#a1a1aa00}.placeholder-zinc-400\/10::placeholder{color:#a1a1aa1a}.placeholder-zinc-400\/100::placeholder{color:#a1a1aa}.placeholder-zinc-400\/20::placeholder{color:#a1a1aa33}.placeholder-zinc-400\/25::placeholder{color:#a1a1aa40}.placeholder-zinc-400\/30::placeholder{color:#a1a1aa4d}.placeholder-zinc-400\/40::placeholder{color:#a1a1aa66}.placeholder-zinc-400\/5::placeholder{color:#a1a1aa0d}.placeholder-zinc-400\/50::placeholder{color:#a1a1aa80}.placeholder-zinc-400\/60::placeholder{color:#a1a1aa99}.placeholder-zinc-400\/70::placeholder{color:#a1a1aab3}.placeholder-zinc-400\/75::placeholder{color:#a1a1aabf}.placeholder-zinc-400\/80::placeholder{color:#a1a1aacc}.placeholder-zinc-400\/90::placeholder{color:#a1a1aae6}.placeholder-zinc-400\/95::placeholder{color:#a1a1aaf2}.placeholder-zinc-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(250 250 250 / var(--tw-placeholder-opacity))}.placeholder-zinc-50\/0::placeholder{color:#fafafa00}.placeholder-zinc-50\/10::placeholder{color:#fafafa1a}.placeholder-zinc-50\/100::placeholder{color:#fafafa}.placeholder-zinc-50\/20::placeholder{color:#fafafa33}.placeholder-zinc-50\/25::placeholder{color:#fafafa40}.placeholder-zinc-50\/30::placeholder{color:#fafafa4d}.placeholder-zinc-50\/40::placeholder{color:#fafafa66}.placeholder-zinc-50\/5::placeholder{color:#fafafa0d}.placeholder-zinc-50\/50::placeholder{color:#fafafa80}.placeholder-zinc-50\/60::placeholder{color:#fafafa99}.placeholder-zinc-50\/70::placeholder{color:#fafafab3}.placeholder-zinc-50\/75::placeholder{color:#fafafabf}.placeholder-zinc-50\/80::placeholder{color:#fafafacc}.placeholder-zinc-50\/90::placeholder{color:#fafafae6}.placeholder-zinc-50\/95::placeholder{color:#fafafaf2}.placeholder-zinc-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(113 113 122 / var(--tw-placeholder-opacity))}.placeholder-zinc-500\/0::placeholder{color:#71717a00}.placeholder-zinc-500\/10::placeholder{color:#71717a1a}.placeholder-zinc-500\/100::placeholder{color:#71717a}.placeholder-zinc-500\/20::placeholder{color:#71717a33}.placeholder-zinc-500\/25::placeholder{color:#71717a40}.placeholder-zinc-500\/30::placeholder{color:#71717a4d}.placeholder-zinc-500\/40::placeholder{color:#71717a66}.placeholder-zinc-500\/5::placeholder{color:#71717a0d}.placeholder-zinc-500\/50::placeholder{color:#71717a80}.placeholder-zinc-500\/60::placeholder{color:#71717a99}.placeholder-zinc-500\/70::placeholder{color:#71717ab3}.placeholder-zinc-500\/75::placeholder{color:#71717abf}.placeholder-zinc-500\/80::placeholder{color:#71717acc}.placeholder-zinc-500\/90::placeholder{color:#71717ae6}.placeholder-zinc-500\/95::placeholder{color:#71717af2}.placeholder-zinc-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(82 82 91 / var(--tw-placeholder-opacity))}.placeholder-zinc-600\/0::placeholder{color:#52525b00}.placeholder-zinc-600\/10::placeholder{color:#52525b1a}.placeholder-zinc-600\/100::placeholder{color:#52525b}.placeholder-zinc-600\/20::placeholder{color:#52525b33}.placeholder-zinc-600\/25::placeholder{color:#52525b40}.placeholder-zinc-600\/30::placeholder{color:#52525b4d}.placeholder-zinc-600\/40::placeholder{color:#52525b66}.placeholder-zinc-600\/5::placeholder{color:#52525b0d}.placeholder-zinc-600\/50::placeholder{color:#52525b80}.placeholder-zinc-600\/60::placeholder{color:#52525b99}.placeholder-zinc-600\/70::placeholder{color:#52525bb3}.placeholder-zinc-600\/75::placeholder{color:#52525bbf}.placeholder-zinc-600\/80::placeholder{color:#52525bcc}.placeholder-zinc-600\/90::placeholder{color:#52525be6}.placeholder-zinc-600\/95::placeholder{color:#52525bf2}.placeholder-zinc-700::placeholder{--tw-placeholder-opacity: 1;color:rgb(63 63 70 / var(--tw-placeholder-opacity))}.placeholder-zinc-700\/0::placeholder{color:#3f3f4600}.placeholder-zinc-700\/10::placeholder{color:#3f3f461a}.placeholder-zinc-700\/100::placeholder{color:#3f3f46}.placeholder-zinc-700\/20::placeholder{color:#3f3f4633}.placeholder-zinc-700\/25::placeholder{color:#3f3f4640}.placeholder-zinc-700\/30::placeholder{color:#3f3f464d}.placeholder-zinc-700\/40::placeholder{color:#3f3f4666}.placeholder-zinc-700\/5::placeholder{color:#3f3f460d}.placeholder-zinc-700\/50::placeholder{color:#3f3f4680}.placeholder-zinc-700\/60::placeholder{color:#3f3f4699}.placeholder-zinc-700\/70::placeholder{color:#3f3f46b3}.placeholder-zinc-700\/75::placeholder{color:#3f3f46bf}.placeholder-zinc-700\/80::placeholder{color:#3f3f46cc}.placeholder-zinc-700\/90::placeholder{color:#3f3f46e6}.placeholder-zinc-700\/95::placeholder{color:#3f3f46f2}.placeholder-zinc-800::placeholder{--tw-placeholder-opacity: 1;color:rgb(39 39 42 / var(--tw-placeholder-opacity))}.placeholder-zinc-800\/0::placeholder{color:#27272a00}.placeholder-zinc-800\/10::placeholder{color:#27272a1a}.placeholder-zinc-800\/100::placeholder{color:#27272a}.placeholder-zinc-800\/20::placeholder{color:#27272a33}.placeholder-zinc-800\/25::placeholder{color:#27272a40}.placeholder-zinc-800\/30::placeholder{color:#27272a4d}.placeholder-zinc-800\/40::placeholder{color:#27272a66}.placeholder-zinc-800\/5::placeholder{color:#27272a0d}.placeholder-zinc-800\/50::placeholder{color:#27272a80}.placeholder-zinc-800\/60::placeholder{color:#27272a99}.placeholder-zinc-800\/70::placeholder{color:#27272ab3}.placeholder-zinc-800\/75::placeholder{color:#27272abf}.placeholder-zinc-800\/80::placeholder{color:#27272acc}.placeholder-zinc-800\/90::placeholder{color:#27272ae6}.placeholder-zinc-800\/95::placeholder{color:#27272af2}.placeholder-zinc-900::placeholder{--tw-placeholder-opacity: 1;color:rgb(24 24 27 / var(--tw-placeholder-opacity))}.placeholder-zinc-900\/0::placeholder{color:#18181b00}.placeholder-zinc-900\/10::placeholder{color:#18181b1a}.placeholder-zinc-900\/100::placeholder{color:#18181b}.placeholder-zinc-900\/20::placeholder{color:#18181b33}.placeholder-zinc-900\/25::placeholder{color:#18181b40}.placeholder-zinc-900\/30::placeholder{color:#18181b4d}.placeholder-zinc-900\/40::placeholder{color:#18181b66}.placeholder-zinc-900\/5::placeholder{color:#18181b0d}.placeholder-zinc-900\/50::placeholder{color:#18181b80}.placeholder-zinc-900\/60::placeholder{color:#18181b99}.placeholder-zinc-900\/70::placeholder{color:#18181bb3}.placeholder-zinc-900\/75::placeholder{color:#18181bbf}.placeholder-zinc-900\/80::placeholder{color:#18181bcc}.placeholder-zinc-900\/90::placeholder{color:#18181be6}.placeholder-zinc-900\/95::placeholder{color:#18181bf2}.placeholder-opacity-0::placeholder{--tw-placeholder-opacity: 0}.placeholder-opacity-10::placeholder{--tw-placeholder-opacity: .1}.placeholder-opacity-100::placeholder{--tw-placeholder-opacity: 1}.placeholder-opacity-20::placeholder{--tw-placeholder-opacity: .2}.placeholder-opacity-25::placeholder{--tw-placeholder-opacity: .25}.placeholder-opacity-30::placeholder{--tw-placeholder-opacity: .3}.placeholder-opacity-40::placeholder{--tw-placeholder-opacity: .4}.placeholder-opacity-5::placeholder{--tw-placeholder-opacity: .05}.placeholder-opacity-50::placeholder{--tw-placeholder-opacity: .5}.placeholder-opacity-60::placeholder{--tw-placeholder-opacity: .6}.placeholder-opacity-70::placeholder{--tw-placeholder-opacity: .7}.placeholder-opacity-75::placeholder{--tw-placeholder-opacity: .75}.placeholder-opacity-80::placeholder{--tw-placeholder-opacity: .8}.placeholder-opacity-90::placeholder{--tw-placeholder-opacity: .9}.placeholder-opacity-95::placeholder{--tw-placeholder-opacity: .95}.caret-Occupation_du_sol-primary{caret-color:var(--Occupation_du_sol-primary)}.caret-Occupation_du_sol-secondary{caret-color:var(--Occupation_du_sol-secondary)}.caret-Occupation_du_sol-tertiary{caret-color:var(--Occupation_du_sol-tertiary)}.caret-violet-100{caret-color:#ede9fe}.caret-violet-100\/0{caret-color:#ede9fe00}.caret-violet-100\/10{caret-color:#ede9fe1a}.caret-violet-100\/100{caret-color:#ede9fe}.caret-violet-100\/20{caret-color:#ede9fe33}.caret-violet-100\/25{caret-color:#ede9fe40}.caret-violet-100\/30{caret-color:#ede9fe4d}.caret-violet-100\/40{caret-color:#ede9fe66}.caret-violet-100\/5{caret-color:#ede9fe0d}.caret-violet-100\/50{caret-color:#ede9fe80}.caret-violet-100\/60{caret-color:#ede9fe99}.caret-violet-100\/70{caret-color:#ede9feb3}.caret-violet-100\/75{caret-color:#ede9febf}.caret-violet-100\/80{caret-color:#ede9fecc}.caret-violet-100\/90{caret-color:#ede9fee6}.caret-violet-100\/95{caret-color:#ede9fef2}.caret-violet-200{caret-color:#ddd6fe}.caret-violet-200\/0{caret-color:#ddd6fe00}.caret-violet-200\/10{caret-color:#ddd6fe1a}.caret-violet-200\/100{caret-color:#ddd6fe}.caret-violet-200\/20{caret-color:#ddd6fe33}.caret-violet-200\/25{caret-color:#ddd6fe40}.caret-violet-200\/30{caret-color:#ddd6fe4d}.caret-violet-200\/40{caret-color:#ddd6fe66}.caret-violet-200\/5{caret-color:#ddd6fe0d}.caret-violet-200\/50{caret-color:#ddd6fe80}.caret-violet-200\/60{caret-color:#ddd6fe99}.caret-violet-200\/70{caret-color:#ddd6feb3}.caret-violet-200\/75{caret-color:#ddd6febf}.caret-violet-200\/80{caret-color:#ddd6fecc}.caret-violet-200\/90{caret-color:#ddd6fee6}.caret-violet-200\/95{caret-color:#ddd6fef2}.caret-violet-300{caret-color:#c4b5fd}.caret-violet-300\/0{caret-color:#c4b5fd00}.caret-violet-300\/10{caret-color:#c4b5fd1a}.caret-violet-300\/100{caret-color:#c4b5fd}.caret-violet-300\/20{caret-color:#c4b5fd33}.caret-violet-300\/25{caret-color:#c4b5fd40}.caret-violet-300\/30{caret-color:#c4b5fd4d}.caret-violet-300\/40{caret-color:#c4b5fd66}.caret-violet-300\/5{caret-color:#c4b5fd0d}.caret-violet-300\/50{caret-color:#c4b5fd80}.caret-violet-300\/60{caret-color:#c4b5fd99}.caret-violet-300\/70{caret-color:#c4b5fdb3}.caret-violet-300\/75{caret-color:#c4b5fdbf}.caret-violet-300\/80{caret-color:#c4b5fdcc}.caret-violet-300\/90{caret-color:#c4b5fde6}.caret-violet-300\/95{caret-color:#c4b5fdf2}.caret-violet-400{caret-color:#a78bfa}.caret-violet-400\/0{caret-color:#a78bfa00}.caret-violet-400\/10{caret-color:#a78bfa1a}.caret-violet-400\/100{caret-color:#a78bfa}.caret-violet-400\/20{caret-color:#a78bfa33}.caret-violet-400\/25{caret-color:#a78bfa40}.caret-violet-400\/30{caret-color:#a78bfa4d}.caret-violet-400\/40{caret-color:#a78bfa66}.caret-violet-400\/5{caret-color:#a78bfa0d}.caret-violet-400\/50{caret-color:#a78bfa80}.caret-violet-400\/60{caret-color:#a78bfa99}.caret-violet-400\/70{caret-color:#a78bfab3}.caret-violet-400\/75{caret-color:#a78bfabf}.caret-violet-400\/80{caret-color:#a78bfacc}.caret-violet-400\/90{caret-color:#a78bfae6}.caret-violet-400\/95{caret-color:#a78bfaf2}.caret-violet-50{caret-color:#f5f3ff}.caret-violet-50\/0{caret-color:#f5f3ff00}.caret-violet-50\/10{caret-color:#f5f3ff1a}.caret-violet-50\/100{caret-color:#f5f3ff}.caret-violet-50\/20{caret-color:#f5f3ff33}.caret-violet-50\/25{caret-color:#f5f3ff40}.caret-violet-50\/30{caret-color:#f5f3ff4d}.caret-violet-50\/40{caret-color:#f5f3ff66}.caret-violet-50\/5{caret-color:#f5f3ff0d}.caret-violet-50\/50{caret-color:#f5f3ff80}.caret-violet-50\/60{caret-color:#f5f3ff99}.caret-violet-50\/70{caret-color:#f5f3ffb3}.caret-violet-50\/75{caret-color:#f5f3ffbf}.caret-violet-50\/80{caret-color:#f5f3ffcc}.caret-violet-50\/90{caret-color:#f5f3ffe6}.caret-violet-50\/95{caret-color:#f5f3fff2}.caret-violet-500{caret-color:#8b5cf6}.caret-violet-500\/0{caret-color:#8b5cf600}.caret-violet-500\/10{caret-color:#8b5cf61a}.caret-violet-500\/100{caret-color:#8b5cf6}.caret-violet-500\/20{caret-color:#8b5cf633}.caret-violet-500\/25{caret-color:#8b5cf640}.caret-violet-500\/30{caret-color:#8b5cf64d}.caret-violet-500\/40{caret-color:#8b5cf666}.caret-violet-500\/5{caret-color:#8b5cf60d}.caret-violet-500\/50{caret-color:#8b5cf680}.caret-violet-500\/60{caret-color:#8b5cf699}.caret-violet-500\/70{caret-color:#8b5cf6b3}.caret-violet-500\/75{caret-color:#8b5cf6bf}.caret-violet-500\/80{caret-color:#8b5cf6cc}.caret-violet-500\/90{caret-color:#8b5cf6e6}.caret-violet-500\/95{caret-color:#8b5cf6f2}.caret-violet-600{caret-color:#7c3aed}.caret-violet-600\/0{caret-color:#7c3aed00}.caret-violet-600\/10{caret-color:#7c3aed1a}.caret-violet-600\/100{caret-color:#7c3aed}.caret-violet-600\/20{caret-color:#7c3aed33}.caret-violet-600\/25{caret-color:#7c3aed40}.caret-violet-600\/30{caret-color:#7c3aed4d}.caret-violet-600\/40{caret-color:#7c3aed66}.caret-violet-600\/5{caret-color:#7c3aed0d}.caret-violet-600\/50{caret-color:#7c3aed80}.caret-violet-600\/60{caret-color:#7c3aed99}.caret-violet-600\/70{caret-color:#7c3aedb3}.caret-violet-600\/75{caret-color:#7c3aedbf}.caret-violet-600\/80{caret-color:#7c3aedcc}.caret-violet-600\/90{caret-color:#7c3aede6}.caret-violet-600\/95{caret-color:#7c3aedf2}.caret-violet-700{caret-color:#6d28d9}.caret-violet-700\/0{caret-color:#6d28d900}.caret-violet-700\/10{caret-color:#6d28d91a}.caret-violet-700\/100{caret-color:#6d28d9}.caret-violet-700\/20{caret-color:#6d28d933}.caret-violet-700\/25{caret-color:#6d28d940}.caret-violet-700\/30{caret-color:#6d28d94d}.caret-violet-700\/40{caret-color:#6d28d966}.caret-violet-700\/5{caret-color:#6d28d90d}.caret-violet-700\/50{caret-color:#6d28d980}.caret-violet-700\/60{caret-color:#6d28d999}.caret-violet-700\/70{caret-color:#6d28d9b3}.caret-violet-700\/75{caret-color:#6d28d9bf}.caret-violet-700\/80{caret-color:#6d28d9cc}.caret-violet-700\/90{caret-color:#6d28d9e6}.caret-violet-700\/95{caret-color:#6d28d9f2}.caret-violet-800{caret-color:#5b21b6}.caret-violet-800\/0{caret-color:#5b21b600}.caret-violet-800\/10{caret-color:#5b21b61a}.caret-violet-800\/100{caret-color:#5b21b6}.caret-violet-800\/20{caret-color:#5b21b633}.caret-violet-800\/25{caret-color:#5b21b640}.caret-violet-800\/30{caret-color:#5b21b64d}.caret-violet-800\/40{caret-color:#5b21b666}.caret-violet-800\/5{caret-color:#5b21b60d}.caret-violet-800\/50{caret-color:#5b21b680}.caret-violet-800\/60{caret-color:#5b21b699}.caret-violet-800\/70{caret-color:#5b21b6b3}.caret-violet-800\/75{caret-color:#5b21b6bf}.caret-violet-800\/80{caret-color:#5b21b6cc}.caret-violet-800\/90{caret-color:#5b21b6e6}.caret-violet-800\/95{caret-color:#5b21b6f2}.caret-violet-900{caret-color:#4c1d95}.caret-violet-900\/0{caret-color:#4c1d9500}.caret-violet-900\/10{caret-color:#4c1d951a}.caret-violet-900\/100{caret-color:#4c1d95}.caret-violet-900\/20{caret-color:#4c1d9533}.caret-violet-900\/25{caret-color:#4c1d9540}.caret-violet-900\/30{caret-color:#4c1d954d}.caret-violet-900\/40{caret-color:#4c1d9566}.caret-violet-900\/5{caret-color:#4c1d950d}.caret-violet-900\/50{caret-color:#4c1d9580}.caret-violet-900\/60{caret-color:#4c1d9599}.caret-violet-900\/70{caret-color:#4c1d95b3}.caret-violet-900\/75{caret-color:#4c1d95bf}.caret-violet-900\/80{caret-color:#4c1d95cc}.caret-violet-900\/90{caret-color:#4c1d95e6}.caret-violet-900\/95{caret-color:#4c1d95f2}.accent-Occupation_du_sol-primary{accent-color:var(--Occupation_du_sol-primary)}.accent-Occupation_du_sol-secondary{accent-color:var(--Occupation_du_sol-secondary)}.accent-Occupation_du_sol-tertiary{accent-color:var(--Occupation_du_sol-tertiary)}.accent-violet-100{accent-color:#ede9fe}.accent-violet-100\/0{accent-color:rgb(237 233 254 / 0)}.accent-violet-100\/10{accent-color:rgb(237 233 254 / .1)}.accent-violet-100\/100{accent-color:rgb(237 233 254 / 1)}.accent-violet-100\/20{accent-color:rgb(237 233 254 / .2)}.accent-violet-100\/25{accent-color:rgb(237 233 254 / .25)}.accent-violet-100\/30{accent-color:rgb(237 233 254 / .3)}.accent-violet-100\/40{accent-color:rgb(237 233 254 / .4)}.accent-violet-100\/5{accent-color:rgb(237 233 254 / .05)}.accent-violet-100\/50{accent-color:rgb(237 233 254 / .5)}.accent-violet-100\/60{accent-color:rgb(237 233 254 / .6)}.accent-violet-100\/70{accent-color:rgb(237 233 254 / .7)}.accent-violet-100\/75{accent-color:rgb(237 233 254 / .75)}.accent-violet-100\/80{accent-color:rgb(237 233 254 / .8)}.accent-violet-100\/90{accent-color:rgb(237 233 254 / .9)}.accent-violet-100\/95{accent-color:rgb(237 233 254 / .95)}.accent-violet-200{accent-color:#ddd6fe}.accent-violet-200\/0{accent-color:rgb(221 214 254 / 0)}.accent-violet-200\/10{accent-color:rgb(221 214 254 / .1)}.accent-violet-200\/100{accent-color:rgb(221 214 254 / 1)}.accent-violet-200\/20{accent-color:rgb(221 214 254 / .2)}.accent-violet-200\/25{accent-color:rgb(221 214 254 / .25)}.accent-violet-200\/30{accent-color:rgb(221 214 254 / .3)}.accent-violet-200\/40{accent-color:rgb(221 214 254 / .4)}.accent-violet-200\/5{accent-color:rgb(221 214 254 / .05)}.accent-violet-200\/50{accent-color:rgb(221 214 254 / .5)}.accent-violet-200\/60{accent-color:rgb(221 214 254 / .6)}.accent-violet-200\/70{accent-color:rgb(221 214 254 / .7)}.accent-violet-200\/75{accent-color:rgb(221 214 254 / .75)}.accent-violet-200\/80{accent-color:rgb(221 214 254 / .8)}.accent-violet-200\/90{accent-color:rgb(221 214 254 / .9)}.accent-violet-200\/95{accent-color:rgb(221 214 254 / .95)}.accent-violet-300{accent-color:#c4b5fd}.accent-violet-300\/0{accent-color:rgb(196 181 253 / 0)}.accent-violet-300\/10{accent-color:rgb(196 181 253 / .1)}.accent-violet-300\/100{accent-color:rgb(196 181 253 / 1)}.accent-violet-300\/20{accent-color:rgb(196 181 253 / .2)}.accent-violet-300\/25{accent-color:rgb(196 181 253 / .25)}.accent-violet-300\/30{accent-color:rgb(196 181 253 / .3)}.accent-violet-300\/40{accent-color:rgb(196 181 253 / .4)}.accent-violet-300\/5{accent-color:rgb(196 181 253 / .05)}.accent-violet-300\/50{accent-color:rgb(196 181 253 / .5)}.accent-violet-300\/60{accent-color:rgb(196 181 253 / .6)}.accent-violet-300\/70{accent-color:rgb(196 181 253 / .7)}.accent-violet-300\/75{accent-color:rgb(196 181 253 / .75)}.accent-violet-300\/80{accent-color:rgb(196 181 253 / .8)}.accent-violet-300\/90{accent-color:rgb(196 181 253 / .9)}.accent-violet-300\/95{accent-color:rgb(196 181 253 / .95)}.accent-violet-400{accent-color:#a78bfa}.accent-violet-400\/0{accent-color:rgb(167 139 250 / 0)}.accent-violet-400\/10{accent-color:rgb(167 139 250 / .1)}.accent-violet-400\/100{accent-color:rgb(167 139 250 / 1)}.accent-violet-400\/20{accent-color:rgb(167 139 250 / .2)}.accent-violet-400\/25{accent-color:rgb(167 139 250 / .25)}.accent-violet-400\/30{accent-color:rgb(167 139 250 / .3)}.accent-violet-400\/40{accent-color:rgb(167 139 250 / .4)}.accent-violet-400\/5{accent-color:rgb(167 139 250 / .05)}.accent-violet-400\/50{accent-color:rgb(167 139 250 / .5)}.accent-violet-400\/60{accent-color:rgb(167 139 250 / .6)}.accent-violet-400\/70{accent-color:rgb(167 139 250 / .7)}.accent-violet-400\/75{accent-color:rgb(167 139 250 / .75)}.accent-violet-400\/80{accent-color:rgb(167 139 250 / .8)}.accent-violet-400\/90{accent-color:rgb(167 139 250 / .9)}.accent-violet-400\/95{accent-color:rgb(167 139 250 / .95)}.accent-violet-50{accent-color:#f5f3ff}.accent-violet-50\/0{accent-color:rgb(245 243 255 / 0)}.accent-violet-50\/10{accent-color:rgb(245 243 255 / .1)}.accent-violet-50\/100{accent-color:rgb(245 243 255 / 1)}.accent-violet-50\/20{accent-color:rgb(245 243 255 / .2)}.accent-violet-50\/25{accent-color:rgb(245 243 255 / .25)}.accent-violet-50\/30{accent-color:rgb(245 243 255 / .3)}.accent-violet-50\/40{accent-color:rgb(245 243 255 / .4)}.accent-violet-50\/5{accent-color:rgb(245 243 255 / .05)}.accent-violet-50\/50{accent-color:rgb(245 243 255 / .5)}.accent-violet-50\/60{accent-color:rgb(245 243 255 / .6)}.accent-violet-50\/70{accent-color:rgb(245 243 255 / .7)}.accent-violet-50\/75{accent-color:rgb(245 243 255 / .75)}.accent-violet-50\/80{accent-color:rgb(245 243 255 / .8)}.accent-violet-50\/90{accent-color:rgb(245 243 255 / .9)}.accent-violet-50\/95{accent-color:rgb(245 243 255 / .95)}.accent-violet-500{accent-color:#8b5cf6}.accent-violet-500\/0{accent-color:rgb(139 92 246 / 0)}.accent-violet-500\/10{accent-color:rgb(139 92 246 / .1)}.accent-violet-500\/100{accent-color:rgb(139 92 246 / 1)}.accent-violet-500\/20{accent-color:rgb(139 92 246 / .2)}.accent-violet-500\/25{accent-color:rgb(139 92 246 / .25)}.accent-violet-500\/30{accent-color:rgb(139 92 246 / .3)}.accent-violet-500\/40{accent-color:rgb(139 92 246 / .4)}.accent-violet-500\/5{accent-color:rgb(139 92 246 / .05)}.accent-violet-500\/50{accent-color:rgb(139 92 246 / .5)}.accent-violet-500\/60{accent-color:rgb(139 92 246 / .6)}.accent-violet-500\/70{accent-color:rgb(139 92 246 / .7)}.accent-violet-500\/75{accent-color:rgb(139 92 246 / .75)}.accent-violet-500\/80{accent-color:rgb(139 92 246 / .8)}.accent-violet-500\/90{accent-color:rgb(139 92 246 / .9)}.accent-violet-500\/95{accent-color:rgb(139 92 246 / .95)}.accent-violet-600{accent-color:#7c3aed}.accent-violet-600\/0{accent-color:rgb(124 58 237 / 0)}.accent-violet-600\/10{accent-color:rgb(124 58 237 / .1)}.accent-violet-600\/100{accent-color:rgb(124 58 237 / 1)}.accent-violet-600\/20{accent-color:rgb(124 58 237 / .2)}.accent-violet-600\/25{accent-color:rgb(124 58 237 / .25)}.accent-violet-600\/30{accent-color:rgb(124 58 237 / .3)}.accent-violet-600\/40{accent-color:rgb(124 58 237 / .4)}.accent-violet-600\/5{accent-color:rgb(124 58 237 / .05)}.accent-violet-600\/50{accent-color:rgb(124 58 237 / .5)}.accent-violet-600\/60{accent-color:rgb(124 58 237 / .6)}.accent-violet-600\/70{accent-color:rgb(124 58 237 / .7)}.accent-violet-600\/75{accent-color:rgb(124 58 237 / .75)}.accent-violet-600\/80{accent-color:rgb(124 58 237 / .8)}.accent-violet-600\/90{accent-color:rgb(124 58 237 / .9)}.accent-violet-600\/95{accent-color:rgb(124 58 237 / .95)}.accent-violet-700{accent-color:#6d28d9}.accent-violet-700\/0{accent-color:rgb(109 40 217 / 0)}.accent-violet-700\/10{accent-color:rgb(109 40 217 / .1)}.accent-violet-700\/100{accent-color:rgb(109 40 217 / 1)}.accent-violet-700\/20{accent-color:rgb(109 40 217 / .2)}.accent-violet-700\/25{accent-color:rgb(109 40 217 / .25)}.accent-violet-700\/30{accent-color:rgb(109 40 217 / .3)}.accent-violet-700\/40{accent-color:rgb(109 40 217 / .4)}.accent-violet-700\/5{accent-color:rgb(109 40 217 / .05)}.accent-violet-700\/50{accent-color:rgb(109 40 217 / .5)}.accent-violet-700\/60{accent-color:rgb(109 40 217 / .6)}.accent-violet-700\/70{accent-color:rgb(109 40 217 / .7)}.accent-violet-700\/75{accent-color:rgb(109 40 217 / .75)}.accent-violet-700\/80{accent-color:rgb(109 40 217 / .8)}.accent-violet-700\/90{accent-color:rgb(109 40 217 / .9)}.accent-violet-700\/95{accent-color:rgb(109 40 217 / .95)}.accent-violet-800{accent-color:#5b21b6}.accent-violet-800\/0{accent-color:rgb(91 33 182 / 0)}.accent-violet-800\/10{accent-color:rgb(91 33 182 / .1)}.accent-violet-800\/100{accent-color:rgb(91 33 182 / 1)}.accent-violet-800\/20{accent-color:rgb(91 33 182 / .2)}.accent-violet-800\/25{accent-color:rgb(91 33 182 / .25)}.accent-violet-800\/30{accent-color:rgb(91 33 182 / .3)}.accent-violet-800\/40{accent-color:rgb(91 33 182 / .4)}.accent-violet-800\/5{accent-color:rgb(91 33 182 / .05)}.accent-violet-800\/50{accent-color:rgb(91 33 182 / .5)}.accent-violet-800\/60{accent-color:rgb(91 33 182 / .6)}.accent-violet-800\/70{accent-color:rgb(91 33 182 / .7)}.accent-violet-800\/75{accent-color:rgb(91 33 182 / .75)}.accent-violet-800\/80{accent-color:rgb(91 33 182 / .8)}.accent-violet-800\/90{accent-color:rgb(91 33 182 / .9)}.accent-violet-800\/95{accent-color:rgb(91 33 182 / .95)}.accent-violet-900{accent-color:#4c1d95}.accent-violet-900\/0{accent-color:rgb(76 29 149 / 0)}.accent-violet-900\/10{accent-color:rgb(76 29 149 / .1)}.accent-violet-900\/100{accent-color:rgb(76 29 149 / 1)}.accent-violet-900\/20{accent-color:rgb(76 29 149 / .2)}.accent-violet-900\/25{accent-color:rgb(76 29 149 / .25)}.accent-violet-900\/30{accent-color:rgb(76 29 149 / .3)}.accent-violet-900\/40{accent-color:rgb(76 29 149 / .4)}.accent-violet-900\/5{accent-color:rgb(76 29 149 / .05)}.accent-violet-900\/50{accent-color:rgb(76 29 149 / .5)}.accent-violet-900\/60{accent-color:rgb(76 29 149 / .6)}.accent-violet-900\/70{accent-color:rgb(76 29 149 / .7)}.accent-violet-900\/75{accent-color:rgb(76 29 149 / .75)}.accent-violet-900\/80{accent-color:rgb(76 29 149 / .8)}.accent-violet-900\/90{accent-color:rgb(76 29 149 / .9)}.accent-violet-900\/95{accent-color:rgb(76 29 149 / .95)}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.bg-blend-color-dodge{background-blend-mode:color-dodge}.bg-blend-color-burn{background-blend-mode:color-burn}.bg-blend-color{background-blend-mode:color}.mix-blend-color-dodge{mix-blend-mode:color-dodge}.mix-blend-color-burn{mix-blend-mode:color-burn}.mix-blend-color{mix-blend-mode:color}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-header{--tw-shadow: 0px 2px 6px -1px rgb(0 0 0 / 50%);--tw-shadow-colored: 0px 2px 6px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-modal{--tw-shadow: 0 5px 10px rgba(0 0 0 / 20%);--tw-shadow-colored: 0 5px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-Occupation_du_sol-primary{--tw-shadow-color: var(--Occupation_du_sol-primary);--tw-shadow: var(--tw-shadow-colored)}.shadow-Occupation_du_sol-secondary{--tw-shadow-color: var(--Occupation_du_sol-secondary);--tw-shadow: var(--tw-shadow-colored)}.shadow-Occupation_du_sol-tertiary{--tw-shadow-color: var(--Occupation_du_sol-tertiary);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-100{--tw-shadow-color: #ede9fe;--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-100\/0{--tw-shadow-color: rgb(237 233 254 / 0);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-100\/10{--tw-shadow-color: rgb(237 233 254 / .1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-100\/100{--tw-shadow-color: rgb(237 233 254 / 1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-100\/20{--tw-shadow-color: rgb(237 233 254 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-100\/25{--tw-shadow-color: rgb(237 233 254 / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-100\/30{--tw-shadow-color: rgb(237 233 254 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-100\/40{--tw-shadow-color: rgb(237 233 254 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-100\/5{--tw-shadow-color: rgb(237 233 254 / .05);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-100\/50{--tw-shadow-color: rgb(237 233 254 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-100\/60{--tw-shadow-color: rgb(237 233 254 / .6);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-100\/70{--tw-shadow-color: rgb(237 233 254 / .7);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-100\/75{--tw-shadow-color: rgb(237 233 254 / .75);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-100\/80{--tw-shadow-color: rgb(237 233 254 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-100\/90{--tw-shadow-color: rgb(237 233 254 / .9);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-100\/95{--tw-shadow-color: rgb(237 233 254 / .95);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200{--tw-shadow-color: #ddd6fe;--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200\/0{--tw-shadow-color: rgb(221 214 254 / 0);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200\/10{--tw-shadow-color: rgb(221 214 254 / .1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200\/100{--tw-shadow-color: rgb(221 214 254 / 1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200\/20{--tw-shadow-color: rgb(221 214 254 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200\/25{--tw-shadow-color: rgb(221 214 254 / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200\/30{--tw-shadow-color: rgb(221 214 254 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200\/40{--tw-shadow-color: rgb(221 214 254 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200\/5{--tw-shadow-color: rgb(221 214 254 / .05);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200\/50{--tw-shadow-color: rgb(221 214 254 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200\/60{--tw-shadow-color: rgb(221 214 254 / .6);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200\/70{--tw-shadow-color: rgb(221 214 254 / .7);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200\/75{--tw-shadow-color: rgb(221 214 254 / .75);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200\/80{--tw-shadow-color: rgb(221 214 254 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200\/90{--tw-shadow-color: rgb(221 214 254 / .9);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200\/95{--tw-shadow-color: rgb(221 214 254 / .95);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-300{--tw-shadow-color: #c4b5fd;--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-300\/0{--tw-shadow-color: rgb(196 181 253 / 0);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-300\/10{--tw-shadow-color: rgb(196 181 253 / .1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-300\/100{--tw-shadow-color: rgb(196 181 253 / 1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-300\/20{--tw-shadow-color: rgb(196 181 253 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-300\/25{--tw-shadow-color: rgb(196 181 253 / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-300\/30{--tw-shadow-color: rgb(196 181 253 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-300\/40{--tw-shadow-color: rgb(196 181 253 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-300\/5{--tw-shadow-color: rgb(196 181 253 / .05);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-300\/50{--tw-shadow-color: rgb(196 181 253 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-300\/60{--tw-shadow-color: rgb(196 181 253 / .6);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-300\/70{--tw-shadow-color: rgb(196 181 253 / .7);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-300\/75{--tw-shadow-color: rgb(196 181 253 / .75);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-300\/80{--tw-shadow-color: rgb(196 181 253 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-300\/90{--tw-shadow-color: rgb(196 181 253 / .9);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-300\/95{--tw-shadow-color: rgb(196 181 253 / .95);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-400{--tw-shadow-color: #a78bfa;--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-400\/0{--tw-shadow-color: rgb(167 139 250 / 0);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-400\/10{--tw-shadow-color: rgb(167 139 250 / .1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-400\/100{--tw-shadow-color: rgb(167 139 250 / 1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-400\/20{--tw-shadow-color: rgb(167 139 250 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-400\/25{--tw-shadow-color: rgb(167 139 250 / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-400\/30{--tw-shadow-color: rgb(167 139 250 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-400\/40{--tw-shadow-color: rgb(167 139 250 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-400\/5{--tw-shadow-color: rgb(167 139 250 / .05);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-400\/50{--tw-shadow-color: rgb(167 139 250 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-400\/60{--tw-shadow-color: rgb(167 139 250 / .6);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-400\/70{--tw-shadow-color: rgb(167 139 250 / .7);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-400\/75{--tw-shadow-color: rgb(167 139 250 / .75);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-400\/80{--tw-shadow-color: rgb(167 139 250 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-400\/90{--tw-shadow-color: rgb(167 139 250 / .9);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-400\/95{--tw-shadow-color: rgb(167 139 250 / .95);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-50{--tw-shadow-color: #f5f3ff;--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-50\/0{--tw-shadow-color: rgb(245 243 255 / 0);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-50\/10{--tw-shadow-color: rgb(245 243 255 / .1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-50\/100{--tw-shadow-color: rgb(245 243 255 / 1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-50\/20{--tw-shadow-color: rgb(245 243 255 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-50\/25{--tw-shadow-color: rgb(245 243 255 / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-50\/30{--tw-shadow-color: rgb(245 243 255 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-50\/40{--tw-shadow-color: rgb(245 243 255 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-50\/5{--tw-shadow-color: rgb(245 243 255 / .05);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-50\/50{--tw-shadow-color: rgb(245 243 255 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-50\/60{--tw-shadow-color: rgb(245 243 255 / .6);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-50\/70{--tw-shadow-color: rgb(245 243 255 / .7);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-50\/75{--tw-shadow-color: rgb(245 243 255 / .75);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-50\/80{--tw-shadow-color: rgb(245 243 255 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-50\/90{--tw-shadow-color: rgb(245 243 255 / .9);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-50\/95{--tw-shadow-color: rgb(245 243 255 / .95);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500{--tw-shadow-color: #8b5cf6;--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/0{--tw-shadow-color: rgb(139 92 246 / 0);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/10{--tw-shadow-color: rgb(139 92 246 / .1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/100{--tw-shadow-color: rgb(139 92 246 / 1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/20{--tw-shadow-color: rgb(139 92 246 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/25{--tw-shadow-color: rgb(139 92 246 / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/30{--tw-shadow-color: rgb(139 92 246 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/40{--tw-shadow-color: rgb(139 92 246 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/5{--tw-shadow-color: rgb(139 92 246 / .05);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/50{--tw-shadow-color: rgb(139 92 246 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/60{--tw-shadow-color: rgb(139 92 246 / .6);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/70{--tw-shadow-color: rgb(139 92 246 / .7);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/75{--tw-shadow-color: rgb(139 92 246 / .75);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/80{--tw-shadow-color: rgb(139 92 246 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/90{--tw-shadow-color: rgb(139 92 246 / .9);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/95{--tw-shadow-color: rgb(139 92 246 / .95);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-600{--tw-shadow-color: #7c3aed;--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-600\/0{--tw-shadow-color: rgb(124 58 237 / 0);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-600\/10{--tw-shadow-color: rgb(124 58 237 / .1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-600\/100{--tw-shadow-color: rgb(124 58 237 / 1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-600\/20{--tw-shadow-color: rgb(124 58 237 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-600\/25{--tw-shadow-color: rgb(124 58 237 / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-600\/30{--tw-shadow-color: rgb(124 58 237 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-600\/40{--tw-shadow-color: rgb(124 58 237 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-600\/5{--tw-shadow-color: rgb(124 58 237 / .05);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-600\/50{--tw-shadow-color: rgb(124 58 237 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-600\/60{--tw-shadow-color: rgb(124 58 237 / .6);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-600\/70{--tw-shadow-color: rgb(124 58 237 / .7);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-600\/75{--tw-shadow-color: rgb(124 58 237 / .75);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-600\/80{--tw-shadow-color: rgb(124 58 237 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-600\/90{--tw-shadow-color: rgb(124 58 237 / .9);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-600\/95{--tw-shadow-color: rgb(124 58 237 / .95);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-700{--tw-shadow-color: #6d28d9;--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-700\/0{--tw-shadow-color: rgb(109 40 217 / 0);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-700\/10{--tw-shadow-color: rgb(109 40 217 / .1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-700\/100{--tw-shadow-color: rgb(109 40 217 / 1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-700\/20{--tw-shadow-color: rgb(109 40 217 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-700\/25{--tw-shadow-color: rgb(109 40 217 / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-700\/30{--tw-shadow-color: rgb(109 40 217 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-700\/40{--tw-shadow-color: rgb(109 40 217 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-700\/5{--tw-shadow-color: rgb(109 40 217 / .05);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-700\/50{--tw-shadow-color: rgb(109 40 217 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-700\/60{--tw-shadow-color: rgb(109 40 217 / .6);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-700\/70{--tw-shadow-color: rgb(109 40 217 / .7);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-700\/75{--tw-shadow-color: rgb(109 40 217 / .75);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-700\/80{--tw-shadow-color: rgb(109 40 217 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-700\/90{--tw-shadow-color: rgb(109 40 217 / .9);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-700\/95{--tw-shadow-color: rgb(109 40 217 / .95);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-800{--tw-shadow-color: #5b21b6;--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-800\/0{--tw-shadow-color: rgb(91 33 182 / 0);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-800\/10{--tw-shadow-color: rgb(91 33 182 / .1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-800\/100{--tw-shadow-color: rgb(91 33 182 / 1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-800\/20{--tw-shadow-color: rgb(91 33 182 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-800\/25{--tw-shadow-color: rgb(91 33 182 / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-800\/30{--tw-shadow-color: rgb(91 33 182 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-800\/40{--tw-shadow-color: rgb(91 33 182 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-800\/5{--tw-shadow-color: rgb(91 33 182 / .05);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-800\/50{--tw-shadow-color: rgb(91 33 182 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-800\/60{--tw-shadow-color: rgb(91 33 182 / .6);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-800\/70{--tw-shadow-color: rgb(91 33 182 / .7);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-800\/75{--tw-shadow-color: rgb(91 33 182 / .75);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-800\/80{--tw-shadow-color: rgb(91 33 182 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-800\/90{--tw-shadow-color: rgb(91 33 182 / .9);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-800\/95{--tw-shadow-color: rgb(91 33 182 / .95);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-900{--tw-shadow-color: #4c1d95;--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-900\/0{--tw-shadow-color: rgb(76 29 149 / 0);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-900\/10{--tw-shadow-color: rgb(76 29 149 / .1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-900\/100{--tw-shadow-color: rgb(76 29 149 / 1);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-900\/20{--tw-shadow-color: rgb(76 29 149 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-900\/25{--tw-shadow-color: rgb(76 29 149 / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-900\/30{--tw-shadow-color: rgb(76 29 149 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-900\/40{--tw-shadow-color: rgb(76 29 149 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-900\/5{--tw-shadow-color: rgb(76 29 149 / .05);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-900\/50{--tw-shadow-color: rgb(76 29 149 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-900\/60{--tw-shadow-color: rgb(76 29 149 / .6);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-900\/70{--tw-shadow-color: rgb(76 29 149 / .7);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-900\/75{--tw-shadow-color: rgb(76 29 149 / .75);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-900\/80{--tw-shadow-color: rgb(76 29 149 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-900\/90{--tw-shadow-color: rgb(76 29 149 / .9);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-900\/95{--tw-shadow-color: rgb(76 29 149 / .95);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline-Occupation_du_sol-primary{outline-color:var(--Occupation_du_sol-primary)}.outline-Occupation_du_sol-secondary{outline-color:var(--Occupation_du_sol-secondary)}.outline-Occupation_du_sol-tertiary{outline-color:var(--Occupation_du_sol-tertiary)}.outline-violet-100{outline-color:#ede9fe}.outline-violet-100\/0{outline-color:#ede9fe00}.outline-violet-100\/10{outline-color:#ede9fe1a}.outline-violet-100\/100{outline-color:#ede9fe}.outline-violet-100\/20{outline-color:#ede9fe33}.outline-violet-100\/25{outline-color:#ede9fe40}.outline-violet-100\/30{outline-color:#ede9fe4d}.outline-violet-100\/40{outline-color:#ede9fe66}.outline-violet-100\/5{outline-color:#ede9fe0d}.outline-violet-100\/50{outline-color:#ede9fe80}.outline-violet-100\/60{outline-color:#ede9fe99}.outline-violet-100\/70{outline-color:#ede9feb3}.outline-violet-100\/75{outline-color:#ede9febf}.outline-violet-100\/80{outline-color:#ede9fecc}.outline-violet-100\/90{outline-color:#ede9fee6}.outline-violet-100\/95{outline-color:#ede9fef2}.outline-violet-200{outline-color:#ddd6fe}.outline-violet-200\/0{outline-color:#ddd6fe00}.outline-violet-200\/10{outline-color:#ddd6fe1a}.outline-violet-200\/100{outline-color:#ddd6fe}.outline-violet-200\/20{outline-color:#ddd6fe33}.outline-violet-200\/25{outline-color:#ddd6fe40}.outline-violet-200\/30{outline-color:#ddd6fe4d}.outline-violet-200\/40{outline-color:#ddd6fe66}.outline-violet-200\/5{outline-color:#ddd6fe0d}.outline-violet-200\/50{outline-color:#ddd6fe80}.outline-violet-200\/60{outline-color:#ddd6fe99}.outline-violet-200\/70{outline-color:#ddd6feb3}.outline-violet-200\/75{outline-color:#ddd6febf}.outline-violet-200\/80{outline-color:#ddd6fecc}.outline-violet-200\/90{outline-color:#ddd6fee6}.outline-violet-200\/95{outline-color:#ddd6fef2}.outline-violet-300{outline-color:#c4b5fd}.outline-violet-300\/0{outline-color:#c4b5fd00}.outline-violet-300\/10{outline-color:#c4b5fd1a}.outline-violet-300\/100{outline-color:#c4b5fd}.outline-violet-300\/20{outline-color:#c4b5fd33}.outline-violet-300\/25{outline-color:#c4b5fd40}.outline-violet-300\/30{outline-color:#c4b5fd4d}.outline-violet-300\/40{outline-color:#c4b5fd66}.outline-violet-300\/5{outline-color:#c4b5fd0d}.outline-violet-300\/50{outline-color:#c4b5fd80}.outline-violet-300\/60{outline-color:#c4b5fd99}.outline-violet-300\/70{outline-color:#c4b5fdb3}.outline-violet-300\/75{outline-color:#c4b5fdbf}.outline-violet-300\/80{outline-color:#c4b5fdcc}.outline-violet-300\/90{outline-color:#c4b5fde6}.outline-violet-300\/95{outline-color:#c4b5fdf2}.outline-violet-400{outline-color:#a78bfa}.outline-violet-400\/0{outline-color:#a78bfa00}.outline-violet-400\/10{outline-color:#a78bfa1a}.outline-violet-400\/100{outline-color:#a78bfa}.outline-violet-400\/20{outline-color:#a78bfa33}.outline-violet-400\/25{outline-color:#a78bfa40}.outline-violet-400\/30{outline-color:#a78bfa4d}.outline-violet-400\/40{outline-color:#a78bfa66}.outline-violet-400\/5{outline-color:#a78bfa0d}.outline-violet-400\/50{outline-color:#a78bfa80}.outline-violet-400\/60{outline-color:#a78bfa99}.outline-violet-400\/70{outline-color:#a78bfab3}.outline-violet-400\/75{outline-color:#a78bfabf}.outline-violet-400\/80{outline-color:#a78bfacc}.outline-violet-400\/90{outline-color:#a78bfae6}.outline-violet-400\/95{outline-color:#a78bfaf2}.outline-violet-50{outline-color:#f5f3ff}.outline-violet-50\/0{outline-color:#f5f3ff00}.outline-violet-50\/10{outline-color:#f5f3ff1a}.outline-violet-50\/100{outline-color:#f5f3ff}.outline-violet-50\/20{outline-color:#f5f3ff33}.outline-violet-50\/25{outline-color:#f5f3ff40}.outline-violet-50\/30{outline-color:#f5f3ff4d}.outline-violet-50\/40{outline-color:#f5f3ff66}.outline-violet-50\/5{outline-color:#f5f3ff0d}.outline-violet-50\/50{outline-color:#f5f3ff80}.outline-violet-50\/60{outline-color:#f5f3ff99}.outline-violet-50\/70{outline-color:#f5f3ffb3}.outline-violet-50\/75{outline-color:#f5f3ffbf}.outline-violet-50\/80{outline-color:#f5f3ffcc}.outline-violet-50\/90{outline-color:#f5f3ffe6}.outline-violet-50\/95{outline-color:#f5f3fff2}.outline-violet-500{outline-color:#8b5cf6}.outline-violet-500\/0{outline-color:#8b5cf600}.outline-violet-500\/10{outline-color:#8b5cf61a}.outline-violet-500\/100{outline-color:#8b5cf6}.outline-violet-500\/20{outline-color:#8b5cf633}.outline-violet-500\/25{outline-color:#8b5cf640}.outline-violet-500\/30{outline-color:#8b5cf64d}.outline-violet-500\/40{outline-color:#8b5cf666}.outline-violet-500\/5{outline-color:#8b5cf60d}.outline-violet-500\/50{outline-color:#8b5cf680}.outline-violet-500\/60{outline-color:#8b5cf699}.outline-violet-500\/70{outline-color:#8b5cf6b3}.outline-violet-500\/75{outline-color:#8b5cf6bf}.outline-violet-500\/80{outline-color:#8b5cf6cc}.outline-violet-500\/90{outline-color:#8b5cf6e6}.outline-violet-500\/95{outline-color:#8b5cf6f2}.outline-violet-600{outline-color:#7c3aed}.outline-violet-600\/0{outline-color:#7c3aed00}.outline-violet-600\/10{outline-color:#7c3aed1a}.outline-violet-600\/100{outline-color:#7c3aed}.outline-violet-600\/20{outline-color:#7c3aed33}.outline-violet-600\/25{outline-color:#7c3aed40}.outline-violet-600\/30{outline-color:#7c3aed4d}.outline-violet-600\/40{outline-color:#7c3aed66}.outline-violet-600\/5{outline-color:#7c3aed0d}.outline-violet-600\/50{outline-color:#7c3aed80}.outline-violet-600\/60{outline-color:#7c3aed99}.outline-violet-600\/70{outline-color:#7c3aedb3}.outline-violet-600\/75{outline-color:#7c3aedbf}.outline-violet-600\/80{outline-color:#7c3aedcc}.outline-violet-600\/90{outline-color:#7c3aede6}.outline-violet-600\/95{outline-color:#7c3aedf2}.outline-violet-700{outline-color:#6d28d9}.outline-violet-700\/0{outline-color:#6d28d900}.outline-violet-700\/10{outline-color:#6d28d91a}.outline-violet-700\/100{outline-color:#6d28d9}.outline-violet-700\/20{outline-color:#6d28d933}.outline-violet-700\/25{outline-color:#6d28d940}.outline-violet-700\/30{outline-color:#6d28d94d}.outline-violet-700\/40{outline-color:#6d28d966}.outline-violet-700\/5{outline-color:#6d28d90d}.outline-violet-700\/50{outline-color:#6d28d980}.outline-violet-700\/60{outline-color:#6d28d999}.outline-violet-700\/70{outline-color:#6d28d9b3}.outline-violet-700\/75{outline-color:#6d28d9bf}.outline-violet-700\/80{outline-color:#6d28d9cc}.outline-violet-700\/90{outline-color:#6d28d9e6}.outline-violet-700\/95{outline-color:#6d28d9f2}.outline-violet-800{outline-color:#5b21b6}.outline-violet-800\/0{outline-color:#5b21b600}.outline-violet-800\/10{outline-color:#5b21b61a}.outline-violet-800\/100{outline-color:#5b21b6}.outline-violet-800\/20{outline-color:#5b21b633}.outline-violet-800\/25{outline-color:#5b21b640}.outline-violet-800\/30{outline-color:#5b21b64d}.outline-violet-800\/40{outline-color:#5b21b666}.outline-violet-800\/5{outline-color:#5b21b60d}.outline-violet-800\/50{outline-color:#5b21b680}.outline-violet-800\/60{outline-color:#5b21b699}.outline-violet-800\/70{outline-color:#5b21b6b3}.outline-violet-800\/75{outline-color:#5b21b6bf}.outline-violet-800\/80{outline-color:#5b21b6cc}.outline-violet-800\/90{outline-color:#5b21b6e6}.outline-violet-800\/95{outline-color:#5b21b6f2}.outline-violet-900{outline-color:#4c1d95}.outline-violet-900\/0{outline-color:#4c1d9500}.outline-violet-900\/10{outline-color:#4c1d951a}.outline-violet-900\/100{outline-color:#4c1d95}.outline-violet-900\/20{outline-color:#4c1d9533}.outline-violet-900\/25{outline-color:#4c1d9540}.outline-violet-900\/30{outline-color:#4c1d954d}.outline-violet-900\/40{outline-color:#4c1d9566}.outline-violet-900\/5{outline-color:#4c1d950d}.outline-violet-900\/50{outline-color:#4c1d9580}.outline-violet-900\/60{outline-color:#4c1d9599}.outline-violet-900\/70{outline-color:#4c1d95b3}.outline-violet-900\/75{outline-color:#4c1d95bf}.outline-violet-900\/80{outline-color:#4c1d95cc}.outline-violet-900\/90{outline-color:#4c1d95e6}.outline-violet-900\/95{outline-color:#4c1d95f2}.ring-Occupation_du_sol-primary{--tw-ring-color: var(--Occupation_du_sol-primary)}.ring-Occupation_du_sol-secondary{--tw-ring-color: var(--Occupation_du_sol-secondary)}.ring-Occupation_du_sol-tertiary{--tw-ring-color: var(--Occupation_du_sol-tertiary)}.ring-violet-100{--tw-ring-opacity: 1;--tw-ring-color: rgb(237 233 254 / var(--tw-ring-opacity))}.ring-violet-100\/0{--tw-ring-color: rgb(237 233 254 / 0)}.ring-violet-100\/10{--tw-ring-color: rgb(237 233 254 / .1)}.ring-violet-100\/100{--tw-ring-color: rgb(237 233 254 / 1)}.ring-violet-100\/20{--tw-ring-color: rgb(237 233 254 / .2)}.ring-violet-100\/25{--tw-ring-color: rgb(237 233 254 / .25)}.ring-violet-100\/30{--tw-ring-color: rgb(237 233 254 / .3)}.ring-violet-100\/40{--tw-ring-color: rgb(237 233 254 / .4)}.ring-violet-100\/5{--tw-ring-color: rgb(237 233 254 / .05)}.ring-violet-100\/50{--tw-ring-color: rgb(237 233 254 / .5)}.ring-violet-100\/60{--tw-ring-color: rgb(237 233 254 / .6)}.ring-violet-100\/70{--tw-ring-color: rgb(237 233 254 / .7)}.ring-violet-100\/75{--tw-ring-color: rgb(237 233 254 / .75)}.ring-violet-100\/80{--tw-ring-color: rgb(237 233 254 / .8)}.ring-violet-100\/90{--tw-ring-color: rgb(237 233 254 / .9)}.ring-violet-100\/95{--tw-ring-color: rgb(237 233 254 / .95)}.ring-violet-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(221 214 254 / var(--tw-ring-opacity))}.ring-violet-200\/0{--tw-ring-color: rgb(221 214 254 / 0)}.ring-violet-200\/10{--tw-ring-color: rgb(221 214 254 / .1)}.ring-violet-200\/100{--tw-ring-color: rgb(221 214 254 / 1)}.ring-violet-200\/20{--tw-ring-color: rgb(221 214 254 / .2)}.ring-violet-200\/25{--tw-ring-color: rgb(221 214 254 / .25)}.ring-violet-200\/30{--tw-ring-color: rgb(221 214 254 / .3)}.ring-violet-200\/40{--tw-ring-color: rgb(221 214 254 / .4)}.ring-violet-200\/5{--tw-ring-color: rgb(221 214 254 / .05)}.ring-violet-200\/50{--tw-ring-color: rgb(221 214 254 / .5)}.ring-violet-200\/60{--tw-ring-color: rgb(221 214 254 / .6)}.ring-violet-200\/70{--tw-ring-color: rgb(221 214 254 / .7)}.ring-violet-200\/75{--tw-ring-color: rgb(221 214 254 / .75)}.ring-violet-200\/80{--tw-ring-color: rgb(221 214 254 / .8)}.ring-violet-200\/90{--tw-ring-color: rgb(221 214 254 / .9)}.ring-violet-200\/95{--tw-ring-color: rgb(221 214 254 / .95)}.ring-violet-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(196 181 253 / var(--tw-ring-opacity))}.ring-violet-300\/0{--tw-ring-color: rgb(196 181 253 / 0)}.ring-violet-300\/10{--tw-ring-color: rgb(196 181 253 / .1)}.ring-violet-300\/100{--tw-ring-color: rgb(196 181 253 / 1)}.ring-violet-300\/20{--tw-ring-color: rgb(196 181 253 / .2)}.ring-violet-300\/25{--tw-ring-color: rgb(196 181 253 / .25)}.ring-violet-300\/30{--tw-ring-color: rgb(196 181 253 / .3)}.ring-violet-300\/40{--tw-ring-color: rgb(196 181 253 / .4)}.ring-violet-300\/5{--tw-ring-color: rgb(196 181 253 / .05)}.ring-violet-300\/50{--tw-ring-color: rgb(196 181 253 / .5)}.ring-violet-300\/60{--tw-ring-color: rgb(196 181 253 / .6)}.ring-violet-300\/70{--tw-ring-color: rgb(196 181 253 / .7)}.ring-violet-300\/75{--tw-ring-color: rgb(196 181 253 / .75)}.ring-violet-300\/80{--tw-ring-color: rgb(196 181 253 / .8)}.ring-violet-300\/90{--tw-ring-color: rgb(196 181 253 / .9)}.ring-violet-300\/95{--tw-ring-color: rgb(196 181 253 / .95)}.ring-violet-400{--tw-ring-opacity: 1;--tw-ring-color: rgb(167 139 250 / var(--tw-ring-opacity))}.ring-violet-400\/0{--tw-ring-color: rgb(167 139 250 / 0)}.ring-violet-400\/10{--tw-ring-color: rgb(167 139 250 / .1)}.ring-violet-400\/100{--tw-ring-color: rgb(167 139 250 / 1)}.ring-violet-400\/20{--tw-ring-color: rgb(167 139 250 / .2)}.ring-violet-400\/25{--tw-ring-color: rgb(167 139 250 / .25)}.ring-violet-400\/30{--tw-ring-color: rgb(167 139 250 / .3)}.ring-violet-400\/40{--tw-ring-color: rgb(167 139 250 / .4)}.ring-violet-400\/5{--tw-ring-color: rgb(167 139 250 / .05)}.ring-violet-400\/50{--tw-ring-color: rgb(167 139 250 / .5)}.ring-violet-400\/60{--tw-ring-color: rgb(167 139 250 / .6)}.ring-violet-400\/70{--tw-ring-color: rgb(167 139 250 / .7)}.ring-violet-400\/75{--tw-ring-color: rgb(167 139 250 / .75)}.ring-violet-400\/80{--tw-ring-color: rgb(167 139 250 / .8)}.ring-violet-400\/90{--tw-ring-color: rgb(167 139 250 / .9)}.ring-violet-400\/95{--tw-ring-color: rgb(167 139 250 / .95)}.ring-violet-50{--tw-ring-opacity: 1;--tw-ring-color: rgb(245 243 255 / var(--tw-ring-opacity))}.ring-violet-50\/0{--tw-ring-color: rgb(245 243 255 / 0)}.ring-violet-50\/10{--tw-ring-color: rgb(245 243 255 / .1)}.ring-violet-50\/100{--tw-ring-color: rgb(245 243 255 / 1)}.ring-violet-50\/20{--tw-ring-color: rgb(245 243 255 / .2)}.ring-violet-50\/25{--tw-ring-color: rgb(245 243 255 / .25)}.ring-violet-50\/30{--tw-ring-color: rgb(245 243 255 / .3)}.ring-violet-50\/40{--tw-ring-color: rgb(245 243 255 / .4)}.ring-violet-50\/5{--tw-ring-color: rgb(245 243 255 / .05)}.ring-violet-50\/50{--tw-ring-color: rgb(245 243 255 / .5)}.ring-violet-50\/60{--tw-ring-color: rgb(245 243 255 / .6)}.ring-violet-50\/70{--tw-ring-color: rgb(245 243 255 / .7)}.ring-violet-50\/75{--tw-ring-color: rgb(245 243 255 / .75)}.ring-violet-50\/80{--tw-ring-color: rgb(245 243 255 / .8)}.ring-violet-50\/90{--tw-ring-color: rgb(245 243 255 / .9)}.ring-violet-50\/95{--tw-ring-color: rgb(245 243 255 / .95)}.ring-violet-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(139 92 246 / var(--tw-ring-opacity))}.ring-violet-500\/0{--tw-ring-color: rgb(139 92 246 / 0)}.ring-violet-500\/10{--tw-ring-color: rgb(139 92 246 / .1)}.ring-violet-500\/100{--tw-ring-color: rgb(139 92 246 / 1)}.ring-violet-500\/20{--tw-ring-color: rgb(139 92 246 / .2)}.ring-violet-500\/25{--tw-ring-color: rgb(139 92 246 / .25)}.ring-violet-500\/30{--tw-ring-color: rgb(139 92 246 / .3)}.ring-violet-500\/40{--tw-ring-color: rgb(139 92 246 / .4)}.ring-violet-500\/5{--tw-ring-color: rgb(139 92 246 / .05)}.ring-violet-500\/50{--tw-ring-color: rgb(139 92 246 / .5)}.ring-violet-500\/60{--tw-ring-color: rgb(139 92 246 / .6)}.ring-violet-500\/70{--tw-ring-color: rgb(139 92 246 / .7)}.ring-violet-500\/75{--tw-ring-color: rgb(139 92 246 / .75)}.ring-violet-500\/80{--tw-ring-color: rgb(139 92 246 / .8)}.ring-violet-500\/90{--tw-ring-color: rgb(139 92 246 / .9)}.ring-violet-500\/95{--tw-ring-color: rgb(139 92 246 / .95)}.ring-violet-600{--tw-ring-opacity: 1;--tw-ring-color: rgb(124 58 237 / var(--tw-ring-opacity))}.ring-violet-600\/0{--tw-ring-color: rgb(124 58 237 / 0)}.ring-violet-600\/10{--tw-ring-color: rgb(124 58 237 / .1)}.ring-violet-600\/100{--tw-ring-color: rgb(124 58 237 / 1)}.ring-violet-600\/20{--tw-ring-color: rgb(124 58 237 / .2)}.ring-violet-600\/25{--tw-ring-color: rgb(124 58 237 / .25)}.ring-violet-600\/30{--tw-ring-color: rgb(124 58 237 / .3)}.ring-violet-600\/40{--tw-ring-color: rgb(124 58 237 / .4)}.ring-violet-600\/5{--tw-ring-color: rgb(124 58 237 / .05)}.ring-violet-600\/50{--tw-ring-color: rgb(124 58 237 / .5)}.ring-violet-600\/60{--tw-ring-color: rgb(124 58 237 / .6)}.ring-violet-600\/70{--tw-ring-color: rgb(124 58 237 / .7)}.ring-violet-600\/75{--tw-ring-color: rgb(124 58 237 / .75)}.ring-violet-600\/80{--tw-ring-color: rgb(124 58 237 / .8)}.ring-violet-600\/90{--tw-ring-color: rgb(124 58 237 / .9)}.ring-violet-600\/95{--tw-ring-color: rgb(124 58 237 / .95)}.ring-violet-700{--tw-ring-opacity: 1;--tw-ring-color: rgb(109 40 217 / var(--tw-ring-opacity))}.ring-violet-700\/0{--tw-ring-color: rgb(109 40 217 / 0)}.ring-violet-700\/10{--tw-ring-color: rgb(109 40 217 / .1)}.ring-violet-700\/100{--tw-ring-color: rgb(109 40 217 / 1)}.ring-violet-700\/20{--tw-ring-color: rgb(109 40 217 / .2)}.ring-violet-700\/25{--tw-ring-color: rgb(109 40 217 / .25)}.ring-violet-700\/30{--tw-ring-color: rgb(109 40 217 / .3)}.ring-violet-700\/40{--tw-ring-color: rgb(109 40 217 / .4)}.ring-violet-700\/5{--tw-ring-color: rgb(109 40 217 / .05)}.ring-violet-700\/50{--tw-ring-color: rgb(109 40 217 / .5)}.ring-violet-700\/60{--tw-ring-color: rgb(109 40 217 / .6)}.ring-violet-700\/70{--tw-ring-color: rgb(109 40 217 / .7)}.ring-violet-700\/75{--tw-ring-color: rgb(109 40 217 / .75)}.ring-violet-700\/80{--tw-ring-color: rgb(109 40 217 / .8)}.ring-violet-700\/90{--tw-ring-color: rgb(109 40 217 / .9)}.ring-violet-700\/95{--tw-ring-color: rgb(109 40 217 / .95)}.ring-violet-800{--tw-ring-opacity: 1;--tw-ring-color: rgb(91 33 182 / var(--tw-ring-opacity))}.ring-violet-800\/0{--tw-ring-color: rgb(91 33 182 / 0)}.ring-violet-800\/10{--tw-ring-color: rgb(91 33 182 / .1)}.ring-violet-800\/100{--tw-ring-color: rgb(91 33 182 / 1)}.ring-violet-800\/20{--tw-ring-color: rgb(91 33 182 / .2)}.ring-violet-800\/25{--tw-ring-color: rgb(91 33 182 / .25)}.ring-violet-800\/30{--tw-ring-color: rgb(91 33 182 / .3)}.ring-violet-800\/40{--tw-ring-color: rgb(91 33 182 / .4)}.ring-violet-800\/5{--tw-ring-color: rgb(91 33 182 / .05)}.ring-violet-800\/50{--tw-ring-color: rgb(91 33 182 / .5)}.ring-violet-800\/60{--tw-ring-color: rgb(91 33 182 / .6)}.ring-violet-800\/70{--tw-ring-color: rgb(91 33 182 / .7)}.ring-violet-800\/75{--tw-ring-color: rgb(91 33 182 / .75)}.ring-violet-800\/80{--tw-ring-color: rgb(91 33 182 / .8)}.ring-violet-800\/90{--tw-ring-color: rgb(91 33 182 / .9)}.ring-violet-800\/95{--tw-ring-color: rgb(91 33 182 / .95)}.ring-violet-900{--tw-ring-opacity: 1;--tw-ring-color: rgb(76 29 149 / var(--tw-ring-opacity))}.ring-violet-900\/0{--tw-ring-color: rgb(76 29 149 / 0)}.ring-violet-900\/10{--tw-ring-color: rgb(76 29 149 / .1)}.ring-violet-900\/100{--tw-ring-color: rgb(76 29 149 / 1)}.ring-violet-900\/20{--tw-ring-color: rgb(76 29 149 / .2)}.ring-violet-900\/25{--tw-ring-color: rgb(76 29 149 / .25)}.ring-violet-900\/30{--tw-ring-color: rgb(76 29 149 / .3)}.ring-violet-900\/40{--tw-ring-color: rgb(76 29 149 / .4)}.ring-violet-900\/5{--tw-ring-color: rgb(76 29 149 / .05)}.ring-violet-900\/50{--tw-ring-color: rgb(76 29 149 / .5)}.ring-violet-900\/60{--tw-ring-color: rgb(76 29 149 / .6)}.ring-violet-900\/70{--tw-ring-color: rgb(76 29 149 / .7)}.ring-violet-900\/75{--tw-ring-color: rgb(76 29 149 / .75)}.ring-violet-900\/80{--tw-ring-color: rgb(76 29 149 / .8)}.ring-violet-900\/90{--tw-ring-color: rgb(76 29 149 / .9)}.ring-violet-900\/95{--tw-ring-color: rgb(76 29 149 / .95)}.ring-offset-Occupation_du_sol-primary{--tw-ring-offset-color: var(--Occupation_du_sol-primary)}.ring-offset-Occupation_du_sol-secondary{--tw-ring-offset-color: var(--Occupation_du_sol-secondary)}.ring-offset-Occupation_du_sol-tertiary{--tw-ring-offset-color: var(--Occupation_du_sol-tertiary)}.ring-offset-violet-100{--tw-ring-offset-color: #ede9fe}.ring-offset-violet-100\/0{--tw-ring-offset-color: rgb(237 233 254 / 0)}.ring-offset-violet-100\/10{--tw-ring-offset-color: rgb(237 233 254 / .1)}.ring-offset-violet-100\/100{--tw-ring-offset-color: rgb(237 233 254 / 1)}.ring-offset-violet-100\/20{--tw-ring-offset-color: rgb(237 233 254 / .2)}.ring-offset-violet-100\/25{--tw-ring-offset-color: rgb(237 233 254 / .25)}.ring-offset-violet-100\/30{--tw-ring-offset-color: rgb(237 233 254 / .3)}.ring-offset-violet-100\/40{--tw-ring-offset-color: rgb(237 233 254 / .4)}.ring-offset-violet-100\/5{--tw-ring-offset-color: rgb(237 233 254 / .05)}.ring-offset-violet-100\/50{--tw-ring-offset-color: rgb(237 233 254 / .5)}.ring-offset-violet-100\/60{--tw-ring-offset-color: rgb(237 233 254 / .6)}.ring-offset-violet-100\/70{--tw-ring-offset-color: rgb(237 233 254 / .7)}.ring-offset-violet-100\/75{--tw-ring-offset-color: rgb(237 233 254 / .75)}.ring-offset-violet-100\/80{--tw-ring-offset-color: rgb(237 233 254 / .8)}.ring-offset-violet-100\/90{--tw-ring-offset-color: rgb(237 233 254 / .9)}.ring-offset-violet-100\/95{--tw-ring-offset-color: rgb(237 233 254 / .95)}.ring-offset-violet-200{--tw-ring-offset-color: #ddd6fe}.ring-offset-violet-200\/0{--tw-ring-offset-color: rgb(221 214 254 / 0)}.ring-offset-violet-200\/10{--tw-ring-offset-color: rgb(221 214 254 / .1)}.ring-offset-violet-200\/100{--tw-ring-offset-color: rgb(221 214 254 / 1)}.ring-offset-violet-200\/20{--tw-ring-offset-color: rgb(221 214 254 / .2)}.ring-offset-violet-200\/25{--tw-ring-offset-color: rgb(221 214 254 / .25)}.ring-offset-violet-200\/30{--tw-ring-offset-color: rgb(221 214 254 / .3)}.ring-offset-violet-200\/40{--tw-ring-offset-color: rgb(221 214 254 / .4)}.ring-offset-violet-200\/5{--tw-ring-offset-color: rgb(221 214 254 / .05)}.ring-offset-violet-200\/50{--tw-ring-offset-color: rgb(221 214 254 / .5)}.ring-offset-violet-200\/60{--tw-ring-offset-color: rgb(221 214 254 / .6)}.ring-offset-violet-200\/70{--tw-ring-offset-color: rgb(221 214 254 / .7)}.ring-offset-violet-200\/75{--tw-ring-offset-color: rgb(221 214 254 / .75)}.ring-offset-violet-200\/80{--tw-ring-offset-color: rgb(221 214 254 / .8)}.ring-offset-violet-200\/90{--tw-ring-offset-color: rgb(221 214 254 / .9)}.ring-offset-violet-200\/95{--tw-ring-offset-color: rgb(221 214 254 / .95)}.ring-offset-violet-300{--tw-ring-offset-color: #c4b5fd}.ring-offset-violet-300\/0{--tw-ring-offset-color: rgb(196 181 253 / 0)}.ring-offset-violet-300\/10{--tw-ring-offset-color: rgb(196 181 253 / .1)}.ring-offset-violet-300\/100{--tw-ring-offset-color: rgb(196 181 253 / 1)}.ring-offset-violet-300\/20{--tw-ring-offset-color: rgb(196 181 253 / .2)}.ring-offset-violet-300\/25{--tw-ring-offset-color: rgb(196 181 253 / .25)}.ring-offset-violet-300\/30{--tw-ring-offset-color: rgb(196 181 253 / .3)}.ring-offset-violet-300\/40{--tw-ring-offset-color: rgb(196 181 253 / .4)}.ring-offset-violet-300\/5{--tw-ring-offset-color: rgb(196 181 253 / .05)}.ring-offset-violet-300\/50{--tw-ring-offset-color: rgb(196 181 253 / .5)}.ring-offset-violet-300\/60{--tw-ring-offset-color: rgb(196 181 253 / .6)}.ring-offset-violet-300\/70{--tw-ring-offset-color: rgb(196 181 253 / .7)}.ring-offset-violet-300\/75{--tw-ring-offset-color: rgb(196 181 253 / .75)}.ring-offset-violet-300\/80{--tw-ring-offset-color: rgb(196 181 253 / .8)}.ring-offset-violet-300\/90{--tw-ring-offset-color: rgb(196 181 253 / .9)}.ring-offset-violet-300\/95{--tw-ring-offset-color: rgb(196 181 253 / .95)}.ring-offset-violet-400{--tw-ring-offset-color: #a78bfa}.ring-offset-violet-400\/0{--tw-ring-offset-color: rgb(167 139 250 / 0)}.ring-offset-violet-400\/10{--tw-ring-offset-color: rgb(167 139 250 / .1)}.ring-offset-violet-400\/100{--tw-ring-offset-color: rgb(167 139 250 / 1)}.ring-offset-violet-400\/20{--tw-ring-offset-color: rgb(167 139 250 / .2)}.ring-offset-violet-400\/25{--tw-ring-offset-color: rgb(167 139 250 / .25)}.ring-offset-violet-400\/30{--tw-ring-offset-color: rgb(167 139 250 / .3)}.ring-offset-violet-400\/40{--tw-ring-offset-color: rgb(167 139 250 / .4)}.ring-offset-violet-400\/5{--tw-ring-offset-color: rgb(167 139 250 / .05)}.ring-offset-violet-400\/50{--tw-ring-offset-color: rgb(167 139 250 / .5)}.ring-offset-violet-400\/60{--tw-ring-offset-color: rgb(167 139 250 / .6)}.ring-offset-violet-400\/70{--tw-ring-offset-color: rgb(167 139 250 / .7)}.ring-offset-violet-400\/75{--tw-ring-offset-color: rgb(167 139 250 / .75)}.ring-offset-violet-400\/80{--tw-ring-offset-color: rgb(167 139 250 / .8)}.ring-offset-violet-400\/90{--tw-ring-offset-color: rgb(167 139 250 / .9)}.ring-offset-violet-400\/95{--tw-ring-offset-color: rgb(167 139 250 / .95)}.ring-offset-violet-50{--tw-ring-offset-color: #f5f3ff}.ring-offset-violet-50\/0{--tw-ring-offset-color: rgb(245 243 255 / 0)}.ring-offset-violet-50\/10{--tw-ring-offset-color: rgb(245 243 255 / .1)}.ring-offset-violet-50\/100{--tw-ring-offset-color: rgb(245 243 255 / 1)}.ring-offset-violet-50\/20{--tw-ring-offset-color: rgb(245 243 255 / .2)}.ring-offset-violet-50\/25{--tw-ring-offset-color: rgb(245 243 255 / .25)}.ring-offset-violet-50\/30{--tw-ring-offset-color: rgb(245 243 255 / .3)}.ring-offset-violet-50\/40{--tw-ring-offset-color: rgb(245 243 255 / .4)}.ring-offset-violet-50\/5{--tw-ring-offset-color: rgb(245 243 255 / .05)}.ring-offset-violet-50\/50{--tw-ring-offset-color: rgb(245 243 255 / .5)}.ring-offset-violet-50\/60{--tw-ring-offset-color: rgb(245 243 255 / .6)}.ring-offset-violet-50\/70{--tw-ring-offset-color: rgb(245 243 255 / .7)}.ring-offset-violet-50\/75{--tw-ring-offset-color: rgb(245 243 255 / .75)}.ring-offset-violet-50\/80{--tw-ring-offset-color: rgb(245 243 255 / .8)}.ring-offset-violet-50\/90{--tw-ring-offset-color: rgb(245 243 255 / .9)}.ring-offset-violet-50\/95{--tw-ring-offset-color: rgb(245 243 255 / .95)}.ring-offset-violet-500{--tw-ring-offset-color: #8b5cf6}.ring-offset-violet-500\/0{--tw-ring-offset-color: rgb(139 92 246 / 0)}.ring-offset-violet-500\/10{--tw-ring-offset-color: rgb(139 92 246 / .1)}.ring-offset-violet-500\/100{--tw-ring-offset-color: rgb(139 92 246 / 1)}.ring-offset-violet-500\/20{--tw-ring-offset-color: rgb(139 92 246 / .2)}.ring-offset-violet-500\/25{--tw-ring-offset-color: rgb(139 92 246 / .25)}.ring-offset-violet-500\/30{--tw-ring-offset-color: rgb(139 92 246 / .3)}.ring-offset-violet-500\/40{--tw-ring-offset-color: rgb(139 92 246 / .4)}.ring-offset-violet-500\/5{--tw-ring-offset-color: rgb(139 92 246 / .05)}.ring-offset-violet-500\/50{--tw-ring-offset-color: rgb(139 92 246 / .5)}.ring-offset-violet-500\/60{--tw-ring-offset-color: rgb(139 92 246 / .6)}.ring-offset-violet-500\/70{--tw-ring-offset-color: rgb(139 92 246 / .7)}.ring-offset-violet-500\/75{--tw-ring-offset-color: rgb(139 92 246 / .75)}.ring-offset-violet-500\/80{--tw-ring-offset-color: rgb(139 92 246 / .8)}.ring-offset-violet-500\/90{--tw-ring-offset-color: rgb(139 92 246 / .9)}.ring-offset-violet-500\/95{--tw-ring-offset-color: rgb(139 92 246 / .95)}.ring-offset-violet-600{--tw-ring-offset-color: #7c3aed}.ring-offset-violet-600\/0{--tw-ring-offset-color: rgb(124 58 237 / 0)}.ring-offset-violet-600\/10{--tw-ring-offset-color: rgb(124 58 237 / .1)}.ring-offset-violet-600\/100{--tw-ring-offset-color: rgb(124 58 237 / 1)}.ring-offset-violet-600\/20{--tw-ring-offset-color: rgb(124 58 237 / .2)}.ring-offset-violet-600\/25{--tw-ring-offset-color: rgb(124 58 237 / .25)}.ring-offset-violet-600\/30{--tw-ring-offset-color: rgb(124 58 237 / .3)}.ring-offset-violet-600\/40{--tw-ring-offset-color: rgb(124 58 237 / .4)}.ring-offset-violet-600\/5{--tw-ring-offset-color: rgb(124 58 237 / .05)}.ring-offset-violet-600\/50{--tw-ring-offset-color: rgb(124 58 237 / .5)}.ring-offset-violet-600\/60{--tw-ring-offset-color: rgb(124 58 237 / .6)}.ring-offset-violet-600\/70{--tw-ring-offset-color: rgb(124 58 237 / .7)}.ring-offset-violet-600\/75{--tw-ring-offset-color: rgb(124 58 237 / .75)}.ring-offset-violet-600\/80{--tw-ring-offset-color: rgb(124 58 237 / .8)}.ring-offset-violet-600\/90{--tw-ring-offset-color: rgb(124 58 237 / .9)}.ring-offset-violet-600\/95{--tw-ring-offset-color: rgb(124 58 237 / .95)}.ring-offset-violet-700{--tw-ring-offset-color: #6d28d9}.ring-offset-violet-700\/0{--tw-ring-offset-color: rgb(109 40 217 / 0)}.ring-offset-violet-700\/10{--tw-ring-offset-color: rgb(109 40 217 / .1)}.ring-offset-violet-700\/100{--tw-ring-offset-color: rgb(109 40 217 / 1)}.ring-offset-violet-700\/20{--tw-ring-offset-color: rgb(109 40 217 / .2)}.ring-offset-violet-700\/25{--tw-ring-offset-color: rgb(109 40 217 / .25)}.ring-offset-violet-700\/30{--tw-ring-offset-color: rgb(109 40 217 / .3)}.ring-offset-violet-700\/40{--tw-ring-offset-color: rgb(109 40 217 / .4)}.ring-offset-violet-700\/5{--tw-ring-offset-color: rgb(109 40 217 / .05)}.ring-offset-violet-700\/50{--tw-ring-offset-color: rgb(109 40 217 / .5)}.ring-offset-violet-700\/60{--tw-ring-offset-color: rgb(109 40 217 / .6)}.ring-offset-violet-700\/70{--tw-ring-offset-color: rgb(109 40 217 / .7)}.ring-offset-violet-700\/75{--tw-ring-offset-color: rgb(109 40 217 / .75)}.ring-offset-violet-700\/80{--tw-ring-offset-color: rgb(109 40 217 / .8)}.ring-offset-violet-700\/90{--tw-ring-offset-color: rgb(109 40 217 / .9)}.ring-offset-violet-700\/95{--tw-ring-offset-color: rgb(109 40 217 / .95)}.ring-offset-violet-800{--tw-ring-offset-color: #5b21b6}.ring-offset-violet-800\/0{--tw-ring-offset-color: rgb(91 33 182 / 0)}.ring-offset-violet-800\/10{--tw-ring-offset-color: rgb(91 33 182 / .1)}.ring-offset-violet-800\/100{--tw-ring-offset-color: rgb(91 33 182 / 1)}.ring-offset-violet-800\/20{--tw-ring-offset-color: rgb(91 33 182 / .2)}.ring-offset-violet-800\/25{--tw-ring-offset-color: rgb(91 33 182 / .25)}.ring-offset-violet-800\/30{--tw-ring-offset-color: rgb(91 33 182 / .3)}.ring-offset-violet-800\/40{--tw-ring-offset-color: rgb(91 33 182 / .4)}.ring-offset-violet-800\/5{--tw-ring-offset-color: rgb(91 33 182 / .05)}.ring-offset-violet-800\/50{--tw-ring-offset-color: rgb(91 33 182 / .5)}.ring-offset-violet-800\/60{--tw-ring-offset-color: rgb(91 33 182 / .6)}.ring-offset-violet-800\/70{--tw-ring-offset-color: rgb(91 33 182 / .7)}.ring-offset-violet-800\/75{--tw-ring-offset-color: rgb(91 33 182 / .75)}.ring-offset-violet-800\/80{--tw-ring-offset-color: rgb(91 33 182 / .8)}.ring-offset-violet-800\/90{--tw-ring-offset-color: rgb(91 33 182 / .9)}.ring-offset-violet-800\/95{--tw-ring-offset-color: rgb(91 33 182 / .95)}.ring-offset-violet-900{--tw-ring-offset-color: #4c1d95}.ring-offset-violet-900\/0{--tw-ring-offset-color: rgb(76 29 149 / 0)}.ring-offset-violet-900\/10{--tw-ring-offset-color: rgb(76 29 149 / .1)}.ring-offset-violet-900\/100{--tw-ring-offset-color: rgb(76 29 149 / 1)}.ring-offset-violet-900\/20{--tw-ring-offset-color: rgb(76 29 149 / .2)}.ring-offset-violet-900\/25{--tw-ring-offset-color: rgb(76 29 149 / .25)}.ring-offset-violet-900\/30{--tw-ring-offset-color: rgb(76 29 149 / .3)}.ring-offset-violet-900\/40{--tw-ring-offset-color: rgb(76 29 149 / .4)}.ring-offset-violet-900\/5{--tw-ring-offset-color: rgb(76 29 149 / .05)}.ring-offset-violet-900\/50{--tw-ring-offset-color: rgb(76 29 149 / .5)}.ring-offset-violet-900\/60{--tw-ring-offset-color: rgb(76 29 149 / .6)}.ring-offset-violet-900\/70{--tw-ring-offset-color: rgb(76 29 149 / .7)}.ring-offset-violet-900\/75{--tw-ring-offset-color: rgb(76 29 149 / .75)}.ring-offset-violet-900\/80{--tw-ring-offset-color: rgb(76 29 149 / .8)}.ring-offset-violet-900\/90{--tw-ring-offset-color: rgb(76 29 149 / .9)}.ring-offset-violet-900\/95{--tw-ring-offset-color: rgb(76 29 149 / .95)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-scroll{will-change:scroll-position}.content-Occupation_du_sol{--tw-content: "\e051";content:var(--tw-content)}@font-face{font-family:DINNextLTPro-Condensed;src:url(https://map.geoportail.lu/static-ngeo/28867F_0_0.c8a814.woff) format("woff")}@font-face{font-family:geoportail-icons-wc;src:url(data:font/woff;base64,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) format("woff")}.fa-solid{vertical-align:middle}.before\:inline-block:before{content:var(--tw-content);display:inline-block}.before\:w-16:before{content:var(--tw-content);width:4rem}.before\:translate-y-\[\.1rem\]:before{content:var(--tw-content);--tw-translate-y: .1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.before\:transform:before{content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.before\:font-icons:before{content:var(--tw-content);font-family:geoportail-icons-wc}.before\:text-3xl:before{content:var(--tw-content);font-size:1.875rem;line-height:2.25rem}.before\:text-\[\.85rem\]:before{content:var(--tw-content);font-size:.85rem}.before\:content-Amenagement_du_territoire:before{--tw-content: "\e044";content:var(--tw-content)}.before\:content-Environnement_humain:before{--tw-content: "\e048";content:var(--tw-content)}.before\:content-Environnement_naturel:before{--tw-content: "\e04b";content:var(--tw-content)}.before\:content-Occupation_du_sol:before{--tw-content: "\e051";content:var(--tw-content)}.before\:content-\[\'\\f129\'\]:before{--tw-content: "\f129";content:var(--tw-content)}.before\:content-agriculture:before{--tw-content: "\e043";content:var(--tw-content)}.before\:content-ahc:before{--tw-content: "\e016";content:var(--tw-content)}.before\:content-at:before{--tw-content: "\e044";content:var(--tw-content)}.before\:content-atlas_demographique:before{--tw-content: "\e05c";content:var(--tw-content)}.before\:content-cadastre_hertzien:before{--tw-content: "\e02d";content:var(--tw-content)}.before\:content-draw:before{--tw-content: "\e01e";content:var(--tw-content)}.before\:content-eau:before{--tw-content: "\e016";content:var(--tw-content)}.before\:content-emwelt:before{--tw-content: "\e04b";content:var(--tw-content)}.before\:content-energie:before{--tw-content: "\e048";content:var(--tw-content)}.before\:content-geosciences:before{--tw-content: "\e05b";content:var(--tw-content)}.before\:content-go:before{--tw-content: "\e00b";content:var(--tw-content)}.before\:content-infos:before{--tw-content: "\e01f";content:var(--tw-content)}.before\:content-intranet-at:before{--tw-content: "\e018";content:var(--tw-content)}.before\:content-layers:before{--tw-content: "\e00e";content:var(--tw-content)}.before\:content-legends:before{--tw-content: "\e041";content:var(--tw-content)}.before\:content-lenoz:before{--tw-content: "\e01a";content:var(--tw-content)}.before\:content-lintgen:before{--tw-content: "\e00c";content:var(--tw-content)}.before\:content-logement:before{--tw-content: "\e055";content:var(--tw-content)}.before\:content-main:before{--tw-content: "\e02d";content:var(--tw-content)}.before\:content-measure:before{--tw-content: "\e021";content:var(--tw-content)}.before\:content-municipalities:before{--tw-content: "\e042";content:var(--tw-content)}.before\:content-mymaps:before{--tw-content: "\e01d";content:var(--tw-content)}.before\:content-np_our:before{--tw-content: "\e005";content:var(--tw-content)}.before\:content-pag:before{--tw-content: "\e018";content:var(--tw-content)}.before\:content-preizerdaul:before{--tw-content: "\e00c";content:var(--tw-content)}.before\:content-print:before{--tw-content: "\e02f";content:var(--tw-content)}.before\:content-prof:before{--tw-content: "\e00a";content:var(--tw-content)}.before\:content-remich:before{--tw-content: "\e00c";content:var(--tw-content)}.before\:content-routing:before{--tw-content: "\e062";content:var(--tw-content)}.before\:content-share:before{--tw-content: "\e02a";content:var(--tw-content)}.before\:content-sig_secours:before{--tw-content: "\e00a";content:var(--tw-content)}.before\:content-tourisme:before{--tw-content: "\e04e";content:var(--tw-content)}.before\:content-urban_farming:before{--tw-content: "\e054";content:var(--tw-content)}.before\:content-wellenstein:before{--tw-content: "\e00c";content:var(--tw-content)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:left-\[20px\]:after{content:var(--tw-content);left:20px}.after\:top-\[10px\]:after{content:var(--tw-content);top:10px}.after\:w-\[3\.6em\]:after{content:var(--tw-content);width:3.6em}.after\:w-full:after{content:var(--tw-content);width:100%}.after\:px-\[15px\]:after{content:var(--tw-content);padding-left:15px;padding-right:15px}.after\:py-\[15px\]:after{content:var(--tw-content);padding-top:15px;padding-bottom:15px}.after\:text-center:after{content:var(--tw-content);text-align:center}.after\:font-icons:after{content:var(--tw-content);font-family:geoportail-icons-wc}.after\:content-Amenagement_du_territoire:after{--tw-content: "\e044";content:var(--tw-content)}.after\:content-Environnement_humain:after{--tw-content: "\e048";content:var(--tw-content)}.after\:content-Environnement_naturel:after{--tw-content: "\e04b";content:var(--tw-content)}.after\:content-Occupation_du_sol:after{--tw-content: "\e051";content:var(--tw-content)}.after\:content-agriculture:after{--tw-content: "\e043";content:var(--tw-content)}.after\:content-ahc:after{--tw-content: "\e016";content:var(--tw-content)}.after\:content-at:after{--tw-content: "\e044";content:var(--tw-content)}.after\:content-atlas_demographique:after{--tw-content: "\e05c";content:var(--tw-content)}.after\:content-cadastre_hertzien:after{--tw-content: "\e02d";content:var(--tw-content)}.after\:content-download:after{--tw-content: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4KCjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0iQ2FwYV8xIgogICB4PSIwcHgiCiAgIHk9IjBweCIKICAgdmlld0JveD0iMCAwIDMyNS4wNCAzMjUuMDQiCiAgIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyNS4wNCAzMjUuMDQ7IgogICB4bWw6c3BhY2U9InByZXNlcnZlIgogICBzb2RpcG9kaTpkb2NuYW1lPSJwYWxldHRlLnN2ZyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi4zICgyNDA1NTQ2LCAyMDE4LTAzLTExKSI+PG1ldGFkYXRhCiAgIGlkPSJtZXRhZGF0YTU3Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgcmRmOmFib3V0PSIiPjxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PjxkYzp0eXBlCiAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+PC9jYzpXb3JrPjwvcmRmOlJERj48L21ldGFkYXRhPjxkZWZzCiAgIGlkPSJkZWZzNTUiIC8+PHNvZGlwb2RpOm5hbWVkdmlldwogICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICBib3JkZXJvcGFjaXR5PSIxIgogICBvYmplY3R0b2xlcmFuY2U9IjEwIgogICBncmlkdG9sZXJhbmNlPSIxMCIKICAgZ3VpZGV0b2xlcmFuY2U9IjEwIgogICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMCIKICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI5ODIiCiAgIGlkPSJuYW1lZHZpZXc1MyIKICAgc2hvd2dyaWQ9ImZhbHNlIgogICBpbmtzY2FwZTp6b29tPSIyLjQ2NDMxMiIKICAgaW5rc2NhcGU6Y3g9IjE2Mi41MiIKICAgaW5rc2NhcGU6Y3k9IjE2Mi41MiIKICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgIGlua3NjYXBlOndpbmRvdy15PSIyNyIKICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0iQ2FwYV8xIiAvPgo8ZwogICBpZD0iZzIwIgogICBzdHlsZT0iZmlsbDojZmZmZmZmIj4KCTxwYXRoCiAgIGQ9Ik04NC44MjEsMjEwLjkzOGMtNC42NDYtMy42NzEtMTAuNDY5LTUuNjkzLTE2LjM5Ni01LjY5M2MtOC4wNTUsMC0xNS41NTYsMy41NzktMjAuNTgsOS44MjEgICBjLTQuMzkzLDUuNDY0LTYuMzgyLDEyLjMtNS41OTgsMTkuMjQ3YzAuNzg1LDYuOTYyLDQuMjU4LDEzLjE5OCw5Ljc3OCwxNy41NjFjNC42NDYsMy42NzIsMTAuNDY3LDUuNjk0LDE2LjM5Myw1LjY5NCAgIGM4LjA2MSwwLDE1LjU2My0zLjU4NiwyMC41ODMtOS44MzRjNC4zODktNS40NTUsNi4zNzYtMTIuMjgzLDUuNTk1LTE5LjIyN0M5My44MTMsMjIxLjU0NSw5MC4zNDIsMjE1LjMwNSw4NC44MjEsMjEwLjkzOHogICAgTTc5LjY0OCwyNDAuMjE1Yy0yLjczMiwzLjQwMi02LjgyNiw1LjM1NC0xMS4yMyw1LjM1NGMtMy4yODMsMC02LjM3OS0xLjA3NS04Ljk1MS0zLjEwOGMtMi45OTEtMi4zNjQtNC44NzEtNS43MzUtNS4yOTYtOS40OTMgICBjLTAuNDIyLTMuNzQzLDAuNjUyLTcuNDMxLDMuMDIzLTEwLjM3OWMyLjczMy0zLjM5Niw2LjgyNy01LjM0NCwxMS4yMzEtNS4zNDRjMy4yODYsMCw2LjM4MywxLjA3NSw4Ljk1NCwzLjEwNyAgIGMyLjk5LDIuMzY0LDQuODY5LDUuNzM3LDUuMjkyLDkuNDk3QzgzLjA5MiwyMzMuNTg5LDgyLjAyLDIzNy4yNjksNzkuNjQ4LDI0MC4yMTV6IgogICBpZD0icGF0aDEwIgogICBzdHlsZT0iZmlsbDojZmZmZmZmIiAvPgoJPHBhdGgKICAgZD0iTTE5MC4zMywxNDkuNDg0YzMuOTU4LDAsNy43ODUtMC44NjcsMTEuMzg0LTIuNTgyYzYuMzYyLTMuMDQ0LDExLjE0MS04LjM2OSwxMy40NTQtMTQuOTk1ICAgYzIuMzAxLTYuNTg0LDEuODg3LTEzLjY2OS0xLjE2My0xOS45NDRjLTQuMzYzLTguOTk0LTEzLjY4MS0xNC44MDYtMjMuNzM4LTE0LjgwNmMtMy45NjYsMC03LjgwMSwwLjg3LTExLjM5OSwyLjU4NyAgIGMtNi4zNiwzLjAzNC0xMS4xNDEsOC4zNTUtMTMuNDU4LDE0Ljk4M2MtMi4zMDUsNi41ODktMS44OTIsMTMuNjc1LDEuMTYzLDE5Ljk1M0MxNzAuOTUsMTQzLjY3MywxODAuMjc1LDE0OS40ODQsMTkwLjMzLDE0OS40ODR6ICAgIE0xNzYuNzM2LDExOC42ODhjMS4yNTQtMy41ODUsMy44NDYtNi40NjcsNy4yOTgtOC4xMTRjMS45NzItMC45NCw0LjA2OC0xLjQxNyw2LjIzMi0xLjQxN2M1LjQ5MSwwLDEwLjU3MSwzLjE1NywxMi45NDMsOC4wNDggICBjMS42NDUsMy4zODQsMS44NjgsNy4xOTksMC42MywxMC43NDVjLTEuMjUzLDMuNTg3LTMuODQ4LDYuNDczLTcuMjk2LDguMTIzYy0xLjk2NSwwLjkzNy00LjA1NiwxLjQxMS02LjIxNCwxLjQxMSAgIGMtNS40OTYsMC0xMC41ODYtMy4xNjItMTIuOTY4LTguMDU1QzE3NS43MTgsMTI2LjA1LDE3NS40OTYsMTIyLjIzNiwxNzYuNzM2LDExOC42ODh6IgogICBpZD0icGF0aDEyIgogICBzdHlsZT0iZmlsbDojZmZmZmZmIiAvPgoJPHBhdGgKICAgZD0iTTEyNS4wMzUsMTA3LjA4MWMxLjkzLDAuNDM2LDMuOTA1LDAuNjU3LDUuODcsMC42NTdjMTIuMzUyLDAsMjIuOTA1LTguMzU0LDI1LjY2NS0yMC4zMjcgICBjMS41NTEtNi43ODksMC4zNTgtMTMuNzc4LTMuMzU2LTE5LjY4MmMtMy43NDUtNS45NS05LjU5OC0xMC4wODYtMTYuNDc2LTExLjY0NGMtMS45MzgtMC40NC0zLjkyMS0wLjY2NC01Ljg5NS0wLjY2NCAgIGMtMTIuMzQ0LDAtMjIuODg2LDguMzYzLTI1LjYzNywyMC4zMzRjLTEuNTY0LDYuNzg0LTAuMzc5LDEzLjc3NCwzLjMzNiwxOS42ODJDMTEyLjI5LDEwMS4zOTUsMTE4LjE0OSwxMDUuNTMxLDEyNS4wMzUsMTA3LjA4MXogICAgTTExNi45MDEsNzguNDQ3YzEuNDkxLTYuNDkxLDcuMjI1LTExLjAyNSwxMy45NDItMTEuMDI1YzEuMDc5LDAsMi4xNjgsMC4xMjMsMy4yMzksMC4zNjZjMy43NTIsMC44NSw2LjkzOSwzLjA5OSw4Ljk3NSw2LjMzMyAgIGMyLjAwNiwzLjE4NywyLjY1LDYuOTU3LDEuODE2LDEwLjYwNWMtMS40NzEsNi4zODEtNy4zNDYsMTEuMDEyLTEzLjk2OSwxMS4wMTJjLTEuMDc2LDAtMi4xNjEtMC4xMjItMy4yMjktMC4zNjMgICBjLTMuNzUzLTAuODQ1LTYuOTQtMy4wOTItOC45NzUtNi4zMjZDMTE2LjY5OCw4NS44NjQsMTE2LjA1OSw4Mi4xLDExNi45MDEsNzguNDQ3eiIKICAgaWQ9InBhdGgxNCIKICAgc3R5bGU9ImZpbGw6I2ZmZmZmZiIgLz4KCTxwYXRoCiAgIGQ9Ik03Ny4zNTYsMTIyLjA1YzUuNTE0LTQuMzY5LDguOTgxLTEwLjYxLDkuNzY1LTE3LjU3M2MwLjc4MS02Ljk0Mi0xLjIwMi0xMy43Ny01LjU5My0xOS4yMzUgICBjLTUuMDMyLTYuMjM5LTEyLjUzOS05LjgxNy0yMC41OTQtOS44MTdjLTUuOTIxLDAtMTEuNzM4LDIuMDE2LTE2LjM4NSw1LjY4MWMtNS41MTUsNC4zNTYtOC45ODQsMTAuNTg3LTkuNzcxLDE3LjU0NSAgIGMtMC43ODYsNi45NTEsMS4yMDIsMTMuNzkxLDUuNjAxLDE5LjI2NWM1LjAyOCw2LjI0NiwxMi41MzYsOS44MjksMjAuNiw5LjgyOUM2Ni45MDUsMTI3Ljc0NCw3Mi43MjIsMTI1LjcyMiw3Ny4zNTYsMTIyLjA1eiAgICBNNDkuNzMxLDExMC4zOTNjLTIuMzc2LTIuOTU2LTMuNDUxLTYuNjQ4LTMuMDI3LTEwLjM5NmMwLjQyNC0zLjc1MywyLjMwMi03LjExOSw1LjI4Mi05LjQ3NGMyLjU3MS0yLjAyOCw1LjY2Ni0zLjEsOC45NDktMy4xICAgYzQuNDA4LDAsOC41MTEsMS45NSwxMS4yNDYsNS4zNDFjMi4zNjUsMi45NDYsMy40MzcsNi42MjksMy4wMTYsMTAuMzdjLTAuNDIzLDMuNzY0LTIuMzAzLDcuMTQyLTUuMjkyLDkuNTEgICBjLTIuNTU5LDIuMDI3LTUuNjQ2LDMuMDk5LTguOTI1LDMuMDk5QzU2LjU2NywxMTUuNzQ0LDUyLjQ2NywxMTMuNzkyLDQ5LjczMSwxMTAuMzkzeiIKICAgaWQ9InBhdGgxNiIKICAgc3R5bGU9ImZpbGw6I2ZmZmZmZiIgLz4KCTxwYXRoCiAgIGQ9Ik0zMjIuNzQ1LDYzLjMzNmMtMS4wMzctMS4wNDYtMi44ODctMi4yOTMtNS44MDYtMi4yOTNjLTMuNDIzLDAtMTIuNTE2LDAtNjcuNzQsNDYuOTkyYy0xLjExLDAuOTQ0LTIuMjMsMS45MDEtMy4zNTQsMi44NjUgICBjLTkuODY3LTI1LjczOS0yNy4yMDMtNDguNjg2LTQ5LjU0Mi02NS4yODRjLTI1LjYxNC0xOS4wMzEtNTYuMTE0LTI5LjA5Ni04OC4yLTI5LjEwNGMtMC4wMSwwLTAuMDE3LDAtMC4wMjUsMCAgIGMtMjEuNjU0LDAtNDcuOTc2LDcuNTY2LTY4LjY5NywxOS43NDlDMTMuOTgxLDUxLjE5My0wLjAwNSw3MS4xNjMsMCw5Mi40OWMwLjAwOCwyNS43NDgsMTQuNTMsMzYuNTE4LDI2LjE5OSw0NS4xNzEgICBjOS41MTUsNy4wNTcsMTcuMDMsMTIuNjMsMTcuMDM0LDI0Ljg0NGMwLjAwMywxMi4yMTMtNy41MDgsMTcuNzgxLTE3LjAxOCwyNC44MzFjLTExLjY2NSw4LjY0OC0yNi4xODQsMTkuNDEyLTI2LjE3Niw0NS4xNjMgICBjMC4wMDYsMjEuMzI0LDE0LjAwMSw0MS4yOTksMzkuNDA2LDU2LjI0NGMyMC43MzYsMTIuMTk4LDQ3LjA3MiwxOS43OCw2OC43MywxOS43ODZjMC4wMTUsMCwwLjAyOCwwLDAuMDQyLDAgICBjMzkuMzA1LDAsNzYuMjU0LTE1LjE3MSwxMDQuMDQ0LTQyLjcyYzI3LjQzNi0yNy4xOTcsNDIuNjk1LTYzLjI0Niw0My4wOTYtMTAxLjY2MWM5LjMxNi0xMC42MDEsMTguMzQxLTIxLjEzOCwyNi41OC0zMS4wNjcgICBjMTQuMDk2LTE2Ljk4NiwyNC45MzUtMzEuMDAyLDMyLjIxNi00MS42NTdDMzIzLjc5OSw3Ny4zMTEsMzI4LjAyMyw2OC42NTUsMzIyLjc0NSw2My4zMzZ6IE0yMDMuODE0LDI1Ny4yODcgICBjLTI1LjUyOSwyNS4zMDgtNTkuNDc1LDM5LjI0Mi05NS41OTYsMzkuMjQyYy0wLjAxMSwwLTAuMDI3LDAtMC4wMzgsMGMtMzguNzA3LTAuMDExLTk2LjEzLTI2LjkwMy05Ni4xNDEtNjQuMDM0ICAgYy0wLjAwNi0xOS43MDcsMTAuMzU0LTI3LjM4OCwyMS4zMjMtMzUuNTJjMTAuMjUzLTcuNjAyLDIxLjg3NC0xNi4yMTgsMjEuODctMzQuNDc0Yy0wLjAwNi0xOC4yNTMtMTEuNjMtMjYuODc0LTIxLjg4Ni0zNC40NzkgICBDMjIuMzcyLDExOS44ODMsMTIuMDA2LDExMi4xOTYsMTIsOTIuNDg3Yy0wLjAwNS0yMi44MDEsMjAuOTYzLTM4LjUzMywzMy40NjMtNDUuODgyYzE4LjY5OC0xMC45OTMsNDMuMjczLTE4LjA5NCw2Mi42MTUtMTguMDk0ICAgYzAuMDA3LDAsMC4wMTUsMCwwLjAyMSwwYzI5LjQ5MSwwLjAwOCw1Ny41MTcsOS4yNTQsODEuMDQ4LDI2LjczNmMyMS43MDIsMTYuMTI1LDM4LjI2OCwzOC43NjEsNDYuOTk0LDY0LjA0OSAgIGMtMjYuMDI1LDIyLjcyNC01NC4yMDcsNDguOTI0LTc1LjE5NSw2OS45OGMtMzQuODU5LDQuNTEyLTM5LjYwOCwyNy43NDQtNDMuMDgsNDQuODExYy0yLjk1NiwxNC41MzItNC44NzUsMjEuNTU4LTE2LjA5MiwyMi40NTggICBjLTIuNzY0LDAuMjIyLTUuMDE1LDIuMzA4LTUuNDQ2LDUuMDQ3Yy0wLjQzMiwyLjczOCwxLjA2OSw1LjQxNiwzLjYzMSw2LjQ3N2MwLjcyMSwwLjI5OCwxNy44NzcsNy4zMDgsMzcuOTIxLDcuMzA5ICAgYzAuMDAzLDAsMC4wMDUsMCwwLjAwNywwYzEzLjk2OCwwLDI1Ljk1LTMuMzg2LDM1LjYxMi0xMC4wNjNjMTEuOTA2LTguMjI4LDE5Ljk3OS0yMS4yNzMsMjQuMDM2LTM4Ljc2NyAgIGMxMy43MTMtMTMuODc0LDI5LjM4Mi0zMC42MDQsNDQuODc2LTQ3LjgzN0MyMzguODQ1LDIwOC4zODEsMjI1LjQ1NiwyMzUuODMzLDIwMy44MTQsMjU3LjI4N3ogTTE4NS40OCwyMjUuNDEyICAgYy02LjM1OCwyNS4xOTYtMjIuMzU2LDM3Ljk2OC00Ny41OTQsMzcuOTY3YzAsMC0wLjAwNCwwLTAuMDA2LDBjLTYuNjU1LDAtMTMuMDI4LTAuOTA4LTE4LjM4Ni0yLjA0ICAgYzYuNC02LjUyNyw4LjM5OS0xNi4zNDksMTAuMTMtMjQuODU4YzMuMjk3LTE2LjIwOCw2LjQxNS0zMS41NDcsMzEuOTIzLTM1LjE5MUwxODUuNDgsMjI1LjQxMnogTTI2OC4zMzYsMTMwLjY1MiAgIGMtMjMuNzg1LDI4LjMzNy01Mi41NzUsNjAuMTU5LTc2LjI3NSw4NC4zNTRsLTMuNjY5LTMuNjk4bC0xNi4xODktMTYuMzE3YzIxLjQ4OC0yMS4zOSw0OS4wNTQtNDYuODk1LDc0Ljc3My02OS4yMTZsMCwwICAgYzIuOTk4LTIuNjAyLDUuOTc3LTUuMTcxLDguOTEzLTcuNjc1YzI5Ljg0Ny0yNS40NTUsNDUuNDg5LTM2LjUzMyw1My40NjgtNDEuMzU0QzMwNC41OTIsODQuNzczLDI5My42MTYsMTAwLjUzNCwyNjguMzM2LDEzMC42NTJ6ICAgIgogICBpZD0icGF0aDE4IgogICBzdHlsZT0iZmlsbDojZmZmZmZmIiAvPgo8L2c+CjxnCiAgIGlkPSJnMjIiPgo8L2c+CjxnCiAgIGlkPSJnMjQiPgo8L2c+CjxnCiAgIGlkPSJnMjYiPgo8L2c+CjxnCiAgIGlkPSJnMjgiPgo8L2c+CjxnCiAgIGlkPSJnMzAiPgo8L2c+CjxnCiAgIGlkPSJnMzIiPgo8L2c+CjxnCiAgIGlkPSJnMzQiPgo8L2c+CjxnCiAgIGlkPSJnMzYiPgo8L2c+CjxnCiAgIGlkPSJnMzgiPgo8L2c+CjxnCiAgIGlkPSJnNDAiPgo8L2c+CjxnCiAgIGlkPSJnNDIiPgo8L2c+CjxnCiAgIGlkPSJnNDQiPgo8L2c+CjxnCiAgIGlkPSJnNDYiPgo8L2c+CjxnCiAgIGlkPSJnNDgiPgo8L2c+CjxnCiAgIGlkPSJnNTAiPgo8L2c+Cjwvc3ZnPg==);content:var(--tw-content)}.after\:content-draw:after{--tw-content: "\e01e";content:var(--tw-content)}.after\:content-eau:after{--tw-content: "\e016";content:var(--tw-content)}.after\:content-emwelt:after{--tw-content: "\e04b";content:var(--tw-content)}.after\:content-energie:after{--tw-content: "\e048";content:var(--tw-content)}.after\:content-geosciences:after{--tw-content: "\e05b";content:var(--tw-content)}.after\:content-go:after{--tw-content: "\e00b";content:var(--tw-content)}.after\:content-infos:after{--tw-content: "\e01f";content:var(--tw-content)}.after\:content-intranet-at:after{--tw-content: "\e018";content:var(--tw-content)}.after\:content-layers:after{--tw-content: "\e00e";content:var(--tw-content)}.after\:content-legends:after{--tw-content: "\e041";content:var(--tw-content)}.after\:content-lenoz:after{--tw-content: "\e01a";content:var(--tw-content)}.after\:content-lintgen:after{--tw-content: "\e00c";content:var(--tw-content)}.after\:content-logement:after{--tw-content: "\e055";content:var(--tw-content)}.after\:content-main:after{--tw-content: "\e02d";content:var(--tw-content)}.after\:content-measure:after{--tw-content: "\e021";content:var(--tw-content)}.after\:content-municipalities:after{--tw-content: "\e042";content:var(--tw-content)}.after\:content-mymaps:after{--tw-content: "\e01d";content:var(--tw-content)}.after\:content-np_our:after{--tw-content: "\e005";content:var(--tw-content)}.after\:content-pag:after{--tw-content: "\e018";content:var(--tw-content)}.after\:content-preizerdaul:after{--tw-content: "\e00c";content:var(--tw-content)}.after\:content-print:after{--tw-content: "\e02f";content:var(--tw-content)}.after\:content-prof:after{--tw-content: "\e00a";content:var(--tw-content)}.after\:content-remich:after{--tw-content: "\e00c";content:var(--tw-content)}.after\:content-routing:after{--tw-content: "\e062";content:var(--tw-content)}.after\:content-share:after{--tw-content: "\e02a";content:var(--tw-content)}.after\:content-sig_secours:after{--tw-content: "\e00a";content:var(--tw-content)}.after\:content-tourisme:after{--tw-content: "\e04e";content:var(--tw-content)}.after\:content-upload:after{--tw-content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3C!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath style='fill:white;' d='M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V392c0 13.3 10.7 24 24 24s24-10.7 24-24V257.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z'/%3E%3C/svg%3E");content:var(--tw-content)}.after\:content-urban_farming:after{--tw-content: "\e054";content:var(--tw-content)}.after\:content-wellenstein:after{--tw-content: "\e00c";content:var(--tw-content)}.hover\:bg-\[\#ccc\]:hover{--tw-bg-opacity: 1;background-color:rgb(204 204 204 / var(--tw-bg-opacity))}.hover\:bg-cyan-600:hover{--tw-bg-opacity: 1;background-color:rgb(8 145 178 / var(--tw-bg-opacity))}.hover\:bg-primary:hover{background-color:var(--color-primary)}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.hover\:text-Amenagement_du_territoire-primary:hover{color:var(--Amenagement_du_territoire-primary)}.hover\:text-Environnement_humain-primary:hover{color:var(--Environnement_humain-primary)}.hover\:text-Environnement_naturel-primary:hover{color:var(--Environnement_naturel-primary)}.hover\:text-Occupation_du_sol-primary:hover{color:var(--Occupation_du_sol-primary)}.hover\:text-agriculture-primary:hover{color:var(--agriculture-primary)}.hover\:text-ahc-primary:hover{color:var(--ahc-primary)}.hover\:text-at-primary:hover{color:var(--at-primary)}.hover\:text-atlas_demographique-primary:hover{color:var(--atlas_demographique-primary)}.hover\:text-cadastre_hertzien-primary:hover{color:var(--cadastre_hertzien-primary)}.hover\:text-eau-primary:hover{color:var(--eau-primary)}.hover\:text-emwelt-primary:hover{color:var(--emwelt-primary)}.hover\:text-energie-primary:hover{color:var(--energie-primary)}.hover\:text-geosciences-primary:hover{color:var(--geosciences-primary)}.hover\:text-go-primary:hover{color:var(--go-primary)}.hover\:text-intranet-at-primary:hover{color:var(--intranet-at-primary)}.hover\:text-lenoz-primary:hover{color:var(--lenoz-primary)}.hover\:text-lintgen-primary:hover{color:var(--lintgen-primary)}.hover\:text-logement-primary:hover{color:var(--logement-primary)}.hover\:text-main-primary:hover{color:var(--main-primary)}.hover\:text-municipalities-primary:hover{color:var(--municipalities-primary)}.hover\:text-np_our-primary:hover{color:var(--np_our-primary)}.hover\:text-pag-primary:hover{color:var(--pag-primary)}.hover\:text-preizerdaul-primary:hover{color:var(--preizerdaul-primary)}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:text-prof-primary:hover{color:var(--prof-primary)}.hover\:text-remich-primary:hover{color:var(--remich-primary)}.hover\:text-sig_secours-primary:hover{color:var(--sig_secours-primary)}.hover\:text-tourisme-primary:hover{color:var(--tourisme-primary)}.hover\:text-urban_farming-primary:hover{color:var(--urban_farming-primary)}.hover\:text-wellenstein-primary:hover{color:var(--wellenstein-primary)}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.group:hover .group-hover\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:static{position:static}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:h-14{height:3.5rem}.sm\:h-full{height:100%}.sm\:w-16{width:4rem}.sm\:w-64{width:16rem}.sm\:w-80{width:20rem}.sm\:w-full{width:100%}.sm\:flex-row{flex-direction:row}.sm\:divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse: 0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.sm\:divide-y-0>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(0px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(0px * var(--tw-divide-y-reverse))}.sm\:border-y-0{border-top-width:0px;border-bottom-width:0px}.sm\:text-\[2rem\]{font-size:2rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:shadow-footer{--tw-shadow: 0px 2px 6px 1px rgb(0 0 0 / 50%);--tw-shadow-colored: 0px 2px 6px 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media (min-width: 768px){.md\:flex-row{flex-direction:row}.md\:bg-hybrid{background-image:url(data:image/png;base64,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)}.md\:bg-ortho{background-image:url(data:image/png;base64,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)}.md\:bg-route{background-image:url(data:image/png;base64,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)}.md\:bg-topo{background-image:url(data:image/png;base64,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)}.md\:bg-topo_bw{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAA6CAYAAAAwXE5YAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAB5/SURBVHheddv581fTHwfw+7f5oYyUoYlJshVJqESlyBJaKJKihSJLCyoUZV9KtohIlmixVoSSteP7eM08m/c0vmfmzr3ve895ndfr+Xq+nufc+6nu2WefbS+++GK7995721VXXdXWrFnTXnrppTpmzpzZxowZ01544YU6nnrqqXbfffe11atXt7Vr17ZXXnml7dq1q/3222/t999/b4cPH25Hjx5tzzzzTNu8eXP78ssv65n2119/tb1797Z33nmnrVy5sn3yySdt3759bePGje32229vF154YZ3XrVvXXn/99fbcc8+1FStWtPXr17dff/217B46dKi99957bdKkSW3atGlt+/btde+HH34oOw8//HDbsGFDXT/99NPtySefbC+//HL9vummm9r1119fMdx2223t448/bu+//3757zx79uzCYNasWW3+/PntjjvuaHPnzm2rVq0qHx544IHqM2/evHbXXXfVsWjRonbnnXe2OXPm1NkY13fffffxgw19O04ARoDjx4+vIADpPuPu+S0A56VLlzbJcQDjww8/LBC0Y8eOtb///vs4qG+//XZ79dVXK1j2H3zwwZrcPf00Y++///522WWXlbPs8odt1xK/ZcuWtnv37no+YcKE9vzzz7c9e/bU+D///LP9888/lcB77rmnSAMYNoAqDvMvXry4jR49uuKQ0DfeeKN8R4atW7e2xx9/vIBELvM4+KvfRx99VP4DTCICnlic/QZwAP9PoLHnsccea6+99lplVMC33HJLMReoN954Y3XEkEcffbSCEIAzEATyxRdftF9++eU4ow8ePNh27txZQWPEQw89VAfGPfLII8eZfuTIkfbVV1/VfNhmTqBgomrxW7DAxXhMAzoWmwPImsTyX6UABMiSAVS/2QIk0rAnLr8BiNkffPBBe/PNN8sPSQAOwDBUgpYvX16+uBdAgeg5hrvmm/P/Bfqzzz4rEDkHvAULFrRhw4a1cePGtWuuuaZdffXVdfZ84cKFxTLOYyWQgS0gDGQnicg9Z2PcF5xAnUkTtmDIxRdfXNUi6cByXHvtteXDBRdcUMErbw17NdWjkRXlL2hJlEx+sS/RJE7y+ATIW2+9ta6xH9DvvvtuyRgcyAtQAhaGkxlgATTgOwOWX8jpOdzS5z+B/vzzz8tBIGGBbGO134K98sorK1hsYFQQQHe4NgbwTzzxRAXlXmxhM5CxzZnOAxzbNYzmOIfYwB7rxKWXXtqmT5/elixZUokyDih//PFHjdNIj0NlOLBeoPznAyKc6CMpvOSSSwpooNJ7bJbwTz/9tPogFbAkgm8AxWCg02TE8Nw9IJ4Iau71Mp+tTvlxyuIlICUOWAwzMfaRFplVvjQcAO4JRB/AYo0SBTYmYZT7SQo7wFb6JEbD0htuuKEqBfvNLSDJYFd/CTSezQMHDlRyjO+VDQvxddddV6zim/Hmd2YD0AAnfYizbNmyYhl/JRCjAc43UhmmAlS/AM1+QHb/v4B2H1bOWTjd7zhrUaCLHAMwMGUPeFgpEZydMWNGGRk7dmybOHFi/aZdAVGiIiEOvwUsSCxi7/vvvy+AaCxH2AEA2TA/UPlgjKRhGykxB61Ufe7R+d4FFdB8YUty+BN7bPGDvZtvvrkkBNjYv2PHjpKNbdu2FeB80qeXycCNHgfMABiwc+2+/u5JlsN1l3LkhAxzcOrUqVWKAhR0dFgAnBe0oLCRhktMgNcfwBLnzB6QBYwxadisTAWDvekLEAkxH8lhx3gB8Ac4nOevhVQDtPlJj3kkw7isD+6x6zcCYbUYAG7HQUJIh4NdcfELYNgdBjuA1gvyiYdnmG+MQ8Ikqfvpp5/a119/XWzBqjgmqwAXpLLFUGzhiGv97HOVKuf1dQDDCg5wUhDn9AWcUrdDEag1ACCqQDLZdnaoIH0kgLP0VXVhJyDpHuA0NgEtQL5iq7GRDIl0nXnswd3jF+JYELHa2oEM1geVi82OxBApCaA5eoHWL31tFSVT4joBYJaHGMsRQLufcuQMx+iyILEgGgrUgGLfrEK+/fbb9tZbb9UOY/LkyfXSQ26cp0yZUrbNaYGVgNjCOnNbL/w2H0YpWUn78ccfC1iyQdclOHt4wUgIMCUbcYDsN/uS4uBrqg5hVAd9Jp+kw5nfQLLwhZl8yHUvyL1gwzD9wmoYirmTQQvCN998Uw91JgXYhq0cTmYwDlsAZdHgMFBMZCyQlAkd9tZHioClnyRKmnFXXHFFgawCVI4tmb6AxnC2BMtpc5ELSVR9FkEM9pKDNXnztIvguwQhhsSoRmC7B2TAkiWsdzYXubMG0eiArbKB7OCDM9vADNi9h/g9l2iVBrdInIowrnMBIIwcMWJEXXPstNNOq0n8BrwtHzAYsL9VqpIkEEwFOMYNGjSoGA0UzwUNQExSDcYqTcBLgrc1zrEDXP5gOX+yCArcm6Zmh+GFxRhAZ/eBNQJmB4jZrwMYq91HFL5IQCSJLyTRi4tk2u56AWOLL+bp3UsD1rw5TgQ664f1wm/EFEcHfc4PGTKkFglBMjh06NDqANzLL7+8JMB97DzllFOKMZ5ZDJW3LRenGNb89jIBaEHqj8UcEiQ2AYRNe1vjJIYkAImzfAHS/v37a4cBVIek8luiPNPorkogE8DEWnPSdYnyPQSQ7GKw+VQB3zHWMxLi+wlpNAe2SyCfgOlI1RujeiVAIgAuJr57KQJ43oT50cmkwAXlocDOP//8MsQZ984666zSQ+zm3Nlnn11ssbh5ZjI2MEFZA1ijn1byrPQcAjxGAZksGYcZmC5Ie2UAAkRSBZ3GLpnjvEPQ5gO+hJMmtgVMJvxmyyJnAfY2SR7EIflkLEzVn/ZHPuxEJMGBQFnw9YeJM6CByg+4qQDPVAjsVD8fMLteWDgLNE4J3KRKm0NA8Equ9GWSYW9v2E6HVcKmTZtqERQIcL1UaFj93XffHV9YJYd9rAO4isA2ZQYoDmpkh6OCszj7gGRXAETajKWu+QhAr+XG8w+T2ZFIc2HVzz//XDFqmJrFd+TIkQWC/sDOdw9nByKIF0H0UzXAw16gYjj78HJPfMCXGBWH3ZLgWZdvB8oXk4GNEZhE3zDbm6JBgsc8TGCMswMGDCig6LPyA5wyz9sf0AQXvRSk38ZkUYo+++YhGE3wEoERnBWgpEsQANzDQI1+qzL2gcsmkgDAQZI0fvkKaD52yKFkqmaA8kdVZRdi56QP8IAV9gMec9mx6yIxfpMYvsEQufirL987k9tHAoJDFr6LLrqogOQ0BmEwI1gNeE4pa8HIHEcyPszJN2QNIyVAAiVH9WAkp9znmLJk2yILHLscbAEEjaO7gDQnifIhCUlUJFYLiOyoIG+dWOxa4ysiqDSxsqNSEMcc7AOSP94USQ2iAV2ViN1zcfILiElKFkCgIkU0GRGyGEpqvYJbpGyT7BYAhFUCxijsAATN5CCwDZQA7PSG1/ttWOKihRzym21MYstYDJIU47GCk5iC/QK0+JIaTvNH8rLoSR4AAWChImvGCloDtvsqb/jw4QWShdD2zYuZxIqFfQdf+IR17GAxoGm0MXzGWORCPnLlE4AF1bZXjIA2ni3EcOjPfrawHZB8CwYGhjgIO41S4tgHYM5hA23GYmBgBSf1z19YgE1POaXUbMW0vMjk2wV2G8euAwh8cM8CpLIQQCIlIJ9FgU4bgQlUr+FehgRsfsF7jtWe+xKIKErcmqJKMZNM9u/fvyoRoUhXFjJJAzJ2O7CYJkcqHOYXo0QaK6bYsF4gqjhUiSou6VBSJsQgpWll1zgObFlUukraZJhoF2EPKglkwBhgAELpkJu8ybmfayWNzcBlx9l483AIG8whCM7ao9vpAM1YDVMBJllAUqIYbB5bTz6EOMjABh03nzl8hWTT2T3xqVC+YB9wAW0NsANR/uQH02EEZDG6L8HY7Jp0YD+CAF5/lUjaupQkUKN5Mqb5LQkybCLsBrYABeAFB7uxGlMBBESBkQ7jlW0aRqeFtexJlrIVqESzhxnYagy5cgakyslfV8xl+wgkicF8izpQEYjM8G/w4ME1zjzWASWOWFgNKInWLzKgH4D9eSyfUZFK5atSwGIqO8DFav77DIBg7MGTjqseel0a7abX5mzLZA0j0jwL4xjBAmD4wmdi5c4okKzSQKSF+fxIFgDj0ADHKTsPSaODSpN9tlUPltJJlSBhms8EGtD4yh5fJRZh+Oz1npSQKnYlE/iqga/mZc/Owtsun+12fHLwPDsIfks0dpMviQAq5vJb5QGQXDhjMYlBUjE57ML4qnVKslf/OC9QWUR/Rjnjt/sWAb+xl0P2opgoKBkHPrYATB8lrhKUjwZ0i4SAJIgtfS2IfgPboWKy8ITB/AQm5zEtsmK8V2cNi/lFFixIxpMaVXnmmWdWZfAFkGRCQmi4RNNWH7tIFh+sX8ByHXkgGUAHsCrCdJ8RzKkCLNKw4rOE8keF1J+yNAsFEDltMGOCN1DAdg2eAd/EWAlgwSobjrjmjIR45ki/aLSXDYEoPfN5rmSxBejZB2OqZ2TBc3rHac4DyUImMMDzM1tLUhQW2Z3wFYttB0899dT6tHDyySfX+JNOOqkqwLzmo/dkgC989iKGrTQZOQDLb2DzSdWJxRYRmO6RLw2B2RMvPDvBQB9Q9Mtgjlu5gSxTyoSj5INTmOdgHBCcsAsBEknJwqmva/qeHYJSFox5yY3kmZvzrlWBg31O6mc8XyQLq1WRILATAdxnH+sFJXD3SJ5F2zyaMexKBNYpdQsevyWdLOqj2uxeSAl5Oe+888oOoNm2p8ZichOtVjkaGSaZlEAcnsO1AwgmyKgbjMtowHbQXCWENfpzDFOA6kWBE8qUbkqIZ5LgSEIk0zUGGZdnwCQTwDYO2HkewEmPIOm+honeVi3G55xzTi1q9qvYbt+NZd4UBw4cWDKmSbIqlWi2yUX+nQcpsWi7hzRYjEBIhkDmUq1I6CCPEgEX4y3Iqk0TB332UoVk4mG3ozWcACCQGQeywGQFk/w2AKNlDsuwlUM0DcMkgt5pAMvi6NpiAgCV4fUdeGE8pzBWcvUFLnAshJLgOYet3hbDlKbFDbtTafbrCJMFPQ17jcNwfgKJP3wFhgYkPgAZwMCynwYq2bD2IKEqUDViJaE0XJIkWGXob5HFaC9eYoRfbe+w00BB0TIB5V0+WiUYpcmI8gogsq1szj333FrkNKs/IJUiZurnmcCUNT033oHJSjU6zDGs5ZNk+u2sn6RqShPIggM0gJR63kDdVz3Ay1ulhRCIWG/rly0nnyTA3CoSwIiHYOJy7ew+sFWWxGXzYC4gAl0MpMqhH5zck1R+dfQS+wSEbRYzrAWuppMmQCWCXRYrCcAQ2bPyCzhNoJLCCY5xiB2aptQELgkS4je2CMa87mG6BPnNbhaVsFmgbAOX/w73sk9PGZuXPVUHNH6l6vhlr29enxxIpHUCsJjpmh7zGfDYzJb+dBfjkdE45AAwFsPPlpC/wNawvVPOVnQlIbuaa07LfILSTCYhnFE2MoetqgD4GCQQ7NcCjHJmi4N2DFjmmcBVEx9UABvYKyCHZEoIhwVobkEAiVQ4YxpQgMpvjQ/8U5kWM0TSNwngs4oilUoboHyj4SQzIAPIroyUkTC+AZeMisOuRFICKgb7dGE3xJYmRnMUoxn1QFl5AFy6RvsYV8LAMZnsCRobGBC4rPoOouRNLrNkB1jK3DjJMcaWK+UKDI7aPpItjtJQc2K68XywmLABeIFq/NEsxOZOo7uSQ9bsk/1OqWukDZjskCNJ5qu5HdhrV4GxqtVYCUQ2hJEsiYyEeY6A4oMTkC2S+XJIViSmAyigfSsAsgBIiMmxDnNs/oFoIoOs6sYpcYFgJUlRgmGWlwNM4izW2R0ATMbNJzkYCmjlaT6s0g8QGGKu6Dn7nPZMkKqHf8P/9zKibP3u/RenkpWKCtP5ks+d7ARcxJF4oGM5/8SLyUggkRgMRGRBAIn3pc9GAthAF5PxFMJvFc+Gl6sOeLIrI3TUK6Tv0ZwkH9jn/d0AfQ0+44wzyunoOPBsgbDFwbG+ffuWznLYyu0VlQ3JtC8FBMfM7VsELRawV3jMYENJKmMs009SlL1kOsxvuwh4DBI0INmxa+GvRjYAY8EDpoQ5YzRQgQx8a4X7eZ1XmZ4BT19EQS4YeOaeg+RhuWRnC4qIiEd6VHl967DnNJjD2MXZ6BknffO1z1bO2W04kllOAlOS2DGBz5OY6HlYajyW+sImAYCWVIxnA6sBbg4AAIQ0YZJAwkw+CQo5fKcgL2ybn58kRrIE6Y1XwoDIvsQB0zm7BS8u9tdK3nggYiRmRruN1R/BACcui7q5ESHrmLXItZ0QIvCp3gxlXrAC0TDRlkQHms0RzwUvMAFxvE+fPpVpeujVVnI4YNX1d0T6KBEc79evX7GBDQHbrbCN4baGAsQKB4nAGnYwFPMl1TgBBGykAJAtm/5KnBSZ04tVbEimsSoCO8WDha6d2bBrSnWRHuACmSya3yF28ZqD3/CBE1mAB9BDTgSzU4ItwC30nYkF7qbs56OQQKy6tNsgiwNnTAgwWyYLqcySAozEVouaNzIMMIFAaDw2ANTHG4FznhOSohposqTYZ3smWNqLae5hLqaF2UrTPfOoDnMDmx1VYYz5+EhKsC6MlgALucrjQ0B2Txx+A88cyCMh/DceO61JKhc+cGPHtfVNf31Uk8TA0la3Cxh2AJrOypbjjLnPcUwxEHNlXRC5HyAkQUCnn356BceGPl6V9Zcg9wGNAeRERdBZC6yAjAEEplgjbNEQYdSoUaV/Fh56TK9prqTwgR1MEphk85FE5FD+9tLObPKTDypNX3GJD9j8stDZTQDcbyBLQCSOpFkYYYQgcLOeiY2f7JtX/MjVeahztjGCwxqLTZoysoMQhMCwmA6mVAHDSUDasdi7mkhJShq5IQkYZxznMcB9wJvfASzaCoyUoXEABArp4CdggKn8+cCucWwD33PzYy9wc2A3ICTTDoXOqwbgGsNXbNRHFWMlHyM3gGYXscxLorAZYzVVwQ/sZ0N/30TgV4th9LgXXPooOJNZ6ZWEoAMuBwTm6M0e9gEbmGRItQBQ2TsLEpBZ2WVb8lRW2GNnQrqybkSXBQQQH4MwkC1vj+yyQ6+Bkp2KJKoyIHsOFIwUG9tIxg/xAw+RzC8W60Ve0NgEGvBcs41skmQuyYcRwpGVaL8z3+1+OsyxkkId/U3sWmnKLqNEX5AmxVpnLAMQ8DlGGgDFGc7qxymg+/KFfVgrAGxRmlZ2wXBaRWCExAbgJJ6jwLReeEERkARLfljMVwnEWs+B7Df/+cQPesxXW0dJVr3iRTL7ZGdxKX0xkwa+iSdAw8VvIDqAzT9JEqNkYzEbARn4nQXQloRhTfA0UNDA4xiA3MNiIFvRXTsrHxNa0AQNYAsShx0WUX9a8lFHSRnnPptA5QxAlbHFJ80WzrcMbLMg0nkgYjEZAzLfbA0FLqkkQPnrh2nuCRrIGC0mfekroL0riMs6hJEWX1XsvQABAI08qgjjHYBmn86zLaH8VB2SonrYUpFiS0XVv4/mPKeywRe4RUKZCcZzg7AwWyn3HEBTxl5IAC3DSUhABbZAJcO2TyI4xVlM5pQmeABLAAYD0dZSnwDMHt8EiaH8DnMxGdBZuMwJHACzATBnSbZ1I1F0H9lUNaY7I4tKlUwLHT8lEcDwMAdyqSS7L8nRJIoqqEiVYn5Y8aW+dYSBwNRJsH7TGZMwzimlRuzDaA65Fhg9BrT7+pAINtzjtNICMnbaoWCWMvPPfGVdkM7s2GHYO0s0wLEqc9r2sQFYTMEwQKuWLHgOY81hXmuHewgBIAlSwSrZooi9PoRhMKJEgvKywpZkmVNi4WEuL3f+NAZwhPViBXSSagx8VJPkdkACJqNKSUYwGqsMlknsAQTRp6+cASZDrgVJhwEFEItlgHHWB+gCBpw5OWlRIwmAtYh6A+U0xkq+M60DVraRQBYsEAUMCPb4CgggxgZfVYJEqSB29OU7FpMMcuXzL43GPnOwyYYKSOIAaw5SAXQE4od1wz0JZF984nbPH3vdI8edQcAEGjA0rFbODGffDDDl4HCdIAKojzucwWS/2TKpg+0soAIWaKRFcAKh4XYFAHaf7YwFGh+UIu0VlINUIAiAPbemIAUbWUtSrViGEOwCFpuBLQ5SANww2cKq3JPALKyuUzXmRiyLM/zMQfvds62VcOsX0tLwemERGH0BUvSSfGCC4Ky2jHlOQkiBa4FgmgMjaTEdTVYxOboKYPeN9VvAQBQEVigxLNHfM+PZFRyJUXWCBSq54JuxiICFzoChq8A1F3D1U0lsY5eksa3ESYVnkhagJSwLHsaaP2D7bQ667SwZKiyLouc+wMElH9xoPjJ0gAWeJjDoa2SCXDCoRJUSwwKhbwATDNAE5h+pAFoQADSZM+DY1QfY+uvjPttAxmaAYJcxDsDQOQkABCY5C8bhNwIggg87ytNLkLkkKgcgsUzlANo4QAFcIjwTn9gcKhywQOefszGOMFucFnZfHX1t9GarCoxFXM3Cnh2ZueuFRQOwQG2zgI/RNEzHyAfmcNb2hUFAkwFOB2gAAxFYnidgAAMBy/VRIbZ95CLgs20sILBE4Eo07MqCJyDJARKNtUh7CbFVs7jxiS1nB3t8k8zssYELSKCyL6nm84w8hcnmM8ZBYrDTWIs22fAXeKyWcJKkkSVJFKdPCQV0dhkYbMMObKDbgWhYyAhgOKSs6DSgAcSYPhY2AQHXPYDSSYFiM+Ddc1YdtkVWY/3DYtcC9RxzyIREA0jw+rtHi9nmp2oEiETQSH+oUHWADrgAckiUM6D4CkQAswf0JNVc+hnvWn/xp7Jc0+D88zcVpcGMpOqPOMay77oDMprbbQDbQ00peob+glaCXqPtP/OdIqACiTZxViYx2DN9gGvfis2e2xvrKyBgYbBkGAdkW0ABqiCBAURfLAamqjI/n4HqFVzy7WI8p43WG/eToIDmHNmRHPYBoWIl0D2x8gPo5tYfqBiMHLa85Mwui1yoIs32UIUBnj1jvU3DVCvpsDLmwzWaewhk952VBJBlC3DAjhZiq3vAwzgJiSYDEJiYL4A4KGjA6hvZEHD2x2EXQAQNEFUFODsF8qYJxDaPVpvbNdukRDIkWKmzA2RAsu/afOQJ+8whgcYDKJISNvPbYm//T+4cdhZ5kwW2RPBD7HzUqIU3RtgV0CiPwZrAdaDDgAIG1kUD9aVBmM5odgreDGkchktI5ACgHAAwNugfaTEOCHYVmBBwAzQAMBtD2MqiDWhzp+yzSwCWudj1HmBXQULYYwt4QAaocXYyWfwwVxL0cwBZkjzDXNLor0YWb3HAAiGRUfXCLBsJTaKNJzMWzvrjrMXPIFsehnWgwcDPds+GngMa9vtQEs21A6FXyaiJAQx4AGM7VkqcZ2Gxe0pe0AKLRmIVB4Hgmd2P5hsEtvLDXBKgTxZq9vK6DGSx8RGIqkFV6G8s31SZOQHs8BuDxS85AOW/z74WvvwDIyyFV2Qhn3RtHuDGPjL5owCFEEOHTZzANCwALr0OwJqs6eP/FApC87ppcTEOaAKw8wBmdF3JCc6uRALIiLPkWPAkB2hYB+CULuCUNRAEa4dBEoABIM/Zd80O2TA/cPjjlZq8SQzbJI5tzMdO412bG7GAG7mQlGzZsNjc3vB8EuBb5FTyxWkBFhO75vARjHR4Biu7KlXUcQw7tfzDl97GKLmwspqcFjEsKUo0/5rIJIwKCvAyaXGg1RjvkATJkYCUqoBTogBwzxnrVYXXc39XBDgGR0v9DsAYo2/kwmJo98Qfz7MQpqJUj3kAEcDdY5tvtNif38iEdcOBaJEubEUCuy1xGCcuW0uSYU2TYHF4hkSl0YKiOUqC1ljRlQVmuwa0LHEGO62+BB6oABUUdsm6ySXCEYmQEGessevQV6ASwVGsd8YY16rFl0Tj/D3SvxEBAKcjGUpYIBKkXIEsBmCQOX7qg2EWTbKIhRKhshAAwJKG0QDHXt9eyEWYDGxJxGRVjlSShZxs8MdvzA7IkirJ/EQisRXQPvQLUmNQEyiQNYB7lTShD08cEzzdAqASBbyVGfi9IDvLNpAwT/DmEiRGOWMchuoDrDSAkQbfUbBCQiXCIVkSr0SNwWJxAFUC2ZIob7G0mn/A8Ttf2SzaEm5LCVBanG/n9NjaYnHOe4VYJJb/pIv/qgoefAWy2CNNfACyMR0nAUkaOIrJWG1lD+gAJ/TKx6S+qClpjmnkRR+ykq2bIAUio/TWWmByNkwOOAxX2pxV1nY29sYYYj5zWXgBZe1QmsANozEZgzEpyZZUc/LBPQsSYH1Lt93DPMnwDCmATIuRBJP5ybY/FkuY2JBOFbANSL4n4VmAkQCxVAESABeJ+Dp79uz2LyO8DHw0QXVPAAAAAElFTkSuQmCC)}}@media (min-width: 1024px){.lg\:inline-block{display:inline-block}.lg\:flex{display:flex}}@media only screen and (min-device-pixel-ratio: 1.25),only screen and (min-resolution: 200dpi),only screen and (min-resolution: 1.25dppx){.hd\:bg-hybrid_sm_hi{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAABSCAMAAADw8nOpAAADAFBMVEUjLi8gLC0kLjYtPTYfKjApNi8mMjU6RkUoNTYhLTMmMi4bKCo2Rz4pOjUlLzNAUkkfKSosOjsbJi89S0IbJiZFUlaoqacvPzsdKS4XIiNJW1E7Sko2Q0VQW1MuPT4zRD1UYWA/Tk5CVEyzs7CCiY1QYFYmMDqkpaIuNzJFUUlCT0cqMzsrMjTAwr9EWEw9T0ctNT8jLykfLCbGx8ZdaWpJV00xP0M3Qzu7vLq5ubVWXFUWIixscG9ham5LV1lLWFJFU1FDT084R0gvQD8wOzwuNzkXJSisrq1OXFs9Sk07RkACAwPExMK/vrt/hIZobG0/Rkc4SkIpNzq2tbNkaGlfZ140QUI5SzwrOzCrrKlxdnZRWVlGV1I/TEkyQTooLi7R0M6usayhoZ+TlpdkbWZUZFtZYFtSYFqvsLFueX5fZWU1Pj4gKjUoMSgSGxi9u7dbbGFFV0UwQDgiJyMTHx/W1tRuenFncWhYaFxMX1UUICbMy8iJjIVjbHRQW19IV1c1R0RBUkM3QUEMDw+usrampqacn6BzgIJ1fH58gHdLVE5ZYE0xOUI0PDb+//+6w8e3ubp8gH9ncm9udGprcWFbYGFMXUs6TUU0RDWanZV7iIZ1e2dYZWVma11KU0kbJyDJx8Gjqa2EkpJsdnZaZGxBSE1BTEMsMy2WnZ6LkpWMj4+Ch35cZlZMUlM0QkolKinFwr6do6Zjb3E6RU42PUcyRUL1+PnV3uS/zNa9xs64tqqOmJCXmI92enp0gXhscXdUZ1dAUFNITE9SWEza4ujJ0NSfo5qMkopfcGW2vcSLl5pmcnVQY1E+UD7b29m6vsCxu8Bkd2lWX2ctOkU/RD/h6O7i4+PS2N3Gz9CmrrSzsKiQmqF3gIiJjHh2fHPM2N+yurXAvrGqqJyVopeooJR5hoGAg3B6f21xdF7K0tmWoaeCkYuVk4JWZlNCRjQcIRrq7vGvtrxoalJITkXCyc6ZqLGmq6OKh3FfcV02OyzN1dqfqaSxrqFHTT+ltbtSWEGp7WyUAAAZ+0lEQVRYwx1ZZXhaWRC9uFuAEIKGBAIJcXd3d3d3d3f3RhttrGms7u7u7rJ13Xat62/3fXz8gvPNuXfmzJl5AE8SCBAohErNsWM1NfZwi/Jj4xSRsnK09jVbGIGMqGWxOHw0l28fDGOD4Aut1ULOfKuampp3X7jWl9u33zb23Lsu33l9B1mzEw59vAcV0wGe5bcLgWfwa/n8NWMcrtzZ2DWFQhQTo4d34YE/y0/ACjZ24KioBMMKqfgWtWprO0zay5ets7MRM1/uFO05da9HjTy3jblTV1dTU1f30CHLVEBiDfuR9NkEmBJBwaLcQoEGgpP8UNrKotKztXjasI5ftAACVOE44gFJr6bF0I3LtWpNs0o3jPCeaTa49Xbmp3sY63Mtc5rInbrw+YjBiC2AIor0IwHn8kJnCBBZ7uy2i2uLR+kkJb0cI+qxKDp+rGhRpA5RwEIJohCktDEOFW09O7vdanu/z2DglVunfrr643bNmZ4qXSjMzk55jNQHaOuIlB0cnAGOAIVo4WwMsdTX01NWjjzwPppEElGI0YJoP2WiwF3AE4tQrq1u7GyY0NDKanZ21scy4e0tiPmM7o4HOzQlkp3wzgz5egQQDQ9zamlo50KYsxIOzafBsBygx/CLFB94b4LCQ8SJfsQQESWEHpKUW6ohdWWh7djYtAsXZvt9Ai3Vem7dadx3rrrTeicSYr5TV16/Ggj8RDoOtipcUAgrRHOZkQ4kh2F9fQaL4/r+vQYKL9ChULQpdXnaISNEcVKKzCZKZNXi4H8h7cjshcBAn0P39pw813P14fx8teYOpGSnJGa+rw9op4hItZHGWAKaACVSkp8fJRIF2Nha2/5ZOxQjf1hHR1u7ri5vZGRkyKguv9RElLLJkMlM2759dnt6oM/5nlt3z92bUbO6rrsmQXZ2+s6reQOxskjEqTnGZzvDIlMiS0OIw2U6pEJgz1Fx46OoymXKRmVDeXl5l/LyjhrVjdCNiPqbxqwd0i5YXagK9AlMmzm5Z9+5PXdnqpidnVASOWUc2gzK/HSEtiqcXXwSiUTJPUrR1tH2I+EBNpiJgfHtksTaRheH6iDAjx9/O/pxaCGXGH12k5C/vWX7nGGgZXrVg99Pvr1z6/dzVnO6up2aSEb9lS9AB2Jaiy/cNe5ahkeJLmof1dYm4XWwMG7adkdMNZGEIg7VjYxcGvrtY+nF0o+TYqJNpKGQy0yrum5ldcSq6uG5k7+/3XduqZO5Ey7R3Xn81O47YEpHrKOzi6EjFCiHhubnheRpJwnwNTQs88GStb0jXl8/5OjFuksQ5NBQ3sWLvCSN/H6HGiZ57vrcEZ8jR6wM3538/dy7q0u6zDldZOf13V9OnQKM8rUb8HKC8Cwl9OLRvFKxwCaKybVGK1mfb1EJBmg51hETFWXtK00Omtj49c3HoaFLIdeuDSM41uPbWy5srzpyft+tO+f2NdYfHzzOCO97svfJXqhu4JmZSuzaMgpE7xJPTBRxrLkcnP/c+RYmF4tFM9j6+vrAKXvd5Oujr59WVj7mXTwwNszaJayG8r3Kyiqtcc+dUz1Xlpzmfbftvvdk770eQPO3sLBQAiTlsqOXKBSUSCMymMvOZmOFs9YkBIJGA2wGw5nKxo4fevzo1deOjot5Z1+81KmtFVbPzRlWHfHxbr77Zc+dt+fkvu8af/9p089PDMGxYxCkgpI+glJ6UTuEZWNby2Cw0WS+tTWWrY/HwZHOVBhBydn+wlJf26M3Kx87hq69OKwtsq0xnKuComw98vDHPSfvfNlz3er8k1NXe/5O+wLs7aHahrMLp3TKjlJ09B0wGMAg8JnM7RfsEHpsC6RzuZISQUlB0hlx/Fvxxo2v3/z2+sXhpMga7txcVVVV35FAtat3bt3aV9W5dGvvvr2nzt26C2hYSIAkSvoo8cUyUWkwll1YWIhmCoWbzhvaIfQtFJwJZKAEV8jM7ART5suvHj16vfFwbkokk8+8fr3qgs9geGvC25NQWe74ce/eq0/u3B3bA4zhOAsFHIzkV6YsopRx/akwLCAHC10fbBaKohAEJRjNATgjoR/ByQXuA1CYGwcSjWxcmVzO3HXDqvDAwM0/Np669eTeuz17957ce7fnziw45n9DwUIBQDeurKwsMMZS2VRnmON21/PnbWxsBHyH2poyFpuhBMchwVRX8QboebycHmlobedm1S+0gspc7eqVH0/uObf3yZMnV/f2nPqpB7gpwHXhOKBH1FHWiRSs0QpxZCrXwfXCts2utjW2IhWin2g4VA8LY8cwshNLXk8ElQSNpawjhNbWg/2JKT6WPuFqW37cfXLfvrdv9+6DIF3UQM0aXIIk4EnKyjoIAR6n4KxEoKKBm71QyMJEcXZpi8XaiKzQ7HXqlNSo5LfJrAITjdZxJ4DB2Iz3Hy4OtPSxDFdrfHvnyU89J/ft3VfUrGUArmvCobO0J0YO54ci9AjONCygAbQDFQaoWDTQG869VhoSGpJlnshLLl7pSL65vl7vbchg6GNtkkoPF0PEw8PVZpp379nXc+rtjyeXw8ITgdqcrkW5sastJTpagIUplfujYTQyDXCFbmSCM3WKpH322sVLdQsljx8PbBzqSDZ3j/H1tkJTGSQbsU1xiU86BNq32eXWyZ969t39SfjU8mYXqHqYdkMBbS+iDOsMQ2GxyYDq5BSMNRxjkp2V0DBYqCi3dMhooDjo8YYNHX8ttLvHIFSMAaDSVGxtiot90gPTAwO9K2Zu3zEwaAzXKjFpUwS4uYfXy+HcSIoIatn2/v5cGtaew+FubzHGIXFQdukjjEqDJgbaits2blj5ZMTTkLK4fCzkGkisKMMWy0BLS8tBn8b4y0WxipaBxwfMvCoA3GLHDeTc9uLcXAHLepxZPR6MdR0X1rS8t9dEKlko4WCoBfPkoMVvQYltr1c6ZGKeSWTLe0M4UokAsA79fZaW4T6B4ZVeOV8SzMzbKtWLvAIAU1MhE5c2tun9gUjbl5vGNm2yJ6Vt2qR2fpMxziIzUwEOyO6TsoXPBTdvLj/q2EhXTjIZbtlsxcfikDBGofDQEctDgZZbLA9e9jqorqia42VWoQiY2HIYGtTOHi42OnrtWlJxCd3ENn0MwnxoDIcjMzM1b7i5YddjPmcvLj968/Wfjn8mOja8OIzS04cBdOf844mJtvicHK/7FdP3c4qKtHqvmPaCar6zM6OQVKsjokB9kK5htGCShbd1hcJtMbbIRCpodnLdnNiL6wWfXj16/ebNxq8bO1ZenLaRMqgEsqPuiYHHZ1SLYmOnp7duna7wNEvtTU0FhiqEQhhNRUXZSKz9MUQsM7LRQOnVjJ9XM6xGdh5T0mS6utUjsj4vfv/+qePNr78+evTmzcrBF2c0UFF2qxGrC2fUA7YWVWyd3loRq6UaF5eqaGoAmFyCM58ZKTybQgm5mGe0wDPSMFl0t1pqUXHEVqkZcuxr7KRZXV0nOj59/vT11a8ffn3z+sPogdGS/oQ/tm3bHBTvpZWz1SvHa+u0V5hinKpL6uUiQCDA0MYcW2HuNQox72LIgthIQ5aPEqoZ8rlu1Q9fbnqZ4t7VNTmxceKf7183fv0Vwtx//3Rb5ZnNTds2b/E2X/bS8oytmM7ZaqaqCkXZG1vkBZwJaBpXhWNbdjgpJKQ0pG5owUSDqJeSZstAc/xVLvzR3N9f2bahbeNExz8bX3/98OHDn8/2Vy639VlGzGMyMgpOxJltja3wgiL18ooL8yqKDXABaH9/NF/FnqOTe1Z56GhIXR19hE7XF4xX84F9sNu4VX/riz9Ox6lXtr36FdLfP3/48OHM8uND6e1ODAYVOBW0J8SHmXpBvA20AlQ9LxeZqasCJBqtRECrqETn5579Le9SXchIqLtNaKhhy3Y+me/Khckj+tNLzkwfrDztdX//1v33K9vMk30dozDGaBggw9ottzSZGnh6bvU00PK8fDlWUTE1AOCQSBiMQI0SiYhnr0GIRpeMxESN/vOGfOg/bp1oAptRsL74uPLMwfjKvvjR5Ju+BY4qrsy1Hf44iWRHpbqZgYFZhZYn9BRd1ooLC/OMA0oEqF0RCA4I0TAFchR1l+p06EZJmzZh2FQAo2lK4DgYNUZqGeiT7Bvj25eeQXZk0ILdmG7MNZzu2tpyqkFsrIGWgWmFZ8VtT1NVLa+A00BB4T9IGAtF0R757ePRJF6pMp1ns3kMzYCMMRKHg8NhVCCNiDh+XM5IU3ODMWDlcM0bzLW1Gzc0JVXxprFFRbFenp6mBlCim2pN7z/9HCCR/zEHApZAu+63PJmROMUvPwrTMs6GIZ0J8EwFSDgIMPmgUMjs3Jl2hA9DY3H+En+JrgQO35n2zsDUANIgT61YLYMKVQNPg+fP9z/7HxIH/ElEhJE4LzRLj54/pYfCtBii0f91cJwC0p9PwuNto1bnjXE7dhIIHBUOxx/rjyYTuK2bG71UtYqKIOpesWae0KHGPb//bD9QUlBCktFcvICYdHRkBJUl0zFh6fPHq9d0kTi4AhyJdrO2iw7VnwLVVTtuSBhUJvOYGw3NwIII7y1NAaoBZhDm5QozLU8tLRd19Wf7n/8AnSUS7s+3p7GUc4+G5NFlkCOPwjvCYGQ4Dq4rwSlhjwnFOkR9PdvZsevwTLx+jZ0Kh4YGmPDmeMWtnmZmOWbTl4sqDFQrTBXjFeN++POHHwBEW5PPpdmzxKXivI/EJBGdiHJgMjXRUIwKmYCA56SUaVNQZ1vGrIzhCvpTNjbWtiywNOPi6RmQc99UFaIbG1thYKaofvq0quqvP0CQhXrWDmw+C+FXdvZoyFCutpgYahR6+DCKAYOVowlZUn2TkhIej/ey32bVV87Qt2lf4E0GKXqaqY+G5XjlmPaaaW3NKYqtqFw++EOs4sH9/0FmR9zd1OBEwqP8jh69lAc5Doqykcbh4mg8AFh7Wnt6UFBiYmKJTLaYH+HE4CBQGhrSxKeeqmHx6nGqZpA+muXkbI01qzz455/T92/n7L//7BkAY1cN0TQIMl+5dOhiWS59pC6fd+YPNaGTvT2WkNWVXPL4wIs/eO4mqGz5qjx6vWBh7KmpumKAS3yTakCOp0u817TX/YOjz+9vzYnNyamYrvAC795vu5vWQEIQ8+nio7l1uUN0jS7eabPKlAwumUErkJqUvHiq9cKknZ6Fz8DUd61rHNAyDVNUbQ6DvgMC4qEUj1M/ffC52ej0dE7O9IfnowPAyjDqj98RCBYxFKGtrByUuDIy8pd5wIETC10F6zHsgs9dy3EHihOzu9xNeBHuGZOWip5xYQFhii4BZqphTRCil+ro6C9mBytHRy/neE4/HrD0gcwNHg9qo0OhMV+7LvSvExs3DGzsONj27VvX5/WYbFnJ4V8OmGTpfS5wb59sb/fdoqWlngqli4uqqplqfLOZZ686lDoHH7cNtFUe0BroM7cMjAAkjkCKQUSjovMFRvSskRMbNr56/WH/qxN/3VxcXGj74+nTZR7dpGsxSzppfpOnbmqq2BTX1KTl0qSa2uyi1bt5S0Kc6rL5N/PHA4mJMvN2n9Z+Q8DCIzAIvVAUnU40oqO+r0xAPuX59IeOb3/9NdF2+ulLc3cTujtdumiefDPRxSBAMdVMMUwV4g2RvqKe0Kjmk5wYlBxUnGhuzpPZDLr2GxqCaCkqWsMGFYon5ruHhv4DBdkx8eezg69eD2wYzfml2D2ajsoyce9anJKe0TKNC2tSjQ8Ic2nqbXYxTd1yKGHJFzKHNonhUKZFaNi6CscvXBACFktAjIbuG4XA5+uUbnj96tWbR/v/fP782bPTowcHeLbt7noIXspCgzRBS/WXOFVF9QDFJsVYzyumzVs2h8c4Mth6eHpKBC/F1dYXg8HUjI+rABY0wueH0okmkAG3SZnYuGHizeizZ/f3P9t/sG3APN0qhaVXL4vqWk0wUIXuWT1A1WU0DNLd3kODCVeWMrKdbOsBxtUOE8xyhCofZsy05gKiXzRCAG1xeEnpieMpJ1Y6OjY8379//y8H24JO8IIMx+2CHeVyTOuVU6mKTxXVVcNcXFya1FNn0iNmfuppbC0MdrVzwrjW2AVj0WRIC/H2kFP0+2+YFaeU9CfZRAwO8njJQUGjp0+PVg6YL6AW3Z2caFxHhuNs47aEZlOX+F71AK0ARfWEpcEt2+7+fu/dO6abm509nx/sqmLsT1ZQglP9oVhZrHyiTFwM2avojCgMIspdll5p2ZbI6+oy0c8uLCSTqeTg62ozW7Y1poalKkLdX12rV+340pU9PQ9+PvfuvKHKf1SBir2xJk4hU0KFBB1ApaidlPv+LP3zFNUxoxCwgWG4r6+dvBBgaAwG8AdKO6paHno/aJxp7r2SoH7aVCsu3HKp58pVaLh78PO7Fms35jEHrD2XL8mESyS4/wQRKkXl3Gtiv3w9FEPuiCVjqY6YekdHMqi3tsc64pzJzLSHD9U235tJbXRpDoDuezRcrfnuT9tmevbdU3v3989pHGOOA2AeM4acoyRTU8ECDliCSB3R4XxUNGTu/J3J5VgrOzInGCHQZ6n4zmcQyNUPvcO9Z1TVw1zC4tTjA3IOmKtBc+iefU/27t334Oc9V9PsORi9fD+Knb+SQubamgIODqIi/YgUCqVsmKOCNdZFIrcvzTpGITB6+hg7zCo32KrFe2kpoVfdxdTl9C9xXlt/aYOy59SPag8enP/5759//rvKulqlVjCsQ+GgYTjkjR1wHA4opxCjQ0KVk5Rta7jBOP80tQc1AiICL8Vj7ITzES0Q522NTxVdUl3Um1wUw84kj1r2JXgfJ8A1qx/8nDbnRqUJx90RYhndAeAkSMkOqBeDpDKKAJGvrd2vbO1qTxY+OM/BQBc/NcXG2GVsP3REbVtj40xqU29qfLyZaXzfqHn4anJqq5xMtXt49cfq8np2tpTHc6doEEkwnEQBvqYJxwFobRMSiiJScimuKrVYFbXxjHoberSJHlvPMTy8tdV7c2NjU1OAInSMvc0JS+rmUmlBeOO845FtV+/NJFTf7GpfkNoEyTRMEDBoOMGtSZQUQFmudl3IVAgiBNoyjTmgbIVRLFcNjXbpYn24d6u3pXdzU1ivathoamrYlvBDffPrTnJ5jPdgxJW7vclOSwmJZ9QTsxa/lcroAjQZ5wxfgzsrAHGuET0kNE+Znnvg/XshAhNVj+Aly+hZq+GtPhkFcp+mJkVIKMK8tnnPWqbHFAI5xsnpeMKgovohk6xls+n7y+aT3wsmjTQwNH9/3A03f6QSOJuijMjKOxty9syLMToeJUXgpzRkvPbE8EOrHr7egw3HXVTV1QMMtiT3bfYepNbL2TH1cu9my8rKmyeWByr/PPFp4MzEdxMbDXpGsLHuDqYxmgBeTtog6COHh+hninmoqaksk2yUlFfc19dn6ZHQ3d1t0OATFm+q1XwgPeF4uo9vsK9TBvDdvPmXSvMTG4ImzTs+ZU2c2fBXQbssCuPGNa5xM6aRwUuezL3kxR/LpWJe6AIq1ES26G5+QLFS3TQjsHs+ZvftGI9m07gzlr5qaluOy6utO3cCudyqGVLxiYnvnz9N/LWyYcV84dukOwryPDSmMYePBWNGstyXB54eqLQRJ8lMINbtiVdMn5p/bmho6o643dsQ9znol8mBbzFStTQr3+NwuCY5OMZpdjJoYuXE9++QEi6vfFpJDJrs0tNnUx1UanfxYWCTnV3r2OHSkmiZBi8lP2ax/VBv6rb1hj4fiPduNY++3V3SSd5ilp68f1va/A5dawsJAcS484KMvgVNfMo6sXzCZKBtINm8HsQwGFxbPhZbCMaCnTDu9aF6odIsDArh5Dvr0njEY3X37S0eBbu7XZ7uTm4IKuFJp/CGv5/SPLJTcgyumw0DerIgsZH5iboTJZO8w8ntxcn9spgYBhtjvYvEhqQs2MEJVY9wj3KPKtTLZq8OGjT7OnUvedy0zL5Z1H3XxGOh+LCGFIVK36a2Az53Q1K9A02m4pNyJ0NWis8Gjbiba2Q1NLT3p2Rk0PB2TFsSGwAyFVrjYDCO1vW+jh4xreseHk7rgd2pl7u7Yz2gJztaViLWMMpnUOWaSF3dqh1zxpowBiIaWnnklso0jNo19Avw2fq2g74YX9+IqFrSf1s6QIXF2GXYYYRRER62W3qdfMILGoq6Tc21uhuSbxrJZCYIDbEAX8+i7uy0yLxxAw5HA0IhSVR67VrdSKlMhtKb0mex5REZwNFO6Ltr1y4HIIFDdpy7aue76t26muEhvd3dvXvVo8FjcHezBx2BR4j8VFxrSQ72DngAc3bWhWdKdDUB1Sm9NZk+ubIio+OpWH9qOYHAd8jOrrXVpgj0gYWkHGc873T8iLe392CBx22DhoRuRY/jt3e3ejhCfkmPJRKm2DvwSbUEDpqvlCmB0kgTSeXWSxdlJSWTEXS5PNiYrIREVxNI2SyhNoVIAgoSnO48WR7o3ZfQIPft6k6I3x247tMQnt2QEYVC6OnjKWUiHXs8ycFhFw0Ns9CUQKhKZKpTxmKWe3JJBB2DocEAds2aBmDALqWsTBsBoFcLOzUbsr2PHPLI3l1U0N1dsZ59udcjZjXQBoEqRFEik1wpNRxsrUr1LgcsTUECz4RWJXzH+nppQRY9mZ6B4cLYZMdq2jEqOzjSrkykTQHH1sqpHqse6ckeCRW3Gzziuy9vuR3bcNO8ndeukS+YIlLEkYJd0II8ssYWSyNBCxQkUoHsFpEB05N2SaWOMQDAnLjGNDeOHR7tyhom6USCY/PzO2NOengfL/jSrd6Q3qC4+wuU5UHJJlJ3QbY+CoUQKVMiXQWoXa62u7CETAsLaKoxZmLksBg5We7oJEcDwHdzo7nZc4E1VsUPMSz4F717j2k936hhAAAAAElFTkSuQmCC)}.hd\:bg-ortho_sm_hi{background-image:url(data:image/png;base64,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)}.hd\:bg-route_sm_hi{background-image:url(data:image/png;base64,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)}.hd\:bg-topo_bw_sm_hi{background-image:url(data:image/png;base64,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)}.hd\:bg-topo_sm_hi{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAABSCAMAAADw8nOpAAADAFBMVEX///////uXkY/7+/uSk46UkpOds4r5/v+cy5FraWf8//z5+Pn++v75/vb/+/n29vWWkIqdw5OYs4ZIRUWXkZajyJqlzJShypLi5OLe3dv0//+qyJyZmJvriDft///+9/aOjYymxpSZwova19X87RaqvpvmjUDk//970v708vH25iT76A+jv46cq4ahtJBlY2JnaFtRT030/vdapcairYrbikf+7iDz7Oucl5SXrobXhDrb/v///vX++u/n6ev77TaixY590vXq5uNSq9Kgv5utxJKVy5Garo/ujUDnhi51zPmPkJeann98eXeJlHV3dG9rc13Jx8Kd0JiXmpN+zPT78e7Av72wypmhrJapupHRk1vOzMuxwp+inZuUlICOnHxybWzujDbviCx4y/Cl0Jnik03iiDrngTPt8O7zjjfl39q7t7Spro/SjlH3jzv1+fyIhYNDRT3kfidzcR9u1Pva3s6rx6amwaKnsp2QooGAfn59j3WChWfcklVdbVX260zsgSnl6N5mn7aiy6C2wJOMlYaTqYDghTB+yurR1MmxsLBtdmmveUqcbkhfr9CozqKxzaKNmm2D1/2Th3J8fmCOaEX2k0P0hjWIYjOG0PNuyfH98OFateCnpKS8xqBib2Px51yLjVeFZErT0dLC17w/kbG2vKqSh4HXmmV8XUPu4zzz5Q7s7eRHo8rQ3sZ3qbuTn4qgpHBfXVq04/Xw/uzd6NRPn8GgnoqfkISdknByhmjMiEuFgEmEckbskzs9PTnq+fzZy8GdgGGkcDySYzl4Yy3Q/f+MdF/tk0uxdzp1bzrC7/5urspBiKOXbTKO0OmWy62wqafBsqC7pJCsrH5vbXbz6293YVaBbzaLgSoiKhni89yOyNpRl6/jmlpleFbXzVSRb1T93kafmjOQycanej9SqLqotoRUa4D97GKpokHPky6dz+HSxbK6fk7d8/723cqCtMi1zLPHlW3j02PCilxYiaBbZ0vOx0ZuwrqyvIPFuE6nk0vntTqQqLnhwZqZtT3VAAAXcklEQVRYwzzVb2gScRgH8Js702xXXngneHJ5omin0diFGAYqNw2cDHOEDcxedC8iBgUuRxQKrgU10Ln1piXmYBZs2SqX/cHANy3YH9qLGI0mCxpG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)}}@media only screen and (min-device-pixel-ratio: 1.25) and (min-width: 768px),only screen and (min-resolution: 200dpi) and (min-width: 768px),only screen and (min-resolution: 1.25dppx) and (min-width: 768px){.hd_md\:bg-hybrid_hi{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAB0CAMAAAAb++i0AAADAFBMVEUkLjA+SkonMjQgLC44REUpNDgcKC4vQDcCAwIkLTZPW1wfLCYsOzZQXFQ5Rj8rOTopODUhLDRKVk1EVk1MWlFATE8vPz1cZmYZJidFUEsyQztBVEotOT5aYmNDUVE+T0ZDTkY3SkIxPD8/T0orNS8jLyg5SEk8SEQeKitMVFVHU1JHWVAyQEMmMy8zREFZaV5GUlYcJypOVlksOzFhbWw+TEJVZVsvPDldaWpUYFetr62zs7FLWVg3QEMnMyk1Pz1SXWBPYFhJWVQuNDYnNy7+//8eKDNfZl9ebWMXISZVYWBbYlsoLjEvODtUXVsqMz40Rzx/hIRMYFNHU0i1t7Wnqql1fX5lbGM6TUWbnJRlcGgmLzo8SzwjKS0UHyFmb28YIiwZJh+5u7pJUlvGxsSEiIk2QzsMDw69u7ekpqV7f3efoJlscHBxeWdXW1TCw8G+v7xtdXVscWkwOkWeoaGBg3tLT1I1QEmQjX9mamtiZmZWZGNuenlibVvHw7uxsqqEjJB8f4Bud26dl4xcZ1Y0Ozb5+vqsrKg5QDYqLilGSUsxNS+MkpSFiIBZXV5AREY/QT0UGBeYmpuOkYyko591enl1eHJRVk4UHxpndWxNVl8eJCWSmJh1gHJBUkHMy8itqKB2g4Kkp5ujnZN3e2dCRz+IjoOKiHqAgHF9e22rsrVncnJicmVUZlWooZhzd15TV1dDTFQ7RU5NW0lxdXdvfHJpcWB4golGWUeWn6CBj4uLjIl1g3ppd3RRXkwlKCTf4NuRkoZpdmXCvLKoqqFHTj4fKR/W19bR0c9we4LOyL+Sk5NMT0lia3NiZ1d8iYiXlIR+i38dIB5ucGKElJDGz9RWYU+HhXNbYVSXlY63uq6SmY5pZ17k5+gzPy+bpqmLmZpobVfV0Ma7tbFXYWu5wcWLmo/X3+Wxub5PVUTw8/NhY1DN1929y7nG1sS0wrGuvKu0raOaqJy6sqhaXEx1cmm9x8+qtKGTopTv7ep8gWTb1s1ncHmksaNvclfEy8u/ejT/AABOAUlEQVR42ixZV1STaxb904jpPYQECCEkBBIIEBIgoSUgXQgdBGkC0jsCghRBsQAqoFiQLkizgEpVB8GCXuwNbFiwjM6a8Xp1vOOd8jEz3wMPLNZiZ2effc7ZB7JLphqZit0PudM0fEvuuXdeF0dfCNzx7hpGEYmiE8dCWDqqxUKahs6NHq25MvrCQZrMNnV3Z+lQvEmly5NaPFvM5bkLWN5F+RhvUakXxz1oeFxBYGv4VkhHuI7jcidDAsHhcDtTGN8RZuLg+eofn/5VM3pRrj18OAId4agbG/bHwsLZuu/PP3/4PuC022D30bNVnx9+fvj9j4GHHx6+X6mbr6w8GxYYWBU4kZCToFJlZ6dAXsny4GQZG+2O52to2nPv3o3XtLlfxcl4ViSSjrWOjkgE2fHITC51FLyaF8FDP6R6RK4lAgE+ErxzkBPBFdPscCyWN4ZC0fG2VHO0WnkbQU3UgzkihRSU7nKnFRKFgluzcDgcRNov2Her79WVmprh8aB3dyPQlj5Y+4WFBfuFswPvPz9cWalbt3vvyx0Dnx8OrMy/XwG/+vD94fLbP84CzHUDIaGhypzshJAQ6K6CQJejI7Q4HDrCUiy9++vdmlF3gTuP44oUonR0ILgA5x6BF1w1abt48cqjK8eeNm0z1eNFWJL0AxAsFpqv1qo1lng0kxQXF6cDkcVBw20cjrse39wS6b3fG+VzwZGMx+vrI7xZLJbIG6Wbdqzv8adHjx6Ne/2Y5vKQpa66b+0XcmMDJx7+vgobvvflwOd/P3j52f79h88rq1T/+X3oQmBYVZ0yISEkITExJyS0AHKQOrQF0SLQ7oAJAW294sHl4bZoGVurMWSQIIQIIlnyiFq6LN75YublWx/Pz/R6Koh0NM8Qqa+Pgiz4k3eHOHx8BMeQsQpahENzpEHjWjuNORKQD4f0HR1R3jgLCgbBEiFEOizhH3WFaX33ax5dHL3845yYY2hlv8p0SVjG2If37z//+b3BwjKgd2Vg/s8rn1dWBt4//PPzgcqkqrrUgQ8JCQntIcrQ5tRUKLhmuG1cw9WiBYcOCdDrhxyGth0b53K5jgwYIsYaAZF5NC6aKHOOvpV5eeurzL5bW4ODj9N4fCFSCBcZau7+mOS4W7AthUKAGeN9KJ4bNMzh4pimSIhlbWxlNThoiBfEx+mwvHUQOjo6Ufk2m3/Z1tPzj8ytx35MK8SOSN23C38sVOWWJH34/Pz59wXjyuffv39/uPL84b9Xvq98/rxjpTK2pFWpCglRKRPaayvm0gvSG6GtNcNB2iAaqCUcK15A8/K6++uvjxQ0RVCpIZnFIqPRPHoQl0qvuXz5fOaJUz09mce2nq8R8wwZMAZJn8/n3H0wzbPDk0go7ziPKBHOXR0UxJFKUDHgwa18XB8s6xra4QBoHQiBwOhQKPnQvaz6E32PezKnpQ40c2MrA4A6w+BsWOvD9++fr4wAEX/4/Pnh7fcf/v3h3893tB4ICywYCElIUCVk58ypUpsjpwoPQFtH2y62icVEZ5wAKMQ9iK6Y/vWugxFBrDC3gwRsDk08LB12yLp1vua3U3fu3JmZ2Zq5taZtVT0MiaOhRqx+MGnLFAolGEqcDgVB5gXROZwgJEqEgEOQpBS7POGjx7XTESFITAsWAvwRxu8oEVDd35M5RKWrzZGwVU2f3VIy8WHg4fPPAxPvv39/D5j+nAsEvePPSbm5lUqgDGWoKiGkojY9fbEwz9cXurV1fHxYTqOh4+PRYkA17irhxw8plaqmO+DtZDy6VDo8POzbkhV+/37f3FLxnVuPMtMeBWk5fIahxBFPCxJPLr/zMbRiBOR7xOkgLNVculjMNkaJvEUshH4sdnlZo9G4MJlCjQYdz9LBUDZAR7dvu3///P1jdz3N7R0ZDNtYH9stJbFJH1aAqlcefv4MrG8FiGNgZUeCblhYHYAcogzJSVHV1tY2Fz4LL0xXQqAoRtsc9OjuaI6Yiw7iCHDO237cpfoayeUygdxIrA6iccQOWVlPbvV0/X1m5tWt81ufRGu18Ycs4CShoyN38tcLyw+wMIYOJgBDgQRarpgrtizSj6FAIqQxdvDlBNZcY87h83icCJkAfBa/o4fC1594divPM9BfYOfj6GgQa+tfklFyNqlu4M+AZiCN7w+zryuTWtcmnT5woEAJpKFMSQmpqKjtLu6vns1OzK6AejIzLw8BZtFaGocXoQbWQKUSTKKj6cEOBLqYoAYviOav5+sbnl7RNdMDiD7/6GOQszse+IGlWjr97hzt8IMy7MYiTJSHtQVZI+bi2RYUoGFrERyCCX18mEgYTEtTq8fRzrL9OFy8jHp56y+7Lu00CjPAQ0ikRvfwdG5JRmzG2aQBQPP3FSCO79cmsv+dse90VVWICqhZmQjKsKK5ejGy/MabpaXaWqhna83l6WOeVKDECK1MKyZ6nXNw+Hjs0eX1CoWDQhEUwePy8G5ue3Ye960/mPbkyUdA9JVxrTva4hACoVBMX1DTND6OpW8DMEDTQktxBFqGF1izgB+SILixCIGwRsEhQYT0sDRaFu3ssJ7ge+7JI999ly45BdqzWDiyRiGdPrdlS8nZs5WpEzvefwcC+fA+MPRguKdnWrpSmaNMTcnOXgI8N3d3zM6+fpNSnlMB3bpy/GL4uZpoIy4NzY7HyUyInnnbMv/597vHHIa81GK2ACcQxMeIjsL27Nne4pnl6+BLjw7WBnHc8XCWpa2aLqaJNUzk2NjbgLgYCZbGZ7PZZJFODAmOIMFJCKQrDDRDUTyZNnT4UZuRfP2xY9syRx85OBD9TANt4SIWWUOgn1tfsmXLltiqRuXz98DoHv67ISRv3/bwgpypEGVzfXpKSmrFUkX3yTc3yl/fmC1PWZqDsjzTmqaePGkj0LhaMVqAs4hHh3tmPv3L07tpUrkcLWCtPms4Mmxww7oNe6hGBAKBTo0OCtKSIOaF20Fs8EXwyTpFC2Pz+TpwIY0TwY8gwyHQV0QkvCXK/rYVxNJBIRDuHK+aUeq2bZ7nLp9/dEVOJfrZMSSgeZH45vRz50q2lOhuKQlsD31/LTFRdSAnb2daaHtOelPF9eZm1RtQgktzM9VvZk8Wf/3an7e0BBUWNi1O1Zyv8VJwI6RB2njneOI2z/Pn0//6NO2FDG1iAf47Cyh0ft51w9H9OD2YHp2g4A6Pc8R4ZtmDsgiZjG2Jx+noUN6OvfXGWGo4HB6biSShkPooIQyGjO2UUDwowAtxeLqvZ/i2tG1pmedroqkEIzITaQwHHZfM5Nt3ZpRkZGQYlKgK/nTtemjGlt15ITntc6o5lSonJftNxxtVRVdk98nu6uru4uKeJ09GocimpsWbmeeDgxUREWDQw111pnuGf7xY+Pdjo8kENNuSBOmw4jALlfMbMNCGdTa2MEeOgjbUNiy2HHzQGYEnsrU8cgwmHxM3ku/xNrbMy4vNdCy1wupKyNhSH8f5SSHKQ2fVwS3kDr6ee37xDE87VvMpmEBINg+btMcgRNYIOHOwKiPjbMmWs0k5Kb/fTDldONV8LSekqTnxeo6yPKU8pSJlLrK642Rx8cmTM9+e/dZyEWqaarq52HteZiIFrYwXxI4XGO06DprexYvBW2VoUxgJgaDoBIxVFoFxKA4O67SLEERwxofVXM30mIbPJnIUaiRL/8jGgDgPStntB5PvxIadD24/eCAklz14MLn8QEKJA+MfBoITqcHH7106fryw/lGPnK5IjuicsNdHURAIVoxPWG7GgS0ZTRk3/5Sz2NyhSskJaZ9LX6wH7larSinvSF/s6qouvlNdfaf6/rP7t2qgmzcbW6d6M3e2Xdw6PErjsQ1p7ofipVot2mtaES1H82EolrU3JX8jBQF5x3izJCQwSQdAVliso6OaqG0bHxfTLMkSKyuUNwKOQF6YviAevnxZcW69PFlPd6zy9vKYBIPxoFAC8kdgKJzfvf17Cvvu3/r428dXj87/Og1mBwTwGMbB8GdpzSkpKbXtiRUp165lg8E5pGBKlaBU1r5JqU2P7Oi+c6cavJN3vt3vX6yHmpputrb23r188VHN8EWxls3TcNHo8Wh39I9fh8Q8LldjbC06MqIT4GFtrS+EiUQs6ygPb2uS1aS9Y4R4HDxOBJPMcMUag3qNIVtyORzuuNbUiCpPdrYwx45VVs5LvCkeOih9JGzdPZNLl/adKO4/derUq8yLNT9+pcuOiqz9jPVb8g42qX7+fH0jsbw8sT17aRWuKkEVkqJSvalojlzs7u4+uarpO3eKu5bal6Cppqmpm0977368CCZzNE3NYkulXDQosMPv7gZRaXp8JMnq9h8Yb4o3C+ujiyRBLDCsxUDzY/ZwNm04aLyNxyYj9F3tGdYxCBKfD4YRznC0gx6VbmQiMNNdrrR39cg/o4OywsKc8Lvu7Xqxc9+nU48fFxef+tetp782GZnADM1tNh9vag7J/tlenljefj1bVVGhCk1IzE5UqYA4ars7OiKr//u6T1YsLd14/ToRApjrp+rrZ0avXBz15NJKce68IKmWg+Zpp3+oqVywg1ndXt5IiYFYcHtzR6QEHhMTR0HZzy9QRAJOEACtRVuwrJFWEtBQrDQ+XmpO9PA4VU6nGiU7E23rwhj6qIVKe5jQ0RC/a+f2lt/23dv5r388vvP4VP9M5NPI9bGtLwsKJjybc7JB10jJKU9MqZ2rUCmVQCMqJYDcPPXsW2RzdzeQxpfZ8vIb5cCnyyEAuL4w7f753z71fPzodbgMh8MHScUKLVc29O4cx9SULwxbvgChEKIYvD3f0AmOgKI8PKzmF/QxMRCfA9TBBc0E/l8XkAjNS70Oc7TjF6PlDlSjYLSJz217Y+SI61jng05/Inpn8NbMVx9fvOp59Rig/lqRntY71Zha0FgXmFWYk514vT1x1SpUqgplyHVgHyqgjcjI9BPfijuquwHkGzcAZNAP5yqg+oMH++/fz7ryqefO/bz60Mn4Q5zDoKXztO6cISldYW5qfnuSj4LZsQ7Z6ar9NfoQKUDHA2VV5IFisSy542IxDSZBSSCWCK6PZAgNHUH5RtdEt43Kk42IAv8yQxYchmIMviwYPNybFp7W8+rTbz39n8CM+2V2qbcwrSrj9O69Li6XWpQp2dfbAdXgVdTmXLseoqwNUXUsRla86Th5srq6A7AMQIPPNDcXGQnV33/27VnWs36gs8ilBNV6EwFaEcTjodl44CB6ajVXz1xNhizJ8TiuwsHcRwinxMSNYMBg7KHDsqAHBYk5fDBNo+AkFHABIYzvNUQfHY5ua5Oz5XKcZakrExJKYLq2g2GtqV0VXb0nTjx+3Nf3pbv4zkz9wQOeVLejR62hdZdabhbUpoBOsroDqrKvXQtpVtUqayObK75Uz3SfrJ4FSr5RPpvSFbmYVpiWtAr6xLf+4urur19m32TneDrHOweN0zh4tru7+9Bhut70BfMISzxecMiZ7kAn+hsa61OK5hdQmDhvBARJFUEcLp9xRoJBwOE61nAGn42Wem0dj26LfiEj0mUy3U5bY8gY6yRy84/dsr4p8WlvV07FUvnXit60LF9TOxjoihs2QBta8ppSUxKzwQP1d+1P7aGhKhXoKItfO7qBnE/Ovl5VxmxXb299r2fWbl9IOTfT3d3x5evXr7M3ZnMSW7fHy4bb+Fy2GM0WdJaZXlieNAWhBw0sejIFXS02JFmh3s7boDww1izIwksaBIg2xqDgiNUnEvFpHO3Q5ba26PE2KoHIP7xszwRVADNGWXuzcLtMDk41RTZPVTVH+h43PbqOgbUqGiFRoqJGplLBnp3SDjAnZl/7U46ytjaxYvFNB5BGN2Dz9evVAqyYKTzYW5+WllaSAbXPFL/++ubNLCC6fPZGTm3LJufL0dqICDZay7a94BP2oJTG5fP1OHI2R0olok3JQskf88bW3qAnCC0Pe0kVjsIACoaiA57I2pqJp0Vwhi6OtrVxuXKa4sEDZIwIQpACojCQSOS3B8wYDXv9dldtcfFbZ02SjFgxrIooAUVFgar269cByQB3+5+yE1RgT0nv6uj4CuTcXQ7s+/WNivQ7xcUnegsLD/puuwn9qbl7x89ZABgwfaO8XeV5yaSmjRvBwYMkJeJ22W1dJp6MQxMdpAQFgWtENLWwMByzN2HF+AmxPvQgGk1jqE+hUBD/BS1CMN05NPbQ8LCCLqXLCZqJ23AWgmKNoFAwGIQ15Hbaf/dmt6NnK2FgF4vBBORbFRXl5wdELTQnXL927XpOdnZCe3t2SEJO+deTHeUdHdUnqzte/+n1jZ9gvrtT3N+3GFl/8Fu47wEoNOfk699XNTO76ik/swt3Oo8Oj/O47Ah3Tulk2QWmRYwAgcarFXTF6Hgwl+1+yMIRfgjHdLTX5Vo4C5zJcJ24/4EG+oAsmVpa29bxYCrBgYfmm3aWeoPZwhrjAcZABDBFA1cfq3yn+T+MEXAUIgClH6UfhcEUzb9MTGgH811izvXsxHZVe3YiIHl2tutkMZDGT1CCX+/03+/r63m82DsD9DGVDjWENH/d8fwnQA0eoLp237220WgtT8ujTT+YnCyVgLnZKllGBesXCI+MZEQBjgg5E+kKf1OwvQtA8GDt4UFBANQAMwnPw4uDxl84C+ToqwKyaac9HA4SDx2gHhSTbGFhDjNnSDBFRdbWQoZQSEKhUBhrp/mJgZxVx7i+ijoByDpECTB/rQZ6/vrzZ/mN11/6+oEr9zwu7iuu700HKzl0L2+q4/ffrwMXXCX7TUp2fcuVtrbx6AjFg3cXym5jhU4Shj0Ox5UqHEaDR0dfRNMvTA8OS6XBaHeiIprLtSRFgTV89SEwcKQFm6gYfvHC3ZnDTWbimKWuRfoelCgdYC4wR0O2DBcPYRdG8qNYIisrQxgJzkJBNkl1oSEqIIlrwDVCsoGFKJubZ4Ft3OmungU0/7zR3Vfc3/Pp1YniO33FMxVz9bVz0NHdhV9+/709pRxAnv2Skl47lxY8Crozx2vyAk/jwyAZSwwdDx1Ce3k5XIy+GPzihdc/f30wWuPlIE+mScHqa4gM8PD4L2gMGIrs0GKvYe24nKNWOMAs9BEI4OhRAVEUBMqwVM3V4gTmF8beYigWOI0hX0iCQ3vPFhSEZoPFNSUk8dq19kRVe8pc81zFyS+rVvflxk9Qgt0nHhf3/+vTiTvFIHWJnJvrikyD/PZ9i/y543oKQPzly8nqg99ajkdfCWobb+PyIswdDYXG+kiJPlgUxQSqdHhUKzc69re7022jj+hGRlQ6VU4USqI8wLcPJIIyRpKEaDXI8oaJCj1TogUTDKxwyurCC1lbwNRqGsfda/q2rQSjg4vXaBwNmVBdqDI7+w2Y8lXt7SHX29sTE+ZS09NVqr6Tqzb888vsz9m+/pnib6f6e4qr7wDYS+kztfXHIcnR2NDG38u/zJ5cbAYeeuD43oa9elx5MtvR3JLs2mmrbywRCpP1PNcrjGTOCgeCXlVoVZhYOsTl4mheYr6jIzKAEoPDxwgcjWOYTDwvaGg4elxKU2tlNJPpaRMWAuEN19llcil5/Xo6gdA5aGYGgx/FgY9L0PMMzU5oTl/thAkhKdk5KUAMxYXV3a87FoHXnfwK6qy9fObWq1Onev7VX3wHKHp14Jvrz/wIrdtvWDdRDmT/JaU2Kzwv4/Rpvb0uIA1zmLztEl+6PA+zKoIXJRO8fKVD0mAOnUpoVVaFab2GtGicTEZTY2GSkSLKIdwh7MPKTSSyhTtPoWgbF9PF4E+NjgHvAUO+kETV9fRcHx6+Xk/PxM5m3VEY3sTIyCQ8JFtV29ysVL1JUSWADaD89Zvi6o6OG1+ep4CmMVv+OrH9Rnr//VevAOy+O8WP+6pPpi9292beOg9t2ACrmnjWN/vtWUpk+C/hWXkNBDOqwkuteNcKs9NdnmcYklhwtLOJEcjoCAQHqp7P6XXr3MF3TeexeWxLpBDYgY6FM3T7gz18FTRaLB0dDvKSo43QhKbUJB+SEImydt7uu/7Y019TCabJJvvdzN2SL101uh2SkBoKMoJUABoUX05iTsViZEdFecr1lJT/tu3ExPZeEKB9etVz6kRx8ePH1V1zkV0zhbe23oL8XPzcdj9r+a1wMTL94LbcLWW59rGxXrEOPpOVBmW6dZ3GEMhbBM4yIkcs5tCIRJAPHN0Qz4mgqWlaccRq5mDNQlnoTlS+/HfZJrKdFi1XD0u5Unq00XZCQcKUv4uTH4t0VbYz78ffsn9NpsqdnV1MnbZfMrqZkwAmDCCO2rk3bwpAU6loTo/sWoq8kZiSkjjTEZk31Z449UvLrVu/3erpKe47cWKmqysyPbK+vmbrE0jgdnS7b9fi3FJ6c23kMc+w3EnbstxYe4LuRGtZmW1lGeQNUqJ492Q+wKx1P4RjwVyNUfGlYj6NztbyxZY4ERxOMoHZ2sNefsbj7YgyNI1O3zpUs3Pnlaylpy3Ht+MEft5XD6HvKt9tC9+/nZhM8Ce6/JIXmg1mz9pQZQgIFlMLAM2qyMi5paf1kZF/SklMTPuWl5fR0HDa1/dJeM+r+32LfSeKI8GIl36wN3Pro0zo0qXjUzlzFYXhLYWhnqfNbDtj7X1sBzNiqwYmcrH25kgEy5tl7eysBfGMuztehIixHyuKw2mApylA4kDj8yyZZFIyzhRpYQEh2TK8u4zGlV25mHk/M/PJYtovv+y8t8vvUPDh6X++S3YWHLpKpOpRqaZN2dmpqoRaoGdViCo9PSU7IbVgruLpQRCL1D/NyavKythyGmtgv7nBs+VJIQDc29cb2ZWe3pXWlXk8besVyGhXVn1hVlbLrl1pINHzpwZifVx1dQ8kNYZMlDRgSev8WAiyyF2sEIsVNHeepaX128q3mHhIoFeq1uhqmGQ23gIvRNqRhS5kUzu2CRvNFsudd14ECXz/zFJhy5Xje0yM0n79a8hdgjx5u7NAFuxw/HRqQkJoqjI1FQR1KmWjMjuksRKE/fVZRlnH8tav18vabBsWq2tj7uOvZ9aSBSzvxIn6xS5g0NV9mc9efby1FdqyM6tl05pNa3bu2n/JrcHGxjYMWxlbORZWOZCqW2IYO0gSCQ2ZzmgeVwwuMxGWSFbR/HwAC8KR+eYaPTsLMp6MtnTHM5kWdqZ4gcxELifS5O4val6dv/9prnzmyccrV8LT0kMKHYjJcqJc5uzgezwcpKChqpDQWhVQR2pBQk7qzYGkEt/1nr6e29Y7EAh6ZgbYQXt7rA3W3NY/r2kRFOGJmfSOL10z/c8+Pbny6uMn6KCn75r662surVXu2b3pl9NmmzMqx7a4utpsPJs7WOIS1omETLF8Po4spdE4HA6JDKHmx/LjBThzcztDFwuynZ0dGo0nM9lkEzafbiJzJoIDjezj+Z4Tv736+2z1if7M+5EpcxdMk+UmzkTidud7e5qywbycqmoOqVWmJjQqE5R1B1rr9h51MaKvPwd8kaBnjvUpvXDBx8rK0dE/NrB3Zqb4ceFiR8fJ6r5vnz5d+e23T7cgz4Np+5+u3bfnz2t3qNZs3myjO/jHW9cjR45s3Li5xGZdWJ0T2dzcwlJgwVEEAcuIQMIRZ87ECFzkq98dIBqNRrPZaCZ4LpZsPBHtbueM5krP9584capv6UtX19JseuTTPIIelSiwI/jLN+1pzVGlKlWhzSGhqaFgQkooqGs862d8NF7gbApY9seaw4RIpGNpKYMpMfTBDgbWFxb2FadXvPmyWNjf/63//rNP375Bv2zfd/z42qSMP63dsmaXQYPuWfsjZwDkMyP5I2NjNrmTDHMfLplsgRNI1RwuR8OHk0lI+Haq5xZ/AszCAs+0s2Oy2Uw7tCVPi5bJiclUDVbjvxWc705FLs1WVMwuPU3Ly9K19bcTOOnBtpu1JqqAZzSrgJZrVYnXEw4YtK7UuexfZ+gCIbF6ppZMfRLYgiRWjkgIkljZlgUGph0sLK4Fgc1iX/+3YuB9/X3foJ0Zv6zZ9Odra/btuLlm3+mzJQuA5bdnigIwGIzB/O2w2/YXbPX4JCYunhZEE/M0lnC+VdhgcnC4L93MRQAngRUBXD7xTB4PbMLA7OgKXVtd/4tPHj0637W0tDT3NM2zheBpX2roZAx32xuWc10ZCjiuqFUqQSEOhOr6vwTXlbAYJyyDhHQ0MwQbMgQmWQskQwJHwPWtzP0HC+t7Z5IytmSkpeW19D/rP3Hw4BNoR/uO1DXKtffW/P58175NJQt/vD0yEhAAxk0w6BQNdnba+/vTIoRCgI0GnFqNx8tNO8NagrNaqHp2JmRjJolMxpOYljyezJ2odlh/WKFxNDAgEHw9PSML0iN78xyMTExMySQ7J2PrdbkDBa0FCcqCBJAngcNra51B5cuH4KL10orBYAiZTAmWISFhwLVRhALRJHhHDA0NYvM8ff03+5/evXv39n279rX45mVBv+z509rtDWsz1iStXft+jdkZoIv8qKg4Dw8PTJx1DLYzzNxcEyGUkEk4oOgghdaILfDcVriV0AJyLz8wt5Lg8FXYaCZaG+xwDgSPTBeYKR5G1PNMykhb37J9uwtu/6EYPz+Rn5NBZWrdywHgGaEqwHN2QpJe3cr7lYmXKxPL9oz/CoKBNEZRdDyiQD/zAAGgx8YzhliDBoesI0ewI9AGN7+jl/YANTRAv/9+c/O9/TsS16zZ7bdm0zpUQH5+UX4UuBnHgHwWcuwss+RO33UFrUPG5aAjgsYVaJlXa1faRYKDnh1E1meSIQRkgQPWR6QppJND8vh4nLHLIYgF2ZfB9uq5xUCmdiwWBFLukYX5scDWgVDgcY2p6Qk5ytyMupWVDx++A6Yn5h1hVoZMlBBpHEXBREVBOv/Nh4v+WHA9YmNmRn/7FkQtcD/4hr2bT9sYYKH2NfdUrWumStb47/LzAx80oGgkH6jDIwqk0kVWrmH2znbTD8awZBxXzGHLaEEE52Svf3YVXmnxPA2DQygSXGQNolQLPFor9jqsJqIFJkfh61BwlGgd0sl4nR/kZCNE6VO8IauysbHKidDQAZWyICRVFdp4MGni3/9+GbryfaDy5cDLMphEyERYgQTFA5zJAnTiQEBcBLQK9nVXXdu3b/O9MSiRPszsjI8r1gpau2PtwIZNm2KgOMaZVbxgoQc/PDzioP0R4javd0FXowkOgWX+JsHBROLO5GRZNEE6NH2uDGtopQ8Hwz9l9bGYTEsxlzONJrNF1hhUHMYbtWAIh1naueCY4B7tYg1hxwLPBoaqUkFuVNHcvJTyNCsJ3DrffwdXw+/LL99/mBfCeAI0j29IAnVYVORBwXh7YBcM/E9TfY8dO491guAoaJ2hDbbh9OaGDMht9/41biJvbwjDGDljnK+fXzSi7xGA8fAWxXNpWsXksIAnJhqF6RG96A4ORskmaKkDNfjCBQ2eTNbx1vk/aokdXxNB5K+e9WAMlER/w4aFugv6MLypAIc0NDVDShbCAuvqWhNSQS9JT63IKZ9LA1738EPlxMQyoPnlwIKjK4OnjeDyYXAExUN/BEOheAcszGcYmPlvS7vba4sUQRIYSPKBwhvO3oQ27zWL3W0NWXujNu4t0s8HqIE68kGGjiCDFnj43WEtl6YHczI2a+20L1U4mKLpMmd256Qj3Nvb+n+YgdqQlho1jx0tEys05hqkhIKar2y1siSCscQCaegKw4aNVTa+HAgJ/a/RKUNrm55EZlS1Bu62xgS4TrycfwsTkXx0iXi1nikTokR5RI2AdMe7aKEsVtcMHAh767HrIJiBgaurj01DRuDNRig3IyzQYB3cb4PbZgAtH6AOCMgviqKgmDAalxMk5tIJpjAY3u72wISPi6U5CGvi411cJ+cdIWtQ3v/DjHIH/ZKvRaNptMMaR6wQ8mldhpnyTe3i4+ORDJfYA7mVBQMDoaBtqwqaExIKCiOzDm5uGAhz89twZuzDhyMxTjH7ZQQQoxlZ4kWry3sR2IXjRt7q2sYalIRvq/eFu8HsBw3MDG10AxsbG1sh/4bYzkEbP4B63e7dI8agDgHZThCK4aimcdHg/KrRkCE4HMW4XakL7olwJooUAzHGlg1YIDelgIegQJAzX6GmRcvctVwvjpqPhDMmS11cNHJ2suCewPjs2bCwpMaBgdTVtlIQklBw82bqaTe3o7kDu9dlvPwwENqK3budKjehe+oZJYPhFxNHKYoCyj5jYzWYa2BbNj1NdTM00LXZbGZz2qCqsSCyCcodNNCzN7BpcHLba7bb1QmKAmQXGW9AYm2lYo6Me+GwuRCPiLHEQ4gL81YgOjeUSFiQVW6dKyDa28Pjf8mSOz7Ii9YWfTUazROrNbeZJuY+MDss2NdNTFzOBh5IykgqAJBVtY0qZWhd7oGq3Rvc3Nx2BTb4JzwM8Xe72Ro+1RUucA72DTZ1gUOUuKgi0NkkGxkjC7ZY+87c8HADAx/sZrMtVVu2HGh62nQXCsy1tc3VKwksiQUH6s27jTGIKAnDT0AoPSxV02W0Hw+sJCiEO99CwBLao1golFBCYjIZZ1wD4iiYAAB5FTTkzlZ7UeVa2Thd7vVuctIHb8on4gm+evJdZrlhJS5H3UpS/8tzbU5BYG7GFr8YyA3ptm5zq0FoatrOXYVLiRWFWR9fXA2mGpmSSChK/ggKoTOykeH6B9bMZzB2S2eZgbmN7tmkxrSpgvTC9eegsE5bXd19vlPKawU332/Y7YoEK5/k6i4vX3DQV7PVL5et4N4InpgnwzFZLGapo6WQBGPBN+hj9AEbHoBqBBCPTOHlQH/hPD4U7fXux125hQkebxFvpEeghp89YLZmb2DDps1KVWpzSGJTQ1VjYIO1E9wbcvILLMjrrd/XUp83Vduy89tM+IuddCNTF4lEf8RKAtcRnjkydtvKzNUgLCxs0IexObex4GZoZFPakOd6SLezM9f2ly1NBdlr1z5vOG2+TiTyZhkZGdHBXVbKVt+21ZfAvWXjUjGPhjtkO9lZyraUCbzXGb8dy6cAb0TokEh2Qurhu8F0tDz52Gj0g3MEk/irzsn7TUwI26qqqjLWNK5du7Z9U0ltQUJ2wU3P1s26JXudhG4uG2ATjaG9WS3gqpj1275dz2buX7lE1YMJGU7GG8EIAo0sVC7XvT1jo5ubG2vg49oQm9SY3jhVHz50WAq5mNvm6mYZHWxX7fjzjgMNvkQ7O3DHTk7e76xWcNmazkG4SAcRDW6cETywoHQu//Di8a66wf0YlZVF3lGg1cEMHX2MvO4SgomHf/zzrtSBIJObyJL1TIhZN0OTUhNcStbu9tvxp11r0hOUTXl7k5IqN7sd2WjstAEOty3YFv4kfOuee/ueXbl1/taT40ZUogkQm74V6I4oROXyHxvPHAHWrKtrg7UxtylJKqhK27bN9/Cj/9Rw5XFJp2n890MI5A5BwgARUAQFFVHARFAkD4QyU5NEs1K2PBpNLa9JHTWvPPNKralJs+kYLa3t1Ny02pyarKlmO2ZnZ7bdaju2bT9Nu1Ozj7ufff8w//Pp5eE5vseL9PbyNWhtXG3i+6umZ51znAYBAw9rEaz6VJB/QIvCcmMCfnsMGK81eA+S4uad826pK1kYY39l8+kYgD19+f6GUM6RmwxO9Pknr54MM7XBCVlh/QKGClhX67zDsck0+mh9e8h81OW5AkGcMbP869YxZ2ecsy+izk+ISjY/ffz47dtTu+63mZOjEmoBhfUWsgCJc/K+ds1/w4YNY2N7pBuUMIBIW8YzNxckd9uSGYgF8Y+Na9eXdExdmbraPSRogr4XVB8kCPLMcHfHKxReQCwvCVz1W79Va8jeMOlFr1p69Kh+niRRnfkjj8jCsuB46corOZykW+V+NjeOgKLFN4gZXau/3NTggOy4bqrLJFTV1TYxKGENnuIj3187cYK7Z93aAAShUqIYgoqK1LCeop76gs3VZq0eiQNSku9Kp6d50xZi3rMQN/yEuEdbSmzW7m5YlhGdt0WK2pWVzY8KH+XlmbuTpxNOpl7UJqTOhoWLFKILKgTDXZKRGuQXzKel0VjuFC3l1pPhgjkrW5PEA7xWSuPKVOU3b/qSsVSqGFbbMIlYbUTzQ77MIRTXTXUSJp+ZQpY9MzuiCiiBs3LN377F/bJt7Zgzt9cJVvooLePuxb0nCxIom7UM+OQ5EHSaVyiQaTHeGIPmf0H771n4yWrlW1vMg8kFecnIHmFMQFyrsfjMvk925RUU7RocvFiRcD+VwgwDUcQanzun6b7YmIxIvIGI9YaKJ48QhVNuHTjwoNqWSZReyNfkX9i//9rZco2vkCbWqakoVdTr2Tsv5W0sbDWaYBnKaW+9YvqVSgiaGBQEisXs7ytPOP+0da3hBC7OWx4cnZBaM3G0on5IKwhzOGTpVr2eJmfJ+PQMBIO99st/g4ZVygBr6xjKJ7Lzk3vyOncj23ABztw4iyVzdeGuy9mXDufmVlTc9UtlUmYj3XwUa+6cprnCTcvJWCEtbXnaohhSIJ7CfHBgYiioPD9pf/OdyrPl7FALLi4gICYAi1Ur9RI1IS7JTiAY7aWmZVdMpqsEOL1uCTaKOwPfT8LglltWfH3iJ6j+AWS36L5gv+AEAYMhIM3Ke0kyHgoyLSLqQacBeF1+eus2iHrh7IGolUqiNd06WrBjN3ICx+UGxOkaR4uXpewG2utw7qmTFy8eg6Dx4W4Rrnfu0FyFASQhyxd3grsNqOW0DDwl+GnCyR6z1irVqI6kq+gBmAB7jN3bjvD1fEksqiTIKv9qzBnvd1wxrR/dYnK0tLlwErLwAopbGNXVW7d1HVBEa50xSEAv2cWv76i7W3ACR+yZQXJNExP1iJoTK1EoFK40mubamPPibSfgrDgBSaI0GKw8c97w7nNIugXj7WS0t5bmgLDii09HDo10P+zREGWhEXjQRXvcOeuhgOXEK9TX12DgBqTJaQq5h5/UywnD4dTXJgj6Bm7yEaflMMyuW07DSlmtxfFJxW0E4yOTqa4YMKCWukKCBKY9UKeGgy7Ey1eOgBh4BfADoAr2NrKTzEMJ92s4Enk/HUR7IM8Q9vZi+bBvkCLpEeWGAFchLmbR4hP/TROiMp2X35WyMxtReachNLuupKrrux+zj//u0uGikbme0COhnr3u0WuWevi4uFHJCi+sLw70UzRXf6Kc7ObRC01QnkUlCxhdzUlEIQazfO26tTGLfVFLcX58ZjxvnvBoo6PDlEhofFSXRFBLJHJPvEusAVZXOtbbC8OFSc7ZeQWIBHRUsjihwMagSMRGnW/cIiccMYDe6xoLFGqgB1nBFyE4LG3d2hMAaoyNwVXnp+fzunYVIEd0dDFiKbYWt879eOCLHz+/d2n7TJ6eF0rNEK1yWwVQB9VVL3MNWIIJcHjzNV6iiGjgRVGMI40qEGRFPWm2qjFOwG/BerbiBAZTGl814GhqrTVdL6wrnSxxjPc69AIxGQBhUThwu3I6rDgAbKxbAUOz8yLEW60H4Mlso0iwEosTgtu2hwYrJ9+wapULHjAJEotG893G2uDvv2ehzfjL0lVdOVFtDUj8QCXbTVrcWts0tANUIL+7tH377SI1IubgPVxWLfU5f0tE1/EjAWR0zVii0LBc+eGiwEgeV+4kpgYxKSoeasEhixavWwF7Gs7RnpnfRWh/dmUSGndD+5X1hAapSkqW90aKXILDRREoXcEyKFwxtEVrnZcDuSgU6nRiUsOQVqLHYp1i4rgGLt87xjeCH77UR+ROVxj2K3z9DYaFBrOBtYcoI/LSu0rnamsRkIMMJ2gaa/X1UZ/D+fGzf458cTyd1E4KdPPxWeny5GeRmK6OdF+qIMu9nULLUJZrBDnD34suz1Dnx0sFHL6OS4NbHtuWFkCQEngthOv7HrUTdpumOh9ddQzlMSgMd/zKjJUi0CUq6HR6RASf7kpfvhhWnnUIStTbPY1qo1EdhwAZDX0QRVlyDNF1Ddk9IoLsobqj4rN5e/wXbpo1JouF6brEai1pQYAJ62TwqHrp6Obs34AW5PN/jvz9s+aGXnU4I4hE5jx5whGTPPHhS0kZcrk3vyxUsyYCj2fRkX59/tmzPFmolIvjLlq3dozF0sU9IsQ39j8zbXKUOhLr3p8jTEaZqYESt15SZCQeELWIcLdIRThfQfdevG4dTPm+4BawI4AMWIxGEC4LUZQGQB4SShd5kNcoFHQv9tk/GjRlSiVcspSnUqWns3ml6SX5VuTXXzc+uMHRS/I3b+785LMv/v474GMOxTc0UAAoJrm53BqwksXq3x71IcHqRJKHlhHdPFzJZDKCJt25eYGI8lEc13c5185tTJIa/woV2TFa96z9/sOF3/J2ZRdVg15yaaDnLBg6Vq4JXYPHX4gIpSOLYapd5EtUYjEg9rBYhDShBYPECfmoF60XpYWiS+kAeTuFnvnjacMRjT9LSWSxMyvj861sdnp+rCoW+fXqJ5duWPVho6V5u/Yt5Mc3fz++/cEolRpoZqpFnK4zbD1HBpMHsFkZkb1OfJm7XBGh9uzlJ365PykU5fv7bhvbZsQ1fp0p7S8OqbsyCqmxkVAUcq4z+/L6XRQg9sP98LORayJJgWGRkRlufgbUVb54HegW/I8YpEIIVbgVuqkTAlCVFwvBOmFoRJGrt5d/KFp25yaLx45dGPFk+7+vzD8C454miX2Eh0xN/WHkKSPQs3aodm7zb45/8eOnQP0/iNcmBEXhqTIRJ1Qm1CuPRQcv9YjMIPXK6bKIcFWsmO/JH/ieSKOD6m0b94RvY2lSZuKo49GvMB3NEa6YuhsuZ2fvSOmpT/55UBDsB9ydiws5MBw+Lny4RiTHL3YGu4GTfzoRi4V19MQ2LoyLCA3lx2Lk2FAFxtNpAShJMmhCy9gGolWKZZ9tTkrPP8LkocojgLcj8SkpIze0QeTa2oaGuU93f/6PL4BiDBmmCGoFYmooh4rysXr9b6OPBvuQM0ioIk0iV6Oi9JvpSUQ+QvdOc8L5Qqcczxw/12GMr5svqetsIkzudswcyD7wYKZ+8MOH4YoERoLHKqi8bkzweER6hHuIPMackQBkiUQls1hahQDDLQQdZ2H5y4QiQ5krfCm5mv1nbhJ5ZVCXWbLyM81nqykMXn651RrLTk/nIdKe4cu3g5lB1PrJyaZlO0DsBLLOB9UJDHxWmKsoIrb8CKr2dPeLDheR6V6oUI70ZoRF30wqt0L0yBJQntjjAtJGz7W1z0M72fh+rn0qqp3wEJiqy/fDct+8+/DkfBSD4e4HcIQI9CJus54cfDAnFOvt1EtEOTy9UQiIBcAWAEtzWXwFqrpQhvHEWH45XXnta6lMxmbLiPsLE4uArzCb2SpGugqE7USEUzv4h1ymD4wstU1tnVt+k338i0NFyYwgWF7IZNcI1dl0uliMX7rUjS7XaVBkCalfrD2fTwxVY9UyXYw9AMG0tycRCG0d44QWk6lx8uoUIS8l+0DKp38avvTi3YPXB4Y7a+rdYUlmMphMF8juIDeKCIsi4gwbJ9DGscTZ127bthA0QvNikdDy8liJCOvsf80Qy4YBySDjpA+c5ZltBdUFURQGQ3VBpYklIq2CzTsvAS9MSaiv76latvPcpV0P3x67mMDBUz1odJbmj+V0sRxy2cl7ibCMz5XLqTJ89AWZmoNgdV6WALslAHK4BNgPmENDYODY115/OeWLHb//09TLl69evX73AVQDQ6nBfn7BDBfKUshud3dgDhQSfJBbAl7LlMCOfALyYysNZlGUpGerVBfOHjlh2GPYsAe0wVJObPoCg9RdHaXNMyd3tVih7hGRI2d3vLi0iunCoYY1Mbq6gGvI63l8N/mYS6rIRU1TxIKihyRPc/IGGxPG3+Dle+FOOr43lixGyagX3Y4xpvWPttaZdu7OewT8R15mHmEuJXvHp59O/enly9fvXrw8Nfgu+/LmoASmX3QwkykiU6NdfMRiN3dJVnAQJVUbJcUErICgAYtzQny93NSU/d9///1pw56vYR5V5vPgvs3MvOT7BclmbY95YiDKmn/EKkEyCz/5w6ljq2At9KxtLJ3Li5qbmak/Oe0HlLyI7q3QfH9HQfLE4AKWgJwHi2Unnfle5UbFZ6g9USyf1q9ztD575uiqM80R5uqeNbQ31ZqTH2R3/vtP/556+eLAu9cvap7uyv7kcl9qpMAvmpIQ5EaNZsD2GiQSu0Uf3ftYm2y1ICu2/j9oFBWFA/x2U7Php59+2rDH8DVowUvN5ijA85ILCsxa2/m+dFWoXowYVbcG7x9blTU7K5YUN7bOFVTnzVy823cMJOeg5lZAN1HT5Tgw2+Cc0hZ5NVcOyORZE9RAeT+qp+t0hK66R8Z2wmrTbwiEc6YqR1FU01ABcCNTU//+3bt3r969eHd3ZnjH5Tep7WGUaGYWNQtPYQi0gczIwMDBk7ORAq0V1UHEcLhOGKyIooqgppcfIe4ZgwHJoGSXtlhLc7qLOkOyu23VUUAz9lGoEoka6Z3MK+ipufh4tv4uOCsSEipqbp08ufnGSYaA6kamy9URHLI4o7/fHmB3HluL/MJjwzde5TIb7h4Wp29wQBZ3E66XOqbgH0IxYbS2wBYkzgqaffXy3RvI6BcfXvx88ejPH3Z8EMwGmqmSLAmQzKAapnoGZnjQ6UvkOO5WLtd5LXerEPo4yfxgwEZdWCP8N8DynbO5CHh8oBB3XP55ePh8TUVuzV6GCyifXRFxVl7eELj2ZioGK2YqpnOnU48l3D1Vc1KQGhSU5Umi72+WzGbpLQHOY9dOj9njEHaS1KLzcAkOymgzTl4xra6ra2voqIUvYpujNjM+p7N7KG9z2MnXrw+8e/HqNYT98ujdV69efKju5UgEaiwW5TAoUEnwnp54IKhpyGIuF7gSgP6dMOr0s2/ibVZprFK6YUxamtRZuOPz7M9/3HH5u3O3Nt8avHuyRruXsXQNUN2IWlwr6HlacariFPD79Rcrck/W1EzX1FwMShUAVuupPvsGVtxQV+y1a6d/2coN8FaWs4k6UKBQeeNt81PFhELTo/a8xPmcEEdLfEtiZ5RA2/k6+d27n1+/ePHq5etXL94M//zqRchwHgcWukasTo9KORHsILcwdw8XNw86jMs4MKqtXcvFxRHvPCmPruZJY9kyw4aWqubr11NATLG7E2THE+dvFUEWXExwWQOcpStCCpybgy/e4PSNmvv36x8/zoXNFs5FAUAfEjzd4+wZP0lWma/vtV/GFi8OwAh1SpmVpY3W2qpKutoJ7ZOEfaZPCF1VDsJCUF15tXkPXr968+bdq5cvX7x4ceX1z7c+TL16kDyUuQnV83RAw+hYWCwxlRoW7uPnLnIFpRsuBowOuBMqxMhmcnhJGjhKVDne3Bwffz1ld/au6q6qnARtdJ9fUCpUzTUKNd0VUWsL8uorTp2qyD144+nM48enDk5XAEZ1MgGS2n2Nh8f+N+cv3LzjG7ANB4RTGpePxcotcZIjSV35VZmdpe1thPZHpuuOjsqclnyeFCw1nQ8+vH73+tVLCBqK3vCTF5ezD/SYq+PjSxv1OrRRaAT2yHIsIYwRDpiVCOvqqwMkE/j2a6iRLFWlJ+XnE2VjLV3NlVVV10M+2VRl5bTwZAC2aBmBkRQfprsC8CNEej7JVnAQ7Hq5I6fu1s9UHDwFoqH7F1NTE1LJHuGhEeVvPrx5csErIAbcKs4YL76QlIbYpefic9qKx3mEKlO8o75uH6HqTFdJfotdXPqgaPDdu9dTCyFPvXx96+cXlwVznQcezM1VlfKUQrQRa7EA7XDyYioFrEhL1yjA7WLBsa6dPi016rHWIzyVhsgisisr47viQQ8eP2q0e2N0XhOgThCERYZzIiRqcLkh1Ilyc1RNbu6pU9O5uW/fjhz++PH584t392a5Z0Xij4aLfM6/edLn6oQB7mhxgJcBjSOJsS3jlS0Ee7EDANFl7W2OIQLakVmii5vvn+wqGnzwCurzy6nXLx+9tn34w4GhpqIdU3ltmztTimGpa0VbLUKhMbXmZA1oLFw81sA4g0XQ/WVcmpDGJxKlUiKqzEmqqkqCmM+V2tsBLkRw3CBJkMydnsV2kWGFsjIDQhZAKwy7e3Aw99TtgwefPr9xcOSHr2rAaLt3ZSQZDKHU8gsCppcrBkSuyxEdT00yGuNKxosJm0x1dcUNXYSWkOttOePAJIDRME5vNQ+nQMwfPsBVPxl+/YfByfrs9/vmmrYfONCdPCRtbG1EjXHGuJrp1ITHqeDK83BFy/arvTE0i6+XQQkmDplBplQCQLopsaOqcV5vxADr7OxMkkvCZWrXUNAosAxlRETC1ApqZ5/CVYPP7Pbtt2/BzvFxenrv3cd492C3wEi3iVs2Bh+JwQkX4/xjUau+36FrH3c01zXGA3jkqNq0emdmqQUGpzi7HYNSzLsOQEt58vLqi4knO17nNczc3/HpXP2CJjd382CygDokgBm4fvBWzV6oeSvdXPjgZgztx+CwBuBQgOcEZqWlmJ35SWHmaIfdPorqcDHOW5f3ukYsSCpcQw0qTZmhDJExtILZ+qG71d0FBd3dybef/vD8q+enKu7efczwC15KFWfdqtZW0xdMF1wWi2/sb3FcfdbrINSFFD9LbK8idKz+MrO0hSjsj/FGLK2S5sJlD169+MOrn1/cuvryQ1tTwz+PH557WASquoNQlgq0DEa9uKFpbjA39+5evFukSPXHP94MV5PTLEoNz39MOqZsHFUC75UYLy3htYzzeEIczRnMjSQ3vkgBmhJD2QWVqoyNSCRaBmlWkBzV1lRcHdVdMARZcrhi+u7MyaNabTRDHHb+vLaHLZTDnI4qlaU5pYRzozwHATQtJYTC94T4HF1xDlvFt8DnqwT394M3RQ9evH75GipHclPT44d//+zt8+3bt/8L/DinTuUeDaYEDs0l7/oKulsNwwe8/WdvskVu4jQdD76AgET7S3mNmVsKd/XMJ5ZW8prHLTEBOF8c18Mt0omM8lmhROBarLFILCUL4Nkhjt7Tjh1tbWsbqn947/ClmZkbFVqGXx+jPix51+Y8mSsMIHwemhPf1eUAvUIHoaNuKmpZXeu8VWhE4qRKVAd6Dkur0kqpFVS82vjyFbSVzrb5kd89fH5p5Jsv/vXVRwi6YjoauAeAoaN+yIUaa+s7G0tniayhVDwUDOiDeyDoFmXXlo7u6h5xW0hxcUkmFHUcjmbw8yGTIlHgyUPZICfRIOXBYWSt62yvHYNgdAGW+dnaGzcOHz50qulpQZ45KoHRllDQOWyjAIOjs3Y1x28mzK0GlKAFZiTTFbFDxban2b3jZAB2slAsVl9LETfNJr96A43lxmTT5988PwxOoJF/wj1/PHWqZtVewWNx/VBD/Q+naqZtt+6cLQN9gquIwrxwIZ1HJO7ZYEBLOvat3/ToWZfUKG0eKEkqZ3uFsiOiXaB7e4AfRQb/u3SbDQkFyQMTkC3vAGin2+xx4qaef97/5l7u2/oZbfVEdbJgblf28IeJKI5na+aZgTnC5Pur88WmuknCZANhUsyJQ3AxMTo9kuEpIRJZEpKeI/AMS4Hx/+Lwny7dOLz90KGRg4cOLpi1oMumekZ6isNqw+YOVty4X/3mjSwA/Jn0CBUkqooNWi//xuLVX67elZwyVWctMTZ3FVcpLVgRFTzFZMACww0qPsrX2PqiEI7ELzws1B/rtHzFinVrjfb+ph5z3r3PTvW01dcnF22OEuSF/KHowKau0a7E9es7CZ88e0RoA0riCqEnr4lKRdKWOHlzN6jlGSQsUamT6slh4vrZhpcfZlPe/XPk4PZ733xz7/BXhw8fPHX/4sWlYFPyzOj1HKrOhZ5re1IOMnaMnK46e4FdVhZL9PffUPJ9c9zC6Hxm6pksM65RGv+rihQe5ClYtdItQlMGikGZtDx/0IaowiXuwV8bTsCstXjFOud+47w5Oe/evac3ZhpmoT411M6k/AFqbFRX4foBcxQhpe4ZYbyKsG9fu6CNoSeTaEIhi4Xr9aSr+WwDVmKk1jY11Dfs9Wy6fSDl0KXtnx08fGjk3sF7B2ueJiQsdV9DkpPEgaPdj2HaYZpJXqHe3t70sv0XyjULMo6xDV8O5DR0Jw/3SK5esZZajH+pK1U3n89i4skrffyiywyxRD4n3zaRjBTcnx70U7LLIUNAah5gNOrZOaXPD20umhC4heGp+LDZ+C27i3qKdm8aIjS2EQhX68454sUOAodtzeKAitdtzRqPlajeUy7hoFSKBCQ2cVikqalp6BB4PKDU/evjx6/+9a9/fXx+ceZx2MrZMKpnFodq0RXrVtgD9pz+BecLON1PRCnbICNKrZXqvuTa4QQzG/1SFf3kyzsZ8nA2398fpfmzY4M1bCkM2v7l5X1I1MW707fyVUQwCDnHOOnsabrx8ZyRA5e6C5hBbispDGpQV8iWB+dWb5psmqoDhLyhrq5xclN6dwcPlFd0AKs9FG4eEle6HgSRKAfrqqYBFd0wN5S8PeWLL765B/FC5VgIGswvqXvD8EyqK1UnbG20CGNW+F47DRwQEEEyvkwqQ3lnzsR5MmwMRpTeGip58+G8eyTJQwaDoC8K9Tk4mAcVZsy/XOWHFPRFHZven4QK0+KcEGCC7MU8XeulXZ1FIKTJEOPLz3QJzj0kOJIn256FlJpM444o007Cg47hZEmQhOqq8EK9FPBjYU4GmEKKlSnjWUZuf2dn9qXLB+599fztR4h64ap/uDiTmnpxL/CRIG/xF66wL7Lbuadv/mRQwhdQpoQTWzWg4vWSGgS2UorMj9I34RHtLveIWJgEQ9kXLtj8zGyiPxysB5Jsqz7qN9HH4QiXIFyngJiBv6bN93f3VG9OoArUJPcgW9RcvWPZDgIhpLB9yxXTs1rCKKGNyawnhUk4MglWgYWaj0KZ1sEvSitLKT39tbNvXHx89dD9G89HPv7w1b8OfgUZAqHD+xbHoo/6iMiAy9gxMc4wnJ8u36BcYLCg0EuJsTyL6oiV1KtX8TgSji0oqK/PHe9SFoFVgCCyzNYXbbYS/ZUnkDQSUhBVfd52nkIR5JP0GAxa+e2jqnmjOcoMHCg+lKRmcPLOwZxfV9De7ri6kbAFwEV9a9uMeHY2kMOUSBRqrg7l83U6L50QywLyXYkRbl3hjErTzfWTTQ9H7o0cXKjRP3yEux6cmF4V7QdeeAV24bkTi0ao+5o3plQWwy1LW3kaPSjqeESeJ08lC0ygisMYgwzIJspSkY8G5NHBgMwxQ4kouMDSkOTk6sGoaUYqNSEjbQn65be/fvtta/toDptJkUkEHDOI95a1764z1TURWk0drX9JctSWSksSBKmBWVlZejeFKw6QIT7K8kd9LUJDZaXGeTFIecQk8+jQ5OT93JERmDkO5n78Ck7uNPijXPBkuSsfJCKs/ZVJwFdJIWBlMRqbH6+yQH+zEFux2GZMUBCI0vy0qYHuWoFHRHA0WxMNzdTmx2bhMDGgexCYQWqdm1tDCcyiqgYG/vbtt49G+9UcaSyRncSmMGodQG8X1HXAJjj/3mSqIgj2G4P6TgYxGEGzYlQi0SMAMvmOscaw8JFrbv60aO060NWJm6Lm5mbe3l64aIj5q4UzDUH7wbYCXvQ1CI59tnK/ykA0wFQ3KoWGXdklRXVxcTij0hhzBIMXB/pN1NSEXTzmx2T6BfvFsqOipwcnbLE0J27aIgxCqQa3Kmy1TY8F5xO/j//1L4+efWtPs3gLZcqk/ez++at1Ke3zppbVpvWE2sxRgpVD0YdxZhIYQTBLKSJYrk4BdgQ54SuEK1h7+traGNDTrVg73xR1u+DhwYNfvZ15+sNBeIJkZHC64u5vU48B+LpylY8HF1O+v1yTzpONjkpHi4tH4fEfq4yos9gRoxSLLfcNCxMwT6bO1k9X+Pkdjab4pbMplIqJPj8szgnEMYsQrTmv5/4PP8zMJgzfuik1yOK/DenqtxuRdp3OaD1DSDSZntV1PypsnzIBHVFfUFrL0DM8H0dNBAVm4V3c/X0tcTErWkGDuCDX+sWwbq3zWliuGybzirYfOnzv4w8/HLx3+OCh5Hrx3lRxqg/4RH2WBkdPxNJYoWyQgvEbpTCMVnU0g0VfaZWhOosQC+pDQxjj5N6w2dmLNRO3zvfBOWKOZp6s6WMosLhFS+AlGehgk7Vv395/e78z5Gy/t0W/qbl13JiGMQpR8AXw2q+Ydu80mab+q/o9V7WzoI2SRylIHs5O7g1kRkgiUKwxQFjMtUDQzsDLOTtD1GuXz87fH/nm0L3DI2BNhbS+IWgiifGReHgqZGXqMXDxHwkN9Y9N1/CsxY3FJfHXBzI7kpTSFiXctY7vJGRhsiaO7Q3bm3psenBw+iicruhoP4r2qLbMC7eNBhpCiHmyaeb2jYrh9b+CkFnISspsbW6NizPKuvI3rf6krbaurrV24zICYZ7Q3d19rrvaBr6NS8MpnQmBIqpIpLb4CnWtXAsOHlLZCnHDARHzZMPtke2HwLh06NDtp2+fz5DmPfVZ5MA1eJ/IVW+eDE+oNKoykK/x4IWMqsSQ611Vmc0lrSXlxptJQiGK1XEpZyf2Pq6pgJirj/ZV99ku2GzRCQmrIsr8cc4ITYHUNzU0DT29nbtr9dUtZwp19vj48eLKpMb+4vGq8U2fFA44curezxMIJZ2N3VFzPeaiqI07du+6fG74wa4wfISLF4aOBTmfrwUu2HnDtZ9AIgoE4dqmpoeQHt/ce/72aX1DU0Jef7+aJaED5xIdaDt73sZUXSgHGiKWXdK8qbA5pyQzvirz+8pSKS8kVowlyxW46IlB8BZDzIPT0xPnJyaibdFaPMB0rtuc23HEMqStdsjcffvh5atghUj8ckDIis9s6Uoay0nKz7wesv5cZjwhBGpzS2dix8OZ+3nmzZd+k1J0aTg7pbMgi1O2lA9DNNai1wlxYIfbevoaKFshaOe4hjb4WMxtTUO1k56egUw96BFRhUdw+fnoYK2tWpuff0RlBZqtubC5VG9vrLp+Hf6qtKWSQqKGghiBfJShffw4rGZwYrB6emJwIehw98iVkWmLoN6VaYKRubae7u++23l1Y0hhc2LhX/djMju6ck5nVnW1An5UmhlfWEK4amrVX+/q3rz5dkFRym9GDn13/OF3m3scHDYHXlFBJVijUaezYHArlm84/Qvw+pAedr2e19jYNFnPE/STvJf4ciSQSUR4jaJMr7FyapusPKmUI03fP1AJbltjbWvV9UxrQ0t6az/JGiujk6h+YHgLe1wzOHh+og+G+r4+GzN1pTs5ZlHaItwREF711M90f/fp+30piYnNZxI7Bk4PxGdWfllYMm8vvHrd0bZz56bWOGN7aUtDW+fOos/+8eOh4yOff76re6jdIeBI1ogi3FGJWNyK1Vm2blvBvXYaBJ9w1Zg9qK83EmfEKkHZigM9jsJHszR8v4bsKjMYHfZ2UjFHyk4aSISXanitgEk05oznXC9tElNmXaKDspiBDA41KJUSDY/pTPvZqpMpTO0qdxeRK6AJi5zcoyuQuSHzgT9NTS0LWV04MJB5pvlMftKCIcJofHblqmmjoyvxzIC+tVTfVNuUd+Dz3392GF40OX5798PG4maJgx65pkwm0Ysl/50+fLc5j42BlwA4Qq7BN8bbaOkH1ZZQuGLrmCj61tlwNxGJ4GD1t28CTZMyvap5IHM8PyeHjRphHG5qyelsG0rOzxJzmHgmuNWYQdC3a6qPLiyqWqqne/BSFwUtZhF3CeLJ/C2iTSg4MPXp1PsfwZLUUVWYuYl9JrGrZZywcZ8j01TV7ui4nt0RPzTUU9/w8B8/3jv+DXj8Hx5+CG629zvrJ8V6KmjpsSrIBR0VnwXPxUjYrG2Llws1WCc5EkND6EIsliYs++Odm+VEacP8xoWBfMtkfxuhpLAjiZeTrtLk87hAjAt1WLFay4BHcqir/PyWtq+MttkoNgpbFQs6mFhXUqRbRKivEwL6N2/SkjDEXB8W9er3/57auODi6DyzqePPlUmgsyeYptY/am2YcnR3FHZkFpl7Hv7zR0iN7cc//wzcJl98N/Wnje9TGnqlKAJCqfRSSNGFv+imjvjjTda6tWmhLIXaSQ6aQBqNK8QQ95eHIhxVfdPUEKHBlL3eVJczWVnKKxnXyFSZ0MxjcEu8WRJ5YCBeQHZxCffAhzEXiKUL0eVHyoBV5ntneEZ6iYRAocB2l0FSIBPwthXln1P7Pv0ke0tVYnzhlivxdvuVRsLGukfz84+2EKoHrp/L3DWUvHsfOKLhmg8ffn78sx/hs7my71nVLCNW3Rsg5MtQJcWPQnGnqumazNNfn8gAbEXh5AoctIKlgaWID6OQNT2ZMHnlOqzxy4rfryaU9Bfn8zTsWF7SXxNZaRi0jKIXZ/SKI12CffBhHkehmcCLBhdUsday0FCFh4sHny/DxSH9Ttwl8nDkFqjMqK27l12t272po2P1r1ca5wklpveTcdAGTasJZigbPckNbdlXDn333XFYRR4C/vLpv69O7bs6tfFRSb+YjNB7ezFGWWx0cLBPqoeYxs8/vUJdhqcjdHhQzF+zv7KcCxgiS8rpb3dAIYIEaT9XZ4mLb9ShPAOPGFv57Z+JMSw2USBxy8jICqb4RcJGCOEyOdC+4aY58KwB0LxqNWqPQcCs2+ut+Q99VcmxLtBN9gAAAABJRU5ErkJggg==)}.hd_md\:bg-ortho_hi{background-image:url(data:image/png;base64,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)}.hd_md\:bg-route_hi{background-image:url(data:image/png;base64,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)}.hd_md\:bg-topo_bw_hi{background-image:url(data:image/png;base64,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)}.hd_md\:bg-topo_hi{background-image:url(data:image/png;base64,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)}} +/* +! tailwindcss v3.2.7 | MIT License | https://tailwindcss.com +*//* +1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) +2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) +*/ + +*, +::before, +::after { + box-sizing: border-box; /* 1 */ + border-width: 0; /* 2 */ + border-style: solid; /* 2 */ + border-color: #e5e7eb; /* 2 */ +} + +::before, +::after { + --tw-content: ''; +} + +/* +1. Use a consistent sensible line-height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +3. Use a more readable tab size. +4. Use the user's configured `sans` font-family by default. +5. Use the user's configured `sans` font-feature-settings by default. +*/ + +html { + line-height: 1.5; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -moz-tab-size: 4; /* 3 */ + tab-size: 4; /* 3 */ + font-family: DINNextLTPro-Condensed, Arial, sans-serif; /* 4 */ + font-feature-settings: normal; /* 5 */ +} + +/* +1. Remove the margin in all browsers. +2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. +*/ + +body { + margin: 0; /* 1 */ + line-height: inherit; /* 2 */ +} + +/* +1. Add the correct height in Firefox. +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +3. Ensure horizontal rules are visible by default. +*/ + +hr { + height: 0; /* 1 */ + color: inherit; /* 2 */ + border-top-width: 1px; /* 3 */ +} + +/* +Add the correct text decoration in Chrome, Edge, and Safari. +*/ + +abbr:where([title]) { + text-decoration: underline dotted; +} + +/* +Remove the default font size and weight for headings. +*/ + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: inherit; + font-weight: inherit; +} + +/* +Reset links to optimize for opt-in styling instead of opt-out. +*/ + +a { + color: inherit; + text-decoration: inherit; +} + +/* +Add the correct font weight in Edge and Safari. +*/ + +b, +strong { + font-weight: bolder; +} + +/* +1. Use the user's configured `mono` font family by default. +2. Correct the odd `em` font sizing in all browsers. +*/ + +code, +kbd, +samp, +pre { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* +Add the correct font size in all browsers. +*/ + +small { + font-size: 80%; +} + +/* +Prevent `sub` and `sup` elements from affecting the line height in all browsers. +*/ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) +2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +3. Remove gaps between table borders by default. +*/ + +table { + text-indent: 0; /* 1 */ + border-color: inherit; /* 2 */ + border-collapse: collapse; /* 3 */ +} + +/* +1. Change the font styles in all browsers. +2. Remove the margin in Firefox and Safari. +3. Remove default padding in all browsers. +*/ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + font-weight: inherit; /* 1 */ + line-height: inherit; /* 1 */ + color: inherit; /* 1 */ + margin: 0; /* 2 */ + padding: 0; /* 3 */ +} + +/* +Remove the inheritance of text transform in Edge and Firefox. +*/ + +button, +select { + text-transform: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Remove default button styles. +*/ + +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; /* 1 */ + background-color: transparent; /* 2 */ + background-image: none; /* 2 */ +} + +/* +Use the modern Firefox focus style for all focusable elements. +*/ + +:-moz-focusring { + outline: auto; +} + +/* +Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) +*/ + +:-moz-ui-invalid { + box-shadow: none; +} + +/* +Add the correct vertical alignment in Chrome and Firefox. +*/ + +progress { + vertical-align: baseline; +} + +/* +Correct the cursor style of increment and decrement buttons in Safari. +*/ + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +/* +1. Correct the odd appearance in Chrome and Safari. +2. Correct the outline style in Safari. +*/ + +[type='search'] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/* +Remove the inner padding in Chrome and Safari on macOS. +*/ + +::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Change font properties to `inherit` in Safari. +*/ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* +Add the correct display in Chrome and Safari. +*/ + +summary { + display: list-item; +} + +/* +Removes the default spacing and border for appropriate elements. +*/ + +blockquote, +dl, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +figure, +p, +pre { + margin: 0; +} + +fieldset { + margin: 0; + padding: 0; +} + +legend { + padding: 0; +} + +ol, +ul, +menu { + list-style: none; + margin: 0; + padding: 0; +} + +/* +Prevent resizing textareas horizontally by default. +*/ + +textarea { + resize: vertical; +} + +/* +1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) +2. Set the default placeholder color to the user's configured gray 400 color. +*/ + +input::placeholder, +textarea::placeholder { + opacity: 1; /* 1 */ + color: #9ca3af; /* 2 */ +} + +/* +Set the default cursor for buttons. +*/ + +button, +[role="button"] { + cursor: pointer; +} + +/* +Make sure disabled buttons don't get the pointer cursor. +*/ +:disabled { + cursor: default; +} + +/* +1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) +2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) + This can trigger a poorly considered lint error in some tools but is included by design. +*/ + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block; /* 1 */ + vertical-align: middle; /* 2 */ +} + +/* +Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) +*/ + +img, +video { + max-width: 100%; + height: auto; +} + +/* Make elements with the HTML hidden attribute stay hidden by default */ +[hidden] { + display: none; +} + body { + color: var(--color-default); +} + + input[type='range']::-webkit-slider-thumb { + height: 1rem; + width: 1rem; + border-radius: 9999px; + border-color: var(--color-tertiary); + background-color: var(--color-tertiary); + -webkit-appearance: none; +} + + input[type='range']::-moz-range-thumb { + height: 0.75rem; + width: 0.75rem; + border-radius: 9999px; + border-color: var(--color-tertiary); + background-color: var(--color-tertiary); +} + + input[type='range']::-ms-thumb { + height: 1rem; + width: 1rem; + border-radius: 9999px; + border-color: var(--color-tertiary); + background-color: var(--color-tertiary); +} + :root { + --alert-info-primary: #d9edf7; + --alert-info-secondary: #bce8f1; + --alert-info-tertiary: #31708f; + --alert-danger-primary: #f2dede; + --alert-danger-secondary: #ebccd1; + --alert-danger-tertiary: #a94442; + --alert-warning-primary: #fcf850; + --alert-warning-secondary: #faebcc; + --alert-warning-tertiary: #8a6d3b; + --color-default: #333; + --color-primary: #2980b9; + --color-secondary: #97bbd3; + --color-tertiary: #1f5d87; + --color-navbar-default: #777; + --color-btn-ol: #8394a0; + --main-primary: #2980b9; + --main-secondary: #97bbd3; + --main-tertiary: #1f5d87; + --tourisme-primary: #e84c3d; + --tourisme-secondary: #e88c83; + --tourisme-tertiary: #a50f15; + --emwelt-primary: #558b2f; + --emwelt-secondary: #85bb5c; + --emwelt-tertiary: #255d00; + --eau-primary: #03a2ac; + --eau-secondary: #45cdd6; + --eau-tertiary: #078f98; + --pag-primary: #2b8cbe; + --pag-secondary: #74a9cf; + --pag-tertiary: #045a8d; + --agriculture-primary: #f39c11; + --agriculture-secondary: #ffc363; + --agriculture-tertiary: #9c6101; + --lenoz-primary: #f4b72b; + --lenoz-secondary: #f3d89b; + --lenoz-tertiary: #b3851d; + --preizerdaul-primary: #2980b9; + --preizerdaul-secondary: #97bbd3; + --preizerdaul-tertiary: #1f5d87; + --wellenstein-primary: #7ac573; + --wellenstein-secondary: #b0e4ab; + --wellenstein-tertiary: #42803c; + --lintgen-primary: #f3c531; + --lintgen-secondary: #f3d89b; + --lintgen-tertiary: #b3851d; + --remich-primary: #8ca229; + --remich-secondary: #bacd63; + --remich-tertiary: #5c6b1b; + --at-primary: #f4511e; + --at-secondary: #ff844c; + --at-tertiary: #b91400; + --cadastre_hertzien-primary: #7ac573; + --cadastre_hertzien-secondary: #b0e4ab; + --cadastre_hertzien-tertiary: #42803c; + --urban_farming-primary: #028349; + --urban_farming-secondary: #4ab475; + --urban_farming-tertiary: #005520; + --energie-primary: #558b2f; + --energie-secondary: #85bb5c; + --energie-tertiary: #255d00; + --atlas_demographique-primary: #f4b72b; + --atlas_demographique-secondary: #f3d89b; + --atlas_demographique-tertiary: #b3851d; + --logement-primary: #b0271a; + --logement-secondary: #e95b43; + --logement-tertiary: #790000; + --np_our-primary: #76b854; + --np_our-secondary: #a8ea82; + --np_our-tertiary: #458725; + --geosciences-primary: #895e03; + --geosciences-secondary: #d7ba87; + --geosciences-tertiary: #5e4024; + --ahc-primary: #ff5722; + --ahc-secondary: #ff8a50; + --ahc-tertiary: #c41c00; + --municipalities-primary: #9e9ac8; + --municipalities-secondary: #cbc9e2; + --municipalities-tertiary: #756bb1; + --Amenagement_du_territoire-primary: #f4511e; + --Amenagement_du_territoire-secondary: #ff844c; + --Amenagement_du_territoire-tertiary: #b91400; + --Environnement_naturel-primary: #879d31; + --Environnement_naturel-secondary: #bacd81; + --Environnement_naturel-tertiary: #627529; + --Environnement_humain-primary: #558b2f; + --Environnement_humain-secondary: #85bb5c; + --Environnement_humain-tertiary: #255d00; + --Occupation_du_sol-primary: #8d6e63; + --Occupation_du_sol-secondary: #bd9b8f; + --Occupation_du_sol-tertiary: #5e4238; + --intranet-at-primary: #9e9ac8; + --intranet-at-secondary: #cbc9e2; + --intranet-at-tertiary: #756bb1; + --prof-primary: #006d2c; + --prof-secondary: #99d8c9; + --prof-tertiary: #238b45; + --go-primary: #555; + --go-secondary: #bbb; + --go-tertiary: #756bb1; + --sig_secours-primary: #2979ff; + --sig_secours-secondary: #75a7ff; + --sig_secours-tertiary: #004ecb; + --button-bg-color: #ccc; + } + +*, ::before, ::after { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} + +::backdrop { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} +.container { + width: 100%; + margin-right: auto; + margin-left: auto; +} +@media (min-width: 640px) { + + .container { + max-width: 640px; + } +} +@media (min-width: 768px) { + + .container { + max-width: 768px; + } +} +@media (min-width: 1024px) { + + .container { + max-width: 1024px; + } +} +@media (min-width: 1280px) { + + .container { + max-width: 1280px; + } +} +@media (min-width: 1536px) { + + .container { + max-width: 1536px; + } +} +.lux-panel-title { + padding-left: 0.75rem; + padding-right: 0.75rem; + padding-top: 0.375rem; + font-size: 40px; + line-height: 40px; + text-transform: uppercase; + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} +.lux-bg-sel { + height: 40px; + width: 40px; + cursor: pointer; + border-radius: 0.125rem; + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + padding: 0.125rem; +} +@media (min-width: 768px) { + + .lux-bg-sel { + height: 58px; + width: 90px; + } +} +.lux-bg-sel-icon { + border-width: 0.5px; + --tw-border-opacity: 1; + border-color: rgb(156 163 175 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + background-size: 40px 40px; +} +@media (min-width: 768px) { + + .lux-bg-sel-icon { + background-size: 90px 58px; + } +} +.lux-bg-sel-icon.lux-bg-sel-blank { + --tw-border-opacity: 1; + border-color: rgb(0 0 0 / var(--tw-border-opacity)); +} +.lux-btn { + border-width: 1px; + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + padding-top: 6px; + padding-bottom: 6px; + padding-left: 12px; + padding-right: 12px; + line-height: 1.375; + color: var(--color-primary); +} +.lux-btn:focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; + } +.lux-btn:hover { + background-color: var(--color-primary); + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} +.lux-btn:focus { + --tw-border-opacity: 1; + border-color: rgb(140 140 140 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(230 230 230 / var(--tw-bg-opacity)); + color: var(--color-primary); +} +.lux-btn { + border: 1px solid var(--button-bg-color); + } +.lux-close-cross::after { + --tw-content: '\e02c'; + content: var(--tw-content); +} +.lux-input { + border-width: 1px; + padding-top: 6px; + padding-bottom: 6px; + padding-left: 12px; + padding-right: 12px; + line-height: 1.375; + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} +.lux-input::placeholder { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} +.lux-input { + background-color: var(--color-secondary); + } +.lux-label { + margin-bottom: 5px; + display: inline-block; + font-weight: 700; +} +.lux-dropdown { + display: inline-block; +} +.lux-dropdown-inline .lux-dropdown-list:not(.hidden) { + display: flex; +} +.lux-dropdown-list { + position: absolute; + left: 0px; + z-index: 10; + margin-top: 2px; + width: auto; + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + padding-top: 5px; + padding-bottom: 5px; + border: 1px solid rgba(0, 0, 0, 0.15); + box-shadow: 0 6px 12px rgb(0 0 0 / 18%); +} +.lux-dropdown-list-item { + height: 100%; + width: 100%; + cursor: pointer; + padding-top: 3px; + padding-bottom: 3px; + padding-left: 1.25rem; + padding-right: 1.25rem; + text-align: left; +} +.lux-dropdown-list-item:hover { + --tw-bg-opacity: 1; + background-color: rgb(245 245 245 / var(--tw-bg-opacity)); +} +.lux-caret { + display: inline-block; + height: 0px; + width: 0px; + vertical-align: middle; + border-top: 4px dashed; + border-top: 4px solid \9; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} +.lux-collapse { + position: relative; + max-height: 0px; + overflow: hidden; + transition-property: max-height; + transition-duration: 150ms; + transition-duration: .70s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); +} +.lux-collapse.expanded { + max-height: 3000px; +} +.lux-layer-manager-item { + margin-bottom: 1px; + display: flex; + user-select: none; + flex-wrap: wrap; + align-items: center; + column-gap: 0.5rem; + background-color: var(--color-secondary); + padding-left: 0.625rem; + padding-right: 0.625rem; + padding-top: .25rem; + padding-bottom: .25rem; + text-transform: capitalize; + color: var(--color-tertiary); +} +.lux-layer-manager-item-content { + display: flex; + width: 100%; + user-select: text; + align-items: center; + overflow: hidden; + transition-property: height; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; + transition-duration: 0.25s; + transition-timing-function: linear; +} +.lux-sortable-ghost::before { + position: absolute; + z-index: 10; + height: 100%; + width: 100%; + background-color: var(--color-primary); + --tw-content: ''; + content: var(--tw-content); +} +.lux-sortable-drag { + --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06)); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} +.lux-navbar-dropdown .lux-dropdown-btn { + outline: none; + height: 100%; + width: 4rem; + border-style: none; + color: var(--color-navbar-default); + } +.lux-navbar-dropdown .lux-dropdown-btn::after { + font-family: geoportail-icons-wc; + font-size: 1.875rem; + line-height: 2.25rem; + --tw-content: '\e012'; + content: var(--tw-content); +} +.lux-navbar-dropdown .lux-dropdown-btn:hover { + background-color: var(--color-primary); + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} +.lux-navbar-dropdown .lux-dropdown-btn.expanded { + background-color: var(--color-primary); + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} +.lux-navbar-dropdown .lux-dropdown-btn.expanded::after { + --tw-content: '\e02c'; + content: var(--tw-content); +} +.lux-navbar-dropdown .lux-dropdown-btn>span { + display: none; +} +.lux-navbar-dropdown .lux-dropdown-wrapper { + position: absolute; + right: 0px; + width: 100%; +} +.lux-navbar-dropdown .lux-dropdown-list { + position: relative; + left: auto; + float: right; + margin: 0px; + gap: 1px; + border-style: none; + background-color: transparent; + padding-top: 0px; + padding-bottom: 0px; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.lux-navbar-dropdown .lux-dropdown-list li { + height: 4rem; + width: 4rem; + background-color: var(--color-primary); +} +.lux-navbar-dropdown .lux-dropdown-list li:hover { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + color: var(--color-primary); +} +.lux-navbar-dropdown .lux-dropdown-list li.selected { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + color: var(--color-primary); +} +.lux-navbar-dropdown .lux-dropdown-list-item { + text-align: center; + text-transform: uppercase; +} +.lux-remote-services-dropdown .lux-dropdown-wrapper { + position: fixed; + width: 14rem; +} +.lux-slider-line { + position: absolute; + left: 50%; + top: 0px; + margin-left: -2px; + display: block; + height: 100%; + width: 4px; + cursor: ew-resize; + background-color: var(--color-primary); +} +.lux-slider-arrows { + position: absolute; + top: 50%; + right: 2px; + display: flex; + height: 1.75rem; + width: 1.75rem; + cursor: ew-resize; + align-items: center; + justify-content: center; + background-color: var(--color-primary); +} +.lux-slider-arrows > * { + height: 0px; + width: 0px; + border-top-width: 8px; + border-bottom-width: 8px; + --tw-border-opacity: 1; + border-color: rgb(255 255 255 / var(--tw-border-opacity)); + border-top-color: transparent; + border-bottom-color: transparent; +} +.lux-slider-arrows > *:first-child { + margin-right: 2px; + border-right-width: 8px; +} +.lux-slider-arrows > *:last-child { + margin-left: 2px; + border-left-width: 8px; +} +.lux-slider-layer-label { + position: absolute; + bottom: 3.5rem; + right: 1.75rem; + width: 8rem; + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + padding: 0.5rem; + font-weight: 700; +} +.lux-slider-layer-label:hover { + cursor: default; +} +.lux-alert { + margin-bottom: 1.25rem; + border-width: 1px; + padding: 1rem; +} +.lux-alert-info { + background-color: var(--alert-info-primary); + border-color: var(--alert-info-secondary); + color: var(--alert-info-tertiary); + } +.lux-alert-danger { + background-color: var(--alert-danger-primary); + border-color: var(--alert-danger-secondary); + color: var(--alert-danger-tertiary); + } +.lux-alert-warning { + background-color: var(--alert-warning-primary); + border-color: var(--alert-warning-secondary); + color: var(--alert-warning-tertiary); + } +.visible { + visibility: visible; +} +.invisible { + visibility: hidden; +} +.collapse { + visibility: collapse; +} +.static { + position: static; +} +.fixed { + position: fixed; +} +.absolute { + position: absolute; +} +.relative { + position: relative; +} +.inset-0 { + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; +} +.inset-x-0 { + left: 0px; + right: 0px; +} +.inset-x-2 { + left: 0.5rem; + right: 0.5rem; +} +.inset-x-2\.5 { + left: 0.625rem; + right: 0.625rem; +} +.inset-y-8 { + top: 2rem; + bottom: 2rem; +} +.bottom-0 { + bottom: 0px; +} +.bottom-1 { + bottom: 0.25rem; +} +.bottom-5 { + bottom: 1.25rem; +} +.left-1\/2 { + left: 50%; +} +.left-\[20px\] { + left: 20px; +} +.right-1 { + right: 0.25rem; +} +.right-2 { + right: 0.5rem; +} +.top-1 { + top: 0.25rem; +} +.top-10 { + top: 2.5rem; +} +.top-14 { + top: 3.5rem; +} +.top-16 { + top: 4rem; +} +.top-5 { + top: 1.25rem; +} +.top-\[70px\] { + top: 70px; +} +.isolate { + isolation: isolate; +} +.isolation-auto { + isolation: auto; +} +.z-10 { + z-index: 10; +} +.z-20 { + z-index: 20; +} +.z-50 { + z-index: 50; +} +.z-\[1050\] { + z-index: 1050; +} +.z-\[1100\] { + z-index: 1100; +} +.z-\[5\] { + z-index: 5; +} +.col-auto { + grid-column: auto; +} +.col-span-1 { + grid-column: span 1 / span 1; +} +.col-span-10 { + grid-column: span 10 / span 10; +} +.col-span-11 { + grid-column: span 11 / span 11; +} +.col-span-12 { + grid-column: span 12 / span 12; +} +.col-span-2 { + grid-column: span 2 / span 2; +} +.col-span-3 { + grid-column: span 3 / span 3; +} +.col-span-4 { + grid-column: span 4 / span 4; +} +.col-span-5 { + grid-column: span 5 / span 5; +} +.col-span-6 { + grid-column: span 6 / span 6; +} +.col-span-7 { + grid-column: span 7 / span 7; +} +.col-span-8 { + grid-column: span 8 / span 8; +} +.col-span-9 { + grid-column: span 9 / span 9; +} +.col-span-full { + grid-column: 1 / -1; +} +.col-start-1 { + grid-column-start: 1; +} +.col-start-10 { + grid-column-start: 10; +} +.col-start-11 { + grid-column-start: 11; +} +.col-start-12 { + grid-column-start: 12; +} +.col-start-13 { + grid-column-start: 13; +} +.col-start-2 { + grid-column-start: 2; +} +.col-start-3 { + grid-column-start: 3; +} +.col-start-4 { + grid-column-start: 4; +} +.col-start-5 { + grid-column-start: 5; +} +.col-start-6 { + grid-column-start: 6; +} +.col-start-7 { + grid-column-start: 7; +} +.col-start-8 { + grid-column-start: 8; +} +.col-start-9 { + grid-column-start: 9; +} +.col-start-auto { + grid-column-start: auto; +} +.col-end-1 { + grid-column-end: 1; +} +.col-end-10 { + grid-column-end: 10; +} +.col-end-11 { + grid-column-end: 11; +} +.col-end-12 { + grid-column-end: 12; +} +.col-end-13 { + grid-column-end: 13; +} +.col-end-2 { + grid-column-end: 2; +} +.col-end-3 { + grid-column-end: 3; +} +.col-end-4 { + grid-column-end: 4; +} +.col-end-5 { + grid-column-end: 5; +} +.col-end-6 { + grid-column-end: 6; +} +.col-end-7 { + grid-column-end: 7; +} +.col-end-8 { + grid-column-end: 8; +} +.col-end-9 { + grid-column-end: 9; +} +.col-end-auto { + grid-column-end: auto; +} +.m-2 { + margin: 0.5rem; +} +.m-2\.5 { + margin: 0.625rem; +} +.m-\[10px\] { + margin: 10px; +} +.m-px { + margin: 1px; +} +.mx-\[10px\] { + margin-left: 10px; + margin-right: 10px; +} +.my-0 { + margin-top: 0px; + margin-bottom: 0px; +} +.my-2 { + margin-top: 0.5rem; + margin-bottom: 0.5rem; +} +.-mb-3 { + margin-bottom: -0.75rem; +} +.-mt-1 { + margin-top: -0.25rem; +} +.-mt-1\.5 { + margin-top: -0.375rem; +} +.mb-3 { + margin-bottom: 0.75rem; +} +.mb-\[11px\] { + margin-bottom: 11px; +} +.mb-\[15px\] { + margin-bottom: 15px; +} +.mb-px { + margin-bottom: 1px; +} +.ml-1 { + margin-left: 0.25rem; +} +.ml-\[-250px\] { + margin-left: -250px; +} +.ml-auto { + margin-left: auto; +} +.mr-2 { + margin-right: 0.5rem; +} +.mr-3 { + margin-right: 0.75rem; +} +.mt-1 { + margin-top: 0.25rem; +} +.mt-2 { + margin-top: 0.5rem; +} +.mt-2\.5 { + margin-top: 0.625rem; +} +.box-content { + box-sizing: content-box; +} +.block { + display: block; +} +.flex { + display: flex; +} +.table-column { + display: table-column; +} +.table-column-group { + display: table-column-group; +} +.grid { + display: grid; +} +.hidden { + display: none; +} +.h-0 { + height: 0px; +} +.h-10 { + height: 2.5rem; +} +.h-14 { + height: 3.5rem; +} +.h-16 { + height: 4rem; +} +.h-2 { + height: 0.5rem; +} +.h-2\.5 { + height: 0.625rem; +} +.h-20 { + height: 5rem; +} +.h-5 { + height: 1.25rem; +} +.h-6 { + height: 1.5rem; +} +.h-\[100px\] { + height: 100px; +} +.h-\[150px\] { + height: 150px; +} +.h-\[42px\] { + height: 42px; +} +.h-\[5px\] { + height: 5px; +} +.h-full { + height: 100%; +} +.h-screen { + height: 100vh; +} +.max-h-96 { + max-height: 24rem; +} +.max-h-\[calc\(400px-36px\)\] { + max-height: calc(400px - 36px); +} +.max-h-full { + max-height: 100%; +} +.w-1\/2 { + width: 50%; +} +.w-11 { + width: 2.75rem; +} +.w-12 { + width: 3rem; +} +.w-16 { + width: 4rem; +} +.w-2 { + width: 0.5rem; +} +.w-2\.5 { + width: 0.625rem; +} +.w-3 { + width: 0.75rem; +} +.w-3\.5 { + width: 0.875rem; +} +.w-40 { + width: 10rem; +} +.w-5 { + width: 1.25rem; +} +.w-80 { + width: 20rem; +} +.w-\[300px\] { + width: 300px; +} +.w-\[32px\] { + width: 32px; +} +.w-\[466px\] { + width: 466px; +} +.w-\[500px\] { + width: 500px; +} +.w-\[70\%\] { + width: 70%; +} +.w-\[700px\] { + width: 700px; +} +.w-\[85px\] { + width: 85px; +} +.w-full { + width: 100%; +} +.flex-1 { + flex: 1 1 0%; +} +.flex-none { + flex: none; +} +.shrink-0 { + flex-shrink: 0; +} +.grow { + flex-grow: 1; +} +.border-collapse { + border-collapse: collapse; +} +.-translate-y-60 { + --tw-translate-y: -15rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.translate-y-0 { + --tw-translate-y: 0px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.transform { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.cursor-all-scroll { + cursor: all-scroll; +} +.cursor-col-resize { + cursor: col-resize; +} +.cursor-default { + cursor: default; +} +.cursor-move { + cursor: move; +} +.cursor-pointer { + cursor: pointer; +} +.resize { + resize: both; +} +.-scroll-m-0 { + scroll-margin: -0px; +} +.-scroll-m-0\.5 { + scroll-margin: -0.125rem; +} +.-scroll-m-1 { + scroll-margin: -0.25rem; +} +.-scroll-m-1\.5 { + scroll-margin: -0.375rem; +} +.-scroll-m-10 { + scroll-margin: -2.5rem; +} +.-scroll-m-11 { + scroll-margin: -2.75rem; +} +.-scroll-m-12 { + scroll-margin: -3rem; +} +.-scroll-m-14 { + scroll-margin: -3.5rem; +} +.-scroll-m-16 { + scroll-margin: -4rem; +} +.-scroll-m-2 { + scroll-margin: -0.5rem; +} +.-scroll-m-2\.5 { + scroll-margin: -0.625rem; +} +.-scroll-m-20 { + scroll-margin: -5rem; +} +.-scroll-m-24 { + scroll-margin: -6rem; +} +.-scroll-m-28 { + scroll-margin: -7rem; +} +.-scroll-m-3 { + scroll-margin: -0.75rem; +} +.-scroll-m-3\.5 { + scroll-margin: -0.875rem; +} +.-scroll-m-32 { + scroll-margin: -8rem; +} +.-scroll-m-36 { + scroll-margin: -9rem; +} +.-scroll-m-4 { + scroll-margin: -1rem; +} +.-scroll-m-40 { + scroll-margin: -10rem; +} +.-scroll-m-44 { + scroll-margin: -11rem; +} +.-scroll-m-48 { + scroll-margin: -12rem; +} +.-scroll-m-5 { + scroll-margin: -1.25rem; +} +.-scroll-m-52 { + scroll-margin: -13rem; +} +.-scroll-m-56 { + scroll-margin: -14rem; +} +.-scroll-m-6 { + scroll-margin: -1.5rem; +} +.-scroll-m-60 { + scroll-margin: -15rem; +} +.-scroll-m-64 { + scroll-margin: -16rem; +} +.-scroll-m-7 { + scroll-margin: -1.75rem; +} +.-scroll-m-72 { + scroll-margin: -18rem; +} +.-scroll-m-8 { + scroll-margin: -2rem; +} +.-scroll-m-80 { + scroll-margin: -20rem; +} +.-scroll-m-9 { + scroll-margin: -2.25rem; +} +.-scroll-m-96 { + scroll-margin: -24rem; +} +.-scroll-m-px { + scroll-margin: -1px; +} +.scroll-m-0 { + scroll-margin: 0px; +} +.scroll-m-0\.5 { + scroll-margin: 0.125rem; +} +.scroll-m-1 { + scroll-margin: 0.25rem; +} +.scroll-m-1\.5 { + scroll-margin: 0.375rem; +} +.scroll-m-10 { + scroll-margin: 2.5rem; +} +.scroll-m-11 { + scroll-margin: 2.75rem; +} +.scroll-m-12 { + scroll-margin: 3rem; +} +.scroll-m-14 { + scroll-margin: 3.5rem; +} +.scroll-m-16 { + scroll-margin: 4rem; +} +.scroll-m-2 { + scroll-margin: 0.5rem; +} +.scroll-m-2\.5 { + scroll-margin: 0.625rem; +} +.scroll-m-20 { + scroll-margin: 5rem; +} +.scroll-m-24 { + scroll-margin: 6rem; +} +.scroll-m-28 { + scroll-margin: 7rem; +} +.scroll-m-3 { + scroll-margin: 0.75rem; +} +.scroll-m-3\.5 { + scroll-margin: 0.875rem; +} +.scroll-m-32 { + scroll-margin: 8rem; +} +.scroll-m-36 { + scroll-margin: 9rem; +} +.scroll-m-4 { + scroll-margin: 1rem; +} +.scroll-m-40 { + scroll-margin: 10rem; +} +.scroll-m-44 { + scroll-margin: 11rem; +} +.scroll-m-48 { + scroll-margin: 12rem; +} +.scroll-m-5 { + scroll-margin: 1.25rem; +} +.scroll-m-52 { + scroll-margin: 13rem; +} +.scroll-m-56 { + scroll-margin: 14rem; +} +.scroll-m-6 { + scroll-margin: 1.5rem; +} +.scroll-m-60 { + scroll-margin: 15rem; +} +.scroll-m-64 { + scroll-margin: 16rem; +} +.scroll-m-7 { + scroll-margin: 1.75rem; +} +.scroll-m-72 { + scroll-margin: 18rem; +} +.scroll-m-8 { + scroll-margin: 2rem; +} +.scroll-m-80 { + scroll-margin: 20rem; +} +.scroll-m-9 { + scroll-margin: 2.25rem; +} +.scroll-m-96 { + scroll-margin: 24rem; +} +.scroll-m-px { + scroll-margin: 1px; +} +.-scroll-mx-0 { + scroll-margin-left: -0px; + scroll-margin-right: -0px; +} +.-scroll-mx-0\.5 { + scroll-margin-left: -0.125rem; + scroll-margin-right: -0.125rem; +} +.-scroll-mx-1 { + scroll-margin-left: -0.25rem; + scroll-margin-right: -0.25rem; +} +.-scroll-mx-1\.5 { + scroll-margin-left: -0.375rem; + scroll-margin-right: -0.375rem; +} +.-scroll-mx-10 { + scroll-margin-left: -2.5rem; + scroll-margin-right: -2.5rem; +} +.-scroll-mx-11 { + scroll-margin-left: -2.75rem; + scroll-margin-right: -2.75rem; +} +.-scroll-mx-12 { + scroll-margin-left: -3rem; + scroll-margin-right: -3rem; +} +.-scroll-mx-14 { + scroll-margin-left: -3.5rem; + scroll-margin-right: -3.5rem; +} +.-scroll-mx-16 { + scroll-margin-left: -4rem; + scroll-margin-right: -4rem; +} +.-scroll-mx-2 { + scroll-margin-left: -0.5rem; + scroll-margin-right: -0.5rem; +} +.-scroll-mx-2\.5 { + scroll-margin-left: -0.625rem; + scroll-margin-right: -0.625rem; +} +.-scroll-mx-20 { + scroll-margin-left: -5rem; + scroll-margin-right: -5rem; +} +.-scroll-mx-24 { + scroll-margin-left: -6rem; + scroll-margin-right: -6rem; +} +.-scroll-mx-28 { + scroll-margin-left: -7rem; + scroll-margin-right: -7rem; +} +.-scroll-mx-3 { + scroll-margin-left: -0.75rem; + scroll-margin-right: -0.75rem; +} +.-scroll-mx-3\.5 { + scroll-margin-left: -0.875rem; + scroll-margin-right: -0.875rem; +} +.-scroll-mx-32 { + scroll-margin-left: -8rem; + scroll-margin-right: -8rem; +} +.-scroll-mx-36 { + scroll-margin-left: -9rem; + scroll-margin-right: -9rem; +} +.-scroll-mx-4 { + scroll-margin-left: -1rem; + scroll-margin-right: -1rem; +} +.-scroll-mx-40 { + scroll-margin-left: -10rem; + scroll-margin-right: -10rem; +} +.-scroll-mx-44 { + scroll-margin-left: -11rem; + scroll-margin-right: -11rem; +} +.-scroll-mx-48 { + scroll-margin-left: -12rem; + scroll-margin-right: -12rem; +} +.-scroll-mx-5 { + scroll-margin-left: -1.25rem; + scroll-margin-right: -1.25rem; +} +.-scroll-mx-52 { + scroll-margin-left: -13rem; + scroll-margin-right: -13rem; +} +.-scroll-mx-56 { + scroll-margin-left: -14rem; + scroll-margin-right: -14rem; +} +.-scroll-mx-6 { + scroll-margin-left: -1.5rem; + scroll-margin-right: -1.5rem; +} +.-scroll-mx-60 { + scroll-margin-left: -15rem; + scroll-margin-right: -15rem; +} +.-scroll-mx-64 { + scroll-margin-left: -16rem; + scroll-margin-right: -16rem; +} +.-scroll-mx-7 { + scroll-margin-left: -1.75rem; + scroll-margin-right: -1.75rem; +} +.-scroll-mx-72 { + scroll-margin-left: -18rem; + scroll-margin-right: -18rem; +} +.-scroll-mx-8 { + scroll-margin-left: -2rem; + scroll-margin-right: -2rem; +} +.-scroll-mx-80 { + scroll-margin-left: -20rem; + scroll-margin-right: -20rem; +} +.-scroll-mx-9 { + scroll-margin-left: -2.25rem; + scroll-margin-right: -2.25rem; +} +.-scroll-mx-96 { + scroll-margin-left: -24rem; + scroll-margin-right: -24rem; +} +.-scroll-mx-px { + scroll-margin-left: -1px; + scroll-margin-right: -1px; +} +.-scroll-my-0 { + scroll-margin-top: -0px; + scroll-margin-bottom: -0px; +} +.-scroll-my-0\.5 { + scroll-margin-top: -0.125rem; + scroll-margin-bottom: -0.125rem; +} +.-scroll-my-1 { + scroll-margin-top: -0.25rem; + scroll-margin-bottom: -0.25rem; +} +.-scroll-my-1\.5 { + scroll-margin-top: -0.375rem; + scroll-margin-bottom: -0.375rem; +} +.-scroll-my-10 { + scroll-margin-top: -2.5rem; + scroll-margin-bottom: -2.5rem; +} +.-scroll-my-11 { + scroll-margin-top: -2.75rem; + scroll-margin-bottom: -2.75rem; +} +.-scroll-my-12 { + scroll-margin-top: -3rem; + scroll-margin-bottom: -3rem; +} +.-scroll-my-14 { + scroll-margin-top: -3.5rem; + scroll-margin-bottom: -3.5rem; +} +.-scroll-my-16 { + scroll-margin-top: -4rem; + scroll-margin-bottom: -4rem; +} +.-scroll-my-2 { + scroll-margin-top: -0.5rem; + scroll-margin-bottom: -0.5rem; +} +.-scroll-my-2\.5 { + scroll-margin-top: -0.625rem; + scroll-margin-bottom: -0.625rem; +} +.-scroll-my-20 { + scroll-margin-top: -5rem; + scroll-margin-bottom: -5rem; +} +.-scroll-my-24 { + scroll-margin-top: -6rem; + scroll-margin-bottom: -6rem; +} +.-scroll-my-28 { + scroll-margin-top: -7rem; + scroll-margin-bottom: -7rem; +} +.-scroll-my-3 { + scroll-margin-top: -0.75rem; + scroll-margin-bottom: -0.75rem; +} +.-scroll-my-3\.5 { + scroll-margin-top: -0.875rem; + scroll-margin-bottom: -0.875rem; +} +.-scroll-my-32 { + scroll-margin-top: -8rem; + scroll-margin-bottom: -8rem; +} +.-scroll-my-36 { + scroll-margin-top: -9rem; + scroll-margin-bottom: -9rem; +} +.-scroll-my-4 { + scroll-margin-top: -1rem; + scroll-margin-bottom: -1rem; +} +.-scroll-my-40 { + scroll-margin-top: -10rem; + scroll-margin-bottom: -10rem; +} +.-scroll-my-44 { + scroll-margin-top: -11rem; + scroll-margin-bottom: -11rem; +} +.-scroll-my-48 { + scroll-margin-top: -12rem; + scroll-margin-bottom: -12rem; +} +.-scroll-my-5 { + scroll-margin-top: -1.25rem; + scroll-margin-bottom: -1.25rem; +} +.-scroll-my-52 { + scroll-margin-top: -13rem; + scroll-margin-bottom: -13rem; +} +.-scroll-my-56 { + scroll-margin-top: -14rem; + scroll-margin-bottom: -14rem; +} +.-scroll-my-6 { + scroll-margin-top: -1.5rem; + scroll-margin-bottom: -1.5rem; +} +.-scroll-my-60 { + scroll-margin-top: -15rem; + scroll-margin-bottom: -15rem; +} +.-scroll-my-64 { + scroll-margin-top: -16rem; + scroll-margin-bottom: -16rem; +} +.-scroll-my-7 { + scroll-margin-top: -1.75rem; + scroll-margin-bottom: -1.75rem; +} +.-scroll-my-72 { + scroll-margin-top: -18rem; + scroll-margin-bottom: -18rem; +} +.-scroll-my-8 { + scroll-margin-top: -2rem; + scroll-margin-bottom: -2rem; +} +.-scroll-my-80 { + scroll-margin-top: -20rem; + scroll-margin-bottom: -20rem; +} +.-scroll-my-9 { + scroll-margin-top: -2.25rem; + scroll-margin-bottom: -2.25rem; +} +.-scroll-my-96 { + scroll-margin-top: -24rem; + scroll-margin-bottom: -24rem; +} +.-scroll-my-px { + scroll-margin-top: -1px; + scroll-margin-bottom: -1px; +} +.scroll-mx-0 { + scroll-margin-left: 0px; + scroll-margin-right: 0px; +} +.scroll-mx-0\.5 { + scroll-margin-left: 0.125rem; + scroll-margin-right: 0.125rem; +} +.scroll-mx-1 { + scroll-margin-left: 0.25rem; + scroll-margin-right: 0.25rem; +} +.scroll-mx-1\.5 { + scroll-margin-left: 0.375rem; + scroll-margin-right: 0.375rem; +} +.scroll-mx-10 { + scroll-margin-left: 2.5rem; + scroll-margin-right: 2.5rem; +} +.scroll-mx-11 { + scroll-margin-left: 2.75rem; + scroll-margin-right: 2.75rem; +} +.scroll-mx-12 { + scroll-margin-left: 3rem; + scroll-margin-right: 3rem; +} +.scroll-mx-14 { + scroll-margin-left: 3.5rem; + scroll-margin-right: 3.5rem; +} +.scroll-mx-16 { + scroll-margin-left: 4rem; + scroll-margin-right: 4rem; +} +.scroll-mx-2 { + scroll-margin-left: 0.5rem; + scroll-margin-right: 0.5rem; +} +.scroll-mx-2\.5 { + scroll-margin-left: 0.625rem; + scroll-margin-right: 0.625rem; +} +.scroll-mx-20 { + scroll-margin-left: 5rem; + scroll-margin-right: 5rem; +} +.scroll-mx-24 { + scroll-margin-left: 6rem; + scroll-margin-right: 6rem; +} +.scroll-mx-28 { + scroll-margin-left: 7rem; + scroll-margin-right: 7rem; +} +.scroll-mx-3 { + scroll-margin-left: 0.75rem; + scroll-margin-right: 0.75rem; +} +.scroll-mx-3\.5 { + scroll-margin-left: 0.875rem; + scroll-margin-right: 0.875rem; +} +.scroll-mx-32 { + scroll-margin-left: 8rem; + scroll-margin-right: 8rem; +} +.scroll-mx-36 { + scroll-margin-left: 9rem; + scroll-margin-right: 9rem; +} +.scroll-mx-4 { + scroll-margin-left: 1rem; + scroll-margin-right: 1rem; +} +.scroll-mx-40 { + scroll-margin-left: 10rem; + scroll-margin-right: 10rem; +} +.scroll-mx-44 { + scroll-margin-left: 11rem; + scroll-margin-right: 11rem; +} +.scroll-mx-48 { + scroll-margin-left: 12rem; + scroll-margin-right: 12rem; +} +.scroll-mx-5 { + scroll-margin-left: 1.25rem; + scroll-margin-right: 1.25rem; +} +.scroll-mx-52 { + scroll-margin-left: 13rem; + scroll-margin-right: 13rem; +} +.scroll-mx-56 { + scroll-margin-left: 14rem; + scroll-margin-right: 14rem; +} +.scroll-mx-6 { + scroll-margin-left: 1.5rem; + scroll-margin-right: 1.5rem; +} +.scroll-mx-60 { + scroll-margin-left: 15rem; + scroll-margin-right: 15rem; +} +.scroll-mx-64 { + scroll-margin-left: 16rem; + scroll-margin-right: 16rem; +} +.scroll-mx-7 { + scroll-margin-left: 1.75rem; + scroll-margin-right: 1.75rem; +} +.scroll-mx-72 { + scroll-margin-left: 18rem; + scroll-margin-right: 18rem; +} +.scroll-mx-8 { + scroll-margin-left: 2rem; + scroll-margin-right: 2rem; +} +.scroll-mx-80 { + scroll-margin-left: 20rem; + scroll-margin-right: 20rem; +} +.scroll-mx-9 { + scroll-margin-left: 2.25rem; + scroll-margin-right: 2.25rem; +} +.scroll-mx-96 { + scroll-margin-left: 24rem; + scroll-margin-right: 24rem; +} +.scroll-mx-px { + scroll-margin-left: 1px; + scroll-margin-right: 1px; +} +.scroll-my-0 { + scroll-margin-top: 0px; + scroll-margin-bottom: 0px; +} +.scroll-my-0\.5 { + scroll-margin-top: 0.125rem; + scroll-margin-bottom: 0.125rem; +} +.scroll-my-1 { + scroll-margin-top: 0.25rem; + scroll-margin-bottom: 0.25rem; +} +.scroll-my-1\.5 { + scroll-margin-top: 0.375rem; + scroll-margin-bottom: 0.375rem; +} +.scroll-my-10 { + scroll-margin-top: 2.5rem; + scroll-margin-bottom: 2.5rem; +} +.scroll-my-11 { + scroll-margin-top: 2.75rem; + scroll-margin-bottom: 2.75rem; +} +.scroll-my-12 { + scroll-margin-top: 3rem; + scroll-margin-bottom: 3rem; +} +.scroll-my-14 { + scroll-margin-top: 3.5rem; + scroll-margin-bottom: 3.5rem; +} +.scroll-my-16 { + scroll-margin-top: 4rem; + scroll-margin-bottom: 4rem; +} +.scroll-my-2 { + scroll-margin-top: 0.5rem; + scroll-margin-bottom: 0.5rem; +} +.scroll-my-2\.5 { + scroll-margin-top: 0.625rem; + scroll-margin-bottom: 0.625rem; +} +.scroll-my-20 { + scroll-margin-top: 5rem; + scroll-margin-bottom: 5rem; +} +.scroll-my-24 { + scroll-margin-top: 6rem; + scroll-margin-bottom: 6rem; +} +.scroll-my-28 { + scroll-margin-top: 7rem; + scroll-margin-bottom: 7rem; +} +.scroll-my-3 { + scroll-margin-top: 0.75rem; + scroll-margin-bottom: 0.75rem; +} +.scroll-my-3\.5 { + scroll-margin-top: 0.875rem; + scroll-margin-bottom: 0.875rem; +} +.scroll-my-32 { + scroll-margin-top: 8rem; + scroll-margin-bottom: 8rem; +} +.scroll-my-36 { + scroll-margin-top: 9rem; + scroll-margin-bottom: 9rem; +} +.scroll-my-4 { + scroll-margin-top: 1rem; + scroll-margin-bottom: 1rem; +} +.scroll-my-40 { + scroll-margin-top: 10rem; + scroll-margin-bottom: 10rem; +} +.scroll-my-44 { + scroll-margin-top: 11rem; + scroll-margin-bottom: 11rem; +} +.scroll-my-48 { + scroll-margin-top: 12rem; + scroll-margin-bottom: 12rem; +} +.scroll-my-5 { + scroll-margin-top: 1.25rem; + scroll-margin-bottom: 1.25rem; +} +.scroll-my-52 { + scroll-margin-top: 13rem; + scroll-margin-bottom: 13rem; +} +.scroll-my-56 { + scroll-margin-top: 14rem; + scroll-margin-bottom: 14rem; +} +.scroll-my-6 { + scroll-margin-top: 1.5rem; + scroll-margin-bottom: 1.5rem; +} +.scroll-my-60 { + scroll-margin-top: 15rem; + scroll-margin-bottom: 15rem; +} +.scroll-my-64 { + scroll-margin-top: 16rem; + scroll-margin-bottom: 16rem; +} +.scroll-my-7 { + scroll-margin-top: 1.75rem; + scroll-margin-bottom: 1.75rem; +} +.scroll-my-72 { + scroll-margin-top: 18rem; + scroll-margin-bottom: 18rem; +} +.scroll-my-8 { + scroll-margin-top: 2rem; + scroll-margin-bottom: 2rem; +} +.scroll-my-80 { + scroll-margin-top: 20rem; + scroll-margin-bottom: 20rem; +} +.scroll-my-9 { + scroll-margin-top: 2.25rem; + scroll-margin-bottom: 2.25rem; +} +.scroll-my-96 { + scroll-margin-top: 24rem; + scroll-margin-bottom: 24rem; +} +.scroll-my-px { + scroll-margin-top: 1px; + scroll-margin-bottom: 1px; +} +.-scroll-mb-0 { + scroll-margin-bottom: -0px; +} +.-scroll-mb-0\.5 { + scroll-margin-bottom: -0.125rem; +} +.-scroll-mb-1 { + scroll-margin-bottom: -0.25rem; +} +.-scroll-mb-1\.5 { + scroll-margin-bottom: -0.375rem; +} +.-scroll-mb-10 { + scroll-margin-bottom: -2.5rem; +} +.-scroll-mb-11 { + scroll-margin-bottom: -2.75rem; +} +.-scroll-mb-12 { + scroll-margin-bottom: -3rem; +} +.-scroll-mb-14 { + scroll-margin-bottom: -3.5rem; +} +.-scroll-mb-16 { + scroll-margin-bottom: -4rem; +} +.-scroll-mb-2 { + scroll-margin-bottom: -0.5rem; +} +.-scroll-mb-2\.5 { + scroll-margin-bottom: -0.625rem; +} +.-scroll-mb-20 { + scroll-margin-bottom: -5rem; +} +.-scroll-mb-24 { + scroll-margin-bottom: -6rem; +} +.-scroll-mb-28 { + scroll-margin-bottom: -7rem; +} +.-scroll-mb-3 { + scroll-margin-bottom: -0.75rem; +} +.-scroll-mb-3\.5 { + scroll-margin-bottom: -0.875rem; +} +.-scroll-mb-32 { + scroll-margin-bottom: -8rem; +} +.-scroll-mb-36 { + scroll-margin-bottom: -9rem; +} +.-scroll-mb-4 { + scroll-margin-bottom: -1rem; +} +.-scroll-mb-40 { + scroll-margin-bottom: -10rem; +} +.-scroll-mb-44 { + scroll-margin-bottom: -11rem; +} +.-scroll-mb-48 { + scroll-margin-bottom: -12rem; +} +.-scroll-mb-5 { + scroll-margin-bottom: -1.25rem; +} +.-scroll-mb-52 { + scroll-margin-bottom: -13rem; +} +.-scroll-mb-56 { + scroll-margin-bottom: -14rem; +} +.-scroll-mb-6 { + scroll-margin-bottom: -1.5rem; +} +.-scroll-mb-60 { + scroll-margin-bottom: -15rem; +} +.-scroll-mb-64 { + scroll-margin-bottom: -16rem; +} +.-scroll-mb-7 { + scroll-margin-bottom: -1.75rem; +} +.-scroll-mb-72 { + scroll-margin-bottom: -18rem; +} +.-scroll-mb-8 { + scroll-margin-bottom: -2rem; +} +.-scroll-mb-80 { + scroll-margin-bottom: -20rem; +} +.-scroll-mb-9 { + scroll-margin-bottom: -2.25rem; +} +.-scroll-mb-96 { + scroll-margin-bottom: -24rem; +} +.-scroll-mb-px { + scroll-margin-bottom: -1px; +} +.-scroll-ml-0 { + scroll-margin-left: -0px; +} +.-scroll-ml-0\.5 { + scroll-margin-left: -0.125rem; +} +.-scroll-ml-1 { + scroll-margin-left: -0.25rem; +} +.-scroll-ml-1\.5 { + scroll-margin-left: -0.375rem; +} +.-scroll-ml-10 { + scroll-margin-left: -2.5rem; +} +.-scroll-ml-11 { + scroll-margin-left: -2.75rem; +} +.-scroll-ml-12 { + scroll-margin-left: -3rem; +} +.-scroll-ml-14 { + scroll-margin-left: -3.5rem; +} +.-scroll-ml-16 { + scroll-margin-left: -4rem; +} +.-scroll-ml-2 { + scroll-margin-left: -0.5rem; +} +.-scroll-ml-2\.5 { + scroll-margin-left: -0.625rem; +} +.-scroll-ml-20 { + scroll-margin-left: -5rem; +} +.-scroll-ml-24 { + scroll-margin-left: -6rem; +} +.-scroll-ml-28 { + scroll-margin-left: -7rem; +} +.-scroll-ml-3 { + scroll-margin-left: -0.75rem; +} +.-scroll-ml-3\.5 { + scroll-margin-left: -0.875rem; +} +.-scroll-ml-32 { + scroll-margin-left: -8rem; +} +.-scroll-ml-36 { + scroll-margin-left: -9rem; +} +.-scroll-ml-4 { + scroll-margin-left: -1rem; +} +.-scroll-ml-40 { + scroll-margin-left: -10rem; +} +.-scroll-ml-44 { + scroll-margin-left: -11rem; +} +.-scroll-ml-48 { + scroll-margin-left: -12rem; +} +.-scroll-ml-5 { + scroll-margin-left: -1.25rem; +} +.-scroll-ml-52 { + scroll-margin-left: -13rem; +} +.-scroll-ml-56 { + scroll-margin-left: -14rem; +} +.-scroll-ml-6 { + scroll-margin-left: -1.5rem; +} +.-scroll-ml-60 { + scroll-margin-left: -15rem; +} +.-scroll-ml-64 { + scroll-margin-left: -16rem; +} +.-scroll-ml-7 { + scroll-margin-left: -1.75rem; +} +.-scroll-ml-72 { + scroll-margin-left: -18rem; +} +.-scroll-ml-8 { + scroll-margin-left: -2rem; +} +.-scroll-ml-80 { + scroll-margin-left: -20rem; +} +.-scroll-ml-9 { + scroll-margin-left: -2.25rem; +} +.-scroll-ml-96 { + scroll-margin-left: -24rem; +} +.-scroll-ml-px { + scroll-margin-left: -1px; +} +.-scroll-mr-0 { + scroll-margin-right: -0px; +} +.-scroll-mr-0\.5 { + scroll-margin-right: -0.125rem; +} +.-scroll-mr-1 { + scroll-margin-right: -0.25rem; +} +.-scroll-mr-1\.5 { + scroll-margin-right: -0.375rem; +} +.-scroll-mr-10 { + scroll-margin-right: -2.5rem; +} +.-scroll-mr-11 { + scroll-margin-right: -2.75rem; +} +.-scroll-mr-12 { + scroll-margin-right: -3rem; +} +.-scroll-mr-14 { + scroll-margin-right: -3.5rem; +} +.-scroll-mr-16 { + scroll-margin-right: -4rem; +} +.-scroll-mr-2 { + scroll-margin-right: -0.5rem; +} +.-scroll-mr-2\.5 { + scroll-margin-right: -0.625rem; +} +.-scroll-mr-20 { + scroll-margin-right: -5rem; +} +.-scroll-mr-24 { + scroll-margin-right: -6rem; +} +.-scroll-mr-28 { + scroll-margin-right: -7rem; +} +.-scroll-mr-3 { + scroll-margin-right: -0.75rem; +} +.-scroll-mr-3\.5 { + scroll-margin-right: -0.875rem; +} +.-scroll-mr-32 { + scroll-margin-right: -8rem; +} +.-scroll-mr-36 { + scroll-margin-right: -9rem; +} +.-scroll-mr-4 { + scroll-margin-right: -1rem; +} +.-scroll-mr-40 { + scroll-margin-right: -10rem; +} +.-scroll-mr-44 { + scroll-margin-right: -11rem; +} +.-scroll-mr-48 { + scroll-margin-right: -12rem; +} +.-scroll-mr-5 { + scroll-margin-right: -1.25rem; +} +.-scroll-mr-52 { + scroll-margin-right: -13rem; +} +.-scroll-mr-56 { + scroll-margin-right: -14rem; +} +.-scroll-mr-6 { + scroll-margin-right: -1.5rem; +} +.-scroll-mr-60 { + scroll-margin-right: -15rem; +} +.-scroll-mr-64 { + scroll-margin-right: -16rem; +} +.-scroll-mr-7 { + scroll-margin-right: -1.75rem; +} +.-scroll-mr-72 { + scroll-margin-right: -18rem; +} +.-scroll-mr-8 { + scroll-margin-right: -2rem; +} +.-scroll-mr-80 { + scroll-margin-right: -20rem; +} +.-scroll-mr-9 { + scroll-margin-right: -2.25rem; +} +.-scroll-mr-96 { + scroll-margin-right: -24rem; +} +.-scroll-mr-px { + scroll-margin-right: -1px; +} +.-scroll-mt-0 { + scroll-margin-top: -0px; +} +.-scroll-mt-0\.5 { + scroll-margin-top: -0.125rem; +} +.-scroll-mt-1 { + scroll-margin-top: -0.25rem; +} +.-scroll-mt-1\.5 { + scroll-margin-top: -0.375rem; +} +.-scroll-mt-10 { + scroll-margin-top: -2.5rem; +} +.-scroll-mt-11 { + scroll-margin-top: -2.75rem; +} +.-scroll-mt-12 { + scroll-margin-top: -3rem; +} +.-scroll-mt-14 { + scroll-margin-top: -3.5rem; +} +.-scroll-mt-16 { + scroll-margin-top: -4rem; +} +.-scroll-mt-2 { + scroll-margin-top: -0.5rem; +} +.-scroll-mt-2\.5 { + scroll-margin-top: -0.625rem; +} +.-scroll-mt-20 { + scroll-margin-top: -5rem; +} +.-scroll-mt-24 { + scroll-margin-top: -6rem; +} +.-scroll-mt-28 { + scroll-margin-top: -7rem; +} +.-scroll-mt-3 { + scroll-margin-top: -0.75rem; +} +.-scroll-mt-3\.5 { + scroll-margin-top: -0.875rem; +} +.-scroll-mt-32 { + scroll-margin-top: -8rem; +} +.-scroll-mt-36 { + scroll-margin-top: -9rem; +} +.-scroll-mt-4 { + scroll-margin-top: -1rem; +} +.-scroll-mt-40 { + scroll-margin-top: -10rem; +} +.-scroll-mt-44 { + scroll-margin-top: -11rem; +} +.-scroll-mt-48 { + scroll-margin-top: -12rem; +} +.-scroll-mt-5 { + scroll-margin-top: -1.25rem; +} +.-scroll-mt-52 { + scroll-margin-top: -13rem; +} +.-scroll-mt-56 { + scroll-margin-top: -14rem; +} +.-scroll-mt-6 { + scroll-margin-top: -1.5rem; +} +.-scroll-mt-60 { + scroll-margin-top: -15rem; +} +.-scroll-mt-64 { + scroll-margin-top: -16rem; +} +.-scroll-mt-7 { + scroll-margin-top: -1.75rem; +} +.-scroll-mt-72 { + scroll-margin-top: -18rem; +} +.-scroll-mt-8 { + scroll-margin-top: -2rem; +} +.-scroll-mt-80 { + scroll-margin-top: -20rem; +} +.-scroll-mt-9 { + scroll-margin-top: -2.25rem; +} +.-scroll-mt-96 { + scroll-margin-top: -24rem; +} +.-scroll-mt-px { + scroll-margin-top: -1px; +} +.scroll-mb-0 { + scroll-margin-bottom: 0px; +} +.scroll-mb-0\.5 { + scroll-margin-bottom: 0.125rem; +} +.scroll-mb-1 { + scroll-margin-bottom: 0.25rem; +} +.scroll-mb-1\.5 { + scroll-margin-bottom: 0.375rem; +} +.scroll-mb-10 { + scroll-margin-bottom: 2.5rem; +} +.scroll-mb-11 { + scroll-margin-bottom: 2.75rem; +} +.scroll-mb-12 { + scroll-margin-bottom: 3rem; +} +.scroll-mb-14 { + scroll-margin-bottom: 3.5rem; +} +.scroll-mb-16 { + scroll-margin-bottom: 4rem; +} +.scroll-mb-2 { + scroll-margin-bottom: 0.5rem; +} +.scroll-mb-2\.5 { + scroll-margin-bottom: 0.625rem; +} +.scroll-mb-20 { + scroll-margin-bottom: 5rem; +} +.scroll-mb-24 { + scroll-margin-bottom: 6rem; +} +.scroll-mb-28 { + scroll-margin-bottom: 7rem; +} +.scroll-mb-3 { + scroll-margin-bottom: 0.75rem; +} +.scroll-mb-3\.5 { + scroll-margin-bottom: 0.875rem; +} +.scroll-mb-32 { + scroll-margin-bottom: 8rem; +} +.scroll-mb-36 { + scroll-margin-bottom: 9rem; +} +.scroll-mb-4 { + scroll-margin-bottom: 1rem; +} +.scroll-mb-40 { + scroll-margin-bottom: 10rem; +} +.scroll-mb-44 { + scroll-margin-bottom: 11rem; +} +.scroll-mb-48 { + scroll-margin-bottom: 12rem; +} +.scroll-mb-5 { + scroll-margin-bottom: 1.25rem; +} +.scroll-mb-52 { + scroll-margin-bottom: 13rem; +} +.scroll-mb-56 { + scroll-margin-bottom: 14rem; +} +.scroll-mb-6 { + scroll-margin-bottom: 1.5rem; +} +.scroll-mb-60 { + scroll-margin-bottom: 15rem; +} +.scroll-mb-64 { + scroll-margin-bottom: 16rem; +} +.scroll-mb-7 { + scroll-margin-bottom: 1.75rem; +} +.scroll-mb-72 { + scroll-margin-bottom: 18rem; +} +.scroll-mb-8 { + scroll-margin-bottom: 2rem; +} +.scroll-mb-80 { + scroll-margin-bottom: 20rem; +} +.scroll-mb-9 { + scroll-margin-bottom: 2.25rem; +} +.scroll-mb-96 { + scroll-margin-bottom: 24rem; +} +.scroll-mb-px { + scroll-margin-bottom: 1px; +} +.scroll-ml-0 { + scroll-margin-left: 0px; +} +.scroll-ml-0\.5 { + scroll-margin-left: 0.125rem; +} +.scroll-ml-1 { + scroll-margin-left: 0.25rem; +} +.scroll-ml-1\.5 { + scroll-margin-left: 0.375rem; +} +.scroll-ml-10 { + scroll-margin-left: 2.5rem; +} +.scroll-ml-11 { + scroll-margin-left: 2.75rem; +} +.scroll-ml-12 { + scroll-margin-left: 3rem; +} +.scroll-ml-14 { + scroll-margin-left: 3.5rem; +} +.scroll-ml-16 { + scroll-margin-left: 4rem; +} +.scroll-ml-2 { + scroll-margin-left: 0.5rem; +} +.scroll-ml-2\.5 { + scroll-margin-left: 0.625rem; +} +.scroll-ml-20 { + scroll-margin-left: 5rem; +} +.scroll-ml-24 { + scroll-margin-left: 6rem; +} +.scroll-ml-28 { + scroll-margin-left: 7rem; +} +.scroll-ml-3 { + scroll-margin-left: 0.75rem; +} +.scroll-ml-3\.5 { + scroll-margin-left: 0.875rem; +} +.scroll-ml-32 { + scroll-margin-left: 8rem; +} +.scroll-ml-36 { + scroll-margin-left: 9rem; +} +.scroll-ml-4 { + scroll-margin-left: 1rem; +} +.scroll-ml-40 { + scroll-margin-left: 10rem; +} +.scroll-ml-44 { + scroll-margin-left: 11rem; +} +.scroll-ml-48 { + scroll-margin-left: 12rem; +} +.scroll-ml-5 { + scroll-margin-left: 1.25rem; +} +.scroll-ml-52 { + scroll-margin-left: 13rem; +} +.scroll-ml-56 { + scroll-margin-left: 14rem; +} +.scroll-ml-6 { + scroll-margin-left: 1.5rem; +} +.scroll-ml-60 { + scroll-margin-left: 15rem; +} +.scroll-ml-64 { + scroll-margin-left: 16rem; +} +.scroll-ml-7 { + scroll-margin-left: 1.75rem; +} +.scroll-ml-72 { + scroll-margin-left: 18rem; +} +.scroll-ml-8 { + scroll-margin-left: 2rem; +} +.scroll-ml-80 { + scroll-margin-left: 20rem; +} +.scroll-ml-9 { + scroll-margin-left: 2.25rem; +} +.scroll-ml-96 { + scroll-margin-left: 24rem; +} +.scroll-ml-px { + scroll-margin-left: 1px; +} +.scroll-mr-0 { + scroll-margin-right: 0px; +} +.scroll-mr-0\.5 { + scroll-margin-right: 0.125rem; +} +.scroll-mr-1 { + scroll-margin-right: 0.25rem; +} +.scroll-mr-1\.5 { + scroll-margin-right: 0.375rem; +} +.scroll-mr-10 { + scroll-margin-right: 2.5rem; +} +.scroll-mr-11 { + scroll-margin-right: 2.75rem; +} +.scroll-mr-12 { + scroll-margin-right: 3rem; +} +.scroll-mr-14 { + scroll-margin-right: 3.5rem; +} +.scroll-mr-16 { + scroll-margin-right: 4rem; +} +.scroll-mr-2 { + scroll-margin-right: 0.5rem; +} +.scroll-mr-2\.5 { + scroll-margin-right: 0.625rem; +} +.scroll-mr-20 { + scroll-margin-right: 5rem; +} +.scroll-mr-24 { + scroll-margin-right: 6rem; +} +.scroll-mr-28 { + scroll-margin-right: 7rem; +} +.scroll-mr-3 { + scroll-margin-right: 0.75rem; +} +.scroll-mr-3\.5 { + scroll-margin-right: 0.875rem; +} +.scroll-mr-32 { + scroll-margin-right: 8rem; +} +.scroll-mr-36 { + scroll-margin-right: 9rem; +} +.scroll-mr-4 { + scroll-margin-right: 1rem; +} +.scroll-mr-40 { + scroll-margin-right: 10rem; +} +.scroll-mr-44 { + scroll-margin-right: 11rem; +} +.scroll-mr-48 { + scroll-margin-right: 12rem; +} +.scroll-mr-5 { + scroll-margin-right: 1.25rem; +} +.scroll-mr-52 { + scroll-margin-right: 13rem; +} +.scroll-mr-56 { + scroll-margin-right: 14rem; +} +.scroll-mr-6 { + scroll-margin-right: 1.5rem; +} +.scroll-mr-60 { + scroll-margin-right: 15rem; +} +.scroll-mr-64 { + scroll-margin-right: 16rem; +} +.scroll-mr-7 { + scroll-margin-right: 1.75rem; +} +.scroll-mr-72 { + scroll-margin-right: 18rem; +} +.scroll-mr-8 { + scroll-margin-right: 2rem; +} +.scroll-mr-80 { + scroll-margin-right: 20rem; +} +.scroll-mr-9 { + scroll-margin-right: 2.25rem; +} +.scroll-mr-96 { + scroll-margin-right: 24rem; +} +.scroll-mr-px { + scroll-margin-right: 1px; +} +.scroll-mt-0 { + scroll-margin-top: 0px; +} +.scroll-mt-0\.5 { + scroll-margin-top: 0.125rem; +} +.scroll-mt-1 { + scroll-margin-top: 0.25rem; +} +.scroll-mt-1\.5 { + scroll-margin-top: 0.375rem; +} +.scroll-mt-10 { + scroll-margin-top: 2.5rem; +} +.scroll-mt-11 { + scroll-margin-top: 2.75rem; +} +.scroll-mt-12 { + scroll-margin-top: 3rem; +} +.scroll-mt-14 { + scroll-margin-top: 3.5rem; +} +.scroll-mt-16 { + scroll-margin-top: 4rem; +} +.scroll-mt-2 { + scroll-margin-top: 0.5rem; +} +.scroll-mt-2\.5 { + scroll-margin-top: 0.625rem; +} +.scroll-mt-20 { + scroll-margin-top: 5rem; +} +.scroll-mt-24 { + scroll-margin-top: 6rem; +} +.scroll-mt-28 { + scroll-margin-top: 7rem; +} +.scroll-mt-3 { + scroll-margin-top: 0.75rem; +} +.scroll-mt-3\.5 { + scroll-margin-top: 0.875rem; +} +.scroll-mt-32 { + scroll-margin-top: 8rem; +} +.scroll-mt-36 { + scroll-margin-top: 9rem; +} +.scroll-mt-4 { + scroll-margin-top: 1rem; +} +.scroll-mt-40 { + scroll-margin-top: 10rem; +} +.scroll-mt-44 { + scroll-margin-top: 11rem; +} +.scroll-mt-48 { + scroll-margin-top: 12rem; +} +.scroll-mt-5 { + scroll-margin-top: 1.25rem; +} +.scroll-mt-52 { + scroll-margin-top: 13rem; +} +.scroll-mt-56 { + scroll-margin-top: 14rem; +} +.scroll-mt-6 { + scroll-margin-top: 1.5rem; +} +.scroll-mt-60 { + scroll-margin-top: 15rem; +} +.scroll-mt-64 { + scroll-margin-top: 16rem; +} +.scroll-mt-7 { + scroll-margin-top: 1.75rem; +} +.scroll-mt-72 { + scroll-margin-top: 18rem; +} +.scroll-mt-8 { + scroll-margin-top: 2rem; +} +.scroll-mt-80 { + scroll-margin-top: 20rem; +} +.scroll-mt-9 { + scroll-margin-top: 2.25rem; +} +.scroll-mt-96 { + scroll-margin-top: 24rem; +} +.scroll-mt-px { + scroll-margin-top: 1px; +} +.scroll-p-0 { + scroll-padding: 0px; +} +.scroll-p-0\.5 { + scroll-padding: 0.125rem; +} +.scroll-p-1 { + scroll-padding: 0.25rem; +} +.scroll-p-1\.5 { + scroll-padding: 0.375rem; +} +.scroll-p-10 { + scroll-padding: 2.5rem; +} +.scroll-p-11 { + scroll-padding: 2.75rem; +} +.scroll-p-12 { + scroll-padding: 3rem; +} +.scroll-p-14 { + scroll-padding: 3.5rem; +} +.scroll-p-16 { + scroll-padding: 4rem; +} +.scroll-p-2 { + scroll-padding: 0.5rem; +} +.scroll-p-2\.5 { + scroll-padding: 0.625rem; +} +.scroll-p-20 { + scroll-padding: 5rem; +} +.scroll-p-24 { + scroll-padding: 6rem; +} +.scroll-p-28 { + scroll-padding: 7rem; +} +.scroll-p-3 { + scroll-padding: 0.75rem; +} +.scroll-p-3\.5 { + scroll-padding: 0.875rem; +} +.scroll-p-32 { + scroll-padding: 8rem; +} +.scroll-p-36 { + scroll-padding: 9rem; +} +.scroll-p-4 { + scroll-padding: 1rem; +} +.scroll-p-40 { + scroll-padding: 10rem; +} +.scroll-p-44 { + scroll-padding: 11rem; +} +.scroll-p-48 { + scroll-padding: 12rem; +} +.scroll-p-5 { + scroll-padding: 1.25rem; +} +.scroll-p-52 { + scroll-padding: 13rem; +} +.scroll-p-56 { + scroll-padding: 14rem; +} +.scroll-p-6 { + scroll-padding: 1.5rem; +} +.scroll-p-60 { + scroll-padding: 15rem; +} +.scroll-p-64 { + scroll-padding: 16rem; +} +.scroll-p-7 { + scroll-padding: 1.75rem; +} +.scroll-p-72 { + scroll-padding: 18rem; +} +.scroll-p-8 { + scroll-padding: 2rem; +} +.scroll-p-80 { + scroll-padding: 20rem; +} +.scroll-p-9 { + scroll-padding: 2.25rem; +} +.scroll-p-96 { + scroll-padding: 24rem; +} +.scroll-p-px { + scroll-padding: 1px; +} +.scroll-px-0 { + scroll-padding-left: 0px; + scroll-padding-right: 0px; +} +.scroll-px-0\.5 { + scroll-padding-left: 0.125rem; + scroll-padding-right: 0.125rem; +} +.scroll-px-1 { + scroll-padding-left: 0.25rem; + scroll-padding-right: 0.25rem; +} +.scroll-px-1\.5 { + scroll-padding-left: 0.375rem; + scroll-padding-right: 0.375rem; +} +.scroll-px-10 { + scroll-padding-left: 2.5rem; + scroll-padding-right: 2.5rem; +} +.scroll-px-11 { + scroll-padding-left: 2.75rem; + scroll-padding-right: 2.75rem; +} +.scroll-px-12 { + scroll-padding-left: 3rem; + scroll-padding-right: 3rem; +} +.scroll-px-14 { + scroll-padding-left: 3.5rem; + scroll-padding-right: 3.5rem; +} +.scroll-px-16 { + scroll-padding-left: 4rem; + scroll-padding-right: 4rem; +} +.scroll-px-2 { + scroll-padding-left: 0.5rem; + scroll-padding-right: 0.5rem; +} +.scroll-px-2\.5 { + scroll-padding-left: 0.625rem; + scroll-padding-right: 0.625rem; +} +.scroll-px-20 { + scroll-padding-left: 5rem; + scroll-padding-right: 5rem; +} +.scroll-px-24 { + scroll-padding-left: 6rem; + scroll-padding-right: 6rem; +} +.scroll-px-28 { + scroll-padding-left: 7rem; + scroll-padding-right: 7rem; +} +.scroll-px-3 { + scroll-padding-left: 0.75rem; + scroll-padding-right: 0.75rem; +} +.scroll-px-3\.5 { + scroll-padding-left: 0.875rem; + scroll-padding-right: 0.875rem; +} +.scroll-px-32 { + scroll-padding-left: 8rem; + scroll-padding-right: 8rem; +} +.scroll-px-36 { + scroll-padding-left: 9rem; + scroll-padding-right: 9rem; +} +.scroll-px-4 { + scroll-padding-left: 1rem; + scroll-padding-right: 1rem; +} +.scroll-px-40 { + scroll-padding-left: 10rem; + scroll-padding-right: 10rem; +} +.scroll-px-44 { + scroll-padding-left: 11rem; + scroll-padding-right: 11rem; +} +.scroll-px-48 { + scroll-padding-left: 12rem; + scroll-padding-right: 12rem; +} +.scroll-px-5 { + scroll-padding-left: 1.25rem; + scroll-padding-right: 1.25rem; +} +.scroll-px-52 { + scroll-padding-left: 13rem; + scroll-padding-right: 13rem; +} +.scroll-px-56 { + scroll-padding-left: 14rem; + scroll-padding-right: 14rem; +} +.scroll-px-6 { + scroll-padding-left: 1.5rem; + scroll-padding-right: 1.5rem; +} +.scroll-px-60 { + scroll-padding-left: 15rem; + scroll-padding-right: 15rem; +} +.scroll-px-64 { + scroll-padding-left: 16rem; + scroll-padding-right: 16rem; +} +.scroll-px-7 { + scroll-padding-left: 1.75rem; + scroll-padding-right: 1.75rem; +} +.scroll-px-72 { + scroll-padding-left: 18rem; + scroll-padding-right: 18rem; +} +.scroll-px-8 { + scroll-padding-left: 2rem; + scroll-padding-right: 2rem; +} +.scroll-px-80 { + scroll-padding-left: 20rem; + scroll-padding-right: 20rem; +} +.scroll-px-9 { + scroll-padding-left: 2.25rem; + scroll-padding-right: 2.25rem; +} +.scroll-px-96 { + scroll-padding-left: 24rem; + scroll-padding-right: 24rem; +} +.scroll-px-px { + scroll-padding-left: 1px; + scroll-padding-right: 1px; +} +.scroll-py-0 { + scroll-padding-top: 0px; + scroll-padding-bottom: 0px; +} +.scroll-py-0\.5 { + scroll-padding-top: 0.125rem; + scroll-padding-bottom: 0.125rem; +} +.scroll-py-1 { + scroll-padding-top: 0.25rem; + scroll-padding-bottom: 0.25rem; +} +.scroll-py-1\.5 { + scroll-padding-top: 0.375rem; + scroll-padding-bottom: 0.375rem; +} +.scroll-py-10 { + scroll-padding-top: 2.5rem; + scroll-padding-bottom: 2.5rem; +} +.scroll-py-11 { + scroll-padding-top: 2.75rem; + scroll-padding-bottom: 2.75rem; +} +.scroll-py-12 { + scroll-padding-top: 3rem; + scroll-padding-bottom: 3rem; +} +.scroll-py-14 { + scroll-padding-top: 3.5rem; + scroll-padding-bottom: 3.5rem; +} +.scroll-py-16 { + scroll-padding-top: 4rem; + scroll-padding-bottom: 4rem; +} +.scroll-py-2 { + scroll-padding-top: 0.5rem; + scroll-padding-bottom: 0.5rem; +} +.scroll-py-2\.5 { + scroll-padding-top: 0.625rem; + scroll-padding-bottom: 0.625rem; +} +.scroll-py-20 { + scroll-padding-top: 5rem; + scroll-padding-bottom: 5rem; +} +.scroll-py-24 { + scroll-padding-top: 6rem; + scroll-padding-bottom: 6rem; +} +.scroll-py-28 { + scroll-padding-top: 7rem; + scroll-padding-bottom: 7rem; +} +.scroll-py-3 { + scroll-padding-top: 0.75rem; + scroll-padding-bottom: 0.75rem; +} +.scroll-py-3\.5 { + scroll-padding-top: 0.875rem; + scroll-padding-bottom: 0.875rem; +} +.scroll-py-32 { + scroll-padding-top: 8rem; + scroll-padding-bottom: 8rem; +} +.scroll-py-36 { + scroll-padding-top: 9rem; + scroll-padding-bottom: 9rem; +} +.scroll-py-4 { + scroll-padding-top: 1rem; + scroll-padding-bottom: 1rem; +} +.scroll-py-40 { + scroll-padding-top: 10rem; + scroll-padding-bottom: 10rem; +} +.scroll-py-44 { + scroll-padding-top: 11rem; + scroll-padding-bottom: 11rem; +} +.scroll-py-48 { + scroll-padding-top: 12rem; + scroll-padding-bottom: 12rem; +} +.scroll-py-5 { + scroll-padding-top: 1.25rem; + scroll-padding-bottom: 1.25rem; +} +.scroll-py-52 { + scroll-padding-top: 13rem; + scroll-padding-bottom: 13rem; +} +.scroll-py-56 { + scroll-padding-top: 14rem; + scroll-padding-bottom: 14rem; +} +.scroll-py-6 { + scroll-padding-top: 1.5rem; + scroll-padding-bottom: 1.5rem; +} +.scroll-py-60 { + scroll-padding-top: 15rem; + scroll-padding-bottom: 15rem; +} +.scroll-py-64 { + scroll-padding-top: 16rem; + scroll-padding-bottom: 16rem; +} +.scroll-py-7 { + scroll-padding-top: 1.75rem; + scroll-padding-bottom: 1.75rem; +} +.scroll-py-72 { + scroll-padding-top: 18rem; + scroll-padding-bottom: 18rem; +} +.scroll-py-8 { + scroll-padding-top: 2rem; + scroll-padding-bottom: 2rem; +} +.scroll-py-80 { + scroll-padding-top: 20rem; + scroll-padding-bottom: 20rem; +} +.scroll-py-9 { + scroll-padding-top: 2.25rem; + scroll-padding-bottom: 2.25rem; +} +.scroll-py-96 { + scroll-padding-top: 24rem; + scroll-padding-bottom: 24rem; +} +.scroll-py-px { + scroll-padding-top: 1px; + scroll-padding-bottom: 1px; +} +.scroll-pb-0 { + scroll-padding-bottom: 0px; +} +.scroll-pb-0\.5 { + scroll-padding-bottom: 0.125rem; +} +.scroll-pb-1 { + scroll-padding-bottom: 0.25rem; +} +.scroll-pb-1\.5 { + scroll-padding-bottom: 0.375rem; +} +.scroll-pb-10 { + scroll-padding-bottom: 2.5rem; +} +.scroll-pb-11 { + scroll-padding-bottom: 2.75rem; +} +.scroll-pb-12 { + scroll-padding-bottom: 3rem; +} +.scroll-pb-14 { + scroll-padding-bottom: 3.5rem; +} +.scroll-pb-16 { + scroll-padding-bottom: 4rem; +} +.scroll-pb-2 { + scroll-padding-bottom: 0.5rem; +} +.scroll-pb-2\.5 { + scroll-padding-bottom: 0.625rem; +} +.scroll-pb-20 { + scroll-padding-bottom: 5rem; +} +.scroll-pb-24 { + scroll-padding-bottom: 6rem; +} +.scroll-pb-28 { + scroll-padding-bottom: 7rem; +} +.scroll-pb-3 { + scroll-padding-bottom: 0.75rem; +} +.scroll-pb-3\.5 { + scroll-padding-bottom: 0.875rem; +} +.scroll-pb-32 { + scroll-padding-bottom: 8rem; +} +.scroll-pb-36 { + scroll-padding-bottom: 9rem; +} +.scroll-pb-4 { + scroll-padding-bottom: 1rem; +} +.scroll-pb-40 { + scroll-padding-bottom: 10rem; +} +.scroll-pb-44 { + scroll-padding-bottom: 11rem; +} +.scroll-pb-48 { + scroll-padding-bottom: 12rem; +} +.scroll-pb-5 { + scroll-padding-bottom: 1.25rem; +} +.scroll-pb-52 { + scroll-padding-bottom: 13rem; +} +.scroll-pb-56 { + scroll-padding-bottom: 14rem; +} +.scroll-pb-6 { + scroll-padding-bottom: 1.5rem; +} +.scroll-pb-60 { + scroll-padding-bottom: 15rem; +} +.scroll-pb-64 { + scroll-padding-bottom: 16rem; +} +.scroll-pb-7 { + scroll-padding-bottom: 1.75rem; +} +.scroll-pb-72 { + scroll-padding-bottom: 18rem; +} +.scroll-pb-8 { + scroll-padding-bottom: 2rem; +} +.scroll-pb-80 { + scroll-padding-bottom: 20rem; +} +.scroll-pb-9 { + scroll-padding-bottom: 2.25rem; +} +.scroll-pb-96 { + scroll-padding-bottom: 24rem; +} +.scroll-pb-px { + scroll-padding-bottom: 1px; +} +.scroll-pl-0 { + scroll-padding-left: 0px; +} +.scroll-pl-0\.5 { + scroll-padding-left: 0.125rem; +} +.scroll-pl-1 { + scroll-padding-left: 0.25rem; +} +.scroll-pl-1\.5 { + scroll-padding-left: 0.375rem; +} +.scroll-pl-10 { + scroll-padding-left: 2.5rem; +} +.scroll-pl-11 { + scroll-padding-left: 2.75rem; +} +.scroll-pl-12 { + scroll-padding-left: 3rem; +} +.scroll-pl-14 { + scroll-padding-left: 3.5rem; +} +.scroll-pl-16 { + scroll-padding-left: 4rem; +} +.scroll-pl-2 { + scroll-padding-left: 0.5rem; +} +.scroll-pl-2\.5 { + scroll-padding-left: 0.625rem; +} +.scroll-pl-20 { + scroll-padding-left: 5rem; +} +.scroll-pl-24 { + scroll-padding-left: 6rem; +} +.scroll-pl-28 { + scroll-padding-left: 7rem; +} +.scroll-pl-3 { + scroll-padding-left: 0.75rem; +} +.scroll-pl-3\.5 { + scroll-padding-left: 0.875rem; +} +.scroll-pl-32 { + scroll-padding-left: 8rem; +} +.scroll-pl-36 { + scroll-padding-left: 9rem; +} +.scroll-pl-4 { + scroll-padding-left: 1rem; +} +.scroll-pl-40 { + scroll-padding-left: 10rem; +} +.scroll-pl-44 { + scroll-padding-left: 11rem; +} +.scroll-pl-48 { + scroll-padding-left: 12rem; +} +.scroll-pl-5 { + scroll-padding-left: 1.25rem; +} +.scroll-pl-52 { + scroll-padding-left: 13rem; +} +.scroll-pl-56 { + scroll-padding-left: 14rem; +} +.scroll-pl-6 { + scroll-padding-left: 1.5rem; +} +.scroll-pl-60 { + scroll-padding-left: 15rem; +} +.scroll-pl-64 { + scroll-padding-left: 16rem; +} +.scroll-pl-7 { + scroll-padding-left: 1.75rem; +} +.scroll-pl-72 { + scroll-padding-left: 18rem; +} +.scroll-pl-8 { + scroll-padding-left: 2rem; +} +.scroll-pl-80 { + scroll-padding-left: 20rem; +} +.scroll-pl-9 { + scroll-padding-left: 2.25rem; +} +.scroll-pl-96 { + scroll-padding-left: 24rem; +} +.scroll-pl-px { + scroll-padding-left: 1px; +} +.scroll-pr-0 { + scroll-padding-right: 0px; +} +.scroll-pr-0\.5 { + scroll-padding-right: 0.125rem; +} +.scroll-pr-1 { + scroll-padding-right: 0.25rem; +} +.scroll-pr-1\.5 { + scroll-padding-right: 0.375rem; +} +.scroll-pr-10 { + scroll-padding-right: 2.5rem; +} +.scroll-pr-11 { + scroll-padding-right: 2.75rem; +} +.scroll-pr-12 { + scroll-padding-right: 3rem; +} +.scroll-pr-14 { + scroll-padding-right: 3.5rem; +} +.scroll-pr-16 { + scroll-padding-right: 4rem; +} +.scroll-pr-2 { + scroll-padding-right: 0.5rem; +} +.scroll-pr-2\.5 { + scroll-padding-right: 0.625rem; +} +.scroll-pr-20 { + scroll-padding-right: 5rem; +} +.scroll-pr-24 { + scroll-padding-right: 6rem; +} +.scroll-pr-28 { + scroll-padding-right: 7rem; +} +.scroll-pr-3 { + scroll-padding-right: 0.75rem; +} +.scroll-pr-3\.5 { + scroll-padding-right: 0.875rem; +} +.scroll-pr-32 { + scroll-padding-right: 8rem; +} +.scroll-pr-36 { + scroll-padding-right: 9rem; +} +.scroll-pr-4 { + scroll-padding-right: 1rem; +} +.scroll-pr-40 { + scroll-padding-right: 10rem; +} +.scroll-pr-44 { + scroll-padding-right: 11rem; +} +.scroll-pr-48 { + scroll-padding-right: 12rem; +} +.scroll-pr-5 { + scroll-padding-right: 1.25rem; +} +.scroll-pr-52 { + scroll-padding-right: 13rem; +} +.scroll-pr-56 { + scroll-padding-right: 14rem; +} +.scroll-pr-6 { + scroll-padding-right: 1.5rem; +} +.scroll-pr-60 { + scroll-padding-right: 15rem; +} +.scroll-pr-64 { + scroll-padding-right: 16rem; +} +.scroll-pr-7 { + scroll-padding-right: 1.75rem; +} +.scroll-pr-72 { + scroll-padding-right: 18rem; +} +.scroll-pr-8 { + scroll-padding-right: 2rem; +} +.scroll-pr-80 { + scroll-padding-right: 20rem; +} +.scroll-pr-9 { + scroll-padding-right: 2.25rem; +} +.scroll-pr-96 { + scroll-padding-right: 24rem; +} +.scroll-pr-px { + scroll-padding-right: 1px; +} +.scroll-pt-0 { + scroll-padding-top: 0px; +} +.scroll-pt-0\.5 { + scroll-padding-top: 0.125rem; +} +.scroll-pt-1 { + scroll-padding-top: 0.25rem; +} +.scroll-pt-1\.5 { + scroll-padding-top: 0.375rem; +} +.scroll-pt-10 { + scroll-padding-top: 2.5rem; +} +.scroll-pt-11 { + scroll-padding-top: 2.75rem; +} +.scroll-pt-12 { + scroll-padding-top: 3rem; +} +.scroll-pt-14 { + scroll-padding-top: 3.5rem; +} +.scroll-pt-16 { + scroll-padding-top: 4rem; +} +.scroll-pt-2 { + scroll-padding-top: 0.5rem; +} +.scroll-pt-2\.5 { + scroll-padding-top: 0.625rem; +} +.scroll-pt-20 { + scroll-padding-top: 5rem; +} +.scroll-pt-24 { + scroll-padding-top: 6rem; +} +.scroll-pt-28 { + scroll-padding-top: 7rem; +} +.scroll-pt-3 { + scroll-padding-top: 0.75rem; +} +.scroll-pt-3\.5 { + scroll-padding-top: 0.875rem; +} +.scroll-pt-32 { + scroll-padding-top: 8rem; +} +.scroll-pt-36 { + scroll-padding-top: 9rem; +} +.scroll-pt-4 { + scroll-padding-top: 1rem; +} +.scroll-pt-40 { + scroll-padding-top: 10rem; +} +.scroll-pt-44 { + scroll-padding-top: 11rem; +} +.scroll-pt-48 { + scroll-padding-top: 12rem; +} +.scroll-pt-5 { + scroll-padding-top: 1.25rem; +} +.scroll-pt-52 { + scroll-padding-top: 13rem; +} +.scroll-pt-56 { + scroll-padding-top: 14rem; +} +.scroll-pt-6 { + scroll-padding-top: 1.5rem; +} +.scroll-pt-60 { + scroll-padding-top: 15rem; +} +.scroll-pt-64 { + scroll-padding-top: 16rem; +} +.scroll-pt-7 { + scroll-padding-top: 1.75rem; +} +.scroll-pt-72 { + scroll-padding-top: 18rem; +} +.scroll-pt-8 { + scroll-padding-top: 2rem; +} +.scroll-pt-80 { + scroll-padding-top: 20rem; +} +.scroll-pt-9 { + scroll-padding-top: 2.25rem; +} +.scroll-pt-96 { + scroll-padding-top: 24rem; +} +.scroll-pt-px { + scroll-padding-top: 1px; +} +.appearance-none { + appearance: none; +} +.columns-1 { + columns: 1; +} +.columns-10 { + columns: 10; +} +.columns-11 { + columns: 11; +} +.columns-12 { + columns: 12; +} +.columns-2 { + columns: 2; +} +.columns-2xl { + columns: 42rem; +} +.columns-2xs { + columns: 18rem; +} +.columns-3 { + columns: 3; +} +.columns-3xl { + columns: 48rem; +} +.columns-3xs { + columns: 16rem; +} +.columns-4 { + columns: 4; +} +.columns-4xl { + columns: 56rem; +} +.columns-5 { + columns: 5; +} +.columns-5xl { + columns: 64rem; +} +.columns-6 { + columns: 6; +} +.columns-6xl { + columns: 72rem; +} +.columns-7 { + columns: 7; +} +.columns-7xl { + columns: 80rem; +} +.columns-8 { + columns: 8; +} +.columns-9 { + columns: 9; +} +.columns-auto { + columns: auto; +} +.columns-lg { + columns: 32rem; +} +.columns-md { + columns: 28rem; +} +.columns-sm { + columns: 24rem; +} +.columns-xl { + columns: 36rem; +} +.columns-xs { + columns: 20rem; +} +.break-before-column { + break-before: column; +} +.break-inside-avoid-column { + break-inside: avoid-column; +} +.break-after-column { + break-after: column; +} +.auto-cols-auto { + grid-auto-columns: auto; +} +.auto-cols-fr { + grid-auto-columns: minmax(0, 1fr); +} +.auto-cols-max { + grid-auto-columns: max-content; +} +.auto-cols-min { + grid-auto-columns: min-content; +} +.grid-flow-col { + grid-auto-flow: column; +} +.grid-flow-col-dense { + grid-auto-flow: column dense; +} +.grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); +} +.grid-cols-10 { + grid-template-columns: repeat(10, minmax(0, 1fr)); +} +.grid-cols-11 { + grid-template-columns: repeat(11, minmax(0, 1fr)); +} +.grid-cols-12 { + grid-template-columns: repeat(12, minmax(0, 1fr)); +} +.grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} +.grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); +} +.grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); +} +.grid-cols-5 { + grid-template-columns: repeat(5, minmax(0, 1fr)); +} +.grid-cols-6 { + grid-template-columns: repeat(6, minmax(0, 1fr)); +} +.grid-cols-7 { + grid-template-columns: repeat(7, minmax(0, 1fr)); +} +.grid-cols-8 { + grid-template-columns: repeat(8, minmax(0, 1fr)); +} +.grid-cols-9 { + grid-template-columns: repeat(9, minmax(0, 1fr)); +} +.grid-cols-none { + grid-template-columns: none; +} +.flex-row { + flex-direction: row; +} +.flex-row-reverse { + flex-direction: row-reverse; +} +.flex-col { + flex-direction: column; +} +.flex-col-reverse { + flex-direction: column-reverse; +} +.flex-wrap { + flex-wrap: wrap; +} +.flex-nowrap { + flex-wrap: nowrap; +} +.items-start { + align-items: flex-start; +} +.items-center { + align-items: center; +} +.justify-start { + justify-content: flex-start; +} +.justify-end { + justify-content: flex-end; +} +.justify-center { + justify-content: center; +} +.justify-between { + justify-content: space-between; +} +.gap-2 { + gap: 0.5rem; +} +.gap-x-2 { + column-gap: 0.5rem; +} +.space-x-1 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(0.25rem * var(--tw-space-x-reverse)); + margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse))); +} +.divide-y > :not([hidden]) ~ :not([hidden]) { + --tw-divide-y-reverse: 0; + border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); + border-bottom-width: calc(1px * var(--tw-divide-y-reverse)); +} +.divide-solid > :not([hidden]) ~ :not([hidden]) { + border-style: solid; +} +.divide-Occupation_du_sol-primary > :not([hidden]) ~ :not([hidden]) { + border-color: var(--Occupation_du_sol-primary); +} +.divide-Occupation_du_sol-secondary > :not([hidden]) ~ :not([hidden]) { + border-color: var(--Occupation_du_sol-secondary); +} +.divide-Occupation_du_sol-tertiary > :not([hidden]) ~ :not([hidden]) { + border-color: var(--Occupation_du_sol-tertiary); +} +.divide-gray-400 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(156 163 175 / var(--tw-divide-opacity)); +} +.divide-violet-100 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(237 233 254 / var(--tw-divide-opacity)); +} +.divide-violet-100\/0 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(237 233 254 / 0); +} +.divide-violet-100\/10 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(237 233 254 / 0.1); +} +.divide-violet-100\/100 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(237 233 254 / 1); +} +.divide-violet-100\/20 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(237 233 254 / 0.2); +} +.divide-violet-100\/25 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(237 233 254 / 0.25); +} +.divide-violet-100\/30 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(237 233 254 / 0.3); +} +.divide-violet-100\/40 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(237 233 254 / 0.4); +} +.divide-violet-100\/5 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(237 233 254 / 0.05); +} +.divide-violet-100\/50 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(237 233 254 / 0.5); +} +.divide-violet-100\/60 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(237 233 254 / 0.6); +} +.divide-violet-100\/70 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(237 233 254 / 0.7); +} +.divide-violet-100\/75 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(237 233 254 / 0.75); +} +.divide-violet-100\/80 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(237 233 254 / 0.8); +} +.divide-violet-100\/90 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(237 233 254 / 0.9); +} +.divide-violet-100\/95 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(237 233 254 / 0.95); +} +.divide-violet-200 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(221 214 254 / var(--tw-divide-opacity)); +} +.divide-violet-200\/0 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(221 214 254 / 0); +} +.divide-violet-200\/10 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(221 214 254 / 0.1); +} +.divide-violet-200\/100 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(221 214 254 / 1); +} +.divide-violet-200\/20 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(221 214 254 / 0.2); +} +.divide-violet-200\/25 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(221 214 254 / 0.25); +} +.divide-violet-200\/30 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(221 214 254 / 0.3); +} +.divide-violet-200\/40 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(221 214 254 / 0.4); +} +.divide-violet-200\/5 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(221 214 254 / 0.05); +} +.divide-violet-200\/50 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(221 214 254 / 0.5); +} +.divide-violet-200\/60 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(221 214 254 / 0.6); +} +.divide-violet-200\/70 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(221 214 254 / 0.7); +} +.divide-violet-200\/75 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(221 214 254 / 0.75); +} +.divide-violet-200\/80 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(221 214 254 / 0.8); +} +.divide-violet-200\/90 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(221 214 254 / 0.9); +} +.divide-violet-200\/95 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(221 214 254 / 0.95); +} +.divide-violet-300 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(196 181 253 / var(--tw-divide-opacity)); +} +.divide-violet-300\/0 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(196 181 253 / 0); +} +.divide-violet-300\/10 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(196 181 253 / 0.1); +} +.divide-violet-300\/100 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(196 181 253 / 1); +} +.divide-violet-300\/20 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(196 181 253 / 0.2); +} +.divide-violet-300\/25 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(196 181 253 / 0.25); +} +.divide-violet-300\/30 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(196 181 253 / 0.3); +} +.divide-violet-300\/40 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(196 181 253 / 0.4); +} +.divide-violet-300\/5 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(196 181 253 / 0.05); +} +.divide-violet-300\/50 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(196 181 253 / 0.5); +} +.divide-violet-300\/60 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(196 181 253 / 0.6); +} +.divide-violet-300\/70 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(196 181 253 / 0.7); +} +.divide-violet-300\/75 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(196 181 253 / 0.75); +} +.divide-violet-300\/80 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(196 181 253 / 0.8); +} +.divide-violet-300\/90 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(196 181 253 / 0.9); +} +.divide-violet-300\/95 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(196 181 253 / 0.95); +} +.divide-violet-400 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(167 139 250 / var(--tw-divide-opacity)); +} +.divide-violet-400\/0 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(167 139 250 / 0); +} +.divide-violet-400\/10 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(167 139 250 / 0.1); +} +.divide-violet-400\/100 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(167 139 250 / 1); +} +.divide-violet-400\/20 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(167 139 250 / 0.2); +} +.divide-violet-400\/25 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(167 139 250 / 0.25); +} +.divide-violet-400\/30 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(167 139 250 / 0.3); +} +.divide-violet-400\/40 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(167 139 250 / 0.4); +} +.divide-violet-400\/5 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(167 139 250 / 0.05); +} +.divide-violet-400\/50 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(167 139 250 / 0.5); +} +.divide-violet-400\/60 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(167 139 250 / 0.6); +} +.divide-violet-400\/70 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(167 139 250 / 0.7); +} +.divide-violet-400\/75 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(167 139 250 / 0.75); +} +.divide-violet-400\/80 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(167 139 250 / 0.8); +} +.divide-violet-400\/90 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(167 139 250 / 0.9); +} +.divide-violet-400\/95 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(167 139 250 / 0.95); +} +.divide-violet-50 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(245 243 255 / var(--tw-divide-opacity)); +} +.divide-violet-50\/0 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(245 243 255 / 0); +} +.divide-violet-50\/10 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(245 243 255 / 0.1); +} +.divide-violet-50\/100 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(245 243 255 / 1); +} +.divide-violet-50\/20 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(245 243 255 / 0.2); +} +.divide-violet-50\/25 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(245 243 255 / 0.25); +} +.divide-violet-50\/30 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(245 243 255 / 0.3); +} +.divide-violet-50\/40 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(245 243 255 / 0.4); +} +.divide-violet-50\/5 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(245 243 255 / 0.05); +} +.divide-violet-50\/50 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(245 243 255 / 0.5); +} +.divide-violet-50\/60 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(245 243 255 / 0.6); +} +.divide-violet-50\/70 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(245 243 255 / 0.7); +} +.divide-violet-50\/75 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(245 243 255 / 0.75); +} +.divide-violet-50\/80 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(245 243 255 / 0.8); +} +.divide-violet-50\/90 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(245 243 255 / 0.9); +} +.divide-violet-50\/95 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(245 243 255 / 0.95); +} +.divide-violet-500 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(139 92 246 / var(--tw-divide-opacity)); +} +.divide-violet-500\/0 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(139 92 246 / 0); +} +.divide-violet-500\/10 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(139 92 246 / 0.1); +} +.divide-violet-500\/100 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(139 92 246 / 1); +} +.divide-violet-500\/20 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(139 92 246 / 0.2); +} +.divide-violet-500\/25 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(139 92 246 / 0.25); +} +.divide-violet-500\/30 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(139 92 246 / 0.3); +} +.divide-violet-500\/40 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(139 92 246 / 0.4); +} +.divide-violet-500\/5 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(139 92 246 / 0.05); +} +.divide-violet-500\/50 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(139 92 246 / 0.5); +} +.divide-violet-500\/60 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(139 92 246 / 0.6); +} +.divide-violet-500\/70 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(139 92 246 / 0.7); +} +.divide-violet-500\/75 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(139 92 246 / 0.75); +} +.divide-violet-500\/80 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(139 92 246 / 0.8); +} +.divide-violet-500\/90 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(139 92 246 / 0.9); +} +.divide-violet-500\/95 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(139 92 246 / 0.95); +} +.divide-violet-600 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(124 58 237 / var(--tw-divide-opacity)); +} +.divide-violet-600\/0 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(124 58 237 / 0); +} +.divide-violet-600\/10 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(124 58 237 / 0.1); +} +.divide-violet-600\/100 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(124 58 237 / 1); +} +.divide-violet-600\/20 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(124 58 237 / 0.2); +} +.divide-violet-600\/25 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(124 58 237 / 0.25); +} +.divide-violet-600\/30 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(124 58 237 / 0.3); +} +.divide-violet-600\/40 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(124 58 237 / 0.4); +} +.divide-violet-600\/5 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(124 58 237 / 0.05); +} +.divide-violet-600\/50 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(124 58 237 / 0.5); +} +.divide-violet-600\/60 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(124 58 237 / 0.6); +} +.divide-violet-600\/70 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(124 58 237 / 0.7); +} +.divide-violet-600\/75 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(124 58 237 / 0.75); +} +.divide-violet-600\/80 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(124 58 237 / 0.8); +} +.divide-violet-600\/90 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(124 58 237 / 0.9); +} +.divide-violet-600\/95 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(124 58 237 / 0.95); +} +.divide-violet-700 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(109 40 217 / var(--tw-divide-opacity)); +} +.divide-violet-700\/0 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(109 40 217 / 0); +} +.divide-violet-700\/10 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(109 40 217 / 0.1); +} +.divide-violet-700\/100 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(109 40 217 / 1); +} +.divide-violet-700\/20 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(109 40 217 / 0.2); +} +.divide-violet-700\/25 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(109 40 217 / 0.25); +} +.divide-violet-700\/30 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(109 40 217 / 0.3); +} +.divide-violet-700\/40 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(109 40 217 / 0.4); +} +.divide-violet-700\/5 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(109 40 217 / 0.05); +} +.divide-violet-700\/50 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(109 40 217 / 0.5); +} +.divide-violet-700\/60 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(109 40 217 / 0.6); +} +.divide-violet-700\/70 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(109 40 217 / 0.7); +} +.divide-violet-700\/75 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(109 40 217 / 0.75); +} +.divide-violet-700\/80 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(109 40 217 / 0.8); +} +.divide-violet-700\/90 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(109 40 217 / 0.9); +} +.divide-violet-700\/95 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(109 40 217 / 0.95); +} +.divide-violet-800 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(91 33 182 / var(--tw-divide-opacity)); +} +.divide-violet-800\/0 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(91 33 182 / 0); +} +.divide-violet-800\/10 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(91 33 182 / 0.1); +} +.divide-violet-800\/100 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(91 33 182 / 1); +} +.divide-violet-800\/20 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(91 33 182 / 0.2); +} +.divide-violet-800\/25 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(91 33 182 / 0.25); +} +.divide-violet-800\/30 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(91 33 182 / 0.3); +} +.divide-violet-800\/40 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(91 33 182 / 0.4); +} +.divide-violet-800\/5 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(91 33 182 / 0.05); +} +.divide-violet-800\/50 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(91 33 182 / 0.5); +} +.divide-violet-800\/60 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(91 33 182 / 0.6); +} +.divide-violet-800\/70 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(91 33 182 / 0.7); +} +.divide-violet-800\/75 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(91 33 182 / 0.75); +} +.divide-violet-800\/80 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(91 33 182 / 0.8); +} +.divide-violet-800\/90 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(91 33 182 / 0.9); +} +.divide-violet-800\/95 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(91 33 182 / 0.95); +} +.divide-violet-900 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(76 29 149 / var(--tw-divide-opacity)); +} +.divide-violet-900\/0 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(76 29 149 / 0); +} +.divide-violet-900\/10 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(76 29 149 / 0.1); +} +.divide-violet-900\/100 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(76 29 149 / 1); +} +.divide-violet-900\/20 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(76 29 149 / 0.2); +} +.divide-violet-900\/25 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(76 29 149 / 0.25); +} +.divide-violet-900\/30 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(76 29 149 / 0.3); +} +.divide-violet-900\/40 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(76 29 149 / 0.4); +} +.divide-violet-900\/5 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(76 29 149 / 0.05); +} +.divide-violet-900\/50 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(76 29 149 / 0.5); +} +.divide-violet-900\/60 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(76 29 149 / 0.6); +} +.divide-violet-900\/70 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(76 29 149 / 0.7); +} +.divide-violet-900\/75 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(76 29 149 / 0.75); +} +.divide-violet-900\/80 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(76 29 149 / 0.8); +} +.divide-violet-900\/90 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(76 29 149 / 0.9); +} +.divide-violet-900\/95 > :not([hidden]) ~ :not([hidden]) { + border-color: rgb(76 29 149 / 0.95); +} +.self-start { + align-self: flex-start; +} +.overflow-auto { + overflow: auto; +} +.overflow-hidden { + overflow: hidden; +} +.overflow-scroll { + overflow: scroll; +} +.overflow-y-auto { + overflow-y: auto; +} +.overflow-x-hidden { + overflow-x: hidden; +} +.overflow-x-scroll { + overflow-x: scroll; +} +.overflow-y-scroll { + overflow-y: scroll; +} +.overscroll-auto { + overscroll-behavior: auto; +} +.overscroll-contain { + overscroll-behavior: contain; +} +.overscroll-none { + overscroll-behavior: none; +} +.overscroll-y-auto { + overscroll-behavior-y: auto; +} +.overscroll-y-contain { + overscroll-behavior-y: contain; +} +.overscroll-y-none { + overscroll-behavior-y: none; +} +.overscroll-x-auto { + overscroll-behavior-x: auto; +} +.overscroll-x-contain { + overscroll-behavior-x: contain; +} +.overscroll-x-none { + overscroll-behavior-x: none; +} +.scroll-auto { + scroll-behavior: auto; +} +.scroll-smooth { + scroll-behavior: smooth; +} +.whitespace-nowrap { + white-space: nowrap; +} +.break-words { + overflow-wrap: break-word; +} +.rounded-lg { + border-radius: 0.5rem; +} +.rounded-sm { + border-radius: 0.125rem; +} +.border { + border-width: 1px; +} +.border-2 { + border-width: 2px; +} +.border-x { + border-left-width: 1px; + border-right-width: 1px; +} +.border-y { + border-top-width: 1px; + border-bottom-width: 1px; +} +.border-b-\[1px\] { + border-bottom-width: 1px; +} +.border-l-\[1px\] { + border-left-width: 1px; +} +.border-t-\[1px\] { + border-top-width: 1px; +} +.border-solid { + border-style: solid; +} +.border-dotted { + border-style: dotted; +} +.border-hidden { + border-style: hidden; +} +.border-Occupation_du_sol-primary { + border-color: var(--Occupation_du_sol-primary); +} +.border-Occupation_du_sol-secondary { + border-color: var(--Occupation_du_sol-secondary); +} +.border-Occupation_du_sol-tertiary { + border-color: var(--Occupation_du_sol-tertiary); +} +.border-black { + --tw-border-opacity: 1; + border-color: rgb(0 0 0 / var(--tw-border-opacity)); +} +.border-gray-400 { + --tw-border-opacity: 1; + border-color: rgb(156 163 175 / var(--tw-border-opacity)); +} +.border-red-500 { + --tw-border-opacity: 1; + border-color: rgb(239 68 68 / var(--tw-border-opacity)); +} +.border-slate-300 { + --tw-border-opacity: 1; + border-color: rgb(203 213 225 / var(--tw-border-opacity)); +} +.border-stone-300 { + --tw-border-opacity: 1; + border-color: rgb(214 211 209 / var(--tw-border-opacity)); +} +.border-violet-100 { + --tw-border-opacity: 1; + border-color: rgb(237 233 254 / var(--tw-border-opacity)); +} +.border-violet-100\/0 { + border-color: rgb(237 233 254 / 0); +} +.border-violet-100\/10 { + border-color: rgb(237 233 254 / 0.1); +} +.border-violet-100\/100 { + border-color: rgb(237 233 254 / 1); +} +.border-violet-100\/20 { + border-color: rgb(237 233 254 / 0.2); +} +.border-violet-100\/25 { + border-color: rgb(237 233 254 / 0.25); +} +.border-violet-100\/30 { + border-color: rgb(237 233 254 / 0.3); +} +.border-violet-100\/40 { + border-color: rgb(237 233 254 / 0.4); +} +.border-violet-100\/5 { + border-color: rgb(237 233 254 / 0.05); +} +.border-violet-100\/50 { + border-color: rgb(237 233 254 / 0.5); +} +.border-violet-100\/60 { + border-color: rgb(237 233 254 / 0.6); +} +.border-violet-100\/70 { + border-color: rgb(237 233 254 / 0.7); +} +.border-violet-100\/75 { + border-color: rgb(237 233 254 / 0.75); +} +.border-violet-100\/80 { + border-color: rgb(237 233 254 / 0.8); +} +.border-violet-100\/90 { + border-color: rgb(237 233 254 / 0.9); +} +.border-violet-100\/95 { + border-color: rgb(237 233 254 / 0.95); +} +.border-violet-200 { + --tw-border-opacity: 1; + border-color: rgb(221 214 254 / var(--tw-border-opacity)); +} +.border-violet-200\/0 { + border-color: rgb(221 214 254 / 0); +} +.border-violet-200\/10 { + border-color: rgb(221 214 254 / 0.1); +} +.border-violet-200\/100 { + border-color: rgb(221 214 254 / 1); +} +.border-violet-200\/20 { + border-color: rgb(221 214 254 / 0.2); +} +.border-violet-200\/25 { + border-color: rgb(221 214 254 / 0.25); +} +.border-violet-200\/30 { + border-color: rgb(221 214 254 / 0.3); +} +.border-violet-200\/40 { + border-color: rgb(221 214 254 / 0.4); +} +.border-violet-200\/5 { + border-color: rgb(221 214 254 / 0.05); +} +.border-violet-200\/50 { + border-color: rgb(221 214 254 / 0.5); +} +.border-violet-200\/60 { + border-color: rgb(221 214 254 / 0.6); +} +.border-violet-200\/70 { + border-color: rgb(221 214 254 / 0.7); +} +.border-violet-200\/75 { + border-color: rgb(221 214 254 / 0.75); +} +.border-violet-200\/80 { + border-color: rgb(221 214 254 / 0.8); +} +.border-violet-200\/90 { + border-color: rgb(221 214 254 / 0.9); +} +.border-violet-200\/95 { + border-color: rgb(221 214 254 / 0.95); +} +.border-violet-300 { + --tw-border-opacity: 1; + border-color: rgb(196 181 253 / var(--tw-border-opacity)); +} +.border-violet-300\/0 { + border-color: rgb(196 181 253 / 0); +} +.border-violet-300\/10 { + border-color: rgb(196 181 253 / 0.1); +} +.border-violet-300\/100 { + border-color: rgb(196 181 253 / 1); +} +.border-violet-300\/20 { + border-color: rgb(196 181 253 / 0.2); +} +.border-violet-300\/25 { + border-color: rgb(196 181 253 / 0.25); +} +.border-violet-300\/30 { + border-color: rgb(196 181 253 / 0.3); +} +.border-violet-300\/40 { + border-color: rgb(196 181 253 / 0.4); +} +.border-violet-300\/5 { + border-color: rgb(196 181 253 / 0.05); +} +.border-violet-300\/50 { + border-color: rgb(196 181 253 / 0.5); +} +.border-violet-300\/60 { + border-color: rgb(196 181 253 / 0.6); +} +.border-violet-300\/70 { + border-color: rgb(196 181 253 / 0.7); +} +.border-violet-300\/75 { + border-color: rgb(196 181 253 / 0.75); +} +.border-violet-300\/80 { + border-color: rgb(196 181 253 / 0.8); +} +.border-violet-300\/90 { + border-color: rgb(196 181 253 / 0.9); +} +.border-violet-300\/95 { + border-color: rgb(196 181 253 / 0.95); +} +.border-violet-400 { + --tw-border-opacity: 1; + border-color: rgb(167 139 250 / var(--tw-border-opacity)); +} +.border-violet-400\/0 { + border-color: rgb(167 139 250 / 0); +} +.border-violet-400\/10 { + border-color: rgb(167 139 250 / 0.1); +} +.border-violet-400\/100 { + border-color: rgb(167 139 250 / 1); +} +.border-violet-400\/20 { + border-color: rgb(167 139 250 / 0.2); +} +.border-violet-400\/25 { + border-color: rgb(167 139 250 / 0.25); +} +.border-violet-400\/30 { + border-color: rgb(167 139 250 / 0.3); +} +.border-violet-400\/40 { + border-color: rgb(167 139 250 / 0.4); +} +.border-violet-400\/5 { + border-color: rgb(167 139 250 / 0.05); +} +.border-violet-400\/50 { + border-color: rgb(167 139 250 / 0.5); +} +.border-violet-400\/60 { + border-color: rgb(167 139 250 / 0.6); +} +.border-violet-400\/70 { + border-color: rgb(167 139 250 / 0.7); +} +.border-violet-400\/75 { + border-color: rgb(167 139 250 / 0.75); +} +.border-violet-400\/80 { + border-color: rgb(167 139 250 / 0.8); +} +.border-violet-400\/90 { + border-color: rgb(167 139 250 / 0.9); +} +.border-violet-400\/95 { + border-color: rgb(167 139 250 / 0.95); +} +.border-violet-50 { + --tw-border-opacity: 1; + border-color: rgb(245 243 255 / var(--tw-border-opacity)); +} +.border-violet-50\/0 { + border-color: rgb(245 243 255 / 0); +} +.border-violet-50\/10 { + border-color: rgb(245 243 255 / 0.1); +} +.border-violet-50\/100 { + border-color: rgb(245 243 255 / 1); +} +.border-violet-50\/20 { + border-color: rgb(245 243 255 / 0.2); +} +.border-violet-50\/25 { + border-color: rgb(245 243 255 / 0.25); +} +.border-violet-50\/30 { + border-color: rgb(245 243 255 / 0.3); +} +.border-violet-50\/40 { + border-color: rgb(245 243 255 / 0.4); +} +.border-violet-50\/5 { + border-color: rgb(245 243 255 / 0.05); +} +.border-violet-50\/50 { + border-color: rgb(245 243 255 / 0.5); +} +.border-violet-50\/60 { + border-color: rgb(245 243 255 / 0.6); +} +.border-violet-50\/70 { + border-color: rgb(245 243 255 / 0.7); +} +.border-violet-50\/75 { + border-color: rgb(245 243 255 / 0.75); +} +.border-violet-50\/80 { + border-color: rgb(245 243 255 / 0.8); +} +.border-violet-50\/90 { + border-color: rgb(245 243 255 / 0.9); +} +.border-violet-50\/95 { + border-color: rgb(245 243 255 / 0.95); +} +.border-violet-500 { + --tw-border-opacity: 1; + border-color: rgb(139 92 246 / var(--tw-border-opacity)); +} +.border-violet-500\/0 { + border-color: rgb(139 92 246 / 0); +} +.border-violet-500\/10 { + border-color: rgb(139 92 246 / 0.1); +} +.border-violet-500\/100 { + border-color: rgb(139 92 246 / 1); +} +.border-violet-500\/20 { + border-color: rgb(139 92 246 / 0.2); +} +.border-violet-500\/25 { + border-color: rgb(139 92 246 / 0.25); +} +.border-violet-500\/30 { + border-color: rgb(139 92 246 / 0.3); +} +.border-violet-500\/40 { + border-color: rgb(139 92 246 / 0.4); +} +.border-violet-500\/5 { + border-color: rgb(139 92 246 / 0.05); +} +.border-violet-500\/50 { + border-color: rgb(139 92 246 / 0.5); +} +.border-violet-500\/60 { + border-color: rgb(139 92 246 / 0.6); +} +.border-violet-500\/70 { + border-color: rgb(139 92 246 / 0.7); +} +.border-violet-500\/75 { + border-color: rgb(139 92 246 / 0.75); +} +.border-violet-500\/80 { + border-color: rgb(139 92 246 / 0.8); +} +.border-violet-500\/90 { + border-color: rgb(139 92 246 / 0.9); +} +.border-violet-500\/95 { + border-color: rgb(139 92 246 / 0.95); +} +.border-violet-600 { + --tw-border-opacity: 1; + border-color: rgb(124 58 237 / var(--tw-border-opacity)); +} +.border-violet-600\/0 { + border-color: rgb(124 58 237 / 0); +} +.border-violet-600\/10 { + border-color: rgb(124 58 237 / 0.1); +} +.border-violet-600\/100 { + border-color: rgb(124 58 237 / 1); +} +.border-violet-600\/20 { + border-color: rgb(124 58 237 / 0.2); +} +.border-violet-600\/25 { + border-color: rgb(124 58 237 / 0.25); +} +.border-violet-600\/30 { + border-color: rgb(124 58 237 / 0.3); +} +.border-violet-600\/40 { + border-color: rgb(124 58 237 / 0.4); +} +.border-violet-600\/5 { + border-color: rgb(124 58 237 / 0.05); +} +.border-violet-600\/50 { + border-color: rgb(124 58 237 / 0.5); +} +.border-violet-600\/60 { + border-color: rgb(124 58 237 / 0.6); +} +.border-violet-600\/70 { + border-color: rgb(124 58 237 / 0.7); +} +.border-violet-600\/75 { + border-color: rgb(124 58 237 / 0.75); +} +.border-violet-600\/80 { + border-color: rgb(124 58 237 / 0.8); +} +.border-violet-600\/90 { + border-color: rgb(124 58 237 / 0.9); +} +.border-violet-600\/95 { + border-color: rgb(124 58 237 / 0.95); +} +.border-violet-700 { + --tw-border-opacity: 1; + border-color: rgb(109 40 217 / var(--tw-border-opacity)); +} +.border-violet-700\/0 { + border-color: rgb(109 40 217 / 0); +} +.border-violet-700\/10 { + border-color: rgb(109 40 217 / 0.1); +} +.border-violet-700\/100 { + border-color: rgb(109 40 217 / 1); +} +.border-violet-700\/20 { + border-color: rgb(109 40 217 / 0.2); +} +.border-violet-700\/25 { + border-color: rgb(109 40 217 / 0.25); +} +.border-violet-700\/30 { + border-color: rgb(109 40 217 / 0.3); +} +.border-violet-700\/40 { + border-color: rgb(109 40 217 / 0.4); +} +.border-violet-700\/5 { + border-color: rgb(109 40 217 / 0.05); +} +.border-violet-700\/50 { + border-color: rgb(109 40 217 / 0.5); +} +.border-violet-700\/60 { + border-color: rgb(109 40 217 / 0.6); +} +.border-violet-700\/70 { + border-color: rgb(109 40 217 / 0.7); +} +.border-violet-700\/75 { + border-color: rgb(109 40 217 / 0.75); +} +.border-violet-700\/80 { + border-color: rgb(109 40 217 / 0.8); +} +.border-violet-700\/90 { + border-color: rgb(109 40 217 / 0.9); +} +.border-violet-700\/95 { + border-color: rgb(109 40 217 / 0.95); +} +.border-violet-800 { + --tw-border-opacity: 1; + border-color: rgb(91 33 182 / var(--tw-border-opacity)); +} +.border-violet-800\/0 { + border-color: rgb(91 33 182 / 0); +} +.border-violet-800\/10 { + border-color: rgb(91 33 182 / 0.1); +} +.border-violet-800\/100 { + border-color: rgb(91 33 182 / 1); +} +.border-violet-800\/20 { + border-color: rgb(91 33 182 / 0.2); +} +.border-violet-800\/25 { + border-color: rgb(91 33 182 / 0.25); +} +.border-violet-800\/30 { + border-color: rgb(91 33 182 / 0.3); +} +.border-violet-800\/40 { + border-color: rgb(91 33 182 / 0.4); +} +.border-violet-800\/5 { + border-color: rgb(91 33 182 / 0.05); +} +.border-violet-800\/50 { + border-color: rgb(91 33 182 / 0.5); +} +.border-violet-800\/60 { + border-color: rgb(91 33 182 / 0.6); +} +.border-violet-800\/70 { + border-color: rgb(91 33 182 / 0.7); +} +.border-violet-800\/75 { + border-color: rgb(91 33 182 / 0.75); +} +.border-violet-800\/80 { + border-color: rgb(91 33 182 / 0.8); +} +.border-violet-800\/90 { + border-color: rgb(91 33 182 / 0.9); +} +.border-violet-800\/95 { + border-color: rgb(91 33 182 / 0.95); +} +.border-violet-900 { + --tw-border-opacity: 1; + border-color: rgb(76 29 149 / var(--tw-border-opacity)); +} +.border-violet-900\/0 { + border-color: rgb(76 29 149 / 0); +} +.border-violet-900\/10 { + border-color: rgb(76 29 149 / 0.1); +} +.border-violet-900\/100 { + border-color: rgb(76 29 149 / 1); +} +.border-violet-900\/20 { + border-color: rgb(76 29 149 / 0.2); +} +.border-violet-900\/25 { + border-color: rgb(76 29 149 / 0.25); +} +.border-violet-900\/30 { + border-color: rgb(76 29 149 / 0.3); +} +.border-violet-900\/40 { + border-color: rgb(76 29 149 / 0.4); +} +.border-violet-900\/5 { + border-color: rgb(76 29 149 / 0.05); +} +.border-violet-900\/50 { + border-color: rgb(76 29 149 / 0.5); +} +.border-violet-900\/60 { + border-color: rgb(76 29 149 / 0.6); +} +.border-violet-900\/70 { + border-color: rgb(76 29 149 / 0.7); +} +.border-violet-900\/75 { + border-color: rgb(76 29 149 / 0.75); +} +.border-violet-900\/80 { + border-color: rgb(76 29 149 / 0.8); +} +.border-violet-900\/90 { + border-color: rgb(76 29 149 / 0.9); +} +.border-violet-900\/95 { + border-color: rgb(76 29 149 / 0.95); +} +.border-x-Occupation_du_sol-primary { + border-left-color: var(--Occupation_du_sol-primary); + border-right-color: var(--Occupation_du_sol-primary); +} +.border-x-Occupation_du_sol-secondary { + border-left-color: var(--Occupation_du_sol-secondary); + border-right-color: var(--Occupation_du_sol-secondary); +} +.border-x-Occupation_du_sol-tertiary { + border-left-color: var(--Occupation_du_sol-tertiary); + border-right-color: var(--Occupation_du_sol-tertiary); +} +.border-x-violet-100 { + --tw-border-opacity: 1; + border-left-color: rgb(237 233 254 / var(--tw-border-opacity)); + border-right-color: rgb(237 233 254 / var(--tw-border-opacity)); +} +.border-x-violet-100\/0 { + border-left-color: rgb(237 233 254 / 0); + border-right-color: rgb(237 233 254 / 0); +} +.border-x-violet-100\/10 { + border-left-color: rgb(237 233 254 / 0.1); + border-right-color: rgb(237 233 254 / 0.1); +} +.border-x-violet-100\/100 { + border-left-color: rgb(237 233 254 / 1); + border-right-color: rgb(237 233 254 / 1); +} +.border-x-violet-100\/20 { + border-left-color: rgb(237 233 254 / 0.2); + border-right-color: rgb(237 233 254 / 0.2); +} +.border-x-violet-100\/25 { + border-left-color: rgb(237 233 254 / 0.25); + border-right-color: rgb(237 233 254 / 0.25); +} +.border-x-violet-100\/30 { + border-left-color: rgb(237 233 254 / 0.3); + border-right-color: rgb(237 233 254 / 0.3); +} +.border-x-violet-100\/40 { + border-left-color: rgb(237 233 254 / 0.4); + border-right-color: rgb(237 233 254 / 0.4); +} +.border-x-violet-100\/5 { + border-left-color: rgb(237 233 254 / 0.05); + border-right-color: rgb(237 233 254 / 0.05); +} +.border-x-violet-100\/50 { + border-left-color: rgb(237 233 254 / 0.5); + border-right-color: rgb(237 233 254 / 0.5); +} +.border-x-violet-100\/60 { + border-left-color: rgb(237 233 254 / 0.6); + border-right-color: rgb(237 233 254 / 0.6); +} +.border-x-violet-100\/70 { + border-left-color: rgb(237 233 254 / 0.7); + border-right-color: rgb(237 233 254 / 0.7); +} +.border-x-violet-100\/75 { + border-left-color: rgb(237 233 254 / 0.75); + border-right-color: rgb(237 233 254 / 0.75); +} +.border-x-violet-100\/80 { + border-left-color: rgb(237 233 254 / 0.8); + border-right-color: rgb(237 233 254 / 0.8); +} +.border-x-violet-100\/90 { + border-left-color: rgb(237 233 254 / 0.9); + border-right-color: rgb(237 233 254 / 0.9); +} +.border-x-violet-100\/95 { + border-left-color: rgb(237 233 254 / 0.95); + border-right-color: rgb(237 233 254 / 0.95); +} +.border-x-violet-200 { + --tw-border-opacity: 1; + border-left-color: rgb(221 214 254 / var(--tw-border-opacity)); + border-right-color: rgb(221 214 254 / var(--tw-border-opacity)); +} +.border-x-violet-200\/0 { + border-left-color: rgb(221 214 254 / 0); + border-right-color: rgb(221 214 254 / 0); +} +.border-x-violet-200\/10 { + border-left-color: rgb(221 214 254 / 0.1); + border-right-color: rgb(221 214 254 / 0.1); +} +.border-x-violet-200\/100 { + border-left-color: rgb(221 214 254 / 1); + border-right-color: rgb(221 214 254 / 1); +} +.border-x-violet-200\/20 { + border-left-color: rgb(221 214 254 / 0.2); + border-right-color: rgb(221 214 254 / 0.2); +} +.border-x-violet-200\/25 { + border-left-color: rgb(221 214 254 / 0.25); + border-right-color: rgb(221 214 254 / 0.25); +} +.border-x-violet-200\/30 { + border-left-color: rgb(221 214 254 / 0.3); + border-right-color: rgb(221 214 254 / 0.3); +} +.border-x-violet-200\/40 { + border-left-color: rgb(221 214 254 / 0.4); + border-right-color: rgb(221 214 254 / 0.4); +} +.border-x-violet-200\/5 { + border-left-color: rgb(221 214 254 / 0.05); + border-right-color: rgb(221 214 254 / 0.05); +} +.border-x-violet-200\/50 { + border-left-color: rgb(221 214 254 / 0.5); + border-right-color: rgb(221 214 254 / 0.5); +} +.border-x-violet-200\/60 { + border-left-color: rgb(221 214 254 / 0.6); + border-right-color: rgb(221 214 254 / 0.6); +} +.border-x-violet-200\/70 { + border-left-color: rgb(221 214 254 / 0.7); + border-right-color: rgb(221 214 254 / 0.7); +} +.border-x-violet-200\/75 { + border-left-color: rgb(221 214 254 / 0.75); + border-right-color: rgb(221 214 254 / 0.75); +} +.border-x-violet-200\/80 { + border-left-color: rgb(221 214 254 / 0.8); + border-right-color: rgb(221 214 254 / 0.8); +} +.border-x-violet-200\/90 { + border-left-color: rgb(221 214 254 / 0.9); + border-right-color: rgb(221 214 254 / 0.9); +} +.border-x-violet-200\/95 { + border-left-color: rgb(221 214 254 / 0.95); + border-right-color: rgb(221 214 254 / 0.95); +} +.border-x-violet-300 { + --tw-border-opacity: 1; + border-left-color: rgb(196 181 253 / var(--tw-border-opacity)); + border-right-color: rgb(196 181 253 / var(--tw-border-opacity)); +} +.border-x-violet-300\/0 { + border-left-color: rgb(196 181 253 / 0); + border-right-color: rgb(196 181 253 / 0); +} +.border-x-violet-300\/10 { + border-left-color: rgb(196 181 253 / 0.1); + border-right-color: rgb(196 181 253 / 0.1); +} +.border-x-violet-300\/100 { + border-left-color: rgb(196 181 253 / 1); + border-right-color: rgb(196 181 253 / 1); +} +.border-x-violet-300\/20 { + border-left-color: rgb(196 181 253 / 0.2); + border-right-color: rgb(196 181 253 / 0.2); +} +.border-x-violet-300\/25 { + border-left-color: rgb(196 181 253 / 0.25); + border-right-color: rgb(196 181 253 / 0.25); +} +.border-x-violet-300\/30 { + border-left-color: rgb(196 181 253 / 0.3); + border-right-color: rgb(196 181 253 / 0.3); +} +.border-x-violet-300\/40 { + border-left-color: rgb(196 181 253 / 0.4); + border-right-color: rgb(196 181 253 / 0.4); +} +.border-x-violet-300\/5 { + border-left-color: rgb(196 181 253 / 0.05); + border-right-color: rgb(196 181 253 / 0.05); +} +.border-x-violet-300\/50 { + border-left-color: rgb(196 181 253 / 0.5); + border-right-color: rgb(196 181 253 / 0.5); +} +.border-x-violet-300\/60 { + border-left-color: rgb(196 181 253 / 0.6); + border-right-color: rgb(196 181 253 / 0.6); +} +.border-x-violet-300\/70 { + border-left-color: rgb(196 181 253 / 0.7); + border-right-color: rgb(196 181 253 / 0.7); +} +.border-x-violet-300\/75 { + border-left-color: rgb(196 181 253 / 0.75); + border-right-color: rgb(196 181 253 / 0.75); +} +.border-x-violet-300\/80 { + border-left-color: rgb(196 181 253 / 0.8); + border-right-color: rgb(196 181 253 / 0.8); +} +.border-x-violet-300\/90 { + border-left-color: rgb(196 181 253 / 0.9); + border-right-color: rgb(196 181 253 / 0.9); +} +.border-x-violet-300\/95 { + border-left-color: rgb(196 181 253 / 0.95); + border-right-color: rgb(196 181 253 / 0.95); +} +.border-x-violet-400 { + --tw-border-opacity: 1; + border-left-color: rgb(167 139 250 / var(--tw-border-opacity)); + border-right-color: rgb(167 139 250 / var(--tw-border-opacity)); +} +.border-x-violet-400\/0 { + border-left-color: rgb(167 139 250 / 0); + border-right-color: rgb(167 139 250 / 0); +} +.border-x-violet-400\/10 { + border-left-color: rgb(167 139 250 / 0.1); + border-right-color: rgb(167 139 250 / 0.1); +} +.border-x-violet-400\/100 { + border-left-color: rgb(167 139 250 / 1); + border-right-color: rgb(167 139 250 / 1); +} +.border-x-violet-400\/20 { + border-left-color: rgb(167 139 250 / 0.2); + border-right-color: rgb(167 139 250 / 0.2); +} +.border-x-violet-400\/25 { + border-left-color: rgb(167 139 250 / 0.25); + border-right-color: rgb(167 139 250 / 0.25); +} +.border-x-violet-400\/30 { + border-left-color: rgb(167 139 250 / 0.3); + border-right-color: rgb(167 139 250 / 0.3); +} +.border-x-violet-400\/40 { + border-left-color: rgb(167 139 250 / 0.4); + border-right-color: rgb(167 139 250 / 0.4); +} +.border-x-violet-400\/5 { + border-left-color: rgb(167 139 250 / 0.05); + border-right-color: rgb(167 139 250 / 0.05); +} +.border-x-violet-400\/50 { + border-left-color: rgb(167 139 250 / 0.5); + border-right-color: rgb(167 139 250 / 0.5); +} +.border-x-violet-400\/60 { + border-left-color: rgb(167 139 250 / 0.6); + border-right-color: rgb(167 139 250 / 0.6); +} +.border-x-violet-400\/70 { + border-left-color: rgb(167 139 250 / 0.7); + border-right-color: rgb(167 139 250 / 0.7); +} +.border-x-violet-400\/75 { + border-left-color: rgb(167 139 250 / 0.75); + border-right-color: rgb(167 139 250 / 0.75); +} +.border-x-violet-400\/80 { + border-left-color: rgb(167 139 250 / 0.8); + border-right-color: rgb(167 139 250 / 0.8); +} +.border-x-violet-400\/90 { + border-left-color: rgb(167 139 250 / 0.9); + border-right-color: rgb(167 139 250 / 0.9); +} +.border-x-violet-400\/95 { + border-left-color: rgb(167 139 250 / 0.95); + border-right-color: rgb(167 139 250 / 0.95); +} +.border-x-violet-50 { + --tw-border-opacity: 1; + border-left-color: rgb(245 243 255 / var(--tw-border-opacity)); + border-right-color: rgb(245 243 255 / var(--tw-border-opacity)); +} +.border-x-violet-50\/0 { + border-left-color: rgb(245 243 255 / 0); + border-right-color: rgb(245 243 255 / 0); +} +.border-x-violet-50\/10 { + border-left-color: rgb(245 243 255 / 0.1); + border-right-color: rgb(245 243 255 / 0.1); +} +.border-x-violet-50\/100 { + border-left-color: rgb(245 243 255 / 1); + border-right-color: rgb(245 243 255 / 1); +} +.border-x-violet-50\/20 { + border-left-color: rgb(245 243 255 / 0.2); + border-right-color: rgb(245 243 255 / 0.2); +} +.border-x-violet-50\/25 { + border-left-color: rgb(245 243 255 / 0.25); + border-right-color: rgb(245 243 255 / 0.25); +} +.border-x-violet-50\/30 { + border-left-color: rgb(245 243 255 / 0.3); + border-right-color: rgb(245 243 255 / 0.3); +} +.border-x-violet-50\/40 { + border-left-color: rgb(245 243 255 / 0.4); + border-right-color: rgb(245 243 255 / 0.4); +} +.border-x-violet-50\/5 { + border-left-color: rgb(245 243 255 / 0.05); + border-right-color: rgb(245 243 255 / 0.05); +} +.border-x-violet-50\/50 { + border-left-color: rgb(245 243 255 / 0.5); + border-right-color: rgb(245 243 255 / 0.5); +} +.border-x-violet-50\/60 { + border-left-color: rgb(245 243 255 / 0.6); + border-right-color: rgb(245 243 255 / 0.6); +} +.border-x-violet-50\/70 { + border-left-color: rgb(245 243 255 / 0.7); + border-right-color: rgb(245 243 255 / 0.7); +} +.border-x-violet-50\/75 { + border-left-color: rgb(245 243 255 / 0.75); + border-right-color: rgb(245 243 255 / 0.75); +} +.border-x-violet-50\/80 { + border-left-color: rgb(245 243 255 / 0.8); + border-right-color: rgb(245 243 255 / 0.8); +} +.border-x-violet-50\/90 { + border-left-color: rgb(245 243 255 / 0.9); + border-right-color: rgb(245 243 255 / 0.9); +} +.border-x-violet-50\/95 { + border-left-color: rgb(245 243 255 / 0.95); + border-right-color: rgb(245 243 255 / 0.95); +} +.border-x-violet-500 { + --tw-border-opacity: 1; + border-left-color: rgb(139 92 246 / var(--tw-border-opacity)); + border-right-color: rgb(139 92 246 / var(--tw-border-opacity)); +} +.border-x-violet-500\/0 { + border-left-color: rgb(139 92 246 / 0); + border-right-color: rgb(139 92 246 / 0); +} +.border-x-violet-500\/10 { + border-left-color: rgb(139 92 246 / 0.1); + border-right-color: rgb(139 92 246 / 0.1); +} +.border-x-violet-500\/100 { + border-left-color: rgb(139 92 246 / 1); + border-right-color: rgb(139 92 246 / 1); +} +.border-x-violet-500\/20 { + border-left-color: rgb(139 92 246 / 0.2); + border-right-color: rgb(139 92 246 / 0.2); +} +.border-x-violet-500\/25 { + border-left-color: rgb(139 92 246 / 0.25); + border-right-color: rgb(139 92 246 / 0.25); +} +.border-x-violet-500\/30 { + border-left-color: rgb(139 92 246 / 0.3); + border-right-color: rgb(139 92 246 / 0.3); +} +.border-x-violet-500\/40 { + border-left-color: rgb(139 92 246 / 0.4); + border-right-color: rgb(139 92 246 / 0.4); +} +.border-x-violet-500\/5 { + border-left-color: rgb(139 92 246 / 0.05); + border-right-color: rgb(139 92 246 / 0.05); +} +.border-x-violet-500\/50 { + border-left-color: rgb(139 92 246 / 0.5); + border-right-color: rgb(139 92 246 / 0.5); +} +.border-x-violet-500\/60 { + border-left-color: rgb(139 92 246 / 0.6); + border-right-color: rgb(139 92 246 / 0.6); +} +.border-x-violet-500\/70 { + border-left-color: rgb(139 92 246 / 0.7); + border-right-color: rgb(139 92 246 / 0.7); +} +.border-x-violet-500\/75 { + border-left-color: rgb(139 92 246 / 0.75); + border-right-color: rgb(139 92 246 / 0.75); +} +.border-x-violet-500\/80 { + border-left-color: rgb(139 92 246 / 0.8); + border-right-color: rgb(139 92 246 / 0.8); +} +.border-x-violet-500\/90 { + border-left-color: rgb(139 92 246 / 0.9); + border-right-color: rgb(139 92 246 / 0.9); +} +.border-x-violet-500\/95 { + border-left-color: rgb(139 92 246 / 0.95); + border-right-color: rgb(139 92 246 / 0.95); +} +.border-x-violet-600 { + --tw-border-opacity: 1; + border-left-color: rgb(124 58 237 / var(--tw-border-opacity)); + border-right-color: rgb(124 58 237 / var(--tw-border-opacity)); +} +.border-x-violet-600\/0 { + border-left-color: rgb(124 58 237 / 0); + border-right-color: rgb(124 58 237 / 0); +} +.border-x-violet-600\/10 { + border-left-color: rgb(124 58 237 / 0.1); + border-right-color: rgb(124 58 237 / 0.1); +} +.border-x-violet-600\/100 { + border-left-color: rgb(124 58 237 / 1); + border-right-color: rgb(124 58 237 / 1); +} +.border-x-violet-600\/20 { + border-left-color: rgb(124 58 237 / 0.2); + border-right-color: rgb(124 58 237 / 0.2); +} +.border-x-violet-600\/25 { + border-left-color: rgb(124 58 237 / 0.25); + border-right-color: rgb(124 58 237 / 0.25); +} +.border-x-violet-600\/30 { + border-left-color: rgb(124 58 237 / 0.3); + border-right-color: rgb(124 58 237 / 0.3); +} +.border-x-violet-600\/40 { + border-left-color: rgb(124 58 237 / 0.4); + border-right-color: rgb(124 58 237 / 0.4); +} +.border-x-violet-600\/5 { + border-left-color: rgb(124 58 237 / 0.05); + border-right-color: rgb(124 58 237 / 0.05); +} +.border-x-violet-600\/50 { + border-left-color: rgb(124 58 237 / 0.5); + border-right-color: rgb(124 58 237 / 0.5); +} +.border-x-violet-600\/60 { + border-left-color: rgb(124 58 237 / 0.6); + border-right-color: rgb(124 58 237 / 0.6); +} +.border-x-violet-600\/70 { + border-left-color: rgb(124 58 237 / 0.7); + border-right-color: rgb(124 58 237 / 0.7); +} +.border-x-violet-600\/75 { + border-left-color: rgb(124 58 237 / 0.75); + border-right-color: rgb(124 58 237 / 0.75); +} +.border-x-violet-600\/80 { + border-left-color: rgb(124 58 237 / 0.8); + border-right-color: rgb(124 58 237 / 0.8); +} +.border-x-violet-600\/90 { + border-left-color: rgb(124 58 237 / 0.9); + border-right-color: rgb(124 58 237 / 0.9); +} +.border-x-violet-600\/95 { + border-left-color: rgb(124 58 237 / 0.95); + border-right-color: rgb(124 58 237 / 0.95); +} +.border-x-violet-700 { + --tw-border-opacity: 1; + border-left-color: rgb(109 40 217 / var(--tw-border-opacity)); + border-right-color: rgb(109 40 217 / var(--tw-border-opacity)); +} +.border-x-violet-700\/0 { + border-left-color: rgb(109 40 217 / 0); + border-right-color: rgb(109 40 217 / 0); +} +.border-x-violet-700\/10 { + border-left-color: rgb(109 40 217 / 0.1); + border-right-color: rgb(109 40 217 / 0.1); +} +.border-x-violet-700\/100 { + border-left-color: rgb(109 40 217 / 1); + border-right-color: rgb(109 40 217 / 1); +} +.border-x-violet-700\/20 { + border-left-color: rgb(109 40 217 / 0.2); + border-right-color: rgb(109 40 217 / 0.2); +} +.border-x-violet-700\/25 { + border-left-color: rgb(109 40 217 / 0.25); + border-right-color: rgb(109 40 217 / 0.25); +} +.border-x-violet-700\/30 { + border-left-color: rgb(109 40 217 / 0.3); + border-right-color: rgb(109 40 217 / 0.3); +} +.border-x-violet-700\/40 { + border-left-color: rgb(109 40 217 / 0.4); + border-right-color: rgb(109 40 217 / 0.4); +} +.border-x-violet-700\/5 { + border-left-color: rgb(109 40 217 / 0.05); + border-right-color: rgb(109 40 217 / 0.05); +} +.border-x-violet-700\/50 { + border-left-color: rgb(109 40 217 / 0.5); + border-right-color: rgb(109 40 217 / 0.5); +} +.border-x-violet-700\/60 { + border-left-color: rgb(109 40 217 / 0.6); + border-right-color: rgb(109 40 217 / 0.6); +} +.border-x-violet-700\/70 { + border-left-color: rgb(109 40 217 / 0.7); + border-right-color: rgb(109 40 217 / 0.7); +} +.border-x-violet-700\/75 { + border-left-color: rgb(109 40 217 / 0.75); + border-right-color: rgb(109 40 217 / 0.75); +} +.border-x-violet-700\/80 { + border-left-color: rgb(109 40 217 / 0.8); + border-right-color: rgb(109 40 217 / 0.8); +} +.border-x-violet-700\/90 { + border-left-color: rgb(109 40 217 / 0.9); + border-right-color: rgb(109 40 217 / 0.9); +} +.border-x-violet-700\/95 { + border-left-color: rgb(109 40 217 / 0.95); + border-right-color: rgb(109 40 217 / 0.95); +} +.border-x-violet-800 { + --tw-border-opacity: 1; + border-left-color: rgb(91 33 182 / var(--tw-border-opacity)); + border-right-color: rgb(91 33 182 / var(--tw-border-opacity)); +} +.border-x-violet-800\/0 { + border-left-color: rgb(91 33 182 / 0); + border-right-color: rgb(91 33 182 / 0); +} +.border-x-violet-800\/10 { + border-left-color: rgb(91 33 182 / 0.1); + border-right-color: rgb(91 33 182 / 0.1); +} +.border-x-violet-800\/100 { + border-left-color: rgb(91 33 182 / 1); + border-right-color: rgb(91 33 182 / 1); +} +.border-x-violet-800\/20 { + border-left-color: rgb(91 33 182 / 0.2); + border-right-color: rgb(91 33 182 / 0.2); +} +.border-x-violet-800\/25 { + border-left-color: rgb(91 33 182 / 0.25); + border-right-color: rgb(91 33 182 / 0.25); +} +.border-x-violet-800\/30 { + border-left-color: rgb(91 33 182 / 0.3); + border-right-color: rgb(91 33 182 / 0.3); +} +.border-x-violet-800\/40 { + border-left-color: rgb(91 33 182 / 0.4); + border-right-color: rgb(91 33 182 / 0.4); +} +.border-x-violet-800\/5 { + border-left-color: rgb(91 33 182 / 0.05); + border-right-color: rgb(91 33 182 / 0.05); +} +.border-x-violet-800\/50 { + border-left-color: rgb(91 33 182 / 0.5); + border-right-color: rgb(91 33 182 / 0.5); +} +.border-x-violet-800\/60 { + border-left-color: rgb(91 33 182 / 0.6); + border-right-color: rgb(91 33 182 / 0.6); +} +.border-x-violet-800\/70 { + border-left-color: rgb(91 33 182 / 0.7); + border-right-color: rgb(91 33 182 / 0.7); +} +.border-x-violet-800\/75 { + border-left-color: rgb(91 33 182 / 0.75); + border-right-color: rgb(91 33 182 / 0.75); +} +.border-x-violet-800\/80 { + border-left-color: rgb(91 33 182 / 0.8); + border-right-color: rgb(91 33 182 / 0.8); +} +.border-x-violet-800\/90 { + border-left-color: rgb(91 33 182 / 0.9); + border-right-color: rgb(91 33 182 / 0.9); +} +.border-x-violet-800\/95 { + border-left-color: rgb(91 33 182 / 0.95); + border-right-color: rgb(91 33 182 / 0.95); +} +.border-x-violet-900 { + --tw-border-opacity: 1; + border-left-color: rgb(76 29 149 / var(--tw-border-opacity)); + border-right-color: rgb(76 29 149 / var(--tw-border-opacity)); +} +.border-x-violet-900\/0 { + border-left-color: rgb(76 29 149 / 0); + border-right-color: rgb(76 29 149 / 0); +} +.border-x-violet-900\/10 { + border-left-color: rgb(76 29 149 / 0.1); + border-right-color: rgb(76 29 149 / 0.1); +} +.border-x-violet-900\/100 { + border-left-color: rgb(76 29 149 / 1); + border-right-color: rgb(76 29 149 / 1); +} +.border-x-violet-900\/20 { + border-left-color: rgb(76 29 149 / 0.2); + border-right-color: rgb(76 29 149 / 0.2); +} +.border-x-violet-900\/25 { + border-left-color: rgb(76 29 149 / 0.25); + border-right-color: rgb(76 29 149 / 0.25); +} +.border-x-violet-900\/30 { + border-left-color: rgb(76 29 149 / 0.3); + border-right-color: rgb(76 29 149 / 0.3); +} +.border-x-violet-900\/40 { + border-left-color: rgb(76 29 149 / 0.4); + border-right-color: rgb(76 29 149 / 0.4); +} +.border-x-violet-900\/5 { + border-left-color: rgb(76 29 149 / 0.05); + border-right-color: rgb(76 29 149 / 0.05); +} +.border-x-violet-900\/50 { + border-left-color: rgb(76 29 149 / 0.5); + border-right-color: rgb(76 29 149 / 0.5); +} +.border-x-violet-900\/60 { + border-left-color: rgb(76 29 149 / 0.6); + border-right-color: rgb(76 29 149 / 0.6); +} +.border-x-violet-900\/70 { + border-left-color: rgb(76 29 149 / 0.7); + border-right-color: rgb(76 29 149 / 0.7); +} +.border-x-violet-900\/75 { + border-left-color: rgb(76 29 149 / 0.75); + border-right-color: rgb(76 29 149 / 0.75); +} +.border-x-violet-900\/80 { + border-left-color: rgb(76 29 149 / 0.8); + border-right-color: rgb(76 29 149 / 0.8); +} +.border-x-violet-900\/90 { + border-left-color: rgb(76 29 149 / 0.9); + border-right-color: rgb(76 29 149 / 0.9); +} +.border-x-violet-900\/95 { + border-left-color: rgb(76 29 149 / 0.95); + border-right-color: rgb(76 29 149 / 0.95); +} +.border-y-Occupation_du_sol-primary { + border-top-color: var(--Occupation_du_sol-primary); + border-bottom-color: var(--Occupation_du_sol-primary); +} +.border-y-Occupation_du_sol-secondary { + border-top-color: var(--Occupation_du_sol-secondary); + border-bottom-color: var(--Occupation_du_sol-secondary); +} +.border-y-Occupation_du_sol-tertiary { + border-top-color: var(--Occupation_du_sol-tertiary); + border-bottom-color: var(--Occupation_du_sol-tertiary); +} +.border-y-violet-100 { + --tw-border-opacity: 1; + border-top-color: rgb(237 233 254 / var(--tw-border-opacity)); + border-bottom-color: rgb(237 233 254 / var(--tw-border-opacity)); +} +.border-y-violet-100\/0 { + border-top-color: rgb(237 233 254 / 0); + border-bottom-color: rgb(237 233 254 / 0); +} +.border-y-violet-100\/10 { + border-top-color: rgb(237 233 254 / 0.1); + border-bottom-color: rgb(237 233 254 / 0.1); +} +.border-y-violet-100\/100 { + border-top-color: rgb(237 233 254 / 1); + border-bottom-color: rgb(237 233 254 / 1); +} +.border-y-violet-100\/20 { + border-top-color: rgb(237 233 254 / 0.2); + border-bottom-color: rgb(237 233 254 / 0.2); +} +.border-y-violet-100\/25 { + border-top-color: rgb(237 233 254 / 0.25); + border-bottom-color: rgb(237 233 254 / 0.25); +} +.border-y-violet-100\/30 { + border-top-color: rgb(237 233 254 / 0.3); + border-bottom-color: rgb(237 233 254 / 0.3); +} +.border-y-violet-100\/40 { + border-top-color: rgb(237 233 254 / 0.4); + border-bottom-color: rgb(237 233 254 / 0.4); +} +.border-y-violet-100\/5 { + border-top-color: rgb(237 233 254 / 0.05); + border-bottom-color: rgb(237 233 254 / 0.05); +} +.border-y-violet-100\/50 { + border-top-color: rgb(237 233 254 / 0.5); + border-bottom-color: rgb(237 233 254 / 0.5); +} +.border-y-violet-100\/60 { + border-top-color: rgb(237 233 254 / 0.6); + border-bottom-color: rgb(237 233 254 / 0.6); +} +.border-y-violet-100\/70 { + border-top-color: rgb(237 233 254 / 0.7); + border-bottom-color: rgb(237 233 254 / 0.7); +} +.border-y-violet-100\/75 { + border-top-color: rgb(237 233 254 / 0.75); + border-bottom-color: rgb(237 233 254 / 0.75); +} +.border-y-violet-100\/80 { + border-top-color: rgb(237 233 254 / 0.8); + border-bottom-color: rgb(237 233 254 / 0.8); +} +.border-y-violet-100\/90 { + border-top-color: rgb(237 233 254 / 0.9); + border-bottom-color: rgb(237 233 254 / 0.9); +} +.border-y-violet-100\/95 { + border-top-color: rgb(237 233 254 / 0.95); + border-bottom-color: rgb(237 233 254 / 0.95); +} +.border-y-violet-200 { + --tw-border-opacity: 1; + border-top-color: rgb(221 214 254 / var(--tw-border-opacity)); + border-bottom-color: rgb(221 214 254 / var(--tw-border-opacity)); +} +.border-y-violet-200\/0 { + border-top-color: rgb(221 214 254 / 0); + border-bottom-color: rgb(221 214 254 / 0); +} +.border-y-violet-200\/10 { + border-top-color: rgb(221 214 254 / 0.1); + border-bottom-color: rgb(221 214 254 / 0.1); +} +.border-y-violet-200\/100 { + border-top-color: rgb(221 214 254 / 1); + border-bottom-color: rgb(221 214 254 / 1); +} +.border-y-violet-200\/20 { + border-top-color: rgb(221 214 254 / 0.2); + border-bottom-color: rgb(221 214 254 / 0.2); +} +.border-y-violet-200\/25 { + border-top-color: rgb(221 214 254 / 0.25); + border-bottom-color: rgb(221 214 254 / 0.25); +} +.border-y-violet-200\/30 { + border-top-color: rgb(221 214 254 / 0.3); + border-bottom-color: rgb(221 214 254 / 0.3); +} +.border-y-violet-200\/40 { + border-top-color: rgb(221 214 254 / 0.4); + border-bottom-color: rgb(221 214 254 / 0.4); +} +.border-y-violet-200\/5 { + border-top-color: rgb(221 214 254 / 0.05); + border-bottom-color: rgb(221 214 254 / 0.05); +} +.border-y-violet-200\/50 { + border-top-color: rgb(221 214 254 / 0.5); + border-bottom-color: rgb(221 214 254 / 0.5); +} +.border-y-violet-200\/60 { + border-top-color: rgb(221 214 254 / 0.6); + border-bottom-color: rgb(221 214 254 / 0.6); +} +.border-y-violet-200\/70 { + border-top-color: rgb(221 214 254 / 0.7); + border-bottom-color: rgb(221 214 254 / 0.7); +} +.border-y-violet-200\/75 { + border-top-color: rgb(221 214 254 / 0.75); + border-bottom-color: rgb(221 214 254 / 0.75); +} +.border-y-violet-200\/80 { + border-top-color: rgb(221 214 254 / 0.8); + border-bottom-color: rgb(221 214 254 / 0.8); +} +.border-y-violet-200\/90 { + border-top-color: rgb(221 214 254 / 0.9); + border-bottom-color: rgb(221 214 254 / 0.9); +} +.border-y-violet-200\/95 { + border-top-color: rgb(221 214 254 / 0.95); + border-bottom-color: rgb(221 214 254 / 0.95); +} +.border-y-violet-300 { + --tw-border-opacity: 1; + border-top-color: rgb(196 181 253 / var(--tw-border-opacity)); + border-bottom-color: rgb(196 181 253 / var(--tw-border-opacity)); +} +.border-y-violet-300\/0 { + border-top-color: rgb(196 181 253 / 0); + border-bottom-color: rgb(196 181 253 / 0); +} +.border-y-violet-300\/10 { + border-top-color: rgb(196 181 253 / 0.1); + border-bottom-color: rgb(196 181 253 / 0.1); +} +.border-y-violet-300\/100 { + border-top-color: rgb(196 181 253 / 1); + border-bottom-color: rgb(196 181 253 / 1); +} +.border-y-violet-300\/20 { + border-top-color: rgb(196 181 253 / 0.2); + border-bottom-color: rgb(196 181 253 / 0.2); +} +.border-y-violet-300\/25 { + border-top-color: rgb(196 181 253 / 0.25); + border-bottom-color: rgb(196 181 253 / 0.25); +} +.border-y-violet-300\/30 { + border-top-color: rgb(196 181 253 / 0.3); + border-bottom-color: rgb(196 181 253 / 0.3); +} +.border-y-violet-300\/40 { + border-top-color: rgb(196 181 253 / 0.4); + border-bottom-color: rgb(196 181 253 / 0.4); +} +.border-y-violet-300\/5 { + border-top-color: rgb(196 181 253 / 0.05); + border-bottom-color: rgb(196 181 253 / 0.05); +} +.border-y-violet-300\/50 { + border-top-color: rgb(196 181 253 / 0.5); + border-bottom-color: rgb(196 181 253 / 0.5); +} +.border-y-violet-300\/60 { + border-top-color: rgb(196 181 253 / 0.6); + border-bottom-color: rgb(196 181 253 / 0.6); +} +.border-y-violet-300\/70 { + border-top-color: rgb(196 181 253 / 0.7); + border-bottom-color: rgb(196 181 253 / 0.7); +} +.border-y-violet-300\/75 { + border-top-color: rgb(196 181 253 / 0.75); + border-bottom-color: rgb(196 181 253 / 0.75); +} +.border-y-violet-300\/80 { + border-top-color: rgb(196 181 253 / 0.8); + border-bottom-color: rgb(196 181 253 / 0.8); +} +.border-y-violet-300\/90 { + border-top-color: rgb(196 181 253 / 0.9); + border-bottom-color: rgb(196 181 253 / 0.9); +} +.border-y-violet-300\/95 { + border-top-color: rgb(196 181 253 / 0.95); + border-bottom-color: rgb(196 181 253 / 0.95); +} +.border-y-violet-400 { + --tw-border-opacity: 1; + border-top-color: rgb(167 139 250 / var(--tw-border-opacity)); + border-bottom-color: rgb(167 139 250 / var(--tw-border-opacity)); +} +.border-y-violet-400\/0 { + border-top-color: rgb(167 139 250 / 0); + border-bottom-color: rgb(167 139 250 / 0); +} +.border-y-violet-400\/10 { + border-top-color: rgb(167 139 250 / 0.1); + border-bottom-color: rgb(167 139 250 / 0.1); +} +.border-y-violet-400\/100 { + border-top-color: rgb(167 139 250 / 1); + border-bottom-color: rgb(167 139 250 / 1); +} +.border-y-violet-400\/20 { + border-top-color: rgb(167 139 250 / 0.2); + border-bottom-color: rgb(167 139 250 / 0.2); +} +.border-y-violet-400\/25 { + border-top-color: rgb(167 139 250 / 0.25); + border-bottom-color: rgb(167 139 250 / 0.25); +} +.border-y-violet-400\/30 { + border-top-color: rgb(167 139 250 / 0.3); + border-bottom-color: rgb(167 139 250 / 0.3); +} +.border-y-violet-400\/40 { + border-top-color: rgb(167 139 250 / 0.4); + border-bottom-color: rgb(167 139 250 / 0.4); +} +.border-y-violet-400\/5 { + border-top-color: rgb(167 139 250 / 0.05); + border-bottom-color: rgb(167 139 250 / 0.05); +} +.border-y-violet-400\/50 { + border-top-color: rgb(167 139 250 / 0.5); + border-bottom-color: rgb(167 139 250 / 0.5); +} +.border-y-violet-400\/60 { + border-top-color: rgb(167 139 250 / 0.6); + border-bottom-color: rgb(167 139 250 / 0.6); +} +.border-y-violet-400\/70 { + border-top-color: rgb(167 139 250 / 0.7); + border-bottom-color: rgb(167 139 250 / 0.7); +} +.border-y-violet-400\/75 { + border-top-color: rgb(167 139 250 / 0.75); + border-bottom-color: rgb(167 139 250 / 0.75); +} +.border-y-violet-400\/80 { + border-top-color: rgb(167 139 250 / 0.8); + border-bottom-color: rgb(167 139 250 / 0.8); +} +.border-y-violet-400\/90 { + border-top-color: rgb(167 139 250 / 0.9); + border-bottom-color: rgb(167 139 250 / 0.9); +} +.border-y-violet-400\/95 { + border-top-color: rgb(167 139 250 / 0.95); + border-bottom-color: rgb(167 139 250 / 0.95); +} +.border-y-violet-50 { + --tw-border-opacity: 1; + border-top-color: rgb(245 243 255 / var(--tw-border-opacity)); + border-bottom-color: rgb(245 243 255 / var(--tw-border-opacity)); +} +.border-y-violet-50\/0 { + border-top-color: rgb(245 243 255 / 0); + border-bottom-color: rgb(245 243 255 / 0); +} +.border-y-violet-50\/10 { + border-top-color: rgb(245 243 255 / 0.1); + border-bottom-color: rgb(245 243 255 / 0.1); +} +.border-y-violet-50\/100 { + border-top-color: rgb(245 243 255 / 1); + border-bottom-color: rgb(245 243 255 / 1); +} +.border-y-violet-50\/20 { + border-top-color: rgb(245 243 255 / 0.2); + border-bottom-color: rgb(245 243 255 / 0.2); +} +.border-y-violet-50\/25 { + border-top-color: rgb(245 243 255 / 0.25); + border-bottom-color: rgb(245 243 255 / 0.25); +} +.border-y-violet-50\/30 { + border-top-color: rgb(245 243 255 / 0.3); + border-bottom-color: rgb(245 243 255 / 0.3); +} +.border-y-violet-50\/40 { + border-top-color: rgb(245 243 255 / 0.4); + border-bottom-color: rgb(245 243 255 / 0.4); +} +.border-y-violet-50\/5 { + border-top-color: rgb(245 243 255 / 0.05); + border-bottom-color: rgb(245 243 255 / 0.05); +} +.border-y-violet-50\/50 { + border-top-color: rgb(245 243 255 / 0.5); + border-bottom-color: rgb(245 243 255 / 0.5); +} +.border-y-violet-50\/60 { + border-top-color: rgb(245 243 255 / 0.6); + border-bottom-color: rgb(245 243 255 / 0.6); +} +.border-y-violet-50\/70 { + border-top-color: rgb(245 243 255 / 0.7); + border-bottom-color: rgb(245 243 255 / 0.7); +} +.border-y-violet-50\/75 { + border-top-color: rgb(245 243 255 / 0.75); + border-bottom-color: rgb(245 243 255 / 0.75); +} +.border-y-violet-50\/80 { + border-top-color: rgb(245 243 255 / 0.8); + border-bottom-color: rgb(245 243 255 / 0.8); +} +.border-y-violet-50\/90 { + border-top-color: rgb(245 243 255 / 0.9); + border-bottom-color: rgb(245 243 255 / 0.9); +} +.border-y-violet-50\/95 { + border-top-color: rgb(245 243 255 / 0.95); + border-bottom-color: rgb(245 243 255 / 0.95); +} +.border-y-violet-500 { + --tw-border-opacity: 1; + border-top-color: rgb(139 92 246 / var(--tw-border-opacity)); + border-bottom-color: rgb(139 92 246 / var(--tw-border-opacity)); +} +.border-y-violet-500\/0 { + border-top-color: rgb(139 92 246 / 0); + border-bottom-color: rgb(139 92 246 / 0); +} +.border-y-violet-500\/10 { + border-top-color: rgb(139 92 246 / 0.1); + border-bottom-color: rgb(139 92 246 / 0.1); +} +.border-y-violet-500\/100 { + border-top-color: rgb(139 92 246 / 1); + border-bottom-color: rgb(139 92 246 / 1); +} +.border-y-violet-500\/20 { + border-top-color: rgb(139 92 246 / 0.2); + border-bottom-color: rgb(139 92 246 / 0.2); +} +.border-y-violet-500\/25 { + border-top-color: rgb(139 92 246 / 0.25); + border-bottom-color: rgb(139 92 246 / 0.25); +} +.border-y-violet-500\/30 { + border-top-color: rgb(139 92 246 / 0.3); + border-bottom-color: rgb(139 92 246 / 0.3); +} +.border-y-violet-500\/40 { + border-top-color: rgb(139 92 246 / 0.4); + border-bottom-color: rgb(139 92 246 / 0.4); +} +.border-y-violet-500\/5 { + border-top-color: rgb(139 92 246 / 0.05); + border-bottom-color: rgb(139 92 246 / 0.05); +} +.border-y-violet-500\/50 { + border-top-color: rgb(139 92 246 / 0.5); + border-bottom-color: rgb(139 92 246 / 0.5); +} +.border-y-violet-500\/60 { + border-top-color: rgb(139 92 246 / 0.6); + border-bottom-color: rgb(139 92 246 / 0.6); +} +.border-y-violet-500\/70 { + border-top-color: rgb(139 92 246 / 0.7); + border-bottom-color: rgb(139 92 246 / 0.7); +} +.border-y-violet-500\/75 { + border-top-color: rgb(139 92 246 / 0.75); + border-bottom-color: rgb(139 92 246 / 0.75); +} +.border-y-violet-500\/80 { + border-top-color: rgb(139 92 246 / 0.8); + border-bottom-color: rgb(139 92 246 / 0.8); +} +.border-y-violet-500\/90 { + border-top-color: rgb(139 92 246 / 0.9); + border-bottom-color: rgb(139 92 246 / 0.9); +} +.border-y-violet-500\/95 { + border-top-color: rgb(139 92 246 / 0.95); + border-bottom-color: rgb(139 92 246 / 0.95); +} +.border-y-violet-600 { + --tw-border-opacity: 1; + border-top-color: rgb(124 58 237 / var(--tw-border-opacity)); + border-bottom-color: rgb(124 58 237 / var(--tw-border-opacity)); +} +.border-y-violet-600\/0 { + border-top-color: rgb(124 58 237 / 0); + border-bottom-color: rgb(124 58 237 / 0); +} +.border-y-violet-600\/10 { + border-top-color: rgb(124 58 237 / 0.1); + border-bottom-color: rgb(124 58 237 / 0.1); +} +.border-y-violet-600\/100 { + border-top-color: rgb(124 58 237 / 1); + border-bottom-color: rgb(124 58 237 / 1); +} +.border-y-violet-600\/20 { + border-top-color: rgb(124 58 237 / 0.2); + border-bottom-color: rgb(124 58 237 / 0.2); +} +.border-y-violet-600\/25 { + border-top-color: rgb(124 58 237 / 0.25); + border-bottom-color: rgb(124 58 237 / 0.25); +} +.border-y-violet-600\/30 { + border-top-color: rgb(124 58 237 / 0.3); + border-bottom-color: rgb(124 58 237 / 0.3); +} +.border-y-violet-600\/40 { + border-top-color: rgb(124 58 237 / 0.4); + border-bottom-color: rgb(124 58 237 / 0.4); +} +.border-y-violet-600\/5 { + border-top-color: rgb(124 58 237 / 0.05); + border-bottom-color: rgb(124 58 237 / 0.05); +} +.border-y-violet-600\/50 { + border-top-color: rgb(124 58 237 / 0.5); + border-bottom-color: rgb(124 58 237 / 0.5); +} +.border-y-violet-600\/60 { + border-top-color: rgb(124 58 237 / 0.6); + border-bottom-color: rgb(124 58 237 / 0.6); +} +.border-y-violet-600\/70 { + border-top-color: rgb(124 58 237 / 0.7); + border-bottom-color: rgb(124 58 237 / 0.7); +} +.border-y-violet-600\/75 { + border-top-color: rgb(124 58 237 / 0.75); + border-bottom-color: rgb(124 58 237 / 0.75); +} +.border-y-violet-600\/80 { + border-top-color: rgb(124 58 237 / 0.8); + border-bottom-color: rgb(124 58 237 / 0.8); +} +.border-y-violet-600\/90 { + border-top-color: rgb(124 58 237 / 0.9); + border-bottom-color: rgb(124 58 237 / 0.9); +} +.border-y-violet-600\/95 { + border-top-color: rgb(124 58 237 / 0.95); + border-bottom-color: rgb(124 58 237 / 0.95); +} +.border-y-violet-700 { + --tw-border-opacity: 1; + border-top-color: rgb(109 40 217 / var(--tw-border-opacity)); + border-bottom-color: rgb(109 40 217 / var(--tw-border-opacity)); +} +.border-y-violet-700\/0 { + border-top-color: rgb(109 40 217 / 0); + border-bottom-color: rgb(109 40 217 / 0); +} +.border-y-violet-700\/10 { + border-top-color: rgb(109 40 217 / 0.1); + border-bottom-color: rgb(109 40 217 / 0.1); +} +.border-y-violet-700\/100 { + border-top-color: rgb(109 40 217 / 1); + border-bottom-color: rgb(109 40 217 / 1); +} +.border-y-violet-700\/20 { + border-top-color: rgb(109 40 217 / 0.2); + border-bottom-color: rgb(109 40 217 / 0.2); +} +.border-y-violet-700\/25 { + border-top-color: rgb(109 40 217 / 0.25); + border-bottom-color: rgb(109 40 217 / 0.25); +} +.border-y-violet-700\/30 { + border-top-color: rgb(109 40 217 / 0.3); + border-bottom-color: rgb(109 40 217 / 0.3); +} +.border-y-violet-700\/40 { + border-top-color: rgb(109 40 217 / 0.4); + border-bottom-color: rgb(109 40 217 / 0.4); +} +.border-y-violet-700\/5 { + border-top-color: rgb(109 40 217 / 0.05); + border-bottom-color: rgb(109 40 217 / 0.05); +} +.border-y-violet-700\/50 { + border-top-color: rgb(109 40 217 / 0.5); + border-bottom-color: rgb(109 40 217 / 0.5); +} +.border-y-violet-700\/60 { + border-top-color: rgb(109 40 217 / 0.6); + border-bottom-color: rgb(109 40 217 / 0.6); +} +.border-y-violet-700\/70 { + border-top-color: rgb(109 40 217 / 0.7); + border-bottom-color: rgb(109 40 217 / 0.7); +} +.border-y-violet-700\/75 { + border-top-color: rgb(109 40 217 / 0.75); + border-bottom-color: rgb(109 40 217 / 0.75); +} +.border-y-violet-700\/80 { + border-top-color: rgb(109 40 217 / 0.8); + border-bottom-color: rgb(109 40 217 / 0.8); +} +.border-y-violet-700\/90 { + border-top-color: rgb(109 40 217 / 0.9); + border-bottom-color: rgb(109 40 217 / 0.9); +} +.border-y-violet-700\/95 { + border-top-color: rgb(109 40 217 / 0.95); + border-bottom-color: rgb(109 40 217 / 0.95); +} +.border-y-violet-800 { + --tw-border-opacity: 1; + border-top-color: rgb(91 33 182 / var(--tw-border-opacity)); + border-bottom-color: rgb(91 33 182 / var(--tw-border-opacity)); +} +.border-y-violet-800\/0 { + border-top-color: rgb(91 33 182 / 0); + border-bottom-color: rgb(91 33 182 / 0); +} +.border-y-violet-800\/10 { + border-top-color: rgb(91 33 182 / 0.1); + border-bottom-color: rgb(91 33 182 / 0.1); +} +.border-y-violet-800\/100 { + border-top-color: rgb(91 33 182 / 1); + border-bottom-color: rgb(91 33 182 / 1); +} +.border-y-violet-800\/20 { + border-top-color: rgb(91 33 182 / 0.2); + border-bottom-color: rgb(91 33 182 / 0.2); +} +.border-y-violet-800\/25 { + border-top-color: rgb(91 33 182 / 0.25); + border-bottom-color: rgb(91 33 182 / 0.25); +} +.border-y-violet-800\/30 { + border-top-color: rgb(91 33 182 / 0.3); + border-bottom-color: rgb(91 33 182 / 0.3); +} +.border-y-violet-800\/40 { + border-top-color: rgb(91 33 182 / 0.4); + border-bottom-color: rgb(91 33 182 / 0.4); +} +.border-y-violet-800\/5 { + border-top-color: rgb(91 33 182 / 0.05); + border-bottom-color: rgb(91 33 182 / 0.05); +} +.border-y-violet-800\/50 { + border-top-color: rgb(91 33 182 / 0.5); + border-bottom-color: rgb(91 33 182 / 0.5); +} +.border-y-violet-800\/60 { + border-top-color: rgb(91 33 182 / 0.6); + border-bottom-color: rgb(91 33 182 / 0.6); +} +.border-y-violet-800\/70 { + border-top-color: rgb(91 33 182 / 0.7); + border-bottom-color: rgb(91 33 182 / 0.7); +} +.border-y-violet-800\/75 { + border-top-color: rgb(91 33 182 / 0.75); + border-bottom-color: rgb(91 33 182 / 0.75); +} +.border-y-violet-800\/80 { + border-top-color: rgb(91 33 182 / 0.8); + border-bottom-color: rgb(91 33 182 / 0.8); +} +.border-y-violet-800\/90 { + border-top-color: rgb(91 33 182 / 0.9); + border-bottom-color: rgb(91 33 182 / 0.9); +} +.border-y-violet-800\/95 { + border-top-color: rgb(91 33 182 / 0.95); + border-bottom-color: rgb(91 33 182 / 0.95); +} +.border-y-violet-900 { + --tw-border-opacity: 1; + border-top-color: rgb(76 29 149 / var(--tw-border-opacity)); + border-bottom-color: rgb(76 29 149 / var(--tw-border-opacity)); +} +.border-y-violet-900\/0 { + border-top-color: rgb(76 29 149 / 0); + border-bottom-color: rgb(76 29 149 / 0); +} +.border-y-violet-900\/10 { + border-top-color: rgb(76 29 149 / 0.1); + border-bottom-color: rgb(76 29 149 / 0.1); +} +.border-y-violet-900\/100 { + border-top-color: rgb(76 29 149 / 1); + border-bottom-color: rgb(76 29 149 / 1); +} +.border-y-violet-900\/20 { + border-top-color: rgb(76 29 149 / 0.2); + border-bottom-color: rgb(76 29 149 / 0.2); +} +.border-y-violet-900\/25 { + border-top-color: rgb(76 29 149 / 0.25); + border-bottom-color: rgb(76 29 149 / 0.25); +} +.border-y-violet-900\/30 { + border-top-color: rgb(76 29 149 / 0.3); + border-bottom-color: rgb(76 29 149 / 0.3); +} +.border-y-violet-900\/40 { + border-top-color: rgb(76 29 149 / 0.4); + border-bottom-color: rgb(76 29 149 / 0.4); +} +.border-y-violet-900\/5 { + border-top-color: rgb(76 29 149 / 0.05); + border-bottom-color: rgb(76 29 149 / 0.05); +} +.border-y-violet-900\/50 { + border-top-color: rgb(76 29 149 / 0.5); + border-bottom-color: rgb(76 29 149 / 0.5); +} +.border-y-violet-900\/60 { + border-top-color: rgb(76 29 149 / 0.6); + border-bottom-color: rgb(76 29 149 / 0.6); +} +.border-y-violet-900\/70 { + border-top-color: rgb(76 29 149 / 0.7); + border-bottom-color: rgb(76 29 149 / 0.7); +} +.border-y-violet-900\/75 { + border-top-color: rgb(76 29 149 / 0.75); + border-bottom-color: rgb(76 29 149 / 0.75); +} +.border-y-violet-900\/80 { + border-top-color: rgb(76 29 149 / 0.8); + border-bottom-color: rgb(76 29 149 / 0.8); +} +.border-y-violet-900\/90 { + border-top-color: rgb(76 29 149 / 0.9); + border-bottom-color: rgb(76 29 149 / 0.9); +} +.border-y-violet-900\/95 { + border-top-color: rgb(76 29 149 / 0.95); + border-bottom-color: rgb(76 29 149 / 0.95); +} +.border-b-Occupation_du_sol-primary { + border-bottom-color: var(--Occupation_du_sol-primary); +} +.border-b-Occupation_du_sol-secondary { + border-bottom-color: var(--Occupation_du_sol-secondary); +} +.border-b-Occupation_du_sol-tertiary { + border-bottom-color: var(--Occupation_du_sol-tertiary); +} +.border-b-violet-100 { + --tw-border-opacity: 1; + border-bottom-color: rgb(237 233 254 / var(--tw-border-opacity)); +} +.border-b-violet-100\/0 { + border-bottom-color: rgb(237 233 254 / 0); +} +.border-b-violet-100\/10 { + border-bottom-color: rgb(237 233 254 / 0.1); +} +.border-b-violet-100\/100 { + border-bottom-color: rgb(237 233 254 / 1); +} +.border-b-violet-100\/20 { + border-bottom-color: rgb(237 233 254 / 0.2); +} +.border-b-violet-100\/25 { + border-bottom-color: rgb(237 233 254 / 0.25); +} +.border-b-violet-100\/30 { + border-bottom-color: rgb(237 233 254 / 0.3); +} +.border-b-violet-100\/40 { + border-bottom-color: rgb(237 233 254 / 0.4); +} +.border-b-violet-100\/5 { + border-bottom-color: rgb(237 233 254 / 0.05); +} +.border-b-violet-100\/50 { + border-bottom-color: rgb(237 233 254 / 0.5); +} +.border-b-violet-100\/60 { + border-bottom-color: rgb(237 233 254 / 0.6); +} +.border-b-violet-100\/70 { + border-bottom-color: rgb(237 233 254 / 0.7); +} +.border-b-violet-100\/75 { + border-bottom-color: rgb(237 233 254 / 0.75); +} +.border-b-violet-100\/80 { + border-bottom-color: rgb(237 233 254 / 0.8); +} +.border-b-violet-100\/90 { + border-bottom-color: rgb(237 233 254 / 0.9); +} +.border-b-violet-100\/95 { + border-bottom-color: rgb(237 233 254 / 0.95); +} +.border-b-violet-200 { + --tw-border-opacity: 1; + border-bottom-color: rgb(221 214 254 / var(--tw-border-opacity)); +} +.border-b-violet-200\/0 { + border-bottom-color: rgb(221 214 254 / 0); +} +.border-b-violet-200\/10 { + border-bottom-color: rgb(221 214 254 / 0.1); +} +.border-b-violet-200\/100 { + border-bottom-color: rgb(221 214 254 / 1); +} +.border-b-violet-200\/20 { + border-bottom-color: rgb(221 214 254 / 0.2); +} +.border-b-violet-200\/25 { + border-bottom-color: rgb(221 214 254 / 0.25); +} +.border-b-violet-200\/30 { + border-bottom-color: rgb(221 214 254 / 0.3); +} +.border-b-violet-200\/40 { + border-bottom-color: rgb(221 214 254 / 0.4); +} +.border-b-violet-200\/5 { + border-bottom-color: rgb(221 214 254 / 0.05); +} +.border-b-violet-200\/50 { + border-bottom-color: rgb(221 214 254 / 0.5); +} +.border-b-violet-200\/60 { + border-bottom-color: rgb(221 214 254 / 0.6); +} +.border-b-violet-200\/70 { + border-bottom-color: rgb(221 214 254 / 0.7); +} +.border-b-violet-200\/75 { + border-bottom-color: rgb(221 214 254 / 0.75); +} +.border-b-violet-200\/80 { + border-bottom-color: rgb(221 214 254 / 0.8); +} +.border-b-violet-200\/90 { + border-bottom-color: rgb(221 214 254 / 0.9); +} +.border-b-violet-200\/95 { + border-bottom-color: rgb(221 214 254 / 0.95); +} +.border-b-violet-300 { + --tw-border-opacity: 1; + border-bottom-color: rgb(196 181 253 / var(--tw-border-opacity)); +} +.border-b-violet-300\/0 { + border-bottom-color: rgb(196 181 253 / 0); +} +.border-b-violet-300\/10 { + border-bottom-color: rgb(196 181 253 / 0.1); +} +.border-b-violet-300\/100 { + border-bottom-color: rgb(196 181 253 / 1); +} +.border-b-violet-300\/20 { + border-bottom-color: rgb(196 181 253 / 0.2); +} +.border-b-violet-300\/25 { + border-bottom-color: rgb(196 181 253 / 0.25); +} +.border-b-violet-300\/30 { + border-bottom-color: rgb(196 181 253 / 0.3); +} +.border-b-violet-300\/40 { + border-bottom-color: rgb(196 181 253 / 0.4); +} +.border-b-violet-300\/5 { + border-bottom-color: rgb(196 181 253 / 0.05); +} +.border-b-violet-300\/50 { + border-bottom-color: rgb(196 181 253 / 0.5); +} +.border-b-violet-300\/60 { + border-bottom-color: rgb(196 181 253 / 0.6); +} +.border-b-violet-300\/70 { + border-bottom-color: rgb(196 181 253 / 0.7); +} +.border-b-violet-300\/75 { + border-bottom-color: rgb(196 181 253 / 0.75); +} +.border-b-violet-300\/80 { + border-bottom-color: rgb(196 181 253 / 0.8); +} +.border-b-violet-300\/90 { + border-bottom-color: rgb(196 181 253 / 0.9); +} +.border-b-violet-300\/95 { + border-bottom-color: rgb(196 181 253 / 0.95); +} +.border-b-violet-400 { + --tw-border-opacity: 1; + border-bottom-color: rgb(167 139 250 / var(--tw-border-opacity)); +} +.border-b-violet-400\/0 { + border-bottom-color: rgb(167 139 250 / 0); +} +.border-b-violet-400\/10 { + border-bottom-color: rgb(167 139 250 / 0.1); +} +.border-b-violet-400\/100 { + border-bottom-color: rgb(167 139 250 / 1); +} +.border-b-violet-400\/20 { + border-bottom-color: rgb(167 139 250 / 0.2); +} +.border-b-violet-400\/25 { + border-bottom-color: rgb(167 139 250 / 0.25); +} +.border-b-violet-400\/30 { + border-bottom-color: rgb(167 139 250 / 0.3); +} +.border-b-violet-400\/40 { + border-bottom-color: rgb(167 139 250 / 0.4); +} +.border-b-violet-400\/5 { + border-bottom-color: rgb(167 139 250 / 0.05); +} +.border-b-violet-400\/50 { + border-bottom-color: rgb(167 139 250 / 0.5); +} +.border-b-violet-400\/60 { + border-bottom-color: rgb(167 139 250 / 0.6); +} +.border-b-violet-400\/70 { + border-bottom-color: rgb(167 139 250 / 0.7); +} +.border-b-violet-400\/75 { + border-bottom-color: rgb(167 139 250 / 0.75); +} +.border-b-violet-400\/80 { + border-bottom-color: rgb(167 139 250 / 0.8); +} +.border-b-violet-400\/90 { + border-bottom-color: rgb(167 139 250 / 0.9); +} +.border-b-violet-400\/95 { + border-bottom-color: rgb(167 139 250 / 0.95); +} +.border-b-violet-50 { + --tw-border-opacity: 1; + border-bottom-color: rgb(245 243 255 / var(--tw-border-opacity)); +} +.border-b-violet-50\/0 { + border-bottom-color: rgb(245 243 255 / 0); +} +.border-b-violet-50\/10 { + border-bottom-color: rgb(245 243 255 / 0.1); +} +.border-b-violet-50\/100 { + border-bottom-color: rgb(245 243 255 / 1); +} +.border-b-violet-50\/20 { + border-bottom-color: rgb(245 243 255 / 0.2); +} +.border-b-violet-50\/25 { + border-bottom-color: rgb(245 243 255 / 0.25); +} +.border-b-violet-50\/30 { + border-bottom-color: rgb(245 243 255 / 0.3); +} +.border-b-violet-50\/40 { + border-bottom-color: rgb(245 243 255 / 0.4); +} +.border-b-violet-50\/5 { + border-bottom-color: rgb(245 243 255 / 0.05); +} +.border-b-violet-50\/50 { + border-bottom-color: rgb(245 243 255 / 0.5); +} +.border-b-violet-50\/60 { + border-bottom-color: rgb(245 243 255 / 0.6); +} +.border-b-violet-50\/70 { + border-bottom-color: rgb(245 243 255 / 0.7); +} +.border-b-violet-50\/75 { + border-bottom-color: rgb(245 243 255 / 0.75); +} +.border-b-violet-50\/80 { + border-bottom-color: rgb(245 243 255 / 0.8); +} +.border-b-violet-50\/90 { + border-bottom-color: rgb(245 243 255 / 0.9); +} +.border-b-violet-50\/95 { + border-bottom-color: rgb(245 243 255 / 0.95); +} +.border-b-violet-500 { + --tw-border-opacity: 1; + border-bottom-color: rgb(139 92 246 / var(--tw-border-opacity)); +} +.border-b-violet-500\/0 { + border-bottom-color: rgb(139 92 246 / 0); +} +.border-b-violet-500\/10 { + border-bottom-color: rgb(139 92 246 / 0.1); +} +.border-b-violet-500\/100 { + border-bottom-color: rgb(139 92 246 / 1); +} +.border-b-violet-500\/20 { + border-bottom-color: rgb(139 92 246 / 0.2); +} +.border-b-violet-500\/25 { + border-bottom-color: rgb(139 92 246 / 0.25); +} +.border-b-violet-500\/30 { + border-bottom-color: rgb(139 92 246 / 0.3); +} +.border-b-violet-500\/40 { + border-bottom-color: rgb(139 92 246 / 0.4); +} +.border-b-violet-500\/5 { + border-bottom-color: rgb(139 92 246 / 0.05); +} +.border-b-violet-500\/50 { + border-bottom-color: rgb(139 92 246 / 0.5); +} +.border-b-violet-500\/60 { + border-bottom-color: rgb(139 92 246 / 0.6); +} +.border-b-violet-500\/70 { + border-bottom-color: rgb(139 92 246 / 0.7); +} +.border-b-violet-500\/75 { + border-bottom-color: rgb(139 92 246 / 0.75); +} +.border-b-violet-500\/80 { + border-bottom-color: rgb(139 92 246 / 0.8); +} +.border-b-violet-500\/90 { + border-bottom-color: rgb(139 92 246 / 0.9); +} +.border-b-violet-500\/95 { + border-bottom-color: rgb(139 92 246 / 0.95); +} +.border-b-violet-600 { + --tw-border-opacity: 1; + border-bottom-color: rgb(124 58 237 / var(--tw-border-opacity)); +} +.border-b-violet-600\/0 { + border-bottom-color: rgb(124 58 237 / 0); +} +.border-b-violet-600\/10 { + border-bottom-color: rgb(124 58 237 / 0.1); +} +.border-b-violet-600\/100 { + border-bottom-color: rgb(124 58 237 / 1); +} +.border-b-violet-600\/20 { + border-bottom-color: rgb(124 58 237 / 0.2); +} +.border-b-violet-600\/25 { + border-bottom-color: rgb(124 58 237 / 0.25); +} +.border-b-violet-600\/30 { + border-bottom-color: rgb(124 58 237 / 0.3); +} +.border-b-violet-600\/40 { + border-bottom-color: rgb(124 58 237 / 0.4); +} +.border-b-violet-600\/5 { + border-bottom-color: rgb(124 58 237 / 0.05); +} +.border-b-violet-600\/50 { + border-bottom-color: rgb(124 58 237 / 0.5); +} +.border-b-violet-600\/60 { + border-bottom-color: rgb(124 58 237 / 0.6); +} +.border-b-violet-600\/70 { + border-bottom-color: rgb(124 58 237 / 0.7); +} +.border-b-violet-600\/75 { + border-bottom-color: rgb(124 58 237 / 0.75); +} +.border-b-violet-600\/80 { + border-bottom-color: rgb(124 58 237 / 0.8); +} +.border-b-violet-600\/90 { + border-bottom-color: rgb(124 58 237 / 0.9); +} +.border-b-violet-600\/95 { + border-bottom-color: rgb(124 58 237 / 0.95); +} +.border-b-violet-700 { + --tw-border-opacity: 1; + border-bottom-color: rgb(109 40 217 / var(--tw-border-opacity)); +} +.border-b-violet-700\/0 { + border-bottom-color: rgb(109 40 217 / 0); +} +.border-b-violet-700\/10 { + border-bottom-color: rgb(109 40 217 / 0.1); +} +.border-b-violet-700\/100 { + border-bottom-color: rgb(109 40 217 / 1); +} +.border-b-violet-700\/20 { + border-bottom-color: rgb(109 40 217 / 0.2); +} +.border-b-violet-700\/25 { + border-bottom-color: rgb(109 40 217 / 0.25); +} +.border-b-violet-700\/30 { + border-bottom-color: rgb(109 40 217 / 0.3); +} +.border-b-violet-700\/40 { + border-bottom-color: rgb(109 40 217 / 0.4); +} +.border-b-violet-700\/5 { + border-bottom-color: rgb(109 40 217 / 0.05); +} +.border-b-violet-700\/50 { + border-bottom-color: rgb(109 40 217 / 0.5); +} +.border-b-violet-700\/60 { + border-bottom-color: rgb(109 40 217 / 0.6); +} +.border-b-violet-700\/70 { + border-bottom-color: rgb(109 40 217 / 0.7); +} +.border-b-violet-700\/75 { + border-bottom-color: rgb(109 40 217 / 0.75); +} +.border-b-violet-700\/80 { + border-bottom-color: rgb(109 40 217 / 0.8); +} +.border-b-violet-700\/90 { + border-bottom-color: rgb(109 40 217 / 0.9); +} +.border-b-violet-700\/95 { + border-bottom-color: rgb(109 40 217 / 0.95); +} +.border-b-violet-800 { + --tw-border-opacity: 1; + border-bottom-color: rgb(91 33 182 / var(--tw-border-opacity)); +} +.border-b-violet-800\/0 { + border-bottom-color: rgb(91 33 182 / 0); +} +.border-b-violet-800\/10 { + border-bottom-color: rgb(91 33 182 / 0.1); +} +.border-b-violet-800\/100 { + border-bottom-color: rgb(91 33 182 / 1); +} +.border-b-violet-800\/20 { + border-bottom-color: rgb(91 33 182 / 0.2); +} +.border-b-violet-800\/25 { + border-bottom-color: rgb(91 33 182 / 0.25); +} +.border-b-violet-800\/30 { + border-bottom-color: rgb(91 33 182 / 0.3); +} +.border-b-violet-800\/40 { + border-bottom-color: rgb(91 33 182 / 0.4); +} +.border-b-violet-800\/5 { + border-bottom-color: rgb(91 33 182 / 0.05); +} +.border-b-violet-800\/50 { + border-bottom-color: rgb(91 33 182 / 0.5); +} +.border-b-violet-800\/60 { + border-bottom-color: rgb(91 33 182 / 0.6); +} +.border-b-violet-800\/70 { + border-bottom-color: rgb(91 33 182 / 0.7); +} +.border-b-violet-800\/75 { + border-bottom-color: rgb(91 33 182 / 0.75); +} +.border-b-violet-800\/80 { + border-bottom-color: rgb(91 33 182 / 0.8); +} +.border-b-violet-800\/90 { + border-bottom-color: rgb(91 33 182 / 0.9); +} +.border-b-violet-800\/95 { + border-bottom-color: rgb(91 33 182 / 0.95); +} +.border-b-violet-900 { + --tw-border-opacity: 1; + border-bottom-color: rgb(76 29 149 / var(--tw-border-opacity)); +} +.border-b-violet-900\/0 { + border-bottom-color: rgb(76 29 149 / 0); +} +.border-b-violet-900\/10 { + border-bottom-color: rgb(76 29 149 / 0.1); +} +.border-b-violet-900\/100 { + border-bottom-color: rgb(76 29 149 / 1); +} +.border-b-violet-900\/20 { + border-bottom-color: rgb(76 29 149 / 0.2); +} +.border-b-violet-900\/25 { + border-bottom-color: rgb(76 29 149 / 0.25); +} +.border-b-violet-900\/30 { + border-bottom-color: rgb(76 29 149 / 0.3); +} +.border-b-violet-900\/40 { + border-bottom-color: rgb(76 29 149 / 0.4); +} +.border-b-violet-900\/5 { + border-bottom-color: rgb(76 29 149 / 0.05); +} +.border-b-violet-900\/50 { + border-bottom-color: rgb(76 29 149 / 0.5); +} +.border-b-violet-900\/60 { + border-bottom-color: rgb(76 29 149 / 0.6); +} +.border-b-violet-900\/70 { + border-bottom-color: rgb(76 29 149 / 0.7); +} +.border-b-violet-900\/75 { + border-bottom-color: rgb(76 29 149 / 0.75); +} +.border-b-violet-900\/80 { + border-bottom-color: rgb(76 29 149 / 0.8); +} +.border-b-violet-900\/90 { + border-bottom-color: rgb(76 29 149 / 0.9); +} +.border-b-violet-900\/95 { + border-bottom-color: rgb(76 29 149 / 0.95); +} +.border-l-Occupation_du_sol-primary { + border-left-color: var(--Occupation_du_sol-primary); +} +.border-l-Occupation_du_sol-secondary { + border-left-color: var(--Occupation_du_sol-secondary); +} +.border-l-Occupation_du_sol-tertiary { + border-left-color: var(--Occupation_du_sol-tertiary); +} +.border-l-violet-100 { + --tw-border-opacity: 1; + border-left-color: rgb(237 233 254 / var(--tw-border-opacity)); +} +.border-l-violet-100\/0 { + border-left-color: rgb(237 233 254 / 0); +} +.border-l-violet-100\/10 { + border-left-color: rgb(237 233 254 / 0.1); +} +.border-l-violet-100\/100 { + border-left-color: rgb(237 233 254 / 1); +} +.border-l-violet-100\/20 { + border-left-color: rgb(237 233 254 / 0.2); +} +.border-l-violet-100\/25 { + border-left-color: rgb(237 233 254 / 0.25); +} +.border-l-violet-100\/30 { + border-left-color: rgb(237 233 254 / 0.3); +} +.border-l-violet-100\/40 { + border-left-color: rgb(237 233 254 / 0.4); +} +.border-l-violet-100\/5 { + border-left-color: rgb(237 233 254 / 0.05); +} +.border-l-violet-100\/50 { + border-left-color: rgb(237 233 254 / 0.5); +} +.border-l-violet-100\/60 { + border-left-color: rgb(237 233 254 / 0.6); +} +.border-l-violet-100\/70 { + border-left-color: rgb(237 233 254 / 0.7); +} +.border-l-violet-100\/75 { + border-left-color: rgb(237 233 254 / 0.75); +} +.border-l-violet-100\/80 { + border-left-color: rgb(237 233 254 / 0.8); +} +.border-l-violet-100\/90 { + border-left-color: rgb(237 233 254 / 0.9); +} +.border-l-violet-100\/95 { + border-left-color: rgb(237 233 254 / 0.95); +} +.border-l-violet-200 { + --tw-border-opacity: 1; + border-left-color: rgb(221 214 254 / var(--tw-border-opacity)); +} +.border-l-violet-200\/0 { + border-left-color: rgb(221 214 254 / 0); +} +.border-l-violet-200\/10 { + border-left-color: rgb(221 214 254 / 0.1); +} +.border-l-violet-200\/100 { + border-left-color: rgb(221 214 254 / 1); +} +.border-l-violet-200\/20 { + border-left-color: rgb(221 214 254 / 0.2); +} +.border-l-violet-200\/25 { + border-left-color: rgb(221 214 254 / 0.25); +} +.border-l-violet-200\/30 { + border-left-color: rgb(221 214 254 / 0.3); +} +.border-l-violet-200\/40 { + border-left-color: rgb(221 214 254 / 0.4); +} +.border-l-violet-200\/5 { + border-left-color: rgb(221 214 254 / 0.05); +} +.border-l-violet-200\/50 { + border-left-color: rgb(221 214 254 / 0.5); +} +.border-l-violet-200\/60 { + border-left-color: rgb(221 214 254 / 0.6); +} +.border-l-violet-200\/70 { + border-left-color: rgb(221 214 254 / 0.7); +} +.border-l-violet-200\/75 { + border-left-color: rgb(221 214 254 / 0.75); +} +.border-l-violet-200\/80 { + border-left-color: rgb(221 214 254 / 0.8); +} +.border-l-violet-200\/90 { + border-left-color: rgb(221 214 254 / 0.9); +} +.border-l-violet-200\/95 { + border-left-color: rgb(221 214 254 / 0.95); +} +.border-l-violet-300 { + --tw-border-opacity: 1; + border-left-color: rgb(196 181 253 / var(--tw-border-opacity)); +} +.border-l-violet-300\/0 { + border-left-color: rgb(196 181 253 / 0); +} +.border-l-violet-300\/10 { + border-left-color: rgb(196 181 253 / 0.1); +} +.border-l-violet-300\/100 { + border-left-color: rgb(196 181 253 / 1); +} +.border-l-violet-300\/20 { + border-left-color: rgb(196 181 253 / 0.2); +} +.border-l-violet-300\/25 { + border-left-color: rgb(196 181 253 / 0.25); +} +.border-l-violet-300\/30 { + border-left-color: rgb(196 181 253 / 0.3); +} +.border-l-violet-300\/40 { + border-left-color: rgb(196 181 253 / 0.4); +} +.border-l-violet-300\/5 { + border-left-color: rgb(196 181 253 / 0.05); +} +.border-l-violet-300\/50 { + border-left-color: rgb(196 181 253 / 0.5); +} +.border-l-violet-300\/60 { + border-left-color: rgb(196 181 253 / 0.6); +} +.border-l-violet-300\/70 { + border-left-color: rgb(196 181 253 / 0.7); +} +.border-l-violet-300\/75 { + border-left-color: rgb(196 181 253 / 0.75); +} +.border-l-violet-300\/80 { + border-left-color: rgb(196 181 253 / 0.8); +} +.border-l-violet-300\/90 { + border-left-color: rgb(196 181 253 / 0.9); +} +.border-l-violet-300\/95 { + border-left-color: rgb(196 181 253 / 0.95); +} +.border-l-violet-400 { + --tw-border-opacity: 1; + border-left-color: rgb(167 139 250 / var(--tw-border-opacity)); +} +.border-l-violet-400\/0 { + border-left-color: rgb(167 139 250 / 0); +} +.border-l-violet-400\/10 { + border-left-color: rgb(167 139 250 / 0.1); +} +.border-l-violet-400\/100 { + border-left-color: rgb(167 139 250 / 1); +} +.border-l-violet-400\/20 { + border-left-color: rgb(167 139 250 / 0.2); +} +.border-l-violet-400\/25 { + border-left-color: rgb(167 139 250 / 0.25); +} +.border-l-violet-400\/30 { + border-left-color: rgb(167 139 250 / 0.3); +} +.border-l-violet-400\/40 { + border-left-color: rgb(167 139 250 / 0.4); +} +.border-l-violet-400\/5 { + border-left-color: rgb(167 139 250 / 0.05); +} +.border-l-violet-400\/50 { + border-left-color: rgb(167 139 250 / 0.5); +} +.border-l-violet-400\/60 { + border-left-color: rgb(167 139 250 / 0.6); +} +.border-l-violet-400\/70 { + border-left-color: rgb(167 139 250 / 0.7); +} +.border-l-violet-400\/75 { + border-left-color: rgb(167 139 250 / 0.75); +} +.border-l-violet-400\/80 { + border-left-color: rgb(167 139 250 / 0.8); +} +.border-l-violet-400\/90 { + border-left-color: rgb(167 139 250 / 0.9); +} +.border-l-violet-400\/95 { + border-left-color: rgb(167 139 250 / 0.95); +} +.border-l-violet-50 { + --tw-border-opacity: 1; + border-left-color: rgb(245 243 255 / var(--tw-border-opacity)); +} +.border-l-violet-50\/0 { + border-left-color: rgb(245 243 255 / 0); +} +.border-l-violet-50\/10 { + border-left-color: rgb(245 243 255 / 0.1); +} +.border-l-violet-50\/100 { + border-left-color: rgb(245 243 255 / 1); +} +.border-l-violet-50\/20 { + border-left-color: rgb(245 243 255 / 0.2); +} +.border-l-violet-50\/25 { + border-left-color: rgb(245 243 255 / 0.25); +} +.border-l-violet-50\/30 { + border-left-color: rgb(245 243 255 / 0.3); +} +.border-l-violet-50\/40 { + border-left-color: rgb(245 243 255 / 0.4); +} +.border-l-violet-50\/5 { + border-left-color: rgb(245 243 255 / 0.05); +} +.border-l-violet-50\/50 { + border-left-color: rgb(245 243 255 / 0.5); +} +.border-l-violet-50\/60 { + border-left-color: rgb(245 243 255 / 0.6); +} +.border-l-violet-50\/70 { + border-left-color: rgb(245 243 255 / 0.7); +} +.border-l-violet-50\/75 { + border-left-color: rgb(245 243 255 / 0.75); +} +.border-l-violet-50\/80 { + border-left-color: rgb(245 243 255 / 0.8); +} +.border-l-violet-50\/90 { + border-left-color: rgb(245 243 255 / 0.9); +} +.border-l-violet-50\/95 { + border-left-color: rgb(245 243 255 / 0.95); +} +.border-l-violet-500 { + --tw-border-opacity: 1; + border-left-color: rgb(139 92 246 / var(--tw-border-opacity)); +} +.border-l-violet-500\/0 { + border-left-color: rgb(139 92 246 / 0); +} +.border-l-violet-500\/10 { + border-left-color: rgb(139 92 246 / 0.1); +} +.border-l-violet-500\/100 { + border-left-color: rgb(139 92 246 / 1); +} +.border-l-violet-500\/20 { + border-left-color: rgb(139 92 246 / 0.2); +} +.border-l-violet-500\/25 { + border-left-color: rgb(139 92 246 / 0.25); +} +.border-l-violet-500\/30 { + border-left-color: rgb(139 92 246 / 0.3); +} +.border-l-violet-500\/40 { + border-left-color: rgb(139 92 246 / 0.4); +} +.border-l-violet-500\/5 { + border-left-color: rgb(139 92 246 / 0.05); +} +.border-l-violet-500\/50 { + border-left-color: rgb(139 92 246 / 0.5); +} +.border-l-violet-500\/60 { + border-left-color: rgb(139 92 246 / 0.6); +} +.border-l-violet-500\/70 { + border-left-color: rgb(139 92 246 / 0.7); +} +.border-l-violet-500\/75 { + border-left-color: rgb(139 92 246 / 0.75); +} +.border-l-violet-500\/80 { + border-left-color: rgb(139 92 246 / 0.8); +} +.border-l-violet-500\/90 { + border-left-color: rgb(139 92 246 / 0.9); +} +.border-l-violet-500\/95 { + border-left-color: rgb(139 92 246 / 0.95); +} +.border-l-violet-600 { + --tw-border-opacity: 1; + border-left-color: rgb(124 58 237 / var(--tw-border-opacity)); +} +.border-l-violet-600\/0 { + border-left-color: rgb(124 58 237 / 0); +} +.border-l-violet-600\/10 { + border-left-color: rgb(124 58 237 / 0.1); +} +.border-l-violet-600\/100 { + border-left-color: rgb(124 58 237 / 1); +} +.border-l-violet-600\/20 { + border-left-color: rgb(124 58 237 / 0.2); +} +.border-l-violet-600\/25 { + border-left-color: rgb(124 58 237 / 0.25); +} +.border-l-violet-600\/30 { + border-left-color: rgb(124 58 237 / 0.3); +} +.border-l-violet-600\/40 { + border-left-color: rgb(124 58 237 / 0.4); +} +.border-l-violet-600\/5 { + border-left-color: rgb(124 58 237 / 0.05); +} +.border-l-violet-600\/50 { + border-left-color: rgb(124 58 237 / 0.5); +} +.border-l-violet-600\/60 { + border-left-color: rgb(124 58 237 / 0.6); +} +.border-l-violet-600\/70 { + border-left-color: rgb(124 58 237 / 0.7); +} +.border-l-violet-600\/75 { + border-left-color: rgb(124 58 237 / 0.75); +} +.border-l-violet-600\/80 { + border-left-color: rgb(124 58 237 / 0.8); +} +.border-l-violet-600\/90 { + border-left-color: rgb(124 58 237 / 0.9); +} +.border-l-violet-600\/95 { + border-left-color: rgb(124 58 237 / 0.95); +} +.border-l-violet-700 { + --tw-border-opacity: 1; + border-left-color: rgb(109 40 217 / var(--tw-border-opacity)); +} +.border-l-violet-700\/0 { + border-left-color: rgb(109 40 217 / 0); +} +.border-l-violet-700\/10 { + border-left-color: rgb(109 40 217 / 0.1); +} +.border-l-violet-700\/100 { + border-left-color: rgb(109 40 217 / 1); +} +.border-l-violet-700\/20 { + border-left-color: rgb(109 40 217 / 0.2); +} +.border-l-violet-700\/25 { + border-left-color: rgb(109 40 217 / 0.25); +} +.border-l-violet-700\/30 { + border-left-color: rgb(109 40 217 / 0.3); +} +.border-l-violet-700\/40 { + border-left-color: rgb(109 40 217 / 0.4); +} +.border-l-violet-700\/5 { + border-left-color: rgb(109 40 217 / 0.05); +} +.border-l-violet-700\/50 { + border-left-color: rgb(109 40 217 / 0.5); +} +.border-l-violet-700\/60 { + border-left-color: rgb(109 40 217 / 0.6); +} +.border-l-violet-700\/70 { + border-left-color: rgb(109 40 217 / 0.7); +} +.border-l-violet-700\/75 { + border-left-color: rgb(109 40 217 / 0.75); +} +.border-l-violet-700\/80 { + border-left-color: rgb(109 40 217 / 0.8); +} +.border-l-violet-700\/90 { + border-left-color: rgb(109 40 217 / 0.9); +} +.border-l-violet-700\/95 { + border-left-color: rgb(109 40 217 / 0.95); +} +.border-l-violet-800 { + --tw-border-opacity: 1; + border-left-color: rgb(91 33 182 / var(--tw-border-opacity)); +} +.border-l-violet-800\/0 { + border-left-color: rgb(91 33 182 / 0); +} +.border-l-violet-800\/10 { + border-left-color: rgb(91 33 182 / 0.1); +} +.border-l-violet-800\/100 { + border-left-color: rgb(91 33 182 / 1); +} +.border-l-violet-800\/20 { + border-left-color: rgb(91 33 182 / 0.2); +} +.border-l-violet-800\/25 { + border-left-color: rgb(91 33 182 / 0.25); +} +.border-l-violet-800\/30 { + border-left-color: rgb(91 33 182 / 0.3); +} +.border-l-violet-800\/40 { + border-left-color: rgb(91 33 182 / 0.4); +} +.border-l-violet-800\/5 { + border-left-color: rgb(91 33 182 / 0.05); +} +.border-l-violet-800\/50 { + border-left-color: rgb(91 33 182 / 0.5); +} +.border-l-violet-800\/60 { + border-left-color: rgb(91 33 182 / 0.6); +} +.border-l-violet-800\/70 { + border-left-color: rgb(91 33 182 / 0.7); +} +.border-l-violet-800\/75 { + border-left-color: rgb(91 33 182 / 0.75); +} +.border-l-violet-800\/80 { + border-left-color: rgb(91 33 182 / 0.8); +} +.border-l-violet-800\/90 { + border-left-color: rgb(91 33 182 / 0.9); +} +.border-l-violet-800\/95 { + border-left-color: rgb(91 33 182 / 0.95); +} +.border-l-violet-900 { + --tw-border-opacity: 1; + border-left-color: rgb(76 29 149 / var(--tw-border-opacity)); +} +.border-l-violet-900\/0 { + border-left-color: rgb(76 29 149 / 0); +} +.border-l-violet-900\/10 { + border-left-color: rgb(76 29 149 / 0.1); +} +.border-l-violet-900\/100 { + border-left-color: rgb(76 29 149 / 1); +} +.border-l-violet-900\/20 { + border-left-color: rgb(76 29 149 / 0.2); +} +.border-l-violet-900\/25 { + border-left-color: rgb(76 29 149 / 0.25); +} +.border-l-violet-900\/30 { + border-left-color: rgb(76 29 149 / 0.3); +} +.border-l-violet-900\/40 { + border-left-color: rgb(76 29 149 / 0.4); +} +.border-l-violet-900\/5 { + border-left-color: rgb(76 29 149 / 0.05); +} +.border-l-violet-900\/50 { + border-left-color: rgb(76 29 149 / 0.5); +} +.border-l-violet-900\/60 { + border-left-color: rgb(76 29 149 / 0.6); +} +.border-l-violet-900\/70 { + border-left-color: rgb(76 29 149 / 0.7); +} +.border-l-violet-900\/75 { + border-left-color: rgb(76 29 149 / 0.75); +} +.border-l-violet-900\/80 { + border-left-color: rgb(76 29 149 / 0.8); +} +.border-l-violet-900\/90 { + border-left-color: rgb(76 29 149 / 0.9); +} +.border-l-violet-900\/95 { + border-left-color: rgb(76 29 149 / 0.95); +} +.border-r-Occupation_du_sol-primary { + border-right-color: var(--Occupation_du_sol-primary); +} +.border-r-Occupation_du_sol-secondary { + border-right-color: var(--Occupation_du_sol-secondary); +} +.border-r-Occupation_du_sol-tertiary { + border-right-color: var(--Occupation_du_sol-tertiary); +} +.border-r-violet-100 { + --tw-border-opacity: 1; + border-right-color: rgb(237 233 254 / var(--tw-border-opacity)); +} +.border-r-violet-100\/0 { + border-right-color: rgb(237 233 254 / 0); +} +.border-r-violet-100\/10 { + border-right-color: rgb(237 233 254 / 0.1); +} +.border-r-violet-100\/100 { + border-right-color: rgb(237 233 254 / 1); +} +.border-r-violet-100\/20 { + border-right-color: rgb(237 233 254 / 0.2); +} +.border-r-violet-100\/25 { + border-right-color: rgb(237 233 254 / 0.25); +} +.border-r-violet-100\/30 { + border-right-color: rgb(237 233 254 / 0.3); +} +.border-r-violet-100\/40 { + border-right-color: rgb(237 233 254 / 0.4); +} +.border-r-violet-100\/5 { + border-right-color: rgb(237 233 254 / 0.05); +} +.border-r-violet-100\/50 { + border-right-color: rgb(237 233 254 / 0.5); +} +.border-r-violet-100\/60 { + border-right-color: rgb(237 233 254 / 0.6); +} +.border-r-violet-100\/70 { + border-right-color: rgb(237 233 254 / 0.7); +} +.border-r-violet-100\/75 { + border-right-color: rgb(237 233 254 / 0.75); +} +.border-r-violet-100\/80 { + border-right-color: rgb(237 233 254 / 0.8); +} +.border-r-violet-100\/90 { + border-right-color: rgb(237 233 254 / 0.9); +} +.border-r-violet-100\/95 { + border-right-color: rgb(237 233 254 / 0.95); +} +.border-r-violet-200 { + --tw-border-opacity: 1; + border-right-color: rgb(221 214 254 / var(--tw-border-opacity)); +} +.border-r-violet-200\/0 { + border-right-color: rgb(221 214 254 / 0); +} +.border-r-violet-200\/10 { + border-right-color: rgb(221 214 254 / 0.1); +} +.border-r-violet-200\/100 { + border-right-color: rgb(221 214 254 / 1); +} +.border-r-violet-200\/20 { + border-right-color: rgb(221 214 254 / 0.2); +} +.border-r-violet-200\/25 { + border-right-color: rgb(221 214 254 / 0.25); +} +.border-r-violet-200\/30 { + border-right-color: rgb(221 214 254 / 0.3); +} +.border-r-violet-200\/40 { + border-right-color: rgb(221 214 254 / 0.4); +} +.border-r-violet-200\/5 { + border-right-color: rgb(221 214 254 / 0.05); +} +.border-r-violet-200\/50 { + border-right-color: rgb(221 214 254 / 0.5); +} +.border-r-violet-200\/60 { + border-right-color: rgb(221 214 254 / 0.6); +} +.border-r-violet-200\/70 { + border-right-color: rgb(221 214 254 / 0.7); +} +.border-r-violet-200\/75 { + border-right-color: rgb(221 214 254 / 0.75); +} +.border-r-violet-200\/80 { + border-right-color: rgb(221 214 254 / 0.8); +} +.border-r-violet-200\/90 { + border-right-color: rgb(221 214 254 / 0.9); +} +.border-r-violet-200\/95 { + border-right-color: rgb(221 214 254 / 0.95); +} +.border-r-violet-300 { + --tw-border-opacity: 1; + border-right-color: rgb(196 181 253 / var(--tw-border-opacity)); +} +.border-r-violet-300\/0 { + border-right-color: rgb(196 181 253 / 0); +} +.border-r-violet-300\/10 { + border-right-color: rgb(196 181 253 / 0.1); +} +.border-r-violet-300\/100 { + border-right-color: rgb(196 181 253 / 1); +} +.border-r-violet-300\/20 { + border-right-color: rgb(196 181 253 / 0.2); +} +.border-r-violet-300\/25 { + border-right-color: rgb(196 181 253 / 0.25); +} +.border-r-violet-300\/30 { + border-right-color: rgb(196 181 253 / 0.3); +} +.border-r-violet-300\/40 { + border-right-color: rgb(196 181 253 / 0.4); +} +.border-r-violet-300\/5 { + border-right-color: rgb(196 181 253 / 0.05); +} +.border-r-violet-300\/50 { + border-right-color: rgb(196 181 253 / 0.5); +} +.border-r-violet-300\/60 { + border-right-color: rgb(196 181 253 / 0.6); +} +.border-r-violet-300\/70 { + border-right-color: rgb(196 181 253 / 0.7); +} +.border-r-violet-300\/75 { + border-right-color: rgb(196 181 253 / 0.75); +} +.border-r-violet-300\/80 { + border-right-color: rgb(196 181 253 / 0.8); +} +.border-r-violet-300\/90 { + border-right-color: rgb(196 181 253 / 0.9); +} +.border-r-violet-300\/95 { + border-right-color: rgb(196 181 253 / 0.95); +} +.border-r-violet-400 { + --tw-border-opacity: 1; + border-right-color: rgb(167 139 250 / var(--tw-border-opacity)); +} +.border-r-violet-400\/0 { + border-right-color: rgb(167 139 250 / 0); +} +.border-r-violet-400\/10 { + border-right-color: rgb(167 139 250 / 0.1); +} +.border-r-violet-400\/100 { + border-right-color: rgb(167 139 250 / 1); +} +.border-r-violet-400\/20 { + border-right-color: rgb(167 139 250 / 0.2); +} +.border-r-violet-400\/25 { + border-right-color: rgb(167 139 250 / 0.25); +} +.border-r-violet-400\/30 { + border-right-color: rgb(167 139 250 / 0.3); +} +.border-r-violet-400\/40 { + border-right-color: rgb(167 139 250 / 0.4); +} +.border-r-violet-400\/5 { + border-right-color: rgb(167 139 250 / 0.05); +} +.border-r-violet-400\/50 { + border-right-color: rgb(167 139 250 / 0.5); +} +.border-r-violet-400\/60 { + border-right-color: rgb(167 139 250 / 0.6); +} +.border-r-violet-400\/70 { + border-right-color: rgb(167 139 250 / 0.7); +} +.border-r-violet-400\/75 { + border-right-color: rgb(167 139 250 / 0.75); +} +.border-r-violet-400\/80 { + border-right-color: rgb(167 139 250 / 0.8); +} +.border-r-violet-400\/90 { + border-right-color: rgb(167 139 250 / 0.9); +} +.border-r-violet-400\/95 { + border-right-color: rgb(167 139 250 / 0.95); +} +.border-r-violet-50 { + --tw-border-opacity: 1; + border-right-color: rgb(245 243 255 / var(--tw-border-opacity)); +} +.border-r-violet-50\/0 { + border-right-color: rgb(245 243 255 / 0); +} +.border-r-violet-50\/10 { + border-right-color: rgb(245 243 255 / 0.1); +} +.border-r-violet-50\/100 { + border-right-color: rgb(245 243 255 / 1); +} +.border-r-violet-50\/20 { + border-right-color: rgb(245 243 255 / 0.2); +} +.border-r-violet-50\/25 { + border-right-color: rgb(245 243 255 / 0.25); +} +.border-r-violet-50\/30 { + border-right-color: rgb(245 243 255 / 0.3); +} +.border-r-violet-50\/40 { + border-right-color: rgb(245 243 255 / 0.4); +} +.border-r-violet-50\/5 { + border-right-color: rgb(245 243 255 / 0.05); +} +.border-r-violet-50\/50 { + border-right-color: rgb(245 243 255 / 0.5); +} +.border-r-violet-50\/60 { + border-right-color: rgb(245 243 255 / 0.6); +} +.border-r-violet-50\/70 { + border-right-color: rgb(245 243 255 / 0.7); +} +.border-r-violet-50\/75 { + border-right-color: rgb(245 243 255 / 0.75); +} +.border-r-violet-50\/80 { + border-right-color: rgb(245 243 255 / 0.8); +} +.border-r-violet-50\/90 { + border-right-color: rgb(245 243 255 / 0.9); +} +.border-r-violet-50\/95 { + border-right-color: rgb(245 243 255 / 0.95); +} +.border-r-violet-500 { + --tw-border-opacity: 1; + border-right-color: rgb(139 92 246 / var(--tw-border-opacity)); +} +.border-r-violet-500\/0 { + border-right-color: rgb(139 92 246 / 0); +} +.border-r-violet-500\/10 { + border-right-color: rgb(139 92 246 / 0.1); +} +.border-r-violet-500\/100 { + border-right-color: rgb(139 92 246 / 1); +} +.border-r-violet-500\/20 { + border-right-color: rgb(139 92 246 / 0.2); +} +.border-r-violet-500\/25 { + border-right-color: rgb(139 92 246 / 0.25); +} +.border-r-violet-500\/30 { + border-right-color: rgb(139 92 246 / 0.3); +} +.border-r-violet-500\/40 { + border-right-color: rgb(139 92 246 / 0.4); +} +.border-r-violet-500\/5 { + border-right-color: rgb(139 92 246 / 0.05); +} +.border-r-violet-500\/50 { + border-right-color: rgb(139 92 246 / 0.5); +} +.border-r-violet-500\/60 { + border-right-color: rgb(139 92 246 / 0.6); +} +.border-r-violet-500\/70 { + border-right-color: rgb(139 92 246 / 0.7); +} +.border-r-violet-500\/75 { + border-right-color: rgb(139 92 246 / 0.75); +} +.border-r-violet-500\/80 { + border-right-color: rgb(139 92 246 / 0.8); +} +.border-r-violet-500\/90 { + border-right-color: rgb(139 92 246 / 0.9); +} +.border-r-violet-500\/95 { + border-right-color: rgb(139 92 246 / 0.95); +} +.border-r-violet-600 { + --tw-border-opacity: 1; + border-right-color: rgb(124 58 237 / var(--tw-border-opacity)); +} +.border-r-violet-600\/0 { + border-right-color: rgb(124 58 237 / 0); +} +.border-r-violet-600\/10 { + border-right-color: rgb(124 58 237 / 0.1); +} +.border-r-violet-600\/100 { + border-right-color: rgb(124 58 237 / 1); +} +.border-r-violet-600\/20 { + border-right-color: rgb(124 58 237 / 0.2); +} +.border-r-violet-600\/25 { + border-right-color: rgb(124 58 237 / 0.25); +} +.border-r-violet-600\/30 { + border-right-color: rgb(124 58 237 / 0.3); +} +.border-r-violet-600\/40 { + border-right-color: rgb(124 58 237 / 0.4); +} +.border-r-violet-600\/5 { + border-right-color: rgb(124 58 237 / 0.05); +} +.border-r-violet-600\/50 { + border-right-color: rgb(124 58 237 / 0.5); +} +.border-r-violet-600\/60 { + border-right-color: rgb(124 58 237 / 0.6); +} +.border-r-violet-600\/70 { + border-right-color: rgb(124 58 237 / 0.7); +} +.border-r-violet-600\/75 { + border-right-color: rgb(124 58 237 / 0.75); +} +.border-r-violet-600\/80 { + border-right-color: rgb(124 58 237 / 0.8); +} +.border-r-violet-600\/90 { + border-right-color: rgb(124 58 237 / 0.9); +} +.border-r-violet-600\/95 { + border-right-color: rgb(124 58 237 / 0.95); +} +.border-r-violet-700 { + --tw-border-opacity: 1; + border-right-color: rgb(109 40 217 / var(--tw-border-opacity)); +} +.border-r-violet-700\/0 { + border-right-color: rgb(109 40 217 / 0); +} +.border-r-violet-700\/10 { + border-right-color: rgb(109 40 217 / 0.1); +} +.border-r-violet-700\/100 { + border-right-color: rgb(109 40 217 / 1); +} +.border-r-violet-700\/20 { + border-right-color: rgb(109 40 217 / 0.2); +} +.border-r-violet-700\/25 { + border-right-color: rgb(109 40 217 / 0.25); +} +.border-r-violet-700\/30 { + border-right-color: rgb(109 40 217 / 0.3); +} +.border-r-violet-700\/40 { + border-right-color: rgb(109 40 217 / 0.4); +} +.border-r-violet-700\/5 { + border-right-color: rgb(109 40 217 / 0.05); +} +.border-r-violet-700\/50 { + border-right-color: rgb(109 40 217 / 0.5); +} +.border-r-violet-700\/60 { + border-right-color: rgb(109 40 217 / 0.6); +} +.border-r-violet-700\/70 { + border-right-color: rgb(109 40 217 / 0.7); +} +.border-r-violet-700\/75 { + border-right-color: rgb(109 40 217 / 0.75); +} +.border-r-violet-700\/80 { + border-right-color: rgb(109 40 217 / 0.8); +} +.border-r-violet-700\/90 { + border-right-color: rgb(109 40 217 / 0.9); +} +.border-r-violet-700\/95 { + border-right-color: rgb(109 40 217 / 0.95); +} +.border-r-violet-800 { + --tw-border-opacity: 1; + border-right-color: rgb(91 33 182 / var(--tw-border-opacity)); +} +.border-r-violet-800\/0 { + border-right-color: rgb(91 33 182 / 0); +} +.border-r-violet-800\/10 { + border-right-color: rgb(91 33 182 / 0.1); +} +.border-r-violet-800\/100 { + border-right-color: rgb(91 33 182 / 1); +} +.border-r-violet-800\/20 { + border-right-color: rgb(91 33 182 / 0.2); +} +.border-r-violet-800\/25 { + border-right-color: rgb(91 33 182 / 0.25); +} +.border-r-violet-800\/30 { + border-right-color: rgb(91 33 182 / 0.3); +} +.border-r-violet-800\/40 { + border-right-color: rgb(91 33 182 / 0.4); +} +.border-r-violet-800\/5 { + border-right-color: rgb(91 33 182 / 0.05); +} +.border-r-violet-800\/50 { + border-right-color: rgb(91 33 182 / 0.5); +} +.border-r-violet-800\/60 { + border-right-color: rgb(91 33 182 / 0.6); +} +.border-r-violet-800\/70 { + border-right-color: rgb(91 33 182 / 0.7); +} +.border-r-violet-800\/75 { + border-right-color: rgb(91 33 182 / 0.75); +} +.border-r-violet-800\/80 { + border-right-color: rgb(91 33 182 / 0.8); +} +.border-r-violet-800\/90 { + border-right-color: rgb(91 33 182 / 0.9); +} +.border-r-violet-800\/95 { + border-right-color: rgb(91 33 182 / 0.95); +} +.border-r-violet-900 { + --tw-border-opacity: 1; + border-right-color: rgb(76 29 149 / var(--tw-border-opacity)); +} +.border-r-violet-900\/0 { + border-right-color: rgb(76 29 149 / 0); +} +.border-r-violet-900\/10 { + border-right-color: rgb(76 29 149 / 0.1); +} +.border-r-violet-900\/100 { + border-right-color: rgb(76 29 149 / 1); +} +.border-r-violet-900\/20 { + border-right-color: rgb(76 29 149 / 0.2); +} +.border-r-violet-900\/25 { + border-right-color: rgb(76 29 149 / 0.25); +} +.border-r-violet-900\/30 { + border-right-color: rgb(76 29 149 / 0.3); +} +.border-r-violet-900\/40 { + border-right-color: rgb(76 29 149 / 0.4); +} +.border-r-violet-900\/5 { + border-right-color: rgb(76 29 149 / 0.05); +} +.border-r-violet-900\/50 { + border-right-color: rgb(76 29 149 / 0.5); +} +.border-r-violet-900\/60 { + border-right-color: rgb(76 29 149 / 0.6); +} +.border-r-violet-900\/70 { + border-right-color: rgb(76 29 149 / 0.7); +} +.border-r-violet-900\/75 { + border-right-color: rgb(76 29 149 / 0.75); +} +.border-r-violet-900\/80 { + border-right-color: rgb(76 29 149 / 0.8); +} +.border-r-violet-900\/90 { + border-right-color: rgb(76 29 149 / 0.9); +} +.border-r-violet-900\/95 { + border-right-color: rgb(76 29 149 / 0.95); +} +.border-t-Occupation_du_sol-primary { + border-top-color: var(--Occupation_du_sol-primary); +} +.border-t-Occupation_du_sol-secondary { + border-top-color: var(--Occupation_du_sol-secondary); +} +.border-t-Occupation_du_sol-tertiary { + border-top-color: var(--Occupation_du_sol-tertiary); +} +.border-t-violet-100 { + --tw-border-opacity: 1; + border-top-color: rgb(237 233 254 / var(--tw-border-opacity)); +} +.border-t-violet-100\/0 { + border-top-color: rgb(237 233 254 / 0); +} +.border-t-violet-100\/10 { + border-top-color: rgb(237 233 254 / 0.1); +} +.border-t-violet-100\/100 { + border-top-color: rgb(237 233 254 / 1); +} +.border-t-violet-100\/20 { + border-top-color: rgb(237 233 254 / 0.2); +} +.border-t-violet-100\/25 { + border-top-color: rgb(237 233 254 / 0.25); +} +.border-t-violet-100\/30 { + border-top-color: rgb(237 233 254 / 0.3); +} +.border-t-violet-100\/40 { + border-top-color: rgb(237 233 254 / 0.4); +} +.border-t-violet-100\/5 { + border-top-color: rgb(237 233 254 / 0.05); +} +.border-t-violet-100\/50 { + border-top-color: rgb(237 233 254 / 0.5); +} +.border-t-violet-100\/60 { + border-top-color: rgb(237 233 254 / 0.6); +} +.border-t-violet-100\/70 { + border-top-color: rgb(237 233 254 / 0.7); +} +.border-t-violet-100\/75 { + border-top-color: rgb(237 233 254 / 0.75); +} +.border-t-violet-100\/80 { + border-top-color: rgb(237 233 254 / 0.8); +} +.border-t-violet-100\/90 { + border-top-color: rgb(237 233 254 / 0.9); +} +.border-t-violet-100\/95 { + border-top-color: rgb(237 233 254 / 0.95); +} +.border-t-violet-200 { + --tw-border-opacity: 1; + border-top-color: rgb(221 214 254 / var(--tw-border-opacity)); +} +.border-t-violet-200\/0 { + border-top-color: rgb(221 214 254 / 0); +} +.border-t-violet-200\/10 { + border-top-color: rgb(221 214 254 / 0.1); +} +.border-t-violet-200\/100 { + border-top-color: rgb(221 214 254 / 1); +} +.border-t-violet-200\/20 { + border-top-color: rgb(221 214 254 / 0.2); +} +.border-t-violet-200\/25 { + border-top-color: rgb(221 214 254 / 0.25); +} +.border-t-violet-200\/30 { + border-top-color: rgb(221 214 254 / 0.3); +} +.border-t-violet-200\/40 { + border-top-color: rgb(221 214 254 / 0.4); +} +.border-t-violet-200\/5 { + border-top-color: rgb(221 214 254 / 0.05); +} +.border-t-violet-200\/50 { + border-top-color: rgb(221 214 254 / 0.5); +} +.border-t-violet-200\/60 { + border-top-color: rgb(221 214 254 / 0.6); +} +.border-t-violet-200\/70 { + border-top-color: rgb(221 214 254 / 0.7); +} +.border-t-violet-200\/75 { + border-top-color: rgb(221 214 254 / 0.75); +} +.border-t-violet-200\/80 { + border-top-color: rgb(221 214 254 / 0.8); +} +.border-t-violet-200\/90 { + border-top-color: rgb(221 214 254 / 0.9); +} +.border-t-violet-200\/95 { + border-top-color: rgb(221 214 254 / 0.95); +} +.border-t-violet-300 { + --tw-border-opacity: 1; + border-top-color: rgb(196 181 253 / var(--tw-border-opacity)); +} +.border-t-violet-300\/0 { + border-top-color: rgb(196 181 253 / 0); +} +.border-t-violet-300\/10 { + border-top-color: rgb(196 181 253 / 0.1); +} +.border-t-violet-300\/100 { + border-top-color: rgb(196 181 253 / 1); +} +.border-t-violet-300\/20 { + border-top-color: rgb(196 181 253 / 0.2); +} +.border-t-violet-300\/25 { + border-top-color: rgb(196 181 253 / 0.25); +} +.border-t-violet-300\/30 { + border-top-color: rgb(196 181 253 / 0.3); +} +.border-t-violet-300\/40 { + border-top-color: rgb(196 181 253 / 0.4); +} +.border-t-violet-300\/5 { + border-top-color: rgb(196 181 253 / 0.05); +} +.border-t-violet-300\/50 { + border-top-color: rgb(196 181 253 / 0.5); +} +.border-t-violet-300\/60 { + border-top-color: rgb(196 181 253 / 0.6); +} +.border-t-violet-300\/70 { + border-top-color: rgb(196 181 253 / 0.7); +} +.border-t-violet-300\/75 { + border-top-color: rgb(196 181 253 / 0.75); +} +.border-t-violet-300\/80 { + border-top-color: rgb(196 181 253 / 0.8); +} +.border-t-violet-300\/90 { + border-top-color: rgb(196 181 253 / 0.9); +} +.border-t-violet-300\/95 { + border-top-color: rgb(196 181 253 / 0.95); +} +.border-t-violet-400 { + --tw-border-opacity: 1; + border-top-color: rgb(167 139 250 / var(--tw-border-opacity)); +} +.border-t-violet-400\/0 { + border-top-color: rgb(167 139 250 / 0); +} +.border-t-violet-400\/10 { + border-top-color: rgb(167 139 250 / 0.1); +} +.border-t-violet-400\/100 { + border-top-color: rgb(167 139 250 / 1); +} +.border-t-violet-400\/20 { + border-top-color: rgb(167 139 250 / 0.2); +} +.border-t-violet-400\/25 { + border-top-color: rgb(167 139 250 / 0.25); +} +.border-t-violet-400\/30 { + border-top-color: rgb(167 139 250 / 0.3); +} +.border-t-violet-400\/40 { + border-top-color: rgb(167 139 250 / 0.4); +} +.border-t-violet-400\/5 { + border-top-color: rgb(167 139 250 / 0.05); +} +.border-t-violet-400\/50 { + border-top-color: rgb(167 139 250 / 0.5); +} +.border-t-violet-400\/60 { + border-top-color: rgb(167 139 250 / 0.6); +} +.border-t-violet-400\/70 { + border-top-color: rgb(167 139 250 / 0.7); +} +.border-t-violet-400\/75 { + border-top-color: rgb(167 139 250 / 0.75); +} +.border-t-violet-400\/80 { + border-top-color: rgb(167 139 250 / 0.8); +} +.border-t-violet-400\/90 { + border-top-color: rgb(167 139 250 / 0.9); +} +.border-t-violet-400\/95 { + border-top-color: rgb(167 139 250 / 0.95); +} +.border-t-violet-50 { + --tw-border-opacity: 1; + border-top-color: rgb(245 243 255 / var(--tw-border-opacity)); +} +.border-t-violet-50\/0 { + border-top-color: rgb(245 243 255 / 0); +} +.border-t-violet-50\/10 { + border-top-color: rgb(245 243 255 / 0.1); +} +.border-t-violet-50\/100 { + border-top-color: rgb(245 243 255 / 1); +} +.border-t-violet-50\/20 { + border-top-color: rgb(245 243 255 / 0.2); +} +.border-t-violet-50\/25 { + border-top-color: rgb(245 243 255 / 0.25); +} +.border-t-violet-50\/30 { + border-top-color: rgb(245 243 255 / 0.3); +} +.border-t-violet-50\/40 { + border-top-color: rgb(245 243 255 / 0.4); +} +.border-t-violet-50\/5 { + border-top-color: rgb(245 243 255 / 0.05); +} +.border-t-violet-50\/50 { + border-top-color: rgb(245 243 255 / 0.5); +} +.border-t-violet-50\/60 { + border-top-color: rgb(245 243 255 / 0.6); +} +.border-t-violet-50\/70 { + border-top-color: rgb(245 243 255 / 0.7); +} +.border-t-violet-50\/75 { + border-top-color: rgb(245 243 255 / 0.75); +} +.border-t-violet-50\/80 { + border-top-color: rgb(245 243 255 / 0.8); +} +.border-t-violet-50\/90 { + border-top-color: rgb(245 243 255 / 0.9); +} +.border-t-violet-50\/95 { + border-top-color: rgb(245 243 255 / 0.95); +} +.border-t-violet-500 { + --tw-border-opacity: 1; + border-top-color: rgb(139 92 246 / var(--tw-border-opacity)); +} +.border-t-violet-500\/0 { + border-top-color: rgb(139 92 246 / 0); +} +.border-t-violet-500\/10 { + border-top-color: rgb(139 92 246 / 0.1); +} +.border-t-violet-500\/100 { + border-top-color: rgb(139 92 246 / 1); +} +.border-t-violet-500\/20 { + border-top-color: rgb(139 92 246 / 0.2); +} +.border-t-violet-500\/25 { + border-top-color: rgb(139 92 246 / 0.25); +} +.border-t-violet-500\/30 { + border-top-color: rgb(139 92 246 / 0.3); +} +.border-t-violet-500\/40 { + border-top-color: rgb(139 92 246 / 0.4); +} +.border-t-violet-500\/5 { + border-top-color: rgb(139 92 246 / 0.05); +} +.border-t-violet-500\/50 { + border-top-color: rgb(139 92 246 / 0.5); +} +.border-t-violet-500\/60 { + border-top-color: rgb(139 92 246 / 0.6); +} +.border-t-violet-500\/70 { + border-top-color: rgb(139 92 246 / 0.7); +} +.border-t-violet-500\/75 { + border-top-color: rgb(139 92 246 / 0.75); +} +.border-t-violet-500\/80 { + border-top-color: rgb(139 92 246 / 0.8); +} +.border-t-violet-500\/90 { + border-top-color: rgb(139 92 246 / 0.9); +} +.border-t-violet-500\/95 { + border-top-color: rgb(139 92 246 / 0.95); +} +.border-t-violet-600 { + --tw-border-opacity: 1; + border-top-color: rgb(124 58 237 / var(--tw-border-opacity)); +} +.border-t-violet-600\/0 { + border-top-color: rgb(124 58 237 / 0); +} +.border-t-violet-600\/10 { + border-top-color: rgb(124 58 237 / 0.1); +} +.border-t-violet-600\/100 { + border-top-color: rgb(124 58 237 / 1); +} +.border-t-violet-600\/20 { + border-top-color: rgb(124 58 237 / 0.2); +} +.border-t-violet-600\/25 { + border-top-color: rgb(124 58 237 / 0.25); +} +.border-t-violet-600\/30 { + border-top-color: rgb(124 58 237 / 0.3); +} +.border-t-violet-600\/40 { + border-top-color: rgb(124 58 237 / 0.4); +} +.border-t-violet-600\/5 { + border-top-color: rgb(124 58 237 / 0.05); +} +.border-t-violet-600\/50 { + border-top-color: rgb(124 58 237 / 0.5); +} +.border-t-violet-600\/60 { + border-top-color: rgb(124 58 237 / 0.6); +} +.border-t-violet-600\/70 { + border-top-color: rgb(124 58 237 / 0.7); +} +.border-t-violet-600\/75 { + border-top-color: rgb(124 58 237 / 0.75); +} +.border-t-violet-600\/80 { + border-top-color: rgb(124 58 237 / 0.8); +} +.border-t-violet-600\/90 { + border-top-color: rgb(124 58 237 / 0.9); +} +.border-t-violet-600\/95 { + border-top-color: rgb(124 58 237 / 0.95); +} +.border-t-violet-700 { + --tw-border-opacity: 1; + border-top-color: rgb(109 40 217 / var(--tw-border-opacity)); +} +.border-t-violet-700\/0 { + border-top-color: rgb(109 40 217 / 0); +} +.border-t-violet-700\/10 { + border-top-color: rgb(109 40 217 / 0.1); +} +.border-t-violet-700\/100 { + border-top-color: rgb(109 40 217 / 1); +} +.border-t-violet-700\/20 { + border-top-color: rgb(109 40 217 / 0.2); +} +.border-t-violet-700\/25 { + border-top-color: rgb(109 40 217 / 0.25); +} +.border-t-violet-700\/30 { + border-top-color: rgb(109 40 217 / 0.3); +} +.border-t-violet-700\/40 { + border-top-color: rgb(109 40 217 / 0.4); +} +.border-t-violet-700\/5 { + border-top-color: rgb(109 40 217 / 0.05); +} +.border-t-violet-700\/50 { + border-top-color: rgb(109 40 217 / 0.5); +} +.border-t-violet-700\/60 { + border-top-color: rgb(109 40 217 / 0.6); +} +.border-t-violet-700\/70 { + border-top-color: rgb(109 40 217 / 0.7); +} +.border-t-violet-700\/75 { + border-top-color: rgb(109 40 217 / 0.75); +} +.border-t-violet-700\/80 { + border-top-color: rgb(109 40 217 / 0.8); +} +.border-t-violet-700\/90 { + border-top-color: rgb(109 40 217 / 0.9); +} +.border-t-violet-700\/95 { + border-top-color: rgb(109 40 217 / 0.95); +} +.border-t-violet-800 { + --tw-border-opacity: 1; + border-top-color: rgb(91 33 182 / var(--tw-border-opacity)); +} +.border-t-violet-800\/0 { + border-top-color: rgb(91 33 182 / 0); +} +.border-t-violet-800\/10 { + border-top-color: rgb(91 33 182 / 0.1); +} +.border-t-violet-800\/100 { + border-top-color: rgb(91 33 182 / 1); +} +.border-t-violet-800\/20 { + border-top-color: rgb(91 33 182 / 0.2); +} +.border-t-violet-800\/25 { + border-top-color: rgb(91 33 182 / 0.25); +} +.border-t-violet-800\/30 { + border-top-color: rgb(91 33 182 / 0.3); +} +.border-t-violet-800\/40 { + border-top-color: rgb(91 33 182 / 0.4); +} +.border-t-violet-800\/5 { + border-top-color: rgb(91 33 182 / 0.05); +} +.border-t-violet-800\/50 { + border-top-color: rgb(91 33 182 / 0.5); +} +.border-t-violet-800\/60 { + border-top-color: rgb(91 33 182 / 0.6); +} +.border-t-violet-800\/70 { + border-top-color: rgb(91 33 182 / 0.7); +} +.border-t-violet-800\/75 { + border-top-color: rgb(91 33 182 / 0.75); +} +.border-t-violet-800\/80 { + border-top-color: rgb(91 33 182 / 0.8); +} +.border-t-violet-800\/90 { + border-top-color: rgb(91 33 182 / 0.9); +} +.border-t-violet-800\/95 { + border-top-color: rgb(91 33 182 / 0.95); +} +.border-t-violet-900 { + --tw-border-opacity: 1; + border-top-color: rgb(76 29 149 / var(--tw-border-opacity)); +} +.border-t-violet-900\/0 { + border-top-color: rgb(76 29 149 / 0); +} +.border-t-violet-900\/10 { + border-top-color: rgb(76 29 149 / 0.1); +} +.border-t-violet-900\/100 { + border-top-color: rgb(76 29 149 / 1); +} +.border-t-violet-900\/20 { + border-top-color: rgb(76 29 149 / 0.2); +} +.border-t-violet-900\/25 { + border-top-color: rgb(76 29 149 / 0.25); +} +.border-t-violet-900\/30 { + border-top-color: rgb(76 29 149 / 0.3); +} +.border-t-violet-900\/40 { + border-top-color: rgb(76 29 149 / 0.4); +} +.border-t-violet-900\/5 { + border-top-color: rgb(76 29 149 / 0.05); +} +.border-t-violet-900\/50 { + border-top-color: rgb(76 29 149 / 0.5); +} +.border-t-violet-900\/60 { + border-top-color: rgb(76 29 149 / 0.6); +} +.border-t-violet-900\/70 { + border-top-color: rgb(76 29 149 / 0.7); +} +.border-t-violet-900\/75 { + border-top-color: rgb(76 29 149 / 0.75); +} +.border-t-violet-900\/80 { + border-top-color: rgb(76 29 149 / 0.8); +} +.border-t-violet-900\/90 { + border-top-color: rgb(76 29 149 / 0.9); +} +.border-t-violet-900\/95 { + border-top-color: rgb(76 29 149 / 0.95); +} +.bg-Amenagement_du_territoire-primary { + background-color: var(--Amenagement_du_territoire-primary); +} +.bg-Environnement_humain-primary { + background-color: var(--Environnement_humain-primary); +} +.bg-Environnement_naturel-primary { + background-color: var(--Environnement_naturel-primary); +} +.bg-Occupation_du_sol-primary { + background-color: var(--Occupation_du_sol-primary); +} +.bg-Occupation_du_sol-secondary { + background-color: var(--Occupation_du_sol-secondary); +} +.bg-Occupation_du_sol-tertiary { + background-color: var(--Occupation_du_sol-tertiary); +} +.bg-agriculture-primary { + background-color: var(--agriculture-primary); +} +.bg-ahc-primary { + background-color: var(--ahc-primary); +} +.bg-at-primary { + background-color: var(--at-primary); +} +.bg-atlas_demographique-primary { + background-color: var(--atlas_demographique-primary); +} +.bg-blue-100 { + --tw-bg-opacity: 1; + background-color: rgb(219 234 254 / var(--tw-bg-opacity)); +} +.bg-cadastre_hertzien-primary { + background-color: var(--cadastre_hertzien-primary); +} +.bg-eau-primary { + background-color: var(--eau-primary); +} +.bg-emwelt-primary { + background-color: var(--emwelt-primary); +} +.bg-energie-primary { + background-color: var(--energie-primary); +} +.bg-geosciences-primary { + background-color: var(--geosciences-primary); +} +.bg-go-primary { + background-color: var(--go-primary); +} +.bg-gray-900 { + --tw-bg-opacity: 1; + background-color: rgb(17 24 39 / var(--tw-bg-opacity)); +} +.bg-intranet-at-primary { + background-color: var(--intranet-at-primary); +} +.bg-lenoz-primary { + background-color: var(--lenoz-primary); +} +.bg-lintgen-primary { + background-color: var(--lintgen-primary); +} +.bg-logement-primary { + background-color: var(--logement-primary); +} +.bg-main-primary { + background-color: var(--main-primary); +} +.bg-municipalities-primary { + background-color: var(--municipalities-primary); +} +.bg-np_our-primary { + background-color: var(--np_our-primary); +} +.bg-pag-primary { + background-color: var(--pag-primary); +} +.bg-preizerdaul-primary { + background-color: var(--preizerdaul-primary); +} +.bg-primary { + background-color: var(--color-primary); +} +.bg-prof-primary { + background-color: var(--prof-primary); +} +.bg-remich-primary { + background-color: var(--remich-primary); +} +.bg-secondary { + background-color: var(--color-secondary); +} +.bg-sig_secours-primary { + background-color: var(--sig_secours-primary); +} +.bg-tertiary { + background-color: var(--color-tertiary); +} +.bg-tourisme-primary { + background-color: var(--tourisme-primary); +} +.bg-urban_farming-primary { + background-color: var(--urban_farming-primary); +} +.bg-violet-100 { + --tw-bg-opacity: 1; + background-color: rgb(237 233 254 / var(--tw-bg-opacity)); +} +.bg-violet-100\/0 { + background-color: rgb(237 233 254 / 0); +} +.bg-violet-100\/10 { + background-color: rgb(237 233 254 / 0.1); +} +.bg-violet-100\/100 { + background-color: rgb(237 233 254 / 1); +} +.bg-violet-100\/20 { + background-color: rgb(237 233 254 / 0.2); +} +.bg-violet-100\/25 { + background-color: rgb(237 233 254 / 0.25); +} +.bg-violet-100\/30 { + background-color: rgb(237 233 254 / 0.3); +} +.bg-violet-100\/40 { + background-color: rgb(237 233 254 / 0.4); +} +.bg-violet-100\/5 { + background-color: rgb(237 233 254 / 0.05); +} +.bg-violet-100\/50 { + background-color: rgb(237 233 254 / 0.5); +} +.bg-violet-100\/60 { + background-color: rgb(237 233 254 / 0.6); +} +.bg-violet-100\/70 { + background-color: rgb(237 233 254 / 0.7); +} +.bg-violet-100\/75 { + background-color: rgb(237 233 254 / 0.75); +} +.bg-violet-100\/80 { + background-color: rgb(237 233 254 / 0.8); +} +.bg-violet-100\/90 { + background-color: rgb(237 233 254 / 0.9); +} +.bg-violet-100\/95 { + background-color: rgb(237 233 254 / 0.95); +} +.bg-violet-200 { + --tw-bg-opacity: 1; + background-color: rgb(221 214 254 / var(--tw-bg-opacity)); +} +.bg-violet-200\/0 { + background-color: rgb(221 214 254 / 0); +} +.bg-violet-200\/10 { + background-color: rgb(221 214 254 / 0.1); +} +.bg-violet-200\/100 { + background-color: rgb(221 214 254 / 1); +} +.bg-violet-200\/20 { + background-color: rgb(221 214 254 / 0.2); +} +.bg-violet-200\/25 { + background-color: rgb(221 214 254 / 0.25); +} +.bg-violet-200\/30 { + background-color: rgb(221 214 254 / 0.3); +} +.bg-violet-200\/40 { + background-color: rgb(221 214 254 / 0.4); +} +.bg-violet-200\/5 { + background-color: rgb(221 214 254 / 0.05); +} +.bg-violet-200\/50 { + background-color: rgb(221 214 254 / 0.5); +} +.bg-violet-200\/60 { + background-color: rgb(221 214 254 / 0.6); +} +.bg-violet-200\/70 { + background-color: rgb(221 214 254 / 0.7); +} +.bg-violet-200\/75 { + background-color: rgb(221 214 254 / 0.75); +} +.bg-violet-200\/80 { + background-color: rgb(221 214 254 / 0.8); +} +.bg-violet-200\/90 { + background-color: rgb(221 214 254 / 0.9); +} +.bg-violet-200\/95 { + background-color: rgb(221 214 254 / 0.95); +} +.bg-violet-300 { + --tw-bg-opacity: 1; + background-color: rgb(196 181 253 / var(--tw-bg-opacity)); +} +.bg-violet-300\/0 { + background-color: rgb(196 181 253 / 0); +} +.bg-violet-300\/10 { + background-color: rgb(196 181 253 / 0.1); +} +.bg-violet-300\/100 { + background-color: rgb(196 181 253 / 1); +} +.bg-violet-300\/20 { + background-color: rgb(196 181 253 / 0.2); +} +.bg-violet-300\/25 { + background-color: rgb(196 181 253 / 0.25); +} +.bg-violet-300\/30 { + background-color: rgb(196 181 253 / 0.3); +} +.bg-violet-300\/40 { + background-color: rgb(196 181 253 / 0.4); +} +.bg-violet-300\/5 { + background-color: rgb(196 181 253 / 0.05); +} +.bg-violet-300\/50 { + background-color: rgb(196 181 253 / 0.5); +} +.bg-violet-300\/60 { + background-color: rgb(196 181 253 / 0.6); +} +.bg-violet-300\/70 { + background-color: rgb(196 181 253 / 0.7); +} +.bg-violet-300\/75 { + background-color: rgb(196 181 253 / 0.75); +} +.bg-violet-300\/80 { + background-color: rgb(196 181 253 / 0.8); +} +.bg-violet-300\/90 { + background-color: rgb(196 181 253 / 0.9); +} +.bg-violet-300\/95 { + background-color: rgb(196 181 253 / 0.95); +} +.bg-violet-400 { + --tw-bg-opacity: 1; + background-color: rgb(167 139 250 / var(--tw-bg-opacity)); +} +.bg-violet-400\/0 { + background-color: rgb(167 139 250 / 0); +} +.bg-violet-400\/10 { + background-color: rgb(167 139 250 / 0.1); +} +.bg-violet-400\/100 { + background-color: rgb(167 139 250 / 1); +} +.bg-violet-400\/20 { + background-color: rgb(167 139 250 / 0.2); +} +.bg-violet-400\/25 { + background-color: rgb(167 139 250 / 0.25); +} +.bg-violet-400\/30 { + background-color: rgb(167 139 250 / 0.3); +} +.bg-violet-400\/40 { + background-color: rgb(167 139 250 / 0.4); +} +.bg-violet-400\/5 { + background-color: rgb(167 139 250 / 0.05); +} +.bg-violet-400\/50 { + background-color: rgb(167 139 250 / 0.5); +} +.bg-violet-400\/60 { + background-color: rgb(167 139 250 / 0.6); +} +.bg-violet-400\/70 { + background-color: rgb(167 139 250 / 0.7); +} +.bg-violet-400\/75 { + background-color: rgb(167 139 250 / 0.75); +} +.bg-violet-400\/80 { + background-color: rgb(167 139 250 / 0.8); +} +.bg-violet-400\/90 { + background-color: rgb(167 139 250 / 0.9); +} +.bg-violet-400\/95 { + background-color: rgb(167 139 250 / 0.95); +} +.bg-violet-50 { + --tw-bg-opacity: 1; + background-color: rgb(245 243 255 / var(--tw-bg-opacity)); +} +.bg-violet-50\/0 { + background-color: rgb(245 243 255 / 0); +} +.bg-violet-50\/10 { + background-color: rgb(245 243 255 / 0.1); +} +.bg-violet-50\/100 { + background-color: rgb(245 243 255 / 1); +} +.bg-violet-50\/20 { + background-color: rgb(245 243 255 / 0.2); +} +.bg-violet-50\/25 { + background-color: rgb(245 243 255 / 0.25); +} +.bg-violet-50\/30 { + background-color: rgb(245 243 255 / 0.3); +} +.bg-violet-50\/40 { + background-color: rgb(245 243 255 / 0.4); +} +.bg-violet-50\/5 { + background-color: rgb(245 243 255 / 0.05); +} +.bg-violet-50\/50 { + background-color: rgb(245 243 255 / 0.5); +} +.bg-violet-50\/60 { + background-color: rgb(245 243 255 / 0.6); +} +.bg-violet-50\/70 { + background-color: rgb(245 243 255 / 0.7); +} +.bg-violet-50\/75 { + background-color: rgb(245 243 255 / 0.75); +} +.bg-violet-50\/80 { + background-color: rgb(245 243 255 / 0.8); +} +.bg-violet-50\/90 { + background-color: rgb(245 243 255 / 0.9); +} +.bg-violet-50\/95 { + background-color: rgb(245 243 255 / 0.95); +} +.bg-violet-500 { + --tw-bg-opacity: 1; + background-color: rgb(139 92 246 / var(--tw-bg-opacity)); +} +.bg-violet-500\/0 { + background-color: rgb(139 92 246 / 0); +} +.bg-violet-500\/10 { + background-color: rgb(139 92 246 / 0.1); +} +.bg-violet-500\/100 { + background-color: rgb(139 92 246 / 1); +} +.bg-violet-500\/20 { + background-color: rgb(139 92 246 / 0.2); +} +.bg-violet-500\/25 { + background-color: rgb(139 92 246 / 0.25); +} +.bg-violet-500\/30 { + background-color: rgb(139 92 246 / 0.3); +} +.bg-violet-500\/40 { + background-color: rgb(139 92 246 / 0.4); +} +.bg-violet-500\/5 { + background-color: rgb(139 92 246 / 0.05); +} +.bg-violet-500\/50 { + background-color: rgb(139 92 246 / 0.5); +} +.bg-violet-500\/60 { + background-color: rgb(139 92 246 / 0.6); +} +.bg-violet-500\/70 { + background-color: rgb(139 92 246 / 0.7); +} +.bg-violet-500\/75 { + background-color: rgb(139 92 246 / 0.75); +} +.bg-violet-500\/80 { + background-color: rgb(139 92 246 / 0.8); +} +.bg-violet-500\/90 { + background-color: rgb(139 92 246 / 0.9); +} +.bg-violet-500\/95 { + background-color: rgb(139 92 246 / 0.95); +} +.bg-violet-600 { + --tw-bg-opacity: 1; + background-color: rgb(124 58 237 / var(--tw-bg-opacity)); +} +.bg-violet-600\/0 { + background-color: rgb(124 58 237 / 0); +} +.bg-violet-600\/10 { + background-color: rgb(124 58 237 / 0.1); +} +.bg-violet-600\/100 { + background-color: rgb(124 58 237 / 1); +} +.bg-violet-600\/20 { + background-color: rgb(124 58 237 / 0.2); +} +.bg-violet-600\/25 { + background-color: rgb(124 58 237 / 0.25); +} +.bg-violet-600\/30 { + background-color: rgb(124 58 237 / 0.3); +} +.bg-violet-600\/40 { + background-color: rgb(124 58 237 / 0.4); +} +.bg-violet-600\/5 { + background-color: rgb(124 58 237 / 0.05); +} +.bg-violet-600\/50 { + background-color: rgb(124 58 237 / 0.5); +} +.bg-violet-600\/60 { + background-color: rgb(124 58 237 / 0.6); +} +.bg-violet-600\/70 { + background-color: rgb(124 58 237 / 0.7); +} +.bg-violet-600\/75 { + background-color: rgb(124 58 237 / 0.75); +} +.bg-violet-600\/80 { + background-color: rgb(124 58 237 / 0.8); +} +.bg-violet-600\/90 { + background-color: rgb(124 58 237 / 0.9); +} +.bg-violet-600\/95 { + background-color: rgb(124 58 237 / 0.95); +} +.bg-violet-700 { + --tw-bg-opacity: 1; + background-color: rgb(109 40 217 / var(--tw-bg-opacity)); +} +.bg-violet-700\/0 { + background-color: rgb(109 40 217 / 0); +} +.bg-violet-700\/10 { + background-color: rgb(109 40 217 / 0.1); +} +.bg-violet-700\/100 { + background-color: rgb(109 40 217 / 1); +} +.bg-violet-700\/20 { + background-color: rgb(109 40 217 / 0.2); +} +.bg-violet-700\/25 { + background-color: rgb(109 40 217 / 0.25); +} +.bg-violet-700\/30 { + background-color: rgb(109 40 217 / 0.3); +} +.bg-violet-700\/40 { + background-color: rgb(109 40 217 / 0.4); +} +.bg-violet-700\/5 { + background-color: rgb(109 40 217 / 0.05); +} +.bg-violet-700\/50 { + background-color: rgb(109 40 217 / 0.5); +} +.bg-violet-700\/60 { + background-color: rgb(109 40 217 / 0.6); +} +.bg-violet-700\/70 { + background-color: rgb(109 40 217 / 0.7); +} +.bg-violet-700\/75 { + background-color: rgb(109 40 217 / 0.75); +} +.bg-violet-700\/80 { + background-color: rgb(109 40 217 / 0.8); +} +.bg-violet-700\/90 { + background-color: rgb(109 40 217 / 0.9); +} +.bg-violet-700\/95 { + background-color: rgb(109 40 217 / 0.95); +} +.bg-violet-800 { + --tw-bg-opacity: 1; + background-color: rgb(91 33 182 / var(--tw-bg-opacity)); +} +.bg-violet-800\/0 { + background-color: rgb(91 33 182 / 0); +} +.bg-violet-800\/10 { + background-color: rgb(91 33 182 / 0.1); +} +.bg-violet-800\/100 { + background-color: rgb(91 33 182 / 1); +} +.bg-violet-800\/20 { + background-color: rgb(91 33 182 / 0.2); +} +.bg-violet-800\/25 { + background-color: rgb(91 33 182 / 0.25); +} +.bg-violet-800\/30 { + background-color: rgb(91 33 182 / 0.3); +} +.bg-violet-800\/40 { + background-color: rgb(91 33 182 / 0.4); +} +.bg-violet-800\/5 { + background-color: rgb(91 33 182 / 0.05); +} +.bg-violet-800\/50 { + background-color: rgb(91 33 182 / 0.5); +} +.bg-violet-800\/60 { + background-color: rgb(91 33 182 / 0.6); +} +.bg-violet-800\/70 { + background-color: rgb(91 33 182 / 0.7); +} +.bg-violet-800\/75 { + background-color: rgb(91 33 182 / 0.75); +} +.bg-violet-800\/80 { + background-color: rgb(91 33 182 / 0.8); +} +.bg-violet-800\/90 { + background-color: rgb(91 33 182 / 0.9); +} +.bg-violet-800\/95 { + background-color: rgb(91 33 182 / 0.95); +} +.bg-violet-900 { + --tw-bg-opacity: 1; + background-color: rgb(76 29 149 / var(--tw-bg-opacity)); +} +.bg-violet-900\/0 { + background-color: rgb(76 29 149 / 0); +} +.bg-violet-900\/10 { + background-color: rgb(76 29 149 / 0.1); +} +.bg-violet-900\/100 { + background-color: rgb(76 29 149 / 1); +} +.bg-violet-900\/20 { + background-color: rgb(76 29 149 / 0.2); +} +.bg-violet-900\/25 { + background-color: rgb(76 29 149 / 0.25); +} +.bg-violet-900\/30 { + background-color: rgb(76 29 149 / 0.3); +} +.bg-violet-900\/40 { + background-color: rgb(76 29 149 / 0.4); +} +.bg-violet-900\/5 { + background-color: rgb(76 29 149 / 0.05); +} +.bg-violet-900\/50 { + background-color: rgb(76 29 149 / 0.5); +} +.bg-violet-900\/60 { + background-color: rgb(76 29 149 / 0.6); +} +.bg-violet-900\/70 { + background-color: rgb(76 29 149 / 0.7); +} +.bg-violet-900\/75 { + background-color: rgb(76 29 149 / 0.75); +} +.bg-violet-900\/80 { + background-color: rgb(76 29 149 / 0.8); +} +.bg-violet-900\/90 { + background-color: rgb(76 29 149 / 0.9); +} +.bg-violet-900\/95 { + background-color: rgb(76 29 149 / 0.95); +} +.bg-wellenstein-primary { + background-color: var(--wellenstein-primary); +} +.bg-white { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} +.bg-hybrid_sm { + background-image: url('data:image/png;base64,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'); +} +.bg-ortho_sm { + background-image: url('data:image/png;base64,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'); +} +.bg-route_sm { + background-image: url('data:image/png;base64,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'); +} +.bg-topo_bw_sm { + background-image: url('data:image/png;base64,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'); +} +.bg-topo_sm { + background-image: url('data:image/png;base64,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'); +} +.from-Occupation_du_sol-primary { + --tw-gradient-from: var(--Occupation_du_sol-primary); + --tw-gradient-to: rgb(255 255 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-Occupation_du_sol-secondary { + --tw-gradient-from: var(--Occupation_du_sol-secondary); + --tw-gradient-to: rgb(255 255 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-Occupation_du_sol-tertiary { + --tw-gradient-from: var(--Occupation_du_sol-tertiary); + --tw-gradient-to: rgb(255 255 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-100 { + --tw-gradient-from: #ede9fe; + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-100\/0 { + --tw-gradient-from: rgb(237 233 254 / 0); + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-100\/10 { + --tw-gradient-from: rgb(237 233 254 / 0.1); + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-100\/100 { + --tw-gradient-from: rgb(237 233 254 / 1); + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-100\/20 { + --tw-gradient-from: rgb(237 233 254 / 0.2); + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-100\/25 { + --tw-gradient-from: rgb(237 233 254 / 0.25); + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-100\/30 { + --tw-gradient-from: rgb(237 233 254 / 0.3); + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-100\/40 { + --tw-gradient-from: rgb(237 233 254 / 0.4); + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-100\/5 { + --tw-gradient-from: rgb(237 233 254 / 0.05); + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-100\/50 { + --tw-gradient-from: rgb(237 233 254 / 0.5); + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-100\/60 { + --tw-gradient-from: rgb(237 233 254 / 0.6); + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-100\/70 { + --tw-gradient-from: rgb(237 233 254 / 0.7); + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-100\/75 { + --tw-gradient-from: rgb(237 233 254 / 0.75); + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-100\/80 { + --tw-gradient-from: rgb(237 233 254 / 0.8); + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-100\/90 { + --tw-gradient-from: rgb(237 233 254 / 0.9); + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-100\/95 { + --tw-gradient-from: rgb(237 233 254 / 0.95); + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-200 { + --tw-gradient-from: #ddd6fe; + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-200\/0 { + --tw-gradient-from: rgb(221 214 254 / 0); + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-200\/10 { + --tw-gradient-from: rgb(221 214 254 / 0.1); + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-200\/100 { + --tw-gradient-from: rgb(221 214 254 / 1); + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-200\/20 { + --tw-gradient-from: rgb(221 214 254 / 0.2); + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-200\/25 { + --tw-gradient-from: rgb(221 214 254 / 0.25); + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-200\/30 { + --tw-gradient-from: rgb(221 214 254 / 0.3); + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-200\/40 { + --tw-gradient-from: rgb(221 214 254 / 0.4); + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-200\/5 { + --tw-gradient-from: rgb(221 214 254 / 0.05); + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-200\/50 { + --tw-gradient-from: rgb(221 214 254 / 0.5); + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-200\/60 { + --tw-gradient-from: rgb(221 214 254 / 0.6); + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-200\/70 { + --tw-gradient-from: rgb(221 214 254 / 0.7); + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-200\/75 { + --tw-gradient-from: rgb(221 214 254 / 0.75); + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-200\/80 { + --tw-gradient-from: rgb(221 214 254 / 0.8); + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-200\/90 { + --tw-gradient-from: rgb(221 214 254 / 0.9); + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-200\/95 { + --tw-gradient-from: rgb(221 214 254 / 0.95); + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-300 { + --tw-gradient-from: #c4b5fd; + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-300\/0 { + --tw-gradient-from: rgb(196 181 253 / 0); + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-300\/10 { + --tw-gradient-from: rgb(196 181 253 / 0.1); + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-300\/100 { + --tw-gradient-from: rgb(196 181 253 / 1); + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-300\/20 { + --tw-gradient-from: rgb(196 181 253 / 0.2); + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-300\/25 { + --tw-gradient-from: rgb(196 181 253 / 0.25); + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-300\/30 { + --tw-gradient-from: rgb(196 181 253 / 0.3); + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-300\/40 { + --tw-gradient-from: rgb(196 181 253 / 0.4); + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-300\/5 { + --tw-gradient-from: rgb(196 181 253 / 0.05); + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-300\/50 { + --tw-gradient-from: rgb(196 181 253 / 0.5); + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-300\/60 { + --tw-gradient-from: rgb(196 181 253 / 0.6); + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-300\/70 { + --tw-gradient-from: rgb(196 181 253 / 0.7); + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-300\/75 { + --tw-gradient-from: rgb(196 181 253 / 0.75); + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-300\/80 { + --tw-gradient-from: rgb(196 181 253 / 0.8); + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-300\/90 { + --tw-gradient-from: rgb(196 181 253 / 0.9); + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-300\/95 { + --tw-gradient-from: rgb(196 181 253 / 0.95); + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-400 { + --tw-gradient-from: #a78bfa; + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-400\/0 { + --tw-gradient-from: rgb(167 139 250 / 0); + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-400\/10 { + --tw-gradient-from: rgb(167 139 250 / 0.1); + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-400\/100 { + --tw-gradient-from: rgb(167 139 250 / 1); + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-400\/20 { + --tw-gradient-from: rgb(167 139 250 / 0.2); + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-400\/25 { + --tw-gradient-from: rgb(167 139 250 / 0.25); + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-400\/30 { + --tw-gradient-from: rgb(167 139 250 / 0.3); + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-400\/40 { + --tw-gradient-from: rgb(167 139 250 / 0.4); + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-400\/5 { + --tw-gradient-from: rgb(167 139 250 / 0.05); + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-400\/50 { + --tw-gradient-from: rgb(167 139 250 / 0.5); + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-400\/60 { + --tw-gradient-from: rgb(167 139 250 / 0.6); + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-400\/70 { + --tw-gradient-from: rgb(167 139 250 / 0.7); + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-400\/75 { + --tw-gradient-from: rgb(167 139 250 / 0.75); + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-400\/80 { + --tw-gradient-from: rgb(167 139 250 / 0.8); + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-400\/90 { + --tw-gradient-from: rgb(167 139 250 / 0.9); + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-400\/95 { + --tw-gradient-from: rgb(167 139 250 / 0.95); + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-50 { + --tw-gradient-from: #f5f3ff; + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-50\/0 { + --tw-gradient-from: rgb(245 243 255 / 0); + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-50\/10 { + --tw-gradient-from: rgb(245 243 255 / 0.1); + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-50\/100 { + --tw-gradient-from: rgb(245 243 255 / 1); + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-50\/20 { + --tw-gradient-from: rgb(245 243 255 / 0.2); + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-50\/25 { + --tw-gradient-from: rgb(245 243 255 / 0.25); + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-50\/30 { + --tw-gradient-from: rgb(245 243 255 / 0.3); + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-50\/40 { + --tw-gradient-from: rgb(245 243 255 / 0.4); + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-50\/5 { + --tw-gradient-from: rgb(245 243 255 / 0.05); + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-50\/50 { + --tw-gradient-from: rgb(245 243 255 / 0.5); + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-50\/60 { + --tw-gradient-from: rgb(245 243 255 / 0.6); + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-50\/70 { + --tw-gradient-from: rgb(245 243 255 / 0.7); + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-50\/75 { + --tw-gradient-from: rgb(245 243 255 / 0.75); + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-50\/80 { + --tw-gradient-from: rgb(245 243 255 / 0.8); + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-50\/90 { + --tw-gradient-from: rgb(245 243 255 / 0.9); + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-50\/95 { + --tw-gradient-from: rgb(245 243 255 / 0.95); + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-500 { + --tw-gradient-from: #8b5cf6; + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-500\/0 { + --tw-gradient-from: rgb(139 92 246 / 0); + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-500\/10 { + --tw-gradient-from: rgb(139 92 246 / 0.1); + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-500\/100 { + --tw-gradient-from: rgb(139 92 246 / 1); + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-500\/20 { + --tw-gradient-from: rgb(139 92 246 / 0.2); + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-500\/25 { + --tw-gradient-from: rgb(139 92 246 / 0.25); + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-500\/30 { + --tw-gradient-from: rgb(139 92 246 / 0.3); + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-500\/40 { + --tw-gradient-from: rgb(139 92 246 / 0.4); + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-500\/5 { + --tw-gradient-from: rgb(139 92 246 / 0.05); + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-500\/50 { + --tw-gradient-from: rgb(139 92 246 / 0.5); + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-500\/60 { + --tw-gradient-from: rgb(139 92 246 / 0.6); + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-500\/70 { + --tw-gradient-from: rgb(139 92 246 / 0.7); + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-500\/75 { + --tw-gradient-from: rgb(139 92 246 / 0.75); + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-500\/80 { + --tw-gradient-from: rgb(139 92 246 / 0.8); + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-500\/90 { + --tw-gradient-from: rgb(139 92 246 / 0.9); + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-500\/95 { + --tw-gradient-from: rgb(139 92 246 / 0.95); + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-600 { + --tw-gradient-from: #7c3aed; + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-600\/0 { + --tw-gradient-from: rgb(124 58 237 / 0); + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-600\/10 { + --tw-gradient-from: rgb(124 58 237 / 0.1); + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-600\/100 { + --tw-gradient-from: rgb(124 58 237 / 1); + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-600\/20 { + --tw-gradient-from: rgb(124 58 237 / 0.2); + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-600\/25 { + --tw-gradient-from: rgb(124 58 237 / 0.25); + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-600\/30 { + --tw-gradient-from: rgb(124 58 237 / 0.3); + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-600\/40 { + --tw-gradient-from: rgb(124 58 237 / 0.4); + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-600\/5 { + --tw-gradient-from: rgb(124 58 237 / 0.05); + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-600\/50 { + --tw-gradient-from: rgb(124 58 237 / 0.5); + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-600\/60 { + --tw-gradient-from: rgb(124 58 237 / 0.6); + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-600\/70 { + --tw-gradient-from: rgb(124 58 237 / 0.7); + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-600\/75 { + --tw-gradient-from: rgb(124 58 237 / 0.75); + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-600\/80 { + --tw-gradient-from: rgb(124 58 237 / 0.8); + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-600\/90 { + --tw-gradient-from: rgb(124 58 237 / 0.9); + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-600\/95 { + --tw-gradient-from: rgb(124 58 237 / 0.95); + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-700 { + --tw-gradient-from: #6d28d9; + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-700\/0 { + --tw-gradient-from: rgb(109 40 217 / 0); + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-700\/10 { + --tw-gradient-from: rgb(109 40 217 / 0.1); + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-700\/100 { + --tw-gradient-from: rgb(109 40 217 / 1); + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-700\/20 { + --tw-gradient-from: rgb(109 40 217 / 0.2); + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-700\/25 { + --tw-gradient-from: rgb(109 40 217 / 0.25); + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-700\/30 { + --tw-gradient-from: rgb(109 40 217 / 0.3); + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-700\/40 { + --tw-gradient-from: rgb(109 40 217 / 0.4); + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-700\/5 { + --tw-gradient-from: rgb(109 40 217 / 0.05); + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-700\/50 { + --tw-gradient-from: rgb(109 40 217 / 0.5); + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-700\/60 { + --tw-gradient-from: rgb(109 40 217 / 0.6); + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-700\/70 { + --tw-gradient-from: rgb(109 40 217 / 0.7); + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-700\/75 { + --tw-gradient-from: rgb(109 40 217 / 0.75); + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-700\/80 { + --tw-gradient-from: rgb(109 40 217 / 0.8); + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-700\/90 { + --tw-gradient-from: rgb(109 40 217 / 0.9); + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-700\/95 { + --tw-gradient-from: rgb(109 40 217 / 0.95); + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-800 { + --tw-gradient-from: #5b21b6; + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-800\/0 { + --tw-gradient-from: rgb(91 33 182 / 0); + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-800\/10 { + --tw-gradient-from: rgb(91 33 182 / 0.1); + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-800\/100 { + --tw-gradient-from: rgb(91 33 182 / 1); + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-800\/20 { + --tw-gradient-from: rgb(91 33 182 / 0.2); + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-800\/25 { + --tw-gradient-from: rgb(91 33 182 / 0.25); + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-800\/30 { + --tw-gradient-from: rgb(91 33 182 / 0.3); + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-800\/40 { + --tw-gradient-from: rgb(91 33 182 / 0.4); + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-800\/5 { + --tw-gradient-from: rgb(91 33 182 / 0.05); + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-800\/50 { + --tw-gradient-from: rgb(91 33 182 / 0.5); + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-800\/60 { + --tw-gradient-from: rgb(91 33 182 / 0.6); + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-800\/70 { + --tw-gradient-from: rgb(91 33 182 / 0.7); + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-800\/75 { + --tw-gradient-from: rgb(91 33 182 / 0.75); + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-800\/80 { + --tw-gradient-from: rgb(91 33 182 / 0.8); + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-800\/90 { + --tw-gradient-from: rgb(91 33 182 / 0.9); + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-800\/95 { + --tw-gradient-from: rgb(91 33 182 / 0.95); + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-900 { + --tw-gradient-from: #4c1d95; + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-900\/0 { + --tw-gradient-from: rgb(76 29 149 / 0); + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-900\/10 { + --tw-gradient-from: rgb(76 29 149 / 0.1); + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-900\/100 { + --tw-gradient-from: rgb(76 29 149 / 1); + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-900\/20 { + --tw-gradient-from: rgb(76 29 149 / 0.2); + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-900\/25 { + --tw-gradient-from: rgb(76 29 149 / 0.25); + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-900\/30 { + --tw-gradient-from: rgb(76 29 149 / 0.3); + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-900\/40 { + --tw-gradient-from: rgb(76 29 149 / 0.4); + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-900\/5 { + --tw-gradient-from: rgb(76 29 149 / 0.05); + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-900\/50 { + --tw-gradient-from: rgb(76 29 149 / 0.5); + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-900\/60 { + --tw-gradient-from: rgb(76 29 149 / 0.6); + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-900\/70 { + --tw-gradient-from: rgb(76 29 149 / 0.7); + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-900\/75 { + --tw-gradient-from: rgb(76 29 149 / 0.75); + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-900\/80 { + --tw-gradient-from: rgb(76 29 149 / 0.8); + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-900\/90 { + --tw-gradient-from: rgb(76 29 149 / 0.9); + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.from-violet-900\/95 { + --tw-gradient-from: rgb(76 29 149 / 0.95); + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.via-Occupation_du_sol-primary { + --tw-gradient-to: rgb(255 255 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--Occupation_du_sol-primary), var(--tw-gradient-to); +} +.via-Occupation_du_sol-secondary { + --tw-gradient-to: rgb(255 255 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--Occupation_du_sol-secondary), var(--tw-gradient-to); +} +.via-Occupation_du_sol-tertiary { + --tw-gradient-to: rgb(255 255 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--Occupation_du_sol-tertiary), var(--tw-gradient-to); +} +.via-violet-100 { + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #ede9fe, var(--tw-gradient-to); +} +.via-violet-100\/0 { + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 0), var(--tw-gradient-to); +} +.via-violet-100\/10 { + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 0.1), var(--tw-gradient-to); +} +.via-violet-100\/100 { + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 1), var(--tw-gradient-to); +} +.via-violet-100\/20 { + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 0.2), var(--tw-gradient-to); +} +.via-violet-100\/25 { + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 0.25), var(--tw-gradient-to); +} +.via-violet-100\/30 { + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 0.3), var(--tw-gradient-to); +} +.via-violet-100\/40 { + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 0.4), var(--tw-gradient-to); +} +.via-violet-100\/5 { + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 0.05), var(--tw-gradient-to); +} +.via-violet-100\/50 { + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 0.5), var(--tw-gradient-to); +} +.via-violet-100\/60 { + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 0.6), var(--tw-gradient-to); +} +.via-violet-100\/70 { + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 0.7), var(--tw-gradient-to); +} +.via-violet-100\/75 { + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 0.75), var(--tw-gradient-to); +} +.via-violet-100\/80 { + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 0.8), var(--tw-gradient-to); +} +.via-violet-100\/90 { + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 0.9), var(--tw-gradient-to); +} +.via-violet-100\/95 { + --tw-gradient-to: rgb(237 233 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(237 233 254 / 0.95), var(--tw-gradient-to); +} +.via-violet-200 { + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #ddd6fe, var(--tw-gradient-to); +} +.via-violet-200\/0 { + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 0), var(--tw-gradient-to); +} +.via-violet-200\/10 { + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 0.1), var(--tw-gradient-to); +} +.via-violet-200\/100 { + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 1), var(--tw-gradient-to); +} +.via-violet-200\/20 { + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 0.2), var(--tw-gradient-to); +} +.via-violet-200\/25 { + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 0.25), var(--tw-gradient-to); +} +.via-violet-200\/30 { + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 0.3), var(--tw-gradient-to); +} +.via-violet-200\/40 { + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 0.4), var(--tw-gradient-to); +} +.via-violet-200\/5 { + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 0.05), var(--tw-gradient-to); +} +.via-violet-200\/50 { + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 0.5), var(--tw-gradient-to); +} +.via-violet-200\/60 { + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 0.6), var(--tw-gradient-to); +} +.via-violet-200\/70 { + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 0.7), var(--tw-gradient-to); +} +.via-violet-200\/75 { + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 0.75), var(--tw-gradient-to); +} +.via-violet-200\/80 { + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 0.8), var(--tw-gradient-to); +} +.via-violet-200\/90 { + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 0.9), var(--tw-gradient-to); +} +.via-violet-200\/95 { + --tw-gradient-to: rgb(221 214 254 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(221 214 254 / 0.95), var(--tw-gradient-to); +} +.via-violet-300 { + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #c4b5fd, var(--tw-gradient-to); +} +.via-violet-300\/0 { + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 0), var(--tw-gradient-to); +} +.via-violet-300\/10 { + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 0.1), var(--tw-gradient-to); +} +.via-violet-300\/100 { + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 1), var(--tw-gradient-to); +} +.via-violet-300\/20 { + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 0.2), var(--tw-gradient-to); +} +.via-violet-300\/25 { + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 0.25), var(--tw-gradient-to); +} +.via-violet-300\/30 { + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 0.3), var(--tw-gradient-to); +} +.via-violet-300\/40 { + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 0.4), var(--tw-gradient-to); +} +.via-violet-300\/5 { + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 0.05), var(--tw-gradient-to); +} +.via-violet-300\/50 { + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 0.5), var(--tw-gradient-to); +} +.via-violet-300\/60 { + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 0.6), var(--tw-gradient-to); +} +.via-violet-300\/70 { + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 0.7), var(--tw-gradient-to); +} +.via-violet-300\/75 { + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 0.75), var(--tw-gradient-to); +} +.via-violet-300\/80 { + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 0.8), var(--tw-gradient-to); +} +.via-violet-300\/90 { + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 0.9), var(--tw-gradient-to); +} +.via-violet-300\/95 { + --tw-gradient-to: rgb(196 181 253 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(196 181 253 / 0.95), var(--tw-gradient-to); +} +.via-violet-400 { + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #a78bfa, var(--tw-gradient-to); +} +.via-violet-400\/0 { + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 0), var(--tw-gradient-to); +} +.via-violet-400\/10 { + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 0.1), var(--tw-gradient-to); +} +.via-violet-400\/100 { + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 1), var(--tw-gradient-to); +} +.via-violet-400\/20 { + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 0.2), var(--tw-gradient-to); +} +.via-violet-400\/25 { + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 0.25), var(--tw-gradient-to); +} +.via-violet-400\/30 { + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 0.3), var(--tw-gradient-to); +} +.via-violet-400\/40 { + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 0.4), var(--tw-gradient-to); +} +.via-violet-400\/5 { + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 0.05), var(--tw-gradient-to); +} +.via-violet-400\/50 { + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 0.5), var(--tw-gradient-to); +} +.via-violet-400\/60 { + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 0.6), var(--tw-gradient-to); +} +.via-violet-400\/70 { + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 0.7), var(--tw-gradient-to); +} +.via-violet-400\/75 { + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 0.75), var(--tw-gradient-to); +} +.via-violet-400\/80 { + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 0.8), var(--tw-gradient-to); +} +.via-violet-400\/90 { + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 0.9), var(--tw-gradient-to); +} +.via-violet-400\/95 { + --tw-gradient-to: rgb(167 139 250 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(167 139 250 / 0.95), var(--tw-gradient-to); +} +.via-violet-50 { + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #f5f3ff, var(--tw-gradient-to); +} +.via-violet-50\/0 { + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 0), var(--tw-gradient-to); +} +.via-violet-50\/10 { + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 0.1), var(--tw-gradient-to); +} +.via-violet-50\/100 { + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 1), var(--tw-gradient-to); +} +.via-violet-50\/20 { + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 0.2), var(--tw-gradient-to); +} +.via-violet-50\/25 { + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 0.25), var(--tw-gradient-to); +} +.via-violet-50\/30 { + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 0.3), var(--tw-gradient-to); +} +.via-violet-50\/40 { + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 0.4), var(--tw-gradient-to); +} +.via-violet-50\/5 { + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 0.05), var(--tw-gradient-to); +} +.via-violet-50\/50 { + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 0.5), var(--tw-gradient-to); +} +.via-violet-50\/60 { + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 0.6), var(--tw-gradient-to); +} +.via-violet-50\/70 { + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 0.7), var(--tw-gradient-to); +} +.via-violet-50\/75 { + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 0.75), var(--tw-gradient-to); +} +.via-violet-50\/80 { + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 0.8), var(--tw-gradient-to); +} +.via-violet-50\/90 { + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 0.9), var(--tw-gradient-to); +} +.via-violet-50\/95 { + --tw-gradient-to: rgb(245 243 255 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(245 243 255 / 0.95), var(--tw-gradient-to); +} +.via-violet-500 { + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #8b5cf6, var(--tw-gradient-to); +} +.via-violet-500\/0 { + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 0), var(--tw-gradient-to); +} +.via-violet-500\/10 { + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 0.1), var(--tw-gradient-to); +} +.via-violet-500\/100 { + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 1), var(--tw-gradient-to); +} +.via-violet-500\/20 { + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 0.2), var(--tw-gradient-to); +} +.via-violet-500\/25 { + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 0.25), var(--tw-gradient-to); +} +.via-violet-500\/30 { + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 0.3), var(--tw-gradient-to); +} +.via-violet-500\/40 { + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 0.4), var(--tw-gradient-to); +} +.via-violet-500\/5 { + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 0.05), var(--tw-gradient-to); +} +.via-violet-500\/50 { + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 0.5), var(--tw-gradient-to); +} +.via-violet-500\/60 { + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 0.6), var(--tw-gradient-to); +} +.via-violet-500\/70 { + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 0.7), var(--tw-gradient-to); +} +.via-violet-500\/75 { + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 0.75), var(--tw-gradient-to); +} +.via-violet-500\/80 { + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 0.8), var(--tw-gradient-to); +} +.via-violet-500\/90 { + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 0.9), var(--tw-gradient-to); +} +.via-violet-500\/95 { + --tw-gradient-to: rgb(139 92 246 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(139 92 246 / 0.95), var(--tw-gradient-to); +} +.via-violet-600 { + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #7c3aed, var(--tw-gradient-to); +} +.via-violet-600\/0 { + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 0), var(--tw-gradient-to); +} +.via-violet-600\/10 { + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 0.1), var(--tw-gradient-to); +} +.via-violet-600\/100 { + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 1), var(--tw-gradient-to); +} +.via-violet-600\/20 { + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 0.2), var(--tw-gradient-to); +} +.via-violet-600\/25 { + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 0.25), var(--tw-gradient-to); +} +.via-violet-600\/30 { + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 0.3), var(--tw-gradient-to); +} +.via-violet-600\/40 { + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 0.4), var(--tw-gradient-to); +} +.via-violet-600\/5 { + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 0.05), var(--tw-gradient-to); +} +.via-violet-600\/50 { + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 0.5), var(--tw-gradient-to); +} +.via-violet-600\/60 { + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 0.6), var(--tw-gradient-to); +} +.via-violet-600\/70 { + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 0.7), var(--tw-gradient-to); +} +.via-violet-600\/75 { + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 0.75), var(--tw-gradient-to); +} +.via-violet-600\/80 { + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 0.8), var(--tw-gradient-to); +} +.via-violet-600\/90 { + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 0.9), var(--tw-gradient-to); +} +.via-violet-600\/95 { + --tw-gradient-to: rgb(124 58 237 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 0.95), var(--tw-gradient-to); +} +.via-violet-700 { + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #6d28d9, var(--tw-gradient-to); +} +.via-violet-700\/0 { + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 0), var(--tw-gradient-to); +} +.via-violet-700\/10 { + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 0.1), var(--tw-gradient-to); +} +.via-violet-700\/100 { + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 1), var(--tw-gradient-to); +} +.via-violet-700\/20 { + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 0.2), var(--tw-gradient-to); +} +.via-violet-700\/25 { + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 0.25), var(--tw-gradient-to); +} +.via-violet-700\/30 { + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 0.3), var(--tw-gradient-to); +} +.via-violet-700\/40 { + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 0.4), var(--tw-gradient-to); +} +.via-violet-700\/5 { + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 0.05), var(--tw-gradient-to); +} +.via-violet-700\/50 { + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 0.5), var(--tw-gradient-to); +} +.via-violet-700\/60 { + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 0.6), var(--tw-gradient-to); +} +.via-violet-700\/70 { + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 0.7), var(--tw-gradient-to); +} +.via-violet-700\/75 { + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 0.75), var(--tw-gradient-to); +} +.via-violet-700\/80 { + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 0.8), var(--tw-gradient-to); +} +.via-violet-700\/90 { + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 0.9), var(--tw-gradient-to); +} +.via-violet-700\/95 { + --tw-gradient-to: rgb(109 40 217 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(109 40 217 / 0.95), var(--tw-gradient-to); +} +.via-violet-800 { + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #5b21b6, var(--tw-gradient-to); +} +.via-violet-800\/0 { + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 0), var(--tw-gradient-to); +} +.via-violet-800\/10 { + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 0.1), var(--tw-gradient-to); +} +.via-violet-800\/100 { + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 1), var(--tw-gradient-to); +} +.via-violet-800\/20 { + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 0.2), var(--tw-gradient-to); +} +.via-violet-800\/25 { + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 0.25), var(--tw-gradient-to); +} +.via-violet-800\/30 { + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 0.3), var(--tw-gradient-to); +} +.via-violet-800\/40 { + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 0.4), var(--tw-gradient-to); +} +.via-violet-800\/5 { + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 0.05), var(--tw-gradient-to); +} +.via-violet-800\/50 { + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 0.5), var(--tw-gradient-to); +} +.via-violet-800\/60 { + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 0.6), var(--tw-gradient-to); +} +.via-violet-800\/70 { + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 0.7), var(--tw-gradient-to); +} +.via-violet-800\/75 { + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 0.75), var(--tw-gradient-to); +} +.via-violet-800\/80 { + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 0.8), var(--tw-gradient-to); +} +.via-violet-800\/90 { + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 0.9), var(--tw-gradient-to); +} +.via-violet-800\/95 { + --tw-gradient-to: rgb(91 33 182 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(91 33 182 / 0.95), var(--tw-gradient-to); +} +.via-violet-900 { + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #4c1d95, var(--tw-gradient-to); +} +.via-violet-900\/0 { + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 0), var(--tw-gradient-to); +} +.via-violet-900\/10 { + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 0.1), var(--tw-gradient-to); +} +.via-violet-900\/100 { + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 1), var(--tw-gradient-to); +} +.via-violet-900\/20 { + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 0.2), var(--tw-gradient-to); +} +.via-violet-900\/25 { + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 0.25), var(--tw-gradient-to); +} +.via-violet-900\/30 { + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 0.3), var(--tw-gradient-to); +} +.via-violet-900\/40 { + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 0.4), var(--tw-gradient-to); +} +.via-violet-900\/5 { + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 0.05), var(--tw-gradient-to); +} +.via-violet-900\/50 { + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 0.5), var(--tw-gradient-to); +} +.via-violet-900\/60 { + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 0.6), var(--tw-gradient-to); +} +.via-violet-900\/70 { + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 0.7), var(--tw-gradient-to); +} +.via-violet-900\/75 { + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 0.75), var(--tw-gradient-to); +} +.via-violet-900\/80 { + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 0.8), var(--tw-gradient-to); +} +.via-violet-900\/90 { + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 0.9), var(--tw-gradient-to); +} +.via-violet-900\/95 { + --tw-gradient-to: rgb(76 29 149 / 0); + --tw-gradient-stops: var(--tw-gradient-from), rgb(76 29 149 / 0.95), var(--tw-gradient-to); +} +.to-Occupation_du_sol-primary { + --tw-gradient-to: var(--Occupation_du_sol-primary); +} +.to-Occupation_du_sol-secondary { + --tw-gradient-to: var(--Occupation_du_sol-secondary); +} +.to-Occupation_du_sol-tertiary { + --tw-gradient-to: var(--Occupation_du_sol-tertiary); +} +.to-violet-100 { + --tw-gradient-to: #ede9fe; +} +.to-violet-100\/0 { + --tw-gradient-to: rgb(237 233 254 / 0); +} +.to-violet-100\/10 { + --tw-gradient-to: rgb(237 233 254 / 0.1); +} +.to-violet-100\/100 { + --tw-gradient-to: rgb(237 233 254 / 1); +} +.to-violet-100\/20 { + --tw-gradient-to: rgb(237 233 254 / 0.2); +} +.to-violet-100\/25 { + --tw-gradient-to: rgb(237 233 254 / 0.25); +} +.to-violet-100\/30 { + --tw-gradient-to: rgb(237 233 254 / 0.3); +} +.to-violet-100\/40 { + --tw-gradient-to: rgb(237 233 254 / 0.4); +} +.to-violet-100\/5 { + --tw-gradient-to: rgb(237 233 254 / 0.05); +} +.to-violet-100\/50 { + --tw-gradient-to: rgb(237 233 254 / 0.5); +} +.to-violet-100\/60 { + --tw-gradient-to: rgb(237 233 254 / 0.6); +} +.to-violet-100\/70 { + --tw-gradient-to: rgb(237 233 254 / 0.7); +} +.to-violet-100\/75 { + --tw-gradient-to: rgb(237 233 254 / 0.75); +} +.to-violet-100\/80 { + --tw-gradient-to: rgb(237 233 254 / 0.8); +} +.to-violet-100\/90 { + --tw-gradient-to: rgb(237 233 254 / 0.9); +} +.to-violet-100\/95 { + --tw-gradient-to: rgb(237 233 254 / 0.95); +} +.to-violet-200 { + --tw-gradient-to: #ddd6fe; +} +.to-violet-200\/0 { + --tw-gradient-to: rgb(221 214 254 / 0); +} +.to-violet-200\/10 { + --tw-gradient-to: rgb(221 214 254 / 0.1); +} +.to-violet-200\/100 { + --tw-gradient-to: rgb(221 214 254 / 1); +} +.to-violet-200\/20 { + --tw-gradient-to: rgb(221 214 254 / 0.2); +} +.to-violet-200\/25 { + --tw-gradient-to: rgb(221 214 254 / 0.25); +} +.to-violet-200\/30 { + --tw-gradient-to: rgb(221 214 254 / 0.3); +} +.to-violet-200\/40 { + --tw-gradient-to: rgb(221 214 254 / 0.4); +} +.to-violet-200\/5 { + --tw-gradient-to: rgb(221 214 254 / 0.05); +} +.to-violet-200\/50 { + --tw-gradient-to: rgb(221 214 254 / 0.5); +} +.to-violet-200\/60 { + --tw-gradient-to: rgb(221 214 254 / 0.6); +} +.to-violet-200\/70 { + --tw-gradient-to: rgb(221 214 254 / 0.7); +} +.to-violet-200\/75 { + --tw-gradient-to: rgb(221 214 254 / 0.75); +} +.to-violet-200\/80 { + --tw-gradient-to: rgb(221 214 254 / 0.8); +} +.to-violet-200\/90 { + --tw-gradient-to: rgb(221 214 254 / 0.9); +} +.to-violet-200\/95 { + --tw-gradient-to: rgb(221 214 254 / 0.95); +} +.to-violet-300 { + --tw-gradient-to: #c4b5fd; +} +.to-violet-300\/0 { + --tw-gradient-to: rgb(196 181 253 / 0); +} +.to-violet-300\/10 { + --tw-gradient-to: rgb(196 181 253 / 0.1); +} +.to-violet-300\/100 { + --tw-gradient-to: rgb(196 181 253 / 1); +} +.to-violet-300\/20 { + --tw-gradient-to: rgb(196 181 253 / 0.2); +} +.to-violet-300\/25 { + --tw-gradient-to: rgb(196 181 253 / 0.25); +} +.to-violet-300\/30 { + --tw-gradient-to: rgb(196 181 253 / 0.3); +} +.to-violet-300\/40 { + --tw-gradient-to: rgb(196 181 253 / 0.4); +} +.to-violet-300\/5 { + --tw-gradient-to: rgb(196 181 253 / 0.05); +} +.to-violet-300\/50 { + --tw-gradient-to: rgb(196 181 253 / 0.5); +} +.to-violet-300\/60 { + --tw-gradient-to: rgb(196 181 253 / 0.6); +} +.to-violet-300\/70 { + --tw-gradient-to: rgb(196 181 253 / 0.7); +} +.to-violet-300\/75 { + --tw-gradient-to: rgb(196 181 253 / 0.75); +} +.to-violet-300\/80 { + --tw-gradient-to: rgb(196 181 253 / 0.8); +} +.to-violet-300\/90 { + --tw-gradient-to: rgb(196 181 253 / 0.9); +} +.to-violet-300\/95 { + --tw-gradient-to: rgb(196 181 253 / 0.95); +} +.to-violet-400 { + --tw-gradient-to: #a78bfa; +} +.to-violet-400\/0 { + --tw-gradient-to: rgb(167 139 250 / 0); +} +.to-violet-400\/10 { + --tw-gradient-to: rgb(167 139 250 / 0.1); +} +.to-violet-400\/100 { + --tw-gradient-to: rgb(167 139 250 / 1); +} +.to-violet-400\/20 { + --tw-gradient-to: rgb(167 139 250 / 0.2); +} +.to-violet-400\/25 { + --tw-gradient-to: rgb(167 139 250 / 0.25); +} +.to-violet-400\/30 { + --tw-gradient-to: rgb(167 139 250 / 0.3); +} +.to-violet-400\/40 { + --tw-gradient-to: rgb(167 139 250 / 0.4); +} +.to-violet-400\/5 { + --tw-gradient-to: rgb(167 139 250 / 0.05); +} +.to-violet-400\/50 { + --tw-gradient-to: rgb(167 139 250 / 0.5); +} +.to-violet-400\/60 { + --tw-gradient-to: rgb(167 139 250 / 0.6); +} +.to-violet-400\/70 { + --tw-gradient-to: rgb(167 139 250 / 0.7); +} +.to-violet-400\/75 { + --tw-gradient-to: rgb(167 139 250 / 0.75); +} +.to-violet-400\/80 { + --tw-gradient-to: rgb(167 139 250 / 0.8); +} +.to-violet-400\/90 { + --tw-gradient-to: rgb(167 139 250 / 0.9); +} +.to-violet-400\/95 { + --tw-gradient-to: rgb(167 139 250 / 0.95); +} +.to-violet-50 { + --tw-gradient-to: #f5f3ff; +} +.to-violet-50\/0 { + --tw-gradient-to: rgb(245 243 255 / 0); +} +.to-violet-50\/10 { + --tw-gradient-to: rgb(245 243 255 / 0.1); +} +.to-violet-50\/100 { + --tw-gradient-to: rgb(245 243 255 / 1); +} +.to-violet-50\/20 { + --tw-gradient-to: rgb(245 243 255 / 0.2); +} +.to-violet-50\/25 { + --tw-gradient-to: rgb(245 243 255 / 0.25); +} +.to-violet-50\/30 { + --tw-gradient-to: rgb(245 243 255 / 0.3); +} +.to-violet-50\/40 { + --tw-gradient-to: rgb(245 243 255 / 0.4); +} +.to-violet-50\/5 { + --tw-gradient-to: rgb(245 243 255 / 0.05); +} +.to-violet-50\/50 { + --tw-gradient-to: rgb(245 243 255 / 0.5); +} +.to-violet-50\/60 { + --tw-gradient-to: rgb(245 243 255 / 0.6); +} +.to-violet-50\/70 { + --tw-gradient-to: rgb(245 243 255 / 0.7); +} +.to-violet-50\/75 { + --tw-gradient-to: rgb(245 243 255 / 0.75); +} +.to-violet-50\/80 { + --tw-gradient-to: rgb(245 243 255 / 0.8); +} +.to-violet-50\/90 { + --tw-gradient-to: rgb(245 243 255 / 0.9); +} +.to-violet-50\/95 { + --tw-gradient-to: rgb(245 243 255 / 0.95); +} +.to-violet-500 { + --tw-gradient-to: #8b5cf6; +} +.to-violet-500\/0 { + --tw-gradient-to: rgb(139 92 246 / 0); +} +.to-violet-500\/10 { + --tw-gradient-to: rgb(139 92 246 / 0.1); +} +.to-violet-500\/100 { + --tw-gradient-to: rgb(139 92 246 / 1); +} +.to-violet-500\/20 { + --tw-gradient-to: rgb(139 92 246 / 0.2); +} +.to-violet-500\/25 { + --tw-gradient-to: rgb(139 92 246 / 0.25); +} +.to-violet-500\/30 { + --tw-gradient-to: rgb(139 92 246 / 0.3); +} +.to-violet-500\/40 { + --tw-gradient-to: rgb(139 92 246 / 0.4); +} +.to-violet-500\/5 { + --tw-gradient-to: rgb(139 92 246 / 0.05); +} +.to-violet-500\/50 { + --tw-gradient-to: rgb(139 92 246 / 0.5); +} +.to-violet-500\/60 { + --tw-gradient-to: rgb(139 92 246 / 0.6); +} +.to-violet-500\/70 { + --tw-gradient-to: rgb(139 92 246 / 0.7); +} +.to-violet-500\/75 { + --tw-gradient-to: rgb(139 92 246 / 0.75); +} +.to-violet-500\/80 { + --tw-gradient-to: rgb(139 92 246 / 0.8); +} +.to-violet-500\/90 { + --tw-gradient-to: rgb(139 92 246 / 0.9); +} +.to-violet-500\/95 { + --tw-gradient-to: rgb(139 92 246 / 0.95); +} +.to-violet-600 { + --tw-gradient-to: #7c3aed; +} +.to-violet-600\/0 { + --tw-gradient-to: rgb(124 58 237 / 0); +} +.to-violet-600\/10 { + --tw-gradient-to: rgb(124 58 237 / 0.1); +} +.to-violet-600\/100 { + --tw-gradient-to: rgb(124 58 237 / 1); +} +.to-violet-600\/20 { + --tw-gradient-to: rgb(124 58 237 / 0.2); +} +.to-violet-600\/25 { + --tw-gradient-to: rgb(124 58 237 / 0.25); +} +.to-violet-600\/30 { + --tw-gradient-to: rgb(124 58 237 / 0.3); +} +.to-violet-600\/40 { + --tw-gradient-to: rgb(124 58 237 / 0.4); +} +.to-violet-600\/5 { + --tw-gradient-to: rgb(124 58 237 / 0.05); +} +.to-violet-600\/50 { + --tw-gradient-to: rgb(124 58 237 / 0.5); +} +.to-violet-600\/60 { + --tw-gradient-to: rgb(124 58 237 / 0.6); +} +.to-violet-600\/70 { + --tw-gradient-to: rgb(124 58 237 / 0.7); +} +.to-violet-600\/75 { + --tw-gradient-to: rgb(124 58 237 / 0.75); +} +.to-violet-600\/80 { + --tw-gradient-to: rgb(124 58 237 / 0.8); +} +.to-violet-600\/90 { + --tw-gradient-to: rgb(124 58 237 / 0.9); +} +.to-violet-600\/95 { + --tw-gradient-to: rgb(124 58 237 / 0.95); +} +.to-violet-700 { + --tw-gradient-to: #6d28d9; +} +.to-violet-700\/0 { + --tw-gradient-to: rgb(109 40 217 / 0); +} +.to-violet-700\/10 { + --tw-gradient-to: rgb(109 40 217 / 0.1); +} +.to-violet-700\/100 { + --tw-gradient-to: rgb(109 40 217 / 1); +} +.to-violet-700\/20 { + --tw-gradient-to: rgb(109 40 217 / 0.2); +} +.to-violet-700\/25 { + --tw-gradient-to: rgb(109 40 217 / 0.25); +} +.to-violet-700\/30 { + --tw-gradient-to: rgb(109 40 217 / 0.3); +} +.to-violet-700\/40 { + --tw-gradient-to: rgb(109 40 217 / 0.4); +} +.to-violet-700\/5 { + --tw-gradient-to: rgb(109 40 217 / 0.05); +} +.to-violet-700\/50 { + --tw-gradient-to: rgb(109 40 217 / 0.5); +} +.to-violet-700\/60 { + --tw-gradient-to: rgb(109 40 217 / 0.6); +} +.to-violet-700\/70 { + --tw-gradient-to: rgb(109 40 217 / 0.7); +} +.to-violet-700\/75 { + --tw-gradient-to: rgb(109 40 217 / 0.75); +} +.to-violet-700\/80 { + --tw-gradient-to: rgb(109 40 217 / 0.8); +} +.to-violet-700\/90 { + --tw-gradient-to: rgb(109 40 217 / 0.9); +} +.to-violet-700\/95 { + --tw-gradient-to: rgb(109 40 217 / 0.95); +} +.to-violet-800 { + --tw-gradient-to: #5b21b6; +} +.to-violet-800\/0 { + --tw-gradient-to: rgb(91 33 182 / 0); +} +.to-violet-800\/10 { + --tw-gradient-to: rgb(91 33 182 / 0.1); +} +.to-violet-800\/100 { + --tw-gradient-to: rgb(91 33 182 / 1); +} +.to-violet-800\/20 { + --tw-gradient-to: rgb(91 33 182 / 0.2); +} +.to-violet-800\/25 { + --tw-gradient-to: rgb(91 33 182 / 0.25); +} +.to-violet-800\/30 { + --tw-gradient-to: rgb(91 33 182 / 0.3); +} +.to-violet-800\/40 { + --tw-gradient-to: rgb(91 33 182 / 0.4); +} +.to-violet-800\/5 { + --tw-gradient-to: rgb(91 33 182 / 0.05); +} +.to-violet-800\/50 { + --tw-gradient-to: rgb(91 33 182 / 0.5); +} +.to-violet-800\/60 { + --tw-gradient-to: rgb(91 33 182 / 0.6); +} +.to-violet-800\/70 { + --tw-gradient-to: rgb(91 33 182 / 0.7); +} +.to-violet-800\/75 { + --tw-gradient-to: rgb(91 33 182 / 0.75); +} +.to-violet-800\/80 { + --tw-gradient-to: rgb(91 33 182 / 0.8); +} +.to-violet-800\/90 { + --tw-gradient-to: rgb(91 33 182 / 0.9); +} +.to-violet-800\/95 { + --tw-gradient-to: rgb(91 33 182 / 0.95); +} +.to-violet-900 { + --tw-gradient-to: #4c1d95; +} +.to-violet-900\/0 { + --tw-gradient-to: rgb(76 29 149 / 0); +} +.to-violet-900\/10 { + --tw-gradient-to: rgb(76 29 149 / 0.1); +} +.to-violet-900\/100 { + --tw-gradient-to: rgb(76 29 149 / 1); +} +.to-violet-900\/20 { + --tw-gradient-to: rgb(76 29 149 / 0.2); +} +.to-violet-900\/25 { + --tw-gradient-to: rgb(76 29 149 / 0.25); +} +.to-violet-900\/30 { + --tw-gradient-to: rgb(76 29 149 / 0.3); +} +.to-violet-900\/40 { + --tw-gradient-to: rgb(76 29 149 / 0.4); +} +.to-violet-900\/5 { + --tw-gradient-to: rgb(76 29 149 / 0.05); +} +.to-violet-900\/50 { + --tw-gradient-to: rgb(76 29 149 / 0.5); +} +.to-violet-900\/60 { + --tw-gradient-to: rgb(76 29 149 / 0.6); +} +.to-violet-900\/70 { + --tw-gradient-to: rgb(76 29 149 / 0.7); +} +.to-violet-900\/75 { + --tw-gradient-to: rgb(76 29 149 / 0.75); +} +.to-violet-900\/80 { + --tw-gradient-to: rgb(76 29 149 / 0.8); +} +.to-violet-900\/90 { + --tw-gradient-to: rgb(76 29 149 / 0.9); +} +.to-violet-900\/95 { + --tw-gradient-to: rgb(76 29 149 / 0.95); +} +.bg-scroll { + background-attachment: scroll; +} +.fill-Occupation_du_sol-primary { + fill: var(--Occupation_du_sol-primary); +} +.fill-Occupation_du_sol-secondary { + fill: var(--Occupation_du_sol-secondary); +} +.fill-Occupation_du_sol-tertiary { + fill: var(--Occupation_du_sol-tertiary); +} +.fill-violet-100 { + fill: #ede9fe; +} +.fill-violet-100\/0 { + fill: rgb(237 233 254 / 0); +} +.fill-violet-100\/10 { + fill: rgb(237 233 254 / 0.1); +} +.fill-violet-100\/100 { + fill: rgb(237 233 254 / 1); +} +.fill-violet-100\/20 { + fill: rgb(237 233 254 / 0.2); +} +.fill-violet-100\/25 { + fill: rgb(237 233 254 / 0.25); +} +.fill-violet-100\/30 { + fill: rgb(237 233 254 / 0.3); +} +.fill-violet-100\/40 { + fill: rgb(237 233 254 / 0.4); +} +.fill-violet-100\/5 { + fill: rgb(237 233 254 / 0.05); +} +.fill-violet-100\/50 { + fill: rgb(237 233 254 / 0.5); +} +.fill-violet-100\/60 { + fill: rgb(237 233 254 / 0.6); +} +.fill-violet-100\/70 { + fill: rgb(237 233 254 / 0.7); +} +.fill-violet-100\/75 { + fill: rgb(237 233 254 / 0.75); +} +.fill-violet-100\/80 { + fill: rgb(237 233 254 / 0.8); +} +.fill-violet-100\/90 { + fill: rgb(237 233 254 / 0.9); +} +.fill-violet-100\/95 { + fill: rgb(237 233 254 / 0.95); +} +.fill-violet-200 { + fill: #ddd6fe; +} +.fill-violet-200\/0 { + fill: rgb(221 214 254 / 0); +} +.fill-violet-200\/10 { + fill: rgb(221 214 254 / 0.1); +} +.fill-violet-200\/100 { + fill: rgb(221 214 254 / 1); +} +.fill-violet-200\/20 { + fill: rgb(221 214 254 / 0.2); +} +.fill-violet-200\/25 { + fill: rgb(221 214 254 / 0.25); +} +.fill-violet-200\/30 { + fill: rgb(221 214 254 / 0.3); +} +.fill-violet-200\/40 { + fill: rgb(221 214 254 / 0.4); +} +.fill-violet-200\/5 { + fill: rgb(221 214 254 / 0.05); +} +.fill-violet-200\/50 { + fill: rgb(221 214 254 / 0.5); +} +.fill-violet-200\/60 { + fill: rgb(221 214 254 / 0.6); +} +.fill-violet-200\/70 { + fill: rgb(221 214 254 / 0.7); +} +.fill-violet-200\/75 { + fill: rgb(221 214 254 / 0.75); +} +.fill-violet-200\/80 { + fill: rgb(221 214 254 / 0.8); +} +.fill-violet-200\/90 { + fill: rgb(221 214 254 / 0.9); +} +.fill-violet-200\/95 { + fill: rgb(221 214 254 / 0.95); +} +.fill-violet-300 { + fill: #c4b5fd; +} +.fill-violet-300\/0 { + fill: rgb(196 181 253 / 0); +} +.fill-violet-300\/10 { + fill: rgb(196 181 253 / 0.1); +} +.fill-violet-300\/100 { + fill: rgb(196 181 253 / 1); +} +.fill-violet-300\/20 { + fill: rgb(196 181 253 / 0.2); +} +.fill-violet-300\/25 { + fill: rgb(196 181 253 / 0.25); +} +.fill-violet-300\/30 { + fill: rgb(196 181 253 / 0.3); +} +.fill-violet-300\/40 { + fill: rgb(196 181 253 / 0.4); +} +.fill-violet-300\/5 { + fill: rgb(196 181 253 / 0.05); +} +.fill-violet-300\/50 { + fill: rgb(196 181 253 / 0.5); +} +.fill-violet-300\/60 { + fill: rgb(196 181 253 / 0.6); +} +.fill-violet-300\/70 { + fill: rgb(196 181 253 / 0.7); +} +.fill-violet-300\/75 { + fill: rgb(196 181 253 / 0.75); +} +.fill-violet-300\/80 { + fill: rgb(196 181 253 / 0.8); +} +.fill-violet-300\/90 { + fill: rgb(196 181 253 / 0.9); +} +.fill-violet-300\/95 { + fill: rgb(196 181 253 / 0.95); +} +.fill-violet-400 { + fill: #a78bfa; +} +.fill-violet-400\/0 { + fill: rgb(167 139 250 / 0); +} +.fill-violet-400\/10 { + fill: rgb(167 139 250 / 0.1); +} +.fill-violet-400\/100 { + fill: rgb(167 139 250 / 1); +} +.fill-violet-400\/20 { + fill: rgb(167 139 250 / 0.2); +} +.fill-violet-400\/25 { + fill: rgb(167 139 250 / 0.25); +} +.fill-violet-400\/30 { + fill: rgb(167 139 250 / 0.3); +} +.fill-violet-400\/40 { + fill: rgb(167 139 250 / 0.4); +} +.fill-violet-400\/5 { + fill: rgb(167 139 250 / 0.05); +} +.fill-violet-400\/50 { + fill: rgb(167 139 250 / 0.5); +} +.fill-violet-400\/60 { + fill: rgb(167 139 250 / 0.6); +} +.fill-violet-400\/70 { + fill: rgb(167 139 250 / 0.7); +} +.fill-violet-400\/75 { + fill: rgb(167 139 250 / 0.75); +} +.fill-violet-400\/80 { + fill: rgb(167 139 250 / 0.8); +} +.fill-violet-400\/90 { + fill: rgb(167 139 250 / 0.9); +} +.fill-violet-400\/95 { + fill: rgb(167 139 250 / 0.95); +} +.fill-violet-50 { + fill: #f5f3ff; +} +.fill-violet-50\/0 { + fill: rgb(245 243 255 / 0); +} +.fill-violet-50\/10 { + fill: rgb(245 243 255 / 0.1); +} +.fill-violet-50\/100 { + fill: rgb(245 243 255 / 1); +} +.fill-violet-50\/20 { + fill: rgb(245 243 255 / 0.2); +} +.fill-violet-50\/25 { + fill: rgb(245 243 255 / 0.25); +} +.fill-violet-50\/30 { + fill: rgb(245 243 255 / 0.3); +} +.fill-violet-50\/40 { + fill: rgb(245 243 255 / 0.4); +} +.fill-violet-50\/5 { + fill: rgb(245 243 255 / 0.05); +} +.fill-violet-50\/50 { + fill: rgb(245 243 255 / 0.5); +} +.fill-violet-50\/60 { + fill: rgb(245 243 255 / 0.6); +} +.fill-violet-50\/70 { + fill: rgb(245 243 255 / 0.7); +} +.fill-violet-50\/75 { + fill: rgb(245 243 255 / 0.75); +} +.fill-violet-50\/80 { + fill: rgb(245 243 255 / 0.8); +} +.fill-violet-50\/90 { + fill: rgb(245 243 255 / 0.9); +} +.fill-violet-50\/95 { + fill: rgb(245 243 255 / 0.95); +} +.fill-violet-500 { + fill: #8b5cf6; +} +.fill-violet-500\/0 { + fill: rgb(139 92 246 / 0); +} +.fill-violet-500\/10 { + fill: rgb(139 92 246 / 0.1); +} +.fill-violet-500\/100 { + fill: rgb(139 92 246 / 1); +} +.fill-violet-500\/20 { + fill: rgb(139 92 246 / 0.2); +} +.fill-violet-500\/25 { + fill: rgb(139 92 246 / 0.25); +} +.fill-violet-500\/30 { + fill: rgb(139 92 246 / 0.3); +} +.fill-violet-500\/40 { + fill: rgb(139 92 246 / 0.4); +} +.fill-violet-500\/5 { + fill: rgb(139 92 246 / 0.05); +} +.fill-violet-500\/50 { + fill: rgb(139 92 246 / 0.5); +} +.fill-violet-500\/60 { + fill: rgb(139 92 246 / 0.6); +} +.fill-violet-500\/70 { + fill: rgb(139 92 246 / 0.7); +} +.fill-violet-500\/75 { + fill: rgb(139 92 246 / 0.75); +} +.fill-violet-500\/80 { + fill: rgb(139 92 246 / 0.8); +} +.fill-violet-500\/90 { + fill: rgb(139 92 246 / 0.9); +} +.fill-violet-500\/95 { + fill: rgb(139 92 246 / 0.95); +} +.fill-violet-600 { + fill: #7c3aed; +} +.fill-violet-600\/0 { + fill: rgb(124 58 237 / 0); +} +.fill-violet-600\/10 { + fill: rgb(124 58 237 / 0.1); +} +.fill-violet-600\/100 { + fill: rgb(124 58 237 / 1); +} +.fill-violet-600\/20 { + fill: rgb(124 58 237 / 0.2); +} +.fill-violet-600\/25 { + fill: rgb(124 58 237 / 0.25); +} +.fill-violet-600\/30 { + fill: rgb(124 58 237 / 0.3); +} +.fill-violet-600\/40 { + fill: rgb(124 58 237 / 0.4); +} +.fill-violet-600\/5 { + fill: rgb(124 58 237 / 0.05); +} +.fill-violet-600\/50 { + fill: rgb(124 58 237 / 0.5); +} +.fill-violet-600\/60 { + fill: rgb(124 58 237 / 0.6); +} +.fill-violet-600\/70 { + fill: rgb(124 58 237 / 0.7); +} +.fill-violet-600\/75 { + fill: rgb(124 58 237 / 0.75); +} +.fill-violet-600\/80 { + fill: rgb(124 58 237 / 0.8); +} +.fill-violet-600\/90 { + fill: rgb(124 58 237 / 0.9); +} +.fill-violet-600\/95 { + fill: rgb(124 58 237 / 0.95); +} +.fill-violet-700 { + fill: #6d28d9; +} +.fill-violet-700\/0 { + fill: rgb(109 40 217 / 0); +} +.fill-violet-700\/10 { + fill: rgb(109 40 217 / 0.1); +} +.fill-violet-700\/100 { + fill: rgb(109 40 217 / 1); +} +.fill-violet-700\/20 { + fill: rgb(109 40 217 / 0.2); +} +.fill-violet-700\/25 { + fill: rgb(109 40 217 / 0.25); +} +.fill-violet-700\/30 { + fill: rgb(109 40 217 / 0.3); +} +.fill-violet-700\/40 { + fill: rgb(109 40 217 / 0.4); +} +.fill-violet-700\/5 { + fill: rgb(109 40 217 / 0.05); +} +.fill-violet-700\/50 { + fill: rgb(109 40 217 / 0.5); +} +.fill-violet-700\/60 { + fill: rgb(109 40 217 / 0.6); +} +.fill-violet-700\/70 { + fill: rgb(109 40 217 / 0.7); +} +.fill-violet-700\/75 { + fill: rgb(109 40 217 / 0.75); +} +.fill-violet-700\/80 { + fill: rgb(109 40 217 / 0.8); +} +.fill-violet-700\/90 { + fill: rgb(109 40 217 / 0.9); +} +.fill-violet-700\/95 { + fill: rgb(109 40 217 / 0.95); +} +.fill-violet-800 { + fill: #5b21b6; +} +.fill-violet-800\/0 { + fill: rgb(91 33 182 / 0); +} +.fill-violet-800\/10 { + fill: rgb(91 33 182 / 0.1); +} +.fill-violet-800\/100 { + fill: rgb(91 33 182 / 1); +} +.fill-violet-800\/20 { + fill: rgb(91 33 182 / 0.2); +} +.fill-violet-800\/25 { + fill: rgb(91 33 182 / 0.25); +} +.fill-violet-800\/30 { + fill: rgb(91 33 182 / 0.3); +} +.fill-violet-800\/40 { + fill: rgb(91 33 182 / 0.4); +} +.fill-violet-800\/5 { + fill: rgb(91 33 182 / 0.05); +} +.fill-violet-800\/50 { + fill: rgb(91 33 182 / 0.5); +} +.fill-violet-800\/60 { + fill: rgb(91 33 182 / 0.6); +} +.fill-violet-800\/70 { + fill: rgb(91 33 182 / 0.7); +} +.fill-violet-800\/75 { + fill: rgb(91 33 182 / 0.75); +} +.fill-violet-800\/80 { + fill: rgb(91 33 182 / 0.8); +} +.fill-violet-800\/90 { + fill: rgb(91 33 182 / 0.9); +} +.fill-violet-800\/95 { + fill: rgb(91 33 182 / 0.95); +} +.fill-violet-900 { + fill: #4c1d95; +} +.fill-violet-900\/0 { + fill: rgb(76 29 149 / 0); +} +.fill-violet-900\/10 { + fill: rgb(76 29 149 / 0.1); +} +.fill-violet-900\/100 { + fill: rgb(76 29 149 / 1); +} +.fill-violet-900\/20 { + fill: rgb(76 29 149 / 0.2); +} +.fill-violet-900\/25 { + fill: rgb(76 29 149 / 0.25); +} +.fill-violet-900\/30 { + fill: rgb(76 29 149 / 0.3); +} +.fill-violet-900\/40 { + fill: rgb(76 29 149 / 0.4); +} +.fill-violet-900\/5 { + fill: rgb(76 29 149 / 0.05); +} +.fill-violet-900\/50 { + fill: rgb(76 29 149 / 0.5); +} +.fill-violet-900\/60 { + fill: rgb(76 29 149 / 0.6); +} +.fill-violet-900\/70 { + fill: rgb(76 29 149 / 0.7); +} +.fill-violet-900\/75 { + fill: rgb(76 29 149 / 0.75); +} +.fill-violet-900\/80 { + fill: rgb(76 29 149 / 0.8); +} +.fill-violet-900\/90 { + fill: rgb(76 29 149 / 0.9); +} +.fill-violet-900\/95 { + fill: rgb(76 29 149 / 0.95); +} +.stroke-Occupation_du_sol-primary { + stroke: var(--Occupation_du_sol-primary); +} +.stroke-Occupation_du_sol-secondary { + stroke: var(--Occupation_du_sol-secondary); +} +.stroke-Occupation_du_sol-tertiary { + stroke: var(--Occupation_du_sol-tertiary); +} +.stroke-violet-100 { + stroke: #ede9fe; +} +.stroke-violet-100\/0 { + stroke: rgb(237 233 254 / 0); +} +.stroke-violet-100\/10 { + stroke: rgb(237 233 254 / 0.1); +} +.stroke-violet-100\/100 { + stroke: rgb(237 233 254 / 1); +} +.stroke-violet-100\/20 { + stroke: rgb(237 233 254 / 0.2); +} +.stroke-violet-100\/25 { + stroke: rgb(237 233 254 / 0.25); +} +.stroke-violet-100\/30 { + stroke: rgb(237 233 254 / 0.3); +} +.stroke-violet-100\/40 { + stroke: rgb(237 233 254 / 0.4); +} +.stroke-violet-100\/5 { + stroke: rgb(237 233 254 / 0.05); +} +.stroke-violet-100\/50 { + stroke: rgb(237 233 254 / 0.5); +} +.stroke-violet-100\/60 { + stroke: rgb(237 233 254 / 0.6); +} +.stroke-violet-100\/70 { + stroke: rgb(237 233 254 / 0.7); +} +.stroke-violet-100\/75 { + stroke: rgb(237 233 254 / 0.75); +} +.stroke-violet-100\/80 { + stroke: rgb(237 233 254 / 0.8); +} +.stroke-violet-100\/90 { + stroke: rgb(237 233 254 / 0.9); +} +.stroke-violet-100\/95 { + stroke: rgb(237 233 254 / 0.95); +} +.stroke-violet-200 { + stroke: #ddd6fe; +} +.stroke-violet-200\/0 { + stroke: rgb(221 214 254 / 0); +} +.stroke-violet-200\/10 { + stroke: rgb(221 214 254 / 0.1); +} +.stroke-violet-200\/100 { + stroke: rgb(221 214 254 / 1); +} +.stroke-violet-200\/20 { + stroke: rgb(221 214 254 / 0.2); +} +.stroke-violet-200\/25 { + stroke: rgb(221 214 254 / 0.25); +} +.stroke-violet-200\/30 { + stroke: rgb(221 214 254 / 0.3); +} +.stroke-violet-200\/40 { + stroke: rgb(221 214 254 / 0.4); +} +.stroke-violet-200\/5 { + stroke: rgb(221 214 254 / 0.05); +} +.stroke-violet-200\/50 { + stroke: rgb(221 214 254 / 0.5); +} +.stroke-violet-200\/60 { + stroke: rgb(221 214 254 / 0.6); +} +.stroke-violet-200\/70 { + stroke: rgb(221 214 254 / 0.7); +} +.stroke-violet-200\/75 { + stroke: rgb(221 214 254 / 0.75); +} +.stroke-violet-200\/80 { + stroke: rgb(221 214 254 / 0.8); +} +.stroke-violet-200\/90 { + stroke: rgb(221 214 254 / 0.9); +} +.stroke-violet-200\/95 { + stroke: rgb(221 214 254 / 0.95); +} +.stroke-violet-300 { + stroke: #c4b5fd; +} +.stroke-violet-300\/0 { + stroke: rgb(196 181 253 / 0); +} +.stroke-violet-300\/10 { + stroke: rgb(196 181 253 / 0.1); +} +.stroke-violet-300\/100 { + stroke: rgb(196 181 253 / 1); +} +.stroke-violet-300\/20 { + stroke: rgb(196 181 253 / 0.2); +} +.stroke-violet-300\/25 { + stroke: rgb(196 181 253 / 0.25); +} +.stroke-violet-300\/30 { + stroke: rgb(196 181 253 / 0.3); +} +.stroke-violet-300\/40 { + stroke: rgb(196 181 253 / 0.4); +} +.stroke-violet-300\/5 { + stroke: rgb(196 181 253 / 0.05); +} +.stroke-violet-300\/50 { + stroke: rgb(196 181 253 / 0.5); +} +.stroke-violet-300\/60 { + stroke: rgb(196 181 253 / 0.6); +} +.stroke-violet-300\/70 { + stroke: rgb(196 181 253 / 0.7); +} +.stroke-violet-300\/75 { + stroke: rgb(196 181 253 / 0.75); +} +.stroke-violet-300\/80 { + stroke: rgb(196 181 253 / 0.8); +} +.stroke-violet-300\/90 { + stroke: rgb(196 181 253 / 0.9); +} +.stroke-violet-300\/95 { + stroke: rgb(196 181 253 / 0.95); +} +.stroke-violet-400 { + stroke: #a78bfa; +} +.stroke-violet-400\/0 { + stroke: rgb(167 139 250 / 0); +} +.stroke-violet-400\/10 { + stroke: rgb(167 139 250 / 0.1); +} +.stroke-violet-400\/100 { + stroke: rgb(167 139 250 / 1); +} +.stroke-violet-400\/20 { + stroke: rgb(167 139 250 / 0.2); +} +.stroke-violet-400\/25 { + stroke: rgb(167 139 250 / 0.25); +} +.stroke-violet-400\/30 { + stroke: rgb(167 139 250 / 0.3); +} +.stroke-violet-400\/40 { + stroke: rgb(167 139 250 / 0.4); +} +.stroke-violet-400\/5 { + stroke: rgb(167 139 250 / 0.05); +} +.stroke-violet-400\/50 { + stroke: rgb(167 139 250 / 0.5); +} +.stroke-violet-400\/60 { + stroke: rgb(167 139 250 / 0.6); +} +.stroke-violet-400\/70 { + stroke: rgb(167 139 250 / 0.7); +} +.stroke-violet-400\/75 { + stroke: rgb(167 139 250 / 0.75); +} +.stroke-violet-400\/80 { + stroke: rgb(167 139 250 / 0.8); +} +.stroke-violet-400\/90 { + stroke: rgb(167 139 250 / 0.9); +} +.stroke-violet-400\/95 { + stroke: rgb(167 139 250 / 0.95); +} +.stroke-violet-50 { + stroke: #f5f3ff; +} +.stroke-violet-50\/0 { + stroke: rgb(245 243 255 / 0); +} +.stroke-violet-50\/10 { + stroke: rgb(245 243 255 / 0.1); +} +.stroke-violet-50\/100 { + stroke: rgb(245 243 255 / 1); +} +.stroke-violet-50\/20 { + stroke: rgb(245 243 255 / 0.2); +} +.stroke-violet-50\/25 { + stroke: rgb(245 243 255 / 0.25); +} +.stroke-violet-50\/30 { + stroke: rgb(245 243 255 / 0.3); +} +.stroke-violet-50\/40 { + stroke: rgb(245 243 255 / 0.4); +} +.stroke-violet-50\/5 { + stroke: rgb(245 243 255 / 0.05); +} +.stroke-violet-50\/50 { + stroke: rgb(245 243 255 / 0.5); +} +.stroke-violet-50\/60 { + stroke: rgb(245 243 255 / 0.6); +} +.stroke-violet-50\/70 { + stroke: rgb(245 243 255 / 0.7); +} +.stroke-violet-50\/75 { + stroke: rgb(245 243 255 / 0.75); +} +.stroke-violet-50\/80 { + stroke: rgb(245 243 255 / 0.8); +} +.stroke-violet-50\/90 { + stroke: rgb(245 243 255 / 0.9); +} +.stroke-violet-50\/95 { + stroke: rgb(245 243 255 / 0.95); +} +.stroke-violet-500 { + stroke: #8b5cf6; +} +.stroke-violet-500\/0 { + stroke: rgb(139 92 246 / 0); +} +.stroke-violet-500\/10 { + stroke: rgb(139 92 246 / 0.1); +} +.stroke-violet-500\/100 { + stroke: rgb(139 92 246 / 1); +} +.stroke-violet-500\/20 { + stroke: rgb(139 92 246 / 0.2); +} +.stroke-violet-500\/25 { + stroke: rgb(139 92 246 / 0.25); +} +.stroke-violet-500\/30 { + stroke: rgb(139 92 246 / 0.3); +} +.stroke-violet-500\/40 { + stroke: rgb(139 92 246 / 0.4); +} +.stroke-violet-500\/5 { + stroke: rgb(139 92 246 / 0.05); +} +.stroke-violet-500\/50 { + stroke: rgb(139 92 246 / 0.5); +} +.stroke-violet-500\/60 { + stroke: rgb(139 92 246 / 0.6); +} +.stroke-violet-500\/70 { + stroke: rgb(139 92 246 / 0.7); +} +.stroke-violet-500\/75 { + stroke: rgb(139 92 246 / 0.75); +} +.stroke-violet-500\/80 { + stroke: rgb(139 92 246 / 0.8); +} +.stroke-violet-500\/90 { + stroke: rgb(139 92 246 / 0.9); +} +.stroke-violet-500\/95 { + stroke: rgb(139 92 246 / 0.95); +} +.stroke-violet-600 { + stroke: #7c3aed; +} +.stroke-violet-600\/0 { + stroke: rgb(124 58 237 / 0); +} +.stroke-violet-600\/10 { + stroke: rgb(124 58 237 / 0.1); +} +.stroke-violet-600\/100 { + stroke: rgb(124 58 237 / 1); +} +.stroke-violet-600\/20 { + stroke: rgb(124 58 237 / 0.2); +} +.stroke-violet-600\/25 { + stroke: rgb(124 58 237 / 0.25); +} +.stroke-violet-600\/30 { + stroke: rgb(124 58 237 / 0.3); +} +.stroke-violet-600\/40 { + stroke: rgb(124 58 237 / 0.4); +} +.stroke-violet-600\/5 { + stroke: rgb(124 58 237 / 0.05); +} +.stroke-violet-600\/50 { + stroke: rgb(124 58 237 / 0.5); +} +.stroke-violet-600\/60 { + stroke: rgb(124 58 237 / 0.6); +} +.stroke-violet-600\/70 { + stroke: rgb(124 58 237 / 0.7); +} +.stroke-violet-600\/75 { + stroke: rgb(124 58 237 / 0.75); +} +.stroke-violet-600\/80 { + stroke: rgb(124 58 237 / 0.8); +} +.stroke-violet-600\/90 { + stroke: rgb(124 58 237 / 0.9); +} +.stroke-violet-600\/95 { + stroke: rgb(124 58 237 / 0.95); +} +.stroke-violet-700 { + stroke: #6d28d9; +} +.stroke-violet-700\/0 { + stroke: rgb(109 40 217 / 0); +} +.stroke-violet-700\/10 { + stroke: rgb(109 40 217 / 0.1); +} +.stroke-violet-700\/100 { + stroke: rgb(109 40 217 / 1); +} +.stroke-violet-700\/20 { + stroke: rgb(109 40 217 / 0.2); +} +.stroke-violet-700\/25 { + stroke: rgb(109 40 217 / 0.25); +} +.stroke-violet-700\/30 { + stroke: rgb(109 40 217 / 0.3); +} +.stroke-violet-700\/40 { + stroke: rgb(109 40 217 / 0.4); +} +.stroke-violet-700\/5 { + stroke: rgb(109 40 217 / 0.05); +} +.stroke-violet-700\/50 { + stroke: rgb(109 40 217 / 0.5); +} +.stroke-violet-700\/60 { + stroke: rgb(109 40 217 / 0.6); +} +.stroke-violet-700\/70 { + stroke: rgb(109 40 217 / 0.7); +} +.stroke-violet-700\/75 { + stroke: rgb(109 40 217 / 0.75); +} +.stroke-violet-700\/80 { + stroke: rgb(109 40 217 / 0.8); +} +.stroke-violet-700\/90 { + stroke: rgb(109 40 217 / 0.9); +} +.stroke-violet-700\/95 { + stroke: rgb(109 40 217 / 0.95); +} +.stroke-violet-800 { + stroke: #5b21b6; +} +.stroke-violet-800\/0 { + stroke: rgb(91 33 182 / 0); +} +.stroke-violet-800\/10 { + stroke: rgb(91 33 182 / 0.1); +} +.stroke-violet-800\/100 { + stroke: rgb(91 33 182 / 1); +} +.stroke-violet-800\/20 { + stroke: rgb(91 33 182 / 0.2); +} +.stroke-violet-800\/25 { + stroke: rgb(91 33 182 / 0.25); +} +.stroke-violet-800\/30 { + stroke: rgb(91 33 182 / 0.3); +} +.stroke-violet-800\/40 { + stroke: rgb(91 33 182 / 0.4); +} +.stroke-violet-800\/5 { + stroke: rgb(91 33 182 / 0.05); +} +.stroke-violet-800\/50 { + stroke: rgb(91 33 182 / 0.5); +} +.stroke-violet-800\/60 { + stroke: rgb(91 33 182 / 0.6); +} +.stroke-violet-800\/70 { + stroke: rgb(91 33 182 / 0.7); +} +.stroke-violet-800\/75 { + stroke: rgb(91 33 182 / 0.75); +} +.stroke-violet-800\/80 { + stroke: rgb(91 33 182 / 0.8); +} +.stroke-violet-800\/90 { + stroke: rgb(91 33 182 / 0.9); +} +.stroke-violet-800\/95 { + stroke: rgb(91 33 182 / 0.95); +} +.stroke-violet-900 { + stroke: #4c1d95; +} +.stroke-violet-900\/0 { + stroke: rgb(76 29 149 / 0); +} +.stroke-violet-900\/10 { + stroke: rgb(76 29 149 / 0.1); +} +.stroke-violet-900\/100 { + stroke: rgb(76 29 149 / 1); +} +.stroke-violet-900\/20 { + stroke: rgb(76 29 149 / 0.2); +} +.stroke-violet-900\/25 { + stroke: rgb(76 29 149 / 0.25); +} +.stroke-violet-900\/30 { + stroke: rgb(76 29 149 / 0.3); +} +.stroke-violet-900\/40 { + stroke: rgb(76 29 149 / 0.4); +} +.stroke-violet-900\/5 { + stroke: rgb(76 29 149 / 0.05); +} +.stroke-violet-900\/50 { + stroke: rgb(76 29 149 / 0.5); +} +.stroke-violet-900\/60 { + stroke: rgb(76 29 149 / 0.6); +} +.stroke-violet-900\/70 { + stroke: rgb(76 29 149 / 0.7); +} +.stroke-violet-900\/75 { + stroke: rgb(76 29 149 / 0.75); +} +.stroke-violet-900\/80 { + stroke: rgb(76 29 149 / 0.8); +} +.stroke-violet-900\/90 { + stroke: rgb(76 29 149 / 0.9); +} +.stroke-violet-900\/95 { + stroke: rgb(76 29 149 / 0.95); +} +.p-2 { + padding: 0.5rem; +} +.p-2\.5 { + padding: 0.625rem; +} +.p-4 { + padding: 1rem; +} +.p-\[10px\] { + padding: 10px; +} +.p-\[15px\] { + padding: 15px; +} +.p-\[5px\] { + padding: 5px; +} +.p-px { + padding: 1px; +} +.px-1 { + padding-left: 0.25rem; + padding-right: 0.25rem; +} +.px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; +} +.px-2\.5 { + padding-left: 0.625rem; + padding-right: 0.625rem; +} +.px-4 { + padding-left: 1rem; + padding-right: 1rem; +} +.px-\[2px\] { + padding-left: 2px; + padding-right: 2px; +} +.px-\[7px\] { + padding-left: 7px; + padding-right: 7px; +} +.py-0 { + padding-top: 0px; + padding-bottom: 0px; +} +.py-0\.5 { + padding-top: 0.125rem; + padding-bottom: 0.125rem; +} +.py-1 { + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} +.py-1\.5 { + padding-top: 0.375rem; + padding-bottom: 0.375rem; +} +.py-\[1px\] { + padding-top: 1px; + padding-bottom: 1px; +} +.py-\[3px\] { + padding-top: 3px; + padding-bottom: 3px; +} +.pl-2 { + padding-left: 0.5rem; +} +.pl-2\.5 { + padding-left: 0.625rem; +} +.pr-2 { + padding-right: 0.5rem; +} +.pt-1 { + padding-top: 0.25rem; +} +.pt-1\.5 { + padding-top: 0.375rem; +} +.pt-3 { + padding-top: 0.75rem; +} +.pt-5 { + padding-top: 1.25rem; +} +.text-left { + text-align: left; +} +.text-center { + text-align: center; +} +.text-start { + text-align: start; +} +.font-arial { + font-family: Arial, sans-serif; +} +.text-2xl { + font-size: 1.5rem; + line-height: 2rem; +} +.text-6xl { + font-size: 3.75rem; + line-height: 1; +} +.text-\[1\.7rem\] { + font-size: 1.7rem; +} +.text-\[12px\] { + font-size: 12px; +} +.text-\[13px\] { + font-size: 13px; +} +.text-\[24px\] { + font-size: 24px; +} +.text-base { + font-size: 1rem; + line-height: 1.5rem; +} +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} +.text-xl { + font-size: 1.25rem; + line-height: 1.75rem; +} +.font-bold { + font-weight: 700; +} +.font-extrabold { + font-weight: 800; +} +.font-semibold { + font-weight: 600; +} +.uppercase { + text-transform: uppercase; +} +.oldstyle-nums { + --tw-numeric-figure: oldstyle-nums; + font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction); +} +.leading-6 { + line-height: 1.5rem; +} +.text-Occupation_du_sol-primary { + color: var(--Occupation_du_sol-primary); +} +.text-Occupation_du_sol-secondary { + color: var(--Occupation_du_sol-secondary); +} +.text-Occupation_du_sol-tertiary { + color: var(--Occupation_du_sol-tertiary); +} +.text-gray-100\/40 { + color: rgb(243 244 246 / 0.4); +} +.text-gray-300 { + --tw-text-opacity: 1; + color: rgb(209 213 219 / var(--tw-text-opacity)); +} +.text-gray-500 { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} +.text-primary { + color: var(--color-primary); +} +.text-secondary { + color: var(--color-secondary); +} +.text-slate-400 { + --tw-text-opacity: 1; + color: rgb(148 163 184 / var(--tw-text-opacity)); +} +.text-tertiary { + color: var(--color-tertiary); +} +.text-violet-100 { + --tw-text-opacity: 1; + color: rgb(237 233 254 / var(--tw-text-opacity)); +} +.text-violet-100\/0 { + color: rgb(237 233 254 / 0); +} +.text-violet-100\/10 { + color: rgb(237 233 254 / 0.1); +} +.text-violet-100\/100 { + color: rgb(237 233 254 / 1); +} +.text-violet-100\/20 { + color: rgb(237 233 254 / 0.2); +} +.text-violet-100\/25 { + color: rgb(237 233 254 / 0.25); +} +.text-violet-100\/30 { + color: rgb(237 233 254 / 0.3); +} +.text-violet-100\/40 { + color: rgb(237 233 254 / 0.4); +} +.text-violet-100\/5 { + color: rgb(237 233 254 / 0.05); +} +.text-violet-100\/50 { + color: rgb(237 233 254 / 0.5); +} +.text-violet-100\/60 { + color: rgb(237 233 254 / 0.6); +} +.text-violet-100\/70 { + color: rgb(237 233 254 / 0.7); +} +.text-violet-100\/75 { + color: rgb(237 233 254 / 0.75); +} +.text-violet-100\/80 { + color: rgb(237 233 254 / 0.8); +} +.text-violet-100\/90 { + color: rgb(237 233 254 / 0.9); +} +.text-violet-100\/95 { + color: rgb(237 233 254 / 0.95); +} +.text-violet-200 { + --tw-text-opacity: 1; + color: rgb(221 214 254 / var(--tw-text-opacity)); +} +.text-violet-200\/0 { + color: rgb(221 214 254 / 0); +} +.text-violet-200\/10 { + color: rgb(221 214 254 / 0.1); +} +.text-violet-200\/100 { + color: rgb(221 214 254 / 1); +} +.text-violet-200\/20 { + color: rgb(221 214 254 / 0.2); +} +.text-violet-200\/25 { + color: rgb(221 214 254 / 0.25); +} +.text-violet-200\/30 { + color: rgb(221 214 254 / 0.3); +} +.text-violet-200\/40 { + color: rgb(221 214 254 / 0.4); +} +.text-violet-200\/5 { + color: rgb(221 214 254 / 0.05); +} +.text-violet-200\/50 { + color: rgb(221 214 254 / 0.5); +} +.text-violet-200\/60 { + color: rgb(221 214 254 / 0.6); +} +.text-violet-200\/70 { + color: rgb(221 214 254 / 0.7); +} +.text-violet-200\/75 { + color: rgb(221 214 254 / 0.75); +} +.text-violet-200\/80 { + color: rgb(221 214 254 / 0.8); +} +.text-violet-200\/90 { + color: rgb(221 214 254 / 0.9); +} +.text-violet-200\/95 { + color: rgb(221 214 254 / 0.95); +} +.text-violet-300 { + --tw-text-opacity: 1; + color: rgb(196 181 253 / var(--tw-text-opacity)); +} +.text-violet-300\/0 { + color: rgb(196 181 253 / 0); +} +.text-violet-300\/10 { + color: rgb(196 181 253 / 0.1); +} +.text-violet-300\/100 { + color: rgb(196 181 253 / 1); +} +.text-violet-300\/20 { + color: rgb(196 181 253 / 0.2); +} +.text-violet-300\/25 { + color: rgb(196 181 253 / 0.25); +} +.text-violet-300\/30 { + color: rgb(196 181 253 / 0.3); +} +.text-violet-300\/40 { + color: rgb(196 181 253 / 0.4); +} +.text-violet-300\/5 { + color: rgb(196 181 253 / 0.05); +} +.text-violet-300\/50 { + color: rgb(196 181 253 / 0.5); +} +.text-violet-300\/60 { + color: rgb(196 181 253 / 0.6); +} +.text-violet-300\/70 { + color: rgb(196 181 253 / 0.7); +} +.text-violet-300\/75 { + color: rgb(196 181 253 / 0.75); +} +.text-violet-300\/80 { + color: rgb(196 181 253 / 0.8); +} +.text-violet-300\/90 { + color: rgb(196 181 253 / 0.9); +} +.text-violet-300\/95 { + color: rgb(196 181 253 / 0.95); +} +.text-violet-400 { + --tw-text-opacity: 1; + color: rgb(167 139 250 / var(--tw-text-opacity)); +} +.text-violet-400\/0 { + color: rgb(167 139 250 / 0); +} +.text-violet-400\/10 { + color: rgb(167 139 250 / 0.1); +} +.text-violet-400\/100 { + color: rgb(167 139 250 / 1); +} +.text-violet-400\/20 { + color: rgb(167 139 250 / 0.2); +} +.text-violet-400\/25 { + color: rgb(167 139 250 / 0.25); +} +.text-violet-400\/30 { + color: rgb(167 139 250 / 0.3); +} +.text-violet-400\/40 { + color: rgb(167 139 250 / 0.4); +} +.text-violet-400\/5 { + color: rgb(167 139 250 / 0.05); +} +.text-violet-400\/50 { + color: rgb(167 139 250 / 0.5); +} +.text-violet-400\/60 { + color: rgb(167 139 250 / 0.6); +} +.text-violet-400\/70 { + color: rgb(167 139 250 / 0.7); +} +.text-violet-400\/75 { + color: rgb(167 139 250 / 0.75); +} +.text-violet-400\/80 { + color: rgb(167 139 250 / 0.8); +} +.text-violet-400\/90 { + color: rgb(167 139 250 / 0.9); +} +.text-violet-400\/95 { + color: rgb(167 139 250 / 0.95); +} +.text-violet-50 { + --tw-text-opacity: 1; + color: rgb(245 243 255 / var(--tw-text-opacity)); +} +.text-violet-50\/0 { + color: rgb(245 243 255 / 0); +} +.text-violet-50\/10 { + color: rgb(245 243 255 / 0.1); +} +.text-violet-50\/100 { + color: rgb(245 243 255 / 1); +} +.text-violet-50\/20 { + color: rgb(245 243 255 / 0.2); +} +.text-violet-50\/25 { + color: rgb(245 243 255 / 0.25); +} +.text-violet-50\/30 { + color: rgb(245 243 255 / 0.3); +} +.text-violet-50\/40 { + color: rgb(245 243 255 / 0.4); +} +.text-violet-50\/5 { + color: rgb(245 243 255 / 0.05); +} +.text-violet-50\/50 { + color: rgb(245 243 255 / 0.5); +} +.text-violet-50\/60 { + color: rgb(245 243 255 / 0.6); +} +.text-violet-50\/70 { + color: rgb(245 243 255 / 0.7); +} +.text-violet-50\/75 { + color: rgb(245 243 255 / 0.75); +} +.text-violet-50\/80 { + color: rgb(245 243 255 / 0.8); +} +.text-violet-50\/90 { + color: rgb(245 243 255 / 0.9); +} +.text-violet-50\/95 { + color: rgb(245 243 255 / 0.95); +} +.text-violet-500 { + --tw-text-opacity: 1; + color: rgb(139 92 246 / var(--tw-text-opacity)); +} +.text-violet-500\/0 { + color: rgb(139 92 246 / 0); +} +.text-violet-500\/10 { + color: rgb(139 92 246 / 0.1); +} +.text-violet-500\/100 { + color: rgb(139 92 246 / 1); +} +.text-violet-500\/20 { + color: rgb(139 92 246 / 0.2); +} +.text-violet-500\/25 { + color: rgb(139 92 246 / 0.25); +} +.text-violet-500\/30 { + color: rgb(139 92 246 / 0.3); +} +.text-violet-500\/40 { + color: rgb(139 92 246 / 0.4); +} +.text-violet-500\/5 { + color: rgb(139 92 246 / 0.05); +} +.text-violet-500\/50 { + color: rgb(139 92 246 / 0.5); +} +.text-violet-500\/60 { + color: rgb(139 92 246 / 0.6); +} +.text-violet-500\/70 { + color: rgb(139 92 246 / 0.7); +} +.text-violet-500\/75 { + color: rgb(139 92 246 / 0.75); +} +.text-violet-500\/80 { + color: rgb(139 92 246 / 0.8); +} +.text-violet-500\/90 { + color: rgb(139 92 246 / 0.9); +} +.text-violet-500\/95 { + color: rgb(139 92 246 / 0.95); +} +.text-violet-600 { + --tw-text-opacity: 1; + color: rgb(124 58 237 / var(--tw-text-opacity)); +} +.text-violet-600\/0 { + color: rgb(124 58 237 / 0); +} +.text-violet-600\/10 { + color: rgb(124 58 237 / 0.1); +} +.text-violet-600\/100 { + color: rgb(124 58 237 / 1); +} +.text-violet-600\/20 { + color: rgb(124 58 237 / 0.2); +} +.text-violet-600\/25 { + color: rgb(124 58 237 / 0.25); +} +.text-violet-600\/30 { + color: rgb(124 58 237 / 0.3); +} +.text-violet-600\/40 { + color: rgb(124 58 237 / 0.4); +} +.text-violet-600\/5 { + color: rgb(124 58 237 / 0.05); +} +.text-violet-600\/50 { + color: rgb(124 58 237 / 0.5); +} +.text-violet-600\/60 { + color: rgb(124 58 237 / 0.6); +} +.text-violet-600\/70 { + color: rgb(124 58 237 / 0.7); +} +.text-violet-600\/75 { + color: rgb(124 58 237 / 0.75); +} +.text-violet-600\/80 { + color: rgb(124 58 237 / 0.8); +} +.text-violet-600\/90 { + color: rgb(124 58 237 / 0.9); +} +.text-violet-600\/95 { + color: rgb(124 58 237 / 0.95); +} +.text-violet-700 { + --tw-text-opacity: 1; + color: rgb(109 40 217 / var(--tw-text-opacity)); +} +.text-violet-700\/0 { + color: rgb(109 40 217 / 0); +} +.text-violet-700\/10 { + color: rgb(109 40 217 / 0.1); +} +.text-violet-700\/100 { + color: rgb(109 40 217 / 1); +} +.text-violet-700\/20 { + color: rgb(109 40 217 / 0.2); +} +.text-violet-700\/25 { + color: rgb(109 40 217 / 0.25); +} +.text-violet-700\/30 { + color: rgb(109 40 217 / 0.3); +} +.text-violet-700\/40 { + color: rgb(109 40 217 / 0.4); +} +.text-violet-700\/5 { + color: rgb(109 40 217 / 0.05); +} +.text-violet-700\/50 { + color: rgb(109 40 217 / 0.5); +} +.text-violet-700\/60 { + color: rgb(109 40 217 / 0.6); +} +.text-violet-700\/70 { + color: rgb(109 40 217 / 0.7); +} +.text-violet-700\/75 { + color: rgb(109 40 217 / 0.75); +} +.text-violet-700\/80 { + color: rgb(109 40 217 / 0.8); +} +.text-violet-700\/90 { + color: rgb(109 40 217 / 0.9); +} +.text-violet-700\/95 { + color: rgb(109 40 217 / 0.95); +} +.text-violet-800 { + --tw-text-opacity: 1; + color: rgb(91 33 182 / var(--tw-text-opacity)); +} +.text-violet-800\/0 { + color: rgb(91 33 182 / 0); +} +.text-violet-800\/10 { + color: rgb(91 33 182 / 0.1); +} +.text-violet-800\/100 { + color: rgb(91 33 182 / 1); +} +.text-violet-800\/20 { + color: rgb(91 33 182 / 0.2); +} +.text-violet-800\/25 { + color: rgb(91 33 182 / 0.25); +} +.text-violet-800\/30 { + color: rgb(91 33 182 / 0.3); +} +.text-violet-800\/40 { + color: rgb(91 33 182 / 0.4); +} +.text-violet-800\/5 { + color: rgb(91 33 182 / 0.05); +} +.text-violet-800\/50 { + color: rgb(91 33 182 / 0.5); +} +.text-violet-800\/60 { + color: rgb(91 33 182 / 0.6); +} +.text-violet-800\/70 { + color: rgb(91 33 182 / 0.7); +} +.text-violet-800\/75 { + color: rgb(91 33 182 / 0.75); +} +.text-violet-800\/80 { + color: rgb(91 33 182 / 0.8); +} +.text-violet-800\/90 { + color: rgb(91 33 182 / 0.9); +} +.text-violet-800\/95 { + color: rgb(91 33 182 / 0.95); +} +.text-violet-900 { + --tw-text-opacity: 1; + color: rgb(76 29 149 / var(--tw-text-opacity)); +} +.text-violet-900\/0 { + color: rgb(76 29 149 / 0); +} +.text-violet-900\/10 { + color: rgb(76 29 149 / 0.1); +} +.text-violet-900\/100 { + color: rgb(76 29 149 / 1); +} +.text-violet-900\/20 { + color: rgb(76 29 149 / 0.2); +} +.text-violet-900\/25 { + color: rgb(76 29 149 / 0.25); +} +.text-violet-900\/30 { + color: rgb(76 29 149 / 0.3); +} +.text-violet-900\/40 { + color: rgb(76 29 149 / 0.4); +} +.text-violet-900\/5 { + color: rgb(76 29 149 / 0.05); +} +.text-violet-900\/50 { + color: rgb(76 29 149 / 0.5); +} +.text-violet-900\/60 { + color: rgb(76 29 149 / 0.6); +} +.text-violet-900\/70 { + color: rgb(76 29 149 / 0.7); +} +.text-violet-900\/75 { + color: rgb(76 29 149 / 0.75); +} +.text-violet-900\/80 { + color: rgb(76 29 149 / 0.8); +} +.text-violet-900\/90 { + color: rgb(76 29 149 / 0.9); +} +.text-violet-900\/95 { + color: rgb(76 29 149 / 0.95); +} +.text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} +.decoration-Occupation_du_sol-primary { + text-decoration-color: var(--Occupation_du_sol-primary); +} +.decoration-Occupation_du_sol-secondary { + text-decoration-color: var(--Occupation_du_sol-secondary); +} +.decoration-Occupation_du_sol-tertiary { + text-decoration-color: var(--Occupation_du_sol-tertiary); +} +.decoration-violet-100 { + text-decoration-color: #ede9fe; +} +.decoration-violet-100\/0 { + text-decoration-color: rgb(237 233 254 / 0); +} +.decoration-violet-100\/10 { + text-decoration-color: rgb(237 233 254 / 0.1); +} +.decoration-violet-100\/100 { + text-decoration-color: rgb(237 233 254 / 1); +} +.decoration-violet-100\/20 { + text-decoration-color: rgb(237 233 254 / 0.2); +} +.decoration-violet-100\/25 { + text-decoration-color: rgb(237 233 254 / 0.25); +} +.decoration-violet-100\/30 { + text-decoration-color: rgb(237 233 254 / 0.3); +} +.decoration-violet-100\/40 { + text-decoration-color: rgb(237 233 254 / 0.4); +} +.decoration-violet-100\/5 { + text-decoration-color: rgb(237 233 254 / 0.05); +} +.decoration-violet-100\/50 { + text-decoration-color: rgb(237 233 254 / 0.5); +} +.decoration-violet-100\/60 { + text-decoration-color: rgb(237 233 254 / 0.6); +} +.decoration-violet-100\/70 { + text-decoration-color: rgb(237 233 254 / 0.7); +} +.decoration-violet-100\/75 { + text-decoration-color: rgb(237 233 254 / 0.75); +} +.decoration-violet-100\/80 { + text-decoration-color: rgb(237 233 254 / 0.8); +} +.decoration-violet-100\/90 { + text-decoration-color: rgb(237 233 254 / 0.9); +} +.decoration-violet-100\/95 { + text-decoration-color: rgb(237 233 254 / 0.95); +} +.decoration-violet-200 { + text-decoration-color: #ddd6fe; +} +.decoration-violet-200\/0 { + text-decoration-color: rgb(221 214 254 / 0); +} +.decoration-violet-200\/10 { + text-decoration-color: rgb(221 214 254 / 0.1); +} +.decoration-violet-200\/100 { + text-decoration-color: rgb(221 214 254 / 1); +} +.decoration-violet-200\/20 { + text-decoration-color: rgb(221 214 254 / 0.2); +} +.decoration-violet-200\/25 { + text-decoration-color: rgb(221 214 254 / 0.25); +} +.decoration-violet-200\/30 { + text-decoration-color: rgb(221 214 254 / 0.3); +} +.decoration-violet-200\/40 { + text-decoration-color: rgb(221 214 254 / 0.4); +} +.decoration-violet-200\/5 { + text-decoration-color: rgb(221 214 254 / 0.05); +} +.decoration-violet-200\/50 { + text-decoration-color: rgb(221 214 254 / 0.5); +} +.decoration-violet-200\/60 { + text-decoration-color: rgb(221 214 254 / 0.6); +} +.decoration-violet-200\/70 { + text-decoration-color: rgb(221 214 254 / 0.7); +} +.decoration-violet-200\/75 { + text-decoration-color: rgb(221 214 254 / 0.75); +} +.decoration-violet-200\/80 { + text-decoration-color: rgb(221 214 254 / 0.8); +} +.decoration-violet-200\/90 { + text-decoration-color: rgb(221 214 254 / 0.9); +} +.decoration-violet-200\/95 { + text-decoration-color: rgb(221 214 254 / 0.95); +} +.decoration-violet-300 { + text-decoration-color: #c4b5fd; +} +.decoration-violet-300\/0 { + text-decoration-color: rgb(196 181 253 / 0); +} +.decoration-violet-300\/10 { + text-decoration-color: rgb(196 181 253 / 0.1); +} +.decoration-violet-300\/100 { + text-decoration-color: rgb(196 181 253 / 1); +} +.decoration-violet-300\/20 { + text-decoration-color: rgb(196 181 253 / 0.2); +} +.decoration-violet-300\/25 { + text-decoration-color: rgb(196 181 253 / 0.25); +} +.decoration-violet-300\/30 { + text-decoration-color: rgb(196 181 253 / 0.3); +} +.decoration-violet-300\/40 { + text-decoration-color: rgb(196 181 253 / 0.4); +} +.decoration-violet-300\/5 { + text-decoration-color: rgb(196 181 253 / 0.05); +} +.decoration-violet-300\/50 { + text-decoration-color: rgb(196 181 253 / 0.5); +} +.decoration-violet-300\/60 { + text-decoration-color: rgb(196 181 253 / 0.6); +} +.decoration-violet-300\/70 { + text-decoration-color: rgb(196 181 253 / 0.7); +} +.decoration-violet-300\/75 { + text-decoration-color: rgb(196 181 253 / 0.75); +} +.decoration-violet-300\/80 { + text-decoration-color: rgb(196 181 253 / 0.8); +} +.decoration-violet-300\/90 { + text-decoration-color: rgb(196 181 253 / 0.9); +} +.decoration-violet-300\/95 { + text-decoration-color: rgb(196 181 253 / 0.95); +} +.decoration-violet-400 { + text-decoration-color: #a78bfa; +} +.decoration-violet-400\/0 { + text-decoration-color: rgb(167 139 250 / 0); +} +.decoration-violet-400\/10 { + text-decoration-color: rgb(167 139 250 / 0.1); +} +.decoration-violet-400\/100 { + text-decoration-color: rgb(167 139 250 / 1); +} +.decoration-violet-400\/20 { + text-decoration-color: rgb(167 139 250 / 0.2); +} +.decoration-violet-400\/25 { + text-decoration-color: rgb(167 139 250 / 0.25); +} +.decoration-violet-400\/30 { + text-decoration-color: rgb(167 139 250 / 0.3); +} +.decoration-violet-400\/40 { + text-decoration-color: rgb(167 139 250 / 0.4); +} +.decoration-violet-400\/5 { + text-decoration-color: rgb(167 139 250 / 0.05); +} +.decoration-violet-400\/50 { + text-decoration-color: rgb(167 139 250 / 0.5); +} +.decoration-violet-400\/60 { + text-decoration-color: rgb(167 139 250 / 0.6); +} +.decoration-violet-400\/70 { + text-decoration-color: rgb(167 139 250 / 0.7); +} +.decoration-violet-400\/75 { + text-decoration-color: rgb(167 139 250 / 0.75); +} +.decoration-violet-400\/80 { + text-decoration-color: rgb(167 139 250 / 0.8); +} +.decoration-violet-400\/90 { + text-decoration-color: rgb(167 139 250 / 0.9); +} +.decoration-violet-400\/95 { + text-decoration-color: rgb(167 139 250 / 0.95); +} +.decoration-violet-50 { + text-decoration-color: #f5f3ff; +} +.decoration-violet-50\/0 { + text-decoration-color: rgb(245 243 255 / 0); +} +.decoration-violet-50\/10 { + text-decoration-color: rgb(245 243 255 / 0.1); +} +.decoration-violet-50\/100 { + text-decoration-color: rgb(245 243 255 / 1); +} +.decoration-violet-50\/20 { + text-decoration-color: rgb(245 243 255 / 0.2); +} +.decoration-violet-50\/25 { + text-decoration-color: rgb(245 243 255 / 0.25); +} +.decoration-violet-50\/30 { + text-decoration-color: rgb(245 243 255 / 0.3); +} +.decoration-violet-50\/40 { + text-decoration-color: rgb(245 243 255 / 0.4); +} +.decoration-violet-50\/5 { + text-decoration-color: rgb(245 243 255 / 0.05); +} +.decoration-violet-50\/50 { + text-decoration-color: rgb(245 243 255 / 0.5); +} +.decoration-violet-50\/60 { + text-decoration-color: rgb(245 243 255 / 0.6); +} +.decoration-violet-50\/70 { + text-decoration-color: rgb(245 243 255 / 0.7); +} +.decoration-violet-50\/75 { + text-decoration-color: rgb(245 243 255 / 0.75); +} +.decoration-violet-50\/80 { + text-decoration-color: rgb(245 243 255 / 0.8); +} +.decoration-violet-50\/90 { + text-decoration-color: rgb(245 243 255 / 0.9); +} +.decoration-violet-50\/95 { + text-decoration-color: rgb(245 243 255 / 0.95); +} +.decoration-violet-500 { + text-decoration-color: #8b5cf6; +} +.decoration-violet-500\/0 { + text-decoration-color: rgb(139 92 246 / 0); +} +.decoration-violet-500\/10 { + text-decoration-color: rgb(139 92 246 / 0.1); +} +.decoration-violet-500\/100 { + text-decoration-color: rgb(139 92 246 / 1); +} +.decoration-violet-500\/20 { + text-decoration-color: rgb(139 92 246 / 0.2); +} +.decoration-violet-500\/25 { + text-decoration-color: rgb(139 92 246 / 0.25); +} +.decoration-violet-500\/30 { + text-decoration-color: rgb(139 92 246 / 0.3); +} +.decoration-violet-500\/40 { + text-decoration-color: rgb(139 92 246 / 0.4); +} +.decoration-violet-500\/5 { + text-decoration-color: rgb(139 92 246 / 0.05); +} +.decoration-violet-500\/50 { + text-decoration-color: rgb(139 92 246 / 0.5); +} +.decoration-violet-500\/60 { + text-decoration-color: rgb(139 92 246 / 0.6); +} +.decoration-violet-500\/70 { + text-decoration-color: rgb(139 92 246 / 0.7); +} +.decoration-violet-500\/75 { + text-decoration-color: rgb(139 92 246 / 0.75); +} +.decoration-violet-500\/80 { + text-decoration-color: rgb(139 92 246 / 0.8); +} +.decoration-violet-500\/90 { + text-decoration-color: rgb(139 92 246 / 0.9); +} +.decoration-violet-500\/95 { + text-decoration-color: rgb(139 92 246 / 0.95); +} +.decoration-violet-600 { + text-decoration-color: #7c3aed; +} +.decoration-violet-600\/0 { + text-decoration-color: rgb(124 58 237 / 0); +} +.decoration-violet-600\/10 { + text-decoration-color: rgb(124 58 237 / 0.1); +} +.decoration-violet-600\/100 { + text-decoration-color: rgb(124 58 237 / 1); +} +.decoration-violet-600\/20 { + text-decoration-color: rgb(124 58 237 / 0.2); +} +.decoration-violet-600\/25 { + text-decoration-color: rgb(124 58 237 / 0.25); +} +.decoration-violet-600\/30 { + text-decoration-color: rgb(124 58 237 / 0.3); +} +.decoration-violet-600\/40 { + text-decoration-color: rgb(124 58 237 / 0.4); +} +.decoration-violet-600\/5 { + text-decoration-color: rgb(124 58 237 / 0.05); +} +.decoration-violet-600\/50 { + text-decoration-color: rgb(124 58 237 / 0.5); +} +.decoration-violet-600\/60 { + text-decoration-color: rgb(124 58 237 / 0.6); +} +.decoration-violet-600\/70 { + text-decoration-color: rgb(124 58 237 / 0.7); +} +.decoration-violet-600\/75 { + text-decoration-color: rgb(124 58 237 / 0.75); +} +.decoration-violet-600\/80 { + text-decoration-color: rgb(124 58 237 / 0.8); +} +.decoration-violet-600\/90 { + text-decoration-color: rgb(124 58 237 / 0.9); +} +.decoration-violet-600\/95 { + text-decoration-color: rgb(124 58 237 / 0.95); +} +.decoration-violet-700 { + text-decoration-color: #6d28d9; +} +.decoration-violet-700\/0 { + text-decoration-color: rgb(109 40 217 / 0); +} +.decoration-violet-700\/10 { + text-decoration-color: rgb(109 40 217 / 0.1); +} +.decoration-violet-700\/100 { + text-decoration-color: rgb(109 40 217 / 1); +} +.decoration-violet-700\/20 { + text-decoration-color: rgb(109 40 217 / 0.2); +} +.decoration-violet-700\/25 { + text-decoration-color: rgb(109 40 217 / 0.25); +} +.decoration-violet-700\/30 { + text-decoration-color: rgb(109 40 217 / 0.3); +} +.decoration-violet-700\/40 { + text-decoration-color: rgb(109 40 217 / 0.4); +} +.decoration-violet-700\/5 { + text-decoration-color: rgb(109 40 217 / 0.05); +} +.decoration-violet-700\/50 { + text-decoration-color: rgb(109 40 217 / 0.5); +} +.decoration-violet-700\/60 { + text-decoration-color: rgb(109 40 217 / 0.6); +} +.decoration-violet-700\/70 { + text-decoration-color: rgb(109 40 217 / 0.7); +} +.decoration-violet-700\/75 { + text-decoration-color: rgb(109 40 217 / 0.75); +} +.decoration-violet-700\/80 { + text-decoration-color: rgb(109 40 217 / 0.8); +} +.decoration-violet-700\/90 { + text-decoration-color: rgb(109 40 217 / 0.9); +} +.decoration-violet-700\/95 { + text-decoration-color: rgb(109 40 217 / 0.95); +} +.decoration-violet-800 { + text-decoration-color: #5b21b6; +} +.decoration-violet-800\/0 { + text-decoration-color: rgb(91 33 182 / 0); +} +.decoration-violet-800\/10 { + text-decoration-color: rgb(91 33 182 / 0.1); +} +.decoration-violet-800\/100 { + text-decoration-color: rgb(91 33 182 / 1); +} +.decoration-violet-800\/20 { + text-decoration-color: rgb(91 33 182 / 0.2); +} +.decoration-violet-800\/25 { + text-decoration-color: rgb(91 33 182 / 0.25); +} +.decoration-violet-800\/30 { + text-decoration-color: rgb(91 33 182 / 0.3); +} +.decoration-violet-800\/40 { + text-decoration-color: rgb(91 33 182 / 0.4); +} +.decoration-violet-800\/5 { + text-decoration-color: rgb(91 33 182 / 0.05); +} +.decoration-violet-800\/50 { + text-decoration-color: rgb(91 33 182 / 0.5); +} +.decoration-violet-800\/60 { + text-decoration-color: rgb(91 33 182 / 0.6); +} +.decoration-violet-800\/70 { + text-decoration-color: rgb(91 33 182 / 0.7); +} +.decoration-violet-800\/75 { + text-decoration-color: rgb(91 33 182 / 0.75); +} +.decoration-violet-800\/80 { + text-decoration-color: rgb(91 33 182 / 0.8); +} +.decoration-violet-800\/90 { + text-decoration-color: rgb(91 33 182 / 0.9); +} +.decoration-violet-800\/95 { + text-decoration-color: rgb(91 33 182 / 0.95); +} +.decoration-violet-900 { + text-decoration-color: #4c1d95; +} +.decoration-violet-900\/0 { + text-decoration-color: rgb(76 29 149 / 0); +} +.decoration-violet-900\/10 { + text-decoration-color: rgb(76 29 149 / 0.1); +} +.decoration-violet-900\/100 { + text-decoration-color: rgb(76 29 149 / 1); +} +.decoration-violet-900\/20 { + text-decoration-color: rgb(76 29 149 / 0.2); +} +.decoration-violet-900\/25 { + text-decoration-color: rgb(76 29 149 / 0.25); +} +.decoration-violet-900\/30 { + text-decoration-color: rgb(76 29 149 / 0.3); +} +.decoration-violet-900\/40 { + text-decoration-color: rgb(76 29 149 / 0.4); +} +.decoration-violet-900\/5 { + text-decoration-color: rgb(76 29 149 / 0.05); +} +.decoration-violet-900\/50 { + text-decoration-color: rgb(76 29 149 / 0.5); +} +.decoration-violet-900\/60 { + text-decoration-color: rgb(76 29 149 / 0.6); +} +.decoration-violet-900\/70 { + text-decoration-color: rgb(76 29 149 / 0.7); +} +.decoration-violet-900\/75 { + text-decoration-color: rgb(76 29 149 / 0.75); +} +.decoration-violet-900\/80 { + text-decoration-color: rgb(76 29 149 / 0.8); +} +.decoration-violet-900\/90 { + text-decoration-color: rgb(76 29 149 / 0.9); +} +.decoration-violet-900\/95 { + text-decoration-color: rgb(76 29 149 / 0.95); +} +.decoration-solid { + text-decoration-style: solid; +} +.placeholder-Amenagement_du_territoire-primary::placeholder { + color: var(--Amenagement_du_territoire-primary); +} +.placeholder-Amenagement_du_territoire-secondary::placeholder { + color: var(--Amenagement_du_territoire-secondary); +} +.placeholder-Amenagement_du_territoire-tertiary::placeholder { + color: var(--Amenagement_du_territoire-tertiary); +} +.placeholder-Environnement_humain-primary::placeholder { + color: var(--Environnement_humain-primary); +} +.placeholder-Environnement_humain-secondary::placeholder { + color: var(--Environnement_humain-secondary); +} +.placeholder-Environnement_humain-tertiary::placeholder { + color: var(--Environnement_humain-tertiary); +} +.placeholder-Environnement_naturel-primary::placeholder { + color: var(--Environnement_naturel-primary); +} +.placeholder-Environnement_naturel-secondary::placeholder { + color: var(--Environnement_naturel-secondary); +} +.placeholder-Environnement_naturel-tertiary::placeholder { + color: var(--Environnement_naturel-tertiary); +} +.placeholder-Occupation_du_sol-primary::placeholder { + color: var(--Occupation_du_sol-primary); +} +.placeholder-Occupation_du_sol-secondary::placeholder { + color: var(--Occupation_du_sol-secondary); +} +.placeholder-Occupation_du_sol-tertiary::placeholder { + color: var(--Occupation_du_sol-tertiary); +} +.placeholder-agriculture-primary::placeholder { + color: var(--agriculture-primary); +} +.placeholder-agriculture-secondary::placeholder { + color: var(--agriculture-secondary); +} +.placeholder-agriculture-tertiary::placeholder { + color: var(--agriculture-tertiary); +} +.placeholder-ahc-primary::placeholder { + color: var(--ahc-primary); +} +.placeholder-ahc-secondary::placeholder { + color: var(--ahc-secondary); +} +.placeholder-ahc-tertiary::placeholder { + color: var(--ahc-tertiary); +} +.placeholder-amber-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(254 243 199 / var(--tw-placeholder-opacity)); +} +.placeholder-amber-100\/0::placeholder { + color: rgb(254 243 199 / 0); +} +.placeholder-amber-100\/10::placeholder { + color: rgb(254 243 199 / 0.1); +} +.placeholder-amber-100\/100::placeholder { + color: rgb(254 243 199 / 1); +} +.placeholder-amber-100\/20::placeholder { + color: rgb(254 243 199 / 0.2); +} +.placeholder-amber-100\/25::placeholder { + color: rgb(254 243 199 / 0.25); +} +.placeholder-amber-100\/30::placeholder { + color: rgb(254 243 199 / 0.3); +} +.placeholder-amber-100\/40::placeholder { + color: rgb(254 243 199 / 0.4); +} +.placeholder-amber-100\/5::placeholder { + color: rgb(254 243 199 / 0.05); +} +.placeholder-amber-100\/50::placeholder { + color: rgb(254 243 199 / 0.5); +} +.placeholder-amber-100\/60::placeholder { + color: rgb(254 243 199 / 0.6); +} +.placeholder-amber-100\/70::placeholder { + color: rgb(254 243 199 / 0.7); +} +.placeholder-amber-100\/75::placeholder { + color: rgb(254 243 199 / 0.75); +} +.placeholder-amber-100\/80::placeholder { + color: rgb(254 243 199 / 0.8); +} +.placeholder-amber-100\/90::placeholder { + color: rgb(254 243 199 / 0.9); +} +.placeholder-amber-100\/95::placeholder { + color: rgb(254 243 199 / 0.95); +} +.placeholder-amber-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(253 230 138 / var(--tw-placeholder-opacity)); +} +.placeholder-amber-200\/0::placeholder { + color: rgb(253 230 138 / 0); +} +.placeholder-amber-200\/10::placeholder { + color: rgb(253 230 138 / 0.1); +} +.placeholder-amber-200\/100::placeholder { + color: rgb(253 230 138 / 1); +} +.placeholder-amber-200\/20::placeholder { + color: rgb(253 230 138 / 0.2); +} +.placeholder-amber-200\/25::placeholder { + color: rgb(253 230 138 / 0.25); +} +.placeholder-amber-200\/30::placeholder { + color: rgb(253 230 138 / 0.3); +} +.placeholder-amber-200\/40::placeholder { + color: rgb(253 230 138 / 0.4); +} +.placeholder-amber-200\/5::placeholder { + color: rgb(253 230 138 / 0.05); +} +.placeholder-amber-200\/50::placeholder { + color: rgb(253 230 138 / 0.5); +} +.placeholder-amber-200\/60::placeholder { + color: rgb(253 230 138 / 0.6); +} +.placeholder-amber-200\/70::placeholder { + color: rgb(253 230 138 / 0.7); +} +.placeholder-amber-200\/75::placeholder { + color: rgb(253 230 138 / 0.75); +} +.placeholder-amber-200\/80::placeholder { + color: rgb(253 230 138 / 0.8); +} +.placeholder-amber-200\/90::placeholder { + color: rgb(253 230 138 / 0.9); +} +.placeholder-amber-200\/95::placeholder { + color: rgb(253 230 138 / 0.95); +} +.placeholder-amber-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(252 211 77 / var(--tw-placeholder-opacity)); +} +.placeholder-amber-300\/0::placeholder { + color: rgb(252 211 77 / 0); +} +.placeholder-amber-300\/10::placeholder { + color: rgb(252 211 77 / 0.1); +} +.placeholder-amber-300\/100::placeholder { + color: rgb(252 211 77 / 1); +} +.placeholder-amber-300\/20::placeholder { + color: rgb(252 211 77 / 0.2); +} +.placeholder-amber-300\/25::placeholder { + color: rgb(252 211 77 / 0.25); +} +.placeholder-amber-300\/30::placeholder { + color: rgb(252 211 77 / 0.3); +} +.placeholder-amber-300\/40::placeholder { + color: rgb(252 211 77 / 0.4); +} +.placeholder-amber-300\/5::placeholder { + color: rgb(252 211 77 / 0.05); +} +.placeholder-amber-300\/50::placeholder { + color: rgb(252 211 77 / 0.5); +} +.placeholder-amber-300\/60::placeholder { + color: rgb(252 211 77 / 0.6); +} +.placeholder-amber-300\/70::placeholder { + color: rgb(252 211 77 / 0.7); +} +.placeholder-amber-300\/75::placeholder { + color: rgb(252 211 77 / 0.75); +} +.placeholder-amber-300\/80::placeholder { + color: rgb(252 211 77 / 0.8); +} +.placeholder-amber-300\/90::placeholder { + color: rgb(252 211 77 / 0.9); +} +.placeholder-amber-300\/95::placeholder { + color: rgb(252 211 77 / 0.95); +} +.placeholder-amber-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(251 191 36 / var(--tw-placeholder-opacity)); +} +.placeholder-amber-400\/0::placeholder { + color: rgb(251 191 36 / 0); +} +.placeholder-amber-400\/10::placeholder { + color: rgb(251 191 36 / 0.1); +} +.placeholder-amber-400\/100::placeholder { + color: rgb(251 191 36 / 1); +} +.placeholder-amber-400\/20::placeholder { + color: rgb(251 191 36 / 0.2); +} +.placeholder-amber-400\/25::placeholder { + color: rgb(251 191 36 / 0.25); +} +.placeholder-amber-400\/30::placeholder { + color: rgb(251 191 36 / 0.3); +} +.placeholder-amber-400\/40::placeholder { + color: rgb(251 191 36 / 0.4); +} +.placeholder-amber-400\/5::placeholder { + color: rgb(251 191 36 / 0.05); +} +.placeholder-amber-400\/50::placeholder { + color: rgb(251 191 36 / 0.5); +} +.placeholder-amber-400\/60::placeholder { + color: rgb(251 191 36 / 0.6); +} +.placeholder-amber-400\/70::placeholder { + color: rgb(251 191 36 / 0.7); +} +.placeholder-amber-400\/75::placeholder { + color: rgb(251 191 36 / 0.75); +} +.placeholder-amber-400\/80::placeholder { + color: rgb(251 191 36 / 0.8); +} +.placeholder-amber-400\/90::placeholder { + color: rgb(251 191 36 / 0.9); +} +.placeholder-amber-400\/95::placeholder { + color: rgb(251 191 36 / 0.95); +} +.placeholder-amber-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(255 251 235 / var(--tw-placeholder-opacity)); +} +.placeholder-amber-50\/0::placeholder { + color: rgb(255 251 235 / 0); +} +.placeholder-amber-50\/10::placeholder { + color: rgb(255 251 235 / 0.1); +} +.placeholder-amber-50\/100::placeholder { + color: rgb(255 251 235 / 1); +} +.placeholder-amber-50\/20::placeholder { + color: rgb(255 251 235 / 0.2); +} +.placeholder-amber-50\/25::placeholder { + color: rgb(255 251 235 / 0.25); +} +.placeholder-amber-50\/30::placeholder { + color: rgb(255 251 235 / 0.3); +} +.placeholder-amber-50\/40::placeholder { + color: rgb(255 251 235 / 0.4); +} +.placeholder-amber-50\/5::placeholder { + color: rgb(255 251 235 / 0.05); +} +.placeholder-amber-50\/50::placeholder { + color: rgb(255 251 235 / 0.5); +} +.placeholder-amber-50\/60::placeholder { + color: rgb(255 251 235 / 0.6); +} +.placeholder-amber-50\/70::placeholder { + color: rgb(255 251 235 / 0.7); +} +.placeholder-amber-50\/75::placeholder { + color: rgb(255 251 235 / 0.75); +} +.placeholder-amber-50\/80::placeholder { + color: rgb(255 251 235 / 0.8); +} +.placeholder-amber-50\/90::placeholder { + color: rgb(255 251 235 / 0.9); +} +.placeholder-amber-50\/95::placeholder { + color: rgb(255 251 235 / 0.95); +} +.placeholder-amber-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(245 158 11 / var(--tw-placeholder-opacity)); +} +.placeholder-amber-500\/0::placeholder { + color: rgb(245 158 11 / 0); +} +.placeholder-amber-500\/10::placeholder { + color: rgb(245 158 11 / 0.1); +} +.placeholder-amber-500\/100::placeholder { + color: rgb(245 158 11 / 1); +} +.placeholder-amber-500\/20::placeholder { + color: rgb(245 158 11 / 0.2); +} +.placeholder-amber-500\/25::placeholder { + color: rgb(245 158 11 / 0.25); +} +.placeholder-amber-500\/30::placeholder { + color: rgb(245 158 11 / 0.3); +} +.placeholder-amber-500\/40::placeholder { + color: rgb(245 158 11 / 0.4); +} +.placeholder-amber-500\/5::placeholder { + color: rgb(245 158 11 / 0.05); +} +.placeholder-amber-500\/50::placeholder { + color: rgb(245 158 11 / 0.5); +} +.placeholder-amber-500\/60::placeholder { + color: rgb(245 158 11 / 0.6); +} +.placeholder-amber-500\/70::placeholder { + color: rgb(245 158 11 / 0.7); +} +.placeholder-amber-500\/75::placeholder { + color: rgb(245 158 11 / 0.75); +} +.placeholder-amber-500\/80::placeholder { + color: rgb(245 158 11 / 0.8); +} +.placeholder-amber-500\/90::placeholder { + color: rgb(245 158 11 / 0.9); +} +.placeholder-amber-500\/95::placeholder { + color: rgb(245 158 11 / 0.95); +} +.placeholder-amber-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(217 119 6 / var(--tw-placeholder-opacity)); +} +.placeholder-amber-600\/0::placeholder { + color: rgb(217 119 6 / 0); +} +.placeholder-amber-600\/10::placeholder { + color: rgb(217 119 6 / 0.1); +} +.placeholder-amber-600\/100::placeholder { + color: rgb(217 119 6 / 1); +} +.placeholder-amber-600\/20::placeholder { + color: rgb(217 119 6 / 0.2); +} +.placeholder-amber-600\/25::placeholder { + color: rgb(217 119 6 / 0.25); +} +.placeholder-amber-600\/30::placeholder { + color: rgb(217 119 6 / 0.3); +} +.placeholder-amber-600\/40::placeholder { + color: rgb(217 119 6 / 0.4); +} +.placeholder-amber-600\/5::placeholder { + color: rgb(217 119 6 / 0.05); +} +.placeholder-amber-600\/50::placeholder { + color: rgb(217 119 6 / 0.5); +} +.placeholder-amber-600\/60::placeholder { + color: rgb(217 119 6 / 0.6); +} +.placeholder-amber-600\/70::placeholder { + color: rgb(217 119 6 / 0.7); +} +.placeholder-amber-600\/75::placeholder { + color: rgb(217 119 6 / 0.75); +} +.placeholder-amber-600\/80::placeholder { + color: rgb(217 119 6 / 0.8); +} +.placeholder-amber-600\/90::placeholder { + color: rgb(217 119 6 / 0.9); +} +.placeholder-amber-600\/95::placeholder { + color: rgb(217 119 6 / 0.95); +} +.placeholder-amber-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(180 83 9 / var(--tw-placeholder-opacity)); +} +.placeholder-amber-700\/0::placeholder { + color: rgb(180 83 9 / 0); +} +.placeholder-amber-700\/10::placeholder { + color: rgb(180 83 9 / 0.1); +} +.placeholder-amber-700\/100::placeholder { + color: rgb(180 83 9 / 1); +} +.placeholder-amber-700\/20::placeholder { + color: rgb(180 83 9 / 0.2); +} +.placeholder-amber-700\/25::placeholder { + color: rgb(180 83 9 / 0.25); +} +.placeholder-amber-700\/30::placeholder { + color: rgb(180 83 9 / 0.3); +} +.placeholder-amber-700\/40::placeholder { + color: rgb(180 83 9 / 0.4); +} +.placeholder-amber-700\/5::placeholder { + color: rgb(180 83 9 / 0.05); +} +.placeholder-amber-700\/50::placeholder { + color: rgb(180 83 9 / 0.5); +} +.placeholder-amber-700\/60::placeholder { + color: rgb(180 83 9 / 0.6); +} +.placeholder-amber-700\/70::placeholder { + color: rgb(180 83 9 / 0.7); +} +.placeholder-amber-700\/75::placeholder { + color: rgb(180 83 9 / 0.75); +} +.placeholder-amber-700\/80::placeholder { + color: rgb(180 83 9 / 0.8); +} +.placeholder-amber-700\/90::placeholder { + color: rgb(180 83 9 / 0.9); +} +.placeholder-amber-700\/95::placeholder { + color: rgb(180 83 9 / 0.95); +} +.placeholder-amber-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(146 64 14 / var(--tw-placeholder-opacity)); +} +.placeholder-amber-800\/0::placeholder { + color: rgb(146 64 14 / 0); +} +.placeholder-amber-800\/10::placeholder { + color: rgb(146 64 14 / 0.1); +} +.placeholder-amber-800\/100::placeholder { + color: rgb(146 64 14 / 1); +} +.placeholder-amber-800\/20::placeholder { + color: rgb(146 64 14 / 0.2); +} +.placeholder-amber-800\/25::placeholder { + color: rgb(146 64 14 / 0.25); +} +.placeholder-amber-800\/30::placeholder { + color: rgb(146 64 14 / 0.3); +} +.placeholder-amber-800\/40::placeholder { + color: rgb(146 64 14 / 0.4); +} +.placeholder-amber-800\/5::placeholder { + color: rgb(146 64 14 / 0.05); +} +.placeholder-amber-800\/50::placeholder { + color: rgb(146 64 14 / 0.5); +} +.placeholder-amber-800\/60::placeholder { + color: rgb(146 64 14 / 0.6); +} +.placeholder-amber-800\/70::placeholder { + color: rgb(146 64 14 / 0.7); +} +.placeholder-amber-800\/75::placeholder { + color: rgb(146 64 14 / 0.75); +} +.placeholder-amber-800\/80::placeholder { + color: rgb(146 64 14 / 0.8); +} +.placeholder-amber-800\/90::placeholder { + color: rgb(146 64 14 / 0.9); +} +.placeholder-amber-800\/95::placeholder { + color: rgb(146 64 14 / 0.95); +} +.placeholder-amber-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(120 53 15 / var(--tw-placeholder-opacity)); +} +.placeholder-amber-900\/0::placeholder { + color: rgb(120 53 15 / 0); +} +.placeholder-amber-900\/10::placeholder { + color: rgb(120 53 15 / 0.1); +} +.placeholder-amber-900\/100::placeholder { + color: rgb(120 53 15 / 1); +} +.placeholder-amber-900\/20::placeholder { + color: rgb(120 53 15 / 0.2); +} +.placeholder-amber-900\/25::placeholder { + color: rgb(120 53 15 / 0.25); +} +.placeholder-amber-900\/30::placeholder { + color: rgb(120 53 15 / 0.3); +} +.placeholder-amber-900\/40::placeholder { + color: rgb(120 53 15 / 0.4); +} +.placeholder-amber-900\/5::placeholder { + color: rgb(120 53 15 / 0.05); +} +.placeholder-amber-900\/50::placeholder { + color: rgb(120 53 15 / 0.5); +} +.placeholder-amber-900\/60::placeholder { + color: rgb(120 53 15 / 0.6); +} +.placeholder-amber-900\/70::placeholder { + color: rgb(120 53 15 / 0.7); +} +.placeholder-amber-900\/75::placeholder { + color: rgb(120 53 15 / 0.75); +} +.placeholder-amber-900\/80::placeholder { + color: rgb(120 53 15 / 0.8); +} +.placeholder-amber-900\/90::placeholder { + color: rgb(120 53 15 / 0.9); +} +.placeholder-amber-900\/95::placeholder { + color: rgb(120 53 15 / 0.95); +} +.placeholder-at-primary::placeholder { + color: var(--at-primary); +} +.placeholder-at-secondary::placeholder { + color: var(--at-secondary); +} +.placeholder-at-tertiary::placeholder { + color: var(--at-tertiary); +} +.placeholder-atlas_demographique-primary::placeholder { + color: var(--atlas_demographique-primary); +} +.placeholder-atlas_demographique-secondary::placeholder { + color: var(--atlas_demographique-secondary); +} +.placeholder-atlas_demographique-tertiary::placeholder { + color: var(--atlas_demographique-tertiary); +} +.placeholder-black::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(0 0 0 / var(--tw-placeholder-opacity)); +} +.placeholder-black\/0::placeholder { + color: rgb(0 0 0 / 0); +} +.placeholder-black\/10::placeholder { + color: rgb(0 0 0 / 0.1); +} +.placeholder-black\/100::placeholder { + color: rgb(0 0 0 / 1); +} +.placeholder-black\/20::placeholder { + color: rgb(0 0 0 / 0.2); +} +.placeholder-black\/25::placeholder { + color: rgb(0 0 0 / 0.25); +} +.placeholder-black\/30::placeholder { + color: rgb(0 0 0 / 0.3); +} +.placeholder-black\/40::placeholder { + color: rgb(0 0 0 / 0.4); +} +.placeholder-black\/5::placeholder { + color: rgb(0 0 0 / 0.05); +} +.placeholder-black\/50::placeholder { + color: rgb(0 0 0 / 0.5); +} +.placeholder-black\/60::placeholder { + color: rgb(0 0 0 / 0.6); +} +.placeholder-black\/70::placeholder { + color: rgb(0 0 0 / 0.7); +} +.placeholder-black\/75::placeholder { + color: rgb(0 0 0 / 0.75); +} +.placeholder-black\/80::placeholder { + color: rgb(0 0 0 / 0.8); +} +.placeholder-black\/90::placeholder { + color: rgb(0 0 0 / 0.9); +} +.placeholder-black\/95::placeholder { + color: rgb(0 0 0 / 0.95); +} +.placeholder-blue-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(219 234 254 / var(--tw-placeholder-opacity)); +} +.placeholder-blue-100\/0::placeholder { + color: rgb(219 234 254 / 0); +} +.placeholder-blue-100\/10::placeholder { + color: rgb(219 234 254 / 0.1); +} +.placeholder-blue-100\/100::placeholder { + color: rgb(219 234 254 / 1); +} +.placeholder-blue-100\/20::placeholder { + color: rgb(219 234 254 / 0.2); +} +.placeholder-blue-100\/25::placeholder { + color: rgb(219 234 254 / 0.25); +} +.placeholder-blue-100\/30::placeholder { + color: rgb(219 234 254 / 0.3); +} +.placeholder-blue-100\/40::placeholder { + color: rgb(219 234 254 / 0.4); +} +.placeholder-blue-100\/5::placeholder { + color: rgb(219 234 254 / 0.05); +} +.placeholder-blue-100\/50::placeholder { + color: rgb(219 234 254 / 0.5); +} +.placeholder-blue-100\/60::placeholder { + color: rgb(219 234 254 / 0.6); +} +.placeholder-blue-100\/70::placeholder { + color: rgb(219 234 254 / 0.7); +} +.placeholder-blue-100\/75::placeholder { + color: rgb(219 234 254 / 0.75); +} +.placeholder-blue-100\/80::placeholder { + color: rgb(219 234 254 / 0.8); +} +.placeholder-blue-100\/90::placeholder { + color: rgb(219 234 254 / 0.9); +} +.placeholder-blue-100\/95::placeholder { + color: rgb(219 234 254 / 0.95); +} +.placeholder-blue-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(191 219 254 / var(--tw-placeholder-opacity)); +} +.placeholder-blue-200\/0::placeholder { + color: rgb(191 219 254 / 0); +} +.placeholder-blue-200\/10::placeholder { + color: rgb(191 219 254 / 0.1); +} +.placeholder-blue-200\/100::placeholder { + color: rgb(191 219 254 / 1); +} +.placeholder-blue-200\/20::placeholder { + color: rgb(191 219 254 / 0.2); +} +.placeholder-blue-200\/25::placeholder { + color: rgb(191 219 254 / 0.25); +} +.placeholder-blue-200\/30::placeholder { + color: rgb(191 219 254 / 0.3); +} +.placeholder-blue-200\/40::placeholder { + color: rgb(191 219 254 / 0.4); +} +.placeholder-blue-200\/5::placeholder { + color: rgb(191 219 254 / 0.05); +} +.placeholder-blue-200\/50::placeholder { + color: rgb(191 219 254 / 0.5); +} +.placeholder-blue-200\/60::placeholder { + color: rgb(191 219 254 / 0.6); +} +.placeholder-blue-200\/70::placeholder { + color: rgb(191 219 254 / 0.7); +} +.placeholder-blue-200\/75::placeholder { + color: rgb(191 219 254 / 0.75); +} +.placeholder-blue-200\/80::placeholder { + color: rgb(191 219 254 / 0.8); +} +.placeholder-blue-200\/90::placeholder { + color: rgb(191 219 254 / 0.9); +} +.placeholder-blue-200\/95::placeholder { + color: rgb(191 219 254 / 0.95); +} +.placeholder-blue-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(147 197 253 / var(--tw-placeholder-opacity)); +} +.placeholder-blue-300\/0::placeholder { + color: rgb(147 197 253 / 0); +} +.placeholder-blue-300\/10::placeholder { + color: rgb(147 197 253 / 0.1); +} +.placeholder-blue-300\/100::placeholder { + color: rgb(147 197 253 / 1); +} +.placeholder-blue-300\/20::placeholder { + color: rgb(147 197 253 / 0.2); +} +.placeholder-blue-300\/25::placeholder { + color: rgb(147 197 253 / 0.25); +} +.placeholder-blue-300\/30::placeholder { + color: rgb(147 197 253 / 0.3); +} +.placeholder-blue-300\/40::placeholder { + color: rgb(147 197 253 / 0.4); +} +.placeholder-blue-300\/5::placeholder { + color: rgb(147 197 253 / 0.05); +} +.placeholder-blue-300\/50::placeholder { + color: rgb(147 197 253 / 0.5); +} +.placeholder-blue-300\/60::placeholder { + color: rgb(147 197 253 / 0.6); +} +.placeholder-blue-300\/70::placeholder { + color: rgb(147 197 253 / 0.7); +} +.placeholder-blue-300\/75::placeholder { + color: rgb(147 197 253 / 0.75); +} +.placeholder-blue-300\/80::placeholder { + color: rgb(147 197 253 / 0.8); +} +.placeholder-blue-300\/90::placeholder { + color: rgb(147 197 253 / 0.9); +} +.placeholder-blue-300\/95::placeholder { + color: rgb(147 197 253 / 0.95); +} +.placeholder-blue-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(96 165 250 / var(--tw-placeholder-opacity)); +} +.placeholder-blue-400\/0::placeholder { + color: rgb(96 165 250 / 0); +} +.placeholder-blue-400\/10::placeholder { + color: rgb(96 165 250 / 0.1); +} +.placeholder-blue-400\/100::placeholder { + color: rgb(96 165 250 / 1); +} +.placeholder-blue-400\/20::placeholder { + color: rgb(96 165 250 / 0.2); +} +.placeholder-blue-400\/25::placeholder { + color: rgb(96 165 250 / 0.25); +} +.placeholder-blue-400\/30::placeholder { + color: rgb(96 165 250 / 0.3); +} +.placeholder-blue-400\/40::placeholder { + color: rgb(96 165 250 / 0.4); +} +.placeholder-blue-400\/5::placeholder { + color: rgb(96 165 250 / 0.05); +} +.placeholder-blue-400\/50::placeholder { + color: rgb(96 165 250 / 0.5); +} +.placeholder-blue-400\/60::placeholder { + color: rgb(96 165 250 / 0.6); +} +.placeholder-blue-400\/70::placeholder { + color: rgb(96 165 250 / 0.7); +} +.placeholder-blue-400\/75::placeholder { + color: rgb(96 165 250 / 0.75); +} +.placeholder-blue-400\/80::placeholder { + color: rgb(96 165 250 / 0.8); +} +.placeholder-blue-400\/90::placeholder { + color: rgb(96 165 250 / 0.9); +} +.placeholder-blue-400\/95::placeholder { + color: rgb(96 165 250 / 0.95); +} +.placeholder-blue-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(239 246 255 / var(--tw-placeholder-opacity)); +} +.placeholder-blue-50\/0::placeholder { + color: rgb(239 246 255 / 0); +} +.placeholder-blue-50\/10::placeholder { + color: rgb(239 246 255 / 0.1); +} +.placeholder-blue-50\/100::placeholder { + color: rgb(239 246 255 / 1); +} +.placeholder-blue-50\/20::placeholder { + color: rgb(239 246 255 / 0.2); +} +.placeholder-blue-50\/25::placeholder { + color: rgb(239 246 255 / 0.25); +} +.placeholder-blue-50\/30::placeholder { + color: rgb(239 246 255 / 0.3); +} +.placeholder-blue-50\/40::placeholder { + color: rgb(239 246 255 / 0.4); +} +.placeholder-blue-50\/5::placeholder { + color: rgb(239 246 255 / 0.05); +} +.placeholder-blue-50\/50::placeholder { + color: rgb(239 246 255 / 0.5); +} +.placeholder-blue-50\/60::placeholder { + color: rgb(239 246 255 / 0.6); +} +.placeholder-blue-50\/70::placeholder { + color: rgb(239 246 255 / 0.7); +} +.placeholder-blue-50\/75::placeholder { + color: rgb(239 246 255 / 0.75); +} +.placeholder-blue-50\/80::placeholder { + color: rgb(239 246 255 / 0.8); +} +.placeholder-blue-50\/90::placeholder { + color: rgb(239 246 255 / 0.9); +} +.placeholder-blue-50\/95::placeholder { + color: rgb(239 246 255 / 0.95); +} +.placeholder-blue-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(59 130 246 / var(--tw-placeholder-opacity)); +} +.placeholder-blue-500\/0::placeholder { + color: rgb(59 130 246 / 0); +} +.placeholder-blue-500\/10::placeholder { + color: rgb(59 130 246 / 0.1); +} +.placeholder-blue-500\/100::placeholder { + color: rgb(59 130 246 / 1); +} +.placeholder-blue-500\/20::placeholder { + color: rgb(59 130 246 / 0.2); +} +.placeholder-blue-500\/25::placeholder { + color: rgb(59 130 246 / 0.25); +} +.placeholder-blue-500\/30::placeholder { + color: rgb(59 130 246 / 0.3); +} +.placeholder-blue-500\/40::placeholder { + color: rgb(59 130 246 / 0.4); +} +.placeholder-blue-500\/5::placeholder { + color: rgb(59 130 246 / 0.05); +} +.placeholder-blue-500\/50::placeholder { + color: rgb(59 130 246 / 0.5); +} +.placeholder-blue-500\/60::placeholder { + color: rgb(59 130 246 / 0.6); +} +.placeholder-blue-500\/70::placeholder { + color: rgb(59 130 246 / 0.7); +} +.placeholder-blue-500\/75::placeholder { + color: rgb(59 130 246 / 0.75); +} +.placeholder-blue-500\/80::placeholder { + color: rgb(59 130 246 / 0.8); +} +.placeholder-blue-500\/90::placeholder { + color: rgb(59 130 246 / 0.9); +} +.placeholder-blue-500\/95::placeholder { + color: rgb(59 130 246 / 0.95); +} +.placeholder-blue-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(37 99 235 / var(--tw-placeholder-opacity)); +} +.placeholder-blue-600\/0::placeholder { + color: rgb(37 99 235 / 0); +} +.placeholder-blue-600\/10::placeholder { + color: rgb(37 99 235 / 0.1); +} +.placeholder-blue-600\/100::placeholder { + color: rgb(37 99 235 / 1); +} +.placeholder-blue-600\/20::placeholder { + color: rgb(37 99 235 / 0.2); +} +.placeholder-blue-600\/25::placeholder { + color: rgb(37 99 235 / 0.25); +} +.placeholder-blue-600\/30::placeholder { + color: rgb(37 99 235 / 0.3); +} +.placeholder-blue-600\/40::placeholder { + color: rgb(37 99 235 / 0.4); +} +.placeholder-blue-600\/5::placeholder { + color: rgb(37 99 235 / 0.05); +} +.placeholder-blue-600\/50::placeholder { + color: rgb(37 99 235 / 0.5); +} +.placeholder-blue-600\/60::placeholder { + color: rgb(37 99 235 / 0.6); +} +.placeholder-blue-600\/70::placeholder { + color: rgb(37 99 235 / 0.7); +} +.placeholder-blue-600\/75::placeholder { + color: rgb(37 99 235 / 0.75); +} +.placeholder-blue-600\/80::placeholder { + color: rgb(37 99 235 / 0.8); +} +.placeholder-blue-600\/90::placeholder { + color: rgb(37 99 235 / 0.9); +} +.placeholder-blue-600\/95::placeholder { + color: rgb(37 99 235 / 0.95); +} +.placeholder-blue-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(29 78 216 / var(--tw-placeholder-opacity)); +} +.placeholder-blue-700\/0::placeholder { + color: rgb(29 78 216 / 0); +} +.placeholder-blue-700\/10::placeholder { + color: rgb(29 78 216 / 0.1); +} +.placeholder-blue-700\/100::placeholder { + color: rgb(29 78 216 / 1); +} +.placeholder-blue-700\/20::placeholder { + color: rgb(29 78 216 / 0.2); +} +.placeholder-blue-700\/25::placeholder { + color: rgb(29 78 216 / 0.25); +} +.placeholder-blue-700\/30::placeholder { + color: rgb(29 78 216 / 0.3); +} +.placeholder-blue-700\/40::placeholder { + color: rgb(29 78 216 / 0.4); +} +.placeholder-blue-700\/5::placeholder { + color: rgb(29 78 216 / 0.05); +} +.placeholder-blue-700\/50::placeholder { + color: rgb(29 78 216 / 0.5); +} +.placeholder-blue-700\/60::placeholder { + color: rgb(29 78 216 / 0.6); +} +.placeholder-blue-700\/70::placeholder { + color: rgb(29 78 216 / 0.7); +} +.placeholder-blue-700\/75::placeholder { + color: rgb(29 78 216 / 0.75); +} +.placeholder-blue-700\/80::placeholder { + color: rgb(29 78 216 / 0.8); +} +.placeholder-blue-700\/90::placeholder { + color: rgb(29 78 216 / 0.9); +} +.placeholder-blue-700\/95::placeholder { + color: rgb(29 78 216 / 0.95); +} +.placeholder-blue-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(30 64 175 / var(--tw-placeholder-opacity)); +} +.placeholder-blue-800\/0::placeholder { + color: rgb(30 64 175 / 0); +} +.placeholder-blue-800\/10::placeholder { + color: rgb(30 64 175 / 0.1); +} +.placeholder-blue-800\/100::placeholder { + color: rgb(30 64 175 / 1); +} +.placeholder-blue-800\/20::placeholder { + color: rgb(30 64 175 / 0.2); +} +.placeholder-blue-800\/25::placeholder { + color: rgb(30 64 175 / 0.25); +} +.placeholder-blue-800\/30::placeholder { + color: rgb(30 64 175 / 0.3); +} +.placeholder-blue-800\/40::placeholder { + color: rgb(30 64 175 / 0.4); +} +.placeholder-blue-800\/5::placeholder { + color: rgb(30 64 175 / 0.05); +} +.placeholder-blue-800\/50::placeholder { + color: rgb(30 64 175 / 0.5); +} +.placeholder-blue-800\/60::placeholder { + color: rgb(30 64 175 / 0.6); +} +.placeholder-blue-800\/70::placeholder { + color: rgb(30 64 175 / 0.7); +} +.placeholder-blue-800\/75::placeholder { + color: rgb(30 64 175 / 0.75); +} +.placeholder-blue-800\/80::placeholder { + color: rgb(30 64 175 / 0.8); +} +.placeholder-blue-800\/90::placeholder { + color: rgb(30 64 175 / 0.9); +} +.placeholder-blue-800\/95::placeholder { + color: rgb(30 64 175 / 0.95); +} +.placeholder-blue-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(30 58 138 / var(--tw-placeholder-opacity)); +} +.placeholder-blue-900\/0::placeholder { + color: rgb(30 58 138 / 0); +} +.placeholder-blue-900\/10::placeholder { + color: rgb(30 58 138 / 0.1); +} +.placeholder-blue-900\/100::placeholder { + color: rgb(30 58 138 / 1); +} +.placeholder-blue-900\/20::placeholder { + color: rgb(30 58 138 / 0.2); +} +.placeholder-blue-900\/25::placeholder { + color: rgb(30 58 138 / 0.25); +} +.placeholder-blue-900\/30::placeholder { + color: rgb(30 58 138 / 0.3); +} +.placeholder-blue-900\/40::placeholder { + color: rgb(30 58 138 / 0.4); +} +.placeholder-blue-900\/5::placeholder { + color: rgb(30 58 138 / 0.05); +} +.placeholder-blue-900\/50::placeholder { + color: rgb(30 58 138 / 0.5); +} +.placeholder-blue-900\/60::placeholder { + color: rgb(30 58 138 / 0.6); +} +.placeholder-blue-900\/70::placeholder { + color: rgb(30 58 138 / 0.7); +} +.placeholder-blue-900\/75::placeholder { + color: rgb(30 58 138 / 0.75); +} +.placeholder-blue-900\/80::placeholder { + color: rgb(30 58 138 / 0.8); +} +.placeholder-blue-900\/90::placeholder { + color: rgb(30 58 138 / 0.9); +} +.placeholder-blue-900\/95::placeholder { + color: rgb(30 58 138 / 0.95); +} +.placeholder-cadastre_hertzien-primary::placeholder { + color: var(--cadastre_hertzien-primary); +} +.placeholder-cadastre_hertzien-secondary::placeholder { + color: var(--cadastre_hertzien-secondary); +} +.placeholder-cadastre_hertzien-tertiary::placeholder { + color: var(--cadastre_hertzien-tertiary); +} +.placeholder-current::placeholder { + color: currentColor; +} +.placeholder-cyan-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(207 250 254 / var(--tw-placeholder-opacity)); +} +.placeholder-cyan-100\/0::placeholder { + color: rgb(207 250 254 / 0); +} +.placeholder-cyan-100\/10::placeholder { + color: rgb(207 250 254 / 0.1); +} +.placeholder-cyan-100\/100::placeholder { + color: rgb(207 250 254 / 1); +} +.placeholder-cyan-100\/20::placeholder { + color: rgb(207 250 254 / 0.2); +} +.placeholder-cyan-100\/25::placeholder { + color: rgb(207 250 254 / 0.25); +} +.placeholder-cyan-100\/30::placeholder { + color: rgb(207 250 254 / 0.3); +} +.placeholder-cyan-100\/40::placeholder { + color: rgb(207 250 254 / 0.4); +} +.placeholder-cyan-100\/5::placeholder { + color: rgb(207 250 254 / 0.05); +} +.placeholder-cyan-100\/50::placeholder { + color: rgb(207 250 254 / 0.5); +} +.placeholder-cyan-100\/60::placeholder { + color: rgb(207 250 254 / 0.6); +} +.placeholder-cyan-100\/70::placeholder { + color: rgb(207 250 254 / 0.7); +} +.placeholder-cyan-100\/75::placeholder { + color: rgb(207 250 254 / 0.75); +} +.placeholder-cyan-100\/80::placeholder { + color: rgb(207 250 254 / 0.8); +} +.placeholder-cyan-100\/90::placeholder { + color: rgb(207 250 254 / 0.9); +} +.placeholder-cyan-100\/95::placeholder { + color: rgb(207 250 254 / 0.95); +} +.placeholder-cyan-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(165 243 252 / var(--tw-placeholder-opacity)); +} +.placeholder-cyan-200\/0::placeholder { + color: rgb(165 243 252 / 0); +} +.placeholder-cyan-200\/10::placeholder { + color: rgb(165 243 252 / 0.1); +} +.placeholder-cyan-200\/100::placeholder { + color: rgb(165 243 252 / 1); +} +.placeholder-cyan-200\/20::placeholder { + color: rgb(165 243 252 / 0.2); +} +.placeholder-cyan-200\/25::placeholder { + color: rgb(165 243 252 / 0.25); +} +.placeholder-cyan-200\/30::placeholder { + color: rgb(165 243 252 / 0.3); +} +.placeholder-cyan-200\/40::placeholder { + color: rgb(165 243 252 / 0.4); +} +.placeholder-cyan-200\/5::placeholder { + color: rgb(165 243 252 / 0.05); +} +.placeholder-cyan-200\/50::placeholder { + color: rgb(165 243 252 / 0.5); +} +.placeholder-cyan-200\/60::placeholder { + color: rgb(165 243 252 / 0.6); +} +.placeholder-cyan-200\/70::placeholder { + color: rgb(165 243 252 / 0.7); +} +.placeholder-cyan-200\/75::placeholder { + color: rgb(165 243 252 / 0.75); +} +.placeholder-cyan-200\/80::placeholder { + color: rgb(165 243 252 / 0.8); +} +.placeholder-cyan-200\/90::placeholder { + color: rgb(165 243 252 / 0.9); +} +.placeholder-cyan-200\/95::placeholder { + color: rgb(165 243 252 / 0.95); +} +.placeholder-cyan-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(103 232 249 / var(--tw-placeholder-opacity)); +} +.placeholder-cyan-300\/0::placeholder { + color: rgb(103 232 249 / 0); +} +.placeholder-cyan-300\/10::placeholder { + color: rgb(103 232 249 / 0.1); +} +.placeholder-cyan-300\/100::placeholder { + color: rgb(103 232 249 / 1); +} +.placeholder-cyan-300\/20::placeholder { + color: rgb(103 232 249 / 0.2); +} +.placeholder-cyan-300\/25::placeholder { + color: rgb(103 232 249 / 0.25); +} +.placeholder-cyan-300\/30::placeholder { + color: rgb(103 232 249 / 0.3); +} +.placeholder-cyan-300\/40::placeholder { + color: rgb(103 232 249 / 0.4); +} +.placeholder-cyan-300\/5::placeholder { + color: rgb(103 232 249 / 0.05); +} +.placeholder-cyan-300\/50::placeholder { + color: rgb(103 232 249 / 0.5); +} +.placeholder-cyan-300\/60::placeholder { + color: rgb(103 232 249 / 0.6); +} +.placeholder-cyan-300\/70::placeholder { + color: rgb(103 232 249 / 0.7); +} +.placeholder-cyan-300\/75::placeholder { + color: rgb(103 232 249 / 0.75); +} +.placeholder-cyan-300\/80::placeholder { + color: rgb(103 232 249 / 0.8); +} +.placeholder-cyan-300\/90::placeholder { + color: rgb(103 232 249 / 0.9); +} +.placeholder-cyan-300\/95::placeholder { + color: rgb(103 232 249 / 0.95); +} +.placeholder-cyan-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(34 211 238 / var(--tw-placeholder-opacity)); +} +.placeholder-cyan-400\/0::placeholder { + color: rgb(34 211 238 / 0); +} +.placeholder-cyan-400\/10::placeholder { + color: rgb(34 211 238 / 0.1); +} +.placeholder-cyan-400\/100::placeholder { + color: rgb(34 211 238 / 1); +} +.placeholder-cyan-400\/20::placeholder { + color: rgb(34 211 238 / 0.2); +} +.placeholder-cyan-400\/25::placeholder { + color: rgb(34 211 238 / 0.25); +} +.placeholder-cyan-400\/30::placeholder { + color: rgb(34 211 238 / 0.3); +} +.placeholder-cyan-400\/40::placeholder { + color: rgb(34 211 238 / 0.4); +} +.placeholder-cyan-400\/5::placeholder { + color: rgb(34 211 238 / 0.05); +} +.placeholder-cyan-400\/50::placeholder { + color: rgb(34 211 238 / 0.5); +} +.placeholder-cyan-400\/60::placeholder { + color: rgb(34 211 238 / 0.6); +} +.placeholder-cyan-400\/70::placeholder { + color: rgb(34 211 238 / 0.7); +} +.placeholder-cyan-400\/75::placeholder { + color: rgb(34 211 238 / 0.75); +} +.placeholder-cyan-400\/80::placeholder { + color: rgb(34 211 238 / 0.8); +} +.placeholder-cyan-400\/90::placeholder { + color: rgb(34 211 238 / 0.9); +} +.placeholder-cyan-400\/95::placeholder { + color: rgb(34 211 238 / 0.95); +} +.placeholder-cyan-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(236 254 255 / var(--tw-placeholder-opacity)); +} +.placeholder-cyan-50\/0::placeholder { + color: rgb(236 254 255 / 0); +} +.placeholder-cyan-50\/10::placeholder { + color: rgb(236 254 255 / 0.1); +} +.placeholder-cyan-50\/100::placeholder { + color: rgb(236 254 255 / 1); +} +.placeholder-cyan-50\/20::placeholder { + color: rgb(236 254 255 / 0.2); +} +.placeholder-cyan-50\/25::placeholder { + color: rgb(236 254 255 / 0.25); +} +.placeholder-cyan-50\/30::placeholder { + color: rgb(236 254 255 / 0.3); +} +.placeholder-cyan-50\/40::placeholder { + color: rgb(236 254 255 / 0.4); +} +.placeholder-cyan-50\/5::placeholder { + color: rgb(236 254 255 / 0.05); +} +.placeholder-cyan-50\/50::placeholder { + color: rgb(236 254 255 / 0.5); +} +.placeholder-cyan-50\/60::placeholder { + color: rgb(236 254 255 / 0.6); +} +.placeholder-cyan-50\/70::placeholder { + color: rgb(236 254 255 / 0.7); +} +.placeholder-cyan-50\/75::placeholder { + color: rgb(236 254 255 / 0.75); +} +.placeholder-cyan-50\/80::placeholder { + color: rgb(236 254 255 / 0.8); +} +.placeholder-cyan-50\/90::placeholder { + color: rgb(236 254 255 / 0.9); +} +.placeholder-cyan-50\/95::placeholder { + color: rgb(236 254 255 / 0.95); +} +.placeholder-cyan-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(6 182 212 / var(--tw-placeholder-opacity)); +} +.placeholder-cyan-500\/0::placeholder { + color: rgb(6 182 212 / 0); +} +.placeholder-cyan-500\/10::placeholder { + color: rgb(6 182 212 / 0.1); +} +.placeholder-cyan-500\/100::placeholder { + color: rgb(6 182 212 / 1); +} +.placeholder-cyan-500\/20::placeholder { + color: rgb(6 182 212 / 0.2); +} +.placeholder-cyan-500\/25::placeholder { + color: rgb(6 182 212 / 0.25); +} +.placeholder-cyan-500\/30::placeholder { + color: rgb(6 182 212 / 0.3); +} +.placeholder-cyan-500\/40::placeholder { + color: rgb(6 182 212 / 0.4); +} +.placeholder-cyan-500\/5::placeholder { + color: rgb(6 182 212 / 0.05); +} +.placeholder-cyan-500\/50::placeholder { + color: rgb(6 182 212 / 0.5); +} +.placeholder-cyan-500\/60::placeholder { + color: rgb(6 182 212 / 0.6); +} +.placeholder-cyan-500\/70::placeholder { + color: rgb(6 182 212 / 0.7); +} +.placeholder-cyan-500\/75::placeholder { + color: rgb(6 182 212 / 0.75); +} +.placeholder-cyan-500\/80::placeholder { + color: rgb(6 182 212 / 0.8); +} +.placeholder-cyan-500\/90::placeholder { + color: rgb(6 182 212 / 0.9); +} +.placeholder-cyan-500\/95::placeholder { + color: rgb(6 182 212 / 0.95); +} +.placeholder-cyan-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(8 145 178 / var(--tw-placeholder-opacity)); +} +.placeholder-cyan-600\/0::placeholder { + color: rgb(8 145 178 / 0); +} +.placeholder-cyan-600\/10::placeholder { + color: rgb(8 145 178 / 0.1); +} +.placeholder-cyan-600\/100::placeholder { + color: rgb(8 145 178 / 1); +} +.placeholder-cyan-600\/20::placeholder { + color: rgb(8 145 178 / 0.2); +} +.placeholder-cyan-600\/25::placeholder { + color: rgb(8 145 178 / 0.25); +} +.placeholder-cyan-600\/30::placeholder { + color: rgb(8 145 178 / 0.3); +} +.placeholder-cyan-600\/40::placeholder { + color: rgb(8 145 178 / 0.4); +} +.placeholder-cyan-600\/5::placeholder { + color: rgb(8 145 178 / 0.05); +} +.placeholder-cyan-600\/50::placeholder { + color: rgb(8 145 178 / 0.5); +} +.placeholder-cyan-600\/60::placeholder { + color: rgb(8 145 178 / 0.6); +} +.placeholder-cyan-600\/70::placeholder { + color: rgb(8 145 178 / 0.7); +} +.placeholder-cyan-600\/75::placeholder { + color: rgb(8 145 178 / 0.75); +} +.placeholder-cyan-600\/80::placeholder { + color: rgb(8 145 178 / 0.8); +} +.placeholder-cyan-600\/90::placeholder { + color: rgb(8 145 178 / 0.9); +} +.placeholder-cyan-600\/95::placeholder { + color: rgb(8 145 178 / 0.95); +} +.placeholder-cyan-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(14 116 144 / var(--tw-placeholder-opacity)); +} +.placeholder-cyan-700\/0::placeholder { + color: rgb(14 116 144 / 0); +} +.placeholder-cyan-700\/10::placeholder { + color: rgb(14 116 144 / 0.1); +} +.placeholder-cyan-700\/100::placeholder { + color: rgb(14 116 144 / 1); +} +.placeholder-cyan-700\/20::placeholder { + color: rgb(14 116 144 / 0.2); +} +.placeholder-cyan-700\/25::placeholder { + color: rgb(14 116 144 / 0.25); +} +.placeholder-cyan-700\/30::placeholder { + color: rgb(14 116 144 / 0.3); +} +.placeholder-cyan-700\/40::placeholder { + color: rgb(14 116 144 / 0.4); +} +.placeholder-cyan-700\/5::placeholder { + color: rgb(14 116 144 / 0.05); +} +.placeholder-cyan-700\/50::placeholder { + color: rgb(14 116 144 / 0.5); +} +.placeholder-cyan-700\/60::placeholder { + color: rgb(14 116 144 / 0.6); +} +.placeholder-cyan-700\/70::placeholder { + color: rgb(14 116 144 / 0.7); +} +.placeholder-cyan-700\/75::placeholder { + color: rgb(14 116 144 / 0.75); +} +.placeholder-cyan-700\/80::placeholder { + color: rgb(14 116 144 / 0.8); +} +.placeholder-cyan-700\/90::placeholder { + color: rgb(14 116 144 / 0.9); +} +.placeholder-cyan-700\/95::placeholder { + color: rgb(14 116 144 / 0.95); +} +.placeholder-cyan-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(21 94 117 / var(--tw-placeholder-opacity)); +} +.placeholder-cyan-800\/0::placeholder { + color: rgb(21 94 117 / 0); +} +.placeholder-cyan-800\/10::placeholder { + color: rgb(21 94 117 / 0.1); +} +.placeholder-cyan-800\/100::placeholder { + color: rgb(21 94 117 / 1); +} +.placeholder-cyan-800\/20::placeholder { + color: rgb(21 94 117 / 0.2); +} +.placeholder-cyan-800\/25::placeholder { + color: rgb(21 94 117 / 0.25); +} +.placeholder-cyan-800\/30::placeholder { + color: rgb(21 94 117 / 0.3); +} +.placeholder-cyan-800\/40::placeholder { + color: rgb(21 94 117 / 0.4); +} +.placeholder-cyan-800\/5::placeholder { + color: rgb(21 94 117 / 0.05); +} +.placeholder-cyan-800\/50::placeholder { + color: rgb(21 94 117 / 0.5); +} +.placeholder-cyan-800\/60::placeholder { + color: rgb(21 94 117 / 0.6); +} +.placeholder-cyan-800\/70::placeholder { + color: rgb(21 94 117 / 0.7); +} +.placeholder-cyan-800\/75::placeholder { + color: rgb(21 94 117 / 0.75); +} +.placeholder-cyan-800\/80::placeholder { + color: rgb(21 94 117 / 0.8); +} +.placeholder-cyan-800\/90::placeholder { + color: rgb(21 94 117 / 0.9); +} +.placeholder-cyan-800\/95::placeholder { + color: rgb(21 94 117 / 0.95); +} +.placeholder-cyan-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(22 78 99 / var(--tw-placeholder-opacity)); +} +.placeholder-cyan-900\/0::placeholder { + color: rgb(22 78 99 / 0); +} +.placeholder-cyan-900\/10::placeholder { + color: rgb(22 78 99 / 0.1); +} +.placeholder-cyan-900\/100::placeholder { + color: rgb(22 78 99 / 1); +} +.placeholder-cyan-900\/20::placeholder { + color: rgb(22 78 99 / 0.2); +} +.placeholder-cyan-900\/25::placeholder { + color: rgb(22 78 99 / 0.25); +} +.placeholder-cyan-900\/30::placeholder { + color: rgb(22 78 99 / 0.3); +} +.placeholder-cyan-900\/40::placeholder { + color: rgb(22 78 99 / 0.4); +} +.placeholder-cyan-900\/5::placeholder { + color: rgb(22 78 99 / 0.05); +} +.placeholder-cyan-900\/50::placeholder { + color: rgb(22 78 99 / 0.5); +} +.placeholder-cyan-900\/60::placeholder { + color: rgb(22 78 99 / 0.6); +} +.placeholder-cyan-900\/70::placeholder { + color: rgb(22 78 99 / 0.7); +} +.placeholder-cyan-900\/75::placeholder { + color: rgb(22 78 99 / 0.75); +} +.placeholder-cyan-900\/80::placeholder { + color: rgb(22 78 99 / 0.8); +} +.placeholder-cyan-900\/90::placeholder { + color: rgb(22 78 99 / 0.9); +} +.placeholder-cyan-900\/95::placeholder { + color: rgb(22 78 99 / 0.95); +} +.placeholder-default::placeholder { + color: var(--color-default); +} +.placeholder-eau-primary::placeholder { + color: var(--eau-primary); +} +.placeholder-eau-secondary::placeholder { + color: var(--eau-secondary); +} +.placeholder-eau-tertiary::placeholder { + color: var(--eau-tertiary); +} +.placeholder-emerald-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(209 250 229 / var(--tw-placeholder-opacity)); +} +.placeholder-emerald-100\/0::placeholder { + color: rgb(209 250 229 / 0); +} +.placeholder-emerald-100\/10::placeholder { + color: rgb(209 250 229 / 0.1); +} +.placeholder-emerald-100\/100::placeholder { + color: rgb(209 250 229 / 1); +} +.placeholder-emerald-100\/20::placeholder { + color: rgb(209 250 229 / 0.2); +} +.placeholder-emerald-100\/25::placeholder { + color: rgb(209 250 229 / 0.25); +} +.placeholder-emerald-100\/30::placeholder { + color: rgb(209 250 229 / 0.3); +} +.placeholder-emerald-100\/40::placeholder { + color: rgb(209 250 229 / 0.4); +} +.placeholder-emerald-100\/5::placeholder { + color: rgb(209 250 229 / 0.05); +} +.placeholder-emerald-100\/50::placeholder { + color: rgb(209 250 229 / 0.5); +} +.placeholder-emerald-100\/60::placeholder { + color: rgb(209 250 229 / 0.6); +} +.placeholder-emerald-100\/70::placeholder { + color: rgb(209 250 229 / 0.7); +} +.placeholder-emerald-100\/75::placeholder { + color: rgb(209 250 229 / 0.75); +} +.placeholder-emerald-100\/80::placeholder { + color: rgb(209 250 229 / 0.8); +} +.placeholder-emerald-100\/90::placeholder { + color: rgb(209 250 229 / 0.9); +} +.placeholder-emerald-100\/95::placeholder { + color: rgb(209 250 229 / 0.95); +} +.placeholder-emerald-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(167 243 208 / var(--tw-placeholder-opacity)); +} +.placeholder-emerald-200\/0::placeholder { + color: rgb(167 243 208 / 0); +} +.placeholder-emerald-200\/10::placeholder { + color: rgb(167 243 208 / 0.1); +} +.placeholder-emerald-200\/100::placeholder { + color: rgb(167 243 208 / 1); +} +.placeholder-emerald-200\/20::placeholder { + color: rgb(167 243 208 / 0.2); +} +.placeholder-emerald-200\/25::placeholder { + color: rgb(167 243 208 / 0.25); +} +.placeholder-emerald-200\/30::placeholder { + color: rgb(167 243 208 / 0.3); +} +.placeholder-emerald-200\/40::placeholder { + color: rgb(167 243 208 / 0.4); +} +.placeholder-emerald-200\/5::placeholder { + color: rgb(167 243 208 / 0.05); +} +.placeholder-emerald-200\/50::placeholder { + color: rgb(167 243 208 / 0.5); +} +.placeholder-emerald-200\/60::placeholder { + color: rgb(167 243 208 / 0.6); +} +.placeholder-emerald-200\/70::placeholder { + color: rgb(167 243 208 / 0.7); +} +.placeholder-emerald-200\/75::placeholder { + color: rgb(167 243 208 / 0.75); +} +.placeholder-emerald-200\/80::placeholder { + color: rgb(167 243 208 / 0.8); +} +.placeholder-emerald-200\/90::placeholder { + color: rgb(167 243 208 / 0.9); +} +.placeholder-emerald-200\/95::placeholder { + color: rgb(167 243 208 / 0.95); +} +.placeholder-emerald-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(110 231 183 / var(--tw-placeholder-opacity)); +} +.placeholder-emerald-300\/0::placeholder { + color: rgb(110 231 183 / 0); +} +.placeholder-emerald-300\/10::placeholder { + color: rgb(110 231 183 / 0.1); +} +.placeholder-emerald-300\/100::placeholder { + color: rgb(110 231 183 / 1); +} +.placeholder-emerald-300\/20::placeholder { + color: rgb(110 231 183 / 0.2); +} +.placeholder-emerald-300\/25::placeholder { + color: rgb(110 231 183 / 0.25); +} +.placeholder-emerald-300\/30::placeholder { + color: rgb(110 231 183 / 0.3); +} +.placeholder-emerald-300\/40::placeholder { + color: rgb(110 231 183 / 0.4); +} +.placeholder-emerald-300\/5::placeholder { + color: rgb(110 231 183 / 0.05); +} +.placeholder-emerald-300\/50::placeholder { + color: rgb(110 231 183 / 0.5); +} +.placeholder-emerald-300\/60::placeholder { + color: rgb(110 231 183 / 0.6); +} +.placeholder-emerald-300\/70::placeholder { + color: rgb(110 231 183 / 0.7); +} +.placeholder-emerald-300\/75::placeholder { + color: rgb(110 231 183 / 0.75); +} +.placeholder-emerald-300\/80::placeholder { + color: rgb(110 231 183 / 0.8); +} +.placeholder-emerald-300\/90::placeholder { + color: rgb(110 231 183 / 0.9); +} +.placeholder-emerald-300\/95::placeholder { + color: rgb(110 231 183 / 0.95); +} +.placeholder-emerald-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(52 211 153 / var(--tw-placeholder-opacity)); +} +.placeholder-emerald-400\/0::placeholder { + color: rgb(52 211 153 / 0); +} +.placeholder-emerald-400\/10::placeholder { + color: rgb(52 211 153 / 0.1); +} +.placeholder-emerald-400\/100::placeholder { + color: rgb(52 211 153 / 1); +} +.placeholder-emerald-400\/20::placeholder { + color: rgb(52 211 153 / 0.2); +} +.placeholder-emerald-400\/25::placeholder { + color: rgb(52 211 153 / 0.25); +} +.placeholder-emerald-400\/30::placeholder { + color: rgb(52 211 153 / 0.3); +} +.placeholder-emerald-400\/40::placeholder { + color: rgb(52 211 153 / 0.4); +} +.placeholder-emerald-400\/5::placeholder { + color: rgb(52 211 153 / 0.05); +} +.placeholder-emerald-400\/50::placeholder { + color: rgb(52 211 153 / 0.5); +} +.placeholder-emerald-400\/60::placeholder { + color: rgb(52 211 153 / 0.6); +} +.placeholder-emerald-400\/70::placeholder { + color: rgb(52 211 153 / 0.7); +} +.placeholder-emerald-400\/75::placeholder { + color: rgb(52 211 153 / 0.75); +} +.placeholder-emerald-400\/80::placeholder { + color: rgb(52 211 153 / 0.8); +} +.placeholder-emerald-400\/90::placeholder { + color: rgb(52 211 153 / 0.9); +} +.placeholder-emerald-400\/95::placeholder { + color: rgb(52 211 153 / 0.95); +} +.placeholder-emerald-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(236 253 245 / var(--tw-placeholder-opacity)); +} +.placeholder-emerald-50\/0::placeholder { + color: rgb(236 253 245 / 0); +} +.placeholder-emerald-50\/10::placeholder { + color: rgb(236 253 245 / 0.1); +} +.placeholder-emerald-50\/100::placeholder { + color: rgb(236 253 245 / 1); +} +.placeholder-emerald-50\/20::placeholder { + color: rgb(236 253 245 / 0.2); +} +.placeholder-emerald-50\/25::placeholder { + color: rgb(236 253 245 / 0.25); +} +.placeholder-emerald-50\/30::placeholder { + color: rgb(236 253 245 / 0.3); +} +.placeholder-emerald-50\/40::placeholder { + color: rgb(236 253 245 / 0.4); +} +.placeholder-emerald-50\/5::placeholder { + color: rgb(236 253 245 / 0.05); +} +.placeholder-emerald-50\/50::placeholder { + color: rgb(236 253 245 / 0.5); +} +.placeholder-emerald-50\/60::placeholder { + color: rgb(236 253 245 / 0.6); +} +.placeholder-emerald-50\/70::placeholder { + color: rgb(236 253 245 / 0.7); +} +.placeholder-emerald-50\/75::placeholder { + color: rgb(236 253 245 / 0.75); +} +.placeholder-emerald-50\/80::placeholder { + color: rgb(236 253 245 / 0.8); +} +.placeholder-emerald-50\/90::placeholder { + color: rgb(236 253 245 / 0.9); +} +.placeholder-emerald-50\/95::placeholder { + color: rgb(236 253 245 / 0.95); +} +.placeholder-emerald-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(16 185 129 / var(--tw-placeholder-opacity)); +} +.placeholder-emerald-500\/0::placeholder { + color: rgb(16 185 129 / 0); +} +.placeholder-emerald-500\/10::placeholder { + color: rgb(16 185 129 / 0.1); +} +.placeholder-emerald-500\/100::placeholder { + color: rgb(16 185 129 / 1); +} +.placeholder-emerald-500\/20::placeholder { + color: rgb(16 185 129 / 0.2); +} +.placeholder-emerald-500\/25::placeholder { + color: rgb(16 185 129 / 0.25); +} +.placeholder-emerald-500\/30::placeholder { + color: rgb(16 185 129 / 0.3); +} +.placeholder-emerald-500\/40::placeholder { + color: rgb(16 185 129 / 0.4); +} +.placeholder-emerald-500\/5::placeholder { + color: rgb(16 185 129 / 0.05); +} +.placeholder-emerald-500\/50::placeholder { + color: rgb(16 185 129 / 0.5); +} +.placeholder-emerald-500\/60::placeholder { + color: rgb(16 185 129 / 0.6); +} +.placeholder-emerald-500\/70::placeholder { + color: rgb(16 185 129 / 0.7); +} +.placeholder-emerald-500\/75::placeholder { + color: rgb(16 185 129 / 0.75); +} +.placeholder-emerald-500\/80::placeholder { + color: rgb(16 185 129 / 0.8); +} +.placeholder-emerald-500\/90::placeholder { + color: rgb(16 185 129 / 0.9); +} +.placeholder-emerald-500\/95::placeholder { + color: rgb(16 185 129 / 0.95); +} +.placeholder-emerald-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(5 150 105 / var(--tw-placeholder-opacity)); +} +.placeholder-emerald-600\/0::placeholder { + color: rgb(5 150 105 / 0); +} +.placeholder-emerald-600\/10::placeholder { + color: rgb(5 150 105 / 0.1); +} +.placeholder-emerald-600\/100::placeholder { + color: rgb(5 150 105 / 1); +} +.placeholder-emerald-600\/20::placeholder { + color: rgb(5 150 105 / 0.2); +} +.placeholder-emerald-600\/25::placeholder { + color: rgb(5 150 105 / 0.25); +} +.placeholder-emerald-600\/30::placeholder { + color: rgb(5 150 105 / 0.3); +} +.placeholder-emerald-600\/40::placeholder { + color: rgb(5 150 105 / 0.4); +} +.placeholder-emerald-600\/5::placeholder { + color: rgb(5 150 105 / 0.05); +} +.placeholder-emerald-600\/50::placeholder { + color: rgb(5 150 105 / 0.5); +} +.placeholder-emerald-600\/60::placeholder { + color: rgb(5 150 105 / 0.6); +} +.placeholder-emerald-600\/70::placeholder { + color: rgb(5 150 105 / 0.7); +} +.placeholder-emerald-600\/75::placeholder { + color: rgb(5 150 105 / 0.75); +} +.placeholder-emerald-600\/80::placeholder { + color: rgb(5 150 105 / 0.8); +} +.placeholder-emerald-600\/90::placeholder { + color: rgb(5 150 105 / 0.9); +} +.placeholder-emerald-600\/95::placeholder { + color: rgb(5 150 105 / 0.95); +} +.placeholder-emerald-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(4 120 87 / var(--tw-placeholder-opacity)); +} +.placeholder-emerald-700\/0::placeholder { + color: rgb(4 120 87 / 0); +} +.placeholder-emerald-700\/10::placeholder { + color: rgb(4 120 87 / 0.1); +} +.placeholder-emerald-700\/100::placeholder { + color: rgb(4 120 87 / 1); +} +.placeholder-emerald-700\/20::placeholder { + color: rgb(4 120 87 / 0.2); +} +.placeholder-emerald-700\/25::placeholder { + color: rgb(4 120 87 / 0.25); +} +.placeholder-emerald-700\/30::placeholder { + color: rgb(4 120 87 / 0.3); +} +.placeholder-emerald-700\/40::placeholder { + color: rgb(4 120 87 / 0.4); +} +.placeholder-emerald-700\/5::placeholder { + color: rgb(4 120 87 / 0.05); +} +.placeholder-emerald-700\/50::placeholder { + color: rgb(4 120 87 / 0.5); +} +.placeholder-emerald-700\/60::placeholder { + color: rgb(4 120 87 / 0.6); +} +.placeholder-emerald-700\/70::placeholder { + color: rgb(4 120 87 / 0.7); +} +.placeholder-emerald-700\/75::placeholder { + color: rgb(4 120 87 / 0.75); +} +.placeholder-emerald-700\/80::placeholder { + color: rgb(4 120 87 / 0.8); +} +.placeholder-emerald-700\/90::placeholder { + color: rgb(4 120 87 / 0.9); +} +.placeholder-emerald-700\/95::placeholder { + color: rgb(4 120 87 / 0.95); +} +.placeholder-emerald-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(6 95 70 / var(--tw-placeholder-opacity)); +} +.placeholder-emerald-800\/0::placeholder { + color: rgb(6 95 70 / 0); +} +.placeholder-emerald-800\/10::placeholder { + color: rgb(6 95 70 / 0.1); +} +.placeholder-emerald-800\/100::placeholder { + color: rgb(6 95 70 / 1); +} +.placeholder-emerald-800\/20::placeholder { + color: rgb(6 95 70 / 0.2); +} +.placeholder-emerald-800\/25::placeholder { + color: rgb(6 95 70 / 0.25); +} +.placeholder-emerald-800\/30::placeholder { + color: rgb(6 95 70 / 0.3); +} +.placeholder-emerald-800\/40::placeholder { + color: rgb(6 95 70 / 0.4); +} +.placeholder-emerald-800\/5::placeholder { + color: rgb(6 95 70 / 0.05); +} +.placeholder-emerald-800\/50::placeholder { + color: rgb(6 95 70 / 0.5); +} +.placeholder-emerald-800\/60::placeholder { + color: rgb(6 95 70 / 0.6); +} +.placeholder-emerald-800\/70::placeholder { + color: rgb(6 95 70 / 0.7); +} +.placeholder-emerald-800\/75::placeholder { + color: rgb(6 95 70 / 0.75); +} +.placeholder-emerald-800\/80::placeholder { + color: rgb(6 95 70 / 0.8); +} +.placeholder-emerald-800\/90::placeholder { + color: rgb(6 95 70 / 0.9); +} +.placeholder-emerald-800\/95::placeholder { + color: rgb(6 95 70 / 0.95); +} +.placeholder-emerald-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(6 78 59 / var(--tw-placeholder-opacity)); +} +.placeholder-emerald-900\/0::placeholder { + color: rgb(6 78 59 / 0); +} +.placeholder-emerald-900\/10::placeholder { + color: rgb(6 78 59 / 0.1); +} +.placeholder-emerald-900\/100::placeholder { + color: rgb(6 78 59 / 1); +} +.placeholder-emerald-900\/20::placeholder { + color: rgb(6 78 59 / 0.2); +} +.placeholder-emerald-900\/25::placeholder { + color: rgb(6 78 59 / 0.25); +} +.placeholder-emerald-900\/30::placeholder { + color: rgb(6 78 59 / 0.3); +} +.placeholder-emerald-900\/40::placeholder { + color: rgb(6 78 59 / 0.4); +} +.placeholder-emerald-900\/5::placeholder { + color: rgb(6 78 59 / 0.05); +} +.placeholder-emerald-900\/50::placeholder { + color: rgb(6 78 59 / 0.5); +} +.placeholder-emerald-900\/60::placeholder { + color: rgb(6 78 59 / 0.6); +} +.placeholder-emerald-900\/70::placeholder { + color: rgb(6 78 59 / 0.7); +} +.placeholder-emerald-900\/75::placeholder { + color: rgb(6 78 59 / 0.75); +} +.placeholder-emerald-900\/80::placeholder { + color: rgb(6 78 59 / 0.8); +} +.placeholder-emerald-900\/90::placeholder { + color: rgb(6 78 59 / 0.9); +} +.placeholder-emerald-900\/95::placeholder { + color: rgb(6 78 59 / 0.95); +} +.placeholder-emwelt-primary::placeholder { + color: var(--emwelt-primary); +} +.placeholder-emwelt-secondary::placeholder { + color: var(--emwelt-secondary); +} +.placeholder-emwelt-tertiary::placeholder { + color: var(--emwelt-tertiary); +} +.placeholder-energie-primary::placeholder { + color: var(--energie-primary); +} +.placeholder-energie-secondary::placeholder { + color: var(--energie-secondary); +} +.placeholder-energie-tertiary::placeholder { + color: var(--energie-tertiary); +} +.placeholder-fuchsia-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(250 232 255 / var(--tw-placeholder-opacity)); +} +.placeholder-fuchsia-100\/0::placeholder { + color: rgb(250 232 255 / 0); +} +.placeholder-fuchsia-100\/10::placeholder { + color: rgb(250 232 255 / 0.1); +} +.placeholder-fuchsia-100\/100::placeholder { + color: rgb(250 232 255 / 1); +} +.placeholder-fuchsia-100\/20::placeholder { + color: rgb(250 232 255 / 0.2); +} +.placeholder-fuchsia-100\/25::placeholder { + color: rgb(250 232 255 / 0.25); +} +.placeholder-fuchsia-100\/30::placeholder { + color: rgb(250 232 255 / 0.3); +} +.placeholder-fuchsia-100\/40::placeholder { + color: rgb(250 232 255 / 0.4); +} +.placeholder-fuchsia-100\/5::placeholder { + color: rgb(250 232 255 / 0.05); +} +.placeholder-fuchsia-100\/50::placeholder { + color: rgb(250 232 255 / 0.5); +} +.placeholder-fuchsia-100\/60::placeholder { + color: rgb(250 232 255 / 0.6); +} +.placeholder-fuchsia-100\/70::placeholder { + color: rgb(250 232 255 / 0.7); +} +.placeholder-fuchsia-100\/75::placeholder { + color: rgb(250 232 255 / 0.75); +} +.placeholder-fuchsia-100\/80::placeholder { + color: rgb(250 232 255 / 0.8); +} +.placeholder-fuchsia-100\/90::placeholder { + color: rgb(250 232 255 / 0.9); +} +.placeholder-fuchsia-100\/95::placeholder { + color: rgb(250 232 255 / 0.95); +} +.placeholder-fuchsia-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(245 208 254 / var(--tw-placeholder-opacity)); +} +.placeholder-fuchsia-200\/0::placeholder { + color: rgb(245 208 254 / 0); +} +.placeholder-fuchsia-200\/10::placeholder { + color: rgb(245 208 254 / 0.1); +} +.placeholder-fuchsia-200\/100::placeholder { + color: rgb(245 208 254 / 1); +} +.placeholder-fuchsia-200\/20::placeholder { + color: rgb(245 208 254 / 0.2); +} +.placeholder-fuchsia-200\/25::placeholder { + color: rgb(245 208 254 / 0.25); +} +.placeholder-fuchsia-200\/30::placeholder { + color: rgb(245 208 254 / 0.3); +} +.placeholder-fuchsia-200\/40::placeholder { + color: rgb(245 208 254 / 0.4); +} +.placeholder-fuchsia-200\/5::placeholder { + color: rgb(245 208 254 / 0.05); +} +.placeholder-fuchsia-200\/50::placeholder { + color: rgb(245 208 254 / 0.5); +} +.placeholder-fuchsia-200\/60::placeholder { + color: rgb(245 208 254 / 0.6); +} +.placeholder-fuchsia-200\/70::placeholder { + color: rgb(245 208 254 / 0.7); +} +.placeholder-fuchsia-200\/75::placeholder { + color: rgb(245 208 254 / 0.75); +} +.placeholder-fuchsia-200\/80::placeholder { + color: rgb(245 208 254 / 0.8); +} +.placeholder-fuchsia-200\/90::placeholder { + color: rgb(245 208 254 / 0.9); +} +.placeholder-fuchsia-200\/95::placeholder { + color: rgb(245 208 254 / 0.95); +} +.placeholder-fuchsia-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(240 171 252 / var(--tw-placeholder-opacity)); +} +.placeholder-fuchsia-300\/0::placeholder { + color: rgb(240 171 252 / 0); +} +.placeholder-fuchsia-300\/10::placeholder { + color: rgb(240 171 252 / 0.1); +} +.placeholder-fuchsia-300\/100::placeholder { + color: rgb(240 171 252 / 1); +} +.placeholder-fuchsia-300\/20::placeholder { + color: rgb(240 171 252 / 0.2); +} +.placeholder-fuchsia-300\/25::placeholder { + color: rgb(240 171 252 / 0.25); +} +.placeholder-fuchsia-300\/30::placeholder { + color: rgb(240 171 252 / 0.3); +} +.placeholder-fuchsia-300\/40::placeholder { + color: rgb(240 171 252 / 0.4); +} +.placeholder-fuchsia-300\/5::placeholder { + color: rgb(240 171 252 / 0.05); +} +.placeholder-fuchsia-300\/50::placeholder { + color: rgb(240 171 252 / 0.5); +} +.placeholder-fuchsia-300\/60::placeholder { + color: rgb(240 171 252 / 0.6); +} +.placeholder-fuchsia-300\/70::placeholder { + color: rgb(240 171 252 / 0.7); +} +.placeholder-fuchsia-300\/75::placeholder { + color: rgb(240 171 252 / 0.75); +} +.placeholder-fuchsia-300\/80::placeholder { + color: rgb(240 171 252 / 0.8); +} +.placeholder-fuchsia-300\/90::placeholder { + color: rgb(240 171 252 / 0.9); +} +.placeholder-fuchsia-300\/95::placeholder { + color: rgb(240 171 252 / 0.95); +} +.placeholder-fuchsia-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(232 121 249 / var(--tw-placeholder-opacity)); +} +.placeholder-fuchsia-400\/0::placeholder { + color: rgb(232 121 249 / 0); +} +.placeholder-fuchsia-400\/10::placeholder { + color: rgb(232 121 249 / 0.1); +} +.placeholder-fuchsia-400\/100::placeholder { + color: rgb(232 121 249 / 1); +} +.placeholder-fuchsia-400\/20::placeholder { + color: rgb(232 121 249 / 0.2); +} +.placeholder-fuchsia-400\/25::placeholder { + color: rgb(232 121 249 / 0.25); +} +.placeholder-fuchsia-400\/30::placeholder { + color: rgb(232 121 249 / 0.3); +} +.placeholder-fuchsia-400\/40::placeholder { + color: rgb(232 121 249 / 0.4); +} +.placeholder-fuchsia-400\/5::placeholder { + color: rgb(232 121 249 / 0.05); +} +.placeholder-fuchsia-400\/50::placeholder { + color: rgb(232 121 249 / 0.5); +} +.placeholder-fuchsia-400\/60::placeholder { + color: rgb(232 121 249 / 0.6); +} +.placeholder-fuchsia-400\/70::placeholder { + color: rgb(232 121 249 / 0.7); +} +.placeholder-fuchsia-400\/75::placeholder { + color: rgb(232 121 249 / 0.75); +} +.placeholder-fuchsia-400\/80::placeholder { + color: rgb(232 121 249 / 0.8); +} +.placeholder-fuchsia-400\/90::placeholder { + color: rgb(232 121 249 / 0.9); +} +.placeholder-fuchsia-400\/95::placeholder { + color: rgb(232 121 249 / 0.95); +} +.placeholder-fuchsia-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(253 244 255 / var(--tw-placeholder-opacity)); +} +.placeholder-fuchsia-50\/0::placeholder { + color: rgb(253 244 255 / 0); +} +.placeholder-fuchsia-50\/10::placeholder { + color: rgb(253 244 255 / 0.1); +} +.placeholder-fuchsia-50\/100::placeholder { + color: rgb(253 244 255 / 1); +} +.placeholder-fuchsia-50\/20::placeholder { + color: rgb(253 244 255 / 0.2); +} +.placeholder-fuchsia-50\/25::placeholder { + color: rgb(253 244 255 / 0.25); +} +.placeholder-fuchsia-50\/30::placeholder { + color: rgb(253 244 255 / 0.3); +} +.placeholder-fuchsia-50\/40::placeholder { + color: rgb(253 244 255 / 0.4); +} +.placeholder-fuchsia-50\/5::placeholder { + color: rgb(253 244 255 / 0.05); +} +.placeholder-fuchsia-50\/50::placeholder { + color: rgb(253 244 255 / 0.5); +} +.placeholder-fuchsia-50\/60::placeholder { + color: rgb(253 244 255 / 0.6); +} +.placeholder-fuchsia-50\/70::placeholder { + color: rgb(253 244 255 / 0.7); +} +.placeholder-fuchsia-50\/75::placeholder { + color: rgb(253 244 255 / 0.75); +} +.placeholder-fuchsia-50\/80::placeholder { + color: rgb(253 244 255 / 0.8); +} +.placeholder-fuchsia-50\/90::placeholder { + color: rgb(253 244 255 / 0.9); +} +.placeholder-fuchsia-50\/95::placeholder { + color: rgb(253 244 255 / 0.95); +} +.placeholder-fuchsia-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(217 70 239 / var(--tw-placeholder-opacity)); +} +.placeholder-fuchsia-500\/0::placeholder { + color: rgb(217 70 239 / 0); +} +.placeholder-fuchsia-500\/10::placeholder { + color: rgb(217 70 239 / 0.1); +} +.placeholder-fuchsia-500\/100::placeholder { + color: rgb(217 70 239 / 1); +} +.placeholder-fuchsia-500\/20::placeholder { + color: rgb(217 70 239 / 0.2); +} +.placeholder-fuchsia-500\/25::placeholder { + color: rgb(217 70 239 / 0.25); +} +.placeholder-fuchsia-500\/30::placeholder { + color: rgb(217 70 239 / 0.3); +} +.placeholder-fuchsia-500\/40::placeholder { + color: rgb(217 70 239 / 0.4); +} +.placeholder-fuchsia-500\/5::placeholder { + color: rgb(217 70 239 / 0.05); +} +.placeholder-fuchsia-500\/50::placeholder { + color: rgb(217 70 239 / 0.5); +} +.placeholder-fuchsia-500\/60::placeholder { + color: rgb(217 70 239 / 0.6); +} +.placeholder-fuchsia-500\/70::placeholder { + color: rgb(217 70 239 / 0.7); +} +.placeholder-fuchsia-500\/75::placeholder { + color: rgb(217 70 239 / 0.75); +} +.placeholder-fuchsia-500\/80::placeholder { + color: rgb(217 70 239 / 0.8); +} +.placeholder-fuchsia-500\/90::placeholder { + color: rgb(217 70 239 / 0.9); +} +.placeholder-fuchsia-500\/95::placeholder { + color: rgb(217 70 239 / 0.95); +} +.placeholder-fuchsia-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(192 38 211 / var(--tw-placeholder-opacity)); +} +.placeholder-fuchsia-600\/0::placeholder { + color: rgb(192 38 211 / 0); +} +.placeholder-fuchsia-600\/10::placeholder { + color: rgb(192 38 211 / 0.1); +} +.placeholder-fuchsia-600\/100::placeholder { + color: rgb(192 38 211 / 1); +} +.placeholder-fuchsia-600\/20::placeholder { + color: rgb(192 38 211 / 0.2); +} +.placeholder-fuchsia-600\/25::placeholder { + color: rgb(192 38 211 / 0.25); +} +.placeholder-fuchsia-600\/30::placeholder { + color: rgb(192 38 211 / 0.3); +} +.placeholder-fuchsia-600\/40::placeholder { + color: rgb(192 38 211 / 0.4); +} +.placeholder-fuchsia-600\/5::placeholder { + color: rgb(192 38 211 / 0.05); +} +.placeholder-fuchsia-600\/50::placeholder { + color: rgb(192 38 211 / 0.5); +} +.placeholder-fuchsia-600\/60::placeholder { + color: rgb(192 38 211 / 0.6); +} +.placeholder-fuchsia-600\/70::placeholder { + color: rgb(192 38 211 / 0.7); +} +.placeholder-fuchsia-600\/75::placeholder { + color: rgb(192 38 211 / 0.75); +} +.placeholder-fuchsia-600\/80::placeholder { + color: rgb(192 38 211 / 0.8); +} +.placeholder-fuchsia-600\/90::placeholder { + color: rgb(192 38 211 / 0.9); +} +.placeholder-fuchsia-600\/95::placeholder { + color: rgb(192 38 211 / 0.95); +} +.placeholder-fuchsia-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(162 28 175 / var(--tw-placeholder-opacity)); +} +.placeholder-fuchsia-700\/0::placeholder { + color: rgb(162 28 175 / 0); +} +.placeholder-fuchsia-700\/10::placeholder { + color: rgb(162 28 175 / 0.1); +} +.placeholder-fuchsia-700\/100::placeholder { + color: rgb(162 28 175 / 1); +} +.placeholder-fuchsia-700\/20::placeholder { + color: rgb(162 28 175 / 0.2); +} +.placeholder-fuchsia-700\/25::placeholder { + color: rgb(162 28 175 / 0.25); +} +.placeholder-fuchsia-700\/30::placeholder { + color: rgb(162 28 175 / 0.3); +} +.placeholder-fuchsia-700\/40::placeholder { + color: rgb(162 28 175 / 0.4); +} +.placeholder-fuchsia-700\/5::placeholder { + color: rgb(162 28 175 / 0.05); +} +.placeholder-fuchsia-700\/50::placeholder { + color: rgb(162 28 175 / 0.5); +} +.placeholder-fuchsia-700\/60::placeholder { + color: rgb(162 28 175 / 0.6); +} +.placeholder-fuchsia-700\/70::placeholder { + color: rgb(162 28 175 / 0.7); +} +.placeholder-fuchsia-700\/75::placeholder { + color: rgb(162 28 175 / 0.75); +} +.placeholder-fuchsia-700\/80::placeholder { + color: rgb(162 28 175 / 0.8); +} +.placeholder-fuchsia-700\/90::placeholder { + color: rgb(162 28 175 / 0.9); +} +.placeholder-fuchsia-700\/95::placeholder { + color: rgb(162 28 175 / 0.95); +} +.placeholder-fuchsia-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(134 25 143 / var(--tw-placeholder-opacity)); +} +.placeholder-fuchsia-800\/0::placeholder { + color: rgb(134 25 143 / 0); +} +.placeholder-fuchsia-800\/10::placeholder { + color: rgb(134 25 143 / 0.1); +} +.placeholder-fuchsia-800\/100::placeholder { + color: rgb(134 25 143 / 1); +} +.placeholder-fuchsia-800\/20::placeholder { + color: rgb(134 25 143 / 0.2); +} +.placeholder-fuchsia-800\/25::placeholder { + color: rgb(134 25 143 / 0.25); +} +.placeholder-fuchsia-800\/30::placeholder { + color: rgb(134 25 143 / 0.3); +} +.placeholder-fuchsia-800\/40::placeholder { + color: rgb(134 25 143 / 0.4); +} +.placeholder-fuchsia-800\/5::placeholder { + color: rgb(134 25 143 / 0.05); +} +.placeholder-fuchsia-800\/50::placeholder { + color: rgb(134 25 143 / 0.5); +} +.placeholder-fuchsia-800\/60::placeholder { + color: rgb(134 25 143 / 0.6); +} +.placeholder-fuchsia-800\/70::placeholder { + color: rgb(134 25 143 / 0.7); +} +.placeholder-fuchsia-800\/75::placeholder { + color: rgb(134 25 143 / 0.75); +} +.placeholder-fuchsia-800\/80::placeholder { + color: rgb(134 25 143 / 0.8); +} +.placeholder-fuchsia-800\/90::placeholder { + color: rgb(134 25 143 / 0.9); +} +.placeholder-fuchsia-800\/95::placeholder { + color: rgb(134 25 143 / 0.95); +} +.placeholder-fuchsia-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(112 26 117 / var(--tw-placeholder-opacity)); +} +.placeholder-fuchsia-900\/0::placeholder { + color: rgb(112 26 117 / 0); +} +.placeholder-fuchsia-900\/10::placeholder { + color: rgb(112 26 117 / 0.1); +} +.placeholder-fuchsia-900\/100::placeholder { + color: rgb(112 26 117 / 1); +} +.placeholder-fuchsia-900\/20::placeholder { + color: rgb(112 26 117 / 0.2); +} +.placeholder-fuchsia-900\/25::placeholder { + color: rgb(112 26 117 / 0.25); +} +.placeholder-fuchsia-900\/30::placeholder { + color: rgb(112 26 117 / 0.3); +} +.placeholder-fuchsia-900\/40::placeholder { + color: rgb(112 26 117 / 0.4); +} +.placeholder-fuchsia-900\/5::placeholder { + color: rgb(112 26 117 / 0.05); +} +.placeholder-fuchsia-900\/50::placeholder { + color: rgb(112 26 117 / 0.5); +} +.placeholder-fuchsia-900\/60::placeholder { + color: rgb(112 26 117 / 0.6); +} +.placeholder-fuchsia-900\/70::placeholder { + color: rgb(112 26 117 / 0.7); +} +.placeholder-fuchsia-900\/75::placeholder { + color: rgb(112 26 117 / 0.75); +} +.placeholder-fuchsia-900\/80::placeholder { + color: rgb(112 26 117 / 0.8); +} +.placeholder-fuchsia-900\/90::placeholder { + color: rgb(112 26 117 / 0.9); +} +.placeholder-fuchsia-900\/95::placeholder { + color: rgb(112 26 117 / 0.95); +} +.placeholder-geosciences-primary::placeholder { + color: var(--geosciences-primary); +} +.placeholder-geosciences-secondary::placeholder { + color: var(--geosciences-secondary); +} +.placeholder-geosciences-tertiary::placeholder { + color: var(--geosciences-tertiary); +} +.placeholder-go-primary::placeholder { + color: var(--go-primary); +} +.placeholder-go-secondary::placeholder { + color: var(--go-secondary); +} +.placeholder-go-tertiary::placeholder { + color: var(--go-tertiary); +} +.placeholder-gray-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(243 244 246 / var(--tw-placeholder-opacity)); +} +.placeholder-gray-100\/0::placeholder { + color: rgb(243 244 246 / 0); +} +.placeholder-gray-100\/10::placeholder { + color: rgb(243 244 246 / 0.1); +} +.placeholder-gray-100\/100::placeholder { + color: rgb(243 244 246 / 1); +} +.placeholder-gray-100\/20::placeholder { + color: rgb(243 244 246 / 0.2); +} +.placeholder-gray-100\/25::placeholder { + color: rgb(243 244 246 / 0.25); +} +.placeholder-gray-100\/30::placeholder { + color: rgb(243 244 246 / 0.3); +} +.placeholder-gray-100\/40::placeholder { + color: rgb(243 244 246 / 0.4); +} +.placeholder-gray-100\/5::placeholder { + color: rgb(243 244 246 / 0.05); +} +.placeholder-gray-100\/50::placeholder { + color: rgb(243 244 246 / 0.5); +} +.placeholder-gray-100\/60::placeholder { + color: rgb(243 244 246 / 0.6); +} +.placeholder-gray-100\/70::placeholder { + color: rgb(243 244 246 / 0.7); +} +.placeholder-gray-100\/75::placeholder { + color: rgb(243 244 246 / 0.75); +} +.placeholder-gray-100\/80::placeholder { + color: rgb(243 244 246 / 0.8); +} +.placeholder-gray-100\/90::placeholder { + color: rgb(243 244 246 / 0.9); +} +.placeholder-gray-100\/95::placeholder { + color: rgb(243 244 246 / 0.95); +} +.placeholder-gray-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(229 231 235 / var(--tw-placeholder-opacity)); +} +.placeholder-gray-200\/0::placeholder { + color: rgb(229 231 235 / 0); +} +.placeholder-gray-200\/10::placeholder { + color: rgb(229 231 235 / 0.1); +} +.placeholder-gray-200\/100::placeholder { + color: rgb(229 231 235 / 1); +} +.placeholder-gray-200\/20::placeholder { + color: rgb(229 231 235 / 0.2); +} +.placeholder-gray-200\/25::placeholder { + color: rgb(229 231 235 / 0.25); +} +.placeholder-gray-200\/30::placeholder { + color: rgb(229 231 235 / 0.3); +} +.placeholder-gray-200\/40::placeholder { + color: rgb(229 231 235 / 0.4); +} +.placeholder-gray-200\/5::placeholder { + color: rgb(229 231 235 / 0.05); +} +.placeholder-gray-200\/50::placeholder { + color: rgb(229 231 235 / 0.5); +} +.placeholder-gray-200\/60::placeholder { + color: rgb(229 231 235 / 0.6); +} +.placeholder-gray-200\/70::placeholder { + color: rgb(229 231 235 / 0.7); +} +.placeholder-gray-200\/75::placeholder { + color: rgb(229 231 235 / 0.75); +} +.placeholder-gray-200\/80::placeholder { + color: rgb(229 231 235 / 0.8); +} +.placeholder-gray-200\/90::placeholder { + color: rgb(229 231 235 / 0.9); +} +.placeholder-gray-200\/95::placeholder { + color: rgb(229 231 235 / 0.95); +} +.placeholder-gray-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(209 213 219 / var(--tw-placeholder-opacity)); +} +.placeholder-gray-300\/0::placeholder { + color: rgb(209 213 219 / 0); +} +.placeholder-gray-300\/10::placeholder { + color: rgb(209 213 219 / 0.1); +} +.placeholder-gray-300\/100::placeholder { + color: rgb(209 213 219 / 1); +} +.placeholder-gray-300\/20::placeholder { + color: rgb(209 213 219 / 0.2); +} +.placeholder-gray-300\/25::placeholder { + color: rgb(209 213 219 / 0.25); +} +.placeholder-gray-300\/30::placeholder { + color: rgb(209 213 219 / 0.3); +} +.placeholder-gray-300\/40::placeholder { + color: rgb(209 213 219 / 0.4); +} +.placeholder-gray-300\/5::placeholder { + color: rgb(209 213 219 / 0.05); +} +.placeholder-gray-300\/50::placeholder { + color: rgb(209 213 219 / 0.5); +} +.placeholder-gray-300\/60::placeholder { + color: rgb(209 213 219 / 0.6); +} +.placeholder-gray-300\/70::placeholder { + color: rgb(209 213 219 / 0.7); +} +.placeholder-gray-300\/75::placeholder { + color: rgb(209 213 219 / 0.75); +} +.placeholder-gray-300\/80::placeholder { + color: rgb(209 213 219 / 0.8); +} +.placeholder-gray-300\/90::placeholder { + color: rgb(209 213 219 / 0.9); +} +.placeholder-gray-300\/95::placeholder { + color: rgb(209 213 219 / 0.95); +} +.placeholder-gray-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(156 163 175 / var(--tw-placeholder-opacity)); +} +.placeholder-gray-400\/0::placeholder { + color: rgb(156 163 175 / 0); +} +.placeholder-gray-400\/10::placeholder { + color: rgb(156 163 175 / 0.1); +} +.placeholder-gray-400\/100::placeholder { + color: rgb(156 163 175 / 1); +} +.placeholder-gray-400\/20::placeholder { + color: rgb(156 163 175 / 0.2); +} +.placeholder-gray-400\/25::placeholder { + color: rgb(156 163 175 / 0.25); +} +.placeholder-gray-400\/30::placeholder { + color: rgb(156 163 175 / 0.3); +} +.placeholder-gray-400\/40::placeholder { + color: rgb(156 163 175 / 0.4); +} +.placeholder-gray-400\/5::placeholder { + color: rgb(156 163 175 / 0.05); +} +.placeholder-gray-400\/50::placeholder { + color: rgb(156 163 175 / 0.5); +} +.placeholder-gray-400\/60::placeholder { + color: rgb(156 163 175 / 0.6); +} +.placeholder-gray-400\/70::placeholder { + color: rgb(156 163 175 / 0.7); +} +.placeholder-gray-400\/75::placeholder { + color: rgb(156 163 175 / 0.75); +} +.placeholder-gray-400\/80::placeholder { + color: rgb(156 163 175 / 0.8); +} +.placeholder-gray-400\/90::placeholder { + color: rgb(156 163 175 / 0.9); +} +.placeholder-gray-400\/95::placeholder { + color: rgb(156 163 175 / 0.95); +} +.placeholder-gray-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(249 250 251 / var(--tw-placeholder-opacity)); +} +.placeholder-gray-50\/0::placeholder { + color: rgb(249 250 251 / 0); +} +.placeholder-gray-50\/10::placeholder { + color: rgb(249 250 251 / 0.1); +} +.placeholder-gray-50\/100::placeholder { + color: rgb(249 250 251 / 1); +} +.placeholder-gray-50\/20::placeholder { + color: rgb(249 250 251 / 0.2); +} +.placeholder-gray-50\/25::placeholder { + color: rgb(249 250 251 / 0.25); +} +.placeholder-gray-50\/30::placeholder { + color: rgb(249 250 251 / 0.3); +} +.placeholder-gray-50\/40::placeholder { + color: rgb(249 250 251 / 0.4); +} +.placeholder-gray-50\/5::placeholder { + color: rgb(249 250 251 / 0.05); +} +.placeholder-gray-50\/50::placeholder { + color: rgb(249 250 251 / 0.5); +} +.placeholder-gray-50\/60::placeholder { + color: rgb(249 250 251 / 0.6); +} +.placeholder-gray-50\/70::placeholder { + color: rgb(249 250 251 / 0.7); +} +.placeholder-gray-50\/75::placeholder { + color: rgb(249 250 251 / 0.75); +} +.placeholder-gray-50\/80::placeholder { + color: rgb(249 250 251 / 0.8); +} +.placeholder-gray-50\/90::placeholder { + color: rgb(249 250 251 / 0.9); +} +.placeholder-gray-50\/95::placeholder { + color: rgb(249 250 251 / 0.95); +} +.placeholder-gray-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(107 114 128 / var(--tw-placeholder-opacity)); +} +.placeholder-gray-500\/0::placeholder { + color: rgb(107 114 128 / 0); +} +.placeholder-gray-500\/10::placeholder { + color: rgb(107 114 128 / 0.1); +} +.placeholder-gray-500\/100::placeholder { + color: rgb(107 114 128 / 1); +} +.placeholder-gray-500\/20::placeholder { + color: rgb(107 114 128 / 0.2); +} +.placeholder-gray-500\/25::placeholder { + color: rgb(107 114 128 / 0.25); +} +.placeholder-gray-500\/30::placeholder { + color: rgb(107 114 128 / 0.3); +} +.placeholder-gray-500\/40::placeholder { + color: rgb(107 114 128 / 0.4); +} +.placeholder-gray-500\/5::placeholder { + color: rgb(107 114 128 / 0.05); +} +.placeholder-gray-500\/50::placeholder { + color: rgb(107 114 128 / 0.5); +} +.placeholder-gray-500\/60::placeholder { + color: rgb(107 114 128 / 0.6); +} +.placeholder-gray-500\/70::placeholder { + color: rgb(107 114 128 / 0.7); +} +.placeholder-gray-500\/75::placeholder { + color: rgb(107 114 128 / 0.75); +} +.placeholder-gray-500\/80::placeholder { + color: rgb(107 114 128 / 0.8); +} +.placeholder-gray-500\/90::placeholder { + color: rgb(107 114 128 / 0.9); +} +.placeholder-gray-500\/95::placeholder { + color: rgb(107 114 128 / 0.95); +} +.placeholder-gray-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(75 85 99 / var(--tw-placeholder-opacity)); +} +.placeholder-gray-600\/0::placeholder { + color: rgb(75 85 99 / 0); +} +.placeholder-gray-600\/10::placeholder { + color: rgb(75 85 99 / 0.1); +} +.placeholder-gray-600\/100::placeholder { + color: rgb(75 85 99 / 1); +} +.placeholder-gray-600\/20::placeholder { + color: rgb(75 85 99 / 0.2); +} +.placeholder-gray-600\/25::placeholder { + color: rgb(75 85 99 / 0.25); +} +.placeholder-gray-600\/30::placeholder { + color: rgb(75 85 99 / 0.3); +} +.placeholder-gray-600\/40::placeholder { + color: rgb(75 85 99 / 0.4); +} +.placeholder-gray-600\/5::placeholder { + color: rgb(75 85 99 / 0.05); +} +.placeholder-gray-600\/50::placeholder { + color: rgb(75 85 99 / 0.5); +} +.placeholder-gray-600\/60::placeholder { + color: rgb(75 85 99 / 0.6); +} +.placeholder-gray-600\/70::placeholder { + color: rgb(75 85 99 / 0.7); +} +.placeholder-gray-600\/75::placeholder { + color: rgb(75 85 99 / 0.75); +} +.placeholder-gray-600\/80::placeholder { + color: rgb(75 85 99 / 0.8); +} +.placeholder-gray-600\/90::placeholder { + color: rgb(75 85 99 / 0.9); +} +.placeholder-gray-600\/95::placeholder { + color: rgb(75 85 99 / 0.95); +} +.placeholder-gray-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(55 65 81 / var(--tw-placeholder-opacity)); +} +.placeholder-gray-700\/0::placeholder { + color: rgb(55 65 81 / 0); +} +.placeholder-gray-700\/10::placeholder { + color: rgb(55 65 81 / 0.1); +} +.placeholder-gray-700\/100::placeholder { + color: rgb(55 65 81 / 1); +} +.placeholder-gray-700\/20::placeholder { + color: rgb(55 65 81 / 0.2); +} +.placeholder-gray-700\/25::placeholder { + color: rgb(55 65 81 / 0.25); +} +.placeholder-gray-700\/30::placeholder { + color: rgb(55 65 81 / 0.3); +} +.placeholder-gray-700\/40::placeholder { + color: rgb(55 65 81 / 0.4); +} +.placeholder-gray-700\/5::placeholder { + color: rgb(55 65 81 / 0.05); +} +.placeholder-gray-700\/50::placeholder { + color: rgb(55 65 81 / 0.5); +} +.placeholder-gray-700\/60::placeholder { + color: rgb(55 65 81 / 0.6); +} +.placeholder-gray-700\/70::placeholder { + color: rgb(55 65 81 / 0.7); +} +.placeholder-gray-700\/75::placeholder { + color: rgb(55 65 81 / 0.75); +} +.placeholder-gray-700\/80::placeholder { + color: rgb(55 65 81 / 0.8); +} +.placeholder-gray-700\/90::placeholder { + color: rgb(55 65 81 / 0.9); +} +.placeholder-gray-700\/95::placeholder { + color: rgb(55 65 81 / 0.95); +} +.placeholder-gray-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(31 41 55 / var(--tw-placeholder-opacity)); +} +.placeholder-gray-800\/0::placeholder { + color: rgb(31 41 55 / 0); +} +.placeholder-gray-800\/10::placeholder { + color: rgb(31 41 55 / 0.1); +} +.placeholder-gray-800\/100::placeholder { + color: rgb(31 41 55 / 1); +} +.placeholder-gray-800\/20::placeholder { + color: rgb(31 41 55 / 0.2); +} +.placeholder-gray-800\/25::placeholder { + color: rgb(31 41 55 / 0.25); +} +.placeholder-gray-800\/30::placeholder { + color: rgb(31 41 55 / 0.3); +} +.placeholder-gray-800\/40::placeholder { + color: rgb(31 41 55 / 0.4); +} +.placeholder-gray-800\/5::placeholder { + color: rgb(31 41 55 / 0.05); +} +.placeholder-gray-800\/50::placeholder { + color: rgb(31 41 55 / 0.5); +} +.placeholder-gray-800\/60::placeholder { + color: rgb(31 41 55 / 0.6); +} +.placeholder-gray-800\/70::placeholder { + color: rgb(31 41 55 / 0.7); +} +.placeholder-gray-800\/75::placeholder { + color: rgb(31 41 55 / 0.75); +} +.placeholder-gray-800\/80::placeholder { + color: rgb(31 41 55 / 0.8); +} +.placeholder-gray-800\/90::placeholder { + color: rgb(31 41 55 / 0.9); +} +.placeholder-gray-800\/95::placeholder { + color: rgb(31 41 55 / 0.95); +} +.placeholder-gray-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(17 24 39 / var(--tw-placeholder-opacity)); +} +.placeholder-gray-900\/0::placeholder { + color: rgb(17 24 39 / 0); +} +.placeholder-gray-900\/10::placeholder { + color: rgb(17 24 39 / 0.1); +} +.placeholder-gray-900\/100::placeholder { + color: rgb(17 24 39 / 1); +} +.placeholder-gray-900\/20::placeholder { + color: rgb(17 24 39 / 0.2); +} +.placeholder-gray-900\/25::placeholder { + color: rgb(17 24 39 / 0.25); +} +.placeholder-gray-900\/30::placeholder { + color: rgb(17 24 39 / 0.3); +} +.placeholder-gray-900\/40::placeholder { + color: rgb(17 24 39 / 0.4); +} +.placeholder-gray-900\/5::placeholder { + color: rgb(17 24 39 / 0.05); +} +.placeholder-gray-900\/50::placeholder { + color: rgb(17 24 39 / 0.5); +} +.placeholder-gray-900\/60::placeholder { + color: rgb(17 24 39 / 0.6); +} +.placeholder-gray-900\/70::placeholder { + color: rgb(17 24 39 / 0.7); +} +.placeholder-gray-900\/75::placeholder { + color: rgb(17 24 39 / 0.75); +} +.placeholder-gray-900\/80::placeholder { + color: rgb(17 24 39 / 0.8); +} +.placeholder-gray-900\/90::placeholder { + color: rgb(17 24 39 / 0.9); +} +.placeholder-gray-900\/95::placeholder { + color: rgb(17 24 39 / 0.95); +} +.placeholder-green-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(220 252 231 / var(--tw-placeholder-opacity)); +} +.placeholder-green-100\/0::placeholder { + color: rgb(220 252 231 / 0); +} +.placeholder-green-100\/10::placeholder { + color: rgb(220 252 231 / 0.1); +} +.placeholder-green-100\/100::placeholder { + color: rgb(220 252 231 / 1); +} +.placeholder-green-100\/20::placeholder { + color: rgb(220 252 231 / 0.2); +} +.placeholder-green-100\/25::placeholder { + color: rgb(220 252 231 / 0.25); +} +.placeholder-green-100\/30::placeholder { + color: rgb(220 252 231 / 0.3); +} +.placeholder-green-100\/40::placeholder { + color: rgb(220 252 231 / 0.4); +} +.placeholder-green-100\/5::placeholder { + color: rgb(220 252 231 / 0.05); +} +.placeholder-green-100\/50::placeholder { + color: rgb(220 252 231 / 0.5); +} +.placeholder-green-100\/60::placeholder { + color: rgb(220 252 231 / 0.6); +} +.placeholder-green-100\/70::placeholder { + color: rgb(220 252 231 / 0.7); +} +.placeholder-green-100\/75::placeholder { + color: rgb(220 252 231 / 0.75); +} +.placeholder-green-100\/80::placeholder { + color: rgb(220 252 231 / 0.8); +} +.placeholder-green-100\/90::placeholder { + color: rgb(220 252 231 / 0.9); +} +.placeholder-green-100\/95::placeholder { + color: rgb(220 252 231 / 0.95); +} +.placeholder-green-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(187 247 208 / var(--tw-placeholder-opacity)); +} +.placeholder-green-200\/0::placeholder { + color: rgb(187 247 208 / 0); +} +.placeholder-green-200\/10::placeholder { + color: rgb(187 247 208 / 0.1); +} +.placeholder-green-200\/100::placeholder { + color: rgb(187 247 208 / 1); +} +.placeholder-green-200\/20::placeholder { + color: rgb(187 247 208 / 0.2); +} +.placeholder-green-200\/25::placeholder { + color: rgb(187 247 208 / 0.25); +} +.placeholder-green-200\/30::placeholder { + color: rgb(187 247 208 / 0.3); +} +.placeholder-green-200\/40::placeholder { + color: rgb(187 247 208 / 0.4); +} +.placeholder-green-200\/5::placeholder { + color: rgb(187 247 208 / 0.05); +} +.placeholder-green-200\/50::placeholder { + color: rgb(187 247 208 / 0.5); +} +.placeholder-green-200\/60::placeholder { + color: rgb(187 247 208 / 0.6); +} +.placeholder-green-200\/70::placeholder { + color: rgb(187 247 208 / 0.7); +} +.placeholder-green-200\/75::placeholder { + color: rgb(187 247 208 / 0.75); +} +.placeholder-green-200\/80::placeholder { + color: rgb(187 247 208 / 0.8); +} +.placeholder-green-200\/90::placeholder { + color: rgb(187 247 208 / 0.9); +} +.placeholder-green-200\/95::placeholder { + color: rgb(187 247 208 / 0.95); +} +.placeholder-green-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(134 239 172 / var(--tw-placeholder-opacity)); +} +.placeholder-green-300\/0::placeholder { + color: rgb(134 239 172 / 0); +} +.placeholder-green-300\/10::placeholder { + color: rgb(134 239 172 / 0.1); +} +.placeholder-green-300\/100::placeholder { + color: rgb(134 239 172 / 1); +} +.placeholder-green-300\/20::placeholder { + color: rgb(134 239 172 / 0.2); +} +.placeholder-green-300\/25::placeholder { + color: rgb(134 239 172 / 0.25); +} +.placeholder-green-300\/30::placeholder { + color: rgb(134 239 172 / 0.3); +} +.placeholder-green-300\/40::placeholder { + color: rgb(134 239 172 / 0.4); +} +.placeholder-green-300\/5::placeholder { + color: rgb(134 239 172 / 0.05); +} +.placeholder-green-300\/50::placeholder { + color: rgb(134 239 172 / 0.5); +} +.placeholder-green-300\/60::placeholder { + color: rgb(134 239 172 / 0.6); +} +.placeholder-green-300\/70::placeholder { + color: rgb(134 239 172 / 0.7); +} +.placeholder-green-300\/75::placeholder { + color: rgb(134 239 172 / 0.75); +} +.placeholder-green-300\/80::placeholder { + color: rgb(134 239 172 / 0.8); +} +.placeholder-green-300\/90::placeholder { + color: rgb(134 239 172 / 0.9); +} +.placeholder-green-300\/95::placeholder { + color: rgb(134 239 172 / 0.95); +} +.placeholder-green-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(74 222 128 / var(--tw-placeholder-opacity)); +} +.placeholder-green-400\/0::placeholder { + color: rgb(74 222 128 / 0); +} +.placeholder-green-400\/10::placeholder { + color: rgb(74 222 128 / 0.1); +} +.placeholder-green-400\/100::placeholder { + color: rgb(74 222 128 / 1); +} +.placeholder-green-400\/20::placeholder { + color: rgb(74 222 128 / 0.2); +} +.placeholder-green-400\/25::placeholder { + color: rgb(74 222 128 / 0.25); +} +.placeholder-green-400\/30::placeholder { + color: rgb(74 222 128 / 0.3); +} +.placeholder-green-400\/40::placeholder { + color: rgb(74 222 128 / 0.4); +} +.placeholder-green-400\/5::placeholder { + color: rgb(74 222 128 / 0.05); +} +.placeholder-green-400\/50::placeholder { + color: rgb(74 222 128 / 0.5); +} +.placeholder-green-400\/60::placeholder { + color: rgb(74 222 128 / 0.6); +} +.placeholder-green-400\/70::placeholder { + color: rgb(74 222 128 / 0.7); +} +.placeholder-green-400\/75::placeholder { + color: rgb(74 222 128 / 0.75); +} +.placeholder-green-400\/80::placeholder { + color: rgb(74 222 128 / 0.8); +} +.placeholder-green-400\/90::placeholder { + color: rgb(74 222 128 / 0.9); +} +.placeholder-green-400\/95::placeholder { + color: rgb(74 222 128 / 0.95); +} +.placeholder-green-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(240 253 244 / var(--tw-placeholder-opacity)); +} +.placeholder-green-50\/0::placeholder { + color: rgb(240 253 244 / 0); +} +.placeholder-green-50\/10::placeholder { + color: rgb(240 253 244 / 0.1); +} +.placeholder-green-50\/100::placeholder { + color: rgb(240 253 244 / 1); +} +.placeholder-green-50\/20::placeholder { + color: rgb(240 253 244 / 0.2); +} +.placeholder-green-50\/25::placeholder { + color: rgb(240 253 244 / 0.25); +} +.placeholder-green-50\/30::placeholder { + color: rgb(240 253 244 / 0.3); +} +.placeholder-green-50\/40::placeholder { + color: rgb(240 253 244 / 0.4); +} +.placeholder-green-50\/5::placeholder { + color: rgb(240 253 244 / 0.05); +} +.placeholder-green-50\/50::placeholder { + color: rgb(240 253 244 / 0.5); +} +.placeholder-green-50\/60::placeholder { + color: rgb(240 253 244 / 0.6); +} +.placeholder-green-50\/70::placeholder { + color: rgb(240 253 244 / 0.7); +} +.placeholder-green-50\/75::placeholder { + color: rgb(240 253 244 / 0.75); +} +.placeholder-green-50\/80::placeholder { + color: rgb(240 253 244 / 0.8); +} +.placeholder-green-50\/90::placeholder { + color: rgb(240 253 244 / 0.9); +} +.placeholder-green-50\/95::placeholder { + color: rgb(240 253 244 / 0.95); +} +.placeholder-green-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(34 197 94 / var(--tw-placeholder-opacity)); +} +.placeholder-green-500\/0::placeholder { + color: rgb(34 197 94 / 0); +} +.placeholder-green-500\/10::placeholder { + color: rgb(34 197 94 / 0.1); +} +.placeholder-green-500\/100::placeholder { + color: rgb(34 197 94 / 1); +} +.placeholder-green-500\/20::placeholder { + color: rgb(34 197 94 / 0.2); +} +.placeholder-green-500\/25::placeholder { + color: rgb(34 197 94 / 0.25); +} +.placeholder-green-500\/30::placeholder { + color: rgb(34 197 94 / 0.3); +} +.placeholder-green-500\/40::placeholder { + color: rgb(34 197 94 / 0.4); +} +.placeholder-green-500\/5::placeholder { + color: rgb(34 197 94 / 0.05); +} +.placeholder-green-500\/50::placeholder { + color: rgb(34 197 94 / 0.5); +} +.placeholder-green-500\/60::placeholder { + color: rgb(34 197 94 / 0.6); +} +.placeholder-green-500\/70::placeholder { + color: rgb(34 197 94 / 0.7); +} +.placeholder-green-500\/75::placeholder { + color: rgb(34 197 94 / 0.75); +} +.placeholder-green-500\/80::placeholder { + color: rgb(34 197 94 / 0.8); +} +.placeholder-green-500\/90::placeholder { + color: rgb(34 197 94 / 0.9); +} +.placeholder-green-500\/95::placeholder { + color: rgb(34 197 94 / 0.95); +} +.placeholder-green-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(22 163 74 / var(--tw-placeholder-opacity)); +} +.placeholder-green-600\/0::placeholder { + color: rgb(22 163 74 / 0); +} +.placeholder-green-600\/10::placeholder { + color: rgb(22 163 74 / 0.1); +} +.placeholder-green-600\/100::placeholder { + color: rgb(22 163 74 / 1); +} +.placeholder-green-600\/20::placeholder { + color: rgb(22 163 74 / 0.2); +} +.placeholder-green-600\/25::placeholder { + color: rgb(22 163 74 / 0.25); +} +.placeholder-green-600\/30::placeholder { + color: rgb(22 163 74 / 0.3); +} +.placeholder-green-600\/40::placeholder { + color: rgb(22 163 74 / 0.4); +} +.placeholder-green-600\/5::placeholder { + color: rgb(22 163 74 / 0.05); +} +.placeholder-green-600\/50::placeholder { + color: rgb(22 163 74 / 0.5); +} +.placeholder-green-600\/60::placeholder { + color: rgb(22 163 74 / 0.6); +} +.placeholder-green-600\/70::placeholder { + color: rgb(22 163 74 / 0.7); +} +.placeholder-green-600\/75::placeholder { + color: rgb(22 163 74 / 0.75); +} +.placeholder-green-600\/80::placeholder { + color: rgb(22 163 74 / 0.8); +} +.placeholder-green-600\/90::placeholder { + color: rgb(22 163 74 / 0.9); +} +.placeholder-green-600\/95::placeholder { + color: rgb(22 163 74 / 0.95); +} +.placeholder-green-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(21 128 61 / var(--tw-placeholder-opacity)); +} +.placeholder-green-700\/0::placeholder { + color: rgb(21 128 61 / 0); +} +.placeholder-green-700\/10::placeholder { + color: rgb(21 128 61 / 0.1); +} +.placeholder-green-700\/100::placeholder { + color: rgb(21 128 61 / 1); +} +.placeholder-green-700\/20::placeholder { + color: rgb(21 128 61 / 0.2); +} +.placeholder-green-700\/25::placeholder { + color: rgb(21 128 61 / 0.25); +} +.placeholder-green-700\/30::placeholder { + color: rgb(21 128 61 / 0.3); +} +.placeholder-green-700\/40::placeholder { + color: rgb(21 128 61 / 0.4); +} +.placeholder-green-700\/5::placeholder { + color: rgb(21 128 61 / 0.05); +} +.placeholder-green-700\/50::placeholder { + color: rgb(21 128 61 / 0.5); +} +.placeholder-green-700\/60::placeholder { + color: rgb(21 128 61 / 0.6); +} +.placeholder-green-700\/70::placeholder { + color: rgb(21 128 61 / 0.7); +} +.placeholder-green-700\/75::placeholder { + color: rgb(21 128 61 / 0.75); +} +.placeholder-green-700\/80::placeholder { + color: rgb(21 128 61 / 0.8); +} +.placeholder-green-700\/90::placeholder { + color: rgb(21 128 61 / 0.9); +} +.placeholder-green-700\/95::placeholder { + color: rgb(21 128 61 / 0.95); +} +.placeholder-green-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(22 101 52 / var(--tw-placeholder-opacity)); +} +.placeholder-green-800\/0::placeholder { + color: rgb(22 101 52 / 0); +} +.placeholder-green-800\/10::placeholder { + color: rgb(22 101 52 / 0.1); +} +.placeholder-green-800\/100::placeholder { + color: rgb(22 101 52 / 1); +} +.placeholder-green-800\/20::placeholder { + color: rgb(22 101 52 / 0.2); +} +.placeholder-green-800\/25::placeholder { + color: rgb(22 101 52 / 0.25); +} +.placeholder-green-800\/30::placeholder { + color: rgb(22 101 52 / 0.3); +} +.placeholder-green-800\/40::placeholder { + color: rgb(22 101 52 / 0.4); +} +.placeholder-green-800\/5::placeholder { + color: rgb(22 101 52 / 0.05); +} +.placeholder-green-800\/50::placeholder { + color: rgb(22 101 52 / 0.5); +} +.placeholder-green-800\/60::placeholder { + color: rgb(22 101 52 / 0.6); +} +.placeholder-green-800\/70::placeholder { + color: rgb(22 101 52 / 0.7); +} +.placeholder-green-800\/75::placeholder { + color: rgb(22 101 52 / 0.75); +} +.placeholder-green-800\/80::placeholder { + color: rgb(22 101 52 / 0.8); +} +.placeholder-green-800\/90::placeholder { + color: rgb(22 101 52 / 0.9); +} +.placeholder-green-800\/95::placeholder { + color: rgb(22 101 52 / 0.95); +} +.placeholder-green-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(20 83 45 / var(--tw-placeholder-opacity)); +} +.placeholder-green-900\/0::placeholder { + color: rgb(20 83 45 / 0); +} +.placeholder-green-900\/10::placeholder { + color: rgb(20 83 45 / 0.1); +} +.placeholder-green-900\/100::placeholder { + color: rgb(20 83 45 / 1); +} +.placeholder-green-900\/20::placeholder { + color: rgb(20 83 45 / 0.2); +} +.placeholder-green-900\/25::placeholder { + color: rgb(20 83 45 / 0.25); +} +.placeholder-green-900\/30::placeholder { + color: rgb(20 83 45 / 0.3); +} +.placeholder-green-900\/40::placeholder { + color: rgb(20 83 45 / 0.4); +} +.placeholder-green-900\/5::placeholder { + color: rgb(20 83 45 / 0.05); +} +.placeholder-green-900\/50::placeholder { + color: rgb(20 83 45 / 0.5); +} +.placeholder-green-900\/60::placeholder { + color: rgb(20 83 45 / 0.6); +} +.placeholder-green-900\/70::placeholder { + color: rgb(20 83 45 / 0.7); +} +.placeholder-green-900\/75::placeholder { + color: rgb(20 83 45 / 0.75); +} +.placeholder-green-900\/80::placeholder { + color: rgb(20 83 45 / 0.8); +} +.placeholder-green-900\/90::placeholder { + color: rgb(20 83 45 / 0.9); +} +.placeholder-green-900\/95::placeholder { + color: rgb(20 83 45 / 0.95); +} +.placeholder-indigo-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(224 231 255 / var(--tw-placeholder-opacity)); +} +.placeholder-indigo-100\/0::placeholder { + color: rgb(224 231 255 / 0); +} +.placeholder-indigo-100\/10::placeholder { + color: rgb(224 231 255 / 0.1); +} +.placeholder-indigo-100\/100::placeholder { + color: rgb(224 231 255 / 1); +} +.placeholder-indigo-100\/20::placeholder { + color: rgb(224 231 255 / 0.2); +} +.placeholder-indigo-100\/25::placeholder { + color: rgb(224 231 255 / 0.25); +} +.placeholder-indigo-100\/30::placeholder { + color: rgb(224 231 255 / 0.3); +} +.placeholder-indigo-100\/40::placeholder { + color: rgb(224 231 255 / 0.4); +} +.placeholder-indigo-100\/5::placeholder { + color: rgb(224 231 255 / 0.05); +} +.placeholder-indigo-100\/50::placeholder { + color: rgb(224 231 255 / 0.5); +} +.placeholder-indigo-100\/60::placeholder { + color: rgb(224 231 255 / 0.6); +} +.placeholder-indigo-100\/70::placeholder { + color: rgb(224 231 255 / 0.7); +} +.placeholder-indigo-100\/75::placeholder { + color: rgb(224 231 255 / 0.75); +} +.placeholder-indigo-100\/80::placeholder { + color: rgb(224 231 255 / 0.8); +} +.placeholder-indigo-100\/90::placeholder { + color: rgb(224 231 255 / 0.9); +} +.placeholder-indigo-100\/95::placeholder { + color: rgb(224 231 255 / 0.95); +} +.placeholder-indigo-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(199 210 254 / var(--tw-placeholder-opacity)); +} +.placeholder-indigo-200\/0::placeholder { + color: rgb(199 210 254 / 0); +} +.placeholder-indigo-200\/10::placeholder { + color: rgb(199 210 254 / 0.1); +} +.placeholder-indigo-200\/100::placeholder { + color: rgb(199 210 254 / 1); +} +.placeholder-indigo-200\/20::placeholder { + color: rgb(199 210 254 / 0.2); +} +.placeholder-indigo-200\/25::placeholder { + color: rgb(199 210 254 / 0.25); +} +.placeholder-indigo-200\/30::placeholder { + color: rgb(199 210 254 / 0.3); +} +.placeholder-indigo-200\/40::placeholder { + color: rgb(199 210 254 / 0.4); +} +.placeholder-indigo-200\/5::placeholder { + color: rgb(199 210 254 / 0.05); +} +.placeholder-indigo-200\/50::placeholder { + color: rgb(199 210 254 / 0.5); +} +.placeholder-indigo-200\/60::placeholder { + color: rgb(199 210 254 / 0.6); +} +.placeholder-indigo-200\/70::placeholder { + color: rgb(199 210 254 / 0.7); +} +.placeholder-indigo-200\/75::placeholder { + color: rgb(199 210 254 / 0.75); +} +.placeholder-indigo-200\/80::placeholder { + color: rgb(199 210 254 / 0.8); +} +.placeholder-indigo-200\/90::placeholder { + color: rgb(199 210 254 / 0.9); +} +.placeholder-indigo-200\/95::placeholder { + color: rgb(199 210 254 / 0.95); +} +.placeholder-indigo-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(165 180 252 / var(--tw-placeholder-opacity)); +} +.placeholder-indigo-300\/0::placeholder { + color: rgb(165 180 252 / 0); +} +.placeholder-indigo-300\/10::placeholder { + color: rgb(165 180 252 / 0.1); +} +.placeholder-indigo-300\/100::placeholder { + color: rgb(165 180 252 / 1); +} +.placeholder-indigo-300\/20::placeholder { + color: rgb(165 180 252 / 0.2); +} +.placeholder-indigo-300\/25::placeholder { + color: rgb(165 180 252 / 0.25); +} +.placeholder-indigo-300\/30::placeholder { + color: rgb(165 180 252 / 0.3); +} +.placeholder-indigo-300\/40::placeholder { + color: rgb(165 180 252 / 0.4); +} +.placeholder-indigo-300\/5::placeholder { + color: rgb(165 180 252 / 0.05); +} +.placeholder-indigo-300\/50::placeholder { + color: rgb(165 180 252 / 0.5); +} +.placeholder-indigo-300\/60::placeholder { + color: rgb(165 180 252 / 0.6); +} +.placeholder-indigo-300\/70::placeholder { + color: rgb(165 180 252 / 0.7); +} +.placeholder-indigo-300\/75::placeholder { + color: rgb(165 180 252 / 0.75); +} +.placeholder-indigo-300\/80::placeholder { + color: rgb(165 180 252 / 0.8); +} +.placeholder-indigo-300\/90::placeholder { + color: rgb(165 180 252 / 0.9); +} +.placeholder-indigo-300\/95::placeholder { + color: rgb(165 180 252 / 0.95); +} +.placeholder-indigo-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(129 140 248 / var(--tw-placeholder-opacity)); +} +.placeholder-indigo-400\/0::placeholder { + color: rgb(129 140 248 / 0); +} +.placeholder-indigo-400\/10::placeholder { + color: rgb(129 140 248 / 0.1); +} +.placeholder-indigo-400\/100::placeholder { + color: rgb(129 140 248 / 1); +} +.placeholder-indigo-400\/20::placeholder { + color: rgb(129 140 248 / 0.2); +} +.placeholder-indigo-400\/25::placeholder { + color: rgb(129 140 248 / 0.25); +} +.placeholder-indigo-400\/30::placeholder { + color: rgb(129 140 248 / 0.3); +} +.placeholder-indigo-400\/40::placeholder { + color: rgb(129 140 248 / 0.4); +} +.placeholder-indigo-400\/5::placeholder { + color: rgb(129 140 248 / 0.05); +} +.placeholder-indigo-400\/50::placeholder { + color: rgb(129 140 248 / 0.5); +} +.placeholder-indigo-400\/60::placeholder { + color: rgb(129 140 248 / 0.6); +} +.placeholder-indigo-400\/70::placeholder { + color: rgb(129 140 248 / 0.7); +} +.placeholder-indigo-400\/75::placeholder { + color: rgb(129 140 248 / 0.75); +} +.placeholder-indigo-400\/80::placeholder { + color: rgb(129 140 248 / 0.8); +} +.placeholder-indigo-400\/90::placeholder { + color: rgb(129 140 248 / 0.9); +} +.placeholder-indigo-400\/95::placeholder { + color: rgb(129 140 248 / 0.95); +} +.placeholder-indigo-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(238 242 255 / var(--tw-placeholder-opacity)); +} +.placeholder-indigo-50\/0::placeholder { + color: rgb(238 242 255 / 0); +} +.placeholder-indigo-50\/10::placeholder { + color: rgb(238 242 255 / 0.1); +} +.placeholder-indigo-50\/100::placeholder { + color: rgb(238 242 255 / 1); +} +.placeholder-indigo-50\/20::placeholder { + color: rgb(238 242 255 / 0.2); +} +.placeholder-indigo-50\/25::placeholder { + color: rgb(238 242 255 / 0.25); +} +.placeholder-indigo-50\/30::placeholder { + color: rgb(238 242 255 / 0.3); +} +.placeholder-indigo-50\/40::placeholder { + color: rgb(238 242 255 / 0.4); +} +.placeholder-indigo-50\/5::placeholder { + color: rgb(238 242 255 / 0.05); +} +.placeholder-indigo-50\/50::placeholder { + color: rgb(238 242 255 / 0.5); +} +.placeholder-indigo-50\/60::placeholder { + color: rgb(238 242 255 / 0.6); +} +.placeholder-indigo-50\/70::placeholder { + color: rgb(238 242 255 / 0.7); +} +.placeholder-indigo-50\/75::placeholder { + color: rgb(238 242 255 / 0.75); +} +.placeholder-indigo-50\/80::placeholder { + color: rgb(238 242 255 / 0.8); +} +.placeholder-indigo-50\/90::placeholder { + color: rgb(238 242 255 / 0.9); +} +.placeholder-indigo-50\/95::placeholder { + color: rgb(238 242 255 / 0.95); +} +.placeholder-indigo-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(99 102 241 / var(--tw-placeholder-opacity)); +} +.placeholder-indigo-500\/0::placeholder { + color: rgb(99 102 241 / 0); +} +.placeholder-indigo-500\/10::placeholder { + color: rgb(99 102 241 / 0.1); +} +.placeholder-indigo-500\/100::placeholder { + color: rgb(99 102 241 / 1); +} +.placeholder-indigo-500\/20::placeholder { + color: rgb(99 102 241 / 0.2); +} +.placeholder-indigo-500\/25::placeholder { + color: rgb(99 102 241 / 0.25); +} +.placeholder-indigo-500\/30::placeholder { + color: rgb(99 102 241 / 0.3); +} +.placeholder-indigo-500\/40::placeholder { + color: rgb(99 102 241 / 0.4); +} +.placeholder-indigo-500\/5::placeholder { + color: rgb(99 102 241 / 0.05); +} +.placeholder-indigo-500\/50::placeholder { + color: rgb(99 102 241 / 0.5); +} +.placeholder-indigo-500\/60::placeholder { + color: rgb(99 102 241 / 0.6); +} +.placeholder-indigo-500\/70::placeholder { + color: rgb(99 102 241 / 0.7); +} +.placeholder-indigo-500\/75::placeholder { + color: rgb(99 102 241 / 0.75); +} +.placeholder-indigo-500\/80::placeholder { + color: rgb(99 102 241 / 0.8); +} +.placeholder-indigo-500\/90::placeholder { + color: rgb(99 102 241 / 0.9); +} +.placeholder-indigo-500\/95::placeholder { + color: rgb(99 102 241 / 0.95); +} +.placeholder-indigo-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(79 70 229 / var(--tw-placeholder-opacity)); +} +.placeholder-indigo-600\/0::placeholder { + color: rgb(79 70 229 / 0); +} +.placeholder-indigo-600\/10::placeholder { + color: rgb(79 70 229 / 0.1); +} +.placeholder-indigo-600\/100::placeholder { + color: rgb(79 70 229 / 1); +} +.placeholder-indigo-600\/20::placeholder { + color: rgb(79 70 229 / 0.2); +} +.placeholder-indigo-600\/25::placeholder { + color: rgb(79 70 229 / 0.25); +} +.placeholder-indigo-600\/30::placeholder { + color: rgb(79 70 229 / 0.3); +} +.placeholder-indigo-600\/40::placeholder { + color: rgb(79 70 229 / 0.4); +} +.placeholder-indigo-600\/5::placeholder { + color: rgb(79 70 229 / 0.05); +} +.placeholder-indigo-600\/50::placeholder { + color: rgb(79 70 229 / 0.5); +} +.placeholder-indigo-600\/60::placeholder { + color: rgb(79 70 229 / 0.6); +} +.placeholder-indigo-600\/70::placeholder { + color: rgb(79 70 229 / 0.7); +} +.placeholder-indigo-600\/75::placeholder { + color: rgb(79 70 229 / 0.75); +} +.placeholder-indigo-600\/80::placeholder { + color: rgb(79 70 229 / 0.8); +} +.placeholder-indigo-600\/90::placeholder { + color: rgb(79 70 229 / 0.9); +} +.placeholder-indigo-600\/95::placeholder { + color: rgb(79 70 229 / 0.95); +} +.placeholder-indigo-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(67 56 202 / var(--tw-placeholder-opacity)); +} +.placeholder-indigo-700\/0::placeholder { + color: rgb(67 56 202 / 0); +} +.placeholder-indigo-700\/10::placeholder { + color: rgb(67 56 202 / 0.1); +} +.placeholder-indigo-700\/100::placeholder { + color: rgb(67 56 202 / 1); +} +.placeholder-indigo-700\/20::placeholder { + color: rgb(67 56 202 / 0.2); +} +.placeholder-indigo-700\/25::placeholder { + color: rgb(67 56 202 / 0.25); +} +.placeholder-indigo-700\/30::placeholder { + color: rgb(67 56 202 / 0.3); +} +.placeholder-indigo-700\/40::placeholder { + color: rgb(67 56 202 / 0.4); +} +.placeholder-indigo-700\/5::placeholder { + color: rgb(67 56 202 / 0.05); +} +.placeholder-indigo-700\/50::placeholder { + color: rgb(67 56 202 / 0.5); +} +.placeholder-indigo-700\/60::placeholder { + color: rgb(67 56 202 / 0.6); +} +.placeholder-indigo-700\/70::placeholder { + color: rgb(67 56 202 / 0.7); +} +.placeholder-indigo-700\/75::placeholder { + color: rgb(67 56 202 / 0.75); +} +.placeholder-indigo-700\/80::placeholder { + color: rgb(67 56 202 / 0.8); +} +.placeholder-indigo-700\/90::placeholder { + color: rgb(67 56 202 / 0.9); +} +.placeholder-indigo-700\/95::placeholder { + color: rgb(67 56 202 / 0.95); +} +.placeholder-indigo-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(55 48 163 / var(--tw-placeholder-opacity)); +} +.placeholder-indigo-800\/0::placeholder { + color: rgb(55 48 163 / 0); +} +.placeholder-indigo-800\/10::placeholder { + color: rgb(55 48 163 / 0.1); +} +.placeholder-indigo-800\/100::placeholder { + color: rgb(55 48 163 / 1); +} +.placeholder-indigo-800\/20::placeholder { + color: rgb(55 48 163 / 0.2); +} +.placeholder-indigo-800\/25::placeholder { + color: rgb(55 48 163 / 0.25); +} +.placeholder-indigo-800\/30::placeholder { + color: rgb(55 48 163 / 0.3); +} +.placeholder-indigo-800\/40::placeholder { + color: rgb(55 48 163 / 0.4); +} +.placeholder-indigo-800\/5::placeholder { + color: rgb(55 48 163 / 0.05); +} +.placeholder-indigo-800\/50::placeholder { + color: rgb(55 48 163 / 0.5); +} +.placeholder-indigo-800\/60::placeholder { + color: rgb(55 48 163 / 0.6); +} +.placeholder-indigo-800\/70::placeholder { + color: rgb(55 48 163 / 0.7); +} +.placeholder-indigo-800\/75::placeholder { + color: rgb(55 48 163 / 0.75); +} +.placeholder-indigo-800\/80::placeholder { + color: rgb(55 48 163 / 0.8); +} +.placeholder-indigo-800\/90::placeholder { + color: rgb(55 48 163 / 0.9); +} +.placeholder-indigo-800\/95::placeholder { + color: rgb(55 48 163 / 0.95); +} +.placeholder-indigo-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(49 46 129 / var(--tw-placeholder-opacity)); +} +.placeholder-indigo-900\/0::placeholder { + color: rgb(49 46 129 / 0); +} +.placeholder-indigo-900\/10::placeholder { + color: rgb(49 46 129 / 0.1); +} +.placeholder-indigo-900\/100::placeholder { + color: rgb(49 46 129 / 1); +} +.placeholder-indigo-900\/20::placeholder { + color: rgb(49 46 129 / 0.2); +} +.placeholder-indigo-900\/25::placeholder { + color: rgb(49 46 129 / 0.25); +} +.placeholder-indigo-900\/30::placeholder { + color: rgb(49 46 129 / 0.3); +} +.placeholder-indigo-900\/40::placeholder { + color: rgb(49 46 129 / 0.4); +} +.placeholder-indigo-900\/5::placeholder { + color: rgb(49 46 129 / 0.05); +} +.placeholder-indigo-900\/50::placeholder { + color: rgb(49 46 129 / 0.5); +} +.placeholder-indigo-900\/60::placeholder { + color: rgb(49 46 129 / 0.6); +} +.placeholder-indigo-900\/70::placeholder { + color: rgb(49 46 129 / 0.7); +} +.placeholder-indigo-900\/75::placeholder { + color: rgb(49 46 129 / 0.75); +} +.placeholder-indigo-900\/80::placeholder { + color: rgb(49 46 129 / 0.8); +} +.placeholder-indigo-900\/90::placeholder { + color: rgb(49 46 129 / 0.9); +} +.placeholder-indigo-900\/95::placeholder { + color: rgb(49 46 129 / 0.95); +} +.placeholder-inherit::placeholder { + color: inherit; +} +.placeholder-intranet-at-primary::placeholder { + color: var(--intranet-at-primary); +} +.placeholder-intranet-at-secondary::placeholder { + color: var(--intranet-at-secondary); +} +.placeholder-intranet-at-tertiary::placeholder { + color: var(--intranet-at-tertiary); +} +.placeholder-lenoz-primary::placeholder { + color: var(--lenoz-primary); +} +.placeholder-lenoz-secondary::placeholder { + color: var(--lenoz-secondary); +} +.placeholder-lenoz-tertiary::placeholder { + color: var(--lenoz-tertiary); +} +.placeholder-lime-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(236 252 203 / var(--tw-placeholder-opacity)); +} +.placeholder-lime-100\/0::placeholder { + color: rgb(236 252 203 / 0); +} +.placeholder-lime-100\/10::placeholder { + color: rgb(236 252 203 / 0.1); +} +.placeholder-lime-100\/100::placeholder { + color: rgb(236 252 203 / 1); +} +.placeholder-lime-100\/20::placeholder { + color: rgb(236 252 203 / 0.2); +} +.placeholder-lime-100\/25::placeholder { + color: rgb(236 252 203 / 0.25); +} +.placeholder-lime-100\/30::placeholder { + color: rgb(236 252 203 / 0.3); +} +.placeholder-lime-100\/40::placeholder { + color: rgb(236 252 203 / 0.4); +} +.placeholder-lime-100\/5::placeholder { + color: rgb(236 252 203 / 0.05); +} +.placeholder-lime-100\/50::placeholder { + color: rgb(236 252 203 / 0.5); +} +.placeholder-lime-100\/60::placeholder { + color: rgb(236 252 203 / 0.6); +} +.placeholder-lime-100\/70::placeholder { + color: rgb(236 252 203 / 0.7); +} +.placeholder-lime-100\/75::placeholder { + color: rgb(236 252 203 / 0.75); +} +.placeholder-lime-100\/80::placeholder { + color: rgb(236 252 203 / 0.8); +} +.placeholder-lime-100\/90::placeholder { + color: rgb(236 252 203 / 0.9); +} +.placeholder-lime-100\/95::placeholder { + color: rgb(236 252 203 / 0.95); +} +.placeholder-lime-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(217 249 157 / var(--tw-placeholder-opacity)); +} +.placeholder-lime-200\/0::placeholder { + color: rgb(217 249 157 / 0); +} +.placeholder-lime-200\/10::placeholder { + color: rgb(217 249 157 / 0.1); +} +.placeholder-lime-200\/100::placeholder { + color: rgb(217 249 157 / 1); +} +.placeholder-lime-200\/20::placeholder { + color: rgb(217 249 157 / 0.2); +} +.placeholder-lime-200\/25::placeholder { + color: rgb(217 249 157 / 0.25); +} +.placeholder-lime-200\/30::placeholder { + color: rgb(217 249 157 / 0.3); +} +.placeholder-lime-200\/40::placeholder { + color: rgb(217 249 157 / 0.4); +} +.placeholder-lime-200\/5::placeholder { + color: rgb(217 249 157 / 0.05); +} +.placeholder-lime-200\/50::placeholder { + color: rgb(217 249 157 / 0.5); +} +.placeholder-lime-200\/60::placeholder { + color: rgb(217 249 157 / 0.6); +} +.placeholder-lime-200\/70::placeholder { + color: rgb(217 249 157 / 0.7); +} +.placeholder-lime-200\/75::placeholder { + color: rgb(217 249 157 / 0.75); +} +.placeholder-lime-200\/80::placeholder { + color: rgb(217 249 157 / 0.8); +} +.placeholder-lime-200\/90::placeholder { + color: rgb(217 249 157 / 0.9); +} +.placeholder-lime-200\/95::placeholder { + color: rgb(217 249 157 / 0.95); +} +.placeholder-lime-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(190 242 100 / var(--tw-placeholder-opacity)); +} +.placeholder-lime-300\/0::placeholder { + color: rgb(190 242 100 / 0); +} +.placeholder-lime-300\/10::placeholder { + color: rgb(190 242 100 / 0.1); +} +.placeholder-lime-300\/100::placeholder { + color: rgb(190 242 100 / 1); +} +.placeholder-lime-300\/20::placeholder { + color: rgb(190 242 100 / 0.2); +} +.placeholder-lime-300\/25::placeholder { + color: rgb(190 242 100 / 0.25); +} +.placeholder-lime-300\/30::placeholder { + color: rgb(190 242 100 / 0.3); +} +.placeholder-lime-300\/40::placeholder { + color: rgb(190 242 100 / 0.4); +} +.placeholder-lime-300\/5::placeholder { + color: rgb(190 242 100 / 0.05); +} +.placeholder-lime-300\/50::placeholder { + color: rgb(190 242 100 / 0.5); +} +.placeholder-lime-300\/60::placeholder { + color: rgb(190 242 100 / 0.6); +} +.placeholder-lime-300\/70::placeholder { + color: rgb(190 242 100 / 0.7); +} +.placeholder-lime-300\/75::placeholder { + color: rgb(190 242 100 / 0.75); +} +.placeholder-lime-300\/80::placeholder { + color: rgb(190 242 100 / 0.8); +} +.placeholder-lime-300\/90::placeholder { + color: rgb(190 242 100 / 0.9); +} +.placeholder-lime-300\/95::placeholder { + color: rgb(190 242 100 / 0.95); +} +.placeholder-lime-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(163 230 53 / var(--tw-placeholder-opacity)); +} +.placeholder-lime-400\/0::placeholder { + color: rgb(163 230 53 / 0); +} +.placeholder-lime-400\/10::placeholder { + color: rgb(163 230 53 / 0.1); +} +.placeholder-lime-400\/100::placeholder { + color: rgb(163 230 53 / 1); +} +.placeholder-lime-400\/20::placeholder { + color: rgb(163 230 53 / 0.2); +} +.placeholder-lime-400\/25::placeholder { + color: rgb(163 230 53 / 0.25); +} +.placeholder-lime-400\/30::placeholder { + color: rgb(163 230 53 / 0.3); +} +.placeholder-lime-400\/40::placeholder { + color: rgb(163 230 53 / 0.4); +} +.placeholder-lime-400\/5::placeholder { + color: rgb(163 230 53 / 0.05); +} +.placeholder-lime-400\/50::placeholder { + color: rgb(163 230 53 / 0.5); +} +.placeholder-lime-400\/60::placeholder { + color: rgb(163 230 53 / 0.6); +} +.placeholder-lime-400\/70::placeholder { + color: rgb(163 230 53 / 0.7); +} +.placeholder-lime-400\/75::placeholder { + color: rgb(163 230 53 / 0.75); +} +.placeholder-lime-400\/80::placeholder { + color: rgb(163 230 53 / 0.8); +} +.placeholder-lime-400\/90::placeholder { + color: rgb(163 230 53 / 0.9); +} +.placeholder-lime-400\/95::placeholder { + color: rgb(163 230 53 / 0.95); +} +.placeholder-lime-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(247 254 231 / var(--tw-placeholder-opacity)); +} +.placeholder-lime-50\/0::placeholder { + color: rgb(247 254 231 / 0); +} +.placeholder-lime-50\/10::placeholder { + color: rgb(247 254 231 / 0.1); +} +.placeholder-lime-50\/100::placeholder { + color: rgb(247 254 231 / 1); +} +.placeholder-lime-50\/20::placeholder { + color: rgb(247 254 231 / 0.2); +} +.placeholder-lime-50\/25::placeholder { + color: rgb(247 254 231 / 0.25); +} +.placeholder-lime-50\/30::placeholder { + color: rgb(247 254 231 / 0.3); +} +.placeholder-lime-50\/40::placeholder { + color: rgb(247 254 231 / 0.4); +} +.placeholder-lime-50\/5::placeholder { + color: rgb(247 254 231 / 0.05); +} +.placeholder-lime-50\/50::placeholder { + color: rgb(247 254 231 / 0.5); +} +.placeholder-lime-50\/60::placeholder { + color: rgb(247 254 231 / 0.6); +} +.placeholder-lime-50\/70::placeholder { + color: rgb(247 254 231 / 0.7); +} +.placeholder-lime-50\/75::placeholder { + color: rgb(247 254 231 / 0.75); +} +.placeholder-lime-50\/80::placeholder { + color: rgb(247 254 231 / 0.8); +} +.placeholder-lime-50\/90::placeholder { + color: rgb(247 254 231 / 0.9); +} +.placeholder-lime-50\/95::placeholder { + color: rgb(247 254 231 / 0.95); +} +.placeholder-lime-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(132 204 22 / var(--tw-placeholder-opacity)); +} +.placeholder-lime-500\/0::placeholder { + color: rgb(132 204 22 / 0); +} +.placeholder-lime-500\/10::placeholder { + color: rgb(132 204 22 / 0.1); +} +.placeholder-lime-500\/100::placeholder { + color: rgb(132 204 22 / 1); +} +.placeholder-lime-500\/20::placeholder { + color: rgb(132 204 22 / 0.2); +} +.placeholder-lime-500\/25::placeholder { + color: rgb(132 204 22 / 0.25); +} +.placeholder-lime-500\/30::placeholder { + color: rgb(132 204 22 / 0.3); +} +.placeholder-lime-500\/40::placeholder { + color: rgb(132 204 22 / 0.4); +} +.placeholder-lime-500\/5::placeholder { + color: rgb(132 204 22 / 0.05); +} +.placeholder-lime-500\/50::placeholder { + color: rgb(132 204 22 / 0.5); +} +.placeholder-lime-500\/60::placeholder { + color: rgb(132 204 22 / 0.6); +} +.placeholder-lime-500\/70::placeholder { + color: rgb(132 204 22 / 0.7); +} +.placeholder-lime-500\/75::placeholder { + color: rgb(132 204 22 / 0.75); +} +.placeholder-lime-500\/80::placeholder { + color: rgb(132 204 22 / 0.8); +} +.placeholder-lime-500\/90::placeholder { + color: rgb(132 204 22 / 0.9); +} +.placeholder-lime-500\/95::placeholder { + color: rgb(132 204 22 / 0.95); +} +.placeholder-lime-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(101 163 13 / var(--tw-placeholder-opacity)); +} +.placeholder-lime-600\/0::placeholder { + color: rgb(101 163 13 / 0); +} +.placeholder-lime-600\/10::placeholder { + color: rgb(101 163 13 / 0.1); +} +.placeholder-lime-600\/100::placeholder { + color: rgb(101 163 13 / 1); +} +.placeholder-lime-600\/20::placeholder { + color: rgb(101 163 13 / 0.2); +} +.placeholder-lime-600\/25::placeholder { + color: rgb(101 163 13 / 0.25); +} +.placeholder-lime-600\/30::placeholder { + color: rgb(101 163 13 / 0.3); +} +.placeholder-lime-600\/40::placeholder { + color: rgb(101 163 13 / 0.4); +} +.placeholder-lime-600\/5::placeholder { + color: rgb(101 163 13 / 0.05); +} +.placeholder-lime-600\/50::placeholder { + color: rgb(101 163 13 / 0.5); +} +.placeholder-lime-600\/60::placeholder { + color: rgb(101 163 13 / 0.6); +} +.placeholder-lime-600\/70::placeholder { + color: rgb(101 163 13 / 0.7); +} +.placeholder-lime-600\/75::placeholder { + color: rgb(101 163 13 / 0.75); +} +.placeholder-lime-600\/80::placeholder { + color: rgb(101 163 13 / 0.8); +} +.placeholder-lime-600\/90::placeholder { + color: rgb(101 163 13 / 0.9); +} +.placeholder-lime-600\/95::placeholder { + color: rgb(101 163 13 / 0.95); +} +.placeholder-lime-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(77 124 15 / var(--tw-placeholder-opacity)); +} +.placeholder-lime-700\/0::placeholder { + color: rgb(77 124 15 / 0); +} +.placeholder-lime-700\/10::placeholder { + color: rgb(77 124 15 / 0.1); +} +.placeholder-lime-700\/100::placeholder { + color: rgb(77 124 15 / 1); +} +.placeholder-lime-700\/20::placeholder { + color: rgb(77 124 15 / 0.2); +} +.placeholder-lime-700\/25::placeholder { + color: rgb(77 124 15 / 0.25); +} +.placeholder-lime-700\/30::placeholder { + color: rgb(77 124 15 / 0.3); +} +.placeholder-lime-700\/40::placeholder { + color: rgb(77 124 15 / 0.4); +} +.placeholder-lime-700\/5::placeholder { + color: rgb(77 124 15 / 0.05); +} +.placeholder-lime-700\/50::placeholder { + color: rgb(77 124 15 / 0.5); +} +.placeholder-lime-700\/60::placeholder { + color: rgb(77 124 15 / 0.6); +} +.placeholder-lime-700\/70::placeholder { + color: rgb(77 124 15 / 0.7); +} +.placeholder-lime-700\/75::placeholder { + color: rgb(77 124 15 / 0.75); +} +.placeholder-lime-700\/80::placeholder { + color: rgb(77 124 15 / 0.8); +} +.placeholder-lime-700\/90::placeholder { + color: rgb(77 124 15 / 0.9); +} +.placeholder-lime-700\/95::placeholder { + color: rgb(77 124 15 / 0.95); +} +.placeholder-lime-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(63 98 18 / var(--tw-placeholder-opacity)); +} +.placeholder-lime-800\/0::placeholder { + color: rgb(63 98 18 / 0); +} +.placeholder-lime-800\/10::placeholder { + color: rgb(63 98 18 / 0.1); +} +.placeholder-lime-800\/100::placeholder { + color: rgb(63 98 18 / 1); +} +.placeholder-lime-800\/20::placeholder { + color: rgb(63 98 18 / 0.2); +} +.placeholder-lime-800\/25::placeholder { + color: rgb(63 98 18 / 0.25); +} +.placeholder-lime-800\/30::placeholder { + color: rgb(63 98 18 / 0.3); +} +.placeholder-lime-800\/40::placeholder { + color: rgb(63 98 18 / 0.4); +} +.placeholder-lime-800\/5::placeholder { + color: rgb(63 98 18 / 0.05); +} +.placeholder-lime-800\/50::placeholder { + color: rgb(63 98 18 / 0.5); +} +.placeholder-lime-800\/60::placeholder { + color: rgb(63 98 18 / 0.6); +} +.placeholder-lime-800\/70::placeholder { + color: rgb(63 98 18 / 0.7); +} +.placeholder-lime-800\/75::placeholder { + color: rgb(63 98 18 / 0.75); +} +.placeholder-lime-800\/80::placeholder { + color: rgb(63 98 18 / 0.8); +} +.placeholder-lime-800\/90::placeholder { + color: rgb(63 98 18 / 0.9); +} +.placeholder-lime-800\/95::placeholder { + color: rgb(63 98 18 / 0.95); +} +.placeholder-lime-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(54 83 20 / var(--tw-placeholder-opacity)); +} +.placeholder-lime-900\/0::placeholder { + color: rgb(54 83 20 / 0); +} +.placeholder-lime-900\/10::placeholder { + color: rgb(54 83 20 / 0.1); +} +.placeholder-lime-900\/100::placeholder { + color: rgb(54 83 20 / 1); +} +.placeholder-lime-900\/20::placeholder { + color: rgb(54 83 20 / 0.2); +} +.placeholder-lime-900\/25::placeholder { + color: rgb(54 83 20 / 0.25); +} +.placeholder-lime-900\/30::placeholder { + color: rgb(54 83 20 / 0.3); +} +.placeholder-lime-900\/40::placeholder { + color: rgb(54 83 20 / 0.4); +} +.placeholder-lime-900\/5::placeholder { + color: rgb(54 83 20 / 0.05); +} +.placeholder-lime-900\/50::placeholder { + color: rgb(54 83 20 / 0.5); +} +.placeholder-lime-900\/60::placeholder { + color: rgb(54 83 20 / 0.6); +} +.placeholder-lime-900\/70::placeholder { + color: rgb(54 83 20 / 0.7); +} +.placeholder-lime-900\/75::placeholder { + color: rgb(54 83 20 / 0.75); +} +.placeholder-lime-900\/80::placeholder { + color: rgb(54 83 20 / 0.8); +} +.placeholder-lime-900\/90::placeholder { + color: rgb(54 83 20 / 0.9); +} +.placeholder-lime-900\/95::placeholder { + color: rgb(54 83 20 / 0.95); +} +.placeholder-lintgen-primary::placeholder { + color: var(--lintgen-primary); +} +.placeholder-lintgen-secondary::placeholder { + color: var(--lintgen-secondary); +} +.placeholder-lintgen-tertiary::placeholder { + color: var(--lintgen-tertiary); +} +.placeholder-logement-primary::placeholder { + color: var(--logement-primary); +} +.placeholder-logement-secondary::placeholder { + color: var(--logement-secondary); +} +.placeholder-logement-tertiary::placeholder { + color: var(--logement-tertiary); +} +.placeholder-main-primary::placeholder { + color: var(--main-primary); +} +.placeholder-main-secondary::placeholder { + color: var(--main-secondary); +} +.placeholder-main-tertiary::placeholder { + color: var(--main-tertiary); +} +.placeholder-municipalities-primary::placeholder { + color: var(--municipalities-primary); +} +.placeholder-municipalities-secondary::placeholder { + color: var(--municipalities-secondary); +} +.placeholder-municipalities-tertiary::placeholder { + color: var(--municipalities-tertiary); +} +.placeholder-neutral-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(245 245 245 / var(--tw-placeholder-opacity)); +} +.placeholder-neutral-100\/0::placeholder { + color: rgb(245 245 245 / 0); +} +.placeholder-neutral-100\/10::placeholder { + color: rgb(245 245 245 / 0.1); +} +.placeholder-neutral-100\/100::placeholder { + color: rgb(245 245 245 / 1); +} +.placeholder-neutral-100\/20::placeholder { + color: rgb(245 245 245 / 0.2); +} +.placeholder-neutral-100\/25::placeholder { + color: rgb(245 245 245 / 0.25); +} +.placeholder-neutral-100\/30::placeholder { + color: rgb(245 245 245 / 0.3); +} +.placeholder-neutral-100\/40::placeholder { + color: rgb(245 245 245 / 0.4); +} +.placeholder-neutral-100\/5::placeholder { + color: rgb(245 245 245 / 0.05); +} +.placeholder-neutral-100\/50::placeholder { + color: rgb(245 245 245 / 0.5); +} +.placeholder-neutral-100\/60::placeholder { + color: rgb(245 245 245 / 0.6); +} +.placeholder-neutral-100\/70::placeholder { + color: rgb(245 245 245 / 0.7); +} +.placeholder-neutral-100\/75::placeholder { + color: rgb(245 245 245 / 0.75); +} +.placeholder-neutral-100\/80::placeholder { + color: rgb(245 245 245 / 0.8); +} +.placeholder-neutral-100\/90::placeholder { + color: rgb(245 245 245 / 0.9); +} +.placeholder-neutral-100\/95::placeholder { + color: rgb(245 245 245 / 0.95); +} +.placeholder-neutral-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(229 229 229 / var(--tw-placeholder-opacity)); +} +.placeholder-neutral-200\/0::placeholder { + color: rgb(229 229 229 / 0); +} +.placeholder-neutral-200\/10::placeholder { + color: rgb(229 229 229 / 0.1); +} +.placeholder-neutral-200\/100::placeholder { + color: rgb(229 229 229 / 1); +} +.placeholder-neutral-200\/20::placeholder { + color: rgb(229 229 229 / 0.2); +} +.placeholder-neutral-200\/25::placeholder { + color: rgb(229 229 229 / 0.25); +} +.placeholder-neutral-200\/30::placeholder { + color: rgb(229 229 229 / 0.3); +} +.placeholder-neutral-200\/40::placeholder { + color: rgb(229 229 229 / 0.4); +} +.placeholder-neutral-200\/5::placeholder { + color: rgb(229 229 229 / 0.05); +} +.placeholder-neutral-200\/50::placeholder { + color: rgb(229 229 229 / 0.5); +} +.placeholder-neutral-200\/60::placeholder { + color: rgb(229 229 229 / 0.6); +} +.placeholder-neutral-200\/70::placeholder { + color: rgb(229 229 229 / 0.7); +} +.placeholder-neutral-200\/75::placeholder { + color: rgb(229 229 229 / 0.75); +} +.placeholder-neutral-200\/80::placeholder { + color: rgb(229 229 229 / 0.8); +} +.placeholder-neutral-200\/90::placeholder { + color: rgb(229 229 229 / 0.9); +} +.placeholder-neutral-200\/95::placeholder { + color: rgb(229 229 229 / 0.95); +} +.placeholder-neutral-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(212 212 212 / var(--tw-placeholder-opacity)); +} +.placeholder-neutral-300\/0::placeholder { + color: rgb(212 212 212 / 0); +} +.placeholder-neutral-300\/10::placeholder { + color: rgb(212 212 212 / 0.1); +} +.placeholder-neutral-300\/100::placeholder { + color: rgb(212 212 212 / 1); +} +.placeholder-neutral-300\/20::placeholder { + color: rgb(212 212 212 / 0.2); +} +.placeholder-neutral-300\/25::placeholder { + color: rgb(212 212 212 / 0.25); +} +.placeholder-neutral-300\/30::placeholder { + color: rgb(212 212 212 / 0.3); +} +.placeholder-neutral-300\/40::placeholder { + color: rgb(212 212 212 / 0.4); +} +.placeholder-neutral-300\/5::placeholder { + color: rgb(212 212 212 / 0.05); +} +.placeholder-neutral-300\/50::placeholder { + color: rgb(212 212 212 / 0.5); +} +.placeholder-neutral-300\/60::placeholder { + color: rgb(212 212 212 / 0.6); +} +.placeholder-neutral-300\/70::placeholder { + color: rgb(212 212 212 / 0.7); +} +.placeholder-neutral-300\/75::placeholder { + color: rgb(212 212 212 / 0.75); +} +.placeholder-neutral-300\/80::placeholder { + color: rgb(212 212 212 / 0.8); +} +.placeholder-neutral-300\/90::placeholder { + color: rgb(212 212 212 / 0.9); +} +.placeholder-neutral-300\/95::placeholder { + color: rgb(212 212 212 / 0.95); +} +.placeholder-neutral-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(163 163 163 / var(--tw-placeholder-opacity)); +} +.placeholder-neutral-400\/0::placeholder { + color: rgb(163 163 163 / 0); +} +.placeholder-neutral-400\/10::placeholder { + color: rgb(163 163 163 / 0.1); +} +.placeholder-neutral-400\/100::placeholder { + color: rgb(163 163 163 / 1); +} +.placeholder-neutral-400\/20::placeholder { + color: rgb(163 163 163 / 0.2); +} +.placeholder-neutral-400\/25::placeholder { + color: rgb(163 163 163 / 0.25); +} +.placeholder-neutral-400\/30::placeholder { + color: rgb(163 163 163 / 0.3); +} +.placeholder-neutral-400\/40::placeholder { + color: rgb(163 163 163 / 0.4); +} +.placeholder-neutral-400\/5::placeholder { + color: rgb(163 163 163 / 0.05); +} +.placeholder-neutral-400\/50::placeholder { + color: rgb(163 163 163 / 0.5); +} +.placeholder-neutral-400\/60::placeholder { + color: rgb(163 163 163 / 0.6); +} +.placeholder-neutral-400\/70::placeholder { + color: rgb(163 163 163 / 0.7); +} +.placeholder-neutral-400\/75::placeholder { + color: rgb(163 163 163 / 0.75); +} +.placeholder-neutral-400\/80::placeholder { + color: rgb(163 163 163 / 0.8); +} +.placeholder-neutral-400\/90::placeholder { + color: rgb(163 163 163 / 0.9); +} +.placeholder-neutral-400\/95::placeholder { + color: rgb(163 163 163 / 0.95); +} +.placeholder-neutral-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(250 250 250 / var(--tw-placeholder-opacity)); +} +.placeholder-neutral-50\/0::placeholder { + color: rgb(250 250 250 / 0); +} +.placeholder-neutral-50\/10::placeholder { + color: rgb(250 250 250 / 0.1); +} +.placeholder-neutral-50\/100::placeholder { + color: rgb(250 250 250 / 1); +} +.placeholder-neutral-50\/20::placeholder { + color: rgb(250 250 250 / 0.2); +} +.placeholder-neutral-50\/25::placeholder { + color: rgb(250 250 250 / 0.25); +} +.placeholder-neutral-50\/30::placeholder { + color: rgb(250 250 250 / 0.3); +} +.placeholder-neutral-50\/40::placeholder { + color: rgb(250 250 250 / 0.4); +} +.placeholder-neutral-50\/5::placeholder { + color: rgb(250 250 250 / 0.05); +} +.placeholder-neutral-50\/50::placeholder { + color: rgb(250 250 250 / 0.5); +} +.placeholder-neutral-50\/60::placeholder { + color: rgb(250 250 250 / 0.6); +} +.placeholder-neutral-50\/70::placeholder { + color: rgb(250 250 250 / 0.7); +} +.placeholder-neutral-50\/75::placeholder { + color: rgb(250 250 250 / 0.75); +} +.placeholder-neutral-50\/80::placeholder { + color: rgb(250 250 250 / 0.8); +} +.placeholder-neutral-50\/90::placeholder { + color: rgb(250 250 250 / 0.9); +} +.placeholder-neutral-50\/95::placeholder { + color: rgb(250 250 250 / 0.95); +} +.placeholder-neutral-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(115 115 115 / var(--tw-placeholder-opacity)); +} +.placeholder-neutral-500\/0::placeholder { + color: rgb(115 115 115 / 0); +} +.placeholder-neutral-500\/10::placeholder { + color: rgb(115 115 115 / 0.1); +} +.placeholder-neutral-500\/100::placeholder { + color: rgb(115 115 115 / 1); +} +.placeholder-neutral-500\/20::placeholder { + color: rgb(115 115 115 / 0.2); +} +.placeholder-neutral-500\/25::placeholder { + color: rgb(115 115 115 / 0.25); +} +.placeholder-neutral-500\/30::placeholder { + color: rgb(115 115 115 / 0.3); +} +.placeholder-neutral-500\/40::placeholder { + color: rgb(115 115 115 / 0.4); +} +.placeholder-neutral-500\/5::placeholder { + color: rgb(115 115 115 / 0.05); +} +.placeholder-neutral-500\/50::placeholder { + color: rgb(115 115 115 / 0.5); +} +.placeholder-neutral-500\/60::placeholder { + color: rgb(115 115 115 / 0.6); +} +.placeholder-neutral-500\/70::placeholder { + color: rgb(115 115 115 / 0.7); +} +.placeholder-neutral-500\/75::placeholder { + color: rgb(115 115 115 / 0.75); +} +.placeholder-neutral-500\/80::placeholder { + color: rgb(115 115 115 / 0.8); +} +.placeholder-neutral-500\/90::placeholder { + color: rgb(115 115 115 / 0.9); +} +.placeholder-neutral-500\/95::placeholder { + color: rgb(115 115 115 / 0.95); +} +.placeholder-neutral-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(82 82 82 / var(--tw-placeholder-opacity)); +} +.placeholder-neutral-600\/0::placeholder { + color: rgb(82 82 82 / 0); +} +.placeholder-neutral-600\/10::placeholder { + color: rgb(82 82 82 / 0.1); +} +.placeholder-neutral-600\/100::placeholder { + color: rgb(82 82 82 / 1); +} +.placeholder-neutral-600\/20::placeholder { + color: rgb(82 82 82 / 0.2); +} +.placeholder-neutral-600\/25::placeholder { + color: rgb(82 82 82 / 0.25); +} +.placeholder-neutral-600\/30::placeholder { + color: rgb(82 82 82 / 0.3); +} +.placeholder-neutral-600\/40::placeholder { + color: rgb(82 82 82 / 0.4); +} +.placeholder-neutral-600\/5::placeholder { + color: rgb(82 82 82 / 0.05); +} +.placeholder-neutral-600\/50::placeholder { + color: rgb(82 82 82 / 0.5); +} +.placeholder-neutral-600\/60::placeholder { + color: rgb(82 82 82 / 0.6); +} +.placeholder-neutral-600\/70::placeholder { + color: rgb(82 82 82 / 0.7); +} +.placeholder-neutral-600\/75::placeholder { + color: rgb(82 82 82 / 0.75); +} +.placeholder-neutral-600\/80::placeholder { + color: rgb(82 82 82 / 0.8); +} +.placeholder-neutral-600\/90::placeholder { + color: rgb(82 82 82 / 0.9); +} +.placeholder-neutral-600\/95::placeholder { + color: rgb(82 82 82 / 0.95); +} +.placeholder-neutral-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(64 64 64 / var(--tw-placeholder-opacity)); +} +.placeholder-neutral-700\/0::placeholder { + color: rgb(64 64 64 / 0); +} +.placeholder-neutral-700\/10::placeholder { + color: rgb(64 64 64 / 0.1); +} +.placeholder-neutral-700\/100::placeholder { + color: rgb(64 64 64 / 1); +} +.placeholder-neutral-700\/20::placeholder { + color: rgb(64 64 64 / 0.2); +} +.placeholder-neutral-700\/25::placeholder { + color: rgb(64 64 64 / 0.25); +} +.placeholder-neutral-700\/30::placeholder { + color: rgb(64 64 64 / 0.3); +} +.placeholder-neutral-700\/40::placeholder { + color: rgb(64 64 64 / 0.4); +} +.placeholder-neutral-700\/5::placeholder { + color: rgb(64 64 64 / 0.05); +} +.placeholder-neutral-700\/50::placeholder { + color: rgb(64 64 64 / 0.5); +} +.placeholder-neutral-700\/60::placeholder { + color: rgb(64 64 64 / 0.6); +} +.placeholder-neutral-700\/70::placeholder { + color: rgb(64 64 64 / 0.7); +} +.placeholder-neutral-700\/75::placeholder { + color: rgb(64 64 64 / 0.75); +} +.placeholder-neutral-700\/80::placeholder { + color: rgb(64 64 64 / 0.8); +} +.placeholder-neutral-700\/90::placeholder { + color: rgb(64 64 64 / 0.9); +} +.placeholder-neutral-700\/95::placeholder { + color: rgb(64 64 64 / 0.95); +} +.placeholder-neutral-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(38 38 38 / var(--tw-placeholder-opacity)); +} +.placeholder-neutral-800\/0::placeholder { + color: rgb(38 38 38 / 0); +} +.placeholder-neutral-800\/10::placeholder { + color: rgb(38 38 38 / 0.1); +} +.placeholder-neutral-800\/100::placeholder { + color: rgb(38 38 38 / 1); +} +.placeholder-neutral-800\/20::placeholder { + color: rgb(38 38 38 / 0.2); +} +.placeholder-neutral-800\/25::placeholder { + color: rgb(38 38 38 / 0.25); +} +.placeholder-neutral-800\/30::placeholder { + color: rgb(38 38 38 / 0.3); +} +.placeholder-neutral-800\/40::placeholder { + color: rgb(38 38 38 / 0.4); +} +.placeholder-neutral-800\/5::placeholder { + color: rgb(38 38 38 / 0.05); +} +.placeholder-neutral-800\/50::placeholder { + color: rgb(38 38 38 / 0.5); +} +.placeholder-neutral-800\/60::placeholder { + color: rgb(38 38 38 / 0.6); +} +.placeholder-neutral-800\/70::placeholder { + color: rgb(38 38 38 / 0.7); +} +.placeholder-neutral-800\/75::placeholder { + color: rgb(38 38 38 / 0.75); +} +.placeholder-neutral-800\/80::placeholder { + color: rgb(38 38 38 / 0.8); +} +.placeholder-neutral-800\/90::placeholder { + color: rgb(38 38 38 / 0.9); +} +.placeholder-neutral-800\/95::placeholder { + color: rgb(38 38 38 / 0.95); +} +.placeholder-neutral-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(23 23 23 / var(--tw-placeholder-opacity)); +} +.placeholder-neutral-900\/0::placeholder { + color: rgb(23 23 23 / 0); +} +.placeholder-neutral-900\/10::placeholder { + color: rgb(23 23 23 / 0.1); +} +.placeholder-neutral-900\/100::placeholder { + color: rgb(23 23 23 / 1); +} +.placeholder-neutral-900\/20::placeholder { + color: rgb(23 23 23 / 0.2); +} +.placeholder-neutral-900\/25::placeholder { + color: rgb(23 23 23 / 0.25); +} +.placeholder-neutral-900\/30::placeholder { + color: rgb(23 23 23 / 0.3); +} +.placeholder-neutral-900\/40::placeholder { + color: rgb(23 23 23 / 0.4); +} +.placeholder-neutral-900\/5::placeholder { + color: rgb(23 23 23 / 0.05); +} +.placeholder-neutral-900\/50::placeholder { + color: rgb(23 23 23 / 0.5); +} +.placeholder-neutral-900\/60::placeholder { + color: rgb(23 23 23 / 0.6); +} +.placeholder-neutral-900\/70::placeholder { + color: rgb(23 23 23 / 0.7); +} +.placeholder-neutral-900\/75::placeholder { + color: rgb(23 23 23 / 0.75); +} +.placeholder-neutral-900\/80::placeholder { + color: rgb(23 23 23 / 0.8); +} +.placeholder-neutral-900\/90::placeholder { + color: rgb(23 23 23 / 0.9); +} +.placeholder-neutral-900\/95::placeholder { + color: rgb(23 23 23 / 0.95); +} +.placeholder-np_our-primary::placeholder { + color: var(--np_our-primary); +} +.placeholder-np_our-secondary::placeholder { + color: var(--np_our-secondary); +} +.placeholder-np_our-tertiary::placeholder { + color: var(--np_our-tertiary); +} +.placeholder-orange-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(255 237 213 / var(--tw-placeholder-opacity)); +} +.placeholder-orange-100\/0::placeholder { + color: rgb(255 237 213 / 0); +} +.placeholder-orange-100\/10::placeholder { + color: rgb(255 237 213 / 0.1); +} +.placeholder-orange-100\/100::placeholder { + color: rgb(255 237 213 / 1); +} +.placeholder-orange-100\/20::placeholder { + color: rgb(255 237 213 / 0.2); +} +.placeholder-orange-100\/25::placeholder { + color: rgb(255 237 213 / 0.25); +} +.placeholder-orange-100\/30::placeholder { + color: rgb(255 237 213 / 0.3); +} +.placeholder-orange-100\/40::placeholder { + color: rgb(255 237 213 / 0.4); +} +.placeholder-orange-100\/5::placeholder { + color: rgb(255 237 213 / 0.05); +} +.placeholder-orange-100\/50::placeholder { + color: rgb(255 237 213 / 0.5); +} +.placeholder-orange-100\/60::placeholder { + color: rgb(255 237 213 / 0.6); +} +.placeholder-orange-100\/70::placeholder { + color: rgb(255 237 213 / 0.7); +} +.placeholder-orange-100\/75::placeholder { + color: rgb(255 237 213 / 0.75); +} +.placeholder-orange-100\/80::placeholder { + color: rgb(255 237 213 / 0.8); +} +.placeholder-orange-100\/90::placeholder { + color: rgb(255 237 213 / 0.9); +} +.placeholder-orange-100\/95::placeholder { + color: rgb(255 237 213 / 0.95); +} +.placeholder-orange-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(254 215 170 / var(--tw-placeholder-opacity)); +} +.placeholder-orange-200\/0::placeholder { + color: rgb(254 215 170 / 0); +} +.placeholder-orange-200\/10::placeholder { + color: rgb(254 215 170 / 0.1); +} +.placeholder-orange-200\/100::placeholder { + color: rgb(254 215 170 / 1); +} +.placeholder-orange-200\/20::placeholder { + color: rgb(254 215 170 / 0.2); +} +.placeholder-orange-200\/25::placeholder { + color: rgb(254 215 170 / 0.25); +} +.placeholder-orange-200\/30::placeholder { + color: rgb(254 215 170 / 0.3); +} +.placeholder-orange-200\/40::placeholder { + color: rgb(254 215 170 / 0.4); +} +.placeholder-orange-200\/5::placeholder { + color: rgb(254 215 170 / 0.05); +} +.placeholder-orange-200\/50::placeholder { + color: rgb(254 215 170 / 0.5); +} +.placeholder-orange-200\/60::placeholder { + color: rgb(254 215 170 / 0.6); +} +.placeholder-orange-200\/70::placeholder { + color: rgb(254 215 170 / 0.7); +} +.placeholder-orange-200\/75::placeholder { + color: rgb(254 215 170 / 0.75); +} +.placeholder-orange-200\/80::placeholder { + color: rgb(254 215 170 / 0.8); +} +.placeholder-orange-200\/90::placeholder { + color: rgb(254 215 170 / 0.9); +} +.placeholder-orange-200\/95::placeholder { + color: rgb(254 215 170 / 0.95); +} +.placeholder-orange-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(253 186 116 / var(--tw-placeholder-opacity)); +} +.placeholder-orange-300\/0::placeholder { + color: rgb(253 186 116 / 0); +} +.placeholder-orange-300\/10::placeholder { + color: rgb(253 186 116 / 0.1); +} +.placeholder-orange-300\/100::placeholder { + color: rgb(253 186 116 / 1); +} +.placeholder-orange-300\/20::placeholder { + color: rgb(253 186 116 / 0.2); +} +.placeholder-orange-300\/25::placeholder { + color: rgb(253 186 116 / 0.25); +} +.placeholder-orange-300\/30::placeholder { + color: rgb(253 186 116 / 0.3); +} +.placeholder-orange-300\/40::placeholder { + color: rgb(253 186 116 / 0.4); +} +.placeholder-orange-300\/5::placeholder { + color: rgb(253 186 116 / 0.05); +} +.placeholder-orange-300\/50::placeholder { + color: rgb(253 186 116 / 0.5); +} +.placeholder-orange-300\/60::placeholder { + color: rgb(253 186 116 / 0.6); +} +.placeholder-orange-300\/70::placeholder { + color: rgb(253 186 116 / 0.7); +} +.placeholder-orange-300\/75::placeholder { + color: rgb(253 186 116 / 0.75); +} +.placeholder-orange-300\/80::placeholder { + color: rgb(253 186 116 / 0.8); +} +.placeholder-orange-300\/90::placeholder { + color: rgb(253 186 116 / 0.9); +} +.placeholder-orange-300\/95::placeholder { + color: rgb(253 186 116 / 0.95); +} +.placeholder-orange-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(251 146 60 / var(--tw-placeholder-opacity)); +} +.placeholder-orange-400\/0::placeholder { + color: rgb(251 146 60 / 0); +} +.placeholder-orange-400\/10::placeholder { + color: rgb(251 146 60 / 0.1); +} +.placeholder-orange-400\/100::placeholder { + color: rgb(251 146 60 / 1); +} +.placeholder-orange-400\/20::placeholder { + color: rgb(251 146 60 / 0.2); +} +.placeholder-orange-400\/25::placeholder { + color: rgb(251 146 60 / 0.25); +} +.placeholder-orange-400\/30::placeholder { + color: rgb(251 146 60 / 0.3); +} +.placeholder-orange-400\/40::placeholder { + color: rgb(251 146 60 / 0.4); +} +.placeholder-orange-400\/5::placeholder { + color: rgb(251 146 60 / 0.05); +} +.placeholder-orange-400\/50::placeholder { + color: rgb(251 146 60 / 0.5); +} +.placeholder-orange-400\/60::placeholder { + color: rgb(251 146 60 / 0.6); +} +.placeholder-orange-400\/70::placeholder { + color: rgb(251 146 60 / 0.7); +} +.placeholder-orange-400\/75::placeholder { + color: rgb(251 146 60 / 0.75); +} +.placeholder-orange-400\/80::placeholder { + color: rgb(251 146 60 / 0.8); +} +.placeholder-orange-400\/90::placeholder { + color: rgb(251 146 60 / 0.9); +} +.placeholder-orange-400\/95::placeholder { + color: rgb(251 146 60 / 0.95); +} +.placeholder-orange-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(255 247 237 / var(--tw-placeholder-opacity)); +} +.placeholder-orange-50\/0::placeholder { + color: rgb(255 247 237 / 0); +} +.placeholder-orange-50\/10::placeholder { + color: rgb(255 247 237 / 0.1); +} +.placeholder-orange-50\/100::placeholder { + color: rgb(255 247 237 / 1); +} +.placeholder-orange-50\/20::placeholder { + color: rgb(255 247 237 / 0.2); +} +.placeholder-orange-50\/25::placeholder { + color: rgb(255 247 237 / 0.25); +} +.placeholder-orange-50\/30::placeholder { + color: rgb(255 247 237 / 0.3); +} +.placeholder-orange-50\/40::placeholder { + color: rgb(255 247 237 / 0.4); +} +.placeholder-orange-50\/5::placeholder { + color: rgb(255 247 237 / 0.05); +} +.placeholder-orange-50\/50::placeholder { + color: rgb(255 247 237 / 0.5); +} +.placeholder-orange-50\/60::placeholder { + color: rgb(255 247 237 / 0.6); +} +.placeholder-orange-50\/70::placeholder { + color: rgb(255 247 237 / 0.7); +} +.placeholder-orange-50\/75::placeholder { + color: rgb(255 247 237 / 0.75); +} +.placeholder-orange-50\/80::placeholder { + color: rgb(255 247 237 / 0.8); +} +.placeholder-orange-50\/90::placeholder { + color: rgb(255 247 237 / 0.9); +} +.placeholder-orange-50\/95::placeholder { + color: rgb(255 247 237 / 0.95); +} +.placeholder-orange-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(249 115 22 / var(--tw-placeholder-opacity)); +} +.placeholder-orange-500\/0::placeholder { + color: rgb(249 115 22 / 0); +} +.placeholder-orange-500\/10::placeholder { + color: rgb(249 115 22 / 0.1); +} +.placeholder-orange-500\/100::placeholder { + color: rgb(249 115 22 / 1); +} +.placeholder-orange-500\/20::placeholder { + color: rgb(249 115 22 / 0.2); +} +.placeholder-orange-500\/25::placeholder { + color: rgb(249 115 22 / 0.25); +} +.placeholder-orange-500\/30::placeholder { + color: rgb(249 115 22 / 0.3); +} +.placeholder-orange-500\/40::placeholder { + color: rgb(249 115 22 / 0.4); +} +.placeholder-orange-500\/5::placeholder { + color: rgb(249 115 22 / 0.05); +} +.placeholder-orange-500\/50::placeholder { + color: rgb(249 115 22 / 0.5); +} +.placeholder-orange-500\/60::placeholder { + color: rgb(249 115 22 / 0.6); +} +.placeholder-orange-500\/70::placeholder { + color: rgb(249 115 22 / 0.7); +} +.placeholder-orange-500\/75::placeholder { + color: rgb(249 115 22 / 0.75); +} +.placeholder-orange-500\/80::placeholder { + color: rgb(249 115 22 / 0.8); +} +.placeholder-orange-500\/90::placeholder { + color: rgb(249 115 22 / 0.9); +} +.placeholder-orange-500\/95::placeholder { + color: rgb(249 115 22 / 0.95); +} +.placeholder-orange-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(234 88 12 / var(--tw-placeholder-opacity)); +} +.placeholder-orange-600\/0::placeholder { + color: rgb(234 88 12 / 0); +} +.placeholder-orange-600\/10::placeholder { + color: rgb(234 88 12 / 0.1); +} +.placeholder-orange-600\/100::placeholder { + color: rgb(234 88 12 / 1); +} +.placeholder-orange-600\/20::placeholder { + color: rgb(234 88 12 / 0.2); +} +.placeholder-orange-600\/25::placeholder { + color: rgb(234 88 12 / 0.25); +} +.placeholder-orange-600\/30::placeholder { + color: rgb(234 88 12 / 0.3); +} +.placeholder-orange-600\/40::placeholder { + color: rgb(234 88 12 / 0.4); +} +.placeholder-orange-600\/5::placeholder { + color: rgb(234 88 12 / 0.05); +} +.placeholder-orange-600\/50::placeholder { + color: rgb(234 88 12 / 0.5); +} +.placeholder-orange-600\/60::placeholder { + color: rgb(234 88 12 / 0.6); +} +.placeholder-orange-600\/70::placeholder { + color: rgb(234 88 12 / 0.7); +} +.placeholder-orange-600\/75::placeholder { + color: rgb(234 88 12 / 0.75); +} +.placeholder-orange-600\/80::placeholder { + color: rgb(234 88 12 / 0.8); +} +.placeholder-orange-600\/90::placeholder { + color: rgb(234 88 12 / 0.9); +} +.placeholder-orange-600\/95::placeholder { + color: rgb(234 88 12 / 0.95); +} +.placeholder-orange-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(194 65 12 / var(--tw-placeholder-opacity)); +} +.placeholder-orange-700\/0::placeholder { + color: rgb(194 65 12 / 0); +} +.placeholder-orange-700\/10::placeholder { + color: rgb(194 65 12 / 0.1); +} +.placeholder-orange-700\/100::placeholder { + color: rgb(194 65 12 / 1); +} +.placeholder-orange-700\/20::placeholder { + color: rgb(194 65 12 / 0.2); +} +.placeholder-orange-700\/25::placeholder { + color: rgb(194 65 12 / 0.25); +} +.placeholder-orange-700\/30::placeholder { + color: rgb(194 65 12 / 0.3); +} +.placeholder-orange-700\/40::placeholder { + color: rgb(194 65 12 / 0.4); +} +.placeholder-orange-700\/5::placeholder { + color: rgb(194 65 12 / 0.05); +} +.placeholder-orange-700\/50::placeholder { + color: rgb(194 65 12 / 0.5); +} +.placeholder-orange-700\/60::placeholder { + color: rgb(194 65 12 / 0.6); +} +.placeholder-orange-700\/70::placeholder { + color: rgb(194 65 12 / 0.7); +} +.placeholder-orange-700\/75::placeholder { + color: rgb(194 65 12 / 0.75); +} +.placeholder-orange-700\/80::placeholder { + color: rgb(194 65 12 / 0.8); +} +.placeholder-orange-700\/90::placeholder { + color: rgb(194 65 12 / 0.9); +} +.placeholder-orange-700\/95::placeholder { + color: rgb(194 65 12 / 0.95); +} +.placeholder-orange-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(154 52 18 / var(--tw-placeholder-opacity)); +} +.placeholder-orange-800\/0::placeholder { + color: rgb(154 52 18 / 0); +} +.placeholder-orange-800\/10::placeholder { + color: rgb(154 52 18 / 0.1); +} +.placeholder-orange-800\/100::placeholder { + color: rgb(154 52 18 / 1); +} +.placeholder-orange-800\/20::placeholder { + color: rgb(154 52 18 / 0.2); +} +.placeholder-orange-800\/25::placeholder { + color: rgb(154 52 18 / 0.25); +} +.placeholder-orange-800\/30::placeholder { + color: rgb(154 52 18 / 0.3); +} +.placeholder-orange-800\/40::placeholder { + color: rgb(154 52 18 / 0.4); +} +.placeholder-orange-800\/5::placeholder { + color: rgb(154 52 18 / 0.05); +} +.placeholder-orange-800\/50::placeholder { + color: rgb(154 52 18 / 0.5); +} +.placeholder-orange-800\/60::placeholder { + color: rgb(154 52 18 / 0.6); +} +.placeholder-orange-800\/70::placeholder { + color: rgb(154 52 18 / 0.7); +} +.placeholder-orange-800\/75::placeholder { + color: rgb(154 52 18 / 0.75); +} +.placeholder-orange-800\/80::placeholder { + color: rgb(154 52 18 / 0.8); +} +.placeholder-orange-800\/90::placeholder { + color: rgb(154 52 18 / 0.9); +} +.placeholder-orange-800\/95::placeholder { + color: rgb(154 52 18 / 0.95); +} +.placeholder-orange-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(124 45 18 / var(--tw-placeholder-opacity)); +} +.placeholder-orange-900\/0::placeholder { + color: rgb(124 45 18 / 0); +} +.placeholder-orange-900\/10::placeholder { + color: rgb(124 45 18 / 0.1); +} +.placeholder-orange-900\/100::placeholder { + color: rgb(124 45 18 / 1); +} +.placeholder-orange-900\/20::placeholder { + color: rgb(124 45 18 / 0.2); +} +.placeholder-orange-900\/25::placeholder { + color: rgb(124 45 18 / 0.25); +} +.placeholder-orange-900\/30::placeholder { + color: rgb(124 45 18 / 0.3); +} +.placeholder-orange-900\/40::placeholder { + color: rgb(124 45 18 / 0.4); +} +.placeholder-orange-900\/5::placeholder { + color: rgb(124 45 18 / 0.05); +} +.placeholder-orange-900\/50::placeholder { + color: rgb(124 45 18 / 0.5); +} +.placeholder-orange-900\/60::placeholder { + color: rgb(124 45 18 / 0.6); +} +.placeholder-orange-900\/70::placeholder { + color: rgb(124 45 18 / 0.7); +} +.placeholder-orange-900\/75::placeholder { + color: rgb(124 45 18 / 0.75); +} +.placeholder-orange-900\/80::placeholder { + color: rgb(124 45 18 / 0.8); +} +.placeholder-orange-900\/90::placeholder { + color: rgb(124 45 18 / 0.9); +} +.placeholder-orange-900\/95::placeholder { + color: rgb(124 45 18 / 0.95); +} +.placeholder-pag-primary::placeholder { + color: var(--pag-primary); +} +.placeholder-pag-secondary::placeholder { + color: var(--pag-secondary); +} +.placeholder-pag-tertiary::placeholder { + color: var(--pag-tertiary); +} +.placeholder-pink-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(252 231 243 / var(--tw-placeholder-opacity)); +} +.placeholder-pink-100\/0::placeholder { + color: rgb(252 231 243 / 0); +} +.placeholder-pink-100\/10::placeholder { + color: rgb(252 231 243 / 0.1); +} +.placeholder-pink-100\/100::placeholder { + color: rgb(252 231 243 / 1); +} +.placeholder-pink-100\/20::placeholder { + color: rgb(252 231 243 / 0.2); +} +.placeholder-pink-100\/25::placeholder { + color: rgb(252 231 243 / 0.25); +} +.placeholder-pink-100\/30::placeholder { + color: rgb(252 231 243 / 0.3); +} +.placeholder-pink-100\/40::placeholder { + color: rgb(252 231 243 / 0.4); +} +.placeholder-pink-100\/5::placeholder { + color: rgb(252 231 243 / 0.05); +} +.placeholder-pink-100\/50::placeholder { + color: rgb(252 231 243 / 0.5); +} +.placeholder-pink-100\/60::placeholder { + color: rgb(252 231 243 / 0.6); +} +.placeholder-pink-100\/70::placeholder { + color: rgb(252 231 243 / 0.7); +} +.placeholder-pink-100\/75::placeholder { + color: rgb(252 231 243 / 0.75); +} +.placeholder-pink-100\/80::placeholder { + color: rgb(252 231 243 / 0.8); +} +.placeholder-pink-100\/90::placeholder { + color: rgb(252 231 243 / 0.9); +} +.placeholder-pink-100\/95::placeholder { + color: rgb(252 231 243 / 0.95); +} +.placeholder-pink-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(251 207 232 / var(--tw-placeholder-opacity)); +} +.placeholder-pink-200\/0::placeholder { + color: rgb(251 207 232 / 0); +} +.placeholder-pink-200\/10::placeholder { + color: rgb(251 207 232 / 0.1); +} +.placeholder-pink-200\/100::placeholder { + color: rgb(251 207 232 / 1); +} +.placeholder-pink-200\/20::placeholder { + color: rgb(251 207 232 / 0.2); +} +.placeholder-pink-200\/25::placeholder { + color: rgb(251 207 232 / 0.25); +} +.placeholder-pink-200\/30::placeholder { + color: rgb(251 207 232 / 0.3); +} +.placeholder-pink-200\/40::placeholder { + color: rgb(251 207 232 / 0.4); +} +.placeholder-pink-200\/5::placeholder { + color: rgb(251 207 232 / 0.05); +} +.placeholder-pink-200\/50::placeholder { + color: rgb(251 207 232 / 0.5); +} +.placeholder-pink-200\/60::placeholder { + color: rgb(251 207 232 / 0.6); +} +.placeholder-pink-200\/70::placeholder { + color: rgb(251 207 232 / 0.7); +} +.placeholder-pink-200\/75::placeholder { + color: rgb(251 207 232 / 0.75); +} +.placeholder-pink-200\/80::placeholder { + color: rgb(251 207 232 / 0.8); +} +.placeholder-pink-200\/90::placeholder { + color: rgb(251 207 232 / 0.9); +} +.placeholder-pink-200\/95::placeholder { + color: rgb(251 207 232 / 0.95); +} +.placeholder-pink-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(249 168 212 / var(--tw-placeholder-opacity)); +} +.placeholder-pink-300\/0::placeholder { + color: rgb(249 168 212 / 0); +} +.placeholder-pink-300\/10::placeholder { + color: rgb(249 168 212 / 0.1); +} +.placeholder-pink-300\/100::placeholder { + color: rgb(249 168 212 / 1); +} +.placeholder-pink-300\/20::placeholder { + color: rgb(249 168 212 / 0.2); +} +.placeholder-pink-300\/25::placeholder { + color: rgb(249 168 212 / 0.25); +} +.placeholder-pink-300\/30::placeholder { + color: rgb(249 168 212 / 0.3); +} +.placeholder-pink-300\/40::placeholder { + color: rgb(249 168 212 / 0.4); +} +.placeholder-pink-300\/5::placeholder { + color: rgb(249 168 212 / 0.05); +} +.placeholder-pink-300\/50::placeholder { + color: rgb(249 168 212 / 0.5); +} +.placeholder-pink-300\/60::placeholder { + color: rgb(249 168 212 / 0.6); +} +.placeholder-pink-300\/70::placeholder { + color: rgb(249 168 212 / 0.7); +} +.placeholder-pink-300\/75::placeholder { + color: rgb(249 168 212 / 0.75); +} +.placeholder-pink-300\/80::placeholder { + color: rgb(249 168 212 / 0.8); +} +.placeholder-pink-300\/90::placeholder { + color: rgb(249 168 212 / 0.9); +} +.placeholder-pink-300\/95::placeholder { + color: rgb(249 168 212 / 0.95); +} +.placeholder-pink-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(244 114 182 / var(--tw-placeholder-opacity)); +} +.placeholder-pink-400\/0::placeholder { + color: rgb(244 114 182 / 0); +} +.placeholder-pink-400\/10::placeholder { + color: rgb(244 114 182 / 0.1); +} +.placeholder-pink-400\/100::placeholder { + color: rgb(244 114 182 / 1); +} +.placeholder-pink-400\/20::placeholder { + color: rgb(244 114 182 / 0.2); +} +.placeholder-pink-400\/25::placeholder { + color: rgb(244 114 182 / 0.25); +} +.placeholder-pink-400\/30::placeholder { + color: rgb(244 114 182 / 0.3); +} +.placeholder-pink-400\/40::placeholder { + color: rgb(244 114 182 / 0.4); +} +.placeholder-pink-400\/5::placeholder { + color: rgb(244 114 182 / 0.05); +} +.placeholder-pink-400\/50::placeholder { + color: rgb(244 114 182 / 0.5); +} +.placeholder-pink-400\/60::placeholder { + color: rgb(244 114 182 / 0.6); +} +.placeholder-pink-400\/70::placeholder { + color: rgb(244 114 182 / 0.7); +} +.placeholder-pink-400\/75::placeholder { + color: rgb(244 114 182 / 0.75); +} +.placeholder-pink-400\/80::placeholder { + color: rgb(244 114 182 / 0.8); +} +.placeholder-pink-400\/90::placeholder { + color: rgb(244 114 182 / 0.9); +} +.placeholder-pink-400\/95::placeholder { + color: rgb(244 114 182 / 0.95); +} +.placeholder-pink-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(253 242 248 / var(--tw-placeholder-opacity)); +} +.placeholder-pink-50\/0::placeholder { + color: rgb(253 242 248 / 0); +} +.placeholder-pink-50\/10::placeholder { + color: rgb(253 242 248 / 0.1); +} +.placeholder-pink-50\/100::placeholder { + color: rgb(253 242 248 / 1); +} +.placeholder-pink-50\/20::placeholder { + color: rgb(253 242 248 / 0.2); +} +.placeholder-pink-50\/25::placeholder { + color: rgb(253 242 248 / 0.25); +} +.placeholder-pink-50\/30::placeholder { + color: rgb(253 242 248 / 0.3); +} +.placeholder-pink-50\/40::placeholder { + color: rgb(253 242 248 / 0.4); +} +.placeholder-pink-50\/5::placeholder { + color: rgb(253 242 248 / 0.05); +} +.placeholder-pink-50\/50::placeholder { + color: rgb(253 242 248 / 0.5); +} +.placeholder-pink-50\/60::placeholder { + color: rgb(253 242 248 / 0.6); +} +.placeholder-pink-50\/70::placeholder { + color: rgb(253 242 248 / 0.7); +} +.placeholder-pink-50\/75::placeholder { + color: rgb(253 242 248 / 0.75); +} +.placeholder-pink-50\/80::placeholder { + color: rgb(253 242 248 / 0.8); +} +.placeholder-pink-50\/90::placeholder { + color: rgb(253 242 248 / 0.9); +} +.placeholder-pink-50\/95::placeholder { + color: rgb(253 242 248 / 0.95); +} +.placeholder-pink-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(236 72 153 / var(--tw-placeholder-opacity)); +} +.placeholder-pink-500\/0::placeholder { + color: rgb(236 72 153 / 0); +} +.placeholder-pink-500\/10::placeholder { + color: rgb(236 72 153 / 0.1); +} +.placeholder-pink-500\/100::placeholder { + color: rgb(236 72 153 / 1); +} +.placeholder-pink-500\/20::placeholder { + color: rgb(236 72 153 / 0.2); +} +.placeholder-pink-500\/25::placeholder { + color: rgb(236 72 153 / 0.25); +} +.placeholder-pink-500\/30::placeholder { + color: rgb(236 72 153 / 0.3); +} +.placeholder-pink-500\/40::placeholder { + color: rgb(236 72 153 / 0.4); +} +.placeholder-pink-500\/5::placeholder { + color: rgb(236 72 153 / 0.05); +} +.placeholder-pink-500\/50::placeholder { + color: rgb(236 72 153 / 0.5); +} +.placeholder-pink-500\/60::placeholder { + color: rgb(236 72 153 / 0.6); +} +.placeholder-pink-500\/70::placeholder { + color: rgb(236 72 153 / 0.7); +} +.placeholder-pink-500\/75::placeholder { + color: rgb(236 72 153 / 0.75); +} +.placeholder-pink-500\/80::placeholder { + color: rgb(236 72 153 / 0.8); +} +.placeholder-pink-500\/90::placeholder { + color: rgb(236 72 153 / 0.9); +} +.placeholder-pink-500\/95::placeholder { + color: rgb(236 72 153 / 0.95); +} +.placeholder-pink-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(219 39 119 / var(--tw-placeholder-opacity)); +} +.placeholder-pink-600\/0::placeholder { + color: rgb(219 39 119 / 0); +} +.placeholder-pink-600\/10::placeholder { + color: rgb(219 39 119 / 0.1); +} +.placeholder-pink-600\/100::placeholder { + color: rgb(219 39 119 / 1); +} +.placeholder-pink-600\/20::placeholder { + color: rgb(219 39 119 / 0.2); +} +.placeholder-pink-600\/25::placeholder { + color: rgb(219 39 119 / 0.25); +} +.placeholder-pink-600\/30::placeholder { + color: rgb(219 39 119 / 0.3); +} +.placeholder-pink-600\/40::placeholder { + color: rgb(219 39 119 / 0.4); +} +.placeholder-pink-600\/5::placeholder { + color: rgb(219 39 119 / 0.05); +} +.placeholder-pink-600\/50::placeholder { + color: rgb(219 39 119 / 0.5); +} +.placeholder-pink-600\/60::placeholder { + color: rgb(219 39 119 / 0.6); +} +.placeholder-pink-600\/70::placeholder { + color: rgb(219 39 119 / 0.7); +} +.placeholder-pink-600\/75::placeholder { + color: rgb(219 39 119 / 0.75); +} +.placeholder-pink-600\/80::placeholder { + color: rgb(219 39 119 / 0.8); +} +.placeholder-pink-600\/90::placeholder { + color: rgb(219 39 119 / 0.9); +} +.placeholder-pink-600\/95::placeholder { + color: rgb(219 39 119 / 0.95); +} +.placeholder-pink-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(190 24 93 / var(--tw-placeholder-opacity)); +} +.placeholder-pink-700\/0::placeholder { + color: rgb(190 24 93 / 0); +} +.placeholder-pink-700\/10::placeholder { + color: rgb(190 24 93 / 0.1); +} +.placeholder-pink-700\/100::placeholder { + color: rgb(190 24 93 / 1); +} +.placeholder-pink-700\/20::placeholder { + color: rgb(190 24 93 / 0.2); +} +.placeholder-pink-700\/25::placeholder { + color: rgb(190 24 93 / 0.25); +} +.placeholder-pink-700\/30::placeholder { + color: rgb(190 24 93 / 0.3); +} +.placeholder-pink-700\/40::placeholder { + color: rgb(190 24 93 / 0.4); +} +.placeholder-pink-700\/5::placeholder { + color: rgb(190 24 93 / 0.05); +} +.placeholder-pink-700\/50::placeholder { + color: rgb(190 24 93 / 0.5); +} +.placeholder-pink-700\/60::placeholder { + color: rgb(190 24 93 / 0.6); +} +.placeholder-pink-700\/70::placeholder { + color: rgb(190 24 93 / 0.7); +} +.placeholder-pink-700\/75::placeholder { + color: rgb(190 24 93 / 0.75); +} +.placeholder-pink-700\/80::placeholder { + color: rgb(190 24 93 / 0.8); +} +.placeholder-pink-700\/90::placeholder { + color: rgb(190 24 93 / 0.9); +} +.placeholder-pink-700\/95::placeholder { + color: rgb(190 24 93 / 0.95); +} +.placeholder-pink-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(157 23 77 / var(--tw-placeholder-opacity)); +} +.placeholder-pink-800\/0::placeholder { + color: rgb(157 23 77 / 0); +} +.placeholder-pink-800\/10::placeholder { + color: rgb(157 23 77 / 0.1); +} +.placeholder-pink-800\/100::placeholder { + color: rgb(157 23 77 / 1); +} +.placeholder-pink-800\/20::placeholder { + color: rgb(157 23 77 / 0.2); +} +.placeholder-pink-800\/25::placeholder { + color: rgb(157 23 77 / 0.25); +} +.placeholder-pink-800\/30::placeholder { + color: rgb(157 23 77 / 0.3); +} +.placeholder-pink-800\/40::placeholder { + color: rgb(157 23 77 / 0.4); +} +.placeholder-pink-800\/5::placeholder { + color: rgb(157 23 77 / 0.05); +} +.placeholder-pink-800\/50::placeholder { + color: rgb(157 23 77 / 0.5); +} +.placeholder-pink-800\/60::placeholder { + color: rgb(157 23 77 / 0.6); +} +.placeholder-pink-800\/70::placeholder { + color: rgb(157 23 77 / 0.7); +} +.placeholder-pink-800\/75::placeholder { + color: rgb(157 23 77 / 0.75); +} +.placeholder-pink-800\/80::placeholder { + color: rgb(157 23 77 / 0.8); +} +.placeholder-pink-800\/90::placeholder { + color: rgb(157 23 77 / 0.9); +} +.placeholder-pink-800\/95::placeholder { + color: rgb(157 23 77 / 0.95); +} +.placeholder-pink-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(131 24 67 / var(--tw-placeholder-opacity)); +} +.placeholder-pink-900\/0::placeholder { + color: rgb(131 24 67 / 0); +} +.placeholder-pink-900\/10::placeholder { + color: rgb(131 24 67 / 0.1); +} +.placeholder-pink-900\/100::placeholder { + color: rgb(131 24 67 / 1); +} +.placeholder-pink-900\/20::placeholder { + color: rgb(131 24 67 / 0.2); +} +.placeholder-pink-900\/25::placeholder { + color: rgb(131 24 67 / 0.25); +} +.placeholder-pink-900\/30::placeholder { + color: rgb(131 24 67 / 0.3); +} +.placeholder-pink-900\/40::placeholder { + color: rgb(131 24 67 / 0.4); +} +.placeholder-pink-900\/5::placeholder { + color: rgb(131 24 67 / 0.05); +} +.placeholder-pink-900\/50::placeholder { + color: rgb(131 24 67 / 0.5); +} +.placeholder-pink-900\/60::placeholder { + color: rgb(131 24 67 / 0.6); +} +.placeholder-pink-900\/70::placeholder { + color: rgb(131 24 67 / 0.7); +} +.placeholder-pink-900\/75::placeholder { + color: rgb(131 24 67 / 0.75); +} +.placeholder-pink-900\/80::placeholder { + color: rgb(131 24 67 / 0.8); +} +.placeholder-pink-900\/90::placeholder { + color: rgb(131 24 67 / 0.9); +} +.placeholder-pink-900\/95::placeholder { + color: rgb(131 24 67 / 0.95); +} +.placeholder-preizerdaul-primary::placeholder { + color: var(--preizerdaul-primary); +} +.placeholder-preizerdaul-secondary::placeholder { + color: var(--preizerdaul-secondary); +} +.placeholder-preizerdaul-tertiary::placeholder { + color: var(--preizerdaul-tertiary); +} +.placeholder-primary::placeholder { + color: var(--color-primary); +} +.placeholder-prof-primary::placeholder { + color: var(--prof-primary); +} +.placeholder-prof-secondary::placeholder { + color: var(--prof-secondary); +} +.placeholder-prof-tertiary::placeholder { + color: var(--prof-tertiary); +} +.placeholder-purple-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(243 232 255 / var(--tw-placeholder-opacity)); +} +.placeholder-purple-100\/0::placeholder { + color: rgb(243 232 255 / 0); +} +.placeholder-purple-100\/10::placeholder { + color: rgb(243 232 255 / 0.1); +} +.placeholder-purple-100\/100::placeholder { + color: rgb(243 232 255 / 1); +} +.placeholder-purple-100\/20::placeholder { + color: rgb(243 232 255 / 0.2); +} +.placeholder-purple-100\/25::placeholder { + color: rgb(243 232 255 / 0.25); +} +.placeholder-purple-100\/30::placeholder { + color: rgb(243 232 255 / 0.3); +} +.placeholder-purple-100\/40::placeholder { + color: rgb(243 232 255 / 0.4); +} +.placeholder-purple-100\/5::placeholder { + color: rgb(243 232 255 / 0.05); +} +.placeholder-purple-100\/50::placeholder { + color: rgb(243 232 255 / 0.5); +} +.placeholder-purple-100\/60::placeholder { + color: rgb(243 232 255 / 0.6); +} +.placeholder-purple-100\/70::placeholder { + color: rgb(243 232 255 / 0.7); +} +.placeholder-purple-100\/75::placeholder { + color: rgb(243 232 255 / 0.75); +} +.placeholder-purple-100\/80::placeholder { + color: rgb(243 232 255 / 0.8); +} +.placeholder-purple-100\/90::placeholder { + color: rgb(243 232 255 / 0.9); +} +.placeholder-purple-100\/95::placeholder { + color: rgb(243 232 255 / 0.95); +} +.placeholder-purple-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(233 213 255 / var(--tw-placeholder-opacity)); +} +.placeholder-purple-200\/0::placeholder { + color: rgb(233 213 255 / 0); +} +.placeholder-purple-200\/10::placeholder { + color: rgb(233 213 255 / 0.1); +} +.placeholder-purple-200\/100::placeholder { + color: rgb(233 213 255 / 1); +} +.placeholder-purple-200\/20::placeholder { + color: rgb(233 213 255 / 0.2); +} +.placeholder-purple-200\/25::placeholder { + color: rgb(233 213 255 / 0.25); +} +.placeholder-purple-200\/30::placeholder { + color: rgb(233 213 255 / 0.3); +} +.placeholder-purple-200\/40::placeholder { + color: rgb(233 213 255 / 0.4); +} +.placeholder-purple-200\/5::placeholder { + color: rgb(233 213 255 / 0.05); +} +.placeholder-purple-200\/50::placeholder { + color: rgb(233 213 255 / 0.5); +} +.placeholder-purple-200\/60::placeholder { + color: rgb(233 213 255 / 0.6); +} +.placeholder-purple-200\/70::placeholder { + color: rgb(233 213 255 / 0.7); +} +.placeholder-purple-200\/75::placeholder { + color: rgb(233 213 255 / 0.75); +} +.placeholder-purple-200\/80::placeholder { + color: rgb(233 213 255 / 0.8); +} +.placeholder-purple-200\/90::placeholder { + color: rgb(233 213 255 / 0.9); +} +.placeholder-purple-200\/95::placeholder { + color: rgb(233 213 255 / 0.95); +} +.placeholder-purple-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(216 180 254 / var(--tw-placeholder-opacity)); +} +.placeholder-purple-300\/0::placeholder { + color: rgb(216 180 254 / 0); +} +.placeholder-purple-300\/10::placeholder { + color: rgb(216 180 254 / 0.1); +} +.placeholder-purple-300\/100::placeholder { + color: rgb(216 180 254 / 1); +} +.placeholder-purple-300\/20::placeholder { + color: rgb(216 180 254 / 0.2); +} +.placeholder-purple-300\/25::placeholder { + color: rgb(216 180 254 / 0.25); +} +.placeholder-purple-300\/30::placeholder { + color: rgb(216 180 254 / 0.3); +} +.placeholder-purple-300\/40::placeholder { + color: rgb(216 180 254 / 0.4); +} +.placeholder-purple-300\/5::placeholder { + color: rgb(216 180 254 / 0.05); +} +.placeholder-purple-300\/50::placeholder { + color: rgb(216 180 254 / 0.5); +} +.placeholder-purple-300\/60::placeholder { + color: rgb(216 180 254 / 0.6); +} +.placeholder-purple-300\/70::placeholder { + color: rgb(216 180 254 / 0.7); +} +.placeholder-purple-300\/75::placeholder { + color: rgb(216 180 254 / 0.75); +} +.placeholder-purple-300\/80::placeholder { + color: rgb(216 180 254 / 0.8); +} +.placeholder-purple-300\/90::placeholder { + color: rgb(216 180 254 / 0.9); +} +.placeholder-purple-300\/95::placeholder { + color: rgb(216 180 254 / 0.95); +} +.placeholder-purple-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(192 132 252 / var(--tw-placeholder-opacity)); +} +.placeholder-purple-400\/0::placeholder { + color: rgb(192 132 252 / 0); +} +.placeholder-purple-400\/10::placeholder { + color: rgb(192 132 252 / 0.1); +} +.placeholder-purple-400\/100::placeholder { + color: rgb(192 132 252 / 1); +} +.placeholder-purple-400\/20::placeholder { + color: rgb(192 132 252 / 0.2); +} +.placeholder-purple-400\/25::placeholder { + color: rgb(192 132 252 / 0.25); +} +.placeholder-purple-400\/30::placeholder { + color: rgb(192 132 252 / 0.3); +} +.placeholder-purple-400\/40::placeholder { + color: rgb(192 132 252 / 0.4); +} +.placeholder-purple-400\/5::placeholder { + color: rgb(192 132 252 / 0.05); +} +.placeholder-purple-400\/50::placeholder { + color: rgb(192 132 252 / 0.5); +} +.placeholder-purple-400\/60::placeholder { + color: rgb(192 132 252 / 0.6); +} +.placeholder-purple-400\/70::placeholder { + color: rgb(192 132 252 / 0.7); +} +.placeholder-purple-400\/75::placeholder { + color: rgb(192 132 252 / 0.75); +} +.placeholder-purple-400\/80::placeholder { + color: rgb(192 132 252 / 0.8); +} +.placeholder-purple-400\/90::placeholder { + color: rgb(192 132 252 / 0.9); +} +.placeholder-purple-400\/95::placeholder { + color: rgb(192 132 252 / 0.95); +} +.placeholder-purple-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(250 245 255 / var(--tw-placeholder-opacity)); +} +.placeholder-purple-50\/0::placeholder { + color: rgb(250 245 255 / 0); +} +.placeholder-purple-50\/10::placeholder { + color: rgb(250 245 255 / 0.1); +} +.placeholder-purple-50\/100::placeholder { + color: rgb(250 245 255 / 1); +} +.placeholder-purple-50\/20::placeholder { + color: rgb(250 245 255 / 0.2); +} +.placeholder-purple-50\/25::placeholder { + color: rgb(250 245 255 / 0.25); +} +.placeholder-purple-50\/30::placeholder { + color: rgb(250 245 255 / 0.3); +} +.placeholder-purple-50\/40::placeholder { + color: rgb(250 245 255 / 0.4); +} +.placeholder-purple-50\/5::placeholder { + color: rgb(250 245 255 / 0.05); +} +.placeholder-purple-50\/50::placeholder { + color: rgb(250 245 255 / 0.5); +} +.placeholder-purple-50\/60::placeholder { + color: rgb(250 245 255 / 0.6); +} +.placeholder-purple-50\/70::placeholder { + color: rgb(250 245 255 / 0.7); +} +.placeholder-purple-50\/75::placeholder { + color: rgb(250 245 255 / 0.75); +} +.placeholder-purple-50\/80::placeholder { + color: rgb(250 245 255 / 0.8); +} +.placeholder-purple-50\/90::placeholder { + color: rgb(250 245 255 / 0.9); +} +.placeholder-purple-50\/95::placeholder { + color: rgb(250 245 255 / 0.95); +} +.placeholder-purple-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(168 85 247 / var(--tw-placeholder-opacity)); +} +.placeholder-purple-500\/0::placeholder { + color: rgb(168 85 247 / 0); +} +.placeholder-purple-500\/10::placeholder { + color: rgb(168 85 247 / 0.1); +} +.placeholder-purple-500\/100::placeholder { + color: rgb(168 85 247 / 1); +} +.placeholder-purple-500\/20::placeholder { + color: rgb(168 85 247 / 0.2); +} +.placeholder-purple-500\/25::placeholder { + color: rgb(168 85 247 / 0.25); +} +.placeholder-purple-500\/30::placeholder { + color: rgb(168 85 247 / 0.3); +} +.placeholder-purple-500\/40::placeholder { + color: rgb(168 85 247 / 0.4); +} +.placeholder-purple-500\/5::placeholder { + color: rgb(168 85 247 / 0.05); +} +.placeholder-purple-500\/50::placeholder { + color: rgb(168 85 247 / 0.5); +} +.placeholder-purple-500\/60::placeholder { + color: rgb(168 85 247 / 0.6); +} +.placeholder-purple-500\/70::placeholder { + color: rgb(168 85 247 / 0.7); +} +.placeholder-purple-500\/75::placeholder { + color: rgb(168 85 247 / 0.75); +} +.placeholder-purple-500\/80::placeholder { + color: rgb(168 85 247 / 0.8); +} +.placeholder-purple-500\/90::placeholder { + color: rgb(168 85 247 / 0.9); +} +.placeholder-purple-500\/95::placeholder { + color: rgb(168 85 247 / 0.95); +} +.placeholder-purple-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(147 51 234 / var(--tw-placeholder-opacity)); +} +.placeholder-purple-600\/0::placeholder { + color: rgb(147 51 234 / 0); +} +.placeholder-purple-600\/10::placeholder { + color: rgb(147 51 234 / 0.1); +} +.placeholder-purple-600\/100::placeholder { + color: rgb(147 51 234 / 1); +} +.placeholder-purple-600\/20::placeholder { + color: rgb(147 51 234 / 0.2); +} +.placeholder-purple-600\/25::placeholder { + color: rgb(147 51 234 / 0.25); +} +.placeholder-purple-600\/30::placeholder { + color: rgb(147 51 234 / 0.3); +} +.placeholder-purple-600\/40::placeholder { + color: rgb(147 51 234 / 0.4); +} +.placeholder-purple-600\/5::placeholder { + color: rgb(147 51 234 / 0.05); +} +.placeholder-purple-600\/50::placeholder { + color: rgb(147 51 234 / 0.5); +} +.placeholder-purple-600\/60::placeholder { + color: rgb(147 51 234 / 0.6); +} +.placeholder-purple-600\/70::placeholder { + color: rgb(147 51 234 / 0.7); +} +.placeholder-purple-600\/75::placeholder { + color: rgb(147 51 234 / 0.75); +} +.placeholder-purple-600\/80::placeholder { + color: rgb(147 51 234 / 0.8); +} +.placeholder-purple-600\/90::placeholder { + color: rgb(147 51 234 / 0.9); +} +.placeholder-purple-600\/95::placeholder { + color: rgb(147 51 234 / 0.95); +} +.placeholder-purple-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(126 34 206 / var(--tw-placeholder-opacity)); +} +.placeholder-purple-700\/0::placeholder { + color: rgb(126 34 206 / 0); +} +.placeholder-purple-700\/10::placeholder { + color: rgb(126 34 206 / 0.1); +} +.placeholder-purple-700\/100::placeholder { + color: rgb(126 34 206 / 1); +} +.placeholder-purple-700\/20::placeholder { + color: rgb(126 34 206 / 0.2); +} +.placeholder-purple-700\/25::placeholder { + color: rgb(126 34 206 / 0.25); +} +.placeholder-purple-700\/30::placeholder { + color: rgb(126 34 206 / 0.3); +} +.placeholder-purple-700\/40::placeholder { + color: rgb(126 34 206 / 0.4); +} +.placeholder-purple-700\/5::placeholder { + color: rgb(126 34 206 / 0.05); +} +.placeholder-purple-700\/50::placeholder { + color: rgb(126 34 206 / 0.5); +} +.placeholder-purple-700\/60::placeholder { + color: rgb(126 34 206 / 0.6); +} +.placeholder-purple-700\/70::placeholder { + color: rgb(126 34 206 / 0.7); +} +.placeholder-purple-700\/75::placeholder { + color: rgb(126 34 206 / 0.75); +} +.placeholder-purple-700\/80::placeholder { + color: rgb(126 34 206 / 0.8); +} +.placeholder-purple-700\/90::placeholder { + color: rgb(126 34 206 / 0.9); +} +.placeholder-purple-700\/95::placeholder { + color: rgb(126 34 206 / 0.95); +} +.placeholder-purple-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(107 33 168 / var(--tw-placeholder-opacity)); +} +.placeholder-purple-800\/0::placeholder { + color: rgb(107 33 168 / 0); +} +.placeholder-purple-800\/10::placeholder { + color: rgb(107 33 168 / 0.1); +} +.placeholder-purple-800\/100::placeholder { + color: rgb(107 33 168 / 1); +} +.placeholder-purple-800\/20::placeholder { + color: rgb(107 33 168 / 0.2); +} +.placeholder-purple-800\/25::placeholder { + color: rgb(107 33 168 / 0.25); +} +.placeholder-purple-800\/30::placeholder { + color: rgb(107 33 168 / 0.3); +} +.placeholder-purple-800\/40::placeholder { + color: rgb(107 33 168 / 0.4); +} +.placeholder-purple-800\/5::placeholder { + color: rgb(107 33 168 / 0.05); +} +.placeholder-purple-800\/50::placeholder { + color: rgb(107 33 168 / 0.5); +} +.placeholder-purple-800\/60::placeholder { + color: rgb(107 33 168 / 0.6); +} +.placeholder-purple-800\/70::placeholder { + color: rgb(107 33 168 / 0.7); +} +.placeholder-purple-800\/75::placeholder { + color: rgb(107 33 168 / 0.75); +} +.placeholder-purple-800\/80::placeholder { + color: rgb(107 33 168 / 0.8); +} +.placeholder-purple-800\/90::placeholder { + color: rgb(107 33 168 / 0.9); +} +.placeholder-purple-800\/95::placeholder { + color: rgb(107 33 168 / 0.95); +} +.placeholder-purple-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(88 28 135 / var(--tw-placeholder-opacity)); +} +.placeholder-purple-900\/0::placeholder { + color: rgb(88 28 135 / 0); +} +.placeholder-purple-900\/10::placeholder { + color: rgb(88 28 135 / 0.1); +} +.placeholder-purple-900\/100::placeholder { + color: rgb(88 28 135 / 1); +} +.placeholder-purple-900\/20::placeholder { + color: rgb(88 28 135 / 0.2); +} +.placeholder-purple-900\/25::placeholder { + color: rgb(88 28 135 / 0.25); +} +.placeholder-purple-900\/30::placeholder { + color: rgb(88 28 135 / 0.3); +} +.placeholder-purple-900\/40::placeholder { + color: rgb(88 28 135 / 0.4); +} +.placeholder-purple-900\/5::placeholder { + color: rgb(88 28 135 / 0.05); +} +.placeholder-purple-900\/50::placeholder { + color: rgb(88 28 135 / 0.5); +} +.placeholder-purple-900\/60::placeholder { + color: rgb(88 28 135 / 0.6); +} +.placeholder-purple-900\/70::placeholder { + color: rgb(88 28 135 / 0.7); +} +.placeholder-purple-900\/75::placeholder { + color: rgb(88 28 135 / 0.75); +} +.placeholder-purple-900\/80::placeholder { + color: rgb(88 28 135 / 0.8); +} +.placeholder-purple-900\/90::placeholder { + color: rgb(88 28 135 / 0.9); +} +.placeholder-purple-900\/95::placeholder { + color: rgb(88 28 135 / 0.95); +} +.placeholder-red-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(254 226 226 / var(--tw-placeholder-opacity)); +} +.placeholder-red-100\/0::placeholder { + color: rgb(254 226 226 / 0); +} +.placeholder-red-100\/10::placeholder { + color: rgb(254 226 226 / 0.1); +} +.placeholder-red-100\/100::placeholder { + color: rgb(254 226 226 / 1); +} +.placeholder-red-100\/20::placeholder { + color: rgb(254 226 226 / 0.2); +} +.placeholder-red-100\/25::placeholder { + color: rgb(254 226 226 / 0.25); +} +.placeholder-red-100\/30::placeholder { + color: rgb(254 226 226 / 0.3); +} +.placeholder-red-100\/40::placeholder { + color: rgb(254 226 226 / 0.4); +} +.placeholder-red-100\/5::placeholder { + color: rgb(254 226 226 / 0.05); +} +.placeholder-red-100\/50::placeholder { + color: rgb(254 226 226 / 0.5); +} +.placeholder-red-100\/60::placeholder { + color: rgb(254 226 226 / 0.6); +} +.placeholder-red-100\/70::placeholder { + color: rgb(254 226 226 / 0.7); +} +.placeholder-red-100\/75::placeholder { + color: rgb(254 226 226 / 0.75); +} +.placeholder-red-100\/80::placeholder { + color: rgb(254 226 226 / 0.8); +} +.placeholder-red-100\/90::placeholder { + color: rgb(254 226 226 / 0.9); +} +.placeholder-red-100\/95::placeholder { + color: rgb(254 226 226 / 0.95); +} +.placeholder-red-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(254 202 202 / var(--tw-placeholder-opacity)); +} +.placeholder-red-200\/0::placeholder { + color: rgb(254 202 202 / 0); +} +.placeholder-red-200\/10::placeholder { + color: rgb(254 202 202 / 0.1); +} +.placeholder-red-200\/100::placeholder { + color: rgb(254 202 202 / 1); +} +.placeholder-red-200\/20::placeholder { + color: rgb(254 202 202 / 0.2); +} +.placeholder-red-200\/25::placeholder { + color: rgb(254 202 202 / 0.25); +} +.placeholder-red-200\/30::placeholder { + color: rgb(254 202 202 / 0.3); +} +.placeholder-red-200\/40::placeholder { + color: rgb(254 202 202 / 0.4); +} +.placeholder-red-200\/5::placeholder { + color: rgb(254 202 202 / 0.05); +} +.placeholder-red-200\/50::placeholder { + color: rgb(254 202 202 / 0.5); +} +.placeholder-red-200\/60::placeholder { + color: rgb(254 202 202 / 0.6); +} +.placeholder-red-200\/70::placeholder { + color: rgb(254 202 202 / 0.7); +} +.placeholder-red-200\/75::placeholder { + color: rgb(254 202 202 / 0.75); +} +.placeholder-red-200\/80::placeholder { + color: rgb(254 202 202 / 0.8); +} +.placeholder-red-200\/90::placeholder { + color: rgb(254 202 202 / 0.9); +} +.placeholder-red-200\/95::placeholder { + color: rgb(254 202 202 / 0.95); +} +.placeholder-red-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(252 165 165 / var(--tw-placeholder-opacity)); +} +.placeholder-red-300\/0::placeholder { + color: rgb(252 165 165 / 0); +} +.placeholder-red-300\/10::placeholder { + color: rgb(252 165 165 / 0.1); +} +.placeholder-red-300\/100::placeholder { + color: rgb(252 165 165 / 1); +} +.placeholder-red-300\/20::placeholder { + color: rgb(252 165 165 / 0.2); +} +.placeholder-red-300\/25::placeholder { + color: rgb(252 165 165 / 0.25); +} +.placeholder-red-300\/30::placeholder { + color: rgb(252 165 165 / 0.3); +} +.placeholder-red-300\/40::placeholder { + color: rgb(252 165 165 / 0.4); +} +.placeholder-red-300\/5::placeholder { + color: rgb(252 165 165 / 0.05); +} +.placeholder-red-300\/50::placeholder { + color: rgb(252 165 165 / 0.5); +} +.placeholder-red-300\/60::placeholder { + color: rgb(252 165 165 / 0.6); +} +.placeholder-red-300\/70::placeholder { + color: rgb(252 165 165 / 0.7); +} +.placeholder-red-300\/75::placeholder { + color: rgb(252 165 165 / 0.75); +} +.placeholder-red-300\/80::placeholder { + color: rgb(252 165 165 / 0.8); +} +.placeholder-red-300\/90::placeholder { + color: rgb(252 165 165 / 0.9); +} +.placeholder-red-300\/95::placeholder { + color: rgb(252 165 165 / 0.95); +} +.placeholder-red-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(248 113 113 / var(--tw-placeholder-opacity)); +} +.placeholder-red-400\/0::placeholder { + color: rgb(248 113 113 / 0); +} +.placeholder-red-400\/10::placeholder { + color: rgb(248 113 113 / 0.1); +} +.placeholder-red-400\/100::placeholder { + color: rgb(248 113 113 / 1); +} +.placeholder-red-400\/20::placeholder { + color: rgb(248 113 113 / 0.2); +} +.placeholder-red-400\/25::placeholder { + color: rgb(248 113 113 / 0.25); +} +.placeholder-red-400\/30::placeholder { + color: rgb(248 113 113 / 0.3); +} +.placeholder-red-400\/40::placeholder { + color: rgb(248 113 113 / 0.4); +} +.placeholder-red-400\/5::placeholder { + color: rgb(248 113 113 / 0.05); +} +.placeholder-red-400\/50::placeholder { + color: rgb(248 113 113 / 0.5); +} +.placeholder-red-400\/60::placeholder { + color: rgb(248 113 113 / 0.6); +} +.placeholder-red-400\/70::placeholder { + color: rgb(248 113 113 / 0.7); +} +.placeholder-red-400\/75::placeholder { + color: rgb(248 113 113 / 0.75); +} +.placeholder-red-400\/80::placeholder { + color: rgb(248 113 113 / 0.8); +} +.placeholder-red-400\/90::placeholder { + color: rgb(248 113 113 / 0.9); +} +.placeholder-red-400\/95::placeholder { + color: rgb(248 113 113 / 0.95); +} +.placeholder-red-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(254 242 242 / var(--tw-placeholder-opacity)); +} +.placeholder-red-50\/0::placeholder { + color: rgb(254 242 242 / 0); +} +.placeholder-red-50\/10::placeholder { + color: rgb(254 242 242 / 0.1); +} +.placeholder-red-50\/100::placeholder { + color: rgb(254 242 242 / 1); +} +.placeholder-red-50\/20::placeholder { + color: rgb(254 242 242 / 0.2); +} +.placeholder-red-50\/25::placeholder { + color: rgb(254 242 242 / 0.25); +} +.placeholder-red-50\/30::placeholder { + color: rgb(254 242 242 / 0.3); +} +.placeholder-red-50\/40::placeholder { + color: rgb(254 242 242 / 0.4); +} +.placeholder-red-50\/5::placeholder { + color: rgb(254 242 242 / 0.05); +} +.placeholder-red-50\/50::placeholder { + color: rgb(254 242 242 / 0.5); +} +.placeholder-red-50\/60::placeholder { + color: rgb(254 242 242 / 0.6); +} +.placeholder-red-50\/70::placeholder { + color: rgb(254 242 242 / 0.7); +} +.placeholder-red-50\/75::placeholder { + color: rgb(254 242 242 / 0.75); +} +.placeholder-red-50\/80::placeholder { + color: rgb(254 242 242 / 0.8); +} +.placeholder-red-50\/90::placeholder { + color: rgb(254 242 242 / 0.9); +} +.placeholder-red-50\/95::placeholder { + color: rgb(254 242 242 / 0.95); +} +.placeholder-red-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(239 68 68 / var(--tw-placeholder-opacity)); +} +.placeholder-red-500\/0::placeholder { + color: rgb(239 68 68 / 0); +} +.placeholder-red-500\/10::placeholder { + color: rgb(239 68 68 / 0.1); +} +.placeholder-red-500\/100::placeholder { + color: rgb(239 68 68 / 1); +} +.placeholder-red-500\/20::placeholder { + color: rgb(239 68 68 / 0.2); +} +.placeholder-red-500\/25::placeholder { + color: rgb(239 68 68 / 0.25); +} +.placeholder-red-500\/30::placeholder { + color: rgb(239 68 68 / 0.3); +} +.placeholder-red-500\/40::placeholder { + color: rgb(239 68 68 / 0.4); +} +.placeholder-red-500\/5::placeholder { + color: rgb(239 68 68 / 0.05); +} +.placeholder-red-500\/50::placeholder { + color: rgb(239 68 68 / 0.5); +} +.placeholder-red-500\/60::placeholder { + color: rgb(239 68 68 / 0.6); +} +.placeholder-red-500\/70::placeholder { + color: rgb(239 68 68 / 0.7); +} +.placeholder-red-500\/75::placeholder { + color: rgb(239 68 68 / 0.75); +} +.placeholder-red-500\/80::placeholder { + color: rgb(239 68 68 / 0.8); +} +.placeholder-red-500\/90::placeholder { + color: rgb(239 68 68 / 0.9); +} +.placeholder-red-500\/95::placeholder { + color: rgb(239 68 68 / 0.95); +} +.placeholder-red-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(220 38 38 / var(--tw-placeholder-opacity)); +} +.placeholder-red-600\/0::placeholder { + color: rgb(220 38 38 / 0); +} +.placeholder-red-600\/10::placeholder { + color: rgb(220 38 38 / 0.1); +} +.placeholder-red-600\/100::placeholder { + color: rgb(220 38 38 / 1); +} +.placeholder-red-600\/20::placeholder { + color: rgb(220 38 38 / 0.2); +} +.placeholder-red-600\/25::placeholder { + color: rgb(220 38 38 / 0.25); +} +.placeholder-red-600\/30::placeholder { + color: rgb(220 38 38 / 0.3); +} +.placeholder-red-600\/40::placeholder { + color: rgb(220 38 38 / 0.4); +} +.placeholder-red-600\/5::placeholder { + color: rgb(220 38 38 / 0.05); +} +.placeholder-red-600\/50::placeholder { + color: rgb(220 38 38 / 0.5); +} +.placeholder-red-600\/60::placeholder { + color: rgb(220 38 38 / 0.6); +} +.placeholder-red-600\/70::placeholder { + color: rgb(220 38 38 / 0.7); +} +.placeholder-red-600\/75::placeholder { + color: rgb(220 38 38 / 0.75); +} +.placeholder-red-600\/80::placeholder { + color: rgb(220 38 38 / 0.8); +} +.placeholder-red-600\/90::placeholder { + color: rgb(220 38 38 / 0.9); +} +.placeholder-red-600\/95::placeholder { + color: rgb(220 38 38 / 0.95); +} +.placeholder-red-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(185 28 28 / var(--tw-placeholder-opacity)); +} +.placeholder-red-700\/0::placeholder { + color: rgb(185 28 28 / 0); +} +.placeholder-red-700\/10::placeholder { + color: rgb(185 28 28 / 0.1); +} +.placeholder-red-700\/100::placeholder { + color: rgb(185 28 28 / 1); +} +.placeholder-red-700\/20::placeholder { + color: rgb(185 28 28 / 0.2); +} +.placeholder-red-700\/25::placeholder { + color: rgb(185 28 28 / 0.25); +} +.placeholder-red-700\/30::placeholder { + color: rgb(185 28 28 / 0.3); +} +.placeholder-red-700\/40::placeholder { + color: rgb(185 28 28 / 0.4); +} +.placeholder-red-700\/5::placeholder { + color: rgb(185 28 28 / 0.05); +} +.placeholder-red-700\/50::placeholder { + color: rgb(185 28 28 / 0.5); +} +.placeholder-red-700\/60::placeholder { + color: rgb(185 28 28 / 0.6); +} +.placeholder-red-700\/70::placeholder { + color: rgb(185 28 28 / 0.7); +} +.placeholder-red-700\/75::placeholder { + color: rgb(185 28 28 / 0.75); +} +.placeholder-red-700\/80::placeholder { + color: rgb(185 28 28 / 0.8); +} +.placeholder-red-700\/90::placeholder { + color: rgb(185 28 28 / 0.9); +} +.placeholder-red-700\/95::placeholder { + color: rgb(185 28 28 / 0.95); +} +.placeholder-red-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(153 27 27 / var(--tw-placeholder-opacity)); +} +.placeholder-red-800\/0::placeholder { + color: rgb(153 27 27 / 0); +} +.placeholder-red-800\/10::placeholder { + color: rgb(153 27 27 / 0.1); +} +.placeholder-red-800\/100::placeholder { + color: rgb(153 27 27 / 1); +} +.placeholder-red-800\/20::placeholder { + color: rgb(153 27 27 / 0.2); +} +.placeholder-red-800\/25::placeholder { + color: rgb(153 27 27 / 0.25); +} +.placeholder-red-800\/30::placeholder { + color: rgb(153 27 27 / 0.3); +} +.placeholder-red-800\/40::placeholder { + color: rgb(153 27 27 / 0.4); +} +.placeholder-red-800\/5::placeholder { + color: rgb(153 27 27 / 0.05); +} +.placeholder-red-800\/50::placeholder { + color: rgb(153 27 27 / 0.5); +} +.placeholder-red-800\/60::placeholder { + color: rgb(153 27 27 / 0.6); +} +.placeholder-red-800\/70::placeholder { + color: rgb(153 27 27 / 0.7); +} +.placeholder-red-800\/75::placeholder { + color: rgb(153 27 27 / 0.75); +} +.placeholder-red-800\/80::placeholder { + color: rgb(153 27 27 / 0.8); +} +.placeholder-red-800\/90::placeholder { + color: rgb(153 27 27 / 0.9); +} +.placeholder-red-800\/95::placeholder { + color: rgb(153 27 27 / 0.95); +} +.placeholder-red-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(127 29 29 / var(--tw-placeholder-opacity)); +} +.placeholder-red-900\/0::placeholder { + color: rgb(127 29 29 / 0); +} +.placeholder-red-900\/10::placeholder { + color: rgb(127 29 29 / 0.1); +} +.placeholder-red-900\/100::placeholder { + color: rgb(127 29 29 / 1); +} +.placeholder-red-900\/20::placeholder { + color: rgb(127 29 29 / 0.2); +} +.placeholder-red-900\/25::placeholder { + color: rgb(127 29 29 / 0.25); +} +.placeholder-red-900\/30::placeholder { + color: rgb(127 29 29 / 0.3); +} +.placeholder-red-900\/40::placeholder { + color: rgb(127 29 29 / 0.4); +} +.placeholder-red-900\/5::placeholder { + color: rgb(127 29 29 / 0.05); +} +.placeholder-red-900\/50::placeholder { + color: rgb(127 29 29 / 0.5); +} +.placeholder-red-900\/60::placeholder { + color: rgb(127 29 29 / 0.6); +} +.placeholder-red-900\/70::placeholder { + color: rgb(127 29 29 / 0.7); +} +.placeholder-red-900\/75::placeholder { + color: rgb(127 29 29 / 0.75); +} +.placeholder-red-900\/80::placeholder { + color: rgb(127 29 29 / 0.8); +} +.placeholder-red-900\/90::placeholder { + color: rgb(127 29 29 / 0.9); +} +.placeholder-red-900\/95::placeholder { + color: rgb(127 29 29 / 0.95); +} +.placeholder-remich-primary::placeholder { + color: var(--remich-primary); +} +.placeholder-remich-secondary::placeholder { + color: var(--remich-secondary); +} +.placeholder-remich-tertiary::placeholder { + color: var(--remich-tertiary); +} +.placeholder-rose-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(255 228 230 / var(--tw-placeholder-opacity)); +} +.placeholder-rose-100\/0::placeholder { + color: rgb(255 228 230 / 0); +} +.placeholder-rose-100\/10::placeholder { + color: rgb(255 228 230 / 0.1); +} +.placeholder-rose-100\/100::placeholder { + color: rgb(255 228 230 / 1); +} +.placeholder-rose-100\/20::placeholder { + color: rgb(255 228 230 / 0.2); +} +.placeholder-rose-100\/25::placeholder { + color: rgb(255 228 230 / 0.25); +} +.placeholder-rose-100\/30::placeholder { + color: rgb(255 228 230 / 0.3); +} +.placeholder-rose-100\/40::placeholder { + color: rgb(255 228 230 / 0.4); +} +.placeholder-rose-100\/5::placeholder { + color: rgb(255 228 230 / 0.05); +} +.placeholder-rose-100\/50::placeholder { + color: rgb(255 228 230 / 0.5); +} +.placeholder-rose-100\/60::placeholder { + color: rgb(255 228 230 / 0.6); +} +.placeholder-rose-100\/70::placeholder { + color: rgb(255 228 230 / 0.7); +} +.placeholder-rose-100\/75::placeholder { + color: rgb(255 228 230 / 0.75); +} +.placeholder-rose-100\/80::placeholder { + color: rgb(255 228 230 / 0.8); +} +.placeholder-rose-100\/90::placeholder { + color: rgb(255 228 230 / 0.9); +} +.placeholder-rose-100\/95::placeholder { + color: rgb(255 228 230 / 0.95); +} +.placeholder-rose-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(254 205 211 / var(--tw-placeholder-opacity)); +} +.placeholder-rose-200\/0::placeholder { + color: rgb(254 205 211 / 0); +} +.placeholder-rose-200\/10::placeholder { + color: rgb(254 205 211 / 0.1); +} +.placeholder-rose-200\/100::placeholder { + color: rgb(254 205 211 / 1); +} +.placeholder-rose-200\/20::placeholder { + color: rgb(254 205 211 / 0.2); +} +.placeholder-rose-200\/25::placeholder { + color: rgb(254 205 211 / 0.25); +} +.placeholder-rose-200\/30::placeholder { + color: rgb(254 205 211 / 0.3); +} +.placeholder-rose-200\/40::placeholder { + color: rgb(254 205 211 / 0.4); +} +.placeholder-rose-200\/5::placeholder { + color: rgb(254 205 211 / 0.05); +} +.placeholder-rose-200\/50::placeholder { + color: rgb(254 205 211 / 0.5); +} +.placeholder-rose-200\/60::placeholder { + color: rgb(254 205 211 / 0.6); +} +.placeholder-rose-200\/70::placeholder { + color: rgb(254 205 211 / 0.7); +} +.placeholder-rose-200\/75::placeholder { + color: rgb(254 205 211 / 0.75); +} +.placeholder-rose-200\/80::placeholder { + color: rgb(254 205 211 / 0.8); +} +.placeholder-rose-200\/90::placeholder { + color: rgb(254 205 211 / 0.9); +} +.placeholder-rose-200\/95::placeholder { + color: rgb(254 205 211 / 0.95); +} +.placeholder-rose-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(253 164 175 / var(--tw-placeholder-opacity)); +} +.placeholder-rose-300\/0::placeholder { + color: rgb(253 164 175 / 0); +} +.placeholder-rose-300\/10::placeholder { + color: rgb(253 164 175 / 0.1); +} +.placeholder-rose-300\/100::placeholder { + color: rgb(253 164 175 / 1); +} +.placeholder-rose-300\/20::placeholder { + color: rgb(253 164 175 / 0.2); +} +.placeholder-rose-300\/25::placeholder { + color: rgb(253 164 175 / 0.25); +} +.placeholder-rose-300\/30::placeholder { + color: rgb(253 164 175 / 0.3); +} +.placeholder-rose-300\/40::placeholder { + color: rgb(253 164 175 / 0.4); +} +.placeholder-rose-300\/5::placeholder { + color: rgb(253 164 175 / 0.05); +} +.placeholder-rose-300\/50::placeholder { + color: rgb(253 164 175 / 0.5); +} +.placeholder-rose-300\/60::placeholder { + color: rgb(253 164 175 / 0.6); +} +.placeholder-rose-300\/70::placeholder { + color: rgb(253 164 175 / 0.7); +} +.placeholder-rose-300\/75::placeholder { + color: rgb(253 164 175 / 0.75); +} +.placeholder-rose-300\/80::placeholder { + color: rgb(253 164 175 / 0.8); +} +.placeholder-rose-300\/90::placeholder { + color: rgb(253 164 175 / 0.9); +} +.placeholder-rose-300\/95::placeholder { + color: rgb(253 164 175 / 0.95); +} +.placeholder-rose-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(251 113 133 / var(--tw-placeholder-opacity)); +} +.placeholder-rose-400\/0::placeholder { + color: rgb(251 113 133 / 0); +} +.placeholder-rose-400\/10::placeholder { + color: rgb(251 113 133 / 0.1); +} +.placeholder-rose-400\/100::placeholder { + color: rgb(251 113 133 / 1); +} +.placeholder-rose-400\/20::placeholder { + color: rgb(251 113 133 / 0.2); +} +.placeholder-rose-400\/25::placeholder { + color: rgb(251 113 133 / 0.25); +} +.placeholder-rose-400\/30::placeholder { + color: rgb(251 113 133 / 0.3); +} +.placeholder-rose-400\/40::placeholder { + color: rgb(251 113 133 / 0.4); +} +.placeholder-rose-400\/5::placeholder { + color: rgb(251 113 133 / 0.05); +} +.placeholder-rose-400\/50::placeholder { + color: rgb(251 113 133 / 0.5); +} +.placeholder-rose-400\/60::placeholder { + color: rgb(251 113 133 / 0.6); +} +.placeholder-rose-400\/70::placeholder { + color: rgb(251 113 133 / 0.7); +} +.placeholder-rose-400\/75::placeholder { + color: rgb(251 113 133 / 0.75); +} +.placeholder-rose-400\/80::placeholder { + color: rgb(251 113 133 / 0.8); +} +.placeholder-rose-400\/90::placeholder { + color: rgb(251 113 133 / 0.9); +} +.placeholder-rose-400\/95::placeholder { + color: rgb(251 113 133 / 0.95); +} +.placeholder-rose-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(255 241 242 / var(--tw-placeholder-opacity)); +} +.placeholder-rose-50\/0::placeholder { + color: rgb(255 241 242 / 0); +} +.placeholder-rose-50\/10::placeholder { + color: rgb(255 241 242 / 0.1); +} +.placeholder-rose-50\/100::placeholder { + color: rgb(255 241 242 / 1); +} +.placeholder-rose-50\/20::placeholder { + color: rgb(255 241 242 / 0.2); +} +.placeholder-rose-50\/25::placeholder { + color: rgb(255 241 242 / 0.25); +} +.placeholder-rose-50\/30::placeholder { + color: rgb(255 241 242 / 0.3); +} +.placeholder-rose-50\/40::placeholder { + color: rgb(255 241 242 / 0.4); +} +.placeholder-rose-50\/5::placeholder { + color: rgb(255 241 242 / 0.05); +} +.placeholder-rose-50\/50::placeholder { + color: rgb(255 241 242 / 0.5); +} +.placeholder-rose-50\/60::placeholder { + color: rgb(255 241 242 / 0.6); +} +.placeholder-rose-50\/70::placeholder { + color: rgb(255 241 242 / 0.7); +} +.placeholder-rose-50\/75::placeholder { + color: rgb(255 241 242 / 0.75); +} +.placeholder-rose-50\/80::placeholder { + color: rgb(255 241 242 / 0.8); +} +.placeholder-rose-50\/90::placeholder { + color: rgb(255 241 242 / 0.9); +} +.placeholder-rose-50\/95::placeholder { + color: rgb(255 241 242 / 0.95); +} +.placeholder-rose-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(244 63 94 / var(--tw-placeholder-opacity)); +} +.placeholder-rose-500\/0::placeholder { + color: rgb(244 63 94 / 0); +} +.placeholder-rose-500\/10::placeholder { + color: rgb(244 63 94 / 0.1); +} +.placeholder-rose-500\/100::placeholder { + color: rgb(244 63 94 / 1); +} +.placeholder-rose-500\/20::placeholder { + color: rgb(244 63 94 / 0.2); +} +.placeholder-rose-500\/25::placeholder { + color: rgb(244 63 94 / 0.25); +} +.placeholder-rose-500\/30::placeholder { + color: rgb(244 63 94 / 0.3); +} +.placeholder-rose-500\/40::placeholder { + color: rgb(244 63 94 / 0.4); +} +.placeholder-rose-500\/5::placeholder { + color: rgb(244 63 94 / 0.05); +} +.placeholder-rose-500\/50::placeholder { + color: rgb(244 63 94 / 0.5); +} +.placeholder-rose-500\/60::placeholder { + color: rgb(244 63 94 / 0.6); +} +.placeholder-rose-500\/70::placeholder { + color: rgb(244 63 94 / 0.7); +} +.placeholder-rose-500\/75::placeholder { + color: rgb(244 63 94 / 0.75); +} +.placeholder-rose-500\/80::placeholder { + color: rgb(244 63 94 / 0.8); +} +.placeholder-rose-500\/90::placeholder { + color: rgb(244 63 94 / 0.9); +} +.placeholder-rose-500\/95::placeholder { + color: rgb(244 63 94 / 0.95); +} +.placeholder-rose-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(225 29 72 / var(--tw-placeholder-opacity)); +} +.placeholder-rose-600\/0::placeholder { + color: rgb(225 29 72 / 0); +} +.placeholder-rose-600\/10::placeholder { + color: rgb(225 29 72 / 0.1); +} +.placeholder-rose-600\/100::placeholder { + color: rgb(225 29 72 / 1); +} +.placeholder-rose-600\/20::placeholder { + color: rgb(225 29 72 / 0.2); +} +.placeholder-rose-600\/25::placeholder { + color: rgb(225 29 72 / 0.25); +} +.placeholder-rose-600\/30::placeholder { + color: rgb(225 29 72 / 0.3); +} +.placeholder-rose-600\/40::placeholder { + color: rgb(225 29 72 / 0.4); +} +.placeholder-rose-600\/5::placeholder { + color: rgb(225 29 72 / 0.05); +} +.placeholder-rose-600\/50::placeholder { + color: rgb(225 29 72 / 0.5); +} +.placeholder-rose-600\/60::placeholder { + color: rgb(225 29 72 / 0.6); +} +.placeholder-rose-600\/70::placeholder { + color: rgb(225 29 72 / 0.7); +} +.placeholder-rose-600\/75::placeholder { + color: rgb(225 29 72 / 0.75); +} +.placeholder-rose-600\/80::placeholder { + color: rgb(225 29 72 / 0.8); +} +.placeholder-rose-600\/90::placeholder { + color: rgb(225 29 72 / 0.9); +} +.placeholder-rose-600\/95::placeholder { + color: rgb(225 29 72 / 0.95); +} +.placeholder-rose-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(190 18 60 / var(--tw-placeholder-opacity)); +} +.placeholder-rose-700\/0::placeholder { + color: rgb(190 18 60 / 0); +} +.placeholder-rose-700\/10::placeholder { + color: rgb(190 18 60 / 0.1); +} +.placeholder-rose-700\/100::placeholder { + color: rgb(190 18 60 / 1); +} +.placeholder-rose-700\/20::placeholder { + color: rgb(190 18 60 / 0.2); +} +.placeholder-rose-700\/25::placeholder { + color: rgb(190 18 60 / 0.25); +} +.placeholder-rose-700\/30::placeholder { + color: rgb(190 18 60 / 0.3); +} +.placeholder-rose-700\/40::placeholder { + color: rgb(190 18 60 / 0.4); +} +.placeholder-rose-700\/5::placeholder { + color: rgb(190 18 60 / 0.05); +} +.placeholder-rose-700\/50::placeholder { + color: rgb(190 18 60 / 0.5); +} +.placeholder-rose-700\/60::placeholder { + color: rgb(190 18 60 / 0.6); +} +.placeholder-rose-700\/70::placeholder { + color: rgb(190 18 60 / 0.7); +} +.placeholder-rose-700\/75::placeholder { + color: rgb(190 18 60 / 0.75); +} +.placeholder-rose-700\/80::placeholder { + color: rgb(190 18 60 / 0.8); +} +.placeholder-rose-700\/90::placeholder { + color: rgb(190 18 60 / 0.9); +} +.placeholder-rose-700\/95::placeholder { + color: rgb(190 18 60 / 0.95); +} +.placeholder-rose-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(159 18 57 / var(--tw-placeholder-opacity)); +} +.placeholder-rose-800\/0::placeholder { + color: rgb(159 18 57 / 0); +} +.placeholder-rose-800\/10::placeholder { + color: rgb(159 18 57 / 0.1); +} +.placeholder-rose-800\/100::placeholder { + color: rgb(159 18 57 / 1); +} +.placeholder-rose-800\/20::placeholder { + color: rgb(159 18 57 / 0.2); +} +.placeholder-rose-800\/25::placeholder { + color: rgb(159 18 57 / 0.25); +} +.placeholder-rose-800\/30::placeholder { + color: rgb(159 18 57 / 0.3); +} +.placeholder-rose-800\/40::placeholder { + color: rgb(159 18 57 / 0.4); +} +.placeholder-rose-800\/5::placeholder { + color: rgb(159 18 57 / 0.05); +} +.placeholder-rose-800\/50::placeholder { + color: rgb(159 18 57 / 0.5); +} +.placeholder-rose-800\/60::placeholder { + color: rgb(159 18 57 / 0.6); +} +.placeholder-rose-800\/70::placeholder { + color: rgb(159 18 57 / 0.7); +} +.placeholder-rose-800\/75::placeholder { + color: rgb(159 18 57 / 0.75); +} +.placeholder-rose-800\/80::placeholder { + color: rgb(159 18 57 / 0.8); +} +.placeholder-rose-800\/90::placeholder { + color: rgb(159 18 57 / 0.9); +} +.placeholder-rose-800\/95::placeholder { + color: rgb(159 18 57 / 0.95); +} +.placeholder-rose-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(136 19 55 / var(--tw-placeholder-opacity)); +} +.placeholder-rose-900\/0::placeholder { + color: rgb(136 19 55 / 0); +} +.placeholder-rose-900\/10::placeholder { + color: rgb(136 19 55 / 0.1); +} +.placeholder-rose-900\/100::placeholder { + color: rgb(136 19 55 / 1); +} +.placeholder-rose-900\/20::placeholder { + color: rgb(136 19 55 / 0.2); +} +.placeholder-rose-900\/25::placeholder { + color: rgb(136 19 55 / 0.25); +} +.placeholder-rose-900\/30::placeholder { + color: rgb(136 19 55 / 0.3); +} +.placeholder-rose-900\/40::placeholder { + color: rgb(136 19 55 / 0.4); +} +.placeholder-rose-900\/5::placeholder { + color: rgb(136 19 55 / 0.05); +} +.placeholder-rose-900\/50::placeholder { + color: rgb(136 19 55 / 0.5); +} +.placeholder-rose-900\/60::placeholder { + color: rgb(136 19 55 / 0.6); +} +.placeholder-rose-900\/70::placeholder { + color: rgb(136 19 55 / 0.7); +} +.placeholder-rose-900\/75::placeholder { + color: rgb(136 19 55 / 0.75); +} +.placeholder-rose-900\/80::placeholder { + color: rgb(136 19 55 / 0.8); +} +.placeholder-rose-900\/90::placeholder { + color: rgb(136 19 55 / 0.9); +} +.placeholder-rose-900\/95::placeholder { + color: rgb(136 19 55 / 0.95); +} +.placeholder-secondary::placeholder { + color: var(--color-secondary); +} +.placeholder-sig_secours-primary::placeholder { + color: var(--sig_secours-primary); +} +.placeholder-sig_secours-secondary::placeholder { + color: var(--sig_secours-secondary); +} +.placeholder-sig_secours-tertiary::placeholder { + color: var(--sig_secours-tertiary); +} +.placeholder-sky-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(224 242 254 / var(--tw-placeholder-opacity)); +} +.placeholder-sky-100\/0::placeholder { + color: rgb(224 242 254 / 0); +} +.placeholder-sky-100\/10::placeholder { + color: rgb(224 242 254 / 0.1); +} +.placeholder-sky-100\/100::placeholder { + color: rgb(224 242 254 / 1); +} +.placeholder-sky-100\/20::placeholder { + color: rgb(224 242 254 / 0.2); +} +.placeholder-sky-100\/25::placeholder { + color: rgb(224 242 254 / 0.25); +} +.placeholder-sky-100\/30::placeholder { + color: rgb(224 242 254 / 0.3); +} +.placeholder-sky-100\/40::placeholder { + color: rgb(224 242 254 / 0.4); +} +.placeholder-sky-100\/5::placeholder { + color: rgb(224 242 254 / 0.05); +} +.placeholder-sky-100\/50::placeholder { + color: rgb(224 242 254 / 0.5); +} +.placeholder-sky-100\/60::placeholder { + color: rgb(224 242 254 / 0.6); +} +.placeholder-sky-100\/70::placeholder { + color: rgb(224 242 254 / 0.7); +} +.placeholder-sky-100\/75::placeholder { + color: rgb(224 242 254 / 0.75); +} +.placeholder-sky-100\/80::placeholder { + color: rgb(224 242 254 / 0.8); +} +.placeholder-sky-100\/90::placeholder { + color: rgb(224 242 254 / 0.9); +} +.placeholder-sky-100\/95::placeholder { + color: rgb(224 242 254 / 0.95); +} +.placeholder-sky-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(186 230 253 / var(--tw-placeholder-opacity)); +} +.placeholder-sky-200\/0::placeholder { + color: rgb(186 230 253 / 0); +} +.placeholder-sky-200\/10::placeholder { + color: rgb(186 230 253 / 0.1); +} +.placeholder-sky-200\/100::placeholder { + color: rgb(186 230 253 / 1); +} +.placeholder-sky-200\/20::placeholder { + color: rgb(186 230 253 / 0.2); +} +.placeholder-sky-200\/25::placeholder { + color: rgb(186 230 253 / 0.25); +} +.placeholder-sky-200\/30::placeholder { + color: rgb(186 230 253 / 0.3); +} +.placeholder-sky-200\/40::placeholder { + color: rgb(186 230 253 / 0.4); +} +.placeholder-sky-200\/5::placeholder { + color: rgb(186 230 253 / 0.05); +} +.placeholder-sky-200\/50::placeholder { + color: rgb(186 230 253 / 0.5); +} +.placeholder-sky-200\/60::placeholder { + color: rgb(186 230 253 / 0.6); +} +.placeholder-sky-200\/70::placeholder { + color: rgb(186 230 253 / 0.7); +} +.placeholder-sky-200\/75::placeholder { + color: rgb(186 230 253 / 0.75); +} +.placeholder-sky-200\/80::placeholder { + color: rgb(186 230 253 / 0.8); +} +.placeholder-sky-200\/90::placeholder { + color: rgb(186 230 253 / 0.9); +} +.placeholder-sky-200\/95::placeholder { + color: rgb(186 230 253 / 0.95); +} +.placeholder-sky-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(125 211 252 / var(--tw-placeholder-opacity)); +} +.placeholder-sky-300\/0::placeholder { + color: rgb(125 211 252 / 0); +} +.placeholder-sky-300\/10::placeholder { + color: rgb(125 211 252 / 0.1); +} +.placeholder-sky-300\/100::placeholder { + color: rgb(125 211 252 / 1); +} +.placeholder-sky-300\/20::placeholder { + color: rgb(125 211 252 / 0.2); +} +.placeholder-sky-300\/25::placeholder { + color: rgb(125 211 252 / 0.25); +} +.placeholder-sky-300\/30::placeholder { + color: rgb(125 211 252 / 0.3); +} +.placeholder-sky-300\/40::placeholder { + color: rgb(125 211 252 / 0.4); +} +.placeholder-sky-300\/5::placeholder { + color: rgb(125 211 252 / 0.05); +} +.placeholder-sky-300\/50::placeholder { + color: rgb(125 211 252 / 0.5); +} +.placeholder-sky-300\/60::placeholder { + color: rgb(125 211 252 / 0.6); +} +.placeholder-sky-300\/70::placeholder { + color: rgb(125 211 252 / 0.7); +} +.placeholder-sky-300\/75::placeholder { + color: rgb(125 211 252 / 0.75); +} +.placeholder-sky-300\/80::placeholder { + color: rgb(125 211 252 / 0.8); +} +.placeholder-sky-300\/90::placeholder { + color: rgb(125 211 252 / 0.9); +} +.placeholder-sky-300\/95::placeholder { + color: rgb(125 211 252 / 0.95); +} +.placeholder-sky-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(56 189 248 / var(--tw-placeholder-opacity)); +} +.placeholder-sky-400\/0::placeholder { + color: rgb(56 189 248 / 0); +} +.placeholder-sky-400\/10::placeholder { + color: rgb(56 189 248 / 0.1); +} +.placeholder-sky-400\/100::placeholder { + color: rgb(56 189 248 / 1); +} +.placeholder-sky-400\/20::placeholder { + color: rgb(56 189 248 / 0.2); +} +.placeholder-sky-400\/25::placeholder { + color: rgb(56 189 248 / 0.25); +} +.placeholder-sky-400\/30::placeholder { + color: rgb(56 189 248 / 0.3); +} +.placeholder-sky-400\/40::placeholder { + color: rgb(56 189 248 / 0.4); +} +.placeholder-sky-400\/5::placeholder { + color: rgb(56 189 248 / 0.05); +} +.placeholder-sky-400\/50::placeholder { + color: rgb(56 189 248 / 0.5); +} +.placeholder-sky-400\/60::placeholder { + color: rgb(56 189 248 / 0.6); +} +.placeholder-sky-400\/70::placeholder { + color: rgb(56 189 248 / 0.7); +} +.placeholder-sky-400\/75::placeholder { + color: rgb(56 189 248 / 0.75); +} +.placeholder-sky-400\/80::placeholder { + color: rgb(56 189 248 / 0.8); +} +.placeholder-sky-400\/90::placeholder { + color: rgb(56 189 248 / 0.9); +} +.placeholder-sky-400\/95::placeholder { + color: rgb(56 189 248 / 0.95); +} +.placeholder-sky-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(240 249 255 / var(--tw-placeholder-opacity)); +} +.placeholder-sky-50\/0::placeholder { + color: rgb(240 249 255 / 0); +} +.placeholder-sky-50\/10::placeholder { + color: rgb(240 249 255 / 0.1); +} +.placeholder-sky-50\/100::placeholder { + color: rgb(240 249 255 / 1); +} +.placeholder-sky-50\/20::placeholder { + color: rgb(240 249 255 / 0.2); +} +.placeholder-sky-50\/25::placeholder { + color: rgb(240 249 255 / 0.25); +} +.placeholder-sky-50\/30::placeholder { + color: rgb(240 249 255 / 0.3); +} +.placeholder-sky-50\/40::placeholder { + color: rgb(240 249 255 / 0.4); +} +.placeholder-sky-50\/5::placeholder { + color: rgb(240 249 255 / 0.05); +} +.placeholder-sky-50\/50::placeholder { + color: rgb(240 249 255 / 0.5); +} +.placeholder-sky-50\/60::placeholder { + color: rgb(240 249 255 / 0.6); +} +.placeholder-sky-50\/70::placeholder { + color: rgb(240 249 255 / 0.7); +} +.placeholder-sky-50\/75::placeholder { + color: rgb(240 249 255 / 0.75); +} +.placeholder-sky-50\/80::placeholder { + color: rgb(240 249 255 / 0.8); +} +.placeholder-sky-50\/90::placeholder { + color: rgb(240 249 255 / 0.9); +} +.placeholder-sky-50\/95::placeholder { + color: rgb(240 249 255 / 0.95); +} +.placeholder-sky-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(14 165 233 / var(--tw-placeholder-opacity)); +} +.placeholder-sky-500\/0::placeholder { + color: rgb(14 165 233 / 0); +} +.placeholder-sky-500\/10::placeholder { + color: rgb(14 165 233 / 0.1); +} +.placeholder-sky-500\/100::placeholder { + color: rgb(14 165 233 / 1); +} +.placeholder-sky-500\/20::placeholder { + color: rgb(14 165 233 / 0.2); +} +.placeholder-sky-500\/25::placeholder { + color: rgb(14 165 233 / 0.25); +} +.placeholder-sky-500\/30::placeholder { + color: rgb(14 165 233 / 0.3); +} +.placeholder-sky-500\/40::placeholder { + color: rgb(14 165 233 / 0.4); +} +.placeholder-sky-500\/5::placeholder { + color: rgb(14 165 233 / 0.05); +} +.placeholder-sky-500\/50::placeholder { + color: rgb(14 165 233 / 0.5); +} +.placeholder-sky-500\/60::placeholder { + color: rgb(14 165 233 / 0.6); +} +.placeholder-sky-500\/70::placeholder { + color: rgb(14 165 233 / 0.7); +} +.placeholder-sky-500\/75::placeholder { + color: rgb(14 165 233 / 0.75); +} +.placeholder-sky-500\/80::placeholder { + color: rgb(14 165 233 / 0.8); +} +.placeholder-sky-500\/90::placeholder { + color: rgb(14 165 233 / 0.9); +} +.placeholder-sky-500\/95::placeholder { + color: rgb(14 165 233 / 0.95); +} +.placeholder-sky-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(2 132 199 / var(--tw-placeholder-opacity)); +} +.placeholder-sky-600\/0::placeholder { + color: rgb(2 132 199 / 0); +} +.placeholder-sky-600\/10::placeholder { + color: rgb(2 132 199 / 0.1); +} +.placeholder-sky-600\/100::placeholder { + color: rgb(2 132 199 / 1); +} +.placeholder-sky-600\/20::placeholder { + color: rgb(2 132 199 / 0.2); +} +.placeholder-sky-600\/25::placeholder { + color: rgb(2 132 199 / 0.25); +} +.placeholder-sky-600\/30::placeholder { + color: rgb(2 132 199 / 0.3); +} +.placeholder-sky-600\/40::placeholder { + color: rgb(2 132 199 / 0.4); +} +.placeholder-sky-600\/5::placeholder { + color: rgb(2 132 199 / 0.05); +} +.placeholder-sky-600\/50::placeholder { + color: rgb(2 132 199 / 0.5); +} +.placeholder-sky-600\/60::placeholder { + color: rgb(2 132 199 / 0.6); +} +.placeholder-sky-600\/70::placeholder { + color: rgb(2 132 199 / 0.7); +} +.placeholder-sky-600\/75::placeholder { + color: rgb(2 132 199 / 0.75); +} +.placeholder-sky-600\/80::placeholder { + color: rgb(2 132 199 / 0.8); +} +.placeholder-sky-600\/90::placeholder { + color: rgb(2 132 199 / 0.9); +} +.placeholder-sky-600\/95::placeholder { + color: rgb(2 132 199 / 0.95); +} +.placeholder-sky-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(3 105 161 / var(--tw-placeholder-opacity)); +} +.placeholder-sky-700\/0::placeholder { + color: rgb(3 105 161 / 0); +} +.placeholder-sky-700\/10::placeholder { + color: rgb(3 105 161 / 0.1); +} +.placeholder-sky-700\/100::placeholder { + color: rgb(3 105 161 / 1); +} +.placeholder-sky-700\/20::placeholder { + color: rgb(3 105 161 / 0.2); +} +.placeholder-sky-700\/25::placeholder { + color: rgb(3 105 161 / 0.25); +} +.placeholder-sky-700\/30::placeholder { + color: rgb(3 105 161 / 0.3); +} +.placeholder-sky-700\/40::placeholder { + color: rgb(3 105 161 / 0.4); +} +.placeholder-sky-700\/5::placeholder { + color: rgb(3 105 161 / 0.05); +} +.placeholder-sky-700\/50::placeholder { + color: rgb(3 105 161 / 0.5); +} +.placeholder-sky-700\/60::placeholder { + color: rgb(3 105 161 / 0.6); +} +.placeholder-sky-700\/70::placeholder { + color: rgb(3 105 161 / 0.7); +} +.placeholder-sky-700\/75::placeholder { + color: rgb(3 105 161 / 0.75); +} +.placeholder-sky-700\/80::placeholder { + color: rgb(3 105 161 / 0.8); +} +.placeholder-sky-700\/90::placeholder { + color: rgb(3 105 161 / 0.9); +} +.placeholder-sky-700\/95::placeholder { + color: rgb(3 105 161 / 0.95); +} +.placeholder-sky-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(7 89 133 / var(--tw-placeholder-opacity)); +} +.placeholder-sky-800\/0::placeholder { + color: rgb(7 89 133 / 0); +} +.placeholder-sky-800\/10::placeholder { + color: rgb(7 89 133 / 0.1); +} +.placeholder-sky-800\/100::placeholder { + color: rgb(7 89 133 / 1); +} +.placeholder-sky-800\/20::placeholder { + color: rgb(7 89 133 / 0.2); +} +.placeholder-sky-800\/25::placeholder { + color: rgb(7 89 133 / 0.25); +} +.placeholder-sky-800\/30::placeholder { + color: rgb(7 89 133 / 0.3); +} +.placeholder-sky-800\/40::placeholder { + color: rgb(7 89 133 / 0.4); +} +.placeholder-sky-800\/5::placeholder { + color: rgb(7 89 133 / 0.05); +} +.placeholder-sky-800\/50::placeholder { + color: rgb(7 89 133 / 0.5); +} +.placeholder-sky-800\/60::placeholder { + color: rgb(7 89 133 / 0.6); +} +.placeholder-sky-800\/70::placeholder { + color: rgb(7 89 133 / 0.7); +} +.placeholder-sky-800\/75::placeholder { + color: rgb(7 89 133 / 0.75); +} +.placeholder-sky-800\/80::placeholder { + color: rgb(7 89 133 / 0.8); +} +.placeholder-sky-800\/90::placeholder { + color: rgb(7 89 133 / 0.9); +} +.placeholder-sky-800\/95::placeholder { + color: rgb(7 89 133 / 0.95); +} +.placeholder-sky-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(12 74 110 / var(--tw-placeholder-opacity)); +} +.placeholder-sky-900\/0::placeholder { + color: rgb(12 74 110 / 0); +} +.placeholder-sky-900\/10::placeholder { + color: rgb(12 74 110 / 0.1); +} +.placeholder-sky-900\/100::placeholder { + color: rgb(12 74 110 / 1); +} +.placeholder-sky-900\/20::placeholder { + color: rgb(12 74 110 / 0.2); +} +.placeholder-sky-900\/25::placeholder { + color: rgb(12 74 110 / 0.25); +} +.placeholder-sky-900\/30::placeholder { + color: rgb(12 74 110 / 0.3); +} +.placeholder-sky-900\/40::placeholder { + color: rgb(12 74 110 / 0.4); +} +.placeholder-sky-900\/5::placeholder { + color: rgb(12 74 110 / 0.05); +} +.placeholder-sky-900\/50::placeholder { + color: rgb(12 74 110 / 0.5); +} +.placeholder-sky-900\/60::placeholder { + color: rgb(12 74 110 / 0.6); +} +.placeholder-sky-900\/70::placeholder { + color: rgb(12 74 110 / 0.7); +} +.placeholder-sky-900\/75::placeholder { + color: rgb(12 74 110 / 0.75); +} +.placeholder-sky-900\/80::placeholder { + color: rgb(12 74 110 / 0.8); +} +.placeholder-sky-900\/90::placeholder { + color: rgb(12 74 110 / 0.9); +} +.placeholder-sky-900\/95::placeholder { + color: rgb(12 74 110 / 0.95); +} +.placeholder-slate-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(241 245 249 / var(--tw-placeholder-opacity)); +} +.placeholder-slate-100\/0::placeholder { + color: rgb(241 245 249 / 0); +} +.placeholder-slate-100\/10::placeholder { + color: rgb(241 245 249 / 0.1); +} +.placeholder-slate-100\/100::placeholder { + color: rgb(241 245 249 / 1); +} +.placeholder-slate-100\/20::placeholder { + color: rgb(241 245 249 / 0.2); +} +.placeholder-slate-100\/25::placeholder { + color: rgb(241 245 249 / 0.25); +} +.placeholder-slate-100\/30::placeholder { + color: rgb(241 245 249 / 0.3); +} +.placeholder-slate-100\/40::placeholder { + color: rgb(241 245 249 / 0.4); +} +.placeholder-slate-100\/5::placeholder { + color: rgb(241 245 249 / 0.05); +} +.placeholder-slate-100\/50::placeholder { + color: rgb(241 245 249 / 0.5); +} +.placeholder-slate-100\/60::placeholder { + color: rgb(241 245 249 / 0.6); +} +.placeholder-slate-100\/70::placeholder { + color: rgb(241 245 249 / 0.7); +} +.placeholder-slate-100\/75::placeholder { + color: rgb(241 245 249 / 0.75); +} +.placeholder-slate-100\/80::placeholder { + color: rgb(241 245 249 / 0.8); +} +.placeholder-slate-100\/90::placeholder { + color: rgb(241 245 249 / 0.9); +} +.placeholder-slate-100\/95::placeholder { + color: rgb(241 245 249 / 0.95); +} +.placeholder-slate-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(226 232 240 / var(--tw-placeholder-opacity)); +} +.placeholder-slate-200\/0::placeholder { + color: rgb(226 232 240 / 0); +} +.placeholder-slate-200\/10::placeholder { + color: rgb(226 232 240 / 0.1); +} +.placeholder-slate-200\/100::placeholder { + color: rgb(226 232 240 / 1); +} +.placeholder-slate-200\/20::placeholder { + color: rgb(226 232 240 / 0.2); +} +.placeholder-slate-200\/25::placeholder { + color: rgb(226 232 240 / 0.25); +} +.placeholder-slate-200\/30::placeholder { + color: rgb(226 232 240 / 0.3); +} +.placeholder-slate-200\/40::placeholder { + color: rgb(226 232 240 / 0.4); +} +.placeholder-slate-200\/5::placeholder { + color: rgb(226 232 240 / 0.05); +} +.placeholder-slate-200\/50::placeholder { + color: rgb(226 232 240 / 0.5); +} +.placeholder-slate-200\/60::placeholder { + color: rgb(226 232 240 / 0.6); +} +.placeholder-slate-200\/70::placeholder { + color: rgb(226 232 240 / 0.7); +} +.placeholder-slate-200\/75::placeholder { + color: rgb(226 232 240 / 0.75); +} +.placeholder-slate-200\/80::placeholder { + color: rgb(226 232 240 / 0.8); +} +.placeholder-slate-200\/90::placeholder { + color: rgb(226 232 240 / 0.9); +} +.placeholder-slate-200\/95::placeholder { + color: rgb(226 232 240 / 0.95); +} +.placeholder-slate-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(203 213 225 / var(--tw-placeholder-opacity)); +} +.placeholder-slate-300\/0::placeholder { + color: rgb(203 213 225 / 0); +} +.placeholder-slate-300\/10::placeholder { + color: rgb(203 213 225 / 0.1); +} +.placeholder-slate-300\/100::placeholder { + color: rgb(203 213 225 / 1); +} +.placeholder-slate-300\/20::placeholder { + color: rgb(203 213 225 / 0.2); +} +.placeholder-slate-300\/25::placeholder { + color: rgb(203 213 225 / 0.25); +} +.placeholder-slate-300\/30::placeholder { + color: rgb(203 213 225 / 0.3); +} +.placeholder-slate-300\/40::placeholder { + color: rgb(203 213 225 / 0.4); +} +.placeholder-slate-300\/5::placeholder { + color: rgb(203 213 225 / 0.05); +} +.placeholder-slate-300\/50::placeholder { + color: rgb(203 213 225 / 0.5); +} +.placeholder-slate-300\/60::placeholder { + color: rgb(203 213 225 / 0.6); +} +.placeholder-slate-300\/70::placeholder { + color: rgb(203 213 225 / 0.7); +} +.placeholder-slate-300\/75::placeholder { + color: rgb(203 213 225 / 0.75); +} +.placeholder-slate-300\/80::placeholder { + color: rgb(203 213 225 / 0.8); +} +.placeholder-slate-300\/90::placeholder { + color: rgb(203 213 225 / 0.9); +} +.placeholder-slate-300\/95::placeholder { + color: rgb(203 213 225 / 0.95); +} +.placeholder-slate-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(148 163 184 / var(--tw-placeholder-opacity)); +} +.placeholder-slate-400\/0::placeholder { + color: rgb(148 163 184 / 0); +} +.placeholder-slate-400\/10::placeholder { + color: rgb(148 163 184 / 0.1); +} +.placeholder-slate-400\/100::placeholder { + color: rgb(148 163 184 / 1); +} +.placeholder-slate-400\/20::placeholder { + color: rgb(148 163 184 / 0.2); +} +.placeholder-slate-400\/25::placeholder { + color: rgb(148 163 184 / 0.25); +} +.placeholder-slate-400\/30::placeholder { + color: rgb(148 163 184 / 0.3); +} +.placeholder-slate-400\/40::placeholder { + color: rgb(148 163 184 / 0.4); +} +.placeholder-slate-400\/5::placeholder { + color: rgb(148 163 184 / 0.05); +} +.placeholder-slate-400\/50::placeholder { + color: rgb(148 163 184 / 0.5); +} +.placeholder-slate-400\/60::placeholder { + color: rgb(148 163 184 / 0.6); +} +.placeholder-slate-400\/70::placeholder { + color: rgb(148 163 184 / 0.7); +} +.placeholder-slate-400\/75::placeholder { + color: rgb(148 163 184 / 0.75); +} +.placeholder-slate-400\/80::placeholder { + color: rgb(148 163 184 / 0.8); +} +.placeholder-slate-400\/90::placeholder { + color: rgb(148 163 184 / 0.9); +} +.placeholder-slate-400\/95::placeholder { + color: rgb(148 163 184 / 0.95); +} +.placeholder-slate-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(248 250 252 / var(--tw-placeholder-opacity)); +} +.placeholder-slate-50\/0::placeholder { + color: rgb(248 250 252 / 0); +} +.placeholder-slate-50\/10::placeholder { + color: rgb(248 250 252 / 0.1); +} +.placeholder-slate-50\/100::placeholder { + color: rgb(248 250 252 / 1); +} +.placeholder-slate-50\/20::placeholder { + color: rgb(248 250 252 / 0.2); +} +.placeholder-slate-50\/25::placeholder { + color: rgb(248 250 252 / 0.25); +} +.placeholder-slate-50\/30::placeholder { + color: rgb(248 250 252 / 0.3); +} +.placeholder-slate-50\/40::placeholder { + color: rgb(248 250 252 / 0.4); +} +.placeholder-slate-50\/5::placeholder { + color: rgb(248 250 252 / 0.05); +} +.placeholder-slate-50\/50::placeholder { + color: rgb(248 250 252 / 0.5); +} +.placeholder-slate-50\/60::placeholder { + color: rgb(248 250 252 / 0.6); +} +.placeholder-slate-50\/70::placeholder { + color: rgb(248 250 252 / 0.7); +} +.placeholder-slate-50\/75::placeholder { + color: rgb(248 250 252 / 0.75); +} +.placeholder-slate-50\/80::placeholder { + color: rgb(248 250 252 / 0.8); +} +.placeholder-slate-50\/90::placeholder { + color: rgb(248 250 252 / 0.9); +} +.placeholder-slate-50\/95::placeholder { + color: rgb(248 250 252 / 0.95); +} +.placeholder-slate-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(100 116 139 / var(--tw-placeholder-opacity)); +} +.placeholder-slate-500\/0::placeholder { + color: rgb(100 116 139 / 0); +} +.placeholder-slate-500\/10::placeholder { + color: rgb(100 116 139 / 0.1); +} +.placeholder-slate-500\/100::placeholder { + color: rgb(100 116 139 / 1); +} +.placeholder-slate-500\/20::placeholder { + color: rgb(100 116 139 / 0.2); +} +.placeholder-slate-500\/25::placeholder { + color: rgb(100 116 139 / 0.25); +} +.placeholder-slate-500\/30::placeholder { + color: rgb(100 116 139 / 0.3); +} +.placeholder-slate-500\/40::placeholder { + color: rgb(100 116 139 / 0.4); +} +.placeholder-slate-500\/5::placeholder { + color: rgb(100 116 139 / 0.05); +} +.placeholder-slate-500\/50::placeholder { + color: rgb(100 116 139 / 0.5); +} +.placeholder-slate-500\/60::placeholder { + color: rgb(100 116 139 / 0.6); +} +.placeholder-slate-500\/70::placeholder { + color: rgb(100 116 139 / 0.7); +} +.placeholder-slate-500\/75::placeholder { + color: rgb(100 116 139 / 0.75); +} +.placeholder-slate-500\/80::placeholder { + color: rgb(100 116 139 / 0.8); +} +.placeholder-slate-500\/90::placeholder { + color: rgb(100 116 139 / 0.9); +} +.placeholder-slate-500\/95::placeholder { + color: rgb(100 116 139 / 0.95); +} +.placeholder-slate-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(71 85 105 / var(--tw-placeholder-opacity)); +} +.placeholder-slate-600\/0::placeholder { + color: rgb(71 85 105 / 0); +} +.placeholder-slate-600\/10::placeholder { + color: rgb(71 85 105 / 0.1); +} +.placeholder-slate-600\/100::placeholder { + color: rgb(71 85 105 / 1); +} +.placeholder-slate-600\/20::placeholder { + color: rgb(71 85 105 / 0.2); +} +.placeholder-slate-600\/25::placeholder { + color: rgb(71 85 105 / 0.25); +} +.placeholder-slate-600\/30::placeholder { + color: rgb(71 85 105 / 0.3); +} +.placeholder-slate-600\/40::placeholder { + color: rgb(71 85 105 / 0.4); +} +.placeholder-slate-600\/5::placeholder { + color: rgb(71 85 105 / 0.05); +} +.placeholder-slate-600\/50::placeholder { + color: rgb(71 85 105 / 0.5); +} +.placeholder-slate-600\/60::placeholder { + color: rgb(71 85 105 / 0.6); +} +.placeholder-slate-600\/70::placeholder { + color: rgb(71 85 105 / 0.7); +} +.placeholder-slate-600\/75::placeholder { + color: rgb(71 85 105 / 0.75); +} +.placeholder-slate-600\/80::placeholder { + color: rgb(71 85 105 / 0.8); +} +.placeholder-slate-600\/90::placeholder { + color: rgb(71 85 105 / 0.9); +} +.placeholder-slate-600\/95::placeholder { + color: rgb(71 85 105 / 0.95); +} +.placeholder-slate-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(51 65 85 / var(--tw-placeholder-opacity)); +} +.placeholder-slate-700\/0::placeholder { + color: rgb(51 65 85 / 0); +} +.placeholder-slate-700\/10::placeholder { + color: rgb(51 65 85 / 0.1); +} +.placeholder-slate-700\/100::placeholder { + color: rgb(51 65 85 / 1); +} +.placeholder-slate-700\/20::placeholder { + color: rgb(51 65 85 / 0.2); +} +.placeholder-slate-700\/25::placeholder { + color: rgb(51 65 85 / 0.25); +} +.placeholder-slate-700\/30::placeholder { + color: rgb(51 65 85 / 0.3); +} +.placeholder-slate-700\/40::placeholder { + color: rgb(51 65 85 / 0.4); +} +.placeholder-slate-700\/5::placeholder { + color: rgb(51 65 85 / 0.05); +} +.placeholder-slate-700\/50::placeholder { + color: rgb(51 65 85 / 0.5); +} +.placeholder-slate-700\/60::placeholder { + color: rgb(51 65 85 / 0.6); +} +.placeholder-slate-700\/70::placeholder { + color: rgb(51 65 85 / 0.7); +} +.placeholder-slate-700\/75::placeholder { + color: rgb(51 65 85 / 0.75); +} +.placeholder-slate-700\/80::placeholder { + color: rgb(51 65 85 / 0.8); +} +.placeholder-slate-700\/90::placeholder { + color: rgb(51 65 85 / 0.9); +} +.placeholder-slate-700\/95::placeholder { + color: rgb(51 65 85 / 0.95); +} +.placeholder-slate-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(30 41 59 / var(--tw-placeholder-opacity)); +} +.placeholder-slate-800\/0::placeholder { + color: rgb(30 41 59 / 0); +} +.placeholder-slate-800\/10::placeholder { + color: rgb(30 41 59 / 0.1); +} +.placeholder-slate-800\/100::placeholder { + color: rgb(30 41 59 / 1); +} +.placeholder-slate-800\/20::placeholder { + color: rgb(30 41 59 / 0.2); +} +.placeholder-slate-800\/25::placeholder { + color: rgb(30 41 59 / 0.25); +} +.placeholder-slate-800\/30::placeholder { + color: rgb(30 41 59 / 0.3); +} +.placeholder-slate-800\/40::placeholder { + color: rgb(30 41 59 / 0.4); +} +.placeholder-slate-800\/5::placeholder { + color: rgb(30 41 59 / 0.05); +} +.placeholder-slate-800\/50::placeholder { + color: rgb(30 41 59 / 0.5); +} +.placeholder-slate-800\/60::placeholder { + color: rgb(30 41 59 / 0.6); +} +.placeholder-slate-800\/70::placeholder { + color: rgb(30 41 59 / 0.7); +} +.placeholder-slate-800\/75::placeholder { + color: rgb(30 41 59 / 0.75); +} +.placeholder-slate-800\/80::placeholder { + color: rgb(30 41 59 / 0.8); +} +.placeholder-slate-800\/90::placeholder { + color: rgb(30 41 59 / 0.9); +} +.placeholder-slate-800\/95::placeholder { + color: rgb(30 41 59 / 0.95); +} +.placeholder-slate-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(15 23 42 / var(--tw-placeholder-opacity)); +} +.placeholder-slate-900\/0::placeholder { + color: rgb(15 23 42 / 0); +} +.placeholder-slate-900\/10::placeholder { + color: rgb(15 23 42 / 0.1); +} +.placeholder-slate-900\/100::placeholder { + color: rgb(15 23 42 / 1); +} +.placeholder-slate-900\/20::placeholder { + color: rgb(15 23 42 / 0.2); +} +.placeholder-slate-900\/25::placeholder { + color: rgb(15 23 42 / 0.25); +} +.placeholder-slate-900\/30::placeholder { + color: rgb(15 23 42 / 0.3); +} +.placeholder-slate-900\/40::placeholder { + color: rgb(15 23 42 / 0.4); +} +.placeholder-slate-900\/5::placeholder { + color: rgb(15 23 42 / 0.05); +} +.placeholder-slate-900\/50::placeholder { + color: rgb(15 23 42 / 0.5); +} +.placeholder-slate-900\/60::placeholder { + color: rgb(15 23 42 / 0.6); +} +.placeholder-slate-900\/70::placeholder { + color: rgb(15 23 42 / 0.7); +} +.placeholder-slate-900\/75::placeholder { + color: rgb(15 23 42 / 0.75); +} +.placeholder-slate-900\/80::placeholder { + color: rgb(15 23 42 / 0.8); +} +.placeholder-slate-900\/90::placeholder { + color: rgb(15 23 42 / 0.9); +} +.placeholder-slate-900\/95::placeholder { + color: rgb(15 23 42 / 0.95); +} +.placeholder-stone-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(245 245 244 / var(--tw-placeholder-opacity)); +} +.placeholder-stone-100\/0::placeholder { + color: rgb(245 245 244 / 0); +} +.placeholder-stone-100\/10::placeholder { + color: rgb(245 245 244 / 0.1); +} +.placeholder-stone-100\/100::placeholder { + color: rgb(245 245 244 / 1); +} +.placeholder-stone-100\/20::placeholder { + color: rgb(245 245 244 / 0.2); +} +.placeholder-stone-100\/25::placeholder { + color: rgb(245 245 244 / 0.25); +} +.placeholder-stone-100\/30::placeholder { + color: rgb(245 245 244 / 0.3); +} +.placeholder-stone-100\/40::placeholder { + color: rgb(245 245 244 / 0.4); +} +.placeholder-stone-100\/5::placeholder { + color: rgb(245 245 244 / 0.05); +} +.placeholder-stone-100\/50::placeholder { + color: rgb(245 245 244 / 0.5); +} +.placeholder-stone-100\/60::placeholder { + color: rgb(245 245 244 / 0.6); +} +.placeholder-stone-100\/70::placeholder { + color: rgb(245 245 244 / 0.7); +} +.placeholder-stone-100\/75::placeholder { + color: rgb(245 245 244 / 0.75); +} +.placeholder-stone-100\/80::placeholder { + color: rgb(245 245 244 / 0.8); +} +.placeholder-stone-100\/90::placeholder { + color: rgb(245 245 244 / 0.9); +} +.placeholder-stone-100\/95::placeholder { + color: rgb(245 245 244 / 0.95); +} +.placeholder-stone-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(231 229 228 / var(--tw-placeholder-opacity)); +} +.placeholder-stone-200\/0::placeholder { + color: rgb(231 229 228 / 0); +} +.placeholder-stone-200\/10::placeholder { + color: rgb(231 229 228 / 0.1); +} +.placeholder-stone-200\/100::placeholder { + color: rgb(231 229 228 / 1); +} +.placeholder-stone-200\/20::placeholder { + color: rgb(231 229 228 / 0.2); +} +.placeholder-stone-200\/25::placeholder { + color: rgb(231 229 228 / 0.25); +} +.placeholder-stone-200\/30::placeholder { + color: rgb(231 229 228 / 0.3); +} +.placeholder-stone-200\/40::placeholder { + color: rgb(231 229 228 / 0.4); +} +.placeholder-stone-200\/5::placeholder { + color: rgb(231 229 228 / 0.05); +} +.placeholder-stone-200\/50::placeholder { + color: rgb(231 229 228 / 0.5); +} +.placeholder-stone-200\/60::placeholder { + color: rgb(231 229 228 / 0.6); +} +.placeholder-stone-200\/70::placeholder { + color: rgb(231 229 228 / 0.7); +} +.placeholder-stone-200\/75::placeholder { + color: rgb(231 229 228 / 0.75); +} +.placeholder-stone-200\/80::placeholder { + color: rgb(231 229 228 / 0.8); +} +.placeholder-stone-200\/90::placeholder { + color: rgb(231 229 228 / 0.9); +} +.placeholder-stone-200\/95::placeholder { + color: rgb(231 229 228 / 0.95); +} +.placeholder-stone-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(214 211 209 / var(--tw-placeholder-opacity)); +} +.placeholder-stone-300\/0::placeholder { + color: rgb(214 211 209 / 0); +} +.placeholder-stone-300\/10::placeholder { + color: rgb(214 211 209 / 0.1); +} +.placeholder-stone-300\/100::placeholder { + color: rgb(214 211 209 / 1); +} +.placeholder-stone-300\/20::placeholder { + color: rgb(214 211 209 / 0.2); +} +.placeholder-stone-300\/25::placeholder { + color: rgb(214 211 209 / 0.25); +} +.placeholder-stone-300\/30::placeholder { + color: rgb(214 211 209 / 0.3); +} +.placeholder-stone-300\/40::placeholder { + color: rgb(214 211 209 / 0.4); +} +.placeholder-stone-300\/5::placeholder { + color: rgb(214 211 209 / 0.05); +} +.placeholder-stone-300\/50::placeholder { + color: rgb(214 211 209 / 0.5); +} +.placeholder-stone-300\/60::placeholder { + color: rgb(214 211 209 / 0.6); +} +.placeholder-stone-300\/70::placeholder { + color: rgb(214 211 209 / 0.7); +} +.placeholder-stone-300\/75::placeholder { + color: rgb(214 211 209 / 0.75); +} +.placeholder-stone-300\/80::placeholder { + color: rgb(214 211 209 / 0.8); +} +.placeholder-stone-300\/90::placeholder { + color: rgb(214 211 209 / 0.9); +} +.placeholder-stone-300\/95::placeholder { + color: rgb(214 211 209 / 0.95); +} +.placeholder-stone-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(168 162 158 / var(--tw-placeholder-opacity)); +} +.placeholder-stone-400\/0::placeholder { + color: rgb(168 162 158 / 0); +} +.placeholder-stone-400\/10::placeholder { + color: rgb(168 162 158 / 0.1); +} +.placeholder-stone-400\/100::placeholder { + color: rgb(168 162 158 / 1); +} +.placeholder-stone-400\/20::placeholder { + color: rgb(168 162 158 / 0.2); +} +.placeholder-stone-400\/25::placeholder { + color: rgb(168 162 158 / 0.25); +} +.placeholder-stone-400\/30::placeholder { + color: rgb(168 162 158 / 0.3); +} +.placeholder-stone-400\/40::placeholder { + color: rgb(168 162 158 / 0.4); +} +.placeholder-stone-400\/5::placeholder { + color: rgb(168 162 158 / 0.05); +} +.placeholder-stone-400\/50::placeholder { + color: rgb(168 162 158 / 0.5); +} +.placeholder-stone-400\/60::placeholder { + color: rgb(168 162 158 / 0.6); +} +.placeholder-stone-400\/70::placeholder { + color: rgb(168 162 158 / 0.7); +} +.placeholder-stone-400\/75::placeholder { + color: rgb(168 162 158 / 0.75); +} +.placeholder-stone-400\/80::placeholder { + color: rgb(168 162 158 / 0.8); +} +.placeholder-stone-400\/90::placeholder { + color: rgb(168 162 158 / 0.9); +} +.placeholder-stone-400\/95::placeholder { + color: rgb(168 162 158 / 0.95); +} +.placeholder-stone-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(250 250 249 / var(--tw-placeholder-opacity)); +} +.placeholder-stone-50\/0::placeholder { + color: rgb(250 250 249 / 0); +} +.placeholder-stone-50\/10::placeholder { + color: rgb(250 250 249 / 0.1); +} +.placeholder-stone-50\/100::placeholder { + color: rgb(250 250 249 / 1); +} +.placeholder-stone-50\/20::placeholder { + color: rgb(250 250 249 / 0.2); +} +.placeholder-stone-50\/25::placeholder { + color: rgb(250 250 249 / 0.25); +} +.placeholder-stone-50\/30::placeholder { + color: rgb(250 250 249 / 0.3); +} +.placeholder-stone-50\/40::placeholder { + color: rgb(250 250 249 / 0.4); +} +.placeholder-stone-50\/5::placeholder { + color: rgb(250 250 249 / 0.05); +} +.placeholder-stone-50\/50::placeholder { + color: rgb(250 250 249 / 0.5); +} +.placeholder-stone-50\/60::placeholder { + color: rgb(250 250 249 / 0.6); +} +.placeholder-stone-50\/70::placeholder { + color: rgb(250 250 249 / 0.7); +} +.placeholder-stone-50\/75::placeholder { + color: rgb(250 250 249 / 0.75); +} +.placeholder-stone-50\/80::placeholder { + color: rgb(250 250 249 / 0.8); +} +.placeholder-stone-50\/90::placeholder { + color: rgb(250 250 249 / 0.9); +} +.placeholder-stone-50\/95::placeholder { + color: rgb(250 250 249 / 0.95); +} +.placeholder-stone-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(120 113 108 / var(--tw-placeholder-opacity)); +} +.placeholder-stone-500\/0::placeholder { + color: rgb(120 113 108 / 0); +} +.placeholder-stone-500\/10::placeholder { + color: rgb(120 113 108 / 0.1); +} +.placeholder-stone-500\/100::placeholder { + color: rgb(120 113 108 / 1); +} +.placeholder-stone-500\/20::placeholder { + color: rgb(120 113 108 / 0.2); +} +.placeholder-stone-500\/25::placeholder { + color: rgb(120 113 108 / 0.25); +} +.placeholder-stone-500\/30::placeholder { + color: rgb(120 113 108 / 0.3); +} +.placeholder-stone-500\/40::placeholder { + color: rgb(120 113 108 / 0.4); +} +.placeholder-stone-500\/5::placeholder { + color: rgb(120 113 108 / 0.05); +} +.placeholder-stone-500\/50::placeholder { + color: rgb(120 113 108 / 0.5); +} +.placeholder-stone-500\/60::placeholder { + color: rgb(120 113 108 / 0.6); +} +.placeholder-stone-500\/70::placeholder { + color: rgb(120 113 108 / 0.7); +} +.placeholder-stone-500\/75::placeholder { + color: rgb(120 113 108 / 0.75); +} +.placeholder-stone-500\/80::placeholder { + color: rgb(120 113 108 / 0.8); +} +.placeholder-stone-500\/90::placeholder { + color: rgb(120 113 108 / 0.9); +} +.placeholder-stone-500\/95::placeholder { + color: rgb(120 113 108 / 0.95); +} +.placeholder-stone-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(87 83 78 / var(--tw-placeholder-opacity)); +} +.placeholder-stone-600\/0::placeholder { + color: rgb(87 83 78 / 0); +} +.placeholder-stone-600\/10::placeholder { + color: rgb(87 83 78 / 0.1); +} +.placeholder-stone-600\/100::placeholder { + color: rgb(87 83 78 / 1); +} +.placeholder-stone-600\/20::placeholder { + color: rgb(87 83 78 / 0.2); +} +.placeholder-stone-600\/25::placeholder { + color: rgb(87 83 78 / 0.25); +} +.placeholder-stone-600\/30::placeholder { + color: rgb(87 83 78 / 0.3); +} +.placeholder-stone-600\/40::placeholder { + color: rgb(87 83 78 / 0.4); +} +.placeholder-stone-600\/5::placeholder { + color: rgb(87 83 78 / 0.05); +} +.placeholder-stone-600\/50::placeholder { + color: rgb(87 83 78 / 0.5); +} +.placeholder-stone-600\/60::placeholder { + color: rgb(87 83 78 / 0.6); +} +.placeholder-stone-600\/70::placeholder { + color: rgb(87 83 78 / 0.7); +} +.placeholder-stone-600\/75::placeholder { + color: rgb(87 83 78 / 0.75); +} +.placeholder-stone-600\/80::placeholder { + color: rgb(87 83 78 / 0.8); +} +.placeholder-stone-600\/90::placeholder { + color: rgb(87 83 78 / 0.9); +} +.placeholder-stone-600\/95::placeholder { + color: rgb(87 83 78 / 0.95); +} +.placeholder-stone-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(68 64 60 / var(--tw-placeholder-opacity)); +} +.placeholder-stone-700\/0::placeholder { + color: rgb(68 64 60 / 0); +} +.placeholder-stone-700\/10::placeholder { + color: rgb(68 64 60 / 0.1); +} +.placeholder-stone-700\/100::placeholder { + color: rgb(68 64 60 / 1); +} +.placeholder-stone-700\/20::placeholder { + color: rgb(68 64 60 / 0.2); +} +.placeholder-stone-700\/25::placeholder { + color: rgb(68 64 60 / 0.25); +} +.placeholder-stone-700\/30::placeholder { + color: rgb(68 64 60 / 0.3); +} +.placeholder-stone-700\/40::placeholder { + color: rgb(68 64 60 / 0.4); +} +.placeholder-stone-700\/5::placeholder { + color: rgb(68 64 60 / 0.05); +} +.placeholder-stone-700\/50::placeholder { + color: rgb(68 64 60 / 0.5); +} +.placeholder-stone-700\/60::placeholder { + color: rgb(68 64 60 / 0.6); +} +.placeholder-stone-700\/70::placeholder { + color: rgb(68 64 60 / 0.7); +} +.placeholder-stone-700\/75::placeholder { + color: rgb(68 64 60 / 0.75); +} +.placeholder-stone-700\/80::placeholder { + color: rgb(68 64 60 / 0.8); +} +.placeholder-stone-700\/90::placeholder { + color: rgb(68 64 60 / 0.9); +} +.placeholder-stone-700\/95::placeholder { + color: rgb(68 64 60 / 0.95); +} +.placeholder-stone-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(41 37 36 / var(--tw-placeholder-opacity)); +} +.placeholder-stone-800\/0::placeholder { + color: rgb(41 37 36 / 0); +} +.placeholder-stone-800\/10::placeholder { + color: rgb(41 37 36 / 0.1); +} +.placeholder-stone-800\/100::placeholder { + color: rgb(41 37 36 / 1); +} +.placeholder-stone-800\/20::placeholder { + color: rgb(41 37 36 / 0.2); +} +.placeholder-stone-800\/25::placeholder { + color: rgb(41 37 36 / 0.25); +} +.placeholder-stone-800\/30::placeholder { + color: rgb(41 37 36 / 0.3); +} +.placeholder-stone-800\/40::placeholder { + color: rgb(41 37 36 / 0.4); +} +.placeholder-stone-800\/5::placeholder { + color: rgb(41 37 36 / 0.05); +} +.placeholder-stone-800\/50::placeholder { + color: rgb(41 37 36 / 0.5); +} +.placeholder-stone-800\/60::placeholder { + color: rgb(41 37 36 / 0.6); +} +.placeholder-stone-800\/70::placeholder { + color: rgb(41 37 36 / 0.7); +} +.placeholder-stone-800\/75::placeholder { + color: rgb(41 37 36 / 0.75); +} +.placeholder-stone-800\/80::placeholder { + color: rgb(41 37 36 / 0.8); +} +.placeholder-stone-800\/90::placeholder { + color: rgb(41 37 36 / 0.9); +} +.placeholder-stone-800\/95::placeholder { + color: rgb(41 37 36 / 0.95); +} +.placeholder-stone-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(28 25 23 / var(--tw-placeholder-opacity)); +} +.placeholder-stone-900\/0::placeholder { + color: rgb(28 25 23 / 0); +} +.placeholder-stone-900\/10::placeholder { + color: rgb(28 25 23 / 0.1); +} +.placeholder-stone-900\/100::placeholder { + color: rgb(28 25 23 / 1); +} +.placeholder-stone-900\/20::placeholder { + color: rgb(28 25 23 / 0.2); +} +.placeholder-stone-900\/25::placeholder { + color: rgb(28 25 23 / 0.25); +} +.placeholder-stone-900\/30::placeholder { + color: rgb(28 25 23 / 0.3); +} +.placeholder-stone-900\/40::placeholder { + color: rgb(28 25 23 / 0.4); +} +.placeholder-stone-900\/5::placeholder { + color: rgb(28 25 23 / 0.05); +} +.placeholder-stone-900\/50::placeholder { + color: rgb(28 25 23 / 0.5); +} +.placeholder-stone-900\/60::placeholder { + color: rgb(28 25 23 / 0.6); +} +.placeholder-stone-900\/70::placeholder { + color: rgb(28 25 23 / 0.7); +} +.placeholder-stone-900\/75::placeholder { + color: rgb(28 25 23 / 0.75); +} +.placeholder-stone-900\/80::placeholder { + color: rgb(28 25 23 / 0.8); +} +.placeholder-stone-900\/90::placeholder { + color: rgb(28 25 23 / 0.9); +} +.placeholder-stone-900\/95::placeholder { + color: rgb(28 25 23 / 0.95); +} +.placeholder-teal-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(204 251 241 / var(--tw-placeholder-opacity)); +} +.placeholder-teal-100\/0::placeholder { + color: rgb(204 251 241 / 0); +} +.placeholder-teal-100\/10::placeholder { + color: rgb(204 251 241 / 0.1); +} +.placeholder-teal-100\/100::placeholder { + color: rgb(204 251 241 / 1); +} +.placeholder-teal-100\/20::placeholder { + color: rgb(204 251 241 / 0.2); +} +.placeholder-teal-100\/25::placeholder { + color: rgb(204 251 241 / 0.25); +} +.placeholder-teal-100\/30::placeholder { + color: rgb(204 251 241 / 0.3); +} +.placeholder-teal-100\/40::placeholder { + color: rgb(204 251 241 / 0.4); +} +.placeholder-teal-100\/5::placeholder { + color: rgb(204 251 241 / 0.05); +} +.placeholder-teal-100\/50::placeholder { + color: rgb(204 251 241 / 0.5); +} +.placeholder-teal-100\/60::placeholder { + color: rgb(204 251 241 / 0.6); +} +.placeholder-teal-100\/70::placeholder { + color: rgb(204 251 241 / 0.7); +} +.placeholder-teal-100\/75::placeholder { + color: rgb(204 251 241 / 0.75); +} +.placeholder-teal-100\/80::placeholder { + color: rgb(204 251 241 / 0.8); +} +.placeholder-teal-100\/90::placeholder { + color: rgb(204 251 241 / 0.9); +} +.placeholder-teal-100\/95::placeholder { + color: rgb(204 251 241 / 0.95); +} +.placeholder-teal-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(153 246 228 / var(--tw-placeholder-opacity)); +} +.placeholder-teal-200\/0::placeholder { + color: rgb(153 246 228 / 0); +} +.placeholder-teal-200\/10::placeholder { + color: rgb(153 246 228 / 0.1); +} +.placeholder-teal-200\/100::placeholder { + color: rgb(153 246 228 / 1); +} +.placeholder-teal-200\/20::placeholder { + color: rgb(153 246 228 / 0.2); +} +.placeholder-teal-200\/25::placeholder { + color: rgb(153 246 228 / 0.25); +} +.placeholder-teal-200\/30::placeholder { + color: rgb(153 246 228 / 0.3); +} +.placeholder-teal-200\/40::placeholder { + color: rgb(153 246 228 / 0.4); +} +.placeholder-teal-200\/5::placeholder { + color: rgb(153 246 228 / 0.05); +} +.placeholder-teal-200\/50::placeholder { + color: rgb(153 246 228 / 0.5); +} +.placeholder-teal-200\/60::placeholder { + color: rgb(153 246 228 / 0.6); +} +.placeholder-teal-200\/70::placeholder { + color: rgb(153 246 228 / 0.7); +} +.placeholder-teal-200\/75::placeholder { + color: rgb(153 246 228 / 0.75); +} +.placeholder-teal-200\/80::placeholder { + color: rgb(153 246 228 / 0.8); +} +.placeholder-teal-200\/90::placeholder { + color: rgb(153 246 228 / 0.9); +} +.placeholder-teal-200\/95::placeholder { + color: rgb(153 246 228 / 0.95); +} +.placeholder-teal-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(94 234 212 / var(--tw-placeholder-opacity)); +} +.placeholder-teal-300\/0::placeholder { + color: rgb(94 234 212 / 0); +} +.placeholder-teal-300\/10::placeholder { + color: rgb(94 234 212 / 0.1); +} +.placeholder-teal-300\/100::placeholder { + color: rgb(94 234 212 / 1); +} +.placeholder-teal-300\/20::placeholder { + color: rgb(94 234 212 / 0.2); +} +.placeholder-teal-300\/25::placeholder { + color: rgb(94 234 212 / 0.25); +} +.placeholder-teal-300\/30::placeholder { + color: rgb(94 234 212 / 0.3); +} +.placeholder-teal-300\/40::placeholder { + color: rgb(94 234 212 / 0.4); +} +.placeholder-teal-300\/5::placeholder { + color: rgb(94 234 212 / 0.05); +} +.placeholder-teal-300\/50::placeholder { + color: rgb(94 234 212 / 0.5); +} +.placeholder-teal-300\/60::placeholder { + color: rgb(94 234 212 / 0.6); +} +.placeholder-teal-300\/70::placeholder { + color: rgb(94 234 212 / 0.7); +} +.placeholder-teal-300\/75::placeholder { + color: rgb(94 234 212 / 0.75); +} +.placeholder-teal-300\/80::placeholder { + color: rgb(94 234 212 / 0.8); +} +.placeholder-teal-300\/90::placeholder { + color: rgb(94 234 212 / 0.9); +} +.placeholder-teal-300\/95::placeholder { + color: rgb(94 234 212 / 0.95); +} +.placeholder-teal-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(45 212 191 / var(--tw-placeholder-opacity)); +} +.placeholder-teal-400\/0::placeholder { + color: rgb(45 212 191 / 0); +} +.placeholder-teal-400\/10::placeholder { + color: rgb(45 212 191 / 0.1); +} +.placeholder-teal-400\/100::placeholder { + color: rgb(45 212 191 / 1); +} +.placeholder-teal-400\/20::placeholder { + color: rgb(45 212 191 / 0.2); +} +.placeholder-teal-400\/25::placeholder { + color: rgb(45 212 191 / 0.25); +} +.placeholder-teal-400\/30::placeholder { + color: rgb(45 212 191 / 0.3); +} +.placeholder-teal-400\/40::placeholder { + color: rgb(45 212 191 / 0.4); +} +.placeholder-teal-400\/5::placeholder { + color: rgb(45 212 191 / 0.05); +} +.placeholder-teal-400\/50::placeholder { + color: rgb(45 212 191 / 0.5); +} +.placeholder-teal-400\/60::placeholder { + color: rgb(45 212 191 / 0.6); +} +.placeholder-teal-400\/70::placeholder { + color: rgb(45 212 191 / 0.7); +} +.placeholder-teal-400\/75::placeholder { + color: rgb(45 212 191 / 0.75); +} +.placeholder-teal-400\/80::placeholder { + color: rgb(45 212 191 / 0.8); +} +.placeholder-teal-400\/90::placeholder { + color: rgb(45 212 191 / 0.9); +} +.placeholder-teal-400\/95::placeholder { + color: rgb(45 212 191 / 0.95); +} +.placeholder-teal-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(240 253 250 / var(--tw-placeholder-opacity)); +} +.placeholder-teal-50\/0::placeholder { + color: rgb(240 253 250 / 0); +} +.placeholder-teal-50\/10::placeholder { + color: rgb(240 253 250 / 0.1); +} +.placeholder-teal-50\/100::placeholder { + color: rgb(240 253 250 / 1); +} +.placeholder-teal-50\/20::placeholder { + color: rgb(240 253 250 / 0.2); +} +.placeholder-teal-50\/25::placeholder { + color: rgb(240 253 250 / 0.25); +} +.placeholder-teal-50\/30::placeholder { + color: rgb(240 253 250 / 0.3); +} +.placeholder-teal-50\/40::placeholder { + color: rgb(240 253 250 / 0.4); +} +.placeholder-teal-50\/5::placeholder { + color: rgb(240 253 250 / 0.05); +} +.placeholder-teal-50\/50::placeholder { + color: rgb(240 253 250 / 0.5); +} +.placeholder-teal-50\/60::placeholder { + color: rgb(240 253 250 / 0.6); +} +.placeholder-teal-50\/70::placeholder { + color: rgb(240 253 250 / 0.7); +} +.placeholder-teal-50\/75::placeholder { + color: rgb(240 253 250 / 0.75); +} +.placeholder-teal-50\/80::placeholder { + color: rgb(240 253 250 / 0.8); +} +.placeholder-teal-50\/90::placeholder { + color: rgb(240 253 250 / 0.9); +} +.placeholder-teal-50\/95::placeholder { + color: rgb(240 253 250 / 0.95); +} +.placeholder-teal-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(20 184 166 / var(--tw-placeholder-opacity)); +} +.placeholder-teal-500\/0::placeholder { + color: rgb(20 184 166 / 0); +} +.placeholder-teal-500\/10::placeholder { + color: rgb(20 184 166 / 0.1); +} +.placeholder-teal-500\/100::placeholder { + color: rgb(20 184 166 / 1); +} +.placeholder-teal-500\/20::placeholder { + color: rgb(20 184 166 / 0.2); +} +.placeholder-teal-500\/25::placeholder { + color: rgb(20 184 166 / 0.25); +} +.placeholder-teal-500\/30::placeholder { + color: rgb(20 184 166 / 0.3); +} +.placeholder-teal-500\/40::placeholder { + color: rgb(20 184 166 / 0.4); +} +.placeholder-teal-500\/5::placeholder { + color: rgb(20 184 166 / 0.05); +} +.placeholder-teal-500\/50::placeholder { + color: rgb(20 184 166 / 0.5); +} +.placeholder-teal-500\/60::placeholder { + color: rgb(20 184 166 / 0.6); +} +.placeholder-teal-500\/70::placeholder { + color: rgb(20 184 166 / 0.7); +} +.placeholder-teal-500\/75::placeholder { + color: rgb(20 184 166 / 0.75); +} +.placeholder-teal-500\/80::placeholder { + color: rgb(20 184 166 / 0.8); +} +.placeholder-teal-500\/90::placeholder { + color: rgb(20 184 166 / 0.9); +} +.placeholder-teal-500\/95::placeholder { + color: rgb(20 184 166 / 0.95); +} +.placeholder-teal-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(13 148 136 / var(--tw-placeholder-opacity)); +} +.placeholder-teal-600\/0::placeholder { + color: rgb(13 148 136 / 0); +} +.placeholder-teal-600\/10::placeholder { + color: rgb(13 148 136 / 0.1); +} +.placeholder-teal-600\/100::placeholder { + color: rgb(13 148 136 / 1); +} +.placeholder-teal-600\/20::placeholder { + color: rgb(13 148 136 / 0.2); +} +.placeholder-teal-600\/25::placeholder { + color: rgb(13 148 136 / 0.25); +} +.placeholder-teal-600\/30::placeholder { + color: rgb(13 148 136 / 0.3); +} +.placeholder-teal-600\/40::placeholder { + color: rgb(13 148 136 / 0.4); +} +.placeholder-teal-600\/5::placeholder { + color: rgb(13 148 136 / 0.05); +} +.placeholder-teal-600\/50::placeholder { + color: rgb(13 148 136 / 0.5); +} +.placeholder-teal-600\/60::placeholder { + color: rgb(13 148 136 / 0.6); +} +.placeholder-teal-600\/70::placeholder { + color: rgb(13 148 136 / 0.7); +} +.placeholder-teal-600\/75::placeholder { + color: rgb(13 148 136 / 0.75); +} +.placeholder-teal-600\/80::placeholder { + color: rgb(13 148 136 / 0.8); +} +.placeholder-teal-600\/90::placeholder { + color: rgb(13 148 136 / 0.9); +} +.placeholder-teal-600\/95::placeholder { + color: rgb(13 148 136 / 0.95); +} +.placeholder-teal-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(15 118 110 / var(--tw-placeholder-opacity)); +} +.placeholder-teal-700\/0::placeholder { + color: rgb(15 118 110 / 0); +} +.placeholder-teal-700\/10::placeholder { + color: rgb(15 118 110 / 0.1); +} +.placeholder-teal-700\/100::placeholder { + color: rgb(15 118 110 / 1); +} +.placeholder-teal-700\/20::placeholder { + color: rgb(15 118 110 / 0.2); +} +.placeholder-teal-700\/25::placeholder { + color: rgb(15 118 110 / 0.25); +} +.placeholder-teal-700\/30::placeholder { + color: rgb(15 118 110 / 0.3); +} +.placeholder-teal-700\/40::placeholder { + color: rgb(15 118 110 / 0.4); +} +.placeholder-teal-700\/5::placeholder { + color: rgb(15 118 110 / 0.05); +} +.placeholder-teal-700\/50::placeholder { + color: rgb(15 118 110 / 0.5); +} +.placeholder-teal-700\/60::placeholder { + color: rgb(15 118 110 / 0.6); +} +.placeholder-teal-700\/70::placeholder { + color: rgb(15 118 110 / 0.7); +} +.placeholder-teal-700\/75::placeholder { + color: rgb(15 118 110 / 0.75); +} +.placeholder-teal-700\/80::placeholder { + color: rgb(15 118 110 / 0.8); +} +.placeholder-teal-700\/90::placeholder { + color: rgb(15 118 110 / 0.9); +} +.placeholder-teal-700\/95::placeholder { + color: rgb(15 118 110 / 0.95); +} +.placeholder-teal-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(17 94 89 / var(--tw-placeholder-opacity)); +} +.placeholder-teal-800\/0::placeholder { + color: rgb(17 94 89 / 0); +} +.placeholder-teal-800\/10::placeholder { + color: rgb(17 94 89 / 0.1); +} +.placeholder-teal-800\/100::placeholder { + color: rgb(17 94 89 / 1); +} +.placeholder-teal-800\/20::placeholder { + color: rgb(17 94 89 / 0.2); +} +.placeholder-teal-800\/25::placeholder { + color: rgb(17 94 89 / 0.25); +} +.placeholder-teal-800\/30::placeholder { + color: rgb(17 94 89 / 0.3); +} +.placeholder-teal-800\/40::placeholder { + color: rgb(17 94 89 / 0.4); +} +.placeholder-teal-800\/5::placeholder { + color: rgb(17 94 89 / 0.05); +} +.placeholder-teal-800\/50::placeholder { + color: rgb(17 94 89 / 0.5); +} +.placeholder-teal-800\/60::placeholder { + color: rgb(17 94 89 / 0.6); +} +.placeholder-teal-800\/70::placeholder { + color: rgb(17 94 89 / 0.7); +} +.placeholder-teal-800\/75::placeholder { + color: rgb(17 94 89 / 0.75); +} +.placeholder-teal-800\/80::placeholder { + color: rgb(17 94 89 / 0.8); +} +.placeholder-teal-800\/90::placeholder { + color: rgb(17 94 89 / 0.9); +} +.placeholder-teal-800\/95::placeholder { + color: rgb(17 94 89 / 0.95); +} +.placeholder-teal-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(19 78 74 / var(--tw-placeholder-opacity)); +} +.placeholder-teal-900\/0::placeholder { + color: rgb(19 78 74 / 0); +} +.placeholder-teal-900\/10::placeholder { + color: rgb(19 78 74 / 0.1); +} +.placeholder-teal-900\/100::placeholder { + color: rgb(19 78 74 / 1); +} +.placeholder-teal-900\/20::placeholder { + color: rgb(19 78 74 / 0.2); +} +.placeholder-teal-900\/25::placeholder { + color: rgb(19 78 74 / 0.25); +} +.placeholder-teal-900\/30::placeholder { + color: rgb(19 78 74 / 0.3); +} +.placeholder-teal-900\/40::placeholder { + color: rgb(19 78 74 / 0.4); +} +.placeholder-teal-900\/5::placeholder { + color: rgb(19 78 74 / 0.05); +} +.placeholder-teal-900\/50::placeholder { + color: rgb(19 78 74 / 0.5); +} +.placeholder-teal-900\/60::placeholder { + color: rgb(19 78 74 / 0.6); +} +.placeholder-teal-900\/70::placeholder { + color: rgb(19 78 74 / 0.7); +} +.placeholder-teal-900\/75::placeholder { + color: rgb(19 78 74 / 0.75); +} +.placeholder-teal-900\/80::placeholder { + color: rgb(19 78 74 / 0.8); +} +.placeholder-teal-900\/90::placeholder { + color: rgb(19 78 74 / 0.9); +} +.placeholder-teal-900\/95::placeholder { + color: rgb(19 78 74 / 0.95); +} +.placeholder-tertiary::placeholder { + color: var(--color-tertiary); +} +.placeholder-tourisme-primary::placeholder { + color: var(--tourisme-primary); +} +.placeholder-tourisme-secondary::placeholder { + color: var(--tourisme-secondary); +} +.placeholder-tourisme-tertiary::placeholder { + color: var(--tourisme-tertiary); +} +.placeholder-transparent::placeholder { + color: transparent; +} +.placeholder-transparent\/0::placeholder { + color: rgb(0 0 0 / 0); +} +.placeholder-transparent\/10::placeholder { + color: rgb(0 0 0 / 0.1); +} +.placeholder-transparent\/100::placeholder { + color: rgb(0 0 0 / 1); +} +.placeholder-transparent\/20::placeholder { + color: rgb(0 0 0 / 0.2); +} +.placeholder-transparent\/25::placeholder { + color: rgb(0 0 0 / 0.25); +} +.placeholder-transparent\/30::placeholder { + color: rgb(0 0 0 / 0.3); +} +.placeholder-transparent\/40::placeholder { + color: rgb(0 0 0 / 0.4); +} +.placeholder-transparent\/5::placeholder { + color: rgb(0 0 0 / 0.05); +} +.placeholder-transparent\/50::placeholder { + color: rgb(0 0 0 / 0.5); +} +.placeholder-transparent\/60::placeholder { + color: rgb(0 0 0 / 0.6); +} +.placeholder-transparent\/70::placeholder { + color: rgb(0 0 0 / 0.7); +} +.placeholder-transparent\/75::placeholder { + color: rgb(0 0 0 / 0.75); +} +.placeholder-transparent\/80::placeholder { + color: rgb(0 0 0 / 0.8); +} +.placeholder-transparent\/90::placeholder { + color: rgb(0 0 0 / 0.9); +} +.placeholder-transparent\/95::placeholder { + color: rgb(0 0 0 / 0.95); +} +.placeholder-urban_farming-primary::placeholder { + color: var(--urban_farming-primary); +} +.placeholder-urban_farming-secondary::placeholder { + color: var(--urban_farming-secondary); +} +.placeholder-urban_farming-tertiary::placeholder { + color: var(--urban_farming-tertiary); +} +.placeholder-violet-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(237 233 254 / var(--tw-placeholder-opacity)); +} +.placeholder-violet-100\/0::placeholder { + color: rgb(237 233 254 / 0); +} +.placeholder-violet-100\/10::placeholder { + color: rgb(237 233 254 / 0.1); +} +.placeholder-violet-100\/100::placeholder { + color: rgb(237 233 254 / 1); +} +.placeholder-violet-100\/20::placeholder { + color: rgb(237 233 254 / 0.2); +} +.placeholder-violet-100\/25::placeholder { + color: rgb(237 233 254 / 0.25); +} +.placeholder-violet-100\/30::placeholder { + color: rgb(237 233 254 / 0.3); +} +.placeholder-violet-100\/40::placeholder { + color: rgb(237 233 254 / 0.4); +} +.placeholder-violet-100\/5::placeholder { + color: rgb(237 233 254 / 0.05); +} +.placeholder-violet-100\/50::placeholder { + color: rgb(237 233 254 / 0.5); +} +.placeholder-violet-100\/60::placeholder { + color: rgb(237 233 254 / 0.6); +} +.placeholder-violet-100\/70::placeholder { + color: rgb(237 233 254 / 0.7); +} +.placeholder-violet-100\/75::placeholder { + color: rgb(237 233 254 / 0.75); +} +.placeholder-violet-100\/80::placeholder { + color: rgb(237 233 254 / 0.8); +} +.placeholder-violet-100\/90::placeholder { + color: rgb(237 233 254 / 0.9); +} +.placeholder-violet-100\/95::placeholder { + color: rgb(237 233 254 / 0.95); +} +.placeholder-violet-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(221 214 254 / var(--tw-placeholder-opacity)); +} +.placeholder-violet-200\/0::placeholder { + color: rgb(221 214 254 / 0); +} +.placeholder-violet-200\/10::placeholder { + color: rgb(221 214 254 / 0.1); +} +.placeholder-violet-200\/100::placeholder { + color: rgb(221 214 254 / 1); +} +.placeholder-violet-200\/20::placeholder { + color: rgb(221 214 254 / 0.2); +} +.placeholder-violet-200\/25::placeholder { + color: rgb(221 214 254 / 0.25); +} +.placeholder-violet-200\/30::placeholder { + color: rgb(221 214 254 / 0.3); +} +.placeholder-violet-200\/40::placeholder { + color: rgb(221 214 254 / 0.4); +} +.placeholder-violet-200\/5::placeholder { + color: rgb(221 214 254 / 0.05); +} +.placeholder-violet-200\/50::placeholder { + color: rgb(221 214 254 / 0.5); +} +.placeholder-violet-200\/60::placeholder { + color: rgb(221 214 254 / 0.6); +} +.placeholder-violet-200\/70::placeholder { + color: rgb(221 214 254 / 0.7); +} +.placeholder-violet-200\/75::placeholder { + color: rgb(221 214 254 / 0.75); +} +.placeholder-violet-200\/80::placeholder { + color: rgb(221 214 254 / 0.8); +} +.placeholder-violet-200\/90::placeholder { + color: rgb(221 214 254 / 0.9); +} +.placeholder-violet-200\/95::placeholder { + color: rgb(221 214 254 / 0.95); +} +.placeholder-violet-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(196 181 253 / var(--tw-placeholder-opacity)); +} +.placeholder-violet-300\/0::placeholder { + color: rgb(196 181 253 / 0); +} +.placeholder-violet-300\/10::placeholder { + color: rgb(196 181 253 / 0.1); +} +.placeholder-violet-300\/100::placeholder { + color: rgb(196 181 253 / 1); +} +.placeholder-violet-300\/20::placeholder { + color: rgb(196 181 253 / 0.2); +} +.placeholder-violet-300\/25::placeholder { + color: rgb(196 181 253 / 0.25); +} +.placeholder-violet-300\/30::placeholder { + color: rgb(196 181 253 / 0.3); +} +.placeholder-violet-300\/40::placeholder { + color: rgb(196 181 253 / 0.4); +} +.placeholder-violet-300\/5::placeholder { + color: rgb(196 181 253 / 0.05); +} +.placeholder-violet-300\/50::placeholder { + color: rgb(196 181 253 / 0.5); +} +.placeholder-violet-300\/60::placeholder { + color: rgb(196 181 253 / 0.6); +} +.placeholder-violet-300\/70::placeholder { + color: rgb(196 181 253 / 0.7); +} +.placeholder-violet-300\/75::placeholder { + color: rgb(196 181 253 / 0.75); +} +.placeholder-violet-300\/80::placeholder { + color: rgb(196 181 253 / 0.8); +} +.placeholder-violet-300\/90::placeholder { + color: rgb(196 181 253 / 0.9); +} +.placeholder-violet-300\/95::placeholder { + color: rgb(196 181 253 / 0.95); +} +.placeholder-violet-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(167 139 250 / var(--tw-placeholder-opacity)); +} +.placeholder-violet-400\/0::placeholder { + color: rgb(167 139 250 / 0); +} +.placeholder-violet-400\/10::placeholder { + color: rgb(167 139 250 / 0.1); +} +.placeholder-violet-400\/100::placeholder { + color: rgb(167 139 250 / 1); +} +.placeholder-violet-400\/20::placeholder { + color: rgb(167 139 250 / 0.2); +} +.placeholder-violet-400\/25::placeholder { + color: rgb(167 139 250 / 0.25); +} +.placeholder-violet-400\/30::placeholder { + color: rgb(167 139 250 / 0.3); +} +.placeholder-violet-400\/40::placeholder { + color: rgb(167 139 250 / 0.4); +} +.placeholder-violet-400\/5::placeholder { + color: rgb(167 139 250 / 0.05); +} +.placeholder-violet-400\/50::placeholder { + color: rgb(167 139 250 / 0.5); +} +.placeholder-violet-400\/60::placeholder { + color: rgb(167 139 250 / 0.6); +} +.placeholder-violet-400\/70::placeholder { + color: rgb(167 139 250 / 0.7); +} +.placeholder-violet-400\/75::placeholder { + color: rgb(167 139 250 / 0.75); +} +.placeholder-violet-400\/80::placeholder { + color: rgb(167 139 250 / 0.8); +} +.placeholder-violet-400\/90::placeholder { + color: rgb(167 139 250 / 0.9); +} +.placeholder-violet-400\/95::placeholder { + color: rgb(167 139 250 / 0.95); +} +.placeholder-violet-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(245 243 255 / var(--tw-placeholder-opacity)); +} +.placeholder-violet-50\/0::placeholder { + color: rgb(245 243 255 / 0); +} +.placeholder-violet-50\/10::placeholder { + color: rgb(245 243 255 / 0.1); +} +.placeholder-violet-50\/100::placeholder { + color: rgb(245 243 255 / 1); +} +.placeholder-violet-50\/20::placeholder { + color: rgb(245 243 255 / 0.2); +} +.placeholder-violet-50\/25::placeholder { + color: rgb(245 243 255 / 0.25); +} +.placeholder-violet-50\/30::placeholder { + color: rgb(245 243 255 / 0.3); +} +.placeholder-violet-50\/40::placeholder { + color: rgb(245 243 255 / 0.4); +} +.placeholder-violet-50\/5::placeholder { + color: rgb(245 243 255 / 0.05); +} +.placeholder-violet-50\/50::placeholder { + color: rgb(245 243 255 / 0.5); +} +.placeholder-violet-50\/60::placeholder { + color: rgb(245 243 255 / 0.6); +} +.placeholder-violet-50\/70::placeholder { + color: rgb(245 243 255 / 0.7); +} +.placeholder-violet-50\/75::placeholder { + color: rgb(245 243 255 / 0.75); +} +.placeholder-violet-50\/80::placeholder { + color: rgb(245 243 255 / 0.8); +} +.placeholder-violet-50\/90::placeholder { + color: rgb(245 243 255 / 0.9); +} +.placeholder-violet-50\/95::placeholder { + color: rgb(245 243 255 / 0.95); +} +.placeholder-violet-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(139 92 246 / var(--tw-placeholder-opacity)); +} +.placeholder-violet-500\/0::placeholder { + color: rgb(139 92 246 / 0); +} +.placeholder-violet-500\/10::placeholder { + color: rgb(139 92 246 / 0.1); +} +.placeholder-violet-500\/100::placeholder { + color: rgb(139 92 246 / 1); +} +.placeholder-violet-500\/20::placeholder { + color: rgb(139 92 246 / 0.2); +} +.placeholder-violet-500\/25::placeholder { + color: rgb(139 92 246 / 0.25); +} +.placeholder-violet-500\/30::placeholder { + color: rgb(139 92 246 / 0.3); +} +.placeholder-violet-500\/40::placeholder { + color: rgb(139 92 246 / 0.4); +} +.placeholder-violet-500\/5::placeholder { + color: rgb(139 92 246 / 0.05); +} +.placeholder-violet-500\/50::placeholder { + color: rgb(139 92 246 / 0.5); +} +.placeholder-violet-500\/60::placeholder { + color: rgb(139 92 246 / 0.6); +} +.placeholder-violet-500\/70::placeholder { + color: rgb(139 92 246 / 0.7); +} +.placeholder-violet-500\/75::placeholder { + color: rgb(139 92 246 / 0.75); +} +.placeholder-violet-500\/80::placeholder { + color: rgb(139 92 246 / 0.8); +} +.placeholder-violet-500\/90::placeholder { + color: rgb(139 92 246 / 0.9); +} +.placeholder-violet-500\/95::placeholder { + color: rgb(139 92 246 / 0.95); +} +.placeholder-violet-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(124 58 237 / var(--tw-placeholder-opacity)); +} +.placeholder-violet-600\/0::placeholder { + color: rgb(124 58 237 / 0); +} +.placeholder-violet-600\/10::placeholder { + color: rgb(124 58 237 / 0.1); +} +.placeholder-violet-600\/100::placeholder { + color: rgb(124 58 237 / 1); +} +.placeholder-violet-600\/20::placeholder { + color: rgb(124 58 237 / 0.2); +} +.placeholder-violet-600\/25::placeholder { + color: rgb(124 58 237 / 0.25); +} +.placeholder-violet-600\/30::placeholder { + color: rgb(124 58 237 / 0.3); +} +.placeholder-violet-600\/40::placeholder { + color: rgb(124 58 237 / 0.4); +} +.placeholder-violet-600\/5::placeholder { + color: rgb(124 58 237 / 0.05); +} +.placeholder-violet-600\/50::placeholder { + color: rgb(124 58 237 / 0.5); +} +.placeholder-violet-600\/60::placeholder { + color: rgb(124 58 237 / 0.6); +} +.placeholder-violet-600\/70::placeholder { + color: rgb(124 58 237 / 0.7); +} +.placeholder-violet-600\/75::placeholder { + color: rgb(124 58 237 / 0.75); +} +.placeholder-violet-600\/80::placeholder { + color: rgb(124 58 237 / 0.8); +} +.placeholder-violet-600\/90::placeholder { + color: rgb(124 58 237 / 0.9); +} +.placeholder-violet-600\/95::placeholder { + color: rgb(124 58 237 / 0.95); +} +.placeholder-violet-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(109 40 217 / var(--tw-placeholder-opacity)); +} +.placeholder-violet-700\/0::placeholder { + color: rgb(109 40 217 / 0); +} +.placeholder-violet-700\/10::placeholder { + color: rgb(109 40 217 / 0.1); +} +.placeholder-violet-700\/100::placeholder { + color: rgb(109 40 217 / 1); +} +.placeholder-violet-700\/20::placeholder { + color: rgb(109 40 217 / 0.2); +} +.placeholder-violet-700\/25::placeholder { + color: rgb(109 40 217 / 0.25); +} +.placeholder-violet-700\/30::placeholder { + color: rgb(109 40 217 / 0.3); +} +.placeholder-violet-700\/40::placeholder { + color: rgb(109 40 217 / 0.4); +} +.placeholder-violet-700\/5::placeholder { + color: rgb(109 40 217 / 0.05); +} +.placeholder-violet-700\/50::placeholder { + color: rgb(109 40 217 / 0.5); +} +.placeholder-violet-700\/60::placeholder { + color: rgb(109 40 217 / 0.6); +} +.placeholder-violet-700\/70::placeholder { + color: rgb(109 40 217 / 0.7); +} +.placeholder-violet-700\/75::placeholder { + color: rgb(109 40 217 / 0.75); +} +.placeholder-violet-700\/80::placeholder { + color: rgb(109 40 217 / 0.8); +} +.placeholder-violet-700\/90::placeholder { + color: rgb(109 40 217 / 0.9); +} +.placeholder-violet-700\/95::placeholder { + color: rgb(109 40 217 / 0.95); +} +.placeholder-violet-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(91 33 182 / var(--tw-placeholder-opacity)); +} +.placeholder-violet-800\/0::placeholder { + color: rgb(91 33 182 / 0); +} +.placeholder-violet-800\/10::placeholder { + color: rgb(91 33 182 / 0.1); +} +.placeholder-violet-800\/100::placeholder { + color: rgb(91 33 182 / 1); +} +.placeholder-violet-800\/20::placeholder { + color: rgb(91 33 182 / 0.2); +} +.placeholder-violet-800\/25::placeholder { + color: rgb(91 33 182 / 0.25); +} +.placeholder-violet-800\/30::placeholder { + color: rgb(91 33 182 / 0.3); +} +.placeholder-violet-800\/40::placeholder { + color: rgb(91 33 182 / 0.4); +} +.placeholder-violet-800\/5::placeholder { + color: rgb(91 33 182 / 0.05); +} +.placeholder-violet-800\/50::placeholder { + color: rgb(91 33 182 / 0.5); +} +.placeholder-violet-800\/60::placeholder { + color: rgb(91 33 182 / 0.6); +} +.placeholder-violet-800\/70::placeholder { + color: rgb(91 33 182 / 0.7); +} +.placeholder-violet-800\/75::placeholder { + color: rgb(91 33 182 / 0.75); +} +.placeholder-violet-800\/80::placeholder { + color: rgb(91 33 182 / 0.8); +} +.placeholder-violet-800\/90::placeholder { + color: rgb(91 33 182 / 0.9); +} +.placeholder-violet-800\/95::placeholder { + color: rgb(91 33 182 / 0.95); +} +.placeholder-violet-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(76 29 149 / var(--tw-placeholder-opacity)); +} +.placeholder-violet-900\/0::placeholder { + color: rgb(76 29 149 / 0); +} +.placeholder-violet-900\/10::placeholder { + color: rgb(76 29 149 / 0.1); +} +.placeholder-violet-900\/100::placeholder { + color: rgb(76 29 149 / 1); +} +.placeholder-violet-900\/20::placeholder { + color: rgb(76 29 149 / 0.2); +} +.placeholder-violet-900\/25::placeholder { + color: rgb(76 29 149 / 0.25); +} +.placeholder-violet-900\/30::placeholder { + color: rgb(76 29 149 / 0.3); +} +.placeholder-violet-900\/40::placeholder { + color: rgb(76 29 149 / 0.4); +} +.placeholder-violet-900\/5::placeholder { + color: rgb(76 29 149 / 0.05); +} +.placeholder-violet-900\/50::placeholder { + color: rgb(76 29 149 / 0.5); +} +.placeholder-violet-900\/60::placeholder { + color: rgb(76 29 149 / 0.6); +} +.placeholder-violet-900\/70::placeholder { + color: rgb(76 29 149 / 0.7); +} +.placeholder-violet-900\/75::placeholder { + color: rgb(76 29 149 / 0.75); +} +.placeholder-violet-900\/80::placeholder { + color: rgb(76 29 149 / 0.8); +} +.placeholder-violet-900\/90::placeholder { + color: rgb(76 29 149 / 0.9); +} +.placeholder-violet-900\/95::placeholder { + color: rgb(76 29 149 / 0.95); +} +.placeholder-wellenstein-primary::placeholder { + color: var(--wellenstein-primary); +} +.placeholder-wellenstein-secondary::placeholder { + color: var(--wellenstein-secondary); +} +.placeholder-wellenstein-tertiary::placeholder { + color: var(--wellenstein-tertiary); +} +.placeholder-white::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(255 255 255 / var(--tw-placeholder-opacity)); +} +.placeholder-white\/0::placeholder { + color: rgb(255 255 255 / 0); +} +.placeholder-white\/10::placeholder { + color: rgb(255 255 255 / 0.1); +} +.placeholder-white\/100::placeholder { + color: rgb(255 255 255 / 1); +} +.placeholder-white\/20::placeholder { + color: rgb(255 255 255 / 0.2); +} +.placeholder-white\/25::placeholder { + color: rgb(255 255 255 / 0.25); +} +.placeholder-white\/30::placeholder { + color: rgb(255 255 255 / 0.3); +} +.placeholder-white\/40::placeholder { + color: rgb(255 255 255 / 0.4); +} +.placeholder-white\/5::placeholder { + color: rgb(255 255 255 / 0.05); +} +.placeholder-white\/50::placeholder { + color: rgb(255 255 255 / 0.5); +} +.placeholder-white\/60::placeholder { + color: rgb(255 255 255 / 0.6); +} +.placeholder-white\/70::placeholder { + color: rgb(255 255 255 / 0.7); +} +.placeholder-white\/75::placeholder { + color: rgb(255 255 255 / 0.75); +} +.placeholder-white\/80::placeholder { + color: rgb(255 255 255 / 0.8); +} +.placeholder-white\/90::placeholder { + color: rgb(255 255 255 / 0.9); +} +.placeholder-white\/95::placeholder { + color: rgb(255 255 255 / 0.95); +} +.placeholder-yellow-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(254 249 195 / var(--tw-placeholder-opacity)); +} +.placeholder-yellow-100\/0::placeholder { + color: rgb(254 249 195 / 0); +} +.placeholder-yellow-100\/10::placeholder { + color: rgb(254 249 195 / 0.1); +} +.placeholder-yellow-100\/100::placeholder { + color: rgb(254 249 195 / 1); +} +.placeholder-yellow-100\/20::placeholder { + color: rgb(254 249 195 / 0.2); +} +.placeholder-yellow-100\/25::placeholder { + color: rgb(254 249 195 / 0.25); +} +.placeholder-yellow-100\/30::placeholder { + color: rgb(254 249 195 / 0.3); +} +.placeholder-yellow-100\/40::placeholder { + color: rgb(254 249 195 / 0.4); +} +.placeholder-yellow-100\/5::placeholder { + color: rgb(254 249 195 / 0.05); +} +.placeholder-yellow-100\/50::placeholder { + color: rgb(254 249 195 / 0.5); +} +.placeholder-yellow-100\/60::placeholder { + color: rgb(254 249 195 / 0.6); +} +.placeholder-yellow-100\/70::placeholder { + color: rgb(254 249 195 / 0.7); +} +.placeholder-yellow-100\/75::placeholder { + color: rgb(254 249 195 / 0.75); +} +.placeholder-yellow-100\/80::placeholder { + color: rgb(254 249 195 / 0.8); +} +.placeholder-yellow-100\/90::placeholder { + color: rgb(254 249 195 / 0.9); +} +.placeholder-yellow-100\/95::placeholder { + color: rgb(254 249 195 / 0.95); +} +.placeholder-yellow-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(254 240 138 / var(--tw-placeholder-opacity)); +} +.placeholder-yellow-200\/0::placeholder { + color: rgb(254 240 138 / 0); +} +.placeholder-yellow-200\/10::placeholder { + color: rgb(254 240 138 / 0.1); +} +.placeholder-yellow-200\/100::placeholder { + color: rgb(254 240 138 / 1); +} +.placeholder-yellow-200\/20::placeholder { + color: rgb(254 240 138 / 0.2); +} +.placeholder-yellow-200\/25::placeholder { + color: rgb(254 240 138 / 0.25); +} +.placeholder-yellow-200\/30::placeholder { + color: rgb(254 240 138 / 0.3); +} +.placeholder-yellow-200\/40::placeholder { + color: rgb(254 240 138 / 0.4); +} +.placeholder-yellow-200\/5::placeholder { + color: rgb(254 240 138 / 0.05); +} +.placeholder-yellow-200\/50::placeholder { + color: rgb(254 240 138 / 0.5); +} +.placeholder-yellow-200\/60::placeholder { + color: rgb(254 240 138 / 0.6); +} +.placeholder-yellow-200\/70::placeholder { + color: rgb(254 240 138 / 0.7); +} +.placeholder-yellow-200\/75::placeholder { + color: rgb(254 240 138 / 0.75); +} +.placeholder-yellow-200\/80::placeholder { + color: rgb(254 240 138 / 0.8); +} +.placeholder-yellow-200\/90::placeholder { + color: rgb(254 240 138 / 0.9); +} +.placeholder-yellow-200\/95::placeholder { + color: rgb(254 240 138 / 0.95); +} +.placeholder-yellow-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(253 224 71 / var(--tw-placeholder-opacity)); +} +.placeholder-yellow-300\/0::placeholder { + color: rgb(253 224 71 / 0); +} +.placeholder-yellow-300\/10::placeholder { + color: rgb(253 224 71 / 0.1); +} +.placeholder-yellow-300\/100::placeholder { + color: rgb(253 224 71 / 1); +} +.placeholder-yellow-300\/20::placeholder { + color: rgb(253 224 71 / 0.2); +} +.placeholder-yellow-300\/25::placeholder { + color: rgb(253 224 71 / 0.25); +} +.placeholder-yellow-300\/30::placeholder { + color: rgb(253 224 71 / 0.3); +} +.placeholder-yellow-300\/40::placeholder { + color: rgb(253 224 71 / 0.4); +} +.placeholder-yellow-300\/5::placeholder { + color: rgb(253 224 71 / 0.05); +} +.placeholder-yellow-300\/50::placeholder { + color: rgb(253 224 71 / 0.5); +} +.placeholder-yellow-300\/60::placeholder { + color: rgb(253 224 71 / 0.6); +} +.placeholder-yellow-300\/70::placeholder { + color: rgb(253 224 71 / 0.7); +} +.placeholder-yellow-300\/75::placeholder { + color: rgb(253 224 71 / 0.75); +} +.placeholder-yellow-300\/80::placeholder { + color: rgb(253 224 71 / 0.8); +} +.placeholder-yellow-300\/90::placeholder { + color: rgb(253 224 71 / 0.9); +} +.placeholder-yellow-300\/95::placeholder { + color: rgb(253 224 71 / 0.95); +} +.placeholder-yellow-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(250 204 21 / var(--tw-placeholder-opacity)); +} +.placeholder-yellow-400\/0::placeholder { + color: rgb(250 204 21 / 0); +} +.placeholder-yellow-400\/10::placeholder { + color: rgb(250 204 21 / 0.1); +} +.placeholder-yellow-400\/100::placeholder { + color: rgb(250 204 21 / 1); +} +.placeholder-yellow-400\/20::placeholder { + color: rgb(250 204 21 / 0.2); +} +.placeholder-yellow-400\/25::placeholder { + color: rgb(250 204 21 / 0.25); +} +.placeholder-yellow-400\/30::placeholder { + color: rgb(250 204 21 / 0.3); +} +.placeholder-yellow-400\/40::placeholder { + color: rgb(250 204 21 / 0.4); +} +.placeholder-yellow-400\/5::placeholder { + color: rgb(250 204 21 / 0.05); +} +.placeholder-yellow-400\/50::placeholder { + color: rgb(250 204 21 / 0.5); +} +.placeholder-yellow-400\/60::placeholder { + color: rgb(250 204 21 / 0.6); +} +.placeholder-yellow-400\/70::placeholder { + color: rgb(250 204 21 / 0.7); +} +.placeholder-yellow-400\/75::placeholder { + color: rgb(250 204 21 / 0.75); +} +.placeholder-yellow-400\/80::placeholder { + color: rgb(250 204 21 / 0.8); +} +.placeholder-yellow-400\/90::placeholder { + color: rgb(250 204 21 / 0.9); +} +.placeholder-yellow-400\/95::placeholder { + color: rgb(250 204 21 / 0.95); +} +.placeholder-yellow-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(254 252 232 / var(--tw-placeholder-opacity)); +} +.placeholder-yellow-50\/0::placeholder { + color: rgb(254 252 232 / 0); +} +.placeholder-yellow-50\/10::placeholder { + color: rgb(254 252 232 / 0.1); +} +.placeholder-yellow-50\/100::placeholder { + color: rgb(254 252 232 / 1); +} +.placeholder-yellow-50\/20::placeholder { + color: rgb(254 252 232 / 0.2); +} +.placeholder-yellow-50\/25::placeholder { + color: rgb(254 252 232 / 0.25); +} +.placeholder-yellow-50\/30::placeholder { + color: rgb(254 252 232 / 0.3); +} +.placeholder-yellow-50\/40::placeholder { + color: rgb(254 252 232 / 0.4); +} +.placeholder-yellow-50\/5::placeholder { + color: rgb(254 252 232 / 0.05); +} +.placeholder-yellow-50\/50::placeholder { + color: rgb(254 252 232 / 0.5); +} +.placeholder-yellow-50\/60::placeholder { + color: rgb(254 252 232 / 0.6); +} +.placeholder-yellow-50\/70::placeholder { + color: rgb(254 252 232 / 0.7); +} +.placeholder-yellow-50\/75::placeholder { + color: rgb(254 252 232 / 0.75); +} +.placeholder-yellow-50\/80::placeholder { + color: rgb(254 252 232 / 0.8); +} +.placeholder-yellow-50\/90::placeholder { + color: rgb(254 252 232 / 0.9); +} +.placeholder-yellow-50\/95::placeholder { + color: rgb(254 252 232 / 0.95); +} +.placeholder-yellow-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(234 179 8 / var(--tw-placeholder-opacity)); +} +.placeholder-yellow-500\/0::placeholder { + color: rgb(234 179 8 / 0); +} +.placeholder-yellow-500\/10::placeholder { + color: rgb(234 179 8 / 0.1); +} +.placeholder-yellow-500\/100::placeholder { + color: rgb(234 179 8 / 1); +} +.placeholder-yellow-500\/20::placeholder { + color: rgb(234 179 8 / 0.2); +} +.placeholder-yellow-500\/25::placeholder { + color: rgb(234 179 8 / 0.25); +} +.placeholder-yellow-500\/30::placeholder { + color: rgb(234 179 8 / 0.3); +} +.placeholder-yellow-500\/40::placeholder { + color: rgb(234 179 8 / 0.4); +} +.placeholder-yellow-500\/5::placeholder { + color: rgb(234 179 8 / 0.05); +} +.placeholder-yellow-500\/50::placeholder { + color: rgb(234 179 8 / 0.5); +} +.placeholder-yellow-500\/60::placeholder { + color: rgb(234 179 8 / 0.6); +} +.placeholder-yellow-500\/70::placeholder { + color: rgb(234 179 8 / 0.7); +} +.placeholder-yellow-500\/75::placeholder { + color: rgb(234 179 8 / 0.75); +} +.placeholder-yellow-500\/80::placeholder { + color: rgb(234 179 8 / 0.8); +} +.placeholder-yellow-500\/90::placeholder { + color: rgb(234 179 8 / 0.9); +} +.placeholder-yellow-500\/95::placeholder { + color: rgb(234 179 8 / 0.95); +} +.placeholder-yellow-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(202 138 4 / var(--tw-placeholder-opacity)); +} +.placeholder-yellow-600\/0::placeholder { + color: rgb(202 138 4 / 0); +} +.placeholder-yellow-600\/10::placeholder { + color: rgb(202 138 4 / 0.1); +} +.placeholder-yellow-600\/100::placeholder { + color: rgb(202 138 4 / 1); +} +.placeholder-yellow-600\/20::placeholder { + color: rgb(202 138 4 / 0.2); +} +.placeholder-yellow-600\/25::placeholder { + color: rgb(202 138 4 / 0.25); +} +.placeholder-yellow-600\/30::placeholder { + color: rgb(202 138 4 / 0.3); +} +.placeholder-yellow-600\/40::placeholder { + color: rgb(202 138 4 / 0.4); +} +.placeholder-yellow-600\/5::placeholder { + color: rgb(202 138 4 / 0.05); +} +.placeholder-yellow-600\/50::placeholder { + color: rgb(202 138 4 / 0.5); +} +.placeholder-yellow-600\/60::placeholder { + color: rgb(202 138 4 / 0.6); +} +.placeholder-yellow-600\/70::placeholder { + color: rgb(202 138 4 / 0.7); +} +.placeholder-yellow-600\/75::placeholder { + color: rgb(202 138 4 / 0.75); +} +.placeholder-yellow-600\/80::placeholder { + color: rgb(202 138 4 / 0.8); +} +.placeholder-yellow-600\/90::placeholder { + color: rgb(202 138 4 / 0.9); +} +.placeholder-yellow-600\/95::placeholder { + color: rgb(202 138 4 / 0.95); +} +.placeholder-yellow-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(161 98 7 / var(--tw-placeholder-opacity)); +} +.placeholder-yellow-700\/0::placeholder { + color: rgb(161 98 7 / 0); +} +.placeholder-yellow-700\/10::placeholder { + color: rgb(161 98 7 / 0.1); +} +.placeholder-yellow-700\/100::placeholder { + color: rgb(161 98 7 / 1); +} +.placeholder-yellow-700\/20::placeholder { + color: rgb(161 98 7 / 0.2); +} +.placeholder-yellow-700\/25::placeholder { + color: rgb(161 98 7 / 0.25); +} +.placeholder-yellow-700\/30::placeholder { + color: rgb(161 98 7 / 0.3); +} +.placeholder-yellow-700\/40::placeholder { + color: rgb(161 98 7 / 0.4); +} +.placeholder-yellow-700\/5::placeholder { + color: rgb(161 98 7 / 0.05); +} +.placeholder-yellow-700\/50::placeholder { + color: rgb(161 98 7 / 0.5); +} +.placeholder-yellow-700\/60::placeholder { + color: rgb(161 98 7 / 0.6); +} +.placeholder-yellow-700\/70::placeholder { + color: rgb(161 98 7 / 0.7); +} +.placeholder-yellow-700\/75::placeholder { + color: rgb(161 98 7 / 0.75); +} +.placeholder-yellow-700\/80::placeholder { + color: rgb(161 98 7 / 0.8); +} +.placeholder-yellow-700\/90::placeholder { + color: rgb(161 98 7 / 0.9); +} +.placeholder-yellow-700\/95::placeholder { + color: rgb(161 98 7 / 0.95); +} +.placeholder-yellow-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(133 77 14 / var(--tw-placeholder-opacity)); +} +.placeholder-yellow-800\/0::placeholder { + color: rgb(133 77 14 / 0); +} +.placeholder-yellow-800\/10::placeholder { + color: rgb(133 77 14 / 0.1); +} +.placeholder-yellow-800\/100::placeholder { + color: rgb(133 77 14 / 1); +} +.placeholder-yellow-800\/20::placeholder { + color: rgb(133 77 14 / 0.2); +} +.placeholder-yellow-800\/25::placeholder { + color: rgb(133 77 14 / 0.25); +} +.placeholder-yellow-800\/30::placeholder { + color: rgb(133 77 14 / 0.3); +} +.placeholder-yellow-800\/40::placeholder { + color: rgb(133 77 14 / 0.4); +} +.placeholder-yellow-800\/5::placeholder { + color: rgb(133 77 14 / 0.05); +} +.placeholder-yellow-800\/50::placeholder { + color: rgb(133 77 14 / 0.5); +} +.placeholder-yellow-800\/60::placeholder { + color: rgb(133 77 14 / 0.6); +} +.placeholder-yellow-800\/70::placeholder { + color: rgb(133 77 14 / 0.7); +} +.placeholder-yellow-800\/75::placeholder { + color: rgb(133 77 14 / 0.75); +} +.placeholder-yellow-800\/80::placeholder { + color: rgb(133 77 14 / 0.8); +} +.placeholder-yellow-800\/90::placeholder { + color: rgb(133 77 14 / 0.9); +} +.placeholder-yellow-800\/95::placeholder { + color: rgb(133 77 14 / 0.95); +} +.placeholder-yellow-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(113 63 18 / var(--tw-placeholder-opacity)); +} +.placeholder-yellow-900\/0::placeholder { + color: rgb(113 63 18 / 0); +} +.placeholder-yellow-900\/10::placeholder { + color: rgb(113 63 18 / 0.1); +} +.placeholder-yellow-900\/100::placeholder { + color: rgb(113 63 18 / 1); +} +.placeholder-yellow-900\/20::placeholder { + color: rgb(113 63 18 / 0.2); +} +.placeholder-yellow-900\/25::placeholder { + color: rgb(113 63 18 / 0.25); +} +.placeholder-yellow-900\/30::placeholder { + color: rgb(113 63 18 / 0.3); +} +.placeholder-yellow-900\/40::placeholder { + color: rgb(113 63 18 / 0.4); +} +.placeholder-yellow-900\/5::placeholder { + color: rgb(113 63 18 / 0.05); +} +.placeholder-yellow-900\/50::placeholder { + color: rgb(113 63 18 / 0.5); +} +.placeholder-yellow-900\/60::placeholder { + color: rgb(113 63 18 / 0.6); +} +.placeholder-yellow-900\/70::placeholder { + color: rgb(113 63 18 / 0.7); +} +.placeholder-yellow-900\/75::placeholder { + color: rgb(113 63 18 / 0.75); +} +.placeholder-yellow-900\/80::placeholder { + color: rgb(113 63 18 / 0.8); +} +.placeholder-yellow-900\/90::placeholder { + color: rgb(113 63 18 / 0.9); +} +.placeholder-yellow-900\/95::placeholder { + color: rgb(113 63 18 / 0.95); +} +.placeholder-zinc-100::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(244 244 245 / var(--tw-placeholder-opacity)); +} +.placeholder-zinc-100\/0::placeholder { + color: rgb(244 244 245 / 0); +} +.placeholder-zinc-100\/10::placeholder { + color: rgb(244 244 245 / 0.1); +} +.placeholder-zinc-100\/100::placeholder { + color: rgb(244 244 245 / 1); +} +.placeholder-zinc-100\/20::placeholder { + color: rgb(244 244 245 / 0.2); +} +.placeholder-zinc-100\/25::placeholder { + color: rgb(244 244 245 / 0.25); +} +.placeholder-zinc-100\/30::placeholder { + color: rgb(244 244 245 / 0.3); +} +.placeholder-zinc-100\/40::placeholder { + color: rgb(244 244 245 / 0.4); +} +.placeholder-zinc-100\/5::placeholder { + color: rgb(244 244 245 / 0.05); +} +.placeholder-zinc-100\/50::placeholder { + color: rgb(244 244 245 / 0.5); +} +.placeholder-zinc-100\/60::placeholder { + color: rgb(244 244 245 / 0.6); +} +.placeholder-zinc-100\/70::placeholder { + color: rgb(244 244 245 / 0.7); +} +.placeholder-zinc-100\/75::placeholder { + color: rgb(244 244 245 / 0.75); +} +.placeholder-zinc-100\/80::placeholder { + color: rgb(244 244 245 / 0.8); +} +.placeholder-zinc-100\/90::placeholder { + color: rgb(244 244 245 / 0.9); +} +.placeholder-zinc-100\/95::placeholder { + color: rgb(244 244 245 / 0.95); +} +.placeholder-zinc-200::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(228 228 231 / var(--tw-placeholder-opacity)); +} +.placeholder-zinc-200\/0::placeholder { + color: rgb(228 228 231 / 0); +} +.placeholder-zinc-200\/10::placeholder { + color: rgb(228 228 231 / 0.1); +} +.placeholder-zinc-200\/100::placeholder { + color: rgb(228 228 231 / 1); +} +.placeholder-zinc-200\/20::placeholder { + color: rgb(228 228 231 / 0.2); +} +.placeholder-zinc-200\/25::placeholder { + color: rgb(228 228 231 / 0.25); +} +.placeholder-zinc-200\/30::placeholder { + color: rgb(228 228 231 / 0.3); +} +.placeholder-zinc-200\/40::placeholder { + color: rgb(228 228 231 / 0.4); +} +.placeholder-zinc-200\/5::placeholder { + color: rgb(228 228 231 / 0.05); +} +.placeholder-zinc-200\/50::placeholder { + color: rgb(228 228 231 / 0.5); +} +.placeholder-zinc-200\/60::placeholder { + color: rgb(228 228 231 / 0.6); +} +.placeholder-zinc-200\/70::placeholder { + color: rgb(228 228 231 / 0.7); +} +.placeholder-zinc-200\/75::placeholder { + color: rgb(228 228 231 / 0.75); +} +.placeholder-zinc-200\/80::placeholder { + color: rgb(228 228 231 / 0.8); +} +.placeholder-zinc-200\/90::placeholder { + color: rgb(228 228 231 / 0.9); +} +.placeholder-zinc-200\/95::placeholder { + color: rgb(228 228 231 / 0.95); +} +.placeholder-zinc-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(212 212 216 / var(--tw-placeholder-opacity)); +} +.placeholder-zinc-300\/0::placeholder { + color: rgb(212 212 216 / 0); +} +.placeholder-zinc-300\/10::placeholder { + color: rgb(212 212 216 / 0.1); +} +.placeholder-zinc-300\/100::placeholder { + color: rgb(212 212 216 / 1); +} +.placeholder-zinc-300\/20::placeholder { + color: rgb(212 212 216 / 0.2); +} +.placeholder-zinc-300\/25::placeholder { + color: rgb(212 212 216 / 0.25); +} +.placeholder-zinc-300\/30::placeholder { + color: rgb(212 212 216 / 0.3); +} +.placeholder-zinc-300\/40::placeholder { + color: rgb(212 212 216 / 0.4); +} +.placeholder-zinc-300\/5::placeholder { + color: rgb(212 212 216 / 0.05); +} +.placeholder-zinc-300\/50::placeholder { + color: rgb(212 212 216 / 0.5); +} +.placeholder-zinc-300\/60::placeholder { + color: rgb(212 212 216 / 0.6); +} +.placeholder-zinc-300\/70::placeholder { + color: rgb(212 212 216 / 0.7); +} +.placeholder-zinc-300\/75::placeholder { + color: rgb(212 212 216 / 0.75); +} +.placeholder-zinc-300\/80::placeholder { + color: rgb(212 212 216 / 0.8); +} +.placeholder-zinc-300\/90::placeholder { + color: rgb(212 212 216 / 0.9); +} +.placeholder-zinc-300\/95::placeholder { + color: rgb(212 212 216 / 0.95); +} +.placeholder-zinc-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(161 161 170 / var(--tw-placeholder-opacity)); +} +.placeholder-zinc-400\/0::placeholder { + color: rgb(161 161 170 / 0); +} +.placeholder-zinc-400\/10::placeholder { + color: rgb(161 161 170 / 0.1); +} +.placeholder-zinc-400\/100::placeholder { + color: rgb(161 161 170 / 1); +} +.placeholder-zinc-400\/20::placeholder { + color: rgb(161 161 170 / 0.2); +} +.placeholder-zinc-400\/25::placeholder { + color: rgb(161 161 170 / 0.25); +} +.placeholder-zinc-400\/30::placeholder { + color: rgb(161 161 170 / 0.3); +} +.placeholder-zinc-400\/40::placeholder { + color: rgb(161 161 170 / 0.4); +} +.placeholder-zinc-400\/5::placeholder { + color: rgb(161 161 170 / 0.05); +} +.placeholder-zinc-400\/50::placeholder { + color: rgb(161 161 170 / 0.5); +} +.placeholder-zinc-400\/60::placeholder { + color: rgb(161 161 170 / 0.6); +} +.placeholder-zinc-400\/70::placeholder { + color: rgb(161 161 170 / 0.7); +} +.placeholder-zinc-400\/75::placeholder { + color: rgb(161 161 170 / 0.75); +} +.placeholder-zinc-400\/80::placeholder { + color: rgb(161 161 170 / 0.8); +} +.placeholder-zinc-400\/90::placeholder { + color: rgb(161 161 170 / 0.9); +} +.placeholder-zinc-400\/95::placeholder { + color: rgb(161 161 170 / 0.95); +} +.placeholder-zinc-50::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(250 250 250 / var(--tw-placeholder-opacity)); +} +.placeholder-zinc-50\/0::placeholder { + color: rgb(250 250 250 / 0); +} +.placeholder-zinc-50\/10::placeholder { + color: rgb(250 250 250 / 0.1); +} +.placeholder-zinc-50\/100::placeholder { + color: rgb(250 250 250 / 1); +} +.placeholder-zinc-50\/20::placeholder { + color: rgb(250 250 250 / 0.2); +} +.placeholder-zinc-50\/25::placeholder { + color: rgb(250 250 250 / 0.25); +} +.placeholder-zinc-50\/30::placeholder { + color: rgb(250 250 250 / 0.3); +} +.placeholder-zinc-50\/40::placeholder { + color: rgb(250 250 250 / 0.4); +} +.placeholder-zinc-50\/5::placeholder { + color: rgb(250 250 250 / 0.05); +} +.placeholder-zinc-50\/50::placeholder { + color: rgb(250 250 250 / 0.5); +} +.placeholder-zinc-50\/60::placeholder { + color: rgb(250 250 250 / 0.6); +} +.placeholder-zinc-50\/70::placeholder { + color: rgb(250 250 250 / 0.7); +} +.placeholder-zinc-50\/75::placeholder { + color: rgb(250 250 250 / 0.75); +} +.placeholder-zinc-50\/80::placeholder { + color: rgb(250 250 250 / 0.8); +} +.placeholder-zinc-50\/90::placeholder { + color: rgb(250 250 250 / 0.9); +} +.placeholder-zinc-50\/95::placeholder { + color: rgb(250 250 250 / 0.95); +} +.placeholder-zinc-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(113 113 122 / var(--tw-placeholder-opacity)); +} +.placeholder-zinc-500\/0::placeholder { + color: rgb(113 113 122 / 0); +} +.placeholder-zinc-500\/10::placeholder { + color: rgb(113 113 122 / 0.1); +} +.placeholder-zinc-500\/100::placeholder { + color: rgb(113 113 122 / 1); +} +.placeholder-zinc-500\/20::placeholder { + color: rgb(113 113 122 / 0.2); +} +.placeholder-zinc-500\/25::placeholder { + color: rgb(113 113 122 / 0.25); +} +.placeholder-zinc-500\/30::placeholder { + color: rgb(113 113 122 / 0.3); +} +.placeholder-zinc-500\/40::placeholder { + color: rgb(113 113 122 / 0.4); +} +.placeholder-zinc-500\/5::placeholder { + color: rgb(113 113 122 / 0.05); +} +.placeholder-zinc-500\/50::placeholder { + color: rgb(113 113 122 / 0.5); +} +.placeholder-zinc-500\/60::placeholder { + color: rgb(113 113 122 / 0.6); +} +.placeholder-zinc-500\/70::placeholder { + color: rgb(113 113 122 / 0.7); +} +.placeholder-zinc-500\/75::placeholder { + color: rgb(113 113 122 / 0.75); +} +.placeholder-zinc-500\/80::placeholder { + color: rgb(113 113 122 / 0.8); +} +.placeholder-zinc-500\/90::placeholder { + color: rgb(113 113 122 / 0.9); +} +.placeholder-zinc-500\/95::placeholder { + color: rgb(113 113 122 / 0.95); +} +.placeholder-zinc-600::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(82 82 91 / var(--tw-placeholder-opacity)); +} +.placeholder-zinc-600\/0::placeholder { + color: rgb(82 82 91 / 0); +} +.placeholder-zinc-600\/10::placeholder { + color: rgb(82 82 91 / 0.1); +} +.placeholder-zinc-600\/100::placeholder { + color: rgb(82 82 91 / 1); +} +.placeholder-zinc-600\/20::placeholder { + color: rgb(82 82 91 / 0.2); +} +.placeholder-zinc-600\/25::placeholder { + color: rgb(82 82 91 / 0.25); +} +.placeholder-zinc-600\/30::placeholder { + color: rgb(82 82 91 / 0.3); +} +.placeholder-zinc-600\/40::placeholder { + color: rgb(82 82 91 / 0.4); +} +.placeholder-zinc-600\/5::placeholder { + color: rgb(82 82 91 / 0.05); +} +.placeholder-zinc-600\/50::placeholder { + color: rgb(82 82 91 / 0.5); +} +.placeholder-zinc-600\/60::placeholder { + color: rgb(82 82 91 / 0.6); +} +.placeholder-zinc-600\/70::placeholder { + color: rgb(82 82 91 / 0.7); +} +.placeholder-zinc-600\/75::placeholder { + color: rgb(82 82 91 / 0.75); +} +.placeholder-zinc-600\/80::placeholder { + color: rgb(82 82 91 / 0.8); +} +.placeholder-zinc-600\/90::placeholder { + color: rgb(82 82 91 / 0.9); +} +.placeholder-zinc-600\/95::placeholder { + color: rgb(82 82 91 / 0.95); +} +.placeholder-zinc-700::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(63 63 70 / var(--tw-placeholder-opacity)); +} +.placeholder-zinc-700\/0::placeholder { + color: rgb(63 63 70 / 0); +} +.placeholder-zinc-700\/10::placeholder { + color: rgb(63 63 70 / 0.1); +} +.placeholder-zinc-700\/100::placeholder { + color: rgb(63 63 70 / 1); +} +.placeholder-zinc-700\/20::placeholder { + color: rgb(63 63 70 / 0.2); +} +.placeholder-zinc-700\/25::placeholder { + color: rgb(63 63 70 / 0.25); +} +.placeholder-zinc-700\/30::placeholder { + color: rgb(63 63 70 / 0.3); +} +.placeholder-zinc-700\/40::placeholder { + color: rgb(63 63 70 / 0.4); +} +.placeholder-zinc-700\/5::placeholder { + color: rgb(63 63 70 / 0.05); +} +.placeholder-zinc-700\/50::placeholder { + color: rgb(63 63 70 / 0.5); +} +.placeholder-zinc-700\/60::placeholder { + color: rgb(63 63 70 / 0.6); +} +.placeholder-zinc-700\/70::placeholder { + color: rgb(63 63 70 / 0.7); +} +.placeholder-zinc-700\/75::placeholder { + color: rgb(63 63 70 / 0.75); +} +.placeholder-zinc-700\/80::placeholder { + color: rgb(63 63 70 / 0.8); +} +.placeholder-zinc-700\/90::placeholder { + color: rgb(63 63 70 / 0.9); +} +.placeholder-zinc-700\/95::placeholder { + color: rgb(63 63 70 / 0.95); +} +.placeholder-zinc-800::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(39 39 42 / var(--tw-placeholder-opacity)); +} +.placeholder-zinc-800\/0::placeholder { + color: rgb(39 39 42 / 0); +} +.placeholder-zinc-800\/10::placeholder { + color: rgb(39 39 42 / 0.1); +} +.placeholder-zinc-800\/100::placeholder { + color: rgb(39 39 42 / 1); +} +.placeholder-zinc-800\/20::placeholder { + color: rgb(39 39 42 / 0.2); +} +.placeholder-zinc-800\/25::placeholder { + color: rgb(39 39 42 / 0.25); +} +.placeholder-zinc-800\/30::placeholder { + color: rgb(39 39 42 / 0.3); +} +.placeholder-zinc-800\/40::placeholder { + color: rgb(39 39 42 / 0.4); +} +.placeholder-zinc-800\/5::placeholder { + color: rgb(39 39 42 / 0.05); +} +.placeholder-zinc-800\/50::placeholder { + color: rgb(39 39 42 / 0.5); +} +.placeholder-zinc-800\/60::placeholder { + color: rgb(39 39 42 / 0.6); +} +.placeholder-zinc-800\/70::placeholder { + color: rgb(39 39 42 / 0.7); +} +.placeholder-zinc-800\/75::placeholder { + color: rgb(39 39 42 / 0.75); +} +.placeholder-zinc-800\/80::placeholder { + color: rgb(39 39 42 / 0.8); +} +.placeholder-zinc-800\/90::placeholder { + color: rgb(39 39 42 / 0.9); +} +.placeholder-zinc-800\/95::placeholder { + color: rgb(39 39 42 / 0.95); +} +.placeholder-zinc-900::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(24 24 27 / var(--tw-placeholder-opacity)); +} +.placeholder-zinc-900\/0::placeholder { + color: rgb(24 24 27 / 0); +} +.placeholder-zinc-900\/10::placeholder { + color: rgb(24 24 27 / 0.1); +} +.placeholder-zinc-900\/100::placeholder { + color: rgb(24 24 27 / 1); +} +.placeholder-zinc-900\/20::placeholder { + color: rgb(24 24 27 / 0.2); +} +.placeholder-zinc-900\/25::placeholder { + color: rgb(24 24 27 / 0.25); +} +.placeholder-zinc-900\/30::placeholder { + color: rgb(24 24 27 / 0.3); +} +.placeholder-zinc-900\/40::placeholder { + color: rgb(24 24 27 / 0.4); +} +.placeholder-zinc-900\/5::placeholder { + color: rgb(24 24 27 / 0.05); +} +.placeholder-zinc-900\/50::placeholder { + color: rgb(24 24 27 / 0.5); +} +.placeholder-zinc-900\/60::placeholder { + color: rgb(24 24 27 / 0.6); +} +.placeholder-zinc-900\/70::placeholder { + color: rgb(24 24 27 / 0.7); +} +.placeholder-zinc-900\/75::placeholder { + color: rgb(24 24 27 / 0.75); +} +.placeholder-zinc-900\/80::placeholder { + color: rgb(24 24 27 / 0.8); +} +.placeholder-zinc-900\/90::placeholder { + color: rgb(24 24 27 / 0.9); +} +.placeholder-zinc-900\/95::placeholder { + color: rgb(24 24 27 / 0.95); +} +.placeholder-opacity-0::placeholder { + --tw-placeholder-opacity: 0; +} +.placeholder-opacity-10::placeholder { + --tw-placeholder-opacity: 0.1; +} +.placeholder-opacity-100::placeholder { + --tw-placeholder-opacity: 1; +} +.placeholder-opacity-20::placeholder { + --tw-placeholder-opacity: 0.2; +} +.placeholder-opacity-25::placeholder { + --tw-placeholder-opacity: 0.25; +} +.placeholder-opacity-30::placeholder { + --tw-placeholder-opacity: 0.3; +} +.placeholder-opacity-40::placeholder { + --tw-placeholder-opacity: 0.4; +} +.placeholder-opacity-5::placeholder { + --tw-placeholder-opacity: 0.05; +} +.placeholder-opacity-50::placeholder { + --tw-placeholder-opacity: 0.5; +} +.placeholder-opacity-60::placeholder { + --tw-placeholder-opacity: 0.6; +} +.placeholder-opacity-70::placeholder { + --tw-placeholder-opacity: 0.7; +} +.placeholder-opacity-75::placeholder { + --tw-placeholder-opacity: 0.75; +} +.placeholder-opacity-80::placeholder { + --tw-placeholder-opacity: 0.8; +} +.placeholder-opacity-90::placeholder { + --tw-placeholder-opacity: 0.9; +} +.placeholder-opacity-95::placeholder { + --tw-placeholder-opacity: 0.95; +} +.caret-Occupation_du_sol-primary { + caret-color: var(--Occupation_du_sol-primary); +} +.caret-Occupation_du_sol-secondary { + caret-color: var(--Occupation_du_sol-secondary); +} +.caret-Occupation_du_sol-tertiary { + caret-color: var(--Occupation_du_sol-tertiary); +} +.caret-violet-100 { + caret-color: #ede9fe; +} +.caret-violet-100\/0 { + caret-color: rgb(237 233 254 / 0); +} +.caret-violet-100\/10 { + caret-color: rgb(237 233 254 / 0.1); +} +.caret-violet-100\/100 { + caret-color: rgb(237 233 254 / 1); +} +.caret-violet-100\/20 { + caret-color: rgb(237 233 254 / 0.2); +} +.caret-violet-100\/25 { + caret-color: rgb(237 233 254 / 0.25); +} +.caret-violet-100\/30 { + caret-color: rgb(237 233 254 / 0.3); +} +.caret-violet-100\/40 { + caret-color: rgb(237 233 254 / 0.4); +} +.caret-violet-100\/5 { + caret-color: rgb(237 233 254 / 0.05); +} +.caret-violet-100\/50 { + caret-color: rgb(237 233 254 / 0.5); +} +.caret-violet-100\/60 { + caret-color: rgb(237 233 254 / 0.6); +} +.caret-violet-100\/70 { + caret-color: rgb(237 233 254 / 0.7); +} +.caret-violet-100\/75 { + caret-color: rgb(237 233 254 / 0.75); +} +.caret-violet-100\/80 { + caret-color: rgb(237 233 254 / 0.8); +} +.caret-violet-100\/90 { + caret-color: rgb(237 233 254 / 0.9); +} +.caret-violet-100\/95 { + caret-color: rgb(237 233 254 / 0.95); +} +.caret-violet-200 { + caret-color: #ddd6fe; +} +.caret-violet-200\/0 { + caret-color: rgb(221 214 254 / 0); +} +.caret-violet-200\/10 { + caret-color: rgb(221 214 254 / 0.1); +} +.caret-violet-200\/100 { + caret-color: rgb(221 214 254 / 1); +} +.caret-violet-200\/20 { + caret-color: rgb(221 214 254 / 0.2); +} +.caret-violet-200\/25 { + caret-color: rgb(221 214 254 / 0.25); +} +.caret-violet-200\/30 { + caret-color: rgb(221 214 254 / 0.3); +} +.caret-violet-200\/40 { + caret-color: rgb(221 214 254 / 0.4); +} +.caret-violet-200\/5 { + caret-color: rgb(221 214 254 / 0.05); +} +.caret-violet-200\/50 { + caret-color: rgb(221 214 254 / 0.5); +} +.caret-violet-200\/60 { + caret-color: rgb(221 214 254 / 0.6); +} +.caret-violet-200\/70 { + caret-color: rgb(221 214 254 / 0.7); +} +.caret-violet-200\/75 { + caret-color: rgb(221 214 254 / 0.75); +} +.caret-violet-200\/80 { + caret-color: rgb(221 214 254 / 0.8); +} +.caret-violet-200\/90 { + caret-color: rgb(221 214 254 / 0.9); +} +.caret-violet-200\/95 { + caret-color: rgb(221 214 254 / 0.95); +} +.caret-violet-300 { + caret-color: #c4b5fd; +} +.caret-violet-300\/0 { + caret-color: rgb(196 181 253 / 0); +} +.caret-violet-300\/10 { + caret-color: rgb(196 181 253 / 0.1); +} +.caret-violet-300\/100 { + caret-color: rgb(196 181 253 / 1); +} +.caret-violet-300\/20 { + caret-color: rgb(196 181 253 / 0.2); +} +.caret-violet-300\/25 { + caret-color: rgb(196 181 253 / 0.25); +} +.caret-violet-300\/30 { + caret-color: rgb(196 181 253 / 0.3); +} +.caret-violet-300\/40 { + caret-color: rgb(196 181 253 / 0.4); +} +.caret-violet-300\/5 { + caret-color: rgb(196 181 253 / 0.05); +} +.caret-violet-300\/50 { + caret-color: rgb(196 181 253 / 0.5); +} +.caret-violet-300\/60 { + caret-color: rgb(196 181 253 / 0.6); +} +.caret-violet-300\/70 { + caret-color: rgb(196 181 253 / 0.7); +} +.caret-violet-300\/75 { + caret-color: rgb(196 181 253 / 0.75); +} +.caret-violet-300\/80 { + caret-color: rgb(196 181 253 / 0.8); +} +.caret-violet-300\/90 { + caret-color: rgb(196 181 253 / 0.9); +} +.caret-violet-300\/95 { + caret-color: rgb(196 181 253 / 0.95); +} +.caret-violet-400 { + caret-color: #a78bfa; +} +.caret-violet-400\/0 { + caret-color: rgb(167 139 250 / 0); +} +.caret-violet-400\/10 { + caret-color: rgb(167 139 250 / 0.1); +} +.caret-violet-400\/100 { + caret-color: rgb(167 139 250 / 1); +} +.caret-violet-400\/20 { + caret-color: rgb(167 139 250 / 0.2); +} +.caret-violet-400\/25 { + caret-color: rgb(167 139 250 / 0.25); +} +.caret-violet-400\/30 { + caret-color: rgb(167 139 250 / 0.3); +} +.caret-violet-400\/40 { + caret-color: rgb(167 139 250 / 0.4); +} +.caret-violet-400\/5 { + caret-color: rgb(167 139 250 / 0.05); +} +.caret-violet-400\/50 { + caret-color: rgb(167 139 250 / 0.5); +} +.caret-violet-400\/60 { + caret-color: rgb(167 139 250 / 0.6); +} +.caret-violet-400\/70 { + caret-color: rgb(167 139 250 / 0.7); +} +.caret-violet-400\/75 { + caret-color: rgb(167 139 250 / 0.75); +} +.caret-violet-400\/80 { + caret-color: rgb(167 139 250 / 0.8); +} +.caret-violet-400\/90 { + caret-color: rgb(167 139 250 / 0.9); +} +.caret-violet-400\/95 { + caret-color: rgb(167 139 250 / 0.95); +} +.caret-violet-50 { + caret-color: #f5f3ff; +} +.caret-violet-50\/0 { + caret-color: rgb(245 243 255 / 0); +} +.caret-violet-50\/10 { + caret-color: rgb(245 243 255 / 0.1); +} +.caret-violet-50\/100 { + caret-color: rgb(245 243 255 / 1); +} +.caret-violet-50\/20 { + caret-color: rgb(245 243 255 / 0.2); +} +.caret-violet-50\/25 { + caret-color: rgb(245 243 255 / 0.25); +} +.caret-violet-50\/30 { + caret-color: rgb(245 243 255 / 0.3); +} +.caret-violet-50\/40 { + caret-color: rgb(245 243 255 / 0.4); +} +.caret-violet-50\/5 { + caret-color: rgb(245 243 255 / 0.05); +} +.caret-violet-50\/50 { + caret-color: rgb(245 243 255 / 0.5); +} +.caret-violet-50\/60 { + caret-color: rgb(245 243 255 / 0.6); +} +.caret-violet-50\/70 { + caret-color: rgb(245 243 255 / 0.7); +} +.caret-violet-50\/75 { + caret-color: rgb(245 243 255 / 0.75); +} +.caret-violet-50\/80 { + caret-color: rgb(245 243 255 / 0.8); +} +.caret-violet-50\/90 { + caret-color: rgb(245 243 255 / 0.9); +} +.caret-violet-50\/95 { + caret-color: rgb(245 243 255 / 0.95); +} +.caret-violet-500 { + caret-color: #8b5cf6; +} +.caret-violet-500\/0 { + caret-color: rgb(139 92 246 / 0); +} +.caret-violet-500\/10 { + caret-color: rgb(139 92 246 / 0.1); +} +.caret-violet-500\/100 { + caret-color: rgb(139 92 246 / 1); +} +.caret-violet-500\/20 { + caret-color: rgb(139 92 246 / 0.2); +} +.caret-violet-500\/25 { + caret-color: rgb(139 92 246 / 0.25); +} +.caret-violet-500\/30 { + caret-color: rgb(139 92 246 / 0.3); +} +.caret-violet-500\/40 { + caret-color: rgb(139 92 246 / 0.4); +} +.caret-violet-500\/5 { + caret-color: rgb(139 92 246 / 0.05); +} +.caret-violet-500\/50 { + caret-color: rgb(139 92 246 / 0.5); +} +.caret-violet-500\/60 { + caret-color: rgb(139 92 246 / 0.6); +} +.caret-violet-500\/70 { + caret-color: rgb(139 92 246 / 0.7); +} +.caret-violet-500\/75 { + caret-color: rgb(139 92 246 / 0.75); +} +.caret-violet-500\/80 { + caret-color: rgb(139 92 246 / 0.8); +} +.caret-violet-500\/90 { + caret-color: rgb(139 92 246 / 0.9); +} +.caret-violet-500\/95 { + caret-color: rgb(139 92 246 / 0.95); +} +.caret-violet-600 { + caret-color: #7c3aed; +} +.caret-violet-600\/0 { + caret-color: rgb(124 58 237 / 0); +} +.caret-violet-600\/10 { + caret-color: rgb(124 58 237 / 0.1); +} +.caret-violet-600\/100 { + caret-color: rgb(124 58 237 / 1); +} +.caret-violet-600\/20 { + caret-color: rgb(124 58 237 / 0.2); +} +.caret-violet-600\/25 { + caret-color: rgb(124 58 237 / 0.25); +} +.caret-violet-600\/30 { + caret-color: rgb(124 58 237 / 0.3); +} +.caret-violet-600\/40 { + caret-color: rgb(124 58 237 / 0.4); +} +.caret-violet-600\/5 { + caret-color: rgb(124 58 237 / 0.05); +} +.caret-violet-600\/50 { + caret-color: rgb(124 58 237 / 0.5); +} +.caret-violet-600\/60 { + caret-color: rgb(124 58 237 / 0.6); +} +.caret-violet-600\/70 { + caret-color: rgb(124 58 237 / 0.7); +} +.caret-violet-600\/75 { + caret-color: rgb(124 58 237 / 0.75); +} +.caret-violet-600\/80 { + caret-color: rgb(124 58 237 / 0.8); +} +.caret-violet-600\/90 { + caret-color: rgb(124 58 237 / 0.9); +} +.caret-violet-600\/95 { + caret-color: rgb(124 58 237 / 0.95); +} +.caret-violet-700 { + caret-color: #6d28d9; +} +.caret-violet-700\/0 { + caret-color: rgb(109 40 217 / 0); +} +.caret-violet-700\/10 { + caret-color: rgb(109 40 217 / 0.1); +} +.caret-violet-700\/100 { + caret-color: rgb(109 40 217 / 1); +} +.caret-violet-700\/20 { + caret-color: rgb(109 40 217 / 0.2); +} +.caret-violet-700\/25 { + caret-color: rgb(109 40 217 / 0.25); +} +.caret-violet-700\/30 { + caret-color: rgb(109 40 217 / 0.3); +} +.caret-violet-700\/40 { + caret-color: rgb(109 40 217 / 0.4); +} +.caret-violet-700\/5 { + caret-color: rgb(109 40 217 / 0.05); +} +.caret-violet-700\/50 { + caret-color: rgb(109 40 217 / 0.5); +} +.caret-violet-700\/60 { + caret-color: rgb(109 40 217 / 0.6); +} +.caret-violet-700\/70 { + caret-color: rgb(109 40 217 / 0.7); +} +.caret-violet-700\/75 { + caret-color: rgb(109 40 217 / 0.75); +} +.caret-violet-700\/80 { + caret-color: rgb(109 40 217 / 0.8); +} +.caret-violet-700\/90 { + caret-color: rgb(109 40 217 / 0.9); +} +.caret-violet-700\/95 { + caret-color: rgb(109 40 217 / 0.95); +} +.caret-violet-800 { + caret-color: #5b21b6; +} +.caret-violet-800\/0 { + caret-color: rgb(91 33 182 / 0); +} +.caret-violet-800\/10 { + caret-color: rgb(91 33 182 / 0.1); +} +.caret-violet-800\/100 { + caret-color: rgb(91 33 182 / 1); +} +.caret-violet-800\/20 { + caret-color: rgb(91 33 182 / 0.2); +} +.caret-violet-800\/25 { + caret-color: rgb(91 33 182 / 0.25); +} +.caret-violet-800\/30 { + caret-color: rgb(91 33 182 / 0.3); +} +.caret-violet-800\/40 { + caret-color: rgb(91 33 182 / 0.4); +} +.caret-violet-800\/5 { + caret-color: rgb(91 33 182 / 0.05); +} +.caret-violet-800\/50 { + caret-color: rgb(91 33 182 / 0.5); +} +.caret-violet-800\/60 { + caret-color: rgb(91 33 182 / 0.6); +} +.caret-violet-800\/70 { + caret-color: rgb(91 33 182 / 0.7); +} +.caret-violet-800\/75 { + caret-color: rgb(91 33 182 / 0.75); +} +.caret-violet-800\/80 { + caret-color: rgb(91 33 182 / 0.8); +} +.caret-violet-800\/90 { + caret-color: rgb(91 33 182 / 0.9); +} +.caret-violet-800\/95 { + caret-color: rgb(91 33 182 / 0.95); +} +.caret-violet-900 { + caret-color: #4c1d95; +} +.caret-violet-900\/0 { + caret-color: rgb(76 29 149 / 0); +} +.caret-violet-900\/10 { + caret-color: rgb(76 29 149 / 0.1); +} +.caret-violet-900\/100 { + caret-color: rgb(76 29 149 / 1); +} +.caret-violet-900\/20 { + caret-color: rgb(76 29 149 / 0.2); +} +.caret-violet-900\/25 { + caret-color: rgb(76 29 149 / 0.25); +} +.caret-violet-900\/30 { + caret-color: rgb(76 29 149 / 0.3); +} +.caret-violet-900\/40 { + caret-color: rgb(76 29 149 / 0.4); +} +.caret-violet-900\/5 { + caret-color: rgb(76 29 149 / 0.05); +} +.caret-violet-900\/50 { + caret-color: rgb(76 29 149 / 0.5); +} +.caret-violet-900\/60 { + caret-color: rgb(76 29 149 / 0.6); +} +.caret-violet-900\/70 { + caret-color: rgb(76 29 149 / 0.7); +} +.caret-violet-900\/75 { + caret-color: rgb(76 29 149 / 0.75); +} +.caret-violet-900\/80 { + caret-color: rgb(76 29 149 / 0.8); +} +.caret-violet-900\/90 { + caret-color: rgb(76 29 149 / 0.9); +} +.caret-violet-900\/95 { + caret-color: rgb(76 29 149 / 0.95); +} +.accent-Occupation_du_sol-primary { + accent-color: var(--Occupation_du_sol-primary); +} +.accent-Occupation_du_sol-secondary { + accent-color: var(--Occupation_du_sol-secondary); +} +.accent-Occupation_du_sol-tertiary { + accent-color: var(--Occupation_du_sol-tertiary); +} +.accent-violet-100 { + accent-color: #ede9fe; +} +.accent-violet-100\/0 { + accent-color: rgb(237 233 254 / 0); +} +.accent-violet-100\/10 { + accent-color: rgb(237 233 254 / 0.1); +} +.accent-violet-100\/100 { + accent-color: rgb(237 233 254 / 1); +} +.accent-violet-100\/20 { + accent-color: rgb(237 233 254 / 0.2); +} +.accent-violet-100\/25 { + accent-color: rgb(237 233 254 / 0.25); +} +.accent-violet-100\/30 { + accent-color: rgb(237 233 254 / 0.3); +} +.accent-violet-100\/40 { + accent-color: rgb(237 233 254 / 0.4); +} +.accent-violet-100\/5 { + accent-color: rgb(237 233 254 / 0.05); +} +.accent-violet-100\/50 { + accent-color: rgb(237 233 254 / 0.5); +} +.accent-violet-100\/60 { + accent-color: rgb(237 233 254 / 0.6); +} +.accent-violet-100\/70 { + accent-color: rgb(237 233 254 / 0.7); +} +.accent-violet-100\/75 { + accent-color: rgb(237 233 254 / 0.75); +} +.accent-violet-100\/80 { + accent-color: rgb(237 233 254 / 0.8); +} +.accent-violet-100\/90 { + accent-color: rgb(237 233 254 / 0.9); +} +.accent-violet-100\/95 { + accent-color: rgb(237 233 254 / 0.95); +} +.accent-violet-200 { + accent-color: #ddd6fe; +} +.accent-violet-200\/0 { + accent-color: rgb(221 214 254 / 0); +} +.accent-violet-200\/10 { + accent-color: rgb(221 214 254 / 0.1); +} +.accent-violet-200\/100 { + accent-color: rgb(221 214 254 / 1); +} +.accent-violet-200\/20 { + accent-color: rgb(221 214 254 / 0.2); +} +.accent-violet-200\/25 { + accent-color: rgb(221 214 254 / 0.25); +} +.accent-violet-200\/30 { + accent-color: rgb(221 214 254 / 0.3); +} +.accent-violet-200\/40 { + accent-color: rgb(221 214 254 / 0.4); +} +.accent-violet-200\/5 { + accent-color: rgb(221 214 254 / 0.05); +} +.accent-violet-200\/50 { + accent-color: rgb(221 214 254 / 0.5); +} +.accent-violet-200\/60 { + accent-color: rgb(221 214 254 / 0.6); +} +.accent-violet-200\/70 { + accent-color: rgb(221 214 254 / 0.7); +} +.accent-violet-200\/75 { + accent-color: rgb(221 214 254 / 0.75); +} +.accent-violet-200\/80 { + accent-color: rgb(221 214 254 / 0.8); +} +.accent-violet-200\/90 { + accent-color: rgb(221 214 254 / 0.9); +} +.accent-violet-200\/95 { + accent-color: rgb(221 214 254 / 0.95); +} +.accent-violet-300 { + accent-color: #c4b5fd; +} +.accent-violet-300\/0 { + accent-color: rgb(196 181 253 / 0); +} +.accent-violet-300\/10 { + accent-color: rgb(196 181 253 / 0.1); +} +.accent-violet-300\/100 { + accent-color: rgb(196 181 253 / 1); +} +.accent-violet-300\/20 { + accent-color: rgb(196 181 253 / 0.2); +} +.accent-violet-300\/25 { + accent-color: rgb(196 181 253 / 0.25); +} +.accent-violet-300\/30 { + accent-color: rgb(196 181 253 / 0.3); +} +.accent-violet-300\/40 { + accent-color: rgb(196 181 253 / 0.4); +} +.accent-violet-300\/5 { + accent-color: rgb(196 181 253 / 0.05); +} +.accent-violet-300\/50 { + accent-color: rgb(196 181 253 / 0.5); +} +.accent-violet-300\/60 { + accent-color: rgb(196 181 253 / 0.6); +} +.accent-violet-300\/70 { + accent-color: rgb(196 181 253 / 0.7); +} +.accent-violet-300\/75 { + accent-color: rgb(196 181 253 / 0.75); +} +.accent-violet-300\/80 { + accent-color: rgb(196 181 253 / 0.8); +} +.accent-violet-300\/90 { + accent-color: rgb(196 181 253 / 0.9); +} +.accent-violet-300\/95 { + accent-color: rgb(196 181 253 / 0.95); +} +.accent-violet-400 { + accent-color: #a78bfa; +} +.accent-violet-400\/0 { + accent-color: rgb(167 139 250 / 0); +} +.accent-violet-400\/10 { + accent-color: rgb(167 139 250 / 0.1); +} +.accent-violet-400\/100 { + accent-color: rgb(167 139 250 / 1); +} +.accent-violet-400\/20 { + accent-color: rgb(167 139 250 / 0.2); +} +.accent-violet-400\/25 { + accent-color: rgb(167 139 250 / 0.25); +} +.accent-violet-400\/30 { + accent-color: rgb(167 139 250 / 0.3); +} +.accent-violet-400\/40 { + accent-color: rgb(167 139 250 / 0.4); +} +.accent-violet-400\/5 { + accent-color: rgb(167 139 250 / 0.05); +} +.accent-violet-400\/50 { + accent-color: rgb(167 139 250 / 0.5); +} +.accent-violet-400\/60 { + accent-color: rgb(167 139 250 / 0.6); +} +.accent-violet-400\/70 { + accent-color: rgb(167 139 250 / 0.7); +} +.accent-violet-400\/75 { + accent-color: rgb(167 139 250 / 0.75); +} +.accent-violet-400\/80 { + accent-color: rgb(167 139 250 / 0.8); +} +.accent-violet-400\/90 { + accent-color: rgb(167 139 250 / 0.9); +} +.accent-violet-400\/95 { + accent-color: rgb(167 139 250 / 0.95); +} +.accent-violet-50 { + accent-color: #f5f3ff; +} +.accent-violet-50\/0 { + accent-color: rgb(245 243 255 / 0); +} +.accent-violet-50\/10 { + accent-color: rgb(245 243 255 / 0.1); +} +.accent-violet-50\/100 { + accent-color: rgb(245 243 255 / 1); +} +.accent-violet-50\/20 { + accent-color: rgb(245 243 255 / 0.2); +} +.accent-violet-50\/25 { + accent-color: rgb(245 243 255 / 0.25); +} +.accent-violet-50\/30 { + accent-color: rgb(245 243 255 / 0.3); +} +.accent-violet-50\/40 { + accent-color: rgb(245 243 255 / 0.4); +} +.accent-violet-50\/5 { + accent-color: rgb(245 243 255 / 0.05); +} +.accent-violet-50\/50 { + accent-color: rgb(245 243 255 / 0.5); +} +.accent-violet-50\/60 { + accent-color: rgb(245 243 255 / 0.6); +} +.accent-violet-50\/70 { + accent-color: rgb(245 243 255 / 0.7); +} +.accent-violet-50\/75 { + accent-color: rgb(245 243 255 / 0.75); +} +.accent-violet-50\/80 { + accent-color: rgb(245 243 255 / 0.8); +} +.accent-violet-50\/90 { + accent-color: rgb(245 243 255 / 0.9); +} +.accent-violet-50\/95 { + accent-color: rgb(245 243 255 / 0.95); +} +.accent-violet-500 { + accent-color: #8b5cf6; +} +.accent-violet-500\/0 { + accent-color: rgb(139 92 246 / 0); +} +.accent-violet-500\/10 { + accent-color: rgb(139 92 246 / 0.1); +} +.accent-violet-500\/100 { + accent-color: rgb(139 92 246 / 1); +} +.accent-violet-500\/20 { + accent-color: rgb(139 92 246 / 0.2); +} +.accent-violet-500\/25 { + accent-color: rgb(139 92 246 / 0.25); +} +.accent-violet-500\/30 { + accent-color: rgb(139 92 246 / 0.3); +} +.accent-violet-500\/40 { + accent-color: rgb(139 92 246 / 0.4); +} +.accent-violet-500\/5 { + accent-color: rgb(139 92 246 / 0.05); +} +.accent-violet-500\/50 { + accent-color: rgb(139 92 246 / 0.5); +} +.accent-violet-500\/60 { + accent-color: rgb(139 92 246 / 0.6); +} +.accent-violet-500\/70 { + accent-color: rgb(139 92 246 / 0.7); +} +.accent-violet-500\/75 { + accent-color: rgb(139 92 246 / 0.75); +} +.accent-violet-500\/80 { + accent-color: rgb(139 92 246 / 0.8); +} +.accent-violet-500\/90 { + accent-color: rgb(139 92 246 / 0.9); +} +.accent-violet-500\/95 { + accent-color: rgb(139 92 246 / 0.95); +} +.accent-violet-600 { + accent-color: #7c3aed; +} +.accent-violet-600\/0 { + accent-color: rgb(124 58 237 / 0); +} +.accent-violet-600\/10 { + accent-color: rgb(124 58 237 / 0.1); +} +.accent-violet-600\/100 { + accent-color: rgb(124 58 237 / 1); +} +.accent-violet-600\/20 { + accent-color: rgb(124 58 237 / 0.2); +} +.accent-violet-600\/25 { + accent-color: rgb(124 58 237 / 0.25); +} +.accent-violet-600\/30 { + accent-color: rgb(124 58 237 / 0.3); +} +.accent-violet-600\/40 { + accent-color: rgb(124 58 237 / 0.4); +} +.accent-violet-600\/5 { + accent-color: rgb(124 58 237 / 0.05); +} +.accent-violet-600\/50 { + accent-color: rgb(124 58 237 / 0.5); +} +.accent-violet-600\/60 { + accent-color: rgb(124 58 237 / 0.6); +} +.accent-violet-600\/70 { + accent-color: rgb(124 58 237 / 0.7); +} +.accent-violet-600\/75 { + accent-color: rgb(124 58 237 / 0.75); +} +.accent-violet-600\/80 { + accent-color: rgb(124 58 237 / 0.8); +} +.accent-violet-600\/90 { + accent-color: rgb(124 58 237 / 0.9); +} +.accent-violet-600\/95 { + accent-color: rgb(124 58 237 / 0.95); +} +.accent-violet-700 { + accent-color: #6d28d9; +} +.accent-violet-700\/0 { + accent-color: rgb(109 40 217 / 0); +} +.accent-violet-700\/10 { + accent-color: rgb(109 40 217 / 0.1); +} +.accent-violet-700\/100 { + accent-color: rgb(109 40 217 / 1); +} +.accent-violet-700\/20 { + accent-color: rgb(109 40 217 / 0.2); +} +.accent-violet-700\/25 { + accent-color: rgb(109 40 217 / 0.25); +} +.accent-violet-700\/30 { + accent-color: rgb(109 40 217 / 0.3); +} +.accent-violet-700\/40 { + accent-color: rgb(109 40 217 / 0.4); +} +.accent-violet-700\/5 { + accent-color: rgb(109 40 217 / 0.05); +} +.accent-violet-700\/50 { + accent-color: rgb(109 40 217 / 0.5); +} +.accent-violet-700\/60 { + accent-color: rgb(109 40 217 / 0.6); +} +.accent-violet-700\/70 { + accent-color: rgb(109 40 217 / 0.7); +} +.accent-violet-700\/75 { + accent-color: rgb(109 40 217 / 0.75); +} +.accent-violet-700\/80 { + accent-color: rgb(109 40 217 / 0.8); +} +.accent-violet-700\/90 { + accent-color: rgb(109 40 217 / 0.9); +} +.accent-violet-700\/95 { + accent-color: rgb(109 40 217 / 0.95); +} +.accent-violet-800 { + accent-color: #5b21b6; +} +.accent-violet-800\/0 { + accent-color: rgb(91 33 182 / 0); +} +.accent-violet-800\/10 { + accent-color: rgb(91 33 182 / 0.1); +} +.accent-violet-800\/100 { + accent-color: rgb(91 33 182 / 1); +} +.accent-violet-800\/20 { + accent-color: rgb(91 33 182 / 0.2); +} +.accent-violet-800\/25 { + accent-color: rgb(91 33 182 / 0.25); +} +.accent-violet-800\/30 { + accent-color: rgb(91 33 182 / 0.3); +} +.accent-violet-800\/40 { + accent-color: rgb(91 33 182 / 0.4); +} +.accent-violet-800\/5 { + accent-color: rgb(91 33 182 / 0.05); +} +.accent-violet-800\/50 { + accent-color: rgb(91 33 182 / 0.5); +} +.accent-violet-800\/60 { + accent-color: rgb(91 33 182 / 0.6); +} +.accent-violet-800\/70 { + accent-color: rgb(91 33 182 / 0.7); +} +.accent-violet-800\/75 { + accent-color: rgb(91 33 182 / 0.75); +} +.accent-violet-800\/80 { + accent-color: rgb(91 33 182 / 0.8); +} +.accent-violet-800\/90 { + accent-color: rgb(91 33 182 / 0.9); +} +.accent-violet-800\/95 { + accent-color: rgb(91 33 182 / 0.95); +} +.accent-violet-900 { + accent-color: #4c1d95; +} +.accent-violet-900\/0 { + accent-color: rgb(76 29 149 / 0); +} +.accent-violet-900\/10 { + accent-color: rgb(76 29 149 / 0.1); +} +.accent-violet-900\/100 { + accent-color: rgb(76 29 149 / 1); +} +.accent-violet-900\/20 { + accent-color: rgb(76 29 149 / 0.2); +} +.accent-violet-900\/25 { + accent-color: rgb(76 29 149 / 0.25); +} +.accent-violet-900\/30 { + accent-color: rgb(76 29 149 / 0.3); +} +.accent-violet-900\/40 { + accent-color: rgb(76 29 149 / 0.4); +} +.accent-violet-900\/5 { + accent-color: rgb(76 29 149 / 0.05); +} +.accent-violet-900\/50 { + accent-color: rgb(76 29 149 / 0.5); +} +.accent-violet-900\/60 { + accent-color: rgb(76 29 149 / 0.6); +} +.accent-violet-900\/70 { + accent-color: rgb(76 29 149 / 0.7); +} +.accent-violet-900\/75 { + accent-color: rgb(76 29 149 / 0.75); +} +.accent-violet-900\/80 { + accent-color: rgb(76 29 149 / 0.8); +} +.accent-violet-900\/90 { + accent-color: rgb(76 29 149 / 0.9); +} +.accent-violet-900\/95 { + accent-color: rgb(76 29 149 / 0.95); +} +.opacity-0 { + opacity: 0; +} +.opacity-100 { + opacity: 1; +} +.opacity-40 { + opacity: 0.4; +} +.bg-blend-color-dodge { + background-blend-mode: color-dodge; +} +.bg-blend-color-burn { + background-blend-mode: color-burn; +} +.bg-blend-color { + background-blend-mode: color; +} +.mix-blend-color-dodge { + mix-blend-mode: color-dodge; +} +.mix-blend-color-burn { + mix-blend-mode: color-burn; +} +.mix-blend-color { + mix-blend-mode: color; +} +.shadow { + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.shadow-header { + --tw-shadow: 0px 2px 6px -1px rgb(0 0 0 / 50%); + --tw-shadow-colored: 0px 2px 6px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.shadow-modal { + --tw-shadow: 0 5px 10px rgba(0 0 0 / 20%); + --tw-shadow-colored: 0 5px 10px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.shadow-Occupation_du_sol-primary { + --tw-shadow-color: var(--Occupation_du_sol-primary); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-Occupation_du_sol-secondary { + --tw-shadow-color: var(--Occupation_du_sol-secondary); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-Occupation_du_sol-tertiary { + --tw-shadow-color: var(--Occupation_du_sol-tertiary); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-100 { + --tw-shadow-color: #ede9fe; + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-100\/0 { + --tw-shadow-color: rgb(237 233 254 / 0); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-100\/10 { + --tw-shadow-color: rgb(237 233 254 / 0.1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-100\/100 { + --tw-shadow-color: rgb(237 233 254 / 1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-100\/20 { + --tw-shadow-color: rgb(237 233 254 / 0.2); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-100\/25 { + --tw-shadow-color: rgb(237 233 254 / 0.25); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-100\/30 { + --tw-shadow-color: rgb(237 233 254 / 0.3); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-100\/40 { + --tw-shadow-color: rgb(237 233 254 / 0.4); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-100\/5 { + --tw-shadow-color: rgb(237 233 254 / 0.05); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-100\/50 { + --tw-shadow-color: rgb(237 233 254 / 0.5); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-100\/60 { + --tw-shadow-color: rgb(237 233 254 / 0.6); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-100\/70 { + --tw-shadow-color: rgb(237 233 254 / 0.7); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-100\/75 { + --tw-shadow-color: rgb(237 233 254 / 0.75); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-100\/80 { + --tw-shadow-color: rgb(237 233 254 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-100\/90 { + --tw-shadow-color: rgb(237 233 254 / 0.9); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-100\/95 { + --tw-shadow-color: rgb(237 233 254 / 0.95); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-200 { + --tw-shadow-color: #ddd6fe; + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-200\/0 { + --tw-shadow-color: rgb(221 214 254 / 0); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-200\/10 { + --tw-shadow-color: rgb(221 214 254 / 0.1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-200\/100 { + --tw-shadow-color: rgb(221 214 254 / 1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-200\/20 { + --tw-shadow-color: rgb(221 214 254 / 0.2); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-200\/25 { + --tw-shadow-color: rgb(221 214 254 / 0.25); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-200\/30 { + --tw-shadow-color: rgb(221 214 254 / 0.3); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-200\/40 { + --tw-shadow-color: rgb(221 214 254 / 0.4); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-200\/5 { + --tw-shadow-color: rgb(221 214 254 / 0.05); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-200\/50 { + --tw-shadow-color: rgb(221 214 254 / 0.5); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-200\/60 { + --tw-shadow-color: rgb(221 214 254 / 0.6); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-200\/70 { + --tw-shadow-color: rgb(221 214 254 / 0.7); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-200\/75 { + --tw-shadow-color: rgb(221 214 254 / 0.75); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-200\/80 { + --tw-shadow-color: rgb(221 214 254 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-200\/90 { + --tw-shadow-color: rgb(221 214 254 / 0.9); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-200\/95 { + --tw-shadow-color: rgb(221 214 254 / 0.95); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-300 { + --tw-shadow-color: #c4b5fd; + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-300\/0 { + --tw-shadow-color: rgb(196 181 253 / 0); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-300\/10 { + --tw-shadow-color: rgb(196 181 253 / 0.1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-300\/100 { + --tw-shadow-color: rgb(196 181 253 / 1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-300\/20 { + --tw-shadow-color: rgb(196 181 253 / 0.2); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-300\/25 { + --tw-shadow-color: rgb(196 181 253 / 0.25); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-300\/30 { + --tw-shadow-color: rgb(196 181 253 / 0.3); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-300\/40 { + --tw-shadow-color: rgb(196 181 253 / 0.4); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-300\/5 { + --tw-shadow-color: rgb(196 181 253 / 0.05); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-300\/50 { + --tw-shadow-color: rgb(196 181 253 / 0.5); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-300\/60 { + --tw-shadow-color: rgb(196 181 253 / 0.6); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-300\/70 { + --tw-shadow-color: rgb(196 181 253 / 0.7); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-300\/75 { + --tw-shadow-color: rgb(196 181 253 / 0.75); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-300\/80 { + --tw-shadow-color: rgb(196 181 253 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-300\/90 { + --tw-shadow-color: rgb(196 181 253 / 0.9); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-300\/95 { + --tw-shadow-color: rgb(196 181 253 / 0.95); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-400 { + --tw-shadow-color: #a78bfa; + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-400\/0 { + --tw-shadow-color: rgb(167 139 250 / 0); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-400\/10 { + --tw-shadow-color: rgb(167 139 250 / 0.1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-400\/100 { + --tw-shadow-color: rgb(167 139 250 / 1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-400\/20 { + --tw-shadow-color: rgb(167 139 250 / 0.2); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-400\/25 { + --tw-shadow-color: rgb(167 139 250 / 0.25); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-400\/30 { + --tw-shadow-color: rgb(167 139 250 / 0.3); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-400\/40 { + --tw-shadow-color: rgb(167 139 250 / 0.4); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-400\/5 { + --tw-shadow-color: rgb(167 139 250 / 0.05); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-400\/50 { + --tw-shadow-color: rgb(167 139 250 / 0.5); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-400\/60 { + --tw-shadow-color: rgb(167 139 250 / 0.6); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-400\/70 { + --tw-shadow-color: rgb(167 139 250 / 0.7); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-400\/75 { + --tw-shadow-color: rgb(167 139 250 / 0.75); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-400\/80 { + --tw-shadow-color: rgb(167 139 250 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-400\/90 { + --tw-shadow-color: rgb(167 139 250 / 0.9); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-400\/95 { + --tw-shadow-color: rgb(167 139 250 / 0.95); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-50 { + --tw-shadow-color: #f5f3ff; + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-50\/0 { + --tw-shadow-color: rgb(245 243 255 / 0); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-50\/10 { + --tw-shadow-color: rgb(245 243 255 / 0.1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-50\/100 { + --tw-shadow-color: rgb(245 243 255 / 1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-50\/20 { + --tw-shadow-color: rgb(245 243 255 / 0.2); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-50\/25 { + --tw-shadow-color: rgb(245 243 255 / 0.25); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-50\/30 { + --tw-shadow-color: rgb(245 243 255 / 0.3); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-50\/40 { + --tw-shadow-color: rgb(245 243 255 / 0.4); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-50\/5 { + --tw-shadow-color: rgb(245 243 255 / 0.05); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-50\/50 { + --tw-shadow-color: rgb(245 243 255 / 0.5); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-50\/60 { + --tw-shadow-color: rgb(245 243 255 / 0.6); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-50\/70 { + --tw-shadow-color: rgb(245 243 255 / 0.7); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-50\/75 { + --tw-shadow-color: rgb(245 243 255 / 0.75); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-50\/80 { + --tw-shadow-color: rgb(245 243 255 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-50\/90 { + --tw-shadow-color: rgb(245 243 255 / 0.9); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-50\/95 { + --tw-shadow-color: rgb(245 243 255 / 0.95); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-500 { + --tw-shadow-color: #8b5cf6; + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-500\/0 { + --tw-shadow-color: rgb(139 92 246 / 0); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-500\/10 { + --tw-shadow-color: rgb(139 92 246 / 0.1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-500\/100 { + --tw-shadow-color: rgb(139 92 246 / 1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-500\/20 { + --tw-shadow-color: rgb(139 92 246 / 0.2); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-500\/25 { + --tw-shadow-color: rgb(139 92 246 / 0.25); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-500\/30 { + --tw-shadow-color: rgb(139 92 246 / 0.3); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-500\/40 { + --tw-shadow-color: rgb(139 92 246 / 0.4); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-500\/5 { + --tw-shadow-color: rgb(139 92 246 / 0.05); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-500\/50 { + --tw-shadow-color: rgb(139 92 246 / 0.5); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-500\/60 { + --tw-shadow-color: rgb(139 92 246 / 0.6); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-500\/70 { + --tw-shadow-color: rgb(139 92 246 / 0.7); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-500\/75 { + --tw-shadow-color: rgb(139 92 246 / 0.75); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-500\/80 { + --tw-shadow-color: rgb(139 92 246 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-500\/90 { + --tw-shadow-color: rgb(139 92 246 / 0.9); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-500\/95 { + --tw-shadow-color: rgb(139 92 246 / 0.95); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-600 { + --tw-shadow-color: #7c3aed; + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-600\/0 { + --tw-shadow-color: rgb(124 58 237 / 0); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-600\/10 { + --tw-shadow-color: rgb(124 58 237 / 0.1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-600\/100 { + --tw-shadow-color: rgb(124 58 237 / 1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-600\/20 { + --tw-shadow-color: rgb(124 58 237 / 0.2); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-600\/25 { + --tw-shadow-color: rgb(124 58 237 / 0.25); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-600\/30 { + --tw-shadow-color: rgb(124 58 237 / 0.3); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-600\/40 { + --tw-shadow-color: rgb(124 58 237 / 0.4); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-600\/5 { + --tw-shadow-color: rgb(124 58 237 / 0.05); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-600\/50 { + --tw-shadow-color: rgb(124 58 237 / 0.5); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-600\/60 { + --tw-shadow-color: rgb(124 58 237 / 0.6); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-600\/70 { + --tw-shadow-color: rgb(124 58 237 / 0.7); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-600\/75 { + --tw-shadow-color: rgb(124 58 237 / 0.75); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-600\/80 { + --tw-shadow-color: rgb(124 58 237 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-600\/90 { + --tw-shadow-color: rgb(124 58 237 / 0.9); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-600\/95 { + --tw-shadow-color: rgb(124 58 237 / 0.95); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-700 { + --tw-shadow-color: #6d28d9; + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-700\/0 { + --tw-shadow-color: rgb(109 40 217 / 0); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-700\/10 { + --tw-shadow-color: rgb(109 40 217 / 0.1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-700\/100 { + --tw-shadow-color: rgb(109 40 217 / 1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-700\/20 { + --tw-shadow-color: rgb(109 40 217 / 0.2); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-700\/25 { + --tw-shadow-color: rgb(109 40 217 / 0.25); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-700\/30 { + --tw-shadow-color: rgb(109 40 217 / 0.3); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-700\/40 { + --tw-shadow-color: rgb(109 40 217 / 0.4); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-700\/5 { + --tw-shadow-color: rgb(109 40 217 / 0.05); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-700\/50 { + --tw-shadow-color: rgb(109 40 217 / 0.5); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-700\/60 { + --tw-shadow-color: rgb(109 40 217 / 0.6); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-700\/70 { + --tw-shadow-color: rgb(109 40 217 / 0.7); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-700\/75 { + --tw-shadow-color: rgb(109 40 217 / 0.75); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-700\/80 { + --tw-shadow-color: rgb(109 40 217 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-700\/90 { + --tw-shadow-color: rgb(109 40 217 / 0.9); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-700\/95 { + --tw-shadow-color: rgb(109 40 217 / 0.95); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-800 { + --tw-shadow-color: #5b21b6; + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-800\/0 { + --tw-shadow-color: rgb(91 33 182 / 0); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-800\/10 { + --tw-shadow-color: rgb(91 33 182 / 0.1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-800\/100 { + --tw-shadow-color: rgb(91 33 182 / 1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-800\/20 { + --tw-shadow-color: rgb(91 33 182 / 0.2); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-800\/25 { + --tw-shadow-color: rgb(91 33 182 / 0.25); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-800\/30 { + --tw-shadow-color: rgb(91 33 182 / 0.3); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-800\/40 { + --tw-shadow-color: rgb(91 33 182 / 0.4); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-800\/5 { + --tw-shadow-color: rgb(91 33 182 / 0.05); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-800\/50 { + --tw-shadow-color: rgb(91 33 182 / 0.5); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-800\/60 { + --tw-shadow-color: rgb(91 33 182 / 0.6); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-800\/70 { + --tw-shadow-color: rgb(91 33 182 / 0.7); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-800\/75 { + --tw-shadow-color: rgb(91 33 182 / 0.75); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-800\/80 { + --tw-shadow-color: rgb(91 33 182 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-800\/90 { + --tw-shadow-color: rgb(91 33 182 / 0.9); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-800\/95 { + --tw-shadow-color: rgb(91 33 182 / 0.95); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-900 { + --tw-shadow-color: #4c1d95; + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-900\/0 { + --tw-shadow-color: rgb(76 29 149 / 0); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-900\/10 { + --tw-shadow-color: rgb(76 29 149 / 0.1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-900\/100 { + --tw-shadow-color: rgb(76 29 149 / 1); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-900\/20 { + --tw-shadow-color: rgb(76 29 149 / 0.2); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-900\/25 { + --tw-shadow-color: rgb(76 29 149 / 0.25); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-900\/30 { + --tw-shadow-color: rgb(76 29 149 / 0.3); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-900\/40 { + --tw-shadow-color: rgb(76 29 149 / 0.4); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-900\/5 { + --tw-shadow-color: rgb(76 29 149 / 0.05); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-900\/50 { + --tw-shadow-color: rgb(76 29 149 / 0.5); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-900\/60 { + --tw-shadow-color: rgb(76 29 149 / 0.6); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-900\/70 { + --tw-shadow-color: rgb(76 29 149 / 0.7); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-900\/75 { + --tw-shadow-color: rgb(76 29 149 / 0.75); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-900\/80 { + --tw-shadow-color: rgb(76 29 149 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-900\/90 { + --tw-shadow-color: rgb(76 29 149 / 0.9); + --tw-shadow: var(--tw-shadow-colored); +} +.shadow-violet-900\/95 { + --tw-shadow-color: rgb(76 29 149 / 0.95); + --tw-shadow: var(--tw-shadow-colored); +} +.outline-none { + outline: 2px solid transparent; + outline-offset: 2px; +} +.outline-Occupation_du_sol-primary { + outline-color: var(--Occupation_du_sol-primary); +} +.outline-Occupation_du_sol-secondary { + outline-color: var(--Occupation_du_sol-secondary); +} +.outline-Occupation_du_sol-tertiary { + outline-color: var(--Occupation_du_sol-tertiary); +} +.outline-violet-100 { + outline-color: #ede9fe; +} +.outline-violet-100\/0 { + outline-color: rgb(237 233 254 / 0); +} +.outline-violet-100\/10 { + outline-color: rgb(237 233 254 / 0.1); +} +.outline-violet-100\/100 { + outline-color: rgb(237 233 254 / 1); +} +.outline-violet-100\/20 { + outline-color: rgb(237 233 254 / 0.2); +} +.outline-violet-100\/25 { + outline-color: rgb(237 233 254 / 0.25); +} +.outline-violet-100\/30 { + outline-color: rgb(237 233 254 / 0.3); +} +.outline-violet-100\/40 { + outline-color: rgb(237 233 254 / 0.4); +} +.outline-violet-100\/5 { + outline-color: rgb(237 233 254 / 0.05); +} +.outline-violet-100\/50 { + outline-color: rgb(237 233 254 / 0.5); +} +.outline-violet-100\/60 { + outline-color: rgb(237 233 254 / 0.6); +} +.outline-violet-100\/70 { + outline-color: rgb(237 233 254 / 0.7); +} +.outline-violet-100\/75 { + outline-color: rgb(237 233 254 / 0.75); +} +.outline-violet-100\/80 { + outline-color: rgb(237 233 254 / 0.8); +} +.outline-violet-100\/90 { + outline-color: rgb(237 233 254 / 0.9); +} +.outline-violet-100\/95 { + outline-color: rgb(237 233 254 / 0.95); +} +.outline-violet-200 { + outline-color: #ddd6fe; +} +.outline-violet-200\/0 { + outline-color: rgb(221 214 254 / 0); +} +.outline-violet-200\/10 { + outline-color: rgb(221 214 254 / 0.1); +} +.outline-violet-200\/100 { + outline-color: rgb(221 214 254 / 1); +} +.outline-violet-200\/20 { + outline-color: rgb(221 214 254 / 0.2); +} +.outline-violet-200\/25 { + outline-color: rgb(221 214 254 / 0.25); +} +.outline-violet-200\/30 { + outline-color: rgb(221 214 254 / 0.3); +} +.outline-violet-200\/40 { + outline-color: rgb(221 214 254 / 0.4); +} +.outline-violet-200\/5 { + outline-color: rgb(221 214 254 / 0.05); +} +.outline-violet-200\/50 { + outline-color: rgb(221 214 254 / 0.5); +} +.outline-violet-200\/60 { + outline-color: rgb(221 214 254 / 0.6); +} +.outline-violet-200\/70 { + outline-color: rgb(221 214 254 / 0.7); +} +.outline-violet-200\/75 { + outline-color: rgb(221 214 254 / 0.75); +} +.outline-violet-200\/80 { + outline-color: rgb(221 214 254 / 0.8); +} +.outline-violet-200\/90 { + outline-color: rgb(221 214 254 / 0.9); +} +.outline-violet-200\/95 { + outline-color: rgb(221 214 254 / 0.95); +} +.outline-violet-300 { + outline-color: #c4b5fd; +} +.outline-violet-300\/0 { + outline-color: rgb(196 181 253 / 0); +} +.outline-violet-300\/10 { + outline-color: rgb(196 181 253 / 0.1); +} +.outline-violet-300\/100 { + outline-color: rgb(196 181 253 / 1); +} +.outline-violet-300\/20 { + outline-color: rgb(196 181 253 / 0.2); +} +.outline-violet-300\/25 { + outline-color: rgb(196 181 253 / 0.25); +} +.outline-violet-300\/30 { + outline-color: rgb(196 181 253 / 0.3); +} +.outline-violet-300\/40 { + outline-color: rgb(196 181 253 / 0.4); +} +.outline-violet-300\/5 { + outline-color: rgb(196 181 253 / 0.05); +} +.outline-violet-300\/50 { + outline-color: rgb(196 181 253 / 0.5); +} +.outline-violet-300\/60 { + outline-color: rgb(196 181 253 / 0.6); +} +.outline-violet-300\/70 { + outline-color: rgb(196 181 253 / 0.7); +} +.outline-violet-300\/75 { + outline-color: rgb(196 181 253 / 0.75); +} +.outline-violet-300\/80 { + outline-color: rgb(196 181 253 / 0.8); +} +.outline-violet-300\/90 { + outline-color: rgb(196 181 253 / 0.9); +} +.outline-violet-300\/95 { + outline-color: rgb(196 181 253 / 0.95); +} +.outline-violet-400 { + outline-color: #a78bfa; +} +.outline-violet-400\/0 { + outline-color: rgb(167 139 250 / 0); +} +.outline-violet-400\/10 { + outline-color: rgb(167 139 250 / 0.1); +} +.outline-violet-400\/100 { + outline-color: rgb(167 139 250 / 1); +} +.outline-violet-400\/20 { + outline-color: rgb(167 139 250 / 0.2); +} +.outline-violet-400\/25 { + outline-color: rgb(167 139 250 / 0.25); +} +.outline-violet-400\/30 { + outline-color: rgb(167 139 250 / 0.3); +} +.outline-violet-400\/40 { + outline-color: rgb(167 139 250 / 0.4); +} +.outline-violet-400\/5 { + outline-color: rgb(167 139 250 / 0.05); +} +.outline-violet-400\/50 { + outline-color: rgb(167 139 250 / 0.5); +} +.outline-violet-400\/60 { + outline-color: rgb(167 139 250 / 0.6); +} +.outline-violet-400\/70 { + outline-color: rgb(167 139 250 / 0.7); +} +.outline-violet-400\/75 { + outline-color: rgb(167 139 250 / 0.75); +} +.outline-violet-400\/80 { + outline-color: rgb(167 139 250 / 0.8); +} +.outline-violet-400\/90 { + outline-color: rgb(167 139 250 / 0.9); +} +.outline-violet-400\/95 { + outline-color: rgb(167 139 250 / 0.95); +} +.outline-violet-50 { + outline-color: #f5f3ff; +} +.outline-violet-50\/0 { + outline-color: rgb(245 243 255 / 0); +} +.outline-violet-50\/10 { + outline-color: rgb(245 243 255 / 0.1); +} +.outline-violet-50\/100 { + outline-color: rgb(245 243 255 / 1); +} +.outline-violet-50\/20 { + outline-color: rgb(245 243 255 / 0.2); +} +.outline-violet-50\/25 { + outline-color: rgb(245 243 255 / 0.25); +} +.outline-violet-50\/30 { + outline-color: rgb(245 243 255 / 0.3); +} +.outline-violet-50\/40 { + outline-color: rgb(245 243 255 / 0.4); +} +.outline-violet-50\/5 { + outline-color: rgb(245 243 255 / 0.05); +} +.outline-violet-50\/50 { + outline-color: rgb(245 243 255 / 0.5); +} +.outline-violet-50\/60 { + outline-color: rgb(245 243 255 / 0.6); +} +.outline-violet-50\/70 { + outline-color: rgb(245 243 255 / 0.7); +} +.outline-violet-50\/75 { + outline-color: rgb(245 243 255 / 0.75); +} +.outline-violet-50\/80 { + outline-color: rgb(245 243 255 / 0.8); +} +.outline-violet-50\/90 { + outline-color: rgb(245 243 255 / 0.9); +} +.outline-violet-50\/95 { + outline-color: rgb(245 243 255 / 0.95); +} +.outline-violet-500 { + outline-color: #8b5cf6; +} +.outline-violet-500\/0 { + outline-color: rgb(139 92 246 / 0); +} +.outline-violet-500\/10 { + outline-color: rgb(139 92 246 / 0.1); +} +.outline-violet-500\/100 { + outline-color: rgb(139 92 246 / 1); +} +.outline-violet-500\/20 { + outline-color: rgb(139 92 246 / 0.2); +} +.outline-violet-500\/25 { + outline-color: rgb(139 92 246 / 0.25); +} +.outline-violet-500\/30 { + outline-color: rgb(139 92 246 / 0.3); +} +.outline-violet-500\/40 { + outline-color: rgb(139 92 246 / 0.4); +} +.outline-violet-500\/5 { + outline-color: rgb(139 92 246 / 0.05); +} +.outline-violet-500\/50 { + outline-color: rgb(139 92 246 / 0.5); +} +.outline-violet-500\/60 { + outline-color: rgb(139 92 246 / 0.6); +} +.outline-violet-500\/70 { + outline-color: rgb(139 92 246 / 0.7); +} +.outline-violet-500\/75 { + outline-color: rgb(139 92 246 / 0.75); +} +.outline-violet-500\/80 { + outline-color: rgb(139 92 246 / 0.8); +} +.outline-violet-500\/90 { + outline-color: rgb(139 92 246 / 0.9); +} +.outline-violet-500\/95 { + outline-color: rgb(139 92 246 / 0.95); +} +.outline-violet-600 { + outline-color: #7c3aed; +} +.outline-violet-600\/0 { + outline-color: rgb(124 58 237 / 0); +} +.outline-violet-600\/10 { + outline-color: rgb(124 58 237 / 0.1); +} +.outline-violet-600\/100 { + outline-color: rgb(124 58 237 / 1); +} +.outline-violet-600\/20 { + outline-color: rgb(124 58 237 / 0.2); +} +.outline-violet-600\/25 { + outline-color: rgb(124 58 237 / 0.25); +} +.outline-violet-600\/30 { + outline-color: rgb(124 58 237 / 0.3); +} +.outline-violet-600\/40 { + outline-color: rgb(124 58 237 / 0.4); +} +.outline-violet-600\/5 { + outline-color: rgb(124 58 237 / 0.05); +} +.outline-violet-600\/50 { + outline-color: rgb(124 58 237 / 0.5); +} +.outline-violet-600\/60 { + outline-color: rgb(124 58 237 / 0.6); +} +.outline-violet-600\/70 { + outline-color: rgb(124 58 237 / 0.7); +} +.outline-violet-600\/75 { + outline-color: rgb(124 58 237 / 0.75); +} +.outline-violet-600\/80 { + outline-color: rgb(124 58 237 / 0.8); +} +.outline-violet-600\/90 { + outline-color: rgb(124 58 237 / 0.9); +} +.outline-violet-600\/95 { + outline-color: rgb(124 58 237 / 0.95); +} +.outline-violet-700 { + outline-color: #6d28d9; +} +.outline-violet-700\/0 { + outline-color: rgb(109 40 217 / 0); +} +.outline-violet-700\/10 { + outline-color: rgb(109 40 217 / 0.1); +} +.outline-violet-700\/100 { + outline-color: rgb(109 40 217 / 1); +} +.outline-violet-700\/20 { + outline-color: rgb(109 40 217 / 0.2); +} +.outline-violet-700\/25 { + outline-color: rgb(109 40 217 / 0.25); +} +.outline-violet-700\/30 { + outline-color: rgb(109 40 217 / 0.3); +} +.outline-violet-700\/40 { + outline-color: rgb(109 40 217 / 0.4); +} +.outline-violet-700\/5 { + outline-color: rgb(109 40 217 / 0.05); +} +.outline-violet-700\/50 { + outline-color: rgb(109 40 217 / 0.5); +} +.outline-violet-700\/60 { + outline-color: rgb(109 40 217 / 0.6); +} +.outline-violet-700\/70 { + outline-color: rgb(109 40 217 / 0.7); +} +.outline-violet-700\/75 { + outline-color: rgb(109 40 217 / 0.75); +} +.outline-violet-700\/80 { + outline-color: rgb(109 40 217 / 0.8); +} +.outline-violet-700\/90 { + outline-color: rgb(109 40 217 / 0.9); +} +.outline-violet-700\/95 { + outline-color: rgb(109 40 217 / 0.95); +} +.outline-violet-800 { + outline-color: #5b21b6; +} +.outline-violet-800\/0 { + outline-color: rgb(91 33 182 / 0); +} +.outline-violet-800\/10 { + outline-color: rgb(91 33 182 / 0.1); +} +.outline-violet-800\/100 { + outline-color: rgb(91 33 182 / 1); +} +.outline-violet-800\/20 { + outline-color: rgb(91 33 182 / 0.2); +} +.outline-violet-800\/25 { + outline-color: rgb(91 33 182 / 0.25); +} +.outline-violet-800\/30 { + outline-color: rgb(91 33 182 / 0.3); +} +.outline-violet-800\/40 { + outline-color: rgb(91 33 182 / 0.4); +} +.outline-violet-800\/5 { + outline-color: rgb(91 33 182 / 0.05); +} +.outline-violet-800\/50 { + outline-color: rgb(91 33 182 / 0.5); +} +.outline-violet-800\/60 { + outline-color: rgb(91 33 182 / 0.6); +} +.outline-violet-800\/70 { + outline-color: rgb(91 33 182 / 0.7); +} +.outline-violet-800\/75 { + outline-color: rgb(91 33 182 / 0.75); +} +.outline-violet-800\/80 { + outline-color: rgb(91 33 182 / 0.8); +} +.outline-violet-800\/90 { + outline-color: rgb(91 33 182 / 0.9); +} +.outline-violet-800\/95 { + outline-color: rgb(91 33 182 / 0.95); +} +.outline-violet-900 { + outline-color: #4c1d95; +} +.outline-violet-900\/0 { + outline-color: rgb(76 29 149 / 0); +} +.outline-violet-900\/10 { + outline-color: rgb(76 29 149 / 0.1); +} +.outline-violet-900\/100 { + outline-color: rgb(76 29 149 / 1); +} +.outline-violet-900\/20 { + outline-color: rgb(76 29 149 / 0.2); +} +.outline-violet-900\/25 { + outline-color: rgb(76 29 149 / 0.25); +} +.outline-violet-900\/30 { + outline-color: rgb(76 29 149 / 0.3); +} +.outline-violet-900\/40 { + outline-color: rgb(76 29 149 / 0.4); +} +.outline-violet-900\/5 { + outline-color: rgb(76 29 149 / 0.05); +} +.outline-violet-900\/50 { + outline-color: rgb(76 29 149 / 0.5); +} +.outline-violet-900\/60 { + outline-color: rgb(76 29 149 / 0.6); +} +.outline-violet-900\/70 { + outline-color: rgb(76 29 149 / 0.7); +} +.outline-violet-900\/75 { + outline-color: rgb(76 29 149 / 0.75); +} +.outline-violet-900\/80 { + outline-color: rgb(76 29 149 / 0.8); +} +.outline-violet-900\/90 { + outline-color: rgb(76 29 149 / 0.9); +} +.outline-violet-900\/95 { + outline-color: rgb(76 29 149 / 0.95); +} +.ring-Occupation_du_sol-primary { + --tw-ring-color: var(--Occupation_du_sol-primary); +} +.ring-Occupation_du_sol-secondary { + --tw-ring-color: var(--Occupation_du_sol-secondary); +} +.ring-Occupation_du_sol-tertiary { + --tw-ring-color: var(--Occupation_du_sol-tertiary); +} +.ring-violet-100 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(237 233 254 / var(--tw-ring-opacity)); +} +.ring-violet-100\/0 { + --tw-ring-color: rgb(237 233 254 / 0); +} +.ring-violet-100\/10 { + --tw-ring-color: rgb(237 233 254 / 0.1); +} +.ring-violet-100\/100 { + --tw-ring-color: rgb(237 233 254 / 1); +} +.ring-violet-100\/20 { + --tw-ring-color: rgb(237 233 254 / 0.2); +} +.ring-violet-100\/25 { + --tw-ring-color: rgb(237 233 254 / 0.25); +} +.ring-violet-100\/30 { + --tw-ring-color: rgb(237 233 254 / 0.3); +} +.ring-violet-100\/40 { + --tw-ring-color: rgb(237 233 254 / 0.4); +} +.ring-violet-100\/5 { + --tw-ring-color: rgb(237 233 254 / 0.05); +} +.ring-violet-100\/50 { + --tw-ring-color: rgb(237 233 254 / 0.5); +} +.ring-violet-100\/60 { + --tw-ring-color: rgb(237 233 254 / 0.6); +} +.ring-violet-100\/70 { + --tw-ring-color: rgb(237 233 254 / 0.7); +} +.ring-violet-100\/75 { + --tw-ring-color: rgb(237 233 254 / 0.75); +} +.ring-violet-100\/80 { + --tw-ring-color: rgb(237 233 254 / 0.8); +} +.ring-violet-100\/90 { + --tw-ring-color: rgb(237 233 254 / 0.9); +} +.ring-violet-100\/95 { + --tw-ring-color: rgb(237 233 254 / 0.95); +} +.ring-violet-200 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(221 214 254 / var(--tw-ring-opacity)); +} +.ring-violet-200\/0 { + --tw-ring-color: rgb(221 214 254 / 0); +} +.ring-violet-200\/10 { + --tw-ring-color: rgb(221 214 254 / 0.1); +} +.ring-violet-200\/100 { + --tw-ring-color: rgb(221 214 254 / 1); +} +.ring-violet-200\/20 { + --tw-ring-color: rgb(221 214 254 / 0.2); +} +.ring-violet-200\/25 { + --tw-ring-color: rgb(221 214 254 / 0.25); +} +.ring-violet-200\/30 { + --tw-ring-color: rgb(221 214 254 / 0.3); +} +.ring-violet-200\/40 { + --tw-ring-color: rgb(221 214 254 / 0.4); +} +.ring-violet-200\/5 { + --tw-ring-color: rgb(221 214 254 / 0.05); +} +.ring-violet-200\/50 { + --tw-ring-color: rgb(221 214 254 / 0.5); +} +.ring-violet-200\/60 { + --tw-ring-color: rgb(221 214 254 / 0.6); +} +.ring-violet-200\/70 { + --tw-ring-color: rgb(221 214 254 / 0.7); +} +.ring-violet-200\/75 { + --tw-ring-color: rgb(221 214 254 / 0.75); +} +.ring-violet-200\/80 { + --tw-ring-color: rgb(221 214 254 / 0.8); +} +.ring-violet-200\/90 { + --tw-ring-color: rgb(221 214 254 / 0.9); +} +.ring-violet-200\/95 { + --tw-ring-color: rgb(221 214 254 / 0.95); +} +.ring-violet-300 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(196 181 253 / var(--tw-ring-opacity)); +} +.ring-violet-300\/0 { + --tw-ring-color: rgb(196 181 253 / 0); +} +.ring-violet-300\/10 { + --tw-ring-color: rgb(196 181 253 / 0.1); +} +.ring-violet-300\/100 { + --tw-ring-color: rgb(196 181 253 / 1); +} +.ring-violet-300\/20 { + --tw-ring-color: rgb(196 181 253 / 0.2); +} +.ring-violet-300\/25 { + --tw-ring-color: rgb(196 181 253 / 0.25); +} +.ring-violet-300\/30 { + --tw-ring-color: rgb(196 181 253 / 0.3); +} +.ring-violet-300\/40 { + --tw-ring-color: rgb(196 181 253 / 0.4); +} +.ring-violet-300\/5 { + --tw-ring-color: rgb(196 181 253 / 0.05); +} +.ring-violet-300\/50 { + --tw-ring-color: rgb(196 181 253 / 0.5); +} +.ring-violet-300\/60 { + --tw-ring-color: rgb(196 181 253 / 0.6); +} +.ring-violet-300\/70 { + --tw-ring-color: rgb(196 181 253 / 0.7); +} +.ring-violet-300\/75 { + --tw-ring-color: rgb(196 181 253 / 0.75); +} +.ring-violet-300\/80 { + --tw-ring-color: rgb(196 181 253 / 0.8); +} +.ring-violet-300\/90 { + --tw-ring-color: rgb(196 181 253 / 0.9); +} +.ring-violet-300\/95 { + --tw-ring-color: rgb(196 181 253 / 0.95); +} +.ring-violet-400 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(167 139 250 / var(--tw-ring-opacity)); +} +.ring-violet-400\/0 { + --tw-ring-color: rgb(167 139 250 / 0); +} +.ring-violet-400\/10 { + --tw-ring-color: rgb(167 139 250 / 0.1); +} +.ring-violet-400\/100 { + --tw-ring-color: rgb(167 139 250 / 1); +} +.ring-violet-400\/20 { + --tw-ring-color: rgb(167 139 250 / 0.2); +} +.ring-violet-400\/25 { + --tw-ring-color: rgb(167 139 250 / 0.25); +} +.ring-violet-400\/30 { + --tw-ring-color: rgb(167 139 250 / 0.3); +} +.ring-violet-400\/40 { + --tw-ring-color: rgb(167 139 250 / 0.4); +} +.ring-violet-400\/5 { + --tw-ring-color: rgb(167 139 250 / 0.05); +} +.ring-violet-400\/50 { + --tw-ring-color: rgb(167 139 250 / 0.5); +} +.ring-violet-400\/60 { + --tw-ring-color: rgb(167 139 250 / 0.6); +} +.ring-violet-400\/70 { + --tw-ring-color: rgb(167 139 250 / 0.7); +} +.ring-violet-400\/75 { + --tw-ring-color: rgb(167 139 250 / 0.75); +} +.ring-violet-400\/80 { + --tw-ring-color: rgb(167 139 250 / 0.8); +} +.ring-violet-400\/90 { + --tw-ring-color: rgb(167 139 250 / 0.9); +} +.ring-violet-400\/95 { + --tw-ring-color: rgb(167 139 250 / 0.95); +} +.ring-violet-50 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(245 243 255 / var(--tw-ring-opacity)); +} +.ring-violet-50\/0 { + --tw-ring-color: rgb(245 243 255 / 0); +} +.ring-violet-50\/10 { + --tw-ring-color: rgb(245 243 255 / 0.1); +} +.ring-violet-50\/100 { + --tw-ring-color: rgb(245 243 255 / 1); +} +.ring-violet-50\/20 { + --tw-ring-color: rgb(245 243 255 / 0.2); +} +.ring-violet-50\/25 { + --tw-ring-color: rgb(245 243 255 / 0.25); +} +.ring-violet-50\/30 { + --tw-ring-color: rgb(245 243 255 / 0.3); +} +.ring-violet-50\/40 { + --tw-ring-color: rgb(245 243 255 / 0.4); +} +.ring-violet-50\/5 { + --tw-ring-color: rgb(245 243 255 / 0.05); +} +.ring-violet-50\/50 { + --tw-ring-color: rgb(245 243 255 / 0.5); +} +.ring-violet-50\/60 { + --tw-ring-color: rgb(245 243 255 / 0.6); +} +.ring-violet-50\/70 { + --tw-ring-color: rgb(245 243 255 / 0.7); +} +.ring-violet-50\/75 { + --tw-ring-color: rgb(245 243 255 / 0.75); +} +.ring-violet-50\/80 { + --tw-ring-color: rgb(245 243 255 / 0.8); +} +.ring-violet-50\/90 { + --tw-ring-color: rgb(245 243 255 / 0.9); +} +.ring-violet-50\/95 { + --tw-ring-color: rgb(245 243 255 / 0.95); +} +.ring-violet-500 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(139 92 246 / var(--tw-ring-opacity)); +} +.ring-violet-500\/0 { + --tw-ring-color: rgb(139 92 246 / 0); +} +.ring-violet-500\/10 { + --tw-ring-color: rgb(139 92 246 / 0.1); +} +.ring-violet-500\/100 { + --tw-ring-color: rgb(139 92 246 / 1); +} +.ring-violet-500\/20 { + --tw-ring-color: rgb(139 92 246 / 0.2); +} +.ring-violet-500\/25 { + --tw-ring-color: rgb(139 92 246 / 0.25); +} +.ring-violet-500\/30 { + --tw-ring-color: rgb(139 92 246 / 0.3); +} +.ring-violet-500\/40 { + --tw-ring-color: rgb(139 92 246 / 0.4); +} +.ring-violet-500\/5 { + --tw-ring-color: rgb(139 92 246 / 0.05); +} +.ring-violet-500\/50 { + --tw-ring-color: rgb(139 92 246 / 0.5); +} +.ring-violet-500\/60 { + --tw-ring-color: rgb(139 92 246 / 0.6); +} +.ring-violet-500\/70 { + --tw-ring-color: rgb(139 92 246 / 0.7); +} +.ring-violet-500\/75 { + --tw-ring-color: rgb(139 92 246 / 0.75); +} +.ring-violet-500\/80 { + --tw-ring-color: rgb(139 92 246 / 0.8); +} +.ring-violet-500\/90 { + --tw-ring-color: rgb(139 92 246 / 0.9); +} +.ring-violet-500\/95 { + --tw-ring-color: rgb(139 92 246 / 0.95); +} +.ring-violet-600 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(124 58 237 / var(--tw-ring-opacity)); +} +.ring-violet-600\/0 { + --tw-ring-color: rgb(124 58 237 / 0); +} +.ring-violet-600\/10 { + --tw-ring-color: rgb(124 58 237 / 0.1); +} +.ring-violet-600\/100 { + --tw-ring-color: rgb(124 58 237 / 1); +} +.ring-violet-600\/20 { + --tw-ring-color: rgb(124 58 237 / 0.2); +} +.ring-violet-600\/25 { + --tw-ring-color: rgb(124 58 237 / 0.25); +} +.ring-violet-600\/30 { + --tw-ring-color: rgb(124 58 237 / 0.3); +} +.ring-violet-600\/40 { + --tw-ring-color: rgb(124 58 237 / 0.4); +} +.ring-violet-600\/5 { + --tw-ring-color: rgb(124 58 237 / 0.05); +} +.ring-violet-600\/50 { + --tw-ring-color: rgb(124 58 237 / 0.5); +} +.ring-violet-600\/60 { + --tw-ring-color: rgb(124 58 237 / 0.6); +} +.ring-violet-600\/70 { + --tw-ring-color: rgb(124 58 237 / 0.7); +} +.ring-violet-600\/75 { + --tw-ring-color: rgb(124 58 237 / 0.75); +} +.ring-violet-600\/80 { + --tw-ring-color: rgb(124 58 237 / 0.8); +} +.ring-violet-600\/90 { + --tw-ring-color: rgb(124 58 237 / 0.9); +} +.ring-violet-600\/95 { + --tw-ring-color: rgb(124 58 237 / 0.95); +} +.ring-violet-700 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(109 40 217 / var(--tw-ring-opacity)); +} +.ring-violet-700\/0 { + --tw-ring-color: rgb(109 40 217 / 0); +} +.ring-violet-700\/10 { + --tw-ring-color: rgb(109 40 217 / 0.1); +} +.ring-violet-700\/100 { + --tw-ring-color: rgb(109 40 217 / 1); +} +.ring-violet-700\/20 { + --tw-ring-color: rgb(109 40 217 / 0.2); +} +.ring-violet-700\/25 { + --tw-ring-color: rgb(109 40 217 / 0.25); +} +.ring-violet-700\/30 { + --tw-ring-color: rgb(109 40 217 / 0.3); +} +.ring-violet-700\/40 { + --tw-ring-color: rgb(109 40 217 / 0.4); +} +.ring-violet-700\/5 { + --tw-ring-color: rgb(109 40 217 / 0.05); +} +.ring-violet-700\/50 { + --tw-ring-color: rgb(109 40 217 / 0.5); +} +.ring-violet-700\/60 { + --tw-ring-color: rgb(109 40 217 / 0.6); +} +.ring-violet-700\/70 { + --tw-ring-color: rgb(109 40 217 / 0.7); +} +.ring-violet-700\/75 { + --tw-ring-color: rgb(109 40 217 / 0.75); +} +.ring-violet-700\/80 { + --tw-ring-color: rgb(109 40 217 / 0.8); +} +.ring-violet-700\/90 { + --tw-ring-color: rgb(109 40 217 / 0.9); +} +.ring-violet-700\/95 { + --tw-ring-color: rgb(109 40 217 / 0.95); +} +.ring-violet-800 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(91 33 182 / var(--tw-ring-opacity)); +} +.ring-violet-800\/0 { + --tw-ring-color: rgb(91 33 182 / 0); +} +.ring-violet-800\/10 { + --tw-ring-color: rgb(91 33 182 / 0.1); +} +.ring-violet-800\/100 { + --tw-ring-color: rgb(91 33 182 / 1); +} +.ring-violet-800\/20 { + --tw-ring-color: rgb(91 33 182 / 0.2); +} +.ring-violet-800\/25 { + --tw-ring-color: rgb(91 33 182 / 0.25); +} +.ring-violet-800\/30 { + --tw-ring-color: rgb(91 33 182 / 0.3); +} +.ring-violet-800\/40 { + --tw-ring-color: rgb(91 33 182 / 0.4); +} +.ring-violet-800\/5 { + --tw-ring-color: rgb(91 33 182 / 0.05); +} +.ring-violet-800\/50 { + --tw-ring-color: rgb(91 33 182 / 0.5); +} +.ring-violet-800\/60 { + --tw-ring-color: rgb(91 33 182 / 0.6); +} +.ring-violet-800\/70 { + --tw-ring-color: rgb(91 33 182 / 0.7); +} +.ring-violet-800\/75 { + --tw-ring-color: rgb(91 33 182 / 0.75); +} +.ring-violet-800\/80 { + --tw-ring-color: rgb(91 33 182 / 0.8); +} +.ring-violet-800\/90 { + --tw-ring-color: rgb(91 33 182 / 0.9); +} +.ring-violet-800\/95 { + --tw-ring-color: rgb(91 33 182 / 0.95); +} +.ring-violet-900 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(76 29 149 / var(--tw-ring-opacity)); +} +.ring-violet-900\/0 { + --tw-ring-color: rgb(76 29 149 / 0); +} +.ring-violet-900\/10 { + --tw-ring-color: rgb(76 29 149 / 0.1); +} +.ring-violet-900\/100 { + --tw-ring-color: rgb(76 29 149 / 1); +} +.ring-violet-900\/20 { + --tw-ring-color: rgb(76 29 149 / 0.2); +} +.ring-violet-900\/25 { + --tw-ring-color: rgb(76 29 149 / 0.25); +} +.ring-violet-900\/30 { + --tw-ring-color: rgb(76 29 149 / 0.3); +} +.ring-violet-900\/40 { + --tw-ring-color: rgb(76 29 149 / 0.4); +} +.ring-violet-900\/5 { + --tw-ring-color: rgb(76 29 149 / 0.05); +} +.ring-violet-900\/50 { + --tw-ring-color: rgb(76 29 149 / 0.5); +} +.ring-violet-900\/60 { + --tw-ring-color: rgb(76 29 149 / 0.6); +} +.ring-violet-900\/70 { + --tw-ring-color: rgb(76 29 149 / 0.7); +} +.ring-violet-900\/75 { + --tw-ring-color: rgb(76 29 149 / 0.75); +} +.ring-violet-900\/80 { + --tw-ring-color: rgb(76 29 149 / 0.8); +} +.ring-violet-900\/90 { + --tw-ring-color: rgb(76 29 149 / 0.9); +} +.ring-violet-900\/95 { + --tw-ring-color: rgb(76 29 149 / 0.95); +} +.ring-offset-Occupation_du_sol-primary { + --tw-ring-offset-color: var(--Occupation_du_sol-primary); +} +.ring-offset-Occupation_du_sol-secondary { + --tw-ring-offset-color: var(--Occupation_du_sol-secondary); +} +.ring-offset-Occupation_du_sol-tertiary { + --tw-ring-offset-color: var(--Occupation_du_sol-tertiary); +} +.ring-offset-violet-100 { + --tw-ring-offset-color: #ede9fe; +} +.ring-offset-violet-100\/0 { + --tw-ring-offset-color: rgb(237 233 254 / 0); +} +.ring-offset-violet-100\/10 { + --tw-ring-offset-color: rgb(237 233 254 / 0.1); +} +.ring-offset-violet-100\/100 { + --tw-ring-offset-color: rgb(237 233 254 / 1); +} +.ring-offset-violet-100\/20 { + --tw-ring-offset-color: rgb(237 233 254 / 0.2); +} +.ring-offset-violet-100\/25 { + --tw-ring-offset-color: rgb(237 233 254 / 0.25); +} +.ring-offset-violet-100\/30 { + --tw-ring-offset-color: rgb(237 233 254 / 0.3); +} +.ring-offset-violet-100\/40 { + --tw-ring-offset-color: rgb(237 233 254 / 0.4); +} +.ring-offset-violet-100\/5 { + --tw-ring-offset-color: rgb(237 233 254 / 0.05); +} +.ring-offset-violet-100\/50 { + --tw-ring-offset-color: rgb(237 233 254 / 0.5); +} +.ring-offset-violet-100\/60 { + --tw-ring-offset-color: rgb(237 233 254 / 0.6); +} +.ring-offset-violet-100\/70 { + --tw-ring-offset-color: rgb(237 233 254 / 0.7); +} +.ring-offset-violet-100\/75 { + --tw-ring-offset-color: rgb(237 233 254 / 0.75); +} +.ring-offset-violet-100\/80 { + --tw-ring-offset-color: rgb(237 233 254 / 0.8); +} +.ring-offset-violet-100\/90 { + --tw-ring-offset-color: rgb(237 233 254 / 0.9); +} +.ring-offset-violet-100\/95 { + --tw-ring-offset-color: rgb(237 233 254 / 0.95); +} +.ring-offset-violet-200 { + --tw-ring-offset-color: #ddd6fe; +} +.ring-offset-violet-200\/0 { + --tw-ring-offset-color: rgb(221 214 254 / 0); +} +.ring-offset-violet-200\/10 { + --tw-ring-offset-color: rgb(221 214 254 / 0.1); +} +.ring-offset-violet-200\/100 { + --tw-ring-offset-color: rgb(221 214 254 / 1); +} +.ring-offset-violet-200\/20 { + --tw-ring-offset-color: rgb(221 214 254 / 0.2); +} +.ring-offset-violet-200\/25 { + --tw-ring-offset-color: rgb(221 214 254 / 0.25); +} +.ring-offset-violet-200\/30 { + --tw-ring-offset-color: rgb(221 214 254 / 0.3); +} +.ring-offset-violet-200\/40 { + --tw-ring-offset-color: rgb(221 214 254 / 0.4); +} +.ring-offset-violet-200\/5 { + --tw-ring-offset-color: rgb(221 214 254 / 0.05); +} +.ring-offset-violet-200\/50 { + --tw-ring-offset-color: rgb(221 214 254 / 0.5); +} +.ring-offset-violet-200\/60 { + --tw-ring-offset-color: rgb(221 214 254 / 0.6); +} +.ring-offset-violet-200\/70 { + --tw-ring-offset-color: rgb(221 214 254 / 0.7); +} +.ring-offset-violet-200\/75 { + --tw-ring-offset-color: rgb(221 214 254 / 0.75); +} +.ring-offset-violet-200\/80 { + --tw-ring-offset-color: rgb(221 214 254 / 0.8); +} +.ring-offset-violet-200\/90 { + --tw-ring-offset-color: rgb(221 214 254 / 0.9); +} +.ring-offset-violet-200\/95 { + --tw-ring-offset-color: rgb(221 214 254 / 0.95); +} +.ring-offset-violet-300 { + --tw-ring-offset-color: #c4b5fd; +} +.ring-offset-violet-300\/0 { + --tw-ring-offset-color: rgb(196 181 253 / 0); +} +.ring-offset-violet-300\/10 { + --tw-ring-offset-color: rgb(196 181 253 / 0.1); +} +.ring-offset-violet-300\/100 { + --tw-ring-offset-color: rgb(196 181 253 / 1); +} +.ring-offset-violet-300\/20 { + --tw-ring-offset-color: rgb(196 181 253 / 0.2); +} +.ring-offset-violet-300\/25 { + --tw-ring-offset-color: rgb(196 181 253 / 0.25); +} +.ring-offset-violet-300\/30 { + --tw-ring-offset-color: rgb(196 181 253 / 0.3); +} +.ring-offset-violet-300\/40 { + --tw-ring-offset-color: rgb(196 181 253 / 0.4); +} +.ring-offset-violet-300\/5 { + --tw-ring-offset-color: rgb(196 181 253 / 0.05); +} +.ring-offset-violet-300\/50 { + --tw-ring-offset-color: rgb(196 181 253 / 0.5); +} +.ring-offset-violet-300\/60 { + --tw-ring-offset-color: rgb(196 181 253 / 0.6); +} +.ring-offset-violet-300\/70 { + --tw-ring-offset-color: rgb(196 181 253 / 0.7); +} +.ring-offset-violet-300\/75 { + --tw-ring-offset-color: rgb(196 181 253 / 0.75); +} +.ring-offset-violet-300\/80 { + --tw-ring-offset-color: rgb(196 181 253 / 0.8); +} +.ring-offset-violet-300\/90 { + --tw-ring-offset-color: rgb(196 181 253 / 0.9); +} +.ring-offset-violet-300\/95 { + --tw-ring-offset-color: rgb(196 181 253 / 0.95); +} +.ring-offset-violet-400 { + --tw-ring-offset-color: #a78bfa; +} +.ring-offset-violet-400\/0 { + --tw-ring-offset-color: rgb(167 139 250 / 0); +} +.ring-offset-violet-400\/10 { + --tw-ring-offset-color: rgb(167 139 250 / 0.1); +} +.ring-offset-violet-400\/100 { + --tw-ring-offset-color: rgb(167 139 250 / 1); +} +.ring-offset-violet-400\/20 { + --tw-ring-offset-color: rgb(167 139 250 / 0.2); +} +.ring-offset-violet-400\/25 { + --tw-ring-offset-color: rgb(167 139 250 / 0.25); +} +.ring-offset-violet-400\/30 { + --tw-ring-offset-color: rgb(167 139 250 / 0.3); +} +.ring-offset-violet-400\/40 { + --tw-ring-offset-color: rgb(167 139 250 / 0.4); +} +.ring-offset-violet-400\/5 { + --tw-ring-offset-color: rgb(167 139 250 / 0.05); +} +.ring-offset-violet-400\/50 { + --tw-ring-offset-color: rgb(167 139 250 / 0.5); +} +.ring-offset-violet-400\/60 { + --tw-ring-offset-color: rgb(167 139 250 / 0.6); +} +.ring-offset-violet-400\/70 { + --tw-ring-offset-color: rgb(167 139 250 / 0.7); +} +.ring-offset-violet-400\/75 { + --tw-ring-offset-color: rgb(167 139 250 / 0.75); +} +.ring-offset-violet-400\/80 { + --tw-ring-offset-color: rgb(167 139 250 / 0.8); +} +.ring-offset-violet-400\/90 { + --tw-ring-offset-color: rgb(167 139 250 / 0.9); +} +.ring-offset-violet-400\/95 { + --tw-ring-offset-color: rgb(167 139 250 / 0.95); +} +.ring-offset-violet-50 { + --tw-ring-offset-color: #f5f3ff; +} +.ring-offset-violet-50\/0 { + --tw-ring-offset-color: rgb(245 243 255 / 0); +} +.ring-offset-violet-50\/10 { + --tw-ring-offset-color: rgb(245 243 255 / 0.1); +} +.ring-offset-violet-50\/100 { + --tw-ring-offset-color: rgb(245 243 255 / 1); +} +.ring-offset-violet-50\/20 { + --tw-ring-offset-color: rgb(245 243 255 / 0.2); +} +.ring-offset-violet-50\/25 { + --tw-ring-offset-color: rgb(245 243 255 / 0.25); +} +.ring-offset-violet-50\/30 { + --tw-ring-offset-color: rgb(245 243 255 / 0.3); +} +.ring-offset-violet-50\/40 { + --tw-ring-offset-color: rgb(245 243 255 / 0.4); +} +.ring-offset-violet-50\/5 { + --tw-ring-offset-color: rgb(245 243 255 / 0.05); +} +.ring-offset-violet-50\/50 { + --tw-ring-offset-color: rgb(245 243 255 / 0.5); +} +.ring-offset-violet-50\/60 { + --tw-ring-offset-color: rgb(245 243 255 / 0.6); +} +.ring-offset-violet-50\/70 { + --tw-ring-offset-color: rgb(245 243 255 / 0.7); +} +.ring-offset-violet-50\/75 { + --tw-ring-offset-color: rgb(245 243 255 / 0.75); +} +.ring-offset-violet-50\/80 { + --tw-ring-offset-color: rgb(245 243 255 / 0.8); +} +.ring-offset-violet-50\/90 { + --tw-ring-offset-color: rgb(245 243 255 / 0.9); +} +.ring-offset-violet-50\/95 { + --tw-ring-offset-color: rgb(245 243 255 / 0.95); +} +.ring-offset-violet-500 { + --tw-ring-offset-color: #8b5cf6; +} +.ring-offset-violet-500\/0 { + --tw-ring-offset-color: rgb(139 92 246 / 0); +} +.ring-offset-violet-500\/10 { + --tw-ring-offset-color: rgb(139 92 246 / 0.1); +} +.ring-offset-violet-500\/100 { + --tw-ring-offset-color: rgb(139 92 246 / 1); +} +.ring-offset-violet-500\/20 { + --tw-ring-offset-color: rgb(139 92 246 / 0.2); +} +.ring-offset-violet-500\/25 { + --tw-ring-offset-color: rgb(139 92 246 / 0.25); +} +.ring-offset-violet-500\/30 { + --tw-ring-offset-color: rgb(139 92 246 / 0.3); +} +.ring-offset-violet-500\/40 { + --tw-ring-offset-color: rgb(139 92 246 / 0.4); +} +.ring-offset-violet-500\/5 { + --tw-ring-offset-color: rgb(139 92 246 / 0.05); +} +.ring-offset-violet-500\/50 { + --tw-ring-offset-color: rgb(139 92 246 / 0.5); +} +.ring-offset-violet-500\/60 { + --tw-ring-offset-color: rgb(139 92 246 / 0.6); +} +.ring-offset-violet-500\/70 { + --tw-ring-offset-color: rgb(139 92 246 / 0.7); +} +.ring-offset-violet-500\/75 { + --tw-ring-offset-color: rgb(139 92 246 / 0.75); +} +.ring-offset-violet-500\/80 { + --tw-ring-offset-color: rgb(139 92 246 / 0.8); +} +.ring-offset-violet-500\/90 { + --tw-ring-offset-color: rgb(139 92 246 / 0.9); +} +.ring-offset-violet-500\/95 { + --tw-ring-offset-color: rgb(139 92 246 / 0.95); +} +.ring-offset-violet-600 { + --tw-ring-offset-color: #7c3aed; +} +.ring-offset-violet-600\/0 { + --tw-ring-offset-color: rgb(124 58 237 / 0); +} +.ring-offset-violet-600\/10 { + --tw-ring-offset-color: rgb(124 58 237 / 0.1); +} +.ring-offset-violet-600\/100 { + --tw-ring-offset-color: rgb(124 58 237 / 1); +} +.ring-offset-violet-600\/20 { + --tw-ring-offset-color: rgb(124 58 237 / 0.2); +} +.ring-offset-violet-600\/25 { + --tw-ring-offset-color: rgb(124 58 237 / 0.25); +} +.ring-offset-violet-600\/30 { + --tw-ring-offset-color: rgb(124 58 237 / 0.3); +} +.ring-offset-violet-600\/40 { + --tw-ring-offset-color: rgb(124 58 237 / 0.4); +} +.ring-offset-violet-600\/5 { + --tw-ring-offset-color: rgb(124 58 237 / 0.05); +} +.ring-offset-violet-600\/50 { + --tw-ring-offset-color: rgb(124 58 237 / 0.5); +} +.ring-offset-violet-600\/60 { + --tw-ring-offset-color: rgb(124 58 237 / 0.6); +} +.ring-offset-violet-600\/70 { + --tw-ring-offset-color: rgb(124 58 237 / 0.7); +} +.ring-offset-violet-600\/75 { + --tw-ring-offset-color: rgb(124 58 237 / 0.75); +} +.ring-offset-violet-600\/80 { + --tw-ring-offset-color: rgb(124 58 237 / 0.8); +} +.ring-offset-violet-600\/90 { + --tw-ring-offset-color: rgb(124 58 237 / 0.9); +} +.ring-offset-violet-600\/95 { + --tw-ring-offset-color: rgb(124 58 237 / 0.95); +} +.ring-offset-violet-700 { + --tw-ring-offset-color: #6d28d9; +} +.ring-offset-violet-700\/0 { + --tw-ring-offset-color: rgb(109 40 217 / 0); +} +.ring-offset-violet-700\/10 { + --tw-ring-offset-color: rgb(109 40 217 / 0.1); +} +.ring-offset-violet-700\/100 { + --tw-ring-offset-color: rgb(109 40 217 / 1); +} +.ring-offset-violet-700\/20 { + --tw-ring-offset-color: rgb(109 40 217 / 0.2); +} +.ring-offset-violet-700\/25 { + --tw-ring-offset-color: rgb(109 40 217 / 0.25); +} +.ring-offset-violet-700\/30 { + --tw-ring-offset-color: rgb(109 40 217 / 0.3); +} +.ring-offset-violet-700\/40 { + --tw-ring-offset-color: rgb(109 40 217 / 0.4); +} +.ring-offset-violet-700\/5 { + --tw-ring-offset-color: rgb(109 40 217 / 0.05); +} +.ring-offset-violet-700\/50 { + --tw-ring-offset-color: rgb(109 40 217 / 0.5); +} +.ring-offset-violet-700\/60 { + --tw-ring-offset-color: rgb(109 40 217 / 0.6); +} +.ring-offset-violet-700\/70 { + --tw-ring-offset-color: rgb(109 40 217 / 0.7); +} +.ring-offset-violet-700\/75 { + --tw-ring-offset-color: rgb(109 40 217 / 0.75); +} +.ring-offset-violet-700\/80 { + --tw-ring-offset-color: rgb(109 40 217 / 0.8); +} +.ring-offset-violet-700\/90 { + --tw-ring-offset-color: rgb(109 40 217 / 0.9); +} +.ring-offset-violet-700\/95 { + --tw-ring-offset-color: rgb(109 40 217 / 0.95); +} +.ring-offset-violet-800 { + --tw-ring-offset-color: #5b21b6; +} +.ring-offset-violet-800\/0 { + --tw-ring-offset-color: rgb(91 33 182 / 0); +} +.ring-offset-violet-800\/10 { + --tw-ring-offset-color: rgb(91 33 182 / 0.1); +} +.ring-offset-violet-800\/100 { + --tw-ring-offset-color: rgb(91 33 182 / 1); +} +.ring-offset-violet-800\/20 { + --tw-ring-offset-color: rgb(91 33 182 / 0.2); +} +.ring-offset-violet-800\/25 { + --tw-ring-offset-color: rgb(91 33 182 / 0.25); +} +.ring-offset-violet-800\/30 { + --tw-ring-offset-color: rgb(91 33 182 / 0.3); +} +.ring-offset-violet-800\/40 { + --tw-ring-offset-color: rgb(91 33 182 / 0.4); +} +.ring-offset-violet-800\/5 { + --tw-ring-offset-color: rgb(91 33 182 / 0.05); +} +.ring-offset-violet-800\/50 { + --tw-ring-offset-color: rgb(91 33 182 / 0.5); +} +.ring-offset-violet-800\/60 { + --tw-ring-offset-color: rgb(91 33 182 / 0.6); +} +.ring-offset-violet-800\/70 { + --tw-ring-offset-color: rgb(91 33 182 / 0.7); +} +.ring-offset-violet-800\/75 { + --tw-ring-offset-color: rgb(91 33 182 / 0.75); +} +.ring-offset-violet-800\/80 { + --tw-ring-offset-color: rgb(91 33 182 / 0.8); +} +.ring-offset-violet-800\/90 { + --tw-ring-offset-color: rgb(91 33 182 / 0.9); +} +.ring-offset-violet-800\/95 { + --tw-ring-offset-color: rgb(91 33 182 / 0.95); +} +.ring-offset-violet-900 { + --tw-ring-offset-color: #4c1d95; +} +.ring-offset-violet-900\/0 { + --tw-ring-offset-color: rgb(76 29 149 / 0); +} +.ring-offset-violet-900\/10 { + --tw-ring-offset-color: rgb(76 29 149 / 0.1); +} +.ring-offset-violet-900\/100 { + --tw-ring-offset-color: rgb(76 29 149 / 1); +} +.ring-offset-violet-900\/20 { + --tw-ring-offset-color: rgb(76 29 149 / 0.2); +} +.ring-offset-violet-900\/25 { + --tw-ring-offset-color: rgb(76 29 149 / 0.25); +} +.ring-offset-violet-900\/30 { + --tw-ring-offset-color: rgb(76 29 149 / 0.3); +} +.ring-offset-violet-900\/40 { + --tw-ring-offset-color: rgb(76 29 149 / 0.4); +} +.ring-offset-violet-900\/5 { + --tw-ring-offset-color: rgb(76 29 149 / 0.05); +} +.ring-offset-violet-900\/50 { + --tw-ring-offset-color: rgb(76 29 149 / 0.5); +} +.ring-offset-violet-900\/60 { + --tw-ring-offset-color: rgb(76 29 149 / 0.6); +} +.ring-offset-violet-900\/70 { + --tw-ring-offset-color: rgb(76 29 149 / 0.7); +} +.ring-offset-violet-900\/75 { + --tw-ring-offset-color: rgb(76 29 149 / 0.75); +} +.ring-offset-violet-900\/80 { + --tw-ring-offset-color: rgb(76 29 149 / 0.8); +} +.ring-offset-violet-900\/90 { + --tw-ring-offset-color: rgb(76 29 149 / 0.9); +} +.ring-offset-violet-900\/95 { + --tw-ring-offset-color: rgb(76 29 149 / 0.95); +} +.filter { + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} +.transition-colors { + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} +.duration-200 { + transition-duration: 200ms; +} +.ease-in { + transition-timing-function: cubic-bezier(0.4, 0, 1, 1); +} +.ease-out { + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); +} +.will-change-scroll { + will-change: scroll-position; +} +.content-Occupation_du_sol { + --tw-content: "\e051"; + content: var(--tw-content); +} + +@font-face { + font-family: 'DINNextLTPro-Condensed'; + src: url('https://map.geoportail.lu/static-ngeo/28867F_0_0.c8a814.woff') + format('woff'); +} +/* Font inlcudes all lux icons from various "old" icon font files: +** "geoportail-icons", "urban-farming", "apart-geoportail", "Geoportail-Grande-Region", "statec-icons" +** Codes for icons from "geoportail-icons" are identical, but different for those coming from other fonts. +** All lux icons can be found in the range between "e000" and "e064". +** To view or edit the file use a tool like fontforge. +** The src might be adapted for production where the font will be available under url("../webfonts/geoportail-icons-wc.woff") +*/ +@font-face { + font-family: 'geoportail-icons-wc'; + src: url('data:font/woff;base64,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') format('woff'); +} + +.fa-solid { + vertical-align: middle; +} + +.before\:inline-block::before { + content: var(--tw-content); + display: inline-block; +} + +.before\:w-16::before { + content: var(--tw-content); + width: 4rem; +} + +.before\:translate-y-\[\.1rem\]::before { + content: var(--tw-content); + --tw-translate-y: .1rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.before\:transform::before { + content: var(--tw-content); + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.before\:font-icons::before { + content: var(--tw-content); + font-family: geoportail-icons-wc; +} + +.before\:text-3xl::before { + content: var(--tw-content); + font-size: 1.875rem; + line-height: 2.25rem; +} + +.before\:text-\[\.85rem\]::before { + content: var(--tw-content); + font-size: .85rem; +} + +.before\:content-Amenagement_du_territoire::before { + --tw-content: "\e044"; + content: var(--tw-content); +} + +.before\:content-Environnement_humain::before { + --tw-content: "\e048"; + content: var(--tw-content); +} + +.before\:content-Environnement_naturel::before { + --tw-content: "\e04b"; + content: var(--tw-content); +} + +.before\:content-Occupation_du_sol::before { + --tw-content: "\e051"; + content: var(--tw-content); +} + +.before\:content-\[\'\\f129\'\]::before { + --tw-content: '\f129'; + content: var(--tw-content); +} + +.before\:content-agriculture::before { + --tw-content: "\e043"; + content: var(--tw-content); +} + +.before\:content-ahc::before { + --tw-content: "\e016"; + content: var(--tw-content); +} + +.before\:content-at::before { + --tw-content: "\e044"; + content: var(--tw-content); +} + +.before\:content-atlas_demographique::before { + --tw-content: "\e05c"; + content: var(--tw-content); +} + +.before\:content-cadastre_hertzien::before { + --tw-content: "\e02d"; + content: var(--tw-content); +} + +.before\:content-draw::before { + --tw-content: "\e01e"; + content: var(--tw-content); +} + +.before\:content-eau::before { + --tw-content: "\e016"; + content: var(--tw-content); +} + +.before\:content-emwelt::before { + --tw-content: "\e04b"; + content: var(--tw-content); +} + +.before\:content-energie::before { + --tw-content: "\e048"; + content: var(--tw-content); +} + +.before\:content-geosciences::before { + --tw-content: "\e05b"; + content: var(--tw-content); +} + +.before\:content-go::before { + --tw-content: "\e00b"; + content: var(--tw-content); +} + +.before\:content-infos::before { + --tw-content: "\e01f"; + content: var(--tw-content); +} + +.before\:content-intranet-at::before { + --tw-content: "\e018"; + content: var(--tw-content); +} + +.before\:content-layers::before { + --tw-content: "\e00e"; + content: var(--tw-content); +} + +.before\:content-legends::before { + --tw-content: "\e041"; + content: var(--tw-content); +} + +.before\:content-lenoz::before { + --tw-content: "\e01A"; + content: var(--tw-content); +} + +.before\:content-lintgen::before { + --tw-content: "\e00c"; + content: var(--tw-content); +} + +.before\:content-logement::before { + --tw-content: "\e055"; + content: var(--tw-content); +} + +.before\:content-main::before { + --tw-content: "\e02d"; + content: var(--tw-content); +} + +.before\:content-measure::before { + --tw-content: "\e021"; + content: var(--tw-content); +} + +.before\:content-municipalities::before { + --tw-content: "\e042"; + content: var(--tw-content); +} + +.before\:content-mymaps::before { + --tw-content: "\e01d"; + content: var(--tw-content); +} + +.before\:content-np_our::before { + --tw-content: "\e005"; + content: var(--tw-content); +} + +.before\:content-pag::before { + --tw-content: "\e018"; + content: var(--tw-content); +} + +.before\:content-preizerdaul::before { + --tw-content: "\e00c"; + content: var(--tw-content); +} + +.before\:content-print::before { + --tw-content: "\e02f"; + content: var(--tw-content); +} + +.before\:content-prof::before { + --tw-content: "\e00a"; + content: var(--tw-content); +} + +.before\:content-remich::before { + --tw-content: "\e00c"; + content: var(--tw-content); +} + +.before\:content-routing::before { + --tw-content: "\e062"; + content: var(--tw-content); +} + +.before\:content-share::before { + --tw-content: "\e02a"; + content: var(--tw-content); +} + +.before\:content-sig_secours::before { + --tw-content: "\e00a"; + content: var(--tw-content); +} + +.before\:content-tourisme::before { + --tw-content: "\e04e"; + content: var(--tw-content); +} + +.before\:content-urban_farming::before { + --tw-content: "\e054"; + content: var(--tw-content); +} + +.before\:content-wellenstein::before { + --tw-content: "\e00c"; + content: var(--tw-content); +} + +.after\:absolute::after { + content: var(--tw-content); + position: absolute; +} + +.after\:left-\[20px\]::after { + content: var(--tw-content); + left: 20px; +} + +.after\:top-\[10px\]::after { + content: var(--tw-content); + top: 10px; +} + +.after\:w-\[3\.6em\]::after { + content: var(--tw-content); + width: 3.6em; +} + +.after\:w-full::after { + content: var(--tw-content); + width: 100%; +} + +.after\:px-\[15px\]::after { + content: var(--tw-content); + padding-left: 15px; + padding-right: 15px; +} + +.after\:py-\[15px\]::after { + content: var(--tw-content); + padding-top: 15px; + padding-bottom: 15px; +} + +.after\:text-center::after { + content: var(--tw-content); + text-align: center; +} + +.after\:font-icons::after { + content: var(--tw-content); + font-family: geoportail-icons-wc; +} + +.after\:content-Amenagement_du_territoire::after { + --tw-content: "\e044"; + content: var(--tw-content); +} + +.after\:content-Environnement_humain::after { + --tw-content: "\e048"; + content: var(--tw-content); +} + +.after\:content-Environnement_naturel::after { + --tw-content: "\e04b"; + content: var(--tw-content); +} + +.after\:content-Occupation_du_sol::after { + --tw-content: "\e051"; + content: var(--tw-content); +} + +.after\:content-agriculture::after { + --tw-content: "\e043"; + content: var(--tw-content); +} + +.after\:content-ahc::after { + --tw-content: "\e016"; + content: var(--tw-content); +} + +.after\:content-at::after { + --tw-content: "\e044"; + content: var(--tw-content); +} + +.after\:content-atlas_demographique::after { + --tw-content: "\e05c"; + content: var(--tw-content); +} + +.after\:content-cadastre_hertzien::after { + --tw-content: "\e02d"; + content: var(--tw-content); +} + +.after\:content-download::after { + --tw-content: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4KCjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0iQ2FwYV8xIgogICB4PSIwcHgiCiAgIHk9IjBweCIKICAgdmlld0JveD0iMCAwIDMyNS4wNCAzMjUuMDQiCiAgIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyNS4wNCAzMjUuMDQ7IgogICB4bWw6c3BhY2U9InByZXNlcnZlIgogICBzb2RpcG9kaTpkb2NuYW1lPSJwYWxldHRlLnN2ZyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi4zICgyNDA1NTQ2LCAyMDE4LTAzLTExKSI+PG1ldGFkYXRhCiAgIGlkPSJtZXRhZGF0YTU3Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgcmRmOmFib3V0PSIiPjxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PjxkYzp0eXBlCiAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+PC9jYzpXb3JrPjwvcmRmOlJERj48L21ldGFkYXRhPjxkZWZzCiAgIGlkPSJkZWZzNTUiIC8+PHNvZGlwb2RpOm5hbWVkdmlldwogICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICBib3JkZXJvcGFjaXR5PSIxIgogICBvYmplY3R0b2xlcmFuY2U9IjEwIgogICBncmlkdG9sZXJhbmNlPSIxMCIKICAgZ3VpZGV0b2xlcmFuY2U9IjEwIgogICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMCIKICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI5ODIiCiAgIGlkPSJuYW1lZHZpZXc1MyIKICAgc2hvd2dyaWQ9ImZhbHNlIgogICBpbmtzY2FwZTp6b29tPSIyLjQ2NDMxMiIKICAgaW5rc2NhcGU6Y3g9IjE2Mi41MiIKICAgaW5rc2NhcGU6Y3k9IjE2Mi41MiIKICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgIGlua3NjYXBlOndpbmRvdy15PSIyNyIKICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0iQ2FwYV8xIiAvPgo8ZwogICBpZD0iZzIwIgogICBzdHlsZT0iZmlsbDojZmZmZmZmIj4KCTxwYXRoCiAgIGQ9Ik04NC44MjEsMjEwLjkzOGMtNC42NDYtMy42NzEtMTAuNDY5LTUuNjkzLTE2LjM5Ni01LjY5M2MtOC4wNTUsMC0xNS41NTYsMy41NzktMjAuNTgsOS44MjEgICBjLTQuMzkzLDUuNDY0LTYuMzgyLDEyLjMtNS41OTgsMTkuMjQ3YzAuNzg1LDYuOTYyLDQuMjU4LDEzLjE5OCw5Ljc3OCwxNy41NjFjNC42NDYsMy42NzIsMTAuNDY3LDUuNjk0LDE2LjM5Myw1LjY5NCAgIGM4LjA2MSwwLDE1LjU2My0zLjU4NiwyMC41ODMtOS44MzRjNC4zODktNS40NTUsNi4zNzYtMTIuMjgzLDUuNTk1LTE5LjIyN0M5My44MTMsMjIxLjU0NSw5MC4zNDIsMjE1LjMwNSw4NC44MjEsMjEwLjkzOHogICAgTTc5LjY0OCwyNDAuMjE1Yy0yLjczMiwzLjQwMi02LjgyNiw1LjM1NC0xMS4yMyw1LjM1NGMtMy4yODMsMC02LjM3OS0xLjA3NS04Ljk1MS0zLjEwOGMtMi45OTEtMi4zNjQtNC44NzEtNS43MzUtNS4yOTYtOS40OTMgICBjLTAuNDIyLTMuNzQzLDAuNjUyLTcuNDMxLDMuMDIzLTEwLjM3OWMyLjczMy0zLjM5Niw2LjgyNy01LjM0NCwxMS4yMzEtNS4zNDRjMy4yODYsMCw2LjM4MywxLjA3NSw4Ljk1NCwzLjEwNyAgIGMyLjk5LDIuMzY0LDQuODY5LDUuNzM3LDUuMjkyLDkuNDk3QzgzLjA5MiwyMzMuNTg5LDgyLjAyLDIzNy4yNjksNzkuNjQ4LDI0MC4yMTV6IgogICBpZD0icGF0aDEwIgogICBzdHlsZT0iZmlsbDojZmZmZmZmIiAvPgoJPHBhdGgKICAgZD0iTTE5MC4zMywxNDkuNDg0YzMuOTU4LDAsNy43ODUtMC44NjcsMTEuMzg0LTIuNTgyYzYuMzYyLTMuMDQ0LDExLjE0MS04LjM2OSwxMy40NTQtMTQuOTk1ICAgYzIuMzAxLTYuNTg0LDEuODg3LTEzLjY2OS0xLjE2My0xOS45NDRjLTQuMzYzLTguOTk0LTEzLjY4MS0xNC44MDYtMjMuNzM4LTE0LjgwNmMtMy45NjYsMC03LjgwMSwwLjg3LTExLjM5OSwyLjU4NyAgIGMtNi4zNiwzLjAzNC0xMS4xNDEsOC4zNTUtMTMuNDU4LDE0Ljk4M2MtMi4zMDUsNi41ODktMS44OTIsMTMuNjc1LDEuMTYzLDE5Ljk1M0MxNzAuOTUsMTQzLjY3MywxODAuMjc1LDE0OS40ODQsMTkwLjMzLDE0OS40ODR6ICAgIE0xNzYuNzM2LDExOC42ODhjMS4yNTQtMy41ODUsMy44NDYtNi40NjcsNy4yOTgtOC4xMTRjMS45NzItMC45NCw0LjA2OC0xLjQxNyw2LjIzMi0xLjQxN2M1LjQ5MSwwLDEwLjU3MSwzLjE1NywxMi45NDMsOC4wNDggICBjMS42NDUsMy4zODQsMS44NjgsNy4xOTksMC42MywxMC43NDVjLTEuMjUzLDMuNTg3LTMuODQ4LDYuNDczLTcuMjk2LDguMTIzYy0xLjk2NSwwLjkzNy00LjA1NiwxLjQxMS02LjIxNCwxLjQxMSAgIGMtNS40OTYsMC0xMC41ODYtMy4xNjItMTIuOTY4LTguMDU1QzE3NS43MTgsMTI2LjA1LDE3NS40OTYsMTIyLjIzNiwxNzYuNzM2LDExOC42ODh6IgogICBpZD0icGF0aDEyIgogICBzdHlsZT0iZmlsbDojZmZmZmZmIiAvPgoJPHBhdGgKICAgZD0iTTEyNS4wMzUsMTA3LjA4MWMxLjkzLDAuNDM2LDMuOTA1LDAuNjU3LDUuODcsMC42NTdjMTIuMzUyLDAsMjIuOTA1LTguMzU0LDI1LjY2NS0yMC4zMjcgICBjMS41NTEtNi43ODksMC4zNTgtMTMuNzc4LTMuMzU2LTE5LjY4MmMtMy43NDUtNS45NS05LjU5OC0xMC4wODYtMTYuNDc2LTExLjY0NGMtMS45MzgtMC40NC0zLjkyMS0wLjY2NC01Ljg5NS0wLjY2NCAgIGMtMTIuMzQ0LDAtMjIuODg2LDguMzYzLTI1LjYzNywyMC4zMzRjLTEuNTY0LDYuNzg0LTAuMzc5LDEzLjc3NCwzLjMzNiwxOS42ODJDMTEyLjI5LDEwMS4zOTUsMTE4LjE0OSwxMDUuNTMxLDEyNS4wMzUsMTA3LjA4MXogICAgTTExNi45MDEsNzguNDQ3YzEuNDkxLTYuNDkxLDcuMjI1LTExLjAyNSwxMy45NDItMTEuMDI1YzEuMDc5LDAsMi4xNjgsMC4xMjMsMy4yMzksMC4zNjZjMy43NTIsMC44NSw2LjkzOSwzLjA5OSw4Ljk3NSw2LjMzMyAgIGMyLjAwNiwzLjE4NywyLjY1LDYuOTU3LDEuODE2LDEwLjYwNWMtMS40NzEsNi4zODEtNy4zNDYsMTEuMDEyLTEzLjk2OSwxMS4wMTJjLTEuMDc2LDAtMi4xNjEtMC4xMjItMy4yMjktMC4zNjMgICBjLTMuNzUzLTAuODQ1LTYuOTQtMy4wOTItOC45NzUtNi4zMjZDMTE2LjY5OCw4NS44NjQsMTE2LjA1OSw4Mi4xLDExNi45MDEsNzguNDQ3eiIKICAgaWQ9InBhdGgxNCIKICAgc3R5bGU9ImZpbGw6I2ZmZmZmZiIgLz4KCTxwYXRoCiAgIGQ9Ik03Ny4zNTYsMTIyLjA1YzUuNTE0LTQuMzY5LDguOTgxLTEwLjYxLDkuNzY1LTE3LjU3M2MwLjc4MS02Ljk0Mi0xLjIwMi0xMy43Ny01LjU5My0xOS4yMzUgICBjLTUuMDMyLTYuMjM5LTEyLjUzOS05LjgxNy0yMC41OTQtOS44MTdjLTUuOTIxLDAtMTEuNzM4LDIuMDE2LTE2LjM4NSw1LjY4MWMtNS41MTUsNC4zNTYtOC45ODQsMTAuNTg3LTkuNzcxLDE3LjU0NSAgIGMtMC43ODYsNi45NTEsMS4yMDIsMTMuNzkxLDUuNjAxLDE5LjI2NWM1LjAyOCw2LjI0NiwxMi41MzYsOS44MjksMjAuNiw5LjgyOUM2Ni45MDUsMTI3Ljc0NCw3Mi43MjIsMTI1LjcyMiw3Ny4zNTYsMTIyLjA1eiAgICBNNDkuNzMxLDExMC4zOTNjLTIuMzc2LTIuOTU2LTMuNDUxLTYuNjQ4LTMuMDI3LTEwLjM5NmMwLjQyNC0zLjc1MywyLjMwMi03LjExOSw1LjI4Mi05LjQ3NGMyLjU3MS0yLjAyOCw1LjY2Ni0zLjEsOC45NDktMy4xICAgYzQuNDA4LDAsOC41MTEsMS45NSwxMS4yNDYsNS4zNDFjMi4zNjUsMi45NDYsMy40MzcsNi42MjksMy4wMTYsMTAuMzdjLTAuNDIzLDMuNzY0LTIuMzAzLDcuMTQyLTUuMjkyLDkuNTEgICBjLTIuNTU5LDIuMDI3LTUuNjQ2LDMuMDk5LTguOTI1LDMuMDk5QzU2LjU2NywxMTUuNzQ0LDUyLjQ2NywxMTMuNzkyLDQ5LjczMSwxMTAuMzkzeiIKICAgaWQ9InBhdGgxNiIKICAgc3R5bGU9ImZpbGw6I2ZmZmZmZiIgLz4KCTxwYXRoCiAgIGQ9Ik0zMjIuNzQ1LDYzLjMzNmMtMS4wMzctMS4wNDYtMi44ODctMi4yOTMtNS44MDYtMi4yOTNjLTMuNDIzLDAtMTIuNTE2LDAtNjcuNzQsNDYuOTkyYy0xLjExLDAuOTQ0LTIuMjMsMS45MDEtMy4zNTQsMi44NjUgICBjLTkuODY3LTI1LjczOS0yNy4yMDMtNDguNjg2LTQ5LjU0Mi02NS4yODRjLTI1LjYxNC0xOS4wMzEtNTYuMTE0LTI5LjA5Ni04OC4yLTI5LjEwNGMtMC4wMSwwLTAuMDE3LDAtMC4wMjUsMCAgIGMtMjEuNjU0LDAtNDcuOTc2LDcuNTY2LTY4LjY5NywxOS43NDlDMTMuOTgxLDUxLjE5My0wLjAwNSw3MS4xNjMsMCw5Mi40OWMwLjAwOCwyNS43NDgsMTQuNTMsMzYuNTE4LDI2LjE5OSw0NS4xNzEgICBjOS41MTUsNy4wNTcsMTcuMDMsMTIuNjMsMTcuMDM0LDI0Ljg0NGMwLjAwMywxMi4yMTMtNy41MDgsMTcuNzgxLTE3LjAxOCwyNC44MzFjLTExLjY2NSw4LjY0OC0yNi4xODQsMTkuNDEyLTI2LjE3Niw0NS4xNjMgICBjMC4wMDYsMjEuMzI0LDE0LjAwMSw0MS4yOTksMzkuNDA2LDU2LjI0NGMyMC43MzYsMTIuMTk4LDQ3LjA3MiwxOS43OCw2OC43MywxOS43ODZjMC4wMTUsMCwwLjAyOCwwLDAuMDQyLDAgICBjMzkuMzA1LDAsNzYuMjU0LTE1LjE3MSwxMDQuMDQ0LTQyLjcyYzI3LjQzNi0yNy4xOTcsNDIuNjk1LTYzLjI0Niw0My4wOTYtMTAxLjY2MWM5LjMxNi0xMC42MDEsMTguMzQxLTIxLjEzOCwyNi41OC0zMS4wNjcgICBjMTQuMDk2LTE2Ljk4NiwyNC45MzUtMzEuMDAyLDMyLjIxNi00MS42NTdDMzIzLjc5OSw3Ny4zMTEsMzI4LjAyMyw2OC42NTUsMzIyLjc0NSw2My4zMzZ6IE0yMDMuODE0LDI1Ny4yODcgICBjLTI1LjUyOSwyNS4zMDgtNTkuNDc1LDM5LjI0Mi05NS41OTYsMzkuMjQyYy0wLjAxMSwwLTAuMDI3LDAtMC4wMzgsMGMtMzguNzA3LTAuMDExLTk2LjEzLTI2LjkwMy05Ni4xNDEtNjQuMDM0ICAgYy0wLjAwNi0xOS43MDcsMTAuMzU0LTI3LjM4OCwyMS4zMjMtMzUuNTJjMTAuMjUzLTcuNjAyLDIxLjg3NC0xNi4yMTgsMjEuODctMzQuNDc0Yy0wLjAwNi0xOC4yNTMtMTEuNjMtMjYuODc0LTIxLjg4Ni0zNC40NzkgICBDMjIuMzcyLDExOS44ODMsMTIuMDA2LDExMi4xOTYsMTIsOTIuNDg3Yy0wLjAwNS0yMi44MDEsMjAuOTYzLTM4LjUzMywzMy40NjMtNDUuODgyYzE4LjY5OC0xMC45OTMsNDMuMjczLTE4LjA5NCw2Mi42MTUtMTguMDk0ICAgYzAuMDA3LDAsMC4wMTUsMCwwLjAyMSwwYzI5LjQ5MSwwLjAwOCw1Ny41MTcsOS4yNTQsODEuMDQ4LDI2LjczNmMyMS43MDIsMTYuMTI1LDM4LjI2OCwzOC43NjEsNDYuOTk0LDY0LjA0OSAgIGMtMjYuMDI1LDIyLjcyNC01NC4yMDcsNDguOTI0LTc1LjE5NSw2OS45OGMtMzQuODU5LDQuNTEyLTM5LjYwOCwyNy43NDQtNDMuMDgsNDQuODExYy0yLjk1NiwxNC41MzItNC44NzUsMjEuNTU4LTE2LjA5MiwyMi40NTggICBjLTIuNzY0LDAuMjIyLTUuMDE1LDIuMzA4LTUuNDQ2LDUuMDQ3Yy0wLjQzMiwyLjczOCwxLjA2OSw1LjQxNiwzLjYzMSw2LjQ3N2MwLjcyMSwwLjI5OCwxNy44NzcsNy4zMDgsMzcuOTIxLDcuMzA5ICAgYzAuMDAzLDAsMC4wMDUsMCwwLjAwNywwYzEzLjk2OCwwLDI1Ljk1LTMuMzg2LDM1LjYxMi0xMC4wNjNjMTEuOTA2LTguMjI4LDE5Ljk3OS0yMS4yNzMsMjQuMDM2LTM4Ljc2NyAgIGMxMy43MTMtMTMuODc0LDI5LjM4Mi0zMC42MDQsNDQuODc2LTQ3LjgzN0MyMzguODQ1LDIwOC4zODEsMjI1LjQ1NiwyMzUuODMzLDIwMy44MTQsMjU3LjI4N3ogTTE4NS40OCwyMjUuNDEyICAgYy02LjM1OCwyNS4xOTYtMjIuMzU2LDM3Ljk2OC00Ny41OTQsMzcuOTY3YzAsMC0wLjAwNCwwLTAuMDA2LDBjLTYuNjU1LDAtMTMuMDI4LTAuOTA4LTE4LjM4Ni0yLjA0ICAgYzYuNC02LjUyNyw4LjM5OS0xNi4zNDksMTAuMTMtMjQuODU4YzMuMjk3LTE2LjIwOCw2LjQxNS0zMS41NDcsMzEuOTIzLTM1LjE5MUwxODUuNDgsMjI1LjQxMnogTTI2OC4zMzYsMTMwLjY1MiAgIGMtMjMuNzg1LDI4LjMzNy01Mi41NzUsNjAuMTU5LTc2LjI3NSw4NC4zNTRsLTMuNjY5LTMuNjk4bC0xNi4xODktMTYuMzE3YzIxLjQ4OC0yMS4zOSw0OS4wNTQtNDYuODk1LDc0Ljc3My02OS4yMTZsMCwwICAgYzIuOTk4LTIuNjAyLDUuOTc3LTUuMTcxLDguOTEzLTcuNjc1YzI5Ljg0Ny0yNS40NTUsNDUuNDg5LTM2LjUzMyw1My40NjgtNDEuMzU0QzMwNC41OTIsODQuNzczLDI5My42MTYsMTAwLjUzNCwyNjguMzM2LDEzMC42NTJ6ICAgIgogICBpZD0icGF0aDE4IgogICBzdHlsZT0iZmlsbDojZmZmZmZmIiAvPgo8L2c+CjxnCiAgIGlkPSJnMjIiPgo8L2c+CjxnCiAgIGlkPSJnMjQiPgo8L2c+CjxnCiAgIGlkPSJnMjYiPgo8L2c+CjxnCiAgIGlkPSJnMjgiPgo8L2c+CjxnCiAgIGlkPSJnMzAiPgo8L2c+CjxnCiAgIGlkPSJnMzIiPgo8L2c+CjxnCiAgIGlkPSJnMzQiPgo8L2c+CjxnCiAgIGlkPSJnMzYiPgo8L2c+CjxnCiAgIGlkPSJnMzgiPgo8L2c+CjxnCiAgIGlkPSJnNDAiPgo8L2c+CjxnCiAgIGlkPSJnNDIiPgo8L2c+CjxnCiAgIGlkPSJnNDQiPgo8L2c+CjxnCiAgIGlkPSJnNDYiPgo8L2c+CjxnCiAgIGlkPSJnNDgiPgo8L2c+CjxnCiAgIGlkPSJnNTAiPgo8L2c+Cjwvc3ZnPg=="); + content: var(--tw-content); +} + +.after\:content-draw::after { + --tw-content: "\e01e"; + content: var(--tw-content); +} + +.after\:content-eau::after { + --tw-content: "\e016"; + content: var(--tw-content); +} + +.after\:content-emwelt::after { + --tw-content: "\e04b"; + content: var(--tw-content); +} + +.after\:content-energie::after { + --tw-content: "\e048"; + content: var(--tw-content); +} + +.after\:content-geosciences::after { + --tw-content: "\e05b"; + content: var(--tw-content); +} + +.after\:content-go::after { + --tw-content: "\e00b"; + content: var(--tw-content); +} + +.after\:content-infos::after { + --tw-content: "\e01f"; + content: var(--tw-content); +} + +.after\:content-intranet-at::after { + --tw-content: "\e018"; + content: var(--tw-content); +} + +.after\:content-layers::after { + --tw-content: "\e00e"; + content: var(--tw-content); +} + +.after\:content-legends::after { + --tw-content: "\e041"; + content: var(--tw-content); +} + +.after\:content-lenoz::after { + --tw-content: "\e01A"; + content: var(--tw-content); +} + +.after\:content-lintgen::after { + --tw-content: "\e00c"; + content: var(--tw-content); +} + +.after\:content-logement::after { + --tw-content: "\e055"; + content: var(--tw-content); +} + +.after\:content-main::after { + --tw-content: "\e02d"; + content: var(--tw-content); +} + +.after\:content-measure::after { + --tw-content: "\e021"; + content: var(--tw-content); +} + +.after\:content-municipalities::after { + --tw-content: "\e042"; + content: var(--tw-content); +} + +.after\:content-mymaps::after { + --tw-content: "\e01d"; + content: var(--tw-content); +} + +.after\:content-np_our::after { + --tw-content: "\e005"; + content: var(--tw-content); +} + +.after\:content-pag::after { + --tw-content: "\e018"; + content: var(--tw-content); +} + +.after\:content-preizerdaul::after { + --tw-content: "\e00c"; + content: var(--tw-content); +} + +.after\:content-print::after { + --tw-content: "\e02f"; + content: var(--tw-content); +} + +.after\:content-prof::after { + --tw-content: "\e00a"; + content: var(--tw-content); +} + +.after\:content-remich::after { + --tw-content: "\e00c"; + content: var(--tw-content); +} + +.after\:content-routing::after { + --tw-content: "\e062"; + content: var(--tw-content); +} + +.after\:content-share::after { + --tw-content: "\e02a"; + content: var(--tw-content); +} + +.after\:content-sig_secours::after { + --tw-content: "\e00a"; + content: var(--tw-content); +} + +.after\:content-tourisme::after { + --tw-content: "\e04e"; + content: var(--tw-content); +} + +.after\:content-upload::after { + --tw-content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3C!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath style='fill:white;' d='M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V392c0 13.3 10.7 24 24 24s24-10.7 24-24V257.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z'/%3E%3C/svg%3E"); + content: var(--tw-content); +} + +.after\:content-urban_farming::after { + --tw-content: "\e054"; + content: var(--tw-content); +} + +.after\:content-wellenstein::after { + --tw-content: "\e00c"; + content: var(--tw-content); +} + +.hover\:bg-\[\#ccc\]:hover { + --tw-bg-opacity: 1; + background-color: rgb(204 204 204 / var(--tw-bg-opacity)); +} + +.hover\:bg-cyan-600:hover { + --tw-bg-opacity: 1; + background-color: rgb(8 145 178 / var(--tw-bg-opacity)); +} + +.hover\:bg-primary:hover { + background-color: var(--color-primary); +} + +.hover\:bg-white:hover { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.hover\:text-Amenagement_du_territoire-primary:hover { + color: var(--Amenagement_du_territoire-primary); +} + +.hover\:text-Environnement_humain-primary:hover { + color: var(--Environnement_humain-primary); +} + +.hover\:text-Environnement_naturel-primary:hover { + color: var(--Environnement_naturel-primary); +} + +.hover\:text-Occupation_du_sol-primary:hover { + color: var(--Occupation_du_sol-primary); +} + +.hover\:text-agriculture-primary:hover { + color: var(--agriculture-primary); +} + +.hover\:text-ahc-primary:hover { + color: var(--ahc-primary); +} + +.hover\:text-at-primary:hover { + color: var(--at-primary); +} + +.hover\:text-atlas_demographique-primary:hover { + color: var(--atlas_demographique-primary); +} + +.hover\:text-cadastre_hertzien-primary:hover { + color: var(--cadastre_hertzien-primary); +} + +.hover\:text-eau-primary:hover { + color: var(--eau-primary); +} + +.hover\:text-emwelt-primary:hover { + color: var(--emwelt-primary); +} + +.hover\:text-energie-primary:hover { + color: var(--energie-primary); +} + +.hover\:text-geosciences-primary:hover { + color: var(--geosciences-primary); +} + +.hover\:text-go-primary:hover { + color: var(--go-primary); +} + +.hover\:text-intranet-at-primary:hover { + color: var(--intranet-at-primary); +} + +.hover\:text-lenoz-primary:hover { + color: var(--lenoz-primary); +} + +.hover\:text-lintgen-primary:hover { + color: var(--lintgen-primary); +} + +.hover\:text-logement-primary:hover { + color: var(--logement-primary); +} + +.hover\:text-main-primary:hover { + color: var(--main-primary); +} + +.hover\:text-municipalities-primary:hover { + color: var(--municipalities-primary); +} + +.hover\:text-np_our-primary:hover { + color: var(--np_our-primary); +} + +.hover\:text-pag-primary:hover { + color: var(--pag-primary); +} + +.hover\:text-preizerdaul-primary:hover { + color: var(--preizerdaul-primary); +} + +.hover\:text-primary:hover { + color: var(--color-primary); +} + +.hover\:text-prof-primary:hover { + color: var(--prof-primary); +} + +.hover\:text-remich-primary:hover { + color: var(--remich-primary); +} + +.hover\:text-sig_secours-primary:hover { + color: var(--sig_secours-primary); +} + +.hover\:text-tourisme-primary:hover { + color: var(--tourisme-primary); +} + +.hover\:text-urban_farming-primary:hover { + color: var(--urban_farming-primary); +} + +.hover\:text-wellenstein-primary:hover { + color: var(--wellenstein-primary); +} + +.hover\:text-white:hover { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.hover\:underline:hover { + text-decoration-line: underline; +} + +.group:hover .group-hover\:text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +@media (min-width: 640px) { + + .sm\:static { + position: static; + } + + .sm\:block { + display: block; + } + + .sm\:flex { + display: flex; + } + + .sm\:h-14 { + height: 3.5rem; + } + + .sm\:h-full { + height: 100%; + } + + .sm\:w-16 { + width: 4rem; + } + + .sm\:w-64 { + width: 16rem; + } + + .sm\:w-80 { + width: 20rem; + } + + .sm\:w-full { + width: 100%; + } + + .sm\:flex-row { + flex-direction: row; + } + + .sm\:divide-x > :not([hidden]) ~ :not([hidden]) { + --tw-divide-x-reverse: 0; + border-right-width: calc(1px * var(--tw-divide-x-reverse)); + border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse))); + } + + .sm\:divide-y-0 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-y-reverse: 0; + border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse))); + border-bottom-width: calc(0px * var(--tw-divide-y-reverse)); + } + + .sm\:border-y-0 { + border-top-width: 0px; + border-bottom-width: 0px; + } + + .sm\:text-\[2rem\] { + font-size: 2rem; + } + + .sm\:text-base { + font-size: 1rem; + line-height: 1.5rem; + } + + .sm\:shadow-footer { + --tw-shadow: 0px 2px 6px 1px rgb(0 0 0 / 50%); + --tw-shadow-colored: 0px 2px 6px 1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + } +} + +@media (min-width: 768px) { + + .md\:flex-row { + flex-direction: row; + } + + .md\:bg-hybrid { + background-image: url('data:image/png;base64,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'); + } + + .md\:bg-ortho { + background-image: url('data:image/png;base64,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'); + } + + .md\:bg-route { + background-image: url('data:image/png;base64,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'); + } + + .md\:bg-topo { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAA6CAMAAAAHgr5qAAABvFBMVEWeypP////rii2SroaVkpKWko77+/t5yu+expKeuor76wBsaWVxbWl1cnKOnoKSko77//v/+/5duuPS0tHz8/R9ln2Gmn3j4+NJqtL39/fv7++trqp9fXXf39/b29uWlpOCfX3GdT2moqGGhm3r6+u6urrn5+fGxsaNi4mampZlYVmGgobCwsC2srKOjnFtaWnOzs7KyspRTUmqpqbX19e2zp6enpqSjo62traysrKGdXHv9OyGhnmaaWG+vr6inp6eroaaioK6bUH7///X19LG276yrq2qokG+17KenoKigmnz7+/v6+vj4N/b49ttoraqxqb39/Pn5+POzsqiop59cWnOuragnpyal5XjxhimmpZ9dXXO37q+vrqqqqbf7+/X6+eqvpamko6/ure6qqKmqqKeooZRZVlNSUWGwsZVcXnr0hDv9//r6+PFzMKypoaWknXCcUEcntLSwrqaurKGgn3z+/fK19++29Lb18a+26q9qZ26npaupo5ZpoauloIYlmEEjlXXxsKiln2piXxpZWHj19LK19KmysLKwq680KCOmopRiml5aV2GaVWOhqJhpp5FXU22ZUVBPTlEg8AhAAAMnUlEQVRYw22YB3fiRhSFZ3ZgLEUSSJaEDAKBBaJjqqlel7jEvbfYsXfXW7PpW9J77/UP540k7DjJPQaMjvh4uq/MCIQQEeEpxJ4+4xHS5jFd/+iHNYwHmx98/YbmpKp9xDRQsCU938CZT3jkairOvfQC6KV8EHTkBEBJEHsNwgNO4YQ4oCWE+E/g3aIsY4zXDw+XEff1U/jXFL5yScvWsWBrcGB5xUMTkZtg6JdLwWA4WKP7V+xgmKEn4RxBIrxA0GccAr0SjUYHi5Pc7Fuzb+1qWlacmGXfH5GEYAszvfLAQ3MiIS8zdjzMVGgGmBg66KEXmRuCIIkSeoCuibvz1keHhxcCzyESF0T9TewqMzU7dGTKdyTsKeAL7GEvaAGxsPk00FfQv7WJcTgCVy7GCTjioaNS6MqR9JUjLtuDwhND77iOgNEkXpVC3DXyJMWWwCMS8Q5Tj50aosHEEHPktQOGdqlB78VD41fgJDGEQCsRUdR5dKUBxgEJDfVsdHTkdYWhef8kSfcd6UDIDBr05aMHcE5EZCc/4DgiCVI8wvlBY7wr6pfoJyOjo2OvMzR6C4FcIz1HUmHQkOvHD+h3WcbiccC5wXCh+PP7k4jXCVnE+Dx+SR6DoOHPR3uK816NpDvM52vsTgl9+vmnzDaWJ24WudqlAwTOC6LUFiR+SIaIlVtjYy6an0VDrbqOlDqdwGXYLOSSdBO9//4gko6nQ5yeRg8Iu3x9NhllCeCILkTibthbY09GxkagT300+uwSHXmNJTIeCIc7PhnASWdu/AaaOzyBHm+EULqIHohphIRyrLgrT7JLEac4vhpBrz4ZHQEypfhdH30Vdki/SiSE64W83+3fuHED2evF9CxpADL9YLZBULoUK5zL8oDVVsRNFfl+DNCjiqLgkVEfjVag6Fm36VN+af+jZbr2nzcYem/BbvO/TLw121jh0g002divGIo8T7/jRSCDdHGDjo6OvicrGEIfowzNwt7F9EOov5CfyHAg6MOng+M3XDSl070yB1f2kLUz2nxUl2XKlIeiYeKkYJSxb91mJTKiaBJBoM/W5hUIWySfTHjjzw+5cA/IHhpjsXi+DcEVCRHT+nKjuV5eoFSm20D22N8EZYCOjbGnW3JWQEw/PpWpi55Nu4k89Tq8Z+Q98vgcwkbFSYHHBK5f1zl0p2MuyDBYlTeG5Hhe6kFRg98jt9/FWItnB4PBG/hwDYMhPDc7+5IfdjiQzCUmPPKLhUNEUzsx3BZ9DIHulhU6n2hT2WdH8tGWUIKihh6PlSShlI1qUrXYXHuKJ9HPD3nuwbAjA201t+qZcbNUSqFMahdjO7HslZIAHRKV6Y50TOfpG5NeB8kjY5JkyYBul7RsdQZLBS0jVA43tsmjh4hb8RK5GmhmnZs+WUqZ00jO3F3qbeAdDyNBhyxSbEtrCpbxu+7BSZa+ksAOFevH5aaIi7F53JPWP9r+Q3/IcVBZriNOtjA+JDeNWAzJgMAqlqNu3ISF/eGbgoWZ5nd+ikMrsqq+nchFYVbT+loygBsGXGhx7WnnPv+QcCso4oad71+SK7Fc4QgBGMtH8ETdEKUIW5n0ycXFARyrCwSmB+SPlbXMqjLaFrVYKpWticW1uRTek3riQdzvSA88fpCv1ds5jNEOhC2fWeV2eRH5K7vuzWgoBvgihgaNwaimVLGqpVpdie038nvF9UY2motHt/u6JL4GefTJUlvNA5jW0YasLVTYgLU3XWA1RKrESx82ReT54cJvU5prqJpk4bMojlVKxl8Nph9mwceXXhu/+Y5nhj29r2Ga68whJ+MPwuMNr6/j4tG2h45JIQ/t6YmGBTOzvh7DeaiQb3JrT3NaLbV+uI04ffyGIAhg9cFpdwZCbuVzlRNkKvvJoKvapFd/+agX/8Bxq/3VIRqWgSJTCmunYtGeX78Qc/d+OdR2SXr8xjhDj4upwn4GR00z++W9GdTMOElgw0g0WY1EBEHFA8/rwJSPHjqiQGYTZUWhGEQNsX+4Pi/Ts5tu+/26+oFSq1gUG+1a7MuPjzOosneegh3JTKUVY/NfOK9a86xYJncpjLh/GjJKFaooTooyzStqKv8t/LN28qKfv7npHbaXaNpG5t7hTA0jO+ekmmcGhfJm6Kqa72G8uTmQcVQ4W55kBXIN3TlmZJnmxBl4T605oLpRn2TPkufmfieXbX38pVPBMVRYoBrb5nnozelMwMSeaNPC8uD7SzTMVSi/0pICRKMkdBm5t+qTv10w20cz5enyUfvuiarOKLSAgnYQrsOqnFWwuf1Tzq4n1Zrj2GV8P/mBFbNvPRnZ2no8dFuhmlQHZFcsZfE81ebGfTOCFDOxEGOFbiIfw46DohXRioYLGU10aO8Um5l6tyTjorkcechZ5unIyOOtkYdbPhqsFTaUbEq8z8xJDMkvmmrHrNVqe3vNSlaRO50ErrVbCHdMXC/KCVm0cfmRlcGJhkbfbHBIEnmt+Gxs6+EIi5ptb5ghNUnbeSXCb8NKOT0046AXyyyQSMR0ujW74OC1aWzkW3eRXFRjpwWMd4qVO0hqoPv5qWVYchAqRpD56P1R4fHWqwz83vsUpoiyJHrjdzE6rIx3+p2kmrV4QnhL/Uhd6GhQJsf13AVKFKO0Md1K3C9yPOIaEdQgiCumEf+I4/LCrdHGlmvFrZ6Yh8/Q0hTnovnV4ZhLBQPh/YSxTQjZbqottZnA2OzuXdxFttDKSE42JvFI55FAUEPn0oCPPOKJnjwae/x45FUIOyP+JpYx3oATmEI3fTNWS2zLG17aeBPQE2VVVQstXEvWTpbqqHxqYO28d7YLnajrOnyqSEiD54igI5JPjL76+PctaMSMJAl1HM3HXfLEZZsYNrsDKOQWeCCHiKpO79NoPjdjV0ooamFPryBPfAjpAvHmatvyS1rG2d4efEbi2RnpYWU0Nc27Oypbd0gI0I6az2J7upJK5Q2EuzFWjGoCuttVaAoVddjfcAyi3R5zncbz8zA+8iIjk0szkpqmZeqFSjJZsepQIiFCyuc4U8hddGyKEbYMGIKFYKHsh004ouscL0mMvYjfgw3IbQyCBogzcmRoRj8cLmuxTKZlOGVL5Uk6BCJd3F2aew6DNYcyWXiJwUydHvhRS54vonvxm5S+TmGVxAuSSDg43B+a8TwZKGSBnDUSltXaI5EJAJN0AceadhbTdhMl6zaE1A4El/DyEO2x48yUeAHAeGMpLuicF7Jfc6EkpK+ynslmEwnLudO6P0GY4kICg7L57gUKmN0oxmXIsrbpGQJOeIqIQlwXCupMqupbfzDuk9M8xwcLgUAtC0FDCmHnR1zp0oFdr5vJu3N5FCjYkEcL0qzCRgvEVXkfzW4+qrB6VHX+ejG/k+ZAPFcwgbygsooGsifhfK7bnT45MKOoHVhi6y+gl+TNa2hfRJjyvic9fmkGctE8t2AYZXKNTMSjj617cyULU1R31tmArsC6u5SZ/C+aVD0yWR2GPMV7ZNAd1wzy9tvkCt2/e3JwruGYjQA7DZlagLDDe8sMLfDXyLob8mXJreboB0MyIfBwu3AoqSoJc6k6xrXCxy4azI4FQJXNf6Mjon7NjHdgsLei33loHwfkK7Qgikca1pqmtcTQCTBbMVm/ZlxDyBDMOh65/eeTV7s0ZgfUnR/5/yFHwJnV07iKsRoom8ddhEFNeNTbZm2doVFcHxaIJLrkKzMSlDoQgRHb/i95qnqQ7qdKMRw1S/mmSrGL7lHo42zLMev/RBPJ7UfuH8NIoTX2Q8qMkdn+jxt6tVoVgZyQAmXoFFoDtAx53O2azkLU263G/cQJ7tQnQ/LNHKyMjvd7xxJbVa6TQ2lRlJ5DzHUNgjXMQAkZeGdh/yinUZywZbzo/oLi7ljF0LU2mUvQhLHv378VWu7oD12R3z4QJKkTw0zadN5s9SZQyayAL5iC4496gGbU4e3olc3vtD/94hnzgoHbzdZGbWYvdNUo0oEgSKczbNtWL3eCOSMRnlhBZyr2VTstJoZoxDEwf2lG99kXnw/vZnvWhqGWLi7und3xyemqIKX6QHaOKs2Tk4SRSL69wiPc1Hy0YVe+WXbRnJ/HX4czv6U8++KLn13wcTlrbFjtub0WrIO5+8yWflWU+kBWbLNmBpYSCaM5tUK+Qji2pAzRuF0UtjfLEPW1mstrVL79+eefOrAMHqsGjLqZi7uqpzdn02JVSgFZwc5S5TgQOKoZPUaeRQrOtS7R6iMJsiDw/gD1a05+Y3JAoztaxg4HHCCr9r17rdZevQ7ou31BPO1/3Z+h2NnveYaV+yvk7QcTfwOKOfWHXhJ3pwAAAABJRU5ErkJggg=='); + } + + .md\:bg-topo_bw { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAA6CAYAAAAwXE5YAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAB5/SURBVHheddv581fTHwfw+7f5oYyUoYlJshVJqESlyBJaKJKihSJLCyoUZV9KtohIlmixVoSSteP7eM08m/c0vmfmzr3ve895ndfr+Xq+nufc+6nu2WefbS+++GK7995721VXXdXWrFnTXnrppTpmzpzZxowZ01544YU6nnrqqXbfffe11atXt7Vr17ZXXnml7dq1q/3222/t999/b4cPH25Hjx5tzzzzTNu8eXP78ssv65n2119/tb1797Z33nmnrVy5sn3yySdt3759bePGje32229vF154YZ3XrVvXXn/99fbcc8+1FStWtPXr17dff/217B46dKi99957bdKkSW3atGlt+/btde+HH34oOw8//HDbsGFDXT/99NPtySefbC+//HL9vummm9r1119fMdx2223t448/bu+//3757zx79uzCYNasWW3+/PntjjvuaHPnzm2rVq0qHx544IHqM2/evHbXXXfVsWjRonbnnXe2OXPm1NkY13fffffxgw19O04ARoDjx4+vIADpPuPu+S0A56VLlzbJcQDjww8/LBC0Y8eOtb///vs4qG+//XZ79dVXK1j2H3zwwZrcPf00Y++///522WWXlbPs8odt1xK/ZcuWtnv37no+YcKE9vzzz7c9e/bU+D///LP9888/lcB77rmnSAMYNoAqDvMvXry4jR49uuKQ0DfeeKN8R4atW7e2xx9/vIBELvM4+KvfRx99VP4DTCICnlic/QZwAP9PoLHnsccea6+99lplVMC33HJLMReoN954Y3XEkEcffbSCEIAzEATyxRdftF9++eU4ow8ePNh27txZQWPEQw89VAfGPfLII8eZfuTIkfbVV1/VfNhmTqBgomrxW7DAxXhMAzoWmwPImsTyX6UABMiSAVS/2QIk0rAnLr8BiNkffPBBe/PNN8sPSQAOwDBUgpYvX16+uBdAgeg5hrvmm/P/Bfqzzz4rEDkHvAULFrRhw4a1cePGtWuuuaZdffXVdfZ84cKFxTLOYyWQgS0gDGQnicg9Z2PcF5xAnUkTtmDIxRdfXNUi6cByXHvtteXDBRdcUMErbw17NdWjkRXl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'); + } +} + +@media (min-width: 1024px) { + + .lg\:inline-block { + display: inline-block; + } + + .lg\:flex { + display: flex; + } +} + +@media only screen and (min-device-pixel-ratio: 1.25), only screen and ( min-resolution: 200dpi), only screen and ( min-resolution: 1.25dppx) { + + .hd\:bg-hybrid_sm_hi { + background-image: url('data:image/png;base64,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'); + } + + .hd\:bg-ortho_sm_hi { + background-image: url('data:image/png;base64,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'); + } + + .hd\:bg-route_sm_hi { + background-image: url('data:image/png;base64,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'); + } + + .hd\:bg-topo_bw_sm_hi { + background-image: url('data:image/png;base64,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'); + } + + .hd\:bg-topo_sm_hi { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAABSCAMAAADw8nOpAAADAFBMVEX///////uXkY/7+/uSk46UkpOds4r5/v+cy5FraWf8//z5+Pn++v75/vb/+/n29vWWkIqdw5OYs4ZIRUWXkZajyJqlzJShypLi5OLe3dv0//+qyJyZmJvriDft///+9/aOjYymxpSZwova19X87RaqvpvmjUDk//970v708vH25iT76A+jv46cq4ahtJBlY2JnaFtRT030/vdapcairYrbikf+7iDz7Oucl5SXrobXhDrb/v///vX++u/n6ev77TaixY590vXq5uNSq9Kgv5utxJKVy5Garo/ujUDnhi51zPmPkJeann98eXeJlHV3dG9rc13Jx8Kd0JiXmpN+zPT78e7Av72wypmhrJapupHRk1vOzMuxwp+inZuUlICOnHxybWzujDbviCx4y/Cl0Jnik03iiDrngTPt8O7zjjfl39q7t7Spro/SjlH3jzv1+fyIhYNDRT3kfidzcR9u1Pva3s6rx6amwaKnsp2QooGAfn59j3WChWfcklVdbVX260zsgSnl6N5mn7aiy6C2wJOMlYaTqYDghTB+yurR1MmxsLBtdmmveUqcbkhfr9CozqKxzaKNmm2D1/2Th3J8fmCOaEX2k0P0hjWIYjOG0PNuyfH98OFateCnpKS8xqBib2Px51yLjVeFZErT0dLC17w/kbG2vKqSh4HXmmV8XUPu4zzz5Q7s7eRHo8rQ3sZ3qbuTn4qgpHBfXVq04/Xw/uzd6NRPn8GgnoqfkISdknByhmjMiEuFgEmEckbskzs9PTnq+fzZy8GdgGGkcDySYzl4Yy3Q/f+MdF/tk0uxdzp1bzrC7/5urspBiKOXbTKO0OmWy62wqafBsqC7pJCsrH5vbXbz6293YVaBbzaLgSoiKhni89yOyNpRl6/jmlpleFbXzVSRb1T93kafmjOQycanej9SqLqotoRUa4D97GKpokHPky6dz+HSxbK6fk7d8/723cqCtMi1zLPHlW3j02PCilxYiaBbZ0vOx0ZuwrqyvIPFuE6nk0vntTqQqLnhwZqZtT3VAAAXcklEQVRYwzzVb2gScRgH8Js702xXXngneHJ5omin0diFGAYqNw2cDHOEDcxedC8iBgUuRxQKrgU10Ln1piXmYBZs2SqX/cHANy3YH9qLGI0mCxpG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'); + } +} + +@media only screen and (min-device-pixel-ratio: 1.25) and (min-width: 768px), only screen and ( min-resolution: 200dpi) and (min-width: 768px), only screen and ( min-resolution: 1.25dppx) and (min-width: 768px) { + + .hd_md\:bg-hybrid_hi { + background-image: url('data:image/png;base64,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'); + } + + .hd_md\:bg-ortho_hi { + background-image: url('data:image/png;base64,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'); + } + + .hd_md\:bg-route_hi { + background-image: url('data:image/png;base64,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'); + } + + .hd_md\:bg-topo_bw_hi { + background-image: url('data:image/png;base64,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'); + } + + .hd_md\:bg-topo_hi { + background-image: url('data:image/png;base64,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'); + } +} diff --git a/package-lock.json b/package-lock.json index 2a2ee22f..05ccb52f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@camptocamp/ogc-client": "^0.3.4", "file-saver": "^2.0.5", - "maplibre-gl": "^3.2.2", + "mapbox-gl": "^1.7.0", "ol": "^6.5.0", "pinia": "^2.0.26", "sortablejs": "^1.15.0", @@ -2596,6 +2596,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@mapbox/geojson-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", + "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==" + }, "node_modules/@mapbox/jsonlint-lines-primitives": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", @@ -2625,10 +2630,13 @@ "gl-style-validate": "bin/gl-style-validate.js" } }, - "node_modules/@mapbox/mapbox-gl-style-spec/node_modules/@mapbox/unitbezier": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", - "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==" + "node_modules/@mapbox/mapbox-gl-supported": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", + "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==", + "peerDependencies": { + "mapbox-gl": ">=0.32.1 <2.0.0" + } }, "node_modules/@mapbox/point-geometry": { "version": "0.1.0", @@ -2636,14 +2644,14 @@ "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==" }, "node_modules/@mapbox/tiny-sdf": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", - "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz", + "integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==" }, "node_modules/@mapbox/unitbezier": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", - "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==" + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", + "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==" }, "node_modules/@mapbox/vector-tile": { "version": "1.3.1", @@ -2661,61 +2669,6 @@ "node": ">=6.0.0" } }, - "node_modules/@maplibre/maplibre-gl-style-spec": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-19.3.0.tgz", - "integrity": "sha512-ZbhX9CTV+Z7vHwkRIasDOwTSzr76e8Q6a55RMsAibjyX6+P0ZNL1qAKNzOjjBDP3+aEfNMl7hHo5knuY6pTAUQ==", - "dependencies": { - "@mapbox/jsonlint-lines-primitives": "~2.0.2", - "@mapbox/unitbezier": "^0.0.1", - "json-stringify-pretty-compact": "^3.0.0", - "minimist": "^1.2.8", - "rw": "^1.3.3", - "sort-object": "^3.0.3" - }, - "bin": { - "gl-style-format": "dist/gl-style-format.mjs", - "gl-style-migrate": "dist/gl-style-migrate.mjs", - "gl-style-validate": "dist/gl-style-validate.mjs" - } - }, - "node_modules/@maplibre/maplibre-gl-style-spec/node_modules/json-stringify-pretty-compact": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz", - "integrity": "sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA==" - }, - "node_modules/@maplibre/maplibre-gl-style-spec/node_modules/sort-asc": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz", - "integrity": "sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@maplibre/maplibre-gl-style-spec/node_modules/sort-desc": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz", - "integrity": "sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@maplibre/maplibre-gl-style-spec/node_modules/sort-object": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.3.tgz", - "integrity": "sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==", - "dependencies": { - "bytewise": "^1.1.0", - "get-value": "^2.0.2", - "is-extendable": "^0.1.1", - "sort-asc": "^0.2.0", - "sort-desc": "^0.2.0", - "union-value": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2851,11 +2804,6 @@ "dev": true, "peer": true }, - "node_modules/@types/geojson": { - "version": "7946.0.10", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", - "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==" - }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -2879,21 +2827,6 @@ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, - "node_modules/@types/mapbox__point-geometry": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.2.tgz", - "integrity": "sha512-D0lgCq+3VWV85ey1MZVkE8ZveyuvW5VAfuahVTQRpXFQTxw03SuIf1/K4UQ87MMIXVKzpFjXFiFMZzLj2kU+iA==" - }, - "node_modules/@types/mapbox__vector-tile": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.0.tgz", - "integrity": "sha512-kDwVreQO5V4c8yAxzZVQLE5tyWF+IPToAanloQaSnwfXmIcJ7cyOrv8z4Ft4y7PsLYmhWXmON8MBV8RX0Rgr8g==", - "dependencies": { - "@types/geojson": "*", - "@types/mapbox__point-geometry": "*", - "@types/pbf": "*" - } - }, "node_modules/@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -2906,11 +2839,6 @@ "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==", "dev": true }, - "node_modules/@types/pbf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.2.tgz", - "integrity": "sha512-EDrLIPaPXOZqDjrkzxxbX7UlJSeQVgah3i0aA4pOSzmK9zq3BIh7/MZIQxED7slJByvKM4Gc6Hypyu2lJzh3SQ==" - }, "node_modules/@types/proj4": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/@types/proj4/-/proj4-2.5.2.tgz", @@ -2941,14 +2869,6 @@ "integrity": "sha512-qrhtM7M41EhH4tZQTNw2/RJkxllBx3reiJpTbgWCM2Dx0U1sZ6LwKp9lfNln9uqE26ZMKUaPEYaD4rzvOWYtZw==", "dev": true }, - "node_modules/@types/supercluster": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.0.tgz", - "integrity": "sha512-6JapQ2GmEkH66r23BK49I+u6zczVDGTtiJEVvKDYZVSm/vepWaJuTq6BXzJ6I4agG5s8vA1KM7m/gXWDg03O4Q==", - "dependencies": { - "@types/geojson": "*" - } - }, "node_modules/@types/symlink-or-copy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@types/symlink-or-copy/-/symlink-or-copy-1.2.0.tgz", @@ -4098,14 +4018,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -4142,14 +4054,6 @@ "node": "*" } }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -4531,23 +4435,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/bytewise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz", - "integrity": "sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==", - "dependencies": { - "bytewise-core": "^1.2.2", - "typewise": "^1.0.3" - } - }, - "node_modules/bytewise-core": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz", - "integrity": "sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==", - "dependencies": { - "typewise-core": "^1.2" - } - }, "node_modules/c8": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/c8/-/c8-7.13.0.tgz", @@ -6785,17 +6672,6 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -7399,14 +7275,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/getos": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", @@ -7596,35 +7464,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -7693,6 +7532,11 @@ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, + "node_modules/grid-index": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", + "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" + }, "node_modules/gulp-sort": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/gulp-sort/-/gulp-sort-2.0.0.tgz", @@ -8364,14 +8208,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -8484,17 +8320,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", @@ -8677,15 +8502,8 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true }, "node_modules/isstream": { "version": "0.1.2", @@ -9090,17 +8908,9 @@ } }, "node_modules/kdbush": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", - "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==" - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", + "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" }, "node_modules/lazy-ass": { "version": "1.6.0", @@ -9710,50 +9520,43 @@ "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", "dev": true }, - "node_modules/mapbox-to-css-font": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.2.tgz", - "integrity": "sha512-f+NBjJJY4T3dHtlEz1wCG7YFlkODEjFIYlxDdLIDMNpkSksqTt+l/d4rjuwItxuzkuMFvPyrjzV2lxRM4ePcIA==" - }, - "node_modules/maplibre-gl": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-3.2.2.tgz", - "integrity": "sha512-YCnQZgAlUUyBmPB1umubmmFaiGMyVHRGTe/vNjPDcamlzkgjR4Ouw4pHgciXsxD1ZOr7cjrq3QPyMqrORCMBKQ==", + "node_modules/mapbox-gl": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.13.3.tgz", + "integrity": "sha512-p8lJFEiqmEQlyv+DQxFAOG/XPWN0Wp7j/Psq93Zywz7qt9CcUKFYDBOoOEKzqe6gudHVJY8/Bhqw6VDpX2lSBg==", "dependencies": { "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/geojson-types": "^1.0.2", "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/mapbox-gl-supported": "^1.5.0", "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^2.0.6", - "@mapbox/unitbezier": "^0.0.1", + "@mapbox/tiny-sdf": "^1.1.1", + "@mapbox/unitbezier": "^0.0.0", "@mapbox/vector-tile": "^1.3.1", "@mapbox/whoots-js": "^3.1.0", - "@maplibre/maplibre-gl-style-spec": "^19.2.2", - "@types/geojson": "^7946.0.10", - "@types/mapbox__point-geometry": "^0.1.2", - "@types/mapbox__vector-tile": "^1.3.0", - "@types/pbf": "^3.0.2", - "@types/supercluster": "^7.1.0", - "earcut": "^2.2.4", + "csscolorparser": "~1.0.3", + "earcut": "^2.2.2", "geojson-vt": "^3.2.1", - "gl-matrix": "^3.4.3", - "global-prefix": "^3.0.0", - "kdbush": "^4.0.2", + "gl-matrix": "^3.2.1", + "grid-index": "^1.1.0", "murmurhash-js": "^1.0.0", "pbf": "^3.2.1", - "potpack": "^2.0.0", + "potpack": "^1.0.1", "quickselect": "^2.0.0", - "supercluster": "^8.0.1", + "rw": "^1.3.3", + "supercluster": "^7.1.0", "tinyqueue": "^2.0.3", - "vt-pbf": "^3.1.3" + "vt-pbf": "^3.1.1" }, "engines": { - "node": ">=16.14.0", - "npm": ">=8.1.0" - }, - "funding": { - "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" + "node": ">=6.4.0" } }, + "node_modules/mapbox-to-css-font": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.2.tgz", + "integrity": "sha512-f+NBjJJY4T3dHtlEz1wCG7YFlkODEjFIYlxDdLIDMNpkSksqTt+l/d4rjuwItxuzkuMFvPyrjzV2lxRM4ePcIA==" + }, "node_modules/matcher-collection": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/matcher-collection/-/matcher-collection-2.0.1.tgz", @@ -11113,9 +10916,9 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/potpack": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", - "integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", + "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==" }, "node_modules/prelude-ls": { "version": "1.2.1", @@ -12008,20 +11811,6 @@ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -12256,40 +12045,6 @@ "node": "*" } }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -12561,11 +12316,11 @@ } }, "node_modules/supercluster": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", - "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", + "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", "dependencies": { - "kdbush": "^4.0.2" + "kdbush": "^3.0.0" } }, "node_modules/supports-color": { @@ -13135,19 +12890,6 @@ "node": ">=4.2.0" } }, - "node_modules/typewise": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", - "integrity": "sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==", - "dependencies": { - "typewise-core": "^1.2.0" - } - }, - "node_modules/typewise-core": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz", - "integrity": "sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==" - }, "node_modules/ufo": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.1.tgz", @@ -13241,20 +12983,6 @@ "node": ">=4" } }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/unique-stream": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", @@ -16117,6 +15845,11 @@ } } }, + "@mapbox/geojson-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", + "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==" + }, "@mapbox/jsonlint-lines-primitives": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", @@ -16135,29 +15868,28 @@ "minimist": "^1.2.6", "rw": "^1.3.3", "sort-object": "^0.3.2" - }, - "dependencies": { - "@mapbox/unitbezier": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", - "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==" - } } }, + "@mapbox/mapbox-gl-supported": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", + "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==", + "requires": {} + }, "@mapbox/point-geometry": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==" }, "@mapbox/tiny-sdf": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", - "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz", + "integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==" }, "@mapbox/unitbezier": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", - "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==" + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", + "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==" }, "@mapbox/vector-tile": { "version": "1.3.1", @@ -16172,49 +15904,6 @@ "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==" }, - "@maplibre/maplibre-gl-style-spec": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-19.3.0.tgz", - "integrity": "sha512-ZbhX9CTV+Z7vHwkRIasDOwTSzr76e8Q6a55RMsAibjyX6+P0ZNL1qAKNzOjjBDP3+aEfNMl7hHo5knuY6pTAUQ==", - "requires": { - "@mapbox/jsonlint-lines-primitives": "~2.0.2", - "@mapbox/unitbezier": "^0.0.1", - "json-stringify-pretty-compact": "^3.0.0", - "minimist": "^1.2.8", - "rw": "^1.3.3", - "sort-object": "^3.0.3" - }, - "dependencies": { - "json-stringify-pretty-compact": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz", - "integrity": "sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA==" - }, - "sort-asc": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz", - "integrity": "sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==" - }, - "sort-desc": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz", - "integrity": "sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w==" - }, - "sort-object": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.3.tgz", - "integrity": "sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==", - "requires": { - "bytewise": "^1.1.0", - "get-value": "^2.0.2", - "is-extendable": "^0.1.1", - "sort-asc": "^0.2.0", - "sort-desc": "^0.2.0", - "union-value": "^1.0.1" - } - } - } - }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -16329,11 +16018,6 @@ "dev": true, "peer": true }, - "@types/geojson": { - "version": "7946.0.10", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", - "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==" - }, "@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -16357,21 +16041,6 @@ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, - "@types/mapbox__point-geometry": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.2.tgz", - "integrity": "sha512-D0lgCq+3VWV85ey1MZVkE8ZveyuvW5VAfuahVTQRpXFQTxw03SuIf1/K4UQ87MMIXVKzpFjXFiFMZzLj2kU+iA==" - }, - "@types/mapbox__vector-tile": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.0.tgz", - "integrity": "sha512-kDwVreQO5V4c8yAxzZVQLE5tyWF+IPToAanloQaSnwfXmIcJ7cyOrv8z4Ft4y7PsLYmhWXmON8MBV8RX0Rgr8g==", - "requires": { - "@types/geojson": "*", - "@types/mapbox__point-geometry": "*", - "@types/pbf": "*" - } - }, "@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -16384,11 +16053,6 @@ "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==", "dev": true }, - "@types/pbf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.2.tgz", - "integrity": "sha512-EDrLIPaPXOZqDjrkzxxbX7UlJSeQVgah3i0aA4pOSzmK9zq3BIh7/MZIQxED7slJByvKM4Gc6Hypyu2lJzh3SQ==" - }, "@types/proj4": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/@types/proj4/-/proj4-2.5.2.tgz", @@ -16419,14 +16083,6 @@ "integrity": "sha512-qrhtM7M41EhH4tZQTNw2/RJkxllBx3reiJpTbgWCM2Dx0U1sZ6LwKp9lfNln9uqE26ZMKUaPEYaD4rzvOWYtZw==", "dev": true }, - "@types/supercluster": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.0.tgz", - "integrity": "sha512-6JapQ2GmEkH66r23BK49I+u6zczVDGTtiJEVvKDYZVSm/vepWaJuTq6BXzJ6I4agG5s8vA1KM7m/gXWDg03O4Q==", - "requires": { - "@types/geojson": "*" - } - }, "@types/symlink-or-copy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@types/symlink-or-copy/-/symlink-or-copy-1.2.0.tgz", @@ -17299,11 +16955,6 @@ "sprintf-js": "~1.0.2" } }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==" - }, "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -17331,11 +16982,6 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==" - }, "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -17613,23 +17259,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "bytewise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz", - "integrity": "sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==", - "requires": { - "bytewise-core": "^1.2.2", - "typewise": "^1.0.3" - } - }, - "bytewise-core": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz", - "integrity": "sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==", - "requires": { - "typewise-core": "^1.2" - } - }, "c8": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/c8/-/c8-7.13.0.tgz", @@ -19254,14 +18883,6 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "requires": { - "is-extendable": "^0.1.0" - } - }, "extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -19733,11 +19354,6 @@ "get-intrinsic": "^1.1.1" } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==" - }, "getos": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", @@ -19901,31 +19517,6 @@ "ini": "2.0.0" } }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -19976,6 +19567,11 @@ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, + "grid-index": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", + "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" + }, "gulp-sort": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/gulp-sort/-/gulp-sort-2.0.0.tgz", @@ -20476,11 +20072,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -20548,14 +20139,6 @@ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "dev": true }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, "is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", @@ -20684,12 +20267,8 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true }, "isstream": { "version": "0.1.2", @@ -21012,14 +20591,9 @@ } }, "kdbush": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", - "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==" - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", + "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" }, "lazy-ass": { "version": "1.6.0", @@ -21460,43 +21034,40 @@ "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", "dev": true }, - "mapbox-to-css-font": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.2.tgz", - "integrity": "sha512-f+NBjJJY4T3dHtlEz1wCG7YFlkODEjFIYlxDdLIDMNpkSksqTt+l/d4rjuwItxuzkuMFvPyrjzV2lxRM4ePcIA==" - }, - "maplibre-gl": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-3.2.2.tgz", - "integrity": "sha512-YCnQZgAlUUyBmPB1umubmmFaiGMyVHRGTe/vNjPDcamlzkgjR4Ouw4pHgciXsxD1ZOr7cjrq3QPyMqrORCMBKQ==", + "mapbox-gl": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.13.3.tgz", + "integrity": "sha512-p8lJFEiqmEQlyv+DQxFAOG/XPWN0Wp7j/Psq93Zywz7qt9CcUKFYDBOoOEKzqe6gudHVJY8/Bhqw6VDpX2lSBg==", "requires": { "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/geojson-types": "^1.0.2", "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/mapbox-gl-supported": "^1.5.0", "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^2.0.6", - "@mapbox/unitbezier": "^0.0.1", + "@mapbox/tiny-sdf": "^1.1.1", + "@mapbox/unitbezier": "^0.0.0", "@mapbox/vector-tile": "^1.3.1", "@mapbox/whoots-js": "^3.1.0", - "@maplibre/maplibre-gl-style-spec": "^19.2.2", - "@types/geojson": "^7946.0.10", - "@types/mapbox__point-geometry": "^0.1.2", - "@types/mapbox__vector-tile": "^1.3.0", - "@types/pbf": "^3.0.2", - "@types/supercluster": "^7.1.0", - "earcut": "^2.2.4", + "csscolorparser": "~1.0.3", + "earcut": "^2.2.2", "geojson-vt": "^3.2.1", - "gl-matrix": "^3.4.3", - "global-prefix": "^3.0.0", - "kdbush": "^4.0.2", + "gl-matrix": "^3.2.1", + "grid-index": "^1.1.0", "murmurhash-js": "^1.0.0", "pbf": "^3.2.1", - "potpack": "^2.0.0", + "potpack": "^1.0.1", "quickselect": "^2.0.0", - "supercluster": "^8.0.1", + "rw": "^1.3.3", + "supercluster": "^7.1.0", "tinyqueue": "^2.0.3", - "vt-pbf": "^3.1.3" + "vt-pbf": "^3.1.1" } }, + "mapbox-to-css-font": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.2.tgz", + "integrity": "sha512-f+NBjJJY4T3dHtlEz1wCG7YFlkODEjFIYlxDdLIDMNpkSksqTt+l/d4rjuwItxuzkuMFvPyrjzV2lxRM4ePcIA==" + }, "matcher-collection": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/matcher-collection/-/matcher-collection-2.0.1.tgz", @@ -22516,9 +22087,9 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "potpack": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", - "integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", + "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==" }, "prelude-ls": { "version": "1.2.1", @@ -23212,17 +22783,6 @@ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - } - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -23404,33 +22964,6 @@ "through": "2" } }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -23636,11 +23169,11 @@ } }, "supercluster": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", - "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", + "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", "requires": { - "kdbush": "^4.0.2" + "kdbush": "^3.0.0" } }, "supports-color": { @@ -24095,19 +23628,6 @@ "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "devOptional": true }, - "typewise": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", - "integrity": "sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==", - "requires": { - "typewise-core": "^1.2.0" - } - }, - "typewise-core": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz", - "integrity": "sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==" - }, "ufo": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.1.tgz", @@ -24182,17 +23702,6 @@ "dev": true, "peer": true }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, "unique-stream": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", diff --git a/package.json b/package.json index dc7e2990..7d99ec93 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@camptocamp/ogc-client": "^0.3.4", "file-saver": "^2.0.5", - "maplibre-gl": "^3.2.2", + "mapbox-gl": "^1.7.0", "ol": "^6.5.0", "pinia": "^2.0.26", "sortablejs": "^1.15.0", diff --git a/src/App.vue b/src/App.vue index ef20ab8d..7323a448 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,6 +2,7 @@ import { onMounted, onUnmounted, watch } from 'vue' import { storeToRefs } from 'pinia' import MapLibreLayer from '@/lib/ol-maplibre-layer' +import olLayerGroup from 'ol/layer/Group.js' import { MapLibreLayerType } from './composables/map/map.model' import HeaderBar from './components/header/header-bar.vue' @@ -44,6 +45,15 @@ watch(layersOpen, () => onMounted(() => window.addEventListener('resize', resizeMap)) onUnmounted(() => window.removeEventListener('resize', resizeMap)) +function traverseLayer(layer, ancestors, visitor) { + const descend = visitor(layer, ancestors) + if (descend && layer instanceof olLayerGroup) { + layer.getLayers().forEach(childLayer => { + traverseLayer(childLayer, [...ancestors, layer], visitor) + }) + } +} + function resizeMap() { // Update all canvas size when layer panel is opened/closed const map = useMap().getOlMap() @@ -52,10 +62,12 @@ function resizeMap() { map.updateSize() // And trigger update MapLibre layers' canvas size - map.getAllLayers().forEach(layer => { + // map.getAllLayers().forEach(layer => { + traverseLayer(map.getLayerGroup(), [], layer => { if (layer instanceof MapLibreLayer) { ;(layer as MapLibreLayerType).maplibreMap.resize() } + return true }) // TODO: Add slide effect and do this update after slide animation ends diff --git a/src/bundle/lib.ts b/src/bundle/lib.ts index 07eed554..b80f7d53 100644 --- a/src/bundle/lib.ts +++ b/src/bundle/lib.ts @@ -19,6 +19,7 @@ import FooterBar from '@/components/footer/footer-bar.vue' import LayerPanel from '@/components/layer-panel/layer-panel.vue' import SliderComparator from '@/components/slider/slider-comparator.vue' import useMap from '@/composables/map/map.composable' +import useOpenLayers from '@/composables/map/ol.composable' import { useAppStore } from '@/stores/app.store' import { useMapStore } from '@/stores/map.store' import { useThemeStore } from '@/stores/config.store' @@ -94,6 +95,7 @@ export { LayerPanel, SliderComparator, useMap, + useOpenLayers, useAppStore, useMapStore, useThemeStore, diff --git a/src/composables/map/ol.composable.ts b/src/composables/map/ol.composable.ts index f3dadb94..bb40ce33 100644 --- a/src/composables/map/ol.composable.ts +++ b/src/composables/map/ol.composable.ts @@ -114,7 +114,6 @@ function createVectorLayer( const options = Object.assign( { container: mapService.getOlMap().getTarget(), - map: mapService.getOlMap(), }, styleSource ) diff --git a/src/lib/ol-maplibre-layer.js b/src/lib/ol-maplibre-layer.js index 87055096..c7f10c35 100644 --- a/src/lib/ol-maplibre-layer.js +++ b/src/lib/ol-maplibre-layer.js @@ -1,124 +1,117 @@ import Layer from 'ol/layer/Layer' import { toDegrees } from 'ol/math' -import { toLonLat } from 'ol/proj' +import { toLonLat } from 'ol/proj.js' -import maplibregl from 'maplibre-gl' +import mapboxgl from 'mapbox-gl' /** * @typedef {Object} Options - * @property {Object} maplibreOptions + * @property {string} [accessToken] + * @property {string} style + * @property {string|HTMLElement} container */ -export default class MapLibreLayer extends Layer { +export default class MapBox extends Layer { /** * @param {Options} options */ constructor(options) { const baseOptions = Object.assign({}, options) - delete baseOptions.maplibreOptions - // baseOptions.xyz = options.maplibreOptions.xyz - // baseOptions.xyz_custom = options.maplibreOptions.xyz_custom + delete baseOptions.accessToken + delete baseOptions.style + delete baseOptions.container + delete baseOptions.xyz super(baseOptions) - - // write directly to properties this.set('xyz', options.maplibreOptions.xyz) this.set('xyz_custom', options.maplibreOptions.xyz_custom) - // const container = options.maplibreOptions.container - this.map_ = options.maplibreOptions.map - - const container = document.createElement('div') - container.style.width = '100%' - container.style.height = '100%' - container.style.position = 'absolute' - container.style.zIndex = -50 - this.map_.getTarget().parentElement.appendChild(container) - - this.maplibreMap = new maplibregl.Map( - Object.assign({}, options.maplibreOptions, { - container: container, - attributionControl: false, - interactive: false, - trackResize: false, - }) - ) + this.xyz_ = options.xyz + + if (options.accessToken) { + mapboxgl.accessToken = options.accessToken + } - this.applyOpacity_() + this.map_ = new mapboxgl.Map({ + container: options.maplibreOptions.container, + style: options.maplibreOptions.style, + attributionControl: false, + interactive: false, + }) + this.maplibreMap = this.map_ } - /** - * @param {number} opacity - */ - setOpacity(opacity) { - super.setOpacity(opacity) - this.applyOpacity_() + getMapBoxMap() { + return this.map_ } - applyOpacity_() { - const canvas = this.maplibreMap.getCanvas() - const opacity = this.getOpacity().toString() - if (opacity !== canvas.style.opacity) { - canvas.style.opacity = opacity - } + getMapLibreMap() { + return this.map_ } /** - * @param {import('ol/Map').FrameState} frameState - * @return {HTMLCanvasElement} canvas + * @param {import('ol/PluggableMap').FrameState} frameState */ render(frameState) { - const canvas = this.maplibreMap.getCanvas() + const canvas = this.map_.getCanvas() const viewState = frameState.viewState - // adjust view parameters in maplibre - this.maplibreMap.jumpTo({ + canvas.style.position = 'absolute' + + const visible = this.getVisible() + canvas.style.display = visible ? 'block' : 'none' + + const opacity = this.getOpacity().toString() + if (opacity !== canvas.style.opacity) { + canvas.style.opacity = opacity + } + + // adjust view parameters in mapbox + const rotation = viewState.rotation + if (rotation) { + this.map_.rotateTo(toDegrees(-rotation), { + animate: false, + }) + } + this.map_.jumpTo({ center: toLonLat(viewState.center), zoom: viewState.zoom - 1, - bearing: toDegrees(-viewState.rotation), animate: false, }) - const maplibreCanvas = this.maplibreMap.getCanvas() - if (!maplibreCanvas.isConnected) { - // The canvas is not connected to the DOM, request a map rendering at the next animation frame - // to set the canvas size. - this.map_.render() - // this.getMapInternal().render(); - } else if (!sameSize(maplibreCanvas, frameState)) { - this.maplibreMap._container.style.width = `${frameState.size[0]}px` - this.maplibreMap._container.style.height = `${frameState.size[1]}px` - this.maplibreMap._container.style.position = 'absolute' - this.maplibreMap.resize() - this.maplibreMap._container.style.position = 'absolute' - // this.maplibreMap._container.style.display = 'none' + // cancel the scheduled update & trigger synchronous redraw + // see https://github.com/mapbox/mapbox-gl-js/issues/7893#issue-408992184 + // NOTE: THIS MIGHT BREAK WHEN UPDATING MAPBOX + if (this.map_._frame) { + this.map_._frame.cancel() + this.map_._frame = null } + this.map_._render() - // this.maplibreMap.redraw(); - // if (this.maplibreMap._frame) { - // this.maplibreMap._frame.cancel() - // this.maplibreMap._frame = null - // } - // this.maplibreMap._render() - - // return this.maplibreMap.getContainer(); return canvas } + + /** + * @param {string} name + * @param {boolean} visible + */ + setLayerVisibility(name, visible) { + this.map_.setLayoutProperty( + name, + 'visibility', + visible ? 'visible' : 'none' + ) + } + + /** + * @return {mapboxgl.Style} + */ + getStyle() { + return this.map_.getStyle() + } + getXYZ() { return this.get('xyz') } } - -/** - * - * @param {HTMLCanvasElement} canvas - * @param {import('ol/Map').FrameState} frameState - * @return boolean - */ -function sameSize(canvas, frameState) { - return ( - canvas.width === Math.floor(frameState.size[0] * frameState.pixelRatio) || - canvas.height === Math.floor(frameState.size[1] * frameState.pixelRatio) - ) -}