hr-design-system-handlebars 1.103.9 → 1.104.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 (104) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/assets/index.css +24 -3
  3. package/dist/assets/js/base/tracking/pianoHelper.subfeature.js +1 -1
  4. package/dist/assets/js/components/dataPolicySettings/dataPolicySettingsDs.feature.js +39 -39
  5. package/dist/assets/js/components/forms/inputHandler.alpine.js +1 -1
  6. package/dist/assets/js/components/mediaplayer/ardPlayerLoader.subfeature.js +1 -1
  7. package/dist/assets/js/utils.js +3 -6
  8. package/dist/views/components/content/copytext/components/externalservice.hbs +1 -1
  9. package/{src/stories/views/components/externalService → dist/views/components/external-service}/components/external_service_data_policy.hbs +4 -4
  10. package/{src/stories/views/components/externalService → dist/views/components/external-service}/external_service.hbs +2 -2
  11. package/dist/views/components/external-service/external_service_with_datapolicy_check.hbs +19 -0
  12. package/dist/views/components/forms/controls.hbs +1 -1
  13. package/dist/views/components/forms/input.hbs +4 -2
  14. package/dist/views/components/forms/textarea.hbs +4 -2
  15. package/dist/views/components/forms/webform.hbs +49 -1
  16. package/dist/views/components/teaser/teaser_external_service.hbs +1 -1
  17. package/dist/views_static/components/content/copytext/components/externalservice.hbs +1 -1
  18. package/dist/{views/components/externalService → views_static/components/external-service}/components/external_service_data_policy.hbs +4 -4
  19. package/dist/{views/components/externalService → views_static/components/external-service}/external_service.hbs +2 -2
  20. package/dist/views_static/components/external-service/external_service_with_datapolicy_check.hbs +19 -0
  21. package/dist/views_static/components/forms/controls.hbs +1 -1
  22. package/dist/views_static/components/forms/input.hbs +4 -2
  23. package/dist/views_static/components/forms/textarea.hbs +4 -2
  24. package/dist/views_static/components/forms/webform.hbs +49 -1
  25. package/dist/views_static/components/teaser/teaser_external_service.hbs +1 -1
  26. package/package.json +1 -1
  27. package/src/assets/fixtures/content/copytext/copytext_externalservice.json +54 -80
  28. package/src/assets/fixtures/content/copytext/copytext_webform.json +4 -0
  29. package/src/assets/fixtures/event/calendar/event_calendar_components.json +68 -0
  30. package/src/assets/fixtures/{external_service → external-service}/external_service.inc.json +22 -3
  31. package/src/assets/fixtures/external-service/external_service.json +194 -0
  32. package/src/assets/fixtures/teaser/teaser_event_calendar.json +65 -0
  33. package/src/assets/fixtures/teaser/teaser_ticker.inc.json +2 -2
  34. package/src/assets/js/utils.js +3 -6
  35. package/src/stories/basics/SnapshotStories.mdx +1 -1
  36. package/src/stories/views/base/tracking/pianoHelper.subfeature.js +1 -1
  37. package/src/stories/views/components/content/copytext/components/externalservice.hbs +1 -1
  38. package/src/stories/views/components/content/copytext/fixtures/copytext_externalservice.json +1 -1
  39. package/src/stories/views/components/content/copytext/fixtures/copytext_webform.json +1 -1
  40. package/src/stories/views/components/dataPolicySettings/dataPolicySettingsDs.feature.js +39 -39
  41. package/src/stories/views/components/event/calendar/event_calendar_components.mdx +1 -38
  42. package/src/stories/views/components/event/calendar/event_calendar_components.stories.js +77 -42
  43. package/src/stories/views/components/event/calendar/fixtures/event_calendar_components.json +1 -0
  44. package/{dist/views_static/components/externalService → src/stories/views/components/external-service}/components/external_service_data_policy.hbs +4 -4
  45. package/{dist/views_static/components/externalService → src/stories/views/components/external-service}/external_service.hbs +2 -2
  46. package/src/stories/views/components/{externalService → external-service}/external_service.stories.js +42 -20
  47. package/src/stories/views/components/external-service/external_service_with_datapolicy_check.hbs +19 -0
  48. package/src/stories/views/components/external-service/fixtures/external_service.json +1 -0
  49. package/src/stories/views/components/forms/controls.hbs +1 -1
  50. package/src/stories/views/components/forms/input.hbs +4 -2
  51. package/src/stories/views/components/forms/inputHandler.alpine.js +1 -1
  52. package/src/stories/views/components/forms/textarea.hbs +4 -2
  53. package/src/stories/views/components/forms/webform.hbs +49 -1
  54. package/src/stories/views/components/mediaplayer/ardPlayerLoader.subfeature.js +1 -1
  55. package/src/stories/views/components/teaser/fixtures/teaser_event_calendar.json +1 -0
  56. package/src/stories/views/components/teaser/fixtures/teaser_ticker_alternative.json +1 -1
  57. package/src/stories/views/components/teaser/fixtures/teaser_ticker_standard.json +1 -1
  58. package/src/stories/views/components/teaser/teaser_event_calendar.stories.js +45 -47
  59. package/src/stories/views/components/teaser/teaser_external_service.hbs +1 -1
  60. package/tailwind.config.js +19 -0
  61. package/dist/views/components/externalService/external_service_with_datapolicy_check.hbs +0 -16
  62. package/dist/views_static/components/externalService/external_service_with_datapolicy_check.hbs +0 -16
  63. package/src/assets/fixtures/event/calendar/event_calendar.inc.json +0 -10
  64. package/src/assets/fixtures/event/calendar/event_calendar_event_teaser.json +0 -4
  65. package/src/assets/fixtures/event/calendar/event_calendar_footer.json +0 -14
  66. package/src/assets/fixtures/teaser/teaser_event_calendar_100_no_future_events.json +0 -24
  67. package/src/assets/fixtures/teaser/teaser_event_calendar_100_serif.json +0 -21
  68. package/src/stories/views/components/event/calendar/fixtures/event_calendar_event_teaser.json +0 -1
  69. package/src/stories/views/components/event/calendar/fixtures/event_calendar_footer.json +0 -1
  70. package/src/stories/views/components/externalService/external_service_with_datapolicy_check.hbs +0 -16
  71. package/src/stories/views/components/teaser/fixtures/teaser_event_calendar_100_no_future_events.json +0 -1
  72. package/src/stories/views/components/teaser/fixtures/teaser_event_calendar_100_serif.json +0 -1
  73. /package/dist/assets/js/components/{externalService → external-service}/createWahlErgebnisGemeinde.subfeature.js +0 -0
  74. /package/dist/assets/js/components/{externalService → external-service}/dataWrapperContentRefresher.subfeature.js +0 -0
  75. /package/dist/assets/js/components/{externalService → external-service}/dataWrapperNoResponsiveIframe.subfeature.js +0 -0
  76. /package/dist/assets/js/components/{externalService → external-service}/datapolicyCookie.subfeature.js +0 -0
  77. /package/dist/assets/js/components/{externalService → external-service}/externalServiceDs.feature.js +0 -0
  78. /package/dist/assets/js/components/{externalService → external-service}/globalSettingsCookie.subfeature.js +0 -0
  79. /package/dist/assets/js/components/{externalService → external-service}/trackingCookie.subfeature.js +0 -0
  80. /package/dist/views/components/{externalService → external-service}/components/data_policy_link.hbs +0 -0
  81. /package/dist/views/components/{externalService → external-service}/components/external_service_caption.hbs +0 -0
  82. /package/dist/views/components/{externalService → external-service}/components/external_service_form_checkbox.hbs +0 -0
  83. /package/dist/views/components/{externalService → external-service}/components/external_service_load_content_button.hbs +0 -0
  84. /package/dist/views/components/{externalService → external-service}/components/external_service_settings_button.hbs +0 -0
  85. /package/dist/views_static/components/{externalService → external-service}/components/data_policy_link.hbs +0 -0
  86. /package/dist/views_static/components/{externalService → external-service}/components/external_service_caption.hbs +0 -0
  87. /package/dist/views_static/components/{externalService → external-service}/components/external_service_form_checkbox.hbs +0 -0
  88. /package/dist/views_static/components/{externalService → external-service}/components/external_service_load_content_button.hbs +0 -0
  89. /package/dist/views_static/components/{externalService → external-service}/components/external_service_settings_button.hbs +0 -0
  90. /package/src/stories/views/components/{externalService → external-service}/components/data_policy_link.hbs +0 -0
  91. /package/src/stories/views/components/{externalService → external-service}/components/external_service_caption.hbs +0 -0
  92. /package/src/stories/views/components/{externalService → external-service}/components/external_service_form_checkbox.hbs +0 -0
  93. /package/src/stories/views/components/{externalService → external-service}/components/external_service_load_content_button.hbs +0 -0
  94. /package/src/stories/views/components/{externalService → external-service}/components/external_service_settings_button.hbs +0 -0
  95. /package/src/stories/views/components/{externalService → external-service}/createWahlErgebnisGemeinde.subfeature.js +0 -0
  96. /package/src/stories/views/components/{externalService → external-service}/dataWrapperContentRefresher.subfeature.js +0 -0
  97. /package/src/stories/views/components/{externalService → external-service}/dataWrapperNoResponsiveIframe.subfeature.js +0 -0
  98. /package/src/stories/views/components/{externalService → external-service}/datapolicyCookie.subfeature.js +0 -0
  99. /package/src/stories/views/components/{externalService → external-service}/externalServiceDs.feature.js +0 -0
  100. /package/src/stories/views/components/{externalService → external-service}/external_service.data.js +0 -0
  101. /package/src/stories/views/components/{externalService → external-service}/external_service.mdx +0 -0
  102. /package/src/stories/views/components/{externalService → external-service}/fixtures/external_service_with_datapolicy.json +0 -0
  103. /package/src/stories/views/components/{externalService → external-service}/globalSettingsCookie.subfeature.js +0 -0
  104. /package/src/stories/views/components/{externalService → external-service}/trackingCookie.subfeature.js +0 -0
@@ -1,41 +1,41 @@
1
- import eventCalendarHeading from './event_calendar_heading.hbs'
2
- import eventCalendarNav from './event_calendar_nav.hbs'
3
- import eventCalendarContent from './event_calendar_event_teaser.hbs'
4
- import eventCalendarFooter from './event_calendar_footer.hbs'
5
- import teaserEventCalendar100Serif from '../../teaser/fixtures/teaser_event_calendar_100_serif.json'
6
- import eventCalendarEventTeaserData from './fixtures/event_calendar_event_teaser.json'
7
- import eventCalendarFooterData from './fixtures/event_calendar_footer.json'
8
-
9
- const TemplateEventCalendarHeading = (args, { globals: { customConditionalToolbar } }) => {
10
- // You can either use a function to create DOM elements or use a plain html string!
11
- // return `<div>${label}</div>`;
12
- let brand =
13
- undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
14
- return eventCalendarHeading({ brand, ...args })
1
+ import { getSnapshotsTemplate } from '/src/assets/js/utils.js'
2
+ import fixtures from './fixtures/event_calendar_components.json'
3
+
4
+
5
+ const handlebars = require('hrHandlebars')
6
+ const hbsTemplates = []
7
+ hbsTemplates['heading'] = handlebars.compile(`
8
+ {{> components/event/calendar/event_calendar_heading }}
9
+ `)
10
+ hbsTemplates['navigation'] = handlebars.compile(`
11
+ {{> components/event/calendar/event_calendar_nav }}
12
+ `)
13
+ hbsTemplates['content'] = handlebars.compile(`
14
+ {{> components/event/calendar/event_calendar_event_teaser }}
15
+ `)
16
+ hbsTemplates['footer'] = handlebars.compile(`
17
+ {{> components/event/calendar/event_calendar_footer }}
18
+ `)
19
+
20
+
21
+ const TemplateEventCalendarHeading = (args) => {
22
+ return hbsTemplates['heading']({ ...args })
15
23
  }
16
24
 
17
- const TemplateEventCalendarNav = (args, { globals: { customConditionalToolbar } }) => {
18
- // You can either use a function to create DOM elements or use a plain html string!
19
- // return `<div>${label}</div>`;
20
- let brand =
21
- undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
22
- return eventCalendarNav({ brand, ...args })
25
+ const TemplateEventCalendarNav = (args) => {
26
+ return hbsTemplates['navigation']({ ...args })
23
27
  }
24
28
 
25
29
  const TemplateEventCalendarContent = (args, { globals: { customConditionalToolbar } }) => {
26
- // You can either use a function to create DOM elements or use a plain html string!
27
- // return `<div>${label}</div>`;
28
- let brand =
29
- undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
30
- return eventCalendarContent({ brand, ...args })
30
+ return hbsTemplates['content']({ ...args })
31
31
  }
32
32
 
33
33
  const TemplateEventCalendarFooter = (args, { globals: { customConditionalToolbar } }) => {
34
- // You can either use a function to create DOM elements or use a plain html string!
35
- // return `<div>${label}</div>`;
36
- let brand =
37
- undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
38
- return eventCalendarFooter({ brand, ...args })
34
+ return hbsTemplates['footer']({ ...args })
35
+ }
36
+
37
+ const snapshotTemplate = (args) => {
38
+ return getSnapshotsTemplate({ hbsTemplates, args })
39
39
  }
40
40
 
41
41
  export default {
@@ -43,13 +43,16 @@ export default {
43
43
 
44
44
  parameters: {
45
45
  layout: 'fullscreen',
46
+ chromatic: {
47
+ disableSnapshot: true
48
+ },
46
49
  },
47
50
 
48
51
  decorators: [
49
52
  (Story) => {
50
- return `<div class="grid grid-page"><div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main"><div class="col-span-12">
53
+ return `<div class="grid grid-page"><div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
51
54
  ${Story()}
52
- </div></div></div>`
55
+ </div></div>`
53
56
  },
54
57
  ],
55
58
  }
@@ -57,6 +60,13 @@ export default {
57
60
  export const Heading = {
58
61
  render: TemplateEventCalendarHeading.bind({}),
59
62
  name: 'Heading',
63
+ decorators: [
64
+ (Story) => {
65
+ return `<div class="col-span-12">
66
+ ${Story()}
67
+ </div>`
68
+ },
69
+ ],
60
70
 
61
71
  argTypes: {
62
72
  title: {
@@ -70,20 +80,32 @@ export const Heading = {
70
80
  },
71
81
  },
72
82
 
73
- args: {
74
- title: 'Eventkalender',
75
- },
83
+ args: fixtures.heading.args,
76
84
  }
77
85
 
78
86
  export const Navigation = {
79
87
  render: TemplateEventCalendarNav.bind({}),
80
88
  name: 'Navigation',
81
- args: teaserEventCalendar100Serif.logicItem.includeModel.eventCalendar.months,
89
+ decorators: [
90
+ (Story) => {
91
+ return `<div class="col-span-12">
92
+ ${Story()}
93
+ </div>`
94
+ },
95
+ ],
96
+ args: fixtures.navigation.args.months,
82
97
  }
83
98
 
84
99
  export const Inhalt = {
85
100
  render: TemplateEventCalendarContent.bind({}),
86
101
  name: 'Inhalt',
102
+ decorators: [
103
+ (Story) => {
104
+ return `<div class="col-span-12">
105
+ ${Story()}
106
+ </div>`
107
+ },
108
+ ],
87
109
 
88
110
  argTypes: {
89
111
  statusDescriptionForLabelShort: {
@@ -115,15 +137,28 @@ export const Inhalt = {
115
137
  },
116
138
  },
117
139
 
118
- args: {
119
- ...eventCalendarEventTeaserData,
120
- _withConcertInfo: false,
121
- _showTeaser: true,
122
- },
140
+ args: fixtures.content.args,
123
141
  }
124
142
 
125
143
  export const Footer = {
126
144
  render: TemplateEventCalendarFooter.bind({}),
127
145
  name: 'Footer',
128
- args: eventCalendarFooterData,
146
+ decorators: [
147
+ (Story) => {
148
+ return `<div class="col-span-12">
149
+ ${Story()}
150
+ </div>`
151
+ },
152
+ ],
153
+ args: fixtures.footer.args,
154
+ }
155
+
156
+ export const Snapshot = {
157
+ render: snapshotTemplate.bind({}),
158
+ name: 'Snapshot',
159
+
160
+ args: fixtures,
161
+ parameters: {
162
+ chromatic: { disableSnapshot: false },
163
+ }
129
164
  }
@@ -0,0 +1 @@
1
+ {"config":{"template":"default","layout":"grid","renderSnapshotsWrapper":false},"heading":{"config":{"template":"heading","renderSnapshotItemWrapper":true,"css":"col-span-12"},"args":{"title":"Eventkalender"}},"navigation":{"config":{"template":"navigation","path":"args.months","renderSnapshotItemWrapper":true,"css":"col-span-12 mt-12"},"args":{"months":[{"date":{"monthNameShort":"Mai","yearShort":"22"},"hasDays":true,"days":[{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2022-05-21"}}],"date":{"weekdayNameShort":"Fr","day":"21","htmlDate":"2022-05-21"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2022-05-22"}}],"date":{"weekdayNameShort":"Sa","day":"22","htmlDate":"2022-05-22"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2022-05-23"}}],"date":{"weekdayNameShort":"So","day":"23","htmlDate":"2022-04-23"}}]},{"date":{"monthNameShort":"Jun","yearShort":"22"},"hasDays":true,"days":[{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2022-06-21"}}],"date":{"weekdayNameShort":"Fr","day":"21","htmlDate":"2022-06-21"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2022-06-22"}}],"date":{"weekdayNameShort":"Sa","day":"22","htmlDate":"2022-06-22"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2022-06-23"}}],"date":{"weekdayNameShort":"So","day":"23","htmlDate":"2022-06-23"}}]},{"date":{"monthNameShort":"Jul","yearShort":"22"},"hasDays":true,"days":[{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2022-07-21"}}],"date":{"weekdayNameShort":"Fr","day":"21","htmlDate":"2022-07-21"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2022-07-22"}}],"date":{"weekdayNameShort":"Sa","day":"22","htmlDate":"2022-07-22"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2022-07-23"}}],"date":{"weekdayNameShort":"So","day":"23","htmlDate":"2022-07-23"}}]},{"date":{"monthNameShort":"Aug","yearShort":"22"},"hasDays":true,"days":[{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2022-08-21"}}],"date":{"weekdayNameShort":"Fr","day":"21","htmlDate":"2022-08-21"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2022-08-22"}}],"date":{"weekdayNameShort":"Sa","day":"22","htmlDate":"2022-08-22"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2022-08-23"}}],"date":{"weekdayNameShort":"So","day":"23","htmlDate":"2022-08-23"}}]},{"date":{"monthNameShort":"Sep","yearShort":"22"},"hasDays":true,"days":[{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2022-09-21"}}],"date":{"weekdayNameShort":"Di","day":"21","htmlDate":"2022-09-21"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2022-09-22"}}],"date":{"weekdayNameShort":"Mi","day":"22","htmlDate":"2022-09-22"}},{"date":{"weekdayNameShort":"Do","day":"23","htmlDate":"2022-09-23"},"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2022-09-23"}}],"isStartOfWeek":false}]},{"date":{"monthNameShort":"Jan","yearShort":"23"},"hasDays":true,"isCurrentMonth":true,"hasFutureEventsFromNow":true,"contentUrl":"https://localhost:6006:/hr-bigband/konzerte/veranstaltungen-112~_month-2023-01.html","days":[{"isStartOfWeek":true,"hasInstants":true,"isFirstAvailable":true,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2023-01-09","day":9,"weekdayNameShort":"Mo","monthNameShort":"Jan"},"startTime":{"time":"18:00"},"image":{"alttext":"Lorem ipsum","copyrightWithLinks":"","imageJson":"Beispiel JSON","responsiveImage":{"asPicture":true,"asImage":false,"fallback":"images/emmanuel-tjeknavorian-108_v-16to9.jpg","sources":[{"media":"all and (min-width: 1024px)","sizes":"25rem","srcset":"images/emmanuel-tjeknavorian-108_v-16to9__small.jpg 320w, images/emmanuel-tjeknavorian-108_v-16to9__medium.jpg 480w, images/emmanuel-tjeknavorian-108_v-16to9__medium__extended.jpg 640w, images/emmanuel-tjeknavorian-108_v-16to9.jpg 960w, images/emmanuel-tjeknavorian-108_v-16to9__retina.jpg 1920w"},{"media":"all and (max-width: 1023px)","sizes":"(min-width: 640px) 25rem, 100vw","srcset":"images/emmanuel-tjeknavorian-108_v-4to3__small.jpg 320w, images/emmanuel-tjeknavorian-108_v-4to3__medium.jpg 480w, images/emmanuel-tjeknavorian-108_v-4to3.jpg 650w, images/emmanuel-tjeknavorian-108_v-4to3__retina.jpg 1300w"}]}},"link":{"url":"/event_100","webviewUrl":"/event_100#webview","isTargetBlank":false,"hasIcon":false,"iconName":"iconName","readMoreText":{"readMoreScreenreader":"Zum Event","readMore":"mehr","readMoreLong":"read More Long"}},"label":{"type":"event","loca":"label_concert","byline":{"bylineSsi":"components/event/label_byline.ssi","context":{"firstInstant":{"hasStatus":false,"statusDescriptionForLabelShort":"event_status_cancelled","hasStartTime":true,"startDateTime":{"date":"14.10.22","time":"20:00"}},"moreThenOneEvent":false,"countEvents":1},"bylineText":"BylineText"}},"title":"Finale: Landeswettbewerb Jugend jazzt Hessen für Big Bands","eventtags":{"series":{"title":"Hessen lacht"},"project":{"title":"HR Bigband sucht den Superjazzer"}},"venue":{"addressCity":"Frankfurt","title":"Festhalle"},"isSoldOut":false,"isEventFinished":false,"hasStatus":true,"statusDescriptionForLabelShort":"event_status_cancelled","ticketLink":{"link":{"url":"https://hr.de","isTargetBlank":true,"webviewUrl":"","readMoreText":"","cmsDocument":{"trackingInformations":{"ticketLink":"finale-_landeswettbewerb_jugend_jazzt_hessen_fuer_big_bands_ticketoverlay_ok_geklickt_dokumentent_id_sophora_id_des_dokumentes_100"}}}},"concertInfo":{"artists":{"artistsAndGroups":[{"artist":{"name":"Peter Maffay","groupName":"hr bigband","role":"Sänger"},"artistGroup":"hr bigband"}],"isEmpty":false,"description":"Tolle Künstler"},"compositions":{"isEmpty":false,"description":"Komposition-Description","compositions":[{"composerAndComposition":true,"composer":"Udo Lindenberg","name":"Horizont"}]},"concertInfoHead":{"title":"Das Fest","description":"Ein tolles Festival erwartet Sie","isEmpty":false},"isEmpty":false}},{"isDateInstant":false,"startDate":{"htmlDate":"2023-01-09","day":9,"weekdayNameShort":"Fr","monthNameShort":"Jan"},"startTime":{"time":"18:00"},"image":{"alttext":"Lorem ipsum","copyrightWithLinks":"","imageJson":"Beispiel JSON","responsiveImage":{"asPicture":true,"asImage":false,"fallback":"images/emmanuel-tjeknavorian-108_v-16to9.jpg","sources":[{"media":"all and (min-width: 1024px)","sizes":"25rem","srcset":"images/emmanuel-tjeknavorian-108_v-16to9__small.jpg 320w, images/emmanuel-tjeknavorian-108_v-16to9__medium.jpg 480w, images/emmanuel-tjeknavorian-108_v-16to9__medium__extended.jpg 640w, images/emmanuel-tjeknavorian-108_v-16to9.jpg 960w, images/emmanuel-tjeknavorian-108_v-16to9__retina.jpg 1920w"},{"media":"all and (max-width: 1023px)","sizes":"(min-width: 640px) 25rem, 100vw","srcset":"images/emmanuel-tjeknavorian-108_v-4to3__small.jpg 320w, images/emmanuel-tjeknavorian-108_v-4to3__medium.jpg 480w, images/emmanuel-tjeknavorian-108_v-4to3.jpg 650w, images/emmanuel-tjeknavorian-108_v-4to3__retina.jpg 1300w"}]}},"label":{"type":"event","loca":"label_concert","byline":{"bylineSsi":"components/event/label_byline.ssi","context":{"firstInstant":{"hasStatus":false,"statusDescriptionForLabelShort":"event_status_cancelled","hasStartTime":true,"startDateTime":{"date":"14.10.22","time":"20:00"}},"moreThenOneEvent":false,"countEvents":1},"bylineText":"BylineText"}},"title":"Finale: Landeswettbewerb Jugend jazzt Hessen für Big Bands","eventtags":{"series":{"title":"Hessen lacht"},"project":{"title":"HR Bigband sucht den Superjazzer"}},"link":{"url":"/event_100","webviewUrl":"/event_100#webview","isTargetBlank":false,"hasIcon":false,"iconName":"iconName","readMoreText":{"readMoreScreenreader":"Zum Event","readMore":"mehr","readMoreLong":"read More Long"}},"venue":{"addressCity":"Frankfurt","title":"Festhalle"},"concertInfo":{"artists":{"artistsAndGroups":[{"artist":{"name":"Peter Maffay","groupName":"hr bigband","role":"Sänger"},"artistGroup":"hr bigband"}],"isEmpty":false,"description":"Tolle Künstler"},"compositions":{"isEmpty":false,"description":"Komposition-Description","compositions":[{"composerAndComposition":true,"composer":"Udo Lindenberg","name":"Horizont"}]},"concertInfoHead":{"title":"Das Fest","description":"Ein tolles Festival erwartet Sie","isEmpty":false},"isEmpty":false}}],"date":{"weekdayNameShort":"Fr","day":"9","htmlDate":"2023-01-09"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2023-01-10","day":10,"weekdayNameShort":"Di","monthNameShort":"Jan"},"startTime":{"time":"18:00"},"image":{"alttext":"Lorem ipsum","copyrightWithLinks":"","imageJson":"Beispiel JSON","responsiveImage":{"asPicture":true,"asImage":false,"fallback":"images/emmanuel-tjeknavorian-108_v-16to9.jpg","sources":[{"media":"all and (min-width: 1024px)","sizes":"25rem","srcset":"images/emmanuel-tjeknavorian-108_v-16to9__small.jpg 320w, images/emmanuel-tjeknavorian-108_v-16to9__medium.jpg 480w, images/emmanuel-tjeknavorian-108_v-16to9__medium__extended.jpg 640w, images/emmanuel-tjeknavorian-108_v-16to9.jpg 960w, images/emmanuel-tjeknavorian-108_v-16to9__retina.jpg 1920w"},{"media":"all and (max-width: 1023px)","sizes":"(min-width: 640px) 25rem, 100vw","srcset":"images/emmanuel-tjeknavorian-108_v-4to3__small.jpg 320w, images/emmanuel-tjeknavorian-108_v-4to3__medium.jpg 480w, images/emmanuel-tjeknavorian-108_v-4to3.jpg 650w, images/emmanuel-tjeknavorian-108_v-4to3__retina.jpg 1300w"}]}},"label":{"type":"event","loca":"label_concert","byline":{"bylineSsi":"components/event/label_byline.ssi","context":{"firstInstant":{"hasStatus":false,"statusDescriptionForLabelShort":"event_status_cancelled","hasStartTime":true,"startDateTime":{"date":"14.10.22","time":"20:00"}},"moreThenOneEvent":false,"countEvents":1},"bylineText":"BylineText"}},"title":"Finale: Landeswettbewerb Jugend jazzt Hessen für Big Bands","eventtags":{"series":{"title":"Hessen lacht"},"project":{"title":"HR Bigband sucht den Superjazzer"}},"link":{"url":"/event_100","webviewUrl":"/event_100#webview","isTargetBlank":false,"hasIcon":false,"iconName":"iconName","readMoreText":{"readMoreScreenreader":"Zum Event","readMore":"mehr","readMoreLong":"read More Long"}},"venue":{"addressCity":"Frankfurt","title":"Festhalle"},"concertInfo":{"artists":{"artistsAndGroups":[{"artist":{"name":"Peter Maffay","groupName":"hr bigband","role":"Sänger"},"artistGroup":"hr bigband"}],"isEmpty":false,"description":"Tolle Künstler"},"compositions":{"isEmpty":false,"description":"Komposition-Description","compositions":[{"composerAndComposition":true,"composer":"Udo Lindenberg","name":"Horizont"}]},"concertInfoHead":{"title":"Das Fest","description":"Ein tolles Festival erwartet Sie","isEmpty":false},"isEmpty":false}}],"date":{"weekdayNameShort":"Di","day":"10","htmlDate":"2023-01-10"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2023-01-11"}}],"date":{"weekdayNameShort":"So","day":"11","htmlDate":"2023-01-11"}},{"isStartOfWeek":true,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2023-01-12"}}],"date":{"weekdayNameShort":"Mo","day":"12","htmlDate":"2023-01-12"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2023-01-13"}}],"date":{"weekdayNameShort":"Di","day":"13","htmlDate":"2023-01-13"}}]},{"date":{"monthNameShort":"Feb","yearShort":"23"},"hasDays":true,"contentUrl":"https://localhost:6006:/hr-bigband/konzerte/veranstaltungen-112~_month-2023-01.html","days":[{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2023-02-09","day":9,"weekdayNameShort":"Fr","monthNameShort":"Jan"},"startTime":{"time":"18:00"},"image":{"alttext":"Lorem ipsum","copyrightWithLinks":"","imageJson":"Beispiel JSON","responsiveImage":{"asPicture":true,"asImage":false,"fallback":"images/emmanuel-tjeknavorian-108_v-16to9.jpg","sources":[{"media":"all and (min-width: 1024px)","sizes":"25rem","srcset":"images/emmanuel-tjeknavorian-108_v-16to9__small.jpg 320w, images/emmanuel-tjeknavorian-108_v-16to9__medium.jpg 480w, images/emmanuel-tjeknavorian-108_v-16to9__medium__extended.jpg 640w, images/emmanuel-tjeknavorian-108_v-16to9.jpg 960w, images/emmanuel-tjeknavorian-108_v-16to9__retina.jpg 1920w"},{"media":"all and (max-width: 1023px)","sizes":"(min-width: 640px) 25rem, 100vw","srcset":"images/emmanuel-tjeknavorian-108_v-4to3__small.jpg 320w, images/emmanuel-tjeknavorian-108_v-4to3__medium.jpg 480w, images/emmanuel-tjeknavorian-108_v-4to3.jpg 650w, images/emmanuel-tjeknavorian-108_v-4to3__retina.jpg 1300w"}]}},"label":{"type":"event","loca":"label_concert","byline":{"bylineSsi":"components/event/label_byline.ssi","context":{"firstInstant":{"hasStatus":false,"statusDescriptionForLabelShort":"event_status_cancelled","hasStartTime":true,"startDateTime":{"date":"14.10.22","time":"20:00"}},"moreThenOneEvent":false,"countEvents":1},"bylineText":"BylineText"}},"title":"Finale: Landeswettbewerb Jugend jazzt Hessen für Big Bands","eventtags":{"series":{"title":"Hessen lacht"},"project":{"title":"HR Bigband sucht den Superjazzer"}},"venue":{"addressCity":"Frankfurt","title":"Festhalle"},"concertInfo":{"artists":{"artistsAndGroups":[{"artist":{"name":"Peter Maffay","groupName":"hr bigband","role":"Sänger"},"artistGroup":"hr bigband"}],"isEmpty":false,"description":"Tolle Künstler"},"compositions":{"isEmpty":false,"description":"Komposition-Description","compositions":[{"composerAndComposition":true,"composer":"Udo Lindenberg","name":"Horizont"}]},"concertInfoHead":{"title":"Das Fest","description":"Ein tolles Festival erwartet Sie","isEmpty":false},"isEmpty":false}}],"date":{"weekdayNameShort":"Fr","day":"9","htmlDate":"2023-02-09"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2023-02-10","day":10,"weekdayNameShort":"Sa","monthNameShort":"Jan"},"image":{"alttext":"Lorem ipsum","copyrightWithLinks":"","imageJson":"Beispiel JSON","responsiveImage":{"asPicture":true,"asImage":false,"fallback":"images/pedro-martins-102_v-16to9.jpg","sources":[{"media":"all and (min-width: 1024px)","sizes":"25rem","srcset":"images/pedro-martins-102_v-16to9__small.jpg 320w, images/pedro-martins-102_v-16to9__medium.jpg 480w, images/pedro-martins-102_v-16to9__medium__extended.jpg 640w, images/pedro-martins-102_v-16to9.jpg 960w, images/pedro-martins-102_v-16to9__retina.jpg 1920w"},{"media":"all and (max-width: 1023px)","sizes":"(min-width: 640px) 25rem, 100vw","srcset":"images/pedro-martins-102_v-4to3__small.jpg 320w, images/pedro-martins-102_v-4to3__medium.jpg 480w, images/pedro-martins-102_v-4to3.jpg 650w, images/pedro-martins-102_v-4to3__retina.jpg 1300w"}]}},"label":{"type":"event","loca":"label_concert","byline":{"bylineSsi":"components/event/label_byline.ssi","context":{"firstInstant":{"hasStatus":false,"statusDescriptionForLabelShort":"event_status_cancelled","hasStartTime":true,"startDateTime":{"date":"14.10.22","time":"20:00"}},"moreThenOneEvent":false,"countEvents":1},"bylineText":"BylineText"}}}],"date":{"weekdayNameShort":"Sa","day":"10","htmlDate":"2023-02-10"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2023-02-11"}}],"date":{"weekdayNameShort":"So","day":"11","htmlDate":"2023-02-11"}},{"isStartOfWeek":true,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2023-02-12"}}],"date":{"weekdayNameShort":"Mo","day":"12","htmlDate":"2023-02-12"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2023-02-13"}}],"date":{"weekdayNameShort":"Di","day":"13","htmlDate":"2023-02-13"}}]},{"date":{"monthNameShort":"Mär","yearShort":"23"},"hasDays":true,"contentUrl":"https://localhost:6006:/hr-bigband/konzerte/veranstaltungen-112~_month-2023-01.html","days":[{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2023-03-09","day":9,"weekdayNameShort":"Fr","monthNameShort":"Jan"},"startTime":{"time":"18:00"},"image":{"alttext":"Lorem ipsum","copyrightWithLinks":"","imageJson":"Beispiel JSON","responsiveImage":{"asPicture":true,"asImage":false,"fallback":"images/emmanuel-tjeknavorian-108_v-16to9.jpg","sources":[{"media":"all and (min-width: 1024px)","sizes":"25rem","srcset":"images/emmanuel-tjeknavorian-108_v-16to9__small.jpg 320w, images/emmanuel-tjeknavorian-108_v-16to9__medium.jpg 480w, images/emmanuel-tjeknavorian-108_v-16to9__medium__extended.jpg 640w, images/emmanuel-tjeknavorian-108_v-16to9.jpg 960w, images/emmanuel-tjeknavorian-108_v-16to9__retina.jpg 1920w"},{"media":"all and (max-width: 1023px)","sizes":"(min-width: 640px) 25rem, 100vw","srcset":"images/emmanuel-tjeknavorian-108_v-4to3__small.jpg 320w, images/emmanuel-tjeknavorian-108_v-4to3__medium.jpg 480w, images/emmanuel-tjeknavorian-108_v-4to3.jpg 650w, images/emmanuel-tjeknavorian-108_v-4to3__retina.jpg 1300w"}]}},"label":{"type":"event","loca":"label_concert","byline":{"bylineSsi":"components/event/label_byline.ssi","context":{"firstInstant":{"hasStatus":false,"statusDescriptionForLabelShort":"event_status_cancelled","hasStartTime":true,"startDateTime":{"date":"14.10.22","time":"20:00"}},"moreThenOneEvent":false,"countEvents":1},"bylineText":"BylineText"}},"title":"Finale: Landeswettbewerb Jugend jazzt Hessen für Big Bands","eventtags":{"series":{"title":"Hessen lacht"},"project":{"title":"HR Bigband sucht den Superjazzer"}},"venue":{"addressCity":"Frankfurt","title":"Festhalle"},"concertInfo":{"artists":{"artistsAndGroups":[{"artist":{"name":"Peter Maffay","groupName":"hr bigband","role":"Sänger"},"artistGroup":"hr bigband"}],"isEmpty":false,"description":"Tolle Künstler"},"compositions":{"isEmpty":false,"description":"Komposition-Description","compositions":[{"composerAndComposition":true,"composer":"Udo Lindenberg","name":"Horizont"}]},"concertInfoHead":{"title":"Das Fest","description":"Ein tolles Festival erwartet Sie","isEmpty":false},"isEmpty":false}}],"date":{"weekdayNameShort":"Fr","day":"9","htmlDate":"2023-03-09"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2023-03-10","day":10,"weekdayNameShort":"Sa","monthNameShort":"Jan"},"image":{"alttext":"Lorem ipsum","copyrightWithLinks":"","imageJson":"Beispiel JSON","responsiveImage":{"asPicture":true,"asImage":false,"fallback":"images/pedro-martins-102_v-16to9.jpg","sources":[{"media":"all and (min-width: 1024px)","sizes":"25rem","srcset":"images/pedro-martins-102_v-16to9__small.jpg 320w, images/pedro-martins-102_v-16to9__medium.jpg 480w, images/pedro-martins-102_v-16to9__medium__extended.jpg 640w, images/pedro-martins-102_v-16to9.jpg 960w, images/pedro-martins-102_v-16to9__retina.jpg 1920w"},{"media":"all and (max-width: 1023px)","sizes":"(min-width: 640px) 25rem, 100vw","srcset":"images/pedro-martins-102_v-4to3__small.jpg 320w, images/pedro-martins-102_v-4to3__medium.jpg 480w, images/pedro-martins-102_v-4to3.jpg 650w, images/pedro-martins-102_v-4to3__retina.jpg 1300w"}]}},"label":{"type":"event","loca":"label_concert","byline":{"bylineSsi":"components/event/label_byline.ssi","context":{"firstInstant":{"hasStatus":false,"statusDescriptionForLabelShort":"event_status_cancelled","hasStartTime":true,"startDateTime":{"date":"14.10.22","time":"20:00"}},"moreThenOneEvent":false,"countEvents":1},"bylineText":"BylineText"}}}],"date":{"weekdayNameShort":"Sa","day":"10","htmlDate":"2023-03-10"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2023-03-11"}}],"date":{"weekdayNameShort":"So","day":"11","htmlDate":"2023-03-11"}},{"isStartOfWeek":true,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2023-03-12"}}],"date":{"weekdayNameShort":"Mo","day":"12","htmlDate":"2023-03-12"}},{"isStartOfWeek":false,"hasInstants":true,"isFirstAvailable":false,"instants":[{"isDateInstant":false,"startDate":{"htmlDate":"2023-03-13"}}],"date":{"weekdayNameShort":"Di","day":"13","htmlDate":"2023-03-13"}}]}]}},"content":{"config":{"template":"content","renderSnapshotItemWrapper":true,"css":"col-span-12 mt-12"},"args":{"isDateInstant":false,"startDate":{"htmlDate":"2023-01-09","day":9,"weekdayNameShort":"Mon","monthNameShort":"Jan"},"startTime":{"time":"18:00"},"image":{"alttext":"Lorem ipsum","copyrightWithLinks":"","imageJson":"Beispiel JSON","responsiveImage":{"asPicture":true,"asImage":false,"fallback":"images/emmanuel-tjeknavorian-108_v-16to9.jpg","sources":[{"media":"all and (min-width: 1024px)","sizes":"25rem","srcset":"images/emmanuel-tjeknavorian-108_v-16to9__small.jpg 320w, images/emmanuel-tjeknavorian-108_v-16to9__medium.jpg 480w, images/emmanuel-tjeknavorian-108_v-16to9__medium__extended.jpg 640w, images/emmanuel-tjeknavorian-108_v-16to9.jpg 960w, images/emmanuel-tjeknavorian-108_v-16to9__retina.jpg 1920w"},{"media":"all and (max-width: 1023px)","sizes":"(min-width: 640px) 25rem, 100vw","srcset":"images/emmanuel-tjeknavorian-108_v-4to3__small.jpg 320w, images/emmanuel-tjeknavorian-108_v-4to3__medium.jpg 480w, images/emmanuel-tjeknavorian-108_v-4to3.jpg 650w, images/emmanuel-tjeknavorian-108_v-4to3__retina.jpg 1300w"}]}},"link":{"url":"/event_100","webviewUrl":"/event_100#webview","isTargetBlank":false,"hasIcon":false,"iconName":"iconName","readMoreText":{"readMoreScreenreader":"Zum Event","readMore":"mehr","readMoreLong":"read More Long"}},"label":{"type":"event","loca":"label_concert","byline":{"bylineSsi":"components/event/label_byline.ssi","context":{"firstInstant":{"hasStatus":false,"statusDescriptionForLabelShort":"event_status_cancelled","hasStartTime":true,"startDateTime":{"date":"14.10.22","time":"20:00"}},"moreThenOneEvent":false,"countEvents":1},"bylineText":"BylineText"}},"title":"Finale: Landeswettbewerb Jugend jazzt Hessen für Big Bands","eventtags":{"series":{"title":"Hessen lacht"},"project":{"title":"HR Bigband sucht den Superjazzer"}},"venue":{"addressCity":"Frankfurt","title":"Festhalle"},"isSoldOut":false,"hasStatus":true,"statusDescriptionForLabelShort":"event_status_cancelled","concertInfo":{"artists":{"artistsAndGroups":[{"artist":{"name":"Peter Maffay","groupName":"hr bigband","role":"Sänger"},"artistGroup":"hr bigband"}],"isEmpty":false,"description":"Tolle Künstler"},"compositions":{"isEmpty":false,"description":"Komposition-Description","compositions":[{"composerAndComposition":true,"composer":"Udo Lindenberg","name":"Horizont"}]},"concertInfoHead":{"title":"Das Fest","description":"Ein tolles Festival erwartet Sie","isEmpty":false},"isEmpty":false},"isPodcastEpisode":true,"_withConcertInfo":false,"_showTeaser":true}},"footer":{"config":{"template":"footer","renderSnapshotItemWrapper":true,"css":"col-span-12 mt-12"},"args":{"link":{"url":"/monatsuebersicht-100","webviewUrl":"/monatsuebersicht-100#webview","isTargetBlank":false,"hasIcon":false,"iconName":"iconName","readMoreText":{"readMoreScreenreader":"Zum Artikel","readMore":"mehr","readMoreLong":"read More Long"}}}}}
@@ -5,15 +5,15 @@
5
5
  <div>
6
6
  <p class="pt-4 text-base font-copy">
7
7
  {{loca "ext_service_datapolicy_text" this.externalServiceConfig.externalServiceName}}
8
- {{~> components/externalService/components/data_policy_link ~}}
8
+ {{~> components/external-service/components/data_policy_link ~}}
9
9
  </p>
10
10
  <div class="pt-4">
11
- {{~> components/externalService/components/external_service_form_checkbox ~}}
11
+ {{~> components/external-service/components/external_service_form_checkbox ~}}
12
12
  </div>
13
13
  <div class="float-right pt-4">
14
14
  {{#with this}}
15
15
  <div class="inline-flex">
16
- {{~> components/externalService/components/external_service_settings_button _css="js-settings-inner-button"~}}
16
+ {{~> components/external-service/components/external_service_settings_button _css="js-settings-inner-button"~}}
17
17
  {{#*inline "htmlProperties"}}
18
18
  data-piano-tracking='{"label":"DSGVO-Overlay"}'
19
19
  data-a11y-dialog-show="datapolicy-settings-dialog"
@@ -21,7 +21,7 @@
21
21
  </div>
22
22
  {{/with}}
23
23
  <div class="inline-flex">
24
- {{~> components/externalService/components/external_service_load_content_button ~}}
24
+ {{~> components/external-service/components/external_service_load_content_button ~}}
25
25
  {{#*inline "htmlProperties"}}{{/inline}}
26
26
  </div>
27
27
  </div>
@@ -1,6 +1,6 @@
1
1
  {{#if this.externalServiceConfig.makeConfigurable}}
2
2
  <!-- Embedding via JS with DataPolicyCheck-->
3
- {{> components/externalService/external_service_with_datapolicy_check _isTeaser=_isTeaser}}
3
+ {{> components/external-service/external_service_with_datapolicy_check _isTeaser=_isTeaser}}
4
4
 
5
5
  {{else}}
6
6
 
@@ -20,7 +20,7 @@
20
20
  data-hr-external-service-ds='{"id":"{{this.externalServiceConfig.externalServiceId}}","embedCode":"{{this.serviceUrl}}","embedType": "{{this.externalServiceConfig.externalServiceEmbedType}}","dataPolicyCheck": false,"whiteList": false,"iFrameConfig":{}}'>
21
21
  </div>
22
22
  {{/if}}
23
- {{~> components/externalService/components/external_service_caption ~}}
23
+ {{~> components/external-service/components/external_service_caption ~}}
24
24
  <span class="sr-only">{{loca "story_externalservice_outro_sr" }}</span>
25
25
  </div>
26
26
  {{/if}}
@@ -1,19 +1,28 @@
1
- import { ExternalServiceContent } from './external_service.data.js'
2
- import externalService from './external_service_with_datapolicy_check.hbs'
3
- import externalServiceNoDatapolicyCheck from './external_service.hbs'
1
+ import { getSnapshotsTemplate } from '/src/assets/js/utils.js'
2
+ import fixtures from './fixtures/external_service.json'
4
3
 
5
- const TemplatePageExternalService = (args, { globals: { theme } }) => {
6
- // You can either use a function to create DOM elements or use a plain html string!
7
- // return `<div>${label}</div>`;
8
- let brand = undefined !== theme ? theme : 'hessenschau'
9
- return externalService({ brand, ...args })
4
+ const handlebars = require('hrHandlebars')
5
+ const hbsTemplates = []
6
+ hbsTemplates['default'] = handlebars.compile(`
7
+ {{> components/external-service/external_service }}
8
+ `)
9
+ hbsTemplates['noDatapolicyCheck'] = handlebars.compile(`
10
+ {{> components/external-service/external_service_with_datapolicy_check }}
11
+ `)
12
+
13
+
14
+
15
+ const TemplatePageExternalService = (args) => {
16
+ return hbsTemplates['default']({ ...args })
10
17
  }
11
- const TemplatePageExternalServiceNoDatapolicyCheck = (args, { globals: { theme } }) => {
12
- // You can either use a function to create DOM elements or use a plain html string!
13
- // return `<div>${label}</div>`;
14
- let brand = undefined !== theme ? theme : 'hessenschau'
15
- return externalServiceNoDatapolicyCheck({ brand, ...args })
18
+ const TemplatePageExternalServiceNoDatapolicyCheck = (args) => {
19
+ return hbsTemplates['noDatapolicyCheck']({ ...args })
16
20
  }
21
+
22
+ const snapshotTemplate = (args) => {
23
+ return getSnapshotsTemplate({ hbsTemplates, args })
24
+ }
25
+
17
26
  export default {
18
27
  title: 'Komponenten/Externe Dienste',
19
28
  argTypes: {},
@@ -24,41 +33,54 @@ export default {
24
33
  inlineStories: false,
25
34
  iframeHeight: 400,
26
35
  },
36
+ chromatic: {
37
+ disableSnapshot: true
38
+ },
27
39
  },
28
40
  }
29
41
 
30
42
  export const ExterneDiensteGiphy = {
31
43
  render: TemplatePageExternalService.bind({}),
32
44
  name: 'Externe Dienste Giphy',
33
- args: ExternalServiceContent.Giphy,
45
+ args: fixtures.Giphy.args,
34
46
  }
35
47
  export const ExterneDiensteFlourish = {
36
48
  render: TemplatePageExternalService.bind({}),
37
49
  name: 'Externe Dienste Flourish',
38
- args: ExternalServiceContent.Flourish,
50
+ args: fixtures.Flourish.args,
39
51
  }
40
52
  export const ExterneDiensteDatawrapper = {
41
53
  render: TemplatePageExternalService.bind({}),
42
54
  name: 'Externe Dienste Datawrapper MIT Responsivem Iframe',
43
- args: ExternalServiceContent.Datawrapper_CDN,
55
+ args: fixtures.Datawrapper_CDN.args,
44
56
  }
45
57
  export const ExterneDiensteDatawrapperNoResponsiveFixedHeight = {
46
58
  render: TemplatePageExternalService.bind({}),
47
59
  name: 'Externe Dienste Datawrapper OHNE Responsivem Iframe (Feste Höhe)',
48
- args: ExternalServiceContent.Datawrapper_CDN_NoResponsiveFixedHeight,
60
+ args: fixtures.Datawrapper_CDN_NoResponsiveFixedHeight.args,
49
61
  }
50
62
  export const ExterneDiensteDatawrapperNoResponsiveAspectRatio = {
51
63
  render: TemplatePageExternalService.bind({}),
52
64
  name: 'Externe Dienste Datawrapper OHNE Responsivem Iframe (Aspect Ratio)',
53
- args: ExternalServiceContent.Datawrapper_CDN_NoResponsiveAspectRatio,
65
+ args: fixtures.Datawrapper_CDN_NoResponsiveAspectRatio.args
54
66
  }
55
67
  export const ExterneDiensteDatawrapperContentRefresher = {
56
68
  render: TemplatePageExternalService.bind({}),
57
69
  name: 'Externe Dienste Datawrapper mit ContentRefresher',
58
- args: ExternalServiceContent.Datawrapper_CDN_NoResponsiveFixedHeightReload,
70
+ args: fixtures.Datawrapper_CDN_NoResponsiveFixedHeightReload.args,
59
71
  }
60
72
  export const WahlGemeindeErgebnis = {
61
73
  render: TemplatePageExternalServiceNoDatapolicyCheck.bind({}),
62
74
  name: 'Externe Dienste Wahl Gemeinde Ergebnis',
63
- args: ExternalServiceContent.Wahl_Gemeinde_Ergebnis,
75
+ args: fixtures.Wahl_Gemeinde_Ergebnis.args,
76
+ }
77
+
78
+ export const Snapshot = {
79
+ render: snapshotTemplate.bind({}),
80
+ name: 'Snapshot',
81
+
82
+ args: fixtures,
83
+ parameters: {
84
+ chromatic: { disableSnapshot: false },
85
+ }
64
86
  }
@@ -0,0 +1,19 @@
1
+ <div class="grid clear-both{{#unless _isTeaser}} mt-10{{/unless}}">
2
+ {{~> components/base/a11y/hiddenText _locaTag="story_externalservice_intro_sr" ~}}
3
+ <div class="c-externalService c-externalService__{{this.externalServiceConfig.externalServiceId}}{{#unless
4
+ this.fixedHeight }} -noFixedHeight{{/unless}} js-load"
5
+ data-hr-external-service-ds='{"id":"{{this.externalServiceConfig.externalServiceId}}","embedCode":"{{this.serviceUrl}}","embedType":"{{this.externalServiceConfig.externalServiceEmbedType}}","dataPolicyCheck": true, "whiteList":{{this.externalServiceConfig.makeDatapolicyCheck}},"iFrameConfig": { {{~#if this.fixedHeight~}}
6
+ "fixedHeight":"{{this.fixedHeight}}"{{~else~}}{{~#if this.aspectRatio}}"aspectRatio":"{{this.aspectRatio}}"{{~else~}}"aspectRatio":"16x9"{{/if}}{{~/if}},"noResponsiveIframe":"{{{this.setResponsiveIframe}}}","webcomponent":"{{{this.setWebcomponent}}}"{{~#if this.setTimedReloadIframe}},"refreshContent":"{{{this.setTimedReloadIframe}}}","refreshIntervall":"{{this.setTimeForReload}}"{{~/if}} }}'>
7
+ {{~> components/external-service/components/external_service_data_policy ~}}
8
+ </div>
9
+ {{~> components/external-service/components/external_service_caption ~}}
10
+ {{~> components/base/a11y/hiddenText _locaTag="story_externalservice_outro_sr" ~}}
11
+ <div class="hidden js-content-settings-button">
12
+ <div class="float-right">
13
+ {{~> components/external-service/components/external_service_settings_button ~}}
14
+ </div>
15
+ </div>
16
+ </div>
17
+ {{~#if (isStorybook)~}}
18
+ <div id="{{this.externalServiceConfig.externalServiceId}}" data-whitelist="{{this.externalServiceConfig.makeDatapolicyCheck}}"></div>
19
+ {{/if}}
@@ -0,0 +1 @@
1
+ {"config":{"template":"default","layout":"grid","renderSnapshotsWrapper":false},"ARD_Mediathek_Video":{"config":{"useAsSnapshot":false},"args":{"externalServiceConfig":{"makeDatapolicyCheck":true,"makeConfigurable":true,"embedAsIFrame":true,"externalServiceId":"ard_mediathek","externalServiceEmbedType":"iFrame","externalServiceName":"ARD Mediathek (Video)"},"serviceUrl":"https://www.ardmediathek.de/embed/Y3JpZDovL2Z1bmsubmV0LzExNzkwL3ZpZGVvLzE3NzQ2NzU?clientType=hr","setResponsiveIframe":false,"setTimedReloadIframe":false,"setTimeForReload":""}},"ARTE_concert_new":{"config":{"useAsSnapshot":false},"args":{"externalServiceConfig":{"makeDatapolicyCheck":true,"makeConfigurable":true,"embedAsIFrame":true,"externalServiceId":"arte_concert_new","externalServiceEmbedType":"iFrame","externalServiceName":"Arte Concert 2.0"},"serviceUrl":"https://www.arte.tv/player/v5/index.php?json_url=https%3A%2F%2Fapi.arte.tv%2Fapi%2Fplayer%2Fv2%2Fconfig%2Fde%2F116593-005-A&lang=de&autoplay=false&mute=0","aspectRatio":"16x9","setResponsiveIframe":false,"setTimedReloadIframe":false,"setTimeForReload":""}},"Datawrapper_CDN_NoResponsiveFixedHeightReload":{"config":{"useAsSnapshot":false},"args":{"externalServiceConfig":{"makeDatapolicyCheck":true,"makeConfigurable":true,"embedAsIFrame":false,"externalServiceId":"datawrapper_cdn","externalServiceEmbedType":"js","externalServiceName":"Datawrapper (Datengrafik)"},"serviceUrl":"https://datawrapper.dwcdn.net/IC3Xn/1/","fixedHeight":"700","setResponsiveIframe":true,"setTimedReloadIframe":true,"setTimeForReload":"300","aspectRatio":""}},"Datawrapper_CDN_NoResponsiveFixedHeight":{"config":{"useAsSnapshot":false},"args":{"externalServiceConfig":{"makeDatapolicyCheck":true,"makeConfigurable":true,"embedAsIFrame":false,"externalServiceId":"datawrapper_cdn","externalServiceEmbedType":"js","externalServiceName":"Datawrapper (Datengrafik)"},"serviceUrl":"https://datawrapper.dwcdn.net/IC3Xn/1/","fixedHeight":"700","setResponsiveIframe":true,"setTimedReloadIframe":false,"setTimeForReload":"","aspectRatio":""}},"Datawrapper_CDN_NoResponsiveAspectRatio":{"config":{"useAsSnapshot":false},"args":{"externalServiceConfig":{"makeDatapolicyCheck":true,"makeConfigurable":true,"embedAsIFrame":false,"externalServiceId":"datawrapper_cdn","externalServiceEmbedType":"js","externalServiceName":"Datawrapper (Datengrafik)"},"serviceUrl":"https://datawrapper.dwcdn.net/IC3Xn/1/","fixedHeight":"","setResponsiveIframe":true,"setTimedReloadIframe":false,"setTimeForReload":"","aspectRatio":"4x3"}},"Datawrapper_CDN":{"args":{"externalServiceConfig":{"makeDatapolicyCheck":true,"makeConfigurable":true,"embedAsIFrame":false,"externalServiceId":"datawrapper_cdn","externalServiceEmbedType":"js","externalServiceName":"Datawrapper (Datengrafik)"},"serviceUrl":"https://datawrapper.dwcdn.net/IC3Xn/1/","fixedHeight":"","setResponsiveIframe":false,"setTimedReloadIframe":false,"setTimeForReload":"","aspectRatio":""}},"Esri":{"config":{"useAsSnapshot":false},"args":{"externalServiceConfig":{"makeDatapolicyCheck":false,"makeConfigurable":true,"embedAsIFrame":true,"externalServiceId":"esri","externalServiceEmbedType":"iFrame","externalServiceName":"Esri (Notfallkarte)"},"serviceUrl":"https://arcg.is/1aW0au0","aspectRatio":"100","setResponsiveIframe":false,"setTimedReloadIframe":false,"setTimeForReload":"","externalServiceCaption":"Notfallkarte"}},"Facebook":{"args":{"externalServiceConfig":{"makeDatapolicyCheck":false,"makeConfigurable":true,"embedAsIFrame":false,"externalServiceId":"facebook-post","externalServiceEmbedType":"js","externalServiceName":"Facebook"},"serviceUrl":"https://www.facebook.com/ZooFFM/posts/1926440010874354","setResponsiveIframe":false,"setTimedReloadIframe":false,"setTimeForReload":""}},"Flourish":{"config":{"useAsSnapshot":false},"args":{"externalServiceConfig":{"makeDatapolicyCheck":false,"makeConfigurable":true,"embedAsIFrame":true,"externalServiceId":"flourish","externalServiceEmbedType":"iFrame","externalServiceName":"Flourish (Datengrafik)"},"serviceUrl":"https://public.flourish.studio/story/18361/embed","fixedHeight":"550","setResponsiveIframe":false,"setTimedReloadIframe":false,"setTimeForReload":""}},"Giphy":{"config":{"useAsSnapshot":false},"args":{"externalServiceConfig":{"makeDatapolicyCheck":false,"makeConfigurable":true,"embedAsIFrame":true,"externalServiceId":"giphy","externalServiceEmbedType":"iFrame","externalServiceName":"Giphy (animiertes GIF)"},"serviceUrl":"https://giphy.com/embed/ONxw4niC96zwk","setResponsiveIframe":false,"setTimedReloadIframe":false,"setTimeForReload":""}},"Instagram":{"config":{"useAsSnapshot":false},"args":{"externalServiceConfig":{"makeDatapolicyCheck":false,"makeConfigurable":true,"embedAsIFrame":false,"externalServiceId":"instagram","externalServiceEmbedType":"js","externalServiceName":"Instagram"},"serviceUrl":"https://www.instagram.com/p/CEjxNt8lW4K/","setResponsiveIframe":false,"setTimedReloadIframe":false,"setTimeForReload":""}},"Twitter":{"config":{"useAsSnapshot":false},"args":{"externalServiceConfig":{"makeDatapolicyCheck":false,"makeConfigurable":true,"embedAsIFrame":false,"externalServiceId":"twitter-post","externalServiceEmbedType":"js","externalServiceName":"X"},"serviceUrl":"https://twitter.com/tagesthemen/status/1578122540362465299","setResponsiveIframe":false,"setTimedReloadIframe":false,"setTimeForReload":""}},"Vimeo":{"config":{"useAsSnapshot":false},"args":{"externalServiceConfig":{"makeDatapolicyCheck":false,"makeConfigurable":true,"embedAsIFrame":true,"externalServiceId":"vimeo","externalServiceEmbedType":"iFrame","externalServiceName":"Vimeo (Video)"},"serviceUrl":"https://player.vimeo.com/video/438111654","setResponsiveIframe":false,"setTimedReloadIframe":false,"setTimeForReload":""}},"Youtube":{"config":{"useAsSnapshot":false},"args":{"externalServiceConfig":{"makeDatapolicyCheck":false,"makeConfigurable":true,"embedAsIFrame":true,"externalServiceId":"youtube","externalServiceEmbedType":"iFrame","externalServiceName":"YouTube (Video)"},"serviceUrl":"https://www.youtube-nocookie.com/embed/LMjXHYHZtrE?rel=0","aspectRatio":"16x9","setResponsiveIframe":false,"setTimedReloadIframe":false,"setTimeForReload":""}},"Youtube_360":{"config":{"useAsSnapshot":false},"args":{"externalServiceConfig":{"makeDatapolicyCheck":false,"makeConfigurable":true,"embedAsIFrame":true,"externalServiceId":"youtube360","externalServiceEmbedType":"iFrame","externalServiceName":"YouTube 360 (360° Video)"},"serviceUrl":"https://www.youtube-nocookie.com/embed/yT1pyf9oXGk","aspectRatio":"16x9","setResponsiveIframe":false,"setTimedReloadIframe":false,"setTimeForReload":"","externalServiceCaption":"Eine Demo der Virtual Reality-Inszenierung '2049: Zeitreise Mobilität'"}},"Wahl_Gemeinde_Ergebnis":{"config":{"template":"noDatapolicyCheck","useAsSnapshot":false},"args":{"externalServiceConfig":{"makeDatapolicyCheck":true,"makeConfigurable":false,"embedAsIFrame":false,"externalServiceId":"wahl-gemeinde-ergebnis","externalServiceEmbedType":"js","externalServiceName":"wahl-gemeinde-ergebnis"},"serviceUrl":"https://www.tagesschau.de/wahl/archiv/2024-06-09-EP-DE/charts/wahlkreis-detail/G06412000-{version}.shtml?externalEmbed*G06412000*&2024-06-09-EP-DE*&https%3A%2F%2Fwww.hessenschau.de%2Fpolitik%2Flandtagswahl%2Fkandidatencheck%2Fwk-versions.json","fixedHeight":"","aspectRatio":"","setResponsiveIframe":false,"setTimedReloadIframe":false,"setTimeForReload":""}}}
@@ -3,7 +3,7 @@
3
3
  <div class="flex items-center">
4
4
  <label class="order-2 cursor-pointer {{> components/button/utilities/button_base_classes}} {{> components/button/utilities/button_variation_classes _variant='primary'}} {{> components/button/utilities/button_dimension_classes _size='lg'}}">
5
5
  {{> components/base/image/icon _icon="send-ds" _addClass="w-5 h-5 fill-white dark:fill-text-dark "}}
6
- <input type="submit" class="pl-2 cursor-pointer" value="Absenden" />
6
+ <input type="submit" class="pl-2 cursor-pointer" value="Absenden" @click.prevent="clickHandler"/>
7
7
  </label>
8
8
 
9
9
  {{#> components/button/button _variant="tertiary"_size="lg" _css="order-1 mr-4" _type="reset"}}
@@ -1,4 +1,5 @@
1
- <div class="relative flex flex-col w-full mb-5 {{_wrapperClass}}"
1
+ <div class=" relative flex flex-col w-full mb-5 {{_wrapperClass}}"
2
+ :class="{'animate-shake': hideDescription() }"
2
3
  ax-load
3
4
  x-data="inputHandler('input{{nextRandom}}','{{_errorMandatory}}',{{#if _isEmail}}'email'{{else}}'{{_type}}'{{/if}},'{{_errorEmail}}','{{#if _formField.forHtmlAttribute}}{{_formField.forHtmlAttribute}}{{else}}{{#if _value}}{{_value}}{{else}}{{_defaultValue}}{{/if}}{{/if}}')"
4
5
  x-ignore
@@ -7,9 +8,10 @@
7
8
  :class="{'border-blue-500': hideError(),'border-red-700': hideDescription() }"
8
9
  x-model="input{{getRandom}}"
9
10
  id="input{{getRandom}}"
11
+ x-bind:data-is-valid="valid ? 'true' : 'false'"
10
12
  {{#if _required}}
11
13
  @focus="isFocused = true;"
12
- @blur="wasFocused = true; isFocused=false"
14
+ @blur="wasFocused = true; isFocused=false; input{{getRandom}}.length > 0 ? valid = true : valid = false; validateEmail()"
13
15
  x-on:keyup ="input{{getRandom}}.length > 0 ? valid = true : valid = false; validateEmail()"
14
16
  {{/if}}
15
17
  type="{{#if _type}}{{_type}}{{/if}}"
@@ -1,7 +1,7 @@
1
1
  export default function inputHandler(element, errorMandatory, type, errorEmail, prefilledText = '') {
2
2
  return {
3
3
  [element]: prefilledText,
4
- valid: false,
4
+ valid: true,
5
5
  wasFocused: false,
6
6
  isFocused: false,
7
7
  validEmail: false,
@@ -1,11 +1,13 @@
1
- <div class="relative flex flex-col w-full mb-5" x-data="{ textarea{{nextRandom}}: '{{#if _formField.isValid}}{{{_formField.forHtmlContent}}}{{else}}{{#if _value}}{{_value}}{{else}}{{_defaultValue}}{{/if}}{{/if}}' , valid: false, wasFocused: false, isFocused: false}">
1
+ <div class="relative flex flex-col w-full mb-5"
2
+ x-data="{ textarea{{nextRandom}}: '{{#if _formField.isValid}}{{{_formField.forHtmlContent}}}{{else}}{{#if _value}}{{_value}}{{else}}{{_defaultValue}}{{/if}}{{/if}}' , valid: true, wasFocused: false, isFocused: false}"
3
+ :class="{'animate-shake': !valid && wasFocused && !isFocused }">
2
4
  <div class="w-full h-4 bg-white"></div>
3
5
  <textarea
4
6
  x-model="textarea{{getRandom}}"
5
7
  id="textarea{{getRandom}}"
6
8
  {{#if _required}}
7
9
  @focus="isFocused = true"
8
- @blur="wasFocused = true; isFocused=false"
10
+ @blur="wasFocused = true; isFocused=false; textarea{{getRandom}}.length > 0 ? valid = true : valid = false"
9
11
  x-on:keyup ="textarea{{getRandom}}.length > 0 ? valid = true : valid = false"
10
12
  {{/if}}
11
13
  value=""
@@ -6,11 +6,59 @@
6
6
  {{this.title}}
7
7
  </h3>
8
8
 
9
- <form class="relative flex flex-col justify-center overflow-hidden group" id="form--{{nextRandom}}" action="{{this.url}}" method="post" enctype="{{if this.isMultipart 'multipart/form-data' 'application/x-www-form-urlencoded'}}" accept-charset="utf-8" >
9
+ <form x-data="contactForm()"
10
+
11
+ @submit.prevent="submitData"
12
+ x-ref="contactFormRef"
13
+ class="relative flex flex-col justify-center overflow-hidden group"
14
+ id="form--{{nextRandom}}"
15
+ action="{{this.url}}"
16
+ method="post"
17
+ enctype="{{if this.isMultipart 'multipart/form-data' 'application/x-www-form-urlencoded'}}"
18
+ accept-charset="utf-8" >
10
19
  {{> components/forms/fields }}
11
20
 
12
21
  {{> components/forms/controls }}
13
22
  </form>
23
+ <script>
24
+ function contactForm() {
25
+ return {
26
+ formData: {
27
+ name: '',
28
+ email: '',
29
+ message: ''
30
+ },
31
+ clickHandler() {
32
+ console.log('check for Error ');
33
+ const form = this.$refs.contactFormRef;
34
+ const formData = new FormData(form);
35
+ const fields = Array.from(form.elements); // Array of all form fields
36
+
37
+ // Loop through each field, focus it, blur it, and serialize the data
38
+ fields.forEach((field) => {
39
+ if (field.type !== 'submit') { // Skip the submit button
40
+ field.focus(); // Focus the field
41
+ field.blur(); // Immediately unfocus (blur) the field
42
+ }
43
+ });
44
+ if(form.reportValidity()){
45
+ this.submitData();
46
+ }
47
+
48
+ },
49
+ submitData() {
50
+ const formData = new FormData(this.$refs.contactFormRef);
51
+ // Convert the FormData to a serialized string
52
+ const serializedData = Array.from(formData.entries())
53
+ .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)
54
+ .join('&');
55
+
56
+ // Log the serialized form data
57
+ console.log('DATA: ' + serializedData);
58
+ }
59
+ }
60
+ }
61
+ </script>
14
62
  {{/components/forms/backgroundBox }}
15
63
  {{~else~}}
16
64
  {{> content/webform/components/webform _addClass="print:hidden copytext__clearBox marginTrailer--m"}}
@@ -1,6 +1,6 @@
1
1
  import { fireEvent, hr$, listen, loadScript } from 'hrQuery'
2
2
  import { uxAction } from 'base/tracking/pianoHelper.subfeature'
3
- import SettingsCookie from 'components/externalService/globalSettingsCookie.subfeature'
3
+ import SettingsCookie from 'components/external-service/globalSettingsCookie.subfeature'
4
4
 
5
5
  const ArdPlayerLoader = function (options, trackingData, rootElement) {
6
6
  'use strict'