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
package/CHANGELOG.md CHANGED
@@ -1,3 +1,27 @@
1
+ # v1.64.1 (Wed Apr 17 2024)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - Code cleanup aspectratio fix [#909](https://github.com/mumprod/hr-design-system-handlebars/pull/909) ([@Paul-Atreidis](https://github.com/Paul-Atreidis))
6
+
7
+ #### Authors: 1
8
+
9
+ - [@Paul-Atreidis](https://github.com/Paul-Atreidis)
10
+
11
+ ---
12
+
13
+ # v1.64.0 (Wed Apr 17 2024)
14
+
15
+ #### 🚀 Enhancement
16
+
17
+ - Feature/dpe 2696 [#910](https://github.com/mumprod/hr-design-system-handlebars/pull/910) ([@szuelch](https://github.com/szuelch))
18
+
19
+ #### Authors: 1
20
+
21
+ - [@szuelch](https://github.com/szuelch)
22
+
23
+ ---
24
+
1
25
  # v1.63.15 (Tue Apr 16 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 ",
@@ -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: cnt1713365504620;
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: cnt1713365504620 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(cnt1713365504620);
3747
3747
  }
3748
3748
  /*! ****************************/
3749
3749
  /*! DataPolicy stuff */
@@ -1,8 +1,9 @@
1
- const DataWrapperNoResponsiveIframe = function (context, configAR, configFixedHeight, embedCode) {
1
+ const DataWrapperNoResponsiveIframe = function (context, configAR, configFixedHeight, id, embedCode) {
2
2
 
3
3
  const { element: rootElement } = context
4
4
  let aspectRatio = configAR
5
5
  let fixedHeight = configFixedHeight
6
+ let uniqueId = id
6
7
 
7
8
  const createNoResponsiveIframe = function () {
8
9
 
@@ -65,7 +66,8 @@ const DataWrapperNoResponsiveIframe = function (context, configAR, configFixedHe
65
66
  iframe.setAttribute('scrolling', 'no')
66
67
  iframe.setAttribute('frameborder', '0')
67
68
  iframe.src = embedCode
68
-
69
+ iframe.id = 'datawrapper-chart-' + uniqueId
70
+
69
71
  div.appendChild(iframe)
70
72
  parentDiv.appendChild(div)
71
73
  rootElement.appendChild(parentDiv)
@@ -157,8 +157,14 @@ const ExternalService = function (context) {
157
157
  removeDatapolicyBox()
158
158
  createUniqueID()
159
159
  if (iFrameConfig.noResponsiveIframe == 'true') {
160
- noResponsiveIframe = new DataWrapperNoResponsiveIframe(context, iFrameConfig.aspectRatio, iFrameConfig.fixedHeight, embedCode)
160
+ noResponsiveIframe = new DataWrapperNoResponsiveIframe(context, iFrameConfig.aspectRatio, iFrameConfig.fixedHeight, uniqueId, embedCode)
161
161
  noResponsiveIframe.createNoResponsiveIframe()
162
+
163
+ if (iFrameConfig.refreshContent == 'true') {
164
+ console.log("contentRefresher anfügen")
165
+ contentRefresher = new DataWrapperContentRefresher(context, uniqueId, iFrameConfig.refreshIntervall)
166
+ contentRefresher.createRefresher()
167
+ }
162
168
  }
163
169
  else {
164
170
  var iframe = document.createElement('iframe')
@@ -178,6 +184,7 @@ const ExternalService = function (context) {
178
184
  'https://static.hr.de/hessenschau/datawrapper/responsiveIframe.js',
179
185
  true
180
186
  )
187
+
181
188
  if (iFrameConfig.refreshContent == 'true') {
182
189
  console.log("contentRefresher anfügen")
183
190
  contentRefresher = new DataWrapperContentRefresher(context, uniqueId, iFrameConfig.refreshIntervall)
@@ -275,40 +282,17 @@ const ExternalService = function (context) {
275
282
 
276
283
  const loadIframe = function () {
277
284
  console.log('load iframe ' + id)
278
- iframe =
279
- "<iframe id='i_frame' data-isloaded='0' src='" +
280
- embedCode +
281
- "' frameborder='0' class='w-full h-full' webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>"
285
+ iframe = "<iframe id='i_frame' data-isloaded='0' src='"+ embedCode +"' frameborder='0' class='w-full h-full' webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>"
282
286
  if (iFrameConfig.aspectRatio) {
283
- iframe =
284
- "<div class='!h-full'><div class=" +
285
- getAspectRatioClass() +
286
- ' ' +
287
- id +
288
- "'><iframe id='i_frame' data-isloaded='0' src='" +
289
- embedCode +
290
- "' frameborder='0' class='w-full h-full '" +
291
- id +
292
- "' webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div></div>"
287
+ iframe ="<div class='!h-full'><div class='"+ getAspectRatioClass() +"'><iframe id='i_frame' data-isloaded='0' src='"+ embedCode +"' frameborder='0' class='w-full h-full' webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div></div>"
293
288
  //TODO Weiche Animation der Inhalte
294
289
  } else {
295
290
  if (iFrameConfig.fixedHeight) {
296
- iframe =
297
- "<div class='!h-full' style='height:" +
298
- iFrameConfig.fixedHeight +
299
- "px'><iframe data-isloaded='0' src='" +
300
- embedCode +
301
- "' frameborder='0' class='w-full h-full' webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>"
291
+ iframe = "<div style='height:"+ iFrameConfig.fixedHeight +"px'><iframe data-isloaded='0' src='"+ embedCode +"' frameborder='0' class='w-full h-full' webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>"
302
292
  } else {
303
- iframe =
304
- "<div class='!h-full " +
305
- id +
306
- "'><iframe data-isloaded='0' src='" +
307
- embedCode +
308
- "' frameborder='0' class='w-full h-full' webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>"
293
+ iframe = "<div class='!h-full'><iframe data-isloaded='0' src='"+ embedCode +"' frameborder='0' class='w-full h-full' webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>"
309
294
  }
310
295
  }
311
-
312
296
  replaceAnimated(rootElement, iframe, false)
313
297
  }
314
298
 
@@ -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