hr-design-system-handlebars 1.63.15 → 1.64.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/build/handlebars/helpers/handlebar-helpers.js +72 -14
  3. package/dist/assets/brand/hessenschau/conf/locatags.merged.json +6 -0
  4. package/dist/assets/brand/hr/conf/locatags.merged.json +6 -0
  5. package/dist/assets/brand/hr-bigband/conf/locatags.merged.json +6 -0
  6. package/dist/assets/brand/hr-fernsehen/conf/locatags.merged.json +6 -0
  7. package/dist/assets/brand/hr-inforadio/conf/locatags.merged.json +6 -0
  8. package/dist/assets/brand/hr-rundfunkrat/conf/locatags.merged.json +6 -0
  9. package/dist/assets/brand/hr-sinfonieorchester/conf/locatags.merged.json +6 -0
  10. package/dist/assets/brand/hr-werbung/conf/locatags.merged.json +6 -0
  11. package/dist/assets/brand/hr1/conf/locatags.merged.json +6 -0
  12. package/dist/assets/brand/hr2/conf/locatags.merged.json +6 -0
  13. package/dist/assets/brand/hr3/conf/locatags.merged.json +6 -0
  14. package/dist/assets/brand/hr4/conf/locatags.merged.json +6 -0
  15. package/dist/assets/brand/you-fm/conf/locatags.merged.json +6 -0
  16. package/dist/assets/index.css +3 -3
  17. package/dist/assets/js/components/externalService/dataWrapperNoResponsiveIframe.subfeature.js +4 -2
  18. package/dist/assets/js/components/externalService/externalServiceDs.feature.js +12 -28
  19. package/dist/assets/js/components/modal/defaultModal.subfeature.js +58 -0
  20. package/dist/assets/js/components/modal/modal.feature.js +11 -52
  21. package/dist/assets/js/components/modal/userConsentModal.subfeature.js +120 -0
  22. package/dist/views/components/banner/header/banner_image.hbs +1 -1
  23. package/dist/views/components/base/backlink.hbs +1 -1
  24. package/dist/views/components/base/link.hbs +1 -1
  25. package/dist/views/components/dataPolicySettings/data_policy_settings.hbs +4 -4
  26. package/dist/views/components/event/calendar/event_calendar.hbs +3 -0
  27. package/dist/views/components/event/event_ticket_button.hbs +10 -18
  28. package/dist/views/components/externalService/external_service.hbs +7 -14
  29. package/dist/views/components/externalService/external_service_with_datapolicy_check.hbs +3 -4
  30. package/dist/views/components/geoTag/geoTag_list.hbs +1 -1
  31. package/dist/views/components/mediaplayer/media_player.hbs +1 -1
  32. package/dist/views/components/modal/modal.hbs +1 -1
  33. package/dist/views/components/modal/user_consent.hbs +13 -0
  34. package/dist/views/components/navigation/breadcrumb/breadcrumb.hbs +1 -1
  35. package/dist/views/components/navigation/breadcrumb/breadcrumb_items.ssi.hbs +1 -1
  36. package/dist/views/components/page/components/author.hbs +1 -1
  37. package/dist/views/components/page/components/socialsharing.hbs +4 -4
  38. package/dist/views/components/podcast/components/podcast_subscribe_button.hbs +1 -1
  39. package/dist/views/components/podcast/podcast_player.hbs +1 -1
  40. package/dist/views/components/site_header/brand_navigation/brand_navigation_item.hbs +1 -1
  41. package/dist/views/components/site_header/navigation_flyout/navigation_flyout.hbs +1 -1
  42. package/dist/views/components/site_header/section_navigation/section_navigation_item.hbs +3 -3
  43. package/dist/views/components/site_header/service_logo.hbs +1 -1
  44. package/dist/views/components/site_header/service_navigation/service_navigation_item.hbs +2 -2
  45. package/dist/views/components/social_sharing/social_sharing_compact_icons.hbs +4 -4
  46. package/dist/views/components/socialmedia/socialmedia.hbs +4 -4
  47. package/dist/views/components/teaser/components/teaser_body.hbs +10 -1
  48. package/dist/views/components/teaser/components/teaser_lead.hbs +1 -1
  49. package/dist/views/components/teaser/group_teaser/group_teaser.hbs +1 -1
  50. package/dist/views/components/teaser/group_teaser/group_teaser_accented.hbs +1 -1
  51. package/dist/views/components/teaser/ticker/teaser_ticker_timeline.hbs +1 -1
  52. package/dist/views/components/topictag/topictag_list.hbs +1 -1
  53. package/dist/views_static/components/banner/header/banner_image.hbs +1 -1
  54. package/dist/views_static/components/base/backlink.hbs +1 -1
  55. package/dist/views_static/components/base/link.hbs +1 -1
  56. package/dist/views_static/components/dataPolicySettings/data_policy_settings.hbs +4 -4
  57. package/dist/views_static/components/event/calendar/event_calendar.hbs +3 -0
  58. package/dist/views_static/components/event/event_ticket_button.hbs +10 -18
  59. package/dist/views_static/components/externalService/external_service.hbs +7 -14
  60. package/dist/views_static/components/externalService/external_service_with_datapolicy_check.hbs +3 -4
  61. package/dist/views_static/components/geoTag/geoTag_list.hbs +1 -1
  62. package/dist/views_static/components/mediaplayer/media_player.hbs +1 -1
  63. package/dist/views_static/components/modal/modal.hbs +1 -1
  64. package/dist/views_static/components/modal/user_consent.hbs +13 -0
  65. package/dist/views_static/components/navigation/breadcrumb/breadcrumb.hbs +1 -1
  66. package/dist/views_static/components/navigation/breadcrumb/breadcrumb_items.ssi.hbs +1 -1
  67. package/dist/views_static/components/page/components/author.hbs +1 -1
  68. package/dist/views_static/components/page/components/socialsharing.hbs +4 -4
  69. package/dist/views_static/components/podcast/components/podcast_subscribe_button.hbs +1 -1
  70. package/dist/views_static/components/podcast/podcast_player.hbs +1 -1
  71. package/dist/views_static/components/site_header/brand_navigation/brand_navigation_item.hbs +1 -1
  72. package/dist/views_static/components/site_header/navigation_flyout/navigation_flyout.hbs +1 -1
  73. package/dist/views_static/components/site_header/section_navigation/section_navigation_item.hbs +3 -3
  74. package/dist/views_static/components/site_header/service_logo.hbs +1 -1
  75. package/dist/views_static/components/site_header/service_navigation/service_navigation_item.hbs +2 -2
  76. package/dist/views_static/components/social_sharing/social_sharing_compact_icons.hbs +4 -4
  77. package/dist/views_static/components/socialmedia/socialmedia.hbs +4 -4
  78. package/dist/views_static/components/teaser/components/teaser_body.hbs +10 -1
  79. package/dist/views_static/components/teaser/components/teaser_lead.hbs +1 -1
  80. package/dist/views_static/components/teaser/group_teaser/group_teaser.hbs +1 -1
  81. package/dist/views_static/components/teaser/group_teaser/group_teaser_accented.hbs +1 -1
  82. package/dist/views_static/components/teaser/ticker/teaser_ticker_timeline.hbs +1 -1
  83. package/dist/views_static/components/topictag/topictag_list.hbs +1 -1
  84. package/package.json +1 -1
  85. package/src/assets/brand/_default/conf/locatags.json +6 -0
  86. package/src/assets/brand/hessenschau/conf/locatags.merged.json +6 -0
  87. package/src/assets/brand/hr/conf/locatags.merged.json +6 -0
  88. package/src/assets/brand/hr-bigband/conf/locatags.merged.json +6 -0
  89. package/src/assets/brand/hr-fernsehen/conf/locatags.merged.json +6 -0
  90. package/src/assets/brand/hr-inforadio/conf/locatags.merged.json +6 -0
  91. package/src/assets/brand/hr-rundfunkrat/conf/locatags.merged.json +6 -0
  92. package/src/assets/brand/hr-sinfonieorchester/conf/locatags.merged.json +6 -0
  93. package/src/assets/brand/hr-werbung/conf/locatags.merged.json +6 -0
  94. package/src/assets/brand/hr1/conf/locatags.merged.json +6 -0
  95. package/src/assets/brand/hr2/conf/locatags.merged.json +6 -0
  96. package/src/assets/brand/hr3/conf/locatags.merged.json +6 -0
  97. package/src/assets/brand/hr4/conf/locatags.merged.json +6 -0
  98. package/src/assets/brand/you-fm/conf/locatags.merged.json +6 -0
  99. package/src/assets/fixtures/teaser/teaser_standard_50_serif_link_two_click.json +22 -0
  100. package/src/assets/fixtures/teaser/teasers.inc.json +2 -1
  101. package/src/stories/views/components/banner/header/banner_image.hbs +1 -1
  102. package/src/stories/views/components/base/backlink.hbs +1 -1
  103. package/src/stories/views/components/base/link.hbs +1 -1
  104. package/src/stories/views/components/dataPolicySettings/data_policy_settings.hbs +4 -4
  105. package/src/stories/views/components/event/calendar/event_calendar.hbs +3 -0
  106. package/src/stories/views/components/event/event_ticket_button.hbs +10 -18
  107. package/src/stories/views/components/externalService/dataWrapperNoResponsiveIframe.subfeature.js +4 -2
  108. package/src/stories/views/components/externalService/externalServiceDs.feature.js +12 -28
  109. package/src/stories/views/components/externalService/external_service.hbs +7 -14
  110. package/src/stories/views/components/externalService/external_service.mdx +1 -18
  111. package/src/stories/views/components/externalService/external_service.stories.js +5 -0
  112. package/src/stories/views/components/externalService/external_service_with_datapolicy_check.hbs +3 -4
  113. package/src/stories/views/components/externalService/fixtures/external_service_with_datapolicy.json +48 -2
  114. package/src/stories/views/components/geoTag/geoTag_list.hbs +1 -1
  115. package/src/stories/views/components/mediaplayer/media_player.hbs +1 -1
  116. package/src/stories/views/components/modal/defaultModal.subfeature.js +58 -0
  117. package/src/stories/views/components/modal/modal.feature.js +11 -52
  118. package/src/stories/views/components/modal/modal.hbs +1 -1
  119. package/src/stories/views/components/modal/modal.mdx +104 -0
  120. package/src/stories/views/components/modal/modal.stories.js +79 -0
  121. package/src/stories/views/components/modal/userConsentModal.subfeature.js +120 -0
  122. package/src/stories/views/components/modal/user_consent.hbs +13 -0
  123. package/src/stories/views/components/navigation/breadcrumb/breadcrumb.hbs +1 -1
  124. package/src/stories/views/components/navigation/breadcrumb/breadcrumb_items.ssi.hbs +1 -1
  125. package/src/stories/views/components/page/components/author.hbs +1 -1
  126. package/src/stories/views/components/page/components/socialsharing.hbs +4 -4
  127. package/src/stories/views/components/pagination/fixtures/page_pagination.json +1 -1
  128. package/src/stories/views/components/podcast/components/podcast_subscribe_button.hbs +1 -1
  129. package/src/stories/views/components/podcast/podcast_player.hbs +1 -1
  130. package/src/stories/views/components/site_header/brand_navigation/brand_navigation_item.hbs +1 -1
  131. package/src/stories/views/components/site_header/navigation_flyout/navigation_flyout.hbs +1 -1
  132. package/src/stories/views/components/site_header/section_navigation/section_navigation_item.hbs +3 -3
  133. package/src/stories/views/components/site_header/service_logo.hbs +1 -1
  134. package/src/stories/views/components/site_header/service_navigation/service_navigation_item.hbs +2 -2
  135. package/src/stories/views/components/social_sharing/social_sharing_compact_icons.hbs +4 -4
  136. package/src/stories/views/components/socialmedia/socialmedia.hbs +4 -4
  137. package/src/stories/views/components/teaser/components/teaser_body.hbs +10 -1
  138. package/src/stories/views/components/teaser/components/teaser_lead.hbs +1 -1
  139. package/src/stories/views/components/teaser/fixtures/teaser_alternative_100_serif_link.json +1 -1
  140. package/src/stories/views/components/teaser/fixtures/teaser_alternative_50_serif_link.json +1 -1
  141. package/src/stories/views/components/teaser/fixtures/teaser_alternative_hero_serif_link.json +1 -1
  142. package/src/stories/views/components/teaser/fixtures/teaser_standard_100_serif_link.json +1 -1
  143. package/src/stories/views/components/teaser/fixtures/teaser_standard_25_serif_link.json +1 -1
  144. package/src/stories/views/components/teaser/fixtures/teaser_standard_33_serif_link.json +1 -1
  145. package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif_link.json +1 -1
  146. package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif_link_two_click.json +1 -0
  147. package/src/stories/views/components/teaser/fixtures/teaser_standard_hero_serif_link.json +1 -1
  148. package/src/stories/views/components/teaser/group_teaser/group_teaser.hbs +1 -1
  149. package/src/stories/views/components/teaser/group_teaser/group_teaser_accented.hbs +1 -1
  150. package/src/stories/views/components/teaser/teaser_standard.mdx +4 -0
  151. package/src/stories/views/components/teaser/teaser_standard.stories.js +7 -0
  152. package/src/stories/views/components/teaser/ticker/teaser_ticker_timeline.hbs +1 -1
  153. package/src/stories/views/components/topictag/topictag_list.hbs +1 -1
@@ -5,7 +5,7 @@
5
5
  <ul class="flex flex-wrap w-full pt-2 gap-x-2 gap-y-2">
6
6
  {{~#with this.twitterLink ~}}
7
7
  <li>
8
- <a class="{{#with ../../this.content.trackingData}} js-load{{/with}}"
8
+ <a class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}{{#with ../../this.content.trackingData}} js-load{{/with}}"
9
9
  href="{{this}}"
10
10
  target="_blank"
11
11
  rel="noopener noreferrer"
@@ -20,7 +20,7 @@
20
20
  {{~/with~}}
21
21
  {{~#with this.facebookLink ~}}
22
22
  <li>
23
- <a class="{{#with ../../this.content.trackingData}} js-load{{/with}}"
23
+ <a class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}{{#with ../../this.content.trackingData}} js-load{{/with}}"
24
24
  href="{{this}}"
25
25
  target="_blank"
26
26
  rel="noopener noreferrer"
@@ -35,7 +35,7 @@
35
35
  {{~/with~}}
36
36
  {{~#with this.whatsappLink ~}}
37
37
  <li>
38
- <a class="{{#with ../../this.content.trackingData}} js-load{{/with}}"
38
+ <a class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}{{#with ../../this.content.trackingData}} js-load{{/with}}"
39
39
  href="{{this}}"
40
40
  target="_blank"
41
41
  rel="noopener noreferrer"
@@ -50,7 +50,7 @@
50
50
  {{~/with~}}
51
51
  {{~#with this.mailtoLink ~}}
52
52
  <li>
53
- <a class="{{#with ../../this.content.trackingData}} js-load{{/with}}"
53
+ <a class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}{{#with ../../this.content.trackingData}} js-load{{/with}}"
54
54
  href="{{this}}"
55
55
  title="{{loca "share_mail_linktitle" }}"
56
56
  {{#with ../../this.content.trackingData}}
@@ -21,6 +21,15 @@
21
21
  {{/if}}
22
22
  {{/components/teaser/components/teaser_headline}}
23
23
  {{/components/base/link}}
24
+ {{#if (isStorybook)}}
25
+ {{#if this.link.isUserConsentNeeded}}
26
+ {{#with this}}
27
+ {{#> components/modal/modal _type="userConsent" _css="" _trigger=".js-user-consent-needed"}}
28
+ {{> components/modal/user_consent _link=this.link _headline=(loca "modal_user_consent_headline") _text=(loca "modal_user_consent_text") _labelOk=(loca "modal_user_consent_label_ok") _labelCancel=(loca "modal_user_consent_label_cancel")}}
29
+ {{/components/modal/modal}}
30
+ {{/with}}
31
+ {{/if}}
32
+ {{/if}}
24
33
  {{/components/teaser/components/teaser_header}}
25
34
  {{#*inline "htmlProperties"}}
26
35
  {{#if this.isFileDownload}}
@@ -32,7 +41,7 @@
32
41
  {{#unless this.hideBylineAndShorttext}}
33
42
  <div class="sm:px-0{{#unless this.isMobile1to1}} px-5{{/unless}}">
34
43
  {{#if this.shorttext}}
35
- {{> components/teaser/components/teaser_text _text=this.shorttext _size=this.teaserSize}}
44
+ {{> components/teaser/components/teaser_text _text=this.shorttext _size=this.teaserSize }}
36
45
  {{/if}}
37
46
  {{> components/teaser/components/teaser_byline}}
38
47
  </div>
@@ -1,7 +1,7 @@
1
1
  {{~#if this.allowAVConsumption ~}}
2
2
  {{> components/teaser/components/teaser_av_consumption _aspectRatio=_aspectRatio _isMobile1to1=_isMobile1to1 _teaserSize=_teaserSize _teaserType=_teaserType _addClassImg=_addClassImg}}
3
3
  {{else}}
4
- {{#if this.isTickerTeaser}}<a href="{{this.link.url}}" aria-label="Zum Ticker" tabindex="-1">{{/if}}
4
+ {{#if this.isTickerTeaser}}<a href="{{this.link.url}}" aria-label="Zum Ticker" tabindex="-1"{{#if (isUserConsentNeeded this.link.url)}} class="js-user-consent-needed"{{/if}}>{{/if}}
5
5
  {{> components/teaser/components/teaser_image _isMobile1to1=_isMobile1to1 _teaserSize=_teaserSize _addClassImg=_addClassImg _aspectRatio=_aspectRatio}}
6
6
  {{#if this.isTickerTeaser}}</a>{{/if}}
7
7
  {{/if}}
@@ -2,7 +2,7 @@
2
2
  {{#>components/grid/grid_group _backgroundColor=this.backgroundColor }}
3
3
  {{~#if this.hasGroupTitle}}
4
4
  <{{if this.headlineTag this.headlineTag "h2"}} class="text-2xl {{#unless this.isRelatedContent}} md:text-5xl{{else}} justifyLine{{/unless}} col-span-full py-0 font-title {{#if this.backgroundColor}} text-center{{else}} headline-barrier{{/if}}">
5
- {{~#if this.hasLink}}<a class="no-underline hover:underline decoration-1 md:decoration-2 text-link" href="{{this.link.url}}">{{/if~}}
5
+ {{~#if this.hasLink}}<a class="{{if (isUserConsentNeeded this.link.url) 'js-user-consent-needed ' ''}}no-underline hover:underline decoration-1 md:decoration-2 text-link" href="{{this.link.url}}">{{/if~}}
6
6
  {{this.groupTitle}}
7
7
  {{~#if this.hasLink}}</a>{{/if~}}
8
8
  </{{if this.headlineTag this.headlineTag "h2"}}>
@@ -3,7 +3,7 @@
3
3
  <div class="grid items-start content-start h-auto grid-cols-12 col-span-12 py-5 mx-5 group-accented sm:p-5 sm:mx-0 rounded-tl-hr rounded-br-hr bg-highlight-1 gap-x-6 gap-y-5">
4
4
  {{~#if this.hasGroupTitle}}
5
5
  <h2 class="text-2xl md:text-5xl px-5 sm:px-0 col-span-full pt-0 pb-4 font-title {{#if this.backgroundColor}} text-center{{else}} headline-barrier{{/if}}">
6
- {{~#if this.hasLink}}<a class="no-underline hover:underline decoration-1 md:decoration-2 text-blue-science" href="{{this.link.url}}">{{/if~}}
6
+ {{~#if this.hasLink}}<a class="{{if (isUserConsentNeeded this.link.url) 'js-user-consent-needed ' ''}}no-underline hover:underline decoration-1 md:decoration-2 text-blue-science" href="{{this.link.url}}">{{/if~}}
7
7
  {{this.groupTitle}}
8
8
  {{~#if this.hasLink}}</a>{{/if~}}
9
9
  </h2>
@@ -20,7 +20,7 @@
20
20
  {{/if}}
21
21
  </div>
22
22
  {{~/with}}
23
- <a class="link-focus-white text-base js-load {{#if ../../_color}} text-{{../../_color}}{{else}} text-toplineColor{{/if}} underline decoration-1 ds-link" href="{{this.tickerItemUrl}}" rel="nofollow" data-hr-click-tracking='{"settings": [{"type": "uxAction", "clickLabel": "TickerTeaser::{{../../this.sophoraId}}-TeaserPostLink geklickt"}]}'>{{this.relevantTitle}}</a>
23
+ <a class="{{if (isUserConsentNeeded this.tickerItemUrl) 'js-user-consent-needed ' ''}}link-focus-white text-base js-load {{#if ../../_color}} text-{{../../_color}}{{else}} text-toplineColor{{/if}} underline decoration-1 ds-link" href="{{this.tickerItemUrl}}" rel="nofollow" data-hr-click-tracking='{"settings": [{"type": "uxAction", "clickLabel": "TickerTeaser::{{../../this.sophoraId}}-TeaserPostLink geklickt"}]}'>{{this.relevantTitle}}</a>
24
24
  </li>
25
25
  {{~/each~}}
26
26
  </ul>
@@ -5,7 +5,7 @@
5
5
  <ul class="flex flex-wrap sm:block gap-x-4 w-fit sm:w-full sm:pt-2 ">
6
6
  {{~#each this~}}
7
7
  <li class="w-fit sm:w-full text-primary dark:text-standard-text-dark">
8
- <a class="block line-clamp-1 hover:underline gap-x-1" href="{{this.url}}">
8
+ <a class="{{if (isUserConsentNeeded this.url) 'js-user-consent-needed ' ''}}block line-clamp-1 hover:underline gap-x-1" href="{{this.url}}">
9
9
  {{~> components/base/image/icon _icon="taglabel" _addClass="inline w-4 h-4 mr-2 fill-current"~}}
10
10
 
11
11
  {{~this.title~}}
@@ -1,6 +1,6 @@
1
1
  {{#with this.bannerImage}}
2
2
  {{#if ../bannerLink}}
3
- <a href="{{../bannerLink}}">
3
+ <a href="{{../bannerLink}}"{{#if (isUserConsentNeeded ../bannerLink)}} class="js-user-consent-needed"{{/if}}>
4
4
  {{/if}}
5
5
  {{#unless ../_hideOnMobile }}
6
6
  {{~> components/base/image/responsive_image _type="banner" _variant="default" _addClass="print:hidden" _noDelay="true" _title=(loca "banner_image_copyright" (strip this.copyrightWithLinks html)) ~}}
@@ -1,4 +1,4 @@
1
- <a href="{{this}}" class="flex flex-nowrap items-center text-sm gap-x-2 text-primary hover:underline {{~#with _addClass }} {{this}}{{/with}}">
1
+ <a href="{{this}}" class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}flex flex-nowrap items-center text-sm gap-x-2 text-primary hover:underline {{~#with _addClass }} {{this}}{{/with}}">
2
2
  {{~> components/base/image/icon _icon="arrow-left" _addClass="w-5 h-5 fill-current" ~}}
3
3
  {{~loca "backlink_title" ~}}
4
4
  </a>
@@ -1,5 +1,5 @@
1
1
  <a {{#with _link.webviewUrl}}data-webviewurl="{{this}}"{{/with}} {{#if _link.isStaticUrl}}href="{{#if _link.site}}{{resourceUrl _link.url _site=_link.site}}{{else}}{{resourceUrl _link.url}}{{/if}}{{else}}href="{{_link.url}}{{/if}}{{#if this.hasComments}}#commentList{{/if}}"
2
- class="sb-link ds-link js-load {{#if _isSelected}} {{defaultIfEmpty _selectedCssClass "-current"}}{{/if}}{{#if _css}} {{_css}}{{/if}} {{#> css}}{{/css}}"
2
+ class="sb-link ds-link js-load{{#if _link.isUserConsentNeeded}} js-user-consent-needed{{/if}} {{#if _isSelected}} {{defaultIfEmpty _selectedCssClass "-current"}}{{/if}}{{#if _css}} {{_css}}{{/if}} {{#> css}}{{/css}}"
3
3
  {{#if _link.isTargetBlank}} target="_blank" rel="noopener{{#if _link.hasNoReferrerFlag}} noreferrer{{/if}}"{{/if}}
4
4
  {{#if _isAriaHidden}} aria-hidden="true" tabindex="-1"{{/if}}
5
5
  {{#> htmlProperties}}{{/htmlProperties}}
@@ -31,7 +31,7 @@
31
31
  {{#with this.footerMetadata}}
32
32
  {{#with this.dataProtectionLink}}
33
33
  {{loca "cookies_setting_tracking_service_description_text"}}
34
- <a class="block mt-2 ds-link text-link hover:underline" target="_blank"
34
+ <a class="{{if (isUserConsentNeeded this.url) 'js-user-consent-needed ' ''}}block mt-2 ds-link text-link hover:underline" target="_blank"
35
35
  rel="noopener noreferrer" href="{{this.url}}"
36
36
  title="Mehr Informationen zum Thema Datenschutz">Mehr Informationen zum Thema Datenschutz
37
37
  {{#if this.isTargetBlank}}{{~> components/base/image/icon _icon="extern" _addClass="h-5 w-5 -mt-0.5 fill-current ml-1 inline-flex" _iconmap="icons"~}}{{/if}}
@@ -48,7 +48,7 @@
48
48
  <ul class="{{#if _webview}} hidden{{/if}}">
49
49
  <li class="px-6 py-3 flex justify-between items-center bg-white border-t border-[#e3e3e3] tracking_1">
50
50
  <span class="text-base text-black">AGF <a
51
- class="mt-3 -mb-1 ds-link text-link hover:underline" target="_blank" rel="noopener noreferrer"
51
+ class="{{if (isUserConsentNeeded 'https://www.agf.de/') 'js-user-consent-needed ' ''}}mt-3 -mb-1 ds-link text-link hover:underline" target="_blank" rel="noopener noreferrer"
52
52
  href="https://www.agf.de/" title="AGF">(https://www.agf.de/){{~> components/base/image/icon _icon="extern" _addClass="h-5 w-5 -mt-0.5 fill-current ml-1 inline-flex" _iconmap="icons"~}}</a></span>
53
53
  <div class="flex w-fit toggleSwitch">
54
54
  {{> components/forms/toggle_button _id="agf" _addClass="js-toggleSwitch-checkbox js-toggleSwitch-tracking" _isInitiallyHidden=false _screenReaderText="agf aktivieren/deaktivieren" }}
@@ -56,7 +56,7 @@
56
56
  </li>
57
57
  <li class="px-6 py-3 flex justify-between items-center bg-white border-t border-[#e3e3e3] tracking_2">
58
58
  <span class="text-base text-black">AT Internet <a
59
- class="mt-3 -mb-1 ds-link text-link hover:underline" target="_blank" rel="noopener noreferrer"
59
+ class="{{if (isUserConsentNeeded 'https://www.atinternet.com/de/') 'js-user-consent-needed ' ''}}mt-3 -mb-1 ds-link text-link hover:underline" target="_blank" rel="noopener noreferrer"
60
60
  href="https://www.atinternet.com/de/"
61
61
  title="AT Internet">(https://www.atinternet.com/de/){{~> components/base/image/icon _icon="extern" _addClass="h-5 w-5 -mt-0.5 fill-current ml-1 inline-flex" _iconmap="icons"~}}</a></span>
62
62
  <div class="flex w-fit toggleSwitch">
@@ -71,7 +71,7 @@
71
71
  {{#with this.footerMetadata}}
72
72
  {{#with this.dataProtectionLink}}
73
73
  {{loca "cookies_setting_description_text"}}
74
- <a class="block mt-2 ds-link text-link hover:underline" target="_blank"
74
+ <a class="{{if (isUserConsentNeeded this.url) 'js-user-consent-needed ' ''}}block mt-2 ds-link text-link hover:underline" target="_blank"
75
75
  rel="noopener noreferrer" href="{{this.url}}"
76
76
  title="Mehr Informationen zum Thema Datenschutz">Mehr Informationen zum Thema Datenschutz
77
77
  {{#if this.isTargetBlank}}{{~> components/base/image/icon _icon="extern" _addClass="h-5 w-5 -mt-0.5 fill-current ml-1 inline-flex" _iconmap="icons"~}}{{/if}}
@@ -1,3 +1,6 @@
1
1
  <div class="flex flex-col border-event-calendar-secondary border gap-x-4 js-load" data-hr-filterer-ds="{}">
2
2
  {{> @partial-block }}
3
+ {{#> components/modal/modal _type="userConsent" _trigger=".js-ticket-button-user-consent-needed"}}
4
+ {{> components/modal/user_consent _link=this.link _headline=(loca "ticket_modal_headline") _text=(loca "ticket_modal_text") _labelOk=(loca "ticket_modal_label_ok") _labelCancel=(loca "ticket_modal_label_cancel")}}
5
+ {{/components/modal/modal}}
3
6
  </div>
@@ -1,23 +1,15 @@
1
1
  <div class="static pt-1 pb-3 pl-4 sm:absolute sm:pl-0 sm:pt-0 sm:pb-0 sm:right-4 sm:bottom-4">
2
- {{#> components/button/button _id=(nextRandom) _size="lg"}}
3
- {{> components/button/components/button_icon _icon="ticket" _iconmap="icons" _css="mr-2"}}
4
- {{>components/button/components/button_label _label="Tickets"}}
5
- {{/components/button/button}}
6
- {{#> components/modal/modal _trigger=(getRandom)}}
7
- {{#> components/teaser/components/teaser_headline}}
8
- {{> components/teaser/components/teaser_title _text=(loca 'ticket_modal_headline') _css="text-2xl"}}
9
- {{/components/teaser/components/teaser_headline}}
10
- <p class="mt-2 text-base font-copy">{{loca "ticket_modal_text"}}</p>
2
+ {{#with this}}
3
+ {{#> components/button/button _css="js-ticket-button-user-consent-needed"_id=(nextRandom) _size="lg"}}
4
+ {{> components/button/components/button_icon _icon="ticket" _iconmap="icons" _css="mr-2"}}
5
+ {{>components/button/components/button_label _css='' _label="Tickets"}}
6
+ {{/components/button/button}}
7
+ {{#*inline "htmlProperties"~}}
8
+ data-user-consent-link='{"url":"{{this.link.url}}","isTargetBlank":{{this.link.isTargetBlank}} }'
9
+ data-user-consent-tracking-data="{{this.link.cmsDocument.trackingInformations.ticketLink}}"
10
+ {{~/inline}}
11
+ {{/with}}
11
12
 
12
- <div class="flex flex-wrap mt-4">
13
- {{#> components/button/button _size="lg" _variant="tertiary" _value="cancel" _css="mr-4 mt-4"}}
14
- {{>components/button/components/button_label _label="Abbrechen" _css=""}}
15
- {{/components/button/button}}
16
- {{#> components/button/link_button _link=this.link _size="lg" _css="js-ticket-ok-button js-modal-close mt-4"}}
17
- {{>components/button/components/button_label _label="Zum Ticketshop" _css=""}}
18
- {{/components/button/link_button}}
19
- </div>
20
- {{/components/modal/modal}}
21
13
  <noscript>
22
14
  <style>
23
15
  #{{getRandom}} {
@@ -1,5 +1,5 @@
1
1
  {{#if this.externalServiceConfig.makeConfigurable}}
2
-
2
+ <!-- Embedding via JS with DataPolicyCheck-->
3
3
  {{> components/externalService/external_service_with_datapolicy_check }}
4
4
 
5
5
  {{else}}
@@ -8,26 +8,19 @@
8
8
  <div class="clear-both mt-10">
9
9
  <span class="sr-only">{{loca "story_externalservice_intro_sr" }}</span>
10
10
  {{#if this.externalServiceConfig.embedAsIFrame}}
11
-
11
+ <!-- Embedding via Iframe -->
12
12
  <div class="{{#if this.fixedHeight}}overflow-y-hidden{{else}}overflow-hidden{{/if}}" {{#if this.fixedHeight}}style="height:{{this.fixedHeight}}px;"{{/if}}>
13
13
  {{#unless this.fixedHeight}}<div class="{{~inline-switch this.aspectRatio '["16x9","16x7","4x3","100x27","100","9x16","7x16"]' '["ar-16-9","ar-16-7","ar-4-3","ar-100-27","ar-1-1","ar-9-16","ar-7-16","ar-16-9"]'~}}">{{/unless}}
14
- <iframe frameborder="0" width="100%" height="100%"
15
- src="{{{this.serviceUrl}}}" webkitallowfullscreen mozallowfullscreen
16
- allowfullscreen scrolling='no'>
17
- </iframe>
14
+ <iframe frameborder="0" width="100%" height="100%" src="{{{this.serviceUrl}}}" webkitallowfullscreen mozallowfullscreen allowfullscreen scrolling='no'></iframe>
18
15
  {{#unless this.fixedHeight}}</div>{{/unless}}
19
16
  </div>
20
-
21
17
  {{else}}
22
-
18
+ <!-- Embedding via JS without DataPolicyCheck-->
23
19
  <div class="c-externalService__{{this.externalServiceConfig.externalServiceId}} js-load"
24
- data-hr-external-service-ds='{"id":"{{this.externalServiceConfig.externalServiceId}}","embedCode":"{{this.serviceUrl}}", "embedType": "{{this.externalServiceConfig.externalServiceEmbedType}}", "dataPolicyCheck": false, "iFrameConfig":{}}'>
25
- </div>
26
-
27
- {{/if}}
28
-
20
+ data-hr-external-service-ds='{"id":"{{this.externalServiceConfig.externalServiceId}}","embedCode":"{{this.serviceUrl}}","embedType": "{{this.externalServiceConfig.externalServiceEmbedType}}","dataPolicyCheck": false,"iFrameConfig":{}}'>
21
+ </div>
22
+ {{/if}}
29
23
  {{~> components/externalService/components/external_service_caption ~}}
30
-
31
24
  <span class="sr-only">{{loca "story_externalservice_outro_sr" }}</span>
32
25
  </div>
33
26
  {{/if}}
@@ -1,9 +1,8 @@
1
1
  <div class="grid clear-both mt-10">
2
- {{~> components/base/a11y/hiddenText _locaTag="story_externalservice_intro_sr" ~}}
2
+ {{~> components/base/a11y/hiddenText _locaTag="story_externalservice_intro_sr" ~}}
3
3
  <div class="c-externalService c-externalService__{{this.externalServiceConfig.externalServiceId}} js-load"
4
- data-hr-external-service-ds='{"id":"{{this.externalServiceConfig.externalServiceId}}","embedCode":"{{this.serviceUrl}}", "embedType": "{{this.externalServiceConfig.externalServiceEmbedType}}", "dataPolicyCheck": true,"iFrameConfig": {"heightClass":""{{#if
5
- this.fixedHeight}},"fixedHeight":"{{this.fixedHeight}}", "fixedHeightClass":"-fixedHeight"{{else}},{{#if
6
- this.aspectRatio}}"aspectRatio":"{{this.aspectRatio}}"{{else}}"aspectRatio":"16x9"{{/if}}{{/if}},"noResponsiveIframe":"{{{this.setResponsiveIframe}}}","refreshContent":"{{{this.setTimedReloadIframe}}}","refreshIntervall":"{{this.setTimeForReload}}"}}'>
4
+ data-hr-external-service-ds='{"id":"{{this.externalServiceConfig.externalServiceId}}","embedCode":"{{this.serviceUrl}}","embedType":"{{this.externalServiceConfig.externalServiceEmbedType}}","dataPolicyCheck": true,"iFrameConfig": { {{#if this.fixedHeight}}
5
+ "fixedHeight":"{{this.fixedHeight}}"{{else}}{{#if this.aspectRatio}}"aspectRatio":"{{this.aspectRatio}}"{{else}}"aspectRatio":"16x9"{{/if}}{{/if}},"noResponsiveIframe":"{{{this.setResponsiveIframe}}}"{{#if this.setTimedReloadIframe}},"refreshContent":"{{{this.setTimedReloadIframe}}}","refreshIntervall":"{{this.setTimeForReload}}"{{/if}} }}'>
7
6
  {{~> components/externalService/components/external_service_data_policy ~}}
8
7
  </div>
9
8
  {{~> components/externalService/components/external_service_caption ~}}
@@ -5,7 +5,7 @@
5
5
  <ul class="flex flex-wrap gap-x-4 w-fit sm:w-full sm:pt-2 ">
6
6
  {{~#each this~}}
7
7
  <li class="w-fit sm:w-full text-primary dark:text-standard-text-dark">
8
- <a class="block hover:underline gap-x-1" href="{{this.url}}">
8
+ <a class="{{if (isUserConsentNeeded this.url) 'js-user-consent-needed ' ''}}block hover:underline gap-x-1" href="{{this.url}}">
9
9
  {{~> components/base/image/icon _icon="ortsmarke" _addClass="inline w-5 h-5 mr-2 fill-current"~}}
10
10
 
11
11
  {{~this.title~}}
@@ -8,7 +8,7 @@
8
8
  {{/with~}}
9
9
  {{/unless}}
10
10
  {{#with _teaser}}
11
- {{#if this.isTickerTeaser}}<a href="{{this.link.url}}" aria-label="Zum Ticker" tabindex="-1">{{/if}}
11
+ {{#if this.isTickerTeaser}}<a href="{{this.link.url}}" aria-label="Zum Ticker" tabindex="-1"{{#if (isUserConsentNeeded this.link.url)}} class="js-user-consent-needed"{{/if}}>{{/if}}
12
12
  {{~> components/base/image/responsive_image this.teaserImage _type=(if this.teaserType this.teaserType 'story') _variant=(if this.content.imageVariant this.content.imageVariant '100-copytext') _addClassImg=(appendToDefault _addClassImg "ar__content") _noDelay=this.dontLazyload ~}}
13
13
  {{#if this.isTickerTeaser}}</a>{{/if}}
14
14
  {{/with}}
@@ -1,4 +1,4 @@
1
- <div class="js-load" data-hr-modal='{"modalTriggerId":"{{defaultIfEmpty _trigger ""}}", "trackingInformations": {{this.link.cmsDocument.trackingInformations.ticketLink}},"dialogPolyfillBaseUrl":"{{resourceUrl (configProperty 'dialogPolyfill.baseUrl')}}"}'>
1
+ <div class="js-load" data-hr-modal='{"trigger":"{{if _trigger _trigger ""}}", "type":"{{defaultIfEmpty _type 'default'}}", "dialogPolyfillBaseUrl":"{{resourceUrl (configProperty 'dialogPolyfill.baseUrl')}}"}'>
2
2
  <dialog class='js-modal p-0 backdrop:bg-gray-scorpion/90 shadow-md {{defaultIfEmpty _css "sm:max-w-xl"}}'>
3
3
  <form method="dialog" class="js-dialog-content p-4">
4
4
  {{> @partial-block }}
@@ -0,0 +1,13 @@
1
+ {{#> components/teaser/components/teaser_headline}}
2
+ {{> components/teaser/components/teaser_title _text=_headline _css="text-2xl"}}
3
+ {{/components/teaser/components/teaser_headline}}
4
+ <p class="mt-2 text-base font-copy">{{_text}}</p>
5
+
6
+ <div class="flex flex-wrap mt-4">
7
+ {{#> components/button/button _size="lg" _variant="tertiary" _value="cancel" _css="mr-4 mt-4"}}
8
+ {{>components/button/components/button_label _label=_labelCancel _css=""}}
9
+ {{/components/button/button}}
10
+ {{#> components/button/link_button _link='{"url":"#", "isTargetBlank": false, "hasIcon": false}' _size="lg" _css="js-user-consent-ok js-modal-close mt-4"}}
11
+ {{>components/button/components/button_label _label=_labelOk _css=""}}
12
+ {{/components/button/link_button}}
13
+ </div>
@@ -8,7 +8,7 @@
8
8
  {{/with}}
9
9
  <li class="inline">
10
10
  <h1 class="inline{{#unless this.showBreadcrumbTitleAlways}} sr-only sm:not-sr-only{{/unless}}">
11
- <a href="{{_currentPageUrl}}" class="{{> components/navigation/breadcrumb/utils/breadcrumb_link_classes}}">{{~_currentPageTitle~}}</a>
11
+ <a href="{{_currentPageUrl}}" class="{{if (isUserConsentNeeded _currentPageUrl) 'js-user-consent-needed ' ''}}{{> components/navigation/breadcrumb/utils/breadcrumb_link_classes}}">{{~_currentPageTitle~}}</a>
12
12
  </h1>
13
13
  </li>
14
14
  </ul>
@@ -1,6 +1,6 @@
1
1
  {{~#each this.breadcrumb}}
2
2
  <li class="inline">
3
- <a href="{{this.url}}" class="{{> components/navigation/breadcrumb/utils/breadcrumb_link_classes}}">
3
+ <a href="{{this.url}}" class="{{if (isUserConsentNeeded this.url) 'js-user-consent-needed ' ''}}{{> components/navigation/breadcrumb/utils/breadcrumb_link_classes}}">
4
4
  <span>{{this.title}}</span>
5
5
  </a>
6
6
  <span class="ds-icon-container inline-block">{{~> components/base/image/icon _icon="arrow-right" _addClass="mx-2 w-2 h-2 text-inherit fill-link" _iconmap="icons"~}}</span>
@@ -35,7 +35,7 @@
35
35
  <div class="self-start text-xs sm480:text-sm basis-0 grow font-headingSerif text-gray-scorpion dark:text-text-dark">
36
36
  {{#unless _hideFrom }}Von{{/unless}}
37
37
  {{#if this.authorUrl~}}
38
- <a href="{{this.authorUrl}}" {{#with this.webviewAuthorUrl}}data-webviewurl="{{this}}"{{/with}} class="text-link hover:underline dark:text-link-dark ">{{this.authorTitle}}</a>
38
+ <a href="{{this.authorUrl}}" {{#with this.webviewAuthorUrl}}data-webviewurl="{{this}}"{{/with}} class="{{if (isUserConsentNeeded this.authorUrl) 'js-user-consent-needed ' ''}}text-link hover:underline dark:text-link-dark ">{{this.authorTitle}}</a>
39
39
  {{else}}
40
40
  {{this.authorTitle}}
41
41
  {{/if}}
@@ -4,7 +4,7 @@
4
4
  <ul class="flex justify-end">
5
5
  {{~#with this.twitterLink ~}}
6
6
  <li class="float-left mr-3">
7
- <a class="{{#with ../../this.content.trackingData}} js-load{{/with}}"
7
+ <a class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}{{#with ../../this.content.trackingData}} js-load{{/with}}"
8
8
  href="{{this}}"
9
9
  target="_blank"
10
10
  rel="noopener noreferrer"
@@ -19,7 +19,7 @@
19
19
  {{~/with~}}
20
20
  {{~#with this.facebookLink ~}}
21
21
  <li class="float-left mr-3">
22
- <a class="{{#with ../../this.content.trackingData}} js-load{{/with}}"
22
+ <a class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}{{#with ../../this.content.trackingData}} js-load{{/with}}"
23
23
  href="{{this}}"
24
24
  target="_blank"
25
25
  rel="noopener noreferrer"
@@ -34,7 +34,7 @@
34
34
  {{~/with~}}
35
35
  {{~#with this.whatsappLink ~}}
36
36
  <li class="float-left mr-3">
37
- <a class="{{#with ../../this.content.trackingData}} js-load{{/with}}"
37
+ <a class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}{{#with ../../this.content.trackingData}} js-load{{/with}}"
38
38
  href="{{this}}"
39
39
  target="_blank"
40
40
  rel="noopener noreferrer"
@@ -49,7 +49,7 @@
49
49
  {{~/with~}}
50
50
  {{~#with this.mailtoLink ~}}
51
51
  <li class="float-left mr-3">
52
- <a class="{{#with ../../this.content.trackingData}} js-load{{/with}}"
52
+ <a class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}{{#with ../../this.content.trackingData}} js-load{{/with}}"
53
53
  href="{{this}}"
54
54
  title="{{loca "share_mail_linktitle" }}"
55
55
  {{#with ../../this.content.trackingData}}
@@ -54,7 +54,7 @@
54
54
  <ul>
55
55
  {{~#each this~}}
56
56
  <li class="{{#unless @last}}border-b{{/unless}}">
57
- <a class="flex px-2 py-2 text-left ds-link whitespace-nowrap hover:underline disabled:text-gray-500 js-load"
57
+ <a class="{{if (isUserConsentNeeded this.podcastHosterUrl) 'js-user-consent-needed ' ''}}flex px-2 py-2 text-left ds-link whitespace-nowrap hover:underline disabled:text-gray-500 js-load"
58
58
  title="{{this.podcastHosterName}}"
59
59
  target="_blank"
60
60
  rel="noopener noreferrer"
@@ -75,7 +75,7 @@
75
75
  <div class="flex justify-end w-full pl-4">
76
76
  <div class="flex flex-col flex-wrap self-end text-xs font-heading text-podcast-text dark:text-podcast-text-dark">
77
77
  <span class="self-end font-bold">Zur Sendung</span>
78
- <a class="self-end underline ds-link" href="{{this.url}}">{{this.title}}</a>
78
+ <a class="{{if (isUserConsentNeeded this.url) 'js-user-consent-needed ' ''}}self-end underline ds-link" href="{{this.url}}">{{this.title}}</a>
79
79
  </div>
80
80
  </div>
81
81
  {{/with}}
@@ -1,3 +1,3 @@
1
1
  <li class="sb-brand-navigation-item h-8 {{#if @first }}-ml-3 {{/if}}{{#if this.selected}} h-10 md:h-8 font-bold text-brandnav-pseudo {{/if}}cursor-pointer inline-block lg:hover:underline active:font-bold active:text-primary">
2
- <a class="link-focus-inset leading-[34px] items-center flex-col px-3 {{#if this.selected }}relative {{/if}}md:flex-row js-load w-max flex justify-center {{#if this.selected}} -currentBrand {{/if}}" aria-label="{{this.name}}" href="{{resourceUrl "index.html" _site=this.site}}"{{#if this.extern}} target="_blank" rel="noopener noreferrer"{{/if}} data-hr-click-tracking='{"settings": [{"type": "uxNavigation", "secondLevelId": 1, "clickLabel": "Brandnavigation::{{this.text}}-Link geklickt"}]}'>{{this.text}}</a>
2
+ <a class="{{if (isUserConsentNeeded (resourceUrl "index.html" _site=this.site)) 'js-user-consent-needed ' ''}}link-focus-inset leading-[34px] items-center flex-col px-3 {{#if this.selected }}relative {{/if}}md:flex-row js-load w-max flex justify-center {{#if this.selected}} -currentBrand {{/if}}" aria-label="{{this.name}}" href="{{resourceUrl "index.html" _site=this.site}}"{{#if this.extern}} target="_blank" rel="noopener noreferrer"{{/if}} data-hr-click-tracking='{"settings": [{"type": "uxNavigation", "secondLevelId": 1, "clickLabel": "Brandnavigation::{{this.text}}-Link geklickt"}]}'>{{this.text}}</a>
3
3
  </li>
@@ -32,7 +32,7 @@
32
32
  {{#if ../this.flyoutStartLinkText}}
33
33
  <div class="w-full">
34
34
  <div class="{{~#if ../_isSectionNav}}hidden lg:flex{{else}}flex{{/if}} pt-4 pb-2 pl-4 text-base font-bold bg-white lg:pl-0 md:pt-4 lg:pt-1 lg:pb-0 justify-left text-primary ">
35
- <a href="{{resourceUrl ../this.url}}" class="-isHeaderLink lg:leading-10 link-focus-inset js-load" data-hr-click-tracking='{"settings": [{"type": "uxAction", "secondLevelId": 1, "clickLabel": "{{../_navigationType}}::{{../_parent}}::{{../this.flyoutStartLinkText}}-Link geklickt"}]}' >
35
+ <a href="{{resourceUrl ../this.url}}" class="{{if (isUserConsentNeeded (resourceUrl ../this.url)) 'js-user-consent-needed ' ''}}-isHeaderLink lg:leading-10 link-focus-inset js-load" data-hr-click-tracking='{"settings": [{"type": "uxAction", "secondLevelId": 1, "clickLabel": "{{../_navigationType}}::{{../_parent}}::{{../this.flyoutStartLinkText}}-Link geklickt"}]}' >
36
36
  {{../this.flyoutStartLinkText}}
37
37
  </a>
38
38
  </div>
@@ -28,7 +28,7 @@
28
28
  @click="preventDefault(isDesktopView(),$event); toggle(); correctFlyoutPos()"
29
29
  @resize.window="dropped=false; correctFlyoutPos()"
30
30
  :class="dropped ? 'lg:underline font-bold lg:font-normal' : 'font-normal'"
31
- class="js-noStateManager {{#if this.selected}}-currentSection lg:justify-center !font-bold {{/if}}link-focus-inset js-load pl-5 pr-8 lg:pl-4 lg:pr-4 flex flex-auto justify-between lg:flex-initial h-10 lg:w-full items-center leading-4"
31
+ class="{{#if this.extern}}{{if (isUserConsentNeeded this.url) 'js-user-consent-needed ' ''}}{{else}}{{if (isUserConsentNeeded (resourceUrl this.url)) 'js-user-consent-needed ' ''}}{{/if}}js-dropdown-in-desktop js-noStateManager {{#if this.selected}}-currentSection lg:justify-center !font-bold {{/if}}link-focus-inset js-load pl-5 pr-8 lg:pl-4 lg:pr-4 flex flex-auto justify-between lg:flex-initial h-10 lg:w-full items-center leading-4"
32
32
  aria-haspopup="true"
33
33
  x-effect="$el.setAttribute('aria-expanded', dropped);$el.setAttribute('tabindex', $store.burgeropen || $screen('lg') ? '0' : '-1')"
34
34
  aria-owns="flyout-{{getRandom}}"
@@ -42,7 +42,7 @@
42
42
  id="flyout-{{nextRandom}}-1"
43
43
 
44
44
  :class="dropped ? 'font-bold' : ''"
45
- class="{{#if this.selected}}-currentSection lg:justify-center {{/if}}link-focus-inset js-load pl-5 pr-8 lg:pl-4 lg:pr-4 flex flex-auto h-10 items-center leading-4 lg:w-full lg:justify-center{{#if this.selected}} font-bold{{/if}}"
45
+ class="{{#if this.extern}}{{if (isUserConsentNeeded this.Url) 'js-user-consent-needed ' ''}}{{else}}{{if (isUserConsentNeeded (resourceUrl this.url)) 'js-user-consent-needed ' ''}}{{/if}}{{#if this.selected}}-currentSection lg:justify-center {{/if}}link-focus-inset js-load pl-5 pr-8 lg:pl-4 lg:pr-4 flex flex-auto h-10 items-center leading-4 lg:w-full lg:justify-center{{#if this.selected}} font-bold{{/if}}"
46
46
  {{#if this.labelText}} aria-label="{{this.labelText}}"{{/if}}
47
47
  aria-haspopup="true"
48
48
  x-effect="$el.setAttribute('aria-expanded', dropped || $screen('lg'));$el.setAttribute('tabindex', $store.burgeropen || $screen('lg') ? '0' : '-1')"
@@ -57,7 +57,7 @@
57
57
  {{!-- Gilt für START/GESELLSCHAFT/WIRTSCHAFT usw: --}}
58
58
  <a {{#if this.extern}}href="{{this.url}}{{else}}href="{{resourceUrl
59
59
  this.url}}{{/if}}"
60
- class="{{#if this.selected}}-currentSection lg:justify-center {{/if}} link-focus-inset js-load flex justify-start px-5 lg:px-4 h-10 lg:justify-center items-center w-full{{#if this.selected}} font-bold{{/if}}"
60
+ class="{{#if this.extern}}{{if (isUserConsentNeeded this.url) 'js-user-consent-needed ' ''}}{{else}}{{if (isUserConsentNeeded (resourceUrl this.url)) 'js-user-consent-needed ' ''}}{{/if}}{{#if this.selected}}-currentSection lg:justify-center {{/if}} link-focus-inset js-load flex justify-start px-5 lg:px-4 h-10 lg:justify-center items-center w-full{{#if this.selected}} font-bold{{/if}}"
61
61
  {{#if this.labelText}} aria-label="{{this.labelText}}"{{/if}}
62
62
  data-hr-click-tracking='{"settings": [{"type": "uxNavigation", "secondLevelId": 1, "clickLabel": "Rubriknavigation::{{this.text}}-Link geklickt"}]}'
63
63
  x-effect="$el.setAttribute('tabindex', $store.burgeropen || $screen('lg') ? '0' : '-1')"
@@ -1,4 +1,4 @@
1
- <a class="relative flex items-center w-auto h-full text-white fill-current sb-service-logo link-focus-inset print:hidden"
1
+ <a class="{{if (isUserConsentNeeded (resourceUrl 'index.html')) 'js-user-consent-needed ' ''}}relative flex items-center w-auto h-full text-white fill-current sb-service-logo link-focus-inset print:hidden"
2
2
  href={{resourceUrl "index.html"}}
3
3
  title="{{loca "header_homepage_link_title"}}">
4
4
 
@@ -20,9 +20,9 @@
20
20
  {{else}}
21
21
 
22
22
  {{#if this.extern}}
23
- <a href="{{this.url}}" target="_blank" x-init="dropped = false" class="flex flex-col items-center justify-center h-full px-4 lg:justify-start lg:px-3 lg:pt-1 lg:rounded-t link-focus-inset js-load" id="flyout-{{nextRandom}}-1" data-hr-click-tracking='{"settings": [{"type": "uxNavigation", "secondLevelId": 1, "clickLabel": "Servicenavigation::{{this.text}}-Link geklickt"}]}'>
23
+ <a href="{{this.url}}" target="_blank" x-init="dropped = false" class="{{if (isUserConsentNeeded this.url) 'js-user-consent-needed ' ''}}flex flex-col items-center justify-center h-full px-4 lg:justify-start lg:px-3 lg:pt-1 lg:rounded-t link-focus-inset js-load" id="flyout-{{nextRandom}}-1" data-hr-click-tracking='{"settings": [{"type": "uxNavigation", "secondLevelId": 1, "clickLabel": "Servicenavigation::{{this.text}}-Link geklickt"}]}'>
24
24
  {{else}}
25
- <a href="{{resourceUrl this.url}}" x-init="dropped = false" class="flex flex-col items-center justify-center h-full px-4 lg:justify-start lg:px-3 lg:pt-1 lg:rounded-t link-focus-inset js-load" id="flyout-{{nextRandom}}-1" data-hr-click-tracking='{"settings": [{"type": "uxNavigation", "secondLevelId": 1, "clickLabel": "Servicenavigation::{{this.text}}-Link geklickt"}]}'>
25
+ <a href="{{resourceUrl this.url}}" x-init="dropped = false" class="{{if (isUserConsentNeeded (resourceUrl this.url)) 'js-user-consent-needed ' ''}}flex flex-col items-center justify-center h-full px-4 lg:justify-start lg:px-3 lg:pt-1 lg:rounded-t link-focus-inset js-load" id="flyout-{{nextRandom}}-1" data-hr-click-tracking='{"settings": [{"type": "uxNavigation", "secondLevelId": 1, "clickLabel": "Servicenavigation::{{this.text}}-Link geklickt"}]}'>
26
26
  {{/if}}
27
27
 
28
28
  {{/if}}
@@ -1,5 +1,5 @@
1
1
  <li>
2
- <a class="{{#with ../../this.content.trackingData}} js-load{{/with}} flex order-2 ds-button font-heading active:scale-95 w-8 h-8"
2
+ <a class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}{{#with ../../this.content.trackingData}} js-load{{/with}} flex order-2 ds-button font-heading active:scale-95 w-8 h-8"
3
3
 
4
4
  href="{{this}}"
5
5
  target="_blank"
@@ -13,7 +13,7 @@
13
13
  </a>
14
14
  </li>
15
15
  <li class="">
16
- <a class="{{#with ../../this.content.trackingData}} js-load{{/with}} flex order-2 ds-button font-heading active:scale-95 w-8 h-8"
16
+ <a class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}{{#with ../../this.content.trackingData}} js-load{{/with}} flex order-2 ds-button font-heading active:scale-95 w-8 h-8"
17
17
 
18
18
  href="{{this}}"
19
19
  target="_blank"
@@ -27,7 +27,7 @@
27
27
  </a>
28
28
  </li>
29
29
  <li class="">
30
- <a class="{{#with ../../this.content.trackingData}} js-load{{/with}} flex order-2 ds-button font-heading active:scale-95 w-8 h-8"
30
+ <a class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}{{#with ../../this.content.trackingData}} js-load{{/with}} flex order-2 ds-button font-heading active:scale-95 w-8 h-8"
31
31
 
32
32
  href="{{this}}"
33
33
  target="_blank"
@@ -41,7 +41,7 @@
41
41
  </a>
42
42
  </li>
43
43
  <li class="">
44
- <a class="{{#with ../../this.content.trackingData}} js-load{{/with}} flex order-2 ds-button font-heading active:scale-95 w-8 h-8"
44
+ <a class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}{{#with ../../this.content.trackingData}} js-load{{/with}} flex order-2 ds-button font-heading active:scale-95 w-8 h-8"
45
45
 
46
46
  href="{{this}}"
47
47
  title="{{loca "share_mail_linktitle" }}"
@@ -5,7 +5,7 @@
5
5
  <ul class="flex flex-wrap w-full pt-2 gap-x-2 gap-y-2">
6
6
  {{~#with this.twitterLink ~}}
7
7
  <li>
8
- <a class="{{#with ../../this.content.trackingData}} js-load{{/with}}"
8
+ <a class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}{{#with ../../this.content.trackingData}} js-load{{/with}}"
9
9
  href="{{this}}"
10
10
  target="_blank"
11
11
  rel="noopener noreferrer"
@@ -20,7 +20,7 @@
20
20
  {{~/with~}}
21
21
  {{~#with this.facebookLink ~}}
22
22
  <li>
23
- <a class="{{#with ../../this.content.trackingData}} js-load{{/with}}"
23
+ <a class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}{{#with ../../this.content.trackingData}} js-load{{/with}}"
24
24
  href="{{this}}"
25
25
  target="_blank"
26
26
  rel="noopener noreferrer"
@@ -35,7 +35,7 @@
35
35
  {{~/with~}}
36
36
  {{~#with this.whatsappLink ~}}
37
37
  <li>
38
- <a class="{{#with ../../this.content.trackingData}} js-load{{/with}}"
38
+ <a class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}{{#with ../../this.content.trackingData}} js-load{{/with}}"
39
39
  href="{{this}}"
40
40
  target="_blank"
41
41
  rel="noopener noreferrer"
@@ -50,7 +50,7 @@
50
50
  {{~/with~}}
51
51
  {{~#with this.mailtoLink ~}}
52
52
  <li>
53
- <a class="{{#with ../../this.content.trackingData}} js-load{{/with}}"
53
+ <a class="{{if (isUserConsentNeeded this) 'js-user-consent-needed ' ''}}{{#with ../../this.content.trackingData}} js-load{{/with}}"
54
54
  href="{{this}}"
55
55
  title="{{loca "share_mail_linktitle" }}"
56
56
  {{#with ../../this.content.trackingData}}
@@ -21,6 +21,15 @@
21
21
  {{/if}}
22
22
  {{/components/teaser/components/teaser_headline}}
23
23
  {{/components/base/link}}
24
+ {{#if (isStorybook)}}
25
+ {{#if this.link.isUserConsentNeeded}}
26
+ {{#with this}}
27
+ {{#> components/modal/modal _type="userConsent" _css="" _trigger=".js-user-consent-needed"}}
28
+ {{> components/modal/user_consent _link=this.link _headline=(loca "modal_user_consent_headline") _text=(loca "modal_user_consent_text") _labelOk=(loca "modal_user_consent_label_ok") _labelCancel=(loca "modal_user_consent_label_cancel")}}
29
+ {{/components/modal/modal}}
30
+ {{/with}}
31
+ {{/if}}
32
+ {{/if}}
24
33
  {{/components/teaser/components/teaser_header}}
25
34
  {{#*inline "htmlProperties"}}
26
35
  {{#if this.isFileDownload}}
@@ -32,7 +41,7 @@
32
41
  {{#unless this.hideBylineAndShorttext}}
33
42
  <div class="sm:px-0{{#unless this.isMobile1to1}} px-5{{/unless}}">
34
43
  {{#if this.shorttext}}
35
- {{> components/teaser/components/teaser_text _text=this.shorttext _size=this.teaserSize}}
44
+ {{> components/teaser/components/teaser_text _text=this.shorttext _size=this.teaserSize }}
36
45
  {{/if}}
37
46
  {{> components/teaser/components/teaser_byline}}
38
47
  </div>
@@ -1,7 +1,7 @@
1
1
  {{~#if this.allowAVConsumption ~}}
2
2
  {{> components/teaser/components/teaser_av_consumption _aspectRatio=_aspectRatio _isMobile1to1=_isMobile1to1 _teaserSize=_teaserSize _teaserType=_teaserType _addClassImg=_addClassImg}}
3
3
  {{else}}
4
- {{#if this.isTickerTeaser}}<a href="{{this.link.url}}" aria-label="Zum Ticker" tabindex="-1">{{/if}}
4
+ {{#if this.isTickerTeaser}}<a href="{{this.link.url}}" aria-label="Zum Ticker" tabindex="-1"{{#if (isUserConsentNeeded this.link.url)}} class="js-user-consent-needed"{{/if}}>{{/if}}
5
5
  {{> components/teaser/components/teaser_image _isMobile1to1=_isMobile1to1 _teaserSize=_teaserSize _addClassImg=_addClassImg _aspectRatio=_aspectRatio}}
6
6
  {{#if this.isTickerTeaser}}</a>{{/if}}
7
7
  {{/if}}