lintje 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist-elements/actions.js +1 -1
- package/dist-elements/chunks/{base-Bg-IFOPG.js → base-CbmWxUig.js} +444 -272
- package/dist-elements/chunks/{controls-B1455oPG.js → controls-DxmnDSBr.js} +6 -0
- package/dist-elements/chunks/dialog-DChINFxD.js +28 -0
- package/dist-elements/chunks/{disclosure-BXTX04gM.js → disclosure-D39vAR5q.js} +1 -1
- package/dist-elements/chunks/{disclosure-CMXhX-Vb.js → disclosure-DLkXPUpV.js} +6 -6
- package/dist-elements/chunks/download-Ct9q2anY.js +206 -0
- package/dist-elements/chunks/{focus-trap-9BnE-xWv.js → focus-trap-BwOxE5BX.js} +1 -1
- package/dist-elements/chunks/input-CRW_exv_.js +195 -0
- package/dist-elements/chunks/{player-DXOZEyEy.js → player-B8QXJ0Z5.js} +26 -26
- package/dist-elements/chunks/{sentence-BI3lwEuT.js → sentence-B19AyZBS.js} +3 -3
- package/dist-elements/chunks/{stagger-qGD3wmhg.js → stagger-BHoOgy0g.js} +81 -75
- package/dist-elements/core.js +1 -1
- package/dist-elements/custom-elements.json +980 -670
- package/dist-elements/data-types.json +6798 -0
- package/dist-elements/feedback.js +2 -1
- package/dist-elements/frame.js +0 -2
- package/dist-elements/guides/dashboard.md +8 -0
- package/dist-elements/guides/events.md +4 -5
- package/dist-elements/guides/loading.md +8 -7
- package/dist-elements/guides/page-contents.md +110 -0
- package/dist-elements/guides/start.md +12 -0
- package/dist-elements/inputs.js +2 -1
- package/dist-elements/layout.js +1 -1
- package/dist-elements/lintje.js +6975 -6120
- package/dist-elements/overlays.js +2 -2
- package/dist-elements/skills/lintje/SKILL.md +1 -1
- package/dist-elements/tables.js +1 -1
- package/dist-elements/tag/activity-log.js +15 -15
- package/dist-elements/tag/ai-label.js +10 -10
- package/dist-elements/tag/announcement.js +36 -76
- package/dist-elements/tag/app-search.js +49 -49
- package/dist-elements/tag/audio-player.js +57 -57
- package/dist-elements/tag/badge.js +1 -1
- package/dist-elements/tag/breadcrumbs.js +15 -15
- package/dist-elements/tag/button.js +1 -1
- package/dist-elements/tag/card-list.js +12 -12
- package/dist-elements/tag/card.js +39 -44
- package/dist-elements/tag/chart.js +1050 -795
- package/dist-elements/tag/chat-answer.js +49 -49
- package/dist-elements/tag/chat-composer.js +75 -71
- package/dist-elements/tag/chat-message.js +8 -8
- package/dist-elements/tag/chat-strip.js +22 -22
- package/dist-elements/tag/chat-suggestions.js +12 -12
- package/dist-elements/tag/chat.js +56 -56
- package/dist-elements/tag/checkbox-group.d.ts +1 -0
- package/dist-elements/tag/checkbox-group.js +59 -0
- package/dist-elements/tag/checkbox.js +8 -8
- package/dist-elements/tag/code.js +9 -9
- package/dist-elements/tag/combobox.js +18 -18
- package/dist-elements/tag/conflict-alert.js +12 -12
- package/dist-elements/tag/copy-button.js +14 -14
- package/dist-elements/tag/data-table.js +878 -530
- package/dist-elements/tag/date-input.js +30 -30
- package/dist-elements/tag/date-range.js +37 -37
- package/dist-elements/tag/description-list.js +29 -32
- package/dist-elements/tag/dialog.d.ts +1 -0
- package/dist-elements/tag/dialog.js +144 -0
- package/dist-elements/tag/document-viewer.js +23 -23
- package/dist-elements/tag/drawer.js +28 -32
- package/dist-elements/tag/empty-state.js +19 -30
- package/dist-elements/tag/error-page.d.ts +1 -0
- package/dist-elements/tag/error-page.js +109 -0
- package/dist-elements/tag/error-summary.js +10 -10
- package/dist-elements/tag/expander.js +8 -8
- package/dist-elements/tag/explainer.js +11 -11
- package/dist-elements/tag/field.js +5 -5
- package/dist-elements/tag/file-upload.js +34 -34
- package/dist-elements/tag/filter-bar.js +56 -56
- package/dist-elements/tag/filter-sheet.js +11 -11
- package/dist-elements/tag/filter-zone.js +31 -31
- package/dist-elements/tag/footer.js +21 -21
- package/dist-elements/tag/form-actions.js +29 -25
- package/dist-elements/tag/form-section.js +6 -6
- package/dist-elements/tag/form.js +12 -12
- package/dist-elements/tag/gallery.js +14 -14
- package/dist-elements/tag/grid-item.js +1 -1
- package/dist-elements/tag/grid.js +1 -1
- package/dist-elements/tag/hero.js +12 -12
- package/dist-elements/tag/highlight.js +5 -5
- package/dist-elements/tag/icon-button.js +1 -1
- package/dist-elements/tag/icon.js +1 -1
- package/dist-elements/tag/job-list.js +22 -44
- package/dist-elements/tag/kpi-row.js +12 -10
- package/dist-elements/tag/kpi.js +146 -137
- package/dist-elements/tag/level-meter.js +11 -11
- package/dist-elements/tag/list.js +55 -55
- package/dist-elements/tag/logo.js +30 -30
- package/dist-elements/tag/map.js +690 -665
- package/dist-elements/tag/menu-button.js +70 -69
- package/dist-elements/tag/modal.js +28 -37
- package/dist-elements/tag/multiselect.js +34 -34
- package/dist-elements/tag/note.js +5 -5
- package/dist-elements/tag/notifications.js +36 -36
- package/dist-elements/tag/number-input.js +12 -12
- package/dist-elements/tag/page-header.js +140 -37
- package/dist-elements/tag/pagination.js +53 -48
- package/dist-elements/tag/popover.js +1 -1
- package/dist-elements/tag/progress-bar.js +1 -1
- package/dist-elements/tag/prose.js +6 -6
- package/dist-elements/tag/qr-code.js +7 -7
- package/dist-elements/tag/radio-group.js +12 -12
- package/dist-elements/tag/range.js +22 -22
- package/dist-elements/tag/recording-status.js +14 -14
- package/dist-elements/tag/repeater.js +10 -10
- package/dist-elements/tag/segmented.js +13 -13
- package/dist-elements/tag/select.js +10 -10
- package/dist-elements/tag/shell.js +356 -339
- package/dist-elements/tag/skeleton.js +1 -1
- package/dist-elements/tag/slot-picker.js +14 -14
- package/dist-elements/tag/sortable-list.js +14 -14
- package/dist-elements/tag/spinner.js +1 -1
- package/dist-elements/tag/split-pane.js +12 -12
- package/dist-elements/tag/status-dot.js +1 -1
- package/dist-elements/tag/stepper.js +21 -21
- package/dist-elements/tag/streaming-text.js +13 -13
- package/dist-elements/tag/sub-nav.js +39 -38
- package/dist-elements/tag/tabs.js +38 -38
- package/dist-elements/tag/tag-input.js +19 -19
- package/dist-elements/tag/text-editor.js +24 -24
- package/dist-elements/tag/text-input.js +14 -14
- package/dist-elements/tag/textarea.js +14 -14
- package/dist-elements/tag/tile.js +1 -1
- package/dist-elements/tag/time-input.js +19 -19
- package/dist-elements/tag/toast.js +32 -23
- package/dist-elements/tag/toggle.js +8 -8
- package/dist-elements/tag/toggletip.js +27 -27
- package/dist-elements/tag/tooltip.js +1 -1
- package/dist-elements/tag/transcript.js +48 -48
- package/dist-elements/tag/translator.js +13 -13
- package/dist-elements/tag/tree-view.js +13 -13
- package/dist-elements/tag/user-menu.js +37 -37
- package/dist-elements/tag/video-player.js +21 -21
- package/dist-elements/tokens.css +120 -96
- package/dist-elements/types/bundle/feedback.d.ts +1 -0
- package/dist-elements/types/bundle/frame.d.ts +0 -2
- package/dist-elements/types/bundle/inputs.d.ts +1 -0
- package/dist-elements/types/bundle/overlays.d.ts +1 -1
- package/dist-elements/types/components/actions/copy-button/copy-button.d.ts +6 -7
- package/dist-elements/types/components/actions/menu-button/menu-button.d.ts +13 -15
- package/dist-elements/types/components/actions/qr-code/qr-code.d.ts +9 -9
- package/dist-elements/types/components/charts/chart/chart.d.ts +5 -4
- package/dist-elements/types/components/charts/kpi/kpi.d.ts +16 -8
- package/dist-elements/types/components/charts/kpi-row/kpi-row.d.ts +1 -7
- package/dist-elements/types/components/charts/note/note.d.ts +1 -1
- package/dist-elements/types/components/chat/chat/chat.d.ts +8 -10
- package/dist-elements/types/components/chat/chat-answer/chat-answer.d.ts +7 -8
- package/dist-elements/types/components/chat/chat-composer/chat-composer.d.ts +8 -10
- package/dist-elements/types/components/chat/chat-message/chat-message.d.ts +6 -7
- package/dist-elements/types/components/chat/chat-strip/chat-strip.d.ts +5 -5
- package/dist-elements/types/components/chat/chat-suggestions/chat-suggestions.d.ts +9 -10
- package/dist-elements/types/components/content/audio-player/audio-player.d.ts +10 -12
- package/dist-elements/types/components/content/code/code.d.ts +2 -3
- package/dist-elements/types/components/content/document-viewer/document-viewer.d.ts +8 -9
- package/dist-elements/types/components/content/gallery/gallery.d.ts +5 -4
- package/dist-elements/types/components/content/highlight/highlight.d.ts +4 -3
- package/dist-elements/types/components/content/prose/prose.d.ts +2 -3
- package/dist-elements/types/components/content/transcript/transcript.d.ts +12 -25
- package/dist-elements/types/components/content/translator/translator.d.ts +11 -15
- package/dist-elements/types/components/content/video-player/video-player.d.ts +11 -13
- package/dist-elements/types/components/feedback/ai-label/ai-label.d.ts +3 -4
- package/dist-elements/types/components/feedback/announcement/announcement.d.ts +3 -7
- package/dist-elements/types/components/feedback/conflict-alert/conflict-alert.d.ts +3 -4
- package/dist-elements/types/components/feedback/empty-state/empty-state.d.ts +5 -8
- package/dist-elements/types/components/feedback/error-page/error-page.d.ts +52 -0
- package/dist-elements/types/components/feedback/job-list/job-list.d.ts +9 -12
- package/dist-elements/types/components/feedback/level-meter/level-meter.d.ts +4 -6
- package/dist-elements/types/components/feedback/recording-status/recording-status.d.ts +5 -6
- package/dist-elements/types/components/feedback/streaming-text/streaming-text.d.ts +10 -7
- package/dist-elements/types/components/feedback/toast/toast.d.ts +8 -9
- package/dist-elements/types/components/filters/filter-bar/filter-bar.d.ts +9 -4
- package/dist-elements/types/components/filters/filter-sheet/filter-sheet.d.ts +5 -5
- package/dist-elements/types/components/filters/filter-zone/filter-zone.d.ts +4 -4
- package/dist-elements/types/components/forms/error-summary/error-summary.d.ts +5 -6
- package/dist-elements/types/components/forms/form/form.d.ts +5 -5
- package/dist-elements/types/components/forms/form-actions/form-actions.d.ts +9 -7
- package/dist-elements/types/components/forms/form-section/form-section.d.ts +6 -5
- package/dist-elements/types/components/forms/repeater/repeater.d.ts +13 -7
- package/dist-elements/types/components/forms/stepper/stepper.d.ts +5 -4
- package/dist-elements/types/components/frame/app-search/app-search.d.ts +6 -7
- package/dist-elements/types/components/frame/breadcrumbs/breadcrumbs.d.ts +2 -2
- package/dist-elements/types/components/frame/footer/footer.d.ts +3 -2
- package/dist-elements/types/components/frame/hero/hero.d.ts +7 -9
- package/dist-elements/types/components/frame/notifications/notifications.d.ts +5 -9
- package/dist-elements/types/components/frame/page-header/page-header.d.ts +12 -15
- package/dist-elements/types/components/frame/shell/shell.d.ts +14 -13
- package/dist-elements/types/components/frame/sub-nav/sub-nav.d.ts +10 -6
- package/dist-elements/types/components/frame/user-menu/user-menu.d.ts +11 -10
- package/dist-elements/types/components/index.d.ts +8 -9
- package/dist-elements/types/components/inputs/checkbox/checkbox.d.ts +4 -4
- package/dist-elements/types/components/inputs/checkbox-group/checkbox-group.d.ts +33 -0
- package/dist-elements/types/components/inputs/combobox/combobox.d.ts +12 -6
- package/dist-elements/types/components/inputs/date-input/date-input.d.ts +5 -5
- package/dist-elements/types/components/inputs/date-range/date-range.d.ts +11 -6
- package/dist-elements/types/components/inputs/field/field.d.ts +5 -3
- package/dist-elements/types/components/inputs/file-upload/file-upload.d.ts +6 -8
- package/dist-elements/types/components/inputs/multiselect/multiselect.d.ts +4 -6
- package/dist-elements/types/components/inputs/number-input/number-input.d.ts +8 -7
- package/dist-elements/types/components/inputs/radio-group/radio-group.d.ts +2 -4
- package/dist-elements/types/components/inputs/range/range.d.ts +5 -6
- package/dist-elements/types/components/inputs/segmented/segmented.d.ts +7 -4
- package/dist-elements/types/components/inputs/select/select.d.ts +6 -3
- package/dist-elements/types/components/inputs/slot-picker/slot-picker.d.ts +6 -5
- package/dist-elements/types/components/inputs/tag-input/tag-input.d.ts +7 -5
- package/dist-elements/types/components/inputs/text-editor/text-editor.d.ts +6 -6
- package/dist-elements/types/components/inputs/text-input/text-input.d.ts +11 -6
- package/dist-elements/types/components/inputs/textarea/textarea.d.ts +12 -11
- package/dist-elements/types/components/inputs/time-input/time-input.d.ts +7 -8
- package/dist-elements/types/components/inputs/toggle/toggle.d.ts +3 -1
- package/dist-elements/types/components/layout/expander/expander.d.ts +9 -10
- package/dist-elements/types/components/layout/split-pane/split-pane.d.ts +6 -6
- package/dist-elements/types/components/layout/tabs/tabs.d.ts +11 -9
- package/dist-elements/types/components/map/map/map.d.ts +10 -9
- package/dist-elements/types/components/overlays/dialog/dialog.d.ts +49 -0
- package/dist-elements/types/components/overlays/drawer/drawer.d.ts +6 -5
- package/dist-elements/types/components/overlays/modal/modal.d.ts +7 -12
- package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +3 -7
- package/dist-elements/types/components/shared/charts/index.d.ts +4 -1
- package/dist-elements/types/components/shared/charts/kinds.d.ts +86 -0
- package/dist-elements/types/components/shared/charts/line-chart/line-chart.d.ts +2 -2
- package/dist-elements/types/components/shared/charts/map-chart/leaflet.d.ts +5 -0
- package/dist-elements/types/components/shared/charts/shared/chart-states.d.ts +8 -19
- package/dist-elements/types/components/shared/charts/shared/controller.d.ts +7 -0
- package/dist-elements/types/components/shared/charts/shared/types.d.ts +29 -0
- package/dist-elements/types/components/shared/charts/stacked-area-chart/stacked-area-chart.d.ts +13 -0
- package/dist-elements/types/components/shared/dialog.d.ts +9 -0
- package/dist-elements/types/components/shared/overflow.d.ts +58 -0
- package/dist-elements/types/components/tables/activity-log/activity-log.d.ts +2 -3
- package/dist-elements/types/components/tables/card/card.d.ts +14 -20
- package/dist-elements/types/components/tables/card-list/card-list.d.ts +9 -11
- package/dist-elements/types/components/tables/data-table/data-table.d.ts +85 -16
- package/dist-elements/types/components/tables/data-table/filters.d.ts +13 -4
- package/dist-elements/types/components/tables/description-list/description-list.d.ts +12 -11
- package/dist-elements/types/components/tables/list/list.d.ts +9 -20
- package/dist-elements/types/components/tables/pagination/pagination.d.ts +12 -11
- package/dist-elements/types/components/tables/sortable-list/sortable-list.d.ts +5 -6
- package/dist-elements/types/components/tables/tree-view/tree-view.d.ts +4 -4
- package/dist-elements/types/core/media.d.ts +2 -2
- package/dist-elements/types/core/motion.d.ts +5 -0
- package/dist-elements/types/core/print.d.ts +15 -0
- package/dist-elements/types/core/shortcuts.d.ts +2 -2
- package/dist-elements/types/icons/icon/icon.d.ts +2 -3
- package/dist-elements/types/icons/register.d.ts +1 -1
- package/dist-elements/types/primitives/badge/badge.d.ts +9 -5
- package/dist-elements/types/primitives/button/button.d.ts +12 -9
- package/dist-elements/types/primitives/grid/grid.d.ts +3 -3
- package/dist-elements/types/primitives/grid-item/grid-item.d.ts +1 -1
- package/dist-elements/types/primitives/icon-button/icon-button.d.ts +7 -5
- package/dist-elements/types/primitives/index.d.ts +3 -1
- package/dist-elements/types/primitives/popover/popover.d.ts +5 -4
- package/dist-elements/types/primitives/progress-bar/progress-bar.d.ts +8 -6
- package/dist-elements/types/primitives/shared/announcement-block.d.ts +38 -0
- package/dist-elements/types/primitives/shared/empty-state-block.d.ts +26 -0
- package/dist-elements/types/primitives/shared/tone.d.ts +18 -0
- package/dist-elements/types/primitives/skeleton/skeleton.d.ts +1 -1
- package/dist-elements/types/primitives/spinner/spinner.d.ts +1 -2
- package/dist-elements/types/primitives/status-dot/status-dot.d.ts +4 -5
- package/dist-elements/types/primitives/tile/tile.d.ts +17 -5
- package/dist-elements/types/primitives/tooltip/tooltip.d.ts +6 -6
- package/dist-elements/types/types.d.ts +70 -10
- package/dist-icons/functioneel-kolommen.svg +1 -0
- package/dist-icons/functioneel-trechter.svg +1 -0
- package/package.json +1 -1
- package/dist-elements/chunks/confirm-dialog-D5EVGuil.js +0 -4
- package/dist-elements/chunks/download-y528pIHP.js +0 -230
- package/dist-elements/chunks/input-BtuNFSWk.js +0 -195
- package/dist-elements/tag/confirm-dialog.d.ts +0 -1
- package/dist-elements/tag/confirm-dialog.js +0 -118
- package/dist-elements/tag/session-expiry.d.ts +0 -1
- package/dist-elements/tag/session-expiry.js +0 -184
- package/dist-elements/tag/shortcuts.d.ts +0 -1
- package/dist-elements/tag/shortcuts.js +0 -104
- package/dist-elements/types/components/frame/session-expiry/session-expiry.d.ts +0 -55
- package/dist-elements/types/components/frame/shortcuts/shortcuts.d.ts +0 -41
- package/dist-elements/types/components/overlays/confirm-dialog/confirm-dialog.d.ts +0 -41
package/dist-elements/tag/map.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as
|
|
3
|
-
import { t as
|
|
4
|
-
import { a as
|
|
5
|
-
import { _ as
|
|
1
|
+
import { F as e, Kt as t, O as n, Yt as r, Zt as i, a, bt as o, en as s, f as c, h as l, in as u, lt as d, nn as f, p, q as m, rn as h, s as g, tn as _, ut as v, y } from "../chunks/base-CbmWxUig.js";
|
|
2
|
+
import { n as ee, nextRow as te } from "./menu-button.js";
|
|
3
|
+
import { t as ne } from "./announcement.js";
|
|
4
|
+
import { a as re, c as ie, i as b, n as x, o as ae, s as S, t as oe } from "../chunks/download-Ct9q2anY.js";
|
|
5
|
+
import { _ as C, d as se, l as w, m as ce, n as T, r as E, v as D } from "../chunks/stagger-BHoOgy0g.js";
|
|
6
6
|
//#region \0rolldown/runtime.js
|
|
7
|
-
var
|
|
8
|
-
if (t && typeof t == "object" || typeof t == "function") for (var i =
|
|
7
|
+
var O = Object.create, k = Object.defineProperty, A = Object.getOwnPropertyDescriptor, j = Object.getOwnPropertyNames, M = Object.getPrototypeOf, N = Object.prototype.hasOwnProperty, le = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), ue = (e, t, n, r) => {
|
|
8
|
+
if (t && typeof t == "object" || typeof t == "function") for (var i = j(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !N.call(e, s) && s !== n && k(e, s, {
|
|
9
9
|
get: ((e) => t[e]).bind(null, s),
|
|
10
|
-
enumerable: !(r =
|
|
10
|
+
enumerable: !(r = A(t, s)) || r.enumerable
|
|
11
11
|
});
|
|
12
12
|
return e;
|
|
13
|
-
},
|
|
13
|
+
}, P = /* @__PURE__ */ ((e, t, n) => (n = e == null ? {} : O(M(e)), ue(t || !e || !e.__esModule || !N.call(e, "default") ? k(n, "default", {
|
|
14
14
|
value: e,
|
|
15
15
|
enumerable: !0
|
|
16
|
-
}) : n, e)))((/* @__PURE__ */
|
|
16
|
+
}) : n, e)))((/* @__PURE__ */ le(((e, t) => {
|
|
17
17
|
(function(n, r) {
|
|
18
18
|
typeof e == "object" && t !== void 0 ? r(e) : typeof define == "function" && define.amd ? define(["exports"], r) : (n = typeof globalThis < "u" ? globalThis : n || self, r(n.leaflet = {}));
|
|
19
19
|
})(e, (function(e) {
|
|
@@ -86,30 +86,30 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
86
86
|
var _ = Array.isArray || function(e) {
|
|
87
87
|
return Object.prototype.toString.call(e) === "[object Array]";
|
|
88
88
|
};
|
|
89
|
-
function
|
|
89
|
+
function v(e, t) {
|
|
90
90
|
for (var n = 0; n < e.length; n++) if (e[n] === t) return n;
|
|
91
91
|
return -1;
|
|
92
92
|
}
|
|
93
|
-
var
|
|
94
|
-
function
|
|
93
|
+
var y = "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=";
|
|
94
|
+
function ee(e) {
|
|
95
95
|
return window["webkit" + e] || window["moz" + e] || window["ms" + e];
|
|
96
96
|
}
|
|
97
|
-
var
|
|
98
|
-
function
|
|
99
|
-
var t = +/* @__PURE__ */ new Date(), n = Math.max(0, 16 - (t -
|
|
100
|
-
return
|
|
97
|
+
var te = 0;
|
|
98
|
+
function ne(e) {
|
|
99
|
+
var t = +/* @__PURE__ */ new Date(), n = Math.max(0, 16 - (t - te));
|
|
100
|
+
return te = t + n, window.setTimeout(e, n);
|
|
101
101
|
}
|
|
102
|
-
var
|
|
102
|
+
var re = window.requestAnimationFrame || ee("RequestAnimationFrame") || ne, ie = window.cancelAnimationFrame || ee("CancelAnimationFrame") || ee("CancelRequestAnimationFrame") || function(e) {
|
|
103
103
|
window.clearTimeout(e);
|
|
104
104
|
};
|
|
105
|
-
function
|
|
106
|
-
if (n &&
|
|
107
|
-
else return
|
|
105
|
+
function b(e, t, n) {
|
|
106
|
+
if (n && re === ne) e.call(t);
|
|
107
|
+
else return re.call(window, i(e, t));
|
|
108
108
|
}
|
|
109
|
-
function
|
|
110
|
-
e &&
|
|
109
|
+
function x(e) {
|
|
110
|
+
e && ie.call(window, e);
|
|
111
111
|
}
|
|
112
|
-
var
|
|
112
|
+
var ae = {
|
|
113
113
|
__proto__: null,
|
|
114
114
|
extend: n,
|
|
115
115
|
create: r,
|
|
@@ -128,43 +128,43 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
128
128
|
getParamString: m,
|
|
129
129
|
template: g,
|
|
130
130
|
isArray: _,
|
|
131
|
-
indexOf:
|
|
132
|
-
emptyImageUrl:
|
|
133
|
-
requestFn:
|
|
134
|
-
cancelFn:
|
|
135
|
-
requestAnimFrame:
|
|
136
|
-
cancelAnimFrame:
|
|
131
|
+
indexOf: v,
|
|
132
|
+
emptyImageUrl: y,
|
|
133
|
+
requestFn: re,
|
|
134
|
+
cancelFn: ie,
|
|
135
|
+
requestAnimFrame: b,
|
|
136
|
+
cancelAnimFrame: x
|
|
137
137
|
};
|
|
138
|
-
function
|
|
139
|
-
|
|
138
|
+
function S() {}
|
|
139
|
+
S.extend = function(e) {
|
|
140
140
|
var t = function() {
|
|
141
141
|
p(this), this.initialize && this.initialize.apply(this, arguments), this.callInitHooks();
|
|
142
142
|
}, i = t.__super__ = this.prototype, a = r(i);
|
|
143
143
|
for (var o in a.constructor = t, t.prototype = a, this) Object.prototype.hasOwnProperty.call(this, o) && o !== "prototype" && o !== "__super__" && (t[o] = this[o]);
|
|
144
|
-
return e.statics && n(t, e.statics), e.includes && (
|
|
144
|
+
return e.statics && n(t, e.statics), e.includes && (oe(e.includes), n.apply(null, [a].concat(e.includes))), n(a, e), delete a.statics, delete a.includes, a.options && (a.options = i.options ? r(i.options) : {}, n(a.options, e.options)), a._initHooks = [], a.callInitHooks = function() {
|
|
145
145
|
if (!this._initHooksCalled) {
|
|
146
146
|
i.callInitHooks && i.callInitHooks.call(this), this._initHooksCalled = !0;
|
|
147
147
|
for (var e = 0, t = a._initHooks.length; e < t; e++) a._initHooks[e].call(this);
|
|
148
148
|
}
|
|
149
149
|
}, t;
|
|
150
|
-
},
|
|
150
|
+
}, S.include = function(e) {
|
|
151
151
|
var t = this.prototype.options;
|
|
152
152
|
return n(this.prototype, e), e.options && (this.prototype.options = t, this.mergeOptions(e.options)), this;
|
|
153
|
-
},
|
|
153
|
+
}, S.mergeOptions = function(e) {
|
|
154
154
|
return n(this.prototype.options, e), this;
|
|
155
|
-
},
|
|
155
|
+
}, S.addInitHook = function(e) {
|
|
156
156
|
var t = Array.prototype.slice.call(arguments, 1), n = typeof e == "function" ? e : function() {
|
|
157
157
|
this[e].apply(this, t);
|
|
158
158
|
};
|
|
159
159
|
return this.prototype._initHooks = this.prototype._initHooks || [], this.prototype._initHooks.push(n), this;
|
|
160
160
|
};
|
|
161
|
-
function
|
|
161
|
+
function oe(e) {
|
|
162
162
|
if (typeof L < "u" && L && L.Mixin) {
|
|
163
163
|
e = _(e) ? e : [e];
|
|
164
164
|
for (var t = 0; t < e.length; t++) e[t] === L.Mixin.Events && console.warn("Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.", (/* @__PURE__ */ Error()).stack);
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
|
-
var
|
|
167
|
+
var C = {
|
|
168
168
|
on: function(e, t, n) {
|
|
169
169
|
if (typeof e == "object") for (var r in e) this._on(r, e[r], t);
|
|
170
170
|
else {
|
|
@@ -269,8 +269,8 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
269
269
|
}, e), !0);
|
|
270
270
|
}
|
|
271
271
|
};
|
|
272
|
-
|
|
273
|
-
var
|
|
272
|
+
C.addEventListener = C.on, C.removeEventListener = C.clearAllEventListeners = C.off, C.addOneTimeEventListener = C.once, C.fireEvent = C.fire, C.hasEventListeners = C.listens;
|
|
273
|
+
var se = S.extend(C);
|
|
274
274
|
function w(e, t, n) {
|
|
275
275
|
this.x = n ? Math.round(e) : e, this.y = n ? Math.round(t) : t;
|
|
276
276
|
}
|
|
@@ -605,11 +605,11 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
605
605
|
function he(e, t) {
|
|
606
606
|
for (var n = "", r = 0, i, a = e.length, o, s, c; r < a; r++) {
|
|
607
607
|
for (s = e[r], i = 0, o = s.length; i < o; i++) c = s[i], n += (i ? "L" : "M") + c.x + " " + c.y;
|
|
608
|
-
n += t ?
|
|
608
|
+
n += t ? B.svg ? "z" : "x" : "";
|
|
609
609
|
}
|
|
610
610
|
return n || "M0 0";
|
|
611
611
|
}
|
|
612
|
-
var ge = document.documentElement.style, _e = "ActiveXObject" in window, ve = _e && !document.addEventListener, ye = "msLaunchUri" in navigator && !("documentMode" in document), F =
|
|
612
|
+
var ge = document.documentElement.style, _e = "ActiveXObject" in window, ve = _e && !document.addEventListener, ye = "msLaunchUri" in navigator && !("documentMode" in document), F = z("webkit"), I = z("android"), be = z("android 2") || z("android 3"), R = parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10), xe = I && z("Google") && R < 537 && !("AudioNode" in window), Se = !!window.opera, Ce = !ye && z("chrome"), we = z("gecko") && !F && !Se && !_e, Te = !Ce && z("safari"), Ee = z("phantom"), De = "OTransition" in ge, Oe = navigator.platform.indexOf("Win") === 0, ke = _e && "transition" in ge, Ae = "WebKitCSSMatrix" in window && "m11" in new window.WebKitCSSMatrix() && !be, je = "MozPerspective" in ge, Me = !window.L_DISABLE_3D && (ke || Ae || je) && !De && !Ee, Ne = typeof orientation < "u" || z("mobile"), Pe = Ne && F, Fe = Ne && Ae, Ie = !window.PointerEvent && window.MSPointerEvent, Le = !!(window.PointerEvent || Ie), Re = "ontouchstart" in window || !!window.TouchEvent, ze = !window.L_NO_TOUCH && (Re || Le), Be = Ne && Se, Ve = Ne && we, He = (window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI) > 1, Ue = function() {
|
|
613
613
|
var e = !1;
|
|
614
614
|
try {
|
|
615
615
|
var t = Object.defineProperty({}, "passive", { get: function() {
|
|
@@ -618,12 +618,12 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
618
618
|
window.addEventListener("testPassiveEventSupport", l, t), window.removeEventListener("testPassiveEventSupport", l, t);
|
|
619
619
|
} catch {}
|
|
620
620
|
return e;
|
|
621
|
-
}(),
|
|
621
|
+
}(), We = function() {
|
|
622
622
|
return !!document.createElement("canvas").getContext;
|
|
623
|
-
}(),
|
|
623
|
+
}(), Ge = !!(document.createElementNS && me("svg").createSVGRect), Ke = !!Ge && (function() {
|
|
624
624
|
var e = document.createElement("div");
|
|
625
625
|
return e.innerHTML = "<svg/>", (e.firstChild && e.firstChild.namespaceURI) === "http://www.w3.org/2000/svg";
|
|
626
|
-
})(),
|
|
626
|
+
})(), qe = !Ge && function() {
|
|
627
627
|
try {
|
|
628
628
|
var e = document.createElement("div");
|
|
629
629
|
e.innerHTML = "<v:shape adj=\"1\"/>";
|
|
@@ -632,49 +632,49 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
632
632
|
} catch {
|
|
633
633
|
return !1;
|
|
634
634
|
}
|
|
635
|
-
}(),
|
|
636
|
-
function
|
|
635
|
+
}(), Je = navigator.platform.indexOf("Mac") === 0, Ye = navigator.platform.indexOf("Linux") === 0;
|
|
636
|
+
function z(e) {
|
|
637
637
|
return navigator.userAgent.toLowerCase().indexOf(e) >= 0;
|
|
638
638
|
}
|
|
639
|
-
var
|
|
639
|
+
var B = {
|
|
640
640
|
ie: _e,
|
|
641
641
|
ielt9: ve,
|
|
642
642
|
edge: ye,
|
|
643
643
|
webkit: F,
|
|
644
|
-
android:
|
|
645
|
-
android23:
|
|
646
|
-
androidStock:
|
|
647
|
-
opera:
|
|
648
|
-
chrome:
|
|
649
|
-
gecko:
|
|
650
|
-
safari:
|
|
651
|
-
phantom:
|
|
652
|
-
opera12:
|
|
653
|
-
win:
|
|
654
|
-
ie3d:
|
|
655
|
-
webkit3d:
|
|
656
|
-
gecko3d:
|
|
657
|
-
any3d:
|
|
658
|
-
mobile:
|
|
659
|
-
mobileWebkit:
|
|
660
|
-
mobileWebkit3d:
|
|
661
|
-
msPointer:
|
|
662
|
-
pointer:
|
|
663
|
-
touch:
|
|
664
|
-
touchNative:
|
|
665
|
-
mobileOpera:
|
|
666
|
-
mobileGecko:
|
|
667
|
-
retina:
|
|
668
|
-
passiveEvents:
|
|
669
|
-
canvas:
|
|
670
|
-
svg:
|
|
671
|
-
vml:
|
|
672
|
-
inlineSvg:
|
|
673
|
-
mac:
|
|
674
|
-
linux:
|
|
675
|
-
},
|
|
676
|
-
touchstart:
|
|
677
|
-
touchmove:
|
|
644
|
+
android: I,
|
|
645
|
+
android23: be,
|
|
646
|
+
androidStock: xe,
|
|
647
|
+
opera: Se,
|
|
648
|
+
chrome: Ce,
|
|
649
|
+
gecko: we,
|
|
650
|
+
safari: Te,
|
|
651
|
+
phantom: Ee,
|
|
652
|
+
opera12: De,
|
|
653
|
+
win: Oe,
|
|
654
|
+
ie3d: ke,
|
|
655
|
+
webkit3d: Ae,
|
|
656
|
+
gecko3d: je,
|
|
657
|
+
any3d: Me,
|
|
658
|
+
mobile: Ne,
|
|
659
|
+
mobileWebkit: Pe,
|
|
660
|
+
mobileWebkit3d: Fe,
|
|
661
|
+
msPointer: Ie,
|
|
662
|
+
pointer: Le,
|
|
663
|
+
touch: ze,
|
|
664
|
+
touchNative: Re,
|
|
665
|
+
mobileOpera: Be,
|
|
666
|
+
mobileGecko: Ve,
|
|
667
|
+
retina: He,
|
|
668
|
+
passiveEvents: Ue,
|
|
669
|
+
canvas: We,
|
|
670
|
+
svg: Ge,
|
|
671
|
+
vml: qe,
|
|
672
|
+
inlineSvg: Ke,
|
|
673
|
+
mac: Je,
|
|
674
|
+
linux: Ye
|
|
675
|
+
}, Xe = B.msPointer ? "MSPointerDown" : "pointerdown", Ze = B.msPointer ? "MSPointerMove" : "pointermove", Qe = B.msPointer ? "MSPointerUp" : "pointerup", $e = B.msPointer ? "MSPointerCancel" : "pointercancel", et = {
|
|
676
|
+
touchstart: Xe,
|
|
677
|
+
touchmove: Ze,
|
|
678
678
|
touchend: Qe,
|
|
679
679
|
touchcancel: $e
|
|
680
680
|
}, tt = {
|
|
@@ -699,7 +699,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
699
699
|
delete nt[e.pointerId];
|
|
700
700
|
}
|
|
701
701
|
function lt() {
|
|
702
|
-
rt ||= (document.addEventListener(
|
|
702
|
+
rt ||= (document.addEventListener(Xe, ot, !0), document.addEventListener(Ze, st, !0), document.addEventListener(Qe, ct, !0), document.addEventListener($e, ct, !0), !0);
|
|
703
703
|
}
|
|
704
704
|
function ut(e, t) {
|
|
705
705
|
if (t.pointerType !== (t.MSPOINTER_TYPE_MOUSE || "mouse")) {
|
|
@@ -823,10 +823,10 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
823
823
|
}
|
|
824
824
|
function kt(e, t, n) {
|
|
825
825
|
var r = t || new w(0, 0);
|
|
826
|
-
e.style[gt] = (
|
|
826
|
+
e.style[gt] = (B.ie3d ? "translate(" + r.x + "px," + r.y + "px)" : "translate3d(" + r.x + "px," + r.y + "px,0)") + (n ? " scale(" + n + ")" : "");
|
|
827
827
|
}
|
|
828
828
|
function K(e, t) {
|
|
829
|
-
e._leaflet_pos = t,
|
|
829
|
+
e._leaflet_pos = t, B.any3d ? kt(e, t) : (e.style.left = t.x + "px", e.style.top = t.y + "px");
|
|
830
830
|
}
|
|
831
831
|
function At(e) {
|
|
832
832
|
return e._leaflet_pos || new w(0, 0);
|
|
@@ -930,7 +930,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
930
930
|
if (arguments.length === 1) Gt(e), delete e[Wt];
|
|
931
931
|
else if (t && typeof t == "object") for (var i in t) Jt(e, i, t[i], n);
|
|
932
932
|
else if (t = f(t), arguments.length === 2) Gt(e, function(e) {
|
|
933
|
-
return
|
|
933
|
+
return v(t, e) !== -1;
|
|
934
934
|
});
|
|
935
935
|
else for (var a = 0, o = t.length; a < o; a++) Jt(e, t[a], n, r);
|
|
936
936
|
return this;
|
|
@@ -952,7 +952,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
952
952
|
var a = function(t) {
|
|
953
953
|
return n.call(r || e, t || window.event);
|
|
954
954
|
}, s = a;
|
|
955
|
-
!
|
|
955
|
+
!B.touchNative && B.pointer && t.indexOf("touch") === 0 ? a = it(e, t, a) : B.touch && t === "dblclick" ? a = mt(e, a) : "addEventListener" in e ? t === "touchstart" || t === "touchmove" || t === "wheel" || t === "mousewheel" ? e.addEventListener(Kt[t] || t, a, B.passiveEvents ? { passive: !1 } : !1) : t === "mouseenter" || t === "mouseleave" ? (a = function(t) {
|
|
956
956
|
t ||= window.event, rn(e, t) && s(t);
|
|
957
957
|
}, e.addEventListener(Kt[t], a, !1)) : e.addEventListener(t, s, !1) : e.attachEvent("on" + t, a), e[Wt] = e[Wt] || {}, e[Wt][i] = a;
|
|
958
958
|
}
|
|
@@ -960,7 +960,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
960
960
|
i ||= t + o(n) + (r ? "_" + o(r) : "");
|
|
961
961
|
var a = e[Wt] && e[Wt][i];
|
|
962
962
|
if (!a) return this;
|
|
963
|
-
!
|
|
963
|
+
!B.touchNative && B.pointer && t.indexOf("touch") === 0 ? at(e, t, a) : B.touch && t === "dblclick" ? ht(e, a) : "removeEventListener" in e ? e.removeEventListener(Kt[t] || t, a, !1) : e.detachEvent("on" + t, a), e[Wt][i] = null;
|
|
964
964
|
}
|
|
965
965
|
function Yt(e) {
|
|
966
966
|
return e.stopPropagation ? e.stopPropagation() : e.originalEvent ? e.originalEvent._stopped = !0 : e.cancelBubble = !0, this;
|
|
@@ -987,9 +987,9 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
987
987
|
var n = Ht(t), r = n.boundingClientRect;
|
|
988
988
|
return new w((e.clientX - r.left) / n.x - t.clientLeft, (e.clientY - r.top) / n.y - t.clientTop);
|
|
989
989
|
}
|
|
990
|
-
var tn =
|
|
990
|
+
var tn = B.linux && B.chrome ? window.devicePixelRatio : B.mac ? window.devicePixelRatio * 3 : window.devicePixelRatio > 0 ? 2 * window.devicePixelRatio : 1;
|
|
991
991
|
function nn(e) {
|
|
992
|
-
return
|
|
992
|
+
return B.edge ? e.wheelDeltaY / 2 : e.deltaY && e.deltaMode === 0 ? -e.deltaY / tn : e.deltaY && e.deltaMode === 1 ? -e.deltaY * 20 : e.deltaY && e.deltaMode === 2 ? -e.deltaY * 60 : e.deltaX || e.deltaZ ? 0 : e.wheelDelta ? (e.wheelDeltaY || e.wheelDelta) / 2 : e.detail && Math.abs(e.detail) < 32765 ? -e.detail * 20 : e.detail ? e.detail / -32765 * 60 : 0;
|
|
993
993
|
}
|
|
994
994
|
function rn(e, t) {
|
|
995
995
|
var n = t.relatedTarget;
|
|
@@ -1016,7 +1016,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1016
1016
|
isExternalTarget: rn,
|
|
1017
1017
|
addListener: q,
|
|
1018
1018
|
removeListener: J
|
|
1019
|
-
}, on =
|
|
1019
|
+
}, on = se.extend({
|
|
1020
1020
|
run: function(e, t, n, r) {
|
|
1021
1021
|
this.stop(), this._el = e, this._inProgress = !0, this._duration = n || .25, this._easeOutPower = 1 / Math.max(r || .5, .2), this._startPos = At(e), this._offset = t.subtract(this._startPos), this._startTime = +/* @__PURE__ */ new Date(), this.fire("start"), this._animate();
|
|
1022
1022
|
},
|
|
@@ -1024,7 +1024,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1024
1024
|
this._inProgress && (this._step(!0), this._complete());
|
|
1025
1025
|
},
|
|
1026
1026
|
_animate: function() {
|
|
1027
|
-
this._animId =
|
|
1027
|
+
this._animId = b(this._animate, this), this._step();
|
|
1028
1028
|
},
|
|
1029
1029
|
_step: function(e) {
|
|
1030
1030
|
var t = +/* @__PURE__ */ new Date() - this._startTime, n = this._duration * 1e3;
|
|
@@ -1035,12 +1035,12 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1035
1035
|
t && n._round(), K(this._el, n), this.fire("step");
|
|
1036
1036
|
},
|
|
1037
1037
|
_complete: function() {
|
|
1038
|
-
|
|
1038
|
+
x(this._animId), this._inProgress = !1, this.fire("end");
|
|
1039
1039
|
},
|
|
1040
1040
|
_easeOut: function(e) {
|
|
1041
1041
|
return 1 - (1 - e) ** this._easeOutPower;
|
|
1042
1042
|
}
|
|
1043
|
-
}), X =
|
|
1043
|
+
}), X = se.extend({
|
|
1044
1044
|
options: {
|
|
1045
1045
|
crs: fe,
|
|
1046
1046
|
center: void 0,
|
|
@@ -1060,7 +1060,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1060
1060
|
trackResize: !0
|
|
1061
1061
|
},
|
|
1062
1062
|
initialize: function(e, t) {
|
|
1063
|
-
t = p(this, t), this._handlers = [], this._layers = {}, this._zoomBoundLayers = {}, this._sizeChanged = !0, this._initContainer(e), this._initLayout(), this._onResize = i(this._onResize, this), this._initEvents(), t.maxBounds && this.setMaxBounds(t.maxBounds), t.zoom !== void 0 && (this._zoom = this._limitZoom(t.zoom)), t.center && t.zoom !== void 0 && this.setView(j(t.center), t.zoom, { reset: !0 }), this.callInitHooks(), this._zoomAnimated = _t &&
|
|
1063
|
+
t = p(this, t), this._handlers = [], this._layers = {}, this._zoomBoundLayers = {}, this._sizeChanged = !0, this._initContainer(e), this._initLayout(), this._onResize = i(this._onResize, this), this._initEvents(), t.maxBounds && this.setMaxBounds(t.maxBounds), t.zoom !== void 0 && (this._zoom = this._limitZoom(t.zoom)), t.center && t.zoom !== void 0 && this.setView(j(t.center), t.zoom, { reset: !0 }), this.callInitHooks(), this._zoomAnimated = _t && B.any3d && !B.mobileOpera && this.options.zoomAnimation, this._zoomAnimated && (this._createAnimProxy(), q(this._proxy, vt, this._catchTransitionEnd, this)), this._addLayers(this.options.layers);
|
|
1064
1064
|
},
|
|
1065
1065
|
setView: function(e, t, r) {
|
|
1066
1066
|
return t = t === void 0 ? this._zoom : this._limitZoom(t), e = this._limitCenter(j(e), t, this.options.maxBounds), r ||= {}, this._stop(), this._loaded && !r.reset && r !== !0 && (r.animate !== void 0 && (r.zoom = n({ animate: r.animate }, r.zoom), r.pan = n({
|
|
@@ -1072,10 +1072,10 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1072
1072
|
return this._loaded ? this.setView(this.getCenter(), e, { zoom: t }) : (this._zoom = e, this);
|
|
1073
1073
|
},
|
|
1074
1074
|
zoomIn: function(e, t) {
|
|
1075
|
-
return e ||=
|
|
1075
|
+
return e ||= B.any3d ? this.options.zoomDelta : 1, this.setZoom(this._zoom + e, t);
|
|
1076
1076
|
},
|
|
1077
1077
|
zoomOut: function(e, t) {
|
|
1078
|
-
return e ||=
|
|
1078
|
+
return e ||= B.any3d ? this.options.zoomDelta : 1, this.setZoom(this._zoom - e, t);
|
|
1079
1079
|
},
|
|
1080
1080
|
setZoomAround: function(e, t, n) {
|
|
1081
1081
|
var r = this.getZoomScale(t), i = this.getSize().divideBy(2), a = (e instanceof w ? e : this.latLngToContainerPoint(e)).subtract(i).multiplyBy(1 - 1 / r), o = this.containerPointToLatLng(i.add(a));
|
|
@@ -1119,7 +1119,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1119
1119
|
return this;
|
|
1120
1120
|
},
|
|
1121
1121
|
flyTo: function(e, t, n) {
|
|
1122
|
-
if (n ||= {}, n.animate === !1 || !
|
|
1122
|
+
if (n ||= {}, n.animate === !1 || !B.any3d) return this.setView(e, t, n);
|
|
1123
1123
|
this._stop();
|
|
1124
1124
|
var r = this.project(this.getCenter()), i = this.project(e), a = this.getSize(), o = this._zoom;
|
|
1125
1125
|
e = j(e), t = t === void 0 ? o : t;
|
|
@@ -1141,18 +1141,18 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1141
1141
|
function _(e) {
|
|
1142
1142
|
return s * (m(g) / m(g + u * e));
|
|
1143
1143
|
}
|
|
1144
|
-
function
|
|
1144
|
+
function v(e) {
|
|
1145
1145
|
return s * (m(g) * h(g + u * e) - p(g)) / d;
|
|
1146
1146
|
}
|
|
1147
|
-
function
|
|
1147
|
+
function y(e) {
|
|
1148
1148
|
return 1 - (1 - e) ** 1.5;
|
|
1149
1149
|
}
|
|
1150
|
-
var
|
|
1151
|
-
function
|
|
1152
|
-
var n = (Date.now() -
|
|
1153
|
-
n <= 1 ? (this._flyToFrame =
|
|
1150
|
+
var ee = Date.now(), te = (f(1) - g) / u, ne = n.duration ? 1e3 * n.duration : 1e3 * te * .8;
|
|
1151
|
+
function re() {
|
|
1152
|
+
var n = (Date.now() - ee) / ne, a = y(n) * te;
|
|
1153
|
+
n <= 1 ? (this._flyToFrame = b(re, this), this._move(this.unproject(r.add(i.subtract(r).multiplyBy(v(a) / l)), o), this.getScaleZoom(s / _(a), o), { flyTo: !0 })) : this._move(e, t)._moveEnd(!0);
|
|
1154
1154
|
}
|
|
1155
|
-
return this._moveStart(!0, n.noMoveStart),
|
|
1155
|
+
return this._moveStart(!0, n.noMoveStart), re.call(this), this;
|
|
1156
1156
|
},
|
|
1157
1157
|
flyToBounds: function(e, t) {
|
|
1158
1158
|
var n = this._getBoundsCenterZoom(e, t);
|
|
@@ -1252,7 +1252,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1252
1252
|
} catch {
|
|
1253
1253
|
this._container._leaflet_id = void 0, this._containerId = void 0;
|
|
1254
1254
|
}
|
|
1255
|
-
for (var e in this._locationWatchId !== void 0 && this.stopLocate(), this._stop(), H(this._mapPane), this._clearControlPos && this._clearControlPos(), this._resizeRequest &&= (
|
|
1255
|
+
for (var e in this._locationWatchId !== void 0 && this.stopLocate(), this._stop(), H(this._mapPane), this._clearControlPos && this._clearControlPos(), this._resizeRequest &&= (x(this._resizeRequest), null), this._clearHandlers(), this._loaded && this.fire("unload"), this._layers) this._layers[e].remove();
|
|
1256
1256
|
for (e in this._panes) H(this._panes[e]);
|
|
1257
1257
|
return this._layers = [], this._panes = [], delete this._mapPane, delete this._renderer, this;
|
|
1258
1258
|
},
|
|
@@ -1278,7 +1278,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1278
1278
|
},
|
|
1279
1279
|
getBoundsZoom: function(e, t, n) {
|
|
1280
1280
|
e = k(e), n = T(n || [0, 0]);
|
|
1281
|
-
var r = this.getZoom() || 0, i = this.getMinZoom(), a = this.getMaxZoom(), o = e.getNorthWest(), s = e.getSouthEast(), c = this.getSize().subtract(n), l = D(this.project(s, r), this.project(o, r)).getSize(), u =
|
|
1281
|
+
var r = this.getZoom() || 0, i = this.getMinZoom(), a = this.getMaxZoom(), o = e.getNorthWest(), s = e.getSouthEast(), c = this.getSize().subtract(n), l = D(this.project(s, r), this.project(o, r)).getSize(), u = B.any3d ? this.options.zoomSnap : 1, d = c.x / l.x, f = c.y / l.y, p = t ? Math.max(d, f) : Math.min(d, f);
|
|
1282
1282
|
return r = this.getScaleZoom(p, r), u && (r = Math.round(r / (u / 100)) * (u / 100), r = t ? Math.ceil(r / u) * u : Math.floor(r / u) * u), Math.max(i, Math.min(a, r));
|
|
1283
1283
|
},
|
|
1284
1284
|
getSize: function() {
|
|
@@ -1365,7 +1365,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1365
1365
|
},
|
|
1366
1366
|
_initLayout: function() {
|
|
1367
1367
|
var e = this._container;
|
|
1368
|
-
this._fadeAnimated = this.options.fadeAnimation &&
|
|
1368
|
+
this._fadeAnimated = this.options.fadeAnimation && B.any3d, U(e, "leaflet-container" + (B.touch ? " leaflet-touch" : "") + (B.retina ? " leaflet-retina" : "") + (B.ielt9 ? " leaflet-oldie" : "") + (B.safari ? " leaflet-safari" : "") + (this._fadeAnimated ? " leaflet-fade-anim" : ""));
|
|
1369
1369
|
var t = bt(e, "position");
|
|
1370
1370
|
t !== "absolute" && t !== "relative" && t !== "fixed" && t !== "sticky" && (e.style.position = "relative"), this._initPanes(), this._initControlPos && this._initControlPos();
|
|
1371
1371
|
},
|
|
@@ -1392,7 +1392,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1392
1392
|
return e && this.fire("zoomend"), this.fire("moveend");
|
|
1393
1393
|
},
|
|
1394
1394
|
_stop: function() {
|
|
1395
|
-
return
|
|
1395
|
+
return x(this._flyToFrame), this._panAnim && this._panAnim.stop(), this;
|
|
1396
1396
|
},
|
|
1397
1397
|
_rawPanBy: function(e) {
|
|
1398
1398
|
K(this._mapPane, this._getMapPanePos().subtract(e));
|
|
@@ -1409,10 +1409,10 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1409
1409
|
_initEvents: function(e) {
|
|
1410
1410
|
this._targets = {}, this._targets[o(this._container)] = this;
|
|
1411
1411
|
var t = e ? J : q;
|
|
1412
|
-
t(this._container, "click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup", this._handleDOMEvent, this), this.options.trackResize && t(window, "resize", this._onResize, this),
|
|
1412
|
+
t(this._container, "click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup", this._handleDOMEvent, this), this.options.trackResize && t(window, "resize", this._onResize, this), B.any3d && this.options.transform3DLimit && (e ? this.off : this.on).call(this, "moveend", this._onMoveEnd);
|
|
1413
1413
|
},
|
|
1414
1414
|
_onResize: function() {
|
|
1415
|
-
|
|
1415
|
+
x(this._resizeRequest), this._resizeRequest = b(function() {
|
|
1416
1416
|
this.invalidateSize({ debounceMoveend: !0 });
|
|
1417
1417
|
}, this);
|
|
1418
1418
|
},
|
|
@@ -1471,7 +1471,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1471
1471
|
var u = c.getLatLng && (!c._radius || c._radius <= 10);
|
|
1472
1472
|
l.containerPoint = u ? this.latLngToContainerPoint(c.getLatLng()) : this.mouseEventToContainerPoint(e), l.layerPoint = this.containerPointToLayerPoint(l.containerPoint), l.latlng = u ? c.getLatLng() : this.layerPointToLatLng(l.layerPoint);
|
|
1473
1473
|
}
|
|
1474
|
-
for (s = 0; s < a.length; s++) if (a[s].fire(t, l, !0), l.originalEvent._stopped || a[s].options.bubblingMouseEvents === !1 &&
|
|
1474
|
+
for (s = 0; s < a.length; s++) if (a[s].fire(t, l, !0), l.originalEvent._stopped || a[s].options.bubblingMouseEvents === !1 && v(this._mouseEvents, t) !== -1) return;
|
|
1475
1475
|
}
|
|
1476
1476
|
},
|
|
1477
1477
|
_draggableMoved: function(e) {
|
|
@@ -1534,7 +1534,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1534
1534
|
return e + t > 0 ? Math.round(e - t) / 2 : Math.max(0, Math.ceil(e)) - Math.max(0, Math.floor(t));
|
|
1535
1535
|
},
|
|
1536
1536
|
_limitZoom: function(e) {
|
|
1537
|
-
var t = this.getMinZoom(), n = this.getMaxZoom(), r =
|
|
1537
|
+
var t = this.getMinZoom(), n = this.getMaxZoom(), r = B.any3d ? this.options.zoomSnap : 1;
|
|
1538
1538
|
return r && (e = Math.round(e / r) * r), Math.max(t, Math.min(n, e));
|
|
1539
1539
|
},
|
|
1540
1540
|
_onPanTransitionStep: function() {
|
|
@@ -1571,7 +1571,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1571
1571
|
if (this._animatingZoom) return !0;
|
|
1572
1572
|
if (n ||= {}, !this._zoomAnimated || n.animate === !1 || this._nothingToAnimate() || Math.abs(t - this._zoom) > this.options.zoomAnimationThreshold) return !1;
|
|
1573
1573
|
var r = this.getZoomScale(t), i = this._getCenterOffset(e)._divideBy(1 - 1 / r);
|
|
1574
|
-
return n.animate !== !0 && !this.getSize().contains(i) ? !1 : (
|
|
1574
|
+
return n.animate !== !0 && !this.getSize().contains(i) ? !1 : (b(function() {
|
|
1575
1575
|
this._moveStart(!0, n.noMoveStart || !1)._animateZoom(e, t, !0);
|
|
1576
1576
|
}, this), !0);
|
|
1577
1577
|
},
|
|
@@ -1589,7 +1589,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1589
1589
|
function sn(e, t) {
|
|
1590
1590
|
return new X(e, t);
|
|
1591
1591
|
}
|
|
1592
|
-
var Z =
|
|
1592
|
+
var Z = S.extend({
|
|
1593
1593
|
options: { position: "topright" },
|
|
1594
1594
|
initialize: function(e) {
|
|
1595
1595
|
p(this, e);
|
|
@@ -1849,7 +1849,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1849
1849
|
}, hn = Z.extend({
|
|
1850
1850
|
options: {
|
|
1851
1851
|
position: "bottomright",
|
|
1852
|
-
prefix: "<a href=\"https://leafletjs.com\" title=\"A JavaScript library for interactive maps\">" + (
|
|
1852
|
+
prefix: "<a href=\"https://leafletjs.com\" title=\"A JavaScript library for interactive maps\">" + (B.inlineSvg ? "<svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"8\" viewBox=\"0 0 12 8\" class=\"leaflet-attribution-flag\"><path fill=\"#4C7BE1\" d=\"M0 0h12v4H0z\"/><path fill=\"#FFD500\" d=\"M0 4h12v3H0z\"/><path fill=\"#E0BC00\" d=\"M0 7h12v1H0z\"/></svg> " : "") + "Leaflet</a>"
|
|
1853
1853
|
},
|
|
1854
1854
|
initialize: function(e) {
|
|
1855
1855
|
p(this, e), this._attributions = {};
|
|
@@ -1889,7 +1889,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1889
1889
|
}), Z.Layers = ln, Z.Zoom = dn, Z.Scale = pn, Z.Attribution = hn, cn.layers = un, cn.zoom = fn, cn.scale = mn, cn.attribution = function(e) {
|
|
1890
1890
|
return new hn(e);
|
|
1891
1891
|
};
|
|
1892
|
-
var gn =
|
|
1892
|
+
var gn = S.extend({
|
|
1893
1893
|
initialize: function(e) {
|
|
1894
1894
|
this._map = e;
|
|
1895
1895
|
},
|
|
@@ -1906,7 +1906,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
1906
1906
|
gn.addTo = function(e, t) {
|
|
1907
1907
|
return e.addHandler(t, this), this;
|
|
1908
1908
|
};
|
|
1909
|
-
var _n = { Events:
|
|
1909
|
+
var _n = { Events: C }, vn = B.touch ? "touchstart mousedown" : "mousedown", yn = se.extend({
|
|
1910
1910
|
options: { clickTolerance: 3 },
|
|
1911
1911
|
initialize: function(e, t, n, r) {
|
|
1912
1912
|
p(this, r), this._element = e, this._dragStartTarget = t || e, this._preventOutline = n;
|
|
@@ -2137,7 +2137,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
2137
2137
|
infinite: !0
|
|
2138
2138
|
});
|
|
2139
2139
|
M.Earth = N, M.EPSG3395 = Hn, M.EPSG3857 = fe, M.EPSG900913 = pe, M.EPSG4326 = Un, M.Simple = Wn;
|
|
2140
|
-
var $ =
|
|
2140
|
+
var $ = se.extend({
|
|
2141
2141
|
options: {
|
|
2142
2142
|
pane: "overlayPane",
|
|
2143
2143
|
attribution: null,
|
|
@@ -2290,7 +2290,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
2290
2290
|
}
|
|
2291
2291
|
}), Jn = function(e, t) {
|
|
2292
2292
|
return new qn(e, t);
|
|
2293
|
-
}, Yn =
|
|
2293
|
+
}, Yn = S.extend({
|
|
2294
2294
|
options: {
|
|
2295
2295
|
popupAnchor: [0, 0],
|
|
2296
2296
|
tooltipAnchor: [0, 0],
|
|
@@ -2324,7 +2324,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
2324
2324
|
return t ||= document.createElement("img"), t.src = e, t;
|
|
2325
2325
|
},
|
|
2326
2326
|
_getIconUrl: function(e) {
|
|
2327
|
-
return
|
|
2327
|
+
return B.retina && this.options[e + "RetinaUrl"] || this.options[e + "Url"];
|
|
2328
2328
|
}
|
|
2329
2329
|
});
|
|
2330
2330
|
function Xn(e) {
|
|
@@ -2385,21 +2385,21 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
2385
2385
|
var t = this._marker, n = t._map, r = this._marker.options.autoPanSpeed, i = this._marker.options.autoPanPadding, a = At(t._icon), o = n.getPixelBounds(), s = n.getPixelOrigin(), c = D(o.min._subtract(s).add(i), o.max._subtract(s).subtract(i));
|
|
2386
2386
|
if (!c.contains(a)) {
|
|
2387
2387
|
var l = T((Math.max(c.max.x, a.x) - c.max.x) / (o.max.x - c.max.x) - (Math.min(c.min.x, a.x) - c.min.x) / (o.min.x - c.min.x), (Math.max(c.max.y, a.y) - c.max.y) / (o.max.y - c.max.y) - (Math.min(c.min.y, a.y) - c.min.y) / (o.min.y - c.min.y)).multiplyBy(r);
|
|
2388
|
-
n.panBy(l, { animate: !1 }), this._draggable._newPos._add(l), this._draggable._startPos._add(l), K(t._icon, this._draggable._newPos), this._onDrag(e), this._panRequest =
|
|
2388
|
+
n.panBy(l, { animate: !1 }), this._draggable._newPos._add(l), this._draggable._startPos._add(l), K(t._icon, this._draggable._newPos), this._onDrag(e), this._panRequest = b(this._adjustPan.bind(this, e));
|
|
2389
2389
|
}
|
|
2390
2390
|
},
|
|
2391
2391
|
_onDragStart: function() {
|
|
2392
2392
|
this._oldLatLng = this._marker.getLatLng(), this._marker.closePopup && this._marker.closePopup(), this._marker.fire("movestart").fire("dragstart");
|
|
2393
2393
|
},
|
|
2394
2394
|
_onPreDrag: function(e) {
|
|
2395
|
-
this._marker.options.autoPan && (
|
|
2395
|
+
this._marker.options.autoPan && (x(this._panRequest), this._panRequest = b(this._adjustPan.bind(this, e)));
|
|
2396
2396
|
},
|
|
2397
2397
|
_onDrag: function(e) {
|
|
2398
2398
|
var t = this._marker, n = t._shadow, r = At(t._icon), i = t._map.layerPointToLatLng(r);
|
|
2399
2399
|
n && K(n, r), t._latlng = i, e.latlng = i, e.oldLatLng = this._oldLatLng, t.fire("move", e).fire("drag", e);
|
|
2400
2400
|
},
|
|
2401
2401
|
_onDragEnd: function(e) {
|
|
2402
|
-
|
|
2402
|
+
x(this._panRequest), delete this._oldLatLng, this._marker.fire("moveend").fire("dragend", e);
|
|
2403
2403
|
}
|
|
2404
2404
|
}), $n = $.extend({
|
|
2405
2405
|
options: {
|
|
@@ -3420,7 +3420,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
3420
3420
|
options: {
|
|
3421
3421
|
tileSize: 256,
|
|
3422
3422
|
opacity: 1,
|
|
3423
|
-
updateWhenIdle:
|
|
3423
|
+
updateWhenIdle: B.mobile,
|
|
3424
3424
|
updateWhenZooming: !0,
|
|
3425
3425
|
updateInterval: 200,
|
|
3426
3426
|
zIndex: 1,
|
|
@@ -3496,7 +3496,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
3496
3496
|
isFinite(n) && (this.options.zIndex = n + e(-1, 1), this._updateZIndex());
|
|
3497
3497
|
},
|
|
3498
3498
|
_updateOpacity: function() {
|
|
3499
|
-
if (this._map && !
|
|
3499
|
+
if (this._map && !B.ielt9) {
|
|
3500
3500
|
G(this._container, this.options.opacity);
|
|
3501
3501
|
var e = +/* @__PURE__ */ new Date(), t = !1, n = !1;
|
|
3502
3502
|
for (var r in this._tiles) {
|
|
@@ -3506,7 +3506,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
3506
3506
|
G(i.el, a), a < 1 ? t = !0 : (i.active ? n = !0 : this._onOpaqueTile(i), i.active = !0);
|
|
3507
3507
|
}
|
|
3508
3508
|
}
|
|
3509
|
-
n && !this._noPrune && this._pruneTiles(), t && (
|
|
3509
|
+
n && !this._noPrune && this._pruneTiles(), t && (x(this._fadeFrame), this._fadeFrame = b(this._updateOpacity, this));
|
|
3510
3510
|
}
|
|
3511
3511
|
},
|
|
3512
3512
|
_onOpaqueTile: l,
|
|
@@ -3584,7 +3584,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
3584
3584
|
},
|
|
3585
3585
|
_setZoomTransform: function(e, t, n) {
|
|
3586
3586
|
var r = this._map.getZoomScale(n, e.zoom), i = e.origin.multiplyBy(r).subtract(this._map._getNewPixelOrigin(t, n)).round();
|
|
3587
|
-
|
|
3587
|
+
B.any3d ? kt(e.el, i, r) : K(e.el, i);
|
|
3588
3588
|
},
|
|
3589
3589
|
_resetGrid: function() {
|
|
3590
3590
|
var e = this._map, t = e.options.crs, n = this._tileSize = this.getTileSize(), r = this._tileZoom, i = this._map.getPixelWorldBounds(this._tileZoom);
|
|
@@ -3667,11 +3667,11 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
3667
3667
|
_initTile: function(e) {
|
|
3668
3668
|
U(e, "leaflet-tile");
|
|
3669
3669
|
var t = this.getTileSize();
|
|
3670
|
-
e.style.width = t.x + "px", e.style.height = t.y + "px", e.onselectstart = l, e.onmousemove = l,
|
|
3670
|
+
e.style.width = t.x + "px", e.style.height = t.y + "px", e.onselectstart = l, e.onmousemove = l, B.ielt9 && this.options.opacity < 1 && G(e, this.options.opacity);
|
|
3671
3671
|
},
|
|
3672
3672
|
_addTile: function(e, t) {
|
|
3673
3673
|
var n = this._getTilePos(e), r = this._tileCoordsToKey(e), a = this.createTile(this._wrapCoords(e), i(this._tileReady, this, e));
|
|
3674
|
-
this._initTile(a), this.createTile.length < 2 &&
|
|
3674
|
+
this._initTile(a), this.createTile.length < 2 && b(i(this._tileReady, this, e, null, a)), K(a, n), this._tiles[r] = {
|
|
3675
3675
|
el: a,
|
|
3676
3676
|
coords: e,
|
|
3677
3677
|
current: !0
|
|
@@ -3687,10 +3687,10 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
3687
3687
|
coords: e
|
|
3688
3688
|
});
|
|
3689
3689
|
var r = this._tileCoordsToKey(e);
|
|
3690
|
-
n = this._tiles[r], n && (n.loaded = +/* @__PURE__ */ new Date(), this._map._fadeAnimated ? (G(n.el, 0),
|
|
3690
|
+
n = this._tiles[r], n && (n.loaded = +/* @__PURE__ */ new Date(), this._map._fadeAnimated ? (G(n.el, 0), x(this._fadeFrame), this._fadeFrame = b(this._updateOpacity, this)) : (n.active = !0, this._pruneTiles()), t || (U(n.el, "leaflet-tile-loaded"), this.fire("tileload", {
|
|
3691
3691
|
tile: n.el,
|
|
3692
3692
|
coords: e
|
|
3693
|
-
})), this._noTilesToLoad() && (this._loading = !1, this.fire("load"),
|
|
3693
|
+
})), this._noTilesToLoad() && (this._loading = !1, this.fire("load"), B.ielt9 || !this._map._fadeAnimated ? b(this._pruneTiles, this) : setTimeout(i(this._pruneTiles, this), 250)));
|
|
3694
3694
|
},
|
|
3695
3695
|
_getTilePos: function(e) {
|
|
3696
3696
|
return e.scaleBy(this.getTileSize()).subtract(this._level.origin);
|
|
@@ -3725,7 +3725,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
3725
3725
|
referrerPolicy: !1
|
|
3726
3726
|
},
|
|
3727
3727
|
initialize: function(e, t) {
|
|
3728
|
-
this._url = e, t = p(this, t), t.detectRetina &&
|
|
3728
|
+
this._url = e, t = p(this, t), t.detectRetina && B.retina && t.maxZoom > 0 ? (t.tileSize = Math.floor(t.tileSize / 2), t.zoomReverse ? (t.zoomOffset--, t.minZoom = Math.min(t.maxZoom, t.minZoom + 1)) : (t.zoomOffset++, t.maxZoom = Math.max(t.minZoom, t.maxZoom - 1)), t.minZoom = Math.max(0, t.minZoom)) : t.zoomReverse ? t.minZoom = Math.min(t.maxZoom, t.minZoom) : t.maxZoom = Math.max(t.minZoom, t.maxZoom), typeof t.subdomains == "string" && (t.subdomains = t.subdomains.split("")), this.on("tileunload", this._onTileRemove);
|
|
3729
3729
|
},
|
|
3730
3730
|
setUrl: function(e, t) {
|
|
3731
3731
|
return this._url === e && t === void 0 && (t = !0), this._url = e, t || this.redraw(), this;
|
|
@@ -3736,7 +3736,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
3736
3736
|
},
|
|
3737
3737
|
getTileUrl: function(e) {
|
|
3738
3738
|
var t = {
|
|
3739
|
-
r:
|
|
3739
|
+
r: B.retina ? "@2x" : "",
|
|
3740
3740
|
s: this._getSubdomain(e),
|
|
3741
3741
|
x: e.x,
|
|
3742
3742
|
y: e.y,
|
|
@@ -3749,7 +3749,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
3749
3749
|
return g(this._url, n(t, this.options));
|
|
3750
3750
|
},
|
|
3751
3751
|
_tileOnLoad: function(e, t) {
|
|
3752
|
-
|
|
3752
|
+
B.ielt9 ? setTimeout(i(e, this, null, t), 0) : e(null, t);
|
|
3753
3753
|
},
|
|
3754
3754
|
_tileOnError: function(e, t, n) {
|
|
3755
3755
|
var r = this.options.errorTileUrl;
|
|
@@ -3769,7 +3769,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
3769
3769
|
_abortLoading: function() {
|
|
3770
3770
|
var e, t;
|
|
3771
3771
|
for (e in this._tiles) if (this._tiles[e].coords.z !== this._tileZoom && (t = this._tiles[e].el, t.onload = l, t.onerror = l, !t.complete)) {
|
|
3772
|
-
t.src =
|
|
3772
|
+
t.src = y;
|
|
3773
3773
|
var n = this._tiles[e].coords;
|
|
3774
3774
|
H(t), delete this._tiles[e], this.fire("tileabort", {
|
|
3775
3775
|
tile: t,
|
|
@@ -3779,10 +3779,10 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
3779
3779
|
},
|
|
3780
3780
|
_removeTile: function(e) {
|
|
3781
3781
|
var t = this._tiles[e];
|
|
3782
|
-
if (t) return t.el.setAttribute("src",
|
|
3782
|
+
if (t) return t.el.setAttribute("src", y), Fr.prototype._removeTile.call(this, e);
|
|
3783
3783
|
},
|
|
3784
3784
|
_tileReady: function(e, t, n) {
|
|
3785
|
-
if (!(!this._map || n && n.getAttribute("src") ===
|
|
3785
|
+
if (!(!this._map || n && n.getAttribute("src") === y)) return Fr.prototype._tileReady.call(this, e, t, n);
|
|
3786
3786
|
}
|
|
3787
3787
|
});
|
|
3788
3788
|
function Rr(e, t) {
|
|
@@ -3807,7 +3807,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
3807
3807
|
var r = n({}, this.defaultWmsParams);
|
|
3808
3808
|
for (var i in t) i in this.options || (r[i] = t[i]);
|
|
3809
3809
|
t = p(this, t);
|
|
3810
|
-
var a = t.detectRetina &&
|
|
3810
|
+
var a = t.detectRetina && B.retina ? 2 : 1, o = this.getTileSize();
|
|
3811
3811
|
r.width = o.x * a, r.height = o.y * a, this.wmsParams = r;
|
|
3812
3812
|
},
|
|
3813
3813
|
onAdd: function(e) {
|
|
@@ -3865,7 +3865,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
3865
3865
|
},
|
|
3866
3866
|
_updateTransform: function(e, t) {
|
|
3867
3867
|
var n = this._map.getZoomScale(t, this._zoom), r = this._map.getSize().multiplyBy(.5 + this.options.padding), i = this._map.project(this._center, t), a = r.multiplyBy(-n).add(i).subtract(this._map._getNewPixelOrigin(e, t));
|
|
3868
|
-
|
|
3868
|
+
B.any3d ? kt(this._container, a, n) : K(this._container, a);
|
|
3869
3869
|
},
|
|
3870
3870
|
_reset: function() {
|
|
3871
3871
|
for (var e in this._update(), this._updateTransform(this._center, this._zoom), this._layers) this._layers[e]._reset();
|
|
@@ -3897,7 +3897,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
3897
3897
|
q(e, "mousemove", this._onMouseMove, this), q(e, "click dblclick mousedown mouseup contextmenu", this._onClick, this), q(e, "mouseout", this._handleMouseOut, this), e._leaflet_disable_events = !0, this._ctx = e.getContext("2d");
|
|
3898
3898
|
},
|
|
3899
3899
|
_destroyContainer: function() {
|
|
3900
|
-
|
|
3900
|
+
x(this._redrawRequest), delete this._ctx, H(this._container), J(this._container), delete this._container;
|
|
3901
3901
|
},
|
|
3902
3902
|
_updatePaths: function() {
|
|
3903
3903
|
if (!this._postponeUpdatePaths) {
|
|
@@ -3909,8 +3909,8 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
3909
3909
|
_update: function() {
|
|
3910
3910
|
if (!(this._map._animatingZoom && this._bounds)) {
|
|
3911
3911
|
Vr.prototype._update.call(this);
|
|
3912
|
-
var e = this._bounds, t = this._container, n = e.getSize(), r =
|
|
3913
|
-
K(t, e.min), t.width = r * n.x, t.height = r * n.y, t.style.width = n.x + "px", t.style.height = n.y + "px",
|
|
3912
|
+
var e = this._bounds, t = this._container, n = e.getSize(), r = B.retina ? 2 : 1;
|
|
3913
|
+
K(t, e.min), t.width = r * n.x, t.height = r * n.y, t.style.width = n.x + "px", t.style.height = n.y + "px", B.retina && this._ctx.scale(2, 2), this._ctx.translate(-e.min.x, -e.min.y), this.fire("update");
|
|
3914
3914
|
}
|
|
3915
3915
|
},
|
|
3916
3916
|
_reset: function() {
|
|
@@ -3948,7 +3948,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
3948
3948
|
} else e.options._dashArray = e.options.dashArray;
|
|
3949
3949
|
},
|
|
3950
3950
|
_requestRedraw: function(e) {
|
|
3951
|
-
this._map && (this._extendRedrawBounds(e), this._redrawRequest = this._redrawRequest ||
|
|
3951
|
+
this._map && (this._extendRedrawBounds(e), this._redrawRequest = this._redrawRequest || b(this._redraw, this));
|
|
3952
3952
|
},
|
|
3953
3953
|
_extendRedrawBounds: function(e) {
|
|
3954
3954
|
if (e._pxBounds) {
|
|
@@ -4043,7 +4043,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
4043
4043
|
}
|
|
4044
4044
|
});
|
|
4045
4045
|
function Ur(e) {
|
|
4046
|
-
return
|
|
4046
|
+
return B.canvas ? new Hr(e) : null;
|
|
4047
4047
|
}
|
|
4048
4048
|
var Wr = (function() {
|
|
4049
4049
|
try {
|
|
@@ -4090,7 +4090,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
4090
4090
|
_bringToBack: function(e) {
|
|
4091
4091
|
Ct(e._container);
|
|
4092
4092
|
}
|
|
4093
|
-
}, Kr =
|
|
4093
|
+
}, Kr = B.vml ? Wr : me, qr = Vr.extend({
|
|
4094
4094
|
_initContainer: function() {
|
|
4095
4095
|
this._container = Kr("svg"), this._container.setAttribute("pointer-events", "none"), this._rootGroup = Kr("g"), this._container.appendChild(this._rootGroup);
|
|
4096
4096
|
},
|
|
@@ -4143,9 +4143,9 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
4143
4143
|
Ct(e._path);
|
|
4144
4144
|
}
|
|
4145
4145
|
});
|
|
4146
|
-
|
|
4146
|
+
B.vml && qr.include(Gr);
|
|
4147
4147
|
function Jr(e) {
|
|
4148
|
-
return
|
|
4148
|
+
return B.svg || B.vml ? new qr(e) : null;
|
|
4149
4149
|
}
|
|
4150
4150
|
X.include({
|
|
4151
4151
|
getRenderer: function(e) {
|
|
@@ -4320,7 +4320,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
4320
4320
|
else {
|
|
4321
4321
|
this._prunePositions(+/* @__PURE__ */ new Date());
|
|
4322
4322
|
var i = this._lastPos.subtract(this._positions[0]), a = (this._lastTime - this._times[0]) / 1e3, o = n.easeLinearity, s = i.multiplyBy(o / a), c = s.distanceTo([0, 0]), l = Math.min(n.inertiaMaxSpeed, c), u = s.multiplyBy(l / c), d = l / (n.inertiaDeceleration * o), f = u.multiplyBy(-d / 2).round();
|
|
4323
|
-
!f.x && !f.y ? t.fire("moveend") : (f = t._limitOffset(f, t.options.maxBounds),
|
|
4323
|
+
!f.x && !f.y ? t.fire("moveend") : (f = t._limitOffset(f, t.options.maxBounds), b(function() {
|
|
4324
4324
|
t.panBy(f, {
|
|
4325
4325
|
duration: d,
|
|
4326
4326
|
easeLinearity: o,
|
|
@@ -4451,7 +4451,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
4451
4451
|
X.addInitHook("addHandler", "scrollWheelZoom", ti);
|
|
4452
4452
|
var ni = 600;
|
|
4453
4453
|
X.mergeOptions({
|
|
4454
|
-
tapHold:
|
|
4454
|
+
tapHold: B.touchNative && B.safari && B.mobile,
|
|
4455
4455
|
tapTolerance: 15
|
|
4456
4456
|
});
|
|
4457
4457
|
var ri = gn.extend({
|
|
@@ -4496,7 +4496,7 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
4496
4496
|
}
|
|
4497
4497
|
});
|
|
4498
4498
|
X.addInitHook("addHandler", "tapHold", ri), X.mergeOptions({
|
|
4499
|
-
touchZoom:
|
|
4499
|
+
touchZoom: B.touch,
|
|
4500
4500
|
bounceAtZoomLimits: !0
|
|
4501
4501
|
});
|
|
4502
4502
|
var ii = gn.extend({
|
|
@@ -4523,38 +4523,38 @@ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescr
|
|
|
4523
4523
|
if (a === 1 && o.x === 0 && o.y === 0) return;
|
|
4524
4524
|
this._center = t.unproject(t.project(this._pinchStartLatLng, this._zoom).subtract(o), this._zoom);
|
|
4525
4525
|
}
|
|
4526
|
-
this._moved ||= (t._moveStart(!0, !1), !0),
|
|
4526
|
+
this._moved ||= (t._moveStart(!0, !1), !0), x(this._animRequest);
|
|
4527
4527
|
var s = i(t._move, t, this._center, this._zoom, {
|
|
4528
4528
|
pinch: !0,
|
|
4529
4529
|
round: !1
|
|
4530
4530
|
}, void 0);
|
|
4531
|
-
this._animRequest =
|
|
4531
|
+
this._animRequest = b(s, this, !0), Y(e);
|
|
4532
4532
|
}
|
|
4533
4533
|
},
|
|
4534
4534
|
_onTouchEnd: function() {
|
|
4535
|
-
!this._moved || !this._zooming ? this._zooming = !1 : (this._zooming = !1,
|
|
4535
|
+
!this._moved || !this._zooming ? this._zooming = !1 : (this._zooming = !1, x(this._animRequest), J(document, "touchmove", this._onTouchMove, this), J(document, "touchend touchcancel", this._onTouchEnd, this), this._map.options.zoomAnimation ? this._map._animateZoom(this._center, this._map._limitZoom(this._zoom), !0, this._map.options.zoomSnap) : this._map._resetView(this._center, this._map._limitZoom(this._zoom)));
|
|
4536
4536
|
}
|
|
4537
4537
|
});
|
|
4538
|
-
X.addInitHook("addHandler", "touchZoom", ii), X.BoxZoom = Zr, X.DoubleClickZoom = Qr, X.Drag = $r, X.Keyboard = ei, X.ScrollWheelZoom = ti, X.TapHold = ri, X.TouchZoom = ii, e.Bounds = E, e.Browser =
|
|
4538
|
+
X.addInitHook("addHandler", "touchZoom", ii), X.BoxZoom = Zr, X.DoubleClickZoom = Qr, X.Drag = $r, X.Keyboard = ei, X.ScrollWheelZoom = ti, X.TapHold = ri, X.TouchZoom = ii, e.Bounds = E, e.Browser = B, e.CRS = M, e.Canvas = Hr, e.Circle = ir, e.CircleMarker = nr, e.Class = S, e.Control = Z, e.DivIcon = Nr, e.DivOverlay = Or, e.DomEvent = an, e.DomUtil = Ut, e.Draggable = yn, e.Evented = se, e.FeatureGroup = qn, e.GeoJSON = ur, e.GridLayer = Fr, e.Handler = gn, e.Icon = Yn, e.ImageOverlay = Sr, e.LatLng = A, e.LatLngBounds = O, e.Layer = $, e.LayerGroup = Gn, e.LineUtil = Rn, e.Map = X, e.Marker = $n, e.Mixin = _n, e.Path = tr, e.Point = w, e.PolyUtil = Cn, e.Polygon = cr, e.Polyline = or, e.Popup = kr, e.PosAnimation = on, e.Projection = Vn, e.Rectangle = Yr, e.Renderer = Vr, e.SVG = qr, e.SVGOverlay = Er, e.TileLayer = Lr, e.Tooltip = jr, e.Transformation = P, e.Util = ae, e.VideoOverlay = wr, e.bind = i, e.bounds = D, e.canvas = Ur, e.circle = ar, e.circleMarker = rr, e.control = cn, e.divIcon = Pr, e.extend = n, e.featureGroup = Jn, e.geoJSON = br, e.geoJson = xr, e.gridLayer = Ir, e.icon = Xn, e.imageOverlay = Cr, e.latLng = j, e.latLngBounds = k, e.layerGroup = Kn, e.map = sn, e.marker = er, e.point = T, e.polygon = lr, e.polyline = sr, e.popup = Ar, e.rectangle = Xr, e.setOptions = p, e.stamp = o, e.svg = Jr, e.svgOverlay = Dr, e.tileLayer = Rr, e.tooltip = Mr, e.transformation = de, e.version = t, e.videoOverlay = Tr;
|
|
4539
4539
|
var ai = window.L;
|
|
4540
4540
|
e.noConflict = function() {
|
|
4541
4541
|
return window.L = ai, this;
|
|
4542
4542
|
}, window.L = e;
|
|
4543
4543
|
}));
|
|
4544
|
-
})))(), 1),
|
|
4545
|
-
function
|
|
4546
|
-
return [...e.querySelectorAll(
|
|
4544
|
+
})))(), 1), de = ".lintje-map-chart__layers, .lintje-map-chart__zoom, .lintje-map-chart__selection, .lintje-map-chart__scale-bar, .leaflet-control";
|
|
4545
|
+
function fe(e) {
|
|
4546
|
+
return [...e.querySelectorAll(de)].map((e) => e.getBoundingClientRect()).filter((e) => e.width > 0 && e.height > 0);
|
|
4547
4547
|
}
|
|
4548
|
-
var
|
|
4548
|
+
var pe = (e, t) => e.left < t.right && t.left < e.right && e.top < t.bottom && t.top < e.bottom, me = (e, t) => e.left >= t.left && e.right <= t.right && e.top >= t.top && e.bottom <= t.bottom, he = (e, t, n) => ({
|
|
4549
4549
|
left: e.left + t,
|
|
4550
4550
|
right: e.right + t,
|
|
4551
4551
|
top: e.top + n,
|
|
4552
4552
|
bottom: e.bottom + n
|
|
4553
4553
|
});
|
|
4554
|
-
function
|
|
4554
|
+
function ge(e, t, n, r) {
|
|
4555
4555
|
let i = (r, i) => {
|
|
4556
|
-
let a =
|
|
4557
|
-
return
|
|
4556
|
+
let a = he(e, r, i);
|
|
4557
|
+
return me(a, t) && !n.some((e) => pe(a, e));
|
|
4558
4558
|
};
|
|
4559
4559
|
if (i(0, 0)) return [0, 0];
|
|
4560
4560
|
let a = [
|
|
@@ -4571,16 +4571,16 @@ function ye(e, t, n, r) {
|
|
|
4571
4571
|
for (let e of a) for (let t of o) s && Math.hypot(e, t) >= Math.hypot(...s) || i(e, t) && (s = [e, t]);
|
|
4572
4572
|
return s;
|
|
4573
4573
|
}
|
|
4574
|
-
function
|
|
4574
|
+
function _e(e, t, n) {
|
|
4575
4575
|
let r = {
|
|
4576
4576
|
left: Math.max(e.left, t.left),
|
|
4577
4577
|
right: Math.min(e.right, t.right),
|
|
4578
4578
|
top: Math.max(e.top, t.top),
|
|
4579
4579
|
bottom: Math.min(e.bottom, t.bottom)
|
|
4580
4580
|
};
|
|
4581
|
-
return r.left >= r.right || r.top >= r.bottom || n.some((e) =>
|
|
4581
|
+
return r.left >= r.right || r.top >= r.bottom || n.some((e) => me(r, e));
|
|
4582
4582
|
}
|
|
4583
|
-
function
|
|
4583
|
+
function ve(e) {
|
|
4584
4584
|
try {
|
|
4585
4585
|
return e.matches(":focus-visible");
|
|
4586
4586
|
} catch {
|
|
@@ -4589,27 +4589,27 @@ function be(e) {
|
|
|
4589
4589
|
}
|
|
4590
4590
|
//#endregion
|
|
4591
4591
|
//#region src/components/shared/charts/map-chart/drawings.ts
|
|
4592
|
-
var
|
|
4592
|
+
var ye = {
|
|
4593
4593
|
polygons: "Vlakken",
|
|
4594
4594
|
points: "Punten",
|
|
4595
4595
|
flows: "Stromen",
|
|
4596
4596
|
choropleth: "Gebieden",
|
|
4597
4597
|
"scope-picker": "Punten"
|
|
4598
|
-
},
|
|
4598
|
+
}, F = (e) => Math.max(1, ...e.map((e) => e.value ?? 0)), I = (e) => {
|
|
4599
4599
|
let t = e.filter((e) => e.value != null).map((e) => e.value);
|
|
4600
|
-
return t.length ? Math.min(...t) :
|
|
4600
|
+
return t.length ? Math.min(...t) : F(e);
|
|
4601
4601
|
};
|
|
4602
|
-
function
|
|
4602
|
+
function be(e, t) {
|
|
4603
4603
|
if (e.variant !== "plots") {
|
|
4604
4604
|
let n = e.values ?? [];
|
|
4605
4605
|
return [{
|
|
4606
4606
|
variant: e.variant,
|
|
4607
4607
|
values: n,
|
|
4608
4608
|
index: 0,
|
|
4609
|
-
name:
|
|
4609
|
+
name: ye[e.variant],
|
|
4610
4610
|
unit: t,
|
|
4611
|
-
max:
|
|
4612
|
-
min:
|
|
4611
|
+
max: F(n),
|
|
4612
|
+
min: I(n),
|
|
4613
4613
|
destination: e.destination,
|
|
4614
4614
|
seriesLabels: e.seriesLabels
|
|
4615
4615
|
}];
|
|
@@ -4620,10 +4620,10 @@ function we(e, t) {
|
|
|
4620
4620
|
variant: n.variant,
|
|
4621
4621
|
values: i,
|
|
4622
4622
|
index: r,
|
|
4623
|
-
name: n.label ??
|
|
4623
|
+
name: n.label ?? ye[n.variant],
|
|
4624
4624
|
unit: n.unit ?? t,
|
|
4625
|
-
max:
|
|
4626
|
-
min:
|
|
4625
|
+
max: F(i),
|
|
4626
|
+
min: I(i),
|
|
4627
4627
|
destination: n.destination ?? e.destination,
|
|
4628
4628
|
seriesLabels: n.seriesLabels ? {
|
|
4629
4629
|
...e.seriesLabels,
|
|
@@ -4632,12 +4632,12 @@ function we(e, t) {
|
|
|
4632
4632
|
};
|
|
4633
4633
|
});
|
|
4634
4634
|
}
|
|
4635
|
-
function
|
|
4635
|
+
function R(e, t) {
|
|
4636
4636
|
return t ? `${e} ${t}` : e;
|
|
4637
4637
|
}
|
|
4638
4638
|
//#endregion
|
|
4639
4639
|
//#region src/components/shared/charts/map-chart/geo.ts
|
|
4640
|
-
var
|
|
4640
|
+
var xe = {
|
|
4641
4641
|
world: {
|
|
4642
4642
|
type: "FeatureCollection",
|
|
4643
4643
|
bbox: [
|
|
@@ -20617,17 +20617,17 @@ var Te = {
|
|
|
20617
20617
|
}]
|
|
20618
20618
|
}
|
|
20619
20619
|
};
|
|
20620
|
-
function
|
|
20621
|
-
return
|
|
20620
|
+
function Se(e) {
|
|
20621
|
+
return xe[e ?? "world"] ?? xe.world;
|
|
20622
20622
|
}
|
|
20623
20623
|
//#endregion
|
|
20624
20624
|
//#region src/components/shared/charts/map-chart/area.ts
|
|
20625
|
-
var
|
|
20626
|
-
function
|
|
20625
|
+
var Ce = 6371;
|
|
20626
|
+
function we([e, t], [n, r]) {
|
|
20627
20627
|
let i = Math.PI / 180, a = (r - t) * i, o = (n - e) * i, s = Math.sin(a / 2) ** 2 + Math.cos(t * i) * Math.cos(r * i) * Math.sin(o / 2) ** 2;
|
|
20628
|
-
return 2 *
|
|
20628
|
+
return 2 * Ce * Math.asin(Math.min(1, Math.sqrt(s)));
|
|
20629
20629
|
}
|
|
20630
|
-
function
|
|
20630
|
+
function Te(e, [t, n]) {
|
|
20631
20631
|
let r = !1;
|
|
20632
20632
|
for (let i = 0, a = e.length - 1; i < e.length; a = i++) {
|
|
20633
20633
|
let [o, s] = e[i], [c, l] = e[a];
|
|
@@ -20635,7 +20635,7 @@ function ke(e, [t, n]) {
|
|
|
20635
20635
|
}
|
|
20636
20636
|
return r;
|
|
20637
20637
|
}
|
|
20638
|
-
function
|
|
20638
|
+
function Ee([e, t], [n, r]) {
|
|
20639
20639
|
return [
|
|
20640
20640
|
[e, t],
|
|
20641
20641
|
[n, t],
|
|
@@ -20643,20 +20643,20 @@ function Ae([e, t], [n, r]) {
|
|
|
20643
20643
|
[e, r]
|
|
20644
20644
|
];
|
|
20645
20645
|
}
|
|
20646
|
-
function
|
|
20646
|
+
function De(e) {
|
|
20647
20647
|
if (e.length !== 4) return !1;
|
|
20648
20648
|
let [t, n, r, i] = e;
|
|
20649
20649
|
return t[1] === n[1] && n[0] === r[0] && r[1] === i[1] && i[0] === t[0];
|
|
20650
20650
|
}
|
|
20651
|
-
var
|
|
20652
|
-
function
|
|
20653
|
-
return e.kind === "circle" ?
|
|
20651
|
+
var Oe = (e) => e.every(([t]) => t === e[0][0]) || e.every(([, t]) => t === e[0][1]);
|
|
20652
|
+
function ke(e, t) {
|
|
20653
|
+
return e.kind === "circle" ? we(e.centre, t) <= e.radiusKm : e.ring.length > 2 && Te(e.ring, t);
|
|
20654
20654
|
}
|
|
20655
|
-
function
|
|
20655
|
+
function Ae([e, t], [n, r], [i, a], [o, s]) {
|
|
20656
20656
|
let c = (e, t, n, r, i, a) => Math.sign((n - e) * (a - t) - (r - t) * (i - e));
|
|
20657
20657
|
return c(e, t, n, r, i, a) * c(e, t, n, r, o, s) < 0 && c(i, a, o, s, e, t) * c(i, a, o, s, n, r) < 0;
|
|
20658
20658
|
}
|
|
20659
|
-
function
|
|
20659
|
+
function je(e) {
|
|
20660
20660
|
let [t, n, r, i] = [
|
|
20661
20661
|
Infinity,
|
|
20662
20662
|
Infinity,
|
|
@@ -20671,8 +20671,8 @@ function Fe(e) {
|
|
|
20671
20671
|
i
|
|
20672
20672
|
];
|
|
20673
20673
|
}
|
|
20674
|
-
function
|
|
20675
|
-
if (e.kind === "lasso") return
|
|
20674
|
+
function Me(e) {
|
|
20675
|
+
if (e.kind === "lasso") return je(e.ring);
|
|
20676
20676
|
let [t, n] = e.centre, r = e.radiusKm / 111.32, i = e.radiusKm / (111.32 * Math.max(.01, Math.cos(n * Math.PI / 180)));
|
|
20677
20677
|
return [
|
|
20678
20678
|
t - i,
|
|
@@ -20681,31 +20681,31 @@ function Ie(e) {
|
|
|
20681
20681
|
n + r
|
|
20682
20682
|
];
|
|
20683
20683
|
}
|
|
20684
|
-
var
|
|
20685
|
-
function
|
|
20686
|
-
if (t.length === 0 || !
|
|
20684
|
+
var Ne = ([e, t, n, r], [i, a, o, s]) => e >= i && n <= o && t >= a && r <= s;
|
|
20685
|
+
function Pe(e, t) {
|
|
20686
|
+
if (t.length === 0 || !Ne(je(t), Me(e)) || !t.every((t) => ke(e, t))) return !1;
|
|
20687
20687
|
if (e.kind === "circle") return !0;
|
|
20688
20688
|
let n = (e) => e.map((t, n) => [t, e[(n + 1) % e.length]]), r = n(e.ring);
|
|
20689
|
-
return n(t).every(([e, t]) => r.every(([n, r]) => !
|
|
20689
|
+
return n(t).every(([e, t]) => r.every(([n, r]) => !Ae(e, t, n, r)));
|
|
20690
20690
|
}
|
|
20691
|
-
function
|
|
20691
|
+
function Fe(e, t) {
|
|
20692
20692
|
let n = Math.hypot(t[0] - e[0], t[1] - e[1]);
|
|
20693
20693
|
return [(e[0] + t[0]) / 2, (e[1] + t[1]) / 2 + n * .18];
|
|
20694
20694
|
}
|
|
20695
|
-
var
|
|
20696
|
-
function
|
|
20697
|
-
let t = e ?? "world", n =
|
|
20695
|
+
var Ie = /* @__PURE__ */ new Map();
|
|
20696
|
+
function Le(e) {
|
|
20697
|
+
let t = e ?? "world", n = Ie.get(t);
|
|
20698
20698
|
if (n) return n;
|
|
20699
20699
|
n = /* @__PURE__ */ new Map();
|
|
20700
|
-
for (let t of
|
|
20701
|
-
return
|
|
20700
|
+
for (let t of Se(e).features) n.set(t.properties.id, t.geometry.coordinates.map((e) => e[0]));
|
|
20701
|
+
return Ie.set(t, n), n;
|
|
20702
20702
|
}
|
|
20703
|
-
function
|
|
20703
|
+
function Re(e, t, n, r) {
|
|
20704
20704
|
if (t.variant === "choropleth") {
|
|
20705
|
-
let t =
|
|
20706
|
-
return !!t?.length && t.every((t) =>
|
|
20705
|
+
let t = Le(r).get(n.id);
|
|
20706
|
+
return !!t?.length && t.every((t) => Pe(e, t));
|
|
20707
20707
|
}
|
|
20708
|
-
if (t.variant === "polygons") return (n.polygon?.length ?? 0) > 2 &&
|
|
20708
|
+
if (t.variant === "polygons") return (n.polygon?.length ?? 0) > 2 && Pe(e, n.polygon);
|
|
20709
20709
|
if (n.lon == null || n.lat == null) return !1;
|
|
20710
20710
|
let i = [n.lon, n.lat];
|
|
20711
20711
|
if (t.variant === "flows") {
|
|
@@ -20715,169 +20715,169 @@ function He(e, t, n, r) {
|
|
|
20715
20715
|
return [
|
|
20716
20716
|
i,
|
|
20717
20717
|
r,
|
|
20718
|
-
|
|
20719
|
-
].every((t) =>
|
|
20718
|
+
Fe(i, r)
|
|
20719
|
+
].every((t) => ke(e, t));
|
|
20720
20720
|
}
|
|
20721
|
-
return
|
|
20721
|
+
return ke(e, i);
|
|
20722
20722
|
}
|
|
20723
|
-
function
|
|
20723
|
+
function ze(e, t, n) {
|
|
20724
20724
|
let r = [];
|
|
20725
|
-
for (let i of t) for (let t of i.values) !r.includes(t.id) &&
|
|
20725
|
+
for (let i of t) for (let t of i.values) !r.includes(t.id) && Re(e, i, t, n) && r.push(t.id);
|
|
20726
20726
|
return r;
|
|
20727
20727
|
}
|
|
20728
20728
|
//#endregion
|
|
20729
20729
|
//#region src/components/shared/charts/map-chart/marks.ts
|
|
20730
|
-
var
|
|
20730
|
+
var Be = [
|
|
20731
20731
|
"var(--color-chart-seq-1)",
|
|
20732
20732
|
"var(--color-chart-seq-2)",
|
|
20733
20733
|
"var(--color-chart-seq-3)",
|
|
20734
20734
|
"var(--color-chart-seq-4)",
|
|
20735
20735
|
"var(--color-chart-seq-5)"
|
|
20736
20736
|
];
|
|
20737
|
-
function
|
|
20737
|
+
function Ve(e, t) {
|
|
20738
20738
|
return t <= 0 ? 0 : Math.min(4, Math.floor(e / t * 5));
|
|
20739
20739
|
}
|
|
20740
|
-
var
|
|
20741
|
-
function
|
|
20740
|
+
var He = (e) => (e.polygon?.length ?? 0) > 2;
|
|
20741
|
+
function Ue(e, t) {
|
|
20742
20742
|
return 3 + Math.sqrt(e / t) * 15;
|
|
20743
20743
|
}
|
|
20744
|
-
var
|
|
20745
|
-
function
|
|
20744
|
+
var We = (e, t) => `${e.index}:${t}`, Ge = (e, t) => e.active === t || e.chosen.has(t), Ke = (e, t, n) => `${Ge(e, t) ? "is-selected" : ""} ${n ? "is-off" : ""}`;
|
|
20745
|
+
function qe(e) {
|
|
20746
20746
|
e.stopPropagation();
|
|
20747
20747
|
}
|
|
20748
|
-
function
|
|
20748
|
+
function Je(e, t) {
|
|
20749
20749
|
return (n) => {
|
|
20750
20750
|
(n.key === "Enter" || n.key === " ") && (n.preventDefault(), e(t));
|
|
20751
20751
|
};
|
|
20752
20752
|
}
|
|
20753
|
-
function
|
|
20753
|
+
function Ye(e) {
|
|
20754
20754
|
let t = new Map([...e].sort((e, t) => e.lon - t.lon).map((e, t) => [e.id, t]));
|
|
20755
|
-
return (n) =>
|
|
20755
|
+
return (n) => T(t.get(n.id) ?? 0, e.length);
|
|
20756
20756
|
}
|
|
20757
|
-
var
|
|
20758
|
-
function
|
|
20759
|
-
return t.tiled ? [] : e.map((e) =>
|
|
20757
|
+
var z = (e, t) => `${e.toFixed(2)} ${t.toFixed(2)}`;
|
|
20758
|
+
function B(e, t) {
|
|
20759
|
+
return t.tiled ? [] : e.map((e) => h`<path d=${e.d} class="lintje-map-chart__land" fill="var(--color-map-land)" />`);
|
|
20760
20760
|
}
|
|
20761
|
-
function
|
|
20761
|
+
function Xe(e, t) {
|
|
20762
20762
|
return e.map(([e, n], r) => {
|
|
20763
20763
|
let [i, a] = t(e, n);
|
|
20764
|
-
return `${r ? "L" : "M"}${
|
|
20764
|
+
return `${r ? "L" : "M"}${z(i, a)}`;
|
|
20765
20765
|
}).join("") + "Z";
|
|
20766
20766
|
}
|
|
20767
|
-
function
|
|
20768
|
-
let { id:
|
|
20769
|
-
return
|
|
20770
|
-
let
|
|
20771
|
-
return
|
|
20772
|
-
<g class="lintje-map-chart__polygon is-clickable ${
|
|
20773
|
-
data-mark-id=${
|
|
20774
|
-
role="button" tabindex=${
|
|
20775
|
-
aria-pressed=${String(
|
|
20776
|
-
aria-label=${`${
|
|
20767
|
+
function Ze(e, t, n, r) {
|
|
20768
|
+
let { id: i, controller: a, select: o, project: c } = t, u = new Map(n.map((e) => [e.id, e.d])), d = (t) => e.variant === "choropleth" ? u.get(t.id) : He(t) ? Xe(t.polygon, c) : void 0, f = e.values.filter((e) => d(e));
|
|
20769
|
+
return l(f, (e) => e.id, (n) => {
|
|
20770
|
+
let c = d(n), l = n.value == null, u = l ? "var(--color-chart-hatch)" : Be[Ve(n.value, e.max)], f = l ? "geen gegevens" : R(g(n.value), e.unit);
|
|
20771
|
+
return h`
|
|
20772
|
+
<g class="lintje-map-chart__polygon is-clickable ${Ke(t, n.id, r)}"
|
|
20773
|
+
data-mark-id=${n.id}
|
|
20774
|
+
role="button" tabindex=${r ? -1 : 0} aria-hidden=${r ? "true" : s}
|
|
20775
|
+
aria-pressed=${String(Ge(t, n.id))}
|
|
20776
|
+
aria-label=${`${n.label}: ${f}${n.detail ? `, ${n.detail}` : ""}`}
|
|
20777
20777
|
@click=${(e) => {
|
|
20778
|
-
|
|
20778
|
+
qe(e), o(n);
|
|
20779
20779
|
}}
|
|
20780
|
-
@dblclick=${
|
|
20781
|
-
@mousemove=${(t) =>
|
|
20782
|
-
title: `${
|
|
20780
|
+
@dblclick=${qe}
|
|
20781
|
+
@mousemove=${(t) => a.showTooltip(t, {
|
|
20782
|
+
title: `${n.label}${n.detail ? ` · ${n.detail}` : ""}`,
|
|
20783
20783
|
rows: [{
|
|
20784
20784
|
label: e.unit,
|
|
20785
|
-
value:
|
|
20786
|
-
color:
|
|
20785
|
+
value: l ? "geen gegevens" : g(n.value),
|
|
20786
|
+
color: u
|
|
20787
20787
|
}]
|
|
20788
20788
|
})}
|
|
20789
|
-
@mouseleave=${() =>
|
|
20790
|
-
@keydown=${
|
|
20791
|
-
<path d=${
|
|
20792
|
-
<path d=${
|
|
20793
|
-
class="lintje-map-chart__polygon-shape ${
|
|
20794
|
-
fill=${
|
|
20795
|
-
${
|
|
20789
|
+
@mouseleave=${() => a.hideTooltip()}
|
|
20790
|
+
@keydown=${Je(o, n)}>
|
|
20791
|
+
<path d=${c} class="lintje-map-chart__polygon-ring" />
|
|
20792
|
+
<path d=${c}
|
|
20793
|
+
class="lintje-map-chart__polygon-shape ${l ? "lintje-map-chart__polygon-shape--empty" : "lintje-map-chart__polygon-shape--data"}"
|
|
20794
|
+
fill=${l ? s : u} />
|
|
20795
|
+
${l ? h`<path d=${c} class="lintje-map-chart__polygon-hatch" fill="url(#map-hatch-${i})" />` : s}
|
|
20796
20796
|
</g>
|
|
20797
20797
|
`;
|
|
20798
20798
|
});
|
|
20799
20799
|
}
|
|
20800
|
-
function
|
|
20801
|
-
let { controller:
|
|
20802
|
-
if (!c) return
|
|
20803
|
-
let
|
|
20804
|
-
return
|
|
20800
|
+
function Qe(e, t, n) {
|
|
20801
|
+
let { controller: r, select: i, project: a } = t, c = e.destination;
|
|
20802
|
+
if (!c) return s;
|
|
20803
|
+
let u = e.values.filter((e) => e.lon != null && e.value != null), d = Ye(u), [f, p] = a(c.lon, c.lat);
|
|
20804
|
+
return h`
|
|
20805
20805
|
<g class="lintje-map-chart__flows">
|
|
20806
|
-
${
|
|
20807
|
-
let [
|
|
20808
|
-
return
|
|
20806
|
+
${l(u, (e) => e.id, (l) => {
|
|
20807
|
+
let [u, m] = a(l.lon, l.lat), _ = (u + f) / 2, v = (m + p) / 2 - Math.hypot(f - u, p - m) * .18, y = 1 + l.value / e.max * 7, ee = `${l.label} → ${c.label}`;
|
|
20808
|
+
return h`
|
|
20809
20809
|
<path
|
|
20810
|
-
d=${`M${
|
|
20810
|
+
d=${`M${z(u, m)}Q${z(_, v)} ${z(f, p)}`}
|
|
20811
20811
|
pathLength="1"
|
|
20812
|
-
${
|
|
20813
|
-
class="lintje-map-chart__flow is-clickable ${
|
|
20814
|
-
stroke-width=${
|
|
20812
|
+
${o(d(l))}
|
|
20813
|
+
class="lintje-map-chart__flow is-clickable ${Ke(t, l.id, n)}"
|
|
20814
|
+
stroke-width=${y}
|
|
20815
20815
|
data-mark-id=${l.id}
|
|
20816
|
-
role="button" tabindex=${
|
|
20817
|
-
aria-pressed=${String(
|
|
20818
|
-
aria-label=${`${
|
|
20819
|
-
@keydown=${
|
|
20816
|
+
role="button" tabindex=${n ? -1 : 0} aria-hidden=${n ? "true" : s}
|
|
20817
|
+
aria-pressed=${String(Ge(t, l.id))}
|
|
20818
|
+
aria-label=${`${ee}: ${R(g(l.value), e.unit)}${l.detail ? `, ${l.detail}` : ""}`}
|
|
20819
|
+
@keydown=${Je(i, l)}
|
|
20820
20820
|
@click=${(e) => {
|
|
20821
|
-
|
|
20821
|
+
qe(e), i(l);
|
|
20822
20822
|
}}
|
|
20823
|
-
@dblclick=${
|
|
20824
|
-
@mousemove=${(t) =>
|
|
20825
|
-
title: `${
|
|
20823
|
+
@dblclick=${qe}
|
|
20824
|
+
@mousemove=${(t) => r.showTooltip(t, {
|
|
20825
|
+
title: `${ee}${l.detail ? ` · ${l.detail}` : ""}`,
|
|
20826
20826
|
rows: [{
|
|
20827
20827
|
label: e.unit,
|
|
20828
|
-
value:
|
|
20829
|
-
color:
|
|
20828
|
+
value: g(l.value),
|
|
20829
|
+
color: se
|
|
20830
20830
|
}]
|
|
20831
20831
|
})}
|
|
20832
|
-
@mouseleave=${() =>
|
|
20832
|
+
@mouseleave=${() => r.hideTooltip()} />
|
|
20833
20833
|
`;
|
|
20834
20834
|
})}
|
|
20835
|
-
<g class="lintje-map-chart__symbol" data-at=${
|
|
20835
|
+
<g class="lintje-map-chart__symbol" data-at=${z(f, p)}>
|
|
20836
20836
|
<circle r="5" class="lintje-map-chart__destination" />
|
|
20837
20837
|
</g>
|
|
20838
20838
|
</g>
|
|
20839
20839
|
`;
|
|
20840
20840
|
}
|
|
20841
|
-
function
|
|
20842
|
-
let { id:
|
|
20843
|
-
return
|
|
20844
|
-
let [l, u] = c(
|
|
20845
|
-
return
|
|
20846
|
-
<g ${
|
|
20847
|
-
class="lintje-map-chart__point lintje-map-chart__symbol ${
|
|
20848
|
-
data-at=${
|
|
20849
|
-
data-mark-id=${
|
|
20850
|
-
role="button" tabindex=${
|
|
20851
|
-
aria-pressed=${String(
|
|
20852
|
-
aria-label=${`${
|
|
20841
|
+
function $e(e, t, n) {
|
|
20842
|
+
let { id: r, controller: i, select: a, project: c, hidden: u } = t, d = e.values.filter((e) => e.lon != null), f = (t) => n || !!(t.series && u.has(We(e, t.series))), p = Ye(d);
|
|
20843
|
+
return l(d, (e) => e.id, (n) => {
|
|
20844
|
+
let [l, u] = c(n.lon, n.lat), d = e.variant === "points" && n.value != null ? Ue(n.value, e.max) : 6, m = ce(n.series), _ = n.series && e.seriesLabels?.[n.series] || void 0, v = n.value == null ? "geen gegevens" : R(g(n.value), e.unit), y = C(n.series, d);
|
|
20845
|
+
return h`
|
|
20846
|
+
<g ${o(p(n))}
|
|
20847
|
+
class="lintje-map-chart__point lintje-map-chart__symbol ${Ke(t, n.id, f(n))}"
|
|
20848
|
+
data-at=${z(l, u)}
|
|
20849
|
+
data-mark-id=${n.id}
|
|
20850
|
+
role="button" tabindex=${f(n) ? -1 : 0} aria-hidden=${f(n) ? "true" : s}
|
|
20851
|
+
aria-pressed=${String(Ge(t, n.id))}
|
|
20852
|
+
aria-label=${`${n.label}: ${v}${_ ? `, ${_}` : ""}`}
|
|
20853
20853
|
@click=${(e) => {
|
|
20854
|
-
|
|
20854
|
+
qe(e), a(n);
|
|
20855
20855
|
}}
|
|
20856
|
-
@dblclick=${
|
|
20857
|
-
@mousemove=${(t) =>
|
|
20858
|
-
title:
|
|
20856
|
+
@dblclick=${qe}
|
|
20857
|
+
@mousemove=${(t) => i.showTooltip(t, {
|
|
20858
|
+
title: _ ? `${n.label} · ${_}` : n.label,
|
|
20859
20859
|
rows: [{
|
|
20860
20860
|
label: e.unit,
|
|
20861
|
-
value:
|
|
20861
|
+
value: n.value == null ? "geen gegevens" : g(n.value),
|
|
20862
20862
|
color: m ?? "var(--color-chart-default)"
|
|
20863
20863
|
}]
|
|
20864
20864
|
})}
|
|
20865
|
-
@mouseleave=${() =>
|
|
20866
|
-
@keydown=${
|
|
20865
|
+
@mouseleave=${() => i.hideTooltip()}
|
|
20866
|
+
@keydown=${Je(a, n)}>
|
|
20867
20867
|
<!-- The figure grows in: its own group, as the animation's transform would replace the
|
|
20868
20868
|
placement of the point. The focus ring is behind the shape, shown on focus only. -->
|
|
20869
20869
|
<g class="lintje-map-chart__point-figure">
|
|
20870
|
-
<path d=${
|
|
20871
|
-
<path d=${
|
|
20872
|
-
class="lintje-map-chart__point-shape ${
|
|
20873
|
-
${
|
|
20874
|
-
${
|
|
20870
|
+
<path d=${y} class="lintje-map-chart__point-ring" />
|
|
20871
|
+
<path d=${y}
|
|
20872
|
+
class="lintje-map-chart__point-shape ${n.value == null ? "lintje-map-chart__point-shape--empty" : m ? "lintje-map-chart__point-shape--series" : ""}"
|
|
20873
|
+
${o({ "--lintje-series": m })} />
|
|
20874
|
+
${n.value == null ? h`<path d=${y} class="lintje-map-chart__point-hatch" fill="url(#map-hatch-${r})" />` : s}
|
|
20875
20875
|
</g>
|
|
20876
20876
|
</g>
|
|
20877
20877
|
`;
|
|
20878
20878
|
});
|
|
20879
20879
|
}
|
|
20880
|
-
function
|
|
20880
|
+
function et([e, t], n, r = 72) {
|
|
20881
20881
|
let i = Math.PI / 180, a = n / 6371, o = t * i, s = e * i, c = [];
|
|
20882
20882
|
for (let e = 0; e < r; e++) {
|
|
20883
20883
|
let t = e / r * 2 * Math.PI, n = Math.asin(Math.sin(o) * Math.cos(a) + Math.cos(o) * Math.sin(a) * Math.cos(t)), l = (s + Math.atan2(Math.sin(t) * Math.sin(a) * Math.cos(o), Math.cos(a) - Math.sin(o) * Math.sin(n))) / i, u = c.at(-1)?.[0];
|
|
@@ -20887,56 +20887,56 @@ function rt([e, t], n, r = 72) {
|
|
|
20887
20887
|
}
|
|
20888
20888
|
return c;
|
|
20889
20889
|
}
|
|
20890
|
-
function
|
|
20891
|
-
if (!e) return
|
|
20892
|
-
let
|
|
20890
|
+
function tt(e, t, n = !1) {
|
|
20891
|
+
if (!e) return s;
|
|
20892
|
+
let r = `lintje-map-chart__region ${n ? "lintje-map-chart__region--draft" : ""}`;
|
|
20893
20893
|
if (e.kind === "circle") {
|
|
20894
|
-
let [
|
|
20894
|
+
let [n, i] = t(...e.centre), a = e.radiusKm > 0 ? et(e.centre, e.radiusKm).map(([e, n], r) => {
|
|
20895
20895
|
let [i, a] = t(e, n);
|
|
20896
|
-
return `${r ? "L" : "M"}${
|
|
20896
|
+
return `${r ? "L" : "M"}${z(i, a)}`;
|
|
20897
20897
|
}).join("") + "Z" : "";
|
|
20898
|
-
return
|
|
20899
|
-
${
|
|
20900
|
-
<g class="lintje-map-chart__symbol" data-at=${
|
|
20898
|
+
return h`
|
|
20899
|
+
${a ? h`<path class=${r} d=${a} />` : s}
|
|
20900
|
+
<g class="lintje-map-chart__symbol" data-at=${z(n, i)}>
|
|
20901
20901
|
<circle class="lintje-map-chart__region-centre" r="4" />
|
|
20902
20902
|
</g>
|
|
20903
20903
|
`;
|
|
20904
20904
|
}
|
|
20905
|
-
if (e.ring.length < 2) return
|
|
20906
|
-
let
|
|
20905
|
+
if (e.ring.length < 2) return s;
|
|
20906
|
+
let i = e.ring.map(([e, n], r) => {
|
|
20907
20907
|
let [i, a] = t(e, n);
|
|
20908
|
-
return `${r ? "L" : "M"}${
|
|
20909
|
-
}).join("") + (
|
|
20910
|
-
return
|
|
20908
|
+
return `${r ? "L" : "M"}${z(i, a)}`;
|
|
20909
|
+
}).join("") + (n && !De(e.ring) ? "" : "Z");
|
|
20910
|
+
return h`<path class=${r} d=${i} />`;
|
|
20911
20911
|
}
|
|
20912
|
-
function
|
|
20913
|
-
return
|
|
20912
|
+
function nt(e, t, n, r = null) {
|
|
20913
|
+
return h`
|
|
20914
20914
|
<defs>
|
|
20915
20915
|
<pattern id="map-hatch-${n.id}" class="lintje-map-chart__hatch" width="6" height="6"
|
|
20916
20916
|
patternUnits="userSpaceOnUse">
|
|
20917
20917
|
<line x1="0" y1="0" x2="0" y2="6" stroke="var(--color-chart-hatch)" stroke-width="2" />
|
|
20918
20918
|
</pattern>
|
|
20919
20919
|
</defs>
|
|
20920
|
-
${
|
|
20921
|
-
${
|
|
20920
|
+
${B(e, n)}
|
|
20921
|
+
${l(t, (e) => e.index, (t) => {
|
|
20922
20922
|
let r = n.hiddenLayers.has(t.index);
|
|
20923
|
-
return t.variant === "polygons" || t.variant === "choropleth" ?
|
|
20923
|
+
return t.variant === "polygons" || t.variant === "choropleth" ? Ze(t, n, e, r) : t.variant === "flows" ? Qe(t, n, r) : $e(t, n, r);
|
|
20924
20924
|
})}
|
|
20925
|
-
${
|
|
20925
|
+
${tt(r, n.project)}
|
|
20926
20926
|
`;
|
|
20927
20927
|
}
|
|
20928
20928
|
//#endregion
|
|
20929
20929
|
//#region src/components/shared/charts/map-chart/leaflet.ts
|
|
20930
|
-
var
|
|
20931
|
-
function
|
|
20930
|
+
var rt = "<a href=\"https://leafletjs.com\" title=\"A JavaScript library for interactive maps\">Leaflet</a>", it = [8, 8], at = 3, ot = -4, st = "http://www.w3.org/2000/svg";
|
|
20931
|
+
function ct([, e]) {
|
|
20932
20932
|
return Math.max(1, (90 - Math.abs(e)) * 111.2 - 100);
|
|
20933
20933
|
}
|
|
20934
|
-
var
|
|
20935
|
-
function
|
|
20934
|
+
var lt = 4, ut = 10;
|
|
20935
|
+
function dt(e, t) {
|
|
20936
20936
|
let [n, r] = (e.dataset.at ?? "0 0").split(" ");
|
|
20937
20937
|
return `translate(${n}px, ${r}px) scale(${t})`;
|
|
20938
20938
|
}
|
|
20939
|
-
function
|
|
20939
|
+
function ft(e) {
|
|
20940
20940
|
let t = (e) => .75 * (1 - e) * e * e + e * e * e, n = (e) => 3 * (1 - e) * e * e + e * e * e, r = 0, i = 1;
|
|
20941
20941
|
for (let n = 0; n < 24; n++) {
|
|
20942
20942
|
let n = (r + i) / 2;
|
|
@@ -20944,24 +20944,24 @@ function mt(e) {
|
|
|
20944
20944
|
}
|
|
20945
20945
|
return n((r + i) / 2);
|
|
20946
20946
|
}
|
|
20947
|
-
function
|
|
20947
|
+
function pt(e) {
|
|
20948
20948
|
let t = [];
|
|
20949
20949
|
for (let n = 0; n <= 16; n++) {
|
|
20950
|
-
let r =
|
|
20950
|
+
let r = ft(n / 16);
|
|
20951
20951
|
t.push((e * r / (1 + (e - 1) * r)).toFixed(4));
|
|
20952
20952
|
}
|
|
20953
20953
|
return `linear(${t.join(", ")})`;
|
|
20954
20954
|
}
|
|
20955
|
-
function
|
|
20955
|
+
function mt(e) {
|
|
20956
20956
|
let [t, n, r, i] = e.bbox ?? [
|
|
20957
20957
|
-180,
|
|
20958
20958
|
-85,
|
|
20959
20959
|
180,
|
|
20960
20960
|
85
|
|
20961
20961
|
];
|
|
20962
|
-
return
|
|
20962
|
+
return P.latLngBounds([n, t], [i, r]);
|
|
20963
20963
|
}
|
|
20964
|
-
function
|
|
20964
|
+
function ht(e, t) {
|
|
20965
20965
|
return e.features.map((e) => ({
|
|
20966
20966
|
id: e.properties.id,
|
|
20967
20967
|
name: e.properties.name,
|
|
@@ -20971,7 +20971,7 @@ function _t(e, t) {
|
|
|
20971
20971
|
}).join("") + "Z").join("")
|
|
20972
20972
|
}));
|
|
20973
20973
|
}
|
|
20974
|
-
var
|
|
20974
|
+
var gt = class {
|
|
20975
20975
|
#e;
|
|
20976
20976
|
#t;
|
|
20977
20977
|
#n;
|
|
@@ -20989,8 +20989,9 @@ var vt = class {
|
|
|
20989
20989
|
#m;
|
|
20990
20990
|
#h;
|
|
20991
20991
|
#g;
|
|
20992
|
+
#_;
|
|
20992
20993
|
constructor(e) {
|
|
20993
|
-
this.#t = null, this.#n = null, this.#r = null, this.#i = null, this.#a = null, this.#o = null, this.#s = null, this.#c = null, this.#l =
|
|
20994
|
+
this.#t = null, this.#n = null, this.#r = null, this.#i = null, this.#a = null, this.#o = null, this.#s = null, this.#c = null, this.#l = null, this.#u = "", this.#d = "", this.#f = null, this.#p = !1, this.#m = 0, this.#h = [], this.#g = {
|
|
20994
20995
|
unit: "",
|
|
20995
20996
|
active: null,
|
|
20996
20997
|
hidden: [],
|
|
@@ -21006,24 +21007,24 @@ var vt = class {
|
|
|
21006
21007
|
select: () => {},
|
|
21007
21008
|
clear: () => {},
|
|
21008
21009
|
mobile: !1
|
|
21009
|
-
}, this.#
|
|
21010
|
-
e !== this.#t && (this.destroy(), e instanceof HTMLElement && (this.#t = e, this.#c = new ResizeObserver(() => this.#
|
|
21011
|
-
}, this.#
|
|
21012
|
-
let n = this.#n.project([t, e], this.#
|
|
21010
|
+
}, this.#_ = null, this.attach = (e) => {
|
|
21011
|
+
e !== this.#t && (this.destroy(), e instanceof HTMLElement && (this.#t = e, this.#c = new ResizeObserver(() => this.#v()), this.#c.observe(e), this.#v()));
|
|
21012
|
+
}, this.#O = (e, t) => {
|
|
21013
|
+
let n = this.#n.project([t, e], this.#m);
|
|
21013
21014
|
return [n.x, n.y];
|
|
21014
|
-
}, this.#
|
|
21015
|
-
e.key === "Escape" && this.#
|
|
21016
|
-
}, this.#
|
|
21015
|
+
}, this.#W = (e) => {
|
|
21016
|
+
e.key === "Escape" && this.#g.tool && (e.stopPropagation(), e.preventDefault(), this.#s ? this.#G() : this.#g.stopTool());
|
|
21017
|
+
}, this.#J = 0, this.#e = e;
|
|
21017
21018
|
}
|
|
21018
21019
|
get map() {
|
|
21019
21020
|
return this.#n;
|
|
21020
21021
|
}
|
|
21021
21022
|
sync(e, t) {
|
|
21022
|
-
this.#
|
|
21023
|
+
this.#_ = e, this.#g = t, this.#t && this.#n ? this.#b(e) : this.#v();
|
|
21023
21024
|
}
|
|
21024
|
-
#
|
|
21025
|
+
#v() {
|
|
21025
21026
|
let e = this.#t;
|
|
21026
|
-
e && e.clientWidth && e.clientHeight && (this.#n ? (this.#n.invalidateSize({ animate: !1 }), this.#
|
|
21027
|
+
e && e.clientWidth && e.clientHeight && (this.#n ? (this.#n.invalidateSize({ animate: !1 }), this.#T()) : this.#_ && this.#b(this.#_));
|
|
21027
21028
|
}
|
|
21028
21029
|
zoomIn() {
|
|
21029
21030
|
this.#n?.zoomIn();
|
|
@@ -21039,7 +21040,7 @@ var vt = class {
|
|
|
21039
21040
|
}
|
|
21040
21041
|
scaleBar(e = 96) {
|
|
21041
21042
|
let t = this.#n;
|
|
21042
|
-
if (!t || !this.#
|
|
21043
|
+
if (!t || !this.#p) return null;
|
|
21043
21044
|
let n = t.getSize().y / 2, r = t.distance(t.containerPointToLatLng([0, n]), t.containerPointToLatLng([e, n]));
|
|
21044
21045
|
if (!(r > 0)) return null;
|
|
21045
21046
|
let i = 10 ** Math.floor(Math.log10(r)), a = r / i, o = (a >= 5 ? 5 : a >= 2 ? 2 : 1) * i;
|
|
@@ -21048,19 +21049,38 @@ var vt = class {
|
|
|
21048
21049
|
metres: o
|
|
21049
21050
|
};
|
|
21050
21051
|
}
|
|
21052
|
+
print(e) {
|
|
21053
|
+
let t = this.#n;
|
|
21054
|
+
if (!t || !this.#p) return;
|
|
21055
|
+
if (e) {
|
|
21056
|
+
let e = t.getBounds();
|
|
21057
|
+
this.#l = {
|
|
21058
|
+
centre: t.getCenter(),
|
|
21059
|
+
zoom: t.getZoom()
|
|
21060
|
+
}, this.#y(t), t.fitBounds(e, { animate: !1 });
|
|
21061
|
+
return;
|
|
21062
|
+
}
|
|
21063
|
+
let n = this.#l;
|
|
21064
|
+
this.#l = null, this.#y(t), n && t.setView(n.centre, n.zoom, { animate: !1 });
|
|
21065
|
+
}
|
|
21066
|
+
#y(e) {
|
|
21067
|
+
e.invalidateSize({ animate: !1 }), e.setMinZoom(ot), this.#T();
|
|
21068
|
+
}
|
|
21051
21069
|
home() {
|
|
21052
|
-
this.#e.leafletView = null, this.#n && this.#
|
|
21070
|
+
this.#e.leafletView = null, this.#n && this.#f && this.#n.fitBounds(this.#f, { padding: it });
|
|
21053
21071
|
}
|
|
21054
21072
|
destroy() {
|
|
21055
|
-
document.removeEventListener("keydown", this.#
|
|
21073
|
+
document.removeEventListener("keydown", this.#W, !0), this.#c?.disconnect(), this.#c = null;
|
|
21074
|
+
let e = this.#n;
|
|
21075
|
+
e?._animatingZoom && e._onZoomTransitionEnd(), this.#n?.remove(), this.#n = null, this.#r = null, this.#i = null, this.#a = null, this.#o = null, this.#s = null, this.#u = "", this.#d = "", this.#h = [], this.#p = !1, this.#t = null;
|
|
21056
21076
|
}
|
|
21057
|
-
#
|
|
21058
|
-
let t = this.#
|
|
21059
|
-
this.#
|
|
21077
|
+
#b(e) {
|
|
21078
|
+
let t = this.#x(), n = this.#g.tool != null, { drag: r, zoom: i } = this.#g;
|
|
21079
|
+
this.#g.mobile || n || !r ? t.dragging.disable() : t.dragging.enable(), n || !i ? t.doubleClickZoom.disable() : t.doubleClickZoom.enable(), i ? t.touchZoom.enable() : t.touchZoom.disable(), this.#t?.classList.toggle("is-drawing", n), !n && this.#s && this.#G(), n ? document.addEventListener("keydown", this.#W, !0) : document.removeEventListener("keydown", this.#W, !0), this.#C(t, e.geo ?? "world"), e.basemap ? this.#k(t, e.basemap) : this.#A(t), this.#M(t, e);
|
|
21060
21080
|
}
|
|
21061
|
-
#
|
|
21081
|
+
#x() {
|
|
21062
21082
|
if (this.#n) return this.#n;
|
|
21063
|
-
let e = this.#t, t =
|
|
21083
|
+
let e = this.#t, t = P.map(e, {
|
|
21064
21084
|
zoomControl: !1,
|
|
21065
21085
|
scrollWheelZoom: !1,
|
|
21066
21086
|
zoomSnap: 0,
|
|
@@ -21068,49 +21088,49 @@ var vt = class {
|
|
|
21068
21088
|
maxBoundsViscosity: 1
|
|
21069
21089
|
});
|
|
21070
21090
|
return t.on("moveend zoomend viewreset", () => {
|
|
21071
|
-
this.#
|
|
21072
|
-
}), t.on("zoomend", () => this.#
|
|
21091
|
+
this.#N(), this.#D(), this.#g.scale && this.#e.requestUpdate();
|
|
21092
|
+
}), t.on("zoomend", () => this.#E()), t.on("zoomanim", (e) => this.#P(e.zoom)), t.on("click", () => this.#g.clear()), e.addEventListener("pointerdown", (e) => this.#I(e), !0), e.addEventListener("pointermove", (e) => this.#L(e), !0), e.addEventListener("pointerup", (e) => this.#R(e), !0), e.addEventListener("click", (e) => this.#V(e), !0), e.addEventListener("dblclick", (e) => this.#H(e), !0), P.svg({ padding: .5 }).addTo(t), this.#n = t, t;
|
|
21073
21093
|
}
|
|
21074
|
-
#
|
|
21094
|
+
#S(e) {
|
|
21075
21095
|
if (this.#a) return this.#a;
|
|
21076
21096
|
let t = e.getPane("overlayPane")?.querySelector("svg");
|
|
21077
21097
|
if (!t) return null;
|
|
21078
|
-
let n = document.createElementNS(
|
|
21079
|
-
n.setAttribute("class", "lintje-map-chart__data"), n.addEventListener("focusin", (e) => this.#
|
|
21098
|
+
let n = document.createElementNS(st, "g");
|
|
21099
|
+
n.setAttribute("class", "lintje-map-chart__data"), n.addEventListener("focusin", (e) => this.#Z(e.target)), n.addEventListener("keydown", (e) => {
|
|
21080
21100
|
if (e.key !== "Enter" && e.key !== " ") return;
|
|
21081
21101
|
let t = e.target;
|
|
21082
|
-
requestAnimationFrame(() => this.#
|
|
21102
|
+
requestAnimationFrame(() => this.#Z(t));
|
|
21083
21103
|
}), t.append(n), this.#a = n;
|
|
21084
|
-
let r = document.createElementNS(
|
|
21104
|
+
let r = document.createElementNS(st, "g");
|
|
21085
21105
|
return r.setAttribute("class", "lintje-map-chart__draft"), t.append(r), this.#o = r, n;
|
|
21086
21106
|
}
|
|
21087
|
-
#
|
|
21088
|
-
t !== this.#
|
|
21107
|
+
#C(e, t) {
|
|
21108
|
+
t !== this.#d && (this.#d && (this.#e.leafletView = null), this.#d = t, this.#f = mt(xe[t] ?? xe.world), this.#p = !1, this.#w(), this.#m = e.getZoom(), this.#h = ht(xe[t] ?? xe.world, this.#O));
|
|
21089
21109
|
}
|
|
21090
|
-
#
|
|
21110
|
+
#w() {
|
|
21091
21111
|
let e = this.#n;
|
|
21092
|
-
if (this.#
|
|
21093
|
-
this.#
|
|
21112
|
+
if (this.#p || !e || !this.#f) return;
|
|
21113
|
+
this.#p = !0, this.#T();
|
|
21094
21114
|
let t = this.#e.leafletView;
|
|
21095
|
-
t ? e.setView([t.lat, t.lon], t.zoom, { animate: !1 }) : e.fitBounds(this.#
|
|
21115
|
+
t ? e.setView([t.lat, t.lon], t.zoom, { animate: !1 }) : e.fitBounds(this.#f, { padding: it }), this.#E();
|
|
21096
21116
|
}
|
|
21097
|
-
#
|
|
21117
|
+
#T() {
|
|
21098
21118
|
let e = this.#n;
|
|
21099
|
-
if (!e || !this.#
|
|
21100
|
-
let t = e.getBoundsZoom(this.#
|
|
21101
|
-
e.setMinZoom(t), e.setMaxZoom(t +
|
|
21119
|
+
if (!e || !this.#f) return;
|
|
21120
|
+
let t = e.getBoundsZoom(this.#f, !1, P.point(it));
|
|
21121
|
+
e.setMinZoom(t), e.setMaxZoom(t + at), this.#E();
|
|
21102
21122
|
}
|
|
21103
|
-
#
|
|
21123
|
+
#E() {
|
|
21104
21124
|
let e = this.#n;
|
|
21105
|
-
if (!e || !this.#
|
|
21125
|
+
if (!e || !this.#f) return;
|
|
21106
21126
|
let t = e.getZoom();
|
|
21107
21127
|
if (!Number.isFinite(t)) return;
|
|
21108
|
-
let n = e.getSize().divideBy(2), r = e.project(this.#
|
|
21109
|
-
e.setMaxBounds(
|
|
21128
|
+
let n = e.getSize().divideBy(2), r = e.project(this.#f.getNorthWest(), t).subtract(n), i = e.project(this.#f.getSouthEast(), t).add(n);
|
|
21129
|
+
e.setMaxBounds(P.latLngBounds(e.unproject(r, t), e.unproject(i, t)));
|
|
21110
21130
|
}
|
|
21111
|
-
#
|
|
21131
|
+
#D() {
|
|
21112
21132
|
let e = this.#n;
|
|
21113
|
-
if (!e || !this.#
|
|
21133
|
+
if (!e || !this.#p) return;
|
|
21114
21134
|
let t = e.getCenter();
|
|
21115
21135
|
this.#e.leafletView = {
|
|
21116
21136
|
lat: t.lat,
|
|
@@ -21118,8 +21138,8 @@ var vt = class {
|
|
|
21118
21138
|
zoom: e.getZoom()
|
|
21119
21139
|
};
|
|
21120
21140
|
}
|
|
21121
|
-
#
|
|
21122
|
-
#
|
|
21141
|
+
#O;
|
|
21142
|
+
#k(e, t) {
|
|
21123
21143
|
let n = [
|
|
21124
21144
|
t.url,
|
|
21125
21145
|
t.layers,
|
|
@@ -21128,7 +21148,7 @@ var vt = class {
|
|
|
21128
21148
|
t.transparent,
|
|
21129
21149
|
t.attribution
|
|
21130
21150
|
].join("|");
|
|
21131
|
-
this.#r && n === this.#
|
|
21151
|
+
this.#r && n === this.#u || (this.#r && e.removeLayer(this.#r), this.#u = n, this.#i ??= P.control.attribution({ prefix: rt }).addTo(e), this.#r = P.tileLayer.wms(t.url, {
|
|
21132
21152
|
layers: t.layers,
|
|
21133
21153
|
format: t.format ?? "image/png",
|
|
21134
21154
|
version: t.version ?? "1.3.0",
|
|
@@ -21137,50 +21157,50 @@ var vt = class {
|
|
|
21137
21157
|
noWrap: !0
|
|
21138
21158
|
}), this.#r.addTo(e));
|
|
21139
21159
|
}
|
|
21140
|
-
#
|
|
21141
|
-
this.#r && e.removeLayer(this.#r), this.#r = null, this.#
|
|
21160
|
+
#A(e) {
|
|
21161
|
+
this.#r && e.removeLayer(this.#r), this.#r = null, this.#u = "", this.#i?.remove(), this.#i = null;
|
|
21142
21162
|
}
|
|
21143
|
-
#
|
|
21144
|
-
return
|
|
21163
|
+
#j(e) {
|
|
21164
|
+
return be(e, this.#g.unit).filter((e) => !this.#g.hiddenLayers.includes(e.index));
|
|
21145
21165
|
}
|
|
21146
|
-
#
|
|
21147
|
-
let n = this.#
|
|
21148
|
-
n && (
|
|
21166
|
+
#M(e, t) {
|
|
21167
|
+
let n = this.#S(e);
|
|
21168
|
+
n && (_(nt(this.#h, be(t, this.#g.unit), {
|
|
21149
21169
|
id: this.#e.id,
|
|
21150
|
-
active: this.#
|
|
21170
|
+
active: this.#g.active,
|
|
21151
21171
|
controller: this.#e,
|
|
21152
|
-
select: this.#
|
|
21153
|
-
project: this.#
|
|
21172
|
+
select: this.#g.select,
|
|
21173
|
+
project: this.#O,
|
|
21154
21174
|
tiled: !!t.basemap,
|
|
21155
|
-
hidden: new Set(this.#
|
|
21156
|
-
hiddenLayers: new Set(this.#
|
|
21157
|
-
chosen: new Set(this.#
|
|
21158
|
-
}, this.#
|
|
21175
|
+
hidden: new Set(this.#g.hidden),
|
|
21176
|
+
hiddenLayers: new Set(this.#g.hiddenLayers),
|
|
21177
|
+
chosen: new Set(this.#g.chosen)
|
|
21178
|
+
}, this.#g.area), n), n.classList.toggle("has-area", this.#g.area != null), n.classList.toggle("has-selection", this.#g.area != null || this.#g.active != null), this.#N(e));
|
|
21159
21179
|
}
|
|
21160
|
-
#
|
|
21180
|
+
#N(e = this.#n) {
|
|
21161
21181
|
let t = this.#a;
|
|
21162
21182
|
if (!e || !t) return;
|
|
21163
|
-
let n = e.getZoomScale(e.getZoom(), this.#
|
|
21183
|
+
let n = e.getZoomScale(e.getZoom(), this.#m), r = e.getPixelOrigin(), i = `translate(${-r.x} ${-r.y}) scale(${n})`;
|
|
21164
21184
|
t.setAttribute("transform", i), this.#o?.setAttribute("transform", i);
|
|
21165
21185
|
let a = 1 / n;
|
|
21166
|
-
for (let e of this.#
|
|
21186
|
+
for (let e of this.#K()) e.style.transitionTimingFunction = "", e.style.transform = dt(e, a);
|
|
21167
21187
|
t.querySelector(".lintje-map-chart__hatch")?.setAttribute("patternTransform", `rotate(45) scale(${a})`);
|
|
21168
21188
|
}
|
|
21169
|
-
#
|
|
21189
|
+
#P(e) {
|
|
21170
21190
|
let t = this.#n, n = this.#a;
|
|
21171
21191
|
if (!t || !n) return;
|
|
21172
|
-
let r = t.getZoomScale(e, t.getZoom()), i = 1 / t.getZoomScale(e, this.#
|
|
21173
|
-
for (let e of this.#
|
|
21192
|
+
let r = t.getZoomScale(e, t.getZoom()), i = 1 / t.getZoomScale(e, this.#m), a = pt(r);
|
|
21193
|
+
for (let e of this.#K()) e.style.transitionTimingFunction = a, e.style.transform = dt(e, i);
|
|
21174
21194
|
}
|
|
21175
|
-
#
|
|
21195
|
+
#F(e) {
|
|
21176
21196
|
let t = this.#n.mouseEventToLatLng(e);
|
|
21177
21197
|
return [t.lng, t.lat];
|
|
21178
21198
|
}
|
|
21179
|
-
#
|
|
21180
|
-
let t = this.#
|
|
21199
|
+
#I(e) {
|
|
21200
|
+
let t = this.#g.tool;
|
|
21181
21201
|
if (!t || !this.#n || e.button !== 0) return;
|
|
21182
21202
|
e.stopPropagation(), e.preventDefault();
|
|
21183
|
-
let n = this.#
|
|
21203
|
+
let n = this.#F(e), r = this.#s;
|
|
21184
21204
|
r ? (r.press = {
|
|
21185
21205
|
x: e.clientX,
|
|
21186
21206
|
y: e.clientY
|
|
@@ -21199,88 +21219,88 @@ var vt = class {
|
|
|
21199
21219
|
y: e.clientY
|
|
21200
21220
|
},
|
|
21201
21221
|
dragged: !1
|
|
21202
|
-
}, e.target.setPointerCapture?.(e.pointerId), this.#
|
|
21222
|
+
}, e.target.setPointerCapture?.(e.pointerId), this.#q();
|
|
21203
21223
|
}
|
|
21204
|
-
#
|
|
21224
|
+
#L(e) {
|
|
21205
21225
|
let t = this.#s;
|
|
21206
21226
|
if (!t || !this.#n) return;
|
|
21207
21227
|
e.stopPropagation();
|
|
21208
|
-
let n = this.#
|
|
21228
|
+
let n = this.#F(e), { area: r, press: i } = t;
|
|
21209
21229
|
if (i && !t.dragged) {
|
|
21210
|
-
if (Math.abs(e.clientX - i.x) + Math.abs(e.clientY - i.y) <
|
|
21230
|
+
if (Math.abs(e.clientX - i.x) + Math.abs(e.clientY - i.y) < lt) return;
|
|
21211
21231
|
t.dragged = !0;
|
|
21212
21232
|
}
|
|
21213
|
-
r.kind === "circle" ? r.radiusKm = Math.min(
|
|
21233
|
+
r.kind === "circle" ? r.radiusKm = Math.min(we(r.centre, n), ct(r.centre)) : t.corner ? r.ring = Ee(t.corner, n) : i ? r.ring.push(n) : this.#q(n), (r.kind === "circle" || t.corner || i) && this.#q();
|
|
21214
21234
|
}
|
|
21215
|
-
#
|
|
21235
|
+
#R(e) {
|
|
21216
21236
|
let t = this.#s;
|
|
21217
21237
|
if (!t) return;
|
|
21218
21238
|
e.stopPropagation();
|
|
21219
21239
|
let { area: n, dragged: r } = t;
|
|
21220
|
-
if (t.press = null, r) return this.#
|
|
21240
|
+
if (t.press = null, r) return this.#U();
|
|
21221
21241
|
if (n.kind === "circle") {
|
|
21222
|
-
n.radiusKm > 0 && this.#
|
|
21242
|
+
n.radiusKm > 0 && this.#U();
|
|
21223
21243
|
return;
|
|
21224
21244
|
}
|
|
21225
|
-
let i = this.#
|
|
21226
|
-
if (t.corner) this.#
|
|
21245
|
+
let i = this.#F(e);
|
|
21246
|
+
if (t.corner) this.#z(t.corner, i) && (n.ring = Ee(t.corner, i), this.#U());
|
|
21227
21247
|
else {
|
|
21228
|
-
if (n.ring.length > 2 && this.#
|
|
21229
|
-
(n.ring.length > 1 || this.#
|
|
21248
|
+
if (n.ring.length > 2 && this.#B(e)) return this.#U();
|
|
21249
|
+
(n.ring.length > 1 || this.#z(n.ring[0], i)) && n.ring.push(i), this.#q();
|
|
21230
21250
|
}
|
|
21231
21251
|
}
|
|
21232
|
-
#
|
|
21252
|
+
#z(e, t) {
|
|
21233
21253
|
return e[0] !== t[0] || e[1] !== t[1];
|
|
21234
21254
|
}
|
|
21235
|
-
#
|
|
21255
|
+
#B(e) {
|
|
21236
21256
|
let t = this.#n, n = this.#s?.area;
|
|
21237
21257
|
if (n?.kind !== "lasso") return !1;
|
|
21238
21258
|
let [r, i] = n.ring[0];
|
|
21239
|
-
return t.latLngToContainerPoint([i, r]).distanceTo(t.mouseEventToContainerPoint(e)) <=
|
|
21259
|
+
return t.latLngToContainerPoint([i, r]).distanceTo(t.mouseEventToContainerPoint(e)) <= ut;
|
|
21240
21260
|
}
|
|
21241
|
-
#
|
|
21242
|
-
this.#
|
|
21261
|
+
#V(e) {
|
|
21262
|
+
this.#g.tool && e.stopPropagation();
|
|
21243
21263
|
}
|
|
21244
|
-
#
|
|
21245
|
-
if (!this.#
|
|
21264
|
+
#H(e) {
|
|
21265
|
+
if (!this.#g.tool) return;
|
|
21246
21266
|
e.stopPropagation(), e.preventDefault();
|
|
21247
21267
|
let t = this.#s?.area;
|
|
21248
|
-
t?.kind === "lasso" && t.ring.length > 2 && this.#
|
|
21268
|
+
t?.kind === "lasso" && t.ring.length > 2 && this.#U();
|
|
21249
21269
|
}
|
|
21250
|
-
#
|
|
21270
|
+
#U() {
|
|
21251
21271
|
let e = this.#s?.area;
|
|
21252
|
-
this.#
|
|
21272
|
+
this.#G(), e && (e.kind === "lasso" ? e.ring.length > 2 && !Oe(e.ring) : e.radiusKm > 0) && this.#g.drawn(e);
|
|
21253
21273
|
}
|
|
21254
|
-
#
|
|
21255
|
-
#
|
|
21256
|
-
this.#s = null, this.#o &&
|
|
21274
|
+
#W;
|
|
21275
|
+
#G() {
|
|
21276
|
+
this.#s = null, this.#o && _(s, this.#o), cancelAnimationFrame(this.#J), this.#X(null);
|
|
21257
21277
|
}
|
|
21258
|
-
#
|
|
21278
|
+
#K() {
|
|
21259
21279
|
return [this.#a, this.#o].flatMap((e) => e ? [...e.querySelectorAll(".lintje-map-chart__symbol")] : []);
|
|
21260
21280
|
}
|
|
21261
|
-
#
|
|
21281
|
+
#q(e) {
|
|
21262
21282
|
let t = this.#s;
|
|
21263
21283
|
if (!t || !this.#o) return;
|
|
21264
21284
|
let n = e && t.area.kind === "lasso" ? {
|
|
21265
21285
|
kind: "lasso",
|
|
21266
21286
|
ring: [...t.area.ring, e]
|
|
21267
21287
|
} : t.area;
|
|
21268
|
-
|
|
21288
|
+
_(tt(n, this.#O, !0), this.#o), this.#N(), this.#Y(n);
|
|
21269
21289
|
}
|
|
21270
|
-
#
|
|
21271
|
-
#
|
|
21272
|
-
cancelAnimationFrame(this.#
|
|
21290
|
+
#J;
|
|
21291
|
+
#Y(e) {
|
|
21292
|
+
cancelAnimationFrame(this.#J), this.#J = requestAnimationFrame(() => this.#X(e));
|
|
21273
21293
|
}
|
|
21274
|
-
#
|
|
21275
|
-
let t = this.#a, n = this.#
|
|
21294
|
+
#X(e) {
|
|
21295
|
+
let t = this.#a, n = this.#_;
|
|
21276
21296
|
if (!t || !n) return;
|
|
21277
|
-
let r = e && (e.kind === "lasso" ? e.ring.length > 2 : e.radiusKm > 0) && this.#s != null, i = new Set(r ?
|
|
21297
|
+
let r = e && (e.kind === "lasso" ? e.ring.length > 2 : e.radiusKm > 0) && this.#s != null, i = new Set(r ? ze(e, this.#j(n), n.geo) : []);
|
|
21278
21298
|
for (let e of t.querySelectorAll("[data-mark-id]")) e.classList.toggle("is-preview", i.has(e.getAttribute("data-mark-id")));
|
|
21279
21299
|
t.classList.toggle("is-previewing", r === !0);
|
|
21280
21300
|
}
|
|
21281
|
-
#
|
|
21301
|
+
#Z(e) {
|
|
21282
21302
|
let t = this.#n, n = this.#t;
|
|
21283
|
-
if (!t || !n || !
|
|
21303
|
+
if (!t || !n || !ve(e)) return;
|
|
21284
21304
|
let r = n.getBoundingClientRect(), i = e.getBoundingClientRect(), a = {
|
|
21285
21305
|
left: i.left - r.left,
|
|
21286
21306
|
right: i.right - r.left,
|
|
@@ -21291,16 +21311,16 @@ var vt = class {
|
|
|
21291
21311
|
top: 0,
|
|
21292
21312
|
right: o.x,
|
|
21293
21313
|
bottom: o.y
|
|
21294
|
-
}, c = n.parentElement ?
|
|
21314
|
+
}, c = n.parentElement ? fe(n.parentElement).map((e) => ({
|
|
21295
21315
|
left: e.left - r.left,
|
|
21296
21316
|
right: e.right - r.left,
|
|
21297
21317
|
top: e.top - r.top,
|
|
21298
21318
|
bottom: e.bottom - r.top
|
|
21299
|
-
})) : [], l = !
|
|
21300
|
-
u ? (u[0] || u[1]) && t.panBy([-u[0], -u[1]], { animate: l }) :
|
|
21319
|
+
})) : [], l = !y(), u = ge(a, s, c, 8);
|
|
21320
|
+
u ? (u[0] || u[1]) && t.panBy([-u[0], -u[1]], { animate: l }) : _e(a, s, c) && t.panBy([(a.left + a.right) / 2 - o.x / 2, (a.top + a.bottom) / 2 - o.y / 2], { animate: l });
|
|
21301
21321
|
}
|
|
21302
21322
|
};
|
|
21303
|
-
function
|
|
21323
|
+
function _t(e) {
|
|
21304
21324
|
return [
|
|
21305
21325
|
0,
|
|
21306
21326
|
1,
|
|
@@ -21310,24 +21330,24 @@ function yt(e) {
|
|
|
21310
21330
|
5
|
|
21311
21331
|
].map((t) => e * t / 5);
|
|
21312
21332
|
}
|
|
21313
|
-
function
|
|
21314
|
-
return Math.abs(e) >= 1e4 ?
|
|
21333
|
+
function vt(e) {
|
|
21334
|
+
return Math.abs(e) >= 1e4 ? a(e) : g(e, +!Number.isInteger(e));
|
|
21315
21335
|
}
|
|
21316
|
-
function
|
|
21336
|
+
function yt(e, t) {
|
|
21317
21337
|
let { max: n, unit: r } = e;
|
|
21318
|
-
if (!t) return
|
|
21338
|
+
if (!t) return f`<span class="lintje-map-legend__key">
|
|
21319
21339
|
<span class="lintje-map-legend__figure">0</span>
|
|
21320
|
-
<span class="lintje-map-legend__ramp">${
|
|
21321
|
-
<span class="lintje-map-legend__figure">${
|
|
21340
|
+
<span class="lintje-map-legend__ramp">${Be.map((e) => f`<i ${o({ background: e })}></i>`)}</span>
|
|
21341
|
+
<span class="lintje-map-legend__figure">${R(a(n), r)}</span>
|
|
21322
21342
|
</span>`;
|
|
21323
|
-
let i =
|
|
21324
|
-
label:
|
|
21343
|
+
let i = _t(n), s = Be.map((e, t) => ({
|
|
21344
|
+
label: R(`${vt(i[t])} – ${vt(i[t + 1])}`, t === 4 ? r : ""),
|
|
21325
21345
|
color: e,
|
|
21326
21346
|
fixed: !0
|
|
21327
21347
|
}));
|
|
21328
|
-
return
|
|
21348
|
+
return f`<span class="lintje-map-legend__key lintje-map-legend__classes">${w({ items: s })}</span>`;
|
|
21329
21349
|
}
|
|
21330
|
-
function
|
|
21350
|
+
function bt(e, t) {
|
|
21331
21351
|
let n = Math.sqrt(Math.max(e, 1) * t), r = t / 4;
|
|
21332
21352
|
for (let i = 10 ** Math.floor(Math.log10(Math.max(e, 1))); i <= t; i *= 10) for (let a of [
|
|
21333
21353
|
1,
|
|
@@ -21339,15 +21359,15 @@ function H(e, t) {
|
|
|
21339
21359
|
}
|
|
21340
21360
|
return r;
|
|
21341
21361
|
}
|
|
21342
|
-
function
|
|
21343
|
-
let { min: n, max: r, unit:
|
|
21344
|
-
if (!t || n >= r) return
|
|
21362
|
+
function V(e, t) {
|
|
21363
|
+
let { min: n, max: r, unit: i } = e, o = R(`${a(n)} – ${a(r)}`, i);
|
|
21364
|
+
if (!t || n >= r) return f`<span class="lintje-map-legend__key">
|
|
21345
21365
|
<svg class="lintje-map-legend__sizes" width="49" height="22" aria-hidden="true">
|
|
21346
21366
|
<circle cx="4" cy="11" r="3" /><circle cx="17.5" cy="11" r="6.5" /><circle cx="38" cy="11" r="10" />
|
|
21347
21367
|
</svg>
|
|
21348
21368
|
<span class="lintje-map-legend__figure">${o}</span>
|
|
21349
21369
|
</span>`;
|
|
21350
|
-
let s =
|
|
21370
|
+
let s = bt(n, r), c = [
|
|
21351
21371
|
14,
|
|
21352
21372
|
31,
|
|
21353
21373
|
46
|
|
@@ -21356,43 +21376,43 @@ function xt(e, t) {
|
|
|
21356
21376
|
s,
|
|
21357
21377
|
n
|
|
21358
21378
|
].map((e, t) => {
|
|
21359
|
-
let n =
|
|
21379
|
+
let n = Ue(e, r);
|
|
21360
21380
|
return {
|
|
21361
21381
|
r: n,
|
|
21362
21382
|
top: 46 - 2 * n,
|
|
21363
21383
|
line: c[t],
|
|
21364
|
-
label:
|
|
21384
|
+
label: R(a(e), t === 0 ? i : "")
|
|
21365
21385
|
};
|
|
21366
21386
|
});
|
|
21367
|
-
return
|
|
21387
|
+
return f`<span class="lintje-map-legend__key">
|
|
21368
21388
|
<svg class="lintje-map-legend__sizes lintje-map-legend__sizes--nested" width="150" height="48" aria-hidden="true">
|
|
21369
|
-
${l.map(({ r: e, top: t, line: n, label: r }) =>
|
|
21389
|
+
${l.map(({ r: e, top: t, line: n, label: r }) => h`
|
|
21370
21390
|
<circle cx="19" cy=${46 - e} r=${e} />
|
|
21371
21391
|
<line x1="19" y1=${t} x2="48" y2=${n - 4} />
|
|
21372
21392
|
<text x="52" y=${n}>${r}</text>`)}
|
|
21373
21393
|
</svg>
|
|
21374
21394
|
</span>`;
|
|
21375
21395
|
}
|
|
21376
|
-
function
|
|
21396
|
+
function H(e) {
|
|
21377
21397
|
let { min: t, max: n, unit: r } = e;
|
|
21378
|
-
return
|
|
21398
|
+
return f`<span class="lintje-map-legend__key">
|
|
21379
21399
|
<svg class="lintje-map-legend__wedge" width="58" height="12" aria-hidden="true"><path d="M0 5.5 L58 2 L58 10 L0 6.5 Z" /></svg>
|
|
21380
|
-
<span class="lintje-map-legend__figure">${
|
|
21400
|
+
<span class="lintje-map-legend__figure">${R(`${a(t)} – ${a(n)}`, r)}</span>
|
|
21381
21401
|
</span>`;
|
|
21382
21402
|
}
|
|
21383
|
-
function
|
|
21403
|
+
function xt(e, t) {
|
|
21384
21404
|
let { variant: n } = e;
|
|
21385
|
-
return n === "choropleth" || n === "polygons" ?
|
|
21405
|
+
return n === "choropleth" || n === "polygons" ? yt(e, t) : n === "flows" ? H(e) : V(e, t);
|
|
21386
21406
|
}
|
|
21387
|
-
function
|
|
21407
|
+
function St(e, t) {
|
|
21388
21408
|
let n = [];
|
|
21389
21409
|
for (let [r, i] of Object.entries(e.seriesLabels ?? {})) {
|
|
21390
21410
|
if (!i || !e.values.some((e) => e.series === r)) continue;
|
|
21391
|
-
let a =
|
|
21411
|
+
let a = We(e, r);
|
|
21392
21412
|
n.push({
|
|
21393
21413
|
key: a,
|
|
21394
21414
|
label: i,
|
|
21395
|
-
color:
|
|
21415
|
+
color: ce(r),
|
|
21396
21416
|
symbol: r,
|
|
21397
21417
|
shape: "point",
|
|
21398
21418
|
hidden: t.includes(a)
|
|
@@ -21404,48 +21424,48 @@ function wt(e, t) {
|
|
|
21404
21424
|
fixed: !0
|
|
21405
21425
|
}), n;
|
|
21406
21426
|
}
|
|
21407
|
-
function
|
|
21408
|
-
let { drawings: t, hiddenLayers:
|
|
21409
|
-
return
|
|
21427
|
+
function Ct(e) {
|
|
21428
|
+
let { drawings: t, hiddenLayers: n, hiddenSeries: r, expanded: i, mobile: a, open: o } = e, c = !i && !o && t.length > 3, l = c ? t.slice(0, 3) : t, u = ["lintje-map-legend", a ? "lintje-map-legend--narrow" : ""].join(" ");
|
|
21429
|
+
return f`
|
|
21410
21430
|
<div class=${u} role="group" aria-label="Legenda">
|
|
21411
21431
|
${l.map((t) => {
|
|
21412
|
-
let
|
|
21432
|
+
let a = n.includes(t.index), o = St(t, r).map((e) => a ? {
|
|
21413
21433
|
...e,
|
|
21414
21434
|
hidden: !0,
|
|
21415
21435
|
fixed: !0
|
|
21416
21436
|
} : e);
|
|
21417
|
-
return
|
|
21418
|
-
<button type="button" class="lintje-map-legend__layer ${
|
|
21419
|
-
aria-pressed=${!
|
|
21420
|
-
<span class="lintje-map-legend__box" aria-hidden="true">${
|
|
21437
|
+
return f`
|
|
21438
|
+
<button type="button" class="lintje-map-legend__layer ${a ? "is-off" : ""}"
|
|
21439
|
+
aria-pressed=${!a} @click=${() => e.onLayer(t.index)}>
|
|
21440
|
+
<span class="lintje-map-legend__box" aria-hidden="true">${v("functioneel-vinkje", { size: 10 })}</span>
|
|
21421
21441
|
<span class="lintje-map-legend__name">${t.name}</span>
|
|
21422
21442
|
</button>
|
|
21423
|
-
<div class="lintje-map-legend__keys ${
|
|
21424
|
-
${
|
|
21425
|
-
${
|
|
21426
|
-
items:
|
|
21443
|
+
<div class="lintje-map-legend__keys ${a ? "is-off" : ""}">
|
|
21444
|
+
${xt(t, i)}
|
|
21445
|
+
${o.length > 0 ? f`<span class="lintje-map-legend__rule" aria-hidden="true"></span>${w({
|
|
21446
|
+
items: o,
|
|
21427
21447
|
onToggle: e.onSeries
|
|
21428
|
-
})}` :
|
|
21448
|
+
})}` : s}
|
|
21429
21449
|
</div>
|
|
21430
21450
|
`;
|
|
21431
21451
|
})}
|
|
21432
|
-
${!
|
|
21452
|
+
${!i && t.length > 3 ? f`<button type="button" class="lintje-map-legend__more" aria-expanded=${!c}
|
|
21433
21453
|
@click=${() => e.onOpen(c)}>
|
|
21434
21454
|
${c ? `Nog ${t.length - 3} ${t.length - 3 == 1 ? "laag" : "lagen"}` : "Minder lagen"}
|
|
21435
|
-
${
|
|
21455
|
+
${v("functioneel-delta-omlaag", {
|
|
21436
21456
|
size: 12,
|
|
21437
21457
|
rotate: c ? void 0 : 180
|
|
21438
21458
|
})}
|
|
21439
|
-
</button>` :
|
|
21459
|
+
</button>` : s}
|
|
21440
21460
|
</div>
|
|
21441
21461
|
`;
|
|
21442
21462
|
}
|
|
21443
21463
|
//#endregion
|
|
21444
21464
|
//#region src/components/shared/charts/map-chart/map-chart.ts
|
|
21445
|
-
var
|
|
21465
|
+
var wt = {
|
|
21446
21466
|
desktop: 400,
|
|
21447
21467
|
mobile: 280
|
|
21448
|
-
},
|
|
21468
|
+
}, U = {
|
|
21449
21469
|
zoom: !0,
|
|
21450
21470
|
wheel: !0,
|
|
21451
21471
|
drag: !0,
|
|
@@ -21455,7 +21475,7 @@ var W = {
|
|
|
21455
21475
|
rect: !1,
|
|
21456
21476
|
scale: !0,
|
|
21457
21477
|
legend: !0
|
|
21458
|
-
},
|
|
21478
|
+
}, W = [
|
|
21459
21479
|
{
|
|
21460
21480
|
tool: "lasso",
|
|
21461
21481
|
name: "functioneel-lasso",
|
|
@@ -21474,7 +21494,7 @@ var W = {
|
|
|
21474
21494
|
text: "Rechthoek",
|
|
21475
21495
|
label: "Selecteer met een rechthoek"
|
|
21476
21496
|
}
|
|
21477
|
-
],
|
|
21497
|
+
], Tt = {
|
|
21478
21498
|
lasso: {
|
|
21479
21499
|
full: "Sleep om te kiezen, of klik de hoeken · Escape stopt",
|
|
21480
21500
|
short: "Sleep om te kiezen"
|
|
@@ -21487,290 +21507,289 @@ var W = {
|
|
|
21487
21507
|
full: "Sleep van hoek naar hoek, of klik twee hoeken · Escape stopt",
|
|
21488
21508
|
short: "Sleep van hoek naar hoek"
|
|
21489
21509
|
}
|
|
21490
|
-
},
|
|
21491
|
-
function
|
|
21510
|
+
}, Et = 200, G = 1500;
|
|
21511
|
+
function Dt(e) {
|
|
21492
21512
|
return e.ctrlKey || e.metaKey;
|
|
21493
21513
|
}
|
|
21494
|
-
function
|
|
21495
|
-
return -(e.deltaMode === 1 ? e.deltaY * 16 : e.deltaMode === 2 ? e.deltaY * 400 : e.deltaY) /
|
|
21514
|
+
function Ot(e) {
|
|
21515
|
+
return -(e.deltaMode === 1 ? e.deltaY * 16 : e.deltaMode === 2 ? e.deltaY * 400 : e.deltaY) / Et;
|
|
21496
21516
|
}
|
|
21497
|
-
function
|
|
21517
|
+
function kt() {
|
|
21498
21518
|
let e = navigator.userAgentData?.platform;
|
|
21499
21519
|
return `Gebruik ${/mac|iphone|ipad/i.test(e ?? navigator.platform) ? "⌘" : "Ctrl"} + scrollen om te zoomen`;
|
|
21500
21520
|
}
|
|
21501
|
-
function
|
|
21502
|
-
e.mapHint =
|
|
21521
|
+
function K(e) {
|
|
21522
|
+
e.mapHint = kt(), e.mapHintTimer && clearTimeout(e.mapHintTimer), e.mapHintTimer = setTimeout(() => {
|
|
21503
21523
|
e.mapHint = null, e.mapHintTimer = null, e.requestUpdate();
|
|
21504
|
-
},
|
|
21524
|
+
}, G), e.requestUpdate();
|
|
21505
21525
|
}
|
|
21506
|
-
function
|
|
21526
|
+
function At(e) {
|
|
21507
21527
|
let t = e >= 1e3, n = t ? e / 1e3 : e;
|
|
21508
|
-
return `${
|
|
21528
|
+
return `${g(n, +!Number.isInteger(n))} ${t ? "km" : "m"}`;
|
|
21509
21529
|
}
|
|
21510
|
-
function
|
|
21511
|
-
return e.kind === "circle" ? `binnen ${
|
|
21530
|
+
function jt(e) {
|
|
21531
|
+
return e.kind === "circle" ? `binnen ${g(Math.round(e.radiusKm * 10) / 10)} km` : De(e.ring) ? "binnen de rechthoek" : "binnen de getekende lijn";
|
|
21512
21532
|
}
|
|
21513
|
-
function
|
|
21514
|
-
let { controller:
|
|
21515
|
-
...
|
|
21533
|
+
function Mt(e, t) {
|
|
21534
|
+
let { controller: n, description: r = e.description, mobile: i = !1, onSelect: a, onClear: c, onLayerChange: l, onArea: u } = t, { unit: d = "aantal", selectedId: h = null, selectedArea: _ = null, layers: y, layer: ee, basemap: ne, selectLabel: re = "Zet als bereik" } = e, ie = !!t.expanded, b = {
|
|
21535
|
+
...U,
|
|
21516
21536
|
...e.controls
|
|
21517
|
-
},
|
|
21518
|
-
|
|
21537
|
+
}, x = W.filter((e) => b[e.tool]);
|
|
21538
|
+
n.mapTool && !b[n.mapTool] && (n.mapTool = null), n.mapLastTool && !b[n.mapLastTool] && (n.mapLastTool = null), n.measure(ie ? {
|
|
21519
21539
|
width: !0,
|
|
21520
21540
|
height: "--chart-h-main",
|
|
21521
|
-
fit: !
|
|
21541
|
+
fit: !i
|
|
21522
21542
|
} : {});
|
|
21523
|
-
let
|
|
21524
|
-
|
|
21525
|
-
let
|
|
21526
|
-
|
|
21527
|
-
let
|
|
21528
|
-
for (let e of se) for (let t of e.values)
|
|
21529
|
-
let j =
|
|
21530
|
-
let e =
|
|
21531
|
-
e != null && (
|
|
21543
|
+
let oe = ie ? n.height : t.height ?? e.height ?? (i ? wt.mobile : wt.desktop), se = be(e, d);
|
|
21544
|
+
n.hostSelection !== h && (n.hostSelection = h, n.mapSelection = h);
|
|
21545
|
+
let w = JSON.stringify(_);
|
|
21546
|
+
n.hostArea !== w && (n.hostArea = w, n.mapArea = _);
|
|
21547
|
+
let T = x.length > 0 ? n.mapArea : null, D = T ? ze(T, se, e.geo) : [], O = n.mapSelection, k = /* @__PURE__ */ new Map(), A = /* @__PURE__ */ new Map();
|
|
21548
|
+
for (let e of se) for (let t of e.values) k.set(t.id, t), A.set(t.id, e);
|
|
21549
|
+
let j = O ? k.get(O) : void 0, M = j ? A.get(j.id) : void 0, N = (e) => e.series && A.get(e.id)?.seriesLabels?.[e.series] || void 0, le = n.hiddenLayers, ue = n.hiddenSeries, P = () => {
|
|
21550
|
+
let e = n.mapSelection;
|
|
21551
|
+
e != null && (n.mapSelection = null, c?.(e), n.requestUpdate());
|
|
21532
21552
|
}, de = () => {
|
|
21533
|
-
|
|
21553
|
+
n.mapArea && (n.mapArea = null, u?.(null, []), n.requestUpdate());
|
|
21534
21554
|
}, fe = (e) => {
|
|
21535
|
-
if (e.id ===
|
|
21536
|
-
|
|
21555
|
+
if (e.id === O) return P();
|
|
21556
|
+
n.mapSelection = e.id, a?.(e), n.requestUpdate();
|
|
21537
21557
|
}, pe = (t) => {
|
|
21538
|
-
|
|
21558
|
+
n.mapArea = t, u?.(t, ze(t, se, e.geo)), n.requestUpdate();
|
|
21539
21559
|
}, me = (e) => {
|
|
21540
|
-
|
|
21560
|
+
n.mapTool = e, e && (n.mapLastTool = e), n.requestUpdate();
|
|
21541
21561
|
};
|
|
21542
|
-
if (j && M && (j.series && ue.includes(
|
|
21543
|
-
let he =
|
|
21562
|
+
if (j && M && (j.series && ue.includes(We(M, j.series)) || le.includes(M.index))) return P(), Mt(e, t);
|
|
21563
|
+
let he = n.leaflet ??= new gt(n);
|
|
21544
21564
|
he.sync(e, {
|
|
21545
|
-
unit:
|
|
21546
|
-
active:
|
|
21565
|
+
unit: d,
|
|
21566
|
+
active: O,
|
|
21547
21567
|
hidden: ue,
|
|
21548
21568
|
hiddenLayers: le,
|
|
21549
|
-
area:
|
|
21550
|
-
chosen:
|
|
21551
|
-
tool:
|
|
21552
|
-
drag:
|
|
21553
|
-
zoom:
|
|
21554
|
-
scale:
|
|
21569
|
+
area: T,
|
|
21570
|
+
chosen: D,
|
|
21571
|
+
tool: n.mapTool,
|
|
21572
|
+
drag: b.drag,
|
|
21573
|
+
zoom: b.zoom,
|
|
21574
|
+
scale: b.scale,
|
|
21555
21575
|
drawn: pe,
|
|
21556
21576
|
stopTool: () => me(null),
|
|
21557
21577
|
select: fe,
|
|
21558
21578
|
clear: P,
|
|
21559
|
-
mobile:
|
|
21579
|
+
mobile: i
|
|
21560
21580
|
});
|
|
21561
|
-
let ge =
|
|
21562
|
-
e === "in" ? he.zoomIn() : e === "out" ? he.zoomOut() : (
|
|
21563
|
-
}, ye = `${
|
|
21581
|
+
let ge = ae.filter((e) => e.action === "home" ? b.reset : b.zoom), _e = b.scale ? he.scaleBar() : null, ve = (e) => {
|
|
21582
|
+
e === "in" ? he.zoomIn() : e === "out" ? he.zoomOut() : (n.mapTool = null, P(), de(), he.home());
|
|
21583
|
+
}, ye = `${n.id}-tools`, F = W.find((e) => e.tool === (n.mapTool ?? n.mapLastTool ?? x[0]?.tool)), I = x.map((e) => ({
|
|
21564
21584
|
value: e.tool,
|
|
21565
21585
|
label: e.text,
|
|
21566
21586
|
icon: e.name,
|
|
21567
21587
|
checked: F?.tool === e.tool,
|
|
21568
21588
|
radio: !0
|
|
21569
21589
|
})), xe = (e, t = "first") => {
|
|
21570
|
-
|
|
21571
|
-
}, Se = () =>
|
|
21590
|
+
n.mapMenuOpen = e, n.mapMenuFocus = e ? t : null, n.requestUpdate();
|
|
21591
|
+
}, Se = () => n.element?.querySelector(".lintje-map-chart__tool"), Ce = (e) => {
|
|
21572
21592
|
xe(!1, null), e && Se()?.focus();
|
|
21573
|
-
},
|
|
21574
|
-
let t = e.currentTarget, n =
|
|
21593
|
+
}, we = (e) => [...e.querySelectorAll(".lintje-menu__row")], Te = (e) => {
|
|
21594
|
+
let t = e.currentTarget, n = we(t), r = t.getRootNode().activeElement, i = n.findIndex((e) => e === r), a = (e) => {
|
|
21575
21595
|
e >= 0 && n[e]?.focus();
|
|
21576
21596
|
};
|
|
21577
21597
|
switch (e.key) {
|
|
21578
|
-
case "ArrowDown": return e.preventDefault(), a(
|
|
21579
|
-
case "ArrowUp": return e.preventDefault(), a(
|
|
21580
|
-
case "Home": return e.preventDefault(), a(
|
|
21581
|
-
case "End": return e.preventDefault(), a(
|
|
21598
|
+
case "ArrowDown": return e.preventDefault(), a(te(I, i, 1));
|
|
21599
|
+
case "ArrowUp": return e.preventDefault(), a(te(I, i < 0 ? I.length : i, -1));
|
|
21600
|
+
case "Home": return e.preventDefault(), a(te(I, -1, 1));
|
|
21601
|
+
case "End": return e.preventDefault(), a(te(I, I.length, -1));
|
|
21582
21602
|
case "Tab": return e.shiftKey || Se()?.focus(), Ce(!1);
|
|
21583
21603
|
default: return;
|
|
21584
21604
|
}
|
|
21585
|
-
},
|
|
21586
|
-
let t =
|
|
21587
|
-
e && t && (
|
|
21588
|
-
let n =
|
|
21605
|
+
}, Ee = (e) => {
|
|
21606
|
+
let t = n.mapMenuFocus;
|
|
21607
|
+
e && t && (n.mapMenuFocus = null, (e.closest("lintje-popover")?.updateComplete ?? Promise.resolve()).then(() => {
|
|
21608
|
+
let n = we(e);
|
|
21589
21609
|
n[t === "first" ? 0 : t === "last" ? n.length - 1 : Math.max(0, n.findIndex((e) => e.getAttribute("aria-checked") === "true"))]?.focus();
|
|
21590
21610
|
}));
|
|
21591
|
-
},
|
|
21611
|
+
}, De = (e) => {
|
|
21592
21612
|
Ce(!0), me(e);
|
|
21593
|
-
},
|
|
21594
|
-
if (
|
|
21595
|
-
let e = ge.length > 0 ? "lintje-map-chart__tip--first" : "", t =
|
|
21596
|
-
return
|
|
21597
|
-
<lintje-tooltip class="lintje-map-chart__tip ${e}" text=${
|
|
21613
|
+
}, Oe = () => {
|
|
21614
|
+
if (x.length === 0 || !F) return s;
|
|
21615
|
+
let e = ge.length > 0 ? "lintje-map-chart__tip--first" : "", t = n.mapTool === F.tool, r = x.length > 1, i = n.mapMenuOpen, a = t ? "Stop met selecteren" : r ? "Selecteren" : F.label, o = t || !r ? F.name : "functioneel-selectie", c = m(o, f`<span class="lintje-map-chart__tool-icon">${S(o, t || !r ? F.text : "Kies")}</span>`);
|
|
21616
|
+
return f`
|
|
21617
|
+
<lintje-tooltip class="lintje-map-chart__tip ${e}" text=${a} placement="left" no-describe>
|
|
21598
21618
|
<button type="button"
|
|
21599
|
-
class="lintje-map-chart__zoom-button lintje-map-chart__tool ${
|
|
21600
|
-
aria-label=${
|
|
21601
|
-
aria-haspopup=${
|
|
21602
|
-
aria-controls=${
|
|
21619
|
+
class="lintje-map-chart__zoom-button lintje-map-chart__tool ${r ? "lintje-map-chart__tool--menu" : ""} ${t ? "is-active" : ""}"
|
|
21620
|
+
aria-label=${a} aria-pressed=${t}
|
|
21621
|
+
aria-haspopup=${r && !t ? "menu" : s} aria-expanded=${r && !t ? String(i) : s}
|
|
21622
|
+
aria-controls=${r && !t ? ye : s}
|
|
21603
21623
|
@click=${() => {
|
|
21604
|
-
t ? me(null) :
|
|
21624
|
+
t ? me(null) : r ? xe(!i, "checked") : me(F.tool);
|
|
21605
21625
|
}}
|
|
21606
21626
|
@keydown=${(e) => {
|
|
21607
|
-
!
|
|
21608
|
-
}}>${
|
|
21627
|
+
!r || t || e.key !== "ArrowDown" && e.key !== "ArrowUp" || (e.preventDefault(), xe(!0, e.key === "ArrowDown" ? "first" : "last"));
|
|
21628
|
+
}}>${c}</button>
|
|
21609
21629
|
</lintje-tooltip>
|
|
21610
|
-
${
|
|
21630
|
+
${r ? ke(i) : s}
|
|
21611
21631
|
`;
|
|
21612
|
-
},
|
|
21632
|
+
}, ke = (e) => f`
|
|
21613
21633
|
<lintje-popover id=${ye} panel-role="menu" label="Andere vorm" placement="left-start" ?open=${e}
|
|
21614
21634
|
@lintje-close=${(e) => {
|
|
21615
21635
|
e.stopPropagation(), Ce(e.detail?.reason === "escape");
|
|
21616
21636
|
}}>
|
|
21617
|
-
${e ?
|
|
21618
|
-
${
|
|
21637
|
+
${e ? f`<div class="lintje-menu lintje-map-chart__menu" ${p(Ee)} @keydown=${Te}>
|
|
21638
|
+
${I.map((e) => f`
|
|
21619
21639
|
<button type="button" class="lintje-menu__row focus-inset" role="menuitemradio" tabindex="-1"
|
|
21620
21640
|
aria-checked=${String(e.checked)}
|
|
21621
|
-
@click=${() =>
|
|
21622
|
-
${
|
|
21641
|
+
@click=${() => De(e.value)}>
|
|
21642
|
+
${v(e.icon, {
|
|
21623
21643
|
size: 16,
|
|
21624
21644
|
className: "lintje-menu__icon"
|
|
21625
21645
|
})}
|
|
21626
21646
|
<span class="lintje-menu__label">${e.label}</span>
|
|
21627
|
-
${e.checked ?
|
|
21647
|
+
${e.checked ? v("functioneel-vinkje", {
|
|
21628
21648
|
size: 16,
|
|
21629
21649
|
className: "lintje-menu__check"
|
|
21630
|
-
}) :
|
|
21650
|
+
}) : s}
|
|
21631
21651
|
</button>`)}
|
|
21632
|
-
</div>` :
|
|
21652
|
+
</div>` : s}
|
|
21633
21653
|
</lintje-popover>
|
|
21634
|
-
`,
|
|
21635
|
-
let e =
|
|
21636
|
-
return j ?
|
|
21654
|
+
`, Ae = () => {
|
|
21655
|
+
let e = i ? "lintje-map-chart__selection--below" : "";
|
|
21656
|
+
return j ? f`
|
|
21637
21657
|
<div class="lintje-map-chart__selection ${e}">
|
|
21638
21658
|
<span class="lintje-map-chart__selection-title">Geselecteerd</span>
|
|
21639
21659
|
<!-- The way out of a selection that is always there, for mouse and
|
|
21640
21660
|
keyboard alike; the focus goes back to the mark it had. -->
|
|
21641
21661
|
<button type="button" class="lintje-map-chart__selection-close"
|
|
21642
21662
|
aria-label="Selectie opheffen"
|
|
21643
|
-
@click=${() => P()}>${
|
|
21663
|
+
@click=${() => P()}>${v("functioneel-kruis", { size: 14 })}</button>
|
|
21644
21664
|
<b>${j.label}</b>
|
|
21645
|
-
${N(j) ?
|
|
21665
|
+
${N(j) ? f`<span class="lintje-map-chart__selection-series">
|
|
21646
21666
|
<svg class="lintje-map-chart__series-swatch" viewBox="0 0 14 14" aria-hidden="true" focusable="false">
|
|
21647
|
-
<path d=${
|
|
21667
|
+
<path d=${C(j.series, 5.5, 7, 7)} fill=${ce(j.series) ?? "currentColor"} />
|
|
21648
21668
|
</svg>${N(j)}
|
|
21649
|
-
</span>` :
|
|
21669
|
+
</span>` : s}
|
|
21650
21670
|
<span class="lintje-map-chart__selection-value">
|
|
21651
|
-
${j.value == null ? "geen gegevens" :
|
|
21671
|
+
${j.value == null ? "geen gegevens" : R(g(j.value), M?.unit ?? d)}${j.detail ? ` · ${j.detail}` : ""}
|
|
21652
21672
|
</span>
|
|
21653
21673
|
<!-- Only when the mark carries a URL the host minted: without one
|
|
21654
21674
|
the link had nowhere to go and did nothing. -->
|
|
21655
|
-
${
|
|
21675
|
+
${a && j.href ? f`
|
|
21656
21676
|
<button type="button" class="lintje-map-chart__set-scope"
|
|
21657
|
-
@click=${() =>
|
|
21658
|
-
${
|
|
21677
|
+
@click=${() => a(j)}>
|
|
21678
|
+
${re} ${v("functioneel-locatiemarker", { size: 14 })}
|
|
21659
21679
|
</button>
|
|
21660
|
-
` :
|
|
21680
|
+
` : s}
|
|
21661
21681
|
</div>
|
|
21662
|
-
` :
|
|
21682
|
+
` : T ? f`
|
|
21663
21683
|
<div class="lintje-map-chart__selection ${e}">
|
|
21664
21684
|
<span class="lintje-map-chart__selection-title">Geselecteerd</span>
|
|
21665
21685
|
<button type="button" class="lintje-map-chart__selection-close"
|
|
21666
21686
|
aria-label="Selectie opheffen"
|
|
21667
|
-
@click=${() => de()}>${
|
|
21668
|
-
<b>${
|
|
21669
|
-
<span class="lintje-map-chart__selection-value">${
|
|
21687
|
+
@click=${() => de()}>${v("functioneel-kruis", { size: 14 })}</button>
|
|
21688
|
+
<b>${D.length === 0 ? "Niets" : D.length === 1 ? "1 op de kaart" : `${g(D.length)} op de kaart`}</b>
|
|
21689
|
+
<span class="lintje-map-chart__selection-value">${jt(T)}</span>
|
|
21670
21690
|
</div>
|
|
21671
|
-
` :
|
|
21672
|
-
},
|
|
21673
|
-
return
|
|
21674
|
-
<div class="lintje-map-chart ${
|
|
21675
|
-
${
|
|
21691
|
+
` : s;
|
|
21692
|
+
}, je = n.mapHint ? n.mapHint : n.mapTool ? Tt[n.mapTool][i ? "short" : "full"] : null;
|
|
21693
|
+
return f`
|
|
21694
|
+
<div class="lintje-map-chart ${i ? "lintje-map-chart--mobile" : ""} ${ne ? "lintje-map-chart--basemap" : ""}"
|
|
21695
|
+
${p(n.attach)} ?data-in-view=${n.inView}
|
|
21676
21696
|
@keydown=${(e) => {
|
|
21677
21697
|
if (e.key === "Escape") {
|
|
21678
|
-
if (
|
|
21679
|
-
else if (
|
|
21680
|
-
else if (
|
|
21698
|
+
if (n.mapTool) n.mapTool = null;
|
|
21699
|
+
else if (O) P();
|
|
21700
|
+
else if (T) de();
|
|
21681
21701
|
else return;
|
|
21682
|
-
e.stopPropagation(),
|
|
21702
|
+
e.stopPropagation(), n.requestUpdate();
|
|
21683
21703
|
}
|
|
21684
21704
|
}}>
|
|
21685
|
-
${
|
|
21705
|
+
${b.legend ? Ct({
|
|
21686
21706
|
drawings: se,
|
|
21687
21707
|
hiddenLayers: le,
|
|
21688
21708
|
hiddenSeries: ue,
|
|
21689
|
-
expanded:
|
|
21690
|
-
mobile:
|
|
21691
|
-
open:
|
|
21692
|
-
onLayer: (e) =>
|
|
21693
|
-
onSeries: (e) =>
|
|
21709
|
+
expanded: ie,
|
|
21710
|
+
mobile: i,
|
|
21711
|
+
open: n.mapLegendOpen,
|
|
21712
|
+
onLayer: (e) => n.toggleLayer(e),
|
|
21713
|
+
onSeries: (e) => n.toggleSeries(e),
|
|
21694
21714
|
onOpen: (e) => {
|
|
21695
|
-
|
|
21715
|
+
n.mapLegendOpen = e, n.requestUpdate();
|
|
21696
21716
|
}
|
|
21697
|
-
}) :
|
|
21698
|
-
<div class="lintje-map-chart__area" ${
|
|
21717
|
+
}) : s}
|
|
21718
|
+
<div class="lintje-map-chart__area" ${o({ height: `${oe}px` })} data-tooltip-anchor
|
|
21699
21719
|
@wheel=${{
|
|
21700
21720
|
handleEvent: (e) => {
|
|
21701
|
-
if (
|
|
21702
|
-
if (!
|
|
21703
|
-
e.preventDefault(), he.zoomBy(e,
|
|
21721
|
+
if (b.wheel) {
|
|
21722
|
+
if (!Dt(e)) return K(n);
|
|
21723
|
+
e.preventDefault(), he.zoomBy(e, Ot(e));
|
|
21704
21724
|
}
|
|
21705
21725
|
},
|
|
21706
21726
|
passive: !1
|
|
21707
21727
|
}}>
|
|
21708
|
-
<p class="visually-hidden">${
|
|
21709
|
-
<div class="lintje-map-chart__leaflet" ${
|
|
21710
|
-
${
|
|
21728
|
+
<p class="visually-hidden">${r}</p>
|
|
21729
|
+
<div class="lintje-map-chart__leaflet" ${p(he.attach)}></div>
|
|
21730
|
+
${E(n)}
|
|
21711
21731
|
|
|
21712
21732
|
<!-- Layer switcher top left. -->
|
|
21713
|
-
${
|
|
21733
|
+
${y && y.length > 1 ? f`
|
|
21714
21734
|
<div class="lintje-map-chart__layers" role="group" aria-label="Kaartlaag">
|
|
21715
|
-
${
|
|
21735
|
+
${y.map((e) => f`
|
|
21716
21736
|
<button type="button"
|
|
21717
|
-
class="lintje-map-chart__layer ${e.value ===
|
|
21718
|
-
aria-pressed=${e.value ===
|
|
21737
|
+
class="lintje-map-chart__layer ${e.value === ee ? "is-active" : ""}"
|
|
21738
|
+
aria-pressed=${e.value === ee}
|
|
21719
21739
|
@click=${() => l?.(e.value)}>${e.label}</button>
|
|
21720
21740
|
`)}
|
|
21721
21741
|
</div>
|
|
21722
|
-
` :
|
|
21742
|
+
` : s}
|
|
21723
21743
|
|
|
21724
|
-
${
|
|
21744
|
+
${je ? f`<p class="lintje-map-chart__hint" role="status">${je}</p>` : s}
|
|
21725
21745
|
|
|
21726
21746
|
<!-- Zoom, reset and the drawing tools top right, those the host keeps. -->
|
|
21727
|
-
${ge.length +
|
|
21747
|
+
${ge.length + x.length > 0 ? f`
|
|
21728
21748
|
<div class="lintje-map-chart__zoom">
|
|
21729
|
-
${ge.map((e) =>
|
|
21749
|
+
${ge.map((e) => f`
|
|
21730
21750
|
<lintje-tooltip class="lintje-map-chart__tip" text=${e.label} placement="left" no-describe>
|
|
21731
21751
|
<button type="button" class="lintje-map-chart__zoom-button" aria-label=${e.label}
|
|
21732
|
-
@click=${() => ve(e.action)}>${
|
|
21752
|
+
@click=${() => ve(e.action)}>${S(e.name, e.text, 16, "flip" in e ? e.flip : void 0)}</button>
|
|
21733
21753
|
</lintje-tooltip>
|
|
21734
21754
|
`)}
|
|
21735
|
-
${
|
|
21755
|
+
${Oe()}
|
|
21736
21756
|
</div>
|
|
21737
|
-
` :
|
|
21757
|
+
` : s}
|
|
21738
21758
|
|
|
21739
21759
|
<!-- The scale bottom right: a round distance, and a bracket as long as it on the map. -->
|
|
21740
|
-
${_e ?
|
|
21741
|
-
<span>${
|
|
21742
|
-
<span class="lintje-map-chart__scale-line" ${
|
|
21743
|
-
</div>` :
|
|
21760
|
+
${_e ? f`<div class="lintje-map-chart__scale-bar" aria-hidden="true">
|
|
21761
|
+
<span>${At(_e.metres)}</span>
|
|
21762
|
+
<span class="lintje-map-chart__scale-line" ${o({ width: `${_e.width}px` })}></span>
|
|
21763
|
+
</div>` : s}
|
|
21744
21764
|
|
|
21745
21765
|
<!-- What was chosen, bottom left; on a phone under the map. -->
|
|
21746
|
-
${
|
|
21766
|
+
${i ? s : Ae()}
|
|
21747
21767
|
</div>
|
|
21748
|
-
${
|
|
21768
|
+
${i ? Ae() : s}
|
|
21749
21769
|
</div>
|
|
21750
21770
|
`;
|
|
21751
21771
|
}
|
|
21752
21772
|
//#endregion
|
|
21753
21773
|
//#region src/components/shared/charts/map-chart/map-chart.css?inline
|
|
21754
|
-
var Ft = "/* Map fixed elements: zoom, reset and the select button top right, layer switcher top left,\n the scale bottom right and the selection panel bottom left, as overlays on the map area; the\n legend stands above the map, as above every chart, and the source line in the tile footer.\n Leaflet is the map (`leaflet.ts`); the drawing in its svg is the design system's own\n (`marks.ts`), styled below as any chart. */\n\n/* The overlays draw compact, like the buttons of a bar; on a phone at the touch floor. */\n.lintje-map-chart { --map-overlay-h: var(--h-button-chrome); }\n.lintje-map-chart--mobile { --map-overlay-h: var(--h-touch); }\n\n.lintje-map-chart__area {\n position: relative;\n background: var(--color-map-water);\n border: 1px solid var(--color-border-default);\n overflow: hidden;\n}\n\n/* --- The surface ---------------------------------------------------------- */\n\n.lintje-map-chart__leaflet {\n position: absolute;\n inset: 0;\n /* Leaflet numbers its panes up to 700 and its controls to 1000; without a stacking\n context the tile's own overlays would end up under the tiles. */\n z-index: 0;\n}\n.lintje-map-chart__layers,\n.lintje-map-chart__zoom,\n.lintje-map-chart__selection { z-index: 1; }\n\n.lintje-map-chart .leaflet-container {\n background: var(--color-map-water);\n font: var(--text-small);\n}\n/* The map takes the focus when a cleared mark is gone; the area clips a ring outside it. The\n ring is a layer over Leaflet's panes: an outline would lie under them and show in pieces. */\n.lintje-map-chart .leaflet-container:focus-visible { outline: none; }\n.lintje-map-chart .leaflet-container:focus-visible::after {\n content: '';\n position: absolute;\n inset: 0;\n z-index: 1000;\n border: var(--focus-width) solid var(--color-focus);\n pointer-events: none;\n}\n/* Leaflet lets no path in its svg take the pointer; a mark of ours does, by its own class. A\n mark drawn after a redraw keeps the view: marks are in the data group, the group is placed. */\n.lintje-map-chart__data .lintje-map-chart__polygon-shape,\n.lintje-map-chart__data .lintje-map-chart__flow,\n.lintje-map-chart__data .lintje-map-chart__point-shape { pointer-events: visiblePainted; }\n.lintje-map-chart__destination { pointer-events: none; }\n/* A tool on: the map is a sheet to draw on, also for a finger. */\n.lintje-map-chart .leaflet-container.is-drawing { cursor: crosshair; touch-action: none; }\n.lintje-map-chart .leaflet-container.is-drawing .lintje-map-chart__data * { cursor: crosshair; }\n/* The area that chose: an outline over the data, the inside barely tinted, never in the way. */\n.lintje-map-chart__region {\n fill: var(--color-text-primary);\n fill-opacity: .06;\n stroke: var(--color-text-primary);\n stroke-width: 2;\n stroke-dasharray: 6 4;\n vector-effect: non-scaling-stroke;\n pointer-events: none;\n}\n.lintje-map-chart__region--draft { fill-opacity: .04; }\n/* While an area is drawn, what it would choose is outlined as chosen and the rest steps back. */\n.lintje-map-chart__data.is-previewing [data-mark-id]:not(.is-preview),\n.lintje-map-chart__data.has-area:not(.is-previewing) [data-mark-id]:not(.is-selected) { opacity: .35; }\n.lintje-map-chart__polygon.is-preview .lintje-map-chart__polygon-shape,\n.lintje-map-chart__point.is-preview .lintje-map-chart__point-shape { stroke: var(--color-text-primary); stroke-width: 2; }\n.lintje-map-chart__flow.is-preview { opacity: 1; }\n/* A circle shows its middle, which is what the reader measures from. */\n.lintje-map-chart__region-centre {\n fill: var(--color-text-primary);\n stroke: var(--color-bg-surface);\n stroke-width: 1.5;\n pointer-events: none;\n}\n/* Through Leaflet's zoom animation a symbol scales back along the curve `leaflet.ts` sets. */\n.lintje-map-chart .leaflet-zoom-anim .lintje-map-chart__symbol { transition: transform 0.25s; }\n\n/* The credit: on the surface, in the map's own text colours, one line of `--space-5` high so\n what stands above it knows where; on a phone it runs to two. */\n.lintje-map-chart .leaflet-control-attribution {\n display: flex; flex-wrap: wrap; align-items: center;\n min-height: var(--space-5);\n padding: 0 var(--space-2);\n background: var(--color-bg-surface);\n color: var(--color-text-muted);\n font: var(--text-axis);\n border: 1px solid var(--color-border-default);\n border-right: 0;\n border-bottom: 0;\n margin: 0;\n}\n/* Underlined: the link differs from the credit around it by 1.24:1 in colour alone. */\n.lintje-map-chart .leaflet-control-attribution a { color: var(--color-link); text-decoration: underline; }\n\n/* --- Shapes --------------------------------------------------------------- */\n\n.lintje-map-chart__land {\n stroke: var(--color-map-border);\n stroke-width: 0.5;\n vector-effect: non-scaling-stroke;\n}\n/* Points and flows drop the browser's own focus box outright: their ring is a stroke. */\n.lintje-map-chart__flow:focus,\n.lintje-map-chart__point:focus { outline: none; }\n\n/* An area with a row — a shape of the geometry or one with its own outline — is drawn as a\n point is: a ring behind the shape for the focus, and without a figure the surface under the\n hatch, so the ring never shows through it. Its edges are those of the land. */\n.lintje-map-chart__polygon { cursor: pointer; }\n.lintje-map-chart__polygon-shape {\n stroke: var(--color-map-border);\n stroke-width: 0.5;\n vector-effect: non-scaling-stroke;\n}\n/* An area with a figure is outlined at 3:1 against the land and the lightest class, which are\n 1.1:1 apart: the lightest class would otherwise read as no data at all. */\n.lintje-map-chart__polygon-shape--data { stroke: var(--color-map-border-data); stroke-width: 1; }\n.lintje-map-chart__polygon-shape--empty { fill: var(--color-bg-surface); }\n.lintje-map-chart__polygon-hatch { pointer-events: none; }\n.lintje-map-chart__polygon:hover .lintje-map-chart__polygon-shape { stroke: var(--color-text-primary); stroke-width: 1.5; }\n.lintje-map-chart__polygon.is-selected .lintje-map-chart__polygon-shape { stroke: var(--color-text-primary); stroke-width: 2; }\n.lintje-map-chart__polygon-ring { fill: none; stroke: none; vector-effect: non-scaling-stroke; }\n.lintje-map-chart__polygon:focus-visible { outline: none; }\n.lintje-map-chart__polygon:focus-visible .lintje-map-chart__polygon-ring {\n stroke: var(--color-focus);\n stroke-width: calc(var(--focus-width) * 2 + 2px);\n}\n.lintje-map-chart__polygon:focus-visible .lintje-map-chart__polygon-shape {\n stroke: var(--color-bg-surface);\n stroke-width: 2;\n}\n\n.lintje-map-chart__flow {\n fill: none;\n stroke: var(--color-chart-default);\n stroke-linecap: round;\n opacity: .75;\n cursor: pointer;\n vector-effect: non-scaling-stroke;\n transition: opacity var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-map-chart__flow:hover,\n.lintje-map-chart__flow.is-selected { opacity: 1; }\n/* Something is chosen, a mark or an area: the flows not chosen step back, further than a point. */\n.lintje-map-chart__data.has-selection .lintje-map-chart__flow:not(.is-selected):not(:focus-visible) { opacity: .22; }\n/* A flow is a line: on focus the line itself is the ring, in the focus colour at full strength,\n also beside the chosen one. */\n.lintje-map-chart__flow:focus-visible { stroke: var(--color-focus); opacity: 1; }\n.lintje-map-chart__destination { fill: var(--color-attention); stroke: var(--color-bg-surface); stroke-width: 2; }\n\n.lintje-map-chart__point { cursor: pointer; }\n.lintje-map-chart__point-shape {\n fill: var(--color-chart-default);\n fill-opacity: .55;\n stroke: var(--color-chart-default);\n stroke-width: 1;\n vector-effect: non-scaling-stroke;\n transition: fill-opacity var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-map-chart__point:hover .lintje-map-chart__point-shape { fill-opacity: .8; }\n/* A point with a series carries its own colour, handed in as `--lintje-series` so\n the selected and focused outlines below — which are more specific — still win\n over it. The opacity and the hover are the point's own, as always. */\n.lintje-map-chart__point-shape--series {\n fill: var(--lintje-series);\n stroke: var(--lintje-series);\n fill-opacity: .65;\n}\n.lintje-map-chart__point:hover .lintje-map-chart__point-shape--series { fill-opacity: .9; }\n/* No figure: no data colour either. The surface underneath and the hatch over it\n are what the legend's \"geen gegevens\" swatch shows. */\n.lintje-map-chart__point-shape--empty {\n fill: var(--color-bg-surface);\n fill-opacity: 1;\n stroke: var(--color-chart-hatch);\n}\n/* The hatch is a fill attribute on its own path; a `fill` in this sheet would cover it. */\n.lintje-map-chart__point-hatch { pointer-events: none; }\n.lintje-map-chart__point.is-selected .lintje-map-chart__point-shape { stroke: var(--color-text-primary); stroke-width: 2; fill-opacity: .85; }\n/* The focus ring: a wide stroke on a copy of the shape behind it, of which the 3 px outside a\n 1 px edge in the surface show — so an orange point keeps its ring. The shape is opaque while\n focused, or the ring would show through it. */\n.lintje-map-chart__point-ring { fill: none; stroke: none; vector-effect: non-scaling-stroke; }\n.lintje-map-chart__point:focus-visible .lintje-map-chart__point-ring {\n stroke: var(--color-focus);\n stroke-width: calc(var(--focus-width) * 2 + 2px);\n}\n.lintje-map-chart__point:focus-visible .lintje-map-chart__point-shape {\n stroke: var(--color-bg-surface);\n stroke-width: 2;\n fill-opacity: 1;\n}\n\n/* A mark switched off in the legend keeps its element and goes with a motion — a point shrinks,\n an area or a flow fades — and comes back the same way, west to east as it first drew in; gone,\n it is hidden to the pointer, the keyboard and the reader. Every mark is keyed (`marks.ts`), so\n the others stay as they are. */\n.lintje-map-chart__point-figure { transform-box: fill-box; transform-origin: 50% 50%; }\n.lintje-map-chart__data .is-off { visibility: hidden; pointer-events: none; }\n.lintje-map-chart__point.is-off .lintje-map-chart__point-figure { transform: scale(0); opacity: 0; }\n.lintje-map-chart__polygon.is-off,\n.lintje-map-chart__flow.is-off { opacity: 0; }\n\n/* The base map stands at once. Areas fade in, flows are drawn from origin to destination and\n points grow, the last two west to east with the timing of the bars (starts spread over 40 % of\n the draw, each mark the other 60 %). Fill mode `backwards` throughout, so hover, muted and\n selected win once the draw is done. Paused until the map is in view; the paused declarations\n follow the shorthands, see chart.css. */\n@media (prefers-reduced-motion: no-preference) {\n .lintje-map-chart__data [data-mark-id] {\n transition: visibility 0s var(--dur-base), opacity var(--dur-base) var(--ease-in-motion);\n }\n .lintje-map-chart__data [data-mark-id]:not(.is-off) {\n transition-delay: 0s, calc(var(--dur-draw) * 0.4 * var(--lintje-stagger, 0));\n }\n .lintje-map-chart__point-figure {\n transition: transform var(--dur-base) var(--ease-in-motion), opacity var(--dur-base) var(--ease-in-motion);\n }\n .lintje-map-chart__point:not(.is-off) .lintje-map-chart__point-figure {\n transition-delay: calc(var(--dur-draw) * 0.4 * var(--lintje-stagger, 0));\n }\n\n .lintje-map-chart__polygon,\n .lintje-map-chart__flow,\n .lintje-map-chart__point-figure {\n animation-duration: calc(var(--dur-draw) * 0.6);\n animation-timing-function: var(--ease-in-motion);\n animation-delay: calc(var(--dur-draw) * 0.4 * var(--lintje-stagger, 0));\n animation-fill-mode: backwards;\n }\n .lintje-map-chart__polygon { animation-name: lintje-map-fade; }\n .lintje-map-chart__flow { animation-name: lintje-map-draw; }\n .lintje-map-chart__point-figure { animation-name: lintje-point-grow; }\n\n .lintje-map-chart__polygon,\n .lintje-map-chart__flow,\n .lintje-map-chart__point-figure { animation-play-state: paused; }\n [data-in-view] .lintje-map-chart__polygon,\n [data-in-view] .lintje-map-chart__flow,\n [data-in-view] .lintje-map-chart__point-figure { animation-play-state: running; }\n}\n@keyframes lintje-map-fade { from { opacity: 0; } }\n/* With pathLength=\"1\": a dash as long as the flow and a longer gap, started just past the gap's edge, so\n the round caps of the hidden dash leave no dot at either end on the first frame. */\n@keyframes lintje-map-draw {\n from { stroke-dasharray: 1 1.2; stroke-dashoffset: 1.1; }\n to { stroke-dasharray: 1 1.2; stroke-dashoffset: 0; }\n}\n\n/* --- Overlays ------------------------------------------------------------- */\n\n.lintje-map-chart__layers,\n.lintje-map-chart__zoom,\n.lintje-map-chart__selection { position: absolute; }\n\n.lintje-map-chart__layers { top: var(--space-2); left: var(--space-2); display: flex; }\n/* The layers and the zoom buttons touch, like the segments of a segmented control, so each is\n its own target along the row or the stack; across it a transparent hit area reaches\n `--h-target`. */\n.lintje-map-chart__layer {\n position: relative;\n height: var(--map-overlay-h); padding: 0 10px;\n font: var(--text-small);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n border: 1px solid var(--color-border-strong);\n margin-left: -1px;\n cursor: pointer;\n}\n.lintje-map-chart__layer::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n.lintje-map-chart__layer:first-child { margin-left: 0; }\n.lintje-map-chart__layer.is-active {\n background: var(--color-action-primary);\n color: var(--color-action-primary-text);\n /* The button's own 1 px border: the primary in light, the tint in dark, so the\n chosen layer does not melt into the map. */\n border-color: var(--color-action-primary-border);\n font-weight: 700;\n}\n\n.lintje-map-chart__zoom { top: var(--space-2); right: var(--space-2); display: flex; flex-direction: column; }\n.lintje-map-chart__zoom-button {\n position: relative;\n width: var(--map-overlay-h); height: var(--map-overlay-h);\n display: flex; align-items: center; justify-content: center;\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n border: 1px solid var(--color-border-strong);\n margin-top: -1px;\n cursor: pointer;\n}\n.lintje-map-chart__zoom-button::after {\n content: '';\n position: absolute;\n inset: 0 min(0px, calc((100% - var(--h-target)) / 2));\n}\n.lintje-map-chart__zoom-button:first-child { margin-top: 0; }\n.lintje-map-chart__zoom-button:hover { background: var(--color-bg-subtle); }\n/* Each button sits in its tooltip, which says on hover and focus what the button does. The\n select button stands apart from the zoom. */\n.lintje-map-chart__tip { display: flex; margin-top: -1px; }\n.lintje-map-chart__tip:first-child { margin-top: 0; }\n.lintje-map-chart__tip .lintje-map-chart__zoom-button { margin-top: 0; }\n.lintje-map-chart__tip--first { margin-top: var(--space-2); }\n/* A tool on: the button is primary, with the shape it draws. */\n.lintje-map-chart__tool.is-active {\n background: var(--color-action-primary);\n color: var(--color-action-primary-text);\n border-color: var(--color-action-primary-border);\n}\n/* With two or more shapes the corner says a menu of them stands behind the button, which shows\n the shape in use; a click opens it while no shape is on. A shape taken up or put down grows\n in on the button. */\n.lintje-map-chart__tool-icon { display: flex; }\n@media (prefers-reduced-motion: no-preference) {\n .lintje-map-chart__tool-icon { animation: lintje-map-tool-in var(--dur-base) var(--ease-in-motion); }\n}\n@keyframes lintje-map-tool-in { from { opacity: 0; transform: scale(0.4); } }\n.lintje-map-chart__tool--menu::before {\n content: '';\n position: absolute;\n right: 2px; bottom: 2px;\n border: 4px solid transparent;\n border-right-color: currentColor;\n border-bottom-color: currentColor;\n}\n.lintje-map-chart__menu { min-width: 200px; }\n.lintje-map-chart__menu .lintje-menu__check { margin-left: auto; }\n\n/* How to draw, or how the wheel zooms, along the bottom: out of the way of the data. On a phone\n it wraps. */\n.lintje-map-chart__hint {\n position: absolute;\n z-index: 1;\n left: 50%; bottom: var(--space-2);\n transform: translateX(-50%);\n white-space: nowrap;\n margin: 0;\n padding: var(--space-2) var(--space-3);\n font: var(--text-small);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n border: 1px solid var(--color-border-strong);\n text-align: center;\n pointer-events: none;\n}\n.lintje-map-chart--mobile .lintje-map-chart__hint {\n white-space: normal;\n width: max-content;\n max-width: calc(100% - 2 * var(--space-4));\n}\n\n/* The scale bottom right, as on a road map: the distance, then a bracket as long as it on the\n map; without a frame, on a basemap on the surface over the credit. */\n.lintje-map-chart__scale-bar {\n position: absolute; z-index: 1;\n right: var(--space-2); bottom: var(--space-2);\n display: flex; align-items: flex-end; gap: var(--space-2);\n font: var(--text-axis);\n font-variant-numeric: tabular-nums;\n line-height: 1;\n color: var(--color-text-primary);\n white-space: nowrap;\n}\n.lintje-map-chart__scale-line {\n display: block; flex: none;\n height: 8px;\n box-sizing: border-box;\n border: 2px solid var(--color-text-primary);\n border-top: 0;\n}\n.lintje-map-chart--basemap .lintje-map-chart__scale-bar {\n padding: var(--space-1) var(--space-2);\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-default);\n}\n/* On a basemap what stands at the bottom lifts over the credit strip, which is a condition of\n using the service's tiles; on a phone the credit needs two lines. */\n.lintje-map-chart--basemap .lintje-map-chart__selection,\n.lintje-map-chart--basemap .lintje-map-chart__scale-bar,\n.lintje-map-chart--basemap .lintje-map-chart__hint { bottom: calc(var(--space-2) + var(--space-5)); }\n.lintje-map-chart--basemap.lintje-map-chart--mobile .lintje-map-chart__scale-bar { bottom: calc(var(--space-2) + var(--space-9)); }\n\n/* --- The legend ----------------------------------------------------------- */\n\n/* A line per layer: its name, which switches it, then its key and its series. One layer has no\n name and no switch; on a phone the name stands over its key, and the series on their own line. */\n.lintje-map-legend {\n display: grid;\n grid-template-columns: max-content minmax(0, 1fr);\n align-items: center;\n gap: var(--space-2) var(--space-4);\n margin-bottom: var(--space-3);\n font: var(--text-small);\n color: var(--color-text-primary);\n}\n.lintje-map-legend--narrow { grid-template-columns: minmax(0, 1fr); gap: var(--space-1); }\n/* The name switches the layer, and says so with the box of a checkbox (input.css), at the\n size of a legend marker: checked while the layer draws. */\n.lintje-map-legend__layer {\n display: flex; align-items: center; gap: var(--space-2);\n min-height: var(--h-target-text);\n font: inherit; font-weight: 700;\n color: inherit;\n text-align: left;\n cursor: pointer;\n}\n.lintje-map-legend__box {\n width: 16px; height: 16px; flex: none;\n display: flex; align-items: center; justify-content: center;\n border: 2px solid var(--color-border-choice);\n background: var(--color-accent);\n color: var(--color-action-primary-text);\n border-color: var(--color-action-primary-border);\n transition: background-color var(--dur-hover) var(--ease-in-motion),\n border-color var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-map-legend__layer.is-off .lintje-map-legend__box {\n background: var(--color-bg-surface);\n border-color: var(--color-border-choice);\n}\n/* The mark grows in when the layer goes on, as in a checkbox. */\n.lintje-map-legend__box .lintje-icon {\n transition: opacity var(--dur-hover) var(--ease-in-motion),\n transform var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-map-legend__layer.is-off .lintje-map-legend__box .lintje-icon { opacity: 0; transform: scale(0.4); }\n/* Off: the name is struck through at full contrast and the key behind it steps back; its series\n read as off too (chart.css). `aria-pressed` and the box carry the state. */\n.lintje-map-legend__layer.is-off .lintje-map-legend__name { text-decoration: line-through; }\n.lintje-map-legend__keys {\n display: flex; flex-wrap: wrap; align-items: center;\n gap: var(--space-2) var(--space-4);\n min-height: var(--h-target-text);\n}\n.lintje-map-legend__keys.is-off > .lintje-map-legend__key { opacity: .45; }\n.lintje-map-legend__key { display: flex; align-items: center; gap: 6px; }\n.lintje-map-legend__figure { font: var(--text-axis); color: var(--color-text-secondary); white-space: nowrap; font-variant-numeric: tabular-nums; }\n.lintje-map-legend__rule { width: 1px; align-self: stretch; min-height: 16px; background: var(--color-border-default); }\n.lintje-map-legend--narrow .lintje-map-legend__rule { display: none; }\n.lintje-map-legend--narrow .lintje-map-legend__keys > .lintje-legend { flex-basis: 100%; }\n/* The classes: five steps between 0 and the max, the lightest edged so it shows on the surface;\n in the modal each with its range, as the heatmap lists them. */\n.lintje-map-legend__ramp { display: flex; }\n.lintje-map-legend__ramp i { display: block; width: 16px; height: 10px; }\n.lintje-map-legend__ramp i:first-child,\n.lintje-map-legend__classes .lintje-legend__item:first-child .lintje-legend__marker { box-shadow: inset 0 0 0 1px var(--color-border-default); }\n.lintje-map-legend__sizes circle { fill: none; stroke: var(--color-text-secondary); stroke-width: 1; }\n.lintje-map-legend__sizes--nested { overflow: visible; }\n.lintje-map-legend__sizes--nested line { stroke: var(--color-border-strong); stroke-width: 1; }\n.lintje-map-legend__sizes--nested text { font: var(--text-axis); fill: var(--color-text-secondary); }\n.lintje-map-legend__wedge path { fill: var(--color-chart-default); }\n/* The rest of a long legend folds under a line that opens it. */\n.lintje-map-legend__more {\n grid-column: 2;\n display: flex; align-items: center; gap: var(--space-1);\n min-height: var(--h-target-text);\n font: inherit; font-weight: 700;\n color: var(--color-link);\n cursor: pointer;\n}\n.lintje-map-legend--narrow .lintje-map-legend__more { grid-column: 1; }\n.lintje-map-legend__more:hover { text-decoration: underline; }\n/* The series swatch in the selection panel. */\n.lintje-map-chart__series-swatch { width: 14px; height: 14px; display: block; flex: none; }\n\n/* --- The selection panel -------------------------------------------------- */\n\n/* Bottom left, clear of the buttons and the scale; on a phone a row under the map. */\n.lintje-map-chart__selection {\n left: var(--space-2); bottom: var(--space-2);\n width: 200px;\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-strong);\n padding: 10px 12px;\n font-size: 0.875rem;\n display: flex; flex-direction: column; gap: 3px;\n}\n.lintje-map-chart__selection--below {\n position: relative;\n left: auto; bottom: auto;\n width: auto;\n margin-top: var(--space-2);\n flex-direction: row; flex-wrap: wrap; align-items: baseline;\n gap: 2px var(--space-2);\n padding-right: var(--space-10);\n}\n.lintje-map-chart__selection-title {\n font-weight: 700; letter-spacing: .06em; text-transform: uppercase;\n color: var(--color-text-muted);\n}\n.lintje-map-chart__selection-value { color: var(--color-text-secondary); }\n.lintje-map-chart__selection-series { display: flex; align-items: center; gap: 5px; }\n/* The way out of a selection, top right of the panel; the title keeps its room. An icon\n button: a 40 px box whose transparent hit area takes the target to 48. */\n.lintje-map-chart__selection-close {\n position: absolute; top: 0; right: 0;\n width: var(--h-icon-button); height: var(--h-icon-button);\n display: flex; align-items: center; justify-content: center;\n background: none; border: 0; padding: 0;\n color: var(--color-text-secondary);\n cursor: pointer;\n}\n.lintje-map-chart__selection-close:hover { color: var(--color-text-primary); }\n.lintje-map-chart__selection-close::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2));\n}\n.lintje-map-chart__selection-title { padding-right: var(--space-8); }\n.lintje-map-chart__set-scope {\n min-height: var(--h-target);\n display: flex; align-items: center; gap: 4px;\n background: none; border: 0; padding: 0;\n font: 700 0.875rem/1.4 var(--font-ui);\n color: var(--color-link);\n cursor: pointer;\n}\n.lintje-map-chart__set-scope:hover { text-decoration: underline; }\n\n\n/* Forced colours: the map's colours are its content, so the drawing and the legend's swatches\n keep them (`forced-color-adjust: none`). The chosen area or point is outlined in CanvasText,\n the focused one in Highlight. The chosen layer's fill is dropped, so its border turns Highlight. */\n@media (forced-colors: active) {\n .lintje-map-chart__data,\n .lintje-map-legend__ramp i,\n .lintje-map-legend__wedge,\n .lintje-map-chart__series-swatch { forced-color-adjust: none; }\n .lintje-map-chart__polygon.is-selected .lintje-map-chart__polygon-shape,\n .lintje-map-chart__point.is-selected .lintje-map-chart__point-shape { stroke: CanvasText; }\n .lintje-map-chart__point:focus-visible .lintje-map-chart__point-ring,\n .lintje-map-chart__polygon:focus-visible .lintje-map-chart__polygon-ring,\n .lintje-map-chart__flow:focus-visible { stroke: Highlight; }\n .lintje-map-chart__point:focus-visible .lintje-map-chart__point-shape,\n .lintje-map-chart__polygon:focus-visible .lintje-map-chart__polygon-shape { stroke: Canvas; }\n .lintje-map-chart__layer.is-active { border-color: Highlight; }\n .lintje-map-legend__box { forced-color-adjust: none; background: Highlight; border-color: Highlight; color: HighlightText; }\n .lintje-map-legend__layer.is-off .lintje-map-legend__box { background: Canvas; border-color: CanvasText; }\n .lintje-map-chart .leaflet-container:focus-visible::after { border-color: Highlight; }\n}\n", It = "/* required styles */\r\n\r\n.leaflet-pane,\r\n.leaflet-tile,\r\n.leaflet-marker-icon,\r\n.leaflet-marker-shadow,\r\n.leaflet-tile-container,\r\n.leaflet-pane > svg,\r\n.leaflet-pane > canvas,\r\n.leaflet-zoom-box,\r\n.leaflet-image-layer,\r\n.leaflet-layer {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n }\r\n.leaflet-container {\r\n overflow: hidden;\r\n }\r\n.leaflet-tile,\r\n.leaflet-marker-icon,\r\n.leaflet-marker-shadow {\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n user-select: none;\r\n -webkit-user-drag: none;\r\n }\r\n/* Prevents IE11 from highlighting tiles in blue */\r\n.leaflet-tile::selection {\r\n background: transparent;\r\n}\r\n/* Safari renders non-retina tile on retina better with this, but Chrome is worse */\r\n.leaflet-safari .leaflet-tile {\r\n image-rendering: -webkit-optimize-contrast;\r\n }\r\n/* hack that prevents hw layers \"stretching\" when loading new tiles */\r\n.leaflet-safari .leaflet-tile-container {\r\n width: 1600px;\r\n height: 1600px;\r\n -webkit-transform-origin: 0 0;\r\n }\r\n.leaflet-marker-icon,\r\n.leaflet-marker-shadow {\r\n display: block;\r\n }\r\n/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */\r\n/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */\r\n.leaflet-container .leaflet-overlay-pane svg {\r\n max-width: none !important;\r\n max-height: none !important;\r\n }\r\n.leaflet-container .leaflet-marker-pane img,\r\n.leaflet-container .leaflet-shadow-pane img,\r\n.leaflet-container .leaflet-tile-pane img,\r\n.leaflet-container img.leaflet-image-layer,\r\n.leaflet-container .leaflet-tile {\r\n max-width: none !important;\r\n max-height: none !important;\r\n width: auto;\r\n padding: 0;\r\n }\r\n\r\n.leaflet-container img.leaflet-tile {\r\n /* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */\r\n mix-blend-mode: plus-lighter;\r\n}\r\n\r\n.leaflet-container.leaflet-touch-zoom {\r\n -ms-touch-action: pan-x pan-y;\r\n touch-action: pan-x pan-y;\r\n }\r\n.leaflet-container.leaflet-touch-drag {\r\n -ms-touch-action: pinch-zoom;\r\n /* Fallback for FF which doesn't support pinch-zoom */\r\n touch-action: none;\r\n touch-action: pinch-zoom;\r\n}\r\n.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {\r\n -ms-touch-action: none;\r\n touch-action: none;\r\n}\r\n.leaflet-container {\r\n -webkit-tap-highlight-color: transparent;\r\n}\r\n.leaflet-container a {\r\n -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);\r\n}\r\n.leaflet-tile {\r\n filter: inherit;\r\n visibility: hidden;\r\n }\r\n.leaflet-tile-loaded {\r\n visibility: inherit;\r\n }\r\n.leaflet-zoom-box {\r\n width: 0;\r\n height: 0;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n z-index: 800;\r\n }\r\n/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */\r\n.leaflet-overlay-pane svg {\r\n -moz-user-select: none;\r\n }\r\n\r\n.leaflet-pane { z-index: 400; }\r\n\r\n.leaflet-tile-pane { z-index: 200; }\r\n.leaflet-overlay-pane { z-index: 400; }\r\n.leaflet-shadow-pane { z-index: 500; }\r\n.leaflet-marker-pane { z-index: 600; }\r\n.leaflet-tooltip-pane { z-index: 650; }\r\n.leaflet-popup-pane { z-index: 700; }\r\n\r\n.leaflet-map-pane canvas { z-index: 100; }\r\n.leaflet-map-pane svg { z-index: 200; }\r\n\r\n.leaflet-vml-shape {\r\n width: 1px;\r\n height: 1px;\r\n }\r\n.lvml {\r\n behavior: url(#default#VML);\r\n display: inline-block;\r\n position: absolute;\r\n }\r\n\r\n\r\n/* control positioning */\r\n\r\n.leaflet-control {\r\n position: relative;\r\n z-index: 800;\r\n pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\r\n pointer-events: auto;\r\n }\r\n.leaflet-top,\r\n.leaflet-bottom {\r\n position: absolute;\r\n z-index: 1000;\r\n pointer-events: none;\r\n }\r\n.leaflet-top {\r\n top: 0;\r\n }\r\n.leaflet-right {\r\n right: 0;\r\n }\r\n.leaflet-bottom {\r\n bottom: 0;\r\n }\r\n.leaflet-left {\r\n left: 0;\r\n }\r\n.leaflet-control {\r\n float: left;\r\n clear: both;\r\n }\r\n.leaflet-right .leaflet-control {\r\n float: right;\r\n }\r\n.leaflet-top .leaflet-control {\r\n margin-top: 10px;\r\n }\r\n.leaflet-bottom .leaflet-control {\r\n margin-bottom: 10px;\r\n }\r\n.leaflet-left .leaflet-control {\r\n margin-left: 10px;\r\n }\r\n.leaflet-right .leaflet-control {\r\n margin-right: 10px;\r\n }\r\n\r\n\r\n/* zoom and fade animations */\r\n\r\n.leaflet-fade-anim .leaflet-popup {\r\n opacity: 0;\r\n -webkit-transition: opacity 0.2s linear;\r\n -moz-transition: opacity 0.2s linear;\r\n transition: opacity 0.2s linear;\r\n }\r\n.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {\r\n opacity: 1;\r\n }\r\n.leaflet-zoom-animated {\r\n -webkit-transform-origin: 0 0;\r\n -ms-transform-origin: 0 0;\r\n transform-origin: 0 0;\r\n }\r\nsvg.leaflet-zoom-animated {\r\n will-change: transform;\r\n}\r\n\r\n.leaflet-zoom-anim .leaflet-zoom-animated {\r\n -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);\r\n -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);\r\n transition: transform 0.25s cubic-bezier(0,0,0.25,1);\r\n }\r\n.leaflet-zoom-anim .leaflet-tile,\r\n.leaflet-pan-anim .leaflet-tile {\r\n -webkit-transition: none;\r\n -moz-transition: none;\r\n transition: none;\r\n }\r\n\r\n.leaflet-zoom-anim .leaflet-zoom-hide {\r\n visibility: hidden;\r\n }\r\n\r\n\r\n/* cursors */\r\n\r\n.leaflet-interactive {\r\n cursor: pointer;\r\n }\r\n.leaflet-grab {\r\n cursor: -webkit-grab;\r\n cursor: -moz-grab;\r\n cursor: grab;\r\n }\r\n.leaflet-crosshair,\r\n.leaflet-crosshair .leaflet-interactive {\r\n cursor: crosshair;\r\n }\r\n.leaflet-popup-pane,\r\n.leaflet-control {\r\n cursor: auto;\r\n }\r\n.leaflet-dragging .leaflet-grab,\r\n.leaflet-dragging .leaflet-grab .leaflet-interactive,\r\n.leaflet-dragging .leaflet-marker-draggable {\r\n cursor: move;\r\n cursor: -webkit-grabbing;\r\n cursor: -moz-grabbing;\r\n cursor: grabbing;\r\n }\r\n\r\n/* marker & overlays interactivity */\r\n.leaflet-marker-icon,\r\n.leaflet-marker-shadow,\r\n.leaflet-image-layer,\r\n.leaflet-pane > svg path,\r\n.leaflet-tile-container {\r\n pointer-events: none;\r\n }\r\n\r\n.leaflet-marker-icon.leaflet-interactive,\r\n.leaflet-image-layer.leaflet-interactive,\r\n.leaflet-pane > svg path.leaflet-interactive,\r\nsvg.leaflet-image-layer.leaflet-interactive path {\r\n pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\r\n pointer-events: auto;\r\n }\r\n\r\n/* visual tweaks */\r\n\r\n.leaflet-container {\r\n background: #ddd;\r\n outline-offset: 1px;\r\n }\r\n.leaflet-container a {\r\n color: #0078A8;\r\n }\r\n.leaflet-zoom-box {\r\n border: 2px dotted #38f;\r\n background: rgba(255,255,255,0.5);\r\n }\r\n\r\n\r\n/* general typography */\r\n.leaflet-container {\r\n font-family: \"Helvetica Neue\", Arial, Helvetica, sans-serif;\r\n font-size: 12px;\r\n font-size: 0.75rem;\r\n line-height: 1.5;\r\n }\r\n\r\n\r\n/* general toolbar styles */\r\n\r\n.leaflet-bar {\r\n box-shadow: 0 1px 5px rgba(0,0,0,0.65);\r\n border-radius: 4px;\r\n }\r\n.leaflet-bar a {\r\n background-color: #fff;\r\n border-bottom: 1px solid #ccc;\r\n width: 26px;\r\n height: 26px;\r\n line-height: 26px;\r\n display: block;\r\n text-align: center;\r\n text-decoration: none;\r\n color: black;\r\n }\r\n.leaflet-bar a,\r\n.leaflet-control-layers-toggle {\r\n background-position: 50% 50%;\r\n background-repeat: no-repeat;\r\n display: block;\r\n }\r\n.leaflet-bar a:hover,\r\n.leaflet-bar a:focus {\r\n background-color: #f4f4f4;\r\n }\r\n.leaflet-bar a:first-child {\r\n border-top-left-radius: 4px;\r\n border-top-right-radius: 4px;\r\n }\r\n.leaflet-bar a:last-child {\r\n border-bottom-left-radius: 4px;\r\n border-bottom-right-radius: 4px;\r\n border-bottom: none;\r\n }\r\n.leaflet-bar a.leaflet-disabled {\r\n cursor: default;\r\n background-color: #f4f4f4;\r\n color: #bbb;\r\n }\r\n\r\n.leaflet-touch .leaflet-bar a {\r\n width: 30px;\r\n height: 30px;\r\n line-height: 30px;\r\n }\r\n.leaflet-touch .leaflet-bar a:first-child {\r\n border-top-left-radius: 2px;\r\n border-top-right-radius: 2px;\r\n }\r\n.leaflet-touch .leaflet-bar a:last-child {\r\n border-bottom-left-radius: 2px;\r\n border-bottom-right-radius: 2px;\r\n }\r\n\r\n/* zoom control */\r\n\r\n.leaflet-control-zoom-in,\r\n.leaflet-control-zoom-out {\r\n font: bold 18px 'Lucida Console', Monaco, monospace;\r\n text-indent: 1px;\r\n }\r\n\r\n.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {\r\n font-size: 22px;\r\n }\r\n\r\n\r\n/* layers control */\r\n\r\n.leaflet-control-layers {\r\n box-shadow: 0 1px 5px rgba(0,0,0,0.4);\r\n background: #fff;\r\n border-radius: 5px;\r\n }\r\n.leaflet-control-layers-toggle {\r\n background-image: url(images/layers.png);\r\n width: 36px;\r\n height: 36px;\r\n }\r\n.leaflet-retina .leaflet-control-layers-toggle {\r\n background-image: url(images/layers-2x.png);\r\n background-size: 26px 26px;\r\n }\r\n.leaflet-touch .leaflet-control-layers-toggle {\r\n width: 44px;\r\n height: 44px;\r\n }\r\n.leaflet-control-layers .leaflet-control-layers-list,\r\n.leaflet-control-layers-expanded .leaflet-control-layers-toggle {\r\n display: none;\r\n }\r\n.leaflet-control-layers-expanded .leaflet-control-layers-list {\r\n display: block;\r\n position: relative;\r\n }\r\n.leaflet-control-layers-expanded {\r\n padding: 6px 10px 6px 6px;\r\n color: #333;\r\n background: #fff;\r\n }\r\n.leaflet-control-layers-scrollbar {\r\n overflow-y: scroll;\r\n overflow-x: hidden;\r\n padding-right: 5px;\r\n }\r\n.leaflet-control-layers-selector {\r\n margin-top: 2px;\r\n position: relative;\r\n top: 1px;\r\n }\r\n.leaflet-control-layers label {\r\n display: block;\r\n font-size: 13px;\r\n font-size: 1.08333em;\r\n }\r\n.leaflet-control-layers-separator {\r\n height: 0;\r\n border-top: 1px solid #ddd;\r\n margin: 5px -10px 5px -6px;\r\n }\r\n\r\n/* Default icon URLs */\r\n.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */\r\n background-image: url(images/marker-icon.png);\r\n }\r\n\r\n\r\n/* attribution and scale controls */\r\n\r\n.leaflet-container .leaflet-control-attribution {\r\n background: #fff;\r\n background: rgba(255, 255, 255, 0.8);\r\n margin: 0;\r\n }\r\n.leaflet-control-attribution,\r\n.leaflet-control-scale-line {\r\n padding: 0 5px;\r\n color: #333;\r\n line-height: 1.4;\r\n }\r\n.leaflet-control-attribution a {\r\n text-decoration: none;\r\n }\r\n.leaflet-control-attribution a:hover,\r\n.leaflet-control-attribution a:focus {\r\n text-decoration: underline;\r\n }\r\n.leaflet-attribution-flag {\r\n display: inline !important;\r\n vertical-align: baseline !important;\r\n width: 1em;\r\n height: 0.6669em;\r\n }\r\n.leaflet-left .leaflet-control-scale {\r\n margin-left: 5px;\r\n }\r\n.leaflet-bottom .leaflet-control-scale {\r\n margin-bottom: 5px;\r\n }\r\n.leaflet-control-scale-line {\r\n border: 2px solid #777;\r\n border-top: none;\r\n line-height: 1.1;\r\n padding: 2px 5px 1px;\r\n white-space: nowrap;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n background: rgba(255, 255, 255, 0.8);\r\n text-shadow: 1px 1px #fff;\r\n }\r\n.leaflet-control-scale-line:not(:first-child) {\r\n border-top: 2px solid #777;\r\n border-bottom: none;\r\n margin-top: -2px;\r\n }\r\n.leaflet-control-scale-line:not(:first-child):not(:last-child) {\r\n border-bottom: 2px solid #777;\r\n }\r\n\r\n.leaflet-touch .leaflet-control-attribution,\r\n.leaflet-touch .leaflet-control-layers,\r\n.leaflet-touch .leaflet-bar {\r\n box-shadow: none;\r\n }\r\n.leaflet-touch .leaflet-control-layers,\r\n.leaflet-touch .leaflet-bar {\r\n border: 2px solid rgba(0,0,0,0.2);\r\n background-clip: padding-box;\r\n }\r\n\r\n\r\n/* popup */\r\n\r\n.leaflet-popup {\r\n position: absolute;\r\n text-align: center;\r\n margin-bottom: 20px;\r\n }\r\n.leaflet-popup-content-wrapper {\r\n padding: 1px;\r\n text-align: left;\r\n border-radius: 12px;\r\n }\r\n.leaflet-popup-content {\r\n margin: 13px 24px 13px 20px;\r\n line-height: 1.3;\r\n font-size: 13px;\r\n font-size: 1.08333em;\r\n min-height: 1px;\r\n }\r\n.leaflet-popup-content p {\r\n margin: 17px 0;\r\n margin: 1.3em 0;\r\n }\r\n.leaflet-popup-tip-container {\r\n width: 40px;\r\n height: 20px;\r\n position: absolute;\r\n left: 50%;\r\n margin-top: -1px;\r\n margin-left: -20px;\r\n overflow: hidden;\r\n pointer-events: none;\r\n }\r\n.leaflet-popup-tip {\r\n width: 17px;\r\n height: 17px;\r\n padding: 1px;\r\n\r\n margin: -10px auto 0;\r\n pointer-events: auto;\r\n\r\n -webkit-transform: rotate(45deg);\r\n -moz-transform: rotate(45deg);\r\n -ms-transform: rotate(45deg);\r\n transform: rotate(45deg);\r\n }\r\n.leaflet-popup-content-wrapper,\r\n.leaflet-popup-tip {\r\n background: white;\r\n color: #333;\r\n box-shadow: 0 3px 14px rgba(0,0,0,0.4);\r\n }\r\n.leaflet-container a.leaflet-popup-close-button {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n border: none;\r\n text-align: center;\r\n width: 24px;\r\n height: 24px;\r\n font: 16px/24px Tahoma, Verdana, sans-serif;\r\n color: #757575;\r\n text-decoration: none;\r\n background: transparent;\r\n }\r\n.leaflet-container a.leaflet-popup-close-button:hover,\r\n.leaflet-container a.leaflet-popup-close-button:focus {\r\n color: #585858;\r\n }\r\n.leaflet-popup-scrolled {\r\n overflow: auto;\r\n }\r\n\r\n.leaflet-oldie .leaflet-popup-content-wrapper {\r\n -ms-zoom: 1;\r\n }\r\n.leaflet-oldie .leaflet-popup-tip {\r\n width: 24px;\r\n margin: 0 auto;\r\n\r\n -ms-filter: \"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)\";\r\n filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);\r\n }\r\n\r\n.leaflet-oldie .leaflet-control-zoom,\r\n.leaflet-oldie .leaflet-control-layers,\r\n.leaflet-oldie .leaflet-popup-content-wrapper,\r\n.leaflet-oldie .leaflet-popup-tip {\r\n border: 1px solid #999;\r\n }\r\n\r\n\r\n/* div icon */\r\n\r\n.leaflet-div-icon {\r\n background: #fff;\r\n border: 1px solid #666;\r\n }\r\n\r\n\r\n/* Tooltip */\r\n/* Base styles for the element that has a tooltip */\r\n.leaflet-tooltip {\r\n position: absolute;\r\n padding: 6px;\r\n background-color: #fff;\r\n border: 1px solid #fff;\r\n border-radius: 3px;\r\n color: #222;\r\n white-space: nowrap;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n pointer-events: none;\r\n box-shadow: 0 1px 3px rgba(0,0,0,0.4);\r\n }\r\n.leaflet-tooltip.leaflet-interactive {\r\n cursor: pointer;\r\n pointer-events: auto;\r\n }\r\n.leaflet-tooltip-top:before,\r\n.leaflet-tooltip-bottom:before,\r\n.leaflet-tooltip-left:before,\r\n.leaflet-tooltip-right:before {\r\n position: absolute;\r\n pointer-events: none;\r\n border: 6px solid transparent;\r\n background: transparent;\r\n content: \"\";\r\n }\r\n\r\n/* Directions */\r\n\r\n.leaflet-tooltip-bottom {\r\n margin-top: 6px;\r\n}\r\n.leaflet-tooltip-top {\r\n margin-top: -6px;\r\n}\r\n.leaflet-tooltip-bottom:before,\r\n.leaflet-tooltip-top:before {\r\n left: 50%;\r\n margin-left: -6px;\r\n }\r\n.leaflet-tooltip-top:before {\r\n bottom: 0;\r\n margin-bottom: -12px;\r\n border-top-color: #fff;\r\n }\r\n.leaflet-tooltip-bottom:before {\r\n top: 0;\r\n margin-top: -12px;\r\n margin-left: -6px;\r\n border-bottom-color: #fff;\r\n }\r\n.leaflet-tooltip-left {\r\n margin-left: -6px;\r\n}\r\n.leaflet-tooltip-right {\r\n margin-left: 6px;\r\n}\r\n.leaflet-tooltip-left:before,\r\n.leaflet-tooltip-right:before {\r\n top: 50%;\r\n margin-top: -6px;\r\n }\r\n.leaflet-tooltip-left:before {\r\n right: 0;\r\n margin-right: -12px;\r\n border-left-color: #fff;\r\n }\r\n.leaflet-tooltip-right:before {\r\n left: 0;\r\n margin-left: -12px;\r\n border-right-color: #fff;\r\n }\r\n\r\n/* Printing */\r\n\r\n@media print {\r\n /* Prevent printers from removing background-images of controls. */\r\n .leaflet-control {\r\n -webkit-print-color-adjust: exact;\r\n print-color-adjust: exact;\r\n }\r\n }\r\n";
|
|
21774
|
+
var Nt = "/* Map fixed elements: zoom, reset and the select button top right, layer switcher top left,\n the scale bottom right and the selection panel bottom left, as overlays on the map area; the\n legend stands above the map, as above every chart, and the source line in the tile footer.\n Leaflet is the map (`leaflet.ts`); the drawing in its svg is the design system's own\n (`marks.ts`), styled below as any chart. */\n\n/* The overlays draw compact, like the buttons of a bar; on a phone at the touch floor. */\n.lintje-map-chart { --map-overlay-h: var(--h-button-chrome); }\n.lintje-map-chart--mobile { --map-overlay-h: var(--h-touch); }\n\n.lintje-map-chart__area {\n position: relative;\n background: var(--color-map-water);\n border: 1px solid var(--color-border-default);\n overflow: hidden;\n}\n\n/* --- The surface ---------------------------------------------------------- */\n\n.lintje-map-chart__leaflet {\n position: absolute;\n inset: 0;\n /* Leaflet numbers its panes up to 700 and its controls to 1000; without a stacking\n context the tile's own overlays would end up under the tiles. */\n z-index: 0;\n}\n.lintje-map-chart__layers,\n.lintje-map-chart__zoom,\n.lintje-map-chart__selection { z-index: 1; }\n\n.lintje-map-chart .leaflet-container {\n background: var(--color-map-water);\n font: var(--text-small);\n}\n/* The map takes the focus when a cleared mark is gone; the area clips a ring outside it. The\n ring is a layer over Leaflet's panes: an outline would lie under them and show in pieces. */\n.lintje-map-chart .leaflet-container:focus-visible { outline: none; }\n.lintje-map-chart .leaflet-container:focus-visible::after {\n content: '';\n position: absolute;\n inset: 0;\n z-index: 1000;\n border: var(--focus-width) solid var(--color-focus);\n pointer-events: none;\n}\n/* Leaflet lets no path in its svg take the pointer; a mark of ours does, by its own class. A\n mark drawn after a redraw keeps the view: marks are in the data group, the group is placed. */\n.lintje-map-chart__data .lintje-map-chart__polygon-shape,\n.lintje-map-chart__data .lintje-map-chart__flow,\n.lintje-map-chart__data .lintje-map-chart__point-shape { pointer-events: visiblePainted; }\n.lintje-map-chart__destination { pointer-events: none; }\n/* A tool on: the map is a sheet to draw on, also for a finger. */\n.lintje-map-chart .leaflet-container.is-drawing { cursor: crosshair; touch-action: none; }\n.lintje-map-chart .leaflet-container.is-drawing .lintje-map-chart__data * { cursor: crosshair; }\n/* The area that chose: an outline over the data, the inside barely tinted, never in the way. */\n.lintje-map-chart__region {\n fill: var(--color-text-primary);\n fill-opacity: .06;\n stroke: var(--color-text-primary);\n stroke-width: 2;\n stroke-dasharray: 6 4;\n vector-effect: non-scaling-stroke;\n pointer-events: none;\n}\n.lintje-map-chart__region--draft { fill-opacity: .04; }\n/* While an area is drawn, what it would choose is outlined as chosen and the rest steps back. */\n.lintje-map-chart__data.is-previewing [data-mark-id]:not(.is-preview),\n.lintje-map-chart__data.has-area:not(.is-previewing) [data-mark-id]:not(.is-selected) { opacity: .35; }\n.lintje-map-chart__polygon.is-preview .lintje-map-chart__polygon-shape,\n.lintje-map-chart__point.is-preview .lintje-map-chart__point-shape { stroke: var(--color-text-primary); stroke-width: 2; }\n.lintje-map-chart__flow.is-preview { opacity: 1; }\n/* A circle shows its middle, which is what the reader measures from. */\n.lintje-map-chart__region-centre {\n fill: var(--color-text-primary);\n stroke: var(--color-bg-surface);\n stroke-width: 1.5;\n pointer-events: none;\n}\n/* Through Leaflet's zoom animation a symbol scales back along the curve `leaflet.ts` sets. */\n.lintje-map-chart .leaflet-zoom-anim .lintje-map-chart__symbol { transition: transform 0.25s; }\n\n/* The credit: on the surface, in the map's own text colours, one line of `--space-5` high so\n what stands above it knows where; on a phone it runs to two. */\n.lintje-map-chart .leaflet-control-attribution {\n display: flex; flex-wrap: wrap; align-items: center;\n min-height: var(--space-5);\n padding: 0 var(--space-2);\n background: var(--color-bg-surface);\n color: var(--color-text-muted);\n font: var(--text-axis);\n border: 1px solid var(--color-border-default);\n border-right: 0;\n border-bottom: 0;\n margin: 0;\n}\n/* Underlined: the link differs from the credit around it by 1.24:1 in colour alone. */\n.lintje-map-chart .leaflet-control-attribution a { color: var(--color-link); text-decoration: underline; }\n\n/* --- Shapes --------------------------------------------------------------- */\n\n.lintje-map-chart__land {\n stroke: var(--color-map-border);\n stroke-width: 0.5;\n vector-effect: non-scaling-stroke;\n}\n/* Points and flows drop the browser's own focus box outright: their ring is a stroke. */\n.lintje-map-chart__flow:focus,\n.lintje-map-chart__point:focus { outline: none; }\n\n/* An area with a row — a shape of the geometry or one with its own outline — is drawn as a\n point is: a ring behind the shape for the focus, and without a figure the surface under the\n hatch, so the ring never shows through it. Its edges are those of the land. */\n.lintje-map-chart__polygon { cursor: pointer; }\n.lintje-map-chart__polygon-shape {\n stroke: var(--color-map-border);\n stroke-width: 0.5;\n vector-effect: non-scaling-stroke;\n}\n/* An area with a figure is outlined at 3:1 against the land and the lightest class, which are\n 1.1:1 apart: the lightest class would otherwise read as no data at all. */\n.lintje-map-chart__polygon-shape--data { stroke: var(--color-map-border-data); stroke-width: 1; }\n.lintje-map-chart__polygon-shape--empty { fill: var(--color-bg-surface); }\n.lintje-map-chart__polygon-hatch { pointer-events: none; }\n.lintje-map-chart__polygon:hover .lintje-map-chart__polygon-shape { stroke: var(--color-text-primary); stroke-width: 1.5; }\n.lintje-map-chart__polygon.is-selected .lintje-map-chart__polygon-shape { stroke: var(--color-text-primary); stroke-width: 2; }\n.lintje-map-chart__polygon-ring { fill: none; stroke: none; vector-effect: non-scaling-stroke; }\n.lintje-map-chart__polygon:focus-visible { outline: none; }\n.lintje-map-chart__polygon:focus-visible .lintje-map-chart__polygon-ring {\n stroke: var(--color-focus);\n stroke-width: calc(var(--focus-width) * 2 + 2px);\n}\n.lintje-map-chart__polygon:focus-visible .lintje-map-chart__polygon-shape {\n stroke: var(--color-bg-surface);\n stroke-width: 2;\n}\n\n.lintje-map-chart__flow {\n fill: none;\n stroke: var(--color-chart-default);\n stroke-linecap: round;\n opacity: .75;\n cursor: pointer;\n vector-effect: non-scaling-stroke;\n transition: opacity var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-map-chart__flow:hover,\n.lintje-map-chart__flow.is-selected { opacity: 1; }\n/* Something is chosen, a mark or an area: the flows not chosen step back, further than a point. */\n.lintje-map-chart__data.has-selection .lintje-map-chart__flow:not(.is-selected):not(:focus-visible) { opacity: .22; }\n/* A flow is a line: on focus the line itself is the ring, in the focus colour at full strength,\n also beside the chosen one. */\n.lintje-map-chart__flow:focus-visible { stroke: var(--color-focus); opacity: 1; }\n.lintje-map-chart__destination { fill: var(--color-attention); stroke: var(--color-bg-surface); stroke-width: 2; }\n\n.lintje-map-chart__point { cursor: pointer; }\n.lintje-map-chart__point-shape {\n fill: var(--color-chart-default);\n fill-opacity: .55;\n stroke: var(--color-chart-default);\n stroke-width: 1;\n vector-effect: non-scaling-stroke;\n transition: fill-opacity var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-map-chart__point:hover .lintje-map-chart__point-shape { fill-opacity: .8; }\n/* A point with a series carries its own colour, handed in as `--lintje-series` so\n the selected and focused outlines below — which are more specific — still win\n over it. The opacity and the hover are the point's own, as always. */\n.lintje-map-chart__point-shape--series {\n fill: var(--lintje-series);\n stroke: var(--lintje-series);\n fill-opacity: .65;\n}\n.lintje-map-chart__point:hover .lintje-map-chart__point-shape--series { fill-opacity: .9; }\n/* No figure: no data colour either. The surface underneath and the hatch over it\n are what the legend's \"geen gegevens\" swatch shows. */\n.lintje-map-chart__point-shape--empty {\n fill: var(--color-bg-surface);\n fill-opacity: 1;\n stroke: var(--color-chart-hatch);\n}\n/* The hatch is a fill attribute on its own path; a `fill` in this sheet would cover it. */\n.lintje-map-chart__point-hatch { pointer-events: none; }\n.lintje-map-chart__point.is-selected .lintje-map-chart__point-shape { stroke: var(--color-text-primary); stroke-width: 2; fill-opacity: .85; }\n/* The focus ring: a wide stroke on a copy of the shape behind it, of which the 3 px outside a\n 1 px edge in the surface show — so an orange point keeps its ring. The shape is opaque while\n focused, or the ring would show through it. */\n.lintje-map-chart__point-ring { fill: none; stroke: none; vector-effect: non-scaling-stroke; }\n.lintje-map-chart__point:focus-visible .lintje-map-chart__point-ring {\n stroke: var(--color-focus);\n stroke-width: calc(var(--focus-width) * 2 + 2px);\n}\n.lintje-map-chart__point:focus-visible .lintje-map-chart__point-shape {\n stroke: var(--color-bg-surface);\n stroke-width: 2;\n fill-opacity: 1;\n}\n\n/* A mark switched off in the legend keeps its element and goes with a motion — a point shrinks,\n an area or a flow fades — and comes back the same way, west to east as it first drew in; gone,\n it is hidden to the pointer, the keyboard and the reader. Every mark is keyed (`marks.ts`), so\n the others stay as they are. */\n.lintje-map-chart__point-figure { transform-box: fill-box; transform-origin: 50% 50%; }\n.lintje-map-chart__data .is-off { visibility: hidden; pointer-events: none; }\n.lintje-map-chart__point.is-off .lintje-map-chart__point-figure { transform: scale(0); opacity: 0; }\n.lintje-map-chart__polygon.is-off,\n.lintje-map-chart__flow.is-off { opacity: 0; }\n\n/* The base map stands at once. Areas fade in, flows are drawn from origin to destination and\n points grow, the last two west to east with the timing of the bars (starts spread over 40 % of\n the draw, each mark the other 60 %). Fill mode `backwards` throughout, so hover, muted and\n selected win once the draw is done. Paused until the map is in view; the paused declarations\n follow the shorthands, see chart.css. */\n@media (prefers-reduced-motion: no-preference) {\n .lintje-map-chart__data [data-mark-id] {\n transition: visibility 0s var(--dur-base), opacity var(--dur-base) var(--ease-in-motion);\n }\n .lintje-map-chart__data [data-mark-id]:not(.is-off) {\n transition-delay: 0s, calc(var(--dur-draw) * 0.4 * var(--lintje-stagger, 0));\n }\n .lintje-map-chart__point-figure {\n transition: transform var(--dur-base) var(--ease-in-motion), opacity var(--dur-base) var(--ease-in-motion);\n }\n .lintje-map-chart__point:not(.is-off) .lintje-map-chart__point-figure {\n transition-delay: calc(var(--dur-draw) * 0.4 * var(--lintje-stagger, 0));\n }\n\n .lintje-map-chart__polygon,\n .lintje-map-chart__flow,\n .lintje-map-chart__point-figure {\n animation-duration: calc(var(--dur-draw) * 0.6);\n animation-timing-function: var(--ease-in-motion);\n animation-delay: calc(var(--dur-draw) * 0.4 * var(--lintje-stagger, 0));\n animation-fill-mode: backwards;\n }\n .lintje-map-chart__polygon { animation-name: lintje-map-fade; }\n .lintje-map-chart__flow { animation-name: lintje-map-draw; }\n .lintje-map-chart__point-figure { animation-name: lintje-point-grow; }\n\n .lintje-map-chart__polygon,\n .lintje-map-chart__flow,\n .lintje-map-chart__point-figure { animation-play-state: paused; }\n [data-in-view] .lintje-map-chart__polygon,\n [data-in-view] .lintje-map-chart__flow,\n [data-in-view] .lintje-map-chart__point-figure { animation-play-state: running; }\n}\n@keyframes lintje-map-fade { from { opacity: 0; } }\n/* With pathLength=\"1\": a dash as long as the flow and a longer gap, started just past the gap's edge, so\n the round caps of the hidden dash leave no dot at either end on the first frame. */\n@keyframes lintje-map-draw {\n from { stroke-dasharray: 1 1.2; stroke-dashoffset: 1.1; }\n to { stroke-dasharray: 1 1.2; stroke-dashoffset: 0; }\n}\n\n/* --- Overlays ------------------------------------------------------------- */\n\n.lintje-map-chart__layers,\n.lintje-map-chart__zoom,\n.lintje-map-chart__selection { position: absolute; }\n\n.lintje-map-chart__layers { top: var(--space-2); left: var(--space-2); display: flex; }\n/* The layers and the zoom buttons touch, like the segments of a segmented control, so each is\n its own target along the row or the stack; across it a transparent hit area reaches\n `--h-target`. */\n.lintje-map-chart__layer {\n position: relative;\n height: var(--map-overlay-h); padding: 0 10px;\n font: var(--text-small);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n border: 1px solid var(--color-border-strong);\n margin-left: -1px;\n cursor: pointer;\n}\n.lintje-map-chart__layer::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n.lintje-map-chart__layer:first-child { margin-left: 0; }\n.lintje-map-chart__layer.is-active {\n background: var(--color-action-primary);\n color: var(--color-action-primary-text);\n /* The button's own 1 px border: the primary in light, the tint in dark, so the\n chosen layer does not melt into the map. */\n border-color: var(--color-action-primary-border);\n font-weight: 700;\n}\n\n.lintje-map-chart__zoom { top: var(--space-2); right: var(--space-2); display: flex; flex-direction: column; }\n.lintje-map-chart__zoom-button {\n position: relative;\n width: var(--map-overlay-h); height: var(--map-overlay-h);\n display: flex; align-items: center; justify-content: center;\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n border: 1px solid var(--color-border-strong);\n margin-top: -1px;\n cursor: pointer;\n}\n.lintje-map-chart__zoom-button::after {\n content: '';\n position: absolute;\n inset: 0 min(0px, calc((100% - var(--h-target)) / 2));\n}\n.lintje-map-chart__zoom-button:first-child { margin-top: 0; }\n.lintje-map-chart__zoom-button:hover { background: var(--color-bg-subtle); }\n/* Each button sits in its tooltip, which says on hover and focus what the button does. The\n select button stands apart from the zoom. */\n.lintje-map-chart__tip { display: flex; margin-top: -1px; }\n.lintje-map-chart__tip:first-child { margin-top: 0; }\n.lintje-map-chart__tip .lintje-map-chart__zoom-button { margin-top: 0; }\n.lintje-map-chart__tip--first { margin-top: var(--space-2); }\n/* A tool on: the button is primary, with the shape it draws. */\n.lintje-map-chart__tool.is-active {\n background: var(--color-action-primary);\n color: var(--color-action-primary-text);\n border-color: var(--color-action-primary-border);\n}\n/* With two or more shapes the corner says a menu of them stands behind the button, which shows\n the shape in use; a click opens it while no shape is on. A shape taken up or put down grows\n in on the button. */\n.lintje-map-chart__tool-icon { display: flex; }\n@media (prefers-reduced-motion: no-preference) {\n .lintje-map-chart__tool-icon { animation: lintje-map-tool-in var(--dur-base) var(--ease-in-motion); }\n}\n@keyframes lintje-map-tool-in { from { opacity: 0; transform: scale(0.4); } }\n.lintje-map-chart__tool--menu::before {\n content: '';\n position: absolute;\n right: 2px; bottom: 2px;\n border: 4px solid transparent;\n border-right-color: currentColor;\n border-bottom-color: currentColor;\n}\n.lintje-map-chart__menu { min-width: 200px; }\n.lintje-map-chart__menu .lintje-menu__check { margin-left: auto; }\n\n/* How to draw, or how the wheel zooms, along the bottom: out of the way of the data. On a phone\n it wraps. */\n.lintje-map-chart__hint {\n position: absolute;\n z-index: 1;\n left: 50%; bottom: var(--space-2);\n transform: translateX(-50%);\n white-space: nowrap;\n margin: 0;\n padding: var(--space-2) var(--space-3);\n font: var(--text-small);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n border: 1px solid var(--color-border-strong);\n text-align: center;\n pointer-events: none;\n}\n.lintje-map-chart--mobile .lintje-map-chart__hint {\n white-space: normal;\n width: max-content;\n max-width: calc(100% - 2 * var(--space-4));\n}\n\n/* The scale bottom right, as on a road map: the distance, then a bracket as long as it on the\n map; without a frame, on a basemap on the surface over the credit. */\n.lintje-map-chart__scale-bar {\n position: absolute; z-index: 1;\n right: var(--space-2); bottom: var(--space-2);\n display: flex; align-items: flex-end; gap: var(--space-2);\n font: var(--text-axis);\n font-variant-numeric: tabular-nums;\n line-height: 1;\n color: var(--color-text-primary);\n white-space: nowrap;\n}\n.lintje-map-chart__scale-line {\n display: block; flex: none;\n height: 8px;\n box-sizing: border-box;\n border: 2px solid var(--color-text-primary);\n border-top: 0;\n}\n.lintje-map-chart--basemap .lintje-map-chart__scale-bar {\n padding: var(--space-1) var(--space-2);\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-default);\n}\n/* On a basemap what stands at the bottom lifts over the credit strip, which is a condition of\n using the service's tiles; on a phone the credit needs two lines. */\n.lintje-map-chart--basemap .lintje-map-chart__selection,\n.lintje-map-chart--basemap .lintje-map-chart__scale-bar,\n.lintje-map-chart--basemap .lintje-map-chart__hint { bottom: calc(var(--space-2) + var(--space-5)); }\n.lintje-map-chart--basemap.lintje-map-chart--mobile .lintje-map-chart__scale-bar { bottom: calc(var(--space-2) + var(--space-9)); }\n\n/* --- The legend ----------------------------------------------------------- */\n\n/* A line per layer: its name, which switches it, then its key and its series. One layer has no\n name and no switch; on a phone the name stands over its key, and the series on their own line. */\n.lintje-map-legend {\n display: grid;\n grid-template-columns: max-content minmax(0, 1fr);\n align-items: center;\n gap: var(--space-2) var(--space-4);\n margin-bottom: var(--space-3);\n font: var(--text-small);\n color: var(--color-text-primary);\n}\n.lintje-map-legend--narrow { grid-template-columns: minmax(0, 1fr); gap: var(--space-1); }\n/* The name switches the layer, and says so with the box of a checkbox (input.css), at the\n size of a legend marker: checked while the layer draws. */\n.lintje-map-legend__layer {\n display: flex; align-items: center; gap: var(--space-2);\n min-height: var(--h-target-text);\n font: inherit; font-weight: 700;\n color: inherit;\n text-align: left;\n cursor: pointer;\n}\n.lintje-map-legend__box {\n width: 16px; height: 16px; flex: none;\n display: flex; align-items: center; justify-content: center;\n border: 2px solid var(--color-border-choice);\n background: var(--color-accent);\n color: var(--color-action-primary-text);\n border-color: var(--color-action-primary-border);\n transition: background-color var(--dur-hover) var(--ease-in-motion),\n border-color var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-map-legend__layer.is-off .lintje-map-legend__box {\n background: var(--color-bg-surface);\n border-color: var(--color-border-choice);\n}\n/* The mark grows in when the layer goes on, as in a checkbox. */\n.lintje-map-legend__box .lintje-icon {\n transition: opacity var(--dur-hover) var(--ease-in-motion),\n transform var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-map-legend__layer.is-off .lintje-map-legend__box .lintje-icon { opacity: 0; transform: scale(0.4); }\n/* Off: the name is struck through at full contrast and the key behind it steps back; its series\n read as off too (chart.css). `aria-pressed` and the box carry the state. */\n.lintje-map-legend__layer.is-off .lintje-map-legend__name { text-decoration: line-through; }\n.lintje-map-legend__keys {\n display: flex; flex-wrap: wrap; align-items: center;\n gap: var(--space-2) var(--space-4);\n min-height: var(--h-target-text);\n}\n.lintje-map-legend__keys.is-off > .lintje-map-legend__key { opacity: .45; }\n.lintje-map-legend__key { display: flex; align-items: center; gap: 6px; }\n.lintje-map-legend__figure { font: var(--text-axis); color: var(--color-text-secondary); white-space: nowrap; font-variant-numeric: tabular-nums; }\n.lintje-map-legend__rule { width: 1px; align-self: stretch; min-height: 16px; background: var(--color-border-default); }\n.lintje-map-legend--narrow .lintje-map-legend__rule { display: none; }\n.lintje-map-legend--narrow .lintje-map-legend__keys > .lintje-legend { flex-basis: 100%; }\n/* The classes: five steps between 0 and the max, the lightest edged so it shows on the surface;\n in the modal each with its range, as the heatmap lists them. */\n.lintje-map-legend__ramp { display: flex; }\n.lintje-map-legend__ramp i { display: block; width: 16px; height: 10px; }\n.lintje-map-legend__ramp i:first-child,\n.lintje-map-legend__classes .lintje-legend__item:first-child .lintje-legend__marker { box-shadow: inset 0 0 0 1px var(--color-border-default); }\n.lintje-map-legend__sizes circle { fill: none; stroke: var(--color-text-secondary); stroke-width: 1; }\n.lintje-map-legend__sizes--nested { overflow: visible; }\n.lintje-map-legend__sizes--nested line { stroke: var(--color-border-strong); stroke-width: 1; }\n.lintje-map-legend__sizes--nested text { font: var(--text-axis); fill: var(--color-text-secondary); }\n.lintje-map-legend__wedge path { fill: var(--color-chart-default); }\n/* The rest of a long legend folds under a line that opens it. */\n.lintje-map-legend__more {\n grid-column: 2;\n display: flex; align-items: center; gap: var(--space-1);\n min-height: var(--h-target-text);\n font: inherit; font-weight: 700;\n color: var(--color-link);\n cursor: pointer;\n}\n.lintje-map-legend--narrow .lintje-map-legend__more { grid-column: 1; }\n.lintje-map-legend__more:hover { text-decoration: underline; }\n/* The series swatch in the selection panel. */\n.lintje-map-chart__series-swatch { width: 14px; height: 14px; display: block; flex: none; }\n\n/* --- The selection panel -------------------------------------------------- */\n\n/* Bottom left, clear of the buttons and the scale; on a phone a row under the map. */\n.lintje-map-chart__selection {\n left: var(--space-2); bottom: var(--space-2);\n width: 200px;\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-strong);\n padding: 10px 12px;\n font-size: 0.875rem;\n display: flex; flex-direction: column; gap: 3px;\n}\n.lintje-map-chart__selection--below {\n position: relative;\n left: auto; bottom: auto;\n width: auto;\n margin-top: var(--space-2);\n flex-direction: row; flex-wrap: wrap; align-items: baseline;\n gap: 2px var(--space-2);\n padding-right: var(--space-10);\n}\n.lintje-map-chart__selection-title {\n font-weight: 700; letter-spacing: .06em; text-transform: uppercase;\n color: var(--color-text-muted);\n}\n.lintje-map-chart__selection-value { color: var(--color-text-secondary); }\n.lintje-map-chart__selection-series { display: flex; align-items: center; gap: 5px; }\n/* The way out of a selection, top right of the panel; the title keeps its room. An icon\n button: a 40 px box whose transparent hit area takes the target to 48. */\n.lintje-map-chart__selection-close {\n position: absolute; top: 0; right: 0;\n width: var(--h-icon-button); height: var(--h-icon-button);\n display: flex; align-items: center; justify-content: center;\n background: none; border: 0; padding: 0;\n color: var(--color-text-secondary);\n cursor: pointer;\n}\n.lintje-map-chart__selection-close:hover { color: var(--color-text-primary); }\n.lintje-map-chart__selection-close::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2));\n}\n.lintje-map-chart__selection-title { padding-right: var(--space-8); }\n.lintje-map-chart__set-scope {\n min-height: var(--h-target);\n display: flex; align-items: center; gap: 4px;\n background: none; border: 0; padding: 0;\n font: 700 0.875rem/1.4 var(--font-ui);\n color: var(--color-link);\n cursor: pointer;\n}\n.lintje-map-chart__set-scope:hover { text-decoration: underline; }\n\n\n/* Forced colours: the map's colours are its content, so the drawing and the legend's swatches\n keep them (`forced-color-adjust: none`). The chosen area or point is outlined in CanvasText,\n the focused one in Highlight. The chosen layer's fill is dropped, so its border turns Highlight. */\n@media (forced-colors: active) {\n .lintje-map-chart__data,\n .lintje-map-legend__ramp i,\n .lintje-map-legend__wedge,\n .lintje-map-chart__series-swatch { forced-color-adjust: none; }\n .lintje-map-chart__polygon.is-selected .lintje-map-chart__polygon-shape,\n .lintje-map-chart__point.is-selected .lintje-map-chart__point-shape { stroke: CanvasText; }\n .lintje-map-chart__point:focus-visible .lintje-map-chart__point-ring,\n .lintje-map-chart__polygon:focus-visible .lintje-map-chart__polygon-ring,\n .lintje-map-chart__flow:focus-visible { stroke: Highlight; }\n .lintje-map-chart__point:focus-visible .lintje-map-chart__point-shape,\n .lintje-map-chart__polygon:focus-visible .lintje-map-chart__polygon-shape { stroke: Canvas; }\n .lintje-map-chart__layer.is-active { border-color: Highlight; }\n .lintje-map-legend__box { forced-color-adjust: none; background: Highlight; border-color: Highlight; color: HighlightText; }\n .lintje-map-legend__layer.is-off .lintje-map-legend__box { background: Canvas; border-color: CanvasText; }\n .lintje-map-chart .leaflet-container:focus-visible::after { border-color: Highlight; }\n}\n\n/* Zooming, drawing and closing are for the screen; paper shows the map as it stands, with its\n scale, its layers and what is chosen. */\n@media print {\n .lintje-map-chart__zoom,\n .lintje-map-chart__hint,\n .lintje-map-chart__selection-close { display: none; }\n}\n", Pt = "/* required styles */\r\n\r\n.leaflet-pane,\r\n.leaflet-tile,\r\n.leaflet-marker-icon,\r\n.leaflet-marker-shadow,\r\n.leaflet-tile-container,\r\n.leaflet-pane > svg,\r\n.leaflet-pane > canvas,\r\n.leaflet-zoom-box,\r\n.leaflet-image-layer,\r\n.leaflet-layer {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n }\r\n.leaflet-container {\r\n overflow: hidden;\r\n }\r\n.leaflet-tile,\r\n.leaflet-marker-icon,\r\n.leaflet-marker-shadow {\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n user-select: none;\r\n -webkit-user-drag: none;\r\n }\r\n/* Prevents IE11 from highlighting tiles in blue */\r\n.leaflet-tile::selection {\r\n background: transparent;\r\n}\r\n/* Safari renders non-retina tile on retina better with this, but Chrome is worse */\r\n.leaflet-safari .leaflet-tile {\r\n image-rendering: -webkit-optimize-contrast;\r\n }\r\n/* hack that prevents hw layers \"stretching\" when loading new tiles */\r\n.leaflet-safari .leaflet-tile-container {\r\n width: 1600px;\r\n height: 1600px;\r\n -webkit-transform-origin: 0 0;\r\n }\r\n.leaflet-marker-icon,\r\n.leaflet-marker-shadow {\r\n display: block;\r\n }\r\n/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */\r\n/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */\r\n.leaflet-container .leaflet-overlay-pane svg {\r\n max-width: none !important;\r\n max-height: none !important;\r\n }\r\n.leaflet-container .leaflet-marker-pane img,\r\n.leaflet-container .leaflet-shadow-pane img,\r\n.leaflet-container .leaflet-tile-pane img,\r\n.leaflet-container img.leaflet-image-layer,\r\n.leaflet-container .leaflet-tile {\r\n max-width: none !important;\r\n max-height: none !important;\r\n width: auto;\r\n padding: 0;\r\n }\r\n\r\n.leaflet-container img.leaflet-tile {\r\n /* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */\r\n mix-blend-mode: plus-lighter;\r\n}\r\n\r\n.leaflet-container.leaflet-touch-zoom {\r\n -ms-touch-action: pan-x pan-y;\r\n touch-action: pan-x pan-y;\r\n }\r\n.leaflet-container.leaflet-touch-drag {\r\n -ms-touch-action: pinch-zoom;\r\n /* Fallback for FF which doesn't support pinch-zoom */\r\n touch-action: none;\r\n touch-action: pinch-zoom;\r\n}\r\n.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {\r\n -ms-touch-action: none;\r\n touch-action: none;\r\n}\r\n.leaflet-container {\r\n -webkit-tap-highlight-color: transparent;\r\n}\r\n.leaflet-container a {\r\n -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);\r\n}\r\n.leaflet-tile {\r\n filter: inherit;\r\n visibility: hidden;\r\n }\r\n.leaflet-tile-loaded {\r\n visibility: inherit;\r\n }\r\n.leaflet-zoom-box {\r\n width: 0;\r\n height: 0;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n z-index: 800;\r\n }\r\n/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */\r\n.leaflet-overlay-pane svg {\r\n -moz-user-select: none;\r\n }\r\n\r\n.leaflet-pane { z-index: 400; }\r\n\r\n.leaflet-tile-pane { z-index: 200; }\r\n.leaflet-overlay-pane { z-index: 400; }\r\n.leaflet-shadow-pane { z-index: 500; }\r\n.leaflet-marker-pane { z-index: 600; }\r\n.leaflet-tooltip-pane { z-index: 650; }\r\n.leaflet-popup-pane { z-index: 700; }\r\n\r\n.leaflet-map-pane canvas { z-index: 100; }\r\n.leaflet-map-pane svg { z-index: 200; }\r\n\r\n.leaflet-vml-shape {\r\n width: 1px;\r\n height: 1px;\r\n }\r\n.lvml {\r\n behavior: url(#default#VML);\r\n display: inline-block;\r\n position: absolute;\r\n }\r\n\r\n\r\n/* control positioning */\r\n\r\n.leaflet-control {\r\n position: relative;\r\n z-index: 800;\r\n pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\r\n pointer-events: auto;\r\n }\r\n.leaflet-top,\r\n.leaflet-bottom {\r\n position: absolute;\r\n z-index: 1000;\r\n pointer-events: none;\r\n }\r\n.leaflet-top {\r\n top: 0;\r\n }\r\n.leaflet-right {\r\n right: 0;\r\n }\r\n.leaflet-bottom {\r\n bottom: 0;\r\n }\r\n.leaflet-left {\r\n left: 0;\r\n }\r\n.leaflet-control {\r\n float: left;\r\n clear: both;\r\n }\r\n.leaflet-right .leaflet-control {\r\n float: right;\r\n }\r\n.leaflet-top .leaflet-control {\r\n margin-top: 10px;\r\n }\r\n.leaflet-bottom .leaflet-control {\r\n margin-bottom: 10px;\r\n }\r\n.leaflet-left .leaflet-control {\r\n margin-left: 10px;\r\n }\r\n.leaflet-right .leaflet-control {\r\n margin-right: 10px;\r\n }\r\n\r\n\r\n/* zoom and fade animations */\r\n\r\n.leaflet-fade-anim .leaflet-popup {\r\n opacity: 0;\r\n -webkit-transition: opacity 0.2s linear;\r\n -moz-transition: opacity 0.2s linear;\r\n transition: opacity 0.2s linear;\r\n }\r\n.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {\r\n opacity: 1;\r\n }\r\n.leaflet-zoom-animated {\r\n -webkit-transform-origin: 0 0;\r\n -ms-transform-origin: 0 0;\r\n transform-origin: 0 0;\r\n }\r\nsvg.leaflet-zoom-animated {\r\n will-change: transform;\r\n}\r\n\r\n.leaflet-zoom-anim .leaflet-zoom-animated {\r\n -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);\r\n -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);\r\n transition: transform 0.25s cubic-bezier(0,0,0.25,1);\r\n }\r\n.leaflet-zoom-anim .leaflet-tile,\r\n.leaflet-pan-anim .leaflet-tile {\r\n -webkit-transition: none;\r\n -moz-transition: none;\r\n transition: none;\r\n }\r\n\r\n.leaflet-zoom-anim .leaflet-zoom-hide {\r\n visibility: hidden;\r\n }\r\n\r\n\r\n/* cursors */\r\n\r\n.leaflet-interactive {\r\n cursor: pointer;\r\n }\r\n.leaflet-grab {\r\n cursor: -webkit-grab;\r\n cursor: -moz-grab;\r\n cursor: grab;\r\n }\r\n.leaflet-crosshair,\r\n.leaflet-crosshair .leaflet-interactive {\r\n cursor: crosshair;\r\n }\r\n.leaflet-popup-pane,\r\n.leaflet-control {\r\n cursor: auto;\r\n }\r\n.leaflet-dragging .leaflet-grab,\r\n.leaflet-dragging .leaflet-grab .leaflet-interactive,\r\n.leaflet-dragging .leaflet-marker-draggable {\r\n cursor: move;\r\n cursor: -webkit-grabbing;\r\n cursor: -moz-grabbing;\r\n cursor: grabbing;\r\n }\r\n\r\n/* marker & overlays interactivity */\r\n.leaflet-marker-icon,\r\n.leaflet-marker-shadow,\r\n.leaflet-image-layer,\r\n.leaflet-pane > svg path,\r\n.leaflet-tile-container {\r\n pointer-events: none;\r\n }\r\n\r\n.leaflet-marker-icon.leaflet-interactive,\r\n.leaflet-image-layer.leaflet-interactive,\r\n.leaflet-pane > svg path.leaflet-interactive,\r\nsvg.leaflet-image-layer.leaflet-interactive path {\r\n pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\r\n pointer-events: auto;\r\n }\r\n\r\n/* visual tweaks */\r\n\r\n.leaflet-container {\r\n background: #ddd;\r\n outline-offset: 1px;\r\n }\r\n.leaflet-container a {\r\n color: #0078A8;\r\n }\r\n.leaflet-zoom-box {\r\n border: 2px dotted #38f;\r\n background: rgba(255,255,255,0.5);\r\n }\r\n\r\n\r\n/* general typography */\r\n.leaflet-container {\r\n font-family: \"Helvetica Neue\", Arial, Helvetica, sans-serif;\r\n font-size: 12px;\r\n font-size: 0.75rem;\r\n line-height: 1.5;\r\n }\r\n\r\n\r\n/* general toolbar styles */\r\n\r\n.leaflet-bar {\r\n box-shadow: 0 1px 5px rgba(0,0,0,0.65);\r\n border-radius: 4px;\r\n }\r\n.leaflet-bar a {\r\n background-color: #fff;\r\n border-bottom: 1px solid #ccc;\r\n width: 26px;\r\n height: 26px;\r\n line-height: 26px;\r\n display: block;\r\n text-align: center;\r\n text-decoration: none;\r\n color: black;\r\n }\r\n.leaflet-bar a,\r\n.leaflet-control-layers-toggle {\r\n background-position: 50% 50%;\r\n background-repeat: no-repeat;\r\n display: block;\r\n }\r\n.leaflet-bar a:hover,\r\n.leaflet-bar a:focus {\r\n background-color: #f4f4f4;\r\n }\r\n.leaflet-bar a:first-child {\r\n border-top-left-radius: 4px;\r\n border-top-right-radius: 4px;\r\n }\r\n.leaflet-bar a:last-child {\r\n border-bottom-left-radius: 4px;\r\n border-bottom-right-radius: 4px;\r\n border-bottom: none;\r\n }\r\n.leaflet-bar a.leaflet-disabled {\r\n cursor: default;\r\n background-color: #f4f4f4;\r\n color: #bbb;\r\n }\r\n\r\n.leaflet-touch .leaflet-bar a {\r\n width: 30px;\r\n height: 30px;\r\n line-height: 30px;\r\n }\r\n.leaflet-touch .leaflet-bar a:first-child {\r\n border-top-left-radius: 2px;\r\n border-top-right-radius: 2px;\r\n }\r\n.leaflet-touch .leaflet-bar a:last-child {\r\n border-bottom-left-radius: 2px;\r\n border-bottom-right-radius: 2px;\r\n }\r\n\r\n/* zoom control */\r\n\r\n.leaflet-control-zoom-in,\r\n.leaflet-control-zoom-out {\r\n font: bold 18px 'Lucida Console', Monaco, monospace;\r\n text-indent: 1px;\r\n }\r\n\r\n.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {\r\n font-size: 22px;\r\n }\r\n\r\n\r\n/* layers control */\r\n\r\n.leaflet-control-layers {\r\n box-shadow: 0 1px 5px rgba(0,0,0,0.4);\r\n background: #fff;\r\n border-radius: 5px;\r\n }\r\n.leaflet-control-layers-toggle {\r\n background-image: url(images/layers.png);\r\n width: 36px;\r\n height: 36px;\r\n }\r\n.leaflet-retina .leaflet-control-layers-toggle {\r\n background-image: url(images/layers-2x.png);\r\n background-size: 26px 26px;\r\n }\r\n.leaflet-touch .leaflet-control-layers-toggle {\r\n width: 44px;\r\n height: 44px;\r\n }\r\n.leaflet-control-layers .leaflet-control-layers-list,\r\n.leaflet-control-layers-expanded .leaflet-control-layers-toggle {\r\n display: none;\r\n }\r\n.leaflet-control-layers-expanded .leaflet-control-layers-list {\r\n display: block;\r\n position: relative;\r\n }\r\n.leaflet-control-layers-expanded {\r\n padding: 6px 10px 6px 6px;\r\n color: #333;\r\n background: #fff;\r\n }\r\n.leaflet-control-layers-scrollbar {\r\n overflow-y: scroll;\r\n overflow-x: hidden;\r\n padding-right: 5px;\r\n }\r\n.leaflet-control-layers-selector {\r\n margin-top: 2px;\r\n position: relative;\r\n top: 1px;\r\n }\r\n.leaflet-control-layers label {\r\n display: block;\r\n font-size: 13px;\r\n font-size: 1.08333em;\r\n }\r\n.leaflet-control-layers-separator {\r\n height: 0;\r\n border-top: 1px solid #ddd;\r\n margin: 5px -10px 5px -6px;\r\n }\r\n\r\n/* Default icon URLs */\r\n.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */\r\n background-image: url(images/marker-icon.png);\r\n }\r\n\r\n\r\n/* attribution and scale controls */\r\n\r\n.leaflet-container .leaflet-control-attribution {\r\n background: #fff;\r\n background: rgba(255, 255, 255, 0.8);\r\n margin: 0;\r\n }\r\n.leaflet-control-attribution,\r\n.leaflet-control-scale-line {\r\n padding: 0 5px;\r\n color: #333;\r\n line-height: 1.4;\r\n }\r\n.leaflet-control-attribution a {\r\n text-decoration: none;\r\n }\r\n.leaflet-control-attribution a:hover,\r\n.leaflet-control-attribution a:focus {\r\n text-decoration: underline;\r\n }\r\n.leaflet-attribution-flag {\r\n display: inline !important;\r\n vertical-align: baseline !important;\r\n width: 1em;\r\n height: 0.6669em;\r\n }\r\n.leaflet-left .leaflet-control-scale {\r\n margin-left: 5px;\r\n }\r\n.leaflet-bottom .leaflet-control-scale {\r\n margin-bottom: 5px;\r\n }\r\n.leaflet-control-scale-line {\r\n border: 2px solid #777;\r\n border-top: none;\r\n line-height: 1.1;\r\n padding: 2px 5px 1px;\r\n white-space: nowrap;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n background: rgba(255, 255, 255, 0.8);\r\n text-shadow: 1px 1px #fff;\r\n }\r\n.leaflet-control-scale-line:not(:first-child) {\r\n border-top: 2px solid #777;\r\n border-bottom: none;\r\n margin-top: -2px;\r\n }\r\n.leaflet-control-scale-line:not(:first-child):not(:last-child) {\r\n border-bottom: 2px solid #777;\r\n }\r\n\r\n.leaflet-touch .leaflet-control-attribution,\r\n.leaflet-touch .leaflet-control-layers,\r\n.leaflet-touch .leaflet-bar {\r\n box-shadow: none;\r\n }\r\n.leaflet-touch .leaflet-control-layers,\r\n.leaflet-touch .leaflet-bar {\r\n border: 2px solid rgba(0,0,0,0.2);\r\n background-clip: padding-box;\r\n }\r\n\r\n\r\n/* popup */\r\n\r\n.leaflet-popup {\r\n position: absolute;\r\n text-align: center;\r\n margin-bottom: 20px;\r\n }\r\n.leaflet-popup-content-wrapper {\r\n padding: 1px;\r\n text-align: left;\r\n border-radius: 12px;\r\n }\r\n.leaflet-popup-content {\r\n margin: 13px 24px 13px 20px;\r\n line-height: 1.3;\r\n font-size: 13px;\r\n font-size: 1.08333em;\r\n min-height: 1px;\r\n }\r\n.leaflet-popup-content p {\r\n margin: 17px 0;\r\n margin: 1.3em 0;\r\n }\r\n.leaflet-popup-tip-container {\r\n width: 40px;\r\n height: 20px;\r\n position: absolute;\r\n left: 50%;\r\n margin-top: -1px;\r\n margin-left: -20px;\r\n overflow: hidden;\r\n pointer-events: none;\r\n }\r\n.leaflet-popup-tip {\r\n width: 17px;\r\n height: 17px;\r\n padding: 1px;\r\n\r\n margin: -10px auto 0;\r\n pointer-events: auto;\r\n\r\n -webkit-transform: rotate(45deg);\r\n -moz-transform: rotate(45deg);\r\n -ms-transform: rotate(45deg);\r\n transform: rotate(45deg);\r\n }\r\n.leaflet-popup-content-wrapper,\r\n.leaflet-popup-tip {\r\n background: white;\r\n color: #333;\r\n box-shadow: 0 3px 14px rgba(0,0,0,0.4);\r\n }\r\n.leaflet-container a.leaflet-popup-close-button {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n border: none;\r\n text-align: center;\r\n width: 24px;\r\n height: 24px;\r\n font: 16px/24px Tahoma, Verdana, sans-serif;\r\n color: #757575;\r\n text-decoration: none;\r\n background: transparent;\r\n }\r\n.leaflet-container a.leaflet-popup-close-button:hover,\r\n.leaflet-container a.leaflet-popup-close-button:focus {\r\n color: #585858;\r\n }\r\n.leaflet-popup-scrolled {\r\n overflow: auto;\r\n }\r\n\r\n.leaflet-oldie .leaflet-popup-content-wrapper {\r\n -ms-zoom: 1;\r\n }\r\n.leaflet-oldie .leaflet-popup-tip {\r\n width: 24px;\r\n margin: 0 auto;\r\n\r\n -ms-filter: \"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)\";\r\n filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);\r\n }\r\n\r\n.leaflet-oldie .leaflet-control-zoom,\r\n.leaflet-oldie .leaflet-control-layers,\r\n.leaflet-oldie .leaflet-popup-content-wrapper,\r\n.leaflet-oldie .leaflet-popup-tip {\r\n border: 1px solid #999;\r\n }\r\n\r\n\r\n/* div icon */\r\n\r\n.leaflet-div-icon {\r\n background: #fff;\r\n border: 1px solid #666;\r\n }\r\n\r\n\r\n/* Tooltip */\r\n/* Base styles for the element that has a tooltip */\r\n.leaflet-tooltip {\r\n position: absolute;\r\n padding: 6px;\r\n background-color: #fff;\r\n border: 1px solid #fff;\r\n border-radius: 3px;\r\n color: #222;\r\n white-space: nowrap;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n pointer-events: none;\r\n box-shadow: 0 1px 3px rgba(0,0,0,0.4);\r\n }\r\n.leaflet-tooltip.leaflet-interactive {\r\n cursor: pointer;\r\n pointer-events: auto;\r\n }\r\n.leaflet-tooltip-top:before,\r\n.leaflet-tooltip-bottom:before,\r\n.leaflet-tooltip-left:before,\r\n.leaflet-tooltip-right:before {\r\n position: absolute;\r\n pointer-events: none;\r\n border: 6px solid transparent;\r\n background: transparent;\r\n content: \"\";\r\n }\r\n\r\n/* Directions */\r\n\r\n.leaflet-tooltip-bottom {\r\n margin-top: 6px;\r\n}\r\n.leaflet-tooltip-top {\r\n margin-top: -6px;\r\n}\r\n.leaflet-tooltip-bottom:before,\r\n.leaflet-tooltip-top:before {\r\n left: 50%;\r\n margin-left: -6px;\r\n }\r\n.leaflet-tooltip-top:before {\r\n bottom: 0;\r\n margin-bottom: -12px;\r\n border-top-color: #fff;\r\n }\r\n.leaflet-tooltip-bottom:before {\r\n top: 0;\r\n margin-top: -12px;\r\n margin-left: -6px;\r\n border-bottom-color: #fff;\r\n }\r\n.leaflet-tooltip-left {\r\n margin-left: -6px;\r\n}\r\n.leaflet-tooltip-right {\r\n margin-left: 6px;\r\n}\r\n.leaflet-tooltip-left:before,\r\n.leaflet-tooltip-right:before {\r\n top: 50%;\r\n margin-top: -6px;\r\n }\r\n.leaflet-tooltip-left:before {\r\n right: 0;\r\n margin-right: -12px;\r\n border-left-color: #fff;\r\n }\r\n.leaflet-tooltip-right:before {\r\n left: 0;\r\n margin-left: -12px;\r\n border-right-color: #fff;\r\n }\r\n\r\n/* Printing */\r\n\r\n@media print {\r\n /* Prevent printers from removing background-images of controls. */\r\n .leaflet-control {\r\n -webkit-print-color-adjust: exact;\r\n print-color-adjust: exact;\r\n }\r\n }\r\n";
|
|
21755
21775
|
//#endregion
|
|
21756
21776
|
//#region src/components/shared/charts/map-chart/map-styles.ts
|
|
21757
|
-
function
|
|
21777
|
+
function Ft(e) {
|
|
21758
21778
|
return e.replace(/[^{}]*\{[^{}]*url\(images\/[^{}]*\}/g, "");
|
|
21759
21779
|
}
|
|
21760
|
-
var
|
|
21761
|
-
|
|
21762
|
-
|
|
21763
|
-
|
|
21764
|
-
|
|
21765
|
-
],
|
|
21780
|
+
var It = u(Nt), Lt = [
|
|
21781
|
+
u(ee),
|
|
21782
|
+
u(Ft(Pt)),
|
|
21783
|
+
It,
|
|
21784
|
+
d
|
|
21785
|
+
], Rt = class extends ie {
|
|
21766
21786
|
static {
|
|
21767
21787
|
this.styles = [
|
|
21768
|
-
|
|
21769
|
-
|
|
21770
|
-
|
|
21771
|
-
r(s),
|
|
21788
|
+
e,
|
|
21789
|
+
i(ne),
|
|
21790
|
+
i(n),
|
|
21772
21791
|
...b,
|
|
21773
|
-
...
|
|
21792
|
+
...Lt
|
|
21774
21793
|
];
|
|
21775
21794
|
}
|
|
21776
21795
|
static {
|
|
@@ -21779,18 +21798,24 @@ var Rt = l(Ft), zt = [
|
|
|
21779
21798
|
layer: { state: !0 }
|
|
21780
21799
|
};
|
|
21781
21800
|
}
|
|
21782
|
-
#e = new
|
|
21801
|
+
#e = new D(() => this.requestUpdate());
|
|
21783
21802
|
#t = null;
|
|
21784
|
-
#n = new
|
|
21803
|
+
#n = new t(this);
|
|
21785
21804
|
#r = void 0;
|
|
21805
|
+
#i = null;
|
|
21786
21806
|
get dataSettings() {
|
|
21787
21807
|
return this.data ?? void 0;
|
|
21788
21808
|
}
|
|
21809
|
+
connectedCallback() {
|
|
21810
|
+
super.connectedCallback(), this.#i = c((e) => {
|
|
21811
|
+
this.#e.leaflet?.print(e), this.isUpdatePending && this.performUpdate();
|
|
21812
|
+
});
|
|
21813
|
+
}
|
|
21789
21814
|
disconnectedCallback() {
|
|
21790
|
-
this.#e.detach(), this.#t?.detach(), this.#t = null, super.disconnectedCallback();
|
|
21815
|
+
this.#i?.(), this.#i = null, this.#e.detach(), this.#t?.detach(), this.#t = null, super.disconnectedCallback();
|
|
21791
21816
|
}
|
|
21792
21817
|
expandChanged(e) {
|
|
21793
|
-
e ? this.#t ??= new
|
|
21818
|
+
e ? this.#t ??= new D(() => this.requestUpdate()) : (this.#t?.detach(), this.#t = null);
|
|
21794
21819
|
}
|
|
21795
21820
|
willUpdate(e) {
|
|
21796
21821
|
super.willUpdate(e), e.has("data") && this.data?.layer !== this.#r && (this.#r = this.data?.layer, this.layer = this.data?.layer);
|
|
@@ -21802,8 +21827,8 @@ var Rt = l(Ft), zt = [
|
|
|
21802
21827
|
csv() {
|
|
21803
21828
|
let e = this.data;
|
|
21804
21829
|
if (!e?.download) return;
|
|
21805
|
-
let t = e.unit ?? "aantal", n =
|
|
21806
|
-
|
|
21830
|
+
let t = e.unit ?? "aantal", n = be(e, t), r = e.variant === "plots", i = n.every((e) => e.unit === t), a = (e) => i || !e.unit ? e.name : `${e.name} (${e.unit})`, o = n.some((e) => e.values.some((e) => e.detail));
|
|
21831
|
+
oe(e.download.filename, [[
|
|
21807
21832
|
"",
|
|
21808
21833
|
i ? t : "",
|
|
21809
21834
|
...r ? ["Laag"] : [],
|
|
@@ -21817,19 +21842,23 @@ var Rt = l(Ft), zt = [
|
|
|
21817
21842
|
}
|
|
21818
21843
|
render() {
|
|
21819
21844
|
let e = this.data;
|
|
21820
|
-
if (!e) return
|
|
21821
|
-
let t = (e.state ?? "ready") === "ready",
|
|
21822
|
-
return
|
|
21823
|
-
id=${this.id ? `${this.id}-tile` :
|
|
21824
|
-
span=${e.span ??
|
|
21825
|
-
heading=${e.title ??
|
|
21826
|
-
icon=${e.icon ??
|
|
21827
|
-
subtitle=${
|
|
21828
|
-
intro=${e.intro ??
|
|
21829
|
-
footnote=${e.footnote ??
|
|
21845
|
+
if (!e) return s;
|
|
21846
|
+
let t = (e.state ?? "ready") === "ready", n = this.#n.matches && e.mobileSubtitle ? e.mobileSubtitle : e.subtitle, r = e.height ?? (this.#n.matches ? wt.mobile : wt.desktop);
|
|
21847
|
+
return f`<lintje-tile
|
|
21848
|
+
id=${this.id ? `${this.id}-tile` : s}
|
|
21849
|
+
span=${e.span ?? s}
|
|
21850
|
+
heading=${e.title ?? s}
|
|
21851
|
+
icon=${e.icon ?? s}
|
|
21852
|
+
subtitle=${n ?? s}
|
|
21853
|
+
intro=${e.intro ?? s}
|
|
21854
|
+
footnote=${e.footnote ?? s}
|
|
21830
21855
|
?legend-below=${!!e.legendBelow}
|
|
21831
21856
|
?expandable=${!!e.expandable && t}
|
|
21832
21857
|
?download=${!!e.download && t}
|
|
21858
|
+
state=${e.state ?? "ready"}
|
|
21859
|
+
message=${e.message ?? s}
|
|
21860
|
+
last-known=${e.lastKnown ?? s}
|
|
21861
|
+
content-height=${`${r}px`}
|
|
21833
21862
|
@lintje-tile-expand=${(e) => {
|
|
21834
21863
|
e.stopPropagation(), this.expand(!0);
|
|
21835
21864
|
}}
|
|
@@ -21837,16 +21866,16 @@ var Rt = l(Ft), zt = [
|
|
|
21837
21866
|
e.stopPropagation(), this.csv();
|
|
21838
21867
|
}}
|
|
21839
21868
|
>
|
|
21840
|
-
${e.notice ?
|
|
21841
|
-
${this.content(`${
|
|
21869
|
+
${e.notice ? f`<lintje-announcement slot="notice" .data=${e.notice}></lintje-announcement>` : s}
|
|
21870
|
+
${this.content(`${r}px`)}
|
|
21842
21871
|
</lintje-tile>
|
|
21843
21872
|
|
|
21844
|
-
${this.renderExpandModal(this.expanded && this.#t ?
|
|
21873
|
+
${this.renderExpandModal(this.expanded && this.#t ? Mt({
|
|
21845
21874
|
...e,
|
|
21846
21875
|
layer: this.layer
|
|
21847
|
-
}, this.mapOptions(this.#t, !0)) :
|
|
21876
|
+
}, this.mapOptions(this.#t, !0)) : s, {
|
|
21848
21877
|
heading: e.title,
|
|
21849
|
-
subtitle:
|
|
21878
|
+
subtitle: n,
|
|
21850
21879
|
footnote: e.footnote,
|
|
21851
21880
|
csv: e.download ? () => this.csv() : void 0,
|
|
21852
21881
|
png: e.basemap ? void 0 : () => this.png()
|
|
@@ -21855,18 +21884,14 @@ var Rt = l(Ft), zt = [
|
|
|
21855
21884
|
content(e) {
|
|
21856
21885
|
let t = this.data;
|
|
21857
21886
|
switch (t.state ?? "ready") {
|
|
21858
|
-
case "loading": return
|
|
21887
|
+
case "loading": return f`<div slot="loading">${re({
|
|
21859
21888
|
kind: "map",
|
|
21860
|
-
height: e
|
|
21861
|
-
});
|
|
21862
|
-
case "empty": return se(t.message, e);
|
|
21863
|
-
case "error": return S({
|
|
21864
|
-
message: t.message,
|
|
21865
|
-
lastKnown: t.lastKnown,
|
|
21866
21889
|
height: e,
|
|
21867
|
-
|
|
21868
|
-
})
|
|
21869
|
-
|
|
21890
|
+
status: !1
|
|
21891
|
+
})}</div>`;
|
|
21892
|
+
case "empty":
|
|
21893
|
+
case "error": return s;
|
|
21894
|
+
default: return Mt({
|
|
21870
21895
|
...t,
|
|
21871
21896
|
layer: this.layer
|
|
21872
21897
|
}, this.mapOptions(this.#e));
|
|
@@ -21905,6 +21930,6 @@ var Rt = l(Ft), zt = [
|
|
|
21905
21930
|
};
|
|
21906
21931
|
}
|
|
21907
21932
|
};
|
|
21908
|
-
|
|
21933
|
+
r("lintje-map", Rt);
|
|
21909
21934
|
//#endregion
|
|
21910
|
-
export {
|
|
21935
|
+
export { Rt as LintjeMap };
|