@oiz/stzh-components 3.8.0-beta1 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/dist/cjs/{app-globals-02553278.js → app-globals-0e887dd2.js} +2 -2
  2. package/dist/cjs/{app-globals-02553278.js.map → app-globals-0e887dd2.js.map} +1 -1
  3. package/dist/cjs/{axios-69bcb71f.js → axios-bd44344d.js} +51 -96
  4. package/dist/cjs/axios-bd44344d.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/stzh-accordion_3.cjs.entry.js +2 -7
  7. package/dist/cjs/stzh-accordion_3.cjs.entry.js.map +1 -1
  8. package/dist/cjs/stzh-badge_3.cjs.entry.js +1 -1
  9. package/dist/cjs/stzh-badge_3.cjs.entry.js.map +1 -1
  10. package/dist/cjs/stzh-bathstatus-list.cjs.entry.js +1 -1
  11. package/dist/cjs/stzh-checkboxgroup.cjs.entry.js +12 -11
  12. package/dist/cjs/stzh-checkboxgroup.cjs.entry.js.map +1 -1
  13. package/dist/cjs/stzh-chipselect.cjs.entry.js +1 -1
  14. package/dist/cjs/stzh-chipselect.cjs.entry.js.map +1 -1
  15. package/dist/cjs/stzh-components.cjs.js +2 -2
  16. package/dist/cjs/stzh-contact.cjs.entry.js +2 -8
  17. package/dist/cjs/stzh-contact.cjs.entry.js.map +1 -1
  18. package/dist/cjs/stzh-datalist_2.cjs.entry.js +1 -1
  19. package/dist/cjs/stzh-datalist_2.cjs.entry.js.map +1 -1
  20. package/dist/cjs/stzh-dialog.cjs.entry.js +1 -1
  21. package/dist/cjs/stzh-dialog.cjs.entry.js.map +1 -1
  22. package/dist/cjs/stzh-dropdown.cjs.entry.js +1 -1
  23. package/dist/cjs/stzh-dropdown.cjs.entry.js.map +1 -1
  24. package/dist/cjs/stzh-eventdata.cjs.entry.js +1 -1
  25. package/dist/cjs/stzh-eventdata.cjs.entry.js.map +1 -1
  26. package/dist/cjs/stzh-microsite-teaserlist.cjs.entry.js +3 -2
  27. package/dist/cjs/stzh-microsite-teaserlist.cjs.entry.js.map +1 -1
  28. package/dist/cjs/stzh-poilist.cjs.entry.js +1 -1
  29. package/dist/cjs/stzh-progressbar.cjs.entry.js +23 -0
  30. package/dist/cjs/stzh-progressbar.cjs.entry.js.map +1 -1
  31. package/dist/cjs/stzh-search.cjs.entry.js +2 -2
  32. package/dist/cjs/stzh-search.cjs.entry.js.map +1 -1
  33. package/dist/cjs/stzh-upload.cjs.entry.js +23 -10
  34. package/dist/cjs/stzh-upload.cjs.entry.js.map +1 -1
  35. package/dist/cjs/stzh-vbz-majorticker.cjs.entry.js +1 -1
  36. package/dist/cjs/stzh-vbz-ticker.cjs.entry.js +1 -1
  37. package/dist/collection/assets/i18n/de.json +9 -5
  38. package/dist/collection/assets/i18n/en.json +9 -5
  39. package/dist/collection/components/stzh-accordion/stzh-accordion.e2e.js +1 -0
  40. package/dist/collection/components/stzh-accordion/stzh-accordion.e2e.js.map +1 -1
  41. package/dist/collection/components/stzh-accordion/stzh-accordion.stories.js +86 -0
  42. package/dist/collection/components/stzh-accordion-item/stzh-accordion-item.js +2 -7
  43. package/dist/collection/components/stzh-accordion-item/stzh-accordion-item.js.map +1 -1
  44. package/dist/collection/components/stzh-button/stzh-button.css +13 -4
  45. package/dist/collection/components/stzh-button/stzh-button.e2e.js +6 -3
  46. package/dist/collection/components/stzh-button/stzh-button.e2e.js.map +1 -1
  47. package/dist/collection/components/stzh-button/stzh-button.stories.js +191 -15
  48. package/dist/collection/components/stzh-checkboxgroup/stzh-checkboxgroup.js +31 -14
  49. package/dist/collection/components/stzh-checkboxgroup/stzh-checkboxgroup.js.map +1 -1
  50. package/dist/collection/components/stzh-chip/stzh-chip.stories.js +11 -0
  51. package/dist/collection/components/stzh-chipselect/stzh-chipselect.css +1 -6
  52. package/dist/collection/components/stzh-contact/stzh-contact.css +11 -0
  53. package/dist/collection/components/stzh-contact/stzh-contact.js +1 -7
  54. package/dist/collection/components/stzh-contact/stzh-contact.js.map +1 -1
  55. package/dist/collection/components/stzh-datalist/stzh-datalist.e2e.js +1 -0
  56. package/dist/collection/components/stzh-datalist/stzh-datalist.e2e.js.map +1 -1
  57. package/dist/collection/components/stzh-datalist/stzh-datalist.stories.js +32 -0
  58. package/dist/collection/components/stzh-datalist-item/stzh-datalist-item.css +2 -1
  59. package/dist/collection/components/stzh-datepicker/stzh-datepicker.stories.js +1 -1
  60. package/dist/collection/components/stzh-dialog/stzh-dialog.css +2 -1
  61. package/dist/collection/components/stzh-dropdown/stzh-dropdown.css +8 -1
  62. package/dist/collection/components/stzh-dropdown/stzh-dropdown.stories.js +107 -5
  63. package/dist/collection/components/stzh-eventdata/stzh-eventdata.css +0 -5
  64. package/dist/collection/components/stzh-input/stzh-input.stories.js +1 -1
  65. package/dist/collection/components/stzh-microsite-teaserlist/stzh-microsite-teaserlist.js +3 -2
  66. package/dist/collection/components/stzh-microsite-teaserlist/stzh-microsite-teaserlist.js.map +1 -1
  67. package/dist/collection/components/stzh-progressbar/stzh-progressbar.js +27 -2
  68. package/dist/collection/components/stzh-progressbar/stzh-progressbar.js.map +1 -1
  69. package/dist/collection/components/stzh-search/stzh-search.js +1 -1
  70. package/dist/collection/components/stzh-search/stzh-search.js.map +1 -1
  71. package/dist/collection/components/stzh-search/stzh-search.stories.js +51 -83
  72. package/dist/collection/components/stzh-skiplink/stzh-skiplink.stories.js +0 -1
  73. package/dist/collection/components/stzh-upload/models/stzh-photographing-url-details.dto.js.map +1 -1
  74. package/dist/collection/components/stzh-upload/stzh-upload.css +5 -0
  75. package/dist/collection/components/stzh-upload/stzh-upload.js +26 -10
  76. package/dist/collection/components/stzh-upload/stzh-upload.js.map +1 -1
  77. package/dist/collection/components/stzh-upload/stzh-upload.localization.js.map +1 -1
  78. package/dist/collection/components/stzh-upload/stzh-upload.stories.js +3 -1
  79. package/dist/components/index.js +1 -1
  80. package/dist/components/{p-ed75de26.js → p-16940157.js} +3 -3
  81. package/dist/components/{p-ed75de26.js.map → p-16940157.js.map} +1 -1
  82. package/dist/components/{p-2fe2c81f.js → p-1d21ac10.js} +3 -3
  83. package/dist/components/{p-2fe2c81f.js.map → p-1d21ac10.js.map} +1 -1
  84. package/dist/components/{p-16892790.js → p-345a1e99.js} +51 -96
  85. package/dist/components/p-345a1e99.js.map +1 -0
  86. package/dist/components/{p-3aefa2e3.js → p-37367a31.js} +5 -5
  87. package/dist/components/{p-3aefa2e3.js.map → p-37367a31.js.map} +1 -1
  88. package/dist/components/{p-74755a90.js → p-408a1562.js} +2 -2
  89. package/dist/components/{p-74755a90.js.map → p-408a1562.js.map} +1 -1
  90. package/dist/components/{p-7e9f4f9f.js → p-497e2db0.js} +2 -2
  91. package/dist/components/{p-7e9f4f9f.js.map → p-497e2db0.js.map} +1 -1
  92. package/dist/components/p-4d000b5b.js +265 -0
  93. package/dist/components/p-4d000b5b.js.map +1 -0
  94. package/dist/components/{p-866cf184.js → p-4e5ccabd.js} +2 -2
  95. package/dist/components/{p-866cf184.js.map → p-4e5ccabd.js.map} +1 -1
  96. package/dist/components/{p-bd7d15a6.js → p-541e8c61.js} +2 -2
  97. package/dist/components/{p-bd7d15a6.js.map → p-541e8c61.js.map} +1 -1
  98. package/dist/components/{p-d4aabf9c.js → p-60b9f94a.js} +3 -3
  99. package/dist/components/p-60b9f94a.js.map +1 -0
  100. package/dist/components/{p-82c163e4.js → p-62e6cd61.js} +3 -3
  101. package/dist/components/{p-82c163e4.js.map → p-62e6cd61.js.map} +1 -1
  102. package/dist/components/{p-13c3319c.js → p-6956beb9.js} +2 -2
  103. package/dist/components/{p-13c3319c.js.map → p-6956beb9.js.map} +1 -1
  104. package/dist/components/{p-2a870524.js → p-6c754f8f.js} +3 -8
  105. package/dist/components/p-6c754f8f.js.map +1 -0
  106. package/dist/components/{p-9b0832ca.js → p-70f62e8e.js} +3 -3
  107. package/dist/components/{p-9b0832ca.js.map → p-70f62e8e.js.map} +1 -1
  108. package/dist/components/{p-c9ddf923.js → p-8ed7a61b.js} +2 -2
  109. package/dist/components/{p-c9ddf923.js.map → p-8ed7a61b.js.map} +1 -1
  110. package/dist/components/{p-3890d846.js → p-96416f66.js} +3 -3
  111. package/dist/components/p-96416f66.js.map +1 -0
  112. package/dist/components/{p-435e0ef4.js → p-c73125e2.js} +3 -3
  113. package/dist/components/{p-435e0ef4.js.map → p-c73125e2.js.map} +1 -1
  114. package/dist/components/{p-d1623b2e.js → p-dd072a49.js} +2 -2
  115. package/dist/components/{p-d1623b2e.js.map → p-dd072a49.js.map} +1 -1
  116. package/dist/components/{p-4039ba55.js → p-e5edc56d.js} +2 -2
  117. package/dist/components/{p-4039ba55.js.map → p-e5edc56d.js.map} +1 -1
  118. package/dist/components/{p-e0e4416e.js → p-ebbe78de.js} +2 -2
  119. package/dist/components/p-ebbe78de.js.map +1 -0
  120. package/dist/components/{p-e197115b.js → p-fa14b406.js} +2 -2
  121. package/dist/components/{p-e197115b.js.map → p-fa14b406.js.map} +1 -1
  122. package/dist/components/stzh-accordion-item.js +1 -1
  123. package/dist/components/stzh-actionset.js +1 -1
  124. package/dist/components/stzh-amount.js +3 -3
  125. package/dist/components/stzh-appointments.js +5 -5
  126. package/dist/components/stzh-archivelist.js +1 -1
  127. package/dist/components/stzh-banner.js +1 -1
  128. package/dist/components/stzh-bathstatus-list.js +1 -1
  129. package/dist/components/stzh-button.js +1 -1
  130. package/dist/components/stzh-calendar.js +1 -1
  131. package/dist/components/stzh-card-searchresult.js +3 -3
  132. package/dist/components/stzh-card-superteaser.js +3 -3
  133. package/dist/components/stzh-card.js +1 -1
  134. package/dist/components/stzh-checkboxgroup.js +13 -12
  135. package/dist/components/stzh-checkboxgroup.js.map +1 -1
  136. package/dist/components/stzh-chipselect.js +1 -1
  137. package/dist/components/stzh-contact.js +2 -8
  138. package/dist/components/stzh-contact.js.map +1 -1
  139. package/dist/components/stzh-datalist-item.js +1 -1
  140. package/dist/components/stzh-datalist.js +1 -1
  141. package/dist/components/stzh-datamessagelist-item.js +1 -1
  142. package/dist/components/stzh-datatable.js +7 -7
  143. package/dist/components/stzh-datepicker.js +1 -1
  144. package/dist/components/stzh-dialog.js +1 -1
  145. package/dist/components/stzh-disturber.js +1 -1
  146. package/dist/components/stzh-dropdown.js +1 -1
  147. package/dist/components/stzh-eventdata.js +1 -1
  148. package/dist/components/stzh-eventdata.js.map +1 -1
  149. package/dist/components/stzh-feedreader.js +2 -2
  150. package/dist/components/stzh-gallery.js +1 -1
  151. package/dist/components/stzh-geo-ref-data.js +6 -6
  152. package/dist/components/stzh-ghettobox.js +1 -1
  153. package/dist/components/stzh-header.js +1 -1
  154. package/dist/components/stzh-http-error.js +1 -1
  155. package/dist/components/stzh-iframe.js +1 -1
  156. package/dist/components/stzh-input.js +1 -1
  157. package/dist/components/stzh-message.js +1 -1
  158. package/dist/components/stzh-microsite-teaserlist.js +7 -6
  159. package/dist/components/stzh-microsite-teaserlist.js.map +1 -1
  160. package/dist/components/stzh-monthyearpicker.js +1 -1
  161. package/dist/components/stzh-offline-indicator.js +3 -3
  162. package/dist/components/stzh-pagebottom.js +2 -2
  163. package/dist/components/stzh-pagination.js +1 -1
  164. package/dist/components/stzh-panorama.js +2 -2
  165. package/dist/components/stzh-poilist.js +4 -4
  166. package/dist/components/stzh-progressbar.js +26 -2
  167. package/dist/components/stzh-progressbar.js.map +1 -1
  168. package/dist/components/stzh-readspeaker.js +1 -1
  169. package/dist/components/stzh-saptcha.js +2 -2
  170. package/dist/components/stzh-search.js +6 -6
  171. package/dist/components/stzh-search.js.map +1 -1
  172. package/dist/components/stzh-share.js +1 -1
  173. package/dist/components/stzh-sitemap.js +3 -3
  174. package/dist/components/stzh-timepicker.js +1 -1
  175. package/dist/components/stzh-toast.js +1 -1
  176. package/dist/components/stzh-toastbar.js +1 -1
  177. package/dist/components/stzh-upload.js +31 -15
  178. package/dist/components/stzh-upload.js.map +1 -1
  179. package/dist/components/stzh-vbz-majorticker.js +3 -3
  180. package/dist/components/stzh-vbz-ticker.js +1 -1
  181. package/dist/components/stzh-youtube.js +2 -2
  182. package/dist/esm/{app-globals-30dc1fec.js → app-globals-1e3146bc.js} +2 -2
  183. package/dist/esm/{app-globals-30dc1fec.js.map → app-globals-1e3146bc.js.map} +1 -1
  184. package/dist/esm/{axios-e0a35239.js → axios-0cc95004.js} +51 -96
  185. package/dist/esm/axios-0cc95004.js.map +1 -0
  186. package/dist/esm/loader.js +2 -2
  187. package/dist/esm/stzh-accordion_3.entry.js +2 -7
  188. package/dist/esm/stzh-accordion_3.entry.js.map +1 -1
  189. package/dist/esm/stzh-badge_3.entry.js +1 -1
  190. package/dist/esm/stzh-badge_3.entry.js.map +1 -1
  191. package/dist/esm/stzh-bathstatus-list.entry.js +1 -1
  192. package/dist/esm/stzh-checkboxgroup.entry.js +12 -11
  193. package/dist/esm/stzh-checkboxgroup.entry.js.map +1 -1
  194. package/dist/esm/stzh-chipselect.entry.js +1 -1
  195. package/dist/esm/stzh-chipselect.entry.js.map +1 -1
  196. package/dist/esm/stzh-components.js +2 -2
  197. package/dist/esm/stzh-contact.entry.js +2 -8
  198. package/dist/esm/stzh-contact.entry.js.map +1 -1
  199. package/dist/esm/stzh-datalist_2.entry.js +1 -1
  200. package/dist/esm/stzh-datalist_2.entry.js.map +1 -1
  201. package/dist/esm/stzh-dialog.entry.js +1 -1
  202. package/dist/esm/stzh-dialog.entry.js.map +1 -1
  203. package/dist/esm/stzh-dropdown.entry.js +1 -1
  204. package/dist/esm/stzh-dropdown.entry.js.map +1 -1
  205. package/dist/esm/stzh-eventdata.entry.js +1 -1
  206. package/dist/esm/stzh-eventdata.entry.js.map +1 -1
  207. package/dist/esm/stzh-microsite-teaserlist.entry.js +3 -2
  208. package/dist/esm/stzh-microsite-teaserlist.entry.js.map +1 -1
  209. package/dist/esm/stzh-poilist.entry.js +1 -1
  210. package/dist/esm/stzh-progressbar.entry.js +24 -1
  211. package/dist/esm/stzh-progressbar.entry.js.map +1 -1
  212. package/dist/esm/stzh-search.entry.js +2 -2
  213. package/dist/esm/stzh-search.entry.js.map +1 -1
  214. package/dist/esm/stzh-upload.entry.js +23 -10
  215. package/dist/esm/stzh-upload.entry.js.map +1 -1
  216. package/dist/esm/stzh-vbz-majorticker.entry.js +1 -1
  217. package/dist/esm/stzh-vbz-ticker.entry.js +1 -1
  218. package/dist/stzh-components/assets/i18n/de.json +9 -5
  219. package/dist/stzh-components/assets/i18n/en.json +9 -5
  220. package/dist/stzh-components/p-129faf7d.entry.js +2 -0
  221. package/dist/stzh-components/p-129faf7d.entry.js.map +1 -0
  222. package/dist/stzh-components/{p-68dee00d.entry.js → p-23678dfc.entry.js} +2 -2
  223. package/dist/stzh-components/{p-68dee00d.entry.js.map → p-23678dfc.entry.js.map} +1 -1
  224. package/dist/stzh-components/p-345a1e99.js +2 -0
  225. package/dist/stzh-components/p-345a1e99.js.map +1 -0
  226. package/dist/stzh-components/{p-e5a451a0.entry.js → p-646958e0.entry.js} +2 -2
  227. package/dist/stzh-components/{p-025a5c2e.entry.js → p-66c866e5.entry.js} +2 -2
  228. package/dist/stzh-components/p-66c866e5.entry.js.map +1 -0
  229. package/dist/stzh-components/{p-232d017c.entry.js → p-6a3db3bd.entry.js} +2 -2
  230. package/dist/stzh-components/p-6a3db3bd.entry.js.map +1 -0
  231. package/dist/stzh-components/{p-ef38e1fe.entry.js → p-6f9626d1.entry.js} +2 -2
  232. package/dist/stzh-components/p-6f9626d1.entry.js.map +1 -0
  233. package/dist/stzh-components/p-75143e35.entry.js +2 -0
  234. package/dist/stzh-components/p-75143e35.entry.js.map +1 -0
  235. package/dist/stzh-components/{p-8aab9098.entry.js → p-7c5e34db.entry.js} +2 -2
  236. package/dist/stzh-components/{p-b2986e24.entry.js → p-809076ff.entry.js} +2 -2
  237. package/dist/stzh-components/p-84cedd61.entry.js +2 -0
  238. package/dist/stzh-components/p-84cedd61.entry.js.map +1 -0
  239. package/dist/stzh-components/{p-5bafa548.entry.js → p-84f8307b.entry.js} +2 -2
  240. package/dist/stzh-components/p-84f8307b.entry.js.map +1 -0
  241. package/dist/stzh-components/{p-7b2bd184.entry.js → p-8856651e.entry.js} +2 -2
  242. package/dist/stzh-components/{p-7b2bd184.entry.js.map → p-8856651e.entry.js.map} +1 -1
  243. package/dist/stzh-components/p-8c5fb0e2.entry.js +2 -0
  244. package/dist/stzh-components/{p-f156650a.entry.js.map → p-8c5fb0e2.entry.js.map} +1 -1
  245. package/dist/stzh-components/p-9f91ca1f.entry.js +2 -0
  246. package/dist/stzh-components/p-9f91ca1f.entry.js.map +1 -0
  247. package/dist/stzh-components/p-d41803d1.js +2 -0
  248. package/dist/stzh-components/{p-64ba89a2.js.map → p-d41803d1.js.map} +1 -1
  249. package/dist/stzh-components/{p-6f0cf6e3.entry.js → p-d97fbf1f.entry.js} +2 -2
  250. package/dist/stzh-components/p-fa4595c8.entry.js +2 -0
  251. package/dist/stzh-components/p-fa4595c8.entry.js.map +1 -0
  252. package/dist/stzh-components/p-fcc75797.entry.js +2 -0
  253. package/dist/stzh-components/p-fcc75797.entry.js.map +1 -0
  254. package/dist/stzh-components/stzh-components.esm.js +1 -1
  255. package/dist/stzh-components/stzh-components.esm.js.map +1 -1
  256. package/dist/types/components/stzh-accordion-item/stzh-accordion-item.d.ts +0 -1
  257. package/dist/types/components/stzh-checkboxgroup/stzh-checkboxgroup.d.ts +3 -3
  258. package/dist/types/components/stzh-microsite-teaserlist/stzh-microsite-teaserlist.d.ts +2 -2
  259. package/dist/types/components/stzh-progressbar/stzh-progressbar.d.ts +4 -0
  260. package/dist/types/components/stzh-upload/models/stzh-photographing-url-details.dto.d.ts +1 -0
  261. package/dist/types/components/stzh-upload/stzh-upload.d.ts +3 -0
  262. package/dist/types/components/stzh-upload/stzh-upload.localization.d.ts +2 -0
  263. package/dist/types/components.d.ts +8 -0
  264. package/dist/vscode-data.json +4 -0
  265. package/package.json +9 -5
  266. package/dist/cjs/axios-69bcb71f.js.map +0 -1
  267. package/dist/components/p-16892790.js.map +0 -1
  268. package/dist/components/p-20c7b76b.js +0 -265
  269. package/dist/components/p-20c7b76b.js.map +0 -1
  270. package/dist/components/p-2a870524.js.map +0 -1
  271. package/dist/components/p-3890d846.js.map +0 -1
  272. package/dist/components/p-d4aabf9c.js.map +0 -1
  273. package/dist/components/p-e0e4416e.js.map +0 -1
  274. package/dist/esm/axios-e0a35239.js.map +0 -1
  275. package/dist/stzh-components/p-025a5c2e.entry.js.map +0 -1
  276. package/dist/stzh-components/p-11abc40a.entry.js +0 -2
  277. package/dist/stzh-components/p-11abc40a.entry.js.map +0 -1
  278. package/dist/stzh-components/p-16892790.js +0 -2
  279. package/dist/stzh-components/p-16892790.js.map +0 -1
  280. package/dist/stzh-components/p-232d017c.entry.js.map +0 -1
  281. package/dist/stzh-components/p-5ac0220a.entry.js +0 -2
  282. package/dist/stzh-components/p-5ac0220a.entry.js.map +0 -1
  283. package/dist/stzh-components/p-5bafa548.entry.js.map +0 -1
  284. package/dist/stzh-components/p-64ba89a2.js +0 -2
  285. package/dist/stzh-components/p-95427be2.entry.js +0 -2
  286. package/dist/stzh-components/p-95427be2.entry.js.map +0 -1
  287. package/dist/stzh-components/p-973c5df2.entry.js +0 -2
  288. package/dist/stzh-components/p-973c5df2.entry.js.map +0 -1
  289. package/dist/stzh-components/p-aff2ca5f.entry.js +0 -2
  290. package/dist/stzh-components/p-aff2ca5f.entry.js.map +0 -1
  291. package/dist/stzh-components/p-da2c88a2.entry.js +0 -2
  292. package/dist/stzh-components/p-da2c88a2.entry.js.map +0 -1
  293. package/dist/stzh-components/p-ef38e1fe.entry.js.map +0 -1
  294. package/dist/stzh-components/p-f156650a.entry.js +0 -2
  295. /package/dist/stzh-components/{p-e5a451a0.entry.js.map → p-646958e0.entry.js.map} +0 -0
  296. /package/dist/stzh-components/{p-8aab9098.entry.js.map → p-7c5e34db.entry.js.map} +0 -0
  297. /package/dist/stzh-components/{p-b2986e24.entry.js.map → p-809076ff.entry.js.map} +0 -0
  298. /package/dist/stzh-components/{p-6f0cf6e3.entry.js.map → p-d97fbf1f.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"stzh-contact.js","sourceRoot":"","sources":["../../../../src/components/stzh-contact/stzh-contact.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Fragment, h, Host, Prop, Watch } from \"@stencil/core\";\n\nimport { ContactEmail, ContactNumber, StzhContactAvailabilityItem } from \"../../index\";\n\nimport { hasSlot } from \"../../utils/utils\";\n\nfunction formatTel(tel: string) {\n return tel.replace(/\\s/g, \"\");\n}\n\n/**\n * @slot main-heading - slot for main heading\n * @slot image - slot for image\n * @slot address - slot for address (alternative for `address` property or separate properties `street`, `streetInfo`, `postalCode` & `location`)\n * @slot pobox - slot for pobox (alternative for `pobox` property or separate properties `poboxHeading`, `poboxTitle`, `poboxPostalCode` & `poboxLocation`)\n * @slot slot for additional (e.g. accordion with contact form, map or datalist)\n */\n@Component({\n tag: \"stzh-contact\",\n styleUrl: \"stzh-contact.scss\",\n scoped: true,\n})\nexport class StzhContact {\n /** Type */\n @Prop() type: \"Organization\" | \"Person\" = \"Organization\";\n\n /** Main heading */\n @Prop() mainHeading: string;\n\n /** Main heading level */\n @Prop() mainHeadingLevel: \"1\" | \"2\" | \"3\" | \"4\" = \"2\";\n\n /** Heading */\n @Prop() heading: string;\n\n /** Heading level */\n @Prop() headingLevel: \"1\" | \"2\" | \"3\" | \"4\" = \"3\";\n\n /** Name */\n @Prop() name: string;\n\n /** Name heading level */\n @Prop() nameHeadingLevel: \"\" | \"1\" | \"2\" | \"3\" | \"4\" = \"\";\n\n /** Address (alternative for address slot or separate properties `street`, `streetInfo`, `postalCode` & `location`) */\n @Prop() address: string;\n\n /** Street */\n @Prop() street: string | string[];\n private _street: string[] = [];\n\n /** Additional street info */\n @Prop() streetInfo: string | string[];\n private _streetInfo: string[] = [];\n\n /** Postal code */\n @Prop() postalCode: string;\n\n /** Location / city */\n @Prop() location: string;\n\n /** Location / city */\n @Prop() imagePosition: \"left\" | \"top\" = \"top\";\n\n /**\n * Numbers\n * Array of objects that can include the attributes `type` = `tel`|`fax`, `label`, `number`\n * and optionally `analyticsId` for setting `s-object-id` to the link element\n * (for Adobe Analytics, default value is `label` and `number`).\n */\n @Prop() numbers: ContactNumber[] | string = [];\n private _numbers: ContactNumber[] = [];\n\n /**\n * Numbers\n * Array of objects that can include the attributes `label`, `number`, `text`, `href`\n * and optionally `analyticsId` for setting `s-object-id` to the link element\n * (for Adobe Analytics, default value is `label` and `text`).\n */\n @Prop() emails: ContactEmail[] | string = [];\n private _emails: ContactEmail[] = [];\n\n /** Pobox (alternative for pobox slot or separate properties `poboxHeading`, `poboxTitle`, `poboxPostalCode` & `poboxLocation`) */\n @Prop() pobox: string;\n\n /** Post office box heading */\n @Prop() poboxHeading: string;\n\n /** Post office box title */\n @Prop() poboxTitle: string;\n\n /** Post office box postal code */\n @Prop() poboxPostalCode: string;\n\n /** Post office box location / city */\n @Prop() poboxLocation: string;\n\n /** Availability title */\n @Prop() availabilityTitle: string;\n\n /** Availability title level */\n @Prop() availabilityTitleLevel: \"1\" | \"2\" | \"3\" | \"4\" = \"3\";\n\n /** Availability times */\n @Prop() availability: string | StzhContactAvailabilityItem[];\n private _availability: StzhContactAvailabilityItem[] = [];\n\n // private _availabilityDataItems: StzhDatalistItemEntry[] = [];\n\n @Watch(\"availability\")\n availabilityWatcher(newValue: string | StzhContactAvailabilityItem[]) {\n if (typeof newValue === \"string\") {\n this._availability = JSON.parse(newValue);\n } else {\n this._availability = newValue;\n }\n\n // if (this._availability) {\n // this._availabilityDataItems = this._availability.map((item) => ({\n // value: item.hours.join(' | '),\n // label: item.weekday\n // }));\n // }\n }\n\n @Watch(\"numbers\")\n numbersWatcher(newValue: ContactNumber[] | string) {\n if (typeof newValue === \"string\") {\n this._numbers = JSON.parse(newValue);\n } else {\n this._numbers = newValue;\n }\n }\n\n @Watch(\"emails\")\n emailsWatcher(newValue: ContactEmail[] | string) {\n if (typeof newValue === \"string\") {\n this._emails = JSON.parse(newValue);\n } else {\n this._emails = newValue;\n }\n }\n\n @Watch(\"street\")\n streetWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n try {\n this._street = JSON.parse(newValue);\n } catch (noArrayException) {\n this._street = [newValue];\n }\n } else if (newValue) {\n this._street = newValue;\n }\n }\n\n @Watch(\"streetInfo\")\n streetInfoWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n try {\n this._streetInfo = JSON.parse(newValue);\n } catch (noArrayException) {\n this._streetInfo = [newValue];\n }\n } else if (newValue) {\n this._streetInfo = newValue;\n }\n }\n\n @Element() element: HTMLStzhFigureElement;\n\n async componentWillLoad() {\n this.numbersWatcher(this.numbers);\n this.emailsWatcher(this.emails);\n this.availabilityWatcher(this.availability);\n this.streetWatcher(this.street);\n this.streetInfoWatcher(this.streetInfo);\n }\n\n render() {\n const hasImage = hasSlot(this.element, \"image\");\n const hasAddress = !!this.address || hasSlot(this.element, \"address\");\n const hasAddons = hasSlot(this.element, \"addons\");\n const hasLinks = hasSlot(this.element, \"links\");\n\n const classes = {\n \"stzh-contact\": true,\n \"stzh-contact--has-image\": hasImage,\n \"stzh-contact--has-address\": hasAddress,\n \"stzh-contact--has-addons\": hasAddons,\n \"stzh-contact--has-links\": hasLinks,\n [`stzh-contact--image-position-${this.imagePosition}`]: true,\n };\n\n const HeadingLevel = `h${this.headingLevel}`;\n const NameHeadingLevel = this.nameHeadingLevel ? `h${this.nameHeadingLevel}` : \"div\";\n const AvailabilityTitleElement = `h${this.availabilityTitleLevel}`;\n\n return (\n <Host image-position={this.imagePosition}>\n <div class={classes} itemscope itemtype={`http://schema.org/${this.type}`}>\n <div\n class=\"stzh-contact__main-heading\"\n itemprop={\n (this.type === \"Organization\" && !this.heading) || (this.type === \"Person\" && !this.name) ? \"name\" : null\n }\n >\n {this.mainHeading ? (\n <stzh-heading level={this.mainHeadingLevel}>{this.mainHeading}</stzh-heading>\n ) : (\n <slot name=\"main-heading\"></slot>\n )}\n </div>\n\n <div class=\"stzh-contact__image-wrapper\">\n <div class=\"stzh-contact__image\">\n <slot name=\"image\"></slot>\n </div>\n </div>\n\n <div class=\"stzh-contact__info\">\n {this.heading && (\n <HeadingLevel\n class=\"stzh-contact__heading\"\n itemprop={this.type === \"Organization\" || !this.name ? \"name\" : null}\n innerHTML={this.heading}\n ></HeadingLevel>\n )}\n\n {this.name && (\n <NameHeadingLevel\n class={{\n \"stzh-contact__name\": true,\n \"is-heading\": this.nameHeadingLevel !== \"\",\n }}\n itemprop={this.type === \"Person\" ? \"name\" : null}\n >\n {this.name}\n </NameHeadingLevel>\n )}\n\n <div\n class=\"stzh-contact__address\"\n itemprop=\"address\"\n itemscope\n itemtype=\"http://schema.org/PostalAddress\"\n innerHTML={this.address}\n >\n {!this.address && (\n <Fragment>\n {this._street.length > 0 && (\n <div class=\"stzh-contact__street\" itemprop=\"streetAddress\">\n {this._street.map((street: string) => (\n <Fragment>\n {street}\n <br />\n </Fragment>\n ))}\n {this._streetInfo.length > 0 && (\n <Fragment>\n <br />{\" \"}\n {this._streetInfo.map((streetInfo: string) => (\n <Fragment>\n {streetInfo}\n <br />\n </Fragment>\n ))}\n </Fragment>\n )}\n </div>\n )}\n\n {this.postalCode && (\n <span class=\"stzh-contact__postal-code\" itemprop=\"postalCode\">\n {this.postalCode}&nbsp;\n </span>\n )}\n\n {this.location && (\n <span class=\"stzh-contact__locality\" itemprop=\"addressLocality\">\n {this.location}\n </span>\n )}\n\n <slot name=\"address\"></slot>\n </Fragment>\n )}\n </div>\n\n {this._numbers.length > 0 && (\n <div class=\"stzh-contact__numbers\">\n {this._numbers.map(number => (\n <div class=\"stzh-contact__number\">\n <span>{number.label}&nbsp;</span>\n <stzh-link\n size=\"inherit\"\n height=\"auto\"\n class=\"stzh-contact__number-link\"\n href={`${number.type}:${formatTel(number.number)}`}\n analyticsId={number.analyticsId || `${number.label} ${number.number}`}\n itemprop={number.type === \"fax\" ? \"faxNumber\" : \"telephone\"}\n >\n {number.number}\n </stzh-link>\n </div>\n ))}\n </div>\n )}\n\n {this._emails.length > 0 && (\n <div class=\"stzh-contact__emails\">\n {this._emails.map(email => (\n <div class=\"stzh-contact__email\">\n <span>{email.label}&nbsp;</span>\n {email.href ? (\n <stzh-link\n size=\"inherit\"\n height=\"auto\"\n class=\"stzh-container__email-link\"\n href={`mailto:${email.href}`}\n analyticsId={email.analyticsId || `${email.label} ${email.text}`}\n itemprop=\"email\"\n >\n {email.text}\n </stzh-link>\n ) : (\n <span class=\"stzh-container__email-link\" itemprop=\"email\">\n {email.text}\n </span>\n )}\n </div>\n ))}\n </div>\n )}\n\n <div class=\"stzh-contact__pobox\" innerHTML={this.pobox}>\n {!this.pobox && (\n <Fragment>\n {this.poboxHeading && <div class=\"stzh-contact__pobox-heading\">{this.poboxHeading}</div>}\n {this.poboxTitle && <div class=\"stzh-contact__pobox-title\">{this.poboxTitle}</div>}\n {this.poboxPostalCode && (\n <span class=\"stzh-contact__pobox-postal-code\">{this.poboxPostalCode}&nbsp;</span>\n )}\n {this.poboxLocation && <span class=\"stzh-contact__pobox-locality\">{this.poboxLocation}</span>}\n <slot name=\"pobox\"></slot>\n </Fragment>\n )}\n </div>\n </div>\n\n {this.availability && (\n <div class=\"stzh-contact__availability\">\n {this.availabilityTitle && (\n <AvailabilityTitleElement class=\"stzh-contact__availability-title\">\n {this.availabilityTitle}\n </AvailabilityTitleElement>\n )}\n\n {this._availability.length > 0 && (\n <ul class=\"stzh-contact__availability-list\">\n {this._availability.map(item => (\n <li class=\"stzh-contact__availability-list-item\">\n <div class=\"stzh-contact__availability-weekday\">{item.weekday}</div>\n {item.hours.length > 0 && (\n <div class=\"stzh-contact__availability-hours\">\n {item.hours.map((hour, index) => (\n <Fragment>\n <div class=\"stzh-contact__availability-hour\">{hour}</div>\n {index < item.hours.length - 1 && (\n <div class=\"stzh-contact__availability-hours-separator\"></div>\n )}\n </Fragment>\n ))}\n </div>\n )}\n </li>\n ))}\n </ul>\n )}\n </div>\n )}\n\n <div class=\"stzh-contact__additional\">\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"stzh-contact.js","sourceRoot":"","sources":["../../../../src/components/stzh-contact/stzh-contact.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Fragment, h, Host, Prop, Watch } from \"@stencil/core\";\n\nimport { ContactEmail, ContactNumber, StzhContactAvailabilityItem } from \"../../index\";\n\nimport { hasSlot } from \"../../utils/utils\";\n\nfunction formatTel(tel: string) {\n return tel.replace(/\\s/g, \"\");\n}\n\n/**\n * @slot main-heading - slot for main heading\n * @slot image - slot for image\n * @slot address - slot for address (alternative for `address` property or separate properties `street`, `streetInfo`, `postalCode` & `location`)\n * @slot pobox - slot for pobox (alternative for `pobox` property or separate properties `poboxHeading`, `poboxTitle`, `poboxPostalCode` & `poboxLocation`)\n * @slot slot for additional (e.g. accordion with contact form, map or datalist)\n */\n@Component({\n tag: \"stzh-contact\",\n styleUrl: \"stzh-contact.scss\",\n scoped: true,\n})\nexport class StzhContact {\n /** Type */\n @Prop() type: \"Organization\" | \"Person\" = \"Organization\";\n\n /** Main heading */\n @Prop() mainHeading: string;\n\n /** Main heading level */\n @Prop() mainHeadingLevel: \"1\" | \"2\" | \"3\" | \"4\" = \"2\";\n\n /** Heading */\n @Prop() heading: string;\n\n /** Heading level */\n @Prop() headingLevel: \"1\" | \"2\" | \"3\" | \"4\" = \"3\";\n\n /** Name */\n @Prop() name: string;\n\n /** Name heading level */\n @Prop() nameHeadingLevel: \"\" | \"1\" | \"2\" | \"3\" | \"4\" = \"\";\n\n /** Address (alternative for address slot or separate properties `street`, `streetInfo`, `postalCode` & `location`) */\n @Prop() address: string;\n\n /** Street */\n @Prop() street: string | string[];\n private _street: string[] = [];\n\n /** Additional street info */\n @Prop() streetInfo: string | string[];\n private _streetInfo: string[] = [];\n\n /** Postal code */\n @Prop() postalCode: string;\n\n /** Location / city */\n @Prop() location: string;\n\n /** Location / city */\n @Prop() imagePosition: \"left\" | \"top\" = \"top\";\n\n /**\n * Numbers\n * Array of objects that can include the attributes `type` = `tel`|`fax`, `label`, `number`\n * and optionally `analyticsId` for setting `s-object-id` to the link element\n * (for Adobe Analytics, default value is `label` and `number`).\n */\n @Prop() numbers: ContactNumber[] | string = [];\n private _numbers: ContactNumber[] = [];\n\n /**\n * Numbers\n * Array of objects that can include the attributes `label`, `number`, `text`, `href`\n * and optionally `analyticsId` for setting `s-object-id` to the link element\n * (for Adobe Analytics, default value is `label` and `text`).\n */\n @Prop() emails: ContactEmail[] | string = [];\n private _emails: ContactEmail[] = [];\n\n /** Pobox (alternative for pobox slot or separate properties `poboxHeading`, `poboxTitle`, `poboxPostalCode` & `poboxLocation`) */\n @Prop() pobox: string;\n\n /** Post office box heading */\n @Prop() poboxHeading: string;\n\n /** Post office box title */\n @Prop() poboxTitle: string;\n\n /** Post office box postal code */\n @Prop() poboxPostalCode: string;\n\n /** Post office box location / city */\n @Prop() poboxLocation: string;\n\n /** Availability title */\n @Prop() availabilityTitle: string;\n\n /** Availability title level */\n @Prop() availabilityTitleLevel: \"1\" | \"2\" | \"3\" | \"4\" = \"3\";\n\n /** Availability times */\n @Prop() availability: string | StzhContactAvailabilityItem[];\n private _availability: StzhContactAvailabilityItem[] = [];\n\n // private _availabilityDataItems: StzhDatalistItemEntry[] = [];\n\n @Watch(\"availability\")\n availabilityWatcher(newValue: string | StzhContactAvailabilityItem[]) {\n if (typeof newValue === \"string\") {\n this._availability = JSON.parse(newValue);\n } else {\n this._availability = newValue;\n }\n }\n\n @Watch(\"numbers\")\n numbersWatcher(newValue: ContactNumber[] | string) {\n if (typeof newValue === \"string\") {\n this._numbers = JSON.parse(newValue);\n } else {\n this._numbers = newValue;\n }\n }\n\n @Watch(\"emails\")\n emailsWatcher(newValue: ContactEmail[] | string) {\n if (typeof newValue === \"string\") {\n this._emails = JSON.parse(newValue);\n } else {\n this._emails = newValue;\n }\n }\n\n @Watch(\"street\")\n streetWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n try {\n this._street = JSON.parse(newValue);\n } catch (noArrayException) {\n this._street = [newValue];\n }\n } else if (newValue) {\n this._street = newValue;\n }\n }\n\n @Watch(\"streetInfo\")\n streetInfoWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n try {\n this._streetInfo = JSON.parse(newValue);\n } catch (noArrayException) {\n this._streetInfo = [newValue];\n }\n } else if (newValue) {\n this._streetInfo = newValue;\n }\n }\n\n @Element() element: HTMLStzhFigureElement;\n\n async componentWillLoad() {\n this.numbersWatcher(this.numbers);\n this.emailsWatcher(this.emails);\n this.availabilityWatcher(this.availability);\n this.streetWatcher(this.street);\n this.streetInfoWatcher(this.streetInfo);\n }\n\n render() {\n const hasImage = hasSlot(this.element, \"image\");\n const hasAddress = !!this.address || hasSlot(this.element, \"address\");\n const hasAddons = hasSlot(this.element, \"addons\");\n const hasLinks = hasSlot(this.element, \"links\");\n\n const classes = {\n \"stzh-contact\": true,\n \"stzh-contact--has-image\": hasImage,\n \"stzh-contact--has-address\": hasAddress,\n \"stzh-contact--has-addons\": hasAddons,\n \"stzh-contact--has-links\": hasLinks,\n [`stzh-contact--image-position-${this.imagePosition}`]: true,\n };\n\n const HeadingLevel = `h${this.headingLevel}`;\n const NameHeadingLevel = this.nameHeadingLevel ? `h${this.nameHeadingLevel}` : \"div\";\n const AvailabilityTitleElement = `h${this.availabilityTitleLevel}`;\n\n return (\n <Host image-position={this.imagePosition} has-availability={!!this.availability ? 'true' : 'false'}>\n <div class={classes} itemscope itemtype={`http://schema.org/${this.type}`}>\n <div\n class=\"stzh-contact__main-heading\"\n itemprop={\n (this.type === \"Organization\" && !this.heading) || (this.type === \"Person\" && !this.name) ? \"name\" : null\n }\n >\n {this.mainHeading ? (\n <stzh-heading level={this.mainHeadingLevel}>{this.mainHeading}</stzh-heading>\n ) : (\n <slot name=\"main-heading\"></slot>\n )}\n </div>\n\n <div class=\"stzh-contact__image-wrapper\">\n <div class=\"stzh-contact__image\">\n <slot name=\"image\"></slot>\n </div>\n </div>\n\n <div class=\"stzh-contact__info\">\n {this.heading && (\n <HeadingLevel\n class=\"stzh-contact__heading\"\n itemprop={this.type === \"Organization\" || !this.name ? \"name\" : null}\n innerHTML={this.heading}\n ></HeadingLevel>\n )}\n\n {this.name && (\n <NameHeadingLevel\n class={{\n \"stzh-contact__name\": true,\n \"is-heading\": this.nameHeadingLevel !== \"\",\n }}\n itemprop={this.type === \"Person\" ? \"name\" : null}\n >\n {this.name}\n </NameHeadingLevel>\n )}\n\n <div\n class=\"stzh-contact__address\"\n itemprop=\"address\"\n itemscope\n itemtype=\"http://schema.org/PostalAddress\"\n innerHTML={this.address}\n >\n {!this.address && (\n <Fragment>\n {this._street.length > 0 && (\n <div class=\"stzh-contact__street\" itemprop=\"streetAddress\">\n {this._street.map((street: string) => (\n <Fragment>\n {street}\n <br />\n </Fragment>\n ))}\n {this._streetInfo.length > 0 && (\n <Fragment>\n <br />{\" \"}\n {this._streetInfo.map((streetInfo: string) => (\n <Fragment>\n {streetInfo}\n <br />\n </Fragment>\n ))}\n </Fragment>\n )}\n </div>\n )}\n\n {this.postalCode && (\n <span class=\"stzh-contact__postal-code\" itemprop=\"postalCode\">\n {this.postalCode}&nbsp;\n </span>\n )}\n\n {this.location && (\n <span class=\"stzh-contact__locality\" itemprop=\"addressLocality\">\n {this.location}\n </span>\n )}\n\n <slot name=\"address\"></slot>\n </Fragment>\n )}\n </div>\n\n {this._numbers.length > 0 && (\n <div class=\"stzh-contact__numbers\">\n {this._numbers.map(number => (\n <div class=\"stzh-contact__number\">\n <span>{number.label}&nbsp;</span>\n <stzh-link\n size=\"inherit\"\n height=\"auto\"\n class=\"stzh-contact__number-link\"\n href={`${number.type}:${formatTel(number.number)}`}\n analyticsId={number.analyticsId || `${number.label} ${number.number}`}\n itemprop={number.type === \"fax\" ? \"faxNumber\" : \"telephone\"}\n >\n {number.number}\n </stzh-link>\n </div>\n ))}\n </div>\n )}\n\n {this._emails.length > 0 && (\n <div class=\"stzh-contact__emails\">\n {this._emails.map(email => (\n <div class=\"stzh-contact__email\">\n <span>{email.label}&nbsp;</span>\n {email.href ? (\n <stzh-link\n size=\"inherit\"\n height=\"auto\"\n class=\"stzh-container__email-link\"\n href={`mailto:${email.href}`}\n analyticsId={email.analyticsId || `${email.label} ${email.text}`}\n itemprop=\"email\"\n >\n {email.text}\n </stzh-link>\n ) : (\n <span class=\"stzh-container__email-link\" itemprop=\"email\">\n {email.text}\n </span>\n )}\n </div>\n ))}\n </div>\n )}\n\n <div class=\"stzh-contact__pobox\" innerHTML={this.pobox}>\n {!this.pobox && (\n <Fragment>\n {this.poboxHeading && <div class=\"stzh-contact__pobox-heading\">{this.poboxHeading}</div>}\n {this.poboxTitle && <div class=\"stzh-contact__pobox-title\">{this.poboxTitle}</div>}\n {this.poboxPostalCode && (\n <span class=\"stzh-contact__pobox-postal-code\">{this.poboxPostalCode}&nbsp;</span>\n )}\n {this.poboxLocation && <span class=\"stzh-contact__pobox-locality\">{this.poboxLocation}</span>}\n <slot name=\"pobox\"></slot>\n </Fragment>\n )}\n </div>\n </div>\n\n {this.availability && (\n <div class=\"stzh-contact__availability\">\n {this.availabilityTitle && (\n <AvailabilityTitleElement class=\"stzh-contact__availability-title\">\n {this.availabilityTitle}\n </AvailabilityTitleElement>\n )}\n\n {this._availability.length > 0 && (\n <ul class=\"stzh-contact__availability-list\">\n {this._availability.map(item => (\n <li class=\"stzh-contact__availability-list-item\">\n <div class=\"stzh-contact__availability-weekday\">{item.weekday}</div>\n {item.hours.length > 0 && (\n <div class=\"stzh-contact__availability-hours\">\n {item.hours.map((hour, index) => (\n <Fragment>\n <div class=\"stzh-contact__availability-hour\">{hour}</div>\n {index < item.hours.length - 1 && (\n <div class=\"stzh-contact__availability-hours-separator\"></div>\n )}\n </Fragment>\n ))}\n </div>\n )}\n </li>\n ))}\n </ul>\n )}\n </div>\n )}\n\n <div class=\"stzh-contact__additional\">\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -4,6 +4,7 @@ const URL = "components-datalist";
4
4
  const STORIES = [
5
5
  "default",
6
6
  "urls",
7
+ "multi-column",
7
8
  "nested",
8
9
  "details",
9
10
  "table",
@@ -1 +1 @@
1
- {"version":3,"file":"stzh-datalist.e2e.js","sourceRoot":"","sources":["../../../../src/components/stzh-datalist/stzh-datalist.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,MAAM,GAAG,GAAG,qBAAqB,CAAC;AAElC,MAAM,OAAO,GAAG;EACd,SAAS;EACT,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,SAAS;EACT,mBAAmB;CACpB,CAAC;AAEF,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;EAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;IAC1B,IAAI,CAAC,SAAS,OAAO,cAAc,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;MACtD,MAAM,UAAU,CAAC;QACf,OAAO;QACP,IAAI;QACJ,GAAG,EAAE,GAAG;OACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test } from \"@playwright/test\";\nimport { visualDiff } from \"../../../.build/test/utils\";\n\nconst URL = \"components-datalist\";\n\nconst STORIES = [\n \"default\",\n \"urls\",\n \"nested\",\n \"details\",\n \"table\",\n \"slotted\",\n \"slotted-edit-mode\",\n];\n\ntest.describe(\"datalist\", () => {\n STORIES.forEach((storyId) => {\n test(`story ${storyId} visual diff`, async ({ page }) => {\n await visualDiff({\n storyId,\n page,\n url: URL\n });\n });\n });\n});\n"]}
1
+ {"version":3,"file":"stzh-datalist.e2e.js","sourceRoot":"","sources":["../../../../src/components/stzh-datalist/stzh-datalist.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,MAAM,GAAG,GAAG,qBAAqB,CAAC;AAElC,MAAM,OAAO,GAAG;EACd,SAAS;EACT,MAAM;EACN,cAAc;EACd,QAAQ;EACR,SAAS;EACT,OAAO;EACP,SAAS;EACT,mBAAmB;CACpB,CAAC;AAEF,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;EAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;IAC1B,IAAI,CAAC,SAAS,OAAO,cAAc,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;MACtD,MAAM,UAAU,CAAC;QACf,OAAO;QACP,IAAI;QACJ,GAAG,EAAE,GAAG;OACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test } from \"@playwright/test\";\nimport { visualDiff } from \"../../../.build/test/utils\";\n\nconst URL = \"components-datalist\";\n\nconst STORIES = [\n \"default\",\n \"urls\",\n \"multi-column\",\n \"nested\",\n \"details\",\n \"table\",\n \"slotted\",\n \"slotted-edit-mode\",\n];\n\ntest.describe(\"datalist\", () => {\n STORIES.forEach((storyId) => {\n test(`story ${storyId} visual diff`, async ({ page }) => {\n await visualDiff({\n storyId,\n page,\n url: URL\n });\n });\n });\n});\n"]}
@@ -196,6 +196,38 @@ export const Urls = {
196
196
  },
197
197
  };
198
198
 
199
+ export const MultiColumn = {
200
+ render: (args) => story(args, TEMPLATE),
201
+ args: {
202
+ columns: 3,
203
+ items: [
204
+ {
205
+ label: 'Label',
206
+ value: 'Internal Link',
207
+ href: '#',
208
+ },
209
+ {
210
+ label: 'Label',
211
+ value: 'External Link',
212
+ href: 'http://example.com',
213
+ target: '_blank',
214
+ },
215
+ {
216
+ label: 'Label',
217
+ value: 'Phone Link',
218
+ href: 'tel:#',
219
+ },
220
+ {
221
+ label: 'Label',
222
+ value: 'Download Link',
223
+ href: '#',
224
+ meta: ['PDF', '1 Seite', '60 KB'],
225
+ download: true,
226
+ },
227
+ ],
228
+ },
229
+ };
230
+
199
231
  export const Nested = {
200
232
  render: (args) => story(args, TEMPLATE),
201
233
  args: {
@@ -192,10 +192,11 @@
192
192
  position: relative;
193
193
  -webkit-text-decoration-line: none;
194
194
  text-decoration-line: none;
195
- display: flex;
195
+ display: var(--wrapper-display);
196
196
  align-items: center;
197
197
  /* Button variant */
198
198
  /* Interactive variant */
199
+ /* Vertical Variant */
199
200
  /* Horizontal / Table Variant */
200
201
  /** Table Variant */
201
202
  /** Big label */
@@ -17,7 +17,7 @@ export default {
17
17
  parameters: {
18
18
  layout: 'padded',
19
19
  actions: {
20
- handles: ['stzhChange'],
20
+ handles: ['stzhChange', 'stzhChanged'],
21
21
  },
22
22
  docs: {
23
23
  description: {
@@ -296,7 +296,8 @@
296
296
  margin: auto;
297
297
  border: none;
298
298
  background-color: var(--stzh-color-white);
299
- width: var(--width);
299
+ width: auto;
300
+ min-width: var(--width);
300
301
  max-width: 100%;
301
302
  box-shadow: var(--stzh-box-shadow-overlay);
302
303
  height: 100vh;
@@ -1379,7 +1379,7 @@ stzh-dropdown:where([size=tiny]):where([variant=filter]) {
1379
1379
  }
1380
1380
  .stzh-dropdown__select.plugin-remove_button .stzh-dropdown__item, .stzh-dropdown--is-multiple .stzh-dropdown__select.plugin-remove_button .stzh-dropdown__item {
1381
1381
  display: inline-flex;
1382
- align-items: flex-start;
1382
+ align-items: center;
1383
1383
  gap: var(--remove-gap);
1384
1384
  padding-right: 0px;
1385
1385
  }
@@ -1485,6 +1485,13 @@ stzh-dropdown:where([size=tiny]):where([variant=filter]) {
1485
1485
  .stzh-dropdown--has-no-search .stzh-dropdown__select.input-active .ts-control, .stzh-dropdown--has-no-search .stzh-dropdown__select.input-active .ts-control > input {
1486
1486
  cursor: pointer;
1487
1487
  }
1488
+ .stzh-dropdown--filter .stzh-dropdown__option, .stzh-dropdown--plain .stzh-dropdown__option {
1489
+ background-color: var(--stzh-color-secondary10);
1490
+ color: var(--stzh-color-primary70);
1491
+ }
1492
+ .stzh-dropdown--filter .stzh-dropdown__option:hover, .stzh-dropdown--filter .stzh-dropdown__option.active, .stzh-dropdown--plain .stzh-dropdown__option:hover, .stzh-dropdown--plain .stzh-dropdown__option.active {
1493
+ background-color: var(--stzh-color-secondary20);
1494
+ }
1488
1495
  .stzh-dropdown--filter .stzh-dropdown__select.single .ts-control, .stzh-dropdown--filter .stzh-dropdown__select.multi .ts-control, .stzh-dropdown--filter .stzh-dropdown__sizer {
1489
1496
  border: none;
1490
1497
  }
@@ -4,12 +4,18 @@ import readme from './readme.md?raw';
4
4
 
5
5
  import { getFigmaLink } from '../../../figma';
6
6
  import { fullwidthCentered } from '../../utils/decorators';
7
+ import { expectIsVisible, getComponentByTestId } from "../../../.storybook/utils/component-test-utils";
8
+ import { expect } from "@storybook/jest";
9
+ import { userEvent, waitFor } from "@storybook/testing-library";
7
10
 
8
11
  const COMPONENT_NAME = 'stzh-dropdown';
9
12
  const story = createComponentStory(COMPONENT_NAME);
10
13
 
14
+ const DROPDOWN_TEST_ID = 'BUTTON_TEST_ID';
15
+ let stzhDropdownEl;
16
+
11
17
  const TEMPLATE = `
12
- <stzh-dropdown></stzh-dropdown>
18
+ <stzh-dropdown data-testid="${DROPDOWN_TEST_ID}"></stzh-dropdown>
13
19
  `;
14
20
 
15
21
  const TEMPLATE_SLOTTED_OPTIONS_WITH_ICON = `
@@ -52,13 +58,109 @@ export const Single = {
52
58
  args: {
53
59
  label: 'Department',
54
60
  description: 'Choose one department.',
61
+ name: 'singleDropdown',
55
62
  options: [
56
- { 'text': 'AOZ', 'value': 'AOZ' },
57
- { 'text': 'PKZH', 'value': 'PKZH' },
58
- { 'text': 'VBZ', 'value': 'VBZ' },
59
- { 'text': 'UVZ', 'value': 'UVZ', 'disabled': true },
63
+ { 'text': 'AOZ', 'value': 'AOZ_value' },
64
+ { 'text': 'PKZH', 'value': 'PKZH_value' },
65
+ { 'text': 'VBZ', 'value': 'VBZ_value' },
66
+ { 'text': 'UVZ', 'value': 'UVZ_value', 'disabled': true },
60
67
  ],
61
68
  },
69
+ play: async ({ canvasElement, step }) => {
70
+
71
+ stzhDropdownEl = await getComponentByTestId(canvasElement, DROPDOWN_TEST_ID);
72
+
73
+ await step('Assert properties', async () => {
74
+ expect(stzhDropdownEl).toHaveAttribute('label', 'Department');
75
+ expect(stzhDropdownEl).toHaveAttribute('description', 'Choose one department.');
76
+ expect(stzhDropdownEl).toHaveAttribute('name', 'singleDropdown');
77
+ expect(stzhDropdownEl).toHaveAttribute('tabindex', '-1');
78
+ expect(stzhDropdownEl).toHaveAttribute('variant', 'default');
79
+ expect(stzhDropdownEl).toHaveAttribute('size', 'default');
80
+ expect(stzhDropdownEl).toHaveAttribute('popover-placement', 'bottom');
81
+ });
82
+
83
+ await step('Description element is being rendered', async () => {
84
+ const descriptionWrapperEl = stzhDropdownEl.querySelector('.stzh-dropdown__description-wrapper');
85
+ expect(descriptionWrapperEl).not.toBeNull();
86
+ });
87
+
88
+ await step('Assert stzhOpen and stzhClose event details', async () => {
89
+ let eventOpenDetail;
90
+ let eventCloseDetail;
91
+ stzhDropdownEl.addEventListener('stzhOpen', (ev) => {
92
+ eventOpenDetail = ev.detail;
93
+ });
94
+ stzhDropdownEl.addEventListener('stzhClose', (ev) => {
95
+ eventCloseDetail = ev.detail;
96
+ });
97
+
98
+ await userEvent.click(stzhDropdownEl);
99
+ expect(eventOpenDetail).toHaveProperty('component', 'stzh-dropdown');
100
+ // close dropdown again
101
+ await userEvent.click(canvasElement);
102
+ expect(eventCloseDetail).toHaveProperty('component', 'stzh-dropdown');
103
+ });
104
+
105
+ await step('Options are being rendered', async () => {
106
+ const dropdownEl = stzhDropdownEl.querySelector('.stzh-dropdown__dropdown');
107
+
108
+ // dropdown element becomes visible after click
109
+ expectIsVisible(dropdownEl, false);
110
+ await userEvent.click(stzhDropdownEl);
111
+ expectIsVisible(dropdownEl, true);
112
+
113
+ // options are being rendered correctly (including disabled)
114
+ const dropdownOptionElList = dropdownEl.querySelectorAll('.stzh-dropdown__option');
115
+ expect(dropdownOptionElList.length).toBe(4);
116
+
117
+ const aozDropdownOption = dropdownOptionElList[0];
118
+ expect(aozDropdownOption).toHaveAttribute('role', 'option');
119
+ expect(aozDropdownOption).toHaveAttribute('data-value', 'AOZ_value');
120
+ expect(aozDropdownOption).toHaveClass('active'); // first options is active
121
+ expect(aozDropdownOption).not.toHaveAttribute('aria-disabled');
122
+
123
+ const uvzDropdownOption = dropdownOptionElList[3];
124
+ expect(uvzDropdownOption).toHaveAttribute('role', 'option');
125
+ expect(uvzDropdownOption).toHaveAttribute('data-value', 'UVZ_value');
126
+ expect(uvzDropdownOption).not.toHaveClass('active');
127
+ expect(uvzDropdownOption).toHaveAttribute('aria-disabled', 'true');
128
+
129
+ // close dropdown again
130
+ await userEvent.click(canvasElement);
131
+ });
132
+
133
+ await step('Selecting an option emits stzhChange event and sets selected value', async () => {
134
+ await userEvent.click(stzhDropdownEl);
135
+ const dropdownOptionElList = stzhDropdownEl.querySelectorAll('.stzh-dropdown__option');
136
+
137
+ let eventChangeDetail;
138
+ stzhDropdownEl.addEventListener('stzhChange', (ev) => {
139
+ eventChangeDetail = ev.detail;
140
+ });
141
+
142
+ // click the option
143
+ const pkzhDropdownOption = dropdownOptionElList[1];
144
+ await userEvent.click(pkzhDropdownOption);
145
+
146
+ expect(eventChangeDetail).toHaveProperty('component', 'stzh-dropdown');
147
+ expect(eventChangeDetail).toHaveProperty('value', 'PKZH_value');
148
+
149
+ // selected option is visible
150
+ const dropdownItemEl = stzhDropdownEl.querySelector('.stzh-dropdown__item');
151
+ expectIsVisible(dropdownItemEl, true);
152
+ expect(dropdownItemEl).toHaveAttribute('data-value', 'PKZH_value');
153
+ expect(dropdownItemEl).toHaveTextContent('PKZH');
154
+
155
+ // in the dropdown list, the selected value ist active
156
+ await userEvent.click(stzhDropdownEl);
157
+ expect(pkzhDropdownOption).toHaveClass('active');
158
+
159
+ // reset to default state
160
+ stzhDropdownEl.setValue('');
161
+ await userEvent.click(canvasElement);
162
+ });
163
+ },
62
164
  };
63
165
 
64
166
  export const Multiple = {
@@ -167,11 +167,6 @@
167
167
  row-gap: var(--stzh-space-xsmall);
168
168
  column-gap: var(--stzh-space-medium);
169
169
  }
170
- @media screen and (min-width: 600px) {
171
- .stzh-eventdata {
172
- flex-direction: row;
173
- }
174
- }
175
170
  .stzh-eventdata__label {
176
171
  font-family: var(--stzh-font-family-heavy);
177
172
  font-weight: var(--stzh-font-weight-heavy);
@@ -39,7 +39,7 @@ export default {
39
39
  component: COMPONENT_NAME,
40
40
  parameters: {
41
41
  actions: {
42
- handles: ['stzhChange', 'stzhFocus', 'stzhBlur'],
42
+ handles: ['stzhChange', 'stzhFocus', 'stzhBlur', 'stzhChanged'],
43
43
  },
44
44
  docs: {
45
45
  description: {
@@ -1,4 +1,4 @@
1
- import { Host, h } from "@stencil/core";
1
+ import { h, Host } from "@stencil/core";
2
2
  import axios from "axios";
3
3
  /**
4
4
  * @see https://www.stadt-zuerich.ch/site/fuer-zueri/de/index.html
@@ -47,6 +47,7 @@ export class StzhMicrositeTeaserlist {
47
47
  "label": tag.name,
48
48
  "value": tag.id,
49
49
  "variant": "filter",
50
+ "size": "large",
50
51
  "counter": ((tag.id)
51
52
  ? this.items.filter(item => item.tags.indexOf(tag.id) > -1).length
52
53
  : this.items.length).toString()
@@ -71,7 +72,7 @@ export class StzhMicrositeTeaserlist {
71
72
  }
72
73
  render() {
73
74
  const classes = {
74
- "stzh-microsite-teaserlist": true,
75
+ "stzh-microsite-teaserlist": true
75
76
  };
76
77
  return (h(Host, null, h("div", { class: classes }, this._tagChips.length > 0 &&
77
78
  h("stzh-chipselect", { "hide-optional": true, "label-hidden": true, class: "stzh-microsite-teaserlist__filter", label: this.localization.tagsLabel, data: this._tagChips, onStzhChange: this.handleChange }), h("stzh-cardlist", { layout: "teasers" }, this._filteredSlicedItems.map((item) => h("stzh-card", { href: item.link }, item.image &&
@@ -1 +1 @@
1
- {"version":3,"file":"stzh-microsite-teaserlist.js","sourceRoot":"","sources":["../../../../src/components/stzh-microsite-teaserlist/stzh-microsite-teaserlist.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Watch,\n State\n} from \"@stencil/core\";\n\nimport axios from 'axios';\n\nimport { StzhMicrositeTeaserlistLocalizedText } from './stzh-microsite-teaserlist.localization';\n\nimport {\n StzhMicrositeTeaserlistTag,\n StzhMicrositeTeaserlistItem,\n StzhChipselectItem,\n StzhChipselectChangeEvent\n} from \"../../index\";\n\n/**\n * @see https://www.stadt-zuerich.ch/site/fuer-zueri/de/index.html\n * @see https://www.stadt-zuerich.ch/site/iazh/de/index.html\n */\n@Component({\n tag: \"stzh-microsite-teaserlist\",\n styleUrl: \"stzh-microsite-teaserlist.scss\",\n scoped: true\n})\nexport class StzhMicrositeTeaserlist {\n /** Translation strings */\n @Prop() localization: StzhMicrositeTeaserlistLocalizedText;\n\n /** API URL (`{lang}` is replaced in the URL) */\n @Prop() api: string;\n\n /** Tags */\n @Prop() tags: string | StzhMicrositeTeaserlistTag[] = [];\n private _tags: StzhMicrositeTeaserlistTag[] = [];\n private _tagChips: StzhChipselectItem[] = [];\n\n /** Numbers of items currently shown */\n @Prop({ mutable: true }) showItems: number = 6;\n private _initialShowItems: number;\n\n /** Numbers of item shown with each load more action */\n @Prop() stepItems: number = 6;\n\n @Element() element: HTMLStzhMicrositeTeaserlistElement;\n\n /** Active filter */\n @State() activeFilter: string = \"\";\n\n @State() items: StzhMicrositeTeaserlistItem[] = [];\n private _filteredItems: StzhMicrositeTeaserlistItem[] = [];\n private _filteredSlicedItems: StzhMicrositeTeaserlistItem[] = [];\n private _showMoreLink: boolean = false;\n\n @Watch(\"items\")\n @Watch(\"showItems\")\n @Watch(\"activeFilter\")\n async filterHandler() {\n this._filteredItems = this.items\n .filter((item) => {\n // return (this.activeFilter[0] !== \"\") ? item.tags.some(tag => this.activeFilters.indexOf(tag) > -1) : true;\n return (this.activeFilter !== \"\") ? item.tags.some(tag => this.activeFilter === tag) : true;\n });\n\n this._filteredSlicedItems = this._filteredItems\n .slice(0, this.showItems)\n\n this._showMoreLink = this.showItems < this._filteredItems.length;\n }\n\n @Watch(\"items\")\n @Watch(\"tags\")\n async tagsWatcher() {\n if (typeof this.tags === \"string\") {\n this._tags = JSON.parse(this.tags);\n } else {\n this._tags = this.tags;\n }\n\n this._tagChips = this._tags.map((tag) => ({\n \"label\": tag.name,\n \"value\": tag.id,\n \"variant\": \"filter\",\n \"counter\": ((tag.id)\n ? this.items.filter(item => item.tags.indexOf(tag.id) > -1).length\n : this.items.length).toString()\n }));\n }\n\n @Watch(\"api\")\n async apiWatcher(newValue: string) {\n if (!newValue) {\n return;\n }\n\n let apiUrl = this.api.replace(/\\{lang\\}/, this.localization.$locale)\n\n // load data from API\n const { data } = await axios.get(apiUrl);\n\n this.items = data.items;\n this.showItems = this._initialShowItems;\n }\n\n private handleChange = (event: CustomEvent<StzhChipselectChangeEvent>) => {\n this.showItems = this._initialShowItems;\n this.activeFilter = typeof event.detail.value === \"string\" ? event.detail.value : event.detail.value[0] || \"\";\n }\n\n private handleMoreClick = () => {\n this.showItems = this.showItems + this.stepItems;\n }\n\n async componentWillLoad() {\n this._initialShowItems = this.showItems;\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"microsite-teaserlist\");\n }\n\n await this.apiWatcher(this.api);\n }\n\n render() {\n const classes = {\n \"stzh-microsite-teaserlist\": true,\n };\n\n return (\n <Host>\n <div class={classes}>\n {this._tagChips.length > 0 &&\n <stzh-chipselect\n hide-optional\n label-hidden\n class=\"stzh-microsite-teaserlist__filter\"\n label={this.localization.tagsLabel}\n data={this._tagChips}\n onStzhChange={this.handleChange}\n ></stzh-chipselect>\n }\n\n <stzh-cardlist layout=\"teasers\">\n {this._filteredSlicedItems.map((item) =>\n <stzh-card href={item.link}>\n {item.image &&\n <stzh-ratio slot=\"image\">\n <img src={item.image} />\n </stzh-ratio>\n }\n {item.title &&\n <div slot=\"heading\">{item.title}</div>\n }\n {/* <stzh-clamp slot=\"heading\" lines={2}>{item.title}</stzh-clamp> */}\n {item.description &&\n <div slot=\"content\">{item.description}</div>\n }\n {/* <stzh-clamp slot=\"content\" lines={3}>{item.description}</stzh-clamp> */}\n </stzh-card>\n )}\n </stzh-cardlist>\n\n {this._showMoreLink &&\n <div class=\"stzh-microsite-teaserlist__show-more\">\n <stzh-button\n variant=\"secondary\"\n label={this.localization.showMore}\n onClick={this.handleMoreClick}\n ></stzh-button>\n </div>\n }\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"stzh-microsite-teaserlist.js","sourceRoot":"","sources":["../../../../src/components/stzh-microsite-teaserlist/stzh-microsite-teaserlist.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\n\nimport axios from \"axios\";\n\nimport { StzhChipselectChangeEvent, StzhChipselectItem, StzhMicrositeTeaserlistItem, StzhMicrositeTeaserlistTag } from \"../../index\";\n\nimport { StzhMicrositeTeaserlistLocalizedText } from \"./stzh-microsite-teaserlist.localization\";\n\n/**\n * @see https://www.stadt-zuerich.ch/site/fuer-zueri/de/index.html\n * @see https://www.stadt-zuerich.ch/site/iazh/de/index.html\n */\n@Component({\n tag: \"stzh-microsite-teaserlist\",\n styleUrl: \"stzh-microsite-teaserlist.scss\",\n scoped: true\n})\nexport class StzhMicrositeTeaserlist {\n /** Translation strings */\n @Prop() localization: StzhMicrositeTeaserlistLocalizedText;\n\n /** API URL (`{lang}` is replaced in the URL) */\n @Prop() api: string;\n\n /** Tags */\n @Prop() tags: string | StzhMicrositeTeaserlistTag[] = [];\n private _tags: StzhMicrositeTeaserlistTag[] = [];\n private _tagChips: StzhChipselectItem[] = [];\n\n /** Numbers of items currently shown */\n @Prop({ mutable: true }) showItems: number = 6;\n private _initialShowItems: number;\n\n /** Numbers of item shown with each load more action */\n @Prop() stepItems: number = 6;\n\n @Element() element: HTMLStzhMicrositeTeaserlistElement;\n\n /** Active filter */\n @State() activeFilter: string = \"\";\n\n @State() items: StzhMicrositeTeaserlistItem[] = [];\n private _filteredItems: StzhMicrositeTeaserlistItem[] = [];\n private _filteredSlicedItems: StzhMicrositeTeaserlistItem[] = [];\n private _showMoreLink: boolean = false;\n\n @Watch(\"items\")\n @Watch(\"showItems\")\n @Watch(\"activeFilter\")\n async filterHandler() {\n this._filteredItems = this.items\n .filter((item) => {\n // return (this.activeFilter[0] !== \"\") ? item.tags.some(tag => this.activeFilters.indexOf(tag) > -1) : true;\n return (this.activeFilter !== \"\") ? item.tags.some(tag => this.activeFilter === tag) : true;\n });\n\n this._filteredSlicedItems = this._filteredItems\n .slice(0, this.showItems);\n\n this._showMoreLink = this.showItems < this._filteredItems.length;\n }\n\n @Watch(\"items\")\n @Watch(\"tags\")\n async tagsWatcher() {\n if (typeof this.tags === \"string\") {\n this._tags = JSON.parse(this.tags);\n } else {\n this._tags = this.tags;\n }\n\n this._tagChips = this._tags.map((tag) => ({\n \"label\": tag.name,\n \"value\": tag.id,\n \"variant\": \"filter\",\n \"size\": \"large\",\n \"counter\": ((tag.id)\n ? this.items.filter(item => item.tags.indexOf(tag.id) > -1).length\n : this.items.length).toString()\n }));\n }\n\n @Watch(\"api\")\n async apiWatcher(newValue: string) {\n if (!newValue) {\n return;\n }\n\n let apiUrl = this.api.replace(/\\{lang\\}/, this.localization.$locale);\n\n // load data from API\n const { data } = await axios.get(apiUrl);\n\n this.items = data.items;\n this.showItems = this._initialShowItems;\n }\n\n private handleChange = (event: CustomEvent<StzhChipselectChangeEvent>) => {\n this.showItems = this._initialShowItems;\n this.activeFilter = typeof event.detail.value === \"string\" ? event.detail.value : event.detail.value[0] || \"\";\n };\n\n private handleMoreClick = () => {\n this.showItems = this.showItems + this.stepItems;\n };\n\n async componentWillLoad() {\n this._initialShowItems = this.showItems;\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"microsite-teaserlist\");\n }\n\n await this.apiWatcher(this.api);\n }\n\n render() {\n const classes = {\n \"stzh-microsite-teaserlist\": true\n };\n\n return (\n <Host>\n <div class={classes}>\n {this._tagChips.length > 0 &&\n <stzh-chipselect\n hide-optional\n label-hidden\n class=\"stzh-microsite-teaserlist__filter\"\n label={this.localization.tagsLabel}\n data={this._tagChips}\n onStzhChange={this.handleChange}\n ></stzh-chipselect>\n }\n\n <stzh-cardlist layout=\"teasers\">\n {this._filteredSlicedItems.map((item) =>\n <stzh-card href={item.link}>\n {item.image &&\n <stzh-ratio slot=\"image\">\n <img src={item.image} />\n </stzh-ratio>\n }\n {item.title &&\n <div slot=\"heading\">{item.title}</div>\n }\n {/* <stzh-clamp slot=\"heading\" lines={2}>{item.title}</stzh-clamp> */}\n {item.description &&\n <div slot=\"content\">{item.description}</div>\n }\n {/* <stzh-clamp slot=\"content\" lines={3}>{item.description}</stzh-clamp> */}\n </stzh-card>\n )}\n </stzh-cardlist>\n\n {this._showMoreLink &&\n <div class=\"stzh-microsite-teaserlist__show-more\">\n <stzh-button\n variant=\"secondary\"\n label={this.localization.showMore}\n onClick={this.handleMoreClick}\n ></stzh-button>\n </div>\n }\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Host, h } from "@stencil/core";
1
+ import { forceUpdate, Host, h } from "@stencil/core";
2
2
  import { addMediaChangeListener, removeMediaChangeListener, media } from "../../utils/media-utils";
3
3
  /**
4
4
  * @slot - Slot for any text content
@@ -47,6 +47,19 @@ export class StzhProgressbar {
47
47
  return Object.assign(Object.assign({}, step), this.getItemAttributes(index));
48
48
  });
49
49
  }
50
+ onIndexChange() {
51
+ this.indexWatcher(this.index);
52
+ this.setCurrentSteps();
53
+ forceUpdate(this.element);
54
+ }
55
+ indexWatcher(newIndex) {
56
+ if (typeof newIndex === "string") {
57
+ this.index = JSON.parse(newIndex);
58
+ }
59
+ else {
60
+ this.index = newIndex;
61
+ }
62
+ }
50
63
  stepsWatcher() {
51
64
  this.setCurrentSteps();
52
65
  }
@@ -100,10 +113,19 @@ export class StzhProgressbar {
100
113
  }
101
114
  async componentWillLoad() {
102
115
  this.dataWatcher(this.data);
116
+ this.indexWatcher(this.index);
103
117
  if (!this.localization) {
104
118
  this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, "progressbar");
105
119
  }
106
120
  }
121
+ async componentShouldUpdate() {
122
+ this.dataWatcher(this.data);
123
+ this.indexWatcher(this.index);
124
+ }
125
+ async componentDidUpdate() {
126
+ this.dataWatcher(this.data);
127
+ this.indexWatcher(this.index);
128
+ }
107
129
  connectedCallback() {
108
130
  this.setCurrentSteps();
109
131
  addMediaChangeListener(this.setCurrentSteps);
@@ -194,7 +216,7 @@ export class StzhProgressbar {
194
216
  "text": "Index of the item that be active"
195
217
  },
196
218
  "attribute": "index",
197
- "reflect": false,
219
+ "reflect": true,
198
220
  "defaultValue": "0"
199
221
  },
200
222
  "steps": {
@@ -336,6 +358,9 @@ export class StzhProgressbar {
336
358
  static get elementRef() { return "element"; }
337
359
  static get watchers() {
338
360
  return [{
361
+ "propName": "index",
362
+ "methodName": "onIndexChange"
363
+ }, {
339
364
  "propName": "steps",
340
365
  "methodName": "stepsWatcher"
341
366
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"stzh-progressbar.js","sourceRoot":"","sources":["../../../../src/components/stzh-progressbar/stzh-progressbar.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Watch,\n Method\n} from \"@stencil/core\";\n\nimport {\n StzhProgressbarDataItem\n} from '../../index';\n\nimport { addMediaChangeListener, removeMediaChangeListener, media } from \"../../utils/media-utils\";\nimport { StzhProgressbarLocalizedText } from \"./stzh-progressbar.localization\"\n\n/**\n * @slot - Slot for any text content\n */\n@Component({\n tag: \"stzh-progressbar\",\n styleUrl: \"stzh-progressbar.scss\",\n scoped: true\n})\nexport class StzhProgressbar {\n /** Translation strings */\n @Prop() localization: StzhProgressbarLocalizedText;\n\n /**\n * Step data (JSON array with objects that have `label` attribute and optional:\n * - `disabled`, if step should be disabled\n * - `icon`, if icon instead of step number should be displayed):\n * - `analyticsId`, for Adobe Analytics, rendered as `s-object-id` (default is `label`)\n *\n * ```\n * {\n * \"label\": \"Step Label\"\n * \"icon\": \"clock\",\n * \"disabled\": true\n * }\n * ```\n */\n @Prop() data: StzhProgressbarDataItem[] | string = [];\n private _data: StzhProgressbarDataItem[];\n\n /** Index of the item that be active */\n @Prop() index: number = 0;\n\n /** Number of steps to show below small breakpoint */\n @Prop() steps: number = 5;\n\n /** Number of steps to show above small breakpoint */\n @Prop() stepsSmall: number = 6;\n\n /** Number of steps to show above medium breakpoint */\n @Prop() stepsMedium: number = 0;\n\n /** Number of steps to show above large breakpoint */\n @Prop() stepsLarge: number = 0;\n\n /** Number of steps to show above ultra breakpoint */\n @Prop() stepsUltra: number = 0;\n\n /** Whether all the progressbar-items are clickable (overrides item.clickDisabled in data property). */\n @Prop() clickDisabled: boolean = false;\n\n @State() currentSteps: number;\n\n @Element() element: HTMLStzhProgressbarElement;\n\n /**\n * Return infos about rendered progressbar items.\n * Array of objects including: hide (whether step is hidden)\n * / passed (whether step has been passed)\n * / current (whether step is currently active)\n * / dotted (whether step has dotted style active)\n * / first|last (whether step is first or last)\n * / label\n */\n @Method()\n async getItemData() {\n return this._data.map((step, index) => {\n return {\n ...step,\n ...this.getItemAttributes(index)\n }\n });\n }\n\n @Watch(\"steps\")\n @Watch(\"stepsSmall\")\n @Watch(\"stepsMedium\")\n @Watch(\"stepsLarge\")\n @Watch(\"stepsUltra\")\n stepsWatcher() {\n this.setCurrentSteps();\n }\n\n @Watch(\"data\")\n dataWatcher(newValue: any[] | string) {\n if (typeof newValue === \"string\") {\n this._data = JSON.parse(newValue);\n }\n else {\n this._data = newValue;\n }\n\n this.lastItemIndex = this._data.length - 1;\n this.maxStepIndex = this.currentSteps - 1;\n this.withinLastFewSteps = this.index >= this._data.length - this.maxStepIndex;\n }\n\n private lastItemIndex: number;\n private maxStepIndex: number;\n private withinLastFewSteps: boolean;\n\n private getItemAttributes(itemIndex: number): any {\n const item = {} as HTMLStzhProgressbarItemElement;\n\n item.step = itemIndex + 1;\n item.first = itemIndex === 0;\n item.last = itemIndex === this.lastItemIndex;\n item.current = itemIndex === this.index;\n item.passed = itemIndex < this.index;\n\n const stepItemFromData = this._data[itemIndex];\n item.incomplete = stepItemFromData.incomplete;\n\n // hide overflowings if more items than max steps in DOM\n if (this._data.length > this.currentSteps) {\n // add dots to last item if current index is below the last few items\n if (itemIndex === this.lastItemIndex && !this.withinLastFewSteps) {\n item.dotted = true;\n }\n\n if (this.index < 2) {\n // hide overflowing items on the right\n item.hide = itemIndex > this.maxStepIndex - 1 && itemIndex < this.lastItemIndex;\n } else {\n // add dots to first item if current item is third or above\n if (itemIndex === 0) {\n item.dotted = true;\n }\n\n let substract = this.index;\n\n // if is within the last elements, calculate how much previous\n // should be shown to stay on 5 visible elements\n if (this.withinLastFewSteps) {\n substract = this._data.length - this.maxStepIndex;\n }\n\n // hide overflowing items on left and right side\n item.hide = itemIndex > 0 && itemIndex < substract\n || itemIndex > this.index + (this.currentSteps - 3) && itemIndex < this.lastItemIndex;\n }\n }\n\n return item;\n }\n\n private setCurrentSteps = () => {\n if (media(\"ultra\").matches && this.stepsUltra) {\n this.currentSteps = this.stepsUltra;\n } else if (media(\"large\").matches && this.stepsLarge) {\n this.currentSteps = this.stepsLarge;\n } else if (media(\"medium\").matches && this.stepsMedium) {\n this.currentSteps = this.stepsMedium;\n } else if (media(\"small\").matches && this.stepsSmall) {\n this.currentSteps = this.stepsSmall;\n } else {\n this.currentSteps = this.steps;\n }\n }\n\n async componentWillLoad() {\n this.dataWatcher(this.data);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"progressbar\");\n }\n }\n\n connectedCallback() {\n this.setCurrentSteps();\n addMediaChangeListener(this.setCurrentSteps);\n }\n\n disconnectedCallback() {\n removeMediaChangeListener(this.setCurrentSteps);\n }\n\n render() {\n const classes = {\n \"stzh-progressbar\": true,\n [`stzh-progressbar--index-${this.index}`]: !!this.index\n };\n\n return (\n <Host\n style={{\n '--steps': this.currentSteps ? this.currentSteps.toString() : null,\n }}\n >\n <div class={classes}>\n <div\n class=\"stzh-progressbar__items\"\n role=\"list\"\n aria-label={this.localization.label}\n >\n {this._data.map((step, index) =>\n <stzh-progressbar-item\n {...this.getItemAttributes(index)}\n icon={step.icon}\n disabled={step.disabled}\n label={step.label}\n click-disabled={step.clickDisabled !== undefined ? step.clickDisabled : this.clickDisabled}\n class=\"stzh-progressbar__item\"\n ></stzh-progressbar-item>\n )}\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"stzh-progressbar.js","sourceRoot":"","sources":["../../../../src/components/stzh-progressbar/stzh-progressbar.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n forceUpdate,\n Host,\n h,\n Prop,\n State,\n Element,\n Watch,\n Method\n} from \"@stencil/core\";\n\nimport {\n StzhProgressbarDataItem\n} from '../../index';\n\nimport { addMediaChangeListener, removeMediaChangeListener, media } from \"../../utils/media-utils\";\nimport { StzhProgressbarLocalizedText } from \"./stzh-progressbar.localization\"\n\n/**\n * @slot - Slot for any text content\n */\n@Component({\n tag: \"stzh-progressbar\",\n styleUrl: \"stzh-progressbar.scss\",\n scoped: true\n})\nexport class StzhProgressbar {\n /** Translation strings */\n @Prop() localization: StzhProgressbarLocalizedText;\n\n /**\n * Step data (JSON array with objects that have `label` attribute and optional:\n * - `disabled`, if step should be disabled\n * - `icon`, if icon instead of step number should be displayed):\n * - `analyticsId`, for Adobe Analytics, rendered as `s-object-id` (default is `label`)\n *\n * ```\n * {\n * \"label\": \"Step Label\"\n * \"icon\": \"clock\",\n * \"disabled\": true\n * }\n * ```\n */\n @Prop() data: StzhProgressbarDataItem[] | string = [];\n private _data: StzhProgressbarDataItem[];\n\n /** Index of the item that be active */\n @Prop({ reflect: true }) index: number = 0;\n\n /** Number of steps to show below small breakpoint */\n @Prop() steps: number = 5;\n\n /** Number of steps to show above small breakpoint */\n @Prop() stepsSmall: number = 6;\n\n /** Number of steps to show above medium breakpoint */\n @Prop() stepsMedium: number = 0;\n\n /** Number of steps to show above large breakpoint */\n @Prop() stepsLarge: number = 0;\n\n /** Number of steps to show above ultra breakpoint */\n @Prop() stepsUltra: number = 0;\n\n /** Whether all the progressbar-items are clickable (overrides item.clickDisabled in data property). */\n @Prop() clickDisabled: boolean = false;\n\n @State() currentSteps: number;\n\n @Element() element: HTMLStzhProgressbarElement;\n\n /**\n * Return infos about rendered progressbar items.\n * Array of objects including: hide (whether step is hidden)\n * / passed (whether step has been passed)\n * / current (whether step is currently active)\n * / dotted (whether step has dotted style active)\n * / first|last (whether step is first or last)\n * / label\n */\n @Method()\n async getItemData() {\n return this._data.map((step, index) => {\n return {\n ...step,\n ...this.getItemAttributes(index)\n }\n });\n }\n\n @Watch(\"index\")\n onIndexChange() {\n this.indexWatcher(this.index);\n this.setCurrentSteps();\n forceUpdate(this.element);\n }\n\n indexWatcher(newIndex: string | number) {\n if (typeof newIndex === \"string\") {\n this.index = JSON.parse(newIndex);\n }\n else {\n this.index = newIndex;\n }\n }\n\n @Watch(\"steps\")\n @Watch(\"stepsSmall\")\n @Watch(\"stepsMedium\")\n @Watch(\"stepsLarge\")\n @Watch(\"stepsUltra\")\n stepsWatcher() {\n this.setCurrentSteps();\n }\n\n @Watch(\"data\")\n dataWatcher(newValue: any[] | string) {\n if (typeof newValue === \"string\") {\n this._data = JSON.parse(newValue);\n }\n else {\n this._data = newValue;\n }\n\n this.lastItemIndex = this._data.length - 1;\n this.maxStepIndex = this.currentSteps - 1;\n this.withinLastFewSteps = this.index >= this._data.length - this.maxStepIndex;\n }\n\n private lastItemIndex: number;\n private maxStepIndex: number;\n private withinLastFewSteps: boolean;\n\n private getItemAttributes(itemIndex: number): any {\n const item = {} as HTMLStzhProgressbarItemElement;\n\n item.step = itemIndex + 1;\n item.first = itemIndex === 0;\n item.last = itemIndex === this.lastItemIndex;\n item.current = itemIndex === this.index;\n item.passed = itemIndex < this.index;\n\n const stepItemFromData = this._data[itemIndex];\n item.incomplete = stepItemFromData.incomplete;\n\n // hide overflowings if more items than max steps in DOM\n if (this._data.length > this.currentSteps) {\n // add dots to last item if current index is below the last few items\n if (itemIndex === this.lastItemIndex && !this.withinLastFewSteps) {\n item.dotted = true;\n }\n\n if (this.index < 2) {\n // hide overflowing items on the right\n item.hide = itemIndex > this.maxStepIndex - 1 && itemIndex < this.lastItemIndex;\n } else {\n // add dots to first item if current item is third or above\n if (itemIndex === 0) {\n item.dotted = true;\n }\n\n let substract = this.index;\n\n // if is within the last elements, calculate how much previous\n // should be shown to stay on 5 visible elements\n if (this.withinLastFewSteps) {\n substract = this._data.length - this.maxStepIndex;\n }\n\n // hide overflowing items on left and right side\n item.hide = itemIndex > 0 && itemIndex < substract\n || itemIndex > this.index + (this.currentSteps - 3) && itemIndex < this.lastItemIndex;\n }\n }\n\n return item;\n }\n\n private setCurrentSteps = () => {\n if (media(\"ultra\").matches && this.stepsUltra) {\n this.currentSteps = this.stepsUltra;\n } else if (media(\"large\").matches && this.stepsLarge) {\n this.currentSteps = this.stepsLarge;\n } else if (media(\"medium\").matches && this.stepsMedium) {\n this.currentSteps = this.stepsMedium;\n } else if (media(\"small\").matches && this.stepsSmall) {\n this.currentSteps = this.stepsSmall;\n } else {\n this.currentSteps = this.steps;\n }\n }\n\n async componentWillLoad() {\n this.dataWatcher(this.data);\n this.indexWatcher(this.index);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"progressbar\");\n }\n }\n\n async componentShouldUpdate() {\n this.dataWatcher(this.data);\n this.indexWatcher(this.index);\n }\n\n async componentDidUpdate() {\n this.dataWatcher(this.data);\n this.indexWatcher(this.index);\n }\n\n connectedCallback() {\n this.setCurrentSteps();\n addMediaChangeListener(this.setCurrentSteps);\n }\n\n disconnectedCallback() {\n removeMediaChangeListener(this.setCurrentSteps);\n }\n\n render() {\n const classes = {\n \"stzh-progressbar\": true,\n [`stzh-progressbar--index-${this.index}`]: !!this.index\n };\n\n return (\n <Host\n style={{\n '--steps': this.currentSteps ? this.currentSteps.toString() : null,\n }}\n >\n <div class={classes}>\n <div\n class=\"stzh-progressbar__items\"\n role=\"list\"\n aria-label={this.localization.label}\n >\n {this._data.map((step, index) =>\n <stzh-progressbar-item\n {...this.getItemAttributes(index)}\n icon={step.icon}\n disabled={step.disabled}\n label={step.label}\n click-disabled={step.clickDisabled !== undefined ? step.clickDisabled : this.clickDisabled}\n class=\"stzh-progressbar__item\"\n ></stzh-progressbar-item>\n )}\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -471,7 +471,7 @@ export class StzhSearch {
471
471
  const wrapperProps = typeof this.templateResultWrapperProps === "function"
472
472
  ? this.templateResultWrapperProps(this.element)
473
473
  : this.templateResultWrapperProps;
474
- return (h(Host, { "has-aside-filters": filtersAsideUsed, fullwidth: this.isStzhAnchornavVisible.toString() }, h("form", { ref: el => (this.formElement = el), novalidate: true, class: classes, onSubmit: this.handleFormSubmit, onReset: this.handleFormReset }, h("div", { class: "stzh-search__filters-main", onStzhChange: this.handleMainFilterChange }, !!this.heading && (h("stzh-heading", { class: "stzh-search__header-heading", curve: "h2" }, this.heading)), h("slot", { name: "filters-main" }), !chipsProvided && this.chipResults.length > 0 && (h("div", { class: "stzh-search__filters-main-chips" }, this.chipResultsHeading && (h("stzh-text", { font: "heavy", size: "milli", color: "primary" }, this.chipResultsHeading)), this.chipResults[0].options ? (h("stzh-chipgroup", null, this.chipResults.map(chipResult => (h("stzh-dropdown", { label: chipResult.label, name: chipResult.value, variant: "filter", "no-search": true, "hide-optional": true, inline: true, options: chipResult.options }))))) : (h("stzh-chipselect", { multiple: true, name: "subject", label: this.chipResultsHeading, "label-hidden": true, data: this.chipResults.map(chipResult => ({
474
+ return (h(Host, { "has-aside-filters": filtersAsideUsed, fullwidth: this.isStzhAnchornavVisible.toString() }, h("form", { ref: el => (this.formElement = el), novalidate: true, class: classes, onSubmit: this.handleFormSubmit, onReset: this.handleFormReset }, h("div", { class: "stzh-search__filters-main", onStzhChange: this.handleMainFilterChange }, !!this.heading && (h("stzh-heading", { class: "stzh-search__header-heading", curve: "h2" }, this.heading)), h("slot", { name: "filters-main" }), !chipsProvided && this.chipResults.length > 0 && (h("div", { class: "stzh-search__filters-main-chips" }, this.chipResultsHeading && (h("stzh-text", { font: "heavy", size: "milli", color: "primary" }, this.chipResultsHeading)), this.chipResults[0].options ? (h("stzh-chipgroup", null, this.chipResults.map(chipResult => (h("stzh-dropdown", { label: chipResult.label, name: chipResult.value, variant: "filter", size: "large", "no-search": true, "hide-optional": true, inline: true, options: chipResult.options }))))) : (h("stzh-chipselect", { multiple: true, name: "subject", label: this.chipResultsHeading, "label-hidden": true, data: this.chipResults.map(chipResult => ({
475
475
  label: chipResult.label,
476
476
  value: chipResult.value,
477
477
  counter: `${chipResult.amount}`,