@oiz/stzh-components 3.8.0-beta1 → 3.8.0-beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/dist/cjs/{app-globals-02553278.js → app-globals-a393bc30.js} +2 -2
  2. package/dist/cjs/{app-globals-02553278.js.map → app-globals-a393bc30.js.map} +1 -1
  3. package/dist/cjs/{axios-69bcb71f.js → axios-bd44344d.js} +51 -96
  4. package/dist/cjs/axios-bd44344d.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/stzh-accordion_3.cjs.entry.js +2 -7
  7. package/dist/cjs/stzh-accordion_3.cjs.entry.js.map +1 -1
  8. package/dist/cjs/stzh-bathstatus-list.cjs.entry.js +1 -1
  9. package/dist/cjs/stzh-chipselect.cjs.entry.js +1 -1
  10. package/dist/cjs/stzh-chipselect.cjs.entry.js.map +1 -1
  11. package/dist/cjs/stzh-components.cjs.js +2 -2
  12. package/dist/cjs/stzh-contact.cjs.entry.js +2 -8
  13. package/dist/cjs/stzh-contact.cjs.entry.js.map +1 -1
  14. package/dist/cjs/stzh-datalist_2.cjs.entry.js +1 -1
  15. package/dist/cjs/stzh-datalist_2.cjs.entry.js.map +1 -1
  16. package/dist/cjs/stzh-dropdown.cjs.entry.js +1 -1
  17. package/dist/cjs/stzh-dropdown.cjs.entry.js.map +1 -1
  18. package/dist/cjs/stzh-eventdata.cjs.entry.js +1 -1
  19. package/dist/cjs/stzh-eventdata.cjs.entry.js.map +1 -1
  20. package/dist/cjs/stzh-geo-ref-data.cjs.entry.js +2 -2
  21. package/dist/cjs/stzh-geo-ref-data.cjs.entry.js.map +1 -1
  22. package/dist/cjs/stzh-microsite-teaserlist.cjs.entry.js +3 -2
  23. package/dist/cjs/stzh-microsite-teaserlist.cjs.entry.js.map +1 -1
  24. package/dist/cjs/stzh-poilist.cjs.entry.js +1 -1
  25. package/dist/cjs/stzh-progressbar.cjs.entry.js +23 -0
  26. package/dist/cjs/stzh-progressbar.cjs.entry.js.map +1 -1
  27. package/dist/cjs/stzh-search.cjs.entry.js +2 -2
  28. package/dist/cjs/stzh-search.cjs.entry.js.map +1 -1
  29. package/dist/cjs/stzh-upload.cjs.entry.js +20 -9
  30. package/dist/cjs/stzh-upload.cjs.entry.js.map +1 -1
  31. package/dist/cjs/stzh-vbz-majorticker.cjs.entry.js +1 -1
  32. package/dist/cjs/stzh-vbz-ticker.cjs.entry.js +1 -1
  33. package/dist/collection/assets/i18n/de.json +9 -5
  34. package/dist/collection/assets/i18n/en.json +9 -5
  35. package/dist/collection/components/stzh-accordion/stzh-accordion.e2e.js +1 -0
  36. package/dist/collection/components/stzh-accordion/stzh-accordion.e2e.js.map +1 -1
  37. package/dist/collection/components/stzh-accordion/stzh-accordion.stories.js +86 -0
  38. package/dist/collection/components/stzh-accordion-item/stzh-accordion-item.js +2 -7
  39. package/dist/collection/components/stzh-accordion-item/stzh-accordion-item.js.map +1 -1
  40. package/dist/collection/components/stzh-button/stzh-button.e2e.js +6 -3
  41. package/dist/collection/components/stzh-button/stzh-button.e2e.js.map +1 -1
  42. package/dist/collection/components/stzh-button/stzh-button.stories.js +200 -15
  43. package/dist/collection/components/stzh-chip/stzh-chip.stories.js +11 -0
  44. package/dist/collection/components/stzh-chipselect/stzh-chipselect.css +1 -6
  45. package/dist/collection/components/stzh-contact/stzh-contact.css +8 -0
  46. package/dist/collection/components/stzh-contact/stzh-contact.js +1 -7
  47. package/dist/collection/components/stzh-contact/stzh-contact.js.map +1 -1
  48. package/dist/collection/components/stzh-datalist/stzh-datalist.e2e.js +1 -0
  49. package/dist/collection/components/stzh-datalist/stzh-datalist.e2e.js.map +1 -1
  50. package/dist/collection/components/stzh-datalist/stzh-datalist.stories.js +32 -0
  51. package/dist/collection/components/stzh-datalist-item/stzh-datalist-item.css +2 -1
  52. package/dist/collection/components/stzh-dropdown/stzh-dropdown.css +8 -1
  53. package/dist/collection/components/stzh-dropdown/stzh-dropdown.stories.js +107 -5
  54. package/dist/collection/components/stzh-eventdata/stzh-eventdata.css +0 -5
  55. package/dist/collection/components/stzh-geo-ref-data/stzh-geo-ref-data.js +2 -2
  56. package/dist/collection/components/stzh-geo-ref-data/stzh-geo-ref-data.js.map +1 -1
  57. package/dist/collection/components/stzh-microsite-teaserlist/stzh-microsite-teaserlist.js +3 -2
  58. package/dist/collection/components/stzh-microsite-teaserlist/stzh-microsite-teaserlist.js.map +1 -1
  59. package/dist/collection/components/stzh-progressbar/stzh-progressbar.js +27 -2
  60. package/dist/collection/components/stzh-progressbar/stzh-progressbar.js.map +1 -1
  61. package/dist/collection/components/stzh-search/stzh-search.js +1 -1
  62. package/dist/collection/components/stzh-search/stzh-search.js.map +1 -1
  63. package/dist/collection/components/stzh-search/stzh-search.stories.js +51 -83
  64. package/dist/collection/components/stzh-skiplink/stzh-skiplink.stories.js +0 -1
  65. package/dist/collection/components/stzh-upload/models/stzh-photographing-url-details.dto.js.map +1 -1
  66. package/dist/collection/components/stzh-upload/stzh-upload.css +5 -0
  67. package/dist/collection/components/stzh-upload/stzh-upload.js +23 -9
  68. package/dist/collection/components/stzh-upload/stzh-upload.js.map +1 -1
  69. package/dist/collection/components/stzh-upload/stzh-upload.localization.js.map +1 -1
  70. package/dist/collection/components/stzh-upload/stzh-upload.stories.js +3 -1
  71. package/dist/components/index.js +1 -1
  72. package/dist/components/{p-16892790.js → p-345a1e99.js} +51 -96
  73. package/dist/components/p-345a1e99.js.map +1 -0
  74. package/dist/components/{p-82c163e4.js → p-47601c6a.js} +2 -2
  75. package/dist/components/{p-82c163e4.js.map → p-47601c6a.js.map} +1 -1
  76. package/dist/components/{p-ed75de26.js → p-4fec83e3.js} +2 -2
  77. package/dist/components/{p-ed75de26.js.map → p-4fec83e3.js.map} +1 -1
  78. package/dist/components/{p-3890d846.js → p-5efa3e34.js} +2 -2
  79. package/dist/components/p-5efa3e34.js.map +1 -0
  80. package/dist/components/{p-2a870524.js → p-6c754f8f.js} +3 -8
  81. package/dist/components/p-6c754f8f.js.map +1 -0
  82. package/dist/components/{p-3aefa2e3.js → p-6e8c91f8.js} +3 -3
  83. package/dist/components/{p-3aefa2e3.js.map → p-6e8c91f8.js.map} +1 -1
  84. package/dist/components/{p-c9ddf923.js → p-8ed7a61b.js} +2 -2
  85. package/dist/components/{p-c9ddf923.js.map → p-8ed7a61b.js.map} +1 -1
  86. package/dist/components/{p-e0e4416e.js → p-ebbe78de.js} +2 -2
  87. package/dist/components/p-ebbe78de.js.map +1 -0
  88. package/dist/components/stzh-accordion-item.js +1 -1
  89. package/dist/components/stzh-amount.js +1 -1
  90. package/dist/components/stzh-appointments.js +3 -3
  91. package/dist/components/stzh-bathstatus-list.js +1 -1
  92. package/dist/components/stzh-calendar.js +1 -1
  93. package/dist/components/stzh-card-searchresult.js +2 -2
  94. package/dist/components/stzh-card-superteaser.js +2 -2
  95. package/dist/components/stzh-chipselect.js +1 -1
  96. package/dist/components/stzh-contact.js +2 -8
  97. package/dist/components/stzh-contact.js.map +1 -1
  98. package/dist/components/stzh-datalist-item.js +1 -1
  99. package/dist/components/stzh-datalist.js +1 -1
  100. package/dist/components/stzh-datatable.js +4 -4
  101. package/dist/components/stzh-datepicker.js +1 -1
  102. package/dist/components/stzh-dropdown.js +1 -1
  103. package/dist/components/stzh-eventdata.js +1 -1
  104. package/dist/components/stzh-eventdata.js.map +1 -1
  105. package/dist/components/stzh-geo-ref-data.js +3 -3
  106. package/dist/components/stzh-geo-ref-data.js.map +1 -1
  107. package/dist/components/stzh-microsite-teaserlist.js +4 -3
  108. package/dist/components/stzh-microsite-teaserlist.js.map +1 -1
  109. package/dist/components/stzh-monthyearpicker.js +1 -1
  110. package/dist/components/stzh-panorama.js +1 -1
  111. package/dist/components/stzh-poilist.js +2 -2
  112. package/dist/components/stzh-progressbar.js +26 -2
  113. package/dist/components/stzh-progressbar.js.map +1 -1
  114. package/dist/components/stzh-search.js +4 -4
  115. package/dist/components/stzh-search.js.map +1 -1
  116. package/dist/components/stzh-sitemap.js +2 -2
  117. package/dist/components/stzh-timepicker.js +1 -1
  118. package/dist/components/stzh-upload.js +23 -9
  119. package/dist/components/stzh-upload.js.map +1 -1
  120. package/dist/components/stzh-vbz-majorticker.js +1 -1
  121. package/dist/components/stzh-vbz-ticker.js +1 -1
  122. package/dist/esm/{app-globals-30dc1fec.js → app-globals-6ab4a484.js} +2 -2
  123. package/dist/esm/{app-globals-30dc1fec.js.map → app-globals-6ab4a484.js.map} +1 -1
  124. package/dist/esm/{axios-e0a35239.js → axios-0cc95004.js} +51 -96
  125. package/dist/esm/axios-0cc95004.js.map +1 -0
  126. package/dist/esm/loader.js +2 -2
  127. package/dist/esm/stzh-accordion_3.entry.js +2 -7
  128. package/dist/esm/stzh-accordion_3.entry.js.map +1 -1
  129. package/dist/esm/stzh-bathstatus-list.entry.js +1 -1
  130. package/dist/esm/stzh-chipselect.entry.js +1 -1
  131. package/dist/esm/stzh-chipselect.entry.js.map +1 -1
  132. package/dist/esm/stzh-components.js +2 -2
  133. package/dist/esm/stzh-contact.entry.js +2 -8
  134. package/dist/esm/stzh-contact.entry.js.map +1 -1
  135. package/dist/esm/stzh-datalist_2.entry.js +1 -1
  136. package/dist/esm/stzh-datalist_2.entry.js.map +1 -1
  137. package/dist/esm/stzh-dropdown.entry.js +1 -1
  138. package/dist/esm/stzh-dropdown.entry.js.map +1 -1
  139. package/dist/esm/stzh-eventdata.entry.js +1 -1
  140. package/dist/esm/stzh-eventdata.entry.js.map +1 -1
  141. package/dist/esm/stzh-geo-ref-data.entry.js +2 -2
  142. package/dist/esm/stzh-geo-ref-data.entry.js.map +1 -1
  143. package/dist/esm/stzh-microsite-teaserlist.entry.js +3 -2
  144. package/dist/esm/stzh-microsite-teaserlist.entry.js.map +1 -1
  145. package/dist/esm/stzh-poilist.entry.js +1 -1
  146. package/dist/esm/stzh-progressbar.entry.js +24 -1
  147. package/dist/esm/stzh-progressbar.entry.js.map +1 -1
  148. package/dist/esm/stzh-search.entry.js +2 -2
  149. package/dist/esm/stzh-search.entry.js.map +1 -1
  150. package/dist/esm/stzh-upload.entry.js +20 -9
  151. package/dist/esm/stzh-upload.entry.js.map +1 -1
  152. package/dist/esm/stzh-vbz-majorticker.entry.js +1 -1
  153. package/dist/esm/stzh-vbz-ticker.entry.js +1 -1
  154. package/dist/stzh-components/assets/i18n/de.json +9 -5
  155. package/dist/stzh-components/assets/i18n/en.json +9 -5
  156. package/dist/stzh-components/p-129faf7d.entry.js +2 -0
  157. package/dist/stzh-components/p-129faf7d.entry.js.map +1 -0
  158. package/dist/stzh-components/{p-68dee00d.entry.js → p-23678dfc.entry.js} +2 -2
  159. package/dist/stzh-components/{p-68dee00d.entry.js.map → p-23678dfc.entry.js.map} +1 -1
  160. package/dist/stzh-components/p-345a1e99.js +2 -0
  161. package/dist/stzh-components/p-345a1e99.js.map +1 -0
  162. package/dist/stzh-components/{p-e5a451a0.entry.js → p-646958e0.entry.js} +2 -2
  163. package/dist/stzh-components/{p-ef38e1fe.entry.js → p-6f9626d1.entry.js} +2 -2
  164. package/dist/stzh-components/p-6f9626d1.entry.js.map +1 -0
  165. package/dist/stzh-components/{p-64ba89a2.js → p-7036f004.js} +2 -2
  166. package/dist/stzh-components/{p-8aab9098.entry.js → p-7c5e34db.entry.js} +2 -2
  167. package/dist/stzh-components/{p-b2986e24.entry.js → p-809076ff.entry.js} +2 -2
  168. package/dist/stzh-components/{p-5bafa548.entry.js → p-84f8307b.entry.js} +2 -2
  169. package/dist/stzh-components/p-84f8307b.entry.js.map +1 -0
  170. package/dist/stzh-components/{p-7b2bd184.entry.js → p-8856651e.entry.js} +2 -2
  171. package/dist/stzh-components/{p-7b2bd184.entry.js.map → p-8856651e.entry.js.map} +1 -1
  172. package/dist/stzh-components/p-8c5fb0e2.entry.js +2 -0
  173. package/dist/stzh-components/{p-f156650a.entry.js.map → p-8c5fb0e2.entry.js.map} +1 -1
  174. package/dist/stzh-components/{p-025a5c2e.entry.js → p-a47a14ef.entry.js} +2 -2
  175. package/dist/stzh-components/p-a47a14ef.entry.js.map +1 -0
  176. package/dist/stzh-components/p-a71fafbd.entry.js +2 -0
  177. package/dist/stzh-components/p-a71fafbd.entry.js.map +1 -0
  178. package/dist/stzh-components/{p-b25e8b20.entry.js → p-c83239a9.entry.js} +2 -2
  179. package/dist/stzh-components/p-c83239a9.entry.js.map +1 -0
  180. package/dist/stzh-components/{p-6f0cf6e3.entry.js → p-d97fbf1f.entry.js} +2 -2
  181. package/dist/stzh-components/p-fa4595c8.entry.js +2 -0
  182. package/dist/stzh-components/p-fa4595c8.entry.js.map +1 -0
  183. package/dist/stzh-components/p-fcc75797.entry.js +2 -0
  184. package/dist/stzh-components/p-fcc75797.entry.js.map +1 -0
  185. package/dist/stzh-components/stzh-components.esm.js +1 -1
  186. package/dist/stzh-components/stzh-components.esm.js.map +1 -1
  187. package/dist/types/components/stzh-accordion-item/stzh-accordion-item.d.ts +0 -1
  188. package/dist/types/components/stzh-microsite-teaserlist/stzh-microsite-teaserlist.d.ts +2 -2
  189. package/dist/types/components/stzh-progressbar/stzh-progressbar.d.ts +4 -0
  190. package/dist/types/components/stzh-upload/models/stzh-photographing-url-details.dto.d.ts +1 -0
  191. package/dist/types/components/stzh-upload/stzh-upload.d.ts +3 -0
  192. package/dist/types/components/stzh-upload/stzh-upload.localization.d.ts +2 -0
  193. package/package.json +9 -5
  194. package/dist/cjs/axios-69bcb71f.js.map +0 -1
  195. package/dist/components/p-16892790.js.map +0 -1
  196. package/dist/components/p-2a870524.js.map +0 -1
  197. package/dist/components/p-3890d846.js.map +0 -1
  198. package/dist/components/p-e0e4416e.js.map +0 -1
  199. package/dist/esm/axios-e0a35239.js.map +0 -1
  200. package/dist/stzh-components/p-025a5c2e.entry.js.map +0 -1
  201. package/dist/stzh-components/p-11abc40a.entry.js +0 -2
  202. package/dist/stzh-components/p-11abc40a.entry.js.map +0 -1
  203. package/dist/stzh-components/p-16892790.js +0 -2
  204. package/dist/stzh-components/p-16892790.js.map +0 -1
  205. package/dist/stzh-components/p-5ac0220a.entry.js +0 -2
  206. package/dist/stzh-components/p-5ac0220a.entry.js.map +0 -1
  207. package/dist/stzh-components/p-5bafa548.entry.js.map +0 -1
  208. package/dist/stzh-components/p-95427be2.entry.js +0 -2
  209. package/dist/stzh-components/p-95427be2.entry.js.map +0 -1
  210. package/dist/stzh-components/p-973c5df2.entry.js +0 -2
  211. package/dist/stzh-components/p-973c5df2.entry.js.map +0 -1
  212. package/dist/stzh-components/p-b25e8b20.entry.js.map +0 -1
  213. package/dist/stzh-components/p-ef38e1fe.entry.js.map +0 -1
  214. package/dist/stzh-components/p-f156650a.entry.js +0 -2
  215. /package/dist/stzh-components/{p-e5a451a0.entry.js.map → p-646958e0.entry.js.map} +0 -0
  216. /package/dist/stzh-components/{p-64ba89a2.js.map → p-7036f004.js.map} +0 -0
  217. /package/dist/stzh-components/{p-8aab9098.entry.js.map → p-7c5e34db.entry.js.map} +0 -0
  218. /package/dist/stzh-components/{p-b2986e24.entry.js.map → p-809076ff.entry.js.map} +0 -0
  219. /package/dist/stzh-components/{p-6f0cf6e3.entry.js.map → p-d97fbf1f.entry.js.map} +0 -0
@@ -4,12 +4,18 @@ import readme from './readme.md?raw';
4
4
 
5
5
  import { getFigmaLink } from '../../../figma';
6
6
  import { fullwidthCentered } from '../../utils/decorators';
7
+ import { expectIsVisible, getComponentByTestId } from "../../../.storybook/utils/component-test-utils";
8
+ import { expect } from "@storybook/jest";
9
+ import { userEvent, waitFor } from "@storybook/testing-library";
7
10
 
8
11
  const COMPONENT_NAME = 'stzh-dropdown';
9
12
  const story = createComponentStory(COMPONENT_NAME);
10
13
 
14
+ const DROPDOWN_TEST_ID = 'BUTTON_TEST_ID';
15
+ let stzhDropdownEl;
16
+
11
17
  const TEMPLATE = `
12
- <stzh-dropdown></stzh-dropdown>
18
+ <stzh-dropdown data-testid="${DROPDOWN_TEST_ID}"></stzh-dropdown>
13
19
  `;
14
20
 
15
21
  const TEMPLATE_SLOTTED_OPTIONS_WITH_ICON = `
@@ -52,13 +58,109 @@ export const Single = {
52
58
  args: {
53
59
  label: 'Department',
54
60
  description: 'Choose one department.',
61
+ name: 'singleDropdown',
55
62
  options: [
56
- { 'text': 'AOZ', 'value': 'AOZ' },
57
- { 'text': 'PKZH', 'value': 'PKZH' },
58
- { 'text': 'VBZ', 'value': 'VBZ' },
59
- { 'text': 'UVZ', 'value': 'UVZ', 'disabled': true },
63
+ { 'text': 'AOZ', 'value': 'AOZ_value' },
64
+ { 'text': 'PKZH', 'value': 'PKZH_value' },
65
+ { 'text': 'VBZ', 'value': 'VBZ_value' },
66
+ { 'text': 'UVZ', 'value': 'UVZ_value', 'disabled': true },
60
67
  ],
61
68
  },
69
+ play: async ({ canvasElement, step }) => {
70
+
71
+ stzhDropdownEl = await getComponentByTestId(canvasElement, DROPDOWN_TEST_ID);
72
+
73
+ await step('Assert properties', async () => {
74
+ expect(stzhDropdownEl).toHaveAttribute('label', 'Department');
75
+ expect(stzhDropdownEl).toHaveAttribute('description', 'Choose one department.');
76
+ expect(stzhDropdownEl).toHaveAttribute('name', 'singleDropdown');
77
+ expect(stzhDropdownEl).toHaveAttribute('tabindex', '-1');
78
+ expect(stzhDropdownEl).toHaveAttribute('variant', 'default');
79
+ expect(stzhDropdownEl).toHaveAttribute('size', 'default');
80
+ expect(stzhDropdownEl).toHaveAttribute('popover-placement', 'bottom');
81
+ });
82
+
83
+ await step('Description element is being rendered', async () => {
84
+ const descriptionWrapperEl = stzhDropdownEl.querySelector('.stzh-dropdown__description-wrapper');
85
+ expect(descriptionWrapperEl).not.toBeNull();
86
+ });
87
+
88
+ await step('Assert stzhOpen and stzhClose event details', async () => {
89
+ let eventOpenDetail;
90
+ let eventCloseDetail;
91
+ stzhDropdownEl.addEventListener('stzhOpen', (ev) => {
92
+ eventOpenDetail = ev.detail;
93
+ });
94
+ stzhDropdownEl.addEventListener('stzhClose', (ev) => {
95
+ eventCloseDetail = ev.detail;
96
+ });
97
+
98
+ await userEvent.click(stzhDropdownEl);
99
+ expect(eventOpenDetail).toHaveProperty('component', 'stzh-dropdown');
100
+ // close dropdown again
101
+ await userEvent.click(canvasElement);
102
+ expect(eventCloseDetail).toHaveProperty('component', 'stzh-dropdown');
103
+ });
104
+
105
+ await step('Options are being rendered', async () => {
106
+ const dropdownEl = stzhDropdownEl.querySelector('.stzh-dropdown__dropdown');
107
+
108
+ // dropdown element becomes visible after click
109
+ expectIsVisible(dropdownEl, false);
110
+ await userEvent.click(stzhDropdownEl);
111
+ expectIsVisible(dropdownEl, true);
112
+
113
+ // options are being rendered correctly (including disabled)
114
+ const dropdownOptionElList = dropdownEl.querySelectorAll('.stzh-dropdown__option');
115
+ expect(dropdownOptionElList.length).toBe(4);
116
+
117
+ const aozDropdownOption = dropdownOptionElList[0];
118
+ expect(aozDropdownOption).toHaveAttribute('role', 'option');
119
+ expect(aozDropdownOption).toHaveAttribute('data-value', 'AOZ_value');
120
+ expect(aozDropdownOption).toHaveClass('active'); // first options is active
121
+ expect(aozDropdownOption).not.toHaveAttribute('aria-disabled');
122
+
123
+ const uvzDropdownOption = dropdownOptionElList[3];
124
+ expect(uvzDropdownOption).toHaveAttribute('role', 'option');
125
+ expect(uvzDropdownOption).toHaveAttribute('data-value', 'UVZ_value');
126
+ expect(uvzDropdownOption).not.toHaveClass('active');
127
+ expect(uvzDropdownOption).toHaveAttribute('aria-disabled', 'true');
128
+
129
+ // close dropdown again
130
+ await userEvent.click(canvasElement);
131
+ });
132
+
133
+ await step('Selecting an option emits stzhChange event and sets selected value', async () => {
134
+ await userEvent.click(stzhDropdownEl);
135
+ const dropdownOptionElList = stzhDropdownEl.querySelectorAll('.stzh-dropdown__option');
136
+
137
+ let eventChangeDetail;
138
+ stzhDropdownEl.addEventListener('stzhChange', (ev) => {
139
+ eventChangeDetail = ev.detail;
140
+ });
141
+
142
+ // click the option
143
+ const pkzhDropdownOption = dropdownOptionElList[1];
144
+ await userEvent.click(pkzhDropdownOption);
145
+
146
+ expect(eventChangeDetail).toHaveProperty('component', 'stzh-dropdown');
147
+ expect(eventChangeDetail).toHaveProperty('value', 'PKZH_value');
148
+
149
+ // selected option is visible
150
+ const dropdownItemEl = stzhDropdownEl.querySelector('.stzh-dropdown__item');
151
+ expectIsVisible(dropdownItemEl, true);
152
+ expect(dropdownItemEl).toHaveAttribute('data-value', 'PKZH_value');
153
+ expect(dropdownItemEl).toHaveTextContent('PKZH');
154
+
155
+ // in the dropdown list, the selected value ist active
156
+ await userEvent.click(stzhDropdownEl);
157
+ expect(pkzhDropdownOption).toHaveClass('active');
158
+
159
+ // reset to default state
160
+ stzhDropdownEl.setValue('');
161
+ await userEvent.click(canvasElement);
162
+ });
163
+ },
62
164
  };
63
165
 
64
166
  export const Multiple = {
@@ -167,11 +167,6 @@
167
167
  row-gap: var(--stzh-space-xsmall);
168
168
  column-gap: var(--stzh-space-medium);
169
169
  }
170
- @media screen and (min-width: 600px) {
171
- .stzh-eventdata {
172
- flex-direction: row;
173
- }
174
- }
175
170
  .stzh-eventdata__label {
176
171
  font-family: var(--stzh-font-family-heavy);
177
172
  font-weight: var(--stzh-font-weight-heavy);
@@ -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", size: "large" });
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(), size: "large" });
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 {\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"]}
1
+ {"version":3,"file":"stzh-geo-ref-data.js","sourceRoot":"","sources":["../../../../src/components/stzh-geo-ref-data/stzh-geo-ref-data.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAgB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACvH,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAUpE,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEnG,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAE5C;;GAEG;AAMH,MAAM,OAAO,UAAU;;IAkBb,mBAAc,GAAuB,EAAE,CAAC;IA2ExC,kBAAa,GAA6B,EAAE,CAAC;IA6B7C,4BAAuB,GAAG,GAAG,EAAE;MACrC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACnC,CAAC,CAAC;IAEM,2BAAsB,GAAG,GAAG,EAAE;MACpC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACpC,CAAC,CAAC;IAEM,4BAAuB,GAAG,GAAG,EAAE;MACrC,iCAAiC;MACjC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;MAChD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;MAEpB,yCAAyC;MACzC,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;MAE9D,mEAAmE;MACnE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACzC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;UAC9B,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACvB;MACH,CAAC,CAAC,CAAC;MAEH,0EAA0E;MAC1E,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;MAC9B,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;MAC9B,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;MAC9B,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;MAE9B,0BAA0B;MAC1B,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;MAEvB,4CAA4C;MAC5C,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;MACrE,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;MAEvC,iBAAiB;MACjB,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEM,iBAAY,GAAG,KAAK,IAAI,EAAE;MAChC,IAAI,IAAI,CAAC,kBAAkB,EAAE;QAC3B,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;UACxC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,eAAe,IAAI,CAAC,kBAAkB,CAAC,YAAY,KAAK,CAAC;UACxF,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,GAAG,eAAe,IAAI,CAAC,kBAAkB,CAAC,YAAY,KAAK,CAAC;SACjG;aAAM;UACL,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;UACtC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;SAC/C;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC3C,GAAG,CAAC,UAAU,EAAE,CAAC;OAClB;IACH,CAAC,CAAC;IAEM,uBAAkB,GAAG,GAAG,EAAE;MAChC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;MAC9C,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;IAClD,CAAC,CAAC;IA+PM,uBAAkB,GAAG,KAAK,EAAE,CAAyC,EAAE,EAAE;MAC/E,IAAI,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;MACrF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;QACzE,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;OAC1B;WAAM;QACL,IAAI;UACF,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;SACvE;QAAC,OAAO,aAAa,EAAE;UACtB,qBAAqB;SACtB;QACD,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;OACpC;MACD,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;MACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAqBM,iCAA4B,GAAG,KAAK,EAAC,CAAC,EAAC,EAAE;MAC/C,IAAI,CAAC,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;MACxD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACjC,CAAC,CAAC;IAEM,uBAAkB,GAAG,KAAK,EAAE,CAAc,EAAE,EAAE;MACpD,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,EAAE;QACzB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;UACrB,OAAO;SACR;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,iBAAiB,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;OAC1B;WAAM;QACL,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;OAC3B;MACD,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;IAC7C,CAAC,CAAC;IAsDM,mBAAc,GAAG,GAAG,EAAE;MAC5B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;QAC3B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;OACxB;WAAM;QACL,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;OACvB;IACH,CAAC,CAAC;cAliBoC,EAAE;mBAGG,EAAE;sBAGC,EAAE;sBAGF,EAAE;2BAGd,8BAA8B;yBAGX,EAAE;;6BASzB;MAC5B,OAAO;MACP,SAAS;MACT,QAAQ;MACR,KAAK;MACL,aAAa;KACd;8BAGoC,OAAO;wBAgCX,KAAK;wBACL,KAAK;2CACc,IAAI;wBACN,EAAE;qCACW,EAAE;wCACzB,CAAC;oBAEL,KAAK;;;;;;+BAMF,EAAE;;0BAEL,CAAC,EAAE,CAAC;gCACC,KAAK;;EA7C9C,oBAAoB,CAAC,QAAqC;IACxD,IAAI,CAAC,QAAQ,EAAE;MACb,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;KAC1B;SAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;MACvC,IAAI;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;OAC5C;MAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;OAC1B;KACF;SAAM;MACL,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;KAChC;EACH,CAAC;EAGD,eAAe,CAAC,QAAqC;IACnD,IAAI,CAAC,QAAQ,EAAE;MACb,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC5B;SAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;MACvC,IAAI;QACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;OACvC;MAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;OAC5B;KACF;SAAM;MACL,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC3B;EACH,CAAC;EAsCO,mBAAmB;IACzB,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE9D,0CAA0C;IAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;OAC5C,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC;OACxE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uDAAuD;IAE5F,8BAA8B;IAC9B,IAAI,OAAO,CAAC,MAAM,EAAE;MAClB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;MAC9B,yCAAyC;MACzC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,+BAA+B;MAC5D,IAAI,CAAC,kBAAkB,CAAC;QACtB,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;OACe,CAAC,CAAC;KAC9C;EACH,CAAC;EA6DO,KAAK,CAAC,WAAW;IACvB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;MACpB,OAAO,EAAE,CAAC;KACX;IACD,IAAI;MACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;MAC9C,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;MACzC,MAAM,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;MAC3E,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;;QACzE,MAAM,GAAG,GAAG,MAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,0CAAE,WAAW,CAAC;QACnD,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,0CAAE,WAAW,CAAC;QACxD,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,CAAC,GAAG,CAAC,KAAI,EAAE,CAAC;QAEzC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAuB,CAAC;MAClD,CAAC,CAAC,CAAC;KACJ;IAAC,OAAO,KAAK,EAAE;MACd,IAAI,CAAC,eAAe;SACjB,KAAK,CAAC,8DAA8D,EAAE;QACrE,IAAI,EAAE,OAAO;OACd,CAAC;SACD,KAAK,EAAE,CAAC;KACZ;EACH,CAAC;EAEO,KAAK,CAAC,WAAW;IACvB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;MACpB,OAAO,EAAE,CAAC;KACX;IACD,IAAI;MACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;MAC1E,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;MACtC,OAAO,OAAO,CAAC,KAAK,CAAC;KACtB;IAAC,OAAO,KAAK,EAAE;MACd,IAAI,CAAC,eAAe;SACjB,KAAK,CAAC,sDAAsD,EAAE;QAC7D,IAAI,EAAE,OAAO;OACd,CAAC;SACD,KAAK,EAAE,CAAC;KACZ;EACH,CAAC;EAEO,WAAW,CACjB,UAAqD,EACrD,WAAsD;IAEtD,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;MAC7C,OAAO,EAAE,CAAC;KACX;IACD,mDAAmD;IACnD,IAAI,YAAmB,CAAC;IACxB,IAAI,WAAkB,CAAC;IAEvB,IAAI,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE;MAC1C,YAAY,GAAG,UAAU,CAAC;MAC1B,WAAW,GAAG,WAAW,CAAC;KAC3B;SAAM;MACL,YAAY,GAAG,WAAW,CAAC;MAC3B,WAAW,GAAG,UAAU,CAAC;KAC1B;IACD,gCAAgC;IAChC,OAAO,YAAY;OAChB,GAAG,CAAC,IAAI,CAAC,EAAE;MACV,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;MAC/F,uCAAY,IAAI,GAAK,YAAY,EAAG;IACtC,CAAC,CAAC;OACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;MACb,IAAI;QACF,OAAO,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,8CAA8C;OACtF;MAAC,OAAO,gBAAgB,EAAE;QACzB,OAAO,CAAC,CAAC;OACV;IACH,CAAC,CAAC,CAAC;EACP,CAAC;EAEO,WAAW,CAAC,aAAiC,EAAE,YAAsC;IAC3F,OAAO,aAAa;OACjB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;MACb,IAAI;QACF,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;OAChC;MAAC,OAAO,gBAAgB,EAAE;QACzB,OAAO,CAAC,CAAC;OACV;IACH,CAAC,CAAC;OACD,GAAG,CAAC,GAAG,CAAC,EAAE;MACT,MAAM,OAAO,GAAG,YAAY;SACzB,MAAM,CAAC,IAAI,CAAC,EAAE;QACb,IAAI;UACF,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACtC;QAAC,OAAO,eAAe,EAAE;UACxB,OAAO,KAAK,CAAC;SACd;MACH,CAAC,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE,CAAC;MACrB,uCAAY,GAAG,KAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,IAAG;IAC/D,CAAC,CAAC,CAAC;EACP,CAAC;EAEO,gBAAgB,CAAC,IAA8B;IACrD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;MAChB,OAAO;KACR;IACD,IAAI,CAAC,WAAW,GAAG,IAAI,QAAQ,CAAC;MAC9B,QAAQ,EAAE,SAAS;MACnB,OAAO,EAAE;QACP,MAAM,EAAE,GAAG;QACX,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,GAAG;OACZ;MACD,QAAQ,EAAE;QACR,EAAE,EAAE,IAAI,CAAC,kBAAkB;QAC3B,KAAK,EAAE,IAAI,CAAC,iBAAiB;OAC9B;KACF,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;MAClB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;EACL,CAAC;EAID,KAAK,CAAC,sBAAsB;IAC1B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;EACjC,CAAC;EAEO,KAAK,CAAC,iBAAiB;IAC7B,IAAI,IAAI,CAAC,YAAY,EAAE;MACrB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;MACjE,IAAI,IAAI,CAAC,+BAA+B,EAAE;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAClD,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,CAC3E,CAAC;OACH;WAAM;QACL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;OACvC;MACD,IAAI,CAAC,eAAe,EAAE,CAAC;MACvB,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAClC;EACH,CAAC;EAEO,KAAK,CAAC,mBAAmB;IAC/B,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACtF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC;EACzE,CAAC;EAEO,KAAK,CAAC,qBAAqB;IACjC,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC,EAAE,EAAE;MACtC,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;KACnC;EACH,CAAC;EAED,iBAAiB;IACf,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC1B,sBAAsB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChD,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5D,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,qBAAqB,EAAE,CAAC;EAC/B,CAAC;EAED,oBAAoB;IAClB,yBAAyB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,cAAc,EAAE;MACvB,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;KAClC;EACH,CAAC;EAEO,KAAK,CAAC,oBAAoB;IAChC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IAEnB,oGAAoG;IACpG,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;MACxB,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;MAC7B,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;MACrE,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;KACxC;IAED,IAAI;MACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;MACzF,IAAI,CAAC,eAAe,EAAE,CAAC;MACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;MAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;MACzC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;MACtC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;MAC/B,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;MAC3C,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;MAE1B,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;MAC9D,MAAM,MAAM,GAAG;QACb,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;OACvC,CAAC;MAEF,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QAClG,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC;OAChD;MAED,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;MAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC3B;IAAC,OAAO,YAAY,EAAE;MACrB,IAAI,CAAC,eAAe;SACjB,KAAK,CAAC,kDAAkD,EAAE;QACzD,IAAI,EAAE,OAAO;OACd,CAAC;SACD,KAAK,EAAE,CAAC;KACZ;IAED,UAAU,CAAC,GAAG,EAAE;MACd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC,EAAE,GAAG,CAAC,CAAC;EACV,CAAC;EAEO,oBAAoB;IAC1B,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE9D,mCAAmC;IACnC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;MACzC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;QAC9B,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;OACvB;IACH,CAAC,CAAC,CAAC;IAEH,4DAA4D;IAC5D,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;MACnC,SAAS,CAAC,GAAG,CAAC,WAAW,MAAM,GAAG,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;IACrE,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;EACzC,CAAC;EAEO,eAAe;IACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7E,MAAM,gBAAgB,mCACjB,IAAI,CAAC,SAAS,KACjB,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,EAC5C,IAAI,EAAE,OAAO,GACd,CAAC;IACF,IAAI,IAAI,CAAC,SAAS,EAAE;MAClB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;KAC7C;EACH,CAAC;EAmBO,KAAK,CAAC,mBAAmB;IAC/B,2DAA2D;IAC3D,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;MACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAC3C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAC9E,CAAC;MACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KAC1B;SAAM;MACL,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;MAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;KACxC;IAED,0CAA0C;IAC1C,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAE5B,8CAA8C;IAC9C,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;EAC7C,CAAC;EAsBO,KAAK,CAAC,6BAA6B;IACzC,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;MAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;KACxC;SAAM,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE;MAClD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;KACjH;SAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE;MACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KAC3F;SAAM;MACL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;KACvC;IAED,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAEtF,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;EAClD,CAAC;EAEO,QAAQ;IACd,IAAI,CAAC,4BAA4B,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CACpC,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,mBAAmB,EAC5D,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CACxF,CAAC;IACF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE;MACzE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;IACD,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;EACjF,CAAC;EAEO,KAAK,CAAC,iBAAiB,CAAC,KAA+B;IAC7D,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;IAC7C,KAAK;OACF,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;OACxC,OAAO,CAAC,IAAI,CAAC,EAAE;MACd,IAAI,CAAC,UAAU;SACZ,aAAa,CAAC;QACb,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QACpB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;OACrB,EAAE;QACD,EAAE,EAAE,IAAI,CAAC,KAAK;QACd,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,WAAW;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,EAAE;QAChD,IAAI,EAAE,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE;OAC5C,CAAC;SACD,KAAK,EAAE,CAAC;IACb,CAAC,CAAC,CAAC;IACL,IAAI,CAAC,IAAI,CAAC,+BAA+B,EAAE;MACzC,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,KAAK,EAAE,CAAC;KAClD;EACH,CAAC;EAUO,KAAK,CAAC,yBAAyB,CAAC,IAA4B;IAClE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,MAAM,EAAE;MACV,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;KACnD;EACH,CAAC;EAEO,KAAK,CAAC,yBAAyB,CAAC,IAA4B;IAClE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,MAAM,EAAE;MACV,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;KACrD;EACH,CAAC;EAED,MAAM;IACJ,MAAM,OAAO,GAAG;MACd,mBAAmB,EAAE,IAAI;MACzB,+BAA+B,EAAE,IAAI,CAAC,SAAS;MAC/C,4BAA4B,EAAE,IAAI,CAAC,MAAM;MACzC,gCAAgC,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;KACjE,CAAC;IACF,OAAO,CACL,EAAC,IAAI;MACH,qBAAe,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,EAA6B,CAAC,GAAI;MACpF,WAAK,KAAK,EAAC,4BAA4B,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE;QAChF,YAAM,IAAI,EAAC,SAAS,GAAQ,CACxB;MACN,oBAAc,IAAI,EAAE,IAAI,CAAC,SAAS;QAChC,mBAAa,KAAK,EAAC,yBAAyB,GAAe,CAC9C;MACf,WAAK,KAAK,EAAE,OAAO;QACjB,WAAK,KAAK,EAAC,mCAAmC;UAC5C,mBAAa,KAAK,EAAC,2BAA2B,kBAAe,IAAI,EAAE,MAAM,EAAC,UAAU;YAClF,YAAM,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,GAAQ,CACzB;UACd,WAAK,KAAK,EAAC,+DAA+D;YACxE,oBAAc,KAAK,EAAC,oCAAoC,EAAC,KAAK,EAAC,IAAI,IAChE,IAAI,CAAC,OAAO,CACA;YACf,mBACE,KAAK,EAAC,kCAAkC,EACxC,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,IAAI,EACd,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,UAAU,EAClB,OAAO,EAAE,IAAI,CAAC,uBAAuB,GACxB,CACX,CACF;QAEN,WAAK,KAAK,EAAC,4BAA4B;UACrC,WACE,KAAK,EAAC,oEAAoE,EAC1E,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG,EAAoB,CAAC;YAE3D,WAAK,KAAK,EAAC,4BAA4B;cACpC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,CACjC,WAAK,KAAK,EAAC,mCAAmC;gBAC5C,iBACE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAC5C,OAAO,EAAC,QAAQ,EAChB,IAAI,EAAC,WAAW,EAChB,WAAW,EAAE,IAAI,CAAC,uBAAuB,GAC9B,CACT,CACP;cACD,WACE,KAAK,EAAE;kBACL,oCAAoC,EAAE,IAAI;kBAC1C,6CAA6C,EAAE,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,oBAAoB;iBAClG;gBAED,uCACgB,IAAI,EAClB,KAAK,EAAC,MAAM,EACZ,IAAI,EAAE,IAAI,CAAC,YAAY,EACvB,YAAY,EAAE,IAAI,CAAC,kBAAkB,EACrC,QAAQ,EAAE,IAAI,EACd,YAAY,EAAE,IAAI,CAAC,cAAc,EACjC,KAAK,EAAE,IAAI,CAAC,cAAc,GACT;gBACnB,WAAK,KAAK,EAAC,yCAAyC;kBAClD,mBAAa,IAAI,EAAC,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,sBAAsB,eAErE,CACV,CACF,CACF;YACN,WAAK,KAAK,EAAC,2BAA2B;cACpC,kBACE,IAAI,EAAC,uBAAuB,EAC5B,YAAY,EAAE,IAAI,CAAC,kBAAkB,EACrC,YAAY,EAAE,IAAI,EAClB,KAAK,EAAC,OAAO,EACb,IAAI,EAAC,QAAQ,GACD,CACV;YACN,WAAK,KAAK,EAAC,mCAAmC;cAC5C,iBACE,WAAW,EAAE,IAAI,CAAC,cAAc,EAChC,KAAK,EAAE,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAClD,IAAI,EAAE,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,EACvD,OAAO,EAAC,QAAQ,GACL,CACT,CACF;UACN,WAAK,KAAK,EAAC,oCAAoC;YAC7C,WAAK,KAAK,EAAE,kCAAkC,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE;cAC7F,kBACE,KAAK,EAAC,2BAA2B,EACjC,YAAY,EAAE,KAAK,EACnB,uBAAuB,EAAE,IAAI,CAAC,MAAM,EACpC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,EAA0B,CAAC,GAC7C;cACd,WAAK,KAAK,EAAC,iCAAiC;gBAC1C,qBACE,KAAK,EAAC,sCAAsC,EAC5C,OAAO,EAAE,IAAI,CAAC,+BAA+B,EAC7C,YAAY,EAAE,IAAI,EAClB,YAAY,EAAE,IAAI,CAAC,4BAA4B,GAChC,CACb,CACF;YACN,WACE,KAAK,EAAE,mCAAmC,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,EAC5F,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG,EAAoB,CAAC,IAE1D,IAAI,CAAC,YAAY,IAAI,CACpB,EAAC,QAAQ;cACP,WAAK,KAAK,EAAC,gCAAgC;gBACzC,kBACE,IAAI,EAAC,uBAAuB,EAC5B,YAAY,EAAE,IAAI,CAAC,kBAAkB,EACrC,YAAY,EAAE,IAAI,EAClB,KAAK,EAAC,OAAO,EACb,IAAI,EAAC,QAAQ,GACD,CACV;cACN,iBAAW,KAAK,EAAC,yCAAyC;gBACvD,IAAI,CAAC,YAAY,CAAC,MAAM;2BACf;cACZ,WAAK,KAAK,EAAC,gCAAgC,IACxC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC1C,WACE,KAAK,EAAC,iBAAiB,EACvB,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EACxD,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC;gBAExD,SAAG,KAAK,EAAC,sBAAsB,EAAC,IAAI,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,GAAM;gBAC5E,WAAK,KAAK,EAAC,yBAAyB;kBAClC,oBAAc,KAAK,EAAC,MAAM,IAAE,IAAI,CAAC,OAAO,CAAgB;kBACvD,IAAI,CAAC,WAAW,IAAI,iBAAW,IAAI,EAAC,OAAO,IAAE,IAAI,CAAC,WAAW,CAAa;kBAC1E,IAAI,CAAC,IAAI;oBACR,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACpB,WAAK,KAAK,EAAC,2BAA2B;sBACpC,iBAAW,IAAI,EAAE,IAAI,CAAC,IAAI,GAAc;sBACxC,iBAAW,IAAI,EAAC,OAAO,IAAE,IAAI,CAAC,IAAI,CAAa,CAC3C,CACP,CAAC,CACA;gBACL,IAAI,CAAC,KAAK,IAAI,CACb,WAAK,KAAK,EAAC,gCAAgC;kBACzC,kBACE,KAAK,EAAE,KAAK,iBACC,KAAK,iBACL,KAAK,EAClB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAC9B,KAAK,EAAC,wBAAwB,GAClB;kBACd,WAAK,KAAK,EAAC,sCAAsC;oBAC/C,WAAK,GAAG,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAAC,OAAO,GAAI,CAC5E,CACF,CACP,CACG,CACP,CAAC,CACE;cACL,IAAI,CAAC,WAAW,IAAI,CACnB,WAAK,KAAK,EAAC,qCAAqC;gBAC9C,mBAAa,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAA6B,CACxE,CACP,CACQ,CACZ,CACG,CACF,CACF,CACF,CACD,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","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,4 +1,4 @@
1
- import { Host, h } from "@stencil/core";
1
+ import { h, Host } from "@stencil/core";
2
2
  import axios from "axios";
3
3
  /**
4
4
  * @see https://www.stadt-zuerich.ch/site/fuer-zueri/de/index.html
@@ -47,6 +47,7 @@ export class StzhMicrositeTeaserlist {
47
47
  "label": tag.name,
48
48
  "value": tag.id,
49
49
  "variant": "filter",
50
+ "size": "large",
50
51
  "counter": ((tag.id)
51
52
  ? this.items.filter(item => item.tags.indexOf(tag.id) > -1).length
52
53
  : this.items.length).toString()
@@ -71,7 +72,7 @@ export class StzhMicrositeTeaserlist {
71
72
  }
72
73
  render() {
73
74
  const classes = {
74
- "stzh-microsite-teaserlist": true,
75
+ "stzh-microsite-teaserlist": true
75
76
  };
76
77
  return (h(Host, null, h("div", { class: classes }, this._tagChips.length > 0 &&
77
78
  h("stzh-chipselect", { "hide-optional": true, "label-hidden": true, class: "stzh-microsite-teaserlist__filter", label: this.localization.tagsLabel, data: this._tagChips, onStzhChange: this.handleChange }), h("stzh-cardlist", { layout: "teasers" }, this._filteredSlicedItems.map((item) => h("stzh-card", { href: item.link }, item.image &&
@@ -1 +1 @@
1
- {"version":3,"file":"stzh-microsite-teaserlist.js","sourceRoot":"","sources":["../../../../src/components/stzh-microsite-teaserlist/stzh-microsite-teaserlist.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Watch,\n State\n} from \"@stencil/core\";\n\nimport axios from 'axios';\n\nimport { StzhMicrositeTeaserlistLocalizedText } from './stzh-microsite-teaserlist.localization';\n\nimport {\n StzhMicrositeTeaserlistTag,\n StzhMicrositeTeaserlistItem,\n StzhChipselectItem,\n StzhChipselectChangeEvent\n} from \"../../index\";\n\n/**\n * @see https://www.stadt-zuerich.ch/site/fuer-zueri/de/index.html\n * @see https://www.stadt-zuerich.ch/site/iazh/de/index.html\n */\n@Component({\n tag: \"stzh-microsite-teaserlist\",\n styleUrl: \"stzh-microsite-teaserlist.scss\",\n scoped: true\n})\nexport class StzhMicrositeTeaserlist {\n /** Translation strings */\n @Prop() localization: StzhMicrositeTeaserlistLocalizedText;\n\n /** API URL (`{lang}` is replaced in the URL) */\n @Prop() api: string;\n\n /** Tags */\n @Prop() tags: string | StzhMicrositeTeaserlistTag[] = [];\n private _tags: StzhMicrositeTeaserlistTag[] = [];\n private _tagChips: StzhChipselectItem[] = [];\n\n /** Numbers of items currently shown */\n @Prop({ mutable: true }) showItems: number = 6;\n private _initialShowItems: number;\n\n /** Numbers of item shown with each load more action */\n @Prop() stepItems: number = 6;\n\n @Element() element: HTMLStzhMicrositeTeaserlistElement;\n\n /** Active filter */\n @State() activeFilter: string = \"\";\n\n @State() items: StzhMicrositeTeaserlistItem[] = [];\n private _filteredItems: StzhMicrositeTeaserlistItem[] = [];\n private _filteredSlicedItems: StzhMicrositeTeaserlistItem[] = [];\n private _showMoreLink: boolean = false;\n\n @Watch(\"items\")\n @Watch(\"showItems\")\n @Watch(\"activeFilter\")\n async filterHandler() {\n this._filteredItems = this.items\n .filter((item) => {\n // return (this.activeFilter[0] !== \"\") ? item.tags.some(tag => this.activeFilters.indexOf(tag) > -1) : true;\n return (this.activeFilter !== \"\") ? item.tags.some(tag => this.activeFilter === tag) : true;\n });\n\n this._filteredSlicedItems = this._filteredItems\n .slice(0, this.showItems)\n\n this._showMoreLink = this.showItems < this._filteredItems.length;\n }\n\n @Watch(\"items\")\n @Watch(\"tags\")\n async tagsWatcher() {\n if (typeof this.tags === \"string\") {\n this._tags = JSON.parse(this.tags);\n } else {\n this._tags = this.tags;\n }\n\n this._tagChips = this._tags.map((tag) => ({\n \"label\": tag.name,\n \"value\": tag.id,\n \"variant\": \"filter\",\n \"counter\": ((tag.id)\n ? this.items.filter(item => item.tags.indexOf(tag.id) > -1).length\n : this.items.length).toString()\n }));\n }\n\n @Watch(\"api\")\n async apiWatcher(newValue: string) {\n if (!newValue) {\n return;\n }\n\n let apiUrl = this.api.replace(/\\{lang\\}/, this.localization.$locale)\n\n // load data from API\n const { data } = await axios.get(apiUrl);\n\n this.items = data.items;\n this.showItems = this._initialShowItems;\n }\n\n private handleChange = (event: CustomEvent<StzhChipselectChangeEvent>) => {\n this.showItems = this._initialShowItems;\n this.activeFilter = typeof event.detail.value === \"string\" ? event.detail.value : event.detail.value[0] || \"\";\n }\n\n private handleMoreClick = () => {\n this.showItems = this.showItems + this.stepItems;\n }\n\n async componentWillLoad() {\n this._initialShowItems = this.showItems;\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"microsite-teaserlist\");\n }\n\n await this.apiWatcher(this.api);\n }\n\n render() {\n const classes = {\n \"stzh-microsite-teaserlist\": true,\n };\n\n return (\n <Host>\n <div class={classes}>\n {this._tagChips.length > 0 &&\n <stzh-chipselect\n hide-optional\n label-hidden\n class=\"stzh-microsite-teaserlist__filter\"\n label={this.localization.tagsLabel}\n data={this._tagChips}\n onStzhChange={this.handleChange}\n ></stzh-chipselect>\n }\n\n <stzh-cardlist layout=\"teasers\">\n {this._filteredSlicedItems.map((item) =>\n <stzh-card href={item.link}>\n {item.image &&\n <stzh-ratio slot=\"image\">\n <img src={item.image} />\n </stzh-ratio>\n }\n {item.title &&\n <div slot=\"heading\">{item.title}</div>\n }\n {/* <stzh-clamp slot=\"heading\" lines={2}>{item.title}</stzh-clamp> */}\n {item.description &&\n <div slot=\"content\">{item.description}</div>\n }\n {/* <stzh-clamp slot=\"content\" lines={3}>{item.description}</stzh-clamp> */}\n </stzh-card>\n )}\n </stzh-cardlist>\n\n {this._showMoreLink &&\n <div class=\"stzh-microsite-teaserlist__show-more\">\n <stzh-button\n variant=\"secondary\"\n label={this.localization.showMore}\n onClick={this.handleMoreClick}\n ></stzh-button>\n </div>\n }\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"stzh-microsite-teaserlist.js","sourceRoot":"","sources":["../../../../src/components/stzh-microsite-teaserlist/stzh-microsite-teaserlist.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\n\nimport axios from \"axios\";\n\nimport { StzhChipselectChangeEvent, StzhChipselectItem, StzhMicrositeTeaserlistItem, StzhMicrositeTeaserlistTag } from \"../../index\";\n\nimport { StzhMicrositeTeaserlistLocalizedText } from \"./stzh-microsite-teaserlist.localization\";\n\n/**\n * @see https://www.stadt-zuerich.ch/site/fuer-zueri/de/index.html\n * @see https://www.stadt-zuerich.ch/site/iazh/de/index.html\n */\n@Component({\n tag: \"stzh-microsite-teaserlist\",\n styleUrl: \"stzh-microsite-teaserlist.scss\",\n scoped: true\n})\nexport class StzhMicrositeTeaserlist {\n /** Translation strings */\n @Prop() localization: StzhMicrositeTeaserlistLocalizedText;\n\n /** API URL (`{lang}` is replaced in the URL) */\n @Prop() api: string;\n\n /** Tags */\n @Prop() tags: string | StzhMicrositeTeaserlistTag[] = [];\n private _tags: StzhMicrositeTeaserlistTag[] = [];\n private _tagChips: StzhChipselectItem[] = [];\n\n /** Numbers of items currently shown */\n @Prop({ mutable: true }) showItems: number = 6;\n private _initialShowItems: number;\n\n /** Numbers of item shown with each load more action */\n @Prop() stepItems: number = 6;\n\n @Element() element: HTMLStzhMicrositeTeaserlistElement;\n\n /** Active filter */\n @State() activeFilter: string = \"\";\n\n @State() items: StzhMicrositeTeaserlistItem[] = [];\n private _filteredItems: StzhMicrositeTeaserlistItem[] = [];\n private _filteredSlicedItems: StzhMicrositeTeaserlistItem[] = [];\n private _showMoreLink: boolean = false;\n\n @Watch(\"items\")\n @Watch(\"showItems\")\n @Watch(\"activeFilter\")\n async filterHandler() {\n this._filteredItems = this.items\n .filter((item) => {\n // return (this.activeFilter[0] !== \"\") ? item.tags.some(tag => this.activeFilters.indexOf(tag) > -1) : true;\n return (this.activeFilter !== \"\") ? item.tags.some(tag => this.activeFilter === tag) : true;\n });\n\n this._filteredSlicedItems = this._filteredItems\n .slice(0, this.showItems);\n\n this._showMoreLink = this.showItems < this._filteredItems.length;\n }\n\n @Watch(\"items\")\n @Watch(\"tags\")\n async tagsWatcher() {\n if (typeof this.tags === \"string\") {\n this._tags = JSON.parse(this.tags);\n } else {\n this._tags = this.tags;\n }\n\n this._tagChips = this._tags.map((tag) => ({\n \"label\": tag.name,\n \"value\": tag.id,\n \"variant\": \"filter\",\n \"size\": \"large\",\n \"counter\": ((tag.id)\n ? this.items.filter(item => item.tags.indexOf(tag.id) > -1).length\n : this.items.length).toString()\n }));\n }\n\n @Watch(\"api\")\n async apiWatcher(newValue: string) {\n if (!newValue) {\n return;\n }\n\n let apiUrl = this.api.replace(/\\{lang\\}/, this.localization.$locale);\n\n // load data from API\n const { data } = await axios.get(apiUrl);\n\n this.items = data.items;\n this.showItems = this._initialShowItems;\n }\n\n private handleChange = (event: CustomEvent<StzhChipselectChangeEvent>) => {\n this.showItems = this._initialShowItems;\n this.activeFilter = typeof event.detail.value === \"string\" ? event.detail.value : event.detail.value[0] || \"\";\n };\n\n private handleMoreClick = () => {\n this.showItems = this.showItems + this.stepItems;\n };\n\n async componentWillLoad() {\n this._initialShowItems = this.showItems;\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"microsite-teaserlist\");\n }\n\n await this.apiWatcher(this.api);\n }\n\n render() {\n const classes = {\n \"stzh-microsite-teaserlist\": true\n };\n\n return (\n <Host>\n <div class={classes}>\n {this._tagChips.length > 0 &&\n <stzh-chipselect\n hide-optional\n label-hidden\n class=\"stzh-microsite-teaserlist__filter\"\n label={this.localization.tagsLabel}\n data={this._tagChips}\n onStzhChange={this.handleChange}\n ></stzh-chipselect>\n }\n\n <stzh-cardlist layout=\"teasers\">\n {this._filteredSlicedItems.map((item) =>\n <stzh-card href={item.link}>\n {item.image &&\n <stzh-ratio slot=\"image\">\n <img src={item.image} />\n </stzh-ratio>\n }\n {item.title &&\n <div slot=\"heading\">{item.title}</div>\n }\n {/* <stzh-clamp slot=\"heading\" lines={2}>{item.title}</stzh-clamp> */}\n {item.description &&\n <div slot=\"content\">{item.description}</div>\n }\n {/* <stzh-clamp slot=\"content\" lines={3}>{item.description}</stzh-clamp> */}\n </stzh-card>\n )}\n </stzh-cardlist>\n\n {this._showMoreLink &&\n <div class=\"stzh-microsite-teaserlist__show-more\">\n <stzh-button\n variant=\"secondary\"\n label={this.localization.showMore}\n onClick={this.handleMoreClick}\n ></stzh-button>\n </div>\n }\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Host, h } from "@stencil/core";
1
+ import { forceUpdate, Host, h } from "@stencil/core";
2
2
  import { addMediaChangeListener, removeMediaChangeListener, media } from "../../utils/media-utils";
3
3
  /**
4
4
  * @slot - Slot for any text content
@@ -47,6 +47,19 @@ export class StzhProgressbar {
47
47
  return Object.assign(Object.assign({}, step), this.getItemAttributes(index));
48
48
  });
49
49
  }
50
+ onIndexChange() {
51
+ this.indexWatcher(this.index);
52
+ this.setCurrentSteps();
53
+ forceUpdate(this.element);
54
+ }
55
+ indexWatcher(newIndex) {
56
+ if (typeof newIndex === "string") {
57
+ this.index = JSON.parse(newIndex);
58
+ }
59
+ else {
60
+ this.index = newIndex;
61
+ }
62
+ }
50
63
  stepsWatcher() {
51
64
  this.setCurrentSteps();
52
65
  }
@@ -100,10 +113,19 @@ export class StzhProgressbar {
100
113
  }
101
114
  async componentWillLoad() {
102
115
  this.dataWatcher(this.data);
116
+ this.indexWatcher(this.index);
103
117
  if (!this.localization) {
104
118
  this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, "progressbar");
105
119
  }
106
120
  }
121
+ async componentShouldUpdate() {
122
+ this.dataWatcher(this.data);
123
+ this.indexWatcher(this.index);
124
+ }
125
+ async componentDidUpdate() {
126
+ this.dataWatcher(this.data);
127
+ this.indexWatcher(this.index);
128
+ }
107
129
  connectedCallback() {
108
130
  this.setCurrentSteps();
109
131
  addMediaChangeListener(this.setCurrentSteps);
@@ -194,7 +216,7 @@ export class StzhProgressbar {
194
216
  "text": "Index of the item that be active"
195
217
  },
196
218
  "attribute": "index",
197
- "reflect": false,
219
+ "reflect": true,
198
220
  "defaultValue": "0"
199
221
  },
200
222
  "steps": {
@@ -336,6 +358,9 @@ export class StzhProgressbar {
336
358
  static get elementRef() { return "element"; }
337
359
  static get watchers() {
338
360
  return [{
361
+ "propName": "index",
362
+ "methodName": "onIndexChange"
363
+ }, {
339
364
  "propName": "steps",
340
365
  "methodName": "stepsWatcher"
341
366
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"stzh-progressbar.js","sourceRoot":"","sources":["../../../../src/components/stzh-progressbar/stzh-progressbar.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Watch,\n Method\n} from \"@stencil/core\";\n\nimport {\n StzhProgressbarDataItem\n} from '../../index';\n\nimport { addMediaChangeListener, removeMediaChangeListener, media } from \"../../utils/media-utils\";\nimport { StzhProgressbarLocalizedText } from \"./stzh-progressbar.localization\"\n\n/**\n * @slot - Slot for any text content\n */\n@Component({\n tag: \"stzh-progressbar\",\n styleUrl: \"stzh-progressbar.scss\",\n scoped: true\n})\nexport class StzhProgressbar {\n /** Translation strings */\n @Prop() localization: StzhProgressbarLocalizedText;\n\n /**\n * Step data (JSON array with objects that have `label` attribute and optional:\n * - `disabled`, if step should be disabled\n * - `icon`, if icon instead of step number should be displayed):\n * - `analyticsId`, for Adobe Analytics, rendered as `s-object-id` (default is `label`)\n *\n * ```\n * {\n * \"label\": \"Step Label\"\n * \"icon\": \"clock\",\n * \"disabled\": true\n * }\n * ```\n */\n @Prop() data: StzhProgressbarDataItem[] | string = [];\n private _data: StzhProgressbarDataItem[];\n\n /** Index of the item that be active */\n @Prop() index: number = 0;\n\n /** Number of steps to show below small breakpoint */\n @Prop() steps: number = 5;\n\n /** Number of steps to show above small breakpoint */\n @Prop() stepsSmall: number = 6;\n\n /** Number of steps to show above medium breakpoint */\n @Prop() stepsMedium: number = 0;\n\n /** Number of steps to show above large breakpoint */\n @Prop() stepsLarge: number = 0;\n\n /** Number of steps to show above ultra breakpoint */\n @Prop() stepsUltra: number = 0;\n\n /** Whether all the progressbar-items are clickable (overrides item.clickDisabled in data property). */\n @Prop() clickDisabled: boolean = false;\n\n @State() currentSteps: number;\n\n @Element() element: HTMLStzhProgressbarElement;\n\n /**\n * Return infos about rendered progressbar items.\n * Array of objects including: hide (whether step is hidden)\n * / passed (whether step has been passed)\n * / current (whether step is currently active)\n * / dotted (whether step has dotted style active)\n * / first|last (whether step is first or last)\n * / label\n */\n @Method()\n async getItemData() {\n return this._data.map((step, index) => {\n return {\n ...step,\n ...this.getItemAttributes(index)\n }\n });\n }\n\n @Watch(\"steps\")\n @Watch(\"stepsSmall\")\n @Watch(\"stepsMedium\")\n @Watch(\"stepsLarge\")\n @Watch(\"stepsUltra\")\n stepsWatcher() {\n this.setCurrentSteps();\n }\n\n @Watch(\"data\")\n dataWatcher(newValue: any[] | string) {\n if (typeof newValue === \"string\") {\n this._data = JSON.parse(newValue);\n }\n else {\n this._data = newValue;\n }\n\n this.lastItemIndex = this._data.length - 1;\n this.maxStepIndex = this.currentSteps - 1;\n this.withinLastFewSteps = this.index >= this._data.length - this.maxStepIndex;\n }\n\n private lastItemIndex: number;\n private maxStepIndex: number;\n private withinLastFewSteps: boolean;\n\n private getItemAttributes(itemIndex: number): any {\n const item = {} as HTMLStzhProgressbarItemElement;\n\n item.step = itemIndex + 1;\n item.first = itemIndex === 0;\n item.last = itemIndex === this.lastItemIndex;\n item.current = itemIndex === this.index;\n item.passed = itemIndex < this.index;\n\n const stepItemFromData = this._data[itemIndex];\n item.incomplete = stepItemFromData.incomplete;\n\n // hide overflowings if more items than max steps in DOM\n if (this._data.length > this.currentSteps) {\n // add dots to last item if current index is below the last few items\n if (itemIndex === this.lastItemIndex && !this.withinLastFewSteps) {\n item.dotted = true;\n }\n\n if (this.index < 2) {\n // hide overflowing items on the right\n item.hide = itemIndex > this.maxStepIndex - 1 && itemIndex < this.lastItemIndex;\n } else {\n // add dots to first item if current item is third or above\n if (itemIndex === 0) {\n item.dotted = true;\n }\n\n let substract = this.index;\n\n // if is within the last elements, calculate how much previous\n // should be shown to stay on 5 visible elements\n if (this.withinLastFewSteps) {\n substract = this._data.length - this.maxStepIndex;\n }\n\n // hide overflowing items on left and right side\n item.hide = itemIndex > 0 && itemIndex < substract\n || itemIndex > this.index + (this.currentSteps - 3) && itemIndex < this.lastItemIndex;\n }\n }\n\n return item;\n }\n\n private setCurrentSteps = () => {\n if (media(\"ultra\").matches && this.stepsUltra) {\n this.currentSteps = this.stepsUltra;\n } else if (media(\"large\").matches && this.stepsLarge) {\n this.currentSteps = this.stepsLarge;\n } else if (media(\"medium\").matches && this.stepsMedium) {\n this.currentSteps = this.stepsMedium;\n } else if (media(\"small\").matches && this.stepsSmall) {\n this.currentSteps = this.stepsSmall;\n } else {\n this.currentSteps = this.steps;\n }\n }\n\n async componentWillLoad() {\n this.dataWatcher(this.data);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"progressbar\");\n }\n }\n\n connectedCallback() {\n this.setCurrentSteps();\n addMediaChangeListener(this.setCurrentSteps);\n }\n\n disconnectedCallback() {\n removeMediaChangeListener(this.setCurrentSteps);\n }\n\n render() {\n const classes = {\n \"stzh-progressbar\": true,\n [`stzh-progressbar--index-${this.index}`]: !!this.index\n };\n\n return (\n <Host\n style={{\n '--steps': this.currentSteps ? this.currentSteps.toString() : null,\n }}\n >\n <div class={classes}>\n <div\n class=\"stzh-progressbar__items\"\n role=\"list\"\n aria-label={this.localization.label}\n >\n {this._data.map((step, index) =>\n <stzh-progressbar-item\n {...this.getItemAttributes(index)}\n icon={step.icon}\n disabled={step.disabled}\n label={step.label}\n click-disabled={step.clickDisabled !== undefined ? step.clickDisabled : this.clickDisabled}\n class=\"stzh-progressbar__item\"\n ></stzh-progressbar-item>\n )}\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"stzh-progressbar.js","sourceRoot":"","sources":["../../../../src/components/stzh-progressbar/stzh-progressbar.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n forceUpdate,\n Host,\n h,\n Prop,\n State,\n Element,\n Watch,\n Method\n} from \"@stencil/core\";\n\nimport {\n StzhProgressbarDataItem\n} from '../../index';\n\nimport { addMediaChangeListener, removeMediaChangeListener, media } from \"../../utils/media-utils\";\nimport { StzhProgressbarLocalizedText } from \"./stzh-progressbar.localization\"\n\n/**\n * @slot - Slot for any text content\n */\n@Component({\n tag: \"stzh-progressbar\",\n styleUrl: \"stzh-progressbar.scss\",\n scoped: true\n})\nexport class StzhProgressbar {\n /** Translation strings */\n @Prop() localization: StzhProgressbarLocalizedText;\n\n /**\n * Step data (JSON array with objects that have `label` attribute and optional:\n * - `disabled`, if step should be disabled\n * - `icon`, if icon instead of step number should be displayed):\n * - `analyticsId`, for Adobe Analytics, rendered as `s-object-id` (default is `label`)\n *\n * ```\n * {\n * \"label\": \"Step Label\"\n * \"icon\": \"clock\",\n * \"disabled\": true\n * }\n * ```\n */\n @Prop() data: StzhProgressbarDataItem[] | string = [];\n private _data: StzhProgressbarDataItem[];\n\n /** Index of the item that be active */\n @Prop({ reflect: true }) index: number = 0;\n\n /** Number of steps to show below small breakpoint */\n @Prop() steps: number = 5;\n\n /** Number of steps to show above small breakpoint */\n @Prop() stepsSmall: number = 6;\n\n /** Number of steps to show above medium breakpoint */\n @Prop() stepsMedium: number = 0;\n\n /** Number of steps to show above large breakpoint */\n @Prop() stepsLarge: number = 0;\n\n /** Number of steps to show above ultra breakpoint */\n @Prop() stepsUltra: number = 0;\n\n /** Whether all the progressbar-items are clickable (overrides item.clickDisabled in data property). */\n @Prop() clickDisabled: boolean = false;\n\n @State() currentSteps: number;\n\n @Element() element: HTMLStzhProgressbarElement;\n\n /**\n * Return infos about rendered progressbar items.\n * Array of objects including: hide (whether step is hidden)\n * / passed (whether step has been passed)\n * / current (whether step is currently active)\n * / dotted (whether step has dotted style active)\n * / first|last (whether step is first or last)\n * / label\n */\n @Method()\n async getItemData() {\n return this._data.map((step, index) => {\n return {\n ...step,\n ...this.getItemAttributes(index)\n }\n });\n }\n\n @Watch(\"index\")\n onIndexChange() {\n this.indexWatcher(this.index);\n this.setCurrentSteps();\n forceUpdate(this.element);\n }\n\n indexWatcher(newIndex: string | number) {\n if (typeof newIndex === \"string\") {\n this.index = JSON.parse(newIndex);\n }\n else {\n this.index = newIndex;\n }\n }\n\n @Watch(\"steps\")\n @Watch(\"stepsSmall\")\n @Watch(\"stepsMedium\")\n @Watch(\"stepsLarge\")\n @Watch(\"stepsUltra\")\n stepsWatcher() {\n this.setCurrentSteps();\n }\n\n @Watch(\"data\")\n dataWatcher(newValue: any[] | string) {\n if (typeof newValue === \"string\") {\n this._data = JSON.parse(newValue);\n }\n else {\n this._data = newValue;\n }\n\n this.lastItemIndex = this._data.length - 1;\n this.maxStepIndex = this.currentSteps - 1;\n this.withinLastFewSteps = this.index >= this._data.length - this.maxStepIndex;\n }\n\n private lastItemIndex: number;\n private maxStepIndex: number;\n private withinLastFewSteps: boolean;\n\n private getItemAttributes(itemIndex: number): any {\n const item = {} as HTMLStzhProgressbarItemElement;\n\n item.step = itemIndex + 1;\n item.first = itemIndex === 0;\n item.last = itemIndex === this.lastItemIndex;\n item.current = itemIndex === this.index;\n item.passed = itemIndex < this.index;\n\n const stepItemFromData = this._data[itemIndex];\n item.incomplete = stepItemFromData.incomplete;\n\n // hide overflowings if more items than max steps in DOM\n if (this._data.length > this.currentSteps) {\n // add dots to last item if current index is below the last few items\n if (itemIndex === this.lastItemIndex && !this.withinLastFewSteps) {\n item.dotted = true;\n }\n\n if (this.index < 2) {\n // hide overflowing items on the right\n item.hide = itemIndex > this.maxStepIndex - 1 && itemIndex < this.lastItemIndex;\n } else {\n // add dots to first item if current item is third or above\n if (itemIndex === 0) {\n item.dotted = true;\n }\n\n let substract = this.index;\n\n // if is within the last elements, calculate how much previous\n // should be shown to stay on 5 visible elements\n if (this.withinLastFewSteps) {\n substract = this._data.length - this.maxStepIndex;\n }\n\n // hide overflowing items on left and right side\n item.hide = itemIndex > 0 && itemIndex < substract\n || itemIndex > this.index + (this.currentSteps - 3) && itemIndex < this.lastItemIndex;\n }\n }\n\n return item;\n }\n\n private setCurrentSteps = () => {\n if (media(\"ultra\").matches && this.stepsUltra) {\n this.currentSteps = this.stepsUltra;\n } else if (media(\"large\").matches && this.stepsLarge) {\n this.currentSteps = this.stepsLarge;\n } else if (media(\"medium\").matches && this.stepsMedium) {\n this.currentSteps = this.stepsMedium;\n } else if (media(\"small\").matches && this.stepsSmall) {\n this.currentSteps = this.stepsSmall;\n } else {\n this.currentSteps = this.steps;\n }\n }\n\n async componentWillLoad() {\n this.dataWatcher(this.data);\n this.indexWatcher(this.index);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"progressbar\");\n }\n }\n\n async componentShouldUpdate() {\n this.dataWatcher(this.data);\n this.indexWatcher(this.index);\n }\n\n async componentDidUpdate() {\n this.dataWatcher(this.data);\n this.indexWatcher(this.index);\n }\n\n connectedCallback() {\n this.setCurrentSteps();\n addMediaChangeListener(this.setCurrentSteps);\n }\n\n disconnectedCallback() {\n removeMediaChangeListener(this.setCurrentSteps);\n }\n\n render() {\n const classes = {\n \"stzh-progressbar\": true,\n [`stzh-progressbar--index-${this.index}`]: !!this.index\n };\n\n return (\n <Host\n style={{\n '--steps': this.currentSteps ? this.currentSteps.toString() : null,\n }}\n >\n <div class={classes}>\n <div\n class=\"stzh-progressbar__items\"\n role=\"list\"\n aria-label={this.localization.label}\n >\n {this._data.map((step, index) =>\n <stzh-progressbar-item\n {...this.getItemAttributes(index)}\n icon={step.icon}\n disabled={step.disabled}\n label={step.label}\n click-disabled={step.clickDisabled !== undefined ? step.clickDisabled : this.clickDisabled}\n class=\"stzh-progressbar__item\"\n ></stzh-progressbar-item>\n )}\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -471,7 +471,7 @@ export class StzhSearch {
471
471
  const wrapperProps = typeof this.templateResultWrapperProps === "function"
472
472
  ? this.templateResultWrapperProps(this.element)
473
473
  : this.templateResultWrapperProps;
474
- return (h(Host, { "has-aside-filters": filtersAsideUsed, fullwidth: this.isStzhAnchornavVisible.toString() }, h("form", { ref: el => (this.formElement = el), novalidate: true, class: classes, onSubmit: this.handleFormSubmit, onReset: this.handleFormReset }, h("div", { class: "stzh-search__filters-main", onStzhChange: this.handleMainFilterChange }, !!this.heading && (h("stzh-heading", { class: "stzh-search__header-heading", curve: "h2" }, this.heading)), h("slot", { name: "filters-main" }), !chipsProvided && this.chipResults.length > 0 && (h("div", { class: "stzh-search__filters-main-chips" }, this.chipResultsHeading && (h("stzh-text", { font: "heavy", size: "milli", color: "primary" }, this.chipResultsHeading)), this.chipResults[0].options ? (h("stzh-chipgroup", null, this.chipResults.map(chipResult => (h("stzh-dropdown", { label: chipResult.label, name: chipResult.value, variant: "filter", "no-search": true, "hide-optional": true, inline: true, options: chipResult.options }))))) : (h("stzh-chipselect", { multiple: true, name: "subject", label: this.chipResultsHeading, "label-hidden": true, data: this.chipResults.map(chipResult => ({
474
+ return (h(Host, { "has-aside-filters": filtersAsideUsed, fullwidth: this.isStzhAnchornavVisible.toString() }, h("form", { ref: el => (this.formElement = el), novalidate: true, class: classes, onSubmit: this.handleFormSubmit, onReset: this.handleFormReset }, h("div", { class: "stzh-search__filters-main", onStzhChange: this.handleMainFilterChange }, !!this.heading && (h("stzh-heading", { class: "stzh-search__header-heading", curve: "h2" }, this.heading)), h("slot", { name: "filters-main" }), !chipsProvided && this.chipResults.length > 0 && (h("div", { class: "stzh-search__filters-main-chips" }, this.chipResultsHeading && (h("stzh-text", { font: "heavy", size: "milli", color: "primary" }, this.chipResultsHeading)), this.chipResults[0].options ? (h("stzh-chipgroup", null, this.chipResults.map(chipResult => (h("stzh-dropdown", { label: chipResult.label, name: chipResult.value, variant: "filter", size: "large", "no-search": true, "hide-optional": true, inline: true, options: chipResult.options }))))) : (h("stzh-chipselect", { multiple: true, name: "subject", label: this.chipResultsHeading, "label-hidden": true, data: this.chipResults.map(chipResult => ({
475
475
  label: chipResult.label,
476
476
  value: chipResult.value,
477
477
  counter: `${chipResult.amount}`,