hr-design-system-handlebars 0.91.0 → 0.91.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,15 @@
1
+ # v0.91.1 (Mon Nov 28 2022)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - Podcast delivery integration fixes [#401](https://github.com/mumprod/hr-design-system-handlebars/pull/401) ([@vascoeduardo](https://github.com/vascoeduardo))
6
+
7
+ #### Authors: 1
8
+
9
+ - Vasco ([@vascoeduardo](https://github.com/vascoeduardo))
10
+
11
+ ---
12
+
1
13
  # v0.91.0 (Mon Nov 28 2022)
2
14
 
3
15
  #### 🚀 Enhancement
@@ -1256,6 +1256,9 @@ video {
1256
1256
  -ms-flex-pack: distribute;
1257
1257
  justify-content: space-around;
1258
1258
  }
1259
+ .gap-5 {
1260
+ gap: 1.25rem;
1261
+ }
1259
1262
  .gap-1\.5 {
1260
1263
  gap: 0.375rem;
1261
1264
  }
@@ -1265,9 +1268,6 @@ video {
1265
1268
  .gap-2 {
1266
1269
  gap: 0.5rem;
1267
1270
  }
1268
- .gap-5 {
1269
- gap: 1.25rem;
1270
- }
1271
1271
  .gap-x-2 {
1272
1272
  -webkit-column-gap: 0.5rem;
1273
1273
  -moz-column-gap: 0.5rem;
@@ -2253,7 +2253,7 @@ video {
2253
2253
  transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
2254
2254
  }
2255
2255
  .counter-reset {
2256
- counter-reset: cnt1669645702651;
2256
+ counter-reset: cnt1669646367612;
2257
2257
  }
2258
2258
  .line-clamp-4 {
2259
2259
  overflow: hidden;
@@ -2639,7 +2639,7 @@ video {
2639
2639
  --tw-ring-color: rgba(255, 255, 255, 0.5);
2640
2640
  }
2641
2641
  .-ordered {
2642
- counter-increment: cnt1669645702651 1;
2642
+ counter-increment: cnt1669646367612 1;
2643
2643
  }
2644
2644
  .-ordered::before {
2645
2645
  position: absolute;
@@ -2655,7 +2655,7 @@ video {
2655
2655
  letter-spacing: .0125em;
2656
2656
  --tw-text-opacity: 1;
2657
2657
  color: rgba(0, 0, 0, var(--tw-text-opacity));
2658
- content: counter(cnt1669645702651);
2658
+ content: counter(cnt1669646367612);
2659
2659
  }
2660
2660
  .\[-T\:\+Z\] {
2661
2661
  --t: +Z;
@@ -6,6 +6,8 @@ export default function playaudio(){
6
6
  let _player = {}
7
7
  _player.id = id
8
8
  _player.button = document.querySelector('#playbutton'+id)
9
+ _player.playIcon = _player.button.querySelector('.js-playbutton')
10
+ _player.pauseIcon = _player.button.querySelector('.js-pausebutton')
9
11
  _player.range = document.querySelector('#range'+id)
10
12
  _player.timeDisplay = document.querySelector('#timedisplay'+id)
11
13
  _player.audioElement = this.$el
@@ -22,7 +24,7 @@ export default function playaudio(){
22
24
  },
23
25
  listenToGlobalStop(){
24
26
  console.log('global listener init')
25
- window.addEventListener('hr:global:stopOtherAVs', this.stopAllOtherPlayers)
27
+ window.addEventListener('hr:global:stopOtherAVs', this.stopAllPlayersBecauseOfGlobalStop.bind(this))
26
28
  },
27
29
  rangeInput(id) {
28
30
  if(this.playlist[id].init == false) {
@@ -31,7 +33,6 @@ export default function playaudio(){
31
33
  }
32
34
  this.playlist[id].audioElement.currentTime = (this.playlist[id].range.value/1000) * this.playlist[id].audioElement.duration
33
35
  },
34
-
35
36
  setTime(duration, id) {
36
37
  console.log('time set: ' + duration)
37
38
 
@@ -67,35 +68,34 @@ export default function playaudio(){
67
68
  if(this.playlist[id].init == true){
68
69
  this.stopAudio(id)
69
70
  } else {
70
- // this.$dispatch('stopotherplayers',{playerId: id});
71
- this.stopAllOtherPlayers(id)
72
-
71
+ this.stopAllOtherPlayers(id, false)
73
72
  this.startAudio(id)
74
73
  this.playlist[id].range.parentNode.classList.remove('max-h-0')
75
74
  this.playlist[id].range.parentNode.classList.add('max-h-9')
76
- this.playlist[id].button.querySelector('.js-playbutton').classList.add('hidden')
77
- this.playlist[id].button.querySelector('.js-pausebutton').classList.remove('hidden')
78
- //let event = new Event("hr:global:stopOtherAVs");
79
- //window.dispatchEvent(event);
75
+ this.playlist[id].playIcon.classList.add('hidden')
76
+ this.playlist[id].pauseIcon.classList.remove('hidden')
77
+ let event = new Event("hr:global:stopOtherAVs");
78
+ event.id = id;
79
+ window.dispatchEvent(event);
80
80
  }
81
81
  },
82
82
 
83
- stopAllOtherPlayers(id){ //id=2
84
- let players = document.querySelectorAll('audio.hidden')
85
- for (let i=0; i<players.length; i++){
86
- if ( players[i].dataset.id != id){
87
- this.stopAudio(players[i].dataset.id)
88
-
89
- // this.playlist[players[i].dataset.id].init=false;
90
- // this.playlist[players[i].dataset.id].audioElement.pause()
91
- // this.playlist[players[i].dataset.id].button.querySelector('.js-playbutton').classList.remove('hidden')
92
- // this.playlist[players[i].dataset.id].button.querySelector('.js-pausebutton').classList.add('hidden')
93
- this.playlist[players[i].dataset.id].range.parentNode.classList.add('max-h-0')
94
- this.playlist[players[i].dataset.id].range.parentNode.classList.remove('max-h-9')
83
+ stopAllOtherPlayers(id, preventMinimize){
84
+ for (const index in this.playlist) {
85
+ if(index != id && this.playlist[index].currentlyPlaying == true){
86
+ console.log("STOP: ", index)
87
+ this.stopAudio(index)
88
+ if(!preventMinimize){
89
+ this.playlist[index].range.parentNode.classList.add('max-h-0')
90
+ this.playlist[index].range.parentNode.classList.remove('max-h-9')
91
+ }
95
92
  }
96
- }
97
- },
93
+ }
98
94
 
95
+ },
96
+ stopAllPlayersBecauseOfGlobalStop(event){
97
+ this.stopAllOtherPlayers(event.id, true);
98
+ },
99
99
  startAudio(id) {
100
100
  console.log('start audio '+ id )
101
101
  if(this.playlist[id].init == false){
@@ -111,8 +111,8 @@ export default function playaudio(){
111
111
  this.playlist[id].audioElement.pause()
112
112
  this.playlist[id].init = false;
113
113
  this.playlist[id].currentlyPlaying = false;
114
- this.playlist[id].button.querySelector('.js-playbutton').classList.remove('hidden')
115
- this.playlist[id].button.querySelector('.js-pausebutton').classList.add('hidden')
114
+ this.playlist[id].playIcon.classList.remove('hidden')
115
+ this.playlist[id].pauseIcon.classList.add('hidden')
116
116
  },
117
117
 
118
118
  initAudioEventListener(id) {
@@ -1,4 +1,4 @@
1
1
 
2
- <div id="4" class="grid gap-y-6 relative gap-x-4 flex-col pt-5 mx-0 md:pt-5 bg-blue-accented rounded-tl-3xl rounded-br-3xl col-span-12 {{~inline-switch this.teaserSize '["50","100"]' '[" md:col-span-6",""]'}}" >
2
+ <div id="4" class="grid gap-y-6 relative gap-x-4 flex-col pt-5 mx-0 md:pt-5 bg-blue-accented rounded-tl-3xl rounded-br-3xl col-span-12 {{inline-switch this.teaserSize '["50"]' '["md:col-span-6"," "]'}}" >
3
3
  {{> components/teaser/podcast/podcast_playlist_player _linkTitle="true" _isSinglePage=false _type="podcastPlaylistPlayerTeaser" }}
4
4
  </div>
@@ -1,3 +1,3 @@
1
- <div class="grid gap-y-6 relative gap-x-4 flex-col pt-5 mx-0 md:pt-5 bg-blue-accented rounded-tl-3xl rounded-br-3xl col-span-12 {{~inline-switch this.teaserSize '["50","100"]' '[" md:col-span-6",""]'}}" >
1
+ <div class="grid gap-y-6 relative gap-x-4 flex-col pt-5 mx-0 md:pt-5 bg-blue-accented rounded-tl-3xl rounded-br-3xl col-span-12 {{~inline-switch this.teaserSize '["50"]' '[" md:col-span-6",""]'}}" >
2
2
  {{> components/teaser/podcast/podcast_player _linkTitle="true" _isSinglePage=true _type="podcastEpisodePlayerTeaser" }}
3
3
  </div>
@@ -1,5 +1,5 @@
1
1
  <button class="flex {{#if _addClass}} {{_addClass}} {{/if}}">
2
- <a href="{{_url}}" 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}}>
2
+ <a href="{{_url}}" class="h-6 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}}>
3
3
  {{> components/base/image/icon _icon='download-neu' _addClass=_iconClass }}
4
4
  </a>
5
5
  </button>
@@ -37,9 +37,9 @@
37
37
  <div class="flex flex-col ">
38
38
  <div class="w-24 md:w-42">
39
39
  {{> components/base/image/responsive_image this.teaseritem
40
- _type=this.teaserType
40
+ _type="podcastEpisodePlayer"
41
41
  _variant="default"
42
- _addClass=" overflow-hidden ar--100"
42
+ _addClass="overflow-hidden"
43
43
  _noDelay=this.dontLazyload
44
44
  _addClassImg="w-full h-24 md:h-42 block"
45
45
  }}
@@ -54,91 +54,30 @@
54
54
  x-init="listenToGlobalStop()"
55
55
  ax-load
56
56
  x-ignore
57
- ax-load-src="/vendor/js/podcast_player.alpine.js">
57
+ ax-load-src={{resourceUrl "assets/js/vendor/podcast_player.alpine.js" }}>
58
58
  {{> components/teaser/podcast/podcast_player_ui
59
59
  _isPlaylistPlayer=false
60
- _podcastDuration=podcastDuration _id=(nextRandom)
60
+ _podcastDuration=podcastDuration
61
+ _id=(nextRandom)
61
62
  _first=true
62
63
  }}
63
64
  </div>
64
65
 
65
66
  {{!-- Abo-Dropdown --}}
66
67
  <div class="flex flex-row p-5 md:pr-0">
67
- {{#with this.podcastChannel}}
68
- <div class="flex">
69
- {{!-- Container --}}
70
- <div x-cloak x-data="{
71
- open: false,
72
- toggle() {
73
- if (this.open) {
74
- return this.close()
75
- }
76
- this.$refs.button.focus()
77
- this.open = true
78
- },
79
- close(focusAfter) {
80
- if (! this.open) return
81
- this.open = false
82
- focusAfter && focusAfter.focus()
83
- }}"
84
- x-on:keydown.escape.prevent.stop="close($refs.button)"
85
- x-on:focusin.window="! $refs.panel.contains($event.target) && close()"
86
- x-id="['dropdown-button']"
87
- class="relative"
88
- >
89
-
90
- {{!-- Button --}}
91
- <button
92
- x-ref="button"
93
- x-on:click="toggle()"
94
- :aria-expanded="open"
95
- :aria-controls="$id('dropdown-button')"
96
- type="button"
97
- class="flex items-center gap-1.5 px-2 py-2 text-white shadow font-heading bg-orange-layout">Abonnieren
98
- <div x-show="open">
99
- {{> components/base/image/icon _icon='arrow-up' _addClass="flex self-center w-3 h-3 fill-white" }}
100
- </div>
101
- <div x-show="!open">
102
- {{> components/base/image/icon _icon='arrow-down' _addClass="flex self-center mt-0.5 w-3 h-3 fill-white" }}
103
- </div>
104
- </button>
105
-
106
- {{!-- Flyout --}}
107
- <div
108
- x-ref="panel"
109
- x-show="open"
110
- x-transition.origin.top.left
111
- x-on:click.outside="close($refs.button)"
112
- :id="$id('dropdown-button')"
113
- style="display: none;"
114
- class="absolute left-0 flex flex-col w-full px-2 text-sm text-white shadow-md font-heading shadow-insetfromtop grow bg-orange-layout"
115
- >
116
- {{#with this.podcastHoster}}
117
- <ul>
118
- {{#each this}}
119
- <li class="border-b last:border-0">
120
- <a class="flex items-center w-full gap-2 py-2 text-left hover:underline disabled:text-gray-500"
121
- title="{{this.podcastHosterName}}"
122
- target="_blank"
123
- rel="noopener noreferrer"
124
- href="{{this.podcastHosterUrl}}">{{this.podcastHosterName}}</a>
125
- </li>
126
- {{/each}}
127
- </ul>
128
- {{/with}}
129
-
130
- </div>
131
- </div>
132
- </div>
68
+ {{#with this.podcastChannel}}
69
+ {{> components/teaser/podcast/podcast_subscribe_button}}
133
70
  {{/with}}
134
71
 
135
- {{!-- Sendungs-Link --}}
136
- <div class="flex justify-end w-full pl-4 md:pr-52">
137
- <div class="flex flex-wrap self-end text-xs font-heading text-blue-science">
138
- <span class="flex pr-2 font-bold whitespace-nowrap">Zur Sendung: </span>
139
- <a class="underline" href="#">{{#with this.teaserInfo}} {{~#if this.showTeaserInfoChannel}} <span class="text__byline">{{../this.podcastChannel.title}}</span>{{/if}} {{/with}}</a>
72
+ {{#with this.podcastChannel}}
73
+ {{!-- Sendungs-Link --}}
74
+ <div class="flex justify-end w-full pl-4 md:pr-52">
75
+ <div class="flex flex-wrap self-end text-xs font-heading text-blue-science">
76
+ <span class="flex pr-2 font-bold whitespace-nowrap">Zur Sendung: </span>
77
+ <a class="underline" href="{{this.url}}">{{this.title}}</a>
78
+ </div>
140
79
  </div>
141
- </div>
80
+ {{/with}}
142
81
  </div>
143
82
  </div>
144
83
  </div>
@@ -73,7 +73,8 @@
73
73
  _duration=podcastDuration
74
74
  _currentTimeClasses="font-bold text-orange-layout"
75
75
  _durationClasses="text-blue-science"
76
- _containerCss="pl-16 -mt-3 flex text-xs grow font-headingSerif"}}
76
+ _id=_id
77
+ _containerCss="pl-16 -mt-3 flex text-xs grow font-headingSerif"}}
77
78
  </div>
78
79
  {{/unless}}
79
80
 
@@ -36,7 +36,7 @@
36
36
  <div class="flex flex-col ">
37
37
  <div class="w-24 md:w-42">
38
38
  {{> components/base/image/responsive_image this.teaseritem
39
- _type=this.teaserType
39
+ _type="podcastEpisodePlayer"
40
40
  _variant="default"
41
41
  _addClass="overflow-hidden"
42
42
  _noDelay=this.dontLazyload
@@ -65,7 +65,7 @@
65
65
  x-init="listenToGlobalStop()"
66
66
  ax-load
67
67
  x-ignore
68
- ax-load-src="/vendor/js/podcast_player.alpine.js">
68
+ ax-load-src={{resourceUrl "assets/js/vendor/podcast_player.alpine.js" }}>
69
69
  {{#with this.playlistItems}}
70
70
  {{#each this}}
71
71
  <div class="flex pb-5 border-b {{#unless @last}}border-white{{/unless}}" >
@@ -1,5 +1,5 @@
1
1
  {{#decorator 'components/base/link' _css="font-headingSerif font-bold text-base mt-2.5 text-toplineColor line-clamp-4 md:line-clamp-2 ..." }}
2
- <span class="block mt-0.5 group-hover:underline text-blue-science {{#if _ordered}} pl-8 {{/if}} {{~ inline-switch _teaserSize '["100","50"]''["text-base md:text-2xl","text-base md:text-lg"]' ~}}">
3
- {{~_title~}}
2
+ <span class="block mt-0.5 group-hover:underline text-blue-science {{#if _ordered}} pl-8 {{/if}} {{~ inline-switch _teaserSize '["hero","100","50"]''["text-base md:text-2xl","text-base md:text-2xl","text-base md:text-lg"]' ~}}">
3
+ {{~_title~}}
4
4
  </span>
5
5
  {{/decorator}}
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.91.0",
9
+ "version": "0.91.1",
10
10
  "scripts": {
11
11
  "test": "echo \"Error: no test specified\" && exit 1",
12
12
  "storybook": "start-storybook -p 6006 public",
@@ -6,6 +6,8 @@ export default function playaudio(){
6
6
  let _player = {}
7
7
  _player.id = id
8
8
  _player.button = document.querySelector('#playbutton'+id)
9
+ _player.playIcon = _player.button.querySelector('.js-playbutton')
10
+ _player.pauseIcon = _player.button.querySelector('.js-pausebutton')
9
11
  _player.range = document.querySelector('#range'+id)
10
12
  _player.timeDisplay = document.querySelector('#timedisplay'+id)
11
13
  _player.audioElement = this.$el
@@ -22,7 +24,7 @@ export default function playaudio(){
22
24
  },
23
25
  listenToGlobalStop(){
24
26
  console.log('global listener init')
25
- window.addEventListener('hr:global:stopOtherAVs', this.stopAllOtherPlayers)
27
+ window.addEventListener('hr:global:stopOtherAVs', this.stopAllPlayersBecauseOfGlobalStop.bind(this))
26
28
  },
27
29
  rangeInput(id) {
28
30
  if(this.playlist[id].init == false) {
@@ -31,7 +33,6 @@ export default function playaudio(){
31
33
  }
32
34
  this.playlist[id].audioElement.currentTime = (this.playlist[id].range.value/1000) * this.playlist[id].audioElement.duration
33
35
  },
34
-
35
36
  setTime(duration, id) {
36
37
  console.log('time set: ' + duration)
37
38
 
@@ -67,35 +68,34 @@ export default function playaudio(){
67
68
  if(this.playlist[id].init == true){
68
69
  this.stopAudio(id)
69
70
  } else {
70
- // this.$dispatch('stopotherplayers',{playerId: id});
71
- this.stopAllOtherPlayers(id)
72
-
71
+ this.stopAllOtherPlayers(id, false)
73
72
  this.startAudio(id)
74
73
  this.playlist[id].range.parentNode.classList.remove('max-h-0')
75
74
  this.playlist[id].range.parentNode.classList.add('max-h-9')
76
- this.playlist[id].button.querySelector('.js-playbutton').classList.add('hidden')
77
- this.playlist[id].button.querySelector('.js-pausebutton').classList.remove('hidden')
78
- //let event = new Event("hr:global:stopOtherAVs");
79
- //window.dispatchEvent(event);
75
+ this.playlist[id].playIcon.classList.add('hidden')
76
+ this.playlist[id].pauseIcon.classList.remove('hidden')
77
+ let event = new Event("hr:global:stopOtherAVs");
78
+ event.id = id;
79
+ window.dispatchEvent(event);
80
80
  }
81
81
  },
82
82
 
83
- stopAllOtherPlayers(id){ //id=2
84
- let players = document.querySelectorAll('audio.hidden')
85
- for (let i=0; i<players.length; i++){
86
- if ( players[i].dataset.id != id){
87
- this.stopAudio(players[i].dataset.id)
88
-
89
- // this.playlist[players[i].dataset.id].init=false;
90
- // this.playlist[players[i].dataset.id].audioElement.pause()
91
- // this.playlist[players[i].dataset.id].button.querySelector('.js-playbutton').classList.remove('hidden')
92
- // this.playlist[players[i].dataset.id].button.querySelector('.js-pausebutton').classList.add('hidden')
93
- this.playlist[players[i].dataset.id].range.parentNode.classList.add('max-h-0')
94
- this.playlist[players[i].dataset.id].range.parentNode.classList.remove('max-h-9')
83
+ stopAllOtherPlayers(id, preventMinimize){
84
+ for (const index in this.playlist) {
85
+ if(index != id && this.playlist[index].currentlyPlaying == true){
86
+ console.log("STOP: ", index)
87
+ this.stopAudio(index)
88
+ if(!preventMinimize){
89
+ this.playlist[index].range.parentNode.classList.add('max-h-0')
90
+ this.playlist[index].range.parentNode.classList.remove('max-h-9')
91
+ }
95
92
  }
96
- }
97
- },
93
+ }
98
94
 
95
+ },
96
+ stopAllPlayersBecauseOfGlobalStop(event){
97
+ this.stopAllOtherPlayers(event.id, true);
98
+ },
99
99
  startAudio(id) {
100
100
  console.log('start audio '+ id )
101
101
  if(this.playlist[id].init == false){
@@ -111,8 +111,8 @@ export default function playaudio(){
111
111
  this.playlist[id].audioElement.pause()
112
112
  this.playlist[id].init = false;
113
113
  this.playlist[id].currentlyPlaying = false;
114
- this.playlist[id].button.querySelector('.js-playbutton').classList.remove('hidden')
115
- this.playlist[id].button.querySelector('.js-pausebutton').classList.add('hidden')
114
+ this.playlist[id].playIcon.classList.remove('hidden')
115
+ this.playlist[id].pauseIcon.classList.add('hidden')
116
116
  },
117
117
 
118
118
  initAudioEventListener(id) {
@@ -1,4 +1,4 @@
1
1
 
2
- <div id="4" class="grid gap-y-6 relative gap-x-4 flex-col pt-5 mx-0 md:pt-5 bg-blue-accented rounded-tl-3xl rounded-br-3xl col-span-12 {{~inline-switch this.teaserSize '["50","100"]' '[" md:col-span-6",""]'}}" >
2
+ <div id="4" class="grid gap-y-6 relative gap-x-4 flex-col pt-5 mx-0 md:pt-5 bg-blue-accented rounded-tl-3xl rounded-br-3xl col-span-12 {{inline-switch this.teaserSize '["50"]' '["md:col-span-6"," "]'}}" >
3
3
  {{> components/teaser/podcast/podcast_playlist_player _linkTitle="true" _isSinglePage=false _type="podcastPlaylistPlayerTeaser" }}
4
4
  </div>
@@ -1,3 +1,3 @@
1
- <div class="grid gap-y-6 relative gap-x-4 flex-col pt-5 mx-0 md:pt-5 bg-blue-accented rounded-tl-3xl rounded-br-3xl col-span-12 {{~inline-switch this.teaserSize '["50","100"]' '[" md:col-span-6",""]'}}" >
1
+ <div class="grid gap-y-6 relative gap-x-4 flex-col pt-5 mx-0 md:pt-5 bg-blue-accented rounded-tl-3xl rounded-br-3xl col-span-12 {{~inline-switch this.teaserSize '["50"]' '[" md:col-span-6",""]'}}" >
2
2
  {{> components/teaser/podcast/podcast_player _linkTitle="true" _isSinglePage=true _type="podcastEpisodePlayerTeaser" }}
3
3
  </div>
@@ -1,5 +1,5 @@
1
1
  <button class="flex {{#if _addClass}} {{_addClass}} {{/if}}">
2
- <a href="{{_url}}" 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}}>
2
+ <a href="{{_url}}" class="h-6 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}}>
3
3
  {{> components/base/image/icon _icon='download-neu' _addClass=_iconClass }}
4
4
  </a>
5
5
  </button>
@@ -37,9 +37,9 @@
37
37
  <div class="flex flex-col ">
38
38
  <div class="w-24 md:w-42">
39
39
  {{> components/base/image/responsive_image this.teaseritem
40
- _type=this.teaserType
40
+ _type="podcastEpisodePlayer"
41
41
  _variant="default"
42
- _addClass=" overflow-hidden ar--100"
42
+ _addClass="overflow-hidden"
43
43
  _noDelay=this.dontLazyload
44
44
  _addClassImg="w-full h-24 md:h-42 block"
45
45
  }}
@@ -54,91 +54,30 @@
54
54
  x-init="listenToGlobalStop()"
55
55
  ax-load
56
56
  x-ignore
57
- ax-load-src="/vendor/js/podcast_player.alpine.js">
57
+ ax-load-src={{resourceUrl "assets/js/vendor/podcast_player.alpine.js" }}>
58
58
  {{> components/teaser/podcast/podcast_player_ui
59
59
  _isPlaylistPlayer=false
60
- _podcastDuration=podcastDuration _id=(nextRandom)
60
+ _podcastDuration=podcastDuration
61
+ _id=(nextRandom)
61
62
  _first=true
62
63
  }}
63
64
  </div>
64
65
 
65
66
  {{!-- Abo-Dropdown --}}
66
67
  <div class="flex flex-row p-5 md:pr-0">
67
- {{#with this.podcastChannel}}
68
- <div class="flex">
69
- {{!-- Container --}}
70
- <div x-cloak x-data="{
71
- open: false,
72
- toggle() {
73
- if (this.open) {
74
- return this.close()
75
- }
76
- this.$refs.button.focus()
77
- this.open = true
78
- },
79
- close(focusAfter) {
80
- if (! this.open) return
81
- this.open = false
82
- focusAfter && focusAfter.focus()
83
- }}"
84
- x-on:keydown.escape.prevent.stop="close($refs.button)"
85
- x-on:focusin.window="! $refs.panel.contains($event.target) && close()"
86
- x-id="['dropdown-button']"
87
- class="relative"
88
- >
89
-
90
- {{!-- Button --}}
91
- <button
92
- x-ref="button"
93
- x-on:click="toggle()"
94
- :aria-expanded="open"
95
- :aria-controls="$id('dropdown-button')"
96
- type="button"
97
- class="flex items-center gap-1.5 px-2 py-2 text-white shadow font-heading bg-orange-layout">Abonnieren
98
- <div x-show="open">
99
- {{> components/base/image/icon _icon='arrow-up' _addClass="flex self-center w-3 h-3 fill-white" }}
100
- </div>
101
- <div x-show="!open">
102
- {{> components/base/image/icon _icon='arrow-down' _addClass="flex self-center mt-0.5 w-3 h-3 fill-white" }}
103
- </div>
104
- </button>
105
-
106
- {{!-- Flyout --}}
107
- <div
108
- x-ref="panel"
109
- x-show="open"
110
- x-transition.origin.top.left
111
- x-on:click.outside="close($refs.button)"
112
- :id="$id('dropdown-button')"
113
- style="display: none;"
114
- class="absolute left-0 flex flex-col w-full px-2 text-sm text-white shadow-md font-heading shadow-insetfromtop grow bg-orange-layout"
115
- >
116
- {{#with this.podcastHoster}}
117
- <ul>
118
- {{#each this}}
119
- <li class="border-b last:border-0">
120
- <a class="flex items-center w-full gap-2 py-2 text-left hover:underline disabled:text-gray-500"
121
- title="{{this.podcastHosterName}}"
122
- target="_blank"
123
- rel="noopener noreferrer"
124
- href="{{this.podcastHosterUrl}}">{{this.podcastHosterName}}</a>
125
- </li>
126
- {{/each}}
127
- </ul>
128
- {{/with}}
129
-
130
- </div>
131
- </div>
132
- </div>
68
+ {{#with this.podcastChannel}}
69
+ {{> components/teaser/podcast/podcast_subscribe_button}}
133
70
  {{/with}}
134
71
 
135
- {{!-- Sendungs-Link --}}
136
- <div class="flex justify-end w-full pl-4 md:pr-52">
137
- <div class="flex flex-wrap self-end text-xs font-heading text-blue-science">
138
- <span class="flex pr-2 font-bold whitespace-nowrap">Zur Sendung: </span>
139
- <a class="underline" href="#">{{#with this.teaserInfo}} {{~#if this.showTeaserInfoChannel}} <span class="text__byline">{{../this.podcastChannel.title}}</span>{{/if}} {{/with}}</a>
72
+ {{#with this.podcastChannel}}
73
+ {{!-- Sendungs-Link --}}
74
+ <div class="flex justify-end w-full pl-4 md:pr-52">
75
+ <div class="flex flex-wrap self-end text-xs font-heading text-blue-science">
76
+ <span class="flex pr-2 font-bold whitespace-nowrap">Zur Sendung: </span>
77
+ <a class="underline" href="{{this.url}}">{{this.title}}</a>
78
+ </div>
140
79
  </div>
141
- </div>
80
+ {{/with}}
142
81
  </div>
143
82
  </div>
144
83
  </div>
@@ -73,7 +73,8 @@
73
73
  _duration=podcastDuration
74
74
  _currentTimeClasses="font-bold text-orange-layout"
75
75
  _durationClasses="text-blue-science"
76
- _containerCss="pl-16 -mt-3 flex text-xs grow font-headingSerif"}}
76
+ _id=_id
77
+ _containerCss="pl-16 -mt-3 flex text-xs grow font-headingSerif"}}
77
78
  </div>
78
79
  {{/unless}}
79
80
 
@@ -36,7 +36,7 @@
36
36
  <div class="flex flex-col ">
37
37
  <div class="w-24 md:w-42">
38
38
  {{> components/base/image/responsive_image this.teaseritem
39
- _type=this.teaserType
39
+ _type="podcastEpisodePlayer"
40
40
  _variant="default"
41
41
  _addClass="overflow-hidden"
42
42
  _noDelay=this.dontLazyload
@@ -65,7 +65,7 @@
65
65
  x-init="listenToGlobalStop()"
66
66
  ax-load
67
67
  x-ignore
68
- ax-load-src="/vendor/js/podcast_player.alpine.js">
68
+ ax-load-src={{resourceUrl "assets/js/vendor/podcast_player.alpine.js" }}>
69
69
  {{#with this.playlistItems}}
70
70
  {{#each this}}
71
71
  <div class="flex pb-5 border-b {{#unless @last}}border-white{{/unless}}" >
@@ -1,5 +1,5 @@
1
1
  {{#decorator 'components/base/link' _css="font-headingSerif font-bold text-base mt-2.5 text-toplineColor line-clamp-4 md:line-clamp-2 ..." }}
2
- <span class="block mt-0.5 group-hover:underline text-blue-science {{#if _ordered}} pl-8 {{/if}} {{~ inline-switch _teaserSize '["100","50"]''["text-base md:text-2xl","text-base md:text-lg"]' ~}}">
3
- {{~_title~}}
2
+ <span class="block mt-0.5 group-hover:underline text-blue-science {{#if _ordered}} pl-8 {{/if}} {{~ inline-switch _teaserSize '["hero","100","50"]''["text-base md:text-2xl","text-base md:text-2xl","text-base md:text-lg"]' ~}}">
3
+ {{~_title~}}
4
4
  </span>
5
5
  {{/decorator}}