@oiz/stzh-components 3.8.0-beta2 → 3.8.1
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/{app-globals-a393bc30.js → app-globals-3c2e0620.js} +2 -2
- package/dist/cjs/{app-globals-a393bc30.js.map → app-globals-3c2e0620.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/stzh-badge_3.cjs.entry.js +1 -1
- package/dist/cjs/stzh-badge_3.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-checkboxgroup.cjs.entry.js +12 -11
- package/dist/cjs/stzh-checkboxgroup.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-components.cjs.js +2 -2
- package/dist/cjs/stzh-contact.cjs.entry.js +1 -1
- package/dist/cjs/stzh-contact.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-dialog.cjs.entry.js +1 -1
- package/dist/cjs/stzh-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-geo-ref-data.cjs.entry.js +2 -2
- package/dist/cjs/stzh-geo-ref-data.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-upload.cjs.entry.js +34 -8
- package/dist/cjs/stzh-upload.cjs.entry.js.map +1 -1
- package/dist/collection/components/stzh-button/stzh-button.css +13 -4
- package/dist/collection/components/stzh-button/stzh-button.stories.js +12 -21
- package/dist/collection/components/stzh-checkboxgroup/stzh-checkboxgroup.js +31 -14
- package/dist/collection/components/stzh-checkboxgroup/stzh-checkboxgroup.js.map +1 -1
- package/dist/collection/components/stzh-contact/stzh-contact.css +3 -0
- package/dist/collection/components/stzh-datepicker/stzh-datepicker.stories.js +1 -1
- package/dist/collection/components/stzh-dialog/stzh-dialog.css +2 -1
- package/dist/collection/components/stzh-geo-ref-data/stzh-geo-ref-data.js +2 -2
- package/dist/collection/components/stzh-geo-ref-data/stzh-geo-ref-data.js.map +1 -1
- package/dist/collection/components/stzh-input/stzh-input.stories.js +1 -1
- package/dist/collection/components/stzh-upload/stzh-upload.js +36 -9
- package/dist/collection/components/stzh-upload/stzh-upload.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/{p-4fec83e3.js → p-16940157.js} +2 -2
- package/dist/components/{p-4fec83e3.js.map → p-16940157.js.map} +1 -1
- package/dist/components/{p-2fe2c81f.js → p-1d21ac10.js} +3 -3
- package/dist/components/{p-2fe2c81f.js.map → p-1d21ac10.js.map} +1 -1
- package/dist/components/{p-6e8c91f8.js → p-37367a31.js} +4 -4
- package/dist/components/{p-6e8c91f8.js.map → p-37367a31.js.map} +1 -1
- package/dist/components/{p-74755a90.js → p-408a1562.js} +2 -2
- package/dist/components/{p-74755a90.js.map → p-408a1562.js.map} +1 -1
- package/dist/components/{p-7e9f4f9f.js → p-497e2db0.js} +2 -2
- package/dist/components/{p-7e9f4f9f.js.map → p-497e2db0.js.map} +1 -1
- package/dist/components/p-4d000b5b.js +265 -0
- package/dist/components/p-4d000b5b.js.map +1 -0
- package/dist/components/{p-866cf184.js → p-4e5ccabd.js} +2 -2
- package/dist/components/{p-866cf184.js.map → p-4e5ccabd.js.map} +1 -1
- package/dist/components/{p-bd7d15a6.js → p-541e8c61.js} +2 -2
- package/dist/components/{p-bd7d15a6.js.map → p-541e8c61.js.map} +1 -1
- package/dist/components/{p-d4aabf9c.js → p-60b9f94a.js} +3 -3
- package/dist/components/p-60b9f94a.js.map +1 -0
- package/dist/components/{p-47601c6a.js → p-62e6cd61.js} +3 -3
- package/dist/components/{p-47601c6a.js.map → p-62e6cd61.js.map} +1 -1
- package/dist/components/{p-13c3319c.js → p-6956beb9.js} +2 -2
- package/dist/components/{p-13c3319c.js.map → p-6956beb9.js.map} +1 -1
- package/dist/components/{p-9b0832ca.js → p-70f62e8e.js} +3 -3
- package/dist/components/{p-9b0832ca.js.map → p-70f62e8e.js.map} +1 -1
- package/dist/components/{p-5efa3e34.js → p-96416f66.js} +2 -2
- package/dist/components/{p-5efa3e34.js.map → p-96416f66.js.map} +1 -1
- package/dist/components/{p-435e0ef4.js → p-c73125e2.js} +3 -3
- package/dist/components/{p-435e0ef4.js.map → p-c73125e2.js.map} +1 -1
- package/dist/components/{p-d1623b2e.js → p-dd072a49.js} +2 -2
- package/dist/components/{p-d1623b2e.js.map → p-dd072a49.js.map} +1 -1
- package/dist/components/{p-4039ba55.js → p-e5edc56d.js} +2 -2
- package/dist/components/{p-4039ba55.js.map → p-e5edc56d.js.map} +1 -1
- package/dist/components/{p-e197115b.js → p-fa14b406.js} +2 -2
- package/dist/components/{p-e197115b.js.map → p-fa14b406.js.map} +1 -1
- package/dist/components/stzh-actionset.js +1 -1
- package/dist/components/stzh-amount.js +2 -2
- package/dist/components/stzh-appointments.js +4 -4
- package/dist/components/stzh-archivelist.js +1 -1
- package/dist/components/stzh-banner.js +1 -1
- package/dist/components/stzh-button.js +1 -1
- package/dist/components/stzh-calendar.js +1 -1
- package/dist/components/stzh-card-searchresult.js +3 -3
- package/dist/components/stzh-card-superteaser.js +3 -3
- package/dist/components/stzh-card.js +1 -1
- package/dist/components/stzh-checkboxgroup.js +13 -12
- package/dist/components/stzh-checkboxgroup.js.map +1 -1
- package/dist/components/stzh-contact.js +1 -1
- package/dist/components/stzh-contact.js.map +1 -1
- package/dist/components/stzh-datalist-item.js +1 -1
- package/dist/components/stzh-datalist.js +1 -1
- package/dist/components/stzh-datamessagelist-item.js +1 -1
- package/dist/components/stzh-datatable.js +5 -5
- package/dist/components/stzh-datepicker.js +1 -1
- package/dist/components/stzh-dialog.js +1 -1
- package/dist/components/stzh-disturber.js +1 -1
- package/dist/components/stzh-feedreader.js +2 -2
- package/dist/components/stzh-gallery.js +1 -1
- package/dist/components/stzh-geo-ref-data.js +7 -7
- package/dist/components/stzh-geo-ref-data.js.map +1 -1
- package/dist/components/stzh-ghettobox.js +1 -1
- package/dist/components/stzh-header.js +1 -1
- package/dist/components/stzh-http-error.js +1 -1
- package/dist/components/stzh-iframe.js +1 -1
- package/dist/components/stzh-input.js +1 -1
- package/dist/components/stzh-message.js +1 -1
- package/dist/components/stzh-microsite-teaserlist.js +3 -3
- package/dist/components/stzh-offline-indicator.js +3 -3
- package/dist/components/stzh-pagebottom.js +2 -2
- package/dist/components/stzh-pagination.js +1 -1
- package/dist/components/stzh-panorama.js +1 -1
- package/dist/components/stzh-poilist.js +2 -2
- package/dist/components/stzh-readspeaker.js +1 -1
- package/dist/components/stzh-saptcha.js +2 -2
- package/dist/components/stzh-search.js +2 -2
- package/dist/components/stzh-share.js +1 -1
- package/dist/components/stzh-sitemap.js +3 -3
- package/dist/components/stzh-toast.js +1 -1
- package/dist/components/stzh-toastbar.js +1 -1
- package/dist/components/stzh-upload.js +40 -13
- package/dist/components/stzh-upload.js.map +1 -1
- package/dist/components/stzh-vbz-majorticker.js +2 -2
- package/dist/components/stzh-youtube.js +2 -2
- package/dist/esm/{app-globals-6ab4a484.js → app-globals-3dfd8851.js} +2 -2
- package/dist/esm/{app-globals-6ab4a484.js.map → app-globals-3dfd8851.js.map} +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/stzh-badge_3.entry.js +1 -1
- package/dist/esm/stzh-badge_3.entry.js.map +1 -1
- package/dist/esm/stzh-checkboxgroup.entry.js +12 -11
- package/dist/esm/stzh-checkboxgroup.entry.js.map +1 -1
- package/dist/esm/stzh-components.js +2 -2
- package/dist/esm/stzh-contact.entry.js +1 -1
- package/dist/esm/stzh-contact.entry.js.map +1 -1
- package/dist/esm/stzh-dialog.entry.js +1 -1
- package/dist/esm/stzh-dialog.entry.js.map +1 -1
- package/dist/esm/stzh-geo-ref-data.entry.js +2 -2
- package/dist/esm/stzh-geo-ref-data.entry.js.map +1 -1
- package/dist/esm/stzh-upload.entry.js +34 -8
- package/dist/esm/stzh-upload.entry.js.map +1 -1
- package/dist/stzh-components/{p-232d017c.entry.js → p-6a3db3bd.entry.js} +2 -2
- package/dist/stzh-components/p-6a3db3bd.entry.js.map +1 -0
- package/dist/stzh-components/p-75143e35.entry.js +2 -0
- package/dist/stzh-components/p-75143e35.entry.js.map +1 -0
- package/dist/stzh-components/p-84cedd61.entry.js +2 -0
- package/dist/stzh-components/p-84cedd61.entry.js.map +1 -0
- package/dist/stzh-components/p-9f91ca1f.entry.js +2 -0
- package/dist/stzh-components/p-9f91ca1f.entry.js.map +1 -0
- package/dist/stzh-components/{p-c83239a9.entry.js → p-b25e8b20.entry.js} +2 -2
- package/dist/stzh-components/p-b25e8b20.entry.js.map +1 -0
- package/dist/stzh-components/p-b54e7053.js +2 -0
- package/dist/stzh-components/{p-7036f004.js.map → p-b54e7053.js.map} +1 -1
- package/dist/stzh-components/{p-a47a14ef.entry.js → p-b9dc1279.entry.js} +2 -2
- package/dist/stzh-components/p-b9dc1279.entry.js.map +1 -0
- package/dist/stzh-components/stzh-components.esm.js +1 -1
- package/dist/stzh-components/stzh-components.esm.js.map +1 -1
- package/dist/types/components/stzh-checkboxgroup/stzh-checkboxgroup.d.ts +3 -3
- package/dist/types/components/stzh-upload/stzh-upload.d.ts +1 -0
- package/dist/types/components.d.ts +8 -0
- package/dist/vscode-data.json +4 -0
- package/package.json +1 -1
- package/dist/components/p-20c7b76b.js +0 -265
- package/dist/components/p-20c7b76b.js.map +0 -1
- package/dist/components/p-d4aabf9c.js.map +0 -1
- package/dist/stzh-components/p-232d017c.entry.js.map +0 -1
- package/dist/stzh-components/p-7036f004.js +0 -2
- package/dist/stzh-components/p-a47a14ef.entry.js.map +0 -1
- package/dist/stzh-components/p-a71fafbd.entry.js +0 -2
- package/dist/stzh-components/p-a71fafbd.entry.js.map +0 -1
- package/dist/stzh-components/p-aff2ca5f.entry.js +0 -2
- package/dist/stzh-components/p-aff2ca5f.entry.js.map +0 -1
- package/dist/stzh-components/p-c83239a9.entry.js.map +0 -1
- package/dist/stzh-components/p-da2c88a2.entry.js +0 -2
- package/dist/stzh-components/p-da2c88a2.entry.js.map +0 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
@charset "UTF-8";
|
|
2
1
|
/**
|
|
3
2
|
* Colors
|
|
4
3
|
*/
|
|
@@ -264,8 +263,18 @@
|
|
|
264
263
|
:host[active]:not([active=false]) {
|
|
265
264
|
--color: var(--stzh-button-active-color, var(--stzh-color-white));
|
|
266
265
|
--background-color: var(--stzh-button-active-background-color, var(--stzh-color-secondary60));
|
|
267
|
-
|
|
268
|
-
|
|
266
|
+
}
|
|
267
|
+
:host[active][variant=secondary]:not([active=false]) {
|
|
268
|
+
--color: var(--stzh-button-secondary-hover-color, var(--stzh-color-primary80));
|
|
269
|
+
--background-color: var(--stzh-button-secondary-hover-background-color, var(--stzh-color-secondary40));
|
|
270
|
+
}
|
|
271
|
+
:host[active][variant=tertiary]:not([active=false]) {
|
|
272
|
+
--color: var(--stzh-button-tertiary-hover-color, var(--stzh-color-primary80));
|
|
273
|
+
--background-color: var(--stzh-button-tertiary-hover-background-color, var(--stzh-color-secondary20));
|
|
274
|
+
}
|
|
275
|
+
:host[active][variant=tertiary-plain]:not([active=false]) {
|
|
276
|
+
--color: var(--stzh-button-tertiary-hover-color, var(--stzh-color-primary80));
|
|
277
|
+
--background-color: transparent;
|
|
269
278
|
}
|
|
270
279
|
:host[disabled]:not([disabled=false]), :host[a11y-disabled]:not([a11y-disabled=false]) {
|
|
271
280
|
--color: var(--stzh-button-disabled-color, var(--stzh-color-white));
|
|
@@ -580,7 +589,7 @@
|
|
|
580
589
|
.stzh-button__icon-wrapper:not(:empty) + .stzh-button__text:not(:empty), .stzh-button__text:not(:empty) + .stzh-button__icon-wrapper:not(:empty) {
|
|
581
590
|
margin-left: var(--icon-text-margin);
|
|
582
591
|
}
|
|
583
|
-
.stzh-button__badge
|
|
592
|
+
.stzh-button__badge {
|
|
584
593
|
position: absolute;
|
|
585
594
|
z-index: 1;
|
|
586
595
|
top: 0;
|
|
@@ -143,27 +143,6 @@ export const Tertiary = {
|
|
|
143
143
|
args: {
|
|
144
144
|
label: 'Tertiary Button',
|
|
145
145
|
variant: 'tertiary',
|
|
146
|
-
active: true // ToDo: With PDESI-1507, this tests shouldn't fail anymore
|
|
147
|
-
},
|
|
148
|
-
tags: ['!test'],
|
|
149
|
-
play: async ({ canvasElement, step }) => {
|
|
150
|
-
|
|
151
|
-
stzhButtonEl = await getComponentByTestId(canvasElement, BUTTON_TEST_ID);
|
|
152
|
-
|
|
153
|
-
await step('Assert properties', async () => {
|
|
154
|
-
expect(stzhButtonEl).toHaveProperty('label', 'Tertiary Button');
|
|
155
|
-
expect(stzhButtonEl).toHaveAttribute('variant', 'tertiary');
|
|
156
|
-
expect(stzhButtonEl).toHaveAttribute('size', 'default');
|
|
157
|
-
expect(stzhButtonEl).toHaveAttribute('active');
|
|
158
|
-
expect(stzhButtonEl).not.toHaveAttribute('active', 'false');
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
await step('Background is transparent (fix with PDESI-1507)', async () => {
|
|
162
|
-
const buttonEl = stzhButtonEl.querySelector('button');
|
|
163
|
-
const computedStyle = window.getComputedStyle(buttonEl);
|
|
164
|
-
const backgroundColor = computedStyle.backgroundColor;
|
|
165
|
-
expect(backgroundColor).toBe('rgba(0, 0, 0, 0)');
|
|
166
|
-
});
|
|
167
146
|
},
|
|
168
147
|
};
|
|
169
148
|
|
|
@@ -172,15 +151,27 @@ export const TertiaryPlain = {
|
|
|
172
151
|
args: {
|
|
173
152
|
label: 'Tertiary Plain Button',
|
|
174
153
|
variant: 'tertiary-plain',
|
|
154
|
+
active: true,
|
|
175
155
|
},
|
|
156
|
+
|
|
176
157
|
play: async ({ canvasElement, step }) => {
|
|
177
158
|
|
|
178
159
|
stzhButtonEl = await getComponentByTestId(canvasElement, BUTTON_TEST_ID);
|
|
179
160
|
|
|
180
161
|
await step('Assert properties', async () => {
|
|
181
162
|
expect(stzhButtonEl).toHaveAttribute('variant', 'tertiary-plain');
|
|
163
|
+
expect(stzhButtonEl).toHaveAttribute('active');
|
|
164
|
+
expect(stzhButtonEl).not.toHaveAttribute('active', 'false');
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
await step('Background is transparent', async () => {
|
|
168
|
+
const buttonEl = stzhButtonEl.querySelector('button');
|
|
169
|
+
const computedStyle = window.getComputedStyle(buttonEl);
|
|
170
|
+
const backgroundColor = computedStyle.backgroundColor;
|
|
171
|
+
expect(backgroundColor).toBe('rgba(0, 0, 0, 0)');
|
|
182
172
|
});
|
|
183
173
|
},
|
|
174
|
+
|
|
184
175
|
};
|
|
185
176
|
|
|
186
177
|
export const AsLink = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { h, Host } from "@stencil/core";
|
|
2
2
|
import { hasSlot } from "../../utils/utils";
|
|
3
3
|
import { camelCase } from "../../utils/string-utils";
|
|
4
4
|
import { StzhInputDescription } from "../stzh-input/stzh-input-description";
|
|
@@ -20,12 +20,12 @@ export class StzhCheckboxgroup {
|
|
|
20
20
|
this.init = () => {
|
|
21
21
|
// update checkboxes
|
|
22
22
|
this.checkboxes = Array.from(this.element.querySelectorAll("stzh-checkbox"));
|
|
23
|
+
this.updateCheckboxesProperty("hide-optional", true);
|
|
23
24
|
this.updateCheckboxesProperty("a11y-describedby", `${this.checkboxgroupId}-description`);
|
|
24
25
|
this.updateCheckboxesProperty("invalid", this.invalid || this.errorUsed);
|
|
25
26
|
this.watchValue(this.value);
|
|
26
27
|
this.watchName(this.name);
|
|
27
28
|
this.watchDisabled(this.disabled);
|
|
28
|
-
this.watchHideOptional(this.hideOptional);
|
|
29
29
|
};
|
|
30
30
|
this.localization = undefined;
|
|
31
31
|
this.disabled = false;
|
|
@@ -33,6 +33,7 @@ export class StzhCheckboxgroup {
|
|
|
33
33
|
this.legend = undefined;
|
|
34
34
|
this.hideLegend = false;
|
|
35
35
|
this.invalid = false;
|
|
36
|
+
this.required = false;
|
|
36
37
|
this.hideOptional = false;
|
|
37
38
|
this.value = "";
|
|
38
39
|
this.defaultValue = [];
|
|
@@ -50,9 +51,6 @@ export class StzhCheckboxgroup {
|
|
|
50
51
|
watchDisabled(newValue) {
|
|
51
52
|
this.updateCheckboxesProperty("disabled", newValue);
|
|
52
53
|
}
|
|
53
|
-
watchHideOptional(newValue) {
|
|
54
|
-
this.updateCheckboxesProperty("hideOptional", newValue);
|
|
55
|
-
}
|
|
56
54
|
watchValue(newValue) {
|
|
57
55
|
if (typeof newValue === "string") {
|
|
58
56
|
this._value = JSON.parse(newValue);
|
|
@@ -114,13 +112,13 @@ export class StzhCheckboxgroup {
|
|
|
114
112
|
this.value = this._value;
|
|
115
113
|
this.stzhChange.emit({
|
|
116
114
|
component: "stzh-checkboxgroup",
|
|
117
|
-
value: this._value
|
|
115
|
+
value: this._value
|
|
118
116
|
});
|
|
119
117
|
}
|
|
120
118
|
}
|
|
121
119
|
get errorUsed() {
|
|
122
120
|
var _a;
|
|
123
|
-
return hasSlot(this.element,
|
|
121
|
+
return hasSlot(this.element, "error") || ((_a = this._error) === null || _a === void 0 ? void 0 : _a.length) > 0;
|
|
124
122
|
}
|
|
125
123
|
updateCheckboxesProperty(prop, value) {
|
|
126
124
|
this.checkboxes.forEach((checkbox) => {
|
|
@@ -144,7 +142,7 @@ export class StzhCheckboxgroup {
|
|
|
144
142
|
this.errorWatcher(this.error);
|
|
145
143
|
this.preventUpdatePropertiesWatcher(this.preventUpdateProperties);
|
|
146
144
|
if (!this.localization) {
|
|
147
|
-
this.localization = await window.stzhComponents.utils.fetchTranslations(this.element,
|
|
145
|
+
this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, "checkboxgroup");
|
|
148
146
|
}
|
|
149
147
|
}
|
|
150
148
|
componentShouldUpdate(_newValue, _oldValue, prop) {
|
|
@@ -176,8 +174,8 @@ export class StzhCheckboxgroup {
|
|
|
176
174
|
}
|
|
177
175
|
}
|
|
178
176
|
render() {
|
|
179
|
-
const descriptionUsed = hasSlot(this.element,
|
|
180
|
-
const descriptionLongUsed = hasSlot(this.element,
|
|
177
|
+
const descriptionUsed = hasSlot(this.element, "description") || !!this.description;
|
|
178
|
+
const descriptionLongUsed = hasSlot(this.element, "description-long") || !!this.descriptionLong;
|
|
181
179
|
const classes = {
|
|
182
180
|
"stzh-checkboxgroup": true,
|
|
183
181
|
"stzh-checkboxgroup--has-description": descriptionUsed,
|
|
@@ -189,7 +187,11 @@ export class StzhCheckboxgroup {
|
|
|
189
187
|
[`stzh-checkboxgroup--direction-${this.direction}`]: !!this.direction
|
|
190
188
|
};
|
|
191
189
|
return (h(Host, { "is-invalid": this.invalid || this.errorUsed }, h("fieldset", { class: classes }, this.legend &&
|
|
192
|
-
h("legend", { class: "stzh-checkboxgroup__legend" }, this.legend
|
|
190
|
+
h("legend", { class: "stzh-checkboxgroup__legend" }, this.legend, !this.hideOptional && (h("span", { class: "stzh-checkboxgroup__marker" }, h("span", { class: "stzh-checkboxgroup__marker-symbol", "aria-hidden": "true" }, this.required
|
|
191
|
+
? this.localization.$globals.requiredFieldMarker
|
|
192
|
+
: this.localization.$globals.optionalFieldMarker), h("span", { class: "stzh-checkboxgroup__marker-text" }, this.required
|
|
193
|
+
? this.localization.$globals.requiredFieldText
|
|
194
|
+
: this.localization.$globals.optionalFieldText)))), h("div", { class: "stzh-checkboxgroup__fields" }, h("slot", null)), h(StzhInputDescription, { classPrefix: "stzh-checkboxgroup", id: `${this.checkboxgroupId}-description`, error: this._error, description: this.description, descriptionLong: this.descriptionLong, descriptionLongTitle: this.descriptionLongTitle, descriptionLongUsed: descriptionLongUsed, moreInfoButtonLabel: this.localization.$globals.moreInfoButtonLabel }))));
|
|
193
195
|
}
|
|
194
196
|
static get is() { return "stzh-checkboxgroup"; }
|
|
195
197
|
static get encapsulation() { return "scoped"; }
|
|
@@ -314,6 +316,24 @@ export class StzhCheckboxgroup {
|
|
|
314
316
|
"reflect": true,
|
|
315
317
|
"defaultValue": "false"
|
|
316
318
|
},
|
|
319
|
+
"required": {
|
|
320
|
+
"type": "boolean",
|
|
321
|
+
"mutable": false,
|
|
322
|
+
"complexType": {
|
|
323
|
+
"original": "boolean",
|
|
324
|
+
"resolved": "boolean",
|
|
325
|
+
"references": {}
|
|
326
|
+
},
|
|
327
|
+
"required": false,
|
|
328
|
+
"optional": false,
|
|
329
|
+
"docs": {
|
|
330
|
+
"tags": [],
|
|
331
|
+
"text": "Required status"
|
|
332
|
+
},
|
|
333
|
+
"attribute": "required",
|
|
334
|
+
"reflect": true,
|
|
335
|
+
"defaultValue": "false"
|
|
336
|
+
},
|
|
317
337
|
"hideOptional": {
|
|
318
338
|
"type": "boolean",
|
|
319
339
|
"mutable": false,
|
|
@@ -525,9 +545,6 @@ export class StzhCheckboxgroup {
|
|
|
525
545
|
}, {
|
|
526
546
|
"propName": "disabled",
|
|
527
547
|
"methodName": "watchDisabled"
|
|
528
|
-
}, {
|
|
529
|
-
"propName": "hideOptional",
|
|
530
|
-
"methodName": "watchHideOptional"
|
|
531
548
|
}, {
|
|
532
549
|
"propName": "value",
|
|
533
550
|
"methodName": "watchValue"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stzh-checkboxgroup.js","sourceRoot":"","sources":["../../../../src/components/stzh-checkboxgroup/stzh-checkboxgroup.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Host,\n Component,\n Prop,\n Element,\n Watch,\n Event,\n h,\n Listen,\n EventEmitter,\n} from \"@stencil/core\";\n\nimport { hasSlot } from \"../../utils/utils\";\n\nimport { StzhCheckboxChangeEvent, StzhCheckboxgroupChangeEvent } from \"../../index\";\nimport { camelCase } from \"../../utils/string-utils\";\nimport { StzhLocaleComponent } from \"../../index\";\n\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\nlet checkboxgroupCounter = 0;\n\n/**\n * @slot - Slot for `stzh-checkbox` elements\n * @slot description - Slot for description\n * @slot description-long - Slot for long description (in popover)\n * @slot description-long-title - Slot for long description title (in popover) / instead of descriptionLongTitle or description property\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-checkboxgroup\",\n styleUrl: \"stzh-checkboxgroup.scss\",\n scoped: true\n})\nexport class StzhCheckboxgroup {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Whether the element is disabled or not */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** The name of the input checkbox elements */\n @Prop({ reflect: true }) name: string;\n\n /** The legend */\n @Prop() legend: string;\n\n /** Hide legend to show only for screenreaders */\n @Prop({ reflect: true }) hideLegend: boolean = false;\n\n /** Invalid status */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Hide `(optional)` label */\n @Prop({ reflect: true }) hideOptional: boolean = false;\n\n /** The selected values of the checkboxgroup */\n @Prop({ mutable: true }) value: string[] | string = \"\";\n private _value: string[] = [];\n\n /** Default value (used by reset) */\n @Prop({ mutable: true }) defaultValue: string[] = [];\n\n /** Direction */\n @Prop({ reflect: true }) direction: \"vertical\" | \"horizontal\" = \"vertical\";\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Long description message appearing in a popover (use description-long slot as alternative) */\n @Prop() descriptionLong: string;\n\n /** Long description title appearing in a popover (use description-long-title slot as or description property alternative) */\n @Prop() descriptionLongTitle: string;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /** Current checked checkbox elements (readonly) */\n @Prop() checkedCheckbox: HTMLStzhCheckboxElement[] | null = null;\n\n /** Prevent updating certain properties of radio elements (possible values inside array: disabled, invalid) */\n @Prop() preventUpdateProperties: string[] | string = [];\n private _preventUpdateProperties: string[] = [];\n\n /** Host element */\n @Element() element: HTMLElement;\n\n @Watch(\"name\")\n watchName(newValue: string) {\n this.updateCheckboxesProperty(\"name\", newValue);\n }\n\n @Watch(\"disabled\")\n watchDisabled(newValue: boolean) {\n this.updateCheckboxesProperty(\"disabled\", newValue);\n }\n\n @Watch(\"hideOptional\")\n watchHideOptional(newValue: boolean) {\n this.updateCheckboxesProperty(\"hideOptional\", newValue)\n }\n\n @Watch(\"value\")\n watchValue(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n this._value = JSON.parse(newValue);\n } else {\n this._value = newValue;\n }\n\n if (JSON.stringify(this._value) !== JSON.stringify(this.value)) {\n this.value = this._value;\n }\n\n this.updateCheckedCheckboxByValue(this._value);\n }\n\n @Watch(\"error\")\n errorWatcher(newValue: string | string[]) {\n if (typeof newValue === \"string\") {\n try {\n this._error = JSON.parse(newValue);\n } catch (e) {\n if (newValue) {\n this._error = [newValue];\n } else {\n this._error = [];\n }\n }\n } else if (newValue) {\n this._error = newValue;\n } else {\n this._error = [];\n }\n }\n\n @Watch(\"preventUpdateProperties\")\n preventUpdatePropertiesWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n this._preventUpdateProperties = JSON.parse(newValue);\n } else {\n this._preventUpdateProperties = newValue;\n }\n }\n\n /** Change event */\n @Event() stzhChange: EventEmitter<StzhCheckboxgroupChangeEvent>;\n\n @Listen(\"reset\", { target: \"document\" })\n resetListener(event: Event) {\n if ((event.target as HTMLElement).contains(this.element)) {\n requestAnimationFrame(() => {\n this.handleReset();\n });\n }\n }\n\n @Listen(\"stzhChange\", {capture: true})\n onChange(event: CustomEvent<StzhCheckboxChangeEvent>) {\n if (event.detail.component === \"stzh-checkbox\") {\n if (event.detail.checked) {\n this._value.push(event.detail.value);\n } else {\n this._value = this._value.filter(value => value !== event.detail.value);\n }\n // stop propagating checkbox change event otherwise angular control value accessor won't work\n event.stopPropagation();\n this.value = this._value;\n this.stzhChange.emit({\n component: \"stzh-checkboxgroup\",\n value: this._value,\n });\n }\n }\n\n private get errorUsed() {\n return hasSlot(this.element, 'error') || this._error?.length > 0;\n }\n\n /** Checkbox elements */\n private checkboxes: HTMLStzhCheckboxElement[];\n private checkboxgroupId: string;\n private observer: MutationObserver;\n\n private updateCheckboxesProperty(prop: string, value: any) {\n this.checkboxes.forEach((checkbox: HTMLStzhCheckboxElement) => {\n if (prop === \"disabled\") {\n // Only set the disabled if the checkbox is not already disabled\n if (!checkbox.disabled) {\n checkbox.disabled = value;\n }\n } else if (prop === \"name\" || (this._preventUpdateProperties.indexOf(prop) === -1)) {\n checkbox[camelCase(prop)] = value;\n }\n });\n }\n\n private updateCheckedCheckboxByValue(value: string[]) {\n this.checkedCheckbox = this.checkboxes.filter(checkbox => value.indexOf(checkbox.value) > -1);\n this.checkboxes.forEach(checkbox => checkbox.checked = value.indexOf(checkbox.value) > -1);\n }\n\n private handleReset = async () => {\n this.value = [...this.defaultValue];\n }\n\n private init = () => {\n // update checkboxes\n this.checkboxes = Array.from(this.element.querySelectorAll(\"stzh-checkbox\"));\n this.updateCheckboxesProperty(\"a11y-describedby\", `${this.checkboxgroupId}-description`);\n this.updateCheckboxesProperty(\"invalid\", this.invalid || this.errorUsed);\n\n this.watchValue(this.value);\n this.watchName(this.name);\n this.watchDisabled(this.disabled);\n this.watchHideOptional(this.hideOptional);\n }\n\n async componentWillLoad() {\n this.checkboxgroupId = `stzh-checkboxgroup-${checkboxgroupCounter++}`;\n this.errorWatcher(this.error);\n this.preventUpdatePropertiesWatcher(this.preventUpdateProperties);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, 'checkboxgroup');\n }\n }\n\n componentShouldUpdate(_newValue, _oldValue, prop: string) {\n return prop !== \"checkedCheckbox\";\n }\n\n componentDidRender() {\n this.init();\n }\n\n componentDidLoad() {\n this.defaultValue = this.defaultValue.length > 0 ? this.defaultValue : [...this._value];\n }\n\n connectedCallback() {\n if (!this.value.length) {\n this.checkboxes = Array.from(this.element.querySelectorAll(\"stzh-checkbox\"));\n\n // try to find checkboxes that might have checked set to true\n this.value = this.checkboxes\n .filter(checkbox => checkbox.checked)\n .map(checkbox => checkbox.value);\n }\n\n this.observer = new MutationObserver(this.init);\n this.observer.observe(this.element, {\n childList: true,\n subtree: true\n });\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n render() {\n const descriptionUsed = hasSlot(this.element, 'description') || !!this.description;\n const descriptionLongUsed = hasSlot(this.element, 'description-long') || !!this.descriptionLong;\n\n const classes = {\n \"stzh-checkboxgroup\": true,\n \"stzh-checkboxgroup--has-description\": descriptionUsed,\n \"stzh-checkboxgroup--has-description-long\": descriptionLongUsed,\n \"stzh-checkboxgroup--has-error\": this.errorUsed,\n \"stzh-checkboxgroup--is-disabled\": this.disabled,\n \"stzh-checkboxgroup--is-invalid\": this.invalid || this.errorUsed,\n \"stzh-checkboxgroup--hide-legend\": this.hideLegend,\n [`stzh-checkboxgroup--direction-${this.direction}`]: !!this.direction\n };\n\n return (\n <Host is-invalid={this.invalid || this.errorUsed}>\n <fieldset class={classes}>\n {this.legend &&\n <legend class=\"stzh-checkboxgroup__legend\">\n {this.legend}\n </legend>\n }\n <div class=\"stzh-checkboxgroup__fields\">\n <slot></slot>\n </div>\n <StzhInputDescription\n classPrefix=\"stzh-checkboxgroup\"\n id={`${this.checkboxgroupId}-description`}\n error={this._error}\n description={this.description}\n descriptionLong={this.descriptionLong}\n descriptionLongTitle={this.descriptionLongTitle}\n descriptionLongUsed={descriptionLongUsed}\n moreInfoButtonLabel={this.localization.$globals.moreInfoButtonLabel}\n />\n </fieldset>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"stzh-checkboxgroup.js","sourceRoot":"","sources":["../../../../src/components/stzh-checkboxgroup/stzh-checkboxgroup.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, Watch } from \"@stencil/core\";\n\nimport { hasSlot } from \"../../utils/utils\";\n\nimport { StzhCheckboxChangeEvent, StzhCheckboxgroupChangeEvent, StzhLocaleComponent } from \"../../index\";\nimport { camelCase } from \"../../utils/string-utils\";\n\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\nlet checkboxgroupCounter = 0;\n\n/**\n * @slot - Slot for `stzh-checkbox` elements\n * @slot description - Slot for description\n * @slot description-long - Slot for long description (in popover)\n * @slot description-long-title - Slot for long description title (in popover) / instead of descriptionLongTitle or description property\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-checkboxgroup\",\n styleUrl: \"stzh-checkboxgroup.scss\",\n scoped: true\n})\nexport class StzhCheckboxgroup {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Whether the element is disabled or not */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** The name of the input checkbox elements */\n @Prop({ reflect: true }) name: string;\n\n /** The legend */\n @Prop() legend: string;\n\n /** Hide legend to show only for screenreaders */\n @Prop({ reflect: true }) hideLegend: boolean = false;\n\n /** Invalid status */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Required status */\n @Prop({ reflect: true }) required: boolean = false;\n\n /** Hide `(optional)` label */\n @Prop({ reflect: true }) hideOptional: boolean = false;\n\n /** The selected values of the checkboxgroup */\n @Prop({ mutable: true }) value: string[] | string = \"\";\n private _value: string[] = [];\n\n /** Default value (used by reset) */\n @Prop({ mutable: true }) defaultValue: string[] = [];\n\n /** Direction */\n @Prop({ reflect: true }) direction: \"vertical\" | \"horizontal\" = \"vertical\";\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Long description message appearing in a popover (use description-long slot as alternative) */\n @Prop() descriptionLong: string;\n\n /** Long description title appearing in a popover (use description-long-title slot as or description property alternative) */\n @Prop() descriptionLongTitle: string;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /** Current checked checkbox elements (readonly) */\n @Prop() checkedCheckbox: HTMLStzhCheckboxElement[] | null = null;\n\n /** Prevent updating certain properties of radio elements (possible values inside array: disabled, invalid) */\n @Prop() preventUpdateProperties: string[] | string = [];\n private _preventUpdateProperties: string[] = [];\n\n /** Host element */\n @Element() element: HTMLElement;\n\n @Watch(\"name\")\n watchName(newValue: string) {\n this.updateCheckboxesProperty(\"name\", newValue);\n }\n\n @Watch(\"disabled\")\n watchDisabled(newValue: boolean) {\n this.updateCheckboxesProperty(\"disabled\", newValue);\n }\n\n @Watch(\"value\")\n watchValue(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n this._value = JSON.parse(newValue);\n } else {\n this._value = newValue;\n }\n\n if (JSON.stringify(this._value) !== JSON.stringify(this.value)) {\n this.value = this._value;\n }\n\n this.updateCheckedCheckboxByValue(this._value);\n }\n\n @Watch(\"error\")\n errorWatcher(newValue: string | string[]) {\n if (typeof newValue === \"string\") {\n try {\n this._error = JSON.parse(newValue);\n } catch (e) {\n if (newValue) {\n this._error = [newValue];\n } else {\n this._error = [];\n }\n }\n } else if (newValue) {\n this._error = newValue;\n } else {\n this._error = [];\n }\n }\n\n @Watch(\"preventUpdateProperties\")\n preventUpdatePropertiesWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n this._preventUpdateProperties = JSON.parse(newValue);\n } else {\n this._preventUpdateProperties = newValue;\n }\n }\n\n /** Change event */\n @Event() stzhChange: EventEmitter<StzhCheckboxgroupChangeEvent>;\n\n @Listen(\"reset\", { target: \"document\" })\n resetListener(event: Event) {\n if ((event.target as HTMLElement).contains(this.element)) {\n requestAnimationFrame(() => {\n this.handleReset();\n });\n }\n }\n\n @Listen(\"stzhChange\", { capture: true })\n onChange(event: CustomEvent<StzhCheckboxChangeEvent>) {\n if (event.detail.component === \"stzh-checkbox\") {\n if (event.detail.checked) {\n this._value.push(event.detail.value);\n } else {\n this._value = this._value.filter(value => value !== event.detail.value);\n }\n // stop propagating checkbox change event otherwise angular control value accessor won't work\n event.stopPropagation();\n this.value = this._value;\n this.stzhChange.emit({\n component: \"stzh-checkboxgroup\",\n value: this._value\n });\n }\n }\n\n private get errorUsed() {\n return hasSlot(this.element, \"error\") || this._error?.length > 0;\n }\n\n /** Checkbox elements */\n private checkboxes: HTMLStzhCheckboxElement[];\n private checkboxgroupId: string;\n private observer: MutationObserver;\n\n private updateCheckboxesProperty(prop: string, value: any) {\n this.checkboxes.forEach((checkbox: HTMLStzhCheckboxElement) => {\n if (prop === \"disabled\") {\n // Only set the disabled if the checkbox is not already disabled\n if (!checkbox.disabled) {\n checkbox.disabled = value;\n }\n } else if (prop === \"name\" || (this._preventUpdateProperties.indexOf(prop) === -1)) {\n checkbox[camelCase(prop)] = value;\n }\n });\n }\n\n private updateCheckedCheckboxByValue(value: string[]) {\n this.checkedCheckbox = this.checkboxes.filter(checkbox => value.indexOf(checkbox.value) > -1);\n this.checkboxes.forEach(checkbox => checkbox.checked = value.indexOf(checkbox.value) > -1);\n }\n\n private handleReset = async () => {\n this.value = [...this.defaultValue];\n };\n\n private init = () => {\n // update checkboxes\n this.checkboxes = Array.from(this.element.querySelectorAll(\"stzh-checkbox\"));\n\n this.updateCheckboxesProperty(\"hide-optional\", true);\n this.updateCheckboxesProperty(\"a11y-describedby\", `${this.checkboxgroupId}-description`);\n this.updateCheckboxesProperty(\"invalid\", this.invalid || this.errorUsed);\n\n this.watchValue(this.value);\n this.watchName(this.name);\n this.watchDisabled(this.disabled);\n };\n\n async componentWillLoad() {\n this.checkboxgroupId = `stzh-checkboxgroup-${checkboxgroupCounter++}`;\n this.errorWatcher(this.error);\n this.preventUpdatePropertiesWatcher(this.preventUpdateProperties);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"checkboxgroup\");\n }\n }\n\n componentShouldUpdate(_newValue, _oldValue, prop: string) {\n return prop !== \"checkedCheckbox\";\n }\n\n componentDidRender() {\n this.init();\n }\n\n componentDidLoad() {\n this.defaultValue = this.defaultValue.length > 0 ? this.defaultValue : [...this._value];\n }\n\n connectedCallback() {\n if (!this.value.length) {\n this.checkboxes = Array.from(this.element.querySelectorAll(\"stzh-checkbox\"));\n\n // try to find checkboxes that might have checked set to true\n this.value = this.checkboxes\n .filter(checkbox => checkbox.checked)\n .map(checkbox => checkbox.value);\n }\n\n this.observer = new MutationObserver(this.init);\n this.observer.observe(this.element, {\n childList: true,\n subtree: true\n });\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n render() {\n const descriptionUsed = hasSlot(this.element, \"description\") || !!this.description;\n const descriptionLongUsed = hasSlot(this.element, \"description-long\") || !!this.descriptionLong;\n\n const classes = {\n \"stzh-checkboxgroup\": true,\n \"stzh-checkboxgroup--has-description\": descriptionUsed,\n \"stzh-checkboxgroup--has-description-long\": descriptionLongUsed,\n \"stzh-checkboxgroup--has-error\": this.errorUsed,\n \"stzh-checkboxgroup--is-disabled\": this.disabled,\n \"stzh-checkboxgroup--is-invalid\": this.invalid || this.errorUsed,\n \"stzh-checkboxgroup--hide-legend\": this.hideLegend,\n [`stzh-checkboxgroup--direction-${this.direction}`]: !!this.direction\n };\n\n return (\n <Host is-invalid={this.invalid || this.errorUsed}>\n <fieldset class={classes}>\n {this.legend &&\n <legend class=\"stzh-checkboxgroup__legend\">\n {this.legend}\n {!this.hideOptional && (\n <span class=\"stzh-checkboxgroup__marker\">\n <span class=\"stzh-checkboxgroup__marker-symbol\" aria-hidden=\"true\">\n {this.required\n ? this.localization.$globals.requiredFieldMarker\n : this.localization.$globals.optionalFieldMarker}\n </span>\n <span class=\"stzh-checkboxgroup__marker-text\">\n {this.required\n ? this.localization.$globals.requiredFieldText\n : this.localization.$globals.optionalFieldText}\n </span>\n </span>\n )}\n </legend>\n }\n <div class=\"stzh-checkboxgroup__fields\">\n <slot></slot>\n </div>\n <StzhInputDescription\n classPrefix=\"stzh-checkboxgroup\"\n id={`${this.checkboxgroupId}-description`}\n error={this._error}\n description={this.description}\n descriptionLong={this.descriptionLong}\n descriptionLongTitle={this.descriptionLongTitle}\n descriptionLongUsed={descriptionLongUsed}\n moreInfoButtonLabel={this.localization.$globals.moreInfoButtonLabel}\n />\n </fieldset>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -307,6 +307,9 @@
|
|
|
307
307
|
.stzh-contact__heading:not(:empty):not(:last-child), .stzh-contact__name:not(:empty):not(:last-child), .stzh-contact__address:not(:empty):not(:last-child), .stzh-contact__numbers:not(:empty):not(:last-child), .stzh-contact__emails:not(:empty):not(:last-child), .stzh-contact__pobox:not(:empty):not(:last-child), .stzh-contact__availability-title:not(:empty):not(:last-child) {
|
|
308
308
|
margin-bottom: var(--stzh-space-xsmall);
|
|
309
309
|
}
|
|
310
|
+
.stzh-contact__numbers {
|
|
311
|
+
white-space: nowrap;
|
|
312
|
+
}
|
|
310
313
|
.stzh-contact__number, .stzh-contact__email {
|
|
311
314
|
display: flex;
|
|
312
315
|
align-items: center;
|
|
@@ -275,7 +275,7 @@ export class GeoRefData {
|
|
|
275
275
|
}
|
|
276
276
|
})
|
|
277
277
|
.length.toString();
|
|
278
|
-
return Object.assign(Object.assign({}, tag), { counter, variant: "filter"
|
|
278
|
+
return Object.assign(Object.assign({}, tag), { counter, variant: "filter" });
|
|
279
279
|
});
|
|
280
280
|
}
|
|
281
281
|
buildSearchIndex(data) {
|
|
@@ -403,7 +403,7 @@ export class GeoRefData {
|
|
|
403
403
|
}
|
|
404
404
|
setEnhancedTags() {
|
|
405
405
|
this.enhancedTags = this.enhanceTags(this._availableTags, this.finalResults);
|
|
406
|
-
const enhancedResetTag = Object.assign(Object.assign({}, this._resetTag), { counter: this.finalResults.length.toString()
|
|
406
|
+
const enhancedResetTag = Object.assign(Object.assign({}, this._resetTag), { counter: this.finalResults.length.toString() });
|
|
407
407
|
if (this._resetTag) {
|
|
408
408
|
this.enhancedTags.unshift(enhancedResetTag);
|
|
409
409
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stzh-geo-ref-data.js","sourceRoot":"","sources":["../../../../src/components/stzh-geo-ref-data/stzh-geo-ref-data.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, Fragment, h, Host, Listen, Prop, State, Watch } from \"@stencil/core\";\nimport { Document } from \"flexsearch/dist/flexsearch.bundle.min.js\";\nimport {\n StzhAvailableTag,\n StzhChipselectChangeEvent,\n StzhChipselectItem,\n StzhCombinedGeoRefData,\n StzhGeoRefDataOverlayCloseClickEvent,\n StzhMapGeoRefData,\n StzhPoiGeoRefData\n} from \"../../index\";\nimport { addMediaChangeListener, media, removeMediaChangeListener } from \"../../utils/media-utils\";\n\nconst CLASS_BODY_OPEN = \"stzh-overlay-open\";\n\n/**\n * @slot logo - Slot for brand logo\n */\n@Component({\n tag: \"stzh-geo-ref-data\",\n styleUrl: \"stzh-geo-ref-data.scss\",\n shadow: true\n})\nexport class GeoRefData {\n /** ID for this instance, can be used to open via URL query param \"al=<id>\" - name \"al\" for historical reasons */\n @Prop({ reflect: true }) al: string = \"\";\n\n /** Heading for the overlay. */\n @Prop({ reflect: true }) heading: string = \"\";\n\n /** The URL for fetching the card data */\n @Prop({ reflect: true }) mapDataUrl: string = \"\";\n\n /** The URL used for fetching the POI data. */\n @Prop({ reflect: true }) poiDataUrl: string = \"\";\n\n /** Base URL used for all external requests (map, card). */\n @Prop() baseUrlOverride: string = \"https://www.stadt-zuerich.ch\";\n\n /** To make sure all tags are mapped to their identificator, only these will be available. */\n @Prop() availableTags: StzhAvailableTag[] | string = [];\n private _availableTags: StzhAvailableTag[] = [];\n\n /** Reset tag (the first one). */\n @Prop() resetTag: StzhChipselectItem | string;\n private _resetTag: StzhChipselectItem;\n\n /** Fields for building the search index. */\n @Prop()\n searchIndexFields: string[] = [\n \"title\",\n \"poiname\",\n \"street\",\n \"zip\",\n \"description\"\n ];\n\n /** Fields for building the search index. */\n @Prop() searchIndexIdField: string = \"poiid\";\n\n @Watch(\"availableTags\")\n availableTagsWatcher(newValue: StzhAvailableTag[] | string) {\n if (!newValue) {\n this._availableTags = [];\n } else if (typeof newValue === \"string\") {\n try {\n this._availableTags = JSON.parse(newValue);\n } catch (e) {\n this._availableTags = [];\n }\n } else {\n this._availableTags = newValue;\n }\n }\n\n @Watch(\"resetTag\")\n resetTagWatcher(newValue: StzhChipselectItem | string) {\n if (!newValue) {\n this._resetTag = undefined;\n } else if (typeof newValue === \"string\") {\n try {\n this._resetTag = JSON.parse(newValue);\n } catch (e) {\n this._resetTag = undefined;\n }\n } else {\n this._resetTag = newValue;\n }\n }\n\n @State() filterActive: boolean = false;\n @State() searchActive: boolean = false;\n @State() showOnlyResultsForCurrentExtent: boolean = true;\n @State() finalResults: StzhCombinedGeoRefData[] = [];\n @State() finalResultsPaginatedList: StzhCombinedGeoRefData[] = [];\n @State() finalResultsPaginationOffset = 0;\n\n @State() viewmode: \"map\" | \"list\" = \"map\";\n @State() isViewportLarge: boolean;\n @State() isViewportMedium: boolean;\n @State() isInitialized: boolean;\n @State() isOpen: boolean;\n @State() isLoading: boolean;\n @State() numberOfItemsToLoad: number = 20;\n @State() canLoadMore: boolean;\n @State() appliedFilters: string[] = [\"\"];\n @State() isFiltersContentOpen: boolean = false;\n\n /** Overlay close click event */\n @Event()\n stzhOverlayCloseClick: EventEmitter<StzhGeoRefDataOverlayCloseClickEvent>;\n\n private combinedData: StzhCombinedGeoRefData[];\n private enhancedTags: StzhChipselectItem[];\n private searchIndex: Document;\n\n private filterResults: StzhCombinedGeoRefData[] = [];\n private searchResults: Set<string>;\n\n @Element() element: HTMLStzhGeoRefDataElement;\n private mapElement: HTMLStzhOlmapElement;\n private toastbarElement: HTMLStzhToastbarElement;\n private metaWrapperElement: HTMLDivElement;\n private resultsListElement: HTMLDivElement;\n private resizeObserver: ResizeObserver;\n\n private applyFiltersFromUrl() {\n const urlParams = new URLSearchParams(window.location.search);\n\n // Find all filter parameters from the URL\n const filters = Array.from(urlParams.entries())\n .filter(([key, value]) => key.startsWith(\"filters[\") && value === \"true\")\n .map(([key]) => key.slice(8, -1)); // Extract the filter key (removing 'filters[' and ']')\n\n // Apply filters if they exist\n if (filters.length) {\n this.appliedFilters = filters;\n // Update the UI to show selected filters\n this.updateUrlWithFilters(); // Keep the URL sync logic here\n this.handleFilterChange({\n detail: { value: filters }\n } as CustomEvent<StzhChipselectChangeEvent>);\n }\n }\n\n private handleFilterToggleClick = () => {\n this.isFiltersContentOpen = true;\n };\n\n private handleApplyFilterClick = () => {\n this.isFiltersContentOpen = false;\n };\n\n private handleOverlayCloseClick = () => {\n // Remove the class from the body\n document.body.classList.remove(CLASS_BODY_OPEN);\n this.isOpen = false;\n\n // Get the current URL's query parameters\n const urlParams = new URLSearchParams(window.location.search);\n\n // Remove all filters (query parameters that start with \"filters[\")\n Array.from(urlParams.keys()).forEach(key => {\n if (key.startsWith(\"filters[\")) {\n urlParams.delete(key);\n }\n });\n\n // Remove all extent parameters (keys like \"extent[0]\", \"extent[1]\", etc.)\n urlParams.delete(\"extent[0]\");\n urlParams.delete(\"extent[1]\");\n urlParams.delete(\"extent[2]\");\n urlParams.delete(\"extent[3]\");\n\n // Remove the al parameter\n urlParams.delete(\"al\");\n\n // Update the URL without reloading the page\n const newUrl = `${window.location.pathname}?${urlParams.toString()}`;\n history.replaceState(null, \"\", newUrl);\n\n // Clear filters.\n this.appliedFilters = [\"\"];\n };\n\n private handleResize = async () => {\n if (this.metaWrapperElement) {\n if (this.metaWrapperElement.clientHeight) {\n this.mapElement.style.height = `calc(100% - ${this.metaWrapperElement.clientHeight}px)`;\n this.resultsListElement.style.height = `calc(100% - ${this.metaWrapperElement.clientHeight}px)`;\n } else {\n this.mapElement.style.height = `100%`;\n this.resultsListElement.style.height = `100%`;\n }\n const map = await this.mapElement.getMap();\n map.updateSize();\n }\n };\n\n private mediaChangeHandler = () => {\n this.isViewportLarge = media(\"large\").matches;\n this.isViewportMedium = media(\"medium\").matches;\n };\n\n private async loadMapData(): Promise<StzhMapGeoRefData[]> {\n if (!this.mapDataUrl) {\n return [];\n }\n try {\n const response = await fetch(this.mapDataUrl);\n const rawMapData = await response.text();\n const parsedData = new DOMParser().parseFromString(rawMapData, \"text/xml\");\n return Array.from(parsedData.querySelectorAll(\"featureMember\")).map(item => {\n const pos = item.querySelector(\"pos\")?.textContent;\n const poiid = item.querySelector(\"poi_id\")?.textContent;\n const [lat, lon] = pos?.split(\" \") || [];\n\n return { poiid, lat, lon } as StzhMapGeoRefData;\n });\n } catch (error) {\n this.toastbarElement\n .toast(\"Es ist ein Fehler beim Beziehen der Kartendaten aufgetreten.\", {\n type: \"error\"\n })\n .catch();\n }\n }\n\n private async loadPoiData() {\n if (!this.poiDataUrl) {\n return [];\n }\n try {\n const response = await fetch(this.poiDataUrl, { credentials: \"include\" });\n const poiData = await response.json();\n return poiData.items;\n } catch (error) {\n this.toastbarElement\n .toast(\"Beim Laden der POI-Daten ist ein Fehler aufgetreten.\", {\n type: \"error\"\n })\n .catch();\n }\n }\n\n private combineData(\n firstArray: StzhMapGeoRefData[] | StzhPoiGeoRefData[],\n secondArray: StzhMapGeoRefData[] | StzhPoiGeoRefData[]\n ): StzhCombinedGeoRefData[] {\n if (!firstArray.length || !secondArray.length) {\n return [];\n }\n // determine which array is smaller for performance\n let smallerArray: any[];\n let largerArray: any[];\n\n if (firstArray.length < secondArray.length) {\n smallerArray = firstArray;\n largerArray = secondArray;\n } else {\n smallerArray = secondArray;\n largerArray = firstArray;\n }\n // combine arrays based on poiid\n return smallerArray\n .map(item => {\n const matchingItem = largerArray.find(largerArrayItem => largerArrayItem.poiid === item.poiid);\n return { ...item, ...matchingItem };\n })\n .sort((a, b) => {\n try {\n return a.title.localeCompare(b.title); // Sorts alphabetically by the 'name' property\n } catch (noTitleException) {\n return 1;\n }\n });\n }\n\n private enhanceTags(availableTags: StzhAvailableTag[], combinedData: StzhCombinedGeoRefData[]): StzhChipselectItem[] {\n return availableTags\n .sort((a, b) => {\n try {\n a.label.localeCompare(b.label);\n } catch (noLabelException) {\n return 1;\n }\n })\n .map(tag => {\n const counter = combinedData\n .filter(item => {\n try {\n return item.tags.includes(tag.value);\n } catch (noTagsException) {\n return false;\n }\n })\n .length.toString();\n return { ...tag, counter, variant: \"filter\", size: \"large\" };\n });\n }\n\n private buildSearchIndex(data: StzhCombinedGeoRefData[]) {\n if (!data.length) {\n return;\n }\n this.searchIndex = new Document({\n tokenize: \"forward\",\n matcher: {\n \"[äà]\": \"a\",\n \"[öó]\": \"o\",\n \"[üûúù]\": \"u\",\n \"[éè]\": \"e\"\n },\n document: {\n id: this.searchIndexIdField,\n index: this.searchIndexFields\n }\n });\n data.forEach(item => {\n this.searchIndex.add(item);\n });\n }\n\n @Listen(\"stzhPostRender\")\n @Listen(\"stzhMovePanZoom\")\n async mapMovedPannedOrZoomed() {\n await this.setVisibleMarkers();\n }\n\n private async setVisibleMarkers() {\n if (this.combinedData) {\n const visibleMarkers = await this.mapElement.getVisibleMarkers();\n if (this.showOnlyResultsForCurrentExtent) {\n this.finalResults = this.combinedData.filter(item =>\n visibleMarkers.find(visibleMarker => visibleMarker.getId() === item.poiid)\n );\n } else {\n this.finalResults = this.combinedData;\n }\n this.setEnhancedTags();\n await this.setPaginatedResults();\n }\n }\n\n private async setPaginatedResults() {\n this.finalResultsPaginatedList = this.finalResults.slice(0, this.numberOfItemsToLoad);\n this.canLoadMore = this.finalResults.length > this.numberOfItemsToLoad;\n }\n\n private async checkDirectOpenViaUrl() {\n const urlParams = new URLSearchParams(window.location.search);\n const idFromUrl = urlParams.get(\"al\");\n\n if (idFromUrl && idFromUrl === this.al) {\n await this.initializeAndOpenMap();\n }\n }\n\n connectedCallback() {\n this.mediaChangeHandler();\n addMediaChangeListener(this.mediaChangeHandler);\n this.resizeObserver = new ResizeObserver(this.handleResize);\n this.resizeObserver.observe(this.element);\n this.availableTagsWatcher(this.availableTags);\n this.resetTagWatcher(this.resetTag);\n this.checkDirectOpenViaUrl();\n }\n\n disconnectedCallback() {\n removeMediaChangeListener(this.mediaChangeHandler);\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n private async initializeAndOpenMap() {\n document.body.classList.add(CLASS_BODY_OPEN);\n this.isLoading = true;\n this.isOpen = true;\n\n // Write the \"al\" prop of the component to the current URL as query param if it is not already there\n const urlParams = new URLSearchParams(window.location.search);\n if (!urlParams.has(\"al\")) {\n urlParams.set(\"al\", this.al);\n const newUrl = `${window.location.pathname}?${urlParams.toString()}`;\n history.replaceState(null, \"\", newUrl);\n }\n\n try {\n this.combinedData = this.combineData(await this.loadMapData(), await this.loadPoiData());\n this.setEnhancedTags();\n this.applyFiltersFromUrl();\n this.buildSearchIndex(this.combinedData);\n this.finalResults = this.combinedData;\n await this.setVisibleMarkers();\n await this.combineFilterAndSearchResults();\n await this.handleResize();\n\n const urlParams = new URLSearchParams(window.location.search);\n const extent = [\n parseFloat(urlParams.get(\"extent[0]\")),\n parseFloat(urlParams.get(\"extent[1]\")),\n parseFloat(urlParams.get(\"extent[2]\")),\n parseFloat(urlParams.get(\"extent[3]\"))\n ];\n\n if (!extent.length || isNaN(extent[0]) || isNaN(extent[1]) || isNaN(extent[2]) || isNaN(extent[3])) {\n await this.mapElement.updateViewToFitMarkers();\n }\n\n await this.handleResize();\n this.isInitialized = true;\n } catch (mapException) {\n this.toastbarElement\n .toast(\"Beim Laden der Karte ist ein Fehler aufgetreten.\", {\n type: \"error\"\n })\n .catch();\n }\n\n setTimeout(() => {\n this.isLoading = false;\n }, 500);\n }\n\n private updateUrlWithFilters() {\n const urlParams = new URLSearchParams(window.location.search);\n\n // Remove existing filters from URL\n Array.from(urlParams.keys()).forEach(key => {\n if (key.startsWith(\"filters[\")) {\n urlParams.delete(key);\n }\n });\n\n // Add the selected filters from `appliedFilters` to the URL\n this.appliedFilters.forEach(filter => {\n urlParams.set(`filters[${filter}]`, \"true\");\n });\n\n // Update the URL without reloading the page\n const newUrl = `${window.location.pathname}?${urlParams.toString()}`;\n history.replaceState(null, \"\", newUrl);\n }\n\n private setEnhancedTags() {\n this.enhancedTags = this.enhanceTags(this._availableTags, this.finalResults);\n const enhancedResetTag: StzhChipselectItem = {\n ...this._resetTag,\n counter: this.finalResults.length.toString(),\n size: \"large\"\n };\n if (this._resetTag) {\n this.enhancedTags.unshift(enhancedResetTag);\n }\n }\n\n private handleFilterChange = async (e: CustomEvent<StzhChipselectChangeEvent>) => {\n let filtersArray = Array.isArray(e.detail.value) ? e.detail.value : [e.detail.value];\n if (filtersArray.length === 1 && filtersArray[0] === this._resetTag.value) {\n this.appliedFilters = [];\n } else {\n try {\n filtersArray = filtersArray.filter(filterValue => filterValue !== \"\");\n } catch (noEmptyFilter) {\n // nothing to do here\n }\n this.appliedFilters = filtersArray;\n }\n setTimeout(async () => {\n await this.handleFilterResults();\n });\n };\n\n private async handleFilterResults() {\n // Update the component state based on the selected filters\n if (this.appliedFilters.length !== 0) {\n this.filterResults = this.finalResults.filter(\n item => item.tags && item.tags.some(tag => this.appliedFilters.includes(tag))\n );\n this.filterActive = true;\n } else {\n this.filterActive = false;\n this.filterResults = this.finalResults;\n }\n\n // Update the URL with the applied filters\n this.updateUrlWithFilters();\n\n // Combine the results from filters and search\n await this.combineFilterAndSearchResults();\n }\n\n private handleExtentVisibilityChange = async e => {\n this.showOnlyResultsForCurrentExtent = e.detail.checked;\n await this.setVisibleMarkers();\n };\n\n private handleSearchChange = async (e: CustomEvent) => {\n if (e.detail.value !== \"\") {\n if (!this.searchIndex) {\n return;\n }\n const searchResults = this.searchIndex.search(e.detail.value);\n const flatSearchResults = searchResults.flatMap(field => field.result);\n this.searchResults = new Set(flatSearchResults);\n this.searchActive = true;\n } else {\n this.searchActive = false;\n }\n await this.combineFilterAndSearchResults();\n };\n\n private async combineFilterAndSearchResults() {\n if (this.filterActive && !this.searchActive) {\n this.finalResults = this.filterResults;\n } else if (!this.filterActive && this.searchActive) {\n this.finalResults = Array.from(this.searchResults).map(id => this.combinedData.find(item => item.poiid === id));\n } else if (this.filterActive && this.searchActive) {\n this.finalResults = this.filterResults.filter(item => this.searchResults.has(item.poiid));\n } else {\n this.finalResults = this.combinedData;\n }\n\n this.finalResultsPaginatedList = this.finalResults.slice(0, this.numberOfItemsToLoad);\n\n await this.replaceMapMarkers(this.finalResults);\n }\n\n private loadMore() {\n this.finalResultsPaginationOffset++;\n const sliced = this.finalResults.slice(\n this.finalResultsPaginationOffset * this.numberOfItemsToLoad,\n this.finalResultsPaginationOffset * this.numberOfItemsToLoad + this.numberOfItemsToLoad\n );\n if (!sliced || !sliced.length || sliced.length < this.numberOfItemsToLoad) {\n this.canLoadMore = false;\n }\n this.finalResultsPaginatedList = this.finalResultsPaginatedList.concat(sliced);\n }\n\n private async replaceMapMarkers(items: StzhCombinedGeoRefData[]) {\n await this.mapElement.removeAllIconMarkers();\n items\n .filter(item => !!item.lat && !!item.lon)\n .forEach(item => {\n this.mapElement\n .addIconMarker([\n parseFloat(item.lat),\n parseFloat(item.lon)\n ], {\n id: item.poiid,\n title: item.title,\n text: item.description,\n data: item.data,\n imageUri: `${this.baseUrlOverride}${item.image}`,\n href: `${this.baseUrlOverride}${item.path}`\n })\n .catch();\n });\n if (!this.showOnlyResultsForCurrentExtent) {\n this.mapElement.updateViewToFitMarkers().catch();\n }\n }\n\n private toggleViewMode = () => {\n if (this.viewmode === \"map\") {\n this.viewmode = \"list\";\n } else {\n this.viewmode = \"map\";\n }\n };\n\n private async handlePoiTeaserMouseEnter(item: StzhCombinedGeoRefData) {\n const marker = await this.mapElement.findMarkerById(item.poiid);\n if (marker) {\n await this.mapElement.setIconMarkerActive(marker);\n }\n }\n\n private async handlePoiTeaserMouseLeave(item: StzhCombinedGeoRefData) {\n const marker = await this.mapElement.findMarkerById(item.poiid);\n if (marker) {\n await this.mapElement.setIconMarkerInactive(marker);\n }\n }\n\n render() {\n const classes = {\n \"stzh-geo-ref-data\": true,\n \"stzh-geo-ref-data--is-loading\": this.isLoading,\n \"stzh-geo-ref-data--is-open\": this.isOpen,\n \"stzh-geo-ref-data--has-filters\": this._availableTags.length > 0\n };\n return (\n <Host>\n <stzh-toastbar ref={el => (this.toastbarElement = el as HTMLStzhToastbarElement)} />\n <div class=\"stzh-geo-ref-data__trigger\" onClick={() => this.initializeAndOpenMap()}>\n <slot name=\"trigger\"></slot>\n </div>\n <stzh-overlay open={this.isLoading}>\n <stzh-loader label=\"Daten werden geladen...\"></stzh-loader>\n </stzh-overlay>\n <div class={classes}>\n <div class=\"stzh-geo-ref-data__header-wrapper\">\n <stzh-header class=\"stzh-geo-ref-data__header\" hide-metabar={true} sticky=\"disabled\">\n <slot name=\"logo\" slot=\"logo\"></slot>\n </stzh-header>\n <div class=\"stzh-geo-ref-data__heading stzh-geo-ref-data--content-padding\">\n <stzh-heading class=\"stzh-geo-ref-data__heading-heading\" curve=\"h2\">\n {this.heading}\n </stzh-heading>\n <stzh-button\n class=\"stzh-geo-ref-data__overlay-close\"\n icon=\"close\"\n iconOnly={true}\n size=\"small\"\n variant=\"tertiary\"\n onClick={this.handleOverlayCloseClick}\n ></stzh-button>\n </div>\n </div>\n\n <div class=\"stzh-geo-ref-data__content\">\n <div\n class=\"stzh-geo-ref-data__meta-wrapper stzh-geo-ref-data--content-padding\"\n ref={el => (this.metaWrapperElement = el as HTMLDivElement)}\n >\n <div class=\"stzh-geo-ref-data__filters\">\n {this._availableTags.length > 0 && (\n <div class=\"stzh-geo-ref-data__filters-toggle\">\n <stzh-chip\n label={this.isViewportMedium ? \"Filter\" : \"\"}\n variant=\"filter\"\n icon=\"filtering\"\n onStzhClick={this.handleFilterToggleClick}\n ></stzh-chip>\n </div>\n )}\n <div\n class={{\n \"stzh-geo-ref-data__filters-content\": true,\n \"stzh-geo-ref-data__filters-content--visible\": !this.isViewportLarge && this.isFiltersContentOpen\n }}\n >\n <stzh-chipselect\n label-hidden={true}\n label=\"Tags\"\n data={this.enhancedTags}\n onStzhChange={this.handleFilterChange}\n multiple={true}\n defaultValue={this.appliedFilters}\n value={this.appliedFilters}\n ></stzh-chipselect>\n <div class=\"stzh-geo-ref-data__filters-apply-button\">\n <stzh-button size=\"small\" fullwidth={true} onStzhClick={this.handleApplyFilterClick}>\n Anwenden\n </stzh-button>\n </div>\n </div>\n </div>\n <div class=\"stzh-geo-ref-data__search\">\n <stzh-input\n name=\"stzh-datatable-search\"\n onStzhChange={this.handleSearchChange}\n hideOptional={true}\n label=\"Suche\"\n type=\"search\"\n ></stzh-input>\n </div>\n <div class=\"stzh-geo-ref-data__results-toggle\">\n <stzh-chip\n onStzhClick={this.toggleViewMode}\n label={this.viewmode === \"map\" ? \"Liste\" : \"Karte\"}\n icon={this.viewmode === \"map\" ? \"bulleted-list\" : \"map\"}\n variant=\"filter\"\n ></stzh-chip>\n </div>\n </div>\n <div class=\"stzh-geo-ref-data__results-wrapper\">\n <div class={`stzh-geo-ref-data__results-map ${this.viewmode === \"map\" ? \"active\" : \"inactive\"}`}>\n <stzh-olmap\n class=\"stzh-geo-ref-data__ol-map\"\n centerMarker={false}\n writeExtentToUrlEnabled={this.isOpen}\n ref={el => (this.mapElement = el as HTMLStzhOlmapElement)}\n ></stzh-olmap>\n <div class=\"stzh-geo-ref-data__map-controls\">\n <stzh-checkbox\n label=\"Treffer an Kartenausschnitt anpassen\"\n checked={this.showOnlyResultsForCurrentExtent}\n hideOptional={true}\n onStzhChange={this.handleExtentVisibilityChange}\n ></stzh-checkbox>\n </div>\n </div>\n <div\n class={`stzh-geo-ref-data__results-list ${this.viewmode === \"list\" ? \"active\" : \"inactive\"}`}\n ref={el => (this.resultsListElement = el as HTMLDivElement)}\n >\n {this.finalResults && (\n <Fragment>\n <div class=\"stzh-geo-ref-data__list-search\">\n <stzh-input\n name=\"stzh-datatable-search\"\n onStzhChange={this.handleSearchChange}\n hideOptional={true}\n label=\"Suche\"\n type=\"search\"\n ></stzh-input>\n </div>\n <stzh-text class=\"stzh-geo-ref-data__results-list-heading\">\n {this.finalResults.length} Treffer\n </stzh-text>\n <div class=\"stzh-geo-ref-data__teaser-list\">\n {this.finalResultsPaginatedList.map(item => (\n <div\n class=\"stzh-poi-teaser\"\n onMouseEnter={() => this.handlePoiTeaserMouseEnter(item)}\n onMouseLeave={() => this.handlePoiTeaserMouseLeave(item)}\n >\n <a class=\"stzh-poi-teaser-link\" href={this.baseUrlOverride + item.path}></a>\n <div class=\"stzh-poi-teaser-content\">\n <stzh-heading curve=\"lead\">{item.poiname}</stzh-heading>\n {item.description && <stzh-text size=\"micro\">{item.description}</stzh-text>}\n {item.data &&\n item.data.length > 0 &&\n item.data.map(item => (\n <div class=\"stzh-poi-teaser-list-item\">\n <stzh-icon name={item.icon}></stzh-icon>\n <stzh-text size=\"micro\">{item.text}</stzh-text>\n </div>\n ))}\n </div>\n {item.image && (\n <div class=\"stzh-poi-teaser__image-wrapper\">\n <stzh-ratio\n ratio={\"2:1\"}\n ratio-large={\"5:4\"}\n ratio-ultra={\"1:1\"}\n portrait={this.isViewportLarge}\n class=\"stzh-poi-teaser__ratio\"\n ></stzh-ratio>\n <div class=\"stzh-poi-teaser__image-inner-wrapper\">\n <img src={this.baseUrlOverride + item.image} alt={\"Foto von \" + item.poiname} />\n </div>\n </div>\n )}\n </div>\n ))}\n </div>\n {this.canLoadMore && (\n <div class=\"stzh-geo-ref-data__teaser-load-more\">\n <stzh-button onStzhClick={() => this.loadMore()}>Weitere laden</stzh-button>\n </div>\n )}\n </Fragment>\n )}\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"stzh-geo-ref-data.js","sourceRoot":"","sources":["../../../../src/components/stzh-geo-ref-data/stzh-geo-ref-data.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, Fragment, h, Host, Listen, Prop, State, Watch } from \"@stencil/core\";\nimport {\n StzhAvailableTag,\n StzhChipselectChangeEvent,\n StzhChipselectItem,\n StzhCombinedGeoRefData,\n StzhGeoRefDataOverlayCloseClickEvent,\n StzhMapGeoRefData,\n StzhPoiGeoRefData\n} from \"../../index\";\nimport { Document } from \"flexsearch/dist/flexsearch.bundle.min.js\";\nimport { addMediaChangeListener, media, removeMediaChangeListener } from \"../../utils/media-utils\";\n\nconst CLASS_BODY_OPEN = \"stzh-overlay-open\";\n\n/**\n * @slot logo - Slot for brand logo\n */\n@Component({\n tag: \"stzh-geo-ref-data\",\n styleUrl: \"stzh-geo-ref-data.scss\",\n shadow: true\n})\nexport class GeoRefData {\n /** ID for this instance, can be used to open via URL query param \"al=<id>\" - name \"al\" for historical reasons */\n @Prop({ reflect: true }) al: string = \"\";\n\n /** Heading for the overlay. */\n @Prop({ reflect: true }) heading: string = \"\";\n\n /** The URL for fetching the card data */\n @Prop({ reflect: true }) mapDataUrl: string = \"\";\n\n /** The URL used for fetching the POI data. */\n @Prop({ reflect: true }) poiDataUrl: string = \"\";\n\n /** Base URL used for all external requests (map, card). */\n @Prop() baseUrlOverride: string = \"https://www.stadt-zuerich.ch\";\n\n /** To make sure all tags are mapped to their identificator, only these will be available. */\n @Prop() availableTags: StzhAvailableTag[] | string = [];\n private _availableTags: StzhAvailableTag[] = [];\n\n /** Reset tag (the first one). */\n @Prop() resetTag: StzhChipselectItem | string;\n private _resetTag: StzhChipselectItem;\n\n /** Fields for building the search index. */\n @Prop()\n searchIndexFields: string[] = [\n \"title\",\n \"poiname\",\n \"street\",\n \"zip\",\n \"description\"\n ];\n\n /** Fields for building the search index. */\n @Prop() searchIndexIdField: string = \"poiid\";\n\n @Watch(\"availableTags\")\n availableTagsWatcher(newValue: StzhAvailableTag[] | string) {\n if (!newValue) {\n this._availableTags = [];\n } else if (typeof newValue === \"string\") {\n try {\n this._availableTags = JSON.parse(newValue);\n } catch (e) {\n this._availableTags = [];\n }\n } else {\n this._availableTags = newValue;\n }\n }\n\n @Watch(\"resetTag\")\n resetTagWatcher(newValue: StzhChipselectItem | string) {\n if (!newValue) {\n this._resetTag = undefined;\n } else if (typeof newValue === \"string\") {\n try {\n this._resetTag = JSON.parse(newValue);\n } catch (e) {\n this._resetTag = undefined;\n }\n } else {\n this._resetTag = newValue;\n }\n }\n\n @State() filterActive: boolean = false;\n @State() searchActive: boolean = false;\n @State() showOnlyResultsForCurrentExtent: boolean = true;\n @State() finalResults: StzhCombinedGeoRefData[] = [];\n @State() finalResultsPaginatedList: StzhCombinedGeoRefData[] = [];\n @State() finalResultsPaginationOffset = 0;\n\n @State() viewmode: \"map\" | \"list\" = \"map\";\n @State() isViewportLarge: boolean;\n @State() isViewportMedium: boolean;\n @State() isInitialized: boolean;\n @State() isOpen: boolean;\n @State() isLoading: boolean;\n @State() numberOfItemsToLoad: number = 20;\n @State() canLoadMore: boolean;\n @State() appliedFilters: string[] = [\"\"];\n @State() isFiltersContentOpen: boolean = false;\n\n /** Overlay close click event */\n @Event()\n stzhOverlayCloseClick: EventEmitter<StzhGeoRefDataOverlayCloseClickEvent>;\n\n private combinedData: StzhCombinedGeoRefData[];\n private enhancedTags: StzhChipselectItem[];\n private searchIndex: Document;\n\n private filterResults: StzhCombinedGeoRefData[] = [];\n private searchResults: Set<string>;\n\n @Element() element: HTMLStzhGeoRefDataElement;\n private mapElement: HTMLStzhOlmapElement;\n private toastbarElement: HTMLStzhToastbarElement;\n private metaWrapperElement: HTMLDivElement;\n private resultsListElement: HTMLDivElement;\n private resizeObserver: ResizeObserver;\n\n private applyFiltersFromUrl() {\n const urlParams = new URLSearchParams(window.location.search);\n\n // Find all filter parameters from the URL\n const filters = Array.from(urlParams.entries())\n .filter(([key, value]) => key.startsWith(\"filters[\") && value === \"true\")\n .map(([key]) => key.slice(8, -1)); // Extract the filter key (removing 'filters[' and ']')\n\n // Apply filters if they exist\n if (filters.length) {\n this.appliedFilters = filters;\n // Update the UI to show selected filters\n this.updateUrlWithFilters(); // Keep the URL sync logic here\n this.handleFilterChange({\n detail: { value: filters }\n } as CustomEvent<StzhChipselectChangeEvent>);\n }\n }\n\n private handleFilterToggleClick = () => {\n this.isFiltersContentOpen = true;\n };\n\n private handleApplyFilterClick = () => {\n this.isFiltersContentOpen = false;\n };\n\n private handleOverlayCloseClick = () => {\n // Remove the class from the body\n document.body.classList.remove(CLASS_BODY_OPEN);\n this.isOpen = false;\n\n // Get the current URL's query parameters\n const urlParams = new URLSearchParams(window.location.search);\n\n // Remove all filters (query parameters that start with \"filters[\")\n Array.from(urlParams.keys()).forEach(key => {\n if (key.startsWith(\"filters[\")) {\n urlParams.delete(key);\n }\n });\n\n // Remove all extent parameters (keys like \"extent[0]\", \"extent[1]\", etc.)\n urlParams.delete(\"extent[0]\");\n urlParams.delete(\"extent[1]\");\n urlParams.delete(\"extent[2]\");\n urlParams.delete(\"extent[3]\");\n\n // Remove the al parameter\n urlParams.delete(\"al\");\n\n // Update the URL without reloading the page\n const newUrl = `${window.location.pathname}?${urlParams.toString()}`;\n history.replaceState(null, \"\", newUrl);\n\n // Clear filters.\n this.appliedFilters = [\"\"];\n };\n\n private handleResize = async () => {\n if (this.metaWrapperElement) {\n if (this.metaWrapperElement.clientHeight) {\n this.mapElement.style.height = `calc(100% - ${this.metaWrapperElement.clientHeight}px)`;\n this.resultsListElement.style.height = `calc(100% - ${this.metaWrapperElement.clientHeight}px)`;\n } else {\n this.mapElement.style.height = `100%`;\n this.resultsListElement.style.height = `100%`;\n }\n const map = await this.mapElement.getMap();\n map.updateSize();\n }\n };\n\n private mediaChangeHandler = () => {\n this.isViewportLarge = media(\"large\").matches;\n this.isViewportMedium = media(\"medium\").matches;\n };\n\n private async loadMapData(): Promise<StzhMapGeoRefData[]> {\n if (!this.mapDataUrl) {\n return [];\n }\n try {\n const response = await fetch(this.mapDataUrl);\n const rawMapData = await response.text();\n const parsedData = new DOMParser().parseFromString(rawMapData, \"text/xml\");\n return Array.from(parsedData.querySelectorAll(\"featureMember\")).map(item => {\n const pos = item.querySelector(\"pos\")?.textContent;\n const poiid = item.querySelector(\"poi_id\")?.textContent;\n const [lat, lon] = pos?.split(\" \") || [];\n\n return { poiid, lat, lon } as StzhMapGeoRefData;\n });\n } catch (error) {\n this.toastbarElement\n .toast(\"Es ist ein Fehler beim Beziehen der Kartendaten aufgetreten.\", {\n type: \"error\"\n })\n .catch();\n }\n }\n\n private async loadPoiData() {\n if (!this.poiDataUrl) {\n return [];\n }\n try {\n const response = await fetch(this.poiDataUrl, { credentials: \"include\" });\n const poiData = await response.json();\n return poiData.items;\n } catch (error) {\n this.toastbarElement\n .toast(\"Beim Laden der POI-Daten ist ein Fehler aufgetreten.\", {\n type: \"error\"\n })\n .catch();\n }\n }\n\n private combineData(\n firstArray: StzhMapGeoRefData[] | StzhPoiGeoRefData[],\n secondArray: StzhMapGeoRefData[] | StzhPoiGeoRefData[]\n ): StzhCombinedGeoRefData[] {\n if (!firstArray.length || !secondArray.length) {\n return [];\n }\n // determine which array is smaller for performance\n let smallerArray: any[];\n let largerArray: any[];\n\n if (firstArray.length < secondArray.length) {\n smallerArray = firstArray;\n largerArray = secondArray;\n } else {\n smallerArray = secondArray;\n largerArray = firstArray;\n }\n // combine arrays based on poiid\n return smallerArray\n .map(item => {\n const matchingItem = largerArray.find(largerArrayItem => largerArrayItem.poiid === item.poiid);\n return { ...item, ...matchingItem };\n })\n .sort((a, b) => {\n try {\n return a.title.localeCompare(b.title); // Sorts alphabetically by the 'name' property\n } catch (noTitleException) {\n return 1;\n }\n });\n }\n\n private enhanceTags(availableTags: StzhAvailableTag[], combinedData: StzhCombinedGeoRefData[]): StzhChipselectItem[] {\n return availableTags\n .sort((a, b) => {\n try {\n a.label.localeCompare(b.label);\n } catch (noLabelException) {\n return 1;\n }\n })\n .map(tag => {\n const counter = combinedData\n .filter(item => {\n try {\n return item.tags.includes(tag.value);\n } catch (noTagsException) {\n return false;\n }\n })\n .length.toString();\n return { ...tag, counter, variant: \"filter\" };\n });\n }\n\n private buildSearchIndex(data: StzhCombinedGeoRefData[]) {\n if (!data.length) {\n return;\n }\n this.searchIndex = new Document({\n tokenize: \"forward\",\n matcher: {\n \"[äà]\": \"a\",\n \"[öó]\": \"o\",\n \"[üûúù]\": \"u\",\n \"[éè]\": \"e\"\n },\n document: {\n id: this.searchIndexIdField,\n index: this.searchIndexFields\n }\n });\n data.forEach(item => {\n this.searchIndex.add(item);\n });\n }\n\n @Listen(\"stzhPostRender\")\n @Listen(\"stzhMovePanZoom\")\n async mapMovedPannedOrZoomed() {\n await this.setVisibleMarkers();\n }\n\n private async setVisibleMarkers() {\n if (this.combinedData) {\n const visibleMarkers = await this.mapElement.getVisibleMarkers();\n if (this.showOnlyResultsForCurrentExtent) {\n this.finalResults = this.combinedData.filter(item =>\n visibleMarkers.find(visibleMarker => visibleMarker.getId() === item.poiid)\n );\n } else {\n this.finalResults = this.combinedData;\n }\n this.setEnhancedTags();\n await this.setPaginatedResults();\n }\n }\n\n private async setPaginatedResults() {\n this.finalResultsPaginatedList = this.finalResults.slice(0, this.numberOfItemsToLoad);\n this.canLoadMore = this.finalResults.length > this.numberOfItemsToLoad;\n }\n\n private async checkDirectOpenViaUrl() {\n const urlParams = new URLSearchParams(window.location.search);\n const idFromUrl = urlParams.get(\"al\");\n\n if (idFromUrl && idFromUrl === this.al) {\n await this.initializeAndOpenMap();\n }\n }\n\n connectedCallback() {\n this.mediaChangeHandler();\n addMediaChangeListener(this.mediaChangeHandler);\n this.resizeObserver = new ResizeObserver(this.handleResize);\n this.resizeObserver.observe(this.element);\n this.availableTagsWatcher(this.availableTags);\n this.resetTagWatcher(this.resetTag);\n this.checkDirectOpenViaUrl();\n }\n\n disconnectedCallback() {\n removeMediaChangeListener(this.mediaChangeHandler);\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n private async initializeAndOpenMap() {\n document.body.classList.add(CLASS_BODY_OPEN);\n this.isLoading = true;\n this.isOpen = true;\n\n // Write the \"al\" prop of the component to the current URL as query param if it is not already there\n const urlParams = new URLSearchParams(window.location.search);\n if (!urlParams.has(\"al\")) {\n urlParams.set(\"al\", this.al);\n const newUrl = `${window.location.pathname}?${urlParams.toString()}`;\n history.replaceState(null, \"\", newUrl);\n }\n\n try {\n this.combinedData = this.combineData(await this.loadMapData(), await this.loadPoiData());\n this.setEnhancedTags();\n this.applyFiltersFromUrl();\n this.buildSearchIndex(this.combinedData);\n this.finalResults = this.combinedData;\n await this.setVisibleMarkers();\n await this.combineFilterAndSearchResults();\n await this.handleResize();\n\n const urlParams = new URLSearchParams(window.location.search);\n const extent = [\n parseFloat(urlParams.get(\"extent[0]\")),\n parseFloat(urlParams.get(\"extent[1]\")),\n parseFloat(urlParams.get(\"extent[2]\")),\n parseFloat(urlParams.get(\"extent[3]\"))\n ];\n\n if (!extent.length || isNaN(extent[0]) || isNaN(extent[1]) || isNaN(extent[2]) || isNaN(extent[3])) {\n await this.mapElement.updateViewToFitMarkers();\n }\n\n await this.handleResize();\n this.isInitialized = true;\n } catch (mapException) {\n this.toastbarElement\n .toast(\"Beim Laden der Karte ist ein Fehler aufgetreten.\", {\n type: \"error\"\n })\n .catch();\n }\n\n setTimeout(() => {\n this.isLoading = false;\n }, 500);\n }\n\n private updateUrlWithFilters() {\n const urlParams = new URLSearchParams(window.location.search);\n\n // Remove existing filters from URL\n Array.from(urlParams.keys()).forEach(key => {\n if (key.startsWith(\"filters[\")) {\n urlParams.delete(key);\n }\n });\n\n // Add the selected filters from `appliedFilters` to the URL\n this.appliedFilters.forEach(filter => {\n urlParams.set(`filters[${filter}]`, \"true\");\n });\n\n // Update the URL without reloading the page\n const newUrl = `${window.location.pathname}?${urlParams.toString()}`;\n history.replaceState(null, \"\", newUrl);\n }\n\n private setEnhancedTags() {\n this.enhancedTags = this.enhanceTags(this._availableTags, this.finalResults);\n const enhancedResetTag = {\n ...this._resetTag,\n counter: this.finalResults.length.toString()\n };\n if (this._resetTag) {\n this.enhancedTags.unshift(enhancedResetTag);\n }\n }\n\n private handleFilterChange = async (e: CustomEvent<StzhChipselectChangeEvent>) => {\n let filtersArray = Array.isArray(e.detail.value) ? e.detail.value : [e.detail.value];\n if (filtersArray.length === 1 && filtersArray[0] === this._resetTag.value) {\n this.appliedFilters = [];\n } else {\n try {\n filtersArray = filtersArray.filter(filterValue => filterValue !== \"\");\n } catch (noEmptyFilter) {\n // nothing to do here\n }\n this.appliedFilters = filtersArray;\n }\n setTimeout(async () => {\n await this.handleFilterResults();\n });\n };\n\n private async handleFilterResults() {\n // Update the component state based on the selected filters\n if (this.appliedFilters.length !== 0) {\n this.filterResults = this.finalResults.filter(\n item => item.tags && item.tags.some(tag => this.appliedFilters.includes(tag))\n );\n this.filterActive = true;\n } else {\n this.filterActive = false;\n this.filterResults = this.finalResults;\n }\n\n // Update the URL with the applied filters\n this.updateUrlWithFilters();\n\n // Combine the results from filters and search\n await this.combineFilterAndSearchResults();\n }\n\n private handleExtentVisibilityChange = async e => {\n this.showOnlyResultsForCurrentExtent = e.detail.checked;\n await this.setVisibleMarkers();\n };\n\n private handleSearchChange = async (e: CustomEvent) => {\n if (e.detail.value !== \"\") {\n if (!this.searchIndex) {\n return;\n }\n const searchResults = this.searchIndex.search(e.detail.value);\n const flatSearchResults = searchResults.flatMap(field => field.result);\n this.searchResults = new Set(flatSearchResults);\n this.searchActive = true;\n } else {\n this.searchActive = false;\n }\n await this.combineFilterAndSearchResults();\n };\n\n private async combineFilterAndSearchResults() {\n if (this.filterActive && !this.searchActive) {\n this.finalResults = this.filterResults;\n } else if (!this.filterActive && this.searchActive) {\n this.finalResults = Array.from(this.searchResults).map(id => this.combinedData.find(item => item.poiid === id));\n } else if (this.filterActive && this.searchActive) {\n this.finalResults = this.filterResults.filter(item => this.searchResults.has(item.poiid));\n } else {\n this.finalResults = this.combinedData;\n }\n\n this.finalResultsPaginatedList = this.finalResults.slice(0, this.numberOfItemsToLoad);\n\n await this.replaceMapMarkers(this.finalResults);\n }\n\n private loadMore() {\n this.finalResultsPaginationOffset++;\n const sliced = this.finalResults.slice(\n this.finalResultsPaginationOffset * this.numberOfItemsToLoad,\n this.finalResultsPaginationOffset * this.numberOfItemsToLoad + this.numberOfItemsToLoad\n );\n if (!sliced || !sliced.length || sliced.length < this.numberOfItemsToLoad) {\n this.canLoadMore = false;\n }\n this.finalResultsPaginatedList = this.finalResultsPaginatedList.concat(sliced);\n }\n\n private async replaceMapMarkers(items: StzhCombinedGeoRefData[]) {\n await this.mapElement.removeAllIconMarkers();\n items\n .filter(item => !!item.lat && !!item.lon)\n .forEach(item => {\n this.mapElement\n .addIconMarker([\n parseFloat(item.lat),\n parseFloat(item.lon)\n ], {\n id: item.poiid,\n title: item.title,\n text: item.description,\n data: item.data,\n imageUri: `${this.baseUrlOverride}${item.image}`,\n href: `${this.baseUrlOverride}${item.path}`\n })\n .catch();\n });\n if (!this.showOnlyResultsForCurrentExtent) {\n this.mapElement.updateViewToFitMarkers().catch();\n }\n }\n\n private toggleViewMode = () => {\n if (this.viewmode === \"map\") {\n this.viewmode = \"list\";\n } else {\n this.viewmode = \"map\";\n }\n };\n\n private async handlePoiTeaserMouseEnter(item: StzhCombinedGeoRefData) {\n const marker = await this.mapElement.findMarkerById(item.poiid);\n if (marker) {\n await this.mapElement.setIconMarkerActive(marker);\n }\n }\n\n private async handlePoiTeaserMouseLeave(item: StzhCombinedGeoRefData) {\n const marker = await this.mapElement.findMarkerById(item.poiid);\n if (marker) {\n await this.mapElement.setIconMarkerInactive(marker);\n }\n }\n\n render() {\n const classes = {\n \"stzh-geo-ref-data\": true,\n \"stzh-geo-ref-data--is-loading\": this.isLoading,\n \"stzh-geo-ref-data--is-open\": this.isOpen,\n \"stzh-geo-ref-data--has-filters\": this._availableTags.length > 0\n };\n return (\n <Host>\n <stzh-toastbar ref={el => (this.toastbarElement = el as HTMLStzhToastbarElement)} />\n <div class=\"stzh-geo-ref-data__trigger\" onClick={() => this.initializeAndOpenMap()}>\n <slot name=\"trigger\"></slot>\n </div>\n <stzh-overlay open={this.isLoading}>\n <stzh-loader label=\"Daten werden geladen...\"></stzh-loader>\n </stzh-overlay>\n <div class={classes}>\n <div class=\"stzh-geo-ref-data__header-wrapper\">\n <stzh-header class=\"stzh-geo-ref-data__header\" hide-metabar={true} sticky=\"disabled\">\n <slot name=\"logo\" slot=\"logo\"></slot>\n </stzh-header>\n <div class=\"stzh-geo-ref-data__heading stzh-geo-ref-data--content-padding\">\n <stzh-heading class=\"stzh-geo-ref-data__heading-heading\" curve=\"h2\">\n {this.heading}\n </stzh-heading>\n <stzh-button\n class=\"stzh-geo-ref-data__overlay-close\"\n icon=\"close\"\n iconOnly={true}\n size=\"small\"\n variant=\"tertiary\"\n onClick={this.handleOverlayCloseClick}\n ></stzh-button>\n </div>\n </div>\n\n <div class=\"stzh-geo-ref-data__content\">\n <div\n class=\"stzh-geo-ref-data__meta-wrapper stzh-geo-ref-data--content-padding\"\n ref={el => (this.metaWrapperElement = el as HTMLDivElement)}\n >\n <div class=\"stzh-geo-ref-data__filters\">\n {this._availableTags.length > 0 && (\n <div class=\"stzh-geo-ref-data__filters-toggle\">\n <stzh-chip\n label={this.isViewportMedium ? \"Filter\" : \"\"}\n variant=\"filter\"\n icon=\"filtering\"\n onStzhClick={this.handleFilterToggleClick}\n ></stzh-chip>\n </div>\n )}\n <div\n class={{\n \"stzh-geo-ref-data__filters-content\": true,\n \"stzh-geo-ref-data__filters-content--visible\": !this.isViewportLarge && this.isFiltersContentOpen\n }}\n >\n <stzh-chipselect\n label-hidden={true}\n label=\"Tags\"\n data={this.enhancedTags}\n onStzhChange={this.handleFilterChange}\n multiple={true}\n defaultValue={this.appliedFilters}\n value={this.appliedFilters}\n ></stzh-chipselect>\n <div class=\"stzh-geo-ref-data__filters-apply-button\">\n <stzh-button size=\"small\" fullwidth={true} onStzhClick={this.handleApplyFilterClick}>\n Anwenden\n </stzh-button>\n </div>\n </div>\n </div>\n <div class=\"stzh-geo-ref-data__search\">\n <stzh-input\n name=\"stzh-datatable-search\"\n onStzhChange={this.handleSearchChange}\n hideOptional={true}\n label=\"Suche\"\n type=\"search\"\n ></stzh-input>\n </div>\n <div class=\"stzh-geo-ref-data__results-toggle\">\n <stzh-chip\n onStzhClick={this.toggleViewMode}\n label={this.viewmode === \"map\" ? \"Liste\" : \"Karte\"}\n icon={this.viewmode === \"map\" ? \"bulleted-list\" : \"map\"}\n variant=\"filter\"\n ></stzh-chip>\n </div>\n </div>\n <div class=\"stzh-geo-ref-data__results-wrapper\">\n <div class={`stzh-geo-ref-data__results-map ${this.viewmode === \"map\" ? \"active\" : \"inactive\"}`}>\n <stzh-olmap\n class=\"stzh-geo-ref-data__ol-map\"\n centerMarker={false}\n writeExtentToUrlEnabled={this.isOpen}\n ref={el => (this.mapElement = el as HTMLStzhOlmapElement)}\n ></stzh-olmap>\n <div class=\"stzh-geo-ref-data__map-controls\">\n <stzh-checkbox\n label=\"Treffer an Kartenausschnitt anpassen\"\n checked={this.showOnlyResultsForCurrentExtent}\n hideOptional={true}\n onStzhChange={this.handleExtentVisibilityChange}\n ></stzh-checkbox>\n </div>\n </div>\n <div\n class={`stzh-geo-ref-data__results-list ${this.viewmode === \"list\" ? \"active\" : \"inactive\"}`}\n ref={el => (this.resultsListElement = el as HTMLDivElement)}\n >\n {this.finalResults && (\n <Fragment>\n <div class=\"stzh-geo-ref-data__list-search\">\n <stzh-input\n name=\"stzh-datatable-search\"\n onStzhChange={this.handleSearchChange}\n hideOptional={true}\n label=\"Suche\"\n type=\"search\"\n ></stzh-input>\n </div>\n <stzh-text class=\"stzh-geo-ref-data__results-list-heading\">\n {this.finalResults.length} Treffer\n </stzh-text>\n <div class=\"stzh-geo-ref-data__teaser-list\">\n {this.finalResultsPaginatedList.map(item => (\n <div\n class=\"stzh-poi-teaser\"\n onMouseEnter={() => this.handlePoiTeaserMouseEnter(item)}\n onMouseLeave={() => this.handlePoiTeaserMouseLeave(item)}\n >\n <a class=\"stzh-poi-teaser-link\" href={this.baseUrlOverride + item.path}></a>\n <div class=\"stzh-poi-teaser-content\">\n <stzh-heading curve=\"lead\">{item.poiname}</stzh-heading>\n {item.description && <stzh-text size=\"micro\">{item.description}</stzh-text>}\n {item.data &&\n item.data.length > 0 &&\n item.data.map(item => (\n <div class=\"stzh-poi-teaser-list-item\">\n <stzh-icon name={item.icon}></stzh-icon>\n <stzh-text size=\"micro\">{item.text}</stzh-text>\n </div>\n ))}\n </div>\n {item.image && (\n <div class=\"stzh-poi-teaser__image-wrapper\">\n <stzh-ratio\n ratio={\"2:1\"}\n ratio-large={\"5:4\"}\n ratio-ultra={\"1:1\"}\n portrait={this.isViewportLarge}\n class=\"stzh-poi-teaser__ratio\"\n ></stzh-ratio>\n <div class=\"stzh-poi-teaser__image-inner-wrapper\">\n <img src={this.baseUrlOverride + item.image} alt={\"Foto von \" + item.poiname} />\n </div>\n </div>\n )}\n </div>\n ))}\n </div>\n {this.canLoadMore && (\n <div class=\"stzh-geo-ref-data__teaser-load-more\">\n <stzh-button onStzhClick={() => this.loadMore()}>Weitere laden</stzh-button>\n </div>\n )}\n </Fragment>\n )}\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
|