xv-webcomponents 1.22.2 → 1.22.4-qa.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/maplibre-gl-CCZS3Rg5.js +900 -0
- package/dist/cjs/{xv-accordion-v2_48.cjs.entry.js → xv-accordion-v2_49.cjs.entry.js} +700 -73
- package/dist/cjs/xv-header-next.cjs.entry.js +1 -1
- package/dist/cjs/xv-mega-menu-next.cjs.entry.js +2 -2
- package/dist/cjs/xv-webcomponents.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/xv-accordion/xv-accordion.js +24 -4
- package/dist/collection/components/xv-accordion-item/xv-accordion-item.js +11 -5
- package/dist/collection/components/xv-breadcrumbs/xv-breadcrumbs.js +1 -1
- package/dist/collection/components/xv-button/xv-button.js +2 -2
- package/dist/collection/components/xv-button-group/xv-button-group.js +1 -1
- package/dist/collection/components/xv-card/xv-card.js +1 -1
- package/dist/collection/components/xv-checkbox/xv-checkbox.js +2 -2
- package/dist/collection/components/xv-content-switcher/xv-content-switcher-item/xv-content-switcher-item.js +1 -1
- package/dist/collection/components/xv-content-switcher/xv-content-switcher.js +2 -2
- package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.js +1 -1
- package/dist/collection/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.js +1 -1
- package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.js +2 -2
- package/dist/collection/components/xv-data-table/xv-data-table.css +4 -4
- package/dist/collection/components/xv-data-table/xv-data-table.js +1 -1
- package/dist/collection/components/xv-datepicker/xv-datepicker.js +63 -5
- package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +1 -1
- package/dist/collection/components/xv-dropdown/xv-dropdown.js +1 -1
- package/dist/collection/components/xv-file-uploader/xv-file-uploader.css +39 -1
- package/dist/collection/components/xv-file-uploader/xv-file-uploader.js +57 -7
- package/dist/collection/components/xv-footer/xv-footer.js +1 -1
- package/dist/collection/components/xv-geo-map/xv-geo-map.css +907 -0
- package/dist/collection/components/xv-geo-map/xv-geo-map.js +1052 -0
- package/dist/collection/components/xv-header/xv-header.js +1 -1
- package/dist/collection/components/xv-header-next/xv-header-next.js +1 -1
- package/dist/collection/components/xv-image-viewer/xv-image-viewer.js +1 -1
- package/dist/collection/components/xv-link/xv-link.js +1 -1
- package/dist/collection/components/xv-mega-menu/xv-mega-menu.js +2 -2
- package/dist/collection/components/xv-mega-menu-next/xv-mega-menu-next.js +2 -2
- package/dist/collection/components/xv-modal/xv-modal.js +1 -1
- package/dist/collection/components/xv-notification/xv-notification.js +1 -1
- package/dist/collection/components/xv-number-input/xv-number-input.js +2 -2
- package/dist/collection/components/xv-pagination/xv-pagination.js +1 -1
- package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +1 -1
- package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +1 -1
- package/dist/collection/components/xv-radio/xv-radio.js +2 -2
- package/dist/collection/components/xv-slider/xv-slider.js +1 -1
- package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +1 -1
- package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +1 -1
- package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +1 -1
- package/dist/collection/components/xv-table/xv-table.js +1 -1
- package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +1 -1
- package/dist/collection/components/xv-tag/xv-tag.js +1 -1
- package/dist/collection/components/xv-tag-combobox/xv-tag-combobox.js +2 -2
- package/dist/collection/components/xv-text-input/xv-text-input.js +2 -2
- package/dist/collection/components/xv-textarea/xv-textarea.js +2 -2
- package/dist/collection/components/xv-tile/xv-tile.js +2 -2
- package/dist/collection/components/xv-toggle/xv-toggle.js +1 -1
- package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js +1 -1
- package/dist/collection/components/xv-tooltip/xv-tooltip.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/maplibre-gl-CS4Eagm9.js +813 -0
- package/dist/esm/maplibre-gl-shared.mjs +6 -0
- package/dist/esm/maplibre-gl-worker.mjs +6 -0
- package/dist/esm/{xv-accordion-v2_48.entry.js → xv-accordion-v2_49.entry.js} +700 -74
- package/dist/esm/xv-header-next.entry.js +1 -1
- package/dist/esm/xv-mega-menu-next.entry.js +2 -2
- package/dist/esm/xv-webcomponents.js +1 -1
- package/dist/types/components/xv-accordion/xv-accordion.d.ts +5 -4
- package/dist/types/components/xv-accordion-item/xv-accordion-item.d.ts +3 -0
- package/dist/types/components/xv-datepicker/xv-datepicker.d.ts +12 -0
- package/dist/types/components/xv-file-uploader/xv-file-uploader.d.ts +3 -0
- package/dist/types/components/xv-geo-map/xv-geo-map.d.ts +126 -0
- package/dist/types/components.d.ts +241 -0
- package/dist/xv-webcomponents/p-6d402ea7.entry.js +8 -0
- package/dist/xv-webcomponents/{p-7e05cb50.entry.js → p-71205fad.entry.js} +1 -1
- package/dist/xv-webcomponents/{p-38e5f1e1.entry.js → p-9bd6edd0.entry.js} +1 -1
- package/dist/xv-webcomponents/p-CS4Eagm9.js +10 -0
- package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
- package/package.json +2 -1
- package/dist/xv-webcomponents/p-511519a7.entry.js +0 -8
|
@@ -13,6 +13,8 @@ const XvAccordion = class {
|
|
|
13
13
|
this.multiple = false;
|
|
14
14
|
this.xvId = index$2.uidGenerator();
|
|
15
15
|
this.opened = new Set();
|
|
16
|
+
/** Set while `toggleItem` writes `value`, so the watcher ignores its own echo. */
|
|
17
|
+
this.applyingValue = false;
|
|
16
18
|
}
|
|
17
19
|
async toggleItem(value) {
|
|
18
20
|
if (this.opened.has(value)) {
|
|
@@ -21,20 +23,37 @@ const XvAccordion = class {
|
|
|
21
23
|
else {
|
|
22
24
|
if (!this.multiple)
|
|
23
25
|
this.opened.clear();
|
|
26
|
+
this.applyingValue = true;
|
|
24
27
|
this.value = value;
|
|
28
|
+
this.applyingValue = false;
|
|
25
29
|
this.opened.add(this.value);
|
|
26
30
|
}
|
|
27
31
|
this.accordionChange.emit({ opened: this.opened, id: this.xvId });
|
|
28
32
|
return { opened: this.opened, id: this.xvId };
|
|
29
33
|
}
|
|
34
|
+
/** Opens the named item; an empty value collapses everything. Idempotent, unlike `toggleItem`. */
|
|
35
|
+
onValueChange(value) {
|
|
36
|
+
if (this.applyingValue || (value && this.opened.has(value)))
|
|
37
|
+
return;
|
|
38
|
+
if (!this.multiple)
|
|
39
|
+
this.opened.clear();
|
|
40
|
+
if (value)
|
|
41
|
+
this.opened.add(value);
|
|
42
|
+
this.accordionChange.emit({ opened: this.opened, id: this.xvId });
|
|
43
|
+
}
|
|
30
44
|
componentWillLoad() {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
45
|
+
// Idempotent on purpose: a `value` that arrived after the instance was created is already open.
|
|
46
|
+
if (this.value)
|
|
47
|
+
this.onValueChange(this.value);
|
|
34
48
|
}
|
|
35
49
|
render() {
|
|
36
|
-
return (index$1.h(index$1.Host, { key: '
|
|
50
|
+
return (index$1.h(index$1.Host, { key: 'e69c356b4d5779f357ad39353b7131fc750b2471', class: "xv-accordion", "data-id": this.xvId }, index$1.h("slot", { key: 'fed73d3e2af953702fce5d4048790b44f6963060' })));
|
|
37
51
|
}
|
|
52
|
+
static get watchers() { return {
|
|
53
|
+
"value": [{
|
|
54
|
+
"onValueChange": 0
|
|
55
|
+
}]
|
|
56
|
+
}; }
|
|
38
57
|
};
|
|
39
58
|
XvAccordion.style = xvAccordionCss();
|
|
40
59
|
|
|
@@ -51,18 +70,24 @@ const XvAccordionItem = class {
|
|
|
51
70
|
if (this.disabled)
|
|
52
71
|
return;
|
|
53
72
|
this.isOpen = !this.isOpen;
|
|
54
|
-
(_b = (_a = this.
|
|
73
|
+
(_b = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.toggleItem) === null || _b === void 0 ? void 0 : _b.call(_a, this.value);
|
|
55
74
|
};
|
|
56
75
|
}
|
|
57
|
-
|
|
76
|
+
/** The parent emits its initial state before rendering `data-id`, so derive it instead of waiting for the event. */
|
|
77
|
+
componentWillLoad() {
|
|
58
78
|
var _a;
|
|
59
|
-
|
|
60
|
-
|
|
79
|
+
this.isOpen = !!this.value && ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.value) === this.value;
|
|
80
|
+
}
|
|
81
|
+
handleAccordionChange(event) {
|
|
82
|
+
if (!this.parent || event.detail.id !== this.parent.xvId)
|
|
61
83
|
return;
|
|
62
84
|
this.isOpen = event.detail.opened.has(this.value);
|
|
63
85
|
}
|
|
86
|
+
get parent() {
|
|
87
|
+
return this.el.closest('xv-accordion-v2');
|
|
88
|
+
}
|
|
64
89
|
render() {
|
|
65
|
-
return (index$1.h(index$1.Host, { key: '
|
|
90
|
+
return (index$1.h(index$1.Host, { key: 'a3cb0facfd983da8005bfbacca5af18ae8064eb3', class: `${this.disabled ? 'disabled' : ''}` }, index$1.h("label", { key: '9400e4d4626bf7af0ec6505b541b674e2e8b9ed0', class: `label ${this.isOpen ? 'opened' : 'closed'}`, onClick: this.toggle }, index$1.h("span", { key: 'ad386d89c6297c1d8820bff4eaefcdf14be33ce2' }, this.label)), index$1.h("div", { key: 'cf457ae8201e682133a875694296d73535979464', class: `content ${this.isOpen ? 'opened' : 'closed'}` }, index$1.h("slot", { key: 'd2452325e21ceb08094f62b372b67ba972bcd863' }))));
|
|
66
91
|
}
|
|
67
92
|
get el() { return index$1.getElement(this); }
|
|
68
93
|
};
|
|
@@ -75,7 +100,7 @@ const XvBreadcrumbs = class {
|
|
|
75
100
|
index$1.registerInstance(this, hostRef);
|
|
76
101
|
}
|
|
77
102
|
render() {
|
|
78
|
-
return (index$1.h("div", { key: '
|
|
103
|
+
return (index$1.h("div", { key: '9755c5e5f0802a1efbddffc6f6f2018147b8ffce', class: "xv-breadcrumbs" }, index$1.h("div", { key: '36cd6772a9cbe1b9c4f49a55f3c6e27d418a50fc', class: "xv-breadcrumbs__container" }, index$1.h("slot", { key: 'cef6a3c3d55767a6232c6067336d92cb41113f1d' }))));
|
|
79
104
|
}
|
|
80
105
|
};
|
|
81
106
|
XvBreadcrumbs.style = xvBreadcrumbsCss();
|
|
@@ -156,7 +181,7 @@ const XvButtonGroup = class {
|
|
|
156
181
|
});
|
|
157
182
|
}
|
|
158
183
|
render() {
|
|
159
|
-
return (index$1.h(index$1.Host, { key: '
|
|
184
|
+
return (index$1.h(index$1.Host, { key: '75f76838e6231856ae785c86258856c5a47cbc61', role: "group" }, index$1.h("slot", { key: '35e8caa705a672a5fe2933b6bb96dd73c938e64c', onSlotchange: () => this.syncActive() })));
|
|
160
185
|
}
|
|
161
186
|
get el() { return index$1.getElement(this); }
|
|
162
187
|
static get watchers() { return {
|
|
@@ -224,7 +249,7 @@ const XvButton = class {
|
|
|
224
249
|
}
|
|
225
250
|
render() {
|
|
226
251
|
var _a, _b;
|
|
227
|
-
return (index$1.h(index$1.Host, { key: '
|
|
252
|
+
return (index$1.h(index$1.Host, { key: 'fba11c0f184ccf501ac868e7db8541c1831b77d7' }, index$1.h("button", { key: '9783c96ce88d62a906203ec07700b81951d573af', class: {
|
|
228
253
|
'xv-button': true,
|
|
229
254
|
'xv-button--active': this.active,
|
|
230
255
|
[`xv-button--${this.variant}`]: !!this.variant,
|
|
@@ -235,7 +260,7 @@ const XvButton = class {
|
|
|
235
260
|
'xv-button--icon-left': this.hasLeftIcon,
|
|
236
261
|
'xv-button--icon-right': this.hasRightIcon,
|
|
237
262
|
'xv-button--icon-only': !this.hasContent,
|
|
238
|
-
}, part: "button", title: (_a = this.el) === null || _a === void 0 ? void 0 : _a.title, value: this.value, name: this.name, onClick: this.handleClick, type: this.type, disabled: this.disabled || this.loading, "aria-disabled": this.disabled ? 'true' : undefined, "aria-pressed": this.active ? 'true' : undefined, "aria-label": ((_b = this.el) === null || _b === void 0 ? void 0 : _b.ariaLabel) || 'XV button' }, this.loading && (index$1.h("xv-loader-v2", { key: '
|
|
263
|
+
}, part: "button", title: (_a = this.el) === null || _a === void 0 ? void 0 : _a.title, value: this.value, name: this.name, onClick: this.handleClick, type: this.type, disabled: this.disabled || this.loading, "aria-disabled": this.disabled ? 'true' : undefined, "aria-pressed": this.active ? 'true' : undefined, "aria-label": ((_b = this.el) === null || _b === void 0 ? void 0 : _b.ariaLabel) || 'XV button' }, this.loading && (index$1.h("xv-loader-v2", { key: '8d8a79349f84395901fc1fa72317308588876446', class: "xv-button__loader", size: this.size !== _vars.SIZE_VAR.XL ? this.size : _vars.SIZE_VAR.LG })), index$1.h("span", { key: '50169ff5514713c3bbbc88391b76be3347c0f9b7', class: "xv-button__icon xv-button__icon--left" }, index$1.h("slot", { key: '52e7455112b8fc7fb4ee0eceb1d688fc9f152f0a', name: "icon-left", onSlotchange: this.handleSlotChangeLeft })), index$1.h("span", { key: '737e1299d74237a86f05dcc17a64c8b40e6b84e8', class: "xv-button__label" }, index$1.h("slot", { key: '4df615791319755854d0a1c764e198ba57e3ca44', onSlotchange: this.handleSlotChangeContent }, this.label)), index$1.h("span", { key: 'a9f2c26b062a66936d06a351ae07b0fc45cb6206', class: "xv-button__icon xv-button__icon--right" }, index$1.h("slot", { key: '054be184e477bf14580a7a8e6eff544518650070', name: "icon-right", onSlotchange: this.handleSlotChangeRight })))));
|
|
239
264
|
}
|
|
240
265
|
static get formAssociated() { return true; }
|
|
241
266
|
get el() { return index$1.getElement(this); }
|
|
@@ -250,7 +275,7 @@ const XvCard = class {
|
|
|
250
275
|
this.variant = 'vertical';
|
|
251
276
|
}
|
|
252
277
|
render() {
|
|
253
|
-
return (index$1.h(index$1.Host, { key: '
|
|
278
|
+
return (index$1.h(index$1.Host, { key: 'e727e80c64728a3cdf809ac14df0d8a209a9e1ac', class: `xv-card xv-card_${this.variant}`, part: this.variant }, index$1.h("div", { key: '4f7d067fc749b3c0b6a7f9b697095291ca9ebc19', class: "xv-card_media" }, index$1.h("slot", { key: '7a9756035ed1154bd8c97b344ace21dfe7d68054', name: "media" }, this.media && index$1.h("img", { key: '4d6eda9d66a993a51a6252accbd5a2bf9398cbdc', class: "xv-card_media__content", src: this.media, alt: this.header }))), index$1.h("div", { key: '1998a64d875197acc6d7739ea8daaba0a1233fff', class: "xv-card_content" }, index$1.h("div", { key: '79cb4a95662f405d1dcf2af50ff62a361c06930b', class: "xv-card_header" }, index$1.h("slot", { key: '33761912c88f7f3ec517709bdee61c806b56a32a', name: "header" }, this.header && index$1.h("p", { key: 'ece5395203308cd0f4991594a5d2f69d72e8cbaa', class: "xv-card_header__content" }, this.header))), index$1.h("div", { key: 'ccee6405aafcec8f45eea2feb725a4a452dc77bd', class: "xv-card_body" }, index$1.h("slot", { key: 'b135f8d40a2a11b815a25c8138cac779b0ce5389', name: "body" }, this.body && index$1.h("p", { key: '5e64fc46e61bc0c3bf0d2f65775eb5527077307d', class: "xv-card_body__content" }, this.header))), index$1.h("div", { key: '722203cf13b7ef8ca87ca7283624d2928769d90b', class: "xv-card_footer" }, index$1.h("slot", { key: 'b3ee59c1c3e1c03a2e9152d48817dfd8f3c01887', name: "footer" }, this.footer)))));
|
|
254
279
|
}
|
|
255
280
|
};
|
|
256
281
|
XvCard.style = xvCardCss();
|
|
@@ -331,12 +356,12 @@ const XvCheckbox = class {
|
|
|
331
356
|
}
|
|
332
357
|
}
|
|
333
358
|
render() {
|
|
334
|
-
return (index$1.h(index$1.Host, { key: '
|
|
359
|
+
return (index$1.h(index$1.Host, { key: 'c6935a14e59e040085e0357f327de6bae85938f2' }, index$1.h("label", { key: '83da60db2471ed903dc014713d8f4d7bea7110e7', class: {
|
|
335
360
|
'xv-checkbox': true,
|
|
336
361
|
disabled: this.disabled,
|
|
337
362
|
readonly: this.readonly,
|
|
338
363
|
[`xv-checkbox--align-${this.align}`]: !!this.align,
|
|
339
|
-
} }, index$1.h("input", { key: '
|
|
364
|
+
} }, index$1.h("input", { key: '1c0da6b7baba4d09ff96f8cb2d62159fb60f3d65', ref: el => (this.inputEl = el), type: "checkbox", readonly: this.readonly, name: this.name, value: this.value, checked: this.checked, disabled: this.disabled || this.readonly, required: this.required, indeterminate: this.indeterminate, onInput: this.onInput, onChange: this.onChange, onFocus: this.onFocus, onBlur: this.onBlur }), index$1.h("span", { key: 'b7f2bbb12244ba6a93a4cb9ac2593237bac26524', class: `checkmark ${this.partial ? 'checkmark-partial' : ''}` }), index$1.h("div", { key: 'e342163a137d67d597d04414965d143b3bd0090f', class: "label" }, index$1.h("slot", { key: '1b0de85314b48632fb5994a9d3b1dd92a4a36068' }, this.label && index$1.h("span", { key: '8f98fb5569939842bffb6b99b070cc9ffaed4343', class: "label_str" }, this.label)))), index$1.h("slot", { key: '8148bb0ab61261e5be3bb6219062b3454a561195', name: "info" }), !!this.error && index$1.h("span", { key: '94bbe30a1d6de3f9895a94bf35a9d1dffb02a823', class: "error" }, this.error)));
|
|
340
365
|
}
|
|
341
366
|
componentDidLoad() {
|
|
342
367
|
if (this.indeterminate) {
|
|
@@ -375,7 +400,7 @@ const XvContentSwitcherItem = class {
|
|
|
375
400
|
this.disabled = false;
|
|
376
401
|
}
|
|
377
402
|
render() {
|
|
378
|
-
return (index$1.h(index$1.Host, { key: '
|
|
403
|
+
return (index$1.h(index$1.Host, { key: 'c91c4095819a485468c85ef0a04995b2bff0d229' }, index$1.h("slot", { key: 'd65d0bd721b0e69476d8d724935c95c55700c982' })));
|
|
379
404
|
}
|
|
380
405
|
};
|
|
381
406
|
XvContentSwitcherItem.style = xvContentSwitcherItemCss();
|
|
@@ -509,14 +534,14 @@ const XvContentSwitcher = class {
|
|
|
509
534
|
return null;
|
|
510
535
|
}
|
|
511
536
|
render() {
|
|
512
|
-
return (index$1.h(index$1.Host, { key: '
|
|
537
|
+
return (index$1.h(index$1.Host, { key: '8b31b1c11689777b9e051686bee96d65c1acad21' }, index$1.h("div", { key: '620e9f59d8a41ac12f4ddcb44f909a00d173f96d', class: "switcher", role: "tablist", "aria-orientation": "horizontal" }, this.items.map((item, index) => {
|
|
513
538
|
const key = this.getItemKey(item, index);
|
|
514
539
|
const selected = this.isSelected(item, index);
|
|
515
540
|
const itemDisabled = this.isItemDisabled(item);
|
|
516
541
|
const label = item.getAttribute('label') || '';
|
|
517
542
|
const icon = item.getAttribute('icon');
|
|
518
543
|
return (index$1.h("button", { type: "button", role: "tab", class: { switcher_item: true, selected }, "aria-selected": selected ? 'true' : 'false', "aria-label": this.iconOnly ? label || undefined : undefined, title: this.iconOnly ? label || undefined : undefined, disabled: itemDisabled, tabIndex: selected ? 0 : -1, onClick: () => this.select(key), onKeyDown: (event) => this.handleKeyDown(event, index) }, icon && index$1.h("i", { class: `switcher_item-icon ${icon}`, "aria-hidden": "true" }), !this.iconOnly && label && index$1.h("span", { class: "switcher_item-label" }, label)));
|
|
519
|
-
})), index$1.h("div", { key: '
|
|
544
|
+
})), index$1.h("div", { key: '3a7bcb7c000ffc9d524efb6c9b31552ee875cceb', class: "switcher_content", role: "tabpanel", tabindex: -1 }, index$1.h("slot", { key: '766748b9712a0072ef009213f6578a2497b7ef60', onSlotchange: this.collectItems }))));
|
|
520
545
|
}
|
|
521
546
|
get el() { return index$1.getElement(this); }
|
|
522
547
|
};
|
|
@@ -3175,7 +3200,7 @@ const XV_DATA_TABLE_TAG = 'xv-data-table';
|
|
|
3175
3200
|
const XV_DATA_TABLE_ROW_TAG = 'xv-data-table-row';
|
|
3176
3201
|
const XV_ROW_DRAG_HANDLE_CLASS = 'xv-row-drag-handle';
|
|
3177
3202
|
|
|
3178
|
-
const xvDataTableCss = () => `:host{--xv-data-table-min-height:51.11px;--xv-data-table-border-width:1px;--xv-data-table-border-color:var(--border-subtle-01, #D1D1D1);--xv-data-table-padding-x:var(--spacing-05, 16px);--xv-data-table-padding-y:var(--spacing-05, 16px);--xv-data-table-row-bg:transparent;width:inherit;text-align:left;color:var(--text-primary, #333);font-family:var(--ff-body, Tahoma);font-size:var(--fz-md, 14px);line-height:18px;letter-spacing:0.16px}@media screen and (max-width: 1180px){:host{display:block;position:relative;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--layer-accent-03) transparent}:host ::slotted([slot=title]),:host>table{min-width:1180px}}:host .bar{position:sticky;left:0;z-index:10}:host .bar_batch{position:absolute;bottom:0;left:0;right:0;pointer-events:unset;user-select:unset;z-index:2;background-color:var(--interactive-01, #273435);color:var(--text-on-color, #fff);border-radius:3px 3px 0 0;display:flex;align-items:center}:host .bar_toolbar{z-index:1;border-radius:3px 3px 0 0}:host ::slotted([slot=title]){margin:0 !important;color:var(--text-primary, #333) !important;font-family:var(--ff-heading, "Gill Sans")
|
|
3203
|
+
const xvDataTableCss = () => `:host{--xv-data-table-min-height:51.11px;--xv-data-table-border-width:1px;--xv-data-table-border-color:var(--border-subtle-01, #D1D1D1);--xv-data-table-padding-x:var(--spacing-05, 16px);--xv-data-table-padding-y:var(--spacing-05, 16px);--xv-data-table-row-bg:transparent;width:inherit;text-align:left;color:var(--text-primary, #333);font-family:var(--ff-body, Tahoma);font-size:var(--fz-md, 14px);line-height:18px;letter-spacing:0.16px}@media screen and (max-width: 1180px){:host{display:block;position:relative;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--layer-accent-03) transparent}:host ::slotted([slot=title]),:host>table{min-width:1180px}}:host .bar{position:sticky;left:0;z-index:10}:host .bar_batch{position:absolute;bottom:0;left:0;right:0;pointer-events:unset;user-select:unset;z-index:2;background-color:var(--interactive-01, #273435);color:var(--text-on-color, #fff);border-radius:3px 3px 0 0;display:flex;align-items:center}:host .bar_toolbar{z-index:1;border-radius:3px 3px 0 0}:host ::slotted([slot=title]){margin:0 !important;color:var(--text-primary, #333) !important;font-family:var(--ff-heading, "Gill Sans"), sans-serif;font-size:20px;text-align:left;font-style:normal !important;font-weight:400;line-height:normal;padding:var(--spacing-05) var(--spacing-05) var(--spacing-06) !important}:host ::slotted([slot=toolbar]){margin-bottom:var(--spacing-03)}:host>table{width:inherit;border-collapse:collapse;table-layout:fixed;border-left:1px solid var(--xv-data-table-border-color);border-right:1px solid var(--xv-data-table-border-color)}:host>caption{display:contents}:host .loading{z-index:10;display:flex;align-items:center;justify-content:center;min-height:var(--xv-data-table-min-height, 51.11px);position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(255, 255, 255, 0.8)}:host([block]){width:100%}:host([block])>table{table-layout:fixed}:host([size=xs]){--xv-data-table-padding-x:var(--spacing-02, 4px);--xv-data-table-padding-y:var(--spacing-02, 4px)}:host([size=sm]){--xv-data-table-padding-x:var(--spacing-04, 12px);--xv-data-table-padding-y:var(--spacing-03, 8px)}:host([size=md]){--xv-data-table-padding-x:var(--spacing-05, 16px);--xv-data-table-padding-y:var(--spacing-05, 16px)}:host([size=lg]){--xv-data-table-padding-x:var(--spacing-05, 16px);--xv-data-table-padding-y:var(--spacing-06, 24px)}:host([size=xl]){--xv-data-table-padding-x:var(--spacing-06, 24px);--xv-data-table-padding-y:var(--spacing-07, 32px)}`;
|
|
3179
3204
|
|
|
3180
3205
|
const XvDataTable = class {
|
|
3181
3206
|
constructor(hostRef) {
|
|
@@ -3281,7 +3306,7 @@ const XvDataTable = class {
|
|
|
3281
3306
|
this.initSortable();
|
|
3282
3307
|
}
|
|
3283
3308
|
render() {
|
|
3284
|
-
return (index$1.h(index$1.Host, { key: '
|
|
3309
|
+
return (index$1.h(index$1.Host, { key: '570fd2eb4b0144b9102b96195c797eb02c472455', class: "xv-data-table" }, index$1.h("caption", { key: '7bbd19ed3c51fc900999cdde45ce333676a0ccf2' }, index$1.h("slot", { key: 'e8bc08a4908449f492442979ba4ea894d7629988', name: "title" })), index$1.h("div", { key: '6afa75966f280bc433bbb8e6d7f6c4241be8d37e', class: "bar" }, index$1.h("div", { key: '1646ccaaf4391042026d7d9542d86dbf9a9d1138', class: "bar_batch" }, index$1.h("slot", { key: 'c0c1772e536561a6c8f32e3796b78171ec8f8504', name: "batch" })), index$1.h("div", { key: 'f21d76f5c6ae57fc8cc53e5da9b83385ceb9926d', class: "bar_toolbar" }, index$1.h("slot", { key: '83e885cdf49d9fae16f6d295df096e74fa120bd3', name: "toolbar" }))), index$1.h("table", { key: 'fb0979ed7443b340ea1c1c376f1efc189be03b4d', role: "table" }, this.columnWidths.length > 0 && (index$1.h("colgroup", { key: '1a3885fd837a7e34bf25e34e7c606d7ea6bc9afe' }, this.columnWidths.map((width = 'auto') => index$1.h("col", { style: { width } })))), index$1.h("thead", { key: '0fa1dec18a894ec1ff4da2c60aca5bf33f5949df' }, index$1.h("slot", { key: '6711a45920494a39934ef524fb0b8022fde77ec2', name: "header" })), index$1.h("tbody", { key: '46a2488485441766ba0d3e5a149a0b05a67d3756' }, index$1.h("slot", { key: '6f60c1fe6a076cc6750e7abad9e4b1a643bd1d6c' })), index$1.h("tfoot", { key: '6f2a17a4ade1a65cb7dd3ecfb15f91b7bd0f16bb' }, index$1.h("slot", { key: 'efd3e17fc926009f8dcaa273618f5f9168451b5d', name: "footer" }))), !!this.loading && (index$1.h("div", { key: 'bb8f79de1e43a5c4fe66d9f1c3c8bf54ffa441cf', class: "loading" }, index$1.h("xv-loader-v2", { key: 'a89466627f436e46e07cca56fbefda0c13d3781c', size: _vars.SIZE_VAR.LG })))));
|
|
3285
3310
|
}
|
|
3286
3311
|
get el() { return index$1.getElement(this); }
|
|
3287
3312
|
static get watchers() { return {
|
|
@@ -3322,7 +3347,7 @@ const XvDataTableCell = class {
|
|
|
3322
3347
|
}
|
|
3323
3348
|
;
|
|
3324
3349
|
render() {
|
|
3325
|
-
return (index$1.h(index$1.Host, { key: '
|
|
3350
|
+
return (index$1.h(index$1.Host, { key: '0df8782b338e3a26e7d44cdef99a528f43c7096e', role: "cell", style: { width: this.width }, class: {
|
|
3326
3351
|
multiline: this.multiline !== undefined,
|
|
3327
3352
|
[`align--${this.align}`]: !!this.align
|
|
3328
3353
|
} }, !this.multiline || isNaN(this.multiline) ? this.__renderWithTooltip() : (index$1.h("div", { class: "line-clamp", style: { ['-webkit-line-clamp']: `${this.multiline}` } }, this.__renderWithTooltip()))));
|
|
@@ -3355,7 +3380,7 @@ const XvDataTableCollapse = class {
|
|
|
3355
3380
|
rows.forEach((row) => row === null || row === void 0 ? void 0 : row.setAttribute('collapsable', ''));
|
|
3356
3381
|
}
|
|
3357
3382
|
render() {
|
|
3358
|
-
return (index$1.h(index$1.Host, { key: '
|
|
3383
|
+
return (index$1.h(index$1.Host, { key: '8af939d58827a45227da4a1fe0633e0a3b71ae4b', id: this.el.id, part: "xv-collapse", class: this.el.className, collapsed: this.collapsed, expanded: !this.collapsed }, index$1.h("slot", { key: 'a85ddac7154a56db6b988cd5180b37bb63933703' })));
|
|
3359
3384
|
}
|
|
3360
3385
|
get el() { return index$1.getElement(this); }
|
|
3361
3386
|
};
|
|
@@ -3438,7 +3463,7 @@ const XvDataTableRow = class {
|
|
|
3438
3463
|
const isGroup = !!this.collapse || !!this.group;
|
|
3439
3464
|
const isDraggableRow = this.reorderable && !isHeader && !isFooter && !this.group;
|
|
3440
3465
|
const showHandleCell = this.reorderable && this.reorderHandleMode === 'icon';
|
|
3441
|
-
return (index$1.h(index$1.Host, { key: '
|
|
3466
|
+
return (index$1.h(index$1.Host, { key: 'd9bb6ddc1597a4904c951d7e7b1a38fcb0b5b2e8', role: "row", part: "xv-row", class: {
|
|
3442
3467
|
checked: this.checked,
|
|
3443
3468
|
hover: this.hover,
|
|
3444
3469
|
disabled: this.disabled,
|
|
@@ -3446,7 +3471,7 @@ const XvDataTableRow = class {
|
|
|
3446
3471
|
header: isHeader,
|
|
3447
3472
|
footer: isFooter,
|
|
3448
3473
|
'reorder-row': isDraggableRow && this.reorderHandleMode === 'row',
|
|
3449
|
-
} }, showHandleCell && (index$1.h("xv-data-table-cell", { key: '
|
|
3474
|
+
} }, showHandleCell && (index$1.h("xv-data-table-cell", { key: '31047dc1b9eb9ad0f53a734f34934248dd24953a', width: "16px", class: "cell-control cell-control--drag" }, isDraggableRow && (index$1.h("span", { key: '4eb1a2363ccc46146e41e72c70475456492900de', class: `cell-control_drag ${XV_ROW_DRAG_HANDLE_CLASS}`, "aria-label": "Drag to reorder" }, index$1.h("svg", { key: '3a7c0a9c948092b378e24938cbbceed3b6a8dd89', viewBox: "0 0 8 14", width: "8", height: "14", fill: "currentColor", "aria-hidden": "true" }, index$1.h("circle", { key: '3227502198d59b9eeee42a532178da2198fb9a37', cx: "2", cy: "2", r: "1.2" }), index$1.h("circle", { key: '167b75f4623a83cf510bc371d67f7a7f1a54a7fa', cx: "6", cy: "2", r: "1.2" }), index$1.h("circle", { key: 'c14fa5cdef879c2595454568912bb45c37404d1f', cx: "2", cy: "7", r: "1.2" }), index$1.h("circle", { key: '8f08a6edb2665bb214293ae3f9a32269d0a926ec', cx: "6", cy: "7", r: "1.2" }), index$1.h("circle", { key: 'dadcbaf93e4c9215fefbe766a320a3eecf71e964', cx: "2", cy: "12", r: "1.2" }), index$1.h("circle", { key: '04ffe62ba13cf1799c6ad05908dcc94c3e6eaefb', cx: "6", cy: "12", r: "1.2" })))))), (!!this.variant || this.collapsable) && (index$1.h("xv-data-table-cell", { key: 'e972b33cf8b9d7406967a94b9a5c0e00e547c44e', width: !!this.variant ? '16px' : '0', class: "cell-control" }, !!this.collapse && (index$1.h("button", { key: 'c7e0ae5898d059d134201f22b18ff0e278e36842', class: { 'cell-control_collapse': true, open: !this.collapsed }, onClick: this.collapseClick })), this.variant === 'checkbox' && (index$1.h("xv-checkbox-v2", { key: 'ae49a7926b6225240a27e64137bdc17f5960af0c', name: this.name, partial: this.partial, checked: this.checked || this.partial, disabled: this.disabled, readonly: this.readonly, required: this.required, onEventChange: this.checkedChangeHandle, class: "cell-control_checkbox" })))), index$1.h("slot", { key: 'ee569da095e277efab04ce534ab1c66cf421bafa', onSlotchange: this.setInitialState })));
|
|
3450
3475
|
}
|
|
3451
3476
|
get el() { return index$1.getElement(this); }
|
|
3452
3477
|
};
|
|
@@ -80398,7 +80423,8 @@ const XvDatepicker = class {
|
|
|
80398
80423
|
return;
|
|
80399
80424
|
}
|
|
80400
80425
|
if ((this.minDate && dateFns.isBefore(newDate, this.minDate)) ||
|
|
80401
|
-
(this.maxDate && dateFns.isAfter(newDate, this.maxDate))
|
|
80426
|
+
(this.maxDate && dateFns.isAfter(newDate, this.maxDate)) ||
|
|
80427
|
+
this.disabledSet.has(val)) {
|
|
80402
80428
|
return;
|
|
80403
80429
|
}
|
|
80404
80430
|
if (this.variant === 'single') {
|
|
@@ -80423,7 +80449,8 @@ const XvDatepicker = class {
|
|
|
80423
80449
|
const val = new Date(input.value);
|
|
80424
80450
|
if (!dateFns.isValid(val) ||
|
|
80425
80451
|
(this.minDate && dateFns.isBefore(val, this.minDate)) ||
|
|
80426
|
-
(this.maxDate && dateFns.isAfter(val, this.maxDate))
|
|
80452
|
+
(this.maxDate && dateFns.isAfter(val, this.maxDate)) ||
|
|
80453
|
+
this.disabledSet.has(input.value)) {
|
|
80427
80454
|
this.value[range === 'start' ? 0 : 1] = undefined;
|
|
80428
80455
|
input.value = '';
|
|
80429
80456
|
this.localError = 'Das angegebene Datum ist nicht verfügbar.';
|
|
@@ -80498,6 +80525,30 @@ const XvDatepicker = class {
|
|
|
80498
80525
|
return iso;
|
|
80499
80526
|
return dateFns.parse(this.max, 'yyyy-MM-dd', new Date());
|
|
80500
80527
|
}
|
|
80528
|
+
get disabledSet() {
|
|
80529
|
+
var _a;
|
|
80530
|
+
const keys = ((_a = this.disabledDates) !== null && _a !== void 0 ? _a : []).map(d => this.toDayKey(d)).filter(Boolean);
|
|
80531
|
+
return new Set(keys);
|
|
80532
|
+
}
|
|
80533
|
+
/** Normalise a disabled-date entry to a local 'yyyy-MM-dd' key. */
|
|
80534
|
+
toDayKey(value) {
|
|
80535
|
+
if (value instanceof Date) {
|
|
80536
|
+
return dateFns.isValid(value) ? dateFns.format(value, DEF_FORMAT) : '';
|
|
80537
|
+
}
|
|
80538
|
+
// Bare 'yyyy-MM-dd' is already a key — use verbatim to avoid a TZ shift
|
|
80539
|
+
// from re-parsing it into a Date.
|
|
80540
|
+
if (/^\d{4}-\d{2}-\d{2}$/.test(value))
|
|
80541
|
+
return value;
|
|
80542
|
+
const parsed = dateFns.parseISO(value);
|
|
80543
|
+
return dateFns.isValid(parsed) ? dateFns.format(parsed, DEF_FORMAT) : '';
|
|
80544
|
+
}
|
|
80545
|
+
isDayDisabled(date, disabled = this.disabledSet) {
|
|
80546
|
+
if (this.minDate && dateFns.isBefore(date, this.minDate))
|
|
80547
|
+
return true;
|
|
80548
|
+
if (this.maxDate && dateFns.isAfter(date, this.maxDate))
|
|
80549
|
+
return true;
|
|
80550
|
+
return disabled.has(dateFns.format(date, DEF_FORMAT));
|
|
80551
|
+
}
|
|
80501
80552
|
get isPrevDisabled() {
|
|
80502
80553
|
if (!this.minDate)
|
|
80503
80554
|
return false;
|
|
@@ -80531,13 +80582,14 @@ const XvDatepicker = class {
|
|
|
80531
80582
|
getCalendarGrid() {
|
|
80532
80583
|
const start = dateFns.startOfWeek(dateFns.startOfMonth(this.month), { weekStartsOn: 1 });
|
|
80533
80584
|
const end = dateFns.endOfWeek(dateFns.endOfMonth(this.month), { weekStartsOn: 1 });
|
|
80585
|
+
const disabled = this.disabledSet;
|
|
80534
80586
|
this.days = dateFns.eachDayOfInterval({ start, end }).map(date => ({
|
|
80535
80587
|
date,
|
|
80536
80588
|
week: dateFns.getWeek(date, { weekStartsOn: 1 }),
|
|
80537
80589
|
day: date.getDate(),
|
|
80538
80590
|
isCurrentMonth: dateFns.isSameMonth(date, this.month),
|
|
80539
80591
|
isToday: dateFns.isToday(date),
|
|
80540
|
-
disabled:
|
|
80592
|
+
disabled: this.isDayDisabled(date, disabled)
|
|
80541
80593
|
}));
|
|
80542
80594
|
return this.days;
|
|
80543
80595
|
}
|
|
@@ -80601,12 +80653,12 @@ const XvDatepicker = class {
|
|
|
80601
80653
|
warning: this.warning,
|
|
80602
80654
|
helper: this.helper,
|
|
80603
80655
|
});
|
|
80604
|
-
return (index$1.h(index$1.Host, { key: '
|
|
80656
|
+
return (index$1.h(index$1.Host, { key: 'd3824a5d7c420cf3956bac19dce90ad6a2bf7fa2', class: { disabled: !!this.disabled }, tabindex: this.disabled ? '-1' : undefined }, index$1.h("div", { key: 'd93850164d288cb74c8120596196088e44c33a23', "aria-controls": "popover", class: "control" }, this.label && index$1.h("label", { key: 'e136f0ef2de64fa2e95b77caeb3675cee7626575', class: "control_label" }, this.label), index$1.h("div", { key: '102e8ce2e9dc0d9e74ba9a771b513977acbeb0ba', class: {
|
|
80605
80657
|
'control_field': true,
|
|
80606
80658
|
loading: this.loading,
|
|
80607
80659
|
error: !!this.error || !!this.localError,
|
|
80608
80660
|
warning: this.warning !== undefined,
|
|
80609
|
-
}, onClick: this.handleOpen, ref: (el) => (this.controlEl = el) }, index$1.h("input", { key: '
|
|
80661
|
+
}, onClick: this.handleOpen, ref: (el) => (this.controlEl = el) }, index$1.h("input", { key: '815eb8a1b9aef9a4ffae56ce120175e4e727e2c0', lang: "de", type: "date", name: "start", disabled: this.loading || this.disabled, readonly: this.readonly || this.variant === 'range', min: this.min, max: this.max, value: start ? dateFns.format(start, DEF_FORMAT) : '', onChange: (e) => this.handleChange(e, 'start'), onBlur: (e) => this.handleBlur(e, 'start'), onKeyDown: (e) => this.handleKeydown(e, 'start') }), this.variant === 'range' && (index$1.h("input", { key: '4ae5693501d921d8431da8d261de777f159eb778', lang: "de", type: "date", name: "end", disabled: this.loading || this.disabled, readonly: this.readonly || this.variant === 'range', min: this.min, max: this.max, value: end ? dateFns.format(end, DEF_FORMAT) : '', onChange: (e) => this.handleChange(e, 'end'), onBlur: (e) => this.handleBlur(e, 'end'), onKeyDown: (e) => this.handleKeydown(e, 'end') }))), message && (index$1.h("p", { key: 'a3facc864173f9a8d74ef8542fff82ea935f5593', class: { control_message: true, [message.level]: true } }, message.text))), index$1.h("div", { key: '649f74e157bcd2e834d03c7a2d52968fbe3087c1', role: "dialog", class: { popover: true, open: this.open }, ref: (el) => (this.popoverEl = el) }, index$1.h("div", { key: '2cfbafcfaa23d86e610d488315ac6b1aa34dbf54', class: "header" }, index$1.h("xv-button-v2", { key: '3694744a0a8790fc80f65ae2a3a33d7f5a0a4d15', tabindex: this.open ? undefined : '-1', disabled: this.isPrevDisabled, variant: "ghost", onClick: this.prevMonth }, index$1.h("span", { key: '96aec7fad4fafc6ed43bea53b5000a1100815bf7', slot: "icon-left", class: "header_icon prev" })), index$1.h("p", { key: 'a52cafec3ee1d519d3acd39b65c59209b05a17f3', class: "header_date" }, dateFns.format(this.month, 'LLLL', { locale: localeExports.de }), index$1.h("input", { key: 'f523d1ab179245a725a5bfe2ec97f3bce50533de', tabindex: this.open ? undefined : '-1', type: "number", value: this.month.getFullYear(), onInput: this.handleYearChange, onBlur: this.handleYearBlur })), index$1.h("xv-button-v2", { key: '16a1f92a5a461a4c812225a586ea705e858aeac7', tabindex: this.open ? undefined : '-1', disabled: this.isNextDisabled, variant: "ghost", onClick: this.nextMonth }, index$1.h("span", { key: '5b38b9fef3ab9914f879f8525dcd5b46f46058b4', slot: "icon-left", class: "header_icon next" }))), index$1.h("div", { key: '223691312e59a749bd1f8a982b7270fb529b6b32', class: "week" }, index$1.h("p", { key: '898552659a61a0cf789541cf694f7589eacdf457', class: "week_day" }), WEEK.map((day) => index$1.h("p", { class: "week_day" }, day, "."))), index$1.h("div", { key: '7c91b9a24f7d37f64f159f290a43cbfff4c9be1a', class: "week" }, this.days.map((day, idx) => (index$1.h(index$1.Fragment, null, idx % 7 === 0 && (index$1.h("button", { tabindex: this.open ? undefined : '-1', disabled: true, class: "week_day disabled" }, day.week)), index$1.h("button", { tabindex: this.open ? undefined : '-1', onClick: () => this.handleSetDate(day), disabled: day.disabled, class: {
|
|
80610
80662
|
'week_day': true,
|
|
80611
80663
|
inRange: this.variant === 'range' && dateFns.isWithinInterval(day.date, { start, end }),
|
|
80612
80664
|
isToday: day.isToday,
|
|
@@ -80623,6 +80675,15 @@ const XvDatepicker = class {
|
|
|
80623
80675
|
"month": [{
|
|
80624
80676
|
"getCalendarGrid": 0
|
|
80625
80677
|
}],
|
|
80678
|
+
"min": [{
|
|
80679
|
+
"getCalendarGrid": 0
|
|
80680
|
+
}],
|
|
80681
|
+
"max": [{
|
|
80682
|
+
"getCalendarGrid": 0
|
|
80683
|
+
}],
|
|
80684
|
+
"disabledDates": [{
|
|
80685
|
+
"getCalendarGrid": 0
|
|
80686
|
+
}],
|
|
80626
80687
|
"value": [{
|
|
80627
80688
|
"handleValueChange": 0
|
|
80628
80689
|
}]
|
|
@@ -80917,7 +80978,7 @@ const XvDropdown = class {
|
|
|
80917
80978
|
/* endregion Search methods */
|
|
80918
80979
|
render() {
|
|
80919
80980
|
const message = index$2.resolveFieldMessage({ error: this.error, warning: this.warning, helper: this.helper });
|
|
80920
|
-
return (index$1.h(index$1.Host, { key: '
|
|
80981
|
+
return (index$1.h(index$1.Host, { key: '01b71caf620b27aa3cf098ab9449196c1b7b56ea', class: { 'xv-dropdown': true, [this.variant]: !!this.variant }, role: "combobox", "aria-haspopup": "listbox", "aria-expanded": this.open ? 'true' : 'false', "aria-controls": this.open ? this.listboxId : null, size: this.size, open: this.open, error: !!this.error, disabled: this.disabled, tabindex: (this.disabled || this.readonly) ? -1 : 0 }, (this.label || this.info) && (index$1.h("label", { key: 'd99f47f2abbbe370efde3a702b5d1c61b11aa4ca', class: "label" }, index$1.h("slot", { key: '2ca43ab5d65eb331d6ffd2ca10c251bcd6f6c3d0', name: "label" }, this.label), this.info && index$1.h("xv-tooltip-v2", { key: '7d55fa244097898202318adc3b03b898cb4b3f11', class: "label_info", message: this.info }))), index$1.h("div", { key: 'c854210410d358b440559702c4efab8b9ac894b8', class: { "xv-dropdown-control control": true, readonly: !!this.readonly }, onClick: this.handleOpen }, (this.multiple && this.selectedMap.size > 0) && (index$1.h("xv-tag-v2", { key: '4d46c14e2aab62651692a98b6c3d321d7073849c', class: "control_count", onClick: (e) => e.stopPropagation(), onCloseClick: this.clearHandle, closeable: !this.required, bg: "var(--background-inverse)", color: "var(--icon-inverse)" }, this.selectedMap.size)), this.selected.length ? (index$1.h("p", { class: "control_value" }, this.selected.join(', '))) : (index$1.h("p", { class: "control_placeholder" }, this.placeholder || '')), this._renderIcon(), index$1.h("svg", { key: 'e3bf3f8eb0b3e71038423e8eb2e14d78dc4ca33a', class: "control_arrow", focusable: "false", preserveAspectRatio: "xMidYMid meet", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", "aria-hidden": "true", width: "16", height: "16", viewBox: "0 0 448 512" }, index$1.h("path", { key: '48f1408c0ebaa4c3b0c947dd4d9fdb2ab21a11c9', d: "M441.9 167.3l-19.8-19.8c-4.7-4.7-12.3-4.7-17 0L224 328.2 42.9 147.5c-4.7-4.7-12.3-4.7-17 0L6.1 167.3c-4.7 4.7-4.7 12.3 0 17l209.4 209.4c4.7 4.7 12.3 4.7 17 0l209.4-209.4c4.7-4.7 4.7-12.3 0-17z" }))), this.open && index$1.h("div", { key: '8915c7c514f6847a0d479c3ad1d39e00dbef46c2', ref: (el) => (this.optionsEl = el), id: this.listboxId, role: "listbox", "aria-multiselectable": this.multiple ? 'true' : null, class: { options: true, right: this._appliedPosition() === 'right', search: !!this.search } }, this.search && (index$1.h("div", { key: '2f59d1e41e8cf05038174123bad5b55038be5d75', class: "options_search" }, index$1.h("xv-text-input-v2", { key: '8670ba300bb2410d9ba708f4d07ba8f8def0c6c9', type: "search", ref: (el) => (this.searchInputEl = el), block: true, autocomplete: "off", size: this.size, value: this.searchQuery, placeholder: this.searchPlaceholder, onValueChange: this.handleSearchInput }))), index$1.h("slot", { key: "xv-dropdown-options" })), message && index$1.h("p", { key: 'cade20ffd199293bcdb1ee7fa5c6d20e7294929e', class: "helper" }, message.text)));
|
|
80921
80982
|
}
|
|
80922
80983
|
componentDidLoad() {
|
|
80923
80984
|
this.syncOpenState();
|
|
@@ -81020,7 +81081,7 @@ const XvDropdownItem = class {
|
|
|
81020
81081
|
});
|
|
81021
81082
|
}
|
|
81022
81083
|
render() {
|
|
81023
|
-
return (index$1.h(index$1.Host, { key: '
|
|
81084
|
+
return (index$1.h(index$1.Host, { key: 'f099e23dd392e97ec646b24d88758ba47568fe15', class: "xv-dropdown-item", value: this.value, role: "option", tabindex: this.disabled ? -1 : false }, this.multiple && (index$1.h("xv-checkbox-v2", { key: '27641c4a60485d70a61b72c8dad725c2c7f9390f', class: "multiple-check", size: this.size, checked: this.selected, disabled: this.disabled })), index$1.h("slot", { key: 'eefbe58b06a4c2995e2561e78436f724fee77021' }), (!this.multiple && this.selected) && index$1.h("span", { key: '57b640d72e80899786d9d14659cc79a003907ba5', class: "checkmark far fa-check" })));
|
|
81024
81085
|
}
|
|
81025
81086
|
componentWillLoad() {
|
|
81026
81087
|
if (!this.value)
|
|
@@ -81036,7 +81097,7 @@ var XvFileUploaderVariants;
|
|
|
81036
81097
|
XvFileUploaderVariants["DRAG_DROP"] = "drag-drop";
|
|
81037
81098
|
})(XvFileUploaderVariants || (XvFileUploaderVariants = {}));
|
|
81038
81099
|
|
|
81039
|
-
const xvFileUploaderCss = () => `:host{font-family:inherit;display:flex;flex-direction:column;gap:var(--spacing-05);font-size:14px}:host .label{font-weight:600;font-size:1em;color:var(--text-primary)}:host .description{font-size:1em;margin:0;color:var(--text-secondary)}:host .upload-btn{padding:0 1.14em;border-radius:0.285em;background-color:var(--background-inverse);color:var(--text-inverse);border:none;cursor:pointer;font-size:1em;height:2.86em;transition:250ms ease-in-out background-color}:host .upload-btn:hover{background-color:var(--background-inverse-hover)}:host .drop-zone{min-height:90px;border:1px dashed var(--border-strong-01);background-color:transparent;padding:1.14em;border-radius:0.285em;transition:border-color 0.2s ease, background-color 0.2s ease;font-size:1em;cursor:pointer}:host .drop-zone.active{border-color:var(--border-interactive);background-color:var(--background-active)}:host .drop-zone:hover{background-color:var(--background-hover)}:host .file-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}:host .file-list .file{border-radius:3px;background-color:var(--layer-01, #F7F7F7);font-size:1em}:host .file-list .file_container{padding:var(--spacing-04) var(--spacing-05);display:flex;justify-content:space-between;align-items:center}:host .file-list .file_container_name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;color:var(--text-primary, #333);font-style:normal;font-weight:400;line-height:128.571%;letter-spacing:0.16px;padding-right:var(--spacing-04)}:host .file-list .file_container_errorIcon{color:var(--text-error);margin-right:var(--spacing-03)}:host .file-list .file.withError{outline:2px solid var(--support-error)}:host .error-container{padding:var(--spacing-04) var(--spacing-05);font-size:0.858em;font-style:normal;font-weight:400;color:var(--text-error)}:host .error-container_primary,:host .error-container_secondary{margin:0;padding:0}:host .error-container_secondary{color:var(--text-secondary, #515151);white-space:pre-line}:host .
|
|
81100
|
+
const xvFileUploaderCss = () => `:host{font-family:inherit;display:flex;flex-direction:column;gap:var(--spacing-05);font-size:14px}:host .label{font-weight:600;font-size:1em;color:var(--text-primary)}:host .description{font-size:1em;margin:0;color:var(--text-secondary);white-space:pre-line}:host .upload-btn{padding:0 1.14em;border-radius:0.285em;background-color:var(--background-inverse);color:var(--text-inverse);border:none;cursor:pointer;font-size:1em;height:2.86em;transition:250ms ease-in-out background-color}:host .upload-btn:hover{background-color:var(--background-inverse-hover)}:host .drop-zone{min-height:90px;border:1px dashed var(--border-strong-01);background-color:transparent;color:var(--link-primary, #346800);padding:1.14em;border-radius:0.285em;transition:border-color 0.2s ease, background-color 0.2s ease;font-size:1em;cursor:pointer}:host .drop-zone.active{border-color:var(--border-interactive);background-color:var(--background-active)}:host .drop-zone:hover{background-color:var(--background-hover)}:host .file-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}:host .file-list .file{border-radius:3px;background-color:var(--layer-01, #F7F7F7);font-size:1em}:host .file-list .file_container{padding:var(--spacing-04) var(--spacing-05);display:flex;justify-content:space-between;align-items:center}:host .file-list .file_container_name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;color:var(--text-primary, #333);font-style:normal;font-weight:400;line-height:128.571%;letter-spacing:0.16px;padding-right:var(--spacing-04)}:host .file-list .file_container_errorIcon{color:var(--text-error);margin-right:var(--spacing-03)}:host .file-list .file.withError{outline:2px solid var(--support-error)}:host .error-container{padding:var(--spacing-04) var(--spacing-05);font-size:0.858em;font-style:normal;font-weight:400;color:var(--text-error)}:host .error-container_primary,:host .error-container_secondary{margin:0;padding:0}:host .error-container_secondary{color:var(--text-secondary, #515151);white-space:pre-line}:host .message{display:flex;align-items:center;gap:var(--spacing-03);text-align:left;margin:0;padding:0 var(--spacing-05);font-size:0.858em;font-style:normal;font-weight:400;color:var(--text-helper, #646464)}:host .message.error{color:var(--text-error)}:host .message.warning{color:var(--text-secondary, #515151)}:host .message .status-icon{display:inline-flex;align-items:center;justify-content:center;flex:none}:host .message .status-icon.error{width:16px;height:16px;border-radius:8px;background-color:var(--support-error);color:white;font-size:12px;font-weight:bold}:host .message .status-icon.warning{color:var(--support-warning, #FF7F04);font-size:1.15em}:host(.disabled){pointer-events:none;opacity:0.6}:host(.disabled) .upload-btn,:host(.disabled) .drop-zone{cursor:not-allowed;background-color:var(--button-disabled-background, #ccc);color:var(--button-disabled-text, #666);border-color:var(--border-disabled, #bbb)}:host(.disabled) .remove-btn{display:none}:host(.error) .uploadBtn{outline:1px solid var(--support-error);border-radius:0.285em}:host(.error) .drop-zone{border-color:var(--support-error)}:host(.warning) .uploadBtn{outline:1px solid var(--support-warning, #FF7F04);border-radius:0.285em}:host(.warning) .drop-zone{border-color:var(--support-warning, #FF7F04)}:host([size=xs]){font-size:10px}:host([size=sm]){font-size:12px}:host([size=md]){font-size:14px}:host([size=lg]){font-size:18px}:host([size=xl]){font-size:22px}`;
|
|
81040
81101
|
|
|
81041
81102
|
const XvFileUploader = class {
|
|
81042
81103
|
constructor(hostRef) {
|
|
@@ -81055,6 +81116,8 @@ const XvFileUploader = class {
|
|
|
81055
81116
|
this.errors = [];
|
|
81056
81117
|
this.dragActive = false;
|
|
81057
81118
|
this.errorMessages = [];
|
|
81119
|
+
// Kept apart from `error` so a consumer-supplied message survives the next pick.
|
|
81120
|
+
this.internalError = null;
|
|
81058
81121
|
this.onFileSelect = (event) => {
|
|
81059
81122
|
const input = event.target;
|
|
81060
81123
|
const selectedFiles = Array.from(input.files || []);
|
|
@@ -81093,10 +81156,10 @@ const XvFileUploader = class {
|
|
|
81093
81156
|
const uniqueFiles = [];
|
|
81094
81157
|
for (const file of files) {
|
|
81095
81158
|
let error = null;
|
|
81096
|
-
if (
|
|
81097
|
-
|
|
81098
|
-
|
|
81099
|
-
|
|
81159
|
+
if (seenFileNames.has(file.name))
|
|
81160
|
+
continue;
|
|
81161
|
+
seenFileNames.add(file.name);
|
|
81162
|
+
uniqueFiles.push(file);
|
|
81100
81163
|
const dotIndex = file.name.lastIndexOf('.');
|
|
81101
81164
|
const extension = file.name.substring(dotIndex).toLowerCase();
|
|
81102
81165
|
const isAccepted = this.accept.length === 0 || this.accept.some(type => type.toLowerCase() === extension);
|
|
@@ -81108,7 +81171,7 @@ const XvFileUploader = class {
|
|
|
81108
81171
|
}
|
|
81109
81172
|
errorMessages.push(error);
|
|
81110
81173
|
}
|
|
81111
|
-
this.
|
|
81174
|
+
this.internalError = uniqueFiles.length > this.maxFiles
|
|
81112
81175
|
? `Only ${this.maxFiles} file(s) allowed.`
|
|
81113
81176
|
: null;
|
|
81114
81177
|
this.errorMessages = errorMessages;
|
|
@@ -81124,7 +81187,15 @@ const XvFileUploader = class {
|
|
|
81124
81187
|
}
|
|
81125
81188
|
}
|
|
81126
81189
|
render() {
|
|
81127
|
-
|
|
81190
|
+
const error = this.error || this.internalError;
|
|
81191
|
+
const message = index$2.resolveFieldMessage({ error, warning: this.warning, helper: this.helper });
|
|
81192
|
+
return (index$1.h(index$1.Host, { key: '04568eba6facb5a18a4b4bc9ae6de9ce0f3e3db7', class: {
|
|
81193
|
+
'upload-wrapper': true,
|
|
81194
|
+
[`uploader-${this.size}`]: true,
|
|
81195
|
+
disabled: !!this.disabled,
|
|
81196
|
+
error: !!error,
|
|
81197
|
+
warning: !!this.warning && !error,
|
|
81198
|
+
} }, this.label && index$1.h("label", { key: '5c5861bee814ecacdd43fd92dcb47240869f895b', class: "label" }, this.label), this.description && index$1.h("p", { key: 'd4a5de6bb093e02010ba98031dd5eda4c748ec9f', class: "description" }, this.description), this.variant === 'button' ? (index$1.h("xv-button-v2", { class: "uploadBtn", variant: this.buttonVariant, disabled: this.disabled, onClick: () => this.fileInput.click() }, this.addText || 'Dateien auswählen')) : (index$1.h("div", { class: { 'drop-zone': true, active: this.dragActive }, onDrop: this.onDrop, onDragOver: this.onDragOver, onDragLeave: this.onDragLeave, onClick: () => this.fileInput.click() }, this.addText || 'Dateien hierher ziehen oder darauf klicken, um eine Datei auszuwählen.')), index$1.h("input", { key: '08df6268214165b3b40ae177de230eae800d1a23', ref: el => (this.fileInput = el), type: "file", hidden: true, onChange: this.onFileSelect, multiple: this.multiple, accept: this.accept.join(',') }), message && (index$1.h("p", { key: '8f777fdc47a98f8ff9be67fafb8b1da79eabad09', class: { message: true, [message.level]: true } }, message.level === 'error' && index$1.h("span", { key: '4c550a739de39651a8326569546162b08555ef63', class: "status-icon error", "aria-hidden": "true" }, "!"), message.level === 'warning' && index$1.h("span", { key: 'b8a8229a57c053f94b691d86404313677b1f26ca', class: "status-icon warning", "aria-hidden": "true" }, "\u26A0"), message.text)), index$1.h("ul", { key: '6d82ac56ab535618bc958068c06ff987bdab1022', class: "file-list" }, this.files.map((file, index) => {
|
|
81128
81199
|
var _a, _b;
|
|
81129
81200
|
return (index$1.h("li", { class: { file: true, withError: !!(((_a = this.errors) === null || _a === void 0 ? void 0 : _a[index]) || ((_b = this.errorMessages) === null || _b === void 0 ? void 0 : _b[index])) } }, index$1.h("div", { class: "file_container" }, index$1.h("span", { class: "file_container_name" }, file.name), this._renderLoaderState(index)), this._renderError(index)));
|
|
81130
81201
|
}))));
|
|
@@ -81196,7 +81267,7 @@ const Xvfooter = class {
|
|
|
81196
81267
|
render() {
|
|
81197
81268
|
const { categories, socials, logo, legalLinks, payments, partners, advantages } = this.data || {};
|
|
81198
81269
|
const hasDataLength = ((categories === null || categories === void 0 ? void 0 : categories.length) || (partners === null || partners === void 0 ? void 0 : partners.length) || (payments === null || payments === void 0 ? void 0 : payments.length) || (socials === null || socials === void 0 ? void 0 : socials.length));
|
|
81199
|
-
return (index$1.h("footer", { key: '
|
|
81270
|
+
return (index$1.h("footer", { key: '726a05b831d337bdef052ca16b478a85ef5dfd9b', class: "xv-footer" }, (advantages === null || advantages === void 0 ? void 0 : advantages.length) > 0 && (index$1.h("div", { key: '22a41f8bd514f4b61bc62df31ddcabc5de7b7bc6', class: "xv-footer-advantages" }, index$1.h("div", { key: '5e4035e086ad3bd7987ff802736096c4364f8530', class: "xv-container" }, this._renderFooterList(advantages, { itemWithLabel: true })))), hasDataLength && (index$1.h("div", { key: '003822874e51506b991f76e92c4f5d8c96073f99', class: "xv-container" }, index$1.h("div", { key: '4e09e7f929eff1a781d6d64120915ca4d30f5d86', class: "xv-footer__grid xv-footer-y-spacing" }, index$1.h("div", { key: 'ebd4fd1e5e72fd08f9c49c10bf0e760fb644864f', class: "xv-footer__col-main" }, index$1.h("ul", { key: 'bdfa7fc3986ea83b3b3514ae61e0c463f1070f3c', class: "xv-footer-categories" }, categories === null || categories === void 0 ? void 0 : categories.map((category) => (index$1.h("li", null, index$1.h("p", { class: "xv-label-02" }, category.label), index$1.h("ul", { class: "xv-footer-routes" }, category.routes.map((item) => (index$1.h("li", null, index$1.h("a", { class: "xv-body-compact-02", href: item.href, target: item.target }, item.label)))))))))), index$1.h("div", { key: 'f912a89f9b8132ae932a12ab3ff844e4781ecd48', class: "xv-footer__col-sidebar" }, this._renderFooterList(partners, { label: 'crossvertise Partner' }), this._renderFooterList(payments, { label: 'Bequem und sicher bezahlen' }), this._renderFooterList(socials, { label: 'Folgen Sie uns', isRow: true }))))), (legalLinks === null || legalLinks === void 0 ? void 0 : legalLinks.length) > 0 && (index$1.h("div", { key: '0ab1803fd376c5f10be8b0e664d81dd8158577de', class: "xv-footer-legal" }, index$1.h("div", { key: 'b755d56da4c5ce178a1b3b0e1883e3444144b54b', class: "xv-container" }, index$1.h("div", { key: '356cc0b19cccf1e69b5531ff580a6c63274c0783', class: "xv-footer-legal-row" }, logo && (index$1.h("a", { key: '325a93b944d086c42565bdf6b973301f25fbd778', class: "xv-footer-logo", href: logo.href, target: logo.target }, logo.label && index$1.h("span", { key: '6292ac8dc8630818902d96da3b275e1e3f763281', class: "xv-label-02" }, logo.label), index$1.h("img", { key: '847e90de5ebb14fdf255c7c37ad1f90c99424f02', loading: "lazy", src: logo.image, alt: logo.label }))), index$1.h("ul", { key: 'd692fb126d2e382fe142fd3b033f794fc38f66fd' }, legalLinks.map((item) => {
|
|
81200
81271
|
if (item.label === 'Cookie Einstellungen') {
|
|
81201
81272
|
return index$1.h("li", null, index$1.h("a", { class: "xv-helper-text-02", onClick: this.openCookieSettings }, item.label));
|
|
81202
81273
|
}
|
|
@@ -81212,6 +81283,561 @@ const Xvfooter = class {
|
|
|
81212
81283
|
};
|
|
81213
81284
|
Xvfooter.style = xvFooterCss();
|
|
81214
81285
|
|
|
81286
|
+
const xvGeoMapCss = () => `.maplibregl-map{font:12px/20px Helvetica Neue, Arial, Helvetica, sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.maplibregl-canvas{position:absolute;left:0;top:0}.maplibregl-map:fullscreen{width:100%;height:100%}.maplibregl-ctrl-group button.maplibregl-ctrl-compass{touch-action:none}.maplibregl-canvas-container.maplibregl-interactive,.maplibregl-ctrl-group button.maplibregl-ctrl-compass{cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer{cursor:pointer}.maplibregl-canvas-container.maplibregl-interactive:active,.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active{cursor:grabbing}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-canvas-container.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:pinch-zoom}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:none}.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures,.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right{position:absolute;pointer-events:none;z-index:2}.maplibregl-ctrl-top-left{top:0;left:0}.maplibregl-ctrl-top-right{top:0;right:0}.maplibregl-ctrl-bottom-left{bottom:0;left:0}.maplibregl-ctrl-bottom-right{right:0;bottom:0}.maplibregl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.maplibregl-ctrl-top-left .maplibregl-ctrl{margin:10px 0 0 10px;float:left}.maplibregl-ctrl-top-right .maplibregl-ctrl{margin:10px 10px 0 0;float:right}.maplibregl-ctrl-bottom-left .maplibregl-ctrl{margin:0 0 10px 10px;float:left}.maplibregl-ctrl-bottom-right .maplibregl-ctrl{margin:0 10px 10px 0;float:right}.maplibregl-ctrl-group{border-radius:4px;background:#fff}.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0, 0, 0, 0.1)}@media (forced-colors: active){.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.maplibregl-ctrl-group button{width:29px;height:29px;display:block;padding:0;outline:none;border:0;box-sizing:border-box;background-color:transparent;cursor:pointer}.maplibregl-ctrl-group button+button{border-top:1px solid #ddd}.maplibregl-ctrl button .maplibregl-ctrl-icon{display:block;width:100%;height:100%;background-repeat:no-repeat;background-position:50%}@media (forced-colors: active){.maplibregl-ctrl-icon{background-color:transparent}.maplibregl-ctrl-group button+button{border-top:1px solid ButtonText}}.maplibregl-ctrl button::-moz-focus-inner{border:0;padding:0}.maplibregl-ctrl-attrib-button:focus,.maplibregl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl button:disabled{cursor:not-allowed}.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon{opacity:0.25}@media (hover: hover){.maplibregl-ctrl button:not(:disabled):hover{background-color:rgba(0, 0, 0, 0.05)}}.maplibregl-ctrl button:not(:disabled):active{background-color:rgba(0, 0, 0, 0.05)}.maplibregl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.maplibregl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.maplibregl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.maplibregl-ctrl-group button:focus:only-child{border-radius:inherit}.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}@media (forced-colors: active){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}@media (forced-colors: active) and (prefers-color-scheme: light){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}@media (forced-colors: active){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}@media (forced-colors: active) and (prefers-color-scheme: light){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}@media (forced-colors: active){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}@media (forced-colors: active) and (prefers-color-scheme: light){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-globe .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='none' stroke='%23333' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8.5'/%3E%3Cpath d='M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z'/%3E%3Cpath d='M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z'/%3E%3Cpath d='M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm0 9c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm0-4c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-globe-enabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='none' stroke='%2333b5e5' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8.5'/%3E%3Cpath d='M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z'/%3E%3Cpath d='M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z'/%3E%3Cpath d='M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm0 9c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm0-4c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%23333' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%2333b5e5' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23aaa' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon{animation:maplibregl-spin 2s linear infinite}@media (forced-colors: active){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23999' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}}@media (forced-colors: active) and (prefers-color-scheme: light){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23666' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}}@keyframes maplibregl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a.maplibregl-ctrl-logo{width:88px;height:23px;margin:0 0 -4px -4px;display:block;background-repeat:no-repeat;cursor:pointer;overflow:hidden;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}a.maplibregl-ctrl-logo.maplibregl-compact{width:14px}@media (forced-colors: active){a.maplibregl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}@media (forced-colors: active) and (prefers-color-scheme: light){a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}.maplibregl-ctrl.maplibregl-ctrl-attrib{padding:0 5px;background-color:hsla(0, 0%, 100%, 0.5);margin:0}@media screen{.maplibregl-ctrl-attrib.maplibregl-compact{min-height:20px;padding:2px 24px 2px 0;margin:10px;position:relative;background-color:#fff;color:#000;border-radius:12px;box-sizing:content-box}.maplibregl-ctrl-attrib.maplibregl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show,.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show{padding:2px 8px 2px 28px;border-radius:12px}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner{display:none}.maplibregl-ctrl-attrib-button{display:none;cursor:pointer;position:absolute;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");background-color:hsla(0, 0%, 100%, 0.5);width:24px;height:24px;box-sizing:border-box;border-radius:12px;outline:none;top:0;right:0;border:0}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;list-style:none}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker{display:none}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button{left:0}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{display:block}.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button{background-color:rgba(0, 0, 0, 0.05)}.maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;right:0}.maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{top:0;right:0}.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{top:0;left:0}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;left:0}}@media screen and (forced-colors: active){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (forced-colors: active) and (prefers-color-scheme: light){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.maplibregl-ctrl-attrib a{color:rgba(0, 0, 0, 0.75);text-decoration:none}.maplibregl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.maplibregl-attrib-empty{display:none}.maplibregl-ctrl-scale{background-color:hsla(0, 0%, 100%, 0.75);font-size:10px;white-space:nowrap;border:2px solid #333;border-top:#333;padding:0 5px;color:#333;box-sizing:border-box}.maplibregl-popup{position:absolute;top:0;left:0;display:flex;will-change:transform;pointer-events:none}.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right{flex-direction:column}.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right{flex-direction:column-reverse}.maplibregl-popup-anchor-left{flex-direction:row}.maplibregl-popup-anchor-right{flex-direction:row-reverse}.maplibregl-popup-tip{width:0;height:0;border:10px solid transparent;z-index:1}.maplibregl-popup-anchor-top .maplibregl-popup-tip{align-self:center;border-top:none;border-bottom-color:#fff}.maplibregl-popup-anchor-top-left .maplibregl-popup-tip{align-self:flex-start;border-top:none;border-left:none;border-bottom-color:#fff}.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{align-self:flex-end;border-top:none;border-right:none;border-bottom-color:#fff}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.maplibregl-popup-anchor-left .maplibregl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.maplibregl-popup-anchor-right .maplibregl-popup-tip{align-self:center;border-right:none;border-left-color:#fff}[dir=rtl] .maplibregl-popup-anchor-left{flex-direction:row-reverse}[dir=rtl] .maplibregl-popup-anchor-right{flex-direction:row}[dir=rtl] .maplibregl-popup-anchor-top-left .maplibregl-popup-tip{align-self:flex-end}[dir=rtl] .maplibregl-popup-anchor-top-right .maplibregl-popup-tip{align-self:flex-start}[dir=rtl] .maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip{align-self:flex-end}[dir=rtl] .maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{align-self:flex-start}.maplibregl-popup-close-button{position:absolute;right:0;top:0;border:0;border-radius:0 3px 0 0;cursor:pointer;background-color:transparent}.maplibregl-popup-close-button:hover{background-color:rgba(0, 0, 0, 0.05)}.maplibregl-popup-content{position:relative;background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0, 0, 0, 0.1);padding:15px 10px;pointer-events:auto}.maplibregl-popup-anchor-top-left .maplibregl-popup-content{border-top-left-radius:0}.maplibregl-popup-anchor-top-right .maplibregl-popup-content{border-top-right-radius:0}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content{border-bottom-left-radius:0}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content{border-bottom-right-radius:0}.maplibregl-popup-track-pointer{display:none}.maplibregl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-map:hover .maplibregl-popup-track-pointer{display:flex}.maplibregl-map:active .maplibregl-popup-track-pointer{display:none}.maplibregl-marker{position:absolute;top:0;left:0;will-change:transform;transition:opacity 0.2s}.maplibregl-marker-draggable{cursor:grab}.maplibregl-user-location-dot,.maplibregl-user-location-dot:before{background-color:#1da1f2;width:15px;height:15px;border-radius:50%}.maplibregl-user-location-dot:before{content:"";position:absolute;animation:maplibregl-user-location-dot-pulse 2s infinite}.maplibregl-user-location-dot:after{border-radius:50%;border:2px solid #fff;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px;box-sizing:border-box;box-shadow:0 0 3px rgba(0, 0, 0, 0.35)}@media (prefers-reduced-motion: reduce){.maplibregl-user-location-dot:before{animation:none}}@keyframes maplibregl-user-location-dot-pulse{0%{transform:scale(1);opacity:1}70%{transform:scale(3);opacity:0}to{transform:scale(1);opacity:0}}.maplibregl-user-location-dot-stale{background-color:#aaa}.maplibregl-user-location-dot-stale:after{display:none}.maplibregl-user-location-accuracy-circle{background-color:#1da1f233;width:1px;height:1px;border-radius:100%}.maplibregl-crosshair,.maplibregl-crosshair .maplibregl-interactive,.maplibregl-crosshair .maplibregl-interactive:active{cursor:crosshair}.maplibregl-boxzoom{position:absolute;top:0;left:0;width:0;height:0;background:#fff;border:2px dotted #202020;opacity:0.5}.maplibregl-cooperative-gesture-screen{background:rgba(0, 0, 0, 0.4);position:absolute;inset:0;display:flex;justify-content:center;align-items:center;color:#fff;padding:1rem;font-size:1.4em;line-height:1.2;opacity:0;pointer-events:none;transition:opacity 1s ease 1s;z-index:99999}.maplibregl-cooperative-gesture-screen.maplibregl-show{opacity:1;transition:opacity 0.05s}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:none}@media (hover: none), (pointer: coarse){.maplibregl-cooperative-gesture-screen .maplibregl-desktop-message{display:none}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:block}}.maplibregl-pseudo-fullscreen{position:fixed !important;width:100% !important;height:100% !important;top:0 !important;left:0 !important;z-index:99999}:host{display:block;--xv-geo-map-height:480px}.container{position:relative;height:var(--xv-geo-map-height);border:1px solid var(--border-subtle-01);border-radius:var(--spacing-02);overflow:hidden;background:var(--layer-layer-01, #fff)}.map{height:100%}.hint{position:absolute;top:var(--spacing-04);left:50%;transform:translateX(-50%);padding:var(--spacing-02) var(--spacing-04);border-radius:var(--spacing-05);background:rgba(0, 0, 0, 0.72);color:#fff;font-family:var(--ff-body);font-size:var(--fz-sm);pointer-events:none}.xv-geo-map-tooltip .maplibregl-popup-content{font-family:var(--ff-body);font-size:var(--fz-sm);color:var(--text-primary);background:var(--layer-layer-01, #fff);border:1px solid var(--border-subtle-01);border-radius:var(--spacing-02);padding:var(--spacing-03) var(--spacing-04);box-shadow:0 2px 8px rgba(0, 0, 0, 0.12);pointer-events:none}.xv-geo-map-tooltip .maplibregl-popup-content em{color:var(--text-secondary);font-style:normal;font-size:var(--fz-xs)}.xv-geo-map-tooltip{pointer-events:none}.skeleton{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--layer-layer-01, #fff);color:var(--text-secondary);font-family:var(--ff-body);font-size:var(--fz-md)}.skeleton.error{color:var(--text-error)}.search{position:absolute;top:10px;left:10px;width:240px;font-family:var(--ff-body);font-size:var(--fz-sm, 13px)}.search input{width:100%;padding:8px 10px;border:1px solid var(--border-subtle-01, #d0d0d0);border-radius:6px;background:var(--layer-layer-01, #fff);box-shadow:0 1px 4px rgba(0, 0, 0, 0.12);font:inherit;outline:none}.search input:focus{border-color:var(--interactive-02, #76b82a)}.search-results{margin:4px 0 0;padding:0;list-style:none;background:var(--layer-layer-01, #fff);border:1px solid var(--border-subtle-01, #d0d0d0);border-radius:6px;box-shadow:0 2px 8px rgba(0, 0, 0, 0.15);max-height:220px;overflow-y:auto}.search-results li{padding:7px 10px;cursor:pointer}.search-results li:hover{background:var(--highlight-01, #f2f8e9)}`;
|
|
81287
|
+
|
|
81288
|
+
// Xv.Api wraps responses in { data: ... } (ResponseEnvelopeFilter); the XvGeoTool API returns raw payloads.
|
|
81289
|
+
const unwrap = (json) => (json != null && !Array.isArray(json) && 'data' in json ? json.data : json);
|
|
81290
|
+
// Germany bounding box (with a small margin) — the map cannot be panned outside
|
|
81291
|
+
const GERMANY_BOUNDS = [[4.5, 46.4], [16.5, 55.6]];
|
|
81292
|
+
// amber: distinct from the green selection AND from CARTO's road/water tones
|
|
81293
|
+
const PREVIEW_COLOR = '#f59e0b';
|
|
81294
|
+
const XvGeoMap = class {
|
|
81295
|
+
constructor(hostRef) {
|
|
81296
|
+
index$1.registerInstance(this, hostRef);
|
|
81297
|
+
this.changeSelection = index$1.createEvent(this, "changeSelection", 7);
|
|
81298
|
+
this.mapReady = index$1.createEvent(this, "mapReady", 7);
|
|
81299
|
+
/**
|
|
81300
|
+
* Base URL of the geo API (Xv.Api v1/geo — contract-compatible with the XvGeoTool API).
|
|
81301
|
+
* Default is the same-origin Front Door route, so no CORS is involved on crossvertise pages.
|
|
81302
|
+
*/
|
|
81303
|
+
this.apiBase = '/api-fd/v1/geo';
|
|
81304
|
+
/** Indicator whose per-unit values feed the tooltips and the emitted population sum (e.g. ATV_DEVICES) */
|
|
81305
|
+
this.indicator = 'MBI_P_T_2025';
|
|
81306
|
+
/** Unit label shown behind the indicator value in the tooltip */
|
|
81307
|
+
this.indicatorLabel = 'Einwohner';
|
|
81308
|
+
/** Geo level to display and select: plz5, gemeinde, kreis, regbez, bundesland */
|
|
81309
|
+
this.level = 'plz5';
|
|
81310
|
+
/** Shape resolution: medium = simplified geometry (snappy), high = originals */
|
|
81311
|
+
this.resolution = 'medium';
|
|
81312
|
+
/**
|
|
81313
|
+
* MapLibre style URL for the vector basemap. Default: OpenFreeMap Positron — the same
|
|
81314
|
+
* pale data-overlay look as the previous CARTO light, free for commercial use, no API
|
|
81315
|
+
* key (openfreemap.org). Set to an empty string to fall back to the raster `tiles` path.
|
|
81316
|
+
*/
|
|
81317
|
+
this.styleUrl = 'https://tiles.openfreemap.org/styles/positron';
|
|
81318
|
+
/**
|
|
81319
|
+
* Label language for the vector basemap (OpenMapTiles `name:{lang}` attribute, falling
|
|
81320
|
+
* back to the place's local name). Empty string keeps the style's own labels.
|
|
81321
|
+
*/
|
|
81322
|
+
this.language = 'de';
|
|
81323
|
+
/**
|
|
81324
|
+
* Raster tile URL template, used only when `style-url` is empty. The former CARTO
|
|
81325
|
+
* default now watermarks keyless traffic ("API KEY REQUIRED"), so this path needs a
|
|
81326
|
+
* keyed/licensed tile URL.
|
|
81327
|
+
*/
|
|
81328
|
+
this.tiles = 'https://basemaps.cartocdn.com/rastertiles/light_all/{z}/{x}/{y}@2x.png';
|
|
81329
|
+
this.attribution = '© CARTO, © OpenStreetMap contributors';
|
|
81330
|
+
/** Initial map center */
|
|
81331
|
+
this.centerLng = 10.45;
|
|
81332
|
+
this.centerLat = 51.16;
|
|
81333
|
+
this.zoom = 5.5;
|
|
81334
|
+
/** Minimum zoom before boundaries are loaded and selectable (use ~5 for bundesland, 9 for plz5) */
|
|
81335
|
+
this.selectZoom = 9;
|
|
81336
|
+
/** Load the map bundle only when scrolled near the viewport (default: true) */
|
|
81337
|
+
this.lazy = true;
|
|
81338
|
+
this.ready = false;
|
|
81339
|
+
this.loadError = false;
|
|
81340
|
+
this.zoomGated = true;
|
|
81341
|
+
this.searchResults = [];
|
|
81342
|
+
this.searchQuery = '';
|
|
81343
|
+
this.searchSeq = 0;
|
|
81344
|
+
this.initStarted = false;
|
|
81345
|
+
this.readyPromise = new Promise(res => (this.resolveReady = res));
|
|
81346
|
+
this.units = new Map(); // code -> unit, accumulated across viewports
|
|
81347
|
+
this.selected = new Map(); // code -> unit
|
|
81348
|
+
this.preview = new Map(); // optimizer proposal (visual only)
|
|
81349
|
+
this.populations = new Map(); // code -> indicator value (for tooltips + local sums)
|
|
81350
|
+
this.fetchedBoxes = []; // areas already loaded
|
|
81351
|
+
this.fetchSeq = 0;
|
|
81352
|
+
this.popSeq = 0;
|
|
81353
|
+
}
|
|
81354
|
+
/** switching the level (e.g. PLZ mode -> Bundesländer mode) resets all loaded data and the selection */
|
|
81355
|
+
levelChanged() {
|
|
81356
|
+
if (!this.map)
|
|
81357
|
+
return;
|
|
81358
|
+
this.units.clear();
|
|
81359
|
+
this.selected.clear();
|
|
81360
|
+
this.populations.clear();
|
|
81361
|
+
this.fetchedBoxes = [];
|
|
81362
|
+
this.fetchSeq++;
|
|
81363
|
+
this.renderUnits();
|
|
81364
|
+
this.updateSelectedFilter();
|
|
81365
|
+
this.emitSelection();
|
|
81366
|
+
// follow the mode with the camera: out to the overview for coarse levels,
|
|
81367
|
+
// in to selectable zoom for fine ones. Deferred so a select-zoom attribute
|
|
81368
|
+
// changing in the same render is already applied.
|
|
81369
|
+
setTimeout(() => {
|
|
81370
|
+
var _a;
|
|
81371
|
+
(_a = this.map) === null || _a === void 0 ? void 0 : _a.easeTo({ zoom: this.selectZoom + 0.5, duration: 800 });
|
|
81372
|
+
this.refreshUnits();
|
|
81373
|
+
}, 0);
|
|
81374
|
+
}
|
|
81375
|
+
selectZoomChanged() {
|
|
81376
|
+
if (!this.map)
|
|
81377
|
+
return;
|
|
81378
|
+
['units-fill', 'units-hover', 'units-line'].forEach(l => this.map.setLayerZoomRange(l, this.selectZoom, 24));
|
|
81379
|
+
this.refreshUnits();
|
|
81380
|
+
}
|
|
81381
|
+
componentDidLoad() {
|
|
81382
|
+
if (!this.lazy || !('IntersectionObserver' in window)) {
|
|
81383
|
+
this.initMap();
|
|
81384
|
+
return;
|
|
81385
|
+
}
|
|
81386
|
+
this.observer = new IntersectionObserver(entries => {
|
|
81387
|
+
var _a;
|
|
81388
|
+
if (entries.some(e => e.isIntersecting)) {
|
|
81389
|
+
(_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
81390
|
+
this.initMap();
|
|
81391
|
+
}
|
|
81392
|
+
}, { rootMargin: '300px' });
|
|
81393
|
+
this.observer.observe(this.el);
|
|
81394
|
+
}
|
|
81395
|
+
disconnectedCallback() {
|
|
81396
|
+
var _a, _b;
|
|
81397
|
+
(_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
81398
|
+
(_b = this.map) === null || _b === void 0 ? void 0 : _b.remove();
|
|
81399
|
+
}
|
|
81400
|
+
async initMap() {
|
|
81401
|
+
if (this.initStarted)
|
|
81402
|
+
return;
|
|
81403
|
+
this.initStarted = true;
|
|
81404
|
+
try {
|
|
81405
|
+
const maplibregl = await Promise.resolve().then(function () { return require('./maplibre-gl-CCZS3Rg5.js'); });
|
|
81406
|
+
if (this.workerUrl) {
|
|
81407
|
+
maplibregl.setWorkerUrl(new URL(this.workerUrl, document.baseURI).href);
|
|
81408
|
+
}
|
|
81409
|
+
const map = new maplibregl.Map({
|
|
81410
|
+
container: this.mapContainer,
|
|
81411
|
+
style: this.styleUrl || {
|
|
81412
|
+
version: 8,
|
|
81413
|
+
sources: {
|
|
81414
|
+
basemap: {
|
|
81415
|
+
type: 'raster',
|
|
81416
|
+
tiles: [this.tiles],
|
|
81417
|
+
tileSize: 256,
|
|
81418
|
+
attribution: this.attribution,
|
|
81419
|
+
},
|
|
81420
|
+
},
|
|
81421
|
+
layers: [{ id: 'basemap', type: 'raster', source: 'basemap' }],
|
|
81422
|
+
},
|
|
81423
|
+
center: [this.centerLng, this.centerLat],
|
|
81424
|
+
zoom: this.zoom,
|
|
81425
|
+
minZoom: 5,
|
|
81426
|
+
maxBounds: GERMANY_BOUNDS,
|
|
81427
|
+
attributionControl: { compact: true },
|
|
81428
|
+
});
|
|
81429
|
+
this.map = map;
|
|
81430
|
+
this.el._map = map; // e2e/test handle
|
|
81431
|
+
map.addControl(new maplibregl.NavigationControl({ showCompass: false }));
|
|
81432
|
+
map.on('load', () => {
|
|
81433
|
+
// The hosted style labels in international/English names ("Rhineland Palatinate"),
|
|
81434
|
+
// mixed with local ones. The tile data carries per-language names, so rewrite every
|
|
81435
|
+
// name-based label layer to prefer the configured language over the style default.
|
|
81436
|
+
if (this.styleUrl && this.language) {
|
|
81437
|
+
for (const layer of map.getStyle().layers) {
|
|
81438
|
+
if (layer.type !== 'symbol')
|
|
81439
|
+
continue;
|
|
81440
|
+
const textField = map.getLayoutProperty(layer.id, 'text-field');
|
|
81441
|
+
if (textField && JSON.stringify(textField).includes('name')) {
|
|
81442
|
+
map.setLayoutProperty(layer.id, 'text-field', [
|
|
81443
|
+
'coalesce',
|
|
81444
|
+
['get', `name:${this.language}`],
|
|
81445
|
+
['get', 'name'],
|
|
81446
|
+
]);
|
|
81447
|
+
}
|
|
81448
|
+
}
|
|
81449
|
+
}
|
|
81450
|
+
// Design tokens (Masha, MAR-15783): selection = highlight-01 fill / interactive-02
|
|
81451
|
+
// outline; optimizer preview = highlight-02 fill / interactive-01 outline. Fallbacks
|
|
81452
|
+
// keep the previous XV green/amber where the host page lacks the tokens.
|
|
81453
|
+
const style = getComputedStyle(this.el);
|
|
81454
|
+
const token = (name, fallback) => style.getPropertyValue(name).trim() || fallback;
|
|
81455
|
+
const accent = token('--link-primary', '#76b82a');
|
|
81456
|
+
const selectionFill = token('--highlight-01', accent);
|
|
81457
|
+
const selectionLine = token('--interactive-02', accent);
|
|
81458
|
+
const previewFill = token('--highlight-02', PREVIEW_COLOR);
|
|
81459
|
+
const previewLine = token('--interactive-01', PREVIEW_COLOR);
|
|
81460
|
+
// the highlight tokens are pale full-strength tints — at the legacy 0.3 opacity they
|
|
81461
|
+
// vanish over the basemap; the saturated fallbacks still need the low opacity
|
|
81462
|
+
const hasTokens = !!style.getPropertyValue('--highlight-01').trim();
|
|
81463
|
+
const selectedOpacity = hasTokens ? 0.85 : 0.35;
|
|
81464
|
+
const previewOpacity = hasTokens ? 0.85 : 0.3;
|
|
81465
|
+
map.addSource('units', { type: 'geojson', data: { type: 'FeatureCollection', features: [] } });
|
|
81466
|
+
// boundary mesh only appears at selectable zoom (cleaner overview);
|
|
81467
|
+
// the selected areas stay visible at every zoom level
|
|
81468
|
+
map.addLayer({
|
|
81469
|
+
id: 'units-fill',
|
|
81470
|
+
type: 'fill',
|
|
81471
|
+
source: 'units',
|
|
81472
|
+
minzoom: this.selectZoom,
|
|
81473
|
+
paint: { 'fill-color': selectionFill, 'fill-opacity': 0.04 },
|
|
81474
|
+
});
|
|
81475
|
+
map.addLayer({
|
|
81476
|
+
id: 'units-selected',
|
|
81477
|
+
type: 'fill',
|
|
81478
|
+
source: 'units',
|
|
81479
|
+
filter: ['in', ['get', 'code'], ['literal', []]],
|
|
81480
|
+
paint: { 'fill-color': selectionFill, 'fill-opacity': selectedOpacity },
|
|
81481
|
+
});
|
|
81482
|
+
// optimizer preview: units a proposal would ADD, in their own tokens so they read
|
|
81483
|
+
// as "suggested" next to the actual selection; visual only, never selected
|
|
81484
|
+
map.addLayer({
|
|
81485
|
+
id: 'units-preview',
|
|
81486
|
+
type: 'fill',
|
|
81487
|
+
source: 'units',
|
|
81488
|
+
filter: ['in', ['get', 'code'], ['literal', []]],
|
|
81489
|
+
paint: { 'fill-color': previewFill, 'fill-opacity': previewOpacity },
|
|
81490
|
+
});
|
|
81491
|
+
map.addLayer({
|
|
81492
|
+
id: 'units-preview-line',
|
|
81493
|
+
type: 'line',
|
|
81494
|
+
source: 'units',
|
|
81495
|
+
filter: ['in', ['get', 'code'], ['literal', []]],
|
|
81496
|
+
paint: { 'line-color': previewLine, 'line-width': 2 },
|
|
81497
|
+
});
|
|
81498
|
+
map.addLayer({
|
|
81499
|
+
id: 'units-hover',
|
|
81500
|
+
type: 'fill',
|
|
81501
|
+
source: 'units',
|
|
81502
|
+
minzoom: this.selectZoom,
|
|
81503
|
+
filter: ['==', ['get', 'code'], ''],
|
|
81504
|
+
paint: { 'fill-color': selectionFill, 'fill-opacity': 0.15 },
|
|
81505
|
+
});
|
|
81506
|
+
map.addLayer({
|
|
81507
|
+
id: 'units-line',
|
|
81508
|
+
type: 'line',
|
|
81509
|
+
source: 'units',
|
|
81510
|
+
minzoom: this.selectZoom,
|
|
81511
|
+
paint: { 'line-color': selectionLine, 'line-width': 2, 'line-dasharray': [2, 1.5] },
|
|
81512
|
+
});
|
|
81513
|
+
this.popup = new maplibregl.Popup({
|
|
81514
|
+
closeButton: false,
|
|
81515
|
+
closeOnClick: false,
|
|
81516
|
+
offset: 12,
|
|
81517
|
+
maxWidth: 'none',
|
|
81518
|
+
className: 'xv-geo-map-tooltip',
|
|
81519
|
+
});
|
|
81520
|
+
// instant toggle; a double click fires click twice (select + deselect = net zero)
|
|
81521
|
+
// and then zooms, so no debounce delay is needed
|
|
81522
|
+
map.on('click', 'units-fill', e => { var _a, _b, _c; return this.toggleUnit((_c = (_b = (_a = e.features) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.properties) === null || _c === void 0 ? void 0 : _c.code); });
|
|
81523
|
+
// below the selectable zoom nothing is clickable — make a click dive to the
|
|
81524
|
+
// clicked area at select level instead of doing nothing
|
|
81525
|
+
map.on('click', e => {
|
|
81526
|
+
if (map.getZoom() < this.selectZoom) {
|
|
81527
|
+
map.easeTo({ center: e.lngLat, zoom: this.selectZoom + 0.5, duration: 700 });
|
|
81528
|
+
}
|
|
81529
|
+
});
|
|
81530
|
+
map.on('mousemove', 'units-fill', e => {
|
|
81531
|
+
var _a, _b;
|
|
81532
|
+
const props = (_b = (_a = e.features) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.properties;
|
|
81533
|
+
if (!props)
|
|
81534
|
+
return;
|
|
81535
|
+
map.getCanvas().style.cursor = 'pointer';
|
|
81536
|
+
map.setFilter('units-hover', ['==', ['get', 'code'], props.code]);
|
|
81537
|
+
const pop = this.populations.get(props.code);
|
|
81538
|
+
const selected = this.selected.has(props.code);
|
|
81539
|
+
this.popup
|
|
81540
|
+
.setLngLat(e.lngLat)
|
|
81541
|
+
.setHTML(`<strong>${props.code}</strong> ${props.name}` +
|
|
81542
|
+
(pop != null ? `<br>${pop.toLocaleString('de-DE')} ${this.indicatorLabel}` : '') +
|
|
81543
|
+
(selected ? '<br><em>Klicken zum Abwählen</em>' : '<br><em>Klicken zum Auswählen</em>'))
|
|
81544
|
+
.addTo(map);
|
|
81545
|
+
});
|
|
81546
|
+
map.on('mouseleave', 'units-fill', () => {
|
|
81547
|
+
map.getCanvas().style.cursor = '';
|
|
81548
|
+
map.setFilter('units-hover', ['==', ['get', 'code'], '']);
|
|
81549
|
+
this.popup.remove();
|
|
81550
|
+
});
|
|
81551
|
+
map.on('moveend', () => this.refreshUnits());
|
|
81552
|
+
this.ready = true;
|
|
81553
|
+
this.mapReady.emit();
|
|
81554
|
+
this.resolveReady();
|
|
81555
|
+
this.refreshUnits();
|
|
81556
|
+
});
|
|
81557
|
+
map.on('error', () => {
|
|
81558
|
+
if (!this.ready)
|
|
81559
|
+
this.loadError = true;
|
|
81560
|
+
});
|
|
81561
|
+
}
|
|
81562
|
+
catch (_a) {
|
|
81563
|
+
this.loadError = true;
|
|
81564
|
+
}
|
|
81565
|
+
}
|
|
81566
|
+
async refreshUnits() {
|
|
81567
|
+
if (!this.map)
|
|
81568
|
+
return;
|
|
81569
|
+
this.zoomGated = this.map.getZoom() < this.selectZoom;
|
|
81570
|
+
if (this.zoomGated)
|
|
81571
|
+
return;
|
|
81572
|
+
const b = this.map.getBounds();
|
|
81573
|
+
// skip the fetch entirely when the viewport is inside an already-loaded area
|
|
81574
|
+
if (this.fetchedBoxes.some(f => b.getNorth() <= f.n && b.getSouth() >= f.s && b.getEast() <= f.e && b.getWest() >= f.w)) {
|
|
81575
|
+
return;
|
|
81576
|
+
}
|
|
81577
|
+
// fetch with a half-viewport margin so small pans stay within the loaded area
|
|
81578
|
+
const mLat = (b.getNorth() - b.getSouth()) / 2;
|
|
81579
|
+
const mLng = (b.getEast() - b.getWest()) / 2;
|
|
81580
|
+
const box = { n: b.getNorth() + mLat, s: b.getSouth() - mLat, e: b.getEast() + mLng, w: b.getWest() - mLng };
|
|
81581
|
+
const seq = ++this.fetchSeq;
|
|
81582
|
+
try {
|
|
81583
|
+
const res = await fetch(`${this.apiBase}/geo-units/${encodeURIComponent(this.level)}/by-bounds?resolution=${this.resolution}`, {
|
|
81584
|
+
method: 'POST',
|
|
81585
|
+
headers: { 'Content-Type': 'application/json' },
|
|
81586
|
+
body: JSON.stringify({ north: box.n, south: box.s, east: box.e, west: box.w }),
|
|
81587
|
+
});
|
|
81588
|
+
if (!res.ok || seq !== this.fetchSeq)
|
|
81589
|
+
return;
|
|
81590
|
+
const list = unwrap(await res.json());
|
|
81591
|
+
this.fetchedBoxes.push(box);
|
|
81592
|
+
list.forEach(u => this.units.set(u.code, u));
|
|
81593
|
+
this.renderUnits();
|
|
81594
|
+
this.loadPopulations(list.filter(u => !this.populations.has(u.code)));
|
|
81595
|
+
}
|
|
81596
|
+
catch (_a) {
|
|
81597
|
+
/* viewport fetch failed (offline/CORS) — map stays usable, next moveend retries */
|
|
81598
|
+
}
|
|
81599
|
+
}
|
|
81600
|
+
/** fetch the configured indicator per unit for hover tooltips (fire-and-forget) */
|
|
81601
|
+
async loadPopulations(units) {
|
|
81602
|
+
if (!units.length)
|
|
81603
|
+
return;
|
|
81604
|
+
try {
|
|
81605
|
+
const res = await fetch(`${this.apiBase}/indicators/values`, {
|
|
81606
|
+
method: 'POST',
|
|
81607
|
+
headers: { 'Content-Type': 'application/json' },
|
|
81608
|
+
body: JSON.stringify({ geoUnitIds: units.map(u => u.id), indicatorCodes: [this.indicator] }),
|
|
81609
|
+
});
|
|
81610
|
+
if (!res.ok)
|
|
81611
|
+
return;
|
|
81612
|
+
const idToCode = new Map(units.map(u => [u.id, u.code]));
|
|
81613
|
+
for (const v of unwrap(await res.json())) {
|
|
81614
|
+
const code = idToCode.get(v.geoUnitId);
|
|
81615
|
+
if (code)
|
|
81616
|
+
this.populations.set(code, v.value);
|
|
81617
|
+
}
|
|
81618
|
+
}
|
|
81619
|
+
catch (_a) {
|
|
81620
|
+
/* tooltips just omit population */
|
|
81621
|
+
}
|
|
81622
|
+
}
|
|
81623
|
+
renderUnits() {
|
|
81624
|
+
// render everything loaded so far — panning back never flickers or re-parses
|
|
81625
|
+
const source = this.map.getSource('units');
|
|
81626
|
+
source === null || source === void 0 ? void 0 : source.setData({
|
|
81627
|
+
type: 'FeatureCollection',
|
|
81628
|
+
features: [...this.units.values()].map(u => ({
|
|
81629
|
+
type: 'Feature',
|
|
81630
|
+
properties: { code: u.code, name: u.name },
|
|
81631
|
+
geometry: u.geography,
|
|
81632
|
+
})),
|
|
81633
|
+
});
|
|
81634
|
+
}
|
|
81635
|
+
toggleUnit(code) {
|
|
81636
|
+
if (!code)
|
|
81637
|
+
return;
|
|
81638
|
+
if (this.selected.has(code))
|
|
81639
|
+
this.selected.delete(code);
|
|
81640
|
+
else
|
|
81641
|
+
this.selected.set(code, this.units.get(code));
|
|
81642
|
+
this.resetPreview(); // user interaction makes a shown proposal stale
|
|
81643
|
+
this.updateSelectedFilter();
|
|
81644
|
+
this.emitSelection();
|
|
81645
|
+
}
|
|
81646
|
+
updateSelectedFilter() {
|
|
81647
|
+
this.map.setFilter('units-selected', ['in', ['get', 'code'], ['literal', [...this.selected.keys()]]]);
|
|
81648
|
+
}
|
|
81649
|
+
resetPreview() {
|
|
81650
|
+
if (!this.preview.size)
|
|
81651
|
+
return;
|
|
81652
|
+
this.preview.clear();
|
|
81653
|
+
this.updatePreviewFilter();
|
|
81654
|
+
}
|
|
81655
|
+
updatePreviewFilter() {
|
|
81656
|
+
const codes = ['in', ['get', 'code'], ['literal', [...this.preview.keys()]]];
|
|
81657
|
+
this.map.setFilter('units-preview', codes);
|
|
81658
|
+
this.map.setFilter('units-preview-line', codes);
|
|
81659
|
+
}
|
|
81660
|
+
async emitSelection() {
|
|
81661
|
+
var _a, _b, _c;
|
|
81662
|
+
const postalCodes = [...this.selected.keys()];
|
|
81663
|
+
const names = [...this.selected.values()].map(u => { var _a; return (_a = u === null || u === void 0 ? void 0 : u.name) !== null && _a !== void 0 ? _a : ''; });
|
|
81664
|
+
const unitIds = [...this.selected.values()].map(u => u.id);
|
|
81665
|
+
const seq = ++this.popSeq;
|
|
81666
|
+
// populations are already cached per PLZ (tooltips) — sum locally, emit instantly
|
|
81667
|
+
if (postalCodes.every(c => this.populations.has(c))) {
|
|
81668
|
+
const population = postalCodes.reduce((sum, c) => sum + this.populations.get(c), 0);
|
|
81669
|
+
const selection = { postalCodes, names, population: postalCodes.length ? population : null, unitIds };
|
|
81670
|
+
this.changeSelection.emit(selection);
|
|
81671
|
+
return selection;
|
|
81672
|
+
}
|
|
81673
|
+
// fallback: some populations not cached yet — aggregate server-side
|
|
81674
|
+
let population = null;
|
|
81675
|
+
try {
|
|
81676
|
+
const res = await fetch(`${this.apiBase}/indicators/aggregate`, {
|
|
81677
|
+
method: 'POST',
|
|
81678
|
+
headers: { 'Content-Type': 'application/json' },
|
|
81679
|
+
body: JSON.stringify({ geoUnitIds: unitIds, indicatorCodes: [this.indicator] }),
|
|
81680
|
+
});
|
|
81681
|
+
if (res.ok)
|
|
81682
|
+
population = (_c = (_b = (_a = unwrap(await res.json())) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.sum) !== null && _c !== void 0 ? _c : null;
|
|
81683
|
+
}
|
|
81684
|
+
catch (_d) {
|
|
81685
|
+
/* population stays null — host can fall back */
|
|
81686
|
+
}
|
|
81687
|
+
if (seq !== this.popSeq)
|
|
81688
|
+
return null; // a newer selection superseded this one
|
|
81689
|
+
const selection = { postalCodes, names, population, unitIds };
|
|
81690
|
+
this.changeSelection.emit(selection);
|
|
81691
|
+
return selection;
|
|
81692
|
+
}
|
|
81693
|
+
// ---- public API for host applications (Angular planner) ----
|
|
81694
|
+
/** Select all PLZs within `km` around a start PLZ ("Umkreis"). Replaces the selection unless `add` is true. */
|
|
81695
|
+
async selectByRadius(startPlz, km, add = false) {
|
|
81696
|
+
await this.ensureReady();
|
|
81697
|
+
const url = `${this.apiBase}/geo-units/${encodeURIComponent(this.level)}/by-radius` +
|
|
81698
|
+
`?address=${encodeURIComponent(startPlz)}&km=${km}&country=DE&resolution=${this.resolution}`;
|
|
81699
|
+
const res = await fetch(url);
|
|
81700
|
+
if (!res.ok)
|
|
81701
|
+
throw new Error(`by-radius failed: HTTP ${res.status}`);
|
|
81702
|
+
return this.applySelection(unwrap(await res.json()), add);
|
|
81703
|
+
}
|
|
81704
|
+
/** Select an explicit list of PLZs ("PLZ-Liste" paste, query-param restore). Replaces the selection unless `add` is true. */
|
|
81705
|
+
async selectPostalCodes(codes, add = false) {
|
|
81706
|
+
await this.ensureReady();
|
|
81707
|
+
// 1–5 digits: PLZ5 and Kreis codes are 5, Bundesland codes are 1–2 (a strict \d{5}
|
|
81708
|
+
// silently dropped state selections restored via this method)
|
|
81709
|
+
const clean = [...new Set(codes.map(c => String(c).trim()).filter(c => /^\d{1,5}$/.test(c)))];
|
|
81710
|
+
if (!clean.length)
|
|
81711
|
+
return this.applySelection([], add);
|
|
81712
|
+
const res = await fetch(`${this.apiBase}/geo-units/${encodeURIComponent(this.level)}/lookup?resolution=${this.resolution}`, {
|
|
81713
|
+
method: 'POST',
|
|
81714
|
+
headers: { 'Content-Type': 'application/json' },
|
|
81715
|
+
body: JSON.stringify({ codes: clean }),
|
|
81716
|
+
});
|
|
81717
|
+
if (!res.ok)
|
|
81718
|
+
throw new Error(`lookup failed: HTTP ${res.status}`);
|
|
81719
|
+
return this.applySelection(unwrap(await res.json()), add);
|
|
81720
|
+
}
|
|
81721
|
+
/** Clear the whole selection. */
|
|
81722
|
+
async clearSelection() {
|
|
81723
|
+
await this.ensureReady();
|
|
81724
|
+
this.selected.clear();
|
|
81725
|
+
this.resetPreview();
|
|
81726
|
+
this.updateSelectedFilter();
|
|
81727
|
+
this.emitSelection();
|
|
81728
|
+
}
|
|
81729
|
+
/**
|
|
81730
|
+
* Highlight what a radius extension would ADD (optimizer proposal): the units within
|
|
81731
|
+
* `km` that are not part of the selection render in the preview color. Visual only —
|
|
81732
|
+
* the selection and its change events stay untouched. Returns the number of added units.
|
|
81733
|
+
*/
|
|
81734
|
+
async previewByRadius(startPlz, km) {
|
|
81735
|
+
await this.ensureReady();
|
|
81736
|
+
const url = `${this.apiBase}/geo-units/${encodeURIComponent(this.level)}/by-radius` +
|
|
81737
|
+
`?address=${encodeURIComponent(startPlz)}&km=${km}&country=DE&resolution=${this.resolution}`;
|
|
81738
|
+
const res = await fetch(url);
|
|
81739
|
+
if (!res.ok)
|
|
81740
|
+
throw new Error(`by-radius failed: HTTP ${res.status}`);
|
|
81741
|
+
const units = unwrap(await res.json());
|
|
81742
|
+
this.preview.clear();
|
|
81743
|
+
units.forEach(u => {
|
|
81744
|
+
this.units.set(u.code, u);
|
|
81745
|
+
if (!this.selected.has(u.code))
|
|
81746
|
+
this.preview.set(u.code, u);
|
|
81747
|
+
});
|
|
81748
|
+
this.renderUnits();
|
|
81749
|
+
this.updatePreviewFilter();
|
|
81750
|
+
this.fitTo([...this.selected.values(), ...this.preview.values()]);
|
|
81751
|
+
return this.preview.size;
|
|
81752
|
+
}
|
|
81753
|
+
/** Remove the optimizer proposal highlight. */
|
|
81754
|
+
async clearPreview() {
|
|
81755
|
+
await this.ensureReady();
|
|
81756
|
+
this.resetPreview();
|
|
81757
|
+
this.fitTo([...this.selected.values()]);
|
|
81758
|
+
}
|
|
81759
|
+
// ---- search box (MAR-15783): find areas by name or code, click to select ----
|
|
81760
|
+
onSearchInput(value) {
|
|
81761
|
+
this.searchQuery = value;
|
|
81762
|
+
clearTimeout(this.searchDebounce);
|
|
81763
|
+
const query = value.trim();
|
|
81764
|
+
if (query.length < 2) {
|
|
81765
|
+
this.searchResults = [];
|
|
81766
|
+
return;
|
|
81767
|
+
}
|
|
81768
|
+
this.searchDebounce = setTimeout(async () => {
|
|
81769
|
+
var _a;
|
|
81770
|
+
const seq = ++this.searchSeq;
|
|
81771
|
+
try {
|
|
81772
|
+
const res = await fetch(`${this.apiBase}/geo-units/${encodeURIComponent(this.level)}/search?q=${encodeURIComponent(query)}`);
|
|
81773
|
+
if (!res.ok || seq !== this.searchSeq)
|
|
81774
|
+
return;
|
|
81775
|
+
this.searchResults = (_a = unwrap(await res.json())) !== null && _a !== void 0 ? _a : [];
|
|
81776
|
+
}
|
|
81777
|
+
catch (_b) {
|
|
81778
|
+
this.searchResults = []; // search silently unavailable — the map stays usable
|
|
81779
|
+
}
|
|
81780
|
+
}, 300);
|
|
81781
|
+
}
|
|
81782
|
+
pickSearchResult(result) {
|
|
81783
|
+
this.searchQuery = '';
|
|
81784
|
+
this.searchResults = [];
|
|
81785
|
+
// adds to the selection and flies there — exactly what "find this area" means here
|
|
81786
|
+
void this.selectPostalCodes([result.code], true).catch(() => undefined);
|
|
81787
|
+
}
|
|
81788
|
+
/** A method call means the map is needed now — start loading even if it hasn't scrolled into view. */
|
|
81789
|
+
ensureReady() {
|
|
81790
|
+
var _a;
|
|
81791
|
+
(_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
81792
|
+
this.initMap();
|
|
81793
|
+
return this.readyPromise;
|
|
81794
|
+
}
|
|
81795
|
+
async applySelection(units, add) {
|
|
81796
|
+
if (!add)
|
|
81797
|
+
this.selected.clear();
|
|
81798
|
+
units.forEach(u => {
|
|
81799
|
+
this.units.set(u.code, u);
|
|
81800
|
+
this.selected.set(u.code, u);
|
|
81801
|
+
});
|
|
81802
|
+
this.resetPreview();
|
|
81803
|
+
this.renderUnits();
|
|
81804
|
+
this.updateSelectedFilter();
|
|
81805
|
+
this.fitTo([...this.selected.values()]);
|
|
81806
|
+
await this.loadPopulations(units.filter(u => !this.populations.has(u.code)));
|
|
81807
|
+
return this.emitSelection();
|
|
81808
|
+
}
|
|
81809
|
+
fitTo(units) {
|
|
81810
|
+
if (!units.length)
|
|
81811
|
+
return;
|
|
81812
|
+
let minX = 180, minY = 90, maxX = -180, maxY = -90;
|
|
81813
|
+
const scan = (c) => {
|
|
81814
|
+
if (typeof c[0] === 'number') {
|
|
81815
|
+
minX = Math.min(minX, c[0]);
|
|
81816
|
+
maxX = Math.max(maxX, c[0]);
|
|
81817
|
+
minY = Math.min(minY, c[1]);
|
|
81818
|
+
maxY = Math.max(maxY, c[1]);
|
|
81819
|
+
}
|
|
81820
|
+
else
|
|
81821
|
+
c.forEach(scan);
|
|
81822
|
+
};
|
|
81823
|
+
units.forEach(u => scan(u.geography.coordinates));
|
|
81824
|
+
this.map.fitBounds([[minX, minY], [maxX, maxY]], { padding: 48, maxZoom: 12, duration: 800 });
|
|
81825
|
+
}
|
|
81826
|
+
render() {
|
|
81827
|
+
return (index$1.h(index$1.Host, { key: '1ae9185f3b1ab5912080b68efeab8ad574850567' }, index$1.h("div", { key: '9125046714d801d6541ae936fbf2a16310c70a3f', class: "container" }, index$1.h("div", { key: '0df36890254f11bd82d0b1c539f89c872291c646', class: "map", ref: el => (this.mapContainer = el) }), this.ready && (index$1.h("div", { key: 'fb8cb984cca5c15d6011f04b6ddb3b1f9f8ca171', class: "search" }, index$1.h("input", { key: 'd345cd297310718eeb016d206b82471ffc5f9780', type: "search", placeholder: "Ort oder PLZ suchen", value: this.searchQuery, onInput: e => this.onSearchInput(e.target.value) }), this.searchResults.length > 0 && (index$1.h("ul", { key: '97b2885d221ee740a5a3f64cd5421d48e29564ae', class: "search-results" }, this.searchResults.map(r => (index$1.h("li", { key: r.code, onClick: () => this.pickSearchResult(r) }, index$1.h("strong", null, r.code), " ", r.name))))))), this.ready && this.zoomGated && (index$1.h("div", { key: '161f7ce78f568b073c8e71cc180a0aef42e8dde4', class: "hint" }, "Reinzoomen, um PLZ-Gebiete zu laden")), !this.ready && !this.loadError && (index$1.h("div", { key: '5cdd7490b1997add9de130b8ab900d61c1219747', class: "skeleton", "aria-busy": "true" }, index$1.h("xv-loader-v2", { key: 'cc777e5381227101c6d31f4c5ceb0f6f6a5e837b', variant: "vertical" }, "Karte wird geladen \u2026"))), this.loadError && index$1.h("div", { key: '5532fa9b6d26889a28f1808f48616225ddc49974', class: "skeleton error" }, "Karte konnte nicht geladen werden."))));
|
|
81828
|
+
}
|
|
81829
|
+
get el() { return index$1.getElement(this); }
|
|
81830
|
+
static get watchers() { return {
|
|
81831
|
+
"level": [{
|
|
81832
|
+
"levelChanged": 0
|
|
81833
|
+
}],
|
|
81834
|
+
"selectZoom": [{
|
|
81835
|
+
"selectZoomChanged": 0
|
|
81836
|
+
}]
|
|
81837
|
+
}; }
|
|
81838
|
+
};
|
|
81839
|
+
XvGeoMap.style = xvGeoMapCss();
|
|
81840
|
+
|
|
81215
81841
|
const userMagnifyingGlassRegularFullSvg = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NDAgNjQwIj48IS0tIUZvbnQgQXdlc29tZSBQcm8gNy4xLjAgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UgKENvbW1lcmNpYWwgTGljZW5zZSkgQ29weXJpZ2h0IDIwMjUgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZD0iTTE3Ni41IDE5MkMxNzYuNSAxNDcuOCAyMTIuMyAxMTIgMjU2LjUgMTEyQzMwMC43IDExMiAzMzYuNSAxNDcuOCAzMzYuNSAxOTJDMzM2LjUgMjM2LjIgMzAwLjcgMjcyIDI1Ni41IDI3MkMyMTIuMyAyNzIgMTc2LjUgMjM2LjIgMTc2LjUgMTkyek0zODQuNSAxOTJDMzg0LjUgMTIxLjMgMzI3LjIgNjQgMjU2LjUgNjRDMTg1LjggNjQgMTI4LjUgMTIxLjMgMTI4LjUgMTkyQzEyOC41IDI2Mi43IDE4NS44IDMyMCAyNTYuNSAzMjBDMzI3LjIgMzIwIDM4NC41IDI2Mi43IDM4NC41IDE5MnpNODAuNSA1NDRDODAuNSA0NzMuMyAxMzcuOCA0MTYgMjA4LjUgNDE2TDI4OC43IDQxNkMyODkuNSAzOTkuMiAyOTIuNyAzODMuMSAyOTguMSAzNjhMMjA4LjUgMzY4QzExMS4zIDM2OCAzMi41IDQ0Ni44IDMyLjUgNTQ0TDMyLjUgNTUyQzMyLjUgNTY1LjMgNDMuMiA1NzYgNTYuNSA1NzZDNjkuOCA1NzYgODAuNSA1NjUuMyA4MC41IDU1Mkw4MC41IDU0NHpNNDU2LjUgMzUyQzQ5Ni4zIDM1MiA1MjguNSAzODQuMiA1MjguNSA0MjRDNTI4LjUgNDYzLjggNDk2LjMgNDk2IDQ1Ni41IDQ5NkM0MTYuNyA0OTYgMzg0LjUgNDYzLjggMzg0LjUgNDI0QzM4NC41IDM4NC4yIDQxNi43IDM1MiA0NTYuNSAzNTJ6TTQ1Ni41IDU0NEM0ODAuOSA1NDQgNTAzLjYgNTM2LjcgNTIyLjYgNTI0LjJMNTgzLjUgNTg1LjFDNTkyLjkgNTk0LjUgNjA4LjEgNTk0LjUgNjE3LjQgNTg1LjFDNjI2LjcgNTc1LjcgNjI2LjggNTYwLjUgNjE3LjQgNTUxLjJMNTU2LjUgNDkwLjNDNTY5LjEgNDcxLjMgNTc2LjQgNDQ4LjUgNTc2LjQgNDI0QzU3Ni40IDM1Ny43IDUyMi43IDMwNCA0NTYuNCAzMDRDMzkwLjEgMzA0IDMzNi40IDM1Ny43IDMzNi40IDQyNEMzMzYuNCA0OTAuMyAzOTAuMSA1NDQgNDU2LjQgNTQ0eiIvPjwvc3ZnPg==';
|
|
81216
81842
|
|
|
81217
81843
|
const xvHeaderCss = () => `.xv-container{width:100%;max-width:1170px;margin-inline:auto}@media (min-width: 576px){.xv-container{max-width:540px}}@media (min-width: 768px){.xv-container{max-width:720px}}@media (min-width: 992px){.xv-container{max-width:960px;padding-inline:var(--bs-gutter-x, 0.75rem)}}@media (min-width: 1200px){.xv-container{max-width:1140px}}@media (min-width: 1400px){.xv-container{max-width:1320px}}header.header{position:sticky;z-index:1000;top:0}header.header .header-wrapper{width:100%;max-width:100vw;padding-top:var(--spacing-04);background-color:var(--background, #fff);box-shadow:1px 1px 0 0 rgba(39, 52, 53, 0.15), 0 3px 2px 0 rgba(39, 52, 53, 0.3)}@media (max-width: 991px){header.header .header-wrapper{padding-bottom:var(--spacing-04)}}header.header .header-wrapper--bg{background:var(--menu-background, transparent);color:var(--menu-color, var(--text-primary, #131313))}header.header .header-top{display:flex;align-items:center;gap:var(--spacing-05)}header.header .header-top--left{width:100%;max-width:350px;display:flex;align-items:center;column-gap:var(--spacing-04)}header.header .header-top--left img{width:100%;height:26px;object-fit:contain}header.header .header-top--left .menu-btn{display:none}@media (max-width: 991px){header.header .header-top--left .menu-btn{display:inline-block}}header.header .header-top--right{flex:1;display:flex;justify-content:flex-end;gap:var(--spacing-03);margin:0;padding:0;list-style:none}@media (max-width: 1199px){header.header .header-top--right{gap:var(--spacing-01)}}header.header .header-top--right .header-label{display:flex;flex-direction:column;color:var(--text-primary, #131313)}header.header .header-top--right .header-label>small{line-height:1}@media (min-width: 992px){header.header .header-top--right .header-label{margin-inline:var(--spacing-02)}}@media (max-width: 1199px){header.header .header-top--right .header-label{display:none}}header.header .header-top--right .header-icon{color:var(--icon-primary, #131313)}header.header .header-top--right .caret{display:inline-block;margin-left:5px;width:6px;height:6px;border:none;border-bottom:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg);box-sizing:border-box;background:transparent;transform-origin:center;transition:0.25s ease-in-out transform}header.header .header-top--right .counter-badge--absolute{position:absolute;top:0;right:0}header.header .header-top--right .counter-badge::part(details-content){padding:1px;line-height:1;min-width:16px;height:16px;font-size:10px;text-align:center;display:inline-flex;align-items:center;justify-content:center}header.header .header-top--orgUnit{--link-visited:var(--link-primary)}header.header .header-top .fa-question-circle{color:var(--icon-primary, #131313)}header.header .header-top .search-form{flex:1;position:relative}@media (max-width: 768px){header.header .header-top .search-form{display:none}}header.header .header-top .search-form form{padding-inline:2px;flex:1;display:flex;align-items:stretch;flex-direction:row;justify-content:flex-end}header.header .header-top .search-form form input[type=search]{flex:0;text-align:right;display:inline-flex;border:none;min-width:0;transition:flex 0.3s ease-in-out, outline 0.3s ease;overflow:hidden;border-radius:3px}header.header .header-top .search-form form input[type=search]::placeholder{color:var(--text-placeholder, #ACACAC)}header.header .header-top .search-form form input[type=search]:focus{outline:2px solid var(--focus)}header.header .header-top .search-form form>[type=button]{display:inline-flex}header.header .header-top .search-form form>[type=submit]{display:none}header.header .header-top .search-form form:focus-within>[type=button],header.header .header-top .search-form form:has(input[type=search]:not(:placeholder-shown))>[type=button]{display:none}header.header .header-top .search-form form:focus-within>[type=submit],header.header .header-top .search-form form:has(input[type=search]:not(:placeholder-shown))>[type=submit]{display:inline-flex}header.header .header-top .search-form form:focus-within input[type=search],header.header .header-top .search-form form:has(input[type=search]:not(:placeholder-shown)) input[type=search]{flex:1;outline:1px solid var(--focus)}header.header .header-top .search-form form:focus-within+.search-form-suggestions,header.header .header-top .search-form form:has(input[type=search]:not(:placeholder-shown))+.search-form-suggestions{display:flex}header.header .header-top .search-form-suggestions{position:absolute;top:calc(100% + 5px);background-color:var(--background, #fff);box-shadow:0 0 10px rgba(0, 0, 0, 0.1);border-radius:3px;z-index:2;padding:var(--spacing-04);margin:0;list-style:none;display:none;flex-direction:column;row-gap:var(--spacing-02);min-width:calc(100% - 32px)}header.header .header-top .search-form-suggestions.loading:after{display:flex;align-items:center;justify-content:center;content:"";background:rgba(255, 255, 255, 0.8);position:absolute;top:0;left:0;z-index:3;width:100%;height:100%}header.header .header-top .impersonationInfo ul[slot=body]{margin:0;padding:0;list-style:none;min-width:256px}header.header .header-top .notifications-icon{font-size:14px}header.header .header-top .notifications-item{display:flex;align-items:center;column-gap:var(--spacing-04)}header.header .header-top .notifications-item-body{display:flex;flex-direction:column}header.header .header-top .myArea{position:relative}header.header .header-top .myArea .myArea-btn[aria-expanded=true] .caret{transform:rotate(-135deg)}header.header .header-top .myArea .category-badge{margin-left:var(--spacing-02)}header.header .header-top .myArea .category-badge::part(details-content){line-height:1;font-size:11px;padding:var(--spacing-01) var(--spacing-02)}header.header .xv-container{box-sizing:content-box;line-height:normal}`;
|
|
@@ -81388,7 +82014,7 @@ const XvHeader = class {
|
|
|
81388
82014
|
render() {
|
|
81389
82015
|
var _a, _b, _c, _d, _e;
|
|
81390
82016
|
const isXvBrand = (((_a = this.metaNav) === null || _a === void 0 ? void 0 : _a['WhitelabelName']) || 'Xv') === 'Xv';
|
|
81391
|
-
return (index$1.h("header", { key: '
|
|
82017
|
+
return (index$1.h("header", { key: '5683344a3c1c65652aafefcd39a29cfb52b39630', class: "header" }, index$1.h("div", { key: '51a5be7406c30c5eb21612e253f6f816c07c2474', class: "header-wrapper" }, index$1.h("div", { key: '355678ae2ea723877995820902a7ecc831b24e25', class: "xv-container" }, index$1.h("div", { key: 'b204f994a41175f413fc11a4b4501ea36d83c49a', class: "header-top" }, index$1.h("div", { key: '58e62438aaf3568986422eadd60abc27242ee0e2', class: "header-top--left" }, index$1.h("xv-button-v2", { key: 'c2bd1f89d10a2d6a4468a4eb84b0a305afe130e6', class: "menu-btn", variant: "ghost", onClick: this.toggleMobMenu }, index$1.h("i", { key: 'f6299023fffc108aa30edadd662f1c9cac20a444', slot: "icon-left", class: { 'fa': true, 'fa-times': this.mobMenuOpen, 'fa-bars': !this.mobMenuOpen } })), this.metaNav && (index$1.h("a", { key: '9a3187c7a0a0f5bc824e5aa5e4f885509e4cff06', href: `${window.location.origin}/` }, index$1.h("picture", { key: '53a3940f8a98f039a5750b42f1b9848e5a0e5dcd' }, index$1.h("source", { key: '95dbb7a4837d25c488d5a588da905793e81706e9', srcSet: ((_b = this.metaNav) === null || _b === void 0 ? void 0 : _b.LogoUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg', media: "(min-width: 990px)" }), index$1.h("img", { key: 'bd94249dc77e9b9767b4d5eb899acce398085e93', src: ((_c = this.metaNav) === null || _c === void 0 ? void 0 : _c.LogoSmallUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg', onError: this.logoFallback, loading: "lazy", alt: "Crossvertise" })))), this.orgUnit && (index$1.h("xv-link-v2", { key: 'e8ea29d1d86816d48b0a21433fb0bb56609e2a43', class: "header-top--orgUnit", variant: "standalone", href: "/de-de/mycrossvertise" }, this.orgUnit))), index$1.h("ul", { key: '0faa215cd3ff434bb57992e3d683ba5365b2434a', class: "header-top--right" }, this._renderSearch(), this._renderImpersonationInfo(), !((_d = this.metaNav) === null || _d === void 0 ? void 0 : _d.IsManager) && isXvBrand && (index$1.h("li", { key: '33e91f13c12e158bbab3021fdeabde589ba8d811' }, index$1.h("xv-link-v2", { key: 'cf6abae927469bf5d11d664c2b55bfa690712b7c', variant: "ghost", href: "https://www.crossvertise.com/ueber-uns/kontakt" }, index$1.h("xv-button-v2", { key: 'cccb09642e193457f8a8ed76852051f66e35e267', variant: "ghost", size: _vars.SIZE_VAR.MD }, index$1.h("i", { key: '865a8a9b71566c9e12767f1f816baf6b81b38881', class: "header-icon far fa-envelope" }), index$1.h("span", { key: '33917225be2b21427dfe26029acd3e95b88ced96', class: "header-label xv-body-02" }, "Kontakt"))))), this._renderNotifications(), this._renderAccount(), !((_e = this.metaNav) === null || _e === void 0 ? void 0 : _e.IsManager) && isXvBrand && (index$1.h("li", { key: '4493c9258b480c76150dfa1e6a166625ccc53f3d' }, index$1.h("xv-link-v2", { key: '15165cd18bf8c6df2fa0a01a04060b8ec3e8d7c9', variant: "ghost", href: "https://help.crossvertise.com" }, index$1.h("xv-button-v2", { key: 'c57fbe7a136ea7a3b7156b676aeb9de9563f7641', variant: "ghost", size: _vars.SIZE_VAR.MD }, index$1.h("i", { key: '6299e5025daf1eb965a391f22b16c36d121446f6', class: "header-icon far fa-question-circle" }), index$1.h("span", { key: 'c12f1fd242b0139f6bf36a91ff4783ba0ee8311e', class: "header-label xv-body-02" }, "Hilfe"))))), this._renderShoppingCart()))), index$1.h("div", { key: 'a811e4d9776a559a0514614a5af21b1df291b58f', class: "header-wrapper--bg" }, index$1.h("div", { key: 'ac5415351936518dbfb37bd2bc0a8ef507779ca9', class: "xv-container" }, index$1.h("xv-mega-menu", { key: '3a261a18a1fea02ae336975e0699b4d80bf2b4ed', open: this.mobMenuOpen, onOpenChange: this.closeMobMenu })))), index$1.h("xv-login-modal", { key: '2958a0ed0091eb1f88337aa6ed4d88d8fa7f3e02', visible: this.showLoginModal, onClose: () => this.showLoginModal = false })));
|
|
81392
82018
|
}
|
|
81393
82019
|
get el() { return index$1.getElement(this); }
|
|
81394
82020
|
};
|
|
@@ -81456,7 +82082,7 @@ const XvImageViewer = class {
|
|
|
81456
82082
|
}
|
|
81457
82083
|
}
|
|
81458
82084
|
render() {
|
|
81459
|
-
return (index$1.h(index$1.Host, { key: '
|
|
82085
|
+
return (index$1.h(index$1.Host, { key: 'a2cbdae5298980d510b68acfe6053116d29dc849', class: { 'image-wrapper': true, errored: this.errored } }, !this.loaded && index$1.h("xv-loader-v2", { key: 'ace025d878873694ce29d3f1042b7551ccf3b3d8', class: "loading" }, this.placeholder), this.loaded && this.errored && index$1.h("slot", { key: '212f5518d6b6779c7d3b3c16b1e483f7f47ccca1', name: "fallback" }), this.loaded && !this.errored && (index$1.h("img", { key: '302fb84d4af07d1f4c63a0b9e0984be1f4981835', src: this.src, alt: this.alt, class: "image", onClick: this.handleClick, onError: this.handleError })), this.isFullscreen && (index$1.h("dialog", { key: 'ac5d27c9b241a037729eb6192a663e0f2a2331db', class: "fullscreen-dialog", ref: el => (this.dialogEl = el), onClick: this.handleDialogClick, onClose: this.closeFullscreen }, !this.fullscreenLoaded && index$1.h("xv-loader-v2", { key: 'd0680262f8e5e45d6e89b95cdf3f8451e4246d9c', class: "loading", size: _vars.SIZE_VAR.LG }, this.placeholder), index$1.h("img", { key: '76893eceb6dead348febe21d2dc9800f9c0c3bcd', src: this.fullscreenSrc || this.src, alt: this.alt, class: {
|
|
81460
82086
|
'fullscreen-image': true,
|
|
81461
82087
|
loaded: this.fullscreenLoaded,
|
|
81462
82088
|
} })))));
|
|
@@ -81481,7 +82107,7 @@ const XvLink = class {
|
|
|
81481
82107
|
e.stopPropagation();
|
|
81482
82108
|
}
|
|
81483
82109
|
render() {
|
|
81484
|
-
return (index$1.h(index$1.Host, { key: '
|
|
82110
|
+
return (index$1.h(index$1.Host, { key: '854358c47b87c65f684e693e114c33ac21a27816', class: { [`xv-link_${this.variant}`]: true, disabled: !!this.disabled } }, index$1.h("a", { key: '355355ead7bf9b8bf61a7959dc7108d379fc2c7e', href: this.href, onClick: this.preventLinkHandler.bind(this), class: { 'xv-link': true, 'xv-link_disabled': !!this.disabled, [this.size]: !!this.size }, target: this.target }, index$1.h("slot", { key: 'ba5491fe340ab2d135db073c01f167b7def196ae', name: "icon-left" }), index$1.h("slot", { key: 'beaa1287a081ecc5c05e1e5c746c4485b156af9a' }), index$1.h("slot", { key: '5491ff14083f125c3c60f30c884c4d4285d9f593', name: "icon-right" }))));
|
|
81485
82111
|
}
|
|
81486
82112
|
};
|
|
81487
82113
|
XvLink.style = xvLinkCss();
|
|
@@ -81649,7 +82275,7 @@ const XvMegaMenu = class {
|
|
|
81649
82275
|
void this.fetchMenuData();
|
|
81650
82276
|
}
|
|
81651
82277
|
render() {
|
|
81652
|
-
return (index$1.h(index$1.Host, { key: '
|
|
82278
|
+
return (index$1.h(index$1.Host, { key: '4aedd7042cf3dc4a7f2c87fd4cc4c957c1197d8d' }, index$1.h("nav", { key: 'b9f8f282ef76fa208afd943af9e9802d34f981fd', class: { 'xv-menu': true, open: this.open } }, this.menuLoading && (index$1.h("div", { key: 'bc1c61ea9a77d268f3862d0a4be2f849bb82a426', class: { 'xv-menu-loader': true, open: this.open } }, index$1.h("xv-loader-v2", { key: 'f8df801370503ef75c9ea9e8a3d800099e23f522' }))), index$1.h("ul", { key: '04bc64d69c31c033624fc2f012ed24d1452c31fa', class: { menu: true, open: this.open } }, this.menuItems.map((menuItem) => {
|
|
81653
82279
|
var _a, _b;
|
|
81654
82280
|
return (index$1.h("li", { class: { 'menu-item': true, active: menuItem.id === ((_a = this.activeItem) === null || _a === void 0 ? void 0 : _a.id) } }, menuItem.route ? (index$1.h("xv-link-v2", { variant: "ghost", href: menuItem.route.route }, index$1.h("p", { class: "menu-item-label" }, (_b = menuItem.route) === null || _b === void 0 ? void 0 : _b.label))) : (index$1.h(index$1.Fragment, null, index$1.h("p", { class: "menu-item-label", onClick: () => this.setActiveItem(menuItem) }, menuItem === null || menuItem === void 0 ? void 0 : menuItem.label), index$1.h("ul", { class: "menu-item-groups" }, menuItem.groups.map((group) => {
|
|
81655
82281
|
var _a;
|
|
@@ -81659,7 +82285,7 @@ const XvMegaMenu = class {
|
|
|
81659
82285
|
} }, index$1.h("div", { class: "group-menus" }, index$1.h("ul", { class: { 'group-menus-categories': true, inline: group.layout === 'inline' } }, group.categories.map((category) => (index$1.h("li", { class: "category" }, index$1.h("p", { class: "category-label" }, category.label), index$1.h("ul", { class: "category-routes" }, category.routes.map((route) => (index$1.h("li", { class: "route" }, index$1.h("xv-link-v2", { size: "lg", variant: "ghost", href: route.route || '#' }, route.label), route.tag && (index$1.h("xv-tag-v2", { class: "route-tag", size: "sm", color: "#161616", bg: "#E0E0E0" }, route.tag)))))))))), index$1.h("ul", { class: "group-menus-actions" }, group.actions.map((action) => (index$1.h("li", { class: "action" }, action.type === 'link' && (index$1.h("xv-link-v2", { variant: "standalone", href: action === null || action === void 0 ? void 0 : action.url }, action.label, index$1.h("span", { class: "link-chevron", slot: "icon-right" }, "\u2192"))), action.type === 'button' &&
|
|
81660
82286
|
index$1.h("xv-button-v2", { onClick: () => this.navActionClick(action), block: true, variant: "tertiary" }, action.label)))))), (group === null || group === void 0 ? void 0 : group.card) && (index$1.h("div", { class: "group-card" }, index$1.h("xv-card-v2", { media: this.applicationContext !== 'Komsa' ? group.card.image : undefined, variant: this.isMobile ? 'horizontal' : 'vertical' }, index$1.h("h5", { slot: "header", class: "group-card-title" }, group.card.title), index$1.h("p", { slot: "body", class: "group-card-desc" }, group.card.description), group.card.linkLabel && (index$1.h("xv-link-v2", { slot: "footer", variant: "standalone", href: group.card.linkUrl || '#' }, group.card.linkLabel, index$1.h("span", { class: "link-chevron", slot: "icon-right" }, "\u2192"))))))))));
|
|
81661
82287
|
}))))));
|
|
81662
|
-
}), index$1.h("li", { key: '
|
|
82288
|
+
}), index$1.h("li", { key: '3cdf016df0466206430f7ab6fb593203955086d6', class: "menu--right" }, index$1.h("slot", { key: '4d10fd0501f28c0cdcad6c2dbfc5983989bc42d8', name: "menu-right" })), this.open && (index$1.h("li", { key: '436084ee89ddbea567478af9f703d5e51a244aed', class: "menu--backdrop", onClick: () => this.handleClose() }))))));
|
|
81663
82289
|
}
|
|
81664
82290
|
get el() { return index$1.getElement(this); }
|
|
81665
82291
|
};
|
|
@@ -81727,7 +82353,7 @@ const XvModal = class {
|
|
|
81727
82353
|
}
|
|
81728
82354
|
render() {
|
|
81729
82355
|
var _a;
|
|
81730
|
-
return (index$1.h(index$1.Host, { key: '
|
|
82356
|
+
return (index$1.h(index$1.Host, { key: 'fdac67d8c2e9ff8226bb3b50cad47991212bfb95', role: "dialog", size: this.size, id: this.el.id }, index$1.h("slot", { key: 'b22af521c0661beb51656076e54f8d4524949cd6', name: "trigger", onSlotchange: this.setupTrigger }), index$1.h("div", { key: 'c4bad1d31c096232681719910a884b6f2f265d34', class: { backdrop: true }, onClick: this.onBackdropClick }, index$1.h("div", { key: '077a36f530d91d80aa64e29628416c15ee86b9fd', class: "modal" }, index$1.h("button", { key: 'e7b13a106603fec23def8c7c17d6abbc7a775d0e', class: "modal_close", onClick: this.closeModal.bind(this) }, "\u00D7"), index$1.h("div", { key: 'e38dd875e812d85bc4f5480c7861cbab60cf818d', class: "modal_header" }, index$1.h("slot", { key: 'dd88ea66b09a04f1b1489818b3f05362c1181e60', name: "header" }, ((_a = this.el) === null || _a === void 0 ? void 0 : _a.title) && index$1.h("h5", { key: '5b68119aa27b342374efd45e72b5d031edeca230', class: "modal_header__title" }, this.el.title))), index$1.h("div", { key: '8c254b16fa7ec7816d5c8c3365274ecf0f534873', class: { 'modal_content': true, overflow: this.overflow } }, index$1.h("slot", { key: 'cf6e6792d45519e823694ebc21bc3184fd8d9359' })), index$1.h("div", { key: '3a28a55f60a1c08e86b7c5569de855e62c131695', class: "modal_footer" }, index$1.h("slot", { key: '6422af93a0778da86f6761fe0ca75daf584bbfa1', name: "footer" })), !!this.loading && (index$1.h("div", { key: '58a94925425046105105ed8c5833579bc6861114', class: "loading" }, index$1.h("xv-loader-v2", { key: 'cf9b5416582bdd5835b8edc4dfb9f78c0a16f375', size: _vars.SIZE_VAR.LG })))))));
|
|
81731
82357
|
}
|
|
81732
82358
|
disconnectedCallback() {
|
|
81733
82359
|
this.removeTriggerListener();
|
|
@@ -81765,7 +82391,7 @@ const XvNotification = class {
|
|
|
81765
82391
|
};
|
|
81766
82392
|
}
|
|
81767
82393
|
render() {
|
|
81768
|
-
return (index$1.h(index$1.Host, { key: '
|
|
82394
|
+
return (index$1.h(index$1.Host, { key: 'dd814e1eddaa7d37cb2c0783c908f2785c81b7c4', class: "xv-notification", type: this.variant }, this.renderIcon(this.variant), index$1.h("div", { key: '48e3ee87ad67c61c86eb5e3d9b6b89b33f343ecc', class: "content" }, index$1.h("div", { key: '1e6dcbe72ca123f66dc238c74e3b90eb04f11d07', class: "content_wrapper" }, this.el.title && index$1.h("h5", { key: 'fdfc5730d10b1e315f604da2786f2923dd54d576', class: "content_title" }, this.el.title), index$1.h("slot", { key: '20313c03cdc71057c9ce10bce2b8ca3632c5f8a0' })), index$1.h("slot", { key: '4e594f31fd130778f98a9fa1d9e52ce522e9fa76', name: "footer" })), this.dismissible && index$1.h("button", { key: '2506c5cf0937183d09f743d5f9d4c6a6d74e966d', class: "close", onClick: this.closeHandle })));
|
|
81769
82395
|
}
|
|
81770
82396
|
static get assetsDirs() { return ["xv-notification/icons"]; }
|
|
81771
82397
|
get el() { return index$1.getElement(this); }
|
|
@@ -81816,12 +82442,12 @@ const XvNumberInput = class {
|
|
|
81816
82442
|
}
|
|
81817
82443
|
render() {
|
|
81818
82444
|
const message = index$2.resolveFieldMessage({ error: this.error, warning: this.warning, helper: this.helper });
|
|
81819
|
-
return (index$1.h(index$1.Host, { key: '
|
|
82445
|
+
return (index$1.h(index$1.Host, { key: 'eda5a787210f187373ce97896a300ff9a013e0c1', class: { disabled: !!this.disabled } }, index$1.h("label", { key: '5f22e4ac254a665891879ff65399d007cc38a8b9', class: "control" }, this.label && index$1.h("span", { key: 'ff73bc8b8838e4c35f0f7fbefb0d939cc17b075c', class: "control_label" }, this.label), index$1.h("div", { key: '78e49d25ae43b96b3eb8255bcaa58418895f0813', class: {
|
|
81820
82446
|
'control_input': true,
|
|
81821
82447
|
readonly: !!this.readonly,
|
|
81822
82448
|
error: !!this.error,
|
|
81823
82449
|
warning: !!this.warning
|
|
81824
|
-
} }, index$1.h("input", { key: '
|
|
82450
|
+
} }, index$1.h("input", { key: '6514a48d7d4fc8392fcc784038cc16b4fe2c7c8f', type: "number", placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, onInput: this.handleInput, name: this.name, min: this.min, max: this.max, step: this.step, value: this.value }), index$1.h("div", { key: 'b0255100ddf246c55e73b8e04e1f4ccb0d395cc1', class: "control_input__icons" }, this.loading ? (index$1.h("xv-loader-v2", { size: _vars.SIZE_VAR.XS })) : !!this.error ? (index$1.h("span", { class: "status-icon error", "aria-hidden": "true" }, "!")) : !!this.warning ? (index$1.h("span", { class: "status-icon warning", "aria-hidden": "true" }, "\u26A0")) : null, index$1.h("xv-button-v2", { key: '4b5489a5c638a8f430de09e4a2cac747299c2dd6', size: this.size, variant: "ghost", disabled: this.disabled || this.readonly, onClick: this.decrement, "aria-label": "Decrease" }, index$1.h("span", { key: '893e166dc36724066a682afe7c688463039554a6', slot: "icon-left", class: "status-icon" }, "\u2212")), index$1.h("hr", { key: '02b5ad18e9fa4fcd19a776d6c14c312025b722e9' }), index$1.h("xv-button-v2", { key: '3d084e86fb4073afda330b45d9f029dc72f86a5a', size: this.size, variant: "ghost", disabled: this.disabled || this.readonly, onClick: this.increment, "aria-label": "Increase" }, index$1.h("span", { key: '4eb5052758d452a8b9f2664c0cf2baef33955536', slot: "icon-left", class: "status-icon" }, "+"))))), message && (index$1.h("p", { key: '717c219eae006734322a039e31fa530a2d8f1c33', class: { message: true, [message.level]: true } }, message.text))));
|
|
81825
82451
|
}
|
|
81826
82452
|
static get formAssociated() { return true; }
|
|
81827
82453
|
};
|
|
@@ -82278,7 +82904,7 @@ const XvPagination = class {
|
|
|
82278
82904
|
this.observer.disconnect();
|
|
82279
82905
|
}
|
|
82280
82906
|
render() {
|
|
82281
|
-
return (index$1.h(index$1.Host, { key: '
|
|
82907
|
+
return (index$1.h(index$1.Host, { key: 'a29c7b693ea69001d1c04ab9942b4c095ae763d3', class: { block: this.block, [this.currentVariant]: true, [this.size]: !!this.size } }, this.currentVariant === 'full' && (index$1.h("div", { key: '00ab6d301986eedcaa6f174efc755c549be68175', class: "block" }, index$1.h("select", { key: 'c4d8e0610495f34de27f0c0365bc8e15f09c7165', class: "options-select", name: "options", onChange: this.handleItemsPerPageChange }, this.pageSizeOptions.map((v) => index$1.h("option", { selected: v === this.itemsPerPage, value: v }, v))))), this.currentVariant === 'full' && (index$1.h("span", { key: 'aeff24a36ee30afc27687d83b207cc9ad45cc0dc', class: "block block_full" }, `${(this.page - 1) * this.itemsPerPage + 1} – ${Math.min(this.page * this.itemsPerPage, this.totalItems)} von ${this.totalItems} Einträgen`)), this.currentVariant === 'full' && (index$1.h("div", { key: 'dd1c78767c1ddbcfaf51677d869c1f7827049f38', class: "block" }, index$1.h("select", { key: 'a8784b2d18e2b0b30a1270d2e10efa14f89e205b', class: "options-select", name: "pages", onChange: this.handlePageSelectChange }, Array.from({ length: this.total }, (_, i) => (index$1.h("option", { selected: this.page === i + 1, value: i + 1 }, i + 1)))), index$1.h("span", { key: '15ca820461781e8e9063b50751a827e302b29f63' }, "von ", this.total, " Seiten"))), this.currentVariant === 'compact' && index$1.h("span", { key: '44680186b510e3dc603047694fbfe34d39e23224', class: "block" }, "Seite ", this.page), index$1.h("xv-button-v2", { key: '1fd3f8adfa3940bbc7a6c1418f141e27ff488b8a', variant: "ghost", size: this.size, onClick: () => this.handlePageChange(this.page - 1), disabled: this.page <= 1 }, index$1.h("span", { key: 'fd6c2bca87553c53f3f1462e9d8302a9f19906f9', slot: "icon-left", class: "icon icon_prev" })), this.currentVariant === 'regular' && (index$1.h("ul", { key: 'bb4b578c6d1b86963d73673fb64fbe29cd7b935e', class: "list" }, this.visiblePagesWithDots.map((page) => (index$1.h("li", { class: { active: this.page === page } }, page === 'dots-start' ? (index$1.h("div", { class: "list_dots" }, index$1.h("xv-button-v2", { variant: "ghost", size: this.size, tabindex: -1 }, index$1.h("span", { slot: "icon-left", class: "list_dots__icon" }, "...")), index$1.h("select", { name: "start", onChange: this.handlePageSelectChange }, Array.from({ length: this.page - 3 }, (_, i) => (index$1.h("option", { value: i + 2 }, i + 2)))))) : page === 'dots-end' ? (index$1.h("div", { class: "list_dots" }, index$1.h("xv-button-v2", { variant: "ghost", size: this.size, tabindex: -1 }, index$1.h("span", { slot: "icon-left", class: "list_dots__icon" }, "...")), index$1.h("select", { name: "end", onChange: this.handlePageSelectChange }, Array.from({ length: this.total - (this.page + 2) }, (_, i) => (index$1.h("option", { value: i + this.page + 2 }, i + this.page + 2)))))) : (index$1.h("xv-button-v2", { variant: "ghost", size: this.size, disabled: this.page === page, onClick: () => this.handlePageChange(page) }, index$1.h("span", { class: "list_page", slot: "icon-left" }, page)))))))), index$1.h("xv-button-v2", { key: 'b5550040d2883244574704c643d3295760a2254f', variant: "ghost", size: this.size, onClick: () => this.handlePageChange(this.page + 1), disabled: this.page >= this.total }, index$1.h("span", { key: '351da7374e84c682e1b420a6ac97be5aacaacdee', slot: "icon-left", class: "icon icon_next" }))));
|
|
82282
82908
|
}
|
|
82283
82909
|
get el() { return index$1.getElement(this); }
|
|
82284
82910
|
};
|
|
@@ -82347,7 +82973,7 @@ const XvProgressIndicator = class {
|
|
|
82347
82973
|
this.updateChildItems();
|
|
82348
82974
|
}
|
|
82349
82975
|
render() {
|
|
82350
|
-
return (index$1.h(index$1.Host, { key: '
|
|
82976
|
+
return (index$1.h(index$1.Host, { key: '6e68433aeac02292b8b2530e462f0fd7422d6d9c', variant: this.variant, size: this.size, class: { 'xv-progress-indicator': true } }, index$1.h("slot", { key: '8d167acd9c1625edcfef332e52fa712efe633d1f' })));
|
|
82351
82977
|
}
|
|
82352
82978
|
get el() { return index$1.getElement(this); }
|
|
82353
82979
|
static get watchers() { return {
|
|
@@ -82366,7 +82992,7 @@ const XvProgressIndicatorItem = class {
|
|
|
82366
82992
|
this.status = PROGRESS_ITEM_STATUS.NO_STARTED;
|
|
82367
82993
|
}
|
|
82368
82994
|
render() {
|
|
82369
|
-
return (index$1.h(index$1.Host, { key: '
|
|
82995
|
+
return (index$1.h(index$1.Host, { key: '96cf1c73bb9e9bb7de64e0296b4f1f0f823bbc9a', status: this.status, class: { 'xv-progress-indicator-item': true } }, index$1.h("span", { key: 'ccd66f4f0698a4bdc15b550e9d2387aa8dfc87d3', class: "line" }), index$1.h("span", { key: '9e28dd04de9b5d4cb01fb99366534bb4f4d67ced', class: "icon" }, index$1.h("svg", { key: '24aefa5c8d3eb84cde70a9f5c034958a910a6b06', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512" }, index$1.h("path", { key: '097d6c12eda49149f8ec12bc1e362d0d249d9357', fill: "currentColor", d: "M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z" }))), index$1.h("p", { key: '1c895e0e104b485655424b262450ee9cf29cd463', class: "label" }, index$1.h("slot", { key: 'e5371b1ac5d5d2767ed8c99bb33869fc0c633582' }))));
|
|
82370
82996
|
}
|
|
82371
82997
|
get el() { return index$1.getElement(this); }
|
|
82372
82998
|
};
|
|
@@ -82399,12 +83025,12 @@ const XvRadio = class {
|
|
|
82399
83025
|
}
|
|
82400
83026
|
render() {
|
|
82401
83027
|
const message = index$2.resolveFieldMessage({ error: this.error, warning: this.warning, helper: this.helper });
|
|
82402
|
-
return (index$1.h("div", { key: '
|
|
83028
|
+
return (index$1.h("div", { key: '02166d375e7c99d2398d6a14fbbb60b90d380a16', class: {
|
|
82403
83029
|
'xv-radio': true,
|
|
82404
83030
|
'xv-radio--reverse': this.reverse,
|
|
82405
83031
|
'xv-radio--block': this.block,
|
|
82406
83032
|
[`xv-radio--size-${this.size}`]: !!this.size,
|
|
82407
|
-
} }, this.label && index$1.h("p", { key: '
|
|
83033
|
+
} }, this.label && index$1.h("p", { key: 'd1a81177fa3024d342450e855c14cc0388cc7553', class: "xv-radio_label" }, this.label), index$1.h("label", { key: 'c45ba9aa0cf98b07c21ccbfbd3bdbaaef8544f1e', class: { 'xv-radio_container': true, disabled: this.disabled } }, index$1.h("div", { key: '81319fc43d5686b741d3359b4728a7c16b24d2d3', class: { 'xv-radio_input': true, 'xv-radio_input--error': !!this.error || this.error === '' } }, index$1.h("input", { key: '744ca3dbae085688dc5d311f775a9a5811e9f170', ref: el => (this.inputEl = el), type: "radio", name: this.name, value: this.value, checked: this.checked, readonly: this.readonly, disabled: this.disabled }), index$1.h("span", { key: 'f32467cb36574e039ad89f66f4174333217bb47a', class: "xv-radio_input__mark" })), index$1.h("span", { key: '337e7220454322ec79aa58de00848e1fb3ca77f3', class: "xv-radio_container__label" }, index$1.h("slot", { key: '7fdd83653d3659ac10c498968b4815dfda140dab' }))), message && (index$1.h("span", { key: 'a4865648d41a69b058de946543f7b3856befd3b1', class: `xv-radio_msg xv-radio_msg--${message.level}` }, message.level !== 'helper' && (index$1.h("span", { key: 'd9cf3829912a3773779d319762b51b3f2812da59', class: "xv-radio_msg__status", "aria-hidden": "true" }, message.level === 'error' ? '!' : '⚠')), message.text)), index$1.h("slot", { key: '405d8344959363a24a25a987cd751be924c634cf', name: "info" })));
|
|
82408
83034
|
}
|
|
82409
83035
|
connectedCallback() {
|
|
82410
83036
|
var _a;
|
|
@@ -82488,7 +83114,7 @@ const XvSlider = class {
|
|
|
82488
83114
|
this.setValue(this.min);
|
|
82489
83115
|
}
|
|
82490
83116
|
render() {
|
|
82491
|
-
return (index$1.h(index$1.Host, { key: '
|
|
83117
|
+
return (index$1.h(index$1.Host, { key: '253eea9c6c9162bf5b50a97d4af8810f8490f189', class: { disabled: this.disabled, readonly: this.readonly } }, this.label && index$1.h("label", { key: 'cec17ff25892a6399a8bf9c62c9b07d4cc7934d1', class: "label" }, this.label), index$1.h("div", { key: '5f33256b927b3ddd1db17a6606bcdff87c3e6ae5', class: "control" }, index$1.h("span", { key: '8bea46771e4996618bda44f21ce7e8aa3460a984', class: "control_label" }, this.min), index$1.h("input", { key: '492338b690a33d3024ce4299e4ff5226ac318c72', type: "range", disabled: this.disabled || this.readonly, readonly: this.readonly, name: this.name, min: this.min, max: this.max, step: this.step, value: this.value, onInput: this.handleInput, style: { backgroundSize: `${((this.value - this.min) * 100) / (this.max - this.min)}% 100%` } }), index$1.h("span", { key: '7dd182d973c64638339283309df6c41b541f45e2', class: "control_label" }, this.max), !this.notEditable && (index$1.h("input", { key: '653c44c3d255d2e580bacf32f31a60acb369bbd7', type: "number", disabled: this.disabled, readonly: this.readonly, name: `${this.name}-number-input`, step: this.step, min: this.min, max: this.max, value: this.value, onInput: this.handleNumberInput, onBlur: this.handleNumberBlur })))));
|
|
82492
83118
|
}
|
|
82493
83119
|
static get formAssociated() { return true; }
|
|
82494
83120
|
};
|
|
@@ -82503,7 +83129,7 @@ const XvTab = class {
|
|
|
82503
83129
|
this.loading = false;
|
|
82504
83130
|
}
|
|
82505
83131
|
render() {
|
|
82506
|
-
return (index$1.h(index$1.Host, { key: '
|
|
83132
|
+
return (index$1.h(index$1.Host, { key: '76699ccd7d1e8af635c321550e6d6392e6e2c4b9', disabled: this.disabled, name: this.name }, this.loading ? index$1.h("xv-loader-v2", { size: _vars.SIZE_VAR.LG }) : index$1.h("slot", null)));
|
|
82507
83133
|
}
|
|
82508
83134
|
};
|
|
82509
83135
|
XvTab.style = xvTabCss();
|
|
@@ -82543,7 +83169,7 @@ const XvTable = class {
|
|
|
82543
83169
|
.join(' ') + ' repeat(auto-fit, minmax(0, 1fr))');
|
|
82544
83170
|
}
|
|
82545
83171
|
render() {
|
|
82546
|
-
return (index$1.h(index$1.Host, { key: '
|
|
83172
|
+
return (index$1.h(index$1.Host, { key: 'edf06e0e5b119011348c2feccdc819ac4155672e', class: { batchVisible: !!this.selectedCount } }, index$1.h("slot", { key: '2ac35c09a51202785ccfe1d67bff3582674a517a', name: "title" }, !!this.el.title && index$1.h("h2", { key: 'f424184d6d7037f106bfa3fd6ed83d8ed90257de', class: "xv-table-title" }, this.el.title)), index$1.h("slot", { key: '8f8e95a33a613daaad1b0ab5a6d718059e4a1385', name: "toolbar" }), index$1.h("div", { key: '497fad23df1d1617da4cb9af0aa6140a430faeb1', class: "xv-table" }, index$1.h("div", { key: 'e4d05316a9b85d7f79684c9f9b43827814755f15', class: "batch-actions" }, index$1.h(index$1.Fragment, { key: '8393b269acf1a15195d399499aa9e6c92c847d75' }, index$1.h("div", { key: 'e04878dc472d40100e58bbb8a846e065c03a82b9', class: "batch-actions_content" }, index$1.h("slot", { key: '4b5bffda977c50156e8328fcd7e6160b501dcf66', name: "batch" })), index$1.h("p", { key: '9415bf79595624335569a99e2a45b37cb7074ceb', class: "batch-actions_count" }, !!this.selectedCount && `${this.selectedCount} ${this.selectedCount === 1 ? 'Position ausgewählt' : 'Positionen ausgewählt'}`))), index$1.h("div", { key: '2dd990bd8155d14d5eae8fb4c86eb6c5bc937bf5', class: "xv-table_wrapper" }, index$1.h("slot", { key: 'ff18eaf2411ccf748bc7ab74a72bdd915eca220a' }), index$1.h("slot", { key: '93d390340a6d88c15af6989684cf4d5fa4b1d8a2', name: "footer" })), !!this.loading && (index$1.h("div", { key: '6506cd01da5cc91e907c3aca7233f0b138b341a1', class: "xv-table_loading" }, index$1.h("xv-loader-v2", { key: 'fe3a27780ea0d6d701c393fe5ee1c8d2cf3cf2ff', size: _vars.SIZE_VAR.LG }))))));
|
|
82547
83173
|
}
|
|
82548
83174
|
componentWillLoad() {
|
|
82549
83175
|
this.setColsSizeTemplate();
|
|
@@ -82584,7 +83210,7 @@ const XvTableCell = class {
|
|
|
82584
83210
|
}
|
|
82585
83211
|
;
|
|
82586
83212
|
render() {
|
|
82587
|
-
return (index$1.h(index$1.Host, { key: '
|
|
83213
|
+
return (index$1.h(index$1.Host, { key: 'bb86da283d1f6cf3b5155653e77b1d3d4ce0e369' }, index$1.h("slot", { key: '467a20aec32bc6edc93672ca27be92a06f701bf2' })));
|
|
82588
83214
|
}
|
|
82589
83215
|
get el() { return index$1.getElement(this); }
|
|
82590
83216
|
};
|
|
@@ -82605,7 +83231,7 @@ const XvTableExpand = class {
|
|
|
82605
83231
|
};
|
|
82606
83232
|
}
|
|
82607
83233
|
render() {
|
|
82608
|
-
return (index$1.h(index$1.Host, { key: '
|
|
83234
|
+
return (index$1.h(index$1.Host, { key: '473b4626a29270fa831996074fff843b7c9eddc5' }, index$1.h("button", { key: '4af26372a7115efe6b4735e2fd5e6a2a33fb969d', class: { 'expand-btn': true, open: this.open }, disabled: this.disabled, onClick: this.handleExpand }), index$1.h("slot", { key: '4d6e1bf46f257cc9fca0d9a9be2d8c171bc73378', name: XV_EXPANDABLE_KEY }), index$1.h("div", { key: 'fb5d07295e08c022aeb5f1fbd7fac4793e1d337a', class: { expandableContent: true, open: this.open } }, index$1.h("slot", { key: 'f236d82b58248c4289b327aa82b0487a1b12a714' }))));
|
|
82609
83235
|
}
|
|
82610
83236
|
componentDidLoad() {
|
|
82611
83237
|
index$2.setAttr(this.el.parentElement, XV_EXPANDABLE_KEY, true);
|
|
@@ -82660,7 +83286,7 @@ const XvTableRow = class {
|
|
|
82660
83286
|
}
|
|
82661
83287
|
}
|
|
82662
83288
|
render() {
|
|
82663
|
-
return (index$1.h(index$1.Host, { key: '
|
|
83289
|
+
return (index$1.h(index$1.Host, { key: '311a1b88a03de2e60f0dacfbddfee1966b759192' }, this.variant !== undefined && (index$1.h("xv-table-v2-cell", { key: '74aae5167235299e4d2eb3e38cf83435dfcb7d89', class: "cell-control" }, this.variant === 'checkbox' && (index$1.h("xv-checkbox-v2", { key: 'a7890c5ea8ca61cb8b6e9966596844983ae41e44', name: this.name, partial: this.partial, checked: this.checked || this.partial, disabled: this.disabled, required: this.required, readonly: this.readonly, onEventChange: this.checkHandle })), this.variant === 'radio' && (index$1.h("input", { key: '69517f260532878fed768cb5516720a065020a58', type: "radio", name: this.name, checked: this.checked || this.partial, disabled: this.disabled, required: this.required, readonly: this.readonly })))), index$1.h("slot", { key: 'ba7466543dfcf5891c2f937fdc4505e97e84f1a9' })));
|
|
82664
83290
|
}
|
|
82665
83291
|
componentWillLoad() {
|
|
82666
83292
|
this.setInitialAttrs();
|
|
@@ -83027,12 +83653,12 @@ const XvTagCombobox = class {
|
|
|
83027
83653
|
const ariaOwns = suggestionsVisible ? `${this.uid}-listbox` : undefined;
|
|
83028
83654
|
const activedesc = this.highlighted >= 0 ? this.optionId(this.highlighted) : undefined;
|
|
83029
83655
|
const message = index$2.resolveFieldMessage({ error: this.error, warning: this.warning, helper: this.helper });
|
|
83030
|
-
return (index$1.h(index$1.Host, { key: '
|
|
83656
|
+
return (index$1.h(index$1.Host, { key: 'e941872301b1952f26c4c5b90fa40f001574ec6a', class: "xv-combobox", part: "root", size: this.size }, this.label && index$1.h("label", { key: 'a4488e311b4aa48c5400a4c2d204cc18a632037f', class: "label" }, this.label), index$1.h("div", { key: 'b5915ce3fa303449bb9bc079cfff32750a6207ea', class: {
|
|
83031
83657
|
'control': true,
|
|
83032
83658
|
'control--disabled': this.disabled,
|
|
83033
83659
|
'control--error': !!this.error,
|
|
83034
83660
|
'control--readonly': !!this.readonly,
|
|
83035
|
-
}, onClick: () => this.blockClick() }, index$1.h("div", { key: '
|
|
83661
|
+
}, onClick: () => this.blockClick() }, index$1.h("div", { key: '47fbe13f27260fbdbc3e773cd55d04ce6ea9c136', class: "control-chips", role: "list" }, this.selected.map((s, i) => (index$1.h("xv-tag-v2", { role: "listitem", part: "chip", "data-value": s.value, size: this.COMPARE_TAG_SIZE[this.size], disabled: this.disabled, bg: (s === null || s === void 0 ? void 0 : s.bg) || 'var(--layer-accent-01, #F7F7F7)', color: (s === null || s === void 0 ? void 0 : s.color) || 'var(--text-primary, #333)', closeable: !this.readonly, onCloseClick: ({ detail }) => this.removeTag(i, detail) }, s.label))), index$1.h("input", { key: 'd68ffba3b0787cdb5674b56bfe2e7fea6ce9da5e', ref: (el) => (this.inputEl = el), class: "control-input", readonly: this.readonly, placeholder: this.selected.length ? '' : this.placeholder, value: this.inputValue, onInput: (e) => this.onInput(e), onKeyDown: (e) => this.onKeyDown(e), onFocus: () => { this.onOpen(); this.recomputeFiltered(); }, "aria-autocomplete": "list", "aria-expanded": this.open ? 'true' : 'false', "aria-controls": ariaOwns, "aria-activedescendant": activedesc, disabled: this.disabled })), this.loading && (index$1.h("span", { key: 'e4833d5d863c300232ad4a154bddbfad20ec6e4c', class: "control-loader", part: "loader", "aria-hidden": "true" }, index$1.h("xv-loader-v2", { key: 'c997216442aa4e60b132584242432c640ae93d21', size: "sm", variant: "horizontal" })))), message && (index$1.h("p", { key: '5e1dce2e193273c85e1ad8f7a3873d31733c22a4', class: { message: true, [message.level]: true } }, message.text)), suggestionsVisible && (index$1.h("ul", { key: 'cf5b6ef73f11d2c780271174989c6c6ef46ac699', id: `${this.uid}-listbox`, class: "suggestions", role: "listbox", part: "listbox" }, this.filtered.map((opt, idx) => (index$1.h("li", { id: this.optionId(idx), class: { 'suggestions-opt': true, 'suggestions-opt--highlight': idx === this.highlighted }, role: "option", "aria-selected": idx === this.highlighted, onMouseEnter: () => this.onOptionMouseEnter(idx), onMouseDown: (ev) => ev.preventDefault(), onClick: () => this.selectOption(opt) }, index$1.h("div", { class: "suggestions-opt-content" }, opt.bg ? index$1.h("span", { class: "suggestions-opt-content--color", style: { background: opt.bg } }) : null, index$1.h("span", { class: "suggestions-opt-content--label" }, this.highlightLabel(opt.label).map((seg, i) => typeof seg === 'string' ? index$1.h("span", { key: i }, seg) : index$1.h("strong", { key: i }, seg.match)))))))))));
|
|
83036
83662
|
}
|
|
83037
83663
|
get host() { return index$1.getElement(this); }
|
|
83038
83664
|
static get watchers() { return {
|
|
@@ -83064,7 +83690,7 @@ const XvTag = class {
|
|
|
83064
83690
|
this.closeClick.emit(e);
|
|
83065
83691
|
}
|
|
83066
83692
|
render() {
|
|
83067
|
-
return (index$1.h(index$1.Host, { key: '
|
|
83693
|
+
return (index$1.h(index$1.Host, { key: 'ed4d390c8ef169083ecffe24b2acb4ec67b5880e', style: { color: this.color, background: this.bg }, class: `xv-tag ${this.disabled ? 'disabled' : ''} ${this.size}` }, index$1.h("div", { key: 'bab5476c05c44123ef241dbd3accd8964dbebb52', class: "xv-tag_content", part: "details-content" }, index$1.h("slot", { key: 'f8c3f1370ce99ddea046d0c39bc00a5e068e047b' })), this.closeable && (index$1.h("button", { key: 'c9cc9c79e51528c004147db83bd421f5417b718f', onClick: this.closeHandler.bind(this), class: "xv-tag_close" }))));
|
|
83068
83694
|
}
|
|
83069
83695
|
};
|
|
83070
83696
|
XvTag.style = xvTagCss();
|
|
@@ -83104,13 +83730,13 @@ const XvTextInput = class {
|
|
|
83104
83730
|
}
|
|
83105
83731
|
render() {
|
|
83106
83732
|
const message = index$2.resolveFieldMessage({ error: this.error, warning: this.warning, helper: this.helper });
|
|
83107
|
-
return (index$1.h(index$1.Host, { key: '
|
|
83733
|
+
return (index$1.h(index$1.Host, { key: '79042d7211819be55a545c7aaf96b008af3b0266', class: { disabled: !!this.disabled } }, index$1.h("label", { key: 'c46f6ba70140cdcb97ae554c33a863ca65cf1cf5', class: "control" }, this.label && index$1.h("span", { key: '01f9cb555e6ec53e8e1b0af99b3a083706bcbda3', class: "control_label" }, this.label), index$1.h("div", { key: 'f1da6bfba9b1c52cce4895766c1676811753cb74', class: {
|
|
83108
83734
|
'control_input': true,
|
|
83109
83735
|
readonly: !!this.readonly,
|
|
83110
83736
|
[this.size]: true,
|
|
83111
83737
|
error: !!this.error,
|
|
83112
83738
|
warning: !!this.warning,
|
|
83113
|
-
} }, index$1.h("input", { key: '
|
|
83739
|
+
} }, index$1.h("input", { key: '4760634ed3d635cd1e84843d76d5c26248f0d13b', autocomplete: this.autocomplete, type: (this.type === 'password' && this.isPasswordVisible && 'text') || this.type, placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, onInput: this.handleInput, name: this.name, value: this.value }), index$1.h("div", { key: 'b77c7f12f299082a2152a35cfeec3d62e84403b9', class: "control_input__icons" }, this.loading && index$1.h("xv-loader-v2", { key: '26b643e921c83f19119412b026901236d2649855', size: _vars.SIZE_VAR.XS }), this.clearable && this.value && !this.loading && !this.disabled && !this.readonly && (index$1.h("button", { key: 'b98166bd005da5b326f71e66ab9359d05295e9c4', type: "button", class: "status-icon clear", "aria-label": "Clear", onClick: this.handleClear }, "\u00D7")), !!this.error ? (index$1.h("span", { class: "status-icon error", "aria-hidden": "true" }, "!")) : !!this.warning ? (index$1.h("span", { class: "status-icon warning", "aria-hidden": "true" }, "\u26A0")) : null, this.type === 'password' && (index$1.h("button", { key: '9f175a3e5f68df8f6b5a2f96b42d47c2c5619ecc', onClick: this.togglePassword, disabled: this.disabled, class: "status-icon" }, index$1.h("svg", { key: '36c3df92e0eb7af38ac44f1f1f3dc041210631a0', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 640 512", width: 16, height: 16 }, this.isPasswordVisible ? (index$1.h("path", { fill: "currentColor", d: "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z" })) : (index$1.h("path", { fill: "currentColor", d: "M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z" })))))))), message && (index$1.h("p", { key: '8875f82c52418fafef874e0c349e84dd1b67bc54', class: { message: true, [message.level]: true } }, message.text))));
|
|
83114
83740
|
}
|
|
83115
83741
|
static get formAssociated() { return true; }
|
|
83116
83742
|
};
|
|
@@ -83148,12 +83774,12 @@ const XvTextarea = class {
|
|
|
83148
83774
|
}
|
|
83149
83775
|
render() {
|
|
83150
83776
|
const message = index$2.resolveFieldMessage({ error: this.error, warning: this.warning, helper: this.helper });
|
|
83151
|
-
return (index$1.h(index$1.Host, { key: '
|
|
83777
|
+
return (index$1.h(index$1.Host, { key: '8e7b82b83f6145642480920bf9849742b5c4a67e', class: { disabled: !!this.disabled } }, index$1.h("label", { key: '59a74cb4d45e0d4b70181f3faf0a8dad9a81d614', class: "control" }, (this.label || this.max) && (index$1.h("p", { key: '8d4878a86e033cf33fb2d3444f6b3ffa36899d37', class: "control_label" }, index$1.h("span", { key: '306c34b609570b9e75f9324e3544a2a109b8f98d' }, this.label, this.info && index$1.h("xv-tooltip-v2", { key: 'd28af7a413eb42a50e1ace227c82bbcd2b025438', message: this.info })), this.max !== undefined && !this.counterHide && (index$1.h("span", { key: '52576a05c421328cdad75ff9c3d4088097f4922a', class: "control_label__count" }, this.value.length || 0, "/", this.max)))), index$1.h("div", { key: '4f97adacb8d95702abb772de002f03bed03fb16e', class: {
|
|
83152
83778
|
'control_input': true,
|
|
83153
83779
|
readonly: !!this.readonly,
|
|
83154
83780
|
error: !!this.error,
|
|
83155
83781
|
warning: this.warning !== undefined,
|
|
83156
|
-
} }, index$1.h("textarea", { key: '
|
|
83782
|
+
} }, index$1.h("textarea", { key: '98e6e771cb01f22cc364697cfe64345c4bd1683b', class: { 'no-resize': !!this.noResize }, name: this.name, rows: this.rows, value: this.value, maxLength: this.max, disabled: this.disabled, readOnly: this.readonly, placeholder: this.placeholder, onInput: this.onInput }), index$1.h("div", { key: '3b70c503fee52d6656e0c09deb1240a16ba0c901', class: "control_input__icons" }, this._renderIcon()))), message && (index$1.h("p", { key: 'e2868393a6c884f5c7aab30a6e4fd4497b8307d0', class: { message: true, [message.level]: true } }, message.text))));
|
|
83157
83783
|
}
|
|
83158
83784
|
_renderIcon() {
|
|
83159
83785
|
if (this.loading)
|
|
@@ -83204,7 +83830,7 @@ const XvTile = class {
|
|
|
83204
83830
|
this.checked = !this.checked;
|
|
83205
83831
|
}
|
|
83206
83832
|
render() {
|
|
83207
|
-
return (index$1.h(index$1.Host, { key: '
|
|
83833
|
+
return (index$1.h(index$1.Host, { key: 'aaeeccf8990e5e2ce7d3a261291d2908745f1e74', class: "xv-tile--host" }, index$1.h("label", { key: 'acf77670a01d9872a7224064527b79b4194307bc', class: {
|
|
83208
83834
|
[this.el.className]: !!this.el.className,
|
|
83209
83835
|
'xv-tile': true,
|
|
83210
83836
|
[`xv-tile--variant-${this.variant}`]: !!this.variant,
|
|
@@ -83212,7 +83838,7 @@ const XvTile = class {
|
|
|
83212
83838
|
'xv-tile--disabled': !!this.disabled,
|
|
83213
83839
|
'selected': !!this.checked,
|
|
83214
83840
|
'xv-tile--error': !!this.error,
|
|
83215
|
-
} }, index$1.h("div", { key: '
|
|
83841
|
+
} }, index$1.h("div", { key: 'e57313a08c5135152c9ba367a0b360a6a9333c63', class: "xv-tile_content" }, this.label && index$1.h("p", { key: 'e0182093f55e60bb9eb8bc759c3816f9ac201a6a', class: "xv-tile_content__title" }, this.label), index$1.h("slot", { key: '3d507a7bd6f7816079d873801ddb72f8f2ede9b6' })), this.variant === 'selectable' && (index$1.h("div", { key: '96892981b579f5ddb21d2d897f037abd17102ba7', class: "xv-tile_control" }, this.multiple ? (index$1.h("input", { type: "checkbox", disabled: this.disabled || this.readonly, readonly: this.readonly, onChange: this.handleChange, name: this.name, value: this.value, checked: this.checked })) : (index$1.h("input", { type: "radio", disabled: this.disabled || this.readonly, readonly: this.readonly, onChange: this.handleChange, name: this.name, value: this.value, checked: this.checked })))), (this.variant === 'clickable' || this.variant === 'expandable') && (index$1.h("div", { key: 'ec5750ee2a4f6898393b3cc3ddc3aef989208456', class: "xv-tile_footer" }, index$1.h("button", { key: '031964c0d328d89f70df52a2723a295a2fa409d2', class: { 'xv-tile_footer__icon': true, [`icon--${this.variant}`]: true, open: this.checked } }))), index$1.h("div", { key: '31efefae6b9fad590ce1e1145dd16be6def61f02', class: { 'xv-tile_expandable': true, open: this.checked } }, index$1.h("slot", { key: '59dc3a92d9ea4158d9edba752cb7e8846c068c20', name: "expandable" })))));
|
|
83216
83842
|
}
|
|
83217
83843
|
get el() { return index$1.getElement(this); }
|
|
83218
83844
|
};
|
|
@@ -83244,7 +83870,7 @@ const XvToggle = class {
|
|
|
83244
83870
|
};
|
|
83245
83871
|
}
|
|
83246
83872
|
render() {
|
|
83247
|
-
return (index$1.h(index$1.Host, { key: '
|
|
83873
|
+
return (index$1.h(index$1.Host, { key: '19a5cfc45aa468c93b6b0dc3d61d5dbc69a02e28', class: { 'xv-toggle': true, disabled: this.disabled, readonly: !!this.readonly, block: !!this.block } }, this.label && index$1.h("span", { key: '07e87a9fa4a5cc82e35c9a4860fa5bf2f08aa14b', class: "label" }, this.label), index$1.h("label", { key: '0f023f5e6ab44023441c09d07e098ac633b64863', class: "control" }, index$1.h("slot", { key: '9557fa03fa243f56ad8725521064a09d1b40f186', name: "before" }), index$1.h("div", { key: '550587838ab46027f1b5b371ab84653e751c593d', class: "control_input" }, index$1.h("input", { key: 'b75fd651bfc5b8eb7b5451d38504f71104894e44', type: "checkbox", readonly: this.readonly, name: this.name, value: this.value, checked: this.checked, disabled: this.disabled || this.readonly, onChange: this.onChange }), index$1.h("span", { key: 'fbafd5d851099473ec795541c5ff8b59ca26e327', class: "toggle" })), index$1.h("slot", { key: '08948e6980e8b7bd8146f39d28af5832ace11d49', name: "after" }))));
|
|
83248
83874
|
}
|
|
83249
83875
|
static get formAssociated() { return true; }
|
|
83250
83876
|
};
|
|
@@ -83321,7 +83947,7 @@ const XvToggleTip = class {
|
|
|
83321
83947
|
}
|
|
83322
83948
|
;
|
|
83323
83949
|
render() {
|
|
83324
|
-
return (index$1.h(index$1.Host, { key: '
|
|
83950
|
+
return (index$1.h(index$1.Host, { key: '19f3956d61f53cfd4974ebf74eca2e59eda96bbe', class: "xv-toggle-tip" }, index$1.h("div", { key: '02df021b69a17a7320e087acc3472921da76cbec', class: { 'trigger': true, 'trigger--block': this.block }, role: "button", tabindex: "0", "aria-expanded": this.open ? 'true' : 'false', "aria-controls": "popover", onClick: () => this.setPopover(!this.open), ref: (el) => (this.triggerEl = el) }, index$1.h("slot", { key: 'bf9322a2c89c2ab8af45a34c1fa8062d6b0d9c85', name: "trigger" }, index$1.h("svg", { key: '49d5177854b74ac8701477ba6b5cf43b3ca10ca0', class: "trigger_icon", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: 16, height: 16 }, index$1.h("path", { key: 'd38493c5b444b8e5b2f29286e09ac3f813d8091a', fill: "currentColor", d: "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-88c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 64-24 0zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z" })))), index$1.h("div", { key: '21c766a13e4ebfbfc8e5a4d37466a661730c50ac', class: { popover: true, autoSize: !!this.autoSize }, role: "tooltip", tabindex: "-1", ref: (el) => (this.popoverEl = el) }, index$1.h("div", { key: 'c1dd6ee875cb9f68068c6067271fd9204b1f76c2', class: "popover-tip", part: "tip", "data-popper-arrow": "" }), index$1.h("div", { key: '1905eb38b9199c84a4c145a80c3957f1d76a18ed', class: "popover-content" }, index$1.h("slot", { key: '6ca62c2347633dd9411feefa36f33147e6eed69b', name: "header" }), index$1.h("slot", { key: 'e41510dd45b200b138d324bfb26a7bd6f8a8a667', name: "body" }), index$1.h("slot", { key: '20e4af025e79a515724379e9be82ed703cb57e2b', name: "footer" })))));
|
|
83325
83951
|
}
|
|
83326
83952
|
disconnectedCallback() {
|
|
83327
83953
|
this.destroyPopper();
|
|
@@ -83376,11 +84002,11 @@ const XvTooltip = class {
|
|
|
83376
84002
|
this.destroyTooltip();
|
|
83377
84003
|
}
|
|
83378
84004
|
render() {
|
|
83379
|
-
return (index$1.h(index$1.Host, { key: '
|
|
84005
|
+
return (index$1.h(index$1.Host, { key: 'dd4bb9b3cba5a7d8a0a326ec58455743025eecb6', role: "tooltip", class: {
|
|
83380
84006
|
'xv-tooltip-wrapper': true,
|
|
83381
84007
|
[`xv-tooltip-wrapper__block`]: !!this.block,
|
|
83382
84008
|
[`xv-tooltip-wrapper__dashed`]: !!this.dashed,
|
|
83383
|
-
} }, index$1.h("slot", { key: '
|
|
84009
|
+
} }, index$1.h("slot", { key: '6fb648c67f6451eafe33a2b6ea7e91f256f1353b' }, index$1.h("svg", { key: '130f9a4f275c8562d3c192acd0e608be68620c6d', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: 16, height: 16 }, index$1.h("path", { key: '85dfddeac164ba00a615a5ed5f9e1cb8535806a0', fill: "currentColor", d: "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-88c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 64-24 0zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z" })))));
|
|
83384
84010
|
}
|
|
83385
84011
|
get el() { return index$1.getElement(this); }
|
|
83386
84012
|
};
|
|
@@ -83404,6 +84030,7 @@ exports.xv_dropdown_v2 = XvDropdown;
|
|
|
83404
84030
|
exports.xv_dropdown_v2_item = XvDropdownItem;
|
|
83405
84031
|
exports.xv_file_uploader = XvFileUploader;
|
|
83406
84032
|
exports.xv_footer = Xvfooter;
|
|
84033
|
+
exports.xv_geo_map_v2 = XvGeoMap;
|
|
83407
84034
|
exports.xv_header = XvHeader;
|
|
83408
84035
|
exports.xv_image_viewer = XvImageViewer;
|
|
83409
84036
|
exports.xv_link_v2 = XvLink;
|