hr-design-system-handlebars 1.114.62 → 1.114.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/assets/brand/hessenschau/conf/locatags.merged.json +1 -0
  3. package/dist/assets/brand/hr/conf/locatags.merged.json +1 -0
  4. package/dist/assets/brand/hr-bigband/conf/locatags.merged.json +1 -0
  5. package/dist/assets/brand/hr-fernsehen/conf/locatags.merged.json +1 -0
  6. package/dist/assets/brand/hr-inforadio/conf/locatags.merged.json +1 -0
  7. package/dist/assets/brand/hr-rundfunkrat/conf/locatags.merged.json +1 -0
  8. package/dist/assets/brand/hr-sinfonieorchester/conf/locatags.merged.json +1 -0
  9. package/dist/assets/brand/hr-werbung/conf/locatags.merged.json +1 -0
  10. package/dist/assets/brand/hr1/conf/locatags.merged.json +1 -0
  11. package/dist/assets/brand/hr2/conf/locatags.merged.json +1 -0
  12. package/dist/assets/brand/hr3/conf/locatags.merged.json +1 -0
  13. package/dist/assets/brand/hr4/conf/locatags.merged.json +3 -2
  14. package/dist/assets/brand/you-fm/conf/locatags.merged.json +1 -0
  15. package/dist/assets/index.css +26 -3
  16. package/dist/views/components/label/label.hbs +2 -2
  17. package/dist/views/components/mediaplayer/mediaPlayer_stickyWrapper.hbs +82 -0
  18. package/dist/views_static/components/label/label.hbs +2 -2
  19. package/dist/views_static/components/mediaplayer/mediaPlayer_stickyWrapper.hbs +82 -0
  20. package/package.json +1 -1
  21. package/src/assets/brand/_default/conf/locatags.json +1 -0
  22. package/src/assets/brand/hessenschau/conf/locatags.merged.json +1 -0
  23. package/src/assets/brand/hr/conf/locatags.merged.json +1 -0
  24. package/src/assets/brand/hr-bigband/conf/locatags.merged.json +1 -0
  25. package/src/assets/brand/hr-fernsehen/conf/locatags.merged.json +1 -0
  26. package/src/assets/brand/hr-inforadio/conf/locatags.merged.json +1 -0
  27. package/src/assets/brand/hr-rundfunkrat/conf/locatags.merged.json +1 -0
  28. package/src/assets/brand/hr-sinfonieorchester/conf/locatags.merged.json +1 -0
  29. package/src/assets/brand/hr-werbung/conf/locatags.merged.json +1 -0
  30. package/src/assets/brand/hr1/conf/locatags.merged.json +1 -0
  31. package/src/assets/brand/hr2/conf/locatags.merged.json +1 -0
  32. package/src/assets/brand/hr3/conf/locatags.merged.json +1 -0
  33. package/src/assets/brand/hr4/conf/locatags.merged.json +3 -2
  34. package/src/assets/brand/you-fm/conf/locatags.merged.json +1 -0
  35. package/src/stories/views/components/label/label.hbs +2 -2
  36. package/src/stories/views/components/mediaplayer/mediaPlayer_stickyWrapper.hbs +82 -0
  37. package/src/stories/views/components/mediaplayer/mediaplayer.stories.js +25 -3
package/CHANGELOG.md CHANGED
@@ -1,3 +1,28 @@
1
+ # v1.114.64 (Mon Jan 20 2025)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - Dpe 3517 [#1213](https://github.com/mumprod/hr-design-system-handlebars/pull/1213) ([@vascoeduardo](https://github.com/vascoeduardo) [@eduardo-hr](https://github.com/eduardo-hr))
6
+
7
+ #### Authors: 2
8
+
9
+ - [@eduardo-hr](https://github.com/eduardo-hr)
10
+ - Vasco ([@vascoeduardo](https://github.com/vascoeduardo))
11
+
12
+ ---
13
+
14
+ # v1.114.63 (Fri Jan 17 2025)
15
+
16
+ #### 🐛 Bug Fix
17
+
18
+ - New label "Hessen am Abend" [#1212](https://github.com/mumprod/hr-design-system-handlebars/pull/1212) ([@Paul-Atreidis](https://github.com/Paul-Atreidis))
19
+
20
+ #### Authors: 1
21
+
22
+ - [@Paul-Atreidis](https://github.com/Paul-Atreidis)
23
+
24
+ ---
25
+
1
26
  # v1.114.62 (Fri Jan 17 2025)
2
27
 
3
28
  #### 🐛 Bug Fix
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -176,8 +177,8 @@
176
177
  "ext_service_datapolicy_accept_permanently_text": "Externe Inhalte von <b>{0}</b> zukünftig immer anzeigen.",
177
178
  "ext_service_datapolicy_accept_button_text": "Inhalt anzeigen",
178
179
  "ext_service_datapolicy_headline": "Externen Inhalt von {0} anzeigen?",
179
- "ext_service_datapolicy_text": "An dieser Stelle befindet sich ein von unserer Redaktion empfohlener Inhalt von <b>{0}</b>. Beim Laden des Inhalts werden Daten an den Anbieter und ggf. weitere Dritte übertragen. Nähere Informationen erhalten Sie in unseren ",
180
- "ext_service_datapolicy_no_js_text": "An dieser Stelle befindet sich ein von unserer Redaktion empfohlener Inhalt von <b>{0}</b>. Da Sie in Ihrem Browser Javascript deaktiviert haben, kann dieser hier nicht angezeigt werden. Der nachfolgende Link öffnet den Inhalt auf der Seite des Anbieters.",
180
+ "ext_service_datapolicy_text": "An dieser Stelle befindet sich ein von unserer Redaktion empfohlener Inhalt von <b>{0}</b>. Beim Laden des Inhalts werden Daten an den Anbieter und ggf. weitere Dritte übertragen. Nähere Informationen erhältst du in unseren ",
181
+ "ext_service_datapolicy_no_js_text": "An dieser Stelle befindet sich ein von unserer Redaktion empfohlener Inhalt von <b>{0}</b>. Da du in deinem Browser Javascript deaktiviert hast, kann dieser hier nicht angezeigt werden. Der nachfolgende Link öffnet den Inhalt auf der Seite des Anbieters.",
181
182
  "ext_service_datapolicy_no_js_link": "{0}-Inhalt öffnen",
182
183
  "story_infobox_intro_sr": "Weitere Informationen",
183
184
  "story_infobox_outro_sr": "Ende der weiteren Informationen",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -1136,18 +1136,27 @@ article #commentList {
1136
1136
  bottom: 0px;
1137
1137
  left: 0px;
1138
1138
  }
1139
+ .-bottom-20 {
1140
+ bottom: -5rem;
1141
+ }
1139
1142
  .-left-4 {
1140
1143
  left: -1rem;
1141
1144
  }
1142
1145
  .-left-5 {
1143
1146
  left: -1.25rem;
1144
1147
  }
1148
+ .-right-80 {
1149
+ right: -20rem;
1150
+ }
1145
1151
  .bottom-0 {
1146
1152
  bottom: 0px;
1147
1153
  }
1148
1154
  .bottom-11 {
1149
1155
  bottom: 2.75rem;
1150
1156
  }
1157
+ .bottom-12 {
1158
+ bottom: 3rem;
1159
+ }
1151
1160
  .bottom-15 {
1152
1161
  bottom: 3.75rem;
1153
1162
  }
@@ -1179,6 +1188,9 @@ article #commentList {
1179
1188
  .right-11 {
1180
1189
  right: 2.75rem;
1181
1190
  }
1191
+ .right-12 {
1192
+ right: 3rem;
1193
+ }
1182
1194
  .right-4 {
1183
1195
  right: 1rem;
1184
1196
  }
@@ -1788,6 +1800,9 @@ article #commentList {
1788
1800
  .w-12 {
1789
1801
  width: 3rem;
1790
1802
  }
1803
+ .w-135 {
1804
+ width: 33.75rem;
1805
+ }
1791
1806
  .w-15\/12 {
1792
1807
  width: 120%;
1793
1808
  }
@@ -1842,6 +1857,9 @@ article #commentList {
1842
1857
  .w-9\.5 {
1843
1858
  width: 2.375rem;
1844
1859
  }
1860
+ .w-96 {
1861
+ width: 24rem;
1862
+ }
1845
1863
  .w-\[19px\] {
1846
1864
  width: 19px;
1847
1865
  }
@@ -2744,6 +2762,11 @@ article #commentList {
2744
2762
  background-color: rgba(226, 232, 240, 1);
2745
2763
  background-color: rgba(226, 232, 240, var(--tw-bg-opacity));
2746
2764
  }
2765
+ .bg-slate-400 {
2766
+ --tw-bg-opacity: 1;
2767
+ background-color: rgba(148, 163, 184, 1);
2768
+ background-color: rgba(148, 163, 184, var(--tw-bg-opacity));
2769
+ }
2747
2770
  .bg-slate-500 {
2748
2771
  --tw-bg-opacity: 1;
2749
2772
  background-color: rgba(100, 116, 139, 1);
@@ -3711,7 +3734,7 @@ article #commentList {
3711
3734
  border-bottom-color: var(--color-secondary-ds);
3712
3735
  }
3713
3736
  .counter-reset {
3714
- counter-reset: cnt1737114207850;
3737
+ counter-reset: cnt1737377355885;
3715
3738
  }
3716
3739
  html { scroll-behavior: smooth; }
3717
3740
  .placeholder-text-xs::-webkit-input-placeholder {
@@ -4126,7 +4149,7 @@ html { scroll-behavior: smooth; }
4126
4149
  --tw-ring-color: rgba(255, 255, 255, 0.5);
4127
4150
  }
4128
4151
  .-ordered {
4129
- counter-increment: cnt1737114207850 1;
4152
+ counter-increment: cnt1737377355885 1;
4130
4153
  }
4131
4154
  .-ordered::before {
4132
4155
  position: absolute;
@@ -4144,7 +4167,7 @@ html { scroll-behavior: smooth; }
4144
4167
  --tw-text-opacity: 1;
4145
4168
  color: rgba(0, 0, 0, 1);
4146
4169
  color: rgba(0, 0, 0, var(--tw-text-opacity));
4147
- content: counter(cnt1737114207850);
4170
+ content: counter(cnt1737377355885);
4148
4171
  }
4149
4172
  /*! ****************************/
4150
4173
  /*! DataPolicy stuff */
@@ -2,8 +2,8 @@
2
2
  class='sb-label rounded px-1.5 pt-px inline-block tracking-wide text-white text-base leading-5.5 font-heading{{#if _css}} {{_css}}{{/if}}
3
3
  {{inline-switch
4
4
  _type
5
- '["media","event","breakingnews","comment","analysis","der-tag-in-hessen","glosse","fragen-und-antworten","infografik","interaktiv","program","download","pm","liveticker","ticker","livestream","live","livechat","buliticker","social-tv","blog","podcast","kurzmeldung","location","topic","video","audio"]'
6
- '["bg-labelMedia","bg-labelEvent","bg-labelBreakingnews","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelInfografik","bg-labelInfografik","bg-labelProgram","bg-labelDownload","bg-labelPm","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelMedia","bg-labelKurzmeldung","bg-labelEvent","bg-labelComment","bg-labelMedia","bg-labelMedia"]'
5
+ '["media","event","breakingnews","comment","analysis","der-tag-in-hessen","hessen-am-abend","glosse","fragen-und-antworten","infografik","interaktiv","program","download","pm","liveticker","ticker","livestream","live","livechat","buliticker","social-tv","blog","podcast","kurzmeldung","location","topic","video","audio"]'
6
+ '["bg-labelMedia","bg-labelEvent","bg-labelBreakingnews","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelInfografik","bg-labelInfografik","bg-labelProgram","bg-labelDownload","bg-labelPm","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelMedia","bg-labelKurzmeldung","bg-labelEvent","bg-labelComment","bg-labelMedia","bg-labelMedia"]'
7
7
  }}'
8
8
  >
9
9
  {{_text}}
@@ -0,0 +1,82 @@
1
+
2
+ <div x-data="stickyPlayer" x-init="init()" class="relative ar-16-9 bg-slate-400" x-intersect:leave.threshold.15="inViewport = false" x-intersect:enter.threshold.15="inViewport = true; videoWasStopedWhenSticky = false">
3
+ <div x-ref="videoElementWrapper"
4
+ class=""
5
+ :class="{ 'ar-16-9 w-96 fixed right-12 bottom-12 z-300 ': shouldVideoBeFixed() }">
6
+ {{> @partial-block }}
7
+ </div>
8
+ <div class="absolute hidden bg-white -bottom-20 -right-80">
9
+ shouldVideoBeFixed: <span x-text="shouldVideoBeFixed()"></span><br>
10
+ inViewport: <span x-text="inViewport"></span><br>
11
+ videoStarted: <span x-text="videoStarted"></span><br>
12
+ videoStoped: <span x-text="videoStoped"></span><br>
13
+ videoPlaying: <span x-text="videoPlaying"></span><br>
14
+ videoWasStopedWhenSticky: <span x-text="videoWasStopedWhenSticky"></span><br>
15
+
16
+
17
+ </div>
18
+ <script>
19
+ var stickyPlayer = () => {
20
+ return {
21
+ eventListenerInitialized: false,
22
+ inViewport: true,
23
+ videoStarted: false,
24
+ videoStoped: true,
25
+ videoPlaying: false,
26
+ videoWasStopedWhenSticky: false,
27
+ videoElement: null,
28
+ shouldVideoBeFixed: function () {
29
+ return (!this.inViewport && this.videoPlaying) || (!this.inViewport && this.videoWasStopedWhenSticky)
30
+ //return !this.inViewport;
31
+ },
32
+ setupVideoEventListeners: function () {
33
+ console.log("setupVideoEventListeners");
34
+ if(!this.eventListenerInitialized) {
35
+ this.videoElement.addEventListener("play", () => {
36
+ console.log("video:play");
37
+ this.videoStarted = true;
38
+ this.videoPlaying = true;
39
+ this.videoStoped = false;
40
+ });
41
+ this.videoElement.addEventListener("pause", () => {
42
+ console.log("video:pause");
43
+ this.videoPlaying = false;
44
+ this.videoStoped = true;
45
+ if (!this.inViewport) {
46
+ this.videoWasStopedWhenSticky = true;
47
+ }
48
+ });
49
+ this.eventListenerInitialized = true;
50
+ }
51
+ },
52
+ init: function () {
53
+ this.videoElement = this.$refs.videoElementWrapper.querySelector("video");
54
+ if(this.videoElement) {
55
+ this.setupVideoEventListeners();
56
+ } else {
57
+ console.log("No video element found in sticky player.");
58
+ const self = this; // Save a reference to the Alpine instance
59
+ const observer = new MutationObserver(function() {
60
+ console.log("MutationObserver: Mutation observed in sticky player.");
61
+
62
+ // Re-check for the video element
63
+ self.videoElement = self.$refs.videoElementWrapper.querySelector("video");
64
+ if (self.videoElement) {
65
+ console.log(self.videoElement)
66
+ self.setupVideoEventListeners();
67
+ observer.disconnect(); // Stop observing after the video is found
68
+ }
69
+ });
70
+
71
+ observer.observe(this.$refs.videoElementWrapper, {
72
+ subtree: true,
73
+ childList: true
74
+ });
75
+ }
76
+
77
+ },
78
+ }
79
+ }
80
+ </script>
81
+
82
+ </div>
@@ -2,8 +2,8 @@
2
2
  class='sb-label rounded px-1.5 pt-px inline-block tracking-wide text-white text-base leading-5.5 font-heading{{#if _css}} {{_css}}{{/if}}
3
3
  {{inline-switch
4
4
  _type
5
- '["media","event","breakingnews","comment","analysis","der-tag-in-hessen","glosse","fragen-und-antworten","infografik","interaktiv","program","download","pm","liveticker","ticker","livestream","live","livechat","buliticker","social-tv","blog","podcast","kurzmeldung","location","topic","video","audio"]'
6
- '["bg-labelMedia","bg-labelEvent","bg-labelBreakingnews","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelInfografik","bg-labelInfografik","bg-labelProgram","bg-labelDownload","bg-labelPm","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelMedia","bg-labelKurzmeldung","bg-labelEvent","bg-labelComment","bg-labelMedia","bg-labelMedia"]'
5
+ '["media","event","breakingnews","comment","analysis","der-tag-in-hessen","hessen-am-abend","glosse","fragen-und-antworten","infografik","interaktiv","program","download","pm","liveticker","ticker","livestream","live","livechat","buliticker","social-tv","blog","podcast","kurzmeldung","location","topic","video","audio"]'
6
+ '["bg-labelMedia","bg-labelEvent","bg-labelBreakingnews","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelInfografik","bg-labelInfografik","bg-labelProgram","bg-labelDownload","bg-labelPm","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelMedia","bg-labelKurzmeldung","bg-labelEvent","bg-labelComment","bg-labelMedia","bg-labelMedia"]'
7
7
  }}'
8
8
  >
9
9
  {{_text}}
@@ -0,0 +1,82 @@
1
+
2
+ <div x-data="stickyPlayer" x-init="init()" class="relative ar-16-9 bg-slate-400" x-intersect:leave.threshold.15="inViewport = false" x-intersect:enter.threshold.15="inViewport = true; videoWasStopedWhenSticky = false">
3
+ <div x-ref="videoElementWrapper"
4
+ class=""
5
+ :class="{ 'ar-16-9 w-96 fixed right-12 bottom-12 z-300 ': shouldVideoBeFixed() }">
6
+ {{> @partial-block }}
7
+ </div>
8
+ <div class="absolute hidden bg-white -bottom-20 -right-80">
9
+ shouldVideoBeFixed: <span x-text="shouldVideoBeFixed()"></span><br>
10
+ inViewport: <span x-text="inViewport"></span><br>
11
+ videoStarted: <span x-text="videoStarted"></span><br>
12
+ videoStoped: <span x-text="videoStoped"></span><br>
13
+ videoPlaying: <span x-text="videoPlaying"></span><br>
14
+ videoWasStopedWhenSticky: <span x-text="videoWasStopedWhenSticky"></span><br>
15
+
16
+
17
+ </div>
18
+ <script>
19
+ var stickyPlayer = () => {
20
+ return {
21
+ eventListenerInitialized: false,
22
+ inViewport: true,
23
+ videoStarted: false,
24
+ videoStoped: true,
25
+ videoPlaying: false,
26
+ videoWasStopedWhenSticky: false,
27
+ videoElement: null,
28
+ shouldVideoBeFixed: function () {
29
+ return (!this.inViewport && this.videoPlaying) || (!this.inViewport && this.videoWasStopedWhenSticky)
30
+ //return !this.inViewport;
31
+ },
32
+ setupVideoEventListeners: function () {
33
+ console.log("setupVideoEventListeners");
34
+ if(!this.eventListenerInitialized) {
35
+ this.videoElement.addEventListener("play", () => {
36
+ console.log("video:play");
37
+ this.videoStarted = true;
38
+ this.videoPlaying = true;
39
+ this.videoStoped = false;
40
+ });
41
+ this.videoElement.addEventListener("pause", () => {
42
+ console.log("video:pause");
43
+ this.videoPlaying = false;
44
+ this.videoStoped = true;
45
+ if (!this.inViewport) {
46
+ this.videoWasStopedWhenSticky = true;
47
+ }
48
+ });
49
+ this.eventListenerInitialized = true;
50
+ }
51
+ },
52
+ init: function () {
53
+ this.videoElement = this.$refs.videoElementWrapper.querySelector("video");
54
+ if(this.videoElement) {
55
+ this.setupVideoEventListeners();
56
+ } else {
57
+ console.log("No video element found in sticky player.");
58
+ const self = this; // Save a reference to the Alpine instance
59
+ const observer = new MutationObserver(function() {
60
+ console.log("MutationObserver: Mutation observed in sticky player.");
61
+
62
+ // Re-check for the video element
63
+ self.videoElement = self.$refs.videoElementWrapper.querySelector("video");
64
+ if (self.videoElement) {
65
+ console.log(self.videoElement)
66
+ self.setupVideoEventListeners();
67
+ observer.disconnect(); // Stop observing after the video is found
68
+ }
69
+ });
70
+
71
+ observer.observe(this.$refs.videoElementWrapper, {
72
+ subtree: true,
73
+ childList: true
74
+ });
75
+ }
76
+
77
+ },
78
+ }
79
+ }
80
+ </script>
81
+
82
+ </div>
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": "1.114.62",
9
+ "version": "1.114.64",
10
10
  "scripts": {
11
11
  "test": "echo \"Error: no test specified\" && exit 1",
12
12
  "storybook": "storybook dev -p 6006 public",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -176,8 +177,8 @@
176
177
  "ext_service_datapolicy_accept_permanently_text": "Externe Inhalte von <b>{0}</b> zukünftig immer anzeigen.",
177
178
  "ext_service_datapolicy_accept_button_text": "Inhalt anzeigen",
178
179
  "ext_service_datapolicy_headline": "Externen Inhalt von {0} anzeigen?",
179
- "ext_service_datapolicy_text": "An dieser Stelle befindet sich ein von unserer Redaktion empfohlener Inhalt von <b>{0}</b>. Beim Laden des Inhalts werden Daten an den Anbieter und ggf. weitere Dritte übertragen. Nähere Informationen erhalten Sie in unseren ",
180
- "ext_service_datapolicy_no_js_text": "An dieser Stelle befindet sich ein von unserer Redaktion empfohlener Inhalt von <b>{0}</b>. Da Sie in Ihrem Browser Javascript deaktiviert haben, kann dieser hier nicht angezeigt werden. Der nachfolgende Link öffnet den Inhalt auf der Seite des Anbieters.",
180
+ "ext_service_datapolicy_text": "An dieser Stelle befindet sich ein von unserer Redaktion empfohlener Inhalt von <b>{0}</b>. Beim Laden des Inhalts werden Daten an den Anbieter und ggf. weitere Dritte übertragen. Nähere Informationen erhältst du in unseren ",
181
+ "ext_service_datapolicy_no_js_text": "An dieser Stelle befindet sich ein von unserer Redaktion empfohlener Inhalt von <b>{0}</b>. Da du in deinem Browser Javascript deaktiviert hast, kann dieser hier nicht angezeigt werden. Der nachfolgende Link öffnet den Inhalt auf der Seite des Anbieters.",
181
182
  "ext_service_datapolicy_no_js_link": "{0}-Inhalt öffnen",
182
183
  "story_infobox_intro_sr": "Weitere Informationen",
183
184
  "story_infobox_outro_sr": "Ende der weiteren Informationen",
@@ -65,6 +65,7 @@
65
65
  "label_gallery": "Bildergalerie",
66
66
  "label_glosse": "Glosse",
67
67
  "label_hessen-am-morgen": "Hessen am Morgen",
68
+ "label_hessen-am-abend": "Hessen am Abend",
68
69
  "label_how_to": "How To",
69
70
  "label_infografik": "Infografik",
70
71
  "label_interaktiv": "Interaktiv",
@@ -2,8 +2,8 @@
2
2
  class='sb-label rounded px-1.5 pt-px inline-block tracking-wide text-white text-base leading-5.5 font-heading{{#if _css}} {{_css}}{{/if}}
3
3
  {{inline-switch
4
4
  _type
5
- '["media","event","breakingnews","comment","analysis","der-tag-in-hessen","glosse","fragen-und-antworten","infografik","interaktiv","program","download","pm","liveticker","ticker","livestream","live","livechat","buliticker","social-tv","blog","podcast","kurzmeldung","location","topic","video","audio"]'
6
- '["bg-labelMedia","bg-labelEvent","bg-labelBreakingnews","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelInfografik","bg-labelInfografik","bg-labelProgram","bg-labelDownload","bg-labelPm","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelMedia","bg-labelKurzmeldung","bg-labelEvent","bg-labelComment","bg-labelMedia","bg-labelMedia"]'
5
+ '["media","event","breakingnews","comment","analysis","der-tag-in-hessen","hessen-am-abend","glosse","fragen-und-antworten","infografik","interaktiv","program","download","pm","liveticker","ticker","livestream","live","livechat","buliticker","social-tv","blog","podcast","kurzmeldung","location","topic","video","audio"]'
6
+ '["bg-labelMedia","bg-labelEvent","bg-labelBreakingnews","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelComment","bg-labelInfografik","bg-labelInfografik","bg-labelProgram","bg-labelDownload","bg-labelPm","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelLive","bg-labelMedia","bg-labelKurzmeldung","bg-labelEvent","bg-labelComment","bg-labelMedia","bg-labelMedia"]'
7
7
  }}'
8
8
  >
9
9
  {{_text}}
@@ -0,0 +1,82 @@
1
+
2
+ <div x-data="stickyPlayer" x-init="init()" class="relative ar-16-9 bg-slate-400" x-intersect:leave.threshold.15="inViewport = false" x-intersect:enter.threshold.15="inViewport = true; videoWasStopedWhenSticky = false">
3
+ <div x-ref="videoElementWrapper"
4
+ class=""
5
+ :class="{ 'ar-16-9 w-96 fixed right-12 bottom-12 z-300 ': shouldVideoBeFixed() }">
6
+ {{> @partial-block }}
7
+ </div>
8
+ <div class="absolute hidden bg-white -bottom-20 -right-80">
9
+ shouldVideoBeFixed: <span x-text="shouldVideoBeFixed()"></span><br>
10
+ inViewport: <span x-text="inViewport"></span><br>
11
+ videoStarted: <span x-text="videoStarted"></span><br>
12
+ videoStoped: <span x-text="videoStoped"></span><br>
13
+ videoPlaying: <span x-text="videoPlaying"></span><br>
14
+ videoWasStopedWhenSticky: <span x-text="videoWasStopedWhenSticky"></span><br>
15
+
16
+
17
+ </div>
18
+ <script>
19
+ var stickyPlayer = () => {
20
+ return {
21
+ eventListenerInitialized: false,
22
+ inViewport: true,
23
+ videoStarted: false,
24
+ videoStoped: true,
25
+ videoPlaying: false,
26
+ videoWasStopedWhenSticky: false,
27
+ videoElement: null,
28
+ shouldVideoBeFixed: function () {
29
+ return (!this.inViewport && this.videoPlaying) || (!this.inViewport && this.videoWasStopedWhenSticky)
30
+ //return !this.inViewport;
31
+ },
32
+ setupVideoEventListeners: function () {
33
+ console.log("setupVideoEventListeners");
34
+ if(!this.eventListenerInitialized) {
35
+ this.videoElement.addEventListener("play", () => {
36
+ console.log("video:play");
37
+ this.videoStarted = true;
38
+ this.videoPlaying = true;
39
+ this.videoStoped = false;
40
+ });
41
+ this.videoElement.addEventListener("pause", () => {
42
+ console.log("video:pause");
43
+ this.videoPlaying = false;
44
+ this.videoStoped = true;
45
+ if (!this.inViewport) {
46
+ this.videoWasStopedWhenSticky = true;
47
+ }
48
+ });
49
+ this.eventListenerInitialized = true;
50
+ }
51
+ },
52
+ init: function () {
53
+ this.videoElement = this.$refs.videoElementWrapper.querySelector("video");
54
+ if(this.videoElement) {
55
+ this.setupVideoEventListeners();
56
+ } else {
57
+ console.log("No video element found in sticky player.");
58
+ const self = this; // Save a reference to the Alpine instance
59
+ const observer = new MutationObserver(function() {
60
+ console.log("MutationObserver: Mutation observed in sticky player.");
61
+
62
+ // Re-check for the video element
63
+ self.videoElement = self.$refs.videoElementWrapper.querySelector("video");
64
+ if (self.videoElement) {
65
+ console.log(self.videoElement)
66
+ self.setupVideoEventListeners();
67
+ observer.disconnect(); // Stop observing after the video is found
68
+ }
69
+ });
70
+
71
+ observer.observe(this.$refs.videoElementWrapper, {
72
+ subtree: true,
73
+ childList: true
74
+ });
75
+ }
76
+
77
+ },
78
+ }
79
+ }
80
+ </script>
81
+
82
+ </div>
@@ -8,11 +8,22 @@ const hbsTemplates = []
8
8
  hbsTemplates['mediaplayer'] = handlebars.compile(`
9
9
  {{> components/mediaplayer/media_player}}
10
10
  `)
11
-
11
+ hbsTemplates['stickyMediaplayer'] = handlebars.compile(`
12
+ <div class="w-135">
13
+ {{#> components/mediaplayer/mediaPlayer_stickyWrapper}}
14
+ {{> components/mediaplayer/media_player}}
15
+ {{/components/mediaplayer/mediaPlayer_stickyWrapper}}
16
+ </div>
17
+ <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
18
+ <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
19
+ <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
20
+ <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>`)
12
21
  const Template = (args) => {
13
22
  return hbsTemplates['mediaplayer']({ ...args })
14
23
  }
15
-
24
+ const Template2 = (args) => {
25
+ return hbsTemplates['stickyMediaplayer']({ ...args })
26
+ }
16
27
  const snapshotTemplate = (args) => {
17
28
  return getSnapshotsTemplate({ hbsTemplates, args })
18
29
  }
@@ -43,7 +54,18 @@ export default {
43
54
  chromatic: { disableSnapshot: true }
44
55
  },
45
56
  }
46
-
57
+ export const StickyVideoplayer = {
58
+ render: Template2.bind({}),
59
+ name: 'StickyVideoplayer',
60
+ decorators: [
61
+ (Story) => {
62
+ return `<div class="flex flex-row pt-5">
63
+ ${Story()}
64
+ </div>`
65
+ },
66
+ ],
67
+ args: snapshotsJson.video.args,
68
+ }
47
69
  export const Videoplayer = {
48
70
  render: Template.bind({}),
49
71
  name: 'Videoplayer',