hr-design-system-handlebars 1.63.14 → 1.64.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 (144) hide show
  1. package/.github/workflows/chromatic.yml +1 -1
  2. package/CHANGELOG.md +24 -0
  3. package/build/handlebars/helpers/handlebar-helpers.js +72 -14
  4. package/dist/assets/brand/hessenschau/conf/locatags.merged.json +6 -0
  5. package/dist/assets/brand/hr/conf/locatags.merged.json +6 -0
  6. package/dist/assets/brand/hr-bigband/conf/locatags.merged.json +6 -0
  7. package/dist/assets/brand/hr-fernsehen/conf/locatags.merged.json +6 -0
  8. package/dist/assets/brand/hr-inforadio/conf/locatags.merged.json +6 -0
  9. package/dist/assets/brand/hr-rundfunkrat/conf/locatags.merged.json +6 -0
  10. package/dist/assets/brand/hr-sinfonieorchester/conf/locatags.merged.json +6 -0
  11. package/dist/assets/brand/hr-werbung/conf/locatags.merged.json +6 -0
  12. package/dist/assets/brand/hr1/conf/locatags.merged.json +6 -0
  13. package/dist/assets/brand/hr2/conf/locatags.merged.json +6 -0
  14. package/dist/assets/brand/hr3/conf/locatags.merged.json +6 -0
  15. package/dist/assets/brand/hr4/conf/locatags.merged.json +6 -0
  16. package/dist/assets/brand/you-fm/conf/locatags.merged.json +6 -0
  17. package/dist/assets/index.css +13 -3
  18. package/dist/assets/js/components/modal/defaultModal.subfeature.js +58 -0
  19. package/dist/assets/js/components/modal/modal.feature.js +11 -52
  20. package/dist/assets/js/components/modal/userConsentModal.subfeature.js +120 -0
  21. package/dist/views/components/banner/header/banner_image.hbs +1 -1
  22. package/dist/views/components/base/backlink.hbs +1 -1
  23. package/dist/views/components/base/link.hbs +1 -1
  24. package/dist/views/components/dataPolicySettings/data_policy_settings.hbs +4 -4
  25. package/dist/views/components/event/calendar/event_calendar.hbs +3 -0
  26. package/dist/views/components/event/event_ticket_button.hbs +10 -18
  27. package/dist/views/components/geoTag/geoTag_list.hbs +1 -1
  28. package/dist/views/components/mediaplayer/media_player.hbs +1 -1
  29. package/dist/views/components/modal/modal.hbs +1 -1
  30. package/dist/views/components/modal/user_consent.hbs +13 -0
  31. package/dist/views/components/navigation/breadcrumb/breadcrumb.hbs +1 -1
  32. package/dist/views/components/navigation/breadcrumb/breadcrumb_items.ssi.hbs +1 -1
  33. package/dist/views/components/page/components/author.hbs +1 -1
  34. package/dist/views/components/page/components/socialsharing.hbs +4 -4
  35. package/dist/views/components/podcast/components/podcast_subscribe_button.hbs +1 -1
  36. package/dist/views/components/podcast/podcast_player.hbs +1 -1
  37. package/dist/views/components/site_header/brand_navigation/brand_navigation_item.hbs +1 -1
  38. package/dist/views/components/site_header/navigation_flyout/navigation_flyout.hbs +1 -1
  39. package/dist/views/components/site_header/section_navigation/section_navigation_item.hbs +3 -3
  40. package/dist/views/components/site_header/service_logo.hbs +1 -1
  41. package/dist/views/components/site_header/service_navigation/service_navigation_item.hbs +3 -3
  42. package/dist/views/components/social_sharing/social_sharing_compact_icons.hbs +4 -4
  43. package/dist/views/components/socialmedia/socialmedia.hbs +4 -4
  44. package/dist/views/components/teaser/components/teaser_body.hbs +10 -1
  45. package/dist/views/components/teaser/components/teaser_lead.hbs +1 -1
  46. package/dist/views/components/teaser/group_teaser/group_teaser.hbs +1 -1
  47. package/dist/views/components/teaser/group_teaser/group_teaser_accented.hbs +1 -1
  48. package/dist/views/components/teaser/ticker/teaser_ticker_timeline.hbs +1 -1
  49. package/dist/views/components/topictag/topictag_list.hbs +1 -1
  50. package/dist/views_static/components/banner/header/banner_image.hbs +1 -1
  51. package/dist/views_static/components/base/backlink.hbs +1 -1
  52. package/dist/views_static/components/base/link.hbs +1 -1
  53. package/dist/views_static/components/dataPolicySettings/data_policy_settings.hbs +4 -4
  54. package/dist/views_static/components/event/calendar/event_calendar.hbs +3 -0
  55. package/dist/views_static/components/event/event_ticket_button.hbs +10 -18
  56. package/dist/views_static/components/geoTag/geoTag_list.hbs +1 -1
  57. package/dist/views_static/components/mediaplayer/media_player.hbs +1 -1
  58. package/dist/views_static/components/modal/modal.hbs +1 -1
  59. package/dist/views_static/components/modal/user_consent.hbs +13 -0
  60. package/dist/views_static/components/navigation/breadcrumb/breadcrumb.hbs +1 -1
  61. package/dist/views_static/components/navigation/breadcrumb/breadcrumb_items.ssi.hbs +1 -1
  62. package/dist/views_static/components/page/components/author.hbs +1 -1
  63. package/dist/views_static/components/page/components/socialsharing.hbs +4 -4
  64. package/dist/views_static/components/podcast/components/podcast_subscribe_button.hbs +1 -1
  65. package/dist/views_static/components/podcast/podcast_player.hbs +1 -1
  66. package/dist/views_static/components/site_header/brand_navigation/brand_navigation_item.hbs +1 -1
  67. package/dist/views_static/components/site_header/navigation_flyout/navigation_flyout.hbs +1 -1
  68. package/dist/views_static/components/site_header/section_navigation/section_navigation_item.hbs +3 -3
  69. package/dist/views_static/components/site_header/service_logo.hbs +1 -1
  70. package/dist/views_static/components/site_header/service_navigation/service_navigation_item.hbs +3 -3
  71. package/dist/views_static/components/social_sharing/social_sharing_compact_icons.hbs +4 -4
  72. package/dist/views_static/components/socialmedia/socialmedia.hbs +4 -4
  73. package/dist/views_static/components/teaser/components/teaser_body.hbs +10 -1
  74. package/dist/views_static/components/teaser/components/teaser_lead.hbs +1 -1
  75. package/dist/views_static/components/teaser/group_teaser/group_teaser.hbs +1 -1
  76. package/dist/views_static/components/teaser/group_teaser/group_teaser_accented.hbs +1 -1
  77. package/dist/views_static/components/teaser/ticker/teaser_ticker_timeline.hbs +1 -1
  78. package/dist/views_static/components/topictag/topictag_list.hbs +1 -1
  79. package/package.json +1 -1
  80. package/src/assets/brand/_default/conf/locatags.json +6 -0
  81. package/src/assets/brand/hessenschau/conf/locatags.merged.json +6 -0
  82. package/src/assets/brand/hr/conf/locatags.merged.json +6 -0
  83. package/src/assets/brand/hr-bigband/conf/locatags.merged.json +6 -0
  84. package/src/assets/brand/hr-fernsehen/conf/locatags.merged.json +6 -0
  85. package/src/assets/brand/hr-inforadio/conf/locatags.merged.json +6 -0
  86. package/src/assets/brand/hr-rundfunkrat/conf/locatags.merged.json +6 -0
  87. package/src/assets/brand/hr-sinfonieorchester/conf/locatags.merged.json +6 -0
  88. package/src/assets/brand/hr-werbung/conf/locatags.merged.json +6 -0
  89. package/src/assets/brand/hr1/conf/locatags.merged.json +6 -0
  90. package/src/assets/brand/hr2/conf/locatags.merged.json +6 -0
  91. package/src/assets/brand/hr3/conf/locatags.merged.json +6 -0
  92. package/src/assets/brand/hr4/conf/locatags.merged.json +6 -0
  93. package/src/assets/brand/you-fm/conf/locatags.merged.json +6 -0
  94. package/src/assets/css/custom-components.css +2 -1
  95. package/src/assets/fixtures/teaser/teaser_standard_50_serif_link_two_click.json +22 -0
  96. package/src/assets/fixtures/teaser/teasers.inc.json +2 -1
  97. package/src/assets/tailwind.css +3 -0
  98. package/src/stories/views/components/banner/header/banner_image.hbs +1 -1
  99. package/src/stories/views/components/base/backlink.hbs +1 -1
  100. package/src/stories/views/components/base/link.hbs +1 -1
  101. package/src/stories/views/components/dataPolicySettings/data_policy_settings.hbs +4 -4
  102. package/src/stories/views/components/event/calendar/event_calendar.hbs +3 -0
  103. package/src/stories/views/components/event/event_ticket_button.hbs +10 -18
  104. package/src/stories/views/components/geoTag/geoTag_list.hbs +1 -1
  105. package/src/stories/views/components/mediaplayer/media_player.hbs +1 -1
  106. package/src/stories/views/components/modal/defaultModal.subfeature.js +58 -0
  107. package/src/stories/views/components/modal/modal.feature.js +11 -52
  108. package/src/stories/views/components/modal/modal.hbs +1 -1
  109. package/src/stories/views/components/modal/modal.mdx +104 -0
  110. package/src/stories/views/components/modal/modal.stories.js +79 -0
  111. package/src/stories/views/components/modal/userConsentModal.subfeature.js +120 -0
  112. package/src/stories/views/components/modal/user_consent.hbs +13 -0
  113. package/src/stories/views/components/navigation/breadcrumb/breadcrumb.hbs +1 -1
  114. package/src/stories/views/components/navigation/breadcrumb/breadcrumb_items.ssi.hbs +1 -1
  115. package/src/stories/views/components/page/components/author.hbs +1 -1
  116. package/src/stories/views/components/page/components/socialsharing.hbs +4 -4
  117. package/src/stories/views/components/pagination/fixtures/page_pagination.json +1 -1
  118. package/src/stories/views/components/podcast/components/podcast_subscribe_button.hbs +1 -1
  119. package/src/stories/views/components/podcast/podcast_player.hbs +1 -1
  120. package/src/stories/views/components/site_header/brand_navigation/brand_navigation_item.hbs +1 -1
  121. package/src/stories/views/components/site_header/navigation_flyout/navigation_flyout.hbs +1 -1
  122. package/src/stories/views/components/site_header/section_navigation/section_navigation_item.hbs +3 -3
  123. package/src/stories/views/components/site_header/service_logo.hbs +1 -1
  124. package/src/stories/views/components/site_header/service_navigation/service_navigation_item.hbs +3 -3
  125. package/src/stories/views/components/social_sharing/social_sharing_compact_icons.hbs +4 -4
  126. package/src/stories/views/components/socialmedia/socialmedia.hbs +4 -4
  127. package/src/stories/views/components/teaser/components/teaser_body.hbs +10 -1
  128. package/src/stories/views/components/teaser/components/teaser_lead.hbs +1 -1
  129. package/src/stories/views/components/teaser/fixtures/teaser_alternative_100_serif_link.json +1 -1
  130. package/src/stories/views/components/teaser/fixtures/teaser_alternative_50_serif_link.json +1 -1
  131. package/src/stories/views/components/teaser/fixtures/teaser_alternative_hero_serif_link.json +1 -1
  132. package/src/stories/views/components/teaser/fixtures/teaser_standard_100_serif_link.json +1 -1
  133. package/src/stories/views/components/teaser/fixtures/teaser_standard_25_serif_link.json +1 -1
  134. package/src/stories/views/components/teaser/fixtures/teaser_standard_33_serif_link.json +1 -1
  135. package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif_link.json +1 -1
  136. package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif_link_two_click.json +1 -0
  137. package/src/stories/views/components/teaser/fixtures/teaser_standard_hero_serif_link.json +1 -1
  138. package/src/stories/views/components/teaser/group_teaser/group_teaser.hbs +1 -1
  139. package/src/stories/views/components/teaser/group_teaser/group_teaser_accented.hbs +1 -1
  140. package/src/stories/views/components/teaser/teaser_standard.mdx +4 -0
  141. package/src/stories/views/components/teaser/teaser_standard.stories.js +7 -0
  142. package/src/stories/views/components/teaser/ticker/teaser_ticker_timeline.hbs +1 -1
  143. package/src/stories/views/components/topictag/topictag_list.hbs +1 -1
  144. package/tailwind.config.js +2 -0
@@ -21,7 +21,7 @@ jobs:
21
21
  run: yarn
22
22
  - name: create partials
23
23
  run: yarn partialsToJs
24
- - uses: chromaui/action@v1
24
+ - uses: chromaui/action@latest
25
25
  with:
26
26
  # 👇 Chromatic projectToken, refer to the manage page to obtain it.
27
27
  projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
package/CHANGELOG.md CHANGED
@@ -1,3 +1,27 @@
1
+ # v1.64.0 (Wed Apr 17 2024)
2
+
3
+ #### 🚀 Enhancement
4
+
5
+ - Feature/dpe 2696 [#910](https://github.com/mumprod/hr-design-system-handlebars/pull/910) ([@szuelch](https://github.com/szuelch))
6
+
7
+ #### Authors: 1
8
+
9
+ - [@szuelch](https://github.com/szuelch)
10
+
11
+ ---
12
+
13
+ # v1.63.15 (Tue Apr 16 2024)
14
+
15
+ #### 🐛 Bug Fix
16
+
17
+ - DPE-2669 Dark mode for Content-Navi [#908](https://github.com/mumprod/hr-design-system-handlebars/pull/908) ([@Sunny1112358](https://github.com/Sunny1112358))
18
+
19
+ #### Authors: 1
20
+
21
+ - [@Sunny1112358](https://github.com/Sunny1112358)
22
+
23
+ ---
24
+
1
25
  # v1.63.14 (Fri Apr 12 2024)
2
26
 
3
27
  #### 🐛 Bug Fix
@@ -20,6 +20,47 @@ const extractBrandFromUrl = function () {
20
20
  return brand
21
21
  }
22
22
 
23
+ const ParamPlaceHolder = function (placeholder, index) {
24
+ this.placeholder = placeholder
25
+ this.index = index
26
+
27
+ const replace = function (text, params) {
28
+ let replacedText
29
+ if (undefined !== text && undefined !== params && this.index >= 0 && this.index < params.length && params[this.index] !== null) {
30
+ replacedText = text.replace(this.placeholder, params[this.index])
31
+ } else {
32
+ replacedText = text
33
+ }
34
+ return replacedText
35
+ }
36
+ return {
37
+ index: this.index,
38
+ placeholder: this.placeholder,
39
+ replace: replace
40
+ }
41
+ }
42
+
43
+ const UserConsentPlaceHolder = function (placeholder, url) {
44
+ this.placeholder = placeholder
45
+ this.url = url
46
+
47
+ const replace = function (text, params) {
48
+ let replacedText
49
+ if (undefined !== text && undefined !== this.url) {
50
+ replacedText = text.replace(this.placeholder, '')
51
+ }
52
+ else {
53
+ replacedText = text
54
+ }
55
+ return replacedText
56
+ }
57
+ return {
58
+ placeholder: this.placeholder,
59
+ url: this.url,
60
+ replace: replace
61
+ }
62
+ }
63
+
23
64
  var helpers = {
24
65
  'helperOptions': null,
25
66
 
@@ -174,9 +215,9 @@ var helpers = {
174
215
  file = file.replace(
175
216
  /{{resourceUrl\s\"(assets)(.*)\"\s?}}/g,
176
217
  helpers.helperOptions.resourceUrl.relativePath +
177
- '$1_' +
178
- helpers.helperOptions.buildVersion +
179
- '$2'
218
+ '$1_' +
219
+ helpers.helperOptions.buildVersion +
220
+ '$2'
180
221
  )
181
222
  }
182
223
 
@@ -249,6 +290,10 @@ var helpers = {
249
290
  }
250
291
  },
251
292
 
293
+ 'isUserConsentNeeded': function (url, options) {
294
+ return false
295
+ },
296
+
252
297
  'isStorybook': function () {
253
298
  return true
254
299
  },
@@ -382,13 +427,26 @@ var helpers = {
382
427
  // Check loca-tag
383
428
  if (typeof helpers.helperOptions.locaTags[brand][loca] === 'string') {
384
429
  loca = helpers.helperOptions.locaTags[brand][loca]
385
-
386
- // Exchange variables in loca-text
387
- // - the last argument is the "context" object which can be
388
- // ignored
389
- for (var i = 1; i < arguments.length - 1; ++i) {
390
- var locaRegExp = new RegExp('\\{' + (i - 1) + '\\}', 'gi')
391
- loca = loca.replace(locaRegExp, arguments[i])
430
+ const args = Array.prototype.slice.call(arguments);
431
+ // Extract params from arguments object. No params are present when length of arguments array is <= 2
432
+ let params = args.length > 2 ? args.slice(1, args.length - 1) : []
433
+ const regex = /(?<property>{<%(?<propertyKey>.*?)%>})|(?<userConsent>{nuc\s(?<userConsentUrl>.*?)\snuc})|(?<param>{(?<paramKey>.*?)})/g
434
+ const matches = loca.matchAll(regex)
435
+ const placeHolders = []
436
+ for (const match of matches) {
437
+ if (undefined !== match.groups.userConsent) {
438
+ let placeHolder = match.groups.userConsent
439
+ let url = match.groups.userConsentKey
440
+ placeHolders.push(new UserConsentPlaceHolder(placeHolder, url))
441
+ }
442
+ if (undefined !== match.groups.param) {
443
+ let placeHolder = match.groups.param
444
+ let index = match.groups.paramKey
445
+ placeHolders.push(new ParamPlaceHolder(placeHolder, index))
446
+ }
447
+ }
448
+ for (const placeHolder of placeHolders) {
449
+ loca = placeHolder.replace(loca, params)
392
450
  }
393
451
  } else {
394
452
  loca = "Loca-tag '" + loca + "' not found"
@@ -423,7 +481,7 @@ var helpers = {
423
481
  configProperty = arguments[0]
424
482
  switch (configProperty) {
425
483
  case 'footer.onBackground':
426
- configProperty = brand == 'hessenschau' || brand == 'hr-rundfunkrat' ? true : false;
484
+ configProperty = brand == 'hessenschau' || brand == 'hr-rundfunkrat' ? true : false;
427
485
  break
428
486
  case 'dialogPolyfill.baseUrl':
429
487
  configProperty = 'vendor/dialog-polyfill'
@@ -440,10 +498,10 @@ var helpers = {
440
498
  ? undefined
441
499
  */
442
500
  : brand == 'hr-inforadio'
443
- ? 'brandlogo--footer'
444
- : undefined
501
+ ? 'brandlogo--footer'
502
+ : undefined
445
503
  break
446
- case 'site.name':
504
+ case 'site.name':
447
505
  configProperty = brand
448
506
  break
449
507
  }
@@ -112,6 +112,10 @@
112
112
  "livestream_plays": "Jetzt live",
113
113
  "livestream_will_play": "Startet am {0}",
114
114
  "livestream_will_play_with_time": "Startet am {0} um {1} Uhr",
115
+ "modal_user_consent_headline": "Sie verlassen unser Angebot",
116
+ "modal_user_consent_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
117
+ "modal_user_consent_label_cancel": "Abbrechen",
118
+ "modal_user_consent_label_ok": "Zur externen Internetseite",
115
119
  "poster_copyright": "Bild &copy; {0}",
116
120
  "search_input_aria_submit": "Suche starten",
117
121
  "search_input_placeholder": "Ort oder Thema suchen",
@@ -132,6 +136,8 @@
132
136
  "story_program_supplier": "Thema in",
133
137
  "ticket_modal_headline": "Weiterleitung zu einem Ticketservice",
134
138
  "ticket_modal_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
139
+ "ticket_modal_label_ok": "Zum Ticketshop",
140
+ "ticket_modal_label_cancel": "Abbrechen",
135
141
  "ticker_more": "Zum Ticker",
136
142
  "topictag_headline": "Alle Beiträge zum Thema {0}",
137
143
  "topictag_metadescription_prefix": "Alle Beiträge zum Thema ",
@@ -112,6 +112,10 @@
112
112
  "livestream_plays": "Jetzt live",
113
113
  "livestream_will_play": "Startet am {0}",
114
114
  "livestream_will_play_with_time": "Startet am {0} um {1} Uhr",
115
+ "modal_user_consent_headline": "Sie verlassen unser Angebot",
116
+ "modal_user_consent_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
117
+ "modal_user_consent_label_cancel": "Abbrechen",
118
+ "modal_user_consent_label_ok": "Zur externen Internetseite",
115
119
  "poster_copyright": "Bild &copy; {0}",
116
120
  "search_input_aria_submit": "Suche starten",
117
121
  "search_input_placeholder": "Ort oder Thema suchen",
@@ -132,6 +136,8 @@
132
136
  "story_program_supplier": "Thema in",
133
137
  "ticket_modal_headline": "Weiterleitung zu einem Ticketservice",
134
138
  "ticket_modal_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
139
+ "ticket_modal_label_ok": "Zum Ticketshop",
140
+ "ticket_modal_label_cancel": "Abbrechen",
135
141
  "ticker_more": "Zum Ticker",
136
142
  "topictag_headline": "Alle Beiträge zum Thema {0}",
137
143
  "topictag_metadescription_prefix": "Alle Beiträge zum Thema ",
@@ -112,6 +112,10 @@
112
112
  "livestream_plays": "Jetzt live",
113
113
  "livestream_will_play": "Startet am {0}",
114
114
  "livestream_will_play_with_time": "Startet am {0} um {1} Uhr",
115
+ "modal_user_consent_headline": "Sie verlassen unser Angebot",
116
+ "modal_user_consent_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
117
+ "modal_user_consent_label_cancel": "Abbrechen",
118
+ "modal_user_consent_label_ok": "Zur externen Internetseite",
115
119
  "poster_copyright": "Bild &copy; {0}",
116
120
  "search_input_aria_submit": "Suche starten",
117
121
  "search_input_placeholder": "Ort oder Thema suchen",
@@ -132,6 +136,8 @@
132
136
  "story_program_supplier": "Thema in",
133
137
  "ticket_modal_headline": "Weiterleitung zu einem Ticketservice",
134
138
  "ticket_modal_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
139
+ "ticket_modal_label_ok": "Zum Ticketshop",
140
+ "ticket_modal_label_cancel": "Abbrechen",
135
141
  "ticker_more": "Zum Ticker",
136
142
  "topictag_headline": "Alle Beiträge zum Thema {0}",
137
143
  "topictag_metadescription_prefix": "Alle Beiträge zum Thema ",
@@ -112,6 +112,10 @@
112
112
  "livestream_plays": "Jetzt live",
113
113
  "livestream_will_play": "Startet am {0}",
114
114
  "livestream_will_play_with_time": "Startet am {0} um {1} Uhr",
115
+ "modal_user_consent_headline": "Sie verlassen unser Angebot",
116
+ "modal_user_consent_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
117
+ "modal_user_consent_label_cancel": "Abbrechen",
118
+ "modal_user_consent_label_ok": "Zur externen Internetseite",
115
119
  "poster_copyright": "Bild &copy; {0}",
116
120
  "search_input_aria_submit": "Suche starten",
117
121
  "search_input_placeholder": "Ort oder Thema suchen",
@@ -132,6 +136,8 @@
132
136
  "story_program_supplier": "Thema in",
133
137
  "ticket_modal_headline": "Weiterleitung zu einem Ticketservice",
134
138
  "ticket_modal_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
139
+ "ticket_modal_label_ok": "Zum Ticketshop",
140
+ "ticket_modal_label_cancel": "Abbrechen",
135
141
  "ticker_more": "Zum Ticker",
136
142
  "topictag_headline": "Alle Beiträge zum Thema {0}",
137
143
  "topictag_metadescription_prefix": "Alle Beiträge zum Thema ",
@@ -112,6 +112,10 @@
112
112
  "livestream_plays": "Jetzt live",
113
113
  "livestream_will_play": "Startet am {0}",
114
114
  "livestream_will_play_with_time": "Startet am {0} um {1} Uhr",
115
+ "modal_user_consent_headline": "Sie verlassen unser Angebot",
116
+ "modal_user_consent_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
117
+ "modal_user_consent_label_cancel": "Abbrechen",
118
+ "modal_user_consent_label_ok": "Zur externen Internetseite",
115
119
  "poster_copyright": "Bild &copy; {0}",
116
120
  "search_input_aria_submit": "Suche starten",
117
121
  "search_input_placeholder": "Ort oder Thema suchen",
@@ -132,6 +136,8 @@
132
136
  "story_program_supplier": "Thema in",
133
137
  "ticket_modal_headline": "Weiterleitung zu einem Ticketservice",
134
138
  "ticket_modal_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
139
+ "ticket_modal_label_ok": "Zum Ticketshop",
140
+ "ticket_modal_label_cancel": "Abbrechen",
135
141
  "ticker_more": "Zum Ticker",
136
142
  "topictag_headline": "Alle Beiträge zum Thema {0}",
137
143
  "topictag_metadescription_prefix": "Alle Beiträge zum Thema ",
@@ -112,6 +112,10 @@
112
112
  "livestream_plays": "Jetzt live",
113
113
  "livestream_will_play": "Startet am {0}",
114
114
  "livestream_will_play_with_time": "Startet am {0} um {1} Uhr",
115
+ "modal_user_consent_headline": "Sie verlassen unser Angebot",
116
+ "modal_user_consent_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
117
+ "modal_user_consent_label_cancel": "Abbrechen",
118
+ "modal_user_consent_label_ok": "Zur externen Internetseite",
115
119
  "poster_copyright": "Bild &copy; {0}",
116
120
  "search_input_aria_submit": "Suche starten",
117
121
  "search_input_placeholder": "Ort oder Thema suchen",
@@ -132,6 +136,8 @@
132
136
  "story_program_supplier": "Thema in",
133
137
  "ticket_modal_headline": "Weiterleitung zu einem Ticketservice",
134
138
  "ticket_modal_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
139
+ "ticket_modal_label_ok": "Zum Ticketshop",
140
+ "ticket_modal_label_cancel": "Abbrechen",
135
141
  "ticker_more": "Zum Ticker",
136
142
  "topictag_headline": "Alle Beiträge zum Thema {0}",
137
143
  "topictag_metadescription_prefix": "Alle Beiträge zum Thema ",
@@ -112,6 +112,10 @@
112
112
  "livestream_plays": "Jetzt live",
113
113
  "livestream_will_play": "Startet am {0}",
114
114
  "livestream_will_play_with_time": "Startet am {0} um {1} Uhr",
115
+ "modal_user_consent_headline": "Sie verlassen unser Angebot",
116
+ "modal_user_consent_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
117
+ "modal_user_consent_label_cancel": "Abbrechen",
118
+ "modal_user_consent_label_ok": "Zur externen Internetseite",
115
119
  "poster_copyright": "Bild &copy; {0}",
116
120
  "search_input_aria_submit": "Suche starten",
117
121
  "search_input_placeholder": "Ort oder Thema suchen",
@@ -132,6 +136,8 @@
132
136
  "story_program_supplier": "Thema in",
133
137
  "ticket_modal_headline": "Weiterleitung zu einem Ticketservice",
134
138
  "ticket_modal_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
139
+ "ticket_modal_label_ok": "Zum Ticketshop",
140
+ "ticket_modal_label_cancel": "Abbrechen",
135
141
  "ticker_more": "Zum Ticker",
136
142
  "topictag_headline": "Alle Beiträge zum Thema {0}",
137
143
  "topictag_metadescription_prefix": "Alle Beiträge zum Thema ",
@@ -112,6 +112,10 @@
112
112
  "livestream_plays": "Jetzt live",
113
113
  "livestream_will_play": "Startet am {0}",
114
114
  "livestream_will_play_with_time": "Startet am {0} um {1} Uhr",
115
+ "modal_user_consent_headline": "Sie verlassen unser Angebot",
116
+ "modal_user_consent_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
117
+ "modal_user_consent_label_cancel": "Abbrechen",
118
+ "modal_user_consent_label_ok": "Zur externen Internetseite",
115
119
  "poster_copyright": "Bild &copy; {0}",
116
120
  "search_input_aria_submit": "Suche starten",
117
121
  "search_input_placeholder": "Ort oder Thema suchen",
@@ -132,6 +136,8 @@
132
136
  "story_program_supplier": "Thema in",
133
137
  "ticket_modal_headline": "Weiterleitung zu einem Ticketservice",
134
138
  "ticket_modal_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
139
+ "ticket_modal_label_ok": "Zum Ticketshop",
140
+ "ticket_modal_label_cancel": "Abbrechen",
135
141
  "ticker_more": "Zum Ticker",
136
142
  "topictag_headline": "Alle Beiträge zum Thema {0}",
137
143
  "topictag_metadescription_prefix": "Alle Beiträge zum Thema ",
@@ -112,6 +112,10 @@
112
112
  "livestream_plays": "Jetzt live",
113
113
  "livestream_will_play": "Startet am {0}",
114
114
  "livestream_will_play_with_time": "Startet am {0} um {1} Uhr",
115
+ "modal_user_consent_headline": "Sie verlassen unser Angebot",
116
+ "modal_user_consent_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
117
+ "modal_user_consent_label_cancel": "Abbrechen",
118
+ "modal_user_consent_label_ok": "Zur externen Internetseite",
115
119
  "poster_copyright": "Bild &copy; {0}",
116
120
  "search_input_aria_submit": "Suche starten",
117
121
  "search_input_placeholder": "Ort oder Thema suchen",
@@ -132,6 +136,8 @@
132
136
  "story_program_supplier": "Thema in",
133
137
  "ticket_modal_headline": "Weiterleitung zu einem Ticketservice",
134
138
  "ticket_modal_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
139
+ "ticket_modal_label_ok": "Zum Ticketshop",
140
+ "ticket_modal_label_cancel": "Abbrechen",
135
141
  "ticker_more": "Zum Ticker",
136
142
  "topictag_headline": "Alle Beiträge zum Thema {0}",
137
143
  "topictag_metadescription_prefix": "Alle Beiträge zum Thema ",
@@ -112,6 +112,10 @@
112
112
  "livestream_plays": "Jetzt live",
113
113
  "livestream_will_play": "Startet am {0}",
114
114
  "livestream_will_play_with_time": "Startet am {0} um {1} Uhr",
115
+ "modal_user_consent_headline": "Sie verlassen unser Angebot",
116
+ "modal_user_consent_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
117
+ "modal_user_consent_label_cancel": "Abbrechen",
118
+ "modal_user_consent_label_ok": "Zur externen Internetseite",
115
119
  "poster_copyright": "Bild &copy; {0}",
116
120
  "search_input_aria_submit": "Suche starten",
117
121
  "search_input_placeholder": "Ort oder Thema suchen",
@@ -132,6 +136,8 @@
132
136
  "story_program_supplier": "Thema in",
133
137
  "ticket_modal_headline": "Weiterleitung zu einem Ticketservice",
134
138
  "ticket_modal_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
139
+ "ticket_modal_label_ok": "Zum Ticketshop",
140
+ "ticket_modal_label_cancel": "Abbrechen",
135
141
  "ticker_more": "Zum Ticker",
136
142
  "topictag_headline": "Alle Beiträge zum Thema {0}",
137
143
  "topictag_metadescription_prefix": "Alle Beiträge zum Thema ",
@@ -112,6 +112,10 @@
112
112
  "livestream_plays": "Jetzt live",
113
113
  "livestream_will_play": "Startet am {0}",
114
114
  "livestream_will_play_with_time": "Startet am {0} um {1} Uhr",
115
+ "modal_user_consent_headline": "Sie verlassen unser Angebot",
116
+ "modal_user_consent_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
117
+ "modal_user_consent_label_cancel": "Abbrechen",
118
+ "modal_user_consent_label_ok": "Zur externen Internetseite",
115
119
  "poster_copyright": "Bild &copy; {0}",
116
120
  "search_input_aria_submit": "Suche starten",
117
121
  "search_input_placeholder": "Ort oder Thema suchen",
@@ -132,6 +136,8 @@
132
136
  "story_program_supplier": "Thema in",
133
137
  "ticket_modal_headline": "Weiterleitung zu einem Ticketservice",
134
138
  "ticket_modal_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
139
+ "ticket_modal_label_ok": "Zum Ticketshop",
140
+ "ticket_modal_label_cancel": "Abbrechen",
135
141
  "ticker_more": "Zum Ticker",
136
142
  "topictag_headline": "Alle Beiträge zum Thema {0}",
137
143
  "topictag_metadescription_prefix": "Alle Beiträge zum Thema ",
@@ -112,6 +112,10 @@
112
112
  "livestream_plays": "Jetzt live",
113
113
  "livestream_will_play": "Startet am {0}",
114
114
  "livestream_will_play_with_time": "Startet am {0} um {1} Uhr",
115
+ "modal_user_consent_headline": "Sie verlassen unser Angebot",
116
+ "modal_user_consent_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
117
+ "modal_user_consent_label_cancel": "Abbrechen",
118
+ "modal_user_consent_label_ok": "Zur externen Internetseite",
115
119
  "poster_copyright": "Bild &copy; {0}",
116
120
  "search_input_aria_submit": "Suche starten",
117
121
  "search_input_placeholder": "Ort oder Thema suchen",
@@ -132,6 +136,8 @@
132
136
  "story_program_supplier": "Thema in",
133
137
  "ticket_modal_headline": "Weiterleitung zu einem Ticketservice",
134
138
  "ticket_modal_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
139
+ "ticket_modal_label_ok": "Zum Ticketshop",
140
+ "ticket_modal_label_cancel": "Abbrechen",
135
141
  "ticker_more": "Zum Ticker",
136
142
  "topictag_headline": "Alle Beiträge zum Thema {0}",
137
143
  "topictag_metadescription_prefix": "Alle Beiträge zum Thema ",
@@ -112,6 +112,10 @@
112
112
  "livestream_plays": "Jetzt live",
113
113
  "livestream_will_play": "Startet am {0}",
114
114
  "livestream_will_play_with_time": "Startet am {0} um {1} Uhr",
115
+ "modal_user_consent_headline": "Sie verlassen unser Angebot",
116
+ "modal_user_consent_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
117
+ "modal_user_consent_label_cancel": "Abbrechen",
118
+ "modal_user_consent_label_ok": "Zur externen Internetseite",
115
119
  "poster_copyright": "Bild &copy; {0}",
116
120
  "search_input_aria_submit": "Suche starten",
117
121
  "search_input_placeholder": "Ort oder Thema suchen",
@@ -132,6 +136,8 @@
132
136
  "story_program_supplier": "Thema in",
133
137
  "ticket_modal_headline": "Weiterleitung zu einem Ticketservice",
134
138
  "ticket_modal_text": "Der Link öffnet eine Internetseite außerhalb unseres Angebots. Wir sind für den Inhalt externer Internetseiten nicht verantwortlich.",
139
+ "ticket_modal_label_ok": "Zum Ticketshop",
140
+ "ticket_modal_label_cancel": "Abbrechen",
135
141
  "ticker_more": "Zum Ticker",
136
142
  "topictag_headline": "Alle Beiträge zum Thema {0}",
137
143
  "topictag_metadescription_prefix": "Alle Beiträge zum Thema ",
@@ -718,6 +718,13 @@ video {
718
718
  font-family: DIN, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif;
719
719
  list-style-type: none;
720
720
  border-color: var(--color-button--dark);
721
+ }
722
+ [class~='tw-dark'] .content-nav-item {
723
+ border-color: #759ace;
724
+ border-color: var(--color-navigation-border-color-dark);
725
+ --tw-border-opacity: 0.75;
726
+ }
727
+ .content-nav-item {
721
728
  fill: #005293;
722
729
  fill: var(--color-content-nav);
723
730
  color: #005293;
@@ -3341,7 +3348,7 @@ article.indexTextDS .indexTextHighlighted .link {
3341
3348
  border-bottom-color: var(--color-secondary-ds);
3342
3349
  }
3343
3350
  .counter-reset {
3344
- counter-reset: cnt1712934666834;
3351
+ counter-reset: cnt1713357692833;
3345
3352
  }
3346
3353
  .hyphens-auto {
3347
3354
  -webkit-hyphens: auto;
@@ -3720,7 +3727,7 @@ article.indexTextDS .indexTextHighlighted .link {
3720
3727
  --tw-ring-color: rgba(255, 255, 255, 0.5);
3721
3728
  }
3722
3729
  .-ordered {
3723
- counter-increment: cnt1712934666834 1;
3730
+ counter-increment: cnt1713357692833 1;
3724
3731
  }
3725
3732
  .-ordered::before {
3726
3733
  position: absolute;
@@ -3736,7 +3743,7 @@ article.indexTextDS .indexTextHighlighted .link {
3736
3743
  letter-spacing: .0125em;
3737
3744
  --tw-text-opacity: 1;
3738
3745
  color: rgba(0, 0, 0, var(--tw-text-opacity));
3739
- content: counter(cnt1712934666834);
3746
+ content: counter(cnt1713357692833);
3740
3747
  }
3741
3748
  /*! ****************************/
3742
3749
  /*! DataPolicy stuff */
@@ -3879,6 +3886,9 @@ article.indexTextDS .indexTextHighlighted .link {
3879
3886
  --color-search-footer-text: #000000;
3880
3887
  --search-icon-color: #000000;
3881
3888
 
3889
+ /* Content navi button border color for dark mode */
3890
+ --color-navigation-border-color-dark: #759ace;
3891
+
3882
3892
  /* Logo-Container Padding */
3883
3893
  --logo-padding-top: 6px;
3884
3894
  --logo-padding-bottom: 6px;
@@ -0,0 +1,58 @@
1
+ import { hr$, listen, unlisten, addLink } from 'hrQuery'
2
+ import dialogPolyfill from 'dialog-polyfill'
3
+
4
+ const DefaultModal = function (options, rootElement) {
5
+ const dialogPolyfillBaseUrl = options.dialogPolyfillBaseUrl || 'vendor/dialog-polyfill',
6
+ modalTrigger = options.trigger || null,
7
+ triggerRoot = document.body,
8
+ modal = hr$('.js-modal', rootElement)[0],
9
+ closeButtonTrigger = ".js-modal-close"
10
+
11
+ const configureEventListeners = () => {
12
+ listen('click', handleClick, triggerRoot)
13
+ }
14
+
15
+ const handleClick = (event) => {
16
+ if (null !== modalTrigger) {
17
+ let triggerNode = event.target.closest(modalTrigger)
18
+ let nodeToCloseModal = event.target.closest(closeButtonTrigger)
19
+ if (null !== triggerNode) {
20
+ event.preventDefault()
21
+ show()
22
+ } else if (null !== nodeToCloseModal) {
23
+ close()
24
+ }
25
+ }
26
+ }
27
+
28
+ const configurePolyfillIfNeeded = () => {
29
+ if (undefined == modal.showModal) {
30
+ addLink('dialog-polyfill-css', `${dialogPolyfillBaseUrl}/dialog-polyfill.css`, {
31
+ type: 'text/css',
32
+ rel: 'stylesheet',
33
+ })
34
+ }
35
+ dialogPolyfill.registerDialog(modal)
36
+ }
37
+
38
+ const show = () => {
39
+ modal.showModal()
40
+ listen('click', closeFromOutside, modal)
41
+ }
42
+
43
+ const closeFromOutside = (event) => {
44
+ if (event.target === modal) {
45
+ unlisten('click', closeFromOutside, modal)
46
+ close()
47
+ }
48
+ }
49
+
50
+ const close = () => {
51
+ modal.close()
52
+ }
53
+
54
+ configurePolyfillIfNeeded()
55
+ configureEventListeners()
56
+ }
57
+
58
+ export default DefaultModal
@@ -1,60 +1,19 @@
1
- import { hr$, listen, unlisten, addLink } from 'hrQuery'
2
- import { uxAction } from 'base/tracking/pianoHelper.subfeature'
3
- import dialogPolyfill from 'dialog-polyfill'
1
+ import DefaultModal from 'components/modal/defaultModal.subfeature'
2
+ import UserConsentModal from 'components/modal/userConsentModal.subfeature'
4
3
 
5
4
  const Modal = (context) => {
6
5
  const { options } = context,
7
6
  { element: rootElement } = context,
8
- dialogPolyfillBaseUrl = options.dialogPolyfillBaseUrl || 'vendor/dialog-polyfill',
9
- modalTriggerId = options.modalTriggerId ? '#' + options.modalTriggerId : '',
10
- modalTrigger = hr$(modalTriggerId)[0],
11
- modalCloseTriggers = hr$('.js-modal-close', rootElement),
12
- modal = hr$('.js-modal', rootElement)[0],
13
- ticketShopButton = hr$('.js-ticket-ok-button', rootElement)[0],
14
- trackingInformations = options.trackingInformations
15
-
16
- const configureEventListeners = () => {
17
- listen('click', clickTracking, ticketShopButton)
18
- listen('click', show, modalTrigger)
19
-
20
- modalCloseTriggers.forEach((modalCloseTrigger) => {
21
- listen('click', close, modalCloseTrigger)
22
- })
23
- }
24
-
25
- const configurePolyfillIfNeeded = () => {
26
- if (undefined == modal.showModal) {
27
- addLink('dialog-polyfill-css', `${dialogPolyfillBaseUrl}/dialog-polyfill.css`, {
28
- type: 'text/css',
29
- rel: 'stylesheet',
30
- })
31
- }
32
- dialogPolyfill.registerDialog(modal)
7
+ type = options.type || "default"
8
+
9
+ switch (type) {
10
+ case "userConsent":
11
+ new UserConsentModal(options, rootElement)
12
+ break;
13
+ default:
14
+ new DefaultModal(options, rootElement)
15
+ break;
33
16
  }
34
-
35
- const clickTracking = () => {
36
- console.log('tracking')
37
- uxAction(trackingInformations)
38
- }
39
-
40
- const show = () => {
41
- modal.showModal()
42
- listen('click', closeFromOutside, modal)
43
- }
44
-
45
- const closeFromOutside = (event) => {
46
- if (event.target === modal) {
47
- unlisten('click', closeFromOutside, modal)
48
- close()
49
- }
50
- }
51
-
52
- const close = () => {
53
- modal.close()
54
- }
55
-
56
- configurePolyfillIfNeeded()
57
- configureEventListeners()
58
17
  }
59
18
 
60
19
  export default Modal