@oiz/stzh-components 3.0.0-beta3 → 3.0.0-beta4

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 (258) hide show
  1. package/dist/cjs/{app-globals-0cbebaa1.js → app-globals-5897b76e.js} +39 -14
  2. package/dist/cjs/app-globals-5897b76e.js.map +1 -0
  3. package/dist/cjs/index.cjs.js.map +1 -1
  4. package/dist/cjs/loader.cjs.js +2 -2
  5. package/dist/cjs/stzh-appointments.cjs.entry.js +11 -8
  6. package/dist/cjs/stzh-appointments.cjs.entry.js.map +1 -1
  7. package/dist/cjs/stzh-badge_3.cjs.entry.js +1 -1
  8. package/dist/cjs/stzh-badge_3.cjs.entry.js.map +1 -1
  9. package/dist/cjs/stzh-calendar.cjs.entry.js +1 -1
  10. package/dist/cjs/stzh-calendar.cjs.entry.js.map +1 -1
  11. package/dist/cjs/stzh-card_3.cjs.entry.js +16 -19
  12. package/dist/cjs/stzh-card_3.cjs.entry.js.map +1 -1
  13. package/dist/cjs/stzh-chip.cjs.entry.js +2 -2
  14. package/dist/cjs/stzh-chip.cjs.entry.js.map +1 -1
  15. package/dist/cjs/stzh-components.cjs.js +2 -2
  16. package/dist/cjs/stzh-content.cjs.entry.js +1 -1
  17. package/dist/cjs/stzh-content.cjs.entry.js.map +1 -1
  18. package/dist/cjs/stzh-cspace.cjs.entry.js +1 -1
  19. package/dist/cjs/stzh-cspace.cjs.entry.js.map +1 -1
  20. package/dist/cjs/stzh-cta.cjs.entry.js +1 -1
  21. package/dist/cjs/stzh-cta.cjs.entry.js.map +1 -1
  22. package/dist/cjs/stzh-datamessagelist-item.cjs.entry.js +9 -4
  23. package/dist/cjs/stzh-datamessagelist-item.cjs.entry.js.map +1 -1
  24. package/dist/cjs/stzh-datamessagelist.cjs.entry.js +1 -1
  25. package/dist/cjs/stzh-datamessagelist.cjs.entry.js.map +1 -1
  26. package/dist/cjs/stzh-datepicker_3.cjs.entry.js +1 -1
  27. package/dist/cjs/stzh-datepicker_3.cjs.entry.js.map +1 -1
  28. package/dist/cjs/stzh-dropdown.cjs.entry.js +8 -2
  29. package/dist/cjs/stzh-dropdown.cjs.entry.js.map +1 -1
  30. package/dist/cjs/stzh-header.cjs.entry.js +15 -5
  31. package/dist/cjs/stzh-header.cjs.entry.js.map +1 -1
  32. package/dist/cjs/stzh-iframe.cjs.entry.js +11 -3
  33. package/dist/cjs/stzh-iframe.cjs.entry.js.map +1 -1
  34. package/dist/cjs/stzh-imagecomparison.cjs.entry.js +2 -2
  35. package/dist/cjs/stzh-imagecomparison.cjs.entry.js.map +1 -1
  36. package/dist/cjs/stzh-link.cjs.entry.js +1 -1
  37. package/dist/cjs/stzh-link.cjs.entry.js.map +1 -1
  38. package/dist/cjs/stzh-search.cjs.entry.js +20 -3
  39. package/dist/cjs/stzh-search.cjs.entry.js.map +1 -1
  40. package/dist/cjs/stzh-skin-portal-mitwirken.cjs.entry.js +1 -1
  41. package/dist/cjs/stzh-skin-portal-mitwirken.cjs.entry.js.map +1 -1
  42. package/dist/collection/assets/i18n/de.json +2 -2
  43. package/dist/collection/assets/i18n/en.json +2 -2
  44. package/dist/collection/components/stzh-appointments/stzh-appointments.css +99 -19
  45. package/dist/collection/components/stzh-appointments/stzh-appointments.js +9 -7
  46. package/dist/collection/components/stzh-appointments/stzh-appointments.js.map +1 -1
  47. package/dist/collection/components/stzh-appointments/stzh-appointments.stories.js +7 -1
  48. package/dist/collection/components/stzh-button/stzh-button.css +10 -10
  49. package/dist/collection/components/stzh-calendar/stzh-calendar.css +0 -2
  50. package/dist/collection/components/stzh-card/stzh-card.css +0 -27
  51. package/dist/collection/components/stzh-card/stzh-card.js +12 -94
  52. package/dist/collection/components/stzh-card/stzh-card.js.map +1 -1
  53. package/dist/collection/components/stzh-card/stzh-card.stories.js +0 -17
  54. package/dist/collection/components/stzh-chip/stzh-chip.css +22 -10
  55. package/dist/collection/components/stzh-chip/stzh-chip.js +2 -2
  56. package/dist/collection/components/stzh-chip/stzh-chip.js.map +1 -1
  57. package/dist/collection/components/stzh-chipselect/stzh-chipselect.js +3 -1
  58. package/dist/collection/components/stzh-chipselect/stzh-chipselect.js.map +1 -1
  59. package/dist/collection/components/stzh-content/stzh-content.css +3 -3
  60. package/dist/collection/components/stzh-cspace/stzh-cspace.css +36 -0
  61. package/dist/collection/components/stzh-cta/stzh-cta.css +22 -36
  62. package/dist/collection/components/stzh-datamessagelist/stzh-datamessagelist.css +0 -5
  63. package/dist/collection/components/stzh-datamessagelist/stzh-datamessagelist.stories.js +26 -0
  64. package/dist/collection/components/stzh-datamessagelist-item/stzh-datamessagelist-item.css +26 -16
  65. package/dist/collection/components/stzh-datamessagelist-item/stzh-datamessagelist-item.js +26 -3
  66. package/dist/collection/components/stzh-datamessagelist-item/stzh-datamessagelist-item.js.map +1 -1
  67. package/dist/collection/components/stzh-datepicker/stzh-datepicker.css +18 -3
  68. package/dist/collection/components/stzh-dropdown/stzh-dropdown.css +288 -40
  69. package/dist/collection/components/stzh-dropdown/stzh-dropdown.js +108 -4
  70. package/dist/collection/components/stzh-dropdown/stzh-dropdown.js.map +1 -1
  71. package/dist/collection/components/stzh-header/stzh-header.css +15 -13
  72. package/dist/collection/components/stzh-header/stzh-header.js +19 -6
  73. package/dist/collection/components/stzh-header/stzh-header.js.map +1 -1
  74. package/dist/collection/components/stzh-iframe/stzh-iframe.js +160 -3
  75. package/dist/collection/components/stzh-iframe/stzh-iframe.js.map +1 -1
  76. package/dist/collection/components/stzh-imagecomparison/stzh-imagecomparison.css +12 -17
  77. package/dist/collection/components/stzh-imagecomparison/stzh-imagecomparison.js +1 -1
  78. package/dist/collection/components/stzh-imagecomparison/stzh-imagecomparison.js.map +1 -1
  79. package/dist/collection/components/stzh-link/stzh-link.js +19 -19
  80. package/dist/collection/components/stzh-link/stzh-link.js.map +1 -1
  81. package/dist/collection/components/stzh-search/stzh-search.css +70 -0
  82. package/dist/collection/components/stzh-search/stzh-search.js +72 -3
  83. package/dist/collection/components/stzh-search/stzh-search.js.map +1 -1
  84. package/dist/collection/components/stzh-search/stzh-search.stories.js +3 -0
  85. package/dist/collection/components/stzh-skin-portal-mitwirken/stzh-skin-portal-mitwirken.css +7 -7
  86. package/dist/collection/global/js/helpers/autofocus.js +36 -11
  87. package/dist/collection/global/js/script.js +2 -0
  88. package/dist/collection/index.js.map +1 -1
  89. package/dist/components/index.js +38 -13
  90. package/dist/components/index.js.map +1 -1
  91. package/dist/components/index2.js.map +1 -1
  92. package/dist/components/stzh-appointments.js +11 -9
  93. package/dist/components/stzh-appointments.js.map +1 -1
  94. package/dist/components/stzh-button2.js +1 -1
  95. package/dist/components/stzh-button2.js.map +1 -1
  96. package/dist/components/stzh-calendar2.js +1 -1
  97. package/dist/components/stzh-calendar2.js.map +1 -1
  98. package/dist/components/stzh-card2.js +13 -22
  99. package/dist/components/stzh-card2.js.map +1 -1
  100. package/dist/components/stzh-chip2.js +3 -3
  101. package/dist/components/stzh-chip2.js.map +1 -1
  102. package/dist/components/stzh-chipselect2.js +3 -1
  103. package/dist/components/stzh-chipselect2.js.map +1 -1
  104. package/dist/components/stzh-content.js +1 -1
  105. package/dist/components/stzh-content.js.map +1 -1
  106. package/dist/components/stzh-cspace.js +1 -1
  107. package/dist/components/stzh-cspace.js.map +1 -1
  108. package/dist/components/stzh-cta.js +1 -1
  109. package/dist/components/stzh-cta.js.map +1 -1
  110. package/dist/components/stzh-datamessagelist-item.js +10 -4
  111. package/dist/components/stzh-datamessagelist-item.js.map +1 -1
  112. package/dist/components/stzh-datamessagelist.js +1 -1
  113. package/dist/components/stzh-datamessagelist.js.map +1 -1
  114. package/dist/components/stzh-datepicker2.js +1 -1
  115. package/dist/components/stzh-datepicker2.js.map +1 -1
  116. package/dist/components/stzh-dropdown2.js +12 -2
  117. package/dist/components/stzh-dropdown2.js.map +1 -1
  118. package/dist/components/stzh-header.js +17 -5
  119. package/dist/components/stzh-header.js.map +1 -1
  120. package/dist/components/stzh-iframe2.js +19 -3
  121. package/dist/components/stzh-iframe2.js.map +1 -1
  122. package/dist/components/stzh-imagecomparison.js +2 -2
  123. package/dist/components/stzh-imagecomparison.js.map +1 -1
  124. package/dist/components/stzh-link2.js +2 -2
  125. package/dist/components/stzh-link2.js.map +1 -1
  126. package/dist/components/stzh-search.js +49 -16
  127. package/dist/components/stzh-search.js.map +1 -1
  128. package/dist/components/stzh-skin-portal-mitwirken.js +1 -1
  129. package/dist/components/stzh-skin-portal-mitwirken.js.map +1 -1
  130. package/dist/esm/{app-globals-3c171b79.js → app-globals-6a7ed0f4.js} +39 -14
  131. package/dist/esm/app-globals-6a7ed0f4.js.map +1 -0
  132. package/dist/esm/index.js.map +1 -1
  133. package/dist/esm/loader.js +2 -2
  134. package/dist/esm/stzh-appointments.entry.js +11 -8
  135. package/dist/esm/stzh-appointments.entry.js.map +1 -1
  136. package/dist/esm/stzh-badge_3.entry.js +1 -1
  137. package/dist/esm/stzh-badge_3.entry.js.map +1 -1
  138. package/dist/esm/stzh-calendar.entry.js +1 -1
  139. package/dist/esm/stzh-calendar.entry.js.map +1 -1
  140. package/dist/esm/stzh-card_3.entry.js +16 -19
  141. package/dist/esm/stzh-card_3.entry.js.map +1 -1
  142. package/dist/esm/stzh-chip.entry.js +3 -3
  143. package/dist/esm/stzh-chip.entry.js.map +1 -1
  144. package/dist/esm/stzh-components.js +2 -2
  145. package/dist/esm/stzh-content.entry.js +1 -1
  146. package/dist/esm/stzh-content.entry.js.map +1 -1
  147. package/dist/esm/stzh-cspace.entry.js +1 -1
  148. package/dist/esm/stzh-cspace.entry.js.map +1 -1
  149. package/dist/esm/stzh-cta.entry.js +1 -1
  150. package/dist/esm/stzh-cta.entry.js.map +1 -1
  151. package/dist/esm/stzh-datamessagelist-item.entry.js +9 -4
  152. package/dist/esm/stzh-datamessagelist-item.entry.js.map +1 -1
  153. package/dist/esm/stzh-datamessagelist.entry.js +1 -1
  154. package/dist/esm/stzh-datamessagelist.entry.js.map +1 -1
  155. package/dist/esm/stzh-datepicker_3.entry.js +1 -1
  156. package/dist/esm/stzh-datepicker_3.entry.js.map +1 -1
  157. package/dist/esm/stzh-dropdown.entry.js +8 -2
  158. package/dist/esm/stzh-dropdown.entry.js.map +1 -1
  159. package/dist/esm/stzh-header.entry.js +15 -5
  160. package/dist/esm/stzh-header.entry.js.map +1 -1
  161. package/dist/esm/stzh-iframe.entry.js +11 -3
  162. package/dist/esm/stzh-iframe.entry.js.map +1 -1
  163. package/dist/esm/stzh-imagecomparison.entry.js +2 -2
  164. package/dist/esm/stzh-imagecomparison.entry.js.map +1 -1
  165. package/dist/esm/stzh-link.entry.js +1 -1
  166. package/dist/esm/stzh-link.entry.js.map +1 -1
  167. package/dist/esm/stzh-search.entry.js +20 -3
  168. package/dist/esm/stzh-search.entry.js.map +1 -1
  169. package/dist/esm/stzh-skin-portal-mitwirken.entry.js +1 -1
  170. package/dist/esm/stzh-skin-portal-mitwirken.entry.js.map +1 -1
  171. package/dist/stzh-components/assets/i18n/de.json +2 -2
  172. package/dist/stzh-components/assets/i18n/en.json +2 -2
  173. package/dist/stzh-components/index.esm.js.map +1 -1
  174. package/dist/stzh-components/{p-3ca4f71a.entry.js → p-069e181f.entry.js} +2 -2
  175. package/dist/stzh-components/p-069e181f.entry.js.map +1 -0
  176. package/dist/stzh-components/p-1b78f602.entry.js +2 -0
  177. package/dist/stzh-components/p-1b78f602.entry.js.map +1 -0
  178. package/dist/stzh-components/p-295c8995.entry.js +2 -0
  179. package/dist/stzh-components/p-295c8995.entry.js.map +1 -0
  180. package/dist/stzh-components/p-2bbbc217.entry.js +9 -0
  181. package/dist/stzh-components/{p-b4ce8e10.entry.js.map → p-2bbbc217.entry.js.map} +1 -1
  182. package/dist/stzh-components/p-2d57953a.entry.js +2 -0
  183. package/dist/stzh-components/{p-1252aa01.entry.js.map → p-2d57953a.entry.js.map} +1 -1
  184. package/dist/stzh-components/p-2eb8f323.entry.js +2 -0
  185. package/dist/stzh-components/{p-62b88844.entry.js.map → p-2eb8f323.entry.js.map} +1 -1
  186. package/dist/stzh-components/p-45392fe0.entry.js +2 -0
  187. package/dist/stzh-components/p-45392fe0.entry.js.map +1 -0
  188. package/dist/stzh-components/{p-bd494b47.entry.js → p-523c0bb1.entry.js} +2 -2
  189. package/dist/stzh-components/p-523c0bb1.entry.js.map +1 -0
  190. package/dist/stzh-components/{p-e63dfe12.entry.js → p-5b9b2425.entry.js} +2 -2
  191. package/dist/stzh-components/{p-e63dfe12.entry.js.map → p-5b9b2425.entry.js.map} +1 -1
  192. package/dist/stzh-components/{p-bb87a6e2.entry.js → p-75fec3cd.entry.js} +2 -2
  193. package/dist/stzh-components/{p-bb87a6e2.entry.js.map → p-75fec3cd.entry.js.map} +1 -1
  194. package/dist/stzh-components/p-78eaea8d.js +2 -0
  195. package/dist/stzh-components/p-78eaea8d.js.map +1 -0
  196. package/dist/stzh-components/p-8ab62796.entry.js +2 -0
  197. package/dist/stzh-components/p-8ab62796.entry.js.map +1 -0
  198. package/dist/stzh-components/p-b0626969.entry.js +2 -0
  199. package/dist/stzh-components/p-b0626969.entry.js.map +1 -0
  200. package/dist/stzh-components/p-b34a4e7c.entry.js +2 -0
  201. package/dist/stzh-components/p-b34a4e7c.entry.js.map +1 -0
  202. package/dist/stzh-components/p-b5224e53.entry.js +2 -0
  203. package/dist/stzh-components/p-b5224e53.entry.js.map +1 -0
  204. package/dist/stzh-components/p-d1e6afe2.entry.js +2 -0
  205. package/dist/stzh-components/p-d1e6afe2.entry.js.map +1 -0
  206. package/dist/stzh-components/p-ddfb8df0.entry.js +2 -0
  207. package/dist/stzh-components/p-ddfb8df0.entry.js.map +1 -0
  208. package/dist/stzh-components/p-eb79f3ed.entry.js +2 -0
  209. package/dist/stzh-components/p-eb79f3ed.entry.js.map +1 -0
  210. package/dist/stzh-components/p-f50e0102.entry.js +2 -0
  211. package/dist/stzh-components/p-f50e0102.entry.js.map +1 -0
  212. package/dist/stzh-components/stzh-components.css +1 -1
  213. package/dist/stzh-components/stzh-components.esm.js +1 -1
  214. package/dist/stzh-components/stzh-components.esm.js.map +1 -1
  215. package/dist/types/components/stzh-card/stzh-card.d.ts +1 -5
  216. package/dist/types/components/stzh-datamessagelist-item/stzh-datamessagelist-item.d.ts +2 -0
  217. package/dist/types/components/stzh-dropdown/stzh-dropdown.d.ts +10 -2
  218. package/dist/types/components/stzh-header/stzh-header.d.ts +2 -2
  219. package/dist/types/components/stzh-iframe/stzh-iframe.d.ts +29 -1
  220. package/dist/types/components/stzh-link/stzh-link.d.ts +2 -2
  221. package/dist/types/components/stzh-search/stzh-search.d.ts +10 -0
  222. package/dist/types/components.d.ts +156 -38
  223. package/dist/types/index.d.ts +3 -0
  224. package/dist/vscode-data.json +140 -12
  225. package/package.json +1 -1
  226. package/dist/cjs/app-globals-0cbebaa1.js.map +0 -1
  227. package/dist/collection/patterns/appointments/appointments.e2e.js +0 -18
  228. package/dist/collection/patterns/appointments/appointments.e2e.js.map +0 -1
  229. package/dist/esm/app-globals-3c171b79.js.map +0 -1
  230. package/dist/stzh-components/p-1252aa01.entry.js +0 -2
  231. package/dist/stzh-components/p-18015613.entry.js +0 -2
  232. package/dist/stzh-components/p-18015613.entry.js.map +0 -1
  233. package/dist/stzh-components/p-38d64313.entry.js +0 -2
  234. package/dist/stzh-components/p-38d64313.entry.js.map +0 -1
  235. package/dist/stzh-components/p-39fa126d.js +0 -2
  236. package/dist/stzh-components/p-39fa126d.js.map +0 -1
  237. package/dist/stzh-components/p-3ca4f71a.entry.js.map +0 -1
  238. package/dist/stzh-components/p-4cff0c86.entry.js +0 -2
  239. package/dist/stzh-components/p-4cff0c86.entry.js.map +0 -1
  240. package/dist/stzh-components/p-5e48450d.entry.js +0 -2
  241. package/dist/stzh-components/p-5e48450d.entry.js.map +0 -1
  242. package/dist/stzh-components/p-62b88844.entry.js +0 -2
  243. package/dist/stzh-components/p-69c1826d.entry.js +0 -2
  244. package/dist/stzh-components/p-69c1826d.entry.js.map +0 -1
  245. package/dist/stzh-components/p-7091d652.entry.js +0 -2
  246. package/dist/stzh-components/p-7091d652.entry.js.map +0 -1
  247. package/dist/stzh-components/p-76902b7c.entry.js +0 -2
  248. package/dist/stzh-components/p-76902b7c.entry.js.map +0 -1
  249. package/dist/stzh-components/p-92285350.entry.js +0 -2
  250. package/dist/stzh-components/p-92285350.entry.js.map +0 -1
  251. package/dist/stzh-components/p-93e0ff47.entry.js +0 -2
  252. package/dist/stzh-components/p-93e0ff47.entry.js.map +0 -1
  253. package/dist/stzh-components/p-b4ce8e10.entry.js +0 -9
  254. package/dist/stzh-components/p-bd494b47.entry.js.map +0 -1
  255. package/dist/stzh-components/p-e6785bb1.entry.js +0 -2
  256. package/dist/stzh-components/p-e6785bb1.entry.js.map +0 -1
  257. package/dist/stzh-components/p-fb1d20da.entry.js +0 -2
  258. package/dist/stzh-components/p-fb1d20da.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"stzh-search.js","sourceRoot":"","sources":["../../../../src/components/stzh-search/stzh-search.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Element,\n Prop,\n State,\n Watch,\n Fragment\n} from \"@stencil/core\";\n\nimport { StzhSearchResult } from \"../../index\";\n\nimport axios from 'axios';\nimport { hasSlot, raf } from \"../../utils/utils\";\n\nimport { StzhSearchLocalizedText } from \"./stzh-search.localization\";\n\nimport debounce from \"lodash/debounce\";\n\nfunction defaultTemplateResult(search: HTMLStzhSearchElement, item: StzhSearchResult): string {\n if (search.variant === \"teaser\") {\n return `\n <stzh-card href=\"{href}\">\n <div slot=\"heading\">{heading}</div>\n <div slot=\"content\">{description}</div>\n </stzh-card>\n `;\n } else {\n return `\n <stzh-card-searchresult\n href=\"{href}\"\n dateline=\"{dateline}\"\n tag-left=\"{tagLeft}\"\n tag-right=\"{tagRight}\"\n event-location=\"{eventLocation}\"\n download-heading=\"{downloadHeading}\"\n meta='{meta}'\n breadcrumb-items='{breadcrumbItems}'\n download-meta='{downloadMeta}'\n ${item.imagePosition && 'image-position=\"{imagePosition}\"'}\n ${item.download && 'download=\"{download}\"'}\n style=\"\n ${item.tagRightBackgroundColor ? '--tag-right-background-color: {tagRightBackgroundColor};' : ''}\n ${item.tagRightColor ? '--tag-right-color: {tagRightColor};' : ''}\n \"\n >\n <div slot=\"heading\">{heading}</div>\n <div slot=\"description\">{description}</div>\n ${item.image\n ?\n (\n item.imagePosition === \"right\"\n ?\n `<img src=\"${item.image}\" slot=\"image\" />`\n :\n `<stzh-ratio ratio=\"21:9\" ratio-small=\"1:1\" slot=\"image\"><img src=\"${item.image}\" /></stzh-ratio>`\n )\n :\n ''\n }\n </stzh-card-searchresult>\n `;\n }\n}\n\nfunction defaultResultWrapperProps(search: HTMLStzhSearchElement) {\n return {\n layout: search.variant === \"teaser\" ? \"teasers\" : \"searchresults\"\n } as HTMLStzhCardlistElement;\n}\n\n/**\n * @slot filters-main - Slot for main filters\n * @slot filters-aside - Slot for aside filters\n */\n@Component({\n tag: \"stzh-search\",\n styleUrl: \"stzh-search.scss\"\n})\nexport class StzhSearch {\n /** Translation strings */\n @Prop() localization: StzhSearchLocalizedText;\n\n /** Variant */\n @Prop() variant: \"default\" | \"teaser\" = \"default\";\n\n /** Whether search results should be automatically fetched when a main filters has changed. */\n @Prop() autofetchMainFilters: boolean = false;\n\n /** Whether search results should be automatically fetched when a aside filters has changed. */\n @Prop() autofetchAsideFilters: boolean = false;\n\n /** API URL */\n @Prop() api: string = \"\";\n\n /** Debounce time in ms */\n @Prop() debounceTime: number = 500;\n\n /** Numbers of results shown with each load more action */\n @Prop() limit: number = 6;\n\n /** Whether search request should be fetched initially with set filters */\n @Prop() initialFetch: boolean = false;\n\n /** Whether url query should be updated when filter has changed */\n @Prop() preventUpdateUrl: boolean = false;\n\n /** Will be overwritten by api result (`templates.result` or `results[x].html`) */\n @Prop() templateResult: string | ((search: HTMLStzhSearchElement, item: StzhSearchResult) => string) = defaultTemplateResult;\n\n /** Element used for list wrapper element */\n @Prop() templateResultWrapperElement: string | ((search: HTMLStzhSearchElement) => string) = function() {\n return 'stzh-cardlist';\n };\n\n /** Properties applied to list wrapper element */\n @Prop() templateResultWrapperProps: { [key: string]: any } | ((search: HTMLStzhSearchElement) => { [key: string]: any }) = defaultResultWrapperProps;\n\n /** Heading level of results heading */\n @Prop() resultHeadingLevel: \"1\" | \"2\" | \"3\" | \"4\" = \"3\";\n\n @Element() element: HTMLStzhSearchElement;\n\n @Watch(\"totalCount\")\n @Watch(\"results\")\n totalCountWatcher() {\n this._showMoreLink = this.totalCount > this.results.length;\n }\n\n @Watch(\"preventUpdateUrl\")\n preventUpdateUrlWatcher() {\n this.updateParams();\n }\n\n @State() totalCount: number = 0;\n private _showMoreLink: boolean = false;\n\n @State() loading: boolean = false;\n\n @State() results: StzhSearchResult[] = [];\n @State() resultsHeading: string;\n @State() hasRequiredParams: boolean = false;\n @State() firstFetched: boolean = false;\n @State() initiallyFetched: boolean = false;\n\n private currentController: AbortController;\n private params: URLSearchParams;\n private formElement: HTMLFormElement;\n\n private renderResultTemplate(html: string, item: StzhSearchResult) {\n let template = html\n || (typeof this.templateResult === \"function\"\n ? this.templateResult(this.element, item)\n : this.templateResult);\n\n [\n \"href\",\n \"heading\",\n \"dateline\",\n \"description\",\n \"image\",\n \"imagePosition\",\n \"tagLeft\",\n \"tagRight\",\n \"tagRightColor\",\n \"tagRightBackgroundColor\",\n \"meta\",\n \"breadcrumbItems\",\n \"eventLocation\",\n \"download\",\n \"downloadHeading\",\n \"downloadMeta\",\n ].forEach((property) => {\n const regex = new RegExp(`\\{${property}\\}`, \"gi\");\n let value = item[property] || \"\";\n\n if ([\"meta\", \"breadcrumbItems\", \"downloadMeta\"].includes(property) && value) {\n value = JSON.stringify(value);\n }\n\n template = template.replace(regex, value)\n });\n\n return template;\n }\n\n private async updateParams(initial: boolean = false) {\n const updateByFormElements = () => {\n const formData = new FormData(this.formElement);\n // @ts-ignore\n this.params = new URLSearchParams(formData);\n }\n\n if (initial) {\n const initialParams = new URLSearchParams(location.search);\n const search = initialParams.get(\"search\");\n\n if (search) {\n this.initialFetch = true;\n const currentSearchParams = new URLSearchParams(search);\n\n [...new Set(currentSearchParams.keys())].forEach((key) => {\n const values = currentSearchParams.getAll(key);\n\n // value as string/number: input, ... / pagination\n const valueInputs = Array.from(document.querySelectorAll(`:where(stzh-input,stzh-radiogroup,stzh-chipselect,stzh-amount,stzh-datepicker,stzh-monthyearpicker,stzh-timepicker,stzh-pagination,stzh-toggle)[name=\"${key}\"]`)) as\n | HTMLStzhInputElement[]\n | HTMLStzhRadiogroupElement[]\n | HTMLStzhChipselectElement[]\n | HTMLStzhAmountElement[]\n | HTMLStzhDatepickerElement[]\n | HTMLStzhMonthyearpickerElement[]\n | HTMLStzhTimepickerElement[]\n | HTMLStzhPaginationElement[]\n | HTMLStzhToggleElement[]\n\n // value as array: checkboxgroup\n const valueArrayInputs = Array.from(document.querySelectorAll(`:where(stzh-checkboxgroup)[name=\"${key}\"]`)) as\n | HTMLStzhCheckboxgroupElement[]\n\n // items as array: dropdown\n const itemsArrayInputs = Array.from(document.querySelectorAll(`:where(stzh-dropdown)[name=\"${key}\"]`)) as\n | HTMLStzhDropdownElement[]\n\n valueInputs.forEach((input: HTMLStzhInputElement | HTMLStzhRadiogroupElement | HTMLStzhChipselectElement | HTMLStzhAmountElement | HTMLStzhDatepickerElement | HTMLStzhMonthyearpickerElement | HTMLStzhTimepickerElement | HTMLStzhPaginationElement | HTMLStzhToggleElement) => {\n input.value = values[0];\n });\n\n valueArrayInputs.forEach((input: HTMLStzhCheckboxgroupElement) => {\n input.value = values;\n });\n\n itemsArrayInputs.forEach((input: HTMLStzhDropdownElement) => {\n input.items = values;\n });\n });\n }\n\n }\n\n await raf();\n updateByFormElements();\n\n // console.log(this.params.toString());\n\n let hasRequiredParams = true;\n\n const requiredInputFields = Array.from(this.element.querySelectorAll(\":where(stzh-input)[required]\")) as\n | HTMLStzhInputElement[];\n\n const requiredDropdownFields = Array.from(this.element.querySelectorAll(\":where(stzh-dropdown)[required]\")) as\n | HTMLStzhDropdownElement[];\n\n const requiredMonthyearpickers = Array.from(this.element.querySelectorAll(\":where(stzh-monthyearpicker)[required]\")) as\n | HTMLStzhMonthyearpickerElement[]\n\n const requiredFields = Array.from(this.element.querySelectorAll(\":where(stzh-amount,stzh-radiogroup,stzh-chipselect,stzh-datepicker,stzh-monthyearpicker,stzh-timepicker,stzh-pagination,stzh-toggle)[required]\")) as\n | HTMLStzhAmountElement[]\n | HTMLStzhRadiogroupElement[]\n | HTMLStzhChipselectElement[]\n | HTMLStzhDatepickerElement[]\n | HTMLStzhTimepickerElement[]\n | HTMLStzhPaginationElement[]\n | HTMLStzhToggleElement[];\n\n const requiredCheckboxFields = Array.from(this.element.querySelectorAll(\":where(stzh-checkbox)[required]\")) as\n | HTMLStzhCheckboxElement[];\n\n requiredCheckboxFields.forEach((field: HTMLStzhCheckboxElement) => {\n const invalid = !field.checked;\n\n if (!initial) {\n field.invalid = invalid;\n }\n\n if (invalid) {\n hasRequiredParams = false;\n }\n });\n\n requiredInputFields.forEach((field: HTMLStzhInputElement) => {\n const invalid = field.value === \"\"\n || (field.minlength && field.minlength > field.value.length)\n || (field.maxlength && field.maxlength < field.value.length);\n\n if (!initial) {\n field.invalid = invalid;\n }\n\n if (invalid) {\n hasRequiredParams = false;\n }\n });\n\n requiredDropdownFields.forEach((field: HTMLStzhDropdownElement) => {\n const invalid = field.items.length === 0;\n\n if (!initial) {\n field.invalid = invalid;\n }\n\n if (invalid) {\n hasRequiredParams = false;\n }\n });\n\n requiredFields.forEach((field: HTMLStzhAmountElement | HTMLStzhRadiogroupElement | HTMLStzhCheckboxElement | HTMLStzhChipselectElement | HTMLStzhDatepickerElement | HTMLStzhTimepickerElement | HTMLStzhPaginationElement | HTMLStzhToggleElement) => {\n const invalid = field.value.toString().length === 0;\n\n if (!initial) {\n field.invalid = invalid;\n }\n\n if (invalid) {\n hasRequiredParams = false;\n }\n });\n\n requiredMonthyearpickers.forEach((field: HTMLStzhMonthyearpickerElement) => {\n const invalid = field.value.toString().length === 0;\n\n if (!initial) {\n field.invalidYear = invalid;\n field.invalidMonth = invalid;\n }\n\n if (invalid) {\n hasRequiredParams = false;\n }\n });\n\n this.hasRequiredParams = hasRequiredParams;\n }\n\n private fetch = async (append: boolean = false, initial: boolean = false) => {\n if (this.currentController) {\n this.currentController.abort()\n }\n\n if (!this.hasRequiredParams && !append) {\n this.loading = false;\n return;\n }\n\n this.loading = true;\n\n let apiUrl = this.api.replace(/\\{lang\\}/gi, this.localization.$locale);\n let limit = this.limit.toString();\n\n this.params.set('offset', append ? this.results.length.toString() : '0');\n\n if (initial) {\n const search = new URLSearchParams(location.search).get(\"search\");\n\n if (search) {\n const urlLimit = new URLSearchParams(search).get(\"limit\");\n\n if (urlLimit) {\n limit = urlLimit;\n }\n }\n }\n\n this.params.set('limit', limit);\n\n this.currentController = new AbortController();\n\n // load data from API\n const { data }: {\n data: {\n templates: {\n result: string\n },\n meta: {\n total: number\n },\n resultsHeading: string\n results: StzhSearchResult[]\n }\n } = await axios(apiUrl, {\n params: this.params,\n signal: this.currentController.signal\n });\n\n this.resultsHeading = data.resultsHeading;\n this.totalCount = data.meta.total;\n\n if (append) {\n this.results = [...this.results, ...data.results.map(item => ({\n ...item,\n html: this.renderResultTemplate(item.html || data.templates?.result, item)\n }))];\n } else {\n this.results = data.results.map(item => ({\n ...item,\n html: this.renderResultTemplate(item.html || data.templates?.result, item)\n }));\n }\n\n if (!initial && !this.preventUpdateUrl) {\n const newUrlParams = new URLSearchParams(location.search);\n const searchParams = new URLSearchParams(this.params);\n\n searchParams.delete(\"offset\");\n searchParams.set(\"limit\", this.results.length.toString());\n newUrlParams.set(\"search\", searchParams.toString());\n\n // console.log(location.search, searchParams.toString(), newUrlParams.toString());\n\n window.history.replaceState(null, \"\", `${location.pathname}?${newUrlParams}`)\n }\n\n if (initial || !this.firstFetched) {\n this.loading = false;\n } else {\n // to be able to see loading effect we delay turning off loading state\n window.setTimeout(() => {\n this.loading = false;\n }, this.debounceTime);\n }\n\n this.firstFetched = true;\n }\n\n private debouncedFetch = debounce(this.fetch, this.debounceTime);\n\n private handleMainFilterChange = async () => {\n if (this.autofetchMainFilters) {\n await this.updateParams();\n this.debouncedFetch();\n }\n }\n\n private handleAsideFilterChange = async () => {\n if (this.autofetchAsideFilters) {\n await this.updateParams();\n this.debouncedFetch();\n }\n }\n\n private handleFormSubmit = async (event: Event) => {\n event.preventDefault();\n\n await this.updateParams();\n this.fetch();\n }\n\n private handleMoreClick = () => {\n this.fetch(true);\n }\n\n private handleFormReset = async () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(async () => {\n await this.updateParams();\n });\n });\n }\n\n async componentDidLoad() {\n // update params initially to get hidden filters\n // and set initialFetch to true if search params exist\n await this.updateParams(true);\n\n if (this.initialFetch) {\n await this.fetch(false, true);\n this.initiallyFetched = true;\n } else {\n this.initiallyFetched = true;\n }\n }\n\n async componentWillLoad() {\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"search\");\n }\n }\n\n render() {\n const filtersMainUsed = hasSlot(this.element, 'filters-main');\n const filtersAsideUsed = hasSlot(this.element, 'filters-aside');\n\n const resultsShown = (this.hasRequiredParams || this.firstFetched) && this.firstFetched && this.initiallyFetched;\n\n const classes = {\n \"stzh-search\": true,\n \"stzh-search--has-filters-main\": filtersMainUsed,\n \"stzh-search--has-filters-aside\": filtersAsideUsed,\n \"stzh-search--has-results-shown\": resultsShown,\n \"stzh-search--is-loading\": this.loading,\n [`stzh-search--${this.variant}`]: !!this.variant,\n };\n\n const WrapperElement = typeof this.templateResultWrapperElement === \"function\"\n ? this.templateResultWrapperElement(this.element)\n : this.templateResultWrapperElement;\n\n const wrapperProps = typeof this.templateResultWrapperProps === \"function\"\n ? this.templateResultWrapperProps(this.element)\n : this.templateResultWrapperProps;\n\n return (\n <Host has-aside-filters={filtersAsideUsed}>\n <form\n ref={(el) => (this.formElement = el as HTMLFormElement)}\n novalidate\n class={classes}\n onSubmit={this.handleFormSubmit}\n onReset={this.handleFormReset}\n >\n {/* @ts-ignore */}\n <div class=\"stzh-search__filters-main\" onStzhChange={this.handleMainFilterChange}>\n <slot name=\"filters-main\"></slot>\n </div>\n\n {filtersAsideUsed &&\n <Fragment>\n {/* @ts-ignore */}\n <div class=\"stzh-search__filters-aside\" onStzhChange={this.handleAsideFilterChange}>\n <div class=\"stzh-search__filters-aside-inner\">\n <stzh-details>\n <stzh-button\n variant=\"tertiary-plain\"\n size=\"small\"\n noPaddingLeft={true}\n showToggleIcon={true}\n iconPosition=\"right\"\n label={this.localization.moreFilter}\n ></stzh-button>\n <div slot=\"content\">\n <slot name=\"filters-aside\"></slot>\n </div>\n </stzh-details>\n </div>\n </div>\n </Fragment>\n }\n\n <div class=\"stzh-search__results-wrapper\">\n {resultsShown &&\n <Fragment>\n {this.results.length === 0\n ?\n <Fragment>\n {this.variant !== \"teaser\" && this.resultsHeading &&\n <stzh-heading\n class=\"stzh-search__results-heading\"\n curve=\"h3\"\n level={this.resultHeadingLevel}\n >\n {this.resultsHeading || this.localization.noResults}\n </stzh-heading>\n }\n </Fragment>\n :\n <Fragment>\n {this.variant !== \"teaser\" && this.resultsHeading &&\n <stzh-heading\n class=\"stzh-search__results-heading\"\n curve=\"h3\"\n level={this.resultHeadingLevel}\n >\n {this.resultsHeading}\n </stzh-heading>\n }\n\n <WrapperElement class=\"stzh-search__results\" {...wrapperProps}>\n {this.results.map((result) =>\n <div class=\"stzh-search__results-item\" innerHTML={result.html || \"\"}></div>\n )}\n </WrapperElement>\n\n <div class=\"stzh-search__actions-wrapper\">\n {this._showMoreLink &&\n <stzh-button\n variant=\"secondary\"\n class=\"stzh-search__action-more\"\n label={this.localization.showMore}\n onClick={this.handleMoreClick}\n a11yDisabled={this.loading}\n >\n </stzh-button>\n }\n </div>\n </Fragment>\n }\n </Fragment>\n }\n\n {this.loading && <stzh-loader class=\"stzh-search__loader\"></stzh-loader>}\n </div>\n\n <slot></slot>\n </form>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"stzh-search.js","sourceRoot":"","sources":["../../../../src/components/stzh-search/stzh-search.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Element,\n Prop,\n State,\n Watch,\n Fragment\n} from \"@stencil/core\";\n\nimport { StzhSearchResult } from \"../../index\";\n\nimport axios from 'axios';\nimport { hasSlot, raf } from \"../../utils/utils\";\n\nimport { StzhSearchLocalizedText } from \"./stzh-search.localization\";\n\nimport {\n media,\n addMediaChangeListener,\n removeMediaChangeListener\n} from '../../utils/media-utils';\n\nimport debounce from \"lodash/debounce\";\n\nfunction defaultTemplateResult(search: HTMLStzhSearchElement, item: StzhSearchResult): string {\n if (search.variant === \"teaser\") {\n return `\n <stzh-card href=\"{href}\">\n <div slot=\"heading\">{heading}</div>\n <div slot=\"content\">{description}</div>\n </stzh-card>\n `;\n } else {\n return `\n <stzh-card-searchresult\n href=\"{href}\"\n dateline=\"{dateline}\"\n tag-left=\"{tagLeft}\"\n tag-right=\"{tagRight}\"\n event-location=\"{eventLocation}\"\n download-heading=\"{downloadHeading}\"\n meta='{meta}'\n breadcrumb-items='{breadcrumbItems}'\n download-meta='{downloadMeta}'\n ${item.imagePosition && 'image-position=\"{imagePosition}\"'}\n ${item.download && 'download=\"{download}\"'}\n style=\"\n ${item.tagRightBackgroundColor ? '--tag-right-background-color: {tagRightBackgroundColor};' : ''}\n ${item.tagRightColor ? '--tag-right-color: {tagRightColor};' : ''}\n \"\n >\n <div slot=\"heading\">{heading}</div>\n <div slot=\"description\">{description}</div>\n ${item.image\n ?\n (\n item.imagePosition === \"right\"\n ?\n `<img src=\"${item.image}\" slot=\"image\" />`\n :\n `<stzh-ratio ratio=\"21:9\" ratio-small=\"1:1\" slot=\"image\"><img src=\"${item.image}\" /></stzh-ratio>`\n )\n :\n ''\n }\n </stzh-card-searchresult>\n `;\n }\n}\n\nfunction defaultResultWrapperProps(search: HTMLStzhSearchElement) {\n return {\n layout: search.variant === \"teaser\" ? \"teasers\" : \"searchresults\"\n } as HTMLStzhCardlistElement;\n}\n\n/**\n * @slot filters-main - Slot for main filters\n * @slot filters-aside - Slot for aside filters\n */\n@Component({\n tag: \"stzh-search\",\n styleUrl: \"stzh-search.scss\"\n})\nexport class StzhSearch {\n /** Translation strings */\n @Prop() localization: StzhSearchLocalizedText;\n\n /** Variant */\n @Prop() variant: \"default\" | \"teaser\" = \"default\";\n\n /** Whether search results should be automatically fetched when a main filters has changed. */\n @Prop() autofetchMainFilters: boolean = false;\n\n /** Whether search results should be automatically fetched when a aside filters has changed. */\n @Prop() autofetchAsideFilters: boolean = false;\n\n /** API URL */\n @Prop() api: string = \"\";\n\n /** Debounce time in ms */\n @Prop() debounceTime: number = 500;\n\n /** Numbers of results shown with each load more action */\n @Prop() limit: number = 6;\n\n /** Whether search request should be fetched initially with set filters */\n @Prop() initialFetch: boolean = false;\n\n /** Whether url query should be updated when filter has changed */\n @Prop() preventUpdateUrl: boolean = false;\n\n /** Will be overwritten by api result (`templates.result` or `results[x].html`) */\n @Prop() templateResult: string | ((search: HTMLStzhSearchElement, item: StzhSearchResult) => string) = defaultTemplateResult;\n\n /** Element used for list wrapper element */\n @Prop() templateResultWrapperElement: string | ((search: HTMLStzhSearchElement) => string) = function() {\n return 'stzh-cardlist';\n };\n\n /** Properties applied to list wrapper element */\n @Prop() templateResultWrapperProps: { [key: string]: any } | ((search: HTMLStzhSearchElement) => { [key: string]: any }) = defaultResultWrapperProps;\n\n /** Heading level of results heading */\n @Prop() resultHeadingLevel: \"1\" | \"2\" | \"3\" | \"4\" = \"3\";\n\n /** Empty text */\n @Prop() emptyText: string;\n\n /** Empty link href */\n @Prop() emptyLinkHref: string;\n\n /** Empty link label */\n @Prop() emptyLinkLabel: string;\n\n @Element() element: HTMLStzhSearchElement;\n\n @Watch(\"totalCount\")\n @Watch(\"results\")\n totalCountWatcher() {\n this._showMoreLink = this.totalCount > this.results.length;\n }\n\n @Watch(\"preventUpdateUrl\")\n preventUpdateUrlWatcher() {\n this.updateParams();\n }\n\n @State() totalCount: number = 0;\n private _showMoreLink: boolean = false;\n\n @State() loading: boolean = false;\n\n @State() results: StzhSearchResult[] = [];\n @State() resultsHeading: string;\n @State() hasRequiredParams: boolean = false;\n @State() firstFetched: boolean = false;\n @State() initiallyFetched: boolean = false;\n @State() isDetailsOpen: boolean = false;\n\n private currentController: AbortController;\n private params: URLSearchParams;\n private formElement: HTMLFormElement;\n\n private renderResultTemplate(html: string, item: StzhSearchResult) {\n let template = html\n || (typeof this.templateResult === \"function\"\n ? this.templateResult(this.element, item)\n : this.templateResult);\n\n [\n \"href\",\n \"heading\",\n \"dateline\",\n \"description\",\n \"image\",\n \"imagePosition\",\n \"tagLeft\",\n \"tagRight\",\n \"tagRightColor\",\n \"tagRightBackgroundColor\",\n \"meta\",\n \"breadcrumbItems\",\n \"eventLocation\",\n \"download\",\n \"downloadHeading\",\n \"downloadMeta\",\n ].forEach((property) => {\n const regex = new RegExp(`\\{${property}\\}`, \"gi\");\n let value = item[property] || \"\";\n\n if ([\"meta\", \"breadcrumbItems\", \"downloadMeta\"].includes(property) && value) {\n value = JSON.stringify(value);\n }\n\n template = template.replace(regex, value)\n });\n\n return template;\n }\n\n private async updateParams(initial: boolean = false) {\n const updateByFormElements = () => {\n const formData = new FormData(this.formElement);\n // @ts-ignore\n this.params = new URLSearchParams(formData);\n }\n\n if (initial) {\n const initialParams = new URLSearchParams(location.search);\n const search = initialParams.get(\"search\");\n\n if (search) {\n this.initialFetch = true;\n const currentSearchParams = new URLSearchParams(search);\n\n [...new Set(currentSearchParams.keys())].forEach((key) => {\n const values = currentSearchParams.getAll(key);\n\n // value as string/number: input, ... / pagination\n const valueInputs = Array.from(document.querySelectorAll(`:where(stzh-input,stzh-radiogroup,stzh-chipselect,stzh-amount,stzh-datepicker,stzh-monthyearpicker,stzh-timepicker,stzh-pagination,stzh-toggle)[name=\"${key}\"]`)) as\n | HTMLStzhInputElement[]\n | HTMLStzhRadiogroupElement[]\n | HTMLStzhChipselectElement[]\n | HTMLStzhAmountElement[]\n | HTMLStzhDatepickerElement[]\n | HTMLStzhMonthyearpickerElement[]\n | HTMLStzhTimepickerElement[]\n | HTMLStzhPaginationElement[]\n | HTMLStzhToggleElement[]\n\n // value as array: checkboxgroup\n const valueArrayInputs = Array.from(document.querySelectorAll(`:where(stzh-checkboxgroup)[name=\"${key}\"]`)) as\n | HTMLStzhCheckboxgroupElement[]\n\n // items as array: dropdown\n const itemsArrayInputs = Array.from(document.querySelectorAll(`:where(stzh-dropdown)[name=\"${key}\"]`)) as\n | HTMLStzhDropdownElement[]\n\n valueInputs.forEach((input: HTMLStzhInputElement | HTMLStzhRadiogroupElement | HTMLStzhChipselectElement | HTMLStzhAmountElement | HTMLStzhDatepickerElement | HTMLStzhMonthyearpickerElement | HTMLStzhTimepickerElement | HTMLStzhPaginationElement | HTMLStzhToggleElement) => {\n input.value = values[0];\n });\n\n valueArrayInputs.forEach((input: HTMLStzhCheckboxgroupElement) => {\n input.value = values;\n });\n\n itemsArrayInputs.forEach((input: HTMLStzhDropdownElement) => {\n input.items = values;\n });\n });\n }\n\n }\n\n await raf();\n updateByFormElements();\n\n // console.log(this.params.toString());\n\n let hasRequiredParams = true;\n\n const requiredInputFields = Array.from(this.element.querySelectorAll(\":where(stzh-input)[required]\")) as\n | HTMLStzhInputElement[];\n\n const requiredDropdownFields = Array.from(this.element.querySelectorAll(\":where(stzh-dropdown)[required]\")) as\n | HTMLStzhDropdownElement[];\n\n const requiredMonthyearpickers = Array.from(this.element.querySelectorAll(\":where(stzh-monthyearpicker)[required]\")) as\n | HTMLStzhMonthyearpickerElement[]\n\n const requiredFields = Array.from(this.element.querySelectorAll(\":where(stzh-amount,stzh-radiogroup,stzh-chipselect,stzh-datepicker,stzh-monthyearpicker,stzh-timepicker,stzh-pagination,stzh-toggle)[required]\")) as\n | HTMLStzhAmountElement[]\n | HTMLStzhRadiogroupElement[]\n | HTMLStzhChipselectElement[]\n | HTMLStzhDatepickerElement[]\n | HTMLStzhTimepickerElement[]\n | HTMLStzhPaginationElement[]\n | HTMLStzhToggleElement[];\n\n const requiredCheckboxFields = Array.from(this.element.querySelectorAll(\":where(stzh-checkbox)[required]\")) as\n | HTMLStzhCheckboxElement[];\n\n requiredCheckboxFields.forEach((field: HTMLStzhCheckboxElement) => {\n const invalid = !field.checked;\n\n if (!initial) {\n field.invalid = invalid;\n }\n\n if (invalid) {\n hasRequiredParams = false;\n }\n });\n\n requiredInputFields.forEach((field: HTMLStzhInputElement) => {\n const invalid = field.value === \"\"\n || (field.minlength && field.minlength > field.value.length)\n || (field.maxlength && field.maxlength < field.value.length);\n\n if (!initial) {\n field.invalid = invalid;\n }\n\n if (invalid) {\n hasRequiredParams = false;\n }\n });\n\n requiredDropdownFields.forEach((field: HTMLStzhDropdownElement) => {\n const invalid = field.items.length === 0;\n\n if (!initial) {\n field.invalid = invalid;\n }\n\n if (invalid) {\n hasRequiredParams = false;\n }\n });\n\n requiredFields.forEach((field: HTMLStzhAmountElement | HTMLStzhRadiogroupElement | HTMLStzhCheckboxElement | HTMLStzhChipselectElement | HTMLStzhDatepickerElement | HTMLStzhTimepickerElement | HTMLStzhPaginationElement | HTMLStzhToggleElement) => {\n const invalid = field.value.toString().length === 0;\n\n if (!initial) {\n field.invalid = invalid;\n }\n\n if (invalid) {\n hasRequiredParams = false;\n }\n });\n\n requiredMonthyearpickers.forEach((field: HTMLStzhMonthyearpickerElement) => {\n const invalid = field.value.toString().length === 0;\n\n if (!initial) {\n field.invalidYear = invalid;\n field.invalidMonth = invalid;\n }\n\n if (invalid) {\n hasRequiredParams = false;\n }\n });\n\n this.hasRequiredParams = hasRequiredParams;\n }\n\n private fetch = async (append: boolean = false, initial: boolean = false) => {\n if (this.currentController) {\n this.currentController.abort()\n }\n\n if (!this.hasRequiredParams && !append) {\n this.loading = false;\n return;\n }\n\n this.loading = true;\n\n let apiUrl = this.api.replace(/\\{lang\\}/gi, this.localization.$locale);\n let limit = this.limit.toString();\n\n this.params.set('offset', append ? this.results.length.toString() : '0');\n\n if (initial) {\n const search = new URLSearchParams(location.search).get(\"search\");\n\n if (search) {\n const urlLimit = new URLSearchParams(search).get(\"limit\");\n\n if (urlLimit) {\n limit = urlLimit;\n }\n }\n }\n\n this.params.set('limit', limit);\n\n this.currentController = new AbortController();\n\n // load data from API\n const { data }: {\n data: {\n templates: {\n result: string\n },\n meta: {\n total: number\n },\n resultsHeading: string\n results: StzhSearchResult[]\n }\n } = await axios(apiUrl, {\n params: this.params,\n signal: this.currentController.signal\n });\n\n this.resultsHeading = data.resultsHeading;\n this.totalCount = data.meta.total;\n\n if (append) {\n this.results = [...this.results, ...data.results.map(item => ({\n ...item,\n html: this.renderResultTemplate(item.html || data.templates?.result, item)\n }))];\n } else {\n this.results = data.results.map(item => ({\n ...item,\n html: this.renderResultTemplate(item.html || data.templates?.result, item)\n }));\n }\n\n if (!initial && !this.preventUpdateUrl) {\n const newUrlParams = new URLSearchParams(location.search);\n const searchParams = new URLSearchParams(this.params);\n\n searchParams.delete(\"offset\");\n searchParams.set(\"limit\", this.results.length.toString());\n newUrlParams.set(\"search\", searchParams.toString());\n\n // console.log(location.search, searchParams.toString(), newUrlParams.toString());\n\n window.history.replaceState(null, \"\", `${location.pathname}?${newUrlParams}`)\n }\n\n if (initial || !this.firstFetched) {\n this.loading = false;\n } else {\n // to be able to see loading effect we delay turning off loading state\n window.setTimeout(() => {\n this.loading = false;\n }, this.debounceTime);\n }\n\n this.firstFetched = true;\n }\n\n private debouncedFetch = debounce(this.fetch, this.debounceTime);\n\n private handleMainFilterChange = async () => {\n if (this.autofetchMainFilters) {\n await this.updateParams();\n this.debouncedFetch();\n }\n }\n\n private handleAsideFilterChange = async () => {\n if (this.autofetchAsideFilters) {\n await this.updateParams();\n this.debouncedFetch();\n }\n }\n\n private handleFormSubmit = async (event: Event) => {\n event.preventDefault();\n\n await this.updateParams();\n this.fetch();\n }\n\n private handleMoreClick = () => {\n this.fetch(true);\n }\n\n private handleMediaChange = () => {\n this.isDetailsOpen = media(\"large\").matches;\n }\n\n private handleFormReset = async () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(async () => {\n await this.updateParams();\n });\n });\n }\n\n async componentDidLoad() {\n // update params initially to get hidden filters\n // and set initialFetch to true if search params exist\n await this.updateParams(true);\n\n if (this.initialFetch) {\n await this.fetch(false, true);\n this.initiallyFetched = true;\n } else {\n this.initiallyFetched = true;\n }\n }\n\n async componentWillLoad() {\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"search\");\n }\n }\n\n connectedCallback() {\n addMediaChangeListener(this.handleMediaChange);\n this.handleMediaChange();\n }\n\n disconnectedCallback() {\n removeMediaChangeListener(this.handleMediaChange);\n }\n\n render() {\n const filtersMainUsed = hasSlot(this.element, 'filters-main');\n const filtersAsideUsed = hasSlot(this.element, 'filters-aside');\n\n const resultsShown = (this.hasRequiredParams || this.firstFetched) && this.firstFetched && this.initiallyFetched;\n\n const classes = {\n \"stzh-search\": true,\n \"stzh-search--has-filters-main\": filtersMainUsed,\n \"stzh-search--has-filters-aside\": filtersAsideUsed,\n \"stzh-search--has-results-shown\": resultsShown,\n \"stzh-search--is-loading\": this.loading,\n [`stzh-search--${this.variant}`]: !!this.variant,\n };\n\n const WrapperElement = typeof this.templateResultWrapperElement === \"function\"\n ? this.templateResultWrapperElement(this.element)\n : this.templateResultWrapperElement;\n\n const wrapperProps = typeof this.templateResultWrapperProps === \"function\"\n ? this.templateResultWrapperProps(this.element)\n : this.templateResultWrapperProps;\n\n return (\n <Host has-aside-filters={filtersAsideUsed}>\n <form\n ref={(el) => (this.formElement = el as HTMLFormElement)}\n novalidate\n class={classes}\n onSubmit={this.handleFormSubmit}\n onReset={this.handleFormReset}\n >\n {/* @ts-ignore */}\n <div class=\"stzh-search__filters-main\" onStzhChange={this.handleMainFilterChange}>\n <slot name=\"filters-main\"></slot>\n </div>\n\n {filtersAsideUsed &&\n <Fragment>\n {/* @ts-ignore */}\n <div class=\"stzh-search__filters-aside\" onStzhChange={this.handleAsideFilterChange}>\n <div class=\"stzh-search__filters-aside-inner\">\n <div class=\"stzh-search__filters-aside-heading\">\n {this.localization.moreFilter}\n </div>\n <stzh-details\n open={this.isDetailsOpen}\n class=\"stzh-search__filters-aside-details\"\n >\n <stzh-button\n class=\"stzh-search__filters-aside-details-trigger\"\n variant=\"tertiary-plain\"\n size=\"small\"\n noPaddingLeft={true}\n showToggleIcon={true}\n iconPosition=\"right\"\n label={this.localization.moreFilter}\n ></stzh-button>\n <div slot=\"content\">\n <slot name=\"filters-aside\"></slot>\n </div>\n </stzh-details>\n </div>\n </div>\n </Fragment>\n }\n\n <div class=\"stzh-search__results-wrapper\">\n {resultsShown &&\n <Fragment>\n {this.results.length === 0\n ?\n <Fragment>\n {this.variant !== \"teaser\" && this.resultsHeading &&\n <stzh-heading\n class=\"stzh-search__results-heading\"\n curve=\"h3\"\n level={this.resultHeadingLevel}\n >\n {this.resultsHeading || this.localization.noResults}\n </stzh-heading>\n }\n\n {this.emptyText &&\n <stzh-text class=\"stzh-search__empty-text\">{this.emptyText}</stzh-text>\n }\n\n {this.emptyLinkLabel && this.emptyLinkHref &&\n <div class=\"stzh-search__empty-link-wrapper\">\n <stzh-link\n href={this.emptyLinkHref}\n label={this.emptyLinkLabel}\n ></stzh-link>\n </div>\n }\n </Fragment>\n :\n <Fragment>\n {this.variant !== \"teaser\" && this.resultsHeading &&\n <stzh-heading\n class=\"stzh-search__results-heading\"\n curve=\"h3\"\n level={this.resultHeadingLevel}\n >\n {this.resultsHeading}\n </stzh-heading>\n }\n\n <WrapperElement class=\"stzh-search__results\" {...wrapperProps}>\n {this.results.map((result) =>\n <div class=\"stzh-search__results-item\" innerHTML={result.html || \"\"}></div>\n )}\n </WrapperElement>\n\n <div class=\"stzh-search__actions-wrapper\">\n {this._showMoreLink &&\n <stzh-button\n variant=\"secondary\"\n class=\"stzh-search__action-more\"\n label={this.localization.showMore}\n onClick={this.handleMoreClick}\n a11yDisabled={this.loading}\n >\n </stzh-button>\n }\n </div>\n </Fragment>\n }\n </Fragment>\n }\n\n {this.loading && <stzh-loader class=\"stzh-search__loader\"></stzh-loader>}\n </div>\n\n <slot></slot>\n </form>\n </Host>\n );\n }\n}\n"]}
@@ -229,6 +229,9 @@ export const EmptyResults = {
229
229
  args: {
230
230
  api: "mock/search-empty.json",
231
231
  "autofetch-main-filters": true,
232
+ "empty-text": "Sorry, we couldn't find what you are looking for.",
233
+ "empty-link-href": "https://stadt-zuerich.ch",
234
+ "empty-link-label": "Lorem ipsum",
232
235
  }
233
236
  };
234
237
 
@@ -194,11 +194,11 @@ body {
194
194
 
195
195
  /* Helper used to introduce scroll margin top in size of sticky header */
196
196
 
197
- .stzh-header-scroll-margin-top {
198
- scroll-margin-top: var(--stzh-header-metabar-height, 0);
197
+ .stzh-header-scroll-padding-top {
198
+ scroll-padding-top: var(--stzh-header-metabar-height, 0);
199
199
  }
200
200
 
201
- .stzh-global-header-scroll-margin-top * {
201
+ .stzh-header-scroll-margin-top {
202
202
  scroll-margin-top: var(--stzh-header-metabar-height, 0);
203
203
  }
204
204
 
@@ -1204,7 +1204,7 @@ the .has-focus class is used by the focus target */
1204
1204
  --stzh-calendar-width: 20rem;
1205
1205
 
1206
1206
  /* Cta */
1207
- --stzh-cta-background-color: var(--stzh-color-violet50);
1207
+ --stzh-cta-background-color: var(--stzh-color-violet40);
1208
1208
 
1209
1209
  /** Toasts */
1210
1210
  --stzh-toast-label-font-family: var(--stzh-font-family-medium);
@@ -1247,15 +1247,15 @@ the .has-focus class is used by the focus target */
1247
1247
  }
1248
1248
 
1249
1249
  .stzh-theme-cta-orange {
1250
- --stzh-cta-background-color: var(--stzh-color-orange60);
1250
+ --stzh-cta-background-color: var(--stzh-color-orange50);
1251
1251
  }
1252
1252
 
1253
1253
  .stzh-theme-cta-magenta {
1254
- --stzh-cta-background-color: var(--stzh-color-magenta50);
1254
+ --stzh-cta-background-color: var(--stzh-color-magenta40);
1255
1255
  }
1256
1256
 
1257
1257
  .stzh-theme-cta-firgreen {
1258
- --stzh-cta-background-color: var(--stzh-color-firgreen60);
1258
+ --stzh-cta-background-color: var(--stzh-color-firgreen50);
1259
1259
  }
1260
1260
 
1261
1261
  /* Department and microsite themes */
@@ -1,6 +1,41 @@
1
1
  import { name as packageNameScoped } from '../../../../package.json';
2
2
 
3
3
  const packageName = packageNameScoped.substring(packageNameScoped.indexOf('/')+1);
4
+ // let focused = false;
5
+
6
+ // function debounce(func, timeout = 500){
7
+ // let timer;
8
+ // return (...args) => {
9
+ // clearTimeout(timer);
10
+ // timer = setTimeout(() => { func.apply(this, args); }, timeout);
11
+ // };
12
+ // }
13
+
14
+ const debouncedFocus = (event) => {
15
+ // if (focused) {
16
+ // return false;
17
+ // }
18
+
19
+ const autofocus = document.querySelector('[autofocus]');
20
+
21
+ if (window.stzhComponents.fixAutofocus
22
+ && !document.location.hash
23
+ && autofocus
24
+ && event.detail.namespace === packageName
25
+ && autofocus.tagName.toLowerCase().indexOf('stzh-') === 0
26
+ && 'focus' in autofocus
27
+ ) {
28
+ autofocus.focus();
29
+ // focused = true;
30
+ } else if (window.stzhComponents.fixHashfocus && document.location.hash) {
31
+ const hashElement = document.querySelector(document.location.hash);
32
+
33
+ if (hashElement) {
34
+ hashElement.scrollIntoView();
35
+ // focused = true;
36
+ }
37
+ }
38
+ }
4
39
 
5
40
  /**
6
41
  * Execute setFocus method if it exists
@@ -8,15 +43,5 @@ const packageName = packageNameScoped.substring(packageNameScoped.indexOf('/')+1
8
43
  * when (child components are loaded)
9
44
  */
10
45
  export function applyAutofocus() {
11
- window.addEventListener('appload', (event) => {
12
- const autofocus = document.querySelector('[autofocus]');
13
-
14
- if (autofocus
15
- && event.detail.namespace === packageName
16
- && autofocus.tagName.toLowerCase().indexOf('stzh-') === 0
17
- && 'focus' in autofocus
18
- ) {
19
- autofocus.focus();
20
- }
21
- });
46
+ window.addEventListener('appload', debouncedFocus);
22
47
  }
@@ -11,6 +11,8 @@ export default function () {
11
11
  cacheTranslations: true,
12
12
  formats: {},
13
13
  translations: null,
14
+ fixAutofocus: true,
15
+ fixHashfocus: true,
14
16
  ...window.stzhComponents || {},
15
17
  version,
16
18
  supportedLocales: ['de', 'en'],
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,MAAM;AACN,sBAAsB;AACtB,MAAM;AAokDN,MAAM,KAAW,GAAG,CAoMnB;AApMD,WAAiB,GAAG;EACL,oBAAgB,GAAG,QAAQ,CAAC;EAE5B,kBAAc,GAAG,QAAQ,CAAC;EAC1B,2BAAuB,GAAG,sBAAsB,CAAC;EAEjD,sBAAkB,GAAG,YAAY,CAAC;EAClC,2BAAuB,GAAG,GAAG,CAAC;EAC9B,4BAAwB,GAAG,GAAG,CAAC;EAC/B,sBAAkB,GAAG,GAAG,CAAC;EACzB,qBAAiB,GAAG,GAAG,CAAC;EACxB,mBAAe,GAAG,GAAG,CAAC;AAyLrC,CAAC,EApMgB,GAAG,KAAH,GAAG,QAoMnB;AAED,MAAM;AACN,0BAA0B;AAC1B,MAAM;AAEN,cAAc,cAAc,CAAC","sourcesContent":["// ---\n// Global window types\n// ---\n\nimport { StzhLocaleAdapter } from './utils/date-adapter';\n\nimport {\n StzhLocaleComponent,\n StzhLocaleFormats,\n StzhLocaleGlobals,\n} from './utils/translation-utils';\n\nexport type WindowStzhComponents = {\n version: string\n supportedLocales: string[]\n defaultLocale: string\n translations: null | StzhLocaleComponent\n translationsLoading: Promise<StzhLocaleComponent>\n pathMedia: string\n pathTranslations: string\n pathVendors: string\n cacheTranslations: boolean\n formats: StzhLocaleFormats\n utils: {\n getLocale: (element: HTMLElement) => string\n fetchTranslations: (host: HTMLElement, component: string) => Promise<StzhLocaleComponent & any>\n\n format: (date: Date, type: string) => string\n parse:(string: string, type: string) => Date\n formatSpan: (date: Date | string, date2: Date | string, type: string) => string\n parseSpan: (string: string, type: string) => [Date, Date, string]\n createFormatParseAdapter: (formats: StzhLocaleFormats, globals: StzhLocaleGlobals) => StzhLocaleAdapter\n }\n}\n\ndeclare global {\n interface Window {\n stzhComponents: WindowStzhComponents\n // global third party library\n pannellum: any\n Dropzone: any\n proj4: any\n // readspeaker lib APIs\n readpage: any\n ReadSpeaker: any\n rsConf: any\n rspkr: any\n }\n}\n\n// ---\n// Event Types\n// ---\n\n/* Sortable */\n\nexport type StzhSortableUpdateEvent = {\n component: \"stzh-sortable\"\n data: string[]\n item: HTMLElement\n newIndex: number\n oldIndex: number\n}\n\nexport type StzhSortableDisableEvent = {\n component: \"stzh-sortable\"\n disabled: boolean\n}\n\n/* Panorama */\n\nexport type PanoramaScene = {\n sceneId: string\n imageSrc: string\n imageTitle: string\n\n imageAuthor?: string\n imageType?: \"equirectangular\" | \"cubemap\" | \"multires\"\n caption?: string\n copyright?: string\n\n pitch?: number\n yaw?: number\n hfov?: number\n\n hotspots: PanoramaSceneHotSpot[]\n}\n\nexport type PanoramaScenesLibrary = {\n [sceneKey: string]: {\n title: string\n author: string\n panorama: string\n type?: \"equirectangular\" | \"cubemap\" | \"multires\"\n\n pitch?: number\n yaw?: number\n hfov?: number\n\n hotSpots: PanoramaSceneHotSpot[]\n }\n}\n\nexport type PanoramaSceneHotSpot = {\n pitch: number\n yaw: number\n type: string\n text: string\n url?: string\n id?: string,\n sceneId?: string\n targetPitch?: number\n targetYaw?: number\n\n cssClass?: string\n createTooltipFunc?: Function\n createTooltipArgs?: any\n}\n\nexport type StzhPanoramaLoadEvent = {\n component: \"stzh-panorama\"\n}\n\nexport type StzhPanoramaChangeEvent = {\n component: \"stzh-panorama\"\n value: { pitch: number, yaw: number, hfov: number }\n}\n\nexport type StzhPanoramaFullscreenChangeEvent = {\n component: \"stzh-panorama\"\n value: boolean\n}\n\nexport type StzhPanoramaSceneChangeEvent = {\n component: \"stzh-panorama\"\n value: string\n}\n\nexport type StzhPanoramaZoomChangeEvent = {\n component: \"stzh-panorama\"\n value: number\n}\n\n/* Iframe */\n\nexport type StzhIframeView =\n | \"iframe\"\n | \"cookiewall\"\n | \"preview\";\n\nexport type StzhIframeViewChangeEvent = {\n component: \"stzh-iframe\"\n value: StzhIframeView\n}\n\nexport type StzhIframePreviewSkipEvent = {\n component: \"stzh-iframe\"\n}\n\n/* Olmap */\n\nexport type OlmapLayer = {\n title?: string,\n thumbnailUrl: string,\n options: {\n url: string,\n layer: string,\n matrixSet: string,\n origin: number[],\n extent: number[]\n }\n}\n\nexport type StzhOlmapInitializedEvent = {\n component: \"stzh-olmap\"\n}\n\nexport type StzhOlmapPostRenderEvent = {\n component: \"stzh-olmap\"\n}\n\nexport type StzhOlmapMoveStartEvent = {\n component: \"stzh-olmap\"\n}\n\nexport type StzhOlmapMoveEndEvent = {\n component: \"stzh-olmap\"\n}\n\n/* Sticky */\n\nexport type StzhStickyStuckTopEvent = {\n component: \"stzh-sticky\"\n sticky: boolean\n}\n\nexport type StzhStickyStuckBottomEvent = {\n component: \"stzh-sticky\"\n sticky: boolean\n}\n\n/* Table */\n\nexport type StzhDatatableCellData = {\n value: string | number\n isHeader?: boolean\n align?: \"left\" | \"right\" | \"center\"\n valign?: \"auto\" | \"middle\" | \"bottom\" | \"top\"\n id?: string\n}\n\nexport type StzhDatatableRowData = {\n [key: string]: StzhDatatableCellData\n};\n\nexport type StzhDatatableInputRowData = {\n [key: string]: StzhDatatableCellData | string | number\n};\n\nexport type StzhDatatableColumnData = {\n key: string\n text?: string\n align?: \"left\" | \"right\" | \"center\"\n valign?: \"auto\" | \"middle\" | \"bottom\" | \"top\"\n sort?: boolean | {\n type?: \"numerical\" | \"text\"\n field?: string\n }\n fixed?: \"left\" | \"right\"\n isHeader?: boolean\n hideColumnHeading?: boolean\n analyticsId?: string\n style?: {\n [key: string]: string\n },\n};\n\nexport type StzhDatatableRowClickEvent = {\n component: \"stzh-datatable\"\n row: any\n originalEvent: MouseEvent\n}\n\nexport type StzhDatatableCellClickEvent = {\n component: \"stzh-datatable\"\n row: any\n column: any\n cellIndex: number\n rowIndex: number\n originalEvent: MouseEvent\n}\n\nexport type StzhDatatableHeadingCellClickEvent = {\n component: \"stzh-datatable\"\n column: any\n index: number\n originalEvent: MouseEvent\n}\n\nexport type StzhDatatableSortClickEvent = {\n component: \"stzh-datatable\"\n column: any\n originalEvent: MouseEvent\n}\n\nexport type StzhDatatableSortByChangeEvent = {\n component: \"stzh-datatable\"\n value: string\n oldValue: string\n}\n\nexport type StzhDatatableSortDirectionChangeEvent = {\n component: \"stzh-datatable\"\n value: \"asc\" | \"desc\"\n oldValue: \"asc\" | \"desc\"\n}\n\n/* Archivelist */\n\nexport type StzhArchivelistItem = {\n label: string\n labelClamp?: any // attributes of HTMLStzhClampElement\n href: string\n dateline?: string\n description?: string\n descriptionClamp?: any // attributes of HTMLStzhClampElement\n}\n\nexport type StzhArchivelistItemClickEvent = {\n component: \"stzh-archivelist\"\n item: StzhArchivelistItem\n originalEvent: MouseEvent\n}\n\n/* Anchornav */\n\nexport type StzhAnchornavItem = {\n label: string\n href?: string\n icon?: string\n}\n\nexport type StzhAnchornavItemClickEvent = {\n component: \"stzh-anchornav\"\n item: StzhAnchornavItem\n originalEvent: MouseEvent\n}\n\n/* Status */\n\nexport type StzhStatusType = \"default\" | \"success\" | \"warning\" | \"error\" | \"info\";\n\n/* Badge */\n\nexport type StzhBadgeType = \"default\" | \"success\" | \"warning\" | \"error\" | \"info\";\n\n/* Actionset */\n\nexport type StzhActionsetItem = {\n id: string\n label?: string\n icon?: string\n iconPosition?: \"left\" | \"right\"\n iconOnly?: boolean\n badge?: string\n badgeEmpty?: boolean\n badgeType?: StzhBadgeType\n variant?: StzhButtonVariant\n size?: StzhButtonSize\n badgePosition?: \"icon\" | \"button\"\n tooltipContent?: string\n}\n\nexport type StzhActionsetItemClickEvent = {\n component: \"stzh-actionset\"\n action: StzhActionsetItem\n originalEvent: MouseEvent\n}\n\n/* Audio */\n\nexport type StzhAudioPlayEvent = {\n component: \"stzh-audio\"\n}\n\nexport type StzhAudioPlayingEvent = {\n component: \"stzh-audio\"\n}\n\nexport type StzhAudioPauseEvent = {\n component: \"stzh-audio\"\n}\n\nexport type StzhAudioReplayEvent = {\n component: \"stzh-audio\"\n}\n\nexport type StzhAudioEndEvent = {\n component: \"stzh-audio\"\n}\n\nexport type StzhAudioEndedEvent = {\n component: \"stzh-audio\"\n}\n\nexport type StzhAudioErrorEvent = {\n component: \"stzh-audio\"\n originalEvent: ErrorEvent\n}\n\n/* Share */\n\nexport type ShareService = \"facebook\" | \"twitter\" | \"linkedin\" | \"xing\" | \"mail\";\n\n/* Footer Editor */\n\nexport type StzhEditorLink = {\n label: string\n href?: string\n icon?: string\n rel?: string\n target?: string\n}\n\n/* Header */\n\nexport type StzhHeaderMenuItem = {\n label: string\n href?: string\n items?: StzhHeaderMenuItem[]\n id?: string\n}\n\nexport type StzhHeaderMetanavItem = {\n label: string\n labelShort?: string\n labelHidden?: boolean\n stay?: boolean\n stayAndShowInMobileMenu?: boolean\n variant?: \"default\" | \"secondary\" // used for menu-item and popover\n size?: \"default\" | \"large\" // used for menu-item and popover\n important?: boolean\n importantSubmenu?: boolean\n badgeEmpty?: boolean\n badgeType?: StzhBadgeType\n badge?: string\n icon?: string\n iconOpen?: string\n href?: string\n target?: string\n id?: string\n items?: {\n label: string\n href?: string\n target?: string\n icon?: string\n counter?: number\n badge?: string\n badgeType?: StzhBadgeType\n }[],\n itemButton?: {\n label: string\n href?: string\n target?: string\n size?: StzhButtonSize\n }\n}\n\nexport type StzhHeaderMetanavItemClickEvent = {\n component: \"stzh-header\"\n item: StzhHeaderMetanavItem\n originalEvent: MouseEvent\n}\n\nexport type StzhHeaderLanguageChangeEvent = {\n component: \"stzh-header\"\n value: string\n}\n\nexport type StzhHeaderSearchChangeEvent = {\n component: \"stzh-header\"\n originalEvent: InputEvent | MouseEvent\n value: string\n}\n\nexport type StzhHeaderSearchChangedEvent = {\n component: \"stzh-header\"\n originalEvent: InputEvent | MouseEvent\n value: string\n}\n\n/* Breadcrumb */\n\nexport type StzhBreadcrumbItem = {\n label: string\n href: string\n}\n\n/* Card */\n\nexport type StzhCardHeaderAction = {\n id: string\n label?: string\n icon?: string\n badge?: string\n badgeEmpty?: boolean\n badgeType?: StzhBadgeType\n}\n\nexport type StzhCardSubtitleClickEvent = {\n component: \"stzh-card\"\n originalEvent: MouseEvent\n}\n\nexport type StzhCardCollapseEvent = {\n component: \"stzh-card\"\n collapsed: boolean\n}\n\nexport type StzhCardClickEvent = {\n component: \"stzh-card\"\n originalEvent: MouseEvent\n}\n\nexport type StzhCardStarClickEvent = {\n component: \"stzh-card\"\n starred: boolean\n originalEvent: MouseEvent\n}\n\nexport type StzhCardHeaderActionClickEvent = {\n component: \"stzh-card\"\n action: StzhCardHeaderAction\n originalEvent: MouseEvent\n}\n\n/* Card Navigation */\n\nexport type StzhCardNavigationClickEvent = {\n component: \"stzh-card-navigation\"\n originalEvent: MouseEvent\n}\n\n/* Card Searchresult */\n\nexport type StzhCardSearchresultClickEvent = {\n component: \"stzh-card-searchresult\"\n originalEvent: MouseEvent\n}\n\n/* Search */\n\nexport type StzhSearchResult = {\n html?: string\n\n href?: string\n heading?: string\n dateline?: string\n description?: string\n image?: string\n imagePosition?: \"default\" | \"right\"\n tagLeft?: string\n tagRight?: string\n tagRightColor?: string\n tagRightBackgroundColor?: string\n meta?: string[],\n breadcrumbItems?: StzhBreadcrumbItem[]\n eventDateStart?: string\n eventDateEnd?: string\n eventLocation?: string\n download?: string\n downloadHeading?: string\n downloadMeta?: string[]\n}\n\n/* Microsite Teaserlist */\n\nexport type StzhMicrositeTeaserlistTag = {\n id: string\n name: string\n}\n\nexport type StzhMicrositeTeaserlistItem = {\n title?: string\n description?: string\n image?: string\n link: string\n tags: string[]\n teaserid: string\n}\n\n/* Cardlist */\n\nexport type StzhCardlistCollapseAllEvent = {\n component: \"stzh-cardlist\"\n allCollapsed: boolean\n}\n\n/* Calendar */\n\nexport type StzhCalendarChangeEvent = {\n component: \"stzh-calendar\"\n valueAsDate: Date\n value: string\n}\n\n/* Datepicker */\n\nexport type StzhDatepickerChangeEvent = {\n component: \"stzh-datepicker\"\n value: string,\n valueAsDate: Date\n}\n\n/* Pagination */\n\nexport type StzhPaginationChangeEvent = {\n component: \"stzh-pagination\"\n page: number\n}\n\n/* Timepicker */\n\nexport type StzhTimepickerChangeEvent = {\n component: \"stzh-timepicker\"\n value: string\n}\n\n/* Monthyearpicker */\n\nexport type StzhMonthyearpickerChangeEvent = {\n component: \"stzh-monthyearpicker\"\n value: string\n valueMonth: string\n valueYear: string\n}\n\n/* Amount */\n\nexport type StzhAmountChangeEvent = {\n component: \"stzh-amount\"\n value: string\n}\n\n/* Appointments */\n\nexport type StzhAppointmentsChangeEvent = {\n component: \"stzh-appointments\"\n value: string\n}\n\n/* Skiplink */\n\nexport type StzhSkiplinkFocusEvent = {\n component: \"stzh-skiplink\"\n originalEvent: FocusEvent\n}\n\nexport type StzhSkiplinkBlurEvent = {\n component: \"stzh-skiplink\"\n originalEvent: FocusEvent\n}\n\n/* Checkbox */\n\nexport type StzhCheckboxChangeEvent = {\n component: \"stzh-checkbox\"\n originalEvent: InputEvent | Event\n value: string\n checked: boolean\n}\n\nexport type StzhCheckboxFocusEvent = {\n component: \"stzh-checkbox\"\n originalEvent: FocusEvent\n}\n\nexport type StzhCheckboxBlurEvent = {\n component: \"stzh-checkbox\"\n originalEvent: FocusEvent\n}\n\nexport type StzhCheckboxgroupChangeEvent = {\n component: \"stzh-checkboxgroup\"\n value: string[]\n}\n\n/* Toggle */\n\nexport type StzhToggleChangeEvent = {\n component: \"stzh-toggle\"\n originalEvent: InputEvent\n value: string\n checked: boolean\n}\n\nexport type StzhToggleFocusEvent = {\n component: \"stzh-toggle\"\n originalEvent: FocusEvent\n}\n\nexport type StzhToggleBlurEvent = {\n component: \"stzh-toggle\"\n originalEvent: FocusEvent\n}\n\n/* Button */\n\nexport type StzhButtonVariant = \"default\" | \"secondary\" | \"tertiary\" | \"tertiary-plain\";\nexport type StzhButtonSize = \"default\" | \"small\" | \"tiny\";\n\nexport type StzhButtonFocusEvent = {\n component: \"stzh-button\"\n originalEvent: FocusEvent\n}\n\nexport type StzhButtonBlurEvent = {\n component: \"stzh-button\"\n originalEvent: FocusEvent\n}\n\nexport type StzhButtonChangeEvent = {\n component: \"stzh-button\"\n originalEvent: InputEvent\n value: string\n checked: boolean\n}\n\n/* Link */\n\nexport type StzhLinkSize = \"default\" | \"small\" | \"inherit\";\n\nexport type StzhLinkFocusEvent = {\n component: \"stzh-link\"\n originalEvent: FocusEvent\n}\n\nexport type StzhLinkBlurEvent = {\n component: \"stzh-link\"\n originalEvent: FocusEvent\n}\n\n/* Menu (Item) */\n\nexport type StzhMenuVariant = \"default\" | \"secondary\"\nexport type StzhMenuSize = \"default\" | \"large\"\n\nexport type StzhMenuItemFocusEvent = {\n component: \"stzh-menu-item\"\n originalEvent: FocusEvent\n}\n\nexport type StzhMenuItemBlurEvent = {\n component: \"stzh-menu-item\"\n originalEvent: FocusEvent\n}\n\n/* Carousel */\n\nexport type StzhCarouselSlideStartEvent = {\n component: \"stzh-carousel\"\n index: number\n}\n\nexport type StzhCarouselSlidePassedEvent = {\n component: \"stzh-carousel\"\n index: number\n}\n\nexport type StzhCarouselSlideEndEvent = {\n component: \"stzh-carousel\"\n index: number\n}\n\n/* Chipselect */\n\nexport type StzhChipselectItem = {\n label: string\n value: string\n disabled?: boolean\n variant?: StzhChipVariant\n type?: StzhChipType\n inverted?: boolean\n counter?: string\n icon?: string\n size?: StzhChipSize\n}\n\nexport type StzhChipselectChangeEvent = {\n component: \"stzh-chipselect\"\n value: string\n}\n\n/* Gallery */\n\nexport type StzhGalleryItem = {\n width: number\n height: number\n src: string\n srcLightbox?: string\n srcsetLightbox?: string\n alt?: string\n copyright?: string\n heading?: string\n headingLightbox?: string\n caption?: string\n captionLightbox?: string\n lightboxHtml?: string\n hideCounter?: boolean\n}\n\n/* Datalist */\n\nexport type StzhDatalistItemEntry = {\n value: string\n leadingIcon?: string\n label?: string\n meta?: string\n icon?: string\n iconLabel?: string\n iconTooltip?: string\n statusLabel?: string\n statusType?: StzhStatusType\n href?: string\n rel?: string\n target?: string\n items?: StzhDatalistItemEntry[]\n}\n\nexport type StzhDatalistVariant = \"default\" | \"table\"\nexport type StzhDatalistDirection = \"vertical\" | \"horizontal\"\n\nexport type StzhDatalistVariantChangeEvent = {\n component: \"stzh-datalist\"\n value: StzhDatalistVariant\n}\n\nexport type StzhDatalistDirectionChangeEvent = {\n component: \"stzh-datalist\"\n value: \"vertical\" | \"horizontal\"\n}\n\n/* Datalist Item */\n\nexport type StzhDatalistItemActionClickEvent = {\n component: \"stzh-datalist-item\"\n originalEvent: MouseEvent\n}\n\n/* Datamessagelist */\n\nexport type StzhDatamessagelistItemEntryMeta = {\n label: string\n value: string\n}\n\nexport type StzhDatamessagelistItemEntryAction = {\n id: string | number\n icon: string\n label: string,\n badge?: string\n}\n\nexport type StzhDatamessagelistItemEntryTag = {\n icon: string\n label: string\n type?: StzhChipType\n inverted?: boolean\n}\n\nexport type StzhDatamessagelistItemEntryLoadingStatus = {\n percent: number\n label: string\n type: \"default\" | \"success\" | \"warning\" | \"error\"\n}\n\nexport type StzhDatamessagelistItemClickEvent = {\n component: \"stzh-datamessagelist-item\",\n originalEvent: MouseEvent\n}\n\nexport type StzhDatamessagelistItemActionClickEvent = {\n component: \"stzh-datamessagelist-item\",\n action: StzhDatamessagelistItemEntryAction,\n originalEvent: MouseEvent\n}\n\n/* Cta */\n\nexport type StzhCtaFocusEvent = {\n component: \"stzh-cta\"\n originalEvent: FocusEvent\n}\n\nexport type StzhCtaBlurEvent = {\n component: \"stzh-cta\"\n originalEvent: FocusEvent\n}\n\n/* Tag */\n\nexport type StzhTagSize = \"default\" | \"large\"\nexport type StzhTagType = \"default\" | \"secondary\"\n\nexport type StzhTagClickEvent = {\n component: \"stzh-tag\",\n originalEvent: MouseEvent\n}\n\nexport type StzhTagFocusEvent = {\n component: \"stzh-tag\"\n originalEvent: FocusEvent\n}\n\nexport type StzhTagBlurEvent = {\n component: \"stzh-tag\"\n originalEvent: FocusEvent\n}\n\n/* Chip */\n\nexport type StzhChipVariant = \"tag\" | \"filter\" | \"input\"\nexport type StzhChipSize = \"default\" | \"small\" | \"large\"\nexport type StzhChipType = \"default\" | \"success\" | \"warning\" | \"error\" | \"info\"\n\nexport type StzhChipClickEvent = {\n component: \"stzh-chip\",\n originalEvent: MouseEvent\n}\n\nexport type StzhChipRemoveEvent = {\n component: \"stzh-chip\",\n originalEvent: MouseEvent\n}\n\nexport type StzhChipFocusEvent = {\n component: \"stzh-chip\"\n originalEvent: FocusEvent\n}\n\nexport type StzhChipBlurEvent = {\n component: \"stzh-chip\"\n originalEvent: FocusEvent\n}\n\n/* VBZ Major Ticker */\n\nexport type StzhVbzMajortickerDisturbance = {\n id: string\n head: string\n text: string\n startDate: Date\n endDate: Date\n altStart: string\n altEnd: string\n infoUrl?: VbzTickerInfoUrl\n};\n\nexport type StzhVbzMajortickerDisturbanceFetchedEvent = {\n component: \"stzh-vbz-majorticker\"\n disturbance: StzhVbzMajortickerDisturbance | null\n}\n\n/* VBZ Ticker */\n\nexport type VbzTickerInfoUrl = {\n name: string\n url: string\n};\n\nexport type VbzTickerDisturbance = {\n id: string\n head: string\n startDate: Date\n endDate: Date\n altStart: string\n altEnd: string\n baseType?: string\n infoUrl?: VbzTickerInfoUrl\n category:\n | typeof VBZ.DISTURBANCE_INFORMATION\n | typeof VBZ.DISTURBANCE_CONSTRUCTION\n | typeof VBZ.DISTURBANCE_NORMAL\n | typeof VBZ.DISTURBANCE_EVENT\n | typeof VBZ.DISTURBANCE_BUS\n};\n\nexport type VbzTickerLine = {\n line: VBZ.Lines\n name: string\n disturbances: VbzTickerDisturbance[]\n // whether normal or big disturbance for this line exist\n alert: boolean\n // 2 = Fernverkehr / 16 = Schiff / 32 = S-Bahn/Reg / 64 = Bus / 128 = Bergbahn / 256 = Nachtnetz / 512 = Tram\n category: \"2\" | \"16\" | \"32\" | \"64\" | \"128\" | \"256\" | \"512\"\n};\n\n/* VBZ Line Chip */\n\nexport type StzhVbzLinechipLine = {\n color: string\n background: string\n comment?: string\n}\n\nexport type StzhVbzLinechipFocusEvent = {\n component: \"stzh-vbz-linechip\"\n originalEvent: FocusEvent\n}\n\nexport type StzhVbzLinechipBlurEvent = {\n component: \"stzh-vbz-linechip\"\n originalEvent: FocusEvent\n}\n\n/* Clamp */\n\nexport type StzhClampClampEvent = {\n component: \"stzh-clamp\"\n clamped: boolean\n}\n\nexport type StzhClampExpandEvent = {\n component: \"stzh-clamp\"\n expanded: boolean\n}\n\n/* Image Comparison */\n\nexport type StzhImagecomparisonChangeEvent = {\n component: \"stzh-imagecomparison\"\n originalEvent: InputEvent\n value: number\n}\n\n/* Dialog */\n\nexport type StzhDialogOpenEvent = {\n component: \"stzh-dialog\"\n}\n\nexport type StzhDialogCloseEvent = {\n component: \"stzh-dialog\"\n}\n\n/* Contact */\n\nexport type ContactEmail = {\n label: string\n text: string\n href?: string\n analyticsId?: string\n}\n\nexport type ContactNumber = {\n type: \"tel\" | \"fax\"\n label: string\n number: string\n analyticsId?: string\n}\n\nexport type StzhContactAvailabilityItem = {\n weekday: string\n hours: string[]\n}\n\n/* Eventinfo */\n\nexport type StzhEventinfoItemInput = {\n calendarUrl?: string\n calendarLabel?: string\n start: string | Date\n end: string | Date\n}\n\nexport type StzhEventinfoItem = {\n calendarUrl?: string\n calendarLabel?: string\n start: Date\n end: Date\n}\n\nexport type StzhEventinfoMonth = {\n name: string\n events: StzhEventinfoItem[]\n}\n\n/* Overlay */\n\nexport type StzhOverlayOpenEvent = {\n component: \"stzh-overlay\"\n}\n\nexport type StzhOverlayCloseEvent = {\n component: \"stzh-overlay\"\n}\n\n/* Banner */\n\nexport type StzhBannerOpenEvent = {\n component: \"stzh-banner\"\n}\n\nexport type StzhBannerCloseEvent = {\n component: \"stzh-banner\"\n}\n\n/* Message */\n\nexport type StzhMessageOpenEvent = {\n component: \"stzh-message\"\n}\n\nexport type StzhMessageCloseEvent = {\n component: \"stzh-message\"\n}\n\n/* Toastbar */\n\nexport type StzhToastbarInitialToast = {\n label: string\n type?: StzhToastType\n link?: HTMLStzhLinkElement | {\n href: string,\n label: string\n },\n cookie?: string\n cookieExpires?: number\n}\n\n/* Disturber */\n\nexport type StzhDisturberOpenEvent = {\n component: \"stzh-disturber\"\n}\n\nexport type StzhDisturberCloseEvent = {\n component: \"stzh-disturber\"\n}\n\nexport type StzhDisturberOpenedEvent = {\n component: \"stzh-disturber\"\n}\n\nexport type StzhDisturberClosedEvent = {\n component: \"stzh-disturber\"\n}\n\n/* Toast */\n\nexport type StzhToastType = \"info\" | \"success\" | \"warning\" | \"error\";\n\nexport type StzhToastOpenEvent = {\n component: \"stzh-toast\"\n}\n\nexport type StzhToastCloseEvent = {\n component: \"stzh-toast\"\n}\n\nexport type StzhToastOpenedEvent = {\n component: \"stzh-toast\"\n}\n\nexport type StzhToastClosedEvent = {\n component: \"stzh-toast\"\n}\n\n/* Ghettobox */\n\nexport type StzhGhettoboxOpenEvent = {\n component: \"stzh-ghettobox\"\n}\n\nexport type StzhGhettoboxCloseEvent = {\n component: \"stzh-ghettobox\"\n}\n\n/* Input */\n\nexport type StzhInputChangeEvent = {\n component: \"stzh-input\"\n originalEvent: InputEvent | MouseEvent\n value: string\n}\n\nexport type StzhInputChangedEvent = {\n component: \"stzh-input\"\n originalEvent: InputEvent | MouseEvent\n value: string\n}\n\nexport type StzhInputFocusEvent = {\n component: \"stzh-input\"\n originalEvent: FocusEvent\n}\n\nexport type StzhInputBlurEvent = {\n component: \"stzh-input\"\n originalEvent: FocusEvent\n}\n\n/* Popover */\n\nexport type StzhPopoverOpenEvent = {\n component: \"stzh-popover\"\n}\n\nexport type StzhPopoverOpenedEvent = {\n component: \"stzh-popover\"\n}\n\nexport type StzhPopoverCloseEvent = {\n component: \"stzh-popover\"\n}\n\nexport type StzhPopoverClosedEvent = {\n component: \"stzh-popover\"\n}\n\n/* Timeline */\n\nexport type StzhTimelineFoldableChangeEvent = {\n component: \"stzh-timeline\"\n value: boolean\n}\n\n/* TimelineItem */\n\nexport type StzhTimelineItemOpenEvent = {\n component: \"stzh-timeline-item\"\n}\n\nexport type StzhTimelineItemOpenedEvent = {\n component: \"stzh-timeline-item\"\n}\n\nexport type StzhTimelineItemCloseEvent = {\n component: \"stzh-timeline-item\"\n}\n\nexport type StzhTimelineItemClosedEvent = {\n component: \"stzh-timeline-item\"\n}\n\nexport type StzhTimelineItemFocusEvent = {\n component: \"stzh-timeline-item\"\n originalEvent: FocusEvent\n}\n\nexport type StzhTimelineItemBlurEvent = {\n component: \"stzh-timeline-item\"\n originalEvent: FocusEvent\n}\n\n/* Accordion */\n\nexport type StzhAccordionVariant = \"default\" | \"title\" | \"table\";\n\nexport type StzhAccordionVariantChangeEvent = {\n component: \"stzh-accordion\"\n value: StzhAccordionVariant\n}\n\nexport type StzhAccordionItemOpenEvent = {\n component: \"stzh-accordion-item\"\n}\n\nexport type StzhAccordionItemOpenedEvent = {\n component: \"stzh-accordion-item\"\n}\n\nexport type StzhAccordionItemCloseEvent = {\n component: \"stzh-accordion-item\"\n}\n\nexport type StzhAccordionItemClosedEvent = {\n component: \"stzh-accordion-item\"\n}\n\nexport type StzhAccordionItemFocusEvent = {\n component: \"stzh-accordion-item\"\n originalEvent: FocusEvent\n}\n\nexport type StzhAccordionItemBlurEvent = {\n component: \"stzh-accordion-item\"\n originalEvent: FocusEvent\n}\n\n/* Tooltip */\n\nexport type StzhTooltipOpenEvent = {\n component: \"stzh-tooltip\"\n}\n\nexport type StzhTooltipOpenedEvent = {\n component: \"stzh-tooltip\"\n}\n\nexport type StzhTooltipCloseEvent = {\n component: \"stzh-tooltip\"\n}\n\nexport type StzhTooltipClosedEvent = {\n component: \"stzh-tooltip\"\n}\n\n/* Radio */\n\nexport type StzhRadioChangeEvent = {\n component: \"stzh-radio\"\n originalEvent: InputEvent\n value: string\n checked: boolean\n}\n\nexport type StzhRadioFocusEvent = {\n component: \"stzh-radio\"\n originalEvent: FocusEvent\n}\n\nexport type StzhRadioBlurEvent = {\n component: \"stzh-radio\"\n originalEvent: FocusEvent\n}\n\n/* Dropdown */\n\nexport type StzhDropdownOption = {\n text: string,\n value: string,\n disabled?: boolean\n}\n\nexport type StzhDropdownChangeEvent = {\n component: \"stzh-dropdown\",\n value: string | string[]\n}\n\nexport type StzhDropdownItemAddEvent = {\n component: \"stzh-dropdown\",\n value: string\n}\n\nexport type StzhDropdownItemRemoveEvent = {\n component: \"stzh-dropdown\",\n value: string\n}\n\nexport type StzhDropdownOptionAddEvent = {\n component: \"stzh-dropdown\",\n value: string\n}\n\nexport type StzhDropdownOptionRemoveEvent = {\n component: \"stzh-dropdown\",\n value: string\n}\n\nexport type StzhDropdownOpenEvent = {\n component: \"stzh-dropdown\"\n}\n\nexport type StzhDropdowCloseEvent = {\n component: \"stzh-dropdown\"\n}\n\nexport type StzhDropdownFocusEvent = {\n component: \"stzh-dropdown\"\n originalEvent: {\n target: Element\n }\n}\n\nexport type StzhDropdownBlurEvent = {\n component: \"stzh-dropdown\"\n}\n\nexport type StzhDropdowInitEvent = {\n component: \"stzh-dropdown\"\n}\n\n/** Progressbar */\n\nexport type StzhProgressbarDataItem = {\n label: string\n icon?: string\n disabled?: boolean\n analyticsId?: string\n}\n\n/* Progressbar Item */\n\nexport type StzhProgressbarItemClickEvent = {\n component: \"stzh-progressbar-item\"\n originalEvent: MouseEvent\n index: number\n}\n\nexport type StzhProgressbarItemDottedClickEvent = {\n component: \"stzh-progressbar-item\"\n originalEvent: MouseEvent\n index: number\n}\n\n/* Upload */\n\nexport type StzhUploadFilesItem = {\n name: string\n size: number\n [key: string]: any\n}\n\nexport type StzhUploadFile = File & {\n xhr: XMLHttpRequest,\n status: string\n upload: any\n accepted: boolean\n previewElement: HTMLElement\n}\n\nexport type StzhUploadFileAddedEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile\n}\n\nexport type StzhUploadFilesAddedEvent = {\n component: \"stzh-upload\",\n files: StzhUploadFile[]\n}\n\nexport type StzhUploadFileRemoveEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile\n}\n\nexport type StzhUploadFileRemovedEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile\n force: boolean\n}\n\nexport type StzhUploadSendingEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile,\n xhr: XMLHttpRequest,\n formData: FormData\n}\n\nexport type StzhUploadSendingMultipleEvent = {\n component: \"stzh-upload\",\n files: StzhUploadFile[],\n xhr: XMLHttpRequest,\n formData: FormData\n}\n\nexport type StzhUploadProcessingEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile\n}\n\nexport type StzhUploadProcessingMultipleEvent = {\n component: \"stzh-upload\",\n files: StzhUploadFile[]\n}\n\nexport type StzhUploadProgressEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile,\n progress: number,\n bytesSent: number\n}\n\nexport type StzhUploadProgressTotalEvent = {\n component: \"stzh-upload\",\n totalUploadProgress: number,\n totalBytes: number,\n totalBytesSent: number\n}\n\nexport type StzhUploadErrorEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile,\n message: string,\n xhr: XMLHttpRequest\n}\n\nexport type StzhUploadErrorMultipleEvent = {\n component: \"stzh-upload\",\n files: StzhUploadFile[],\n message: string,\n xhr: XMLHttpRequest\n}\n\nexport type StzhUploadSuccessEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile,\n responseText: string,\n event: ProgressEvent\n}\n\nexport type StzhUploadSuccessMultipleEvent = {\n component: \"stzh-upload\",\n files: StzhUploadFile[],\n responseText: string,\n event: ProgressEvent\n}\n\nexport type StzhUploadCanceledEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile\n}\n\nexport type StzhUploadCanceledMultipleEvent = {\n component: \"stzh-upload\",\n files: StzhUploadFile[]\n}\n\nexport type StzhUploadCompleteEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile\n}\n\nexport type StzhUploadCompleteMultipleEvent = {\n component: \"stzh-upload\",\n files: StzhUploadFile[]\n}\n\n// Merged Types\n\nexport type StzhFocusEvent =\n | StzhAccordionItemFocusEvent\n | StzhButtonFocusEvent\n | StzhCheckboxFocusEvent\n | StzhChipFocusEvent\n | StzhDropdownFocusEvent\n | StzhInputFocusEvent\n | StzhLinkFocusEvent\n | StzhMenuItemFocusEvent\n | StzhRadioFocusEvent\n | StzhToggleFocusEvent\n | StzhVbzLinechipFocusEvent\n | StzhSkiplinkFocusEvent\n\n// ---\n// Prop Types\n// ---\n\nexport type StzhCalendarDateDisabledPredicate = (date: Date) => boolean\n\n\nexport namespace Layout {\n export type Ratio = \"16:9\" | \"1:1\" | \"5:4\" | \"4:3\" | \"3:2\" | \"2:1\" | \"21:9\";\n\n export type Justify =\n | \"start\"\n | \"end\"\n | \"center\"\n | \"between\"\n | \"around\"\n | \"evenly\";\n\n export type Items =\n | \"start\"\n | \"end\"\n | \"center\"\n | \"baseline\"\n | \"stretch\";\n\n export type JustifySelf =\n | \"auto\"\n | Justify;\n\n export type AlignSelf =\n | \"auto\"\n | Items;\n}\n\nexport namespace Space {\n export type Sizes =\n | \"xxxsmall\"\n | \"xxsmall\"\n | \"xsmall\"\n | \"small\"\n | \"medium\"\n | \"large\"\n | \"xlarge\"\n | \"xxlarge\"\n | \"xxxlarge\"\n | \"xxxxlarge\"\n | \"big\"\n | \"xbig\"\n | \"huge\"\n | \"xhuge\"\n | \"none\"\n | \"inherit\";\n\n export type Curves =\n | \"tiny\"\n | \"small\"\n | \"regular\"\n | \"medium\"\n | \"large\"\n | \"big\"\n | \"huge\"\n | \"none\";\n}\n\nexport namespace Font {\n export type Fonts =\n | \"light\"\n | \"regular\"\n | \"medium\"\n | \"heavy\"\n | \"default\";\n\n export type Sizes =\n | \"pico\"\n | \"nano\"\n | \"micro\"\n | \"milli\"\n | \"centi\"\n | \"deci\"\n | \"regular\"\n | \"deca\"\n | \"hecto\"\n | \"kilo\"\n | \"mega\"\n | \"giga\"\n | \"hero\";\n\n export type Curves =\n | \"p1\"\n | \"p2\"\n | \"lead\"\n | \"caption\"\n | \"h4\"\n | \"h3\"\n | \"h2\"\n | \"h1\"\n | \"hero\"\n | \"default\"\n | \"none\";\n}\n\nexport namespace VBZ {\n export const BASE_TYPE_GLOBAL = \"GLOBAL\";\n\n export const CHANNEL_TICKER = \"ticker\";\n export const CHANNEL_INFO_URL_FILTER = \"stadt-zuerich.ch/vbz\";\n\n export const DISTURBANCE_GLOBAL = \"__global__\";\n export const DISTURBANCE_INFORMATION = \"0\";\n export const DISTURBANCE_CONSTRUCTION = \"1\";\n export const DISTURBANCE_NORMAL = \"2\";\n export const DISTURBANCE_EVENT = \"4\";\n export const DISTURBANCE_BUS = \"5\";\n\n export type Lines =\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"7\"\n | \"8\"\n | \"9\"\n | \"10\"\n | \"11\"\n | \"12\"\n | \"13\"\n | \"14\"\n | \"15\"\n | \"16\"\n | \"17\"\n | \"19\"\n | \"20\"\n | \"21\"\n | \"23\"\n | \"24\"\n | \"25\"\n | \"29\"\n | \"31\"\n | \"32\"\n | \"33\"\n | \"34\"\n | \"35\"\n | \"36\"\n | \"37\"\n | \"38\"\n | \"39\"\n | \"40\"\n | \"45\"\n | \"46\"\n | \"54\"\n | \"61\"\n | \"62\"\n | \"63\"\n | \"64\"\n | \"66\"\n | \"67\"\n | \"69\"\n | \"70\"\n | \"72\"\n | \"73\"\n | \"75\"\n | \"76\"\n | \"77\"\n | \"78\"\n | \"79\"\n | \"80\"\n | \"83\"\n | \"89\"\n | \"91\"\n | \"94\"\n | \"95\"\n | \"99\"\n | \"151\"\n | \"152\"\n | \"153\"\n | \"156\"\n | \"161\"\n | \"162\"\n | \"163\"\n | \"165\"\n | \"184\"\n | \"185\"\n | \"200\"\n | \"201\"\n | \"215\"\n | \"220\"\n | \"235\"\n | \"236\"\n | \"245\"\n | \"301\"\n | \"302\"\n | \"303\"\n | \"304\"\n | \"305\"\n | \"306\"\n | \"307\"\n | \"308\"\n | \"309\"\n | \"311\"\n | \"314\"\n | \"315\"\n | \"317\"\n | \"321\"\n | \"323\"\n | \"325\"\n | \"350\"\n | \"444\"\n | \"445\"\n | \"701\"\n | \"702\"\n | \"703\"\n | \"704\"\n | \"705\"\n | \"720\"\n | \"721\"\n | \"725\"\n | \"726\"\n | \"727\"\n | \"742\"\n | \"743\"\n | \"744\"\n | \"745\"\n | \"747\"\n | \"748\"\n | \"751\"\n | \"752\"\n | \"753\"\n | \"754\"\n | \"759\"\n | \"760\"\n | \"765\"\n | \"768\"\n | \"781\"\n | \"786\"\n | \"787\"\n | \"910\"\n | \"912\"\n | \"916\"\n | \"917\"\n | \"918\"\n | \"919\"\n | \"E\"\n | \"N\"\n | \"N1\"\n | \"N2\"\n | \"N4\"\n | \"N5\"\n | \"N6\"\n | \"N7\"\n | \"N8\"\n | \"N9\"\n | \"N10\"\n | \"N11\"\n | \"N12\"\n | \"N13\"\n | \"N14\"\n | \"N15\"\n | \"N16\"\n | \"N17\"\n | \"N18\"\n | \"N19\"\n | \"N30\"\n | \"N31\"\n | \"N32\"\n | \"N33\"\n | \"N34\"\n | \"N45\"\n | \"N72\"\n | \"N78\"\n | \"SN1\"\n | \"SN4\"\n | \"SN5\"\n | \"SN6\"\n | \"SN7\"\n | \"SN8\"\n | \"SN9\"\n | \"S2\"\n | \"S3\"\n | \"S4\"\n | \"S5\"\n | \"S6\"\n | \"S7\"\n | \"S8\"\n | \"S9\"\n | \"S10\"\n | \"S11\"\n | \"S14\"\n | \"S15\"\n | \"S16\"\n | \"S18\"\n | \"S19\"\n | \"S20\"\n | \"S21\"\n | \"S23\"\n | \"S24\"\n | \"S25\"\n}\n\n// ---\n// Stencil component types\n// ---\n\nexport * from './components';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,MAAM;AACN,sBAAsB;AACtB,MAAM;AAwkDN,MAAM,KAAW,GAAG,CAoMnB;AApMD,WAAiB,GAAG;EACL,oBAAgB,GAAG,QAAQ,CAAC;EAE5B,kBAAc,GAAG,QAAQ,CAAC;EAC1B,2BAAuB,GAAG,sBAAsB,CAAC;EAEjD,sBAAkB,GAAG,YAAY,CAAC;EAClC,2BAAuB,GAAG,GAAG,CAAC;EAC9B,4BAAwB,GAAG,GAAG,CAAC;EAC/B,sBAAkB,GAAG,GAAG,CAAC;EACzB,qBAAiB,GAAG,GAAG,CAAC;EACxB,mBAAe,GAAG,GAAG,CAAC;AAyLrC,CAAC,EApMgB,GAAG,KAAH,GAAG,QAoMnB;AAED,MAAM;AACN,0BAA0B;AAC1B,MAAM;AAEN,cAAc,cAAc,CAAC","sourcesContent":["// ---\n// Global window types\n// ---\n\nimport { StzhLocaleAdapter } from './utils/date-adapter';\n\nimport {\n StzhLocaleComponent,\n StzhLocaleFormats,\n StzhLocaleGlobals,\n} from './utils/translation-utils';\n\nexport type WindowStzhComponents = {\n version: string\n supportedLocales: string[]\n defaultLocale: string\n translations: null | StzhLocaleComponent\n translationsLoading: Promise<StzhLocaleComponent>\n pathMedia: string\n pathTranslations: string\n pathVendors: string\n cacheTranslations: boolean\n formats: StzhLocaleFormats\n fixAutofocus: boolean,\n fixHashfocus: boolean,\n utils: {\n getLocale: (element: HTMLElement) => string\n fetchTranslations: (host: HTMLElement, component: string) => Promise<StzhLocaleComponent & any>\n\n format: (date: Date, type: string) => string\n parse:(string: string, type: string) => Date\n formatSpan: (date: Date | string, date2: Date | string, type: string) => string\n parseSpan: (string: string, type: string) => [Date, Date, string]\n createFormatParseAdapter: (formats: StzhLocaleFormats, globals: StzhLocaleGlobals) => StzhLocaleAdapter\n }\n}\n\ndeclare global {\n interface Window {\n stzhComponents: WindowStzhComponents\n // global third party library\n pannellum: any\n Dropzone: any\n proj4: any\n // readspeaker lib APIs\n readpage: any\n ReadSpeaker: any\n rsConf: any\n rspkr: any\n }\n}\n\n// ---\n// Event Types\n// ---\n\n/* Sortable */\n\nexport type StzhSortableUpdateEvent = {\n component: \"stzh-sortable\"\n data: string[]\n item: HTMLElement\n newIndex: number\n oldIndex: number\n}\n\nexport type StzhSortableDisableEvent = {\n component: \"stzh-sortable\"\n disabled: boolean\n}\n\n/* Panorama */\n\nexport type PanoramaScene = {\n sceneId: string\n imageSrc: string\n imageTitle: string\n\n imageAuthor?: string\n imageType?: \"equirectangular\" | \"cubemap\" | \"multires\"\n caption?: string\n copyright?: string\n\n pitch?: number\n yaw?: number\n hfov?: number\n\n hotspots: PanoramaSceneHotSpot[]\n}\n\nexport type PanoramaScenesLibrary = {\n [sceneKey: string]: {\n title: string\n author: string\n panorama: string\n type?: \"equirectangular\" | \"cubemap\" | \"multires\"\n\n pitch?: number\n yaw?: number\n hfov?: number\n\n hotSpots: PanoramaSceneHotSpot[]\n }\n}\n\nexport type PanoramaSceneHotSpot = {\n pitch: number\n yaw: number\n type: string\n text: string\n url?: string\n id?: string,\n sceneId?: string\n targetPitch?: number\n targetYaw?: number\n\n cssClass?: string\n createTooltipFunc?: Function\n createTooltipArgs?: any\n}\n\nexport type StzhPanoramaLoadEvent = {\n component: \"stzh-panorama\"\n}\n\nexport type StzhPanoramaChangeEvent = {\n component: \"stzh-panorama\"\n value: { pitch: number, yaw: number, hfov: number }\n}\n\nexport type StzhPanoramaFullscreenChangeEvent = {\n component: \"stzh-panorama\"\n value: boolean\n}\n\nexport type StzhPanoramaSceneChangeEvent = {\n component: \"stzh-panorama\"\n value: string\n}\n\nexport type StzhPanoramaZoomChangeEvent = {\n component: \"stzh-panorama\"\n value: number\n}\n\n/* Iframe */\n\nexport type StzhIframeView =\n | \"iframe\"\n | \"cookiewall\"\n | \"preview\";\n\nexport type StzhIframeViewChangeEvent = {\n component: \"stzh-iframe\"\n value: StzhIframeView\n}\n\nexport type StzhIframePreviewSkipEvent = {\n component: \"stzh-iframe\"\n}\n\n/* Olmap */\n\nexport type OlmapLayer = {\n title?: string,\n thumbnailUrl: string,\n options: {\n url: string,\n layer: string,\n matrixSet: string,\n origin: number[],\n extent: number[]\n }\n}\n\nexport type StzhOlmapInitializedEvent = {\n component: \"stzh-olmap\"\n}\n\nexport type StzhOlmapPostRenderEvent = {\n component: \"stzh-olmap\"\n}\n\nexport type StzhOlmapMoveStartEvent = {\n component: \"stzh-olmap\"\n}\n\nexport type StzhOlmapMoveEndEvent = {\n component: \"stzh-olmap\"\n}\n\n/* Sticky */\n\nexport type StzhStickyStuckTopEvent = {\n component: \"stzh-sticky\"\n sticky: boolean\n}\n\nexport type StzhStickyStuckBottomEvent = {\n component: \"stzh-sticky\"\n sticky: boolean\n}\n\n/* Table */\n\nexport type StzhDatatableCellData = {\n value: string | number\n isHeader?: boolean\n align?: \"left\" | \"right\" | \"center\"\n valign?: \"auto\" | \"middle\" | \"bottom\" | \"top\"\n id?: string\n}\n\nexport type StzhDatatableRowData = {\n [key: string]: StzhDatatableCellData\n};\n\nexport type StzhDatatableInputRowData = {\n [key: string]: StzhDatatableCellData | string | number\n};\n\nexport type StzhDatatableColumnData = {\n key: string\n text?: string\n align?: \"left\" | \"right\" | \"center\"\n valign?: \"auto\" | \"middle\" | \"bottom\" | \"top\"\n sort?: boolean | {\n type?: \"numerical\" | \"text\"\n field?: string\n }\n fixed?: \"left\" | \"right\"\n isHeader?: boolean\n hideColumnHeading?: boolean\n analyticsId?: string\n style?: {\n [key: string]: string\n },\n};\n\nexport type StzhDatatableRowClickEvent = {\n component: \"stzh-datatable\"\n row: any\n originalEvent: MouseEvent\n}\n\nexport type StzhDatatableCellClickEvent = {\n component: \"stzh-datatable\"\n row: any\n column: any\n cellIndex: number\n rowIndex: number\n originalEvent: MouseEvent\n}\n\nexport type StzhDatatableHeadingCellClickEvent = {\n component: \"stzh-datatable\"\n column: any\n index: number\n originalEvent: MouseEvent\n}\n\nexport type StzhDatatableSortClickEvent = {\n component: \"stzh-datatable\"\n column: any\n originalEvent: MouseEvent\n}\n\nexport type StzhDatatableSortByChangeEvent = {\n component: \"stzh-datatable\"\n value: string\n oldValue: string\n}\n\nexport type StzhDatatableSortDirectionChangeEvent = {\n component: \"stzh-datatable\"\n value: \"asc\" | \"desc\"\n oldValue: \"asc\" | \"desc\"\n}\n\n/* Archivelist */\n\nexport type StzhArchivelistItem = {\n label: string\n labelClamp?: any // attributes of HTMLStzhClampElement\n href: string\n dateline?: string\n description?: string\n descriptionClamp?: any // attributes of HTMLStzhClampElement\n}\n\nexport type StzhArchivelistItemClickEvent = {\n component: \"stzh-archivelist\"\n item: StzhArchivelistItem\n originalEvent: MouseEvent\n}\n\n/* Anchornav */\n\nexport type StzhAnchornavItem = {\n label: string\n href?: string\n icon?: string\n}\n\nexport type StzhAnchornavItemClickEvent = {\n component: \"stzh-anchornav\"\n item: StzhAnchornavItem\n originalEvent: MouseEvent\n}\n\n/* Status */\n\nexport type StzhStatusType = \"default\" | \"success\" | \"warning\" | \"error\" | \"info\";\n\n/* Badge */\n\nexport type StzhBadgeType = \"default\" | \"success\" | \"warning\" | \"error\" | \"info\";\n\n/* Actionset */\n\nexport type StzhActionsetItem = {\n id: string\n label?: string\n icon?: string\n iconPosition?: \"left\" | \"right\"\n iconOnly?: boolean\n badge?: string\n badgeEmpty?: boolean\n badgeType?: StzhBadgeType\n variant?: StzhButtonVariant\n size?: StzhButtonSize\n badgePosition?: \"icon\" | \"button\"\n tooltipContent?: string\n}\n\nexport type StzhActionsetItemClickEvent = {\n component: \"stzh-actionset\"\n action: StzhActionsetItem\n originalEvent: MouseEvent\n}\n\n/* Audio */\n\nexport type StzhAudioPlayEvent = {\n component: \"stzh-audio\"\n}\n\nexport type StzhAudioPlayingEvent = {\n component: \"stzh-audio\"\n}\n\nexport type StzhAudioPauseEvent = {\n component: \"stzh-audio\"\n}\n\nexport type StzhAudioReplayEvent = {\n component: \"stzh-audio\"\n}\n\nexport type StzhAudioEndEvent = {\n component: \"stzh-audio\"\n}\n\nexport type StzhAudioEndedEvent = {\n component: \"stzh-audio\"\n}\n\nexport type StzhAudioErrorEvent = {\n component: \"stzh-audio\"\n originalEvent: ErrorEvent\n}\n\n/* Share */\n\nexport type ShareService = \"facebook\" | \"twitter\" | \"linkedin\" | \"xing\" | \"mail\";\n\n/* Footer Editor */\n\nexport type StzhEditorLink = {\n label: string\n href?: string\n icon?: string\n rel?: string\n target?: string\n}\n\n/* Header */\n\nexport type StzhHeaderMenuItem = {\n label: string\n href?: string\n items?: StzhHeaderMenuItem[]\n id?: string\n}\n\nexport type StzhHeaderMetanavItem = {\n label: string\n labelShort?: string\n labelHidden?: boolean\n stay?: boolean\n stayAndShowInMobileMenu?: boolean\n variant?: \"default\" | \"secondary\" // used for menu-item and popover\n size?: \"default\" | \"large\" // used for menu-item and popover\n important?: boolean\n importantSubmenu?: boolean\n badgeEmpty?: boolean\n badgeType?: StzhBadgeType\n badge?: string\n icon?: string\n iconOpen?: string\n href?: string\n target?: string\n id?: string\n items?: {\n label: string\n href?: string\n target?: string\n icon?: string\n counter?: number\n badge?: string\n badgeType?: StzhBadgeType\n }[],\n itemButton?: {\n label: string\n href?: string\n target?: string\n size?: StzhButtonSize\n }\n}\n\nexport type StzhHeaderMetanavItemClickEvent = {\n component: \"stzh-header\"\n item: StzhHeaderMetanavItem\n originalEvent: MouseEvent\n}\n\nexport type StzhHeaderLanguageChangeEvent = {\n component: \"stzh-header\"\n value: string\n}\n\nexport type StzhHeaderSearchChangeEvent = {\n component: \"stzh-header\"\n originalEvent: InputEvent | MouseEvent\n value: string\n}\n\nexport type StzhHeaderSearchChangedEvent = {\n component: \"stzh-header\"\n originalEvent: InputEvent | MouseEvent\n value: string\n}\n\n/* Breadcrumb */\n\nexport type StzhBreadcrumbItem = {\n label: string\n href: string\n}\n\n/* Card */\n\nexport type StzhCardHeaderAction = {\n id: string\n label?: string\n icon?: string\n badge?: string\n badgeEmpty?: boolean\n badgeType?: StzhBadgeType\n}\n\nexport type StzhCardSubtitleClickEvent = {\n component: \"stzh-card\"\n originalEvent: MouseEvent\n}\n\nexport type StzhCardCollapseEvent = {\n component: \"stzh-card\"\n collapsed: boolean\n}\n\nexport type StzhCardClickEvent = {\n component: \"stzh-card\"\n originalEvent: MouseEvent\n}\n\nexport type StzhCardStarClickEvent = {\n component: \"stzh-card\"\n starred: boolean\n originalEvent: MouseEvent\n}\n\nexport type StzhCardHeaderActionClickEvent = {\n component: \"stzh-card\"\n action: StzhCardHeaderAction\n originalEvent: MouseEvent\n}\n\n/* Card Navigation */\n\nexport type StzhCardNavigationClickEvent = {\n component: \"stzh-card-navigation\"\n originalEvent: MouseEvent\n}\n\n/* Card Searchresult */\n\nexport type StzhCardSearchresultClickEvent = {\n component: \"stzh-card-searchresult\"\n originalEvent: MouseEvent\n}\n\n/* Search */\n\nexport type StzhSearchResult = {\n html?: string\n\n href?: string\n heading?: string\n dateline?: string\n description?: string\n image?: string\n imagePosition?: \"default\" | \"right\"\n tagLeft?: string\n tagRight?: string\n tagRightColor?: string\n tagRightBackgroundColor?: string\n meta?: string[],\n breadcrumbItems?: StzhBreadcrumbItem[]\n eventDateStart?: string\n eventDateEnd?: string\n eventLocation?: string\n download?: string\n downloadHeading?: string\n downloadMeta?: string[]\n}\n\n/* Microsite Teaserlist */\n\nexport type StzhMicrositeTeaserlistTag = {\n id: string\n name: string\n}\n\nexport type StzhMicrositeTeaserlistItem = {\n title?: string\n description?: string\n image?: string\n link: string\n tags: string[]\n teaserid: string\n}\n\n/* Cardlist */\n\nexport type StzhCardlistCollapseAllEvent = {\n component: \"stzh-cardlist\"\n allCollapsed: boolean\n}\n\n/* Calendar */\n\nexport type StzhCalendarChangeEvent = {\n component: \"stzh-calendar\"\n valueAsDate: Date\n value: string\n}\n\n/* Datepicker */\n\nexport type StzhDatepickerChangeEvent = {\n component: \"stzh-datepicker\"\n value: string,\n valueAsDate: Date\n}\n\n/* Pagination */\n\nexport type StzhPaginationChangeEvent = {\n component: \"stzh-pagination\"\n page: number\n}\n\n/* Timepicker */\n\nexport type StzhTimepickerChangeEvent = {\n component: \"stzh-timepicker\"\n value: string\n}\n\n/* Monthyearpicker */\n\nexport type StzhMonthyearpickerChangeEvent = {\n component: \"stzh-monthyearpicker\"\n value: string\n valueMonth: string\n valueYear: string\n}\n\n/* Amount */\n\nexport type StzhAmountChangeEvent = {\n component: \"stzh-amount\"\n value: string\n}\n\n/* Appointments */\n\nexport type StzhAppointmentsChangeEvent = {\n component: \"stzh-appointments\"\n value: string\n}\n\n/* Skiplink */\n\nexport type StzhSkiplinkFocusEvent = {\n component: \"stzh-skiplink\"\n originalEvent: FocusEvent\n}\n\nexport type StzhSkiplinkBlurEvent = {\n component: \"stzh-skiplink\"\n originalEvent: FocusEvent\n}\n\n/* Checkbox */\n\nexport type StzhCheckboxChangeEvent = {\n component: \"stzh-checkbox\"\n originalEvent: InputEvent | Event\n value: string\n checked: boolean\n}\n\nexport type StzhCheckboxFocusEvent = {\n component: \"stzh-checkbox\"\n originalEvent: FocusEvent\n}\n\nexport type StzhCheckboxBlurEvent = {\n component: \"stzh-checkbox\"\n originalEvent: FocusEvent\n}\n\nexport type StzhCheckboxgroupChangeEvent = {\n component: \"stzh-checkboxgroup\"\n value: string[]\n}\n\n/* Toggle */\n\nexport type StzhToggleChangeEvent = {\n component: \"stzh-toggle\"\n originalEvent: InputEvent\n value: string\n checked: boolean\n}\n\nexport type StzhToggleFocusEvent = {\n component: \"stzh-toggle\"\n originalEvent: FocusEvent\n}\n\nexport type StzhToggleBlurEvent = {\n component: \"stzh-toggle\"\n originalEvent: FocusEvent\n}\n\n/* Button */\n\nexport type StzhButtonVariant = \"default\" | \"secondary\" | \"tertiary\" | \"tertiary-plain\";\nexport type StzhButtonSize = \"default\" | \"small\" | \"tiny\";\n\nexport type StzhButtonFocusEvent = {\n component: \"stzh-button\"\n originalEvent: FocusEvent\n}\n\nexport type StzhButtonBlurEvent = {\n component: \"stzh-button\"\n originalEvent: FocusEvent\n}\n\nexport type StzhButtonChangeEvent = {\n component: \"stzh-button\"\n originalEvent: InputEvent\n value: string\n checked: boolean\n}\n\n/* Link */\n\nexport type StzhLinkSize = \"default\" | \"small\" | \"inherit\";\n\nexport type StzhLinkFocusEvent = {\n component: \"stzh-link\"\n originalEvent: FocusEvent\n}\n\nexport type StzhLinkBlurEvent = {\n component: \"stzh-link\"\n originalEvent: FocusEvent\n}\n\n/* Menu (Item) */\n\nexport type StzhMenuVariant = \"default\" | \"secondary\"\nexport type StzhMenuSize = \"default\" | \"large\"\n\nexport type StzhMenuItemFocusEvent = {\n component: \"stzh-menu-item\"\n originalEvent: FocusEvent\n}\n\nexport type StzhMenuItemBlurEvent = {\n component: \"stzh-menu-item\"\n originalEvent: FocusEvent\n}\n\n/* Carousel */\n\nexport type StzhCarouselSlideStartEvent = {\n component: \"stzh-carousel\"\n index: number\n}\n\nexport type StzhCarouselSlidePassedEvent = {\n component: \"stzh-carousel\"\n index: number\n}\n\nexport type StzhCarouselSlideEndEvent = {\n component: \"stzh-carousel\"\n index: number\n}\n\n/* Chipselect */\n\nexport type StzhChipselectItem = {\n label: string\n value: string\n disabled?: boolean\n variant?: StzhChipVariant\n type?: StzhChipType\n inverted?: boolean\n counter?: string\n icon?: string\n size?: StzhChipSize\n}\n\nexport type StzhChipselectChangeEvent = {\n component: \"stzh-chipselect\"\n value: string\n}\n\n/* Gallery */\n\nexport type StzhGalleryItem = {\n width: number\n height: number\n src: string\n srcLightbox?: string\n srcsetLightbox?: string\n alt?: string\n copyright?: string\n heading?: string\n headingLightbox?: string\n caption?: string\n captionLightbox?: string\n lightboxHtml?: string\n hideCounter?: boolean\n}\n\n/* Datalist */\n\nexport type StzhDatalistItemEntry = {\n value: string\n leadingIcon?: string\n label?: string\n meta?: string\n icon?: string\n iconLabel?: string\n iconTooltip?: string\n statusLabel?: string\n statusType?: StzhStatusType\n href?: string\n rel?: string\n target?: string\n items?: StzhDatalistItemEntry[]\n}\n\nexport type StzhDatalistVariant = \"default\" | \"table\"\nexport type StzhDatalistDirection = \"vertical\" | \"horizontal\"\n\nexport type StzhDatalistVariantChangeEvent = {\n component: \"stzh-datalist\"\n value: StzhDatalistVariant\n}\n\nexport type StzhDatalistDirectionChangeEvent = {\n component: \"stzh-datalist\"\n value: \"vertical\" | \"horizontal\"\n}\n\n/* Datalist Item */\n\nexport type StzhDatalistItemActionClickEvent = {\n component: \"stzh-datalist-item\"\n originalEvent: MouseEvent\n}\n\n/* Datamessagelist */\n\nexport type StzhDatamessagelistItemEntryMeta = {\n label: string\n value: string\n}\n\nexport type StzhDatamessagelistItemEntryAction = {\n id: string | number\n icon: string\n label: string,\n badge?: string\n}\n\nexport type StzhDatamessagelistItemEntryTag = {\n icon: string\n label: string\n type?: StzhChipType\n inverted?: boolean\n}\n\nexport type StzhDatamessagelistItemEntryLoadingStatus = {\n percent: number\n label: string\n type: \"default\" | \"success\" | \"warning\" | \"error\"\n}\n\nexport type StzhDatamessagelistItemClickEvent = {\n component: \"stzh-datamessagelist-item\",\n originalEvent: MouseEvent\n}\n\nexport type StzhDatamessagelistItemActionClickEvent = {\n component: \"stzh-datamessagelist-item\",\n action: StzhDatamessagelistItemEntryAction,\n originalEvent: MouseEvent\n}\n\n/* Cta */\n\nexport type StzhCtaFocusEvent = {\n component: \"stzh-cta\"\n originalEvent: FocusEvent\n}\n\nexport type StzhCtaBlurEvent = {\n component: \"stzh-cta\"\n originalEvent: FocusEvent\n}\n\n/* Tag */\n\nexport type StzhTagSize = \"default\" | \"large\"\nexport type StzhTagType = \"default\" | \"secondary\"\n\nexport type StzhTagClickEvent = {\n component: \"stzh-tag\",\n originalEvent: MouseEvent\n}\n\nexport type StzhTagFocusEvent = {\n component: \"stzh-tag\"\n originalEvent: FocusEvent\n}\n\nexport type StzhTagBlurEvent = {\n component: \"stzh-tag\"\n originalEvent: FocusEvent\n}\n\n/* Chip */\n\nexport type StzhChipVariant = \"tag\" | \"filter\" | \"input\"\nexport type StzhChipSize = \"default\" | \"small\" | \"large\"\nexport type StzhChipType = \"default\" | \"success\" | \"warning\" | \"error\" | \"info\"\n\nexport type StzhChipClickEvent = {\n component: \"stzh-chip\",\n originalEvent: MouseEvent\n}\n\nexport type StzhChipRemoveEvent = {\n component: \"stzh-chip\",\n originalEvent: MouseEvent\n}\n\nexport type StzhChipFocusEvent = {\n component: \"stzh-chip\"\n originalEvent: FocusEvent\n}\n\nexport type StzhChipBlurEvent = {\n component: \"stzh-chip\"\n originalEvent: FocusEvent\n}\n\n/* VBZ Major Ticker */\n\nexport type StzhVbzMajortickerDisturbance = {\n id: string\n head: string\n text: string\n startDate: Date\n endDate: Date\n altStart: string\n altEnd: string\n infoUrl?: VbzTickerInfoUrl\n};\n\nexport type StzhVbzMajortickerDisturbanceFetchedEvent = {\n component: \"stzh-vbz-majorticker\"\n disturbance: StzhVbzMajortickerDisturbance | null\n}\n\n/* VBZ Ticker */\n\nexport type VbzTickerInfoUrl = {\n name: string\n url: string\n};\n\nexport type VbzTickerDisturbance = {\n id: string\n head: string\n startDate: Date\n endDate: Date\n altStart: string\n altEnd: string\n baseType?: string\n infoUrl?: VbzTickerInfoUrl\n category:\n | typeof VBZ.DISTURBANCE_INFORMATION\n | typeof VBZ.DISTURBANCE_CONSTRUCTION\n | typeof VBZ.DISTURBANCE_NORMAL\n | typeof VBZ.DISTURBANCE_EVENT\n | typeof VBZ.DISTURBANCE_BUS\n};\n\nexport type VbzTickerLine = {\n line: VBZ.Lines\n name: string\n disturbances: VbzTickerDisturbance[]\n // whether normal or big disturbance for this line exist\n alert: boolean\n // 2 = Fernverkehr / 16 = Schiff / 32 = S-Bahn/Reg / 64 = Bus / 128 = Bergbahn / 256 = Nachtnetz / 512 = Tram\n category: \"2\" | \"16\" | \"32\" | \"64\" | \"128\" | \"256\" | \"512\"\n};\n\n/* VBZ Line Chip */\n\nexport type StzhVbzLinechipLine = {\n color: string\n background: string\n comment?: string\n}\n\nexport type StzhVbzLinechipFocusEvent = {\n component: \"stzh-vbz-linechip\"\n originalEvent: FocusEvent\n}\n\nexport type StzhVbzLinechipBlurEvent = {\n component: \"stzh-vbz-linechip\"\n originalEvent: FocusEvent\n}\n\n/* Clamp */\n\nexport type StzhClampClampEvent = {\n component: \"stzh-clamp\"\n clamped: boolean\n}\n\nexport type StzhClampExpandEvent = {\n component: \"stzh-clamp\"\n expanded: boolean\n}\n\n/* Image Comparison */\n\nexport type StzhImagecomparisonChangeEvent = {\n component: \"stzh-imagecomparison\"\n originalEvent: InputEvent\n value: number\n}\n\n/* Dialog */\n\nexport type StzhDialogOpenEvent = {\n component: \"stzh-dialog\"\n}\n\nexport type StzhDialogCloseEvent = {\n component: \"stzh-dialog\"\n}\n\n/* Contact */\n\nexport type ContactEmail = {\n label: string\n text: string\n href?: string\n analyticsId?: string\n}\n\nexport type ContactNumber = {\n type: \"tel\" | \"fax\"\n label: string\n number: string\n analyticsId?: string\n}\n\nexport type StzhContactAvailabilityItem = {\n weekday: string\n hours: string[]\n}\n\n/* Eventinfo */\n\nexport type StzhEventinfoItemInput = {\n calendarUrl?: string\n calendarLabel?: string\n start: string | Date\n end: string | Date\n}\n\nexport type StzhEventinfoItem = {\n calendarUrl?: string\n calendarLabel?: string\n start: Date\n end: Date\n}\n\nexport type StzhEventinfoMonth = {\n name: string\n events: StzhEventinfoItem[]\n}\n\n/* Overlay */\n\nexport type StzhOverlayOpenEvent = {\n component: \"stzh-overlay\"\n}\n\nexport type StzhOverlayCloseEvent = {\n component: \"stzh-overlay\"\n}\n\n/* Banner */\n\nexport type StzhBannerOpenEvent = {\n component: \"stzh-banner\"\n}\n\nexport type StzhBannerCloseEvent = {\n component: \"stzh-banner\"\n}\n\n/* Message */\n\nexport type StzhMessageOpenEvent = {\n component: \"stzh-message\"\n}\n\nexport type StzhMessageCloseEvent = {\n component: \"stzh-message\"\n}\n\n/* Toastbar */\n\nexport type StzhToastbarInitialToast = {\n label: string\n type?: StzhToastType\n link?: HTMLStzhLinkElement | {\n href: string,\n label: string\n },\n cookie?: string\n cookieExpires?: number\n}\n\n/* Disturber */\n\nexport type StzhDisturberOpenEvent = {\n component: \"stzh-disturber\"\n}\n\nexport type StzhDisturberCloseEvent = {\n component: \"stzh-disturber\"\n}\n\nexport type StzhDisturberOpenedEvent = {\n component: \"stzh-disturber\"\n}\n\nexport type StzhDisturberClosedEvent = {\n component: \"stzh-disturber\"\n}\n\n/* Toast */\n\nexport type StzhToastType = \"info\" | \"success\" | \"warning\" | \"error\";\n\nexport type StzhToastOpenEvent = {\n component: \"stzh-toast\"\n}\n\nexport type StzhToastCloseEvent = {\n component: \"stzh-toast\"\n}\n\nexport type StzhToastOpenedEvent = {\n component: \"stzh-toast\"\n}\n\nexport type StzhToastClosedEvent = {\n component: \"stzh-toast\"\n}\n\n/* Ghettobox */\n\nexport type StzhGhettoboxOpenEvent = {\n component: \"stzh-ghettobox\"\n}\n\nexport type StzhGhettoboxCloseEvent = {\n component: \"stzh-ghettobox\"\n}\n\n/* Input */\n\nexport type StzhInputChangeEvent = {\n component: \"stzh-input\"\n originalEvent: InputEvent | MouseEvent\n value: string\n}\n\nexport type StzhInputChangedEvent = {\n component: \"stzh-input\"\n originalEvent: InputEvent | MouseEvent\n value: string\n}\n\nexport type StzhInputFocusEvent = {\n component: \"stzh-input\"\n originalEvent: FocusEvent\n}\n\nexport type StzhInputBlurEvent = {\n component: \"stzh-input\"\n originalEvent: FocusEvent\n}\n\n/* Popover */\n\nexport type StzhPopoverOpenEvent = {\n component: \"stzh-popover\"\n}\n\nexport type StzhPopoverOpenedEvent = {\n component: \"stzh-popover\"\n}\n\nexport type StzhPopoverCloseEvent = {\n component: \"stzh-popover\"\n}\n\nexport type StzhPopoverClosedEvent = {\n component: \"stzh-popover\"\n}\n\n/* Timeline */\n\nexport type StzhTimelineFoldableChangeEvent = {\n component: \"stzh-timeline\"\n value: boolean\n}\n\n/* TimelineItem */\n\nexport type StzhTimelineItemOpenEvent = {\n component: \"stzh-timeline-item\"\n}\n\nexport type StzhTimelineItemOpenedEvent = {\n component: \"stzh-timeline-item\"\n}\n\nexport type StzhTimelineItemCloseEvent = {\n component: \"stzh-timeline-item\"\n}\n\nexport type StzhTimelineItemClosedEvent = {\n component: \"stzh-timeline-item\"\n}\n\nexport type StzhTimelineItemFocusEvent = {\n component: \"stzh-timeline-item\"\n originalEvent: FocusEvent\n}\n\nexport type StzhTimelineItemBlurEvent = {\n component: \"stzh-timeline-item\"\n originalEvent: FocusEvent\n}\n\n/* Accordion */\n\nexport type StzhAccordionVariant = \"default\" | \"title\" | \"table\";\n\nexport type StzhAccordionVariantChangeEvent = {\n component: \"stzh-accordion\"\n value: StzhAccordionVariant\n}\n\nexport type StzhAccordionItemOpenEvent = {\n component: \"stzh-accordion-item\"\n}\n\nexport type StzhAccordionItemOpenedEvent = {\n component: \"stzh-accordion-item\"\n}\n\nexport type StzhAccordionItemCloseEvent = {\n component: \"stzh-accordion-item\"\n}\n\nexport type StzhAccordionItemClosedEvent = {\n component: \"stzh-accordion-item\"\n}\n\nexport type StzhAccordionItemFocusEvent = {\n component: \"stzh-accordion-item\"\n originalEvent: FocusEvent\n}\n\nexport type StzhAccordionItemBlurEvent = {\n component: \"stzh-accordion-item\"\n originalEvent: FocusEvent\n}\n\n/* Tooltip */\n\nexport type StzhTooltipOpenEvent = {\n component: \"stzh-tooltip\"\n}\n\nexport type StzhTooltipOpenedEvent = {\n component: \"stzh-tooltip\"\n}\n\nexport type StzhTooltipCloseEvent = {\n component: \"stzh-tooltip\"\n}\n\nexport type StzhTooltipClosedEvent = {\n component: \"stzh-tooltip\"\n}\n\n/* Radio */\n\nexport type StzhRadioChangeEvent = {\n component: \"stzh-radio\"\n originalEvent: InputEvent\n value: string\n checked: boolean\n}\n\nexport type StzhRadioFocusEvent = {\n component: \"stzh-radio\"\n originalEvent: FocusEvent\n}\n\nexport type StzhRadioBlurEvent = {\n component: \"stzh-radio\"\n originalEvent: FocusEvent\n}\n\n/* Dropdown */\n\nexport type StzhDropdownSize = \"default\" | \"small\" | \"tiny\";\n\nexport type StzhDropdownOption = {\n text: string,\n value: string,\n disabled?: boolean\n}\n\nexport type StzhDropdownChangeEvent = {\n component: \"stzh-dropdown\",\n value: string | string[]\n}\n\nexport type StzhDropdownItemAddEvent = {\n component: \"stzh-dropdown\",\n value: string\n}\n\nexport type StzhDropdownItemRemoveEvent = {\n component: \"stzh-dropdown\",\n value: string\n}\n\nexport type StzhDropdownOptionAddEvent = {\n component: \"stzh-dropdown\",\n value: string\n}\n\nexport type StzhDropdownOptionRemoveEvent = {\n component: \"stzh-dropdown\",\n value: string\n}\n\nexport type StzhDropdownOpenEvent = {\n component: \"stzh-dropdown\"\n}\n\nexport type StzhDropdowCloseEvent = {\n component: \"stzh-dropdown\"\n}\n\nexport type StzhDropdownFocusEvent = {\n component: \"stzh-dropdown\"\n originalEvent: {\n target: Element\n }\n}\n\nexport type StzhDropdownBlurEvent = {\n component: \"stzh-dropdown\"\n}\n\nexport type StzhDropdowInitEvent = {\n component: \"stzh-dropdown\"\n}\n\n/** Progressbar */\n\nexport type StzhProgressbarDataItem = {\n label: string\n icon?: string\n disabled?: boolean\n analyticsId?: string\n}\n\n/* Progressbar Item */\n\nexport type StzhProgressbarItemClickEvent = {\n component: \"stzh-progressbar-item\"\n originalEvent: MouseEvent\n index: number\n}\n\nexport type StzhProgressbarItemDottedClickEvent = {\n component: \"stzh-progressbar-item\"\n originalEvent: MouseEvent\n index: number\n}\n\n/* Upload */\n\nexport type StzhUploadFilesItem = {\n name: string\n size: number\n [key: string]: any\n}\n\nexport type StzhUploadFile = File & {\n xhr: XMLHttpRequest,\n status: string\n upload: any\n accepted: boolean\n previewElement: HTMLElement\n}\n\nexport type StzhUploadFileAddedEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile\n}\n\nexport type StzhUploadFilesAddedEvent = {\n component: \"stzh-upload\",\n files: StzhUploadFile[]\n}\n\nexport type StzhUploadFileRemoveEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile\n}\n\nexport type StzhUploadFileRemovedEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile\n force: boolean\n}\n\nexport type StzhUploadSendingEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile,\n xhr: XMLHttpRequest,\n formData: FormData\n}\n\nexport type StzhUploadSendingMultipleEvent = {\n component: \"stzh-upload\",\n files: StzhUploadFile[],\n xhr: XMLHttpRequest,\n formData: FormData\n}\n\nexport type StzhUploadProcessingEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile\n}\n\nexport type StzhUploadProcessingMultipleEvent = {\n component: \"stzh-upload\",\n files: StzhUploadFile[]\n}\n\nexport type StzhUploadProgressEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile,\n progress: number,\n bytesSent: number\n}\n\nexport type StzhUploadProgressTotalEvent = {\n component: \"stzh-upload\",\n totalUploadProgress: number,\n totalBytes: number,\n totalBytesSent: number\n}\n\nexport type StzhUploadErrorEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile,\n message: string,\n xhr: XMLHttpRequest\n}\n\nexport type StzhUploadErrorMultipleEvent = {\n component: \"stzh-upload\",\n files: StzhUploadFile[],\n message: string,\n xhr: XMLHttpRequest\n}\n\nexport type StzhUploadSuccessEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile,\n responseText: string,\n event: ProgressEvent\n}\n\nexport type StzhUploadSuccessMultipleEvent = {\n component: \"stzh-upload\",\n files: StzhUploadFile[],\n responseText: string,\n event: ProgressEvent\n}\n\nexport type StzhUploadCanceledEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile\n}\n\nexport type StzhUploadCanceledMultipleEvent = {\n component: \"stzh-upload\",\n files: StzhUploadFile[]\n}\n\nexport type StzhUploadCompleteEvent = {\n component: \"stzh-upload\",\n file: StzhUploadFile\n}\n\nexport type StzhUploadCompleteMultipleEvent = {\n component: \"stzh-upload\",\n files: StzhUploadFile[]\n}\n\n// Merged Types\n\nexport type StzhFocusEvent =\n | StzhAccordionItemFocusEvent\n | StzhButtonFocusEvent\n | StzhCheckboxFocusEvent\n | StzhChipFocusEvent\n | StzhDropdownFocusEvent\n | StzhInputFocusEvent\n | StzhLinkFocusEvent\n | StzhMenuItemFocusEvent\n | StzhRadioFocusEvent\n | StzhToggleFocusEvent\n | StzhVbzLinechipFocusEvent\n | StzhSkiplinkFocusEvent\n\n// ---\n// Prop Types\n// ---\n\nexport type StzhCalendarDateDisabledPredicate = (date: Date) => boolean\n\n\nexport namespace Layout {\n export type Ratio = \"16:9\" | \"1:1\" | \"5:4\" | \"4:3\" | \"3:2\" | \"2:1\" | \"21:9\";\n\n export type Justify =\n | \"start\"\n | \"end\"\n | \"center\"\n | \"between\"\n | \"around\"\n | \"evenly\";\n\n export type Items =\n | \"start\"\n | \"end\"\n | \"center\"\n | \"baseline\"\n | \"stretch\";\n\n export type JustifySelf =\n | \"auto\"\n | Justify;\n\n export type AlignSelf =\n | \"auto\"\n | Items;\n}\n\nexport namespace Space {\n export type Sizes =\n | \"xxxsmall\"\n | \"xxsmall\"\n | \"xsmall\"\n | \"small\"\n | \"medium\"\n | \"large\"\n | \"xlarge\"\n | \"xxlarge\"\n | \"xxxlarge\"\n | \"xxxxlarge\"\n | \"big\"\n | \"xbig\"\n | \"huge\"\n | \"xhuge\"\n | \"none\"\n | \"inherit\";\n\n export type Curves =\n | \"tiny\"\n | \"small\"\n | \"regular\"\n | \"medium\"\n | \"large\"\n | \"big\"\n | \"huge\"\n | \"none\";\n}\n\nexport namespace Font {\n export type Fonts =\n | \"light\"\n | \"regular\"\n | \"medium\"\n | \"heavy\"\n | \"default\";\n\n export type Sizes =\n | \"pico\"\n | \"nano\"\n | \"micro\"\n | \"milli\"\n | \"centi\"\n | \"deci\"\n | \"regular\"\n | \"deca\"\n | \"hecto\"\n | \"kilo\"\n | \"mega\"\n | \"giga\"\n | \"hero\";\n\n export type Curves =\n | \"p1\"\n | \"p2\"\n | \"lead\"\n | \"caption\"\n | \"h4\"\n | \"h3\"\n | \"h2\"\n | \"h1\"\n | \"hero\"\n | \"default\"\n | \"none\";\n}\n\nexport namespace VBZ {\n export const BASE_TYPE_GLOBAL = \"GLOBAL\";\n\n export const CHANNEL_TICKER = \"ticker\";\n export const CHANNEL_INFO_URL_FILTER = \"stadt-zuerich.ch/vbz\";\n\n export const DISTURBANCE_GLOBAL = \"__global__\";\n export const DISTURBANCE_INFORMATION = \"0\";\n export const DISTURBANCE_CONSTRUCTION = \"1\";\n export const DISTURBANCE_NORMAL = \"2\";\n export const DISTURBANCE_EVENT = \"4\";\n export const DISTURBANCE_BUS = \"5\";\n\n export type Lines =\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"7\"\n | \"8\"\n | \"9\"\n | \"10\"\n | \"11\"\n | \"12\"\n | \"13\"\n | \"14\"\n | \"15\"\n | \"16\"\n | \"17\"\n | \"19\"\n | \"20\"\n | \"21\"\n | \"23\"\n | \"24\"\n | \"25\"\n | \"29\"\n | \"31\"\n | \"32\"\n | \"33\"\n | \"34\"\n | \"35\"\n | \"36\"\n | \"37\"\n | \"38\"\n | \"39\"\n | \"40\"\n | \"45\"\n | \"46\"\n | \"54\"\n | \"61\"\n | \"62\"\n | \"63\"\n | \"64\"\n | \"66\"\n | \"67\"\n | \"69\"\n | \"70\"\n | \"72\"\n | \"73\"\n | \"75\"\n | \"76\"\n | \"77\"\n | \"78\"\n | \"79\"\n | \"80\"\n | \"83\"\n | \"89\"\n | \"91\"\n | \"94\"\n | \"95\"\n | \"99\"\n | \"151\"\n | \"152\"\n | \"153\"\n | \"156\"\n | \"161\"\n | \"162\"\n | \"163\"\n | \"165\"\n | \"184\"\n | \"185\"\n | \"200\"\n | \"201\"\n | \"215\"\n | \"220\"\n | \"235\"\n | \"236\"\n | \"245\"\n | \"301\"\n | \"302\"\n | \"303\"\n | \"304\"\n | \"305\"\n | \"306\"\n | \"307\"\n | \"308\"\n | \"309\"\n | \"311\"\n | \"314\"\n | \"315\"\n | \"317\"\n | \"321\"\n | \"323\"\n | \"325\"\n | \"350\"\n | \"444\"\n | \"445\"\n | \"701\"\n | \"702\"\n | \"703\"\n | \"704\"\n | \"705\"\n | \"720\"\n | \"721\"\n | \"725\"\n | \"726\"\n | \"727\"\n | \"742\"\n | \"743\"\n | \"744\"\n | \"745\"\n | \"747\"\n | \"748\"\n | \"751\"\n | \"752\"\n | \"753\"\n | \"754\"\n | \"759\"\n | \"760\"\n | \"765\"\n | \"768\"\n | \"781\"\n | \"786\"\n | \"787\"\n | \"910\"\n | \"912\"\n | \"916\"\n | \"917\"\n | \"918\"\n | \"919\"\n | \"E\"\n | \"N\"\n | \"N1\"\n | \"N2\"\n | \"N4\"\n | \"N5\"\n | \"N6\"\n | \"N7\"\n | \"N8\"\n | \"N9\"\n | \"N10\"\n | \"N11\"\n | \"N12\"\n | \"N13\"\n | \"N14\"\n | \"N15\"\n | \"N16\"\n | \"N17\"\n | \"N18\"\n | \"N19\"\n | \"N30\"\n | \"N31\"\n | \"N32\"\n | \"N33\"\n | \"N34\"\n | \"N45\"\n | \"N72\"\n | \"N78\"\n | \"SN1\"\n | \"SN4\"\n | \"SN5\"\n | \"SN6\"\n | \"SN7\"\n | \"SN8\"\n | \"SN9\"\n | \"S2\"\n | \"S3\"\n | \"S4\"\n | \"S5\"\n | \"S6\"\n | \"S7\"\n | \"S8\"\n | \"S9\"\n | \"S10\"\n | \"S11\"\n | \"S14\"\n | \"S15\"\n | \"S16\"\n | \"S18\"\n | \"S19\"\n | \"S20\"\n | \"S21\"\n | \"S23\"\n | \"S24\"\n | \"S25\"\n}\n\n// ---\n// Stencil component types\n// ---\n\nexport * from './components';\n"]}
@@ -2,9 +2,44 @@ export { getAssetPath, setAssetPath, setNonce, setPlatformOptions } from '@stenc
2
2
  export { V as VBZ } from './index2.js';
3
3
 
4
4
  const name = "@oiz/stzh-components";
5
- const version = "3.0.0-beta3";
5
+ const version = "3.0.0-beta4";
6
6
 
7
7
  const packageName = name.substring(name.indexOf('/')+1);
8
+ // let focused = false;
9
+
10
+ // function debounce(func, timeout = 500){
11
+ // let timer;
12
+ // return (...args) => {
13
+ // clearTimeout(timer);
14
+ // timer = setTimeout(() => { func.apply(this, args); }, timeout);
15
+ // };
16
+ // }
17
+
18
+ const debouncedFocus = (event) => {
19
+ // if (focused) {
20
+ // return false;
21
+ // }
22
+
23
+ const autofocus = document.querySelector('[autofocus]');
24
+
25
+ if (window.stzhComponents.fixAutofocus
26
+ && !document.location.hash
27
+ && autofocus
28
+ && event.detail.namespace === packageName
29
+ && autofocus.tagName.toLowerCase().indexOf('stzh-') === 0
30
+ && 'focus' in autofocus
31
+ ) {
32
+ autofocus.focus();
33
+ // focused = true;
34
+ } else if (window.stzhComponents.fixHashfocus && document.location.hash) {
35
+ const hashElement = document.querySelector(document.location.hash);
36
+
37
+ if (hashElement) {
38
+ hashElement.scrollIntoView();
39
+ // focused = true;
40
+ }
41
+ }
42
+ };
8
43
 
9
44
  /**
10
45
  * Execute setFocus method if it exists
@@ -12,17 +47,7 @@ const packageName = name.substring(name.indexOf('/')+1);
12
47
  * when (child components are loaded)
13
48
  */
14
49
  function applyAutofocus() {
15
- window.addEventListener('appload', (event) => {
16
- const autofocus = document.querySelector('[autofocus]');
17
-
18
- if (autofocus
19
- && event.detail.namespace === packageName
20
- && autofocus.tagName.toLowerCase().indexOf('stzh-') === 0
21
- && 'focus' in autofocus
22
- ) {
23
- autofocus.focus();
24
- }
25
- });
50
+ window.addEventListener('appload', debouncedFocus);
26
51
  }
27
52
 
28
53
  function observeScrollbarWidth() {
@@ -338,7 +363,7 @@ const utils = /*#__PURE__*/Object.freeze({
338
363
  });
339
364
 
340
365
  function appGlobalScript () {
341
- window.stzhComponents = Object.assign(Object.assign({ defaultLocale: 'de', pathMedia: '/', pathTranslations: '/', cacheTranslations: true, formats: {}, translations: null }, window.stzhComponents || {}), { version, supportedLocales: ['de', 'en'], utils });
366
+ window.stzhComponents = Object.assign(Object.assign({ defaultLocale: 'de', pathMedia: '/', pathTranslations: '/', cacheTranslations: true, formats: {}, translations: null, fixAutofocus: true, fixHashfocus: true }, window.stzhComponents || {}), { version, supportedLocales: ['de', 'en'], utils });
342
367
  if (window.stzhComponents.translations === null) {
343
368
  window.stzhComponents.translationsLoading = fetchTranslations(document.documentElement).then((translations) => {
344
369
  window.stzhComponents.translations = translations;