hr-design-system-handlebars 0.60.0 → 0.61.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,28 @@
1
+ # v0.61.1 (Mon Oct 10 2022)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - Dpe 1677 [#334](https://github.com/mumprod/hr-design-system-handlebars/pull/334) (zouhair1 [@selbaciri](https://github.com/selbaciri))
6
+
7
+ #### Authors: 2
8
+
9
+ - Saad El Baciri ([@selbaciri](https://github.com/selbaciri))
10
+ - selbaciri (zouhair1)
11
+
12
+ ---
13
+
14
+ # v0.61.0 (Fri Oct 07 2022)
15
+
16
+ #### 🚀 Enhancement
17
+
18
+ - Dpe 1696 podcast player cosmetics [#337](https://github.com/mumprod/hr-design-system-handlebars/pull/337) ([@StefanVesper](https://github.com/StefanVesper))
19
+
20
+ #### Authors: 1
21
+
22
+ - SonicSoulSurfer ([@StefanVesper](https://github.com/StefanVesper))
23
+
24
+ ---
25
+
1
26
  # v0.60.0 (Fri Oct 07 2022)
2
27
 
3
28
  #### 🚀 Enhancement
@@ -1,5 +1,8 @@
1
1
  module.exports = Object.create(null)
2
2
  module.exports['components/Button.hbs'] = '<button\n class=\'js-load btn\n {{inline-switch size \'["sm","lg","xl"]\' \'["btn--sm","btn--lg","btn--xl","btn--md"]\'}}\n {{inline-switch type \'["secondary"]\' \'["btn--secondary","btn--primary"]\'}}\'\n>\n {{label}}\n</button>\n<div class=\'js-load outer\' data-hr-foo=\'{"test":"bar"}\'>\n <div class=\'inner\'></div>\n</div>'
3
+ module.exports['components/base/link.hbs'] = '{{#with this.link}}\n <a {{#with this.webviewUrl}}data-webviewurl="{{this}}"{{/with}} href="{{this.url}}" {{#with this.webviewUrl}}{{/with}} \n class="sb-link{{#if ../_css}} {{../_css}}{{/if}}{{#if ../_doTracking}} js-load{{else}}{{#if ../this.content.isFileDownload}} js-loadScript{{/if}}{{/if}}{{#if ../_isSelected}} {{defaultIfEmpty ../_selectedCssClass "-current"}}{{/if}}"\n {{#if ../_doNavigationTracking}}\n data-hr-click-tracking=\'{"settings": [{"type":"uxAction","secondLevelId": "1","clickLabel":"{{../_clickLabelType}}{{#if ../_clickLabelPrefix1}}::{{../_clickLabelPrefix1}}{{/if}}::{{../_clickLabelPrefix2}}-Link geklickt"}]}\'\n {{/if}}\n {{#if ../_doTracking}}\n {{#with this.content.trackingData}}data-hr-click-tracking=\'{"settings": [{"type":"uxAction","secondLevelId": "{{this.secondLevelId}}","clickLabel": "{{#if ../this.content.isFileDownload}}{{this.pageName}}{{else}}mediabuttonclick::{{../../_clickLabelPrefix1}}::{{../../_clickLabelPrefix2}}{{/if}}"}]}\'{{/with}}\n {{else}}\n {{#if ../this.content.isFileDownload}}\n {{#with this.content.trackingData}}data-hr-click-tracking=\'{"settings": [{"type":"download","secondLevelId": "{{this.secondLevelId}}","clickLabel": "{{this.pageName}}"}]}\'{{/with}}\n {{/if}}\n {{/if}}\n {{#if this.isTargetBlank}} target="_blank" rel="noopener{{#if this.hasNoReferrerFlag}} noreferrer{{/if}}"{{/if}}\n {{#if ../_isAriaHidden}} aria-hidden="true" tabindex="-1"{{/if}}\n >\n{{/with}} \n {{~ decorator_body ~}} \n </a>\n'
4
+ module.exports['components/base/loadSSI.hbs'] = '{{#if (isStorybook)}} \n {{> components/base/load_dynamic _templatePath=_templatePath}} \n{{else}}\n {{{this}}}\n{{/if}} '
5
+ module.exports['components/base/load_dynamic.hbs'] = '{{#switch _templatePath}}\n {{#case "components/teaser/content_nav/teaser_content_nav"}}\n {{> components/teaser/content_nav/teaser_content_nav}}\n {{/case}}\n {{#case "components/site_header/service_navigation/service_navigation_item"}}\n {{> components/site_header/service_navigation/service_navigation_item}}\n {{/case}}\n {{#case "components/teaser/group_teaser/group_teaser"}}\n {{> components/teaser/group_teaser/group_teaser}}\n {{/case}}\n {{#case "components/teaser/tabbox/group_tabbox"}}\n {{> components/teaser/tabbox/group_tabbox}}\n {{/case}}\n {{#case "components/teaser/tabbox/teaser_tabbox"}}\n {{> components/teaser/tabbox/teaser_tabbox}}\n {{/case}}\n {{#case "components/teaser/cluster/teaser_cluster"}}\n {{> components/teaser/cluster/teaser_cluster}}\n {{/case}}\n {{#case "components/teaser/teaser_standard"}}\n {{> components/teaser/teaser_standard}}\n {{/case}}\n {{#case "components/teaser/teaser_alternative"}}\n {{> components/teaser/teaser_alternativ}}\n {{/case}}\n {{#case "components/teaser/components/teaser_comments"}}\n {{> components/teaser/components/teaser_comments}}\n {{/case}}\n{{/switch}}'
3
6
  module.exports['components/button/button.hbs'] = '<button \n {{~#if _aria}} aria-label="{{_aria}}"{{/if}} \n {{~#if _isButton}} type="button"{{else}} type="submit"{{/if~}} \n {{~#if _name}} name="{{_name}}"{{/if}} \n {{~#if _title}} title="{{_title}}"{{/if}} \n class="{{_addClass}}{{#if _addClass2}} {{_addClass2}}{{/if}}{{#if _webview}} -webview{{/if}}" \n {{~#if _value}} value="{{_value}}"{{/if}} \n {{~#if _alpineClick}} @click="{{_alpineClick}}"{{/if}} \n {{~#if _x-show}} x-show="{{_x-show}}"{{/if}} \n>\n {{~#if _showIcon~}}\n {{> components/base/image/icon _icon=_icon _iconmap=_iconmap _addClass=_addIconClass _webview=_webview}}\n {{/if~}}\n {{~#if _label~}}\n <span {{#if _srOnly}}class="sr-only"{{/if}}>\n {{~_label~}}\n </span>\n {{/if~}}\n</button>'
4
7
  module.exports['components/button/button_pseudo.hbs'] = '{{#decorator \'components/base/link\'}}\n <span\n class=\'px-4 py-2.5 border\n {{inline-switch\n _color\n \'["white","grey","blue"]\'\n \'["text-white border-white","text-grey-scorpion border-grey-scorpion","text-white bg-blue-congress","text-toplineColor border-toplineColor"]\'\n }}\n font-heading hover:bg-white hover:text-toplineColor hover:border-toplineColor\'\n >\n {{_linkTitle}}\n </span>\n{{/decorator}}'
5
8
  module.exports['components/button/button_round.hbs'] = '{{> components/button/button \n _aria=_aria\n _isButton=_isButton\n _title=_title\n _name=_name\n _label=_label\n _value=_value\n _showIcon="true"\n _icon=_icon\n _iconmap=_iconmap\n _addIconClass="w-10 h-10 inline"\n _addClass="fill-white hover:text-white"\n _addClass2=_addClass\n _webview=_webview\n _x-show=_x-show\n _alpineClick=_alpineClick\n _srOnly=_srOnly\n}}'
@@ -10,9 +13,6 @@ module.exports['components/content_nav/content_nav_dropdown.hbs'] = '<nav \n
10
13
  module.exports['components/content_nav/content_nav_item.hbs'] = '<li x-init="chooseListItemStyles({{_teasersize}},{{_islist}},{{_ismixed}},{{_isdropdown}},{{_isflow}})" \nclass="h-10 md:mx-0 overflow-hidden text-base font-copy list-none border-blue-congress fill-congress text-blue-congress bg-white hover:bg-blue-congress hover:fill-white hover:text-white hover:underline {{#if this.isSelected}} font-bold -current{{/if}} c-content-nav__item">\n {{#decorator \'components/base/link\' \n _doNavigationTracking="true" \n _clickLabelType="Contentnavigation" \n _clickLabelPrefix1=this.title \n _css="flex items-center py-2 px-2 h-10 whitespace-nowrap overflow-hidden" \n _isSelected=this.isSelected\n _selectedCssClass="is-selected"\n }}\n \n <span class="block text-base grow font-copy js-title truncate ... ">{{this.title}}</span>\n\n {{#if this.link.hasIcon}}\n {{> components/base/image/icon _icon=this.link.iconName _addClass="ml-2 h-4 w-4" _iconmap="icons"}}\n {{/if}}\n\n <span>\n {{>components/base/image/icon _icon="arrow-right" _addClass="h-4 w-4 ml-2" }} \n </span>\n\n {{/decorator}} \n</li>\n\n\n'
11
14
  module.exports['components/content_nav/content_nav_list.hbs'] = '<ul :class="( ({{this.isMixed}} && {{_teasersize}} < 50 ) || ( {{this.isMixed}} && window.innerWidth < 768 ) || {{this.isDropdown}} ) && $store.contentNavDropdownIsOpen == true ? \'!shadow-[1px_8px_9px_0px_rgba(50,50,93,0.10)] !px-0 mt-0\' : \'\'"\n class="flex flex-wrap w-full px-2 z-10000 md:!px-0 last:border-b-0"> \n \n {{~#each this.contentNavEntries~}}\n \n {{~#if this.isGroup~}}\n \n {{#if ../isDropdown}} \n <li class="w-full h-auto overflow-hidden text-base list-none border-b border-gray-400 bg-blue-accented text-blue-congress md:mx-0 font-copy fill-congress c-content-nav__group">\n <div class="flex items-center h-10 p-2 c-content-nav__group-title">{{this.title}}</div>\n <ul class="c-content-nav__group-list !px-0 mt-0">\n {{~#each this.navigationGroup~}}\n {{> components/content_nav/content_nav_item \n _teasersize=../../_teasersize \n _isdropdown=../../isDropdown \n _ismixed=../../isMixed \n _islist=../../isList \n _isflow=../../isFlow}}\n {{~/each~}}\n </ul>\n </li> \n {{/if}}\n {{else}} \n {{> components/content_nav/content_nav_item \n _teasersize=../_teasersize \n _isdropdown=../isDropdown \n _ismixed=../isMixed \n _islist=../isList \n _isflow=../isFlow}}\n {{~/if~}}\n {{~/each~}}\n</ul>\n'
12
15
  module.exports['components/event/instant_dates.hbs'] = '{{#if this.moreThenOneEvent}}\n {{#with this.firstInstant}}\n <span class=\'text-2xl font-headingSerif font-bold\'>{{this.startDate.day}}</span>\n <span class=\'text-sm font-headingSerif\'>{{this.startDate.monthNameShort}}</span>\n {{/with}}\n {{#if this.moreThenTwoEvents}}\n <span class=\'text-sm font-headingSerif\'>|</span>\n {{else}}\n <span class=\'text-sm font-headingSerif\'>+</span>\n {{/if}}\n {{#with this.lastInstant}}\n <span class=\'text-2xl font-headingSerif font-bold\'>{{this.startDate.day}}</span>\n <span class=\'text-sm font-headingSerif\'>{{this.startDate.monthNameShort}}</span>\n {{/with}}\n{{else}}\n {{#with this.firstInstant}}\n <span class=\'text-sm font-headingSerif\'>{{this.startDate.weekdayNameShort}}</span>\n <span class=\'text-2xl font-headingSerif font-bold\'>{{this.startDate.day}}</span>\n <span class=\'text-sm font-headingSerif\'>{{this.startDate.monthNameShort}}</span>\n {{/with}}\n{{/if}}'
13
- module.exports['components/base/link.hbs'] = '{{#with this.link}}\n <a {{#with this.webviewUrl}}data-webviewurl="{{this}}"{{/with}} href="{{this.url}}" {{#with this.webviewUrl}}{{/with}} \n class="sb-link{{#if ../_css}} {{../_css}}{{/if}}{{#if ../_doTracking}} js-load{{else}}{{#if ../this.content.isFileDownload}} js-loadScript{{/if}}{{/if}}{{#if ../_isSelected}} {{defaultIfEmpty ../_selectedCssClass "-current"}}{{/if}}"\n {{#if ../_doNavigationTracking}}\n data-hr-click-tracking=\'{"settings": [{"type":"uxAction","secondLevelId": "1","clickLabel":"{{../_clickLabelType}}{{#if ../_clickLabelPrefix1}}::{{../_clickLabelPrefix1}}{{/if}}::{{../_clickLabelPrefix2}}-Link geklickt"}]}\'\n {{/if}}\n {{#if ../_doTracking}}\n {{#with this.content.trackingData}}data-hr-click-tracking=\'{"settings": [{"type":"uxAction","secondLevelId": "{{this.secondLevelId}}","clickLabel": "{{#if ../this.content.isFileDownload}}{{this.pageName}}{{else}}mediabuttonclick::{{../../_clickLabelPrefix1}}::{{../../_clickLabelPrefix2}}{{/if}}"}]}\'{{/with}}\n {{else}}\n {{#if ../this.content.isFileDownload}}\n {{#with this.content.trackingData}}data-hr-click-tracking=\'{"settings": [{"type":"download","secondLevelId": "{{this.secondLevelId}}","clickLabel": "{{this.pageName}}"}]}\'{{/with}}\n {{/if}}\n {{/if}}\n {{#if this.isTargetBlank}} target="_blank" rel="noopener{{#if this.hasNoReferrerFlag}} noreferrer{{/if}}"{{/if}}\n {{#if ../_isAriaHidden}} aria-hidden="true" tabindex="-1"{{/if}}\n >\n{{/with}} \n {{~ decorator_body ~}} \n </a>\n'
14
- module.exports['components/base/loadSSI.hbs'] = '{{#if (isStorybook)}} \n {{> components/base/load_dynamic _templatePath=_templatePath}} \n{{else}}\n {{{this}}}\n{{/if}} '
15
- module.exports['components/base/load_dynamic.hbs'] = '{{#switch _templatePath}}\n {{#case "components/teaser/content_nav/teaser_content_nav"}}\n {{> components/teaser/content_nav/teaser_content_nav}}\n {{/case}}\n {{#case "components/site_header/service_navigation/service_navigation_item"}}\n {{> components/site_header/service_navigation/service_navigation_item}}\n {{/case}}\n {{#case "components/teaser/group_teaser/group_teaser"}}\n {{> components/teaser/group_teaser/group_teaser}}\n {{/case}}\n {{#case "components/teaser/tabbox/group_tabbox"}}\n {{> components/teaser/tabbox/group_tabbox}}\n {{/case}}\n {{#case "components/teaser/tabbox/teaser_tabbox"}}\n {{> components/teaser/tabbox/teaser_tabbox}}\n {{/case}}\n {{#case "components/teaser/cluster/teaser_cluster"}}\n {{> components/teaser/cluster/teaser_cluster}}\n {{/case}}\n {{#case "components/teaser/teaser_standard"}}\n {{> components/teaser/teaser_standard}}\n {{/case}}\n {{#case "components/teaser/teaser_alternative"}}\n {{> components/teaser/teaser_alternativ}}\n {{/case}}\n {{#case "components/teaser/components/teaser_comments"}}\n {{> components/teaser/components/teaser_comments}}\n {{/case}}\n{{/switch}}'
16
16
  module.exports['components/grid/grid.hbs'] = '\n<div class="grid grid-page">\n <div class="grid grid-cols-12 py-6 bg-white sm:px-8 col-full sm:col-main gap-x-6 gap-y-6">\n {{#>components/grid/grid_group _size="100"}}\n <h2 class="text-4xl headline--barrier col-span-full">Gruppen 100%</h2>\n {{#>components/grid/grid_item _size="12"}}\n <a href="#">\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 12/12 = 100% \n </div>\n </a>\n {{/components/grid/grid_item}} \n {{/components/grid/grid_group}} \n {{#>components/grid/grid_group _backgroundColor="1"}} \n <h2 class="text-4xl headline--barrier col-span-full">Gruppen 100% mit blauen Hintergrung bis Rand</h2>\n {{#>components/grid/grid_item _size="6"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 6/12 = 50% \n </div>\n {{/components/grid/grid_item}} \n {{#>components/grid/grid_item _size="6"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 6/12 = 50% \n </div>\n {{/components/grid/grid_item}} \n {{/components/grid/grid_group}} \n\n {{#>components/grid/grid_group _size="100"}}\n\n <h2 class="text-4xl headline--barrier col-span-full">Gruppen 100%</h2>\n {{#>components/grid/grid_item _size="6"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 6/12 = 50% \n </div>\n {{/components/grid/grid_item}} \n {{#>components/grid/grid_item _size="6"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 6/12 = 50% \n </div>\n {{/components/grid/grid_item}} \n\n {{#>components/grid/grid_item _size="4"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 4/12 = 33% \n </div>\n {{/components/grid/grid_item}} \n {{#>components/grid/grid_item _size="4"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 4/12 = 33% \n </div> \n {{/components/grid/grid_item}} \n {{#>components/grid/grid_item _size="4"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 4/12 = 33% \n </div> \n {{/components/grid/grid_item}}\n {{/components/grid/grid_group}}\n {{#>components/grid/grid_group_tabbed }}\n <h2 class="text-4xl headline--barrier col-span-full">Gruppen 100% Tabbed</h2>\n {{#>components/grid/grid_item _size="3"}}\n <div class="flex items-center justify-center text-4xl text-white bg-gray-500 aspect-video">\n 3/12 = 25% \n </div> \n {{/components/grid/grid_item}}\n \n {{#>components/grid/grid_item _size="3"}}\n <div class="flex items-center justify-center text-4xl text-white bg-gray-500 aspect-video">\n 3/12 = 25% \n </div> \n {{/components/grid/grid_item}}\n\n {{#>components/grid/grid_item _size="3"}}\n <div class="flex items-center justify-center text-4xl text-white bg-gray-500 aspect-video">\n 3/12 = 25% \n </div> \n {{/components/grid/grid_item}}\n\n {{#>components/grid/grid_item _size="3"}}\n <div class="flex items-center justify-center text-4xl text-white bg-gray-500 aspect-video">\n 3/12 = 25% \n </div> \n {{/components/grid/grid_item}} \n \n {{/components/grid/grid_group_tabbed}} \n {{#>components/grid/grid_group}} \n <h2 class="text-4xl headline--barrier col-span-full">Gruppen 100%</h2>\n {{#>components/grid/grid_item _size="4"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 4/12 = 33% \n </div>\n {{/components/grid/grid_item}} \n {{#>components/grid/grid_item _size="4"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 4/12 = 33% \n </div> \n {{/components/grid/grid_item}} \n {{#>components/grid/grid_item _size="4"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 4/12 = 33% \n </div> \n {{/components/grid/grid_item}} \n {{/components/grid/grid_group}} \n {{#>components/grid/grid_group _size="50"}}\n <h2 class="text-4xl headline--barrier col-span-full">Gruppen 50%</h2>\n {{#>components/grid/grid_item _size="12"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 6/12 = 50% \n </div>\n {{/components/grid/grid_item}} \n {{#>components/grid/grid_item _size="12"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 6/12 = 50% \n </div> \n {{/components/grid/grid_item}} \n {{/components/grid/grid_group}} \n {{#>components/grid/grid_group _size="50"}}\n <h2 class="text-4xl headline--barrier col-span-full">Gruppen 50%</h2>\n {{#>components/grid/grid_item _size="6"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 6/12 = 50% \n </div>\n {{/components/grid/grid_item}} \n {{#>components/grid/grid_item _size="6"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 6/12 = 50% \n </div> \n {{/components/grid/grid_item}} \n {{/components/grid/grid_group}} \n {{#>components/grid/grid_group _size="66"}}\n <h2 class="text-4xl headline--barrier col-span-full">Gruppen 66%</h2>\n {{#>components/grid/grid_item _size="12"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 8/12 = 66% \n </div>\n {{/components/grid/grid_item}} \n {{#>components/grid/grid_item _size="12"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 8/12 = 66% \n </div> \n {{/components/grid/grid_item}} \n {{/components/grid/grid_group}} \n {{#>components/grid/grid_group _size="33"}}\n <h2 class="text-4xl headline--barrier col-span-full">Gruppen 33%</h2>\n {{#>components/grid/grid_item _size="12"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 4/12 = 33% \n </div>\n {{/components/grid/grid_item}} \n {{#>components/grid/grid_item _size="12"}}\n <div class="flex items-center justify-center text-5xl text-white bg-gray-500 aspect-video">\n 4/12 = 33% \n </div> \n {{/components/grid/grid_item}} \n {{/components/grid/grid_group}} \n </div>\n</div>\n'
17
17
  module.exports['components/grid/grid_group.hbs'] = '{{~#if _backgroundColor}}\n {{#>components/grid/grid_group_highlight _backgroundColor=this.backgroundColor }} \n {{> @partial-block }}\n {{/components/grid/grid_group_highlight }}\n{{else}}\n {{#>components/grid/grid_group_standard _size=this.teaserSize }} \n {{> @partial-block }}\n {{/components/grid/grid_group_standard }}\n{{/if}}'
18
18
  module.exports['components/grid/grid_group_highlight.hbs'] = '</div>\n<div class="grid col-full grid-page {{inline-switch _backgroundColor \'["1","2"]\' \'[" bg-grey-alto"," bg-orange-bridesmaid"]\'}}">\n <section class="grid grid-cols-12 py-6 sm:px-8 col-full sm:col-main gap-x-6 gap-y-9">\n <div class="grid content-start grid-cols-12 col-span-12 gap-x-6 gap-y-6">\n {{> @partial-block }}\n </div>\n </section>\n</div>\n<div class="grid grid-cols-12 py-6 bg-white sm:px-8 col-full sm:col-main gap-x-6 gap-y-6">'
@@ -31,23 +31,24 @@ module.exports['components/teaser/teaser_standard.hbs'] = '<article class="relat
31
31
  module.exports['components/teaser/teaser_standard_event.hbs'] = '<article class="col-span-12 flex gap-y-3 gap-x-4 \n {{~inline-switch this.teaserSize \'["25","33","50"]\' \'[" md:col-span-3"," md:col-span-4"," md:col-span-6",""]\'}}\n {{~#if this.isMobile1to1}} js-is1to1 px-5 md:px-0 md:flex-col{{else}} flex-col{{/if~}} \n "\n x-data="{ avStart: false }"\n {{#if this.isMobile1to1}}\n :class="avStart ? \'flex-col\' : \'flex-row\'"\n {{/if}} \n >\n \n {{#if this.isEvent}}\n {{! ---- To handle two events ----}}\n {{#if this.moreThenOneEvent}}\n <article class="mx-5 md:mx-0 relative col-span-12 flex gap-y-4 gap-x-4 {{inline-switch teaserSize \'["33","50"]\' \'["md:col-span-4 flex-col","md:col-span-6 flex-col","flex-col"]\'}} ">\n <figure class="relative \n {{~#if this.isMobile1to1}} basis-2/5 md:flex-full ar-1-1 md:ar-16-9{{else}} ar-16-9{{/if~}}"> \n {{> components/teaser/components/teaser_lead _isMobile1to1=this.isMobile1to1 _teaserSize=this.teaserSize _aspectRatio=(inline-switch this.teaserSize \'["25"]\' \'["ar-1-1 md:ar-16-9", "ar-16-9"]\') }} \n </figure>\n <div class="absolute flex justify-center w-16 h-full bg-gradient-to-t from-white\n {{inline-switch teaserSize \'["100"]\' \'["bottom-0 w-full h-2/5 bg-neutral-200 opacity-80"]\'}}" \n aria-hidden="true">\n <div class="self-center block mx-4 text-center text-black">\n <span class="text-xl font-headingSerif font-bold">{{ this.firstInstant.startDate.day}}</span>\n <span class="text-xl font-headingSerif">{{this.lastInstant.startDate.monthNameShort}}</span>\n +<br>\n <span class="text-xl font-headingSerif font-bold">{{this.lastInstant.startDate.day}}</span>\n <span class="text-xl font-headingSerif">{{this.lastInstant.startDate.monthNameShort}} </span>\n </div>\n <div class="{{~#if this.isMobile1to1}}basis-3/5 md:flex-full{{/if~}}\n {{inline-switch teaserSize \'["100"]\' \'["border-l-2 border-dotted pt-5 pl-4 border-slate-600"]\'}}\n {{inline-switch teaserSize \'["50","33"]\' \'[" hidden"," hidden"]\'}}">\n <header class="md:px-0{{#unless this.isMobile1to1}} px-5{{/unless}}">\n {{#decorator \'components/base/link\' css="hover:text-toplineColor" }} \n {{> components/teaser/components/teaser_heading \n fontVariant=this.headingFontVariant\n headlineTag=this.headlineTag \n label=this.label \n readMore=this.link.readMoreText.readMoreScreenreader \n size=this.teaserSize \n title=this.title \n topline=this.topline \n teaserType=this.teaserType\n _isMobile1to1=this.isMobile1to1}} \n {{/decorator}} \n </header>\n <section class="md:px-0{{#unless this.isMobile1to1}} px-5{{/unless}}">\n {{> components/teaser/components/teaser_text text=this.shorttext size=this.teaserSize }}\n </section>\n </div>\n </div>\n </article>\n {{else if this.moreThenTwoEvents}}\n {{! ---- To handle more than two events ----}}\n <article class="mx-5 md:mx-0 relative col-span-12 flex gap-y-4 gap-x-4 {{inline-switch teaserSize \'["33","50"]\' \'["md:col-span-4 flex-col","md:col-span-6 flex-col","flex-col"]\'}} ">\n <figure class="relative \n {{~#if this.isMobile1to1}} basis-2/5 md:flex-full ar-1-1 md:ar-16-9{{else}} ar-16-9{{/if~}}"> \n {{> components/teaser/components/teaser_lead _isMobile1to1=this.isMobile1to1 _teaserSize=this.teaserSize _aspectRatio=(inline-switch this.teaserSize \'["25"]\' \'["ar-1-1 md:ar-16-9", "ar-16-9"]\') }} \n </figure>\n <div class="absolute flex justify-center w-16 h-full bg-gradient-to-t from-white" aria-hidden="true">\n <div class="self-center block mx-4 text-center text-black">\n <span class="text-xl font-headingSerif font-bold">{{ this.firstInstant.startDate.day }} </span>\n <span class="text-xl font-headingSerif">{{this.lastInstant.startDate.monthNameShort }} </span>\n |<br>\n <span class="text-xl font-headingSerif font-bold">{{this.lastInstant.startDate.day }} </span>\n <span class="text-xl font-headingSerif">{{this.lastInstant.startDate.monthNameShort }} </span>\n </div>\n </div>\n </article>\n {{else}}\n {{! ---- To handle a single event ----}}\n <article class="mx-5 md:mx-0 relative col-span-12 flex gap-y-4 gap-x-4 {{inline-switch teaserSize \'["33","50"]\' \'["md:col-span-4 flex-col","md:col-span-6 flex-col","flex-col"]\'}} ">\n <figure class="relative \n {{~#if this.isMobile1to1}} basis-2/5 md:flex-full ar-1-1 md:ar-16-9{{else}} ar-16-9{{/if~}}"> \n {{> components/teaser/components/teaser_lead _isMobile1to1=this.isMobile1to1 _teaserSize=this.teaserSize _aspectRatio=(inline-switch this.teaserSize \'["25"]\' \'["ar-1-1 md:ar-16-9", "ar-16-9"]\') }} \n </figure>\n <div class="absolute flex justify-center w-16 h-full bg-gradient-to-t from-white\n {{inline-switch teaserSize \'["100"]\' \'["bottom-0 w-full h-2/5 bg-neutral-200 opacity-80"]\'}}" \n aria-hidden="true">\n <div class="self-center block mx-4 text-center text-black">\n <span class="text-xl font-headingSerif">{{this.lastInstant.startDate.weekdayNameShort }} </span>\n <span class="text-xl font-headingSerif">{{this.lastInstant.startDate.day }} </span>\n <span class="text-xl font-headingSerif">{{this.lastInstant.startDate.monthNameShort }} </span>\n </div>\n <div class=" {{~#if this.isMobile1to1}}basis-3/5 md:flex-full{{/if~}}\n {{inline-switch teaserSize \'["100"]\' \'["border-l-2 border-dotted pt-5 pl-4 border-slate-600"]\'}}\n {{inline-switch teaserSize \'["50","33"]\' \'[" hidden"," hidden"]\'}}">\n <header class="md:px-0{{#unless this.isMobile1to1}} px-5{{/unless}}">\n {{#decorator \'components/base/link\' _css="hover:text-toplineColor" }} \n {{> components/teaser/components/teaser_heading \n fontVariant=this.headingFontVariant\n headlineTag=this.headlineTag \n label=this.label \n readMore=this.link.readMoreText.readMoreScreenreader \n size=this.teaserSize \n title=this.title \n topline=this.topline \n teaserType=this.teaserType\n _isMobile1to1=this.isMobile1to1}} \n {{/decorator}} \n </header>\n <section class="md:px-0{{#unless this.isMobile1to1}} px-5{{/unless}}">\n {{> components/teaser/components/teaser_text text=this.shorttext size=this.teaserSize }}\n </section>\n </div>\n </div>\n </article>\n {{/if}}\n {{else}}\n <figure class="relative \n {{~#if this.isMobile1to1}} basis-2/5 md:flex-full ar-1-1 md:ar-16-9{{else}} ar-16-9{{/if~}}"> \n {{> components/teaser/components/teaser_lead _isMobile1to1=this.isMobile1to1 _teaserSize=this.teaserSize _aspectRatio=(inline-switch this.teaserSize \'["25"]\' \'["ar-1-1 md:ar-16-9", "ar-16-9"]\') }} \n </figure>\n {{/if}} \n <div class="{{~#if this.isMobile1to1}}basis-3/5 md:flex-full{{/if~}}{{inline-switch teaserSize \'["100"]\' \'[" hidden"]\'}}">\n <header class="md:px-0{{#unless this.isMobile1to1}} px-5{{/unless}}">\n {{#decorator \'components/base/link\' _css="hover:text-toplineColor" }} \n {{> components/teaser/components/teaser_heading \n fontVariant=this.headingFontVariant\n headlineTag=this.headlineTag \n label=this.label \n readMore=this.link.readMoreText.readMoreScreenreader \n size=this.teaserSize \n title=this.title \n topline=this.topline \n teaserType=this.teaserType\n _isMobile1to1=this.isMobile1to1}} \n {{/decorator}} \n </header>\n <section class="md:px-0{{#unless this.isMobile1to1}} px-5{{/unless}}">\n {{> components/teaser/components/teaser_text text=this.shorttext size=this.teaserSize }}\n </section>\n </div>\n</article>'
32
32
  module.exports['components/base/image/icon.hbs'] = '{{!--@\nFügt ein SVG-basiertes Icon ein.\nDas Icon wird aus einer SVG-SpriteMap bezogen.\n\n```hbs\n{{> base/image/icon\n _icon="..."\n _addClass="..."\n _areHidden=[false|true*]\n _iconTitle=""\n _iconDesc=""\n _iconmap=\n\n }}\n```\n\n`_icon` Name des Icons, das dargestellt werden soll. Entspricht der ID in der SVG-SpriteMap.\n Diese ergibt sich durch den Dateinamen des ursprünglichen SVG-Icons.\n *!!! Ohne Angabe eines Icon-Namens wird kein Markup erzeugt !!!*<br>\n`_addClass` Möglichkeit zur Angabe einer zusätzlichen CSS-Klasse. `icon` ist Standard.<br>\n`_ariaHidden` default true\n`_iconTitle` Title Element für SVG inklusive Aria Verknüpfung\n`_iconDesc` Description für SVG inklusive Aria Verknüpfung. Ohne iconTitle wird iconDesc nicht ausgespielt\n`_iconmap` Benennt das Unterverzeichnis, unter dem nach der SVG-SpriteMap gesucht wird.\n Die SVG-SpriteMap hat immer den Namen "svgmap.min.svg".\n Default ist `icons` (entspricht dem Standard-Icon-Set)<br>\n`_overlayIcon` Erlaubt die Angabe eines zweiten Icon-Names, der über das erste gelegt wird.\n Es wird davon ausgegangen, das das Overlay sich in der gleichen SVG-SpriteMap befindet.<br>\n\nBeispielaufruf:\n```hbs\n{{> base/image/icon _icon="arrow-up"}}\n```\n\nTODOs zu einem späteren Zeitpunkt:\n\nErklärung / Hinweise / Best Practices für "Accessible SVG":\n- http://www.sitepoint.com/tips-accessible-svg/\n- http://www.paciellogroup.com/blog/2013/12/using-aria-enhance-svg-accessibility/\n\n--}}\n{{#if _icon}}\n<svg class="sb-icon {{~#if _addClass }} {{_addClass}}{{/if}} {{#if _webview}} -webview{{/if}}" role="presentation" aria-hidden="{{defaultIfEmpty _ariaHidden true}}"\n{{# if brand}} data-brand="{{brand}}"{{/if}}\n {{~#if _iconTitle }} {{changeRandom~}}\n aria-labelledby="iconTitle--{{getRandom}}"\n {{~#if _iconDesc }} aria-describedby="iconDesc--{{getRandom}}"{{~/if~}}\n {{~/if~}}>\n\n {{~#if _iconTitle ~}}\n <title id="iconTitle--{{getRandom}}">{{_iconTitle}}</title>\n {{~#if _iconDesc ~}}\n <description id="iconDesc--{{getRandom}}">{{_iconDesc}}</description>\n {{~/if~}}\n {{~/if~}}\n\n {{~#if _iconText ~}}\n <g>\n <svg>\n {{~/if~}}\n\n <use xlink:href="{{resourceUrl (replaceTokens "assets/base/icons/{0}/svgmap.min.svg" (defaultIfEmpty _iconmap "icons") ) _brand=(if this.brand this.brand)}}#{{_icon}}"></use>\n {{#if _overlayIcon }}\n <use xlink:href="{{resourceUrl (replaceTokens "assets/base/icons/{0}/svgmap.min.svg" (defaultIfEmpty _iconmap "icons") ) _brand=(if this.brand this.brand)}}#{{_overlayIcon}}"></use>\n {{/if}}\n {{~#if _iconText ~}}\n </svg>\n </g>\n <text dy="0.35em" y="50%" x="50%">{{_iconText}}</text>\n {{~/if~}}\n</svg>\n{{~/if}}'
33
33
  module.exports['components/base/image/responsive_image.hbs'] = '{{!--\n\n`_type`\n`_variant`\n`_alttext` Alternativ-Text des Bildes.<br>\n`_addClass` Möglichkeit zur Angabe einer zusätzlichen CSS-Klasse. `image` ist Standard.<br>\n`_addClassImg`\n`_noDelay` Bilder ohne verzögerung anzeigen, also direkt ins dom schreiben\n`_errorHandler` JavaScript-Code, der ausgeführt wird, wenn das Bild nicht geladen werden kann. Wird z.B. für Fehlerhandling für EDP-Images genutzt.<br>\n\'_disableNoScript\' don\'t add no script fallback\n\n--}}\n{{#withParam this.responsiveImage _type _variant }}\n {{#if this.asPicture}}\n <picture class="{{~#if ../_addClass}} {{../_addClass}}{{/if}}">\n {{#unless _disableNoScript}}\n <noscript>\n <img class="{{~#if ../_addClassImg}} {{../_addClassImg}}{{/if}}" src="{{this.fallback}}" alt="{{#if ../_alttext}}{{../_alttext}}{{else}}{{../this.alttext}}{{/if}}">\n </noscript>\n {{/unless}}\n {{#with this.sources}}\n {{#each this}}\n <source{{#with this.media}} media="{{this}}"{{/with}}\n {{#with this.sizes}} sizes="{{this}}"{{/with}}\n {{#with this.srcset}} srcset="{{this}}"{{/with}}>\n {{/each}}\n {{/with}}\n <img class="{{~#if ../_addClassImg}} {{../_addClassImg}}{{/if}}" loading="{{#if ../_noDelay}}auto{{else}}lazy{{/if}}" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" alt="{{#if ../_alttext}}{{../_alttext}}{{else}}{{../this.alttext}}{{/if}}" {{~#if ../_errorHandler }} onerror="this.onerror=null; {{../_errorHandler}}"{{/if}}>\n </picture>\n {{/if}}\n\n {{#if this.asImage}}\n {{#with this.sources.[0]}}\n {{~#with ../../_addClass }}<div class="{{this}}">{{/with}}\n {{#unless ../../_disableNoScript}}\n <noscript>\n <img class="{{~#if ../../_addClassImg}} {{../../_addClassImg}}{{/if}}" src="{{../this.fallback}}" alt="{{#if ../../_alttext}}{{../../_alttext}}{{else}}{{../../this.alttext}}{{/if}}">\n </noscript>\n {{/unless}}\n <img {{#with this.sizes}}sizes="{{this}}" {{/with~}}\n loading="{{#if ../../_noDelay}}auto{{else}}lazy{{/if}}"\n {{#with this.srcset}} {{#if ../../../_noDelay}}srcset{{else}}data-srcset{{/if}}="{{this}}"{{/with}}\n src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="\n alt="{{#if ../../_alttext}}{{../../_alttext}}{{else}}{{../../this.alttext}}{{/if}}" class="{{~#with ../../_addClassImg }} {{this}}{{/with}}" {{~#if ../../_errorHandler}} onerror="this.onerror=null; {{../../_errorHandler}}" {{~/if}}>\n {{~#with ../../_addClass }}</div>{{/with}}\n {{/with}}\n\n {{/if}}\n{{/withParam}}'
34
- module.exports['components/site_header/brand_navigation/brand_navigation.hbs'] = '<div x-data="slider()"\n x-init="checkIfScrollable($refs.container)"\n @resize.window="checkIfScrollable($refs.container)"\n class="sb-brand-navigation lg:container w-full md:px-5 lg:px-10 px-3.5 h-10 lg:h-8">\n\n <div class="flex justify-center text-xs list-none text-grey-scorpion ">\n\n <template x-if="isScrollable">\n <div>\n <button class="absolute left-0 w-12 h-full pt-1 arrow-left-background disabled:hidden" @click="prev($refs.container)" :disabled="!arrowLeftDisplay" aria-label="nach links scrollen">\n {{> components/base/image/icon _icon="arrow-left" _iconmap="icons" _addClass="pb-1 mr-4 inline-block w-3.5 h-3.5 text-blue-congress fill-current"}}\n </button>\n <button class="absolute right-0 w-12 h-full pt-1 group arrow-right-background disabled:hidden" @click="next($refs.container)" :disabled="!arrowRightDisplay" aria-label="nach rechts scrollen">\n {{> components/base/image/icon _icon="arrow-right" _iconmap="icons" _addClass="pb-1 ml-4 inline-block w-3.5 h-3.5 text-blue-congress fill-current "}}\n </button>\n </div>\n </template>\n\n <nav x-ref="container" @scroll="updateIndex($event.target)" class="w-full overflow-hidden overflow-x-scroll leading-10 transition-all duration-300 ease-in-out cursor-pointer hide-scroll-bar max-h-10 align-center">\n <span id="brandNavHeading" class="hidden">Navigation der Marken des Hessischen Rundfunks</span>\n {{#with this.brandNavigationItems}}\n <ul class="flex pl-0.5 pr-3 md:px-0 flex-nowrap lg:mr-0">\n {{#each this}}\n {{> components/site_header/brand_navigation/brand_navigation_item }}\n {{/each}} \n </ul>\n {{/with}}\n </nav>\n\n </div>\n \n</div>\n\n<script type="text/javascript">\n\nfunction slider() {\n\n return {\n \n isScrollable:false,\n arrowLeftDisplay:false,\n arrowRightDisplay:true,\n\n arrowsDisplay(e) {\n e.scrollLeft > 1 ? this.arrowLeftDisplay=true : this.arrowLeftDisplay=false;\n e.scrollLeft + e.offsetWidth == e.scrollWidth ? this.arrowRightDisplay=false : this.arrowRightDisplay=true;\n },\n\n prev(e) {\n e.scrollLeft -= 200;\n },\n\n next(e) {\n e.scrollLeft += 200;\n },\n\n updateIndex(e) {\n this.arrowsDisplay(e);\n },\n \n checkIfScrollable(e){\n e.scrollWidth > e.clientWidth ? this.isScrollable=true : this.isScrollable=false;\n this.arrowsDisplay(e);\n }\n };\n}\n\n</script>'
35
- module.exports['components/site_header/brand_navigation/brand_navigation_item.hbs'] = '<li class="sb-brand-navigation-item{{#if this.selected}} h-10 lg:h-8 font-bold text-blue-congress {{/if}} cursor-pointer inline-block lg:hover:underline active:font-bold active:text-blue-science"> \n <a class="link-focus-inset leading-10 lg:leading-8 flex-col px-3 {{#if @first }}pl-0 {{/if}}lg:flex-row js-load w-max flex justify-center {{#if this.selected}} -currentBrand {{/if}}" aria-label="{{this.name}}" href="{{resourceUrl "index.html" _site=this.site}}"{{#if this.extern}} target="_blank" rel="noopener noreferrer"{{/if}} data-hr-click-tracking=\'{"settings": [{"type": "uxAction", "secondLevelId": "1", "clickLabel": "Brandnavigation::{{this.text}}-Link geklickt"}]}\'>{{this.text}}</a>\n</li>'
36
34
  module.exports['components/site_header/anchor_navigation/anchor_navigation.hbs'] = '<nav id="sprungmarken" aria-labelledby="anchorNavHeadline">\n <span id="anchorNavHeadline" class="hidden">{{loca "anchor_headline"}}</span>\n <ul>\n <li><a href="#brandNavWrapper" class="hidden">{{loca "anchor_brandNav"}}</a></li>\n <li><a href="#serviceNavWrapper" class="hidden">{{loca "anchor_serviceNav"}}</a></li>\n <li><a href="#sectionNavWrapper" class="hidden">{{loca "anchor_sectionNav"}}</a></li>\n {{{this.featureBoxAnchorSSI}}}\n <li><a href="#content" class="hidden">{{loca "anchor_mainContent"}}</a></li>\n </ul>\n</nav>'
37
35
  module.exports['components/site_header/anchor_navigation/featurebox_anchor.hbs'] = '{{#with this.featureBox}}\n<li><a href="#featureBox" class="hidden">{{loca "feature_box_anchor"}}</a></li>\n{{/with}}'
36
+ module.exports['components/site_header/brand_navigation/brand_navigation.hbs'] = '<div x-data="slider()"\n x-init="checkIfScrollable($refs.container)"\n @resize.window="checkIfScrollable($refs.container)"\n class="sb-brand-navigation lg:container w-full md:px-5 lg:px-10 px-3.5 h-10 lg:h-8">\n\n <div class="flex justify-center text-xs list-none text-grey-scorpion ">\n\n <template x-if="isScrollable">\n <div>\n <button class="absolute left-0 w-12 h-full pt-1 arrow-left-background disabled:hidden" @click="prev($refs.container)" :disabled="!arrowLeftDisplay" aria-label="nach links scrollen">\n {{> components/base/image/icon _icon="arrow-left" _iconmap="icons" _addClass="pb-1 mr-4 inline-block w-3.5 h-3.5 text-blue-congress fill-current"}}\n </button>\n <button class="absolute right-0 w-12 h-full pt-1 group arrow-right-background disabled:hidden" @click="next($refs.container)" :disabled="!arrowRightDisplay" aria-label="nach rechts scrollen">\n {{> components/base/image/icon _icon="arrow-right" _iconmap="icons" _addClass="pb-1 ml-4 inline-block w-3.5 h-3.5 text-blue-congress fill-current "}}\n </button>\n </div>\n </template>\n\n <nav x-ref="container" @scroll="updateIndex($event.target)" class="w-full overflow-hidden overflow-x-scroll leading-10 transition-all duration-300 ease-in-out cursor-pointer hide-scroll-bar max-h-10 align-center">\n <span id="brandNavHeading" class="hidden">Navigation der Marken des Hessischen Rundfunks</span>\n {{#with this.brandNavigationItems}}\n <ul class="flex pl-0.5 pr-3 md:px-0 flex-nowrap lg:mr-0">\n {{#each this}}\n {{> components/site_header/brand_navigation/brand_navigation_item }}\n {{/each}} \n </ul>\n {{/with}}\n </nav>\n\n </div>\n \n</div>\n\n<script type="text/javascript">\n\nfunction slider() {\n\n return {\n \n isScrollable:false,\n arrowLeftDisplay:false,\n arrowRightDisplay:true,\n\n arrowsDisplay(e) {\n e.scrollLeft > 1 ? this.arrowLeftDisplay=true : this.arrowLeftDisplay=false;\n e.scrollLeft + e.offsetWidth == e.scrollWidth ? this.arrowRightDisplay=false : this.arrowRightDisplay=true;\n },\n\n prev(e) {\n e.scrollLeft -= 200;\n },\n\n next(e) {\n e.scrollLeft += 200;\n },\n\n updateIndex(e) {\n this.arrowsDisplay(e);\n },\n \n checkIfScrollable(e){\n e.scrollWidth > e.clientWidth ? this.isScrollable=true : this.isScrollable=false;\n this.arrowsDisplay(e);\n }\n };\n}\n\n</script>'
37
+ module.exports['components/site_header/brand_navigation/brand_navigation_item.hbs'] = '<li class="sb-brand-navigation-item{{#if this.selected}} h-10 lg:h-8 font-bold text-blue-congress {{/if}} cursor-pointer inline-block lg:hover:underline active:font-bold active:text-blue-science"> \n <a class="link-focus-inset leading-10 lg:leading-8 flex-col px-3 {{#if @first }}pl-0 {{/if}}lg:flex-row js-load w-max flex justify-center {{#if this.selected}} -currentBrand {{/if}}" aria-label="{{this.name}}" href="{{resourceUrl "index.html" _site=this.site}}"{{#if this.extern}} target="_blank" rel="noopener noreferrer"{{/if}} data-hr-click-tracking=\'{"settings": [{"type": "uxAction", "secondLevelId": "1", "clickLabel": "Brandnavigation::{{this.text}}-Link geklickt"}]}\'>{{this.text}}</a>\n</li>'
38
38
  module.exports['components/site_header/navigation_flyout/navigation_flyout.hbs'] = '{{#with this.subNavigation}}\n <div {{#unless ../this.selected}}x-cloak{{/unless}}\n x-data="flyoutHandler" \n x-ref="{{getRandom}}"\n id="flyout-{{getRandom}}" \n @resize.window.debounce="setFlyoutAnimationStyle();"\n {{#if this.showAsFlyout}} x-show="dropped" {{else}} {{#if ../this.selected}} x-show="$screen(\'lg\') ? true : dropped" {{else}} x-show="dropped" {{/if}} {{/if}}\n {{#if ../_isSectionNav}} x-init="sectionNavFlyoutWatcher()" :class ="shouldFlyoutBeHidden() ? \'hidden\' : \'\'" {{/if}} \n \n class="sb-navigation-flyout bg-white md:filter md:drop-shadow-md lg:absolute \n {{#if ../_isSectionNav}} relative md:top-auto md:left-auto lg:mt-10 w-full transition-all duration-500 ease-in-out\n {{#unless this.showAsFlyout}}\n {{#if ../this.selected}}\n isSelectedAndOpen lg:ml-0 z-10000 lg:border-b lg:border-blue-congress lg:filter-none lg:left-0 flex justify-center\n {{else}} z-10002 lg:left-auto lg:w-auto {{/if}}\n {{else}} z-10002 lg:left-auto lg:w-auto {{/unless}}\n {{else}} z-10002 lg:rounded-b absolute w-full top-10 left-0 md:w-80 lg:w-92 md:top-12 lg:px-4 md:mt-0 md:left-0 lg:top-15 lg:left-0 lg:pl-6 divide-y divide-gray-200 tablet:w-half-screen tablet:ml-half-screen tablet:right-0 tablet:left-auto {{/if}}\n {{#if this.showAsFlyout}} lg:rounded-b lg:pl-4{{/if}}" \n\n aria-labelledby="flyout-{{getRandom}}-1" \n {{#if this.showAsFlyout}}\n x-effect="$el.setAttribute(\'aria-expanded\', dropped); $el.setAttribute(\'aria-hidden\', !dropped)"\n {{else}}\n {{#if ../this.selected}} \n x-effect="$el.setAttribute(\'aria-expanded\', $screen(\'lg\') || dropped); $el.setAttribute(\'aria-hidden\', !($screen(\'lg\') || dropped))"\n {{else}} \n x-effect="$el.setAttribute(\'aria-expanded\', dropped); $el.setAttribute(\'aria-hidden\', !dropped)"\n {{/if}} \n {{/if}} \n >\n {{#unless ../this.isCluster ~}}\n {{#unless ../_isSectionNav}}\n <div class="w-full">\n <div class="flex pt-4 pb-2 pl-4 text-base font-bold bg-white lg:pl-0 md:pt-4 lg:pt-1 lg:pb-0 justify-left text-blue-congress "> \n <a href="{{resourceUrl ../this.url}}" class="-isHeaderLink lg:leading-10 link-focus-inset js-load" data-hr-click-tracking=\'{"settings": [{"type": "uxAction", "secondLevelId": "1", "clickLabel": "{{../_navigationType}}::{{../_parent}}::{{../this.flyoutStartLinkText}}-Link geklickt"}]}\' >\n {{../this.flyoutStartLinkText}}\n </a> \n </div> \n </div>\n {{/unless}}\n {{/unless}}\n \n <div class="{{#if this.showAsFlyout}}lg:flex lg:flex-row -columnCount--{{this.columnCount}} lg:divide-x lg:divide-gray-200 {{else}} {{#if ../this.selected}} w-full lg:px-10 lg:container {{/if}}{{/if}}">\n {{#if this.showAsFlyout}}\n {{#each this.columns}}\n {{> components/site_header/navigation_flyout/navigation_flyout_column count=../this.columnCount navtype=../../_navigationType _parent=../../_parent _flyout=true~}}\n {{/each}}\n {{else}}\n {{#with this.items}}\n {{> components/site_header/navigation_flyout/navigation_flyout_column selected=../../this.selected navtype=../../_navigationType _parent=../../_parent _flyout=false ~}}\n {{/with}}\n {{/if}}\n </div>\n</div>\n{{/with}}'
39
39
  module.exports['components/site_header/navigation_flyout/navigation_flyout_column.hbs'] = '<ul class="{{inline-switch count \'["1","2"]\' \'["md:w-1/1", "md:w-1/1 lg:w-1/2"]\'}} {{inline-switch navtype \'["ServiceNavigation","RubrikNavigation"]\' \'["border-b border-gray-200 md:border-0","border-0"]\'}} lg:even:pl-4 lg:odd:pr-4 {{#if selected}} lg:container lg:flex lg:h-9 {{/if}} ">\n {{~#each this ~}} \n {{~#if this.title~}}\n {{> components/site_header/navigation_flyout/navigation_flyout_item _parentselected=../selected _fromNav=../navtype _flyout=../_flyout _parent=../_parent ~}}\n {{~/if~}} \n {{~/each~}}\n \n</ul>'
40
40
  module.exports['components/site_header/navigation_flyout/navigation_flyout_item.hbs'] = '<li :class="dropped ? \'h-auto\' : \'h-10\'" \n class="sb-navigation-flyout-item pl-4 {{#if _flyout}}lg:px-0 {{else}}lg:px-2 lg:first-of-type:pl-0 {{/if}}{{#if _parentselected}}lg:whitespace-nowrap{{/if}} flex h-auto text-base leading-6 border-b border-gray-200 lg:last:border-0 lg:border-0 text-blue-congress justify-start hover:underline">\n {{#decorator \'components/base/link\' _css=(inline-switch _fromNav \'["RubrikNavigation","ServiceNavigation"]\' \'["link-focus-inset py-2 w-full","link-focus py-2 md:pl-0 lg:pl-0 lg:pr-0 break-words w-full"]\') _doNavigationTracking="true" _clickLabelType=_fromNav _clickLabelPrefix1=_parent clickLabelPrefix2=this.link.content.text }}\n {{this.text}} \n {{~#if this.link.hasIcon}}{{> components/base/image/icon _icon=this.link.iconName _addClass="w-4 h-4 fill-current ml-2 inline-flex" _iconmap="icons" }} {{/if}}\n {{/decorator}} \n</li>'
41
- module.exports['components/site_header/service_navigation/service_list.hbs'] = '<div \n id="serviceList"\n @click.outside="$store.serviceNavIsOpen = false; toggleScrolling(!$store.searchFieldOpen && !$store.burgeropen)"\n x-ref="serviceList"\n :class="shouldServiceIconsBeHidden() ? \'-mt-40\' : \'\'"\n class="absolute left-0 flex justify-center flex-initial w-full h-10 max-w-full align-top duration-500 ease-in-out border-t border-white sb-service-list transition-margin-top -z-1000 md:z-10000 md:h-12 top-10 bg-blue-congress md:border-0 md:top-auto md:w-auto md:left-auto md:static md:justify-end md:flex md:flex-auto lg:h-16 lg:pl-0 lg:pr-4 lg:w-3/4 "\n>\n {{#with this.serviceNavigationSSILinks}}\n <ul class="flex justify-around w-full h-full -itemCount-{{ count }} lg:w-auto lg:justify-end lg:pt-1">\n {{#each this}} \n {{> components/base/loadSSI _templatePath=\'components/site_header/service_navigation/service_navigation_item\' }} \n {{/each}} \n </ul>\n {{/with}}\n</div>'
42
- module.exports['components/site_header/service_navigation/service_navigation_item.hbs'] = '{{#each this.navigationItems}}\n <li class="sb-service-navigation-item {{inline-switch this.id \'["weather","warnung","traffic","video-podcast"]\' \'["-weather", "-warnung", "-traffic", "-video-podcast"]\' }} flex flex-col h-10 lg:h-15 md:h-full w-full tablet:first:border-l border-r last:border-r-0 lg:border-r-0 text-white" >\n {{#if this.subNavigation}} \n <button \n id="{{nextRandom}}" \n @click.debounce.100ms="toggleServiceNav()" \n @click.outside="dropped = false;"\n @close-servicemenu.window="dropped = false; $store.serviceNavIsOpen = false"\n\n x-data="dropdown"\n id="{{getRandom}}"\n \n class="js-load flex flex-col items-center justify-center h-full px-4 text-left lg:justify-start lg:px-3 lg:pt-1 lg:hover:underline lg:relative lg:rounded-t lg:border-0 lg:left-0 link-focus-inset-white {{#if this.selected}}-currentService{{/if}}"\n\n :class="dropped ? \'bg-white fill-current text-blue-congress lg:border-0 lg:underline\' : \'\'" \n\n aria-owns="flyout-{{getRandom}}" \n aria-controls="flyout-{{getRandom}}"\n x-effect="$el.setAttribute(\'aria-expanded\', dropped);$el.setAttribute(\'aria-label\', dropped ? \'{{this.text}}-Menü schließen\' : \'{{this.text}}-Menü öffnen\')"\n data-hr-click-tracking=\'{"settings": [{"type": "uxAction", "secondLevelId": "1", "clickLabel": "Servicenavigation::{{this.text}}-Link geklickt"}]}\'\n >\n \n {{else}}\n\n {{#if this.extern}}\n <a href="{{this.url}}" target="_blank" x-init="dropped = false" class="flex flex-col items-center justify-center h-full px-4 lg:justify-start lg:px-3 lg:rounded-t link-focus-inset-white js-load" id="flyout-{{nextRandom}}-1" data-hr-click-tracking=\'{"settings": [{"type": "uxAction", "secondLevelId": "1", "clickLabel": "Servicenavigation::{{this.text}}-Link geklickt"}]}\'>\n {{else}}\n <a href="{{resourceUrl this.url}}" x-init="dropped = false" class="flex flex-col items-center justify-center h-full px-4 lg:justify-start lg:px-3 lg:pt-1 lg:rounded-t link-focus-inset-white js-load" id="flyout-{{nextRandom}}-1" data-hr-click-tracking=\'{"settings": [{"type": "uxAction", "secondLevelId": "1", "clickLabel": "Servicenavigation::{{this.text}}-Link geklickt"}]}\'>\n {{/if}}\n\n {{/if}}\n\n <div class="w-7 md:w-8 h-7 md:h-8" >\n {{> components/base/image/icon _icon=this.icon _iconmap="icons" _addClass="w-full h-full"}}\n <span class="sr-only lg:hidden">{{this.text}}</span>\n </div>\n\n <div :class="dropped ? \'text-blue-congress fill-current\' : \'text-white fill-white\'" class="relative flex-row items-center justify-center hidden pt-px text-white lg:flex z-10002">\n <div class="flex" >\n <span class="flex text-xs leading-4 whitespace-nowrap">\n {{text}} \n </span>\n {{#if this.subNavigation}} \n <div class="flex lg:pl-1">\n <div class="flex items-center justify-center" :class="dropped ? \'transform rotate-180\':\'\' ">\n {{> components/base/image/icon _icon="arrow-down" _iconmap="icons" _addClass="w-3 h-2 fill-current"}}\n </div>\n </div>\n {{/if}} \n </div>\n </div> \n {{#if this.subNavigation}} \n {{> components/site_header/navigation_flyout/navigation_flyout _isSectionNav=false _navigationType="ServiceNavigation" _parent=this.text }}\n </button>\n {{else}} \n </a>\n {{/if}} \n </li>\n{{/each}}'
41
+ module.exports['components/site_header/navigation_search/quick_search_button.hbs'] = '<div \n x-cloak class="sb-quick-search-button flex items-center h-8 md:h-full md:border-r md:border-l md:border-white lg:border-none" \n :class="$store.searchFieldOpen == true ? \'bg-white mt-2 rounded-t md:mt-0 md:rounded-none\' : \'bg-blue-congress\'"\n>\n <button \n @click="$store.searchFieldOpen = ! $store.searchFieldOpen; dropped = false; $store.serviceNavIsOpen = false; toggleScrolling(!$store.searchFieldOpen)"\n @click.debounce.100ms="$dispatch(\'burger-close\'); $dispatch(\'search-mobile-click\'); $dispatch(\'close-servicemenu\');"\n class="h-full text-white cursor-pointer md:px-4 lg:hidden"\n x-effect="$el.setAttribute(\'id\', \'flyout-\' + $store.searchID.current + \'-1\');$el.setAttribute(\'aria-owns\', \'flyout-\' + $store.searchID.current + \'-2\');$el.setAttribute(\'aria-controls\', \'flyout-\' + $store.searchID.current + \'-2\');$el.setAttribute(\'aria-expanded\', $store.searchFieldOpen == true);$el.setAttribute(\'aria-label\', $store.searchFieldOpen == true ? \'Suche schließen\' : \'Suche öffnen\')"\n >\n <svg \n x-show="$store.searchFieldOpen == false"\n class="h-5 text-white fill-current w-9" \n xmlns="http://www.w3.org/2000/svg" \n viewBox="0 0 20 20"\n role="presentation" \n x-effect="$el.setAttribute(\'aria-hidden\', $store.searchFieldOpen == true)"\n >\n <path d="M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z"></path>\n </svg>\n <svg \n x-show="$store.searchFieldOpen == true"\n class="h-6 fill-current w-9 text-blue-congress" \n xmlns="http://www.w3.org/2000/svg" \n viewBox="0 0 20 20"\n x-effect="$el.setAttribute(\'aria-hidden\', $store.searchFieldOpen == false)"\n >\n <path d="M15.898,4.045c-0.271-0.272-0.713-0.272-0.986,0l-4.71,4.711L5.493,4.045c-0.272-0.272-0.714-0.272-0.986,0s-0.272,0.714,0,0.986l4.709,4.711l-4.71,4.711c-0.272,0.271-0.272,0.713,0,0.986c0.136,0.136,0.314,0.203,0.492,0.203c0.179,0,0.357-0.067,0.493-0.203l4.711-4.711l4.71,4.711c0.137,0.136,0.314,0.203,0.494,0.203c0.178,0,0.355-0.067,0.492-0.203c0.273-0.273,0.273-0.715,0-0.986l-4.711-4.711l4.711-4.711C16.172,4.759,16.172,4.317,15.898,4.045z"></path>\n </svg>\n </button>\n</div>'
42
+ module.exports['components/site_header/navigation_search/quick_search_form.hbs'] = '<form \n x-data="searchSuggest()"\n role="search" \n action="{{resourceUrl "suche/index.nocache"}}" \n method="get" \n class="flex w-full sb-quick-search-form md:justify-end lg:h-10"\n>\n <div \n class="relative w-full lg:rounded-l" \n id="search-content"\n @click.away="active=false; cursorIndex=-1"\n @keydown.arrow-down="moveDownList()"\n @keydown.arrow-up="moveUpList()"\n > \n <label for="searchInput--{{nextRandom}}" class="hidden">suchfeld</label>\n <input \n @input.debounce="getSuggestionsForInput();cursorIndex=-1"\n @click="active=true" \n name="query" \n x-model="query"\n placeholder=\'{{loca "search_input_placeholder" }}\' \n class="w-full px-2 py-2 text-base leading-4 placeholder-opacity-100 border rounded-l rounded-r-none shadow-inner appearance-none lg:border-0 lg:border-none border-blue-congress lg:h-10 placeholder-text-xs placeholder-blue-congress text-blue-congress focus:outline-none"\n type="text"\n id="searchInput--{{getRandom}}"\n autocomplete="off"\n role="combobox" \n aria-haspopup="listbox" \n aria-autocomplete="list" \n x-effect="$el.setAttribute(\'aria-expanded\', (query.length > 1 && active && suggestions.length > 0))"\n aria-owns="suggestionlist--{{getRandom}}"\n aria-controls="suggestionlist--{{getRandom}}"\n > \n <div \n class="relative" \n x-show="query.length > 1 && active && suggestions.length"\n x-cloak\n x-transition:leave="transition ease-in duration-100"\n x-transition:leave-start="opacity-100"\n x-transition:leave-end="opacity-0"\n >\n <ul \n role="listbox" \n id="suggestionlist--{{getRandom}}" \n aria-label="Suche öffnen"\n x-effect="$el.setAttribute(\'aria-expanded\', query.length > 1 && active && suggestions.length > 0);$el.setAttribute(\'aria-hidden\', !(query.length > 1 && active && suggestions.length > 0))"\n class="absolute w-full mt-0.5 bg-white border rounded divide-y shadow-xl top-100"\n x-ref="list"\n >\n \n <template x-for="(suggestion, index) in suggestions" :key="index">\n <li class="first-of-type:border-none">\n <a \n x-bind:active="false"\n x-bind:href="\'{{resourceUrl "suche/index.nocache"}}?query=\' + suggestion"\n x-bind:class="{\'py-1.5 px-2 link-focus-inset text-base flex w-full rounded hover:bg-blue-congress hover:text-white\': true, \'bg-blue-congress text-white\':index==cursorIndex }"\n >\n <span x-text="suggestion"></span>\n </a>\n </li>\n </template>\n \n </ul>\n </div> \n </div>\n <button \n aria-label=\'{{loca "search_input_aria_submit" }}\' \n type="submit" \n class="pl-3 pr-2 rounded-r cursor-pointer link-focus-inset bg-blue-congress lg:bg-white text-blue-congress z-10002"\n >\n <svg class="w-6 h-6 text-white fill-current bg-blue-congress lg:fill-current lg:text-blue-congress lg:bg-white" \n xmlns="http://www.w3.org/2000/svg" \n viewBox="0 0 20 20"\n aria-hidden="true"\n >\n <path d="M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z"></path>\n </svg>\n </button>\n</form>\n\n<script type="text/javascript">\n\n function searchSuggest() {\n\n return {\n active:true,\n cursorIndex: -1,\n query: "",\n suggestions: [],\n\n getSuggestionsForInput() {\n\n suggestionDataUrl = \'{{resourceUrl "suche/index~suggest.jsp"}}\' + \'?suggestions=\' + this.query;\n\n fetch(suggestionDataUrl)\n\n .then((res) =>{ return res.text()})\n\n .then((data) => {\n data = JSON.parse(data.replace(/&quot;/g, \'"\'))\n data.solrSuggestions = this.filterStartwith(data.solrSuggestions, this.query)\n this.suggestions= this.filterSortbylength(data.solrSuggestions)\n });\n\n },\n\n filterStartwith(data, query) {\n return data.filter(Suggestion => Suggestion.toLowerCase().startsWith(query.toLowerCase().trim()))\n },\n\n filterSortbylength(data) {\n return data.sort((a, b) => a.length - b.length)\n },\n\n moveDownList() {\n if (this.suggestions.length > 0 && this.cursorIndex < this.suggestions.length - 1) \n {\n this.cursorIndex++;\n this.query = this.suggestions[this.cursorIndex];\n }\n },\n\n moveUpList() {\n if (this.suggestions.length > 0 && this.cursorIndex > 0) \n {\n this.cursorIndex--;\n this.query = this.suggestions[this.cursorIndex];\n }\n },\n\n };\n\n }\n\n</script>'
43
43
  module.exports['components/site_header/section_navigation/section_navigation.hbs'] = '<div \n id="sectionNav"\n class="w-full px-0 mt-10 sb-section-navigation md:mt-0 lg:px-10 lg:container bg-blue-congress" \n x-effect="$el.setAttribute(\'aria-expanded\', $store.burgeropen || $screen(\'lg\')); $el.setAttribute(\'aria-hidden\', ! ($store.burgeropen || $screen(\'lg\')))"\n>\n <div class="flex content-start mb-0">\n <div class="flex w-full">\n <span id="sectionNavHeadline" class="hidden">Bereichsnavigation</span>\n {{#with this.sectionNavigationSSILinks}}\n <ul class="flex flex-col items-center w-full text-left text-white list-none lg:flex-row lg:h-auto lg:mt-1">\n {{#each this}} \n {{#if (isStorybook)}} \n {{> components/site_header/section_navigation/section_navigation_item }} \n {{else}}\n {{{this}}}\n {{/if}}\n {{/each}} \n </ul>\n {{/with}}\n </div>\n </div>\n</div> '
44
44
  module.exports['components/site_header/section_navigation/section_navigation_item.hbs'] = '{{#each this.navigationItems}}\n <li x-data="dropdown"\n @click.outside="dropped = false" \n @close-servicemenu.window="dropped = false" \n :class="dropped ? \'border-b-0 lg:bg-white lg:text-blue-congress h-auto\' : \'h-10 lg:hover:underline\'" \n class="flex flex-wrap justify-start w-full text-white list-none border-b border-white sb-section-navigation-item first:lg:-ml-4 md:pl-0 lg:first:pl-0 first:border-t lg:first:border-t-0 first:font-normal last:border-b-0 lg:border-0 lg:w-auto bg-blue-congress lg:rounded-t"> \n {{#if this.isCluster ~}}\n{{!-- Gilt z.B. für REGIONEN: --}} \n <button id="button-{{nextRandom}}-1" \n @click.debounce.100ms="toggle()" \n :class="dropped ? \'first:font-bold lg:first:font-normal lg:underline\' : \'first:font-normal\'"\n class="{{#if this.selected}}-currentSection lg:justify-center {{/if}}link-focus-inset-white js-load pl-4 lg:pl-4 lg:pr-4 flex flex-auto w-full justify-between lg:flex-initial h-10 lg:w-full items-center leading-4 {{#if this.selected}} font-bold{{/if}}" \n x-effect="$el.setAttribute(\'aria-expanded\', dropped);$el.setAttribute(\'tabindex\', $store.burgeropen || $screen(\'lg\') ? \'0\' : \'-1\')"\n aria-owns="flyout-{{getRandom}}" \n aria-controls="flyout-{{getRandom}}" \n data-hr-click-tracking=\'{"settings": [{"type": "uxAction", "secondLevelId": "1", "clickLabel": "Rubriknavigation::{{this.text}}-Toggle-Link geklickt"}]}\'>\n\n {{~else ~}}\n\n {{#if this.subNavigation}}\n{{!-- Gilt z.B. für POLITIK: --}}\n <a href="{{resourceUrl this.url}}" \n id="flyout-{{nextRandom}}-1"\n \n :class="dropped ? \'font-bold\' : \'\'"\n class="{{#if this.selected}}-currentSection lg:justify-center {{/if}}link-focus-inset-white js-load pl-4 pr-8 lg:pl-4 lg:pr-4 flex flex-auto h-10 items-center leading-4 lg:w-full lg:justify-center{{#if this.selected}} font-bold{{/if}}"\n {{#if this.labelText}} aria-label="{{this.labelText}}"{{/if}} \n aria-haspopup="true" \n x-effect="$el.setAttribute(\'aria-expanded\', dropped || $screen(\'lg\'));$el.setAttribute(\'tabindex\', $store.burgeropen || $screen(\'lg\') ? \'0\' : \'-1\')"\n aria-owns="flyout-{{getRandom}}"\n aria-controls="flyout-{{getRandom}}"\n data-hr-click-tracking=\'{"settings": [{"type": "uxAction", "secondLevelId": "1", "clickLabel": "Rubriknavigation::{{this.text}}-Link geklickt"}]}\'> \n {{~else ~}} \n{{!-- Gilt für START/GESELLSCHAFT/WIRTSCHAFT usw: --}}\n <a href="{{resourceUrl this.url}}" \n class="{{#if this.selected}}-currentSection lg:justify-center {{/if}} link-focus-inset-white js-load flex justify-start pl-4 pr-4 h-10 lg:justify-center items-center w-full{{#if this.selected}} font-bold{{/if}}" \n {{#if this.labelText}} aria-label="{{this.labelText}}"{{/if}} \n data-hr-click-tracking=\'{"settings": [{"type": "uxAction", "secondLevelId": "1", "clickLabel": "Rubriknavigation::{{this.text}}-Link geklickt"}]}\'\n x-effect="$el.setAttribute(\'tabindex\', $store.burgeropen || $screen(\'lg\') ? \'0\' : \'-1\')"\n >\n {{~/if}}\n\n {{~/if }}\n\n {{#if this.subNavigation}}\n\n {{~this.text~}}\n \n {{#if this.subNavigation.showAsFlyout ~}}\n \n <div class="flex items-center justify-center w-10 h-10 leading-4 lg:w-auto lg:border-0 lg:pl-1">\n <div class="flex items-center justify-center" :class="dropped ? \'transform rotate-180\':\'\'">\n {{> components/base/image/icon _icon="arrow-down" _iconmap="icons" _addClass="w-3 h-2 fill-current"}}\n </div>\n </div>\n \n {{/if}}\n\n {{else}}\n\n {{~this.text~}}\n\n {{~/if}}\n\n {{#if this.isCluster}}\n\n </button>\n\n {{else}}\n\n </a>\n\n {{#if this.subNavigation}}\n\n <button \n @click.debounce.100ms="toggle()" \n id="button-{{getRandom}}-1" \n class="flex items-center justify-center w-10 h-10 leading-4 border-l border-white js-load lg:hidden" \n aria-haspopup="true" \n x-effect="$el.setAttribute(\'aria-expanded\', dropped);$el.setAttribute(\'tabindex\', $store.burgeropen ? \'0\' : \'-1\')"\n aria-owns="flyout-{{getRandom}}" \n aria-controls="flyout-{{getRandom}}" \n aria-labelledby="flyout-{{getRandom}}-1" \n data-hr-click-tracking=\'{"settings": [{"type": "uxAction", "secondLevelId": "1", "clickLabel": "Rubriknavigation::{{this.text}}-Toggle-Link geklickt"}]}\'>\n\n <span class="hidden">{{~this.text~}}</span>\n \n <div class="flex items-center justify-center lg:ml-2 lg:relative lg:right-0" :class="dropped ? \'transform rotate-180 \':\'\'">\n {{> components/base/image/icon _icon="arrow-down" _iconmap="icons" _addClass="w-4 h-2 fill-current"}}\n </div>\n </button>\n\n {{/if}}\n\n {{/if}}\n \n {{> components/site_header/navigation_flyout/navigation_flyout _isSectionNav=true _navigationType="RubrikNavigation" _parent=this.text }}\n\n </li>\n{{/each}}'
45
+ module.exports['components/site_header/service_navigation/service_list.hbs'] = '<div \n id="serviceList"\n @click.outside="$store.serviceNavIsOpen = false; toggleScrolling(!$store.searchFieldOpen && !$store.burgeropen)"\n x-ref="serviceList"\n :class="shouldServiceIconsBeHidden() ? \'-mt-40\' : \'\'"\n class="absolute left-0 flex justify-center flex-initial w-full h-10 max-w-full align-top duration-500 ease-in-out border-t border-white sb-service-list transition-margin-top -z-1000 md:z-10000 md:h-12 top-10 bg-blue-congress md:border-0 md:top-auto md:w-auto md:left-auto md:static md:justify-end md:flex md:flex-auto lg:h-16 lg:pl-0 lg:pr-4 lg:w-3/4 "\n>\n {{#with this.serviceNavigationSSILinks}}\n <ul class="flex justify-around w-full h-full -itemCount-{{ count }} lg:w-auto lg:justify-end lg:pt-1">\n {{#each this}} \n {{> components/base/loadSSI _templatePath=\'components/site_header/service_navigation/service_navigation_item\' }} \n {{/each}} \n </ul>\n {{/with}}\n</div>'
46
+ module.exports['components/site_header/service_navigation/service_navigation_item.hbs'] = '{{#each this.navigationItems}}\n <li class="sb-service-navigation-item {{inline-switch this.id \'["weather","warnung","traffic","video-podcast"]\' \'["-weather", "-warnung", "-traffic", "-video-podcast"]\' }} flex flex-col h-10 lg:h-15 md:h-full w-full tablet:first:border-l border-r last:border-r-0 lg:border-r-0 text-white" >\n {{#if this.subNavigation}} \n <button \n id="{{nextRandom}}" \n @click.debounce.100ms="toggleServiceNav()" \n @click.outside="dropped = false;"\n @close-servicemenu.window="dropped = false; $store.serviceNavIsOpen = false"\n\n x-data="dropdown"\n id="{{getRandom}}"\n \n class="js-load flex flex-col items-center justify-center h-full px-4 text-left lg:justify-start lg:px-3 lg:pt-1 lg:hover:underline lg:relative lg:rounded-t lg:border-0 lg:left-0 link-focus-inset-white {{#if this.selected}}-currentService{{/if}}"\n\n :class="dropped ? \'bg-white fill-current text-blue-congress lg:border-0 lg:underline\' : \'\'" \n\n aria-owns="flyout-{{getRandom}}" \n aria-controls="flyout-{{getRandom}}"\n x-effect="$el.setAttribute(\'aria-expanded\', dropped);$el.setAttribute(\'aria-label\', dropped ? \'{{this.text}}-Menü schließen\' : \'{{this.text}}-Menü öffnen\')"\n data-hr-click-tracking=\'{"settings": [{"type": "uxAction", "secondLevelId": "1", "clickLabel": "Servicenavigation::{{this.text}}-Link geklickt"}]}\'\n >\n \n {{else}}\n\n {{#if this.extern}}\n <a href="{{this.url}}" target="_blank" x-init="dropped = false" class="flex flex-col items-center justify-center h-full px-4 lg:justify-start lg:px-3 lg:rounded-t link-focus-inset-white js-load" id="flyout-{{nextRandom}}-1" data-hr-click-tracking=\'{"settings": [{"type": "uxAction", "secondLevelId": "1", "clickLabel": "Servicenavigation::{{this.text}}-Link geklickt"}]}\'>\n {{else}}\n <a href="{{resourceUrl this.url}}" x-init="dropped = false" class="flex flex-col items-center justify-center h-full px-4 lg:justify-start lg:px-3 lg:pt-1 lg:rounded-t link-focus-inset-white js-load" id="flyout-{{nextRandom}}-1" data-hr-click-tracking=\'{"settings": [{"type": "uxAction", "secondLevelId": "1", "clickLabel": "Servicenavigation::{{this.text}}-Link geklickt"}]}\'>\n {{/if}}\n\n {{/if}}\n\n <div class="w-7 md:w-8 h-7 md:h-8" >\n {{> components/base/image/icon _icon=this.icon _iconmap="icons" _addClass="w-full h-full"}}\n <span class="sr-only lg:hidden">{{this.text}}</span>\n </div>\n\n <div :class="dropped ? \'text-blue-congress fill-current\' : \'text-white fill-white\'" class="relative flex-row items-center justify-center hidden pt-px text-white lg:flex z-10002">\n <div class="flex" >\n <span class="flex text-xs leading-4 whitespace-nowrap">\n {{text}} \n </span>\n {{#if this.subNavigation}} \n <div class="flex lg:pl-1">\n <div class="flex items-center justify-center" :class="dropped ? \'transform rotate-180\':\'\' ">\n {{> components/base/image/icon _icon="arrow-down" _iconmap="icons" _addClass="w-3 h-2 fill-current"}}\n </div>\n </div>\n {{/if}} \n </div>\n </div> \n {{#if this.subNavigation}} \n {{> components/site_header/navigation_flyout/navigation_flyout _isSectionNav=false _navigationType="ServiceNavigation" _parent=this.text }}\n </button>\n {{else}} \n </a>\n {{/if}} \n </li>\n{{/each}}'
45
47
  module.exports['components/teaser/cluster/teaser_cluster.hbs'] = '<article class="mx-5 md:mx-0 col-span-12 grid bg-[#dce8f0] rounded-tl-3xl rounded-br-3xl {{~inline-switch this.teaserSize \'["25","33","50"]\' \'[" md:col-span-3"," md:col-span-4"," md:col-span-6",""]\'}} ">\n <div class="">\n <h2 class="flex items-center px-5 py-6 font-bold font-headingSerif text-blue-congress">\n {{#if this.teaserLogo}}\n <span>\n {{> components/base/image/icon _icon=this.teaserLogo _iconmap="logo" _addClass=(if this.isHessenschauLogo \'fill-[#005293] w-10 md:w-12 h-10 md:h-12\' \'fill-[#005293] w-40 lg:w-52 h-8 md:h-12\')}}\n </span>\n {{/if}}\n {{#if this.title}}\n <span class="text-lg md:text-2xl border-blue-congress {{#if this.teaserLogo}} pl-3 ml-3 border-l-2 border-solid {{/if}}">{{this.title}}</span>\n {{/if}}\n </h2>\n {{> components/teaser/cluster/teaser_cluster_list _ordered=this.isOrdered}} \n </div>\n {{~#with this.headlineListOverview}}\n {{~#if this.link~}}\n <div class="flex mx-5 py-11 {{~inline-switch ../this.teaserSize \'["100"]\' \'[" justify-center md:justify-end"," justify-center"]\'}}">\n {{~> components/button/button_pseudo _color="blue" _linkTitle=this.title~}}\n </div>\n {{~/if~}}\n {{/with~}}\n</article>\n\n'
46
48
  module.exports['components/teaser/cluster/teaser_cluster_byline.hbs'] = '\n<p class="mt-2.5 text-xs text-grey-scorpion font-headingSerif {{#if _ordered}} pl-8 {{/if}}">\n {{!--Teaser-Info--}}\n {{#with this.teaserInfo}}\n {{#if this.showTeaserInfo~}}\n {{~#if this.showTeaserInfoSection}}\n <span class="uppercase">\n {{../this.documentSection~}}\n </span>\n <span class="mx-px last-of-type:hidden">|</span>\n {{/if}}\n {{~#if this.showTeaserInfoDate}}\n {{~#with ../this.teaserDate}}\n <time datetime="{{this.htmlDateTime}}">{{this.date}}</time>\n {{/with~}}\n <span class="mx-px last-of-type:hidden">|</span>\n {{else}}\n {{~#if this.showTeaserInfoDateTime}}\n {{~#with ../this.teaserDate}}\n <time datetime="{{this.htmlDateTime}}">{{loca "date_simple_at" this.dateSeparatorTime}}</time>\n {{/with~}}\n <span class="mx-px last-of-type:hidden">|</span>\n {{/if~}}\n {{/if~}}\n {{/if}}\n {{/with}}\n\n {{!--Profiles--}}\n {{#if this.showProfileInfoAsByline}}\n {{#if this.profiles}}\n <span>{{this.profiles}}</span>\n <span class="mx-px last-of-type:hidden">|</span>\n {{/if}}\n {{/if}}\n</p>'
47
49
  module.exports['components/teaser/cluster/teaser_cluster_item.hbs'] = '\n{{#decorator \'components/base/link\' _css="group" _doTracking=(if this.doTracking \'true\') _clickLabelPrefix1="clusterTeaserLink" _clickLabelPrefix2="Link" }} \n {{> components/teaser/components/teaser_heading\n _headlineTag="h1"\n _label=this.label\n _size=_size\n _title=this.title\n _teaserType="cluster"\n _ordered=_ordered\n _titleBlue=\'true\' \n _firstItem=_firstItem}} \n {{/decorator}}\n{{> components/teaser/cluster/teaser_cluster_byline}}\n \n'
48
50
  module.exports['components/teaser/cluster/teaser_cluster_list.hbs'] = '<div class="{{~#if this.showFirstImageOrGenreImage}}{{~inline-switch this.teaserSize \'["100"]\' \'[" md:flex md:flex-row"]\'}}{{~/if~}}">\n {{~#if this.showGenreImage}}\n <div class="px-0 pb-5 {{~inline-switch this.teaserSize \'["100"]\' \'[" md:pl-5 md:basis-1/2 lg:basis-1/3 md:ar-1-1"]\'}}">\n {{~> components/base/image/responsive_image this.genreImage type=this.teaserType variant=this.imageVariant addClass=this.aspectRatio _addClassImg="ar__content" ~}}\n </div>\n {{~/if~}}\n {{~#if this.showFirstImage}}\n {{~#with this.firstEntry~}}\n {{~#if this.teaserImage}}\n <div class="px-0 pb-5 {{~inline-switch ../this.teaserSize \'["100"]\' \'[" md:pl-5 md:basis-1/2 lg:basis-1/3"]\'}}"> \n {{~> components/base/image/responsive_image this.teaserImage type=../this.teaserType variant=../this.imageVariant addClass=../this.aspectRatio _addClassImg="ar__content pb-4" ~}}\n <div class="mx-5 {{~inline-switch ../this.teaserSize \'["100"]\' \'[" md:mx-0"]\'}}">\n {{> components/teaser/cluster/teaser_cluster_item _size=../this.teaserSize _ordered=../this.isOrdered _firstItem=true}}\n </div> \n </div> \n {{/if~}}\n {{~/with~}}\n {{/if~}}\n {{~#with this.clusterTeaserItems}}\n {{~#if ../this.isOrdered}}<ol class="mx-5 list-none divide-y divide-white divide-solid counter-reset border-t border-white {{~#if ../this.showGenreImage}}{{~inline-switch ../this.teaserSize \'["100"]\' \'[" md:-pt-5 md:border-none"]\'}}{{/if~}}">{{else}}<ul class="mx-5 divide-y divide-white divide-solid border-t border-white {{~#if ../this.showGenreImage}}{{~inline-switch ../this.teaserSize \'["100"]\' \'[" md:-pt-5 md:border-none"]\'}}{{/if~}}">{{/if}}\n {{~#each this~}}\n <li class="{{~#if ../../this.isOrdered}} -ordered {{/if}} py-5 {{#if ../../this.headlineListOverview.link}} last-of-type:pb-0{{/if~}} {{~#if ../../this.showGenreImage}}{{~inline-switch ../../this.teaserSize \'["100"]\' \'[" md:first-of-type:pt-0"]\'}}{{/if~}}">\n {{> components/teaser/cluster/teaser_cluster_item _size=../this.teaserSize _ordered=../../this.isOrdered }} \n </li>\n {{~/each}}\n {{~#if ../this.isOrdered}}</ol>{{else}}</ul>{{/if~}}\n {{/with~}}\n</div>'
49
- module.exports['components/site_header/navigation_search/quick_search_button.hbs'] = '<div \n x-cloak class="sb-quick-search-button flex items-center h-8 md:h-full md:border-r md:border-l md:border-white lg:border-none" \n :class="$store.searchFieldOpen == true ? \'bg-white mt-2 rounded-t md:mt-0 md:rounded-none\' : \'bg-blue-congress\'"\n>\n <button \n @click="$store.searchFieldOpen = ! $store.searchFieldOpen; dropped = false; $store.serviceNavIsOpen = false; toggleScrolling(!$store.searchFieldOpen)"\n @click.debounce.100ms="$dispatch(\'burger-close\'); $dispatch(\'search-mobile-click\'); $dispatch(\'close-servicemenu\');"\n class="h-full text-white cursor-pointer md:px-4 lg:hidden"\n x-effect="$el.setAttribute(\'id\', \'flyout-\' + $store.searchID.current + \'-1\');$el.setAttribute(\'aria-owns\', \'flyout-\' + $store.searchID.current + \'-2\');$el.setAttribute(\'aria-controls\', \'flyout-\' + $store.searchID.current + \'-2\');$el.setAttribute(\'aria-expanded\', $store.searchFieldOpen == true);$el.setAttribute(\'aria-label\', $store.searchFieldOpen == true ? \'Suche schließen\' : \'Suche öffnen\')"\n >\n <svg \n x-show="$store.searchFieldOpen == false"\n class="h-5 text-white fill-current w-9" \n xmlns="http://www.w3.org/2000/svg" \n viewBox="0 0 20 20"\n role="presentation" \n x-effect="$el.setAttribute(\'aria-hidden\', $store.searchFieldOpen == true)"\n >\n <path d="M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z"></path>\n </svg>\n <svg \n x-show="$store.searchFieldOpen == true"\n class="h-6 fill-current w-9 text-blue-congress" \n xmlns="http://www.w3.org/2000/svg" \n viewBox="0 0 20 20"\n x-effect="$el.setAttribute(\'aria-hidden\', $store.searchFieldOpen == false)"\n >\n <path d="M15.898,4.045c-0.271-0.272-0.713-0.272-0.986,0l-4.71,4.711L5.493,4.045c-0.272-0.272-0.714-0.272-0.986,0s-0.272,0.714,0,0.986l4.709,4.711l-4.71,4.711c-0.272,0.271-0.272,0.713,0,0.986c0.136,0.136,0.314,0.203,0.492,0.203c0.179,0,0.357-0.067,0.493-0.203l4.711-4.711l4.71,4.711c0.137,0.136,0.314,0.203,0.494,0.203c0.178,0,0.355-0.067,0.492-0.203c0.273-0.273,0.273-0.715,0-0.986l-4.711-4.711l4.711-4.711C16.172,4.759,16.172,4.317,15.898,4.045z"></path>\n </svg>\n </button>\n</div>'
50
- module.exports['components/site_header/navigation_search/quick_search_form.hbs'] = '<form \n x-data="searchSuggest()"\n role="search" \n action="{{resourceUrl "suche/index.nocache"}}" \n method="get" \n class="flex w-full sb-quick-search-form md:justify-end lg:h-10"\n>\n <div \n class="relative w-full lg:rounded-l" \n id="search-content"\n @click.away="active=false; cursorIndex=-1"\n @keydown.arrow-down="moveDownList()"\n @keydown.arrow-up="moveUpList()"\n > \n <label for="searchInput--{{nextRandom}}" class="hidden">suchfeld</label>\n <input \n @input.debounce="getSuggestionsForInput();cursorIndex=-1"\n @click="active=true" \n name="query" \n x-model="query"\n placeholder=\'{{loca "search_input_placeholder" }}\' \n class="w-full px-2 py-2 text-base leading-4 placeholder-opacity-100 border rounded-l rounded-r-none shadow-inner appearance-none lg:border-0 lg:border-none border-blue-congress lg:h-10 placeholder-text-xs placeholder-blue-congress text-blue-congress focus:outline-none"\n type="text"\n id="searchInput--{{getRandom}}"\n autocomplete="off"\n role="combobox" \n aria-haspopup="listbox" \n aria-autocomplete="list" \n x-effect="$el.setAttribute(\'aria-expanded\', (query.length > 1 && active && suggestions.length > 0))"\n aria-owns="suggestionlist--{{getRandom}}"\n aria-controls="suggestionlist--{{getRandom}}"\n > \n <div \n class="relative" \n x-show="query.length > 1 && active && suggestions.length"\n x-cloak\n x-transition:leave="transition ease-in duration-100"\n x-transition:leave-start="opacity-100"\n x-transition:leave-end="opacity-0"\n >\n <ul \n role="listbox" \n id="suggestionlist--{{getRandom}}" \n aria-label="Suche öffnen"\n x-effect="$el.setAttribute(\'aria-expanded\', query.length > 1 && active && suggestions.length > 0);$el.setAttribute(\'aria-hidden\', !(query.length > 1 && active && suggestions.length > 0))"\n class="absolute w-full mt-0.5 bg-white border rounded divide-y shadow-xl top-100"\n x-ref="list"\n >\n \n <template x-for="(suggestion, index) in suggestions" :key="index">\n <li class="first-of-type:border-none">\n <a \n x-bind:active="false"\n x-bind:href="\'{{resourceUrl "suche/index.nocache"}}?query=\' + suggestion"\n x-bind:class="{\'py-1.5 px-2 link-focus-inset text-base flex w-full rounded hover:bg-blue-congress hover:text-white\': true, \'bg-blue-congress text-white\':index==cursorIndex }"\n >\n <span x-text="suggestion"></span>\n </a>\n </li>\n </template>\n \n </ul>\n </div> \n </div>\n <button \n aria-label=\'{{loca "search_input_aria_submit" }}\' \n type="submit" \n class="pl-3 pr-2 rounded-r cursor-pointer link-focus-inset bg-blue-congress lg:bg-white text-blue-congress z-10002"\n >\n <svg class="w-6 h-6 text-white fill-current bg-blue-congress lg:fill-current lg:text-blue-congress lg:bg-white" \n xmlns="http://www.w3.org/2000/svg" \n viewBox="0 0 20 20"\n aria-hidden="true"\n >\n <path d="M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z"></path>\n </svg>\n </button>\n</form>\n\n<script type="text/javascript">\n\n function searchSuggest() {\n\n return {\n active:true,\n cursorIndex: -1,\n query: "",\n suggestions: [],\n\n getSuggestionsForInput() {\n\n suggestionDataUrl = \'{{resourceUrl "suche/index~suggest.jsp"}}\' + \'?suggestions=\' + this.query;\n\n fetch(suggestionDataUrl)\n\n .then((res) =>{ return res.text()})\n\n .then((data) => {\n data = JSON.parse(data.replace(/&quot;/g, \'"\'))\n data.solrSuggestions = this.filterStartwith(data.solrSuggestions, this.query)\n this.suggestions= this.filterSortbylength(data.solrSuggestions)\n });\n\n },\n\n filterStartwith(data, query) {\n return data.filter(Suggestion => Suggestion.toLowerCase().startsWith(query.toLowerCase().trim()))\n },\n\n filterSortbylength(data) {\n return data.sort((a, b) => a.length - b.length)\n },\n\n moveDownList() {\n if (this.suggestions.length > 0 && this.cursorIndex < this.suggestions.length - 1) \n {\n this.cursorIndex++;\n this.query = this.suggestions[this.cursorIndex];\n }\n },\n\n moveUpList() {\n if (this.suggestions.length > 0 && this.cursorIndex > 0) \n {\n this.cursorIndex--;\n this.query = this.suggestions[this.cursorIndex];\n }\n },\n\n };\n\n }\n\n</script>'
51
+ module.exports['components/teaser/content_nav/teaser_content_nav.hbs'] = '<div id="contentNavWrapper"\n x-ignore\n ax-load\n ax-load-src="/js/content_nav_alpine.js"\n x-data="contentNavigationHandler()"\n class="col-span-12 flex gap-y-3 gap-x-4 js-load {{inline-switch this.teasersize \'["100","66","50","33","25"]\' \'["flex-col","md:col-span-9 md:flex-row ","md:col-span-6 md:flex-row "," md:col-span-4 md:flex-row "," md:col-span-3 md:flex-row "]\'}}"\n>\n {{> components/content_nav/content_nav _teasersize=this.teasersize }} \n</div>'
51
52
  module.exports['components/teaser/components/teaser_av_consumption.hbs'] = '{{#with this.teaserLead.avDocument}}\n {{~#if this.isVideo ~}}\n {{~> components/mediaplayer/media_player this.toModel.videoElement _cypressHook="js-video-ondemand" _mediaButtonIcon="play_button" _mediaButtonLabel="Video" _isTeaser=true _teaser=../this _aspectRatio=../_aspectRatio _teaserSize=../_teaserSize ~}}\n {{~/if~}}\n {{~#if this.isAudio ~}}\n {{~> components/mediaplayer/media_player this.toModel.audioElement _cypressHook="js-audio-ondemand" _mediaButtonIcon="audio_button" _mediaButtonLabel="Audio" _isTeaser=true _teaser=../this _audioUrl=this.audioUrl _variant=this.imageVariant _noDelay=../_noDelay _aspectRatio=../_aspectRatio _isMobile1to1=../_isMobile1to1 _teaserSize=../_teaserSize~}} \n {{~/if~}}\n {{~#if this.isPodcast ~}}\n {{~> components/mediaplayer/media_player this.toModel.audioElement _cypressHook="js-audio-ondemand" _mediaButtonIcon="podcast-button" _mediaButtonLabel="Podcast" _isTeaser=true _teaser=../this _audioUrl=this.audioUrl _variant=this.imageVariant _noDelay=../_noDelay _aspectRatio=../_aspectRatio _isMobile1to1=../_isMobile1to1 _teaserSize=../_teaserSize~}} \n {{~/if~}}\n {{~#if this.isAudioEventLivestream ~}}\n {{~> components/mediaplayer/media_player this.toModel.audioLivestreamElement _cypressHook="js-video-livestream" _mediaButtonIcon="play_button" _mediaButtonLabel="Live" _isLivestream="true" _isTeaser=true _teaser=../this _audioUrl=this.audioUrl _variant=this.imageVariant _noDelay=../_noDelay _aspectRatio=../_aspectRatio _isMobile1to1=../_isMobile1to1 _teaserSize=../_teaserSize~}} \n {{~/if~}}\n {{~#if this.isLivestream ~}}\n {{~> components/mediaplayer/media_player this.toModel.videoLivestreamElement _cypressHook="js-video-livestream" _mediaButtonIcon="play_button" _mediaButtonLabel="Live" _isLivestream="true" _isTeaser=true _teaser=../this _audioUrl=this.audioUrl _variant=this.imageVariant _noDelay=../_noDelay _aspectRatio=../_aspectRatio _isMobile1to1=../_isMobile1to1 _teaserSize=../_teaserSize~}} \n {{~/if~}}\n \n{{/with}}\n{{#if _isMobile1to1~}} \n {{> components/button/button_transparent _showIcon="true" _title="Mediaplayer schließen" _icon="arrow-up" _iconmap="icons"_addIconClass="w-3 h-3 fill-current" _addClass="md:hidden absolute top-full right-0" _x-show="avStart" _alpineClick="avStart = false; $dispatch(\'player_closed\')"}}\n{{~/if~}}'
52
53
  module.exports['components/teaser/components/teaser_body.hbs'] = '<div class="{{~#if this.isMobile1to1}}basis-3/5 md:flex-full{{/if~}}{{#if _outerCssClasses}} {{_outerCssClasses}}{{/if}}">\n <header class="md:px-0{{#unless this.isMobile1to1}} px-5{{/unless}}">\n {{#decorator \'components/base/link\' _css="hover:text-toplineColor" _doTracking=(if this.doTracking \'true\') _clickLabelPrefix1=this.teaserSize _clickLabelPrefix2="headlineLink" }} \n {{> components/teaser/components/teaser_heading \n _fontVariant=this.headingFontVariant\n _headlineTag=this.headlineTag \n _label=this.label \n _readMore=this.link.readMoreText.readMoreScreenreader \n _size=this.teaserSize \n _title=this.title \n _topline=this.topline \n _teaserType=this.teaserType\n _isMobile1to1=this.isMobile1to1}} \n {{/decorator}} \n </header>\n <div class="md:px-0{{#unless this.isMobile1to1}} px-5{{/unless}}">\n {{> components/teaser/components/teaser_text _text=this.shorttext _size=this.teaserSize _cssClasses=_teaserTextCssClasses }}\n {{> components/teaser/components/teaser_byline}} \n </div>\n</div>'
53
54
  module.exports['components/teaser/components/teaser_byline.hbs'] = '<p class="mt-2.5 text-xs text-grey-scorpion font-headingSerif">\n \n {{!--Teaser-Info--}}\n {{#with this.teaserInfo}}\n {{#if this.showTeaserInfo~}}\n {{~#if this.showTeaserInfoDate}}\n {{~#with ../this.teaserDate}}\n <time datetime="{{this.htmlDateTime}}">{{this.date}}</time>\n {{/with~}} \n <span class="mx-px last-of-type:hidden">|</span> \n {{else}}\n {{~#if this.showTeaserInfoDateTime}}\n {{~#with ../this.teaserDate}}\n <time datetime="{{this.htmlDateTime}}">{{loca "date_simple_at" this.dateSeparatorTime}}</time>\n {{/with~}} \n <span class="mx-px last-of-type:hidden">|</span> \n {{/if~}}\n {{/if~}} \n\n {{~#if this.showTeaserInfoSection}}\n <span class="uppercase">\n {{../this.documentSection~}}\n </span> \n <span class="mx-px last-of-type:hidden">|</span> \n {{/if}}\n\n {{/if}}\n {{/with}}\n\n {{!--Profiles--}}\n {{#if this.profiles}}\n <span>{{this.profiles}}</span> \n <span class="mx-px last-of-type:hidden">|</span> \n {{/if}} \n\n {{!--Comments--}}\n {{#with this.commentsSsi}}\n {{> components/base/loadSSI _templatePath=\'components/teaser/components/teaser_comments\' }} \n {{/with}}\n</p>\n'
@@ -60,12 +61,11 @@ module.exports['components/teaser/components/teaser_text.hbs'] = '<span\n cla
60
61
  module.exports['components/teaser/components/teaser_title.hbs'] = '<span class=\'block mt-0.5 group-hover:underline {{#if _titleBlue}} text-blue-congress {{/if}}{{#if _ordered}} pl-8 {{/if}} {{> components/teaser/components/teaser_title_classes _size=_size _teaserType=_teaserType _fontVariant=_fontVariant _isMobile1to1=_isMobile1to1 _firstItem=_firstItem}}\'>\n {{~_text~}}\n</span>'
61
62
  module.exports['components/teaser/components/teaser_title_classes.hbs'] = '{{! \nThis handlebars template is responisible to render the needed classnames for Teaser headlines\nAs we use tailwind css no cascade is used to style components. As Teaser Headline Sizes dependent\non 4 parameters the logic was outsourced to this file.\n\nthe 4 parameters are:\n- teaserType\n- size\n- _isMobile1to1\n- fontVariant\n\n}}\n\n{{~#switch _teaserType~}}\n {{~#case \'standard-ds\'~}}\n {{~#if _isMobile1to1~}}\n {{~inline-switch\n _size\n \'["hero","100","25"]\'\n \'["text-lg md:text-4xl","text-lg md:text-4xl","text-lg","text-lg md:text-2xl"]\'\n ~}}\n {{~else~}}\n {{~inline-switch\n _size\n \'["hero","100","25"]\'\n \'["text-2xl md:text-4xl","text-2xl md:text-4xl","text-lg","text-2xl"]\'\n ~}}\n {{~/if~}}\n {{~/case~}}\n {{~#case \'alternative-ds\'~}}\n {{~inline-switch\n _size\n \'["hero","100","50"]\'\n \'["text-2xl md:text-3xl","text-lg md:text-3xl","text-lg md:text-2xl"]\'\n ~}}\n {{~/case~}}\n {{~#case \'poster-ds\'~}}\n {{~inline-switch _size \'["50","33"]\' \'["text-2xl md:text-4xl","text-2xl"]\'~}}\n {{~/case~}}\n {{~#case \'cluster\'~}}\n {{#if _firstItem}}\n {{~inline-switch _size \'["100"]\' \'[" text-lg md:text-2xl"," text-lg"]\'}}\n {{else}}\n text-lg \n {{/if}}\n {{~/case~}}\n{{~/switch~}}\n{{~inline-switch\n _fontVariant\n \'["serif", "sans-serif"]\'\n \'[" font-headingSerif"," font-heading font-bold"," font-headingSerif"]\'\n~}}'
62
63
  module.exports['components/teaser/components/teaser_topline.hbs'] = '<span\n class=\'pt-px block text-base\n {{inline-switch _teaserType \'["poster-ds"]\' \'["text-white","text-toplineColor"]\'}}\n font-heading\'\n aria-label=\'{{_readMore}}: {{_text}}\'\n>\n {{_text}}\n</span>'
63
- module.exports['components/teaser/content_nav/teaser_content_nav.hbs'] = '<div id="contentNavWrapper"\n x-ignore\n ax-load\n ax-load-src="/js/content_nav_alpine.js"\n x-data="contentNavigationHandler()"\n class="col-span-12 flex gap-y-3 gap-x-4 js-load {{inline-switch this.teasersize \'["100","66","50","33","25"]\' \'["flex-col","md:col-span-9 md:flex-row ","md:col-span-6 md:flex-row "," md:col-span-4 md:flex-row "," md:col-span-3 md:flex-row "]\'}}"\n>\n {{> components/content_nav/content_nav _teasersize=this.teasersize }} \n</div>'
64
64
  module.exports['components/teaser/group_teaser/group_teaser.hbs'] = '{{#>components/grid/grid_group size=this.teaserSize _backgroundColor=this.backgroundColor }} \n {{~#if this.hasGroupTitle}}\n <h2 class="text-2xl md:text-4xl col-span-full py-0 font-headingSerif {{#if this.backgroundColor}} text-center{{else}} headline-barrier{{/if}}">\n {{~#if this.hasLink}}<a class="no-underline hover:underline decoration-1 md:decoration-2 text-blue-science" href="{{this.link.url}}">{{/if~}}\n {{this.groupTitle}}\n {{~#if this.hasLink}}</a>{{/if~}}\n </h2>\n {{/if}} \n {{~> components/teaser/teaser_logic/teaser_logic ~}}\n{{/components/grid/grid_group}}'
65
65
  module.exports['components/teaser/group_teaser/group_teaser_accented.hbs'] = '{{#>components/grid/grid_group size=this.teaserSize _backgroundColor=this.backgroundColor }}\n \n <div class="h-auto col-span-12 p-8 mx-4 rounded-tr-none rounded-bl-none bg-blue-accented rounded-3xl">\n\n {{~#if this.hasGroupTitle}}\n <h2 class="text-2xl md:text-4xl col-span-full py-0 font-headingSerif {{#if this.backgroundColor}} text-center{{else}} headline-barrier{{/if}}">\n {{~#if this.hasLink}}<a class="no-underline hover:underline decoration-1 md:decoration-2 text-blue-science" href="{{this.link.url}}">{{/if~}}\n {{this.groupTitle}}\n {{~#if this.hasLink}}</a>{{/if~}}\n </h2>\n {{/if}}\n\n </div>\n <div class="h-24 col-span-12 p-2 mx-4 my-0 -mt-10 rounded-tr-none rounded-bl-none md:p-4 bg-blue-accented rounded-3xl">\n \n {{~> components/teaser/teaser_logic/teaser_logic ~}}\n \n </div>\n \n{{/components/grid/grid_group}}'
66
+ module.exports['components/teaser/podcast/podcast.hbs'] = '<div class="grid grid-cols-12 pt-5 md:pt-5 bg-[#dce8f0] mx-0 md:rounded-tl-3xl md:rounded-br-3xl col-main gap-x-6 gap-y-6" > \n {{> components/teaser/podcast/podcast_player _linkTitle="true" _isSinglePage=true _type="podcastEpisodePlayerTeaser" }}\n </div>'
67
+ module.exports['components/teaser/podcast/podcast_player.hbs'] = '<div class="flex col-span-12">\n <div class="relative flex flex-col">\n {{!-- First Row --}}\n <div class="flex flex-row pl-5 ">\n <div class="flex">\n {{#with label}} \n <div class="{{#if ../_ordered}} pl-8 {{/if}}">\n {{> components/label/label _type=this.type _text=(loca this.loca)}}\n </div> \n {{/with}}\n \n {{~#with airdateDate}}\n <div class="w-full pt-1 text-sm text-blue-science">\n <time datetime="{{this.htmlDateTime}}">{{this.date}}</time>\n </div>\n {{/with}}\n </div>\n {{!-- Download Icon --}}\n {{!-- // TODO: new icon needed --}}\n <div class="absolute right-0 flex w-auto">\n <a href="{{this.podcastDownloadUrl}}" class="h-6 button js-load" {{#with this.trackingData}} data-hr-click-tracking=\'{"settings": [{"type": "download", "clickLabel": "{{this.pageName}}", "secondLevelId": "{{this.secondLevelId}}"}, {"type": "uxAction", "clickLabel": "medienDownload::podcast::{{../_type}}", "secondLevelId": "{{this.secondLevelId}}" }]}\'{{/with}}>\n {{> components/base/image/icon _icon=\'download-button\' _addClass="h-6 w-6 text-blue-science fill-current" }}\n </a>\n </div>\n </div>\n\n {{!-- Second Row --}}\n <div class="flex flex-row pb-5 pl-5">\n {{!-- Überschrift: --}}\n <div class="flex w-full">\n {{#decorator \'components/base/link\' _css="font-bold mt-2.5 text-toplineColor line-clamp-2 ..." }} \n {{> components/teaser/components/teaser_title _text=this.title _fontVariant=this.headingFontVariant _size=this.size _teaserType=this.teaserType _isMobile1to1=this.isMobile1to1 _firstItem=this.firstItem}}\n {{/decorator}}\n </div> \n </div>\n \n {{!-- Shorttext: --}}\n {{!-- // TODO: Will shorttext be needed? If yes, where and when? --}}\n {{!-- {{> components/teaser/components/teaser_text _text=this.shorttext _size=this.size }} --}}\n\n {{!-- Third Row --}}\n <div class="flex flex-row pl-5">\n {{!-- Player --}}\n <div class="flex w-full"> \n <div class="flex items-center grow js-load" \n x-data="playaudio()"\n ax-load\n x-ignore\n ax-load-src="/js/podcastPlayer.alpine.js">\n\n <div class="flex items-center w-40">\n {{!-- Start/StopButton --}}\n <button x-cloak x-on:keydown.tab="playAndStop" x-on:click="playAndStop" type="button" class="flex justify-start mr-4 cursor-pointer group focus:outline-none"> \n <div class="">\n <div x-show="!currentlyPlaying" class="text-white rounded-full bg-blue-science ring-white ring">\n {{> components/base/image/icon _icon="play" _iconmap="icons" _addClass="inline pl-1 py-2 w-12 h-12 fill-current"}}\n </div>\n <div x-show="currentlyPlaying" class="bg-white rounded-full ring-blue-science ring text-blue-science">\n {{> components/base/image/icon _icon="pause" _iconmap="icons" _addClass="inline py-2 w-12 h-12 fill-current"}}\n </div>\n </div>\n </button>\n\n {{!-- Meta Time usw. --}}\n <div x-cloak class="flex justify-end w-full">\n <span class="text-sm text-orange-layout" x-text="currentTime">0:00</span>\n <span class="text-sm text-blue-science"> / </span>\n <span class="text-sm text-blue-science" x-text="audioDurationFancy">6:21</span>\n </div> \n </div>\n\n {{!-- Range Slider --}}\n <input x-ref="range" id="range" x-on:input="rangeInput()" type="range" x-bind:value="currentTimePercentage" min="0" max="1000" class="flex self-center flex-grow h-1 ml-4 bg-white rounded-lg appearance-none cursor-pointer seek_slider dark:bg-gray-700" > \n \n {{!-- AudioElement --}}\n {{~#with this.audioUrl ~}}\n <audio preload="metadata" x-init="initTime()" class="hidden" x-ref=\'audio\'>\n <source id="audio" src={{this}} type=\'audio/mp3\'/>\n </audio>\n {{/with}}\n </div>\n </div>\n </div>\n\n {{!-- Fourth Row --}}\n <div class="flex flex-row p-5 pr-0">\n {{#with this.podcastChannel}}\n {{!-- Abo-Dropdown --}}\n {{!-- // TODO: Dropdown-Items need to be flexible via CMS so we need Array in Json and iterate over it --}}\n <div class="flex">\n <div x-cloak x-data="{\n open: false,\n toggle() {\n if (this.open) {\n return this.close()\n }\n this.$refs.button.focus()\n this.open = true\n },\n close(focusAfter) {\n if (! this.open) return\n this.open = false\n focusAfter && focusAfter.focus()\n }}"\n x-on:keydown.escape.prevent.stop="close($refs.button)"\n x-on:focusin.window="! $refs.panel.contains($event.target) && close()"\n x-id="[\'dropdown-button\']"\n class="relative"\n >\n <button\n x-ref="button"\n x-on:click="toggle()"\n :aria-expanded="open"\n :aria-controls="$id(\'dropdown-button\')"\n type="button"\n class="flex items-center gap-2 bg-orange-layout w-40 text-white px-4 py-2.5 shadow">Abonnieren\n\n <svg xmlns="http://www.w3.org/2000/svg" class="flex self-end w-5 h-5 ml-4 text-white" viewBox="0 0 20 20" fill="currentColor">\n <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd" />\n </svg>\n </button>\n\n <div\n x-ref="panel"\n x-show="open"\n x-transition.origin.top.left\n x-on:click.outside="close($refs.button)"\n :id="$id(\'dropdown-button\')"\n style="display: none;"\n class="absolute left-0 w-40 bg-white shadow-md"\n >\n {{!--// TODO: Items should be built via iteration over items-array --}}\n {{#with this.podcastItunesUrl}}\n <a class="flex items-center gap-2 w-full px-4 py-2.5 text-left hover:bg-gray-50 disabled:text-gray-500"\n title="Bei iTunes abonnieren" target="_blank"\n rel="noopener noreferrer"\n href="{{this}}"> \n ITunes-Podcast \n </a> \n {{/with}}\n <a href="#" class="flex items-center gap-2 w-full px-4 py-2.5 text-left hover:bg-gray-50 disabled:text-gray-500">\n Apple Podcast\n </a>\n <a href="#" class="flex items-center gap-2 w-full px-4 py-2.5 text-left hover:bg-gray-50 disabled:text-gray-500">\n ARD Audiothek\n </a>\n <a href="#" class="flex items-center gap-2 w-full px-4 py-2.5 text-left hover:bg-gray-50 disabled:text-gray-500">\n Spotify\n </a>\n <a title="RSS Feed abonnieren" target="_blank" rel="noopener noreferrer" href="{{this.podcastRssUrl}}" class="flex items-center gap-2 w-full px-4 py-2.5 text-left hover:bg-gray-50 disabled:text-gray-500">\n RSS Feed\n </a>\n </div>\n </div>\n </div>\n {{/with}}\n\n {{!-- Sendungs-Link --}}\n <div class="flex justify-end w-full">\n <div class="flex self-end text-blue-science">\n <span class="flex pr-2 font-bold">Zur Sendung: </span>\n <a class="underline" href="#">{{#with this.teaserInfo}} {{~#if this.showTeaserInfoChannel}} <span class="text__byline">{{../this.podcastChannel.title}}</span>{{/if}} {{/with}}</a>\n </div>\n </div>\n \n </div>\n </div>\n\n {{!-- Podcast Image --}}\n <div class="flex px-5 w-52">\n <div class="w-52 h-52">\n {{> components/base/image/responsive_image this.teaseritem \n _type=this.teaserType\n _variant="default"\n _addClass=" overflow-hidden ar--100"\n _noDelay=this.dontLazyload \n _addClassImg="w-42 h-42 block"\n }}</div>\n </div> \n</div>\n\n{{#unless _isSinglePage}}\n {{#unless this.hideShortText}}\n {{~#with this.shorttext}}\n <div class="col-span-12 p-8 c-podcastEpisodePlayer__shortText">\n <span class="c-teaser__shorttext"> {{this}} </span>\n </div>\n {{/with~}}\n {{/unless}}\n{{/unless}}\n\n<style>\n/* Modify the appearance of the slider thumb */\n.seek_slider::-webkit-slider-thumb {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n width: 15px;\n height: 15px;\n background: #F07800;\n border: 2px solid white;\n cursor: pointer;\n border-radius: 50%;\n}\n\n</style>'
66
68
  module.exports['components/teaser/tabbox/group_tabbox.hbs'] = '<section \n x-show="tab === \'{{this.groupTitle}}\'"\n class="pb-10"\n>\n {{~#if this.hasGroupTitle~}}\n <h3 class="sr-only">\n <a class="" href="#tgp{{this.teaserIndex}}">\n <span class="">{{this.groupTitle}}</span>\n <span class="">\n {{> components/base/image/icon _icon="arrow-down" _iconmap="icons" _addClass="w-3 h-2 fill-current"}}\n {{> components/base/image/icon _icon="arrow-up" _iconmap="icons" _addClass="w-3 h-2 fill-current"}}\n </span>\n </a>\n </h3>\n {{~/if~}}\n\n <a class="w-0" name="tgp{{this.teaserIndex}}"></a>\n <div class="grid content-start grid-cols-12 px-0 md:px-8 colspan-12 gap-x-6 gap-y-6">\n {{~> components/teaser/teaser_logic/teaser_logic ~}}\n </div>\n {{~#if this.link~}}\n <div class="flex justify-center pt-8">\n {{~> components/button/button_pseudo _linkTitle=(loca "group_tabbed_more" this.title) ~}}\n </div>\n {{~/if~}}\n</section>'
67
69
  module.exports['components/teaser/tabbox/teaser_tabbox.hbs'] = '</div>\n<div \n x-data="{ tab: \'{{this.tabbedGroup.[0].title}}\' }"\n class="grid grid-cols-12 pt-6 md:pt-7 bg-[#dce8f0] mx-0 md:rounded-tl-3xl md:rounded-br-3xl col-main gap-x-6 gap-y-6"\n>\n <section class="col-span-full" data-hr-group-tabbed=\'{"wandaPageId":"{{this.wandaPageId}}"}\'>\n <div class="flex flex-wrap justify-center mb-7 mx-1.5" role="tablist">\n {{~#each this.tabbedGroup~}}\n <button onclick="window.location.href=\'#tgp{{@index}}\';"\n :class="tab === \'{{this.title}}\' ? \'text-white bg-blue-congress border-blue-congress\' : \'bg-white text-blue-congress border-white hover:border-blue-congress\'" \n x-effect="$el.removeAttribute(\'onclick\')"\n x-on:click.prevent="tab = \'{{this.title}}\'" \n class="border text-base font-heading py-px px-2 m-1.5" \n type="button" \n role="tab"\n >\n {{this.title}}\n </button>\n {{~/each~}}\n </div>\n {{~> components/teaser/teaser_logic/teaser_logic ~}}\n </section>\n</div>\n<div class="grid grid-cols-12 py-6 bg-white sm:px-8 col-full sm:col-main gap-x-6 gap-y-6"> '
68
- module.exports['components/teaser/podcast/podcast.hbs'] = '<div class="grid grid-cols-12 pt-5 md:pt-5 bg-[#dce8f0] mx-0 md:rounded-tl-3xl md:rounded-br-3xl col-main gap-x-6 gap-y-6" > \n {{> components/teaser/podcast/podcast_player _linkTitle="true" _isSinglePage=true _type="podcastEpisodePlayerTeaser" }}\n </div>'
69
- module.exports['components/teaser/podcast/podcast_player.hbs'] = '<div class="flex col-span-12">\n <div class="relative flex flex-col">\n {{!-- First Row --}}\n <div class="flex flex-row pl-5 ">\n <div class="flex">\n {{#with label}} \n <div class="{{#if ../_ordered}} pl-8 {{/if}}">\n {{> components/label/label _type=this.type _text=(loca this.loca)}}\n </div> \n {{/with}}\n \n {{~#with airdateDate}}\n <div class="w-full pt-1 text-sm text-blue-science">\n <time datetime="{{this.htmlDateTime}}">{{this.date}}</time>\n </div>\n {{/with}}\n </div>\n {{!-- Download Icon --}}\n {{!-- // TODO: new icon needed --}}\n <div class="absolute right-0 flex w-auto">\n <a href="{{this.podcastDownloadUrl}}" class="h-6 button js-load" {{#with this.trackingData}} data-hr-click-tracking=\'{"settings": [{"type": "download", "clickLabel": "{{this.pageName}}", "secondLevelId": "{{this.secondLevelId}}"}, {"type": "uxAction", "clickLabel": "medienDownload::podcast::{{../_type}}", "secondLevelId": "{{this.secondLevelId}}" }]}\'{{/with}}>\n {{> components/base/image/icon _icon=\'download-button\' _addClass="h-6 w-6 text-blue-science fill-current" }}\n </a>\n </div>\n </div>\n\n {{!-- Second Row --}}\n <div class="flex flex-row">\n {{!-- Überschrift: --}}\n <div class="flex w-full pb-5 pl-5">\n {{#decorator \'components/base/link\' _css="font-bold mt-2.5 text-toplineColor line-clamp-2 ..." }} \n {{> components/teaser/components/teaser_title _text=this.title _fontVariant=this.headingFontVariant _size=this.size _teaserType=this.teaserType _isMobile1to1=this.isMobile1to1 _firstItem=this.firstItem}}\n {{/decorator}}\n </div> \n </div>\n\n {{!-- Shorttext: --}}\n {{!-- // TODO: Will shorttext be needed? If yes, where and when? --}}\n {{!-- {{> components/teaser/components/teaser_text _text=this.shorttext _size=this.size }} --}}\n\n {{!-- Third Row --}}\n <div class="flex flex-row">\n {{!-- Player --}}\n <div class="flex w-full pl-5"> \n <div class="flex items-center grow js-load" \n x-data="playaudio()"\n ax-load\n x-ignore\n ax-load-src="/js/podcastPlayer.alpine.js">\n\n <div class="flex items-center w-40">\n {{!-- Start/StopButton --}}\n <button x-on:keydown.tab="playAndStop" x-on:click="playAndStop" type="button" class="flex justify-start mr-4 cursor-pointer group focus:outline-none"> \n <div class="">\n <div x-show="!currentlyPlaying" class="text-white rounded-full bg-blue-science ring-white ring">\n {{> components/base/image/icon _icon="play" _iconmap="icons" _addClass="inline pl-1 w-12 h-12 fill-current"}}\n </div>\n <div x-show="currentlyPlaying" class="bg-white rounded-full ring-blue-science ring text-blue-science">\n {{> components/base/image/icon _icon="pause" _iconmap="icons" _addClass="inline w-12 h-12 fill-current"}}\n </div>\n </div>\n </button>\n\n {{!-- Meta Time usw. --}}\n <div class="flex justify-end w-full">\n <span class="text-sm text-orange-layout" x-text="currentTime">0:00</span>\n <span class="text-sm text-blue-science"> / </span>\n <span class="text-sm text-blue-science" x-text="audioDurationFancy">6:21</span>\n </div> \n </div>\n\n {{!-- Range Slider --}}\n <input x-ref="range" id="range" x-on:input="rangeInput()" type="range" x-bind:value="currentTimePercentage" min="0" max="1000" class="flex self-center flex-grow h-1 ml-4 bg-white rounded-lg appearance-none cursor-pointer seek_slider dark:bg-gray-700" > \n \n {{!-- AudioElement --}}\n <audio x-init="initTime()" x-ref=\'audio\'>\n <source\n id="audio" src=\'https://mp3podcasthr-a.akamaihd.net/mp3/podcast/hr2_audio/hr2_audio_20220914_95730396.mp3\'\n type=\'audio/mp3\'\n />\n </audio>\n </div>\n </div>\n </div>\n\n {{!-- Fourth Row --}}\n <div class="flex flex-row p-5 pr-0">\n {{#with this.podcastChannel}}\n {{!-- Abo-Dropdown --}}\n {{!-- // TODO: Dropdown-Items need to be flexible via CMS so we need Array in Json and iterate over it --}}\n <div class="flex">\n <div x-data="{\n open: false,\n toggle() {\n if (this.open) {\n return this.close()\n }\n this.$refs.button.focus()\n this.open = true\n },\n close(focusAfter) {\n if (! this.open) return\n this.open = false\n focusAfter && focusAfter.focus()\n }}"\n x-on:keydown.escape.prevent.stop="close($refs.button)"\n x-on:focusin.window="! $refs.panel.contains($event.target) && close()"\n x-id="[\'dropdown-button\']"\n class="relative"\n >\n <button\n x-ref="button"\n x-on:click="toggle()"\n :aria-expanded="open"\n :aria-controls="$id(\'dropdown-button\')"\n type="button"\n class="flex items-center gap-2 bg-orange-layout w-40 text-white px-4 py-2.5 shadow">Abonnieren\n\n <svg xmlns="http://www.w3.org/2000/svg" class="flex self-end w-5 h-5 ml-4 text-white" viewBox="0 0 20 20" fill="currentColor">\n <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd" />\n </svg>\n </button>\n\n <div\n x-ref="panel"\n x-show="open"\n x-transition.origin.top.left\n x-on:click.outside="close($refs.button)"\n :id="$id(\'dropdown-button\')"\n style="display: none;"\n class="absolute left-0 w-40 bg-white shadow-md"\n >\n {{!-- // TODO: Items should be built via iteration over items-array --}}\n {{#with this.podcastItunesUrl}}\n <a class="flex items-center gap-2 w-full px-4 py-2.5 text-left hover:bg-gray-50 disabled:text-gray-500"\n title="Bei iTunes abonnieren" target="_blank"\n rel="noopener noreferrer"\n href="{{this}}"> \n ITunes-Podcast \n </a> \n {{/with}}\n <a href="#" class="flex items-center gap-2 w-full px-4 py-2.5 text-left hover:bg-gray-50 disabled:text-gray-500">\n Apple Podcast\n </a>\n <a href="#" class="flex items-center gap-2 w-full px-4 py-2.5 text-left hover:bg-gray-50 disabled:text-gray-500">\n ARD Audiothek\n </a>\n <a href="#" class="flex items-center gap-2 w-full px-4 py-2.5 text-left hover:bg-gray-50 disabled:text-gray-500">\n Spotify\n </a>\n <a title="RSS Feed abonnieren" target="_blank" rel="noopener noreferrer" href="{{this.podcastRssUrl}}" class="flex items-center gap-2 w-full px-4 py-2.5 text-left hover:bg-gray-50 disabled:text-gray-500">\n RSS Feed\n </a>\n </div>\n </div>\n </div>\n {{/with}}\n\n {{!-- Sendungs-Link --}}\n <div class="flex justify-end w-full">\n <div class="flex self-end text-blue-science">\n <span class="flex pr-2 font-bold">Zur Sendung: </span>\n <a class="underline" href="#">{{#with this.teaserInfo}} {{~#if this.showTeaserInfoChannel}} <span class="text__byline">{{../this.podcastChannel.title}}</span>{{/if}} {{/with}}</a>\n </div>\n </div>\n \n </div>\n </div>\n\n {{!-- Podcast Image --}}\n <div class="flex px-5 w-52">\n <div class="w-52 h-52">\n {{> components/base/image/responsive_image this.teaseritem \n _type=this.teaserType\n _variant="default"\n _addClass=" overflow-hidden ar--100"\n _noDelay=this.dontLazyload \n _addClassImg="w-42 h-42 block"\n }}</div>\n </div> \n</div>\n\n{{#unless _isSinglePage}}\n {{#unless this.hideShortText}}\n {{~#with this.shorttext}}\n <div class="col-span-12 p-8 c-podcastEpisodePlayer__shortText">\n <span class="c-teaser__shorttext"> {{this}} </span>\n </div>\n {{/with~}}\n {{/unless}}\n{{/unless}}\n\n<style>\n/* Modify the appearance of the slider thumb */\n.seek_slider::-webkit-slider-thumb {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n width: 15px;\n height: 15px;\n background: #F07800;\n border: 2px solid white;\n cursor: pointer;\n border-radius: 50%;\n}\n\n</style>'
70
70
  module.exports['components/teaser/teaser_logic/teaser_logic.hbs'] = '{{~#each this.logicItems}}\n {{~#if this.isSsi~}} \n {{#if (isStorybook)}} \n {{> components/teaser/teaser_logic/teaser_logic.ssi }} \n {{else}}\n {{{this.ssi}}}\n {{/if}} \n {{~else}}\n {{~#with this.includeModel~}}\n {{~#if (isStorybook)~}}\n {{~> components/base/load_dynamic _templatePath=../includePath ~}} \n {{~else~}}\n {{~> (lookup ../. \'includePath\')~}}\n {{~/if~}}\n {{~/with~}}\n {{~/if~}}\n{{/each~}}'
71
71
  module.exports['components/teaser/teaser_logic/teaser_logic.ssi.hbs'] = '{{~#with this.logicItem~}}\n {{~#with this.includeModel~}}\n {{~#if (isStorybook)~}}\n {{~> components/base/load_dynamic _templatePath=../includePath ~}}\n {{~else~}}\n {{~> (lookup ../. \'includePath\')~}}\n {{~/if~}}\n {{~/with~}}\n{{~/with~}}'
@@ -2033,7 +2033,7 @@ video {
2033
2033
  transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
2034
2034
  }
2035
2035
  .counter-reset {
2036
- counter-reset: cnt1665153141683;
2036
+ counter-reset: cnt1665404901744;
2037
2037
  }
2038
2038
  .line-clamp-2 {
2039
2039
  overflow: hidden;
@@ -2422,7 +2422,7 @@ video {
2422
2422
  --tw-ring-color: rgba(255, 255, 255, 0.5);
2423
2423
  }
2424
2424
  .-ordered {
2425
- counter-increment: cnt1665153141683 1;
2425
+ counter-increment: cnt1665404901744 1;
2426
2426
  }
2427
2427
  .-ordered::before {
2428
2428
  position: absolute;
@@ -2439,7 +2439,7 @@ video {
2439
2439
  letter-spacing: .0125em;
2440
2440
  --tw-text-opacity: 1;
2441
2441
  color: rgba(0, 0, 0, var(--tw-text-opacity));
2442
- content: counter(cnt1665153141683);
2442
+ content: counter(cnt1665404901744);
2443
2443
  }
2444
2444
  /*! purgecss start ignore */
2445
2445
  :root,
@@ -3,7 +3,7 @@
3
3
  <h2 class="flex items-center px-5 py-6 font-bold font-headingSerif text-blue-congress">
4
4
  {{#if this.teaserLogo}}
5
5
  <span>
6
- {{> components/base/image/icon _icon=this.teaserLogo _iconmap="logo" _addClass=(if this.isHessenschauLogo 'fill-[#005293] w-10 md:w-12 h-10 md:h-12' 'fill-[#005293] w-40 lg:w-52 h-8 md:h-12')}}
6
+ {{> components/base/image/icon _icon=this.teaserLogo _iconmap="logo" _addClass=(inline-switch this.teaserLogo '["hessenschau_de"]' '["fill-[#005293] w-10 md:w-12 h-10 md:h-12","fill-[#005293] w-40 lg:w-52 h-8 md:h-12"]')}}
7
7
  </span>
8
8
  {{/if}}
9
9
  {{#if this.title}}
@@ -25,23 +25,23 @@
25
25
  </div>
26
26
 
27
27
  {{!-- Second Row --}}
28
- <div class="flex flex-row">
28
+ <div class="flex flex-row pb-5 pl-5">
29
29
  {{!-- Überschrift: --}}
30
- <div class="flex w-full pb-5 pl-5">
30
+ <div class="flex w-full">
31
31
  {{#decorator 'components/base/link' _css="font-bold mt-2.5 text-toplineColor line-clamp-2 ..." }}
32
32
  {{> components/teaser/components/teaser_title _text=this.title _fontVariant=this.headingFontVariant _size=this.size _teaserType=this.teaserType _isMobile1to1=this.isMobile1to1 _firstItem=this.firstItem}}
33
33
  {{/decorator}}
34
34
  </div>
35
35
  </div>
36
-
36
+
37
37
  {{!-- Shorttext: --}}
38
38
  {{!-- // TODO: Will shorttext be needed? If yes, where and when? --}}
39
39
  {{!-- {{> components/teaser/components/teaser_text _text=this.shorttext _size=this.size }} --}}
40
40
 
41
41
  {{!-- Third Row --}}
42
- <div class="flex flex-row">
42
+ <div class="flex flex-row pl-5">
43
43
  {{!-- Player --}}
44
- <div class="flex w-full pl-5">
44
+ <div class="flex w-full">
45
45
  <div class="flex items-center grow js-load"
46
46
  x-data="playaudio()"
47
47
  ax-load
@@ -50,19 +50,19 @@
50
50
 
51
51
  <div class="flex items-center w-40">
52
52
  {{!-- Start/StopButton --}}
53
- <button x-on:keydown.tab="playAndStop" x-on:click="playAndStop" type="button" class="flex justify-start mr-4 cursor-pointer group focus:outline-none">
53
+ <button x-cloak x-on:keydown.tab="playAndStop" x-on:click="playAndStop" type="button" class="flex justify-start mr-4 cursor-pointer group focus:outline-none">
54
54
  <div class="">
55
55
  <div x-show="!currentlyPlaying" class="text-white rounded-full bg-blue-science ring-white ring">
56
- {{> components/base/image/icon _icon="play" _iconmap="icons" _addClass="inline pl-1 w-12 h-12 fill-current"}}
56
+ {{> components/base/image/icon _icon="play" _iconmap="icons" _addClass="inline pl-1 py-2 w-12 h-12 fill-current"}}
57
57
  </div>
58
58
  <div x-show="currentlyPlaying" class="bg-white rounded-full ring-blue-science ring text-blue-science">
59
- {{> components/base/image/icon _icon="pause" _iconmap="icons" _addClass="inline w-12 h-12 fill-current"}}
59
+ {{> components/base/image/icon _icon="pause" _iconmap="icons" _addClass="inline py-2 w-12 h-12 fill-current"}}
60
60
  </div>
61
61
  </div>
62
62
  </button>
63
63
 
64
64
  {{!-- Meta Time usw. --}}
65
- <div class="flex justify-end w-full">
65
+ <div x-cloak class="flex justify-end w-full">
66
66
  <span class="text-sm text-orange-layout" x-text="currentTime">0:00</span>
67
67
  <span class="text-sm text-blue-science"> / </span>
68
68
  <span class="text-sm text-blue-science" x-text="audioDurationFancy">6:21</span>
@@ -73,12 +73,11 @@
73
73
  <input x-ref="range" id="range" x-on:input="rangeInput()" type="range" x-bind:value="currentTimePercentage" min="0" max="1000" class="flex self-center flex-grow h-1 ml-4 bg-white rounded-lg appearance-none cursor-pointer seek_slider dark:bg-gray-700" >
74
74
 
75
75
  {{!-- AudioElement --}}
76
- <audio x-init="initTime()" x-ref='audio'>
77
- <source
78
- id="audio" src='https://mp3podcasthr-a.akamaihd.net/mp3/podcast/hr2_audio/hr2_audio_20220914_95730396.mp3'
79
- type='audio/mp3'
80
- />
81
- </audio>
76
+ {{~#with this.audioUrl ~}}
77
+ <audio preload="metadata" x-init="initTime()" class="hidden" x-ref='audio'>
78
+ <source id="audio" src={{this}} type='audio/mp3'/>
79
+ </audio>
80
+ {{/with}}
82
81
  </div>
83
82
  </div>
84
83
  </div>
@@ -89,7 +88,7 @@
89
88
  {{!-- Abo-Dropdown --}}
90
89
  {{!-- // TODO: Dropdown-Items need to be flexible via CMS so we need Array in Json and iterate over it --}}
91
90
  <div class="flex">
92
- <div x-data="{
91
+ <div x-cloak x-data="{
93
92
  open: false,
94
93
  toggle() {
95
94
  if (this.open) {
@@ -130,7 +129,7 @@
130
129
  style="display: none;"
131
130
  class="absolute left-0 w-40 bg-white shadow-md"
132
131
  >
133
- {{!-- // TODO: Items should be built via iteration over items-array --}}
132
+ {{!--// TODO: Items should be built via iteration over items-array --}}
134
133
  {{#with this.podcastItunesUrl}}
135
134
  <a class="flex items-center gap-2 w-full px-4 py-2.5 text-left hover:bg-gray-50 disabled:text-gray-500"
136
135
  title="Bei iTunes abonnieren" target="_blank"
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
8
8
  "repository": "https://github.com/szuelch/hr-design-system-handlebars",
9
- "version": "0.60.0",
9
+ "version": "0.61.1",
10
10
  "scripts": {
11
11
  "test": "echo \"Error: no test specified\" && exit 1",
12
12
  "storybook": "start-storybook -p 6006 public",
@@ -534,6 +534,7 @@
534
534
  "podcastItunesUrl": "#ItunesURL",
535
535
  "podcastRssUrl": "#RSSURL"
536
536
  },
537
+ "audioUrl": "https://mp3podcasthr-a.akamaihd.net/mp3/podcast/hr2_audio/hr2_audio_20220914_95730396.mp3",
537
538
  "podcastDownloadUrl" : "https://mp3podcasthr-a.akamaihd.net/mp3/podcast/derTag/derTag_20190320_81142988.mp3",
538
539
  "teaserImage": {
539
540
  "@->jsoninclude": "teaser/teaser_images.inc.json",
@@ -36,7 +36,7 @@ export default function playaudio(){
36
36
  },
37
37
  initTime() {
38
38
  console.log('time initialized')
39
- this.$refs.audio.addEventListener("durationchange", () => {this.setTime()});
39
+ this.$refs.audio.addEventListener("durationchange", () => {console.log('duration is available'); this.setTime()});
40
40
  },
41
41
  setTime() {
42
42
  console.log('time set')
@@ -3,7 +3,7 @@
3
3
  <h2 class="flex items-center px-5 py-6 font-bold font-headingSerif text-blue-congress">
4
4
  {{#if this.teaserLogo}}
5
5
  <span>
6
- {{> components/base/image/icon _icon=this.teaserLogo _iconmap="logo" _addClass=(if this.isHessenschauLogo 'fill-[#005293] w-10 md:w-12 h-10 md:h-12' 'fill-[#005293] w-40 lg:w-52 h-8 md:h-12')}}
6
+ {{> components/base/image/icon _icon=this.teaserLogo _iconmap="logo" _addClass=(inline-switch this.teaserLogo '["hessenschau_de"]' '["fill-[#005293] w-10 md:w-12 h-10 md:h-12","fill-[#005293] w-40 lg:w-52 h-8 md:h-12"]')}}
7
7
  </span>
8
8
  {{/if}}
9
9
  {{#if this.title}}
@@ -1 +1 @@
1
- {"isSsi":true,"logicItem":{"includePath":"components/teaser/podcast/podcast","includeModel":{"byline":"Byline","title":"Hier steht ein unheimlich toller langer Podcast-Titel, der geht über zwei Zeilen und wird in der zweiten Zeile mit 3 Punkten abgekürzt, sollte er zu lang sein","topline":"Hier steht die Topline","headingFontVariant":"serif","extendedTitle":"","teaserType":"standard-ds","teaserSize":"hero","isMobile1to1":false,"airdateDate":{"htmlDateTime":"2022-04-17T19:30+0200","htmlDate":"20.02.1984","date":"17.04.22","dateSeparatorTime":"17.04.22, 19:30"},"teaseritem":{"copyrightWithLinks":"","responsiveImage":{"asPicture":false,"asImage":true,"fallback":"https://picsum.photos/id/189/480/480","sources":[{"sizes":"(min-width: 1010px) 960px, 100vw","srcset":"https://picsum.photos/id/189/320/320 320w, https://picsum.photos/id/189/480/480 480w, https://picsum.photos/id/189/640/640 640w, https://picsum.photos/id/189/960/960 960w, https://picsum.photos/id/189/1920/1080 1920w"}]}},"teaserInfo":{"showTeaserInfo":true,"showTeaserInfoSection":true,"showTeaserInfoChannel":true,"showTeaserInfoAll":true,"showTeaserInfoDate":false,"showTeaserInfoDateTime":true,"showTeaserInfoProgramRef":true},"podcastChannel":{"title":"Der Tag in Hessen!","url":"#ChannelURL","podcastItunesUrl":"#ItunesURL","podcastRssUrl":"#RSSURL"},"podcastDownloadUrl":"https://mp3podcasthr-a.akamaihd.net/mp3/podcast/derTag/derTag_20190320_81142988.mp3","teaserImage":{"alttext":"Lorem ipsum","copyrightWithLinks":"","responsiveImage":{"asPicture":false,"asImage":true,"fallback":"https://picsum.photos/id/101/480/270","sources":[{"sizes":"(min-width: 1010px) 960px, 100vw","srcset":"https://picsum.photos/id/101/320/180 320w, https://picsum.photos/id/101/480/270 480w, https://picsum.photos/id/101/640/360 640w, https://picsum.photos/id/101/960/540 960w, https://picsum.photos/id/101/1920/1080 1920w"}]}},"commentsSsi":{"commentNumber":"666","hasOneComment":false,"hasManyComments":true,"commentLink":{"link":{"url":"/teaser1-comments","webviewUrl":"/teaser1-comments#webview","isTargetBlank":false,"readMoreText":{"readMoreScreenreader":"Zu den Kommentaren des Artikels"}}}},"documentSection":"Gesellschaft","displayTeaserBodyAsImageOverlay":false,"hasMediaButtons":false,"dontLazyload":true,"isStandardTeaser":false,"isHeroTeaser":true,"isMediaTeaser":false,"isGuide":false,"isProgram":false,"isEvent":false,"isTicker":false,"isAudio":false,"isVideo":false,"isPodcastEpisode":true,"isExtOrBrandLink":false,"isAuthor":false,"copyright":"Copyright Text","audioAuthor":"Audio Author","hasStatus":false,"hasTeaserItem":true,"allowAVConsumption":false,"displayEpgInfos":false,"aspectRatio":"ar--teaserTop","hideGeotag":false,"hideEditableByline":true,"doTracking":true,"trackingForArdMediatheksLink":false,"showMediatheksLink":false,"showAirdate":true,"showProfileInfoAsByline":false,"obsolet_brandOfTeaser":"hessenschau","headlineTag":"h2","icon":"ortsmarke","imageVariant":"topteaser","hideShortText":false,"shorttext":"Bla ..... Vor einem Jahr wurde die syrische Familie Kheder aus Wolfhagen abgeschoben. Die Gemeinde setzte alle Hebel in Bewegung, um Mutter, Tochter und Sohn zurückzuholen. Im Fall der Kinder hat das nun zu einem Happy End geführt. Doch ihre liebe Mutter fehlt.","sophoraId":"rueckkehr-nach-abschiebung-wolfhagen--100","profiles":"Von Alf Haubitz und Alice Merton","teaserLead":{"isPodcast":true,"toModel":{"audioElement":{"isPodcast":true,"ardPlayerConfig":{"playerConfig":{"generic":{"isAutoplay":true,"imageTemplateConfig":{"size":[{"minWidth":0,"value":"480/270"},{"minWidth":480,"value":"640/360"},{"minWidth":640,"value":"960/540"},{"minWidth":960,"value":"1920/1080"}]}},"web":{"baseUrl":"http://localhost:8080/site/hessenschau/assets_2.85.0/vendor/ardplayer/","isForcedAutoplay":true,"isForcedVideoView":true},"pluginData":{"trackingAti@all":{"site":"551103","config":{"getCollectDomainSSL":"logs1406.xiti.com","secure":true},"page":{"name":"muslim_fashion__mehr_als_ein_kopftuch__podcast:audio:audioPlay","level2":"4","chapter1":"Audio-Start","chapter2":"OnDemand","customVars":{"site":{"1":"podcast-episode-43976","2":"hr-nt:podcastEpisode","5":"202203230802"}}},"richMedia":{"mediaType":"audio","playerId":"4076","mediaLevel2":"4","mediaLabel":"muslim_fashion__mehr_als_ein_kopftuch__podcast:audioPlay","mediaTheme1":"OnDemand","duration":"3040","broadcastMode":"clip"}}}},"mediaCollection":{"streams":[{"kind":"main","isAudioOnly":true,"media":[{"url":"https://mp3podcasthr-a.akamaihd.net/mp3/podcast/derTag/derTag_20190320_81142988.mp3","mimeType":"audio/mp3","audios":[{"kind":"standard","languageCode":"de"}]}]}],"meta":{"durationSeconds":3040,"images":[{"kind":"preview","url":"https://picsum.photos/id/101/{size}"}],"title":"Muslim Fashion. Mehr als ein Kopftuch.","synopsis":"Wo immer die Ausstellung \"Contemporary Muslim Fashion“ ins Museum kommt, entfacht sie heftige Diskussionen. Nachdem die Schau in San Francisco für Furore sorgte, wird sie demnächst im Frankfurter Museum für Angewandte Kunst als erste Station in Europa gezeigt. Die \"Modest Fashion“, die dezente Mode, so das Schlagwort für die verhüllende, aber keineswegs unsichtbar machende Mode, spaltet das feministische Lager: Ist sie eine Momentaufnahme aktueller muslimischer Kleidungsstile aus aller Welt oder Werbung für die weibliche Verschleierung? In jedem Fall zeigt die Ausstellung, dass die Verhüllung des weiblichen Körpers und der Frisur nicht nur trist, sondern auch schön sein kann - und für manche Trägerinnen befreiend. Und sie ist durchaus politisch, diskutiert gesetzliche Kleiderordnungen und die Frage politischer Symbolik. Inzwischen wollen auch westliche Firmen von der Vielfalt muslimischer Mode profitieren. Sie haben die Konsumentinnen im Nahen Osten und Südostasien als kaufkräftige Klientel entdeckt. Dort ist ein riesiger Markt zu erschließen. Nicht selten wagen sie sich damit an die Grenzen religiöser und gesellschaftlicher Akzeptanz. Kann Mode solche Grenzen überwinden? "},"pluginData":{},"geoBlocked":false},"playerId":"4076","type":"audioOndemand","cssUrl":"./vendor/ardplayer/ardplayer-hr-6.3.4.4fc164e9.css","jsUrl":"./vendor/ardplayer/ardplayer-hr-6.3.4.8ea4ea3d.js","isAutoplay":true,"teaserSize":"50"},"ardPlayerJsonConfig":{"playerConfig":{"generic":{"isAutoplay":true,"imageTemplateConfig":{"size":[{"minWidth":0,"value":"480/270"},{"minWidth":480,"value":"640/360"},{"minWidth":640,"value":"960/540"},{"minWidth":960,"value":"1920/1080"}]}},"web":{"baseUrl":"http://localhost:8080/site/hessenschau/assets_2.85.0/vendor/ardplayer/","isForcedAutoplay":true,"isForcedVideoView":true},"pluginData":{"trackingAti@all":{"site":"551103","config":{"getCollectDomainSSL":"logs1406.xiti.com","secure":true},"page":{"name":"muslim_fashion__mehr_als_ein_kopftuch__podcast:audio:audioPlay","level2":"4","chapter1":"Audio-Start","chapter2":"OnDemand","customVars":{"site":{"1":"podcast-episode-43976","2":"hr-nt:podcastEpisode","5":"202203230802"}}},"richMedia":{"mediaType":"audio","playerId":"4076","mediaLevel2":"4","mediaLabel":"muslim_fashion__mehr_als_ein_kopftuch__podcast:audioPlay","mediaTheme1":"OnDemand","duration":"3040","broadcastMode":"clip"}}}},"mediaCollection":{"streams":[{"kind":"main","isAudioOnly":true,"media":[{"url":"https://mp3podcasthr-a.akamaihd.net/mp3/podcast/derTag/derTag_20190320_81142988.mp3","mimeType":"audio/mp3","audios":[{"kind":"standard","languageCode":"de"}]}]}],"meta":{"durationSeconds":3040,"images":[{"kind":"preview","url":"https://picsum.photos/id/101/{size}"}],"title":"Muslim Fashion. Mehr als ein Kopftuch.","synopsis":"Wo immer die Ausstellung \"Contemporary Muslim Fashion“ ins Museum kommt, entfacht sie heftige Diskussionen. Nachdem die Schau in San Francisco für Furore sorgte, wird sie demnächst im Frankfurter Museum für Angewandte Kunst als erste Station in Europa gezeigt. Die \"Modest Fashion“, die dezente Mode, so das Schlagwort für die verhüllende, aber keineswegs unsichtbar machende Mode, spaltet das feministische Lager: Ist sie eine Momentaufnahme aktueller muslimischer Kleidungsstile aus aller Welt oder Werbung für die weibliche Verschleierung? In jedem Fall zeigt die Ausstellung, dass die Verhüllung des weiblichen Körpers und der Frisur nicht nur trist, sondern auch schön sein kann - und für manche Trägerinnen befreiend. Und sie ist durchaus politisch, diskutiert gesetzliche Kleiderordnungen und die Frage politischer Symbolik. Inzwischen wollen auch westliche Firmen von der Vielfalt muslimischer Mode profitieren. Sie haben die Konsumentinnen im Nahen Osten und Südostasien als kaufkräftige Klientel entdeckt. Dort ist ein riesiger Markt zu erschließen. Nicht selten wagen sie sich damit an die Grenzen religiöser und gesellschaftlicher Akzeptanz. Kann Mode solche Grenzen überwinden? "},"pluginData":{},"geoBlocked":false},"playerId":"4076","type":"audioOndemand","cssUrl":"./vendor/ardplayer/ardplayer-hr-6.3.4.4fc164e9.css","jsUrl":"./vendor/ardplayer/ardplayer-hr-6.3.4.8ea4ea3d.js","isAutoplay":true,"teaserSize":"50"}}}},"geotag":[{"title":"Wolfhagen"}],"link":{"url":"/teaser1","webviewUrl":"/teaser1#webview","isTargetBlank":false,"hasIcon":false,"iconName":"iconName","readMoreText":{"readMoreScreenreader":"Zum Artikel","readMore":"mehr","readMoreLong":"read More Long"},"content":{"headlineTag":"h1","headingFontVariant":"sans serif","imageVariant":"topteaser","isFileDownload":false,"teaserImage":{"alttext":"Lorem ipsum","copyrightWithLinks":"","responsiveImage":{"asPicture":false,"asImage":true,"fallback":"https://picsum.photos/id/101/480/270","sources":[{"sizes":"(min-width: 1010px) 960px, 100vw","srcset":"https://picsum.photos/id/101/320/180 320w, https://picsum.photos/id/101/480/270 480w, https://picsum.photos/id/101/640/360 640w, https://picsum.photos/id/101/960/540 960w, https://picsum.photos/id/101/1920/1080 1920w"}]}},"teaserSize":"hero","isMobile1to1":false,"teaserType":"standard-ds","title":"Abgeschobene Geschwister aus Syrien zurück in Wolfhagen","topline":"Überglücklich, aber ohne Mama","trackingData":{"secondLevelId":"2","pageName":"hessenschau"}}},"label":{"type":"podcast","loca":"label_podcast","byline":{"bylineSsi":"","bylineText":""}}}}}
1
+ {"isSsi":true,"logicItem":{"includePath":"components/teaser/podcast/podcast","includeModel":{"byline":"Byline","title":"Hier steht ein unheimlich toller langer Podcast-Titel, der geht über zwei Zeilen und wird in der zweiten Zeile mit 3 Punkten abgekürzt, sollte er zu lang sein","topline":"Hier steht die Topline","headingFontVariant":"serif","extendedTitle":"","teaserType":"standard-ds","teaserSize":"hero","isMobile1to1":false,"airdateDate":{"htmlDateTime":"2022-04-17T19:30+0200","htmlDate":"20.02.1984","date":"17.04.22","dateSeparatorTime":"17.04.22, 19:30"},"teaseritem":{"copyrightWithLinks":"","responsiveImage":{"asPicture":false,"asImage":true,"fallback":"https://picsum.photos/id/189/480/480","sources":[{"sizes":"(min-width: 1010px) 960px, 100vw","srcset":"https://picsum.photos/id/189/320/320 320w, https://picsum.photos/id/189/480/480 480w, https://picsum.photos/id/189/640/640 640w, https://picsum.photos/id/189/960/960 960w, https://picsum.photos/id/189/1920/1080 1920w"}]}},"teaserInfo":{"showTeaserInfo":true,"showTeaserInfoSection":true,"showTeaserInfoChannel":true,"showTeaserInfoAll":true,"showTeaserInfoDate":false,"showTeaserInfoDateTime":true,"showTeaserInfoProgramRef":true},"podcastChannel":{"title":"Der Tag in Hessen!","url":"#ChannelURL","podcastItunesUrl":"#ItunesURL","podcastRssUrl":"#RSSURL"},"audioUrl":"https://mp3podcasthr-a.akamaihd.net/mp3/podcast/hr2_audio/hr2_audio_20220914_95730396.mp3","podcastDownloadUrl":"https://mp3podcasthr-a.akamaihd.net/mp3/podcast/derTag/derTag_20190320_81142988.mp3","teaserImage":{"alttext":"Lorem ipsum","copyrightWithLinks":"","responsiveImage":{"asPicture":false,"asImage":true,"fallback":"https://picsum.photos/id/101/480/270","sources":[{"sizes":"(min-width: 1010px) 960px, 100vw","srcset":"https://picsum.photos/id/101/320/180 320w, https://picsum.photos/id/101/480/270 480w, https://picsum.photos/id/101/640/360 640w, https://picsum.photos/id/101/960/540 960w, https://picsum.photos/id/101/1920/1080 1920w"}]}},"commentsSsi":{"commentNumber":"666","hasOneComment":false,"hasManyComments":true,"commentLink":{"link":{"url":"/teaser1-comments","webviewUrl":"/teaser1-comments#webview","isTargetBlank":false,"readMoreText":{"readMoreScreenreader":"Zu den Kommentaren des Artikels"}}}},"documentSection":"Gesellschaft","displayTeaserBodyAsImageOverlay":false,"hasMediaButtons":false,"dontLazyload":true,"isStandardTeaser":false,"isHeroTeaser":true,"isMediaTeaser":false,"isGuide":false,"isProgram":false,"isEvent":false,"isTicker":false,"isAudio":false,"isVideo":false,"isPodcastEpisode":true,"isExtOrBrandLink":false,"isAuthor":false,"copyright":"Copyright Text","audioAuthor":"Audio Author","hasStatus":false,"hasTeaserItem":true,"allowAVConsumption":false,"displayEpgInfos":false,"aspectRatio":"ar--teaserTop","hideGeotag":false,"hideEditableByline":true,"doTracking":true,"trackingForArdMediatheksLink":false,"showMediatheksLink":false,"showAirdate":true,"showProfileInfoAsByline":false,"obsolet_brandOfTeaser":"hessenschau","headlineTag":"h2","icon":"ortsmarke","imageVariant":"topteaser","hideShortText":false,"shorttext":"Bla ..... Vor einem Jahr wurde die syrische Familie Kheder aus Wolfhagen abgeschoben. Die Gemeinde setzte alle Hebel in Bewegung, um Mutter, Tochter und Sohn zurückzuholen. Im Fall der Kinder hat das nun zu einem Happy End geführt. Doch ihre liebe Mutter fehlt.","sophoraId":"rueckkehr-nach-abschiebung-wolfhagen--100","profiles":"Von Alf Haubitz und Alice Merton","teaserLead":{"isPodcast":true,"toModel":{"audioElement":{"isPodcast":true,"ardPlayerConfig":{"playerConfig":{"generic":{"isAutoplay":true,"imageTemplateConfig":{"size":[{"minWidth":0,"value":"480/270"},{"minWidth":480,"value":"640/360"},{"minWidth":640,"value":"960/540"},{"minWidth":960,"value":"1920/1080"}]}},"web":{"baseUrl":"http://localhost:8080/site/hessenschau/assets_2.85.0/vendor/ardplayer/","isForcedAutoplay":true,"isForcedVideoView":true},"pluginData":{"trackingAti@all":{"site":"551103","config":{"getCollectDomainSSL":"logs1406.xiti.com","secure":true},"page":{"name":"muslim_fashion__mehr_als_ein_kopftuch__podcast:audio:audioPlay","level2":"4","chapter1":"Audio-Start","chapter2":"OnDemand","customVars":{"site":{"1":"podcast-episode-43976","2":"hr-nt:podcastEpisode","5":"202203230802"}}},"richMedia":{"mediaType":"audio","playerId":"4076","mediaLevel2":"4","mediaLabel":"muslim_fashion__mehr_als_ein_kopftuch__podcast:audioPlay","mediaTheme1":"OnDemand","duration":"3040","broadcastMode":"clip"}}}},"mediaCollection":{"streams":[{"kind":"main","isAudioOnly":true,"media":[{"url":"https://mp3podcasthr-a.akamaihd.net/mp3/podcast/derTag/derTag_20190320_81142988.mp3","mimeType":"audio/mp3","audios":[{"kind":"standard","languageCode":"de"}]}]}],"meta":{"durationSeconds":3040,"images":[{"kind":"preview","url":"https://picsum.photos/id/101/{size}"}],"title":"Muslim Fashion. Mehr als ein Kopftuch.","synopsis":"Wo immer die Ausstellung \"Contemporary Muslim Fashion“ ins Museum kommt, entfacht sie heftige Diskussionen. Nachdem die Schau in San Francisco für Furore sorgte, wird sie demnächst im Frankfurter Museum für Angewandte Kunst als erste Station in Europa gezeigt. Die \"Modest Fashion“, die dezente Mode, so das Schlagwort für die verhüllende, aber keineswegs unsichtbar machende Mode, spaltet das feministische Lager: Ist sie eine Momentaufnahme aktueller muslimischer Kleidungsstile aus aller Welt oder Werbung für die weibliche Verschleierung? In jedem Fall zeigt die Ausstellung, dass die Verhüllung des weiblichen Körpers und der Frisur nicht nur trist, sondern auch schön sein kann - und für manche Trägerinnen befreiend. Und sie ist durchaus politisch, diskutiert gesetzliche Kleiderordnungen und die Frage politischer Symbolik. Inzwischen wollen auch westliche Firmen von der Vielfalt muslimischer Mode profitieren. Sie haben die Konsumentinnen im Nahen Osten und Südostasien als kaufkräftige Klientel entdeckt. Dort ist ein riesiger Markt zu erschließen. Nicht selten wagen sie sich damit an die Grenzen religiöser und gesellschaftlicher Akzeptanz. Kann Mode solche Grenzen überwinden? "},"pluginData":{},"geoBlocked":false},"playerId":"4076","type":"audioOndemand","cssUrl":"./vendor/ardplayer/ardplayer-hr-6.3.4.4fc164e9.css","jsUrl":"./vendor/ardplayer/ardplayer-hr-6.3.4.8ea4ea3d.js","isAutoplay":true,"teaserSize":"50"},"ardPlayerJsonConfig":{"playerConfig":{"generic":{"isAutoplay":true,"imageTemplateConfig":{"size":[{"minWidth":0,"value":"480/270"},{"minWidth":480,"value":"640/360"},{"minWidth":640,"value":"960/540"},{"minWidth":960,"value":"1920/1080"}]}},"web":{"baseUrl":"http://localhost:8080/site/hessenschau/assets_2.85.0/vendor/ardplayer/","isForcedAutoplay":true,"isForcedVideoView":true},"pluginData":{"trackingAti@all":{"site":"551103","config":{"getCollectDomainSSL":"logs1406.xiti.com","secure":true},"page":{"name":"muslim_fashion__mehr_als_ein_kopftuch__podcast:audio:audioPlay","level2":"4","chapter1":"Audio-Start","chapter2":"OnDemand","customVars":{"site":{"1":"podcast-episode-43976","2":"hr-nt:podcastEpisode","5":"202203230802"}}},"richMedia":{"mediaType":"audio","playerId":"4076","mediaLevel2":"4","mediaLabel":"muslim_fashion__mehr_als_ein_kopftuch__podcast:audioPlay","mediaTheme1":"OnDemand","duration":"3040","broadcastMode":"clip"}}}},"mediaCollection":{"streams":[{"kind":"main","isAudioOnly":true,"media":[{"url":"https://mp3podcasthr-a.akamaihd.net/mp3/podcast/derTag/derTag_20190320_81142988.mp3","mimeType":"audio/mp3","audios":[{"kind":"standard","languageCode":"de"}]}]}],"meta":{"durationSeconds":3040,"images":[{"kind":"preview","url":"https://picsum.photos/id/101/{size}"}],"title":"Muslim Fashion. Mehr als ein Kopftuch.","synopsis":"Wo immer die Ausstellung \"Contemporary Muslim Fashion“ ins Museum kommt, entfacht sie heftige Diskussionen. Nachdem die Schau in San Francisco für Furore sorgte, wird sie demnächst im Frankfurter Museum für Angewandte Kunst als erste Station in Europa gezeigt. Die \"Modest Fashion“, die dezente Mode, so das Schlagwort für die verhüllende, aber keineswegs unsichtbar machende Mode, spaltet das feministische Lager: Ist sie eine Momentaufnahme aktueller muslimischer Kleidungsstile aus aller Welt oder Werbung für die weibliche Verschleierung? In jedem Fall zeigt die Ausstellung, dass die Verhüllung des weiblichen Körpers und der Frisur nicht nur trist, sondern auch schön sein kann - und für manche Trägerinnen befreiend. Und sie ist durchaus politisch, diskutiert gesetzliche Kleiderordnungen und die Frage politischer Symbolik. Inzwischen wollen auch westliche Firmen von der Vielfalt muslimischer Mode profitieren. Sie haben die Konsumentinnen im Nahen Osten und Südostasien als kaufkräftige Klientel entdeckt. Dort ist ein riesiger Markt zu erschließen. Nicht selten wagen sie sich damit an die Grenzen religiöser und gesellschaftlicher Akzeptanz. Kann Mode solche Grenzen überwinden? "},"pluginData":{},"geoBlocked":false},"playerId":"4076","type":"audioOndemand","cssUrl":"./vendor/ardplayer/ardplayer-hr-6.3.4.4fc164e9.css","jsUrl":"./vendor/ardplayer/ardplayer-hr-6.3.4.8ea4ea3d.js","isAutoplay":true,"teaserSize":"50"}}}},"geotag":[{"title":"Wolfhagen"}],"link":{"url":"/teaser1","webviewUrl":"/teaser1#webview","isTargetBlank":false,"hasIcon":false,"iconName":"iconName","readMoreText":{"readMoreScreenreader":"Zum Artikel","readMore":"mehr","readMoreLong":"read More Long"},"content":{"headlineTag":"h1","headingFontVariant":"sans serif","imageVariant":"topteaser","isFileDownload":false,"teaserImage":{"alttext":"Lorem ipsum","copyrightWithLinks":"","responsiveImage":{"asPicture":false,"asImage":true,"fallback":"https://picsum.photos/id/101/480/270","sources":[{"sizes":"(min-width: 1010px) 960px, 100vw","srcset":"https://picsum.photos/id/101/320/180 320w, https://picsum.photos/id/101/480/270 480w, https://picsum.photos/id/101/640/360 640w, https://picsum.photos/id/101/960/540 960w, https://picsum.photos/id/101/1920/1080 1920w"}]}},"teaserSize":"hero","isMobile1to1":false,"teaserType":"standard-ds","title":"Abgeschobene Geschwister aus Syrien zurück in Wolfhagen","topline":"Überglücklich, aber ohne Mama","trackingData":{"secondLevelId":"2","pageName":"hessenschau"}}},"label":{"type":"podcast","loca":"label_podcast","byline":{"bylineSsi":"","bylineText":""}}}}}
@@ -25,23 +25,23 @@
25
25
  </div>
26
26
 
27
27
  {{!-- Second Row --}}
28
- <div class="flex flex-row">
28
+ <div class="flex flex-row pb-5 pl-5">
29
29
  {{!-- Überschrift: --}}
30
- <div class="flex w-full pb-5 pl-5">
30
+ <div class="flex w-full">
31
31
  {{#decorator 'components/base/link' _css="font-bold mt-2.5 text-toplineColor line-clamp-2 ..." }}
32
32
  {{> components/teaser/components/teaser_title _text=this.title _fontVariant=this.headingFontVariant _size=this.size _teaserType=this.teaserType _isMobile1to1=this.isMobile1to1 _firstItem=this.firstItem}}
33
33
  {{/decorator}}
34
34
  </div>
35
35
  </div>
36
-
36
+
37
37
  {{!-- Shorttext: --}}
38
38
  {{!-- // TODO: Will shorttext be needed? If yes, where and when? --}}
39
39
  {{!-- {{> components/teaser/components/teaser_text _text=this.shorttext _size=this.size }} --}}
40
40
 
41
41
  {{!-- Third Row --}}
42
- <div class="flex flex-row">
42
+ <div class="flex flex-row pl-5">
43
43
  {{!-- Player --}}
44
- <div class="flex w-full pl-5">
44
+ <div class="flex w-full">
45
45
  <div class="flex items-center grow js-load"
46
46
  x-data="playaudio()"
47
47
  ax-load
@@ -50,19 +50,19 @@
50
50
 
51
51
  <div class="flex items-center w-40">
52
52
  {{!-- Start/StopButton --}}
53
- <button x-on:keydown.tab="playAndStop" x-on:click="playAndStop" type="button" class="flex justify-start mr-4 cursor-pointer group focus:outline-none">
53
+ <button x-cloak x-on:keydown.tab="playAndStop" x-on:click="playAndStop" type="button" class="flex justify-start mr-4 cursor-pointer group focus:outline-none">
54
54
  <div class="">
55
55
  <div x-show="!currentlyPlaying" class="text-white rounded-full bg-blue-science ring-white ring">
56
- {{> components/base/image/icon _icon="play" _iconmap="icons" _addClass="inline pl-1 w-12 h-12 fill-current"}}
56
+ {{> components/base/image/icon _icon="play" _iconmap="icons" _addClass="inline pl-1 py-2 w-12 h-12 fill-current"}}
57
57
  </div>
58
58
  <div x-show="currentlyPlaying" class="bg-white rounded-full ring-blue-science ring text-blue-science">
59
- {{> components/base/image/icon _icon="pause" _iconmap="icons" _addClass="inline w-12 h-12 fill-current"}}
59
+ {{> components/base/image/icon _icon="pause" _iconmap="icons" _addClass="inline py-2 w-12 h-12 fill-current"}}
60
60
  </div>
61
61
  </div>
62
62
  </button>
63
63
 
64
64
  {{!-- Meta Time usw. --}}
65
- <div class="flex justify-end w-full">
65
+ <div x-cloak class="flex justify-end w-full">
66
66
  <span class="text-sm text-orange-layout" x-text="currentTime">0:00</span>
67
67
  <span class="text-sm text-blue-science"> / </span>
68
68
  <span class="text-sm text-blue-science" x-text="audioDurationFancy">6:21</span>
@@ -73,12 +73,11 @@
73
73
  <input x-ref="range" id="range" x-on:input="rangeInput()" type="range" x-bind:value="currentTimePercentage" min="0" max="1000" class="flex self-center flex-grow h-1 ml-4 bg-white rounded-lg appearance-none cursor-pointer seek_slider dark:bg-gray-700" >
74
74
 
75
75
  {{!-- AudioElement --}}
76
- <audio x-init="initTime()" x-ref='audio'>
77
- <source
78
- id="audio" src='https://mp3podcasthr-a.akamaihd.net/mp3/podcast/hr2_audio/hr2_audio_20220914_95730396.mp3'
79
- type='audio/mp3'
80
- />
81
- </audio>
76
+ {{~#with this.audioUrl ~}}
77
+ <audio preload="metadata" x-init="initTime()" class="hidden" x-ref='audio'>
78
+ <source id="audio" src={{this}} type='audio/mp3'/>
79
+ </audio>
80
+ {{/with}}
82
81
  </div>
83
82
  </div>
84
83
  </div>
@@ -89,7 +88,7 @@
89
88
  {{!-- Abo-Dropdown --}}
90
89
  {{!-- // TODO: Dropdown-Items need to be flexible via CMS so we need Array in Json and iterate over it --}}
91
90
  <div class="flex">
92
- <div x-data="{
91
+ <div x-cloak x-data="{
93
92
  open: false,
94
93
  toggle() {
95
94
  if (this.open) {
@@ -130,7 +129,7 @@
130
129
  style="display: none;"
131
130
  class="absolute left-0 w-40 bg-white shadow-md"
132
131
  >
133
- {{!-- // TODO: Items should be built via iteration over items-array --}}
132
+ {{!--// TODO: Items should be built via iteration over items-array --}}
134
133
  {{#with this.podcastItunesUrl}}
135
134
  <a class="flex items-center gap-2 w-full px-4 py-2.5 text-left hover:bg-gray-50 disabled:text-gray-500"
136
135
  title="Bei iTunes abonnieren" target="_blank"