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.
Files changed (276) hide show
  1. package/README.md +2 -2
  2. package/dist-elements/actions.js +1 -1
  3. package/dist-elements/chunks/{base-Bg-IFOPG.js → base-CbmWxUig.js} +444 -272
  4. package/dist-elements/chunks/{controls-B1455oPG.js → controls-DxmnDSBr.js} +6 -0
  5. package/dist-elements/chunks/dialog-DChINFxD.js +28 -0
  6. package/dist-elements/chunks/{disclosure-BXTX04gM.js → disclosure-D39vAR5q.js} +1 -1
  7. package/dist-elements/chunks/{disclosure-CMXhX-Vb.js → disclosure-DLkXPUpV.js} +6 -6
  8. package/dist-elements/chunks/download-Ct9q2anY.js +206 -0
  9. package/dist-elements/chunks/{focus-trap-9BnE-xWv.js → focus-trap-BwOxE5BX.js} +1 -1
  10. package/dist-elements/chunks/input-CRW_exv_.js +195 -0
  11. package/dist-elements/chunks/{player-DXOZEyEy.js → player-B8QXJ0Z5.js} +26 -26
  12. package/dist-elements/chunks/{sentence-BI3lwEuT.js → sentence-B19AyZBS.js} +3 -3
  13. package/dist-elements/chunks/{stagger-qGD3wmhg.js → stagger-BHoOgy0g.js} +81 -75
  14. package/dist-elements/core.js +1 -1
  15. package/dist-elements/custom-elements.json +980 -670
  16. package/dist-elements/data-types.json +6798 -0
  17. package/dist-elements/feedback.js +2 -1
  18. package/dist-elements/frame.js +0 -2
  19. package/dist-elements/guides/dashboard.md +8 -0
  20. package/dist-elements/guides/events.md +4 -5
  21. package/dist-elements/guides/loading.md +8 -7
  22. package/dist-elements/guides/page-contents.md +110 -0
  23. package/dist-elements/guides/start.md +12 -0
  24. package/dist-elements/inputs.js +2 -1
  25. package/dist-elements/layout.js +1 -1
  26. package/dist-elements/lintje.js +6975 -6120
  27. package/dist-elements/overlays.js +2 -2
  28. package/dist-elements/skills/lintje/SKILL.md +1 -1
  29. package/dist-elements/tables.js +1 -1
  30. package/dist-elements/tag/activity-log.js +15 -15
  31. package/dist-elements/tag/ai-label.js +10 -10
  32. package/dist-elements/tag/announcement.js +36 -76
  33. package/dist-elements/tag/app-search.js +49 -49
  34. package/dist-elements/tag/audio-player.js +57 -57
  35. package/dist-elements/tag/badge.js +1 -1
  36. package/dist-elements/tag/breadcrumbs.js +15 -15
  37. package/dist-elements/tag/button.js +1 -1
  38. package/dist-elements/tag/card-list.js +12 -12
  39. package/dist-elements/tag/card.js +39 -44
  40. package/dist-elements/tag/chart.js +1050 -795
  41. package/dist-elements/tag/chat-answer.js +49 -49
  42. package/dist-elements/tag/chat-composer.js +75 -71
  43. package/dist-elements/tag/chat-message.js +8 -8
  44. package/dist-elements/tag/chat-strip.js +22 -22
  45. package/dist-elements/tag/chat-suggestions.js +12 -12
  46. package/dist-elements/tag/chat.js +56 -56
  47. package/dist-elements/tag/checkbox-group.d.ts +1 -0
  48. package/dist-elements/tag/checkbox-group.js +59 -0
  49. package/dist-elements/tag/checkbox.js +8 -8
  50. package/dist-elements/tag/code.js +9 -9
  51. package/dist-elements/tag/combobox.js +18 -18
  52. package/dist-elements/tag/conflict-alert.js +12 -12
  53. package/dist-elements/tag/copy-button.js +14 -14
  54. package/dist-elements/tag/data-table.js +878 -530
  55. package/dist-elements/tag/date-input.js +30 -30
  56. package/dist-elements/tag/date-range.js +37 -37
  57. package/dist-elements/tag/description-list.js +29 -32
  58. package/dist-elements/tag/dialog.d.ts +1 -0
  59. package/dist-elements/tag/dialog.js +144 -0
  60. package/dist-elements/tag/document-viewer.js +23 -23
  61. package/dist-elements/tag/drawer.js +28 -32
  62. package/dist-elements/tag/empty-state.js +19 -30
  63. package/dist-elements/tag/error-page.d.ts +1 -0
  64. package/dist-elements/tag/error-page.js +109 -0
  65. package/dist-elements/tag/error-summary.js +10 -10
  66. package/dist-elements/tag/expander.js +8 -8
  67. package/dist-elements/tag/explainer.js +11 -11
  68. package/dist-elements/tag/field.js +5 -5
  69. package/dist-elements/tag/file-upload.js +34 -34
  70. package/dist-elements/tag/filter-bar.js +56 -56
  71. package/dist-elements/tag/filter-sheet.js +11 -11
  72. package/dist-elements/tag/filter-zone.js +31 -31
  73. package/dist-elements/tag/footer.js +21 -21
  74. package/dist-elements/tag/form-actions.js +29 -25
  75. package/dist-elements/tag/form-section.js +6 -6
  76. package/dist-elements/tag/form.js +12 -12
  77. package/dist-elements/tag/gallery.js +14 -14
  78. package/dist-elements/tag/grid-item.js +1 -1
  79. package/dist-elements/tag/grid.js +1 -1
  80. package/dist-elements/tag/hero.js +12 -12
  81. package/dist-elements/tag/highlight.js +5 -5
  82. package/dist-elements/tag/icon-button.js +1 -1
  83. package/dist-elements/tag/icon.js +1 -1
  84. package/dist-elements/tag/job-list.js +22 -44
  85. package/dist-elements/tag/kpi-row.js +12 -10
  86. package/dist-elements/tag/kpi.js +146 -137
  87. package/dist-elements/tag/level-meter.js +11 -11
  88. package/dist-elements/tag/list.js +55 -55
  89. package/dist-elements/tag/logo.js +30 -30
  90. package/dist-elements/tag/map.js +690 -665
  91. package/dist-elements/tag/menu-button.js +70 -69
  92. package/dist-elements/tag/modal.js +28 -37
  93. package/dist-elements/tag/multiselect.js +34 -34
  94. package/dist-elements/tag/note.js +5 -5
  95. package/dist-elements/tag/notifications.js +36 -36
  96. package/dist-elements/tag/number-input.js +12 -12
  97. package/dist-elements/tag/page-header.js +140 -37
  98. package/dist-elements/tag/pagination.js +53 -48
  99. package/dist-elements/tag/popover.js +1 -1
  100. package/dist-elements/tag/progress-bar.js +1 -1
  101. package/dist-elements/tag/prose.js +6 -6
  102. package/dist-elements/tag/qr-code.js +7 -7
  103. package/dist-elements/tag/radio-group.js +12 -12
  104. package/dist-elements/tag/range.js +22 -22
  105. package/dist-elements/tag/recording-status.js +14 -14
  106. package/dist-elements/tag/repeater.js +10 -10
  107. package/dist-elements/tag/segmented.js +13 -13
  108. package/dist-elements/tag/select.js +10 -10
  109. package/dist-elements/tag/shell.js +356 -339
  110. package/dist-elements/tag/skeleton.js +1 -1
  111. package/dist-elements/tag/slot-picker.js +14 -14
  112. package/dist-elements/tag/sortable-list.js +14 -14
  113. package/dist-elements/tag/spinner.js +1 -1
  114. package/dist-elements/tag/split-pane.js +12 -12
  115. package/dist-elements/tag/status-dot.js +1 -1
  116. package/dist-elements/tag/stepper.js +21 -21
  117. package/dist-elements/tag/streaming-text.js +13 -13
  118. package/dist-elements/tag/sub-nav.js +39 -38
  119. package/dist-elements/tag/tabs.js +38 -38
  120. package/dist-elements/tag/tag-input.js +19 -19
  121. package/dist-elements/tag/text-editor.js +24 -24
  122. package/dist-elements/tag/text-input.js +14 -14
  123. package/dist-elements/tag/textarea.js +14 -14
  124. package/dist-elements/tag/tile.js +1 -1
  125. package/dist-elements/tag/time-input.js +19 -19
  126. package/dist-elements/tag/toast.js +32 -23
  127. package/dist-elements/tag/toggle.js +8 -8
  128. package/dist-elements/tag/toggletip.js +27 -27
  129. package/dist-elements/tag/tooltip.js +1 -1
  130. package/dist-elements/tag/transcript.js +48 -48
  131. package/dist-elements/tag/translator.js +13 -13
  132. package/dist-elements/tag/tree-view.js +13 -13
  133. package/dist-elements/tag/user-menu.js +37 -37
  134. package/dist-elements/tag/video-player.js +21 -21
  135. package/dist-elements/tokens.css +120 -96
  136. package/dist-elements/types/bundle/feedback.d.ts +1 -0
  137. package/dist-elements/types/bundle/frame.d.ts +0 -2
  138. package/dist-elements/types/bundle/inputs.d.ts +1 -0
  139. package/dist-elements/types/bundle/overlays.d.ts +1 -1
  140. package/dist-elements/types/components/actions/copy-button/copy-button.d.ts +6 -7
  141. package/dist-elements/types/components/actions/menu-button/menu-button.d.ts +13 -15
  142. package/dist-elements/types/components/actions/qr-code/qr-code.d.ts +9 -9
  143. package/dist-elements/types/components/charts/chart/chart.d.ts +5 -4
  144. package/dist-elements/types/components/charts/kpi/kpi.d.ts +16 -8
  145. package/dist-elements/types/components/charts/kpi-row/kpi-row.d.ts +1 -7
  146. package/dist-elements/types/components/charts/note/note.d.ts +1 -1
  147. package/dist-elements/types/components/chat/chat/chat.d.ts +8 -10
  148. package/dist-elements/types/components/chat/chat-answer/chat-answer.d.ts +7 -8
  149. package/dist-elements/types/components/chat/chat-composer/chat-composer.d.ts +8 -10
  150. package/dist-elements/types/components/chat/chat-message/chat-message.d.ts +6 -7
  151. package/dist-elements/types/components/chat/chat-strip/chat-strip.d.ts +5 -5
  152. package/dist-elements/types/components/chat/chat-suggestions/chat-suggestions.d.ts +9 -10
  153. package/dist-elements/types/components/content/audio-player/audio-player.d.ts +10 -12
  154. package/dist-elements/types/components/content/code/code.d.ts +2 -3
  155. package/dist-elements/types/components/content/document-viewer/document-viewer.d.ts +8 -9
  156. package/dist-elements/types/components/content/gallery/gallery.d.ts +5 -4
  157. package/dist-elements/types/components/content/highlight/highlight.d.ts +4 -3
  158. package/dist-elements/types/components/content/prose/prose.d.ts +2 -3
  159. package/dist-elements/types/components/content/transcript/transcript.d.ts +12 -25
  160. package/dist-elements/types/components/content/translator/translator.d.ts +11 -15
  161. package/dist-elements/types/components/content/video-player/video-player.d.ts +11 -13
  162. package/dist-elements/types/components/feedback/ai-label/ai-label.d.ts +3 -4
  163. package/dist-elements/types/components/feedback/announcement/announcement.d.ts +3 -7
  164. package/dist-elements/types/components/feedback/conflict-alert/conflict-alert.d.ts +3 -4
  165. package/dist-elements/types/components/feedback/empty-state/empty-state.d.ts +5 -8
  166. package/dist-elements/types/components/feedback/error-page/error-page.d.ts +52 -0
  167. package/dist-elements/types/components/feedback/job-list/job-list.d.ts +9 -12
  168. package/dist-elements/types/components/feedback/level-meter/level-meter.d.ts +4 -6
  169. package/dist-elements/types/components/feedback/recording-status/recording-status.d.ts +5 -6
  170. package/dist-elements/types/components/feedback/streaming-text/streaming-text.d.ts +10 -7
  171. package/dist-elements/types/components/feedback/toast/toast.d.ts +8 -9
  172. package/dist-elements/types/components/filters/filter-bar/filter-bar.d.ts +9 -4
  173. package/dist-elements/types/components/filters/filter-sheet/filter-sheet.d.ts +5 -5
  174. package/dist-elements/types/components/filters/filter-zone/filter-zone.d.ts +4 -4
  175. package/dist-elements/types/components/forms/error-summary/error-summary.d.ts +5 -6
  176. package/dist-elements/types/components/forms/form/form.d.ts +5 -5
  177. package/dist-elements/types/components/forms/form-actions/form-actions.d.ts +9 -7
  178. package/dist-elements/types/components/forms/form-section/form-section.d.ts +6 -5
  179. package/dist-elements/types/components/forms/repeater/repeater.d.ts +13 -7
  180. package/dist-elements/types/components/forms/stepper/stepper.d.ts +5 -4
  181. package/dist-elements/types/components/frame/app-search/app-search.d.ts +6 -7
  182. package/dist-elements/types/components/frame/breadcrumbs/breadcrumbs.d.ts +2 -2
  183. package/dist-elements/types/components/frame/footer/footer.d.ts +3 -2
  184. package/dist-elements/types/components/frame/hero/hero.d.ts +7 -9
  185. package/dist-elements/types/components/frame/notifications/notifications.d.ts +5 -9
  186. package/dist-elements/types/components/frame/page-header/page-header.d.ts +12 -15
  187. package/dist-elements/types/components/frame/shell/shell.d.ts +14 -13
  188. package/dist-elements/types/components/frame/sub-nav/sub-nav.d.ts +10 -6
  189. package/dist-elements/types/components/frame/user-menu/user-menu.d.ts +11 -10
  190. package/dist-elements/types/components/index.d.ts +8 -9
  191. package/dist-elements/types/components/inputs/checkbox/checkbox.d.ts +4 -4
  192. package/dist-elements/types/components/inputs/checkbox-group/checkbox-group.d.ts +33 -0
  193. package/dist-elements/types/components/inputs/combobox/combobox.d.ts +12 -6
  194. package/dist-elements/types/components/inputs/date-input/date-input.d.ts +5 -5
  195. package/dist-elements/types/components/inputs/date-range/date-range.d.ts +11 -6
  196. package/dist-elements/types/components/inputs/field/field.d.ts +5 -3
  197. package/dist-elements/types/components/inputs/file-upload/file-upload.d.ts +6 -8
  198. package/dist-elements/types/components/inputs/multiselect/multiselect.d.ts +4 -6
  199. package/dist-elements/types/components/inputs/number-input/number-input.d.ts +8 -7
  200. package/dist-elements/types/components/inputs/radio-group/radio-group.d.ts +2 -4
  201. package/dist-elements/types/components/inputs/range/range.d.ts +5 -6
  202. package/dist-elements/types/components/inputs/segmented/segmented.d.ts +7 -4
  203. package/dist-elements/types/components/inputs/select/select.d.ts +6 -3
  204. package/dist-elements/types/components/inputs/slot-picker/slot-picker.d.ts +6 -5
  205. package/dist-elements/types/components/inputs/tag-input/tag-input.d.ts +7 -5
  206. package/dist-elements/types/components/inputs/text-editor/text-editor.d.ts +6 -6
  207. package/dist-elements/types/components/inputs/text-input/text-input.d.ts +11 -6
  208. package/dist-elements/types/components/inputs/textarea/textarea.d.ts +12 -11
  209. package/dist-elements/types/components/inputs/time-input/time-input.d.ts +7 -8
  210. package/dist-elements/types/components/inputs/toggle/toggle.d.ts +3 -1
  211. package/dist-elements/types/components/layout/expander/expander.d.ts +9 -10
  212. package/dist-elements/types/components/layout/split-pane/split-pane.d.ts +6 -6
  213. package/dist-elements/types/components/layout/tabs/tabs.d.ts +11 -9
  214. package/dist-elements/types/components/map/map/map.d.ts +10 -9
  215. package/dist-elements/types/components/overlays/dialog/dialog.d.ts +49 -0
  216. package/dist-elements/types/components/overlays/drawer/drawer.d.ts +6 -5
  217. package/dist-elements/types/components/overlays/modal/modal.d.ts +7 -12
  218. package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +3 -7
  219. package/dist-elements/types/components/shared/charts/index.d.ts +4 -1
  220. package/dist-elements/types/components/shared/charts/kinds.d.ts +86 -0
  221. package/dist-elements/types/components/shared/charts/line-chart/line-chart.d.ts +2 -2
  222. package/dist-elements/types/components/shared/charts/map-chart/leaflet.d.ts +5 -0
  223. package/dist-elements/types/components/shared/charts/shared/chart-states.d.ts +8 -19
  224. package/dist-elements/types/components/shared/charts/shared/controller.d.ts +7 -0
  225. package/dist-elements/types/components/shared/charts/shared/types.d.ts +29 -0
  226. package/dist-elements/types/components/shared/charts/stacked-area-chart/stacked-area-chart.d.ts +13 -0
  227. package/dist-elements/types/components/shared/dialog.d.ts +9 -0
  228. package/dist-elements/types/components/shared/overflow.d.ts +58 -0
  229. package/dist-elements/types/components/tables/activity-log/activity-log.d.ts +2 -3
  230. package/dist-elements/types/components/tables/card/card.d.ts +14 -20
  231. package/dist-elements/types/components/tables/card-list/card-list.d.ts +9 -11
  232. package/dist-elements/types/components/tables/data-table/data-table.d.ts +85 -16
  233. package/dist-elements/types/components/tables/data-table/filters.d.ts +13 -4
  234. package/dist-elements/types/components/tables/description-list/description-list.d.ts +12 -11
  235. package/dist-elements/types/components/tables/list/list.d.ts +9 -20
  236. package/dist-elements/types/components/tables/pagination/pagination.d.ts +12 -11
  237. package/dist-elements/types/components/tables/sortable-list/sortable-list.d.ts +5 -6
  238. package/dist-elements/types/components/tables/tree-view/tree-view.d.ts +4 -4
  239. package/dist-elements/types/core/media.d.ts +2 -2
  240. package/dist-elements/types/core/motion.d.ts +5 -0
  241. package/dist-elements/types/core/print.d.ts +15 -0
  242. package/dist-elements/types/core/shortcuts.d.ts +2 -2
  243. package/dist-elements/types/icons/icon/icon.d.ts +2 -3
  244. package/dist-elements/types/icons/register.d.ts +1 -1
  245. package/dist-elements/types/primitives/badge/badge.d.ts +9 -5
  246. package/dist-elements/types/primitives/button/button.d.ts +12 -9
  247. package/dist-elements/types/primitives/grid/grid.d.ts +3 -3
  248. package/dist-elements/types/primitives/grid-item/grid-item.d.ts +1 -1
  249. package/dist-elements/types/primitives/icon-button/icon-button.d.ts +7 -5
  250. package/dist-elements/types/primitives/index.d.ts +3 -1
  251. package/dist-elements/types/primitives/popover/popover.d.ts +5 -4
  252. package/dist-elements/types/primitives/progress-bar/progress-bar.d.ts +8 -6
  253. package/dist-elements/types/primitives/shared/announcement-block.d.ts +38 -0
  254. package/dist-elements/types/primitives/shared/empty-state-block.d.ts +26 -0
  255. package/dist-elements/types/primitives/shared/tone.d.ts +18 -0
  256. package/dist-elements/types/primitives/skeleton/skeleton.d.ts +1 -1
  257. package/dist-elements/types/primitives/spinner/spinner.d.ts +1 -2
  258. package/dist-elements/types/primitives/status-dot/status-dot.d.ts +4 -5
  259. package/dist-elements/types/primitives/tile/tile.d.ts +17 -5
  260. package/dist-elements/types/primitives/tooltip/tooltip.d.ts +6 -6
  261. package/dist-elements/types/types.d.ts +70 -10
  262. package/dist-icons/functioneel-kolommen.svg +1 -0
  263. package/dist-icons/functioneel-trechter.svg +1 -0
  264. package/package.json +1 -1
  265. package/dist-elements/chunks/confirm-dialog-D5EVGuil.js +0 -4
  266. package/dist-elements/chunks/download-y528pIHP.js +0 -230
  267. package/dist-elements/chunks/input-BtuNFSWk.js +0 -195
  268. package/dist-elements/tag/confirm-dialog.d.ts +0 -1
  269. package/dist-elements/tag/confirm-dialog.js +0 -118
  270. package/dist-elements/tag/session-expiry.d.ts +0 -1
  271. package/dist-elements/tag/session-expiry.js +0 -184
  272. package/dist-elements/tag/shortcuts.d.ts +0 -1
  273. package/dist-elements/tag/shortcuts.js +0 -104
  274. package/dist-elements/types/components/frame/session-expiry/session-expiry.d.ts +0 -55
  275. package/dist-elements/types/components/frame/shortcuts/shortcuts.d.ts +0 -41
  276. package/dist-elements/types/components/overlays/confirm-dialog/confirm-dialog.d.ts +0 -41
@@ -1,19 +1,19 @@
1
- import { $ as e, Bt as t, Gt as n, Ht as r, Jt as i, Kt as a, Lt as o, S as s, V as c, Yt as l, a as u, d, et as f, g as p, k as m, p as h, qt as g, s as _, ut as ee, w as v } from "../chunks/base-Bg-IFOPG.js";
2
- import { n as te, nextRow as ne } from "./menu-button.js";
3
- import { t as re } from "./announcement.js";
4
- import { a as ie, c as ae, d as y, i as b, l as oe, n as x, o as se, s as S, t as C, u as w } from "../chunks/download-y528pIHP.js";
5
- import { _ as ce, d as T, l as E, m as D, n as O, r as k, v as A } from "../chunks/stagger-qGD3wmhg.js";
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 j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescriptor, le = Object.getOwnPropertyNames, ue = Object.getPrototypeOf, P = Object.prototype.hasOwnProperty, de = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), fe = (e, t, n, r) => {
8
- if (t && typeof t == "object" || typeof t == "function") for (var i = le(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !P.call(e, s) && s !== n && M(e, s, {
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 = N(t, s)) || r.enumerable
10
+ enumerable: !(r = A(t, s)) || r.enumerable
11
11
  });
12
12
  return e;
13
- }, pe = /* @__PURE__ */ ((e, t, n) => (n = e == null ? {} : j(ue(e)), fe(t || !e || !e.__esModule || !P.call(e, "default") ? M(n, "default", {
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__ */ de(((e, t) => {
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 ee(e, t) {
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 v = "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=";
94
- function te(e) {
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 ne = 0;
98
- function re(e) {
99
- var t = +/* @__PURE__ */ new Date(), n = Math.max(0, 16 - (t - ne));
100
- return ne = t + n, window.setTimeout(e, n);
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 ie = window.requestAnimationFrame || te("RequestAnimationFrame") || re, ae = window.cancelAnimationFrame || te("CancelAnimationFrame") || te("CancelRequestAnimationFrame") || function(e) {
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 y(e, t, n) {
106
- if (n && ie === re) e.call(t);
107
- else return ie.call(window, i(e, t));
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 b(e) {
110
- e && ae.call(window, e);
109
+ function x(e) {
110
+ e && ie.call(window, e);
111
111
  }
112
- var oe = {
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: ee,
132
- emptyImageUrl: v,
133
- requestFn: ie,
134
- cancelFn: ae,
135
- requestAnimFrame: y,
136
- cancelAnimFrame: b
131
+ indexOf: v,
132
+ emptyImageUrl: y,
133
+ requestFn: re,
134
+ cancelFn: ie,
135
+ requestAnimFrame: b,
136
+ cancelAnimFrame: x
137
137
  };
138
- function x() {}
139
- x.extend = function(e) {
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 && (se(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() {
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
- }, x.include = function(e) {
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
- }, x.mergeOptions = function(e) {
153
+ }, S.mergeOptions = function(e) {
154
154
  return n(this.prototype.options, e), this;
155
- }, x.addInitHook = function(e) {
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 se(e) {
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 S = {
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
- S.addEventListener = S.on, S.removeEventListener = S.clearAllEventListeners = S.off, S.addOneTimeEventListener = S.once, S.fireEvent = S.fire, S.hasEventListeners = S.listens;
273
- var C = x.extend(S);
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 ? z.svg ? "z" : "x" : "";
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 = R("webkit"), be = R("android"), xe = R("android 2") || R("android 3"), Se = parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10), Ce = be && R("Google") && Se < 537 && !("AudioNode" in window), we = !!window.opera, I = !ye && R("chrome"), Te = R("gecko") && !F && !we && !_e, Ee = !I && R("safari"), De = R("phantom"), Oe = "OTransition" in ge, ke = navigator.platform.indexOf("Win") === 0, Ae = _e && "transition" in ge, je = "WebKitCSSMatrix" in window && "m11" in new window.WebKitCSSMatrix() && !xe, Me = "MozPerspective" in ge, Ne = !window.L_DISABLE_3D && (Ae || je || Me) && !Oe && !De, Pe = typeof orientation < "u" || R("mobile"), Fe = Pe && F, Ie = Pe && je, Le = !window.PointerEvent && window.MSPointerEvent, Re = !!(window.PointerEvent || Le), ze = "ontouchstart" in window || !!window.TouchEvent, Be = !window.L_NO_TOUCH && (ze || Re), Ve = Pe && we, He = Pe && Te, Ue = (window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI) > 1, We = function() {
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
- }(), Ge = function() {
621
+ }(), We = function() {
622
622
  return !!document.createElement("canvas").getContext;
623
- }(), Ke = !!(document.createElementNS && me("svg").createSVGRect), qe = !!Ke && (function() {
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
- })(), Je = !Ke && function() {
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
- }(), Ye = navigator.platform.indexOf("Mac") === 0, Xe = navigator.platform.indexOf("Linux") === 0;
636
- function R(e) {
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 z = {
639
+ var B = {
640
640
  ie: _e,
641
641
  ielt9: ve,
642
642
  edge: ye,
643
643
  webkit: F,
644
- android: be,
645
- android23: xe,
646
- androidStock: Ce,
647
- opera: we,
648
- chrome: I,
649
- gecko: Te,
650
- safari: Ee,
651
- phantom: De,
652
- opera12: Oe,
653
- win: ke,
654
- ie3d: Ae,
655
- webkit3d: je,
656
- gecko3d: Me,
657
- any3d: Ne,
658
- mobile: Pe,
659
- mobileWebkit: Fe,
660
- mobileWebkit3d: Ie,
661
- msPointer: Le,
662
- pointer: Re,
663
- touch: Be,
664
- touchNative: ze,
665
- mobileOpera: Ve,
666
- mobileGecko: He,
667
- retina: Ue,
668
- passiveEvents: We,
669
- canvas: Ge,
670
- svg: Ke,
671
- vml: Je,
672
- inlineSvg: qe,
673
- mac: Ye,
674
- linux: Xe
675
- }, Ze = z.msPointer ? "MSPointerDown" : "pointerdown", B = z.msPointer ? "MSPointerMove" : "pointermove", Qe = z.msPointer ? "MSPointerUp" : "pointerup", $e = z.msPointer ? "MSPointerCancel" : "pointercancel", et = {
676
- touchstart: Ze,
677
- touchmove: B,
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(Ze, ot, !0), document.addEventListener(B, st, !0), document.addEventListener(Qe, ct, !0), document.addEventListener($e, ct, !0), !0);
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] = (z.ie3d ? "translate(" + r.x + "px," + r.y + "px)" : "translate3d(" + r.x + "px," + r.y + "px,0)") + (n ? " scale(" + n + ")" : "");
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, z.any3d ? kt(e, t) : (e.style.left = t.x + "px", e.style.top = t.y + "px");
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 ee(t, e) !== -1;
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
- !z.touchNative && z.pointer && t.indexOf("touch") === 0 ? a = it(e, t, a) : z.touch && t === "dblclick" ? a = mt(e, a) : "addEventListener" in e ? t === "touchstart" || t === "touchmove" || t === "wheel" || t === "mousewheel" ? e.addEventListener(Kt[t] || t, a, z.passiveEvents ? { passive: !1 } : !1) : t === "mouseenter" || t === "mouseleave" ? (a = function(t) {
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
- !z.touchNative && z.pointer && t.indexOf("touch") === 0 ? at(e, t, a) : z.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;
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 = z.linux && z.chrome ? window.devicePixelRatio : z.mac ? window.devicePixelRatio * 3 : window.devicePixelRatio > 0 ? 2 * window.devicePixelRatio : 1;
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 z.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;
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 = C.extend({
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 = y(this._animate, this), this._step();
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
- b(this._animId), this._inProgress = !1, this.fire("end");
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 = C.extend({
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 && z.any3d && !z.mobileOpera && this.options.zoomAnimation, this._zoomAnimated && (this._createAnimProxy(), q(this._proxy, vt, this._catchTransitionEnd, this)), this._addLayers(this.options.layers);
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 ||= z.any3d ? this.options.zoomDelta : 1, this.setZoom(this._zoom + e, t);
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 ||= z.any3d ? this.options.zoomDelta : 1, this.setZoom(this._zoom - e, t);
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 || !z.any3d) return this.setView(e, t, n);
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 ee(e) {
1144
+ function v(e) {
1145
1145
  return s * (m(g) * h(g + u * e) - p(g)) / d;
1146
1146
  }
1147
- function v(e) {
1147
+ function y(e) {
1148
1148
  return 1 - (1 - e) ** 1.5;
1149
1149
  }
1150
- var te = Date.now(), ne = (f(1) - g) / u, re = n.duration ? 1e3 * n.duration : 1e3 * ne * .8;
1151
- function ie() {
1152
- var n = (Date.now() - te) / re, a = v(n) * ne;
1153
- n <= 1 ? (this._flyToFrame = y(ie, this), this._move(this.unproject(r.add(i.subtract(r).multiplyBy(ee(a) / l)), o), this.getScaleZoom(s / _(a), o), { flyTo: !0 })) : this._move(e, t)._moveEnd(!0);
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), ie.call(this), this;
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 &&= (b(this._resizeRequest), null), this._clearHandlers(), this._loaded && this.fire("unload"), this._layers) this._layers[e].remove();
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 = z.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);
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 && z.any3d, U(e, "leaflet-container" + (z.touch ? " leaflet-touch" : "") + (z.retina ? " leaflet-retina" : "") + (z.ielt9 ? " leaflet-oldie" : "") + (z.safari ? " leaflet-safari" : "") + (this._fadeAnimated ? " leaflet-fade-anim" : ""));
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 b(this._flyToFrame), this._panAnim && this._panAnim.stop(), this;
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), z.any3d && this.options.transform3DLimit && (e ? this.off : this.on).call(this, "moveend", this._onMoveEnd);
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
- b(this._resizeRequest), this._resizeRequest = y(function() {
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 && ee(this._mouseEvents, t) !== -1) return;
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 = z.any3d ? this.options.zoomSnap : 1;
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 : (y(function() {
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 = x.extend({
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\">" + (z.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>"
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 = x.extend({
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: S }, vn = z.touch ? "touchstart mousedown" : "mousedown", yn = C.extend({
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 $ = C.extend({
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 = x.extend({
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 z.retina && this.options[e + "RetinaUrl"] || this.options[e + "Url"];
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 = y(this._adjustPan.bind(this, e));
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 && (b(this._panRequest), this._panRequest = y(this._adjustPan.bind(this, e)));
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
- b(this._panRequest), delete this._oldLatLng, this._marker.fire("moveend").fire("dragend", e);
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: z.mobile,
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 && !z.ielt9) {
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 && (b(this._fadeFrame), this._fadeFrame = y(this._updateOpacity, this));
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
- z.any3d ? kt(e.el, i, r) : K(e.el, i);
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, z.ielt9 && this.options.opacity < 1 && G(e, this.options.opacity);
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 && y(i(this._tileReady, this, e, null, a)), K(a, n), this._tiles[r] = {
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), b(this._fadeFrame), this._fadeFrame = y(this._updateOpacity, this)) : (n.active = !0, this._pruneTiles()), t || (U(n.el, "leaflet-tile-loaded"), this.fire("tileload", {
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"), z.ielt9 || !this._map._fadeAnimated ? y(this._pruneTiles, this) : setTimeout(i(this._pruneTiles, this), 250)));
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 && z.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);
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: z.retina ? "@2x" : "",
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
- z.ielt9 ? setTimeout(i(e, this, null, t), 0) : e(null, t);
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 = v;
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", v), Fr.prototype._removeTile.call(this, e);
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") === v)) return Fr.prototype._tileReady.call(this, e, t, n);
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 && z.retina ? 2 : 1, o = this.getTileSize();
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
- z.any3d ? kt(this._container, a, n) : K(this._container, a);
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
- b(this._redrawRequest), delete this._ctx, H(this._container), J(this._container), delete this._container;
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 = z.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", z.retina && this._ctx.scale(2, 2), this._ctx.translate(-e.min.x, -e.min.y), this.fire("update");
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 || y(this._redraw, this));
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 z.canvas ? new Hr(e) : null;
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 = z.vml ? Wr : me, qr = Vr.extend({
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
- z.vml && qr.include(Gr);
4146
+ B.vml && qr.include(Gr);
4147
4147
  function Jr(e) {
4148
- return z.svg || z.vml ? new qr(e) : null;
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), y(function() {
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: z.touchNative && z.safari && z.mobile,
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: z.touch,
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), b(this._animRequest);
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 = y(s, this, !0), Y(e);
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, b(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)));
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 = z, e.CRS = M, e.Canvas = Hr, e.Circle = ir, e.CircleMarker = nr, e.Class = x, e.Control = Z, e.DivIcon = Nr, e.DivOverlay = Or, e.DomEvent = an, e.DomUtil = Ut, e.Draggable = yn, e.Evented = C, 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 = oe, 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;
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), me = ".lintje-map-chart__layers, .lintje-map-chart__zoom, .lintje-map-chart__selection, .lintje-map-chart__scale-bar, .leaflet-control";
4545
- function he(e) {
4546
- return [...e.querySelectorAll(me)].map((e) => e.getBoundingClientRect()).filter((e) => e.width > 0 && e.height > 0);
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 ge = (e, t) => e.left < t.right && t.left < e.right && e.top < t.bottom && t.top < e.bottom, _e = (e, t) => e.left >= t.left && e.right <= t.right && e.top >= t.top && e.bottom <= t.bottom, ve = (e, t, n) => ({
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 ye(e, t, n, r) {
4554
+ function ge(e, t, n, r) {
4555
4555
  let i = (r, i) => {
4556
- let a = ve(e, r, i);
4557
- return _e(a, t) && !n.some((e) => ge(a, e));
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 F(e, t, n) {
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) => _e(r, e));
4581
+ return r.left >= r.right || r.top >= r.bottom || n.some((e) => me(r, e));
4582
4582
  }
4583
- function be(e) {
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 xe = {
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
- }, Se = (e) => Math.max(1, ...e.map((e) => e.value ?? 0)), Ce = (e) => {
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) : Se(e);
4600
+ return t.length ? Math.min(...t) : F(e);
4601
4601
  };
4602
- function we(e, t) {
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: xe[e.variant],
4609
+ name: ye[e.variant],
4610
4610
  unit: t,
4611
- max: Se(n),
4612
- min: Ce(n),
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 ?? xe[n.variant],
4623
+ name: n.label ?? ye[n.variant],
4624
4624
  unit: n.unit ?? t,
4625
- max: Se(i),
4626
- min: Ce(i),
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 I(e, t) {
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 Te = {
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 Ee(e) {
20621
- return Te[e ?? "world"] ?? Te.world;
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 De = 6371;
20626
- function Oe([e, t], [n, r]) {
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 * De * Math.asin(Math.min(1, Math.sqrt(s)));
20628
+ return 2 * Ce * Math.asin(Math.min(1, Math.sqrt(s)));
20629
20629
  }
20630
- function ke(e, [t, n]) {
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 Ae([e, t], [n, r]) {
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 je(e) {
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 Me = (e) => e.every(([t]) => t === e[0][0]) || e.every(([, t]) => t === e[0][1]);
20652
- function Ne(e, t) {
20653
- return e.kind === "circle" ? Oe(e.centre, t) <= e.radiusKm : e.ring.length > 2 && ke(e.ring, t);
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 Pe([e, t], [n, r], [i, a], [o, s]) {
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 Fe(e) {
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 Ie(e) {
20675
- if (e.kind === "lasso") return Fe(e.ring);
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 Le = ([e, t, n, r], [i, a, o, s]) => e >= i && n <= o && t >= a && r <= s;
20685
- function Re(e, t) {
20686
- if (t.length === 0 || !Le(Fe(t), Ie(e)) || !t.every((t) => Ne(e, t))) return !1;
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]) => !Pe(e, t, n, r)));
20689
+ return n(t).every(([e, t]) => r.every(([n, r]) => !Ae(e, t, n, r)));
20690
20690
  }
20691
- function ze(e, t) {
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 Be = /* @__PURE__ */ new Map();
20696
- function Ve(e) {
20697
- let t = e ?? "world", n = Be.get(t);
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 Ee(e).features) n.set(t.properties.id, t.geometry.coordinates.map((e) => e[0]));
20701
- return Be.set(t, n), n;
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 He(e, t, n, r) {
20703
+ function Re(e, t, n, r) {
20704
20704
  if (t.variant === "choropleth") {
20705
- let t = Ve(r).get(n.id);
20706
- return !!t?.length && t.every((t) => Re(e, 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 && Re(e, n.polygon);
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
- ze(i, r)
20719
- ].every((t) => Ne(e, t));
20718
+ Fe(i, r)
20719
+ ].every((t) => ke(e, t));
20720
20720
  }
20721
- return Ne(e, i);
20721
+ return ke(e, i);
20722
20722
  }
20723
- function Ue(e, t, n) {
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) && He(e, i, t, n) && r.push(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 We = [
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 Ge(e, t) {
20737
+ function Ve(e, t) {
20738
20738
  return t <= 0 ? 0 : Math.min(4, Math.floor(e / t * 5));
20739
20739
  }
20740
- var Ke = (e) => (e.polygon?.length ?? 0) > 2;
20741
- function qe(e, t) {
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 Je = (e, t) => `${e.index}:${t}`, Ye = (e, t) => e.active === t || e.chosen.has(t), Xe = (e, t, n) => `${Ye(e, t) ? "is-selected" : ""} ${n ? "is-off" : ""}`;
20745
- function R(e) {
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 z(e, t) {
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 Ze(e) {
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) => O(t.get(n.id) ?? 0, e.length);
20755
+ return (n) => T(t.get(n.id) ?? 0, e.length);
20756
20756
  }
20757
- var B = (e, t) => `${e.toFixed(2)} ${t.toFixed(2)}`;
20758
- function Qe(e, t) {
20759
- return t.tiled ? [] : e.map((e) => i`<path d=${e.d} class="lintje-map-chart__land" fill="var(--color-map-land)" />`);
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 $e(e, t) {
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"}${B(i, a)}`;
20764
+ return `${r ? "L" : "M"}${z(i, a)}`;
20765
20765
  }).join("") + "Z";
20766
20766
  }
20767
- function et(e, t, r, a) {
20768
- let { id: o, controller: s, select: c, project: l } = t, u = new Map(r.map((e) => [e.id, e.d])), d = (t) => e.variant === "choropleth" ? u.get(t.id) : Ke(t) ? $e(t.polygon, l) : void 0, f = e.values.filter((e) => d(e));
20769
- return h(f, (e) => e.id, (r) => {
20770
- let l = d(r), u = r.value == null, f = u ? "var(--color-chart-hatch)" : We[Ge(r.value, e.max)], p = u ? "geen gegevens" : I(_(r.value), e.unit);
20771
- return i`
20772
- <g class="lintje-map-chart__polygon is-clickable ${Xe(t, r.id, a)}"
20773
- data-mark-id=${r.id}
20774
- role="button" tabindex=${a ? -1 : 0} aria-hidden=${a ? "true" : n}
20775
- aria-pressed=${String(Ye(t, r.id))}
20776
- aria-label=${`${r.label}: ${p}${r.detail ? `, ${r.detail}` : ""}`}
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
- R(e), c(r);
20778
+ qe(e), o(n);
20779
20779
  }}
20780
- @dblclick=${R}
20781
- @mousemove=${(t) => s.showTooltip(t, {
20782
- title: `${r.label}${r.detail ? ` · ${r.detail}` : ""}`,
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: u ? "geen gegevens" : _(r.value),
20786
- color: f
20785
+ value: l ? "geen gegevens" : g(n.value),
20786
+ color: u
20787
20787
  }]
20788
20788
  })}
20789
- @mouseleave=${() => s.hideTooltip()}
20790
- @keydown=${z(c, r)}>
20791
- <path d=${l} class="lintje-map-chart__polygon-ring" />
20792
- <path d=${l}
20793
- class="lintje-map-chart__polygon-shape ${u ? "lintje-map-chart__polygon-shape--empty" : "lintje-map-chart__polygon-shape--data"}"
20794
- fill=${u ? n : f} />
20795
- ${u ? i`<path d=${l} class="lintje-map-chart__polygon-hatch" fill="url(#map-hatch-${o})" />` : n}
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 tt(e, t, r) {
20801
- let { controller: a, select: o, project: s } = t, c = e.destination;
20802
- if (!c) return n;
20803
- let l = e.values.filter((e) => e.lon != null && e.value != null), u = Ze(l), [d, f] = s(c.lon, c.lat);
20804
- return i`
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
- ${h(l, (e) => e.id, (l) => {
20807
- let [p, m] = s(l.lon, l.lat), h = (p + d) / 2, g = (m + f) / 2 - Math.hypot(d - p, f - m) * .18, v = 1 + l.value / e.max * 7, te = `${l.label} → ${c.label}`;
20808
- return i`
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${B(p, m)}Q${B(h, g)} ${B(d, f)}`}
20810
+ d=${`M${z(u, m)}Q${z(_, v)} ${z(f, p)}`}
20811
20811
  pathLength="1"
20812
- ${ee(u(l))}
20813
- class="lintje-map-chart__flow is-clickable ${Xe(t, l.id, r)}"
20814
- stroke-width=${v}
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=${r ? -1 : 0} aria-hidden=${r ? "true" : n}
20817
- aria-pressed=${String(Ye(t, l.id))}
20818
- aria-label=${`${te}: ${I(_(l.value), e.unit)}${l.detail ? `, ${l.detail}` : ""}`}
20819
- @keydown=${z(o, l)}
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
- R(e), o(l);
20821
+ qe(e), i(l);
20822
20822
  }}
20823
- @dblclick=${R}
20824
- @mousemove=${(t) => a.showTooltip(t, {
20825
- title: `${te}${l.detail ? ` · ${l.detail}` : ""}`,
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: _(l.value),
20829
- color: T
20828
+ value: g(l.value),
20829
+ color: se
20830
20830
  }]
20831
20831
  })}
20832
- @mouseleave=${() => a.hideTooltip()} />
20832
+ @mouseleave=${() => r.hideTooltip()} />
20833
20833
  `;
20834
20834
  })}
20835
- <g class="lintje-map-chart__symbol" data-at=${B(d, f)}>
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 nt(e, t, r) {
20842
- let { id: a, controller: o, select: s, project: c, hidden: l } = t, u = e.values.filter((e) => e.lon != null), d = (t) => r || !!(t.series && l.has(Je(e, t.series))), f = Ze(u);
20843
- return h(u, (e) => e.id, (r) => {
20844
- let [l, u] = c(r.lon, r.lat), p = e.variant === "points" && r.value != null ? qe(r.value, e.max) : 6, m = D(r.series), h = r.series && e.seriesLabels?.[r.series] || void 0, g = r.value == null ? "geen gegevens" : I(_(r.value), e.unit), v = ce(r.series, p);
20845
- return i`
20846
- <g ${ee(f(r))}
20847
- class="lintje-map-chart__point lintje-map-chart__symbol ${Xe(t, r.id, d(r))}"
20848
- data-at=${B(l, u)}
20849
- data-mark-id=${r.id}
20850
- role="button" tabindex=${d(r) ? -1 : 0} aria-hidden=${d(r) ? "true" : n}
20851
- aria-pressed=${String(Ye(t, r.id))}
20852
- aria-label=${`${r.label}: ${g}${h ? `, ${h}` : ""}`}
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
- R(e), s(r);
20854
+ qe(e), a(n);
20855
20855
  }}
20856
- @dblclick=${R}
20857
- @mousemove=${(t) => o.showTooltip(t, {
20858
- title: h ? `${r.label} · ${h}` : r.label,
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: r.value == null ? "geen gegevens" : _(r.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=${() => o.hideTooltip()}
20866
- @keydown=${z(s, r)}>
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=${v} class="lintje-map-chart__point-ring" />
20871
- <path d=${v}
20872
- class="lintje-map-chart__point-shape ${r.value == null ? "lintje-map-chart__point-shape--empty" : m ? "lintje-map-chart__point-shape--series" : ""}"
20873
- ${ee({ "--lintje-series": m })} />
20874
- ${r.value == null ? i`<path d=${v} class="lintje-map-chart__point-hatch" fill="url(#map-hatch-${a})" />` : n}
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 rt([e, t], n, r = 72) {
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 it(e, t, r = !1) {
20891
- if (!e) return n;
20892
- let a = `lintje-map-chart__region ${r ? "lintje-map-chart__region--draft" : ""}`;
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 [r, o] = t(...e.centre), s = e.radiusKm > 0 ? rt(e.centre, e.radiusKm).map(([e, n], r) => {
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"}${B(i, a)}`;
20896
+ return `${r ? "L" : "M"}${z(i, a)}`;
20897
20897
  }).join("") + "Z" : "";
20898
- return i`
20899
- ${s ? i`<path class=${a} d=${s} />` : n}
20900
- <g class="lintje-map-chart__symbol" data-at=${B(r, o)}>
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 n;
20906
- let o = e.ring.map(([e, n], r) => {
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"}${B(i, a)}`;
20909
- }).join("") + (r && !je(e.ring) ? "" : "Z");
20910
- return i`<path class=${a} d=${o} />`;
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 at(e, t, n, r = null) {
20913
- return i`
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
- ${Qe(e, n)}
20921
- ${h(t, (e) => e.index, (t) => {
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" ? et(t, n, e, r) : t.variant === "flows" ? tt(t, n, r) : nt(t, n, r);
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
- ${it(r, n.project)}
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 ot = "<a href=\"https://leafletjs.com\" title=\"A JavaScript library for interactive maps\">Leaflet</a>", st = [8, 8], ct = 3, lt = "http://www.w3.org/2000/svg";
20931
- function ut([, e]) {
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 dt = 4, ft = 10;
20935
- function pt(e, t) {
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 mt(e) {
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 ht(e) {
20947
+ function pt(e) {
20948
20948
  let t = [];
20949
20949
  for (let n = 0; n <= 16; n++) {
20950
- let r = mt(n / 16);
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 gt(e) {
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 pe.latLngBounds([n, t], [i, r]);
20962
+ return P.latLngBounds([n, t], [i, r]);
20963
20963
  }
20964
- function _t(e, t) {
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 vt = class {
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 = "", this.#u = "", this.#d = null, this.#f = !1, this.#p = 0, this.#m = [], this.#h = {
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.#g = null, this.attach = (e) => {
21010
- e !== this.#t && (this.destroy(), e instanceof HTMLElement && (this.#t = e, this.#c = new ResizeObserver(() => this.#_()), this.#c.observe(e), this.#_()));
21011
- }, this.#E = (e, t) => {
21012
- let n = this.#n.project([t, e], this.#p);
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.#H = (e) => {
21015
- e.key === "Escape" && this.#h.tool && (e.stopPropagation(), e.preventDefault(), this.#s ? this.#U() : this.#h.stopTool());
21016
- }, this.#K = 0, this.#e = e;
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.#g = e, this.#h = t, this.#t && this.#n ? this.#v(e) : 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.#C()) : this.#g && this.#v(this.#g));
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.#f) return null;
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.#d && this.#n.fitBounds(this.#d, { padding: st });
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.#H, !0), this.#c?.disconnect(), this.#c = null, this.#n?.remove(), this.#n = null, this.#r = null, this.#i = null, this.#a = null, this.#o = null, this.#s = null, this.#l = "", this.#u = "", this.#m = [], this.#f = !1, this.#t = null;
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
- #v(e) {
21058
- let t = this.#y(), n = this.#h.tool != null, { drag: r, zoom: i } = this.#h;
21059
- this.#h.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.#U(), n ? document.addEventListener("keydown", this.#H, !0) : document.removeEventListener("keydown", this.#H, !0), this.#x(t, e.geo ?? "world"), e.basemap ? this.#D(t, e.basemap) : this.#O(t), this.#A(t, e);
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
- #y() {
21081
+ #x() {
21062
21082
  if (this.#n) return this.#n;
21063
- let e = this.#t, t = pe.map(e, {
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.#j(), this.#T(), this.#h.scale && this.#e.requestUpdate();
21072
- }), t.on("zoomend", () => this.#w()), t.on("zoomanim", (e) => this.#M(e.zoom)), t.on("click", () => this.#h.clear()), e.addEventListener("pointerdown", (e) => this.#P(e), !0), e.addEventListener("pointermove", (e) => this.#F(e), !0), e.addEventListener("pointerup", (e) => this.#I(e), !0), e.addEventListener("click", (e) => this.#z(e), !0), e.addEventListener("dblclick", (e) => this.#B(e), !0), pe.svg({ padding: .5 }).addTo(t), this.#n = t, t;
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
- #b(e) {
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(lt, "g");
21079
- n.setAttribute("class", "lintje-map-chart__data"), n.addEventListener("focusin", (e) => this.#Y(e.target)), n.addEventListener("keydown", (e) => {
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.#Y(t));
21102
+ requestAnimationFrame(() => this.#Z(t));
21083
21103
  }), t.append(n), this.#a = n;
21084
- let r = document.createElementNS(lt, "g");
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
- #x(e, t) {
21088
- t !== this.#u && (this.#u && (this.#e.leafletView = null), this.#u = t, this.#d = gt(Te[t] ?? Te.world), this.#f = !1, this.#S(), this.#p = e.getZoom(), this.#m = _t(Te[t] ?? Te.world, this.#E));
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
- #S() {
21110
+ #w() {
21091
21111
  let e = this.#n;
21092
- if (this.#f || !e || !this.#d) return;
21093
- this.#f = !0, this.#C();
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.#d, { padding: st }), this.#w();
21115
+ t ? e.setView([t.lat, t.lon], t.zoom, { animate: !1 }) : e.fitBounds(this.#f, { padding: it }), this.#E();
21096
21116
  }
21097
- #C() {
21117
+ #T() {
21098
21118
  let e = this.#n;
21099
- if (!e || !this.#d) return;
21100
- let t = e.getBoundsZoom(this.#d, !1, pe.point(st));
21101
- e.setMinZoom(t), e.setMaxZoom(t + ct), this.#w();
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
- #w() {
21123
+ #E() {
21104
21124
  let e = this.#n;
21105
- if (!e || !this.#d) return;
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.#d.getNorthWest(), t).subtract(n), i = e.project(this.#d.getSouthEast(), t).add(n);
21109
- e.setMaxBounds(pe.latLngBounds(e.unproject(r, t), e.unproject(i, t)));
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
- #T() {
21131
+ #D() {
21112
21132
  let e = this.#n;
21113
- if (!e || !this.#f) return;
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
- #E;
21122
- #D(e, t) {
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.#l || (this.#r && e.removeLayer(this.#r), this.#l = n, this.#i ??= pe.control.attribution({ prefix: ot }).addTo(e), this.#r = pe.tileLayer.wms(t.url, {
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
- #O(e) {
21141
- this.#r && e.removeLayer(this.#r), this.#r = null, this.#l = "", this.#i?.remove(), this.#i = null;
21160
+ #A(e) {
21161
+ this.#r && e.removeLayer(this.#r), this.#r = null, this.#u = "", this.#i?.remove(), this.#i = null;
21142
21162
  }
21143
- #k(e) {
21144
- return we(e, this.#h.unit).filter((e) => !this.#h.hiddenLayers.includes(e.index));
21163
+ #j(e) {
21164
+ return be(e, this.#g.unit).filter((e) => !this.#g.hiddenLayers.includes(e.index));
21145
21165
  }
21146
- #A(e, t) {
21147
- let n = this.#b(e);
21148
- n && (a(at(this.#m, we(t, this.#h.unit), {
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.#h.active,
21170
+ active: this.#g.active,
21151
21171
  controller: this.#e,
21152
- select: this.#h.select,
21153
- project: this.#E,
21172
+ select: this.#g.select,
21173
+ project: this.#O,
21154
21174
  tiled: !!t.basemap,
21155
- hidden: new Set(this.#h.hidden),
21156
- hiddenLayers: new Set(this.#h.hiddenLayers),
21157
- chosen: new Set(this.#h.chosen)
21158
- }, this.#h.area), n), n.classList.toggle("has-area", this.#h.area != null), n.classList.toggle("has-selection", this.#h.area != null || this.#h.active != null), this.#j(e));
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
- #j(e = this.#n) {
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.#p), r = e.getPixelOrigin(), i = `translate(${-r.x} ${-r.y}) scale(${n})`;
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.#W()) e.style.transitionTimingFunction = "", e.style.transform = pt(e, a);
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
- #M(e) {
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.#p), a = ht(r);
21173
- for (let e of this.#W()) e.style.transitionTimingFunction = a, e.style.transform = pt(e, i);
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
- #N(e) {
21195
+ #F(e) {
21176
21196
  let t = this.#n.mouseEventToLatLng(e);
21177
21197
  return [t.lng, t.lat];
21178
21198
  }
21179
- #P(e) {
21180
- let t = this.#h.tool;
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.#N(e), r = this.#s;
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.#G();
21222
+ }, e.target.setPointerCapture?.(e.pointerId), this.#q();
21203
21223
  }
21204
- #F(e) {
21224
+ #L(e) {
21205
21225
  let t = this.#s;
21206
21226
  if (!t || !this.#n) return;
21207
21227
  e.stopPropagation();
21208
- let n = this.#N(e), { area: r, press: i } = t;
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) < dt) return;
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(Oe(r.centre, n), ut(r.centre)) : t.corner ? r.ring = Ae(t.corner, n) : i ? r.ring.push(n) : this.#G(n), (r.kind === "circle" || t.corner || i) && this.#G();
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
- #I(e) {
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.#V();
21240
+ if (t.press = null, r) return this.#U();
21221
21241
  if (n.kind === "circle") {
21222
- n.radiusKm > 0 && this.#V();
21242
+ n.radiusKm > 0 && this.#U();
21223
21243
  return;
21224
21244
  }
21225
- let i = this.#N(e);
21226
- if (t.corner) this.#L(t.corner, i) && (n.ring = Ae(t.corner, i), this.#V());
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.#R(e)) return this.#V();
21229
- (n.ring.length > 1 || this.#L(n.ring[0], i)) && n.ring.push(i), this.#G();
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
- #L(e, t) {
21252
+ #z(e, t) {
21233
21253
  return e[0] !== t[0] || e[1] !== t[1];
21234
21254
  }
21235
- #R(e) {
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)) <= ft;
21259
+ return t.latLngToContainerPoint([i, r]).distanceTo(t.mouseEventToContainerPoint(e)) <= ut;
21240
21260
  }
21241
- #z(e) {
21242
- this.#h.tool && e.stopPropagation();
21261
+ #V(e) {
21262
+ this.#g.tool && e.stopPropagation();
21243
21263
  }
21244
- #B(e) {
21245
- if (!this.#h.tool) return;
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.#V();
21268
+ t?.kind === "lasso" && t.ring.length > 2 && this.#U();
21249
21269
  }
21250
- #V() {
21270
+ #U() {
21251
21271
  let e = this.#s?.area;
21252
- this.#U(), e && (e.kind === "lasso" ? e.ring.length > 2 && !Me(e.ring) : e.radiusKm > 0) && this.#h.drawn(e);
21272
+ this.#G(), e && (e.kind === "lasso" ? e.ring.length > 2 && !Oe(e.ring) : e.radiusKm > 0) && this.#g.drawn(e);
21253
21273
  }
21254
- #H;
21255
- #U() {
21256
- this.#s = null, this.#o && a(n, this.#o), cancelAnimationFrame(this.#K), this.#J(null);
21274
+ #W;
21275
+ #G() {
21276
+ this.#s = null, this.#o && _(s, this.#o), cancelAnimationFrame(this.#J), this.#X(null);
21257
21277
  }
21258
- #W() {
21278
+ #K() {
21259
21279
  return [this.#a, this.#o].flatMap((e) => e ? [...e.querySelectorAll(".lintje-map-chart__symbol")] : []);
21260
21280
  }
21261
- #G(e) {
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
- a(it(n, this.#E, !0), this.#o), this.#j(), this.#q(n);
21288
+ _(tt(n, this.#O, !0), this.#o), this.#N(), this.#Y(n);
21269
21289
  }
21270
- #K;
21271
- #q(e) {
21272
- cancelAnimationFrame(this.#K), this.#K = requestAnimationFrame(() => this.#J(e));
21290
+ #J;
21291
+ #Y(e) {
21292
+ cancelAnimationFrame(this.#J), this.#J = requestAnimationFrame(() => this.#X(e));
21273
21293
  }
21274
- #J(e) {
21275
- let t = this.#a, n = this.#g;
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 ? Ue(e, this.#k(n), n.geo) : []);
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
- #Y(e) {
21301
+ #Z(e) {
21282
21302
  let t = this.#n, n = this.#t;
21283
- if (!t || !n || !be(e)) return;
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 ? he(n.parentElement).map((e) => ({
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 = !p(), u = ye(a, s, c, 8);
21300
- u ? (u[0] || u[1]) && t.panBy([-u[0], -u[1]], { animate: l }) : F(a, s, c) && t.panBy([(a.left + a.right) / 2 - o.x / 2, (a.top + a.bottom) / 2 - o.y / 2], { 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 yt(e) {
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 bt(e) {
21314
- return Math.abs(e) >= 1e4 ? u(e) : _(e, +!Number.isInteger(e));
21333
+ function vt(e) {
21334
+ return Math.abs(e) >= 1e4 ? a(e) : g(e, +!Number.isInteger(e));
21315
21335
  }
21316
- function V(e, t) {
21336
+ function yt(e, t) {
21317
21337
  let { max: n, unit: r } = e;
21318
- if (!t) return g`<span class="lintje-map-legend__key">
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">${We.map((e) => g`<i ${ee({ background: e })}></i>`)}</span>
21321
- <span class="lintje-map-legend__figure">${I(u(n), r)}</span>
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 = yt(n), a = We.map((e, t) => ({
21324
- label: I(`${bt(i[t])} – ${bt(i[t + 1])}`, t === 4 ? r : ""),
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 g`<span class="lintje-map-legend__key lintje-map-legend__classes">${E({ items: a })}</span>`;
21348
+ return f`<span class="lintje-map-legend__key lintje-map-legend__classes">${w({ items: s })}</span>`;
21329
21349
  }
21330
- function H(e, t) {
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 xt(e, t) {
21343
- let { min: n, max: r, unit: a } = e, o = I(`${u(n)} – ${u(r)}`, a);
21344
- if (!t || n >= r) return g`<span class="lintje-map-legend__key">
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 = H(n, r), c = [
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 = qe(e, r);
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: I(u(e), t === 0 ? a : "")
21384
+ label: R(a(e), t === 0 ? i : "")
21365
21385
  };
21366
21386
  });
21367
- return g`<span class="lintje-map-legend__key">
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 }) => i`
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 St(e) {
21396
+ function H(e) {
21377
21397
  let { min: t, max: n, unit: r } = e;
21378
- return g`<span class="lintje-map-legend__key">
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">${I(`${u(t)} – ${u(n)}`, r)}</span>
21400
+ <span class="lintje-map-legend__figure">${R(`${a(t)} – ${a(n)}`, r)}</span>
21381
21401
  </span>`;
21382
21402
  }
21383
- function Ct(e, t) {
21403
+ function xt(e, t) {
21384
21404
  let { variant: n } = e;
21385
- return n === "choropleth" || n === "polygons" ? V(e, t) : n === "flows" ? St(e) : xt(e, t);
21405
+ return n === "choropleth" || n === "polygons" ? yt(e, t) : n === "flows" ? H(e) : V(e, t);
21386
21406
  }
21387
- function wt(e, t) {
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 = Je(e, r);
21411
+ let a = We(e, r);
21392
21412
  n.push({
21393
21413
  key: a,
21394
21414
  label: i,
21395
- color: D(r),
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 U(e) {
21408
- let { drawings: t, hiddenLayers: r, hiddenSeries: i, expanded: a, mobile: o, open: s } = e, c = !a && !s && t.length > 3, l = c ? t.slice(0, 3) : t, u = ["lintje-map-legend", o ? "lintje-map-legend--narrow" : ""].join(" ");
21409
- return g`
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 o = r.includes(t.index), s = wt(t, i).map((e) => o ? {
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 g`
21418
- <button type="button" class="lintje-map-legend__layer ${o ? "is-off" : ""}"
21419
- aria-pressed=${!o} @click=${() => e.onLayer(t.index)}>
21420
- <span class="lintje-map-legend__box" aria-hidden="true">${f("functioneel-vinkje", { size: 10 })}</span>
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 ${o ? "is-off" : ""}">
21424
- ${Ct(t, a)}
21425
- ${s.length > 0 ? g`<span class="lintje-map-legend__rule" aria-hidden="true"></span>${E({
21426
- items: s,
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
- })}` : n}
21448
+ })}` : s}
21429
21449
  </div>
21430
21450
  `;
21431
21451
  })}
21432
- ${!a && t.length > 3 ? g`<button type="button" class="lintje-map-legend__more" aria-expanded=${!c}
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
- ${f("functioneel-delta-omlaag", {
21455
+ ${v("functioneel-delta-omlaag", {
21436
21456
  size: 12,
21437
21457
  rotate: c ? void 0 : 180
21438
21458
  })}
21439
- </button>` : n}
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 W = {
21465
+ var wt = {
21446
21466
  desktop: 400,
21447
21467
  mobile: 280
21448
- }, Tt = {
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
- }, Et = [
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
- ], G = {
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
- }, Dt = 200, Ot = 1500;
21491
- function kt(e) {
21510
+ }, Et = 200, G = 1500;
21511
+ function Dt(e) {
21492
21512
  return e.ctrlKey || e.metaKey;
21493
21513
  }
21494
- function K(e) {
21495
- return -(e.deltaMode === 1 ? e.deltaY * 16 : e.deltaMode === 2 ? e.deltaY * 400 : e.deltaY) / Dt;
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 At() {
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 jt(e) {
21502
- e.mapHint = At(), e.mapHintTimer && clearTimeout(e.mapHintTimer), e.mapHintTimer = setTimeout(() => {
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
- }, Ot), e.requestUpdate();
21524
+ }, G), e.requestUpdate();
21505
21525
  }
21506
- function Mt(e) {
21526
+ function At(e) {
21507
21527
  let t = e >= 1e3, n = t ? e / 1e3 : e;
21508
- return `${_(n, +!Number.isInteger(n))} ${t ? "km" : "m"}`;
21528
+ return `${g(n, +!Number.isInteger(n))} ${t ? "km" : "m"}`;
21509
21529
  }
21510
- function Nt(e) {
21511
- return e.kind === "circle" ? `binnen ${_(Math.round(e.radiusKm * 10) / 10)} km` : je(e.ring) ? "binnen de rechthoek" : "binnen de getekende lijn";
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 Pt(e, t) {
21514
- let { controller: r, description: i = e.description, mobile: a = !1, onSelect: o, onClear: s, onLayerChange: l, onArea: u } = t, { unit: p = "aantal", selectedId: m = null, selectedArea: h = null, layers: v, layer: te, basemap: re, selectLabel: ie = "Zet als bereik" } = e, ae = !!t.expanded, y = {
21515
- ...Tt,
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
- }, b = Et.filter((e) => y[e.tool]);
21518
- r.mapTool && !y[r.mapTool] && (r.mapTool = null), r.mapLastTool && !y[r.mapLastTool] && (r.mapLastTool = null), r.measure(ae ? {
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: !a
21541
+ fit: !i
21522
21542
  } : {});
21523
- let x = ae ? r.height : t.height ?? e.height ?? (a ? W.mobile : W.desktop), se = we(e, p);
21524
- r.hostSelection !== m && (r.hostSelection = m, r.mapSelection = m);
21525
- let S = JSON.stringify(h);
21526
- r.hostArea !== S && (r.hostArea = S, r.mapArea = h);
21527
- let C = b.length > 0 ? r.mapArea : null, T = C ? Ue(C, se, e.geo) : [], E = r.mapSelection, O = /* @__PURE__ */ new Map(), A = /* @__PURE__ */ new Map();
21528
- for (let e of se) for (let t of e.values) O.set(t.id, t), A.set(t.id, e);
21529
- let j = E ? O.get(E) : void 0, M = j ? A.get(j.id) : void 0, N = (e) => e.series && A.get(e.id)?.seriesLabels?.[e.series] || void 0, le = r.hiddenLayers, ue = r.hiddenSeries, P = () => {
21530
- let e = r.mapSelection;
21531
- e != null && (r.mapSelection = null, s?.(e), r.requestUpdate());
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
- r.mapArea && (r.mapArea = null, u?.(null, []), r.requestUpdate());
21553
+ n.mapArea && (n.mapArea = null, u?.(null, []), n.requestUpdate());
21534
21554
  }, fe = (e) => {
21535
- if (e.id === E) return P();
21536
- r.mapSelection = e.id, o?.(e), r.requestUpdate();
21555
+ if (e.id === O) return P();
21556
+ n.mapSelection = e.id, a?.(e), n.requestUpdate();
21537
21557
  }, pe = (t) => {
21538
- r.mapArea = t, u?.(t, Ue(t, se, e.geo)), r.requestUpdate();
21558
+ n.mapArea = t, u?.(t, ze(t, se, e.geo)), n.requestUpdate();
21539
21559
  }, me = (e) => {
21540
- r.mapTool = e, e && (r.mapLastTool = e), r.requestUpdate();
21560
+ n.mapTool = e, e && (n.mapLastTool = e), n.requestUpdate();
21541
21561
  };
21542
- if (j && M && (j.series && ue.includes(Je(M, j.series)) || le.includes(M.index))) return P(), Pt(e, t);
21543
- let he = r.leaflet ??= new vt(r);
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: p,
21546
- active: E,
21565
+ unit: d,
21566
+ active: O,
21547
21567
  hidden: ue,
21548
21568
  hiddenLayers: le,
21549
- area: C,
21550
- chosen: T,
21551
- tool: r.mapTool,
21552
- drag: y.drag,
21553
- zoom: y.zoom,
21554
- scale: y.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: a
21579
+ mobile: i
21560
21580
  });
21561
- let ge = oe.filter((e) => e.action === "home" ? y.reset : y.zoom), _e = y.scale ? he.scaleBar() : null, ve = (e) => {
21562
- e === "in" ? he.zoomIn() : e === "out" ? he.zoomOut() : (r.mapTool = null, P(), de(), he.home());
21563
- }, ye = `${r.id}-tools`, F = Et.find((e) => e.tool === (r.mapTool ?? r.mapLastTool ?? b[0]?.tool)), be = b.map((e) => ({
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
- r.mapMenuOpen = e, r.mapMenuFocus = e ? t : null, r.requestUpdate();
21571
- }, Se = () => r.element?.querySelector(".lintje-map-chart__tool"), Ce = (e) => {
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
- }, Te = (e) => [...e.querySelectorAll(".lintje-menu__row")], Ee = (e) => {
21574
- let t = e.currentTarget, n = Te(t), r = t.getRootNode().activeElement, i = n.findIndex((e) => e === r), a = (e) => {
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(ne(be, i, 1));
21579
- case "ArrowUp": return e.preventDefault(), a(ne(be, i < 0 ? be.length : i, -1));
21580
- case "Home": return e.preventDefault(), a(ne(be, -1, 1));
21581
- case "End": return e.preventDefault(), a(ne(be, be.length, -1));
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
- }, De = (e) => {
21586
- let t = r.mapMenuFocus;
21587
- e && t && (r.mapMenuFocus = null, (e.closest("lintje-popover")?.updateComplete ?? Promise.resolve()).then(() => {
21588
- let n = Te(e);
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
- }, Oe = (e) => {
21611
+ }, De = (e) => {
21592
21612
  Ce(!0), me(e);
21593
- }, ke = () => {
21594
- if (b.length === 0 || !F) return n;
21595
- let e = ge.length > 0 ? "lintje-map-chart__tip--first" : "", t = r.mapTool === F.tool, i = b.length > 1, a = r.mapMenuOpen, o = t ? "Stop met selecteren" : i ? "Selecteren" : F.label, s = t || !i ? F.name : "functioneel-selectie", l = c(s, g`<span class="lintje-map-chart__tool-icon">${w(s, t || !i ? F.text : "Kies")}</span>`);
21596
- return g`
21597
- <lintje-tooltip class="lintje-map-chart__tip ${e}" text=${o} placement="left" no-describe>
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 ${i ? "lintje-map-chart__tool--menu" : ""} ${t ? "is-active" : ""}"
21600
- aria-label=${o} aria-pressed=${t}
21601
- aria-haspopup=${i && !t ? "menu" : n} aria-expanded=${i && !t ? String(a) : n}
21602
- aria-controls=${i && !t ? ye : n}
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) : i ? xe(!a, "checked") : me(F.tool);
21624
+ t ? me(null) : r ? xe(!i, "checked") : me(F.tool);
21605
21625
  }}
21606
21626
  @keydown=${(e) => {
21607
- !i || t || e.key !== "ArrowDown" && e.key !== "ArrowUp" || (e.preventDefault(), xe(!0, e.key === "ArrowDown" ? "first" : "last"));
21608
- }}>${l}</button>
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
- ${i ? Ae(a) : n}
21630
+ ${r ? ke(i) : s}
21611
21631
  `;
21612
- }, Ae = (e) => g`
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 ? g`<div class="lintje-menu lintje-map-chart__menu" ${d(De)} @keydown=${Ee}>
21618
- ${be.map((e) => g`
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=${() => Oe(e.value)}>
21622
- ${f(e.icon, {
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 ? f("functioneel-vinkje", {
21647
+ ${e.checked ? v("functioneel-vinkje", {
21628
21648
  size: 16,
21629
21649
  className: "lintje-menu__check"
21630
- }) : n}
21650
+ }) : s}
21631
21651
  </button>`)}
21632
- </div>` : n}
21652
+ </div>` : s}
21633
21653
  </lintje-popover>
21634
- `, je = () => {
21635
- let e = a ? "lintje-map-chart__selection--below" : "";
21636
- return j ? g`
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()}>${f("functioneel-kruis", { size: 14 })}</button>
21663
+ @click=${() => P()}>${v("functioneel-kruis", { size: 14 })}</button>
21644
21664
  <b>${j.label}</b>
21645
- ${N(j) ? g`<span class="lintje-map-chart__selection-series">
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=${ce(j.series, 5.5, 7, 7)} fill=${D(j.series) ?? "currentColor"} />
21667
+ <path d=${C(j.series, 5.5, 7, 7)} fill=${ce(j.series) ?? "currentColor"} />
21648
21668
  </svg>${N(j)}
21649
- </span>` : n}
21669
+ </span>` : s}
21650
21670
  <span class="lintje-map-chart__selection-value">
21651
- ${j.value == null ? "geen gegevens" : I(_(j.value), M?.unit ?? p)}${j.detail ? ` · ${j.detail}` : ""}
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
- ${o && j.href ? g`
21675
+ ${a && j.href ? f`
21656
21676
  <button type="button" class="lintje-map-chart__set-scope"
21657
- @click=${() => o(j)}>
21658
- ${ie} ${f("functioneel-locatiemarker", { size: 14 })}
21677
+ @click=${() => a(j)}>
21678
+ ${re} ${v("functioneel-locatiemarker", { size: 14 })}
21659
21679
  </button>
21660
- ` : n}
21680
+ ` : s}
21661
21681
  </div>
21662
- ` : C ? g`
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()}>${f("functioneel-kruis", { size: 14 })}</button>
21668
- <b>${T.length === 0 ? "Niets" : T.length === 1 ? "1 op de kaart" : `${_(T.length)} op de kaart`}</b>
21669
- <span class="lintje-map-chart__selection-value">${Nt(C)}</span>
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
- ` : n;
21672
- }, Me = r.mapHint ? r.mapHint : r.mapTool ? G[r.mapTool][a ? "short" : "full"] : null;
21673
- return g`
21674
- <div class="lintje-map-chart ${a ? "lintje-map-chart--mobile" : ""} ${re ? "lintje-map-chart--basemap" : ""}"
21675
- ${d(r.attach)} ?data-in-view=${r.inView}
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 (r.mapTool) r.mapTool = null;
21679
- else if (E) P();
21680
- else if (C) de();
21698
+ if (n.mapTool) n.mapTool = null;
21699
+ else if (O) P();
21700
+ else if (T) de();
21681
21701
  else return;
21682
- e.stopPropagation(), r.requestUpdate();
21702
+ e.stopPropagation(), n.requestUpdate();
21683
21703
  }
21684
21704
  }}>
21685
- ${y.legend ? U({
21705
+ ${b.legend ? Ct({
21686
21706
  drawings: se,
21687
21707
  hiddenLayers: le,
21688
21708
  hiddenSeries: ue,
21689
- expanded: ae,
21690
- mobile: a,
21691
- open: r.mapLegendOpen,
21692
- onLayer: (e) => r.toggleLayer(e),
21693
- onSeries: (e) => r.toggleSeries(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
- r.mapLegendOpen = e, r.requestUpdate();
21715
+ n.mapLegendOpen = e, n.requestUpdate();
21696
21716
  }
21697
- }) : n}
21698
- <div class="lintje-map-chart__area" ${ee({ height: `${x}px` })} data-tooltip-anchor
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 (y.wheel) {
21702
- if (!kt(e)) return jt(r);
21703
- e.preventDefault(), he.zoomBy(e, K(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">${i}</p>
21709
- <div class="lintje-map-chart__leaflet" ${d(he.attach)}></div>
21710
- ${k(r)}
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
- ${v && v.length > 1 ? g`
21733
+ ${y && y.length > 1 ? f`
21714
21734
  <div class="lintje-map-chart__layers" role="group" aria-label="Kaartlaag">
21715
- ${v.map((e) => g`
21735
+ ${y.map((e) => f`
21716
21736
  <button type="button"
21717
- class="lintje-map-chart__layer ${e.value === te ? "is-active" : ""}"
21718
- aria-pressed=${e.value === te}
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
- ` : n}
21742
+ ` : s}
21723
21743
 
21724
- ${Me ? g`<p class="lintje-map-chart__hint" role="status">${Me}</p>` : n}
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 + b.length > 0 ? g`
21747
+ ${ge.length + x.length > 0 ? f`
21728
21748
  <div class="lintje-map-chart__zoom">
21729
- ${ge.map((e) => g`
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)}>${w(e.name, e.text, 16, "flip" in e ? e.flip : void 0)}</button>
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
- ${ke()}
21755
+ ${Oe()}
21736
21756
  </div>
21737
- ` : n}
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 ? g`<div class="lintje-map-chart__scale-bar" aria-hidden="true">
21741
- <span>${Mt(_e.metres)}</span>
21742
- <span class="lintje-map-chart__scale-line" ${ee({ width: `${_e.width}px` })}></span>
21743
- </div>` : n}
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
- ${a ? n : je()}
21766
+ ${i ? s : Ae()}
21747
21767
  </div>
21748
- ${a ? je() : n}
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 Lt(e) {
21777
+ function Ft(e) {
21758
21778
  return e.replace(/[^{}]*\{[^{}]*url\(images\/[^{}]*\}/g, "");
21759
21779
  }
21760
- var Rt = l(Ft), zt = [
21761
- l(te),
21762
- l(Lt(It)),
21763
- Rt,
21764
- e
21765
- ], Bt = class extends y {
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
- m,
21769
- r(re),
21770
- r(v),
21771
- r(s),
21788
+ e,
21789
+ i(ne),
21790
+ i(n),
21772
21791
  ...b,
21773
- ...zt
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 A(() => this.requestUpdate());
21801
+ #e = new D(() => this.requestUpdate());
21783
21802
  #t = null;
21784
- #n = new o(this);
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 A(() => this.requestUpdate()) : (this.#t?.detach(), this.#t = null);
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 = we(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));
21806
- C(e.download.filename, [[
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 n;
21821
- let t = (e.state ?? "ready") === "ready", r = this.#n.matches && e.mobileSubtitle ? e.mobileSubtitle : e.subtitle, i = e.height ?? (this.#n.matches ? W.mobile : W.desktop);
21822
- return g`<lintje-tile
21823
- id=${this.id ? `${this.id}-tile` : n}
21824
- span=${e.span ?? n}
21825
- heading=${e.title ?? n}
21826
- icon=${e.icon ?? n}
21827
- subtitle=${r ?? n}
21828
- intro=${e.intro ?? n}
21829
- footnote=${e.footnote ?? n}
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 ? g`<lintje-announcement slot="notice" compact .data=${e.notice}></lintje-announcement>` : n}
21841
- ${this.content(`${i}px`)}
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 ? Pt({
21873
+ ${this.renderExpandModal(this.expanded && this.#t ? Mt({
21845
21874
  ...e,
21846
21875
  layer: this.layer
21847
- }, this.mapOptions(this.#t, !0)) : n, {
21876
+ }, this.mapOptions(this.#t, !0)) : s, {
21848
21877
  heading: e.title,
21849
- subtitle: r,
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 ae({
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
- announcement: ie
21868
- });
21869
- default: return Pt({
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
- t("lintje-map", Bt);
21933
+ r("lintje-map", Rt);
21909
21934
  //#endregion
21910
- export { Bt as LintjeMap };
21935
+ export { Rt as LintjeMap };