hr-design-system-handlebars 1.63.15 → 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 (140) hide show
  1. package/CHANGELOG.md +12 -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/modal/defaultModal.subfeature.js +58 -0
  18. package/dist/assets/js/components/modal/modal.feature.js +11 -52
  19. package/dist/assets/js/components/modal/userConsentModal.subfeature.js +120 -0
  20. package/dist/views/components/banner/header/banner_image.hbs +1 -1
  21. package/dist/views/components/base/backlink.hbs +1 -1
  22. package/dist/views/components/base/link.hbs +1 -1
  23. package/dist/views/components/dataPolicySettings/data_policy_settings.hbs +4 -4
  24. package/dist/views/components/event/calendar/event_calendar.hbs +3 -0
  25. package/dist/views/components/event/event_ticket_button.hbs +10 -18
  26. package/dist/views/components/geoTag/geoTag_list.hbs +1 -1
  27. package/dist/views/components/mediaplayer/media_player.hbs +1 -1
  28. package/dist/views/components/modal/modal.hbs +1 -1
  29. package/dist/views/components/modal/user_consent.hbs +13 -0
  30. package/dist/views/components/navigation/breadcrumb/breadcrumb.hbs +1 -1
  31. package/dist/views/components/navigation/breadcrumb/breadcrumb_items.ssi.hbs +1 -1
  32. package/dist/views/components/page/components/author.hbs +1 -1
  33. package/dist/views/components/page/components/socialsharing.hbs +4 -4
  34. package/dist/views/components/podcast/components/podcast_subscribe_button.hbs +1 -1
  35. package/dist/views/components/podcast/podcast_player.hbs +1 -1
  36. package/dist/views/components/site_header/brand_navigation/brand_navigation_item.hbs +1 -1
  37. package/dist/views/components/site_header/navigation_flyout/navigation_flyout.hbs +1 -1
  38. package/dist/views/components/site_header/section_navigation/section_navigation_item.hbs +3 -3
  39. package/dist/views/components/site_header/service_logo.hbs +1 -1
  40. package/dist/views/components/site_header/service_navigation/service_navigation_item.hbs +2 -2
  41. package/dist/views/components/social_sharing/social_sharing_compact_icons.hbs +4 -4
  42. package/dist/views/components/socialmedia/socialmedia.hbs +4 -4
  43. package/dist/views/components/teaser/components/teaser_body.hbs +10 -1
  44. package/dist/views/components/teaser/components/teaser_lead.hbs +1 -1
  45. package/dist/views/components/teaser/group_teaser/group_teaser.hbs +1 -1
  46. package/dist/views/components/teaser/group_teaser/group_teaser_accented.hbs +1 -1
  47. package/dist/views/components/teaser/ticker/teaser_ticker_timeline.hbs +1 -1
  48. package/dist/views/components/topictag/topictag_list.hbs +1 -1
  49. package/dist/views_static/components/banner/header/banner_image.hbs +1 -1
  50. package/dist/views_static/components/base/backlink.hbs +1 -1
  51. package/dist/views_static/components/base/link.hbs +1 -1
  52. package/dist/views_static/components/dataPolicySettings/data_policy_settings.hbs +4 -4
  53. package/dist/views_static/components/event/calendar/event_calendar.hbs +3 -0
  54. package/dist/views_static/components/event/event_ticket_button.hbs +10 -18
  55. package/dist/views_static/components/geoTag/geoTag_list.hbs +1 -1
  56. package/dist/views_static/components/mediaplayer/media_player.hbs +1 -1
  57. package/dist/views_static/components/modal/modal.hbs +1 -1
  58. package/dist/views_static/components/modal/user_consent.hbs +13 -0
  59. package/dist/views_static/components/navigation/breadcrumb/breadcrumb.hbs +1 -1
  60. package/dist/views_static/components/navigation/breadcrumb/breadcrumb_items.ssi.hbs +1 -1
  61. package/dist/views_static/components/page/components/author.hbs +1 -1
  62. package/dist/views_static/components/page/components/socialsharing.hbs +4 -4
  63. package/dist/views_static/components/podcast/components/podcast_subscribe_button.hbs +1 -1
  64. package/dist/views_static/components/podcast/podcast_player.hbs +1 -1
  65. package/dist/views_static/components/site_header/brand_navigation/brand_navigation_item.hbs +1 -1
  66. package/dist/views_static/components/site_header/navigation_flyout/navigation_flyout.hbs +1 -1
  67. package/dist/views_static/components/site_header/section_navigation/section_navigation_item.hbs +3 -3
  68. package/dist/views_static/components/site_header/service_logo.hbs +1 -1
  69. package/dist/views_static/components/site_header/service_navigation/service_navigation_item.hbs +2 -2
  70. package/dist/views_static/components/social_sharing/social_sharing_compact_icons.hbs +4 -4
  71. package/dist/views_static/components/socialmedia/socialmedia.hbs +4 -4
  72. package/dist/views_static/components/teaser/components/teaser_body.hbs +10 -1
  73. package/dist/views_static/components/teaser/components/teaser_lead.hbs +1 -1
  74. package/dist/views_static/components/teaser/group_teaser/group_teaser.hbs +1 -1
  75. package/dist/views_static/components/teaser/group_teaser/group_teaser_accented.hbs +1 -1
  76. package/dist/views_static/components/teaser/ticker/teaser_ticker_timeline.hbs +1 -1
  77. package/dist/views_static/components/topictag/topictag_list.hbs +1 -1
  78. package/package.json +1 -1
  79. package/src/assets/brand/_default/conf/locatags.json +6 -0
  80. package/src/assets/brand/hessenschau/conf/locatags.merged.json +6 -0
  81. package/src/assets/brand/hr/conf/locatags.merged.json +6 -0
  82. package/src/assets/brand/hr-bigband/conf/locatags.merged.json +6 -0
  83. package/src/assets/brand/hr-fernsehen/conf/locatags.merged.json +6 -0
  84. package/src/assets/brand/hr-inforadio/conf/locatags.merged.json +6 -0
  85. package/src/assets/brand/hr-rundfunkrat/conf/locatags.merged.json +6 -0
  86. package/src/assets/brand/hr-sinfonieorchester/conf/locatags.merged.json +6 -0
  87. package/src/assets/brand/hr-werbung/conf/locatags.merged.json +6 -0
  88. package/src/assets/brand/hr1/conf/locatags.merged.json +6 -0
  89. package/src/assets/brand/hr2/conf/locatags.merged.json +6 -0
  90. package/src/assets/brand/hr3/conf/locatags.merged.json +6 -0
  91. package/src/assets/brand/hr4/conf/locatags.merged.json +6 -0
  92. package/src/assets/brand/you-fm/conf/locatags.merged.json +6 -0
  93. package/src/assets/fixtures/teaser/teaser_standard_50_serif_link_two_click.json +22 -0
  94. package/src/assets/fixtures/teaser/teasers.inc.json +2 -1
  95. package/src/stories/views/components/banner/header/banner_image.hbs +1 -1
  96. package/src/stories/views/components/base/backlink.hbs +1 -1
  97. package/src/stories/views/components/base/link.hbs +1 -1
  98. package/src/stories/views/components/dataPolicySettings/data_policy_settings.hbs +4 -4
  99. package/src/stories/views/components/event/calendar/event_calendar.hbs +3 -0
  100. package/src/stories/views/components/event/event_ticket_button.hbs +10 -18
  101. package/src/stories/views/components/geoTag/geoTag_list.hbs +1 -1
  102. package/src/stories/views/components/mediaplayer/media_player.hbs +1 -1
  103. package/src/stories/views/components/modal/defaultModal.subfeature.js +58 -0
  104. package/src/stories/views/components/modal/modal.feature.js +11 -52
  105. package/src/stories/views/components/modal/modal.hbs +1 -1
  106. package/src/stories/views/components/modal/modal.mdx +104 -0
  107. package/src/stories/views/components/modal/modal.stories.js +79 -0
  108. package/src/stories/views/components/modal/userConsentModal.subfeature.js +120 -0
  109. package/src/stories/views/components/modal/user_consent.hbs +13 -0
  110. package/src/stories/views/components/navigation/breadcrumb/breadcrumb.hbs +1 -1
  111. package/src/stories/views/components/navigation/breadcrumb/breadcrumb_items.ssi.hbs +1 -1
  112. package/src/stories/views/components/page/components/author.hbs +1 -1
  113. package/src/stories/views/components/page/components/socialsharing.hbs +4 -4
  114. package/src/stories/views/components/pagination/fixtures/page_pagination.json +1 -1
  115. package/src/stories/views/components/podcast/components/podcast_subscribe_button.hbs +1 -1
  116. package/src/stories/views/components/podcast/podcast_player.hbs +1 -1
  117. package/src/stories/views/components/site_header/brand_navigation/brand_navigation_item.hbs +1 -1
  118. package/src/stories/views/components/site_header/navigation_flyout/navigation_flyout.hbs +1 -1
  119. package/src/stories/views/components/site_header/section_navigation/section_navigation_item.hbs +3 -3
  120. package/src/stories/views/components/site_header/service_logo.hbs +1 -1
  121. package/src/stories/views/components/site_header/service_navigation/service_navigation_item.hbs +2 -2
  122. package/src/stories/views/components/social_sharing/social_sharing_compact_icons.hbs +4 -4
  123. package/src/stories/views/components/socialmedia/socialmedia.hbs +4 -4
  124. package/src/stories/views/components/teaser/components/teaser_body.hbs +10 -1
  125. package/src/stories/views/components/teaser/components/teaser_lead.hbs +1 -1
  126. package/src/stories/views/components/teaser/fixtures/teaser_alternative_100_serif_link.json +1 -1
  127. package/src/stories/views/components/teaser/fixtures/teaser_alternative_50_serif_link.json +1 -1
  128. package/src/stories/views/components/teaser/fixtures/teaser_alternative_hero_serif_link.json +1 -1
  129. package/src/stories/views/components/teaser/fixtures/teaser_standard_100_serif_link.json +1 -1
  130. package/src/stories/views/components/teaser/fixtures/teaser_standard_25_serif_link.json +1 -1
  131. package/src/stories/views/components/teaser/fixtures/teaser_standard_33_serif_link.json +1 -1
  132. package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif_link.json +1 -1
  133. package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif_link_two_click.json +1 -0
  134. package/src/stories/views/components/teaser/fixtures/teaser_standard_hero_serif_link.json +1 -1
  135. package/src/stories/views/components/teaser/group_teaser/group_teaser.hbs +1 -1
  136. package/src/stories/views/components/teaser/group_teaser/group_teaser_accented.hbs +1 -1
  137. package/src/stories/views/components/teaser/teaser_standard.mdx +4 -0
  138. package/src/stories/views/components/teaser/teaser_standard.stories.js +7 -0
  139. package/src/stories/views/components/teaser/ticker/teaser_ticker_timeline.hbs +1 -1
  140. package/src/stories/views/components/topictag/topictag_list.hbs +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
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
+
1
13
  # v1.63.15 (Tue Apr 16 2024)
2
14
 
3
15
  #### 🐛 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 ",
@@ -3348,7 +3348,7 @@ article.indexTextDS .indexTextHighlighted .link {
3348
3348
  border-bottom-color: var(--color-secondary-ds);
3349
3349
  }
3350
3350
  .counter-reset {
3351
- counter-reset: cnt1713263195329;
3351
+ counter-reset: cnt1713357692833;
3352
3352
  }
3353
3353
  .hyphens-auto {
3354
3354
  -webkit-hyphens: auto;
@@ -3727,7 +3727,7 @@ article.indexTextDS .indexTextHighlighted .link {
3727
3727
  --tw-ring-color: rgba(255, 255, 255, 0.5);
3728
3728
  }
3729
3729
  .-ordered {
3730
- counter-increment: cnt1713263195329 1;
3730
+ counter-increment: cnt1713357692833 1;
3731
3731
  }
3732
3732
  .-ordered::before {
3733
3733
  position: absolute;
@@ -3743,7 +3743,7 @@ article.indexTextDS .indexTextHighlighted .link {
3743
3743
  letter-spacing: .0125em;
3744
3744
  --tw-text-opacity: 1;
3745
3745
  color: rgba(0, 0, 0, var(--tw-text-opacity));
3746
- content: counter(cnt1713263195329);
3746
+ content: counter(cnt1713357692833);
3747
3747
  }
3748
3748
  /*! ****************************/
3749
3749
  /*! DataPolicy stuff */
@@ -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