@saooti/octopus-sdk 37.0.18 → 37.0.20

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 (31) hide show
  1. package/package.json +19 -19
  2. package/src/components/display/emission/EmissionInlineList.vue +4 -4
  3. package/src/components/display/filter/AdvancedSearch.vue +3 -4
  4. package/src/components/display/list/ListPaginate.vue +1 -1
  5. package/src/components/display/list/SwiperList.vue +13 -9
  6. package/src/components/display/live/LiveItem.vue +10 -1
  7. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +3 -3
  8. package/src/components/display/podcasts/PodcastImage.vue +17 -12
  9. package/src/components/display/podcasts/PodcastInlineListClassic.vue +3 -3
  10. package/src/components/display/sharing/ShareDistribution.vue +1 -1
  11. package/src/components/display/sharing/SharePlayer.vue +9 -8
  12. package/src/components/display/sharing/SharePlayerTypes.vue +7 -18
  13. package/src/components/display/sharing/SubscribeButtons.vue +6 -1
  14. package/src/components/form/ClassicDatePicker.vue +46 -33
  15. package/src/components/misc/ClassicPopover.vue +6 -4
  16. package/src/components/misc/player/PlayerCompact.vue +1 -1
  17. package/src/components/misc/player/PlayerComponent.vue +8 -10
  18. package/src/components/misc/player/PlayerLarge.vue +1 -1
  19. package/src/components/misc/player/PlayerVideo.vue +24 -29
  20. package/src/components/misc/player/PlayerVideoDigiteka.vue +28 -26
  21. package/src/components/misc/player/PlayerVideoHls.vue +80 -69
  22. package/src/components/misc/player/radio/RadioHistory.vue +12 -9
  23. package/src/components/misc/player/radio/RadioProgressBar.vue +2 -2
  24. package/src/components/pages/EmissionPage.vue +1 -1
  25. package/src/components/pages/PodcastPage.vue +1 -1
  26. package/src/locale/de.ts +16 -17
  27. package/src/locale/en.ts +15 -16
  28. package/src/locale/es.ts +16 -17
  29. package/src/locale/fr.ts +16 -16
  30. package/src/locale/it.ts +329 -332
  31. package/src/locale/sl.ts +16 -17
@@ -1,12 +1,12 @@
1
1
  <template>
2
2
  <div
3
3
  class="player-container"
4
- :class="playerVideo? 'player-video':''"
4
+ :class="playerVideo ? 'player-video' : ''"
5
5
  :style="{ height: playerHeight }"
6
6
  @transitionend="onHidden"
7
7
  >
8
8
  <template v-if="display">
9
- <PlayerVideo v-if="playerVideo"/>
9
+ <PlayerVideo v-if="playerVideo" />
10
10
  <template v-else>
11
11
  <audio
12
12
  id="audio-player"
@@ -29,7 +29,7 @@
29
29
  :percent-live-progress="percentLiveProgress"
30
30
  :duration-live-position="durationLivePosition"
31
31
  :listen-time="listenTime"
32
- :hlsReady="hlsReady"
32
+ :hls-ready="hlsReady"
33
33
  @stop-player="stopPlayer"
34
34
  @change-player-large-version="playerUpdateLargeVersion(true)"
35
35
  />
@@ -42,7 +42,7 @@
42
42
  :percent-live-progress="percentLiveProgress"
43
43
  :duration-live-position="durationLivePosition"
44
44
  :listen-time="listenTime"
45
- :hlsReady="hlsReady"
45
+ :hls-ready="hlsReady"
46
46
  @stop-player="stopPlayer"
47
47
  @change-player-large-version="playerUpdateLargeVersion(false)"
48
48
  />
@@ -58,16 +58,14 @@ import PlayerLarge from "../player/PlayerLarge.vue";
58
58
  import { usePlayerStore } from "@/stores/PlayerStore";
59
59
  import { mapState, mapActions } from "pinia";
60
60
  import { defineComponent, defineAsyncComponent } from "vue";
61
- const PlayerVideo = defineAsyncComponent(
62
- () => import("./PlayerVideo.vue"),
63
- );
61
+ const PlayerVideo = defineAsyncComponent(() => import("./PlayerVideo.vue"));
64
62
  export default defineComponent({
65
63
  name: "PlayerComponent",
66
64
 
67
65
  components: {
68
66
  PlayerCompact,
69
67
  PlayerLarge,
70
- PlayerVideo
68
+ PlayerVideo,
71
69
  },
72
70
  mixins: [playerLogic],
73
71
  emits: ["hide"],
@@ -93,7 +91,7 @@ export default defineComponent({
93
91
  "playerStatus",
94
92
  "playerHeight",
95
93
  "playerLargeVersion",
96
- "playerVideo"
94
+ "playerVideo",
97
95
  ]),
98
96
  display() {
99
97
  return "STOPPED" !== this.playerStatus;
@@ -129,7 +127,7 @@ export default defineComponent({
129
127
 
130
128
  <style lang="scss">
131
129
  .octopus-app {
132
- .player-container{
130
+ .player-container {
133
131
  max-height: 94%;
134
132
  position: sticky;
135
133
  overflow: hidden;
@@ -118,7 +118,7 @@ export default defineComponent({
118
118
  percentLiveProgress: { default: 0, type: Number },
119
119
  durationLivePosition: { default: 0, type: Number },
120
120
  listenTime: { default: 0, type: Number },
121
- hlsReady: { default: false , type: Boolean},
121
+ hlsReady: { default: false, type: Boolean },
122
122
  },
123
123
 
124
124
  emits: ["stopPlayer", "update:notListenTime", "changePlayerLargeVersion"],
@@ -1,18 +1,13 @@
1
1
  <template>
2
2
  <teleport to=".octopus-app">
3
3
  <template v-if="playerVideo">
4
- <button
4
+ <button
5
5
  class="btn btn-transparent video-close saooti-remove"
6
6
  @click="closePlayer"
7
7
  />
8
8
  <div class="video-wrapper">
9
- <PlayerVideoDigiteka
10
- v-if="!playerLive"
11
- />
12
- <PlayerVideoHls
13
- v-else
14
- :hls-url="hlsUrl"
15
- />
9
+ <PlayerVideoDigiteka v-if="!playerLive" />
10
+ <PlayerVideoHls v-else :hls-url="hlsUrl" />
16
11
  </div>
17
12
  </template>
18
13
  </teleport>
@@ -33,24 +28,24 @@ export default defineComponent({
33
28
 
34
29
  components: {
35
30
  PlayerVideoDigiteka,
36
- PlayerVideoHls
31
+ PlayerVideoHls,
37
32
  },
38
33
  data() {
39
- return {
40
- };
34
+ return {};
41
35
  },
42
36
  computed: {
43
37
  ...mapState(usePlayerStore, ["playerVideo", "playerLive"]),
44
- hlsUrl(): string{
45
- if(!this.playerLive){return "";}
38
+ hlsUrl(): string {
39
+ if (!this.playerLive) {
40
+ return "";
41
+ }
46
42
  return `${state.podcastPage.hlsUri}live/video_dev.${this.playerLive.conferenceId}/index.m3u8`;
47
- //return "https://demo.unified-streaming.com/k8s/features/stable/video/tears-of-steel/tears-of-steel.ism/.m3u8";
48
- }
43
+ },
49
44
  },
50
45
 
51
46
  methods: {
52
- ...mapActions(usePlayerStore, ["playerPlay",]),
53
- closePlayer(){
47
+ ...mapActions(usePlayerStore, ["playerPlay"]),
48
+ closePlayer() {
54
49
  this.playerPlay();
55
50
  },
56
51
  },
@@ -59,7 +54,7 @@ export default defineComponent({
59
54
 
60
55
  <style lang="scss">
61
56
  .octopus-app {
62
- .video-wrapper{
57
+ .video-wrapper {
63
58
  border-radius: 1rem;
64
59
  overflow: hidden;
65
60
  position: fixed;
@@ -67,24 +62,24 @@ export default defineComponent({
67
62
  right: 0;
68
63
  z-index: 10;
69
64
  }
70
- .video-close{
65
+ .video-close {
71
66
  position: fixed;
72
67
  bottom: 16.5rem;
73
68
  right: 1rem;
74
69
  }
75
70
  @media (max-width: 500px) {
76
- .video-wrapper{
77
- position:relative;
78
- padding-bottom:56.25%;
79
- height:0;
71
+ .video-wrapper {
72
+ position: relative;
73
+ padding-bottom: 56.25%;
74
+ height: 0;
80
75
  }
81
76
  .video-wrapper iframe {
82
- position:absolute;
83
- top:0;
84
- left:0;
85
- width:100% !important;
86
- height:100%;
87
- margin:0 !important;
77
+ position: absolute;
78
+ top: 0;
79
+ left: 0;
80
+ width: 100% !important;
81
+ height: 100%;
82
+ margin: 0 !important;
88
83
  }
89
84
  }
90
85
  }
@@ -1,12 +1,13 @@
1
1
  <template>
2
- <iframe
2
+ <iframe
3
3
  ref="iframeVideo"
4
4
  :src="srcVideo"
5
- width="500"
6
- height="281"
7
- style="z-index:1;"
8
- allowfullscreen="true"
9
- allow="autoplay"
5
+ :title="$t('Video')"
6
+ width="500"
7
+ height="281"
8
+ style="z-index: 1"
9
+ allowfullscreen="true"
10
+ allow="autoplay"
10
11
  referrerpolicy="no-referrer-when-downgrade"
11
12
  ></iframe>
12
13
  </template>
@@ -17,32 +18,34 @@ import { mapState } from "pinia";
17
18
  import { defineComponent } from "vue";
18
19
  export default defineComponent({
19
20
  name: "PlayerVideo",
20
- components: {
21
- },
21
+ components: {},
22
22
 
23
- computed:{
24
- ...mapState(usePlayerStore, [
25
- "playerPodcast",
26
- "playerVideo"
27
- ]),
28
- srcVideo(): string{
29
- if(this.playerVideo){
30
- return "//www.ultimedia.com/deliver/generic/iframe/mdtk/01009833/zone/1/showtitle/1/src/"+ this.playerPodcast?.video?.videoId+"/autoplay/1";
23
+ computed: {
24
+ ...mapState(usePlayerStore, ["playerPodcast", "playerVideo"]),
25
+ srcVideo(): string {
26
+ if (this.playerVideo) {
27
+ return (
28
+ "//www.ultimedia.com/deliver/generic/iframe/mdtk/01009833/zone/1/showtitle/1/src/" +
29
+ this.playerPodcast?.video?.videoId +
30
+ "/autoplay/1"
31
+ );
31
32
  }
32
33
  return "";
33
- }
34
+ },
34
35
  },
35
- watch:{
36
+ watch: {
36
37
  srcVideo() {
37
38
  this.goFullScreen();
38
39
  },
39
40
  },
40
- mounted(){
41
+ mounted() {
41
42
  this.goFullScreen();
42
43
  },
43
- methods:{
44
- goFullScreen(){
45
- if(""===this.srcVideo){return;}
44
+ methods: {
45
+ goFullScreen() {
46
+ if ("" === this.srcVideo) {
47
+ return;
48
+ }
46
49
  switch (screen.orientation.type) {
47
50
  case "landscape-primary":
48
51
  case "landscape-secondary":
@@ -55,8 +58,7 @@ export default defineComponent({
55
58
  default:
56
59
  console.log("The orientation API isn't supported in this browser :(");
57
60
  }
58
- }
59
- }
60
-
61
+ },
62
+ },
61
63
  });
62
- </script>
64
+ </script>
@@ -1,20 +1,25 @@
1
1
  <template>
2
2
  <div id="player-video-hls" class="video-player">
3
- <div v-if="errorPlay.length" class="video-live-error">{{errorPlay}}</div>
4
- <video id="video-element-hls" ref="videoelement" class="video-js" playsinline></video>
3
+ <div v-if="errorPlay.length" class="video-live-error">{{ errorPlay }}</div>
4
+ <video
5
+ id="video-element-hls"
6
+ ref="videoelement"
7
+ class="video-js"
8
+ playsinline
9
+ ></video>
5
10
  </div>
6
11
  </template>
7
12
  <script lang="ts">
8
- import videojs, { VideoJsPlayer } from 'video.js';
9
- import qualitySelector from 'videojs-hls-quality-selector';
10
- import qualityLevels from 'videojs-contrib-quality-levels';
11
- if (!videojs.getPlugin('qualityLevels')) {
12
- videojs.registerPlugin('qualityLevels', qualityLevels);
13
+ import videojs, { VideoJsPlayer } from "video.js";
14
+ import qualitySelector from "videojs-hls-quality-selector";
15
+ import qualityLevels from "videojs-contrib-quality-levels";
16
+ if (!videojs.getPlugin("qualityLevels")) {
17
+ videojs.registerPlugin("qualityLevels", qualityLevels);
13
18
  }
14
- if (!videojs.getPlugin('hlsQualitySelector')) {
15
- videojs.registerPlugin('hlsQualitySelector', qualitySelector);
19
+ if (!videojs.getPlugin("hlsQualitySelector")) {
20
+ videojs.registerPlugin("hlsQualitySelector", qualitySelector);
16
21
  }
17
- import { defineComponent } from 'vue';
22
+ import { defineComponent } from "vue";
18
23
  export default defineComponent({
19
24
  name: "PlayerVideoHls",
20
25
 
@@ -22,21 +27,21 @@ export default defineComponent({
22
27
  hlsUrl: { default: "", type: String },
23
28
  },
24
29
 
25
- emits:['changeValid'],
30
+ emits: ["changeValid"],
26
31
  data() {
27
32
  return {
28
33
  errorPlay: "" as string,
29
34
  useVideoSrc: false as boolean,
30
- player: undefined as VideoJsPlayer|undefined,
35
+ player: undefined as VideoJsPlayer | undefined,
31
36
  playing: false as boolean,
32
- stalledTimout: undefined as ReturnType<typeof setTimeout>|undefined,
37
+ stalledTimout: undefined as ReturnType<typeof setTimeout> | undefined,
33
38
  };
34
39
  },
35
- computed:{
36
- videoElement(): HTMLVideoElement{
37
- return (this.$refs.videoelement as HTMLVideoElement);
40
+ computed: {
41
+ videoElement(): HTMLVideoElement {
42
+ return this.$refs.videoelement as HTMLVideoElement;
38
43
  },
39
- videoOptions(){
44
+ videoOptions() {
40
45
  return {
41
46
  autoplay: true,
42
47
  controls: true,
@@ -44,12 +49,12 @@ export default defineComponent({
44
49
  sources: [
45
50
  {
46
51
  src: this.hlsUrl,
47
- type: 'application/x-mpegURL',
48
- }
52
+ type: "application/x-mpegURL",
53
+ },
49
54
  ],
50
55
  html5: {
51
56
  vhs: {
52
- overrideNative: !videojs.browser.IS_SAFARI,
57
+ overrideNative: !videojs.browser.IS_SAFARI,
53
58
  },
54
59
  nativeAudioTracks: false,
55
60
  nativeVideoTracks: false,
@@ -59,23 +64,25 @@ export default defineComponent({
59
64
  displayCurrentQuality: true,
60
65
  },
61
66
  },
62
- }
63
- }
67
+ };
68
+ },
64
69
  },
65
- mounted(){
70
+ mounted() {
66
71
  this.playLive();
67
- this.useVideoSrc = ""!==this.videoElement.canPlayType('application/vnd.apple.mpegurl') && !navigator.userAgent.includes('Android');
72
+ this.useVideoSrc =
73
+ "" !== this.videoElement.canPlayType("application/vnd.apple.mpegurl") &&
74
+ !navigator.userAgent.includes("Android");
68
75
  },
69
76
 
70
- beforeUnmount() {
71
- if(this.playing){
77
+ beforeUnmount() {
78
+ if (this.playing) {
72
79
  this.stopLive();
73
80
  }
74
81
  },
75
82
 
76
83
  methods: {
77
- definedStalledTimeout(){
78
- this.stalledTimout =setTimeout(()=>{
84
+ definedStalledTimeout() {
85
+ this.stalledTimout = setTimeout(() => {
79
86
  this.videoClean();
80
87
  this.playLive();
81
88
  }, 5000);
@@ -87,83 +94,87 @@ export default defineComponent({
87
94
  this.playLiveIos();
88
95
  return;
89
96
  }
90
- this.player = videojs((document.getElementById("video-element-hls") as Element), this.videoOptions, () => {
91
- this.errorPlay = "";
92
- this.playing = true;
93
- });
94
- this.player.on('timeupdate', () => {
97
+ this.player = videojs(
98
+ document.getElementById("video-element-hls") as Element,
99
+ this.videoOptions,
100
+ () => {
101
+ this.errorPlay = "";
102
+ this.playing = true;
103
+ },
104
+ );
105
+ this.player.on("timeupdate", () => {
95
106
  clearTimeout(this.stalledTimout);
96
107
  this.definedStalledTimeout();
97
108
  });
98
- this.player.on('error', (error) => {
109
+ this.player.on("error", (error) => {
99
110
  this.stopLive();
100
- if (error.description && error.description.includes('403')) {
101
- this.errorPlay = this.$t('Video is unavailable');
102
- }else{
103
- this.errorPlay = this.$t('Podcast play error');
111
+ if (error.description && error.description.includes("403")) {
112
+ this.errorPlay = this.$t("Video is unavailable");
113
+ } else {
114
+ this.errorPlay = this.$t("Podcast play error");
104
115
  }
105
116
  });
106
117
  },
107
- async playLiveIos(): Promise<void>{
108
- this.videoElement.onloadedmetadata = ()=>{
109
- const playPromise = this.videoElement.play();
118
+ async playLiveIos(): Promise<void> {
119
+ this.videoElement.onloadedmetadata = () => {
120
+ const playPromise = this.videoElement.play();
110
121
  if (playPromise !== undefined) {
111
- playPromise.then(() => {
112
- this.errorPlay = "";
113
- this.playing = true;
114
- })
115
- .catch(() => {
116
- this.playing = false;
117
- });
122
+ playPromise
123
+ .then(() => {
124
+ this.errorPlay = "";
125
+ this.playing = true;
126
+ })
127
+ .catch(() => {
128
+ this.playing = false;
129
+ });
118
130
  }
119
131
  };
120
- this.videoElement.onerror = async()=>{
132
+ this.videoElement.onerror = async () => {
121
133
  this.stopLive();
122
- this.errorPlay = this.$t('Podcast play error');
134
+ this.errorPlay = this.$t("Podcast play error");
123
135
  };
124
- this.videoElement.ontimeupdate = async()=>{
125
- clearTimeout(this.stalledTimout);
126
- this.definedStalledTimeout();
136
+ this.videoElement.ontimeupdate = async () => {
137
+ clearTimeout(this.stalledTimout);
138
+ this.definedStalledTimeout();
127
139
  };
128
140
  this.videoElement.src = this.hlsUrl;
129
141
  },
130
- videoClean(): void{
131
- if(this.useVideoSrc){
142
+ videoClean(): void {
143
+ if (this.useVideoSrc) {
132
144
  this.videoElement.pause();
133
- this.videoElement.removeAttribute('src');
145
+ this.videoElement.removeAttribute("src");
134
146
  this.videoElement.load();
135
147
  return;
136
148
  }
137
- if(this.player){
149
+ if (this.player) {
138
150
  this.player.dispose();
139
151
  //Redraw
140
152
  const video_parent = document.getElementById("player-video-hls");
141
- if(video_parent){
142
- const video = document.createElement('video');
143
- video.id="video-element-hls";
144
- video.className="video-js";
145
- video.preload="auto";
146
- video.setAttribute("playsinline","true");
153
+ if (video_parent) {
154
+ const video = document.createElement("video");
155
+ video.id = "video-element-hls";
156
+ video.className = "video-js";
157
+ video.preload = "auto";
158
+ video.setAttribute("playsinline", "true");
147
159
  video_parent.appendChild(video);
148
160
  }
149
161
  }
150
162
  },
151
- stopLive(): void{
163
+ stopLive(): void {
152
164
  clearTimeout(this.stalledTimout);
153
165
  this.errorPlay = "";
154
166
  this.videoClean();
155
167
  this.playing = false;
156
168
  },
157
169
  },
158
-
159
170
  });
160
171
  </script>
161
172
 
162
173
  <style lang="scss">
163
- @import 'video.js';
174
+ @import "video.js";
164
175
  @import "@scss/_variables.scss";
165
- .octopus-app{
166
- .video-live-error{
176
+ .octopus-app {
177
+ .video-live-error {
167
178
  text-align: center;
168
179
  width: 100%;
169
180
  font-size: 1rem;
@@ -175,7 +186,7 @@ export default defineComponent({
175
186
  background: $danger;
176
187
  z-index: 1;
177
188
  }
178
- .video-js{
189
+ .video-js {
179
190
  width: 500px;
180
191
  height: 281px;
181
192
  }
@@ -83,24 +83,27 @@ export default defineComponent({
83
83
  this.handleResize(0);
84
84
  },
85
85
  methods: {
86
- handleResize(indexAsked: number): void {
87
- const historyList = this.$refs.historyListContainer as HTMLElement;
88
- if (null === historyList || !historyList) {
89
- return;
90
- }
91
- this.indexStart = indexAsked;
92
- this.indexNotDisplay = this.playerRadioHistory.length;
86
+ displayEverythingAfterIndex(indexAsked: number){
93
87
  for (let index = 0; index < this.playerRadioHistory.length; index++) {
94
88
  const el = (this.$refs["history" + index] as Array<HTMLElement>)[0];
95
89
  if (!el) continue;
96
- if (index < this.indexStart && !el.classList.contains("hid")) {
90
+ if (index < indexAsked && !el.classList.contains("hid")) {
97
91
  el.classList.add("hid");
98
92
  continue;
99
93
  }
100
- if (index >= this.indexStart && el.classList.contains("hid")) {
94
+ if (index >= indexAsked && el.classList.contains("hid")) {
101
95
  el.classList.remove("hid");
102
96
  }
103
97
  }
98
+ },
99
+ handleResize(indexAsked: number): void {
100
+ const historyList = this.$refs.historyListContainer as HTMLElement;
101
+ if (null === historyList || !historyList) {
102
+ return;
103
+ }
104
+ this.indexStart = indexAsked;
105
+ this.indexNotDisplay = this.playerRadioHistory.length;
106
+ this.displayEverythingAfterIndex(indexAsked);
104
107
  for (
105
108
  let index = this.indexStart + 1;
106
109
  index < this.playerRadioHistory.length;
@@ -5,7 +5,7 @@
5
5
  >
6
6
  <div
7
7
  class="octopus-progress-bar"
8
- :class="isBack ? 'no-transition': ''"
8
+ :class="isBack ? 'no-transition' : ''"
9
9
  role="progressbar"
10
10
  aria-valuenow="0"
11
11
  aria-valuemin="0"
@@ -89,7 +89,7 @@ export default defineComponent({
89
89
  .octopus-progress-bar {
90
90
  background-color: #747474;
91
91
  }
92
- .no-transition{
92
+ .no-transition {
93
93
  transition: none !important;
94
94
  }
95
95
  }
@@ -182,7 +182,7 @@ export default defineComponent({
182
182
  "podcastAddict",
183
183
  "playerFm",
184
184
  "pocketCasts",
185
- "iHeart"
185
+ "iHeart",
186
186
  ];
187
187
  let count = 0;
188
188
  for (let i = 0, len = platformShare.length; i < len; i++) {
@@ -200,7 +200,7 @@ export default defineComponent({
200
200
  "podcastAddict",
201
201
  "playerFm",
202
202
  "pocketCasts",
203
- "iHeart"
203
+ "iHeart",
204
204
  ];
205
205
  let count = 0;
206
206
  for (let i = 0, len = platformShare.length; i < len; i++) {
package/src/locale/de.ts CHANGED
@@ -317,22 +317,20 @@ export default {
317
317
  Newsletter: "Newsletter",
318
318
  "QR Code": "QR-Code",
319
319
  "Rss feed": "RSS-Feed",
320
- "Multiselect max options":
321
- "Maximal {max} gleichzeitige Optionen. Bitte entfernen Sie zuerst eine Option, um eine neue auswählen zu können",
322
- "Mix of episodes": "Mischung aus Episoden",
323
- "Radio & Live": "Radio & Live",
324
- "Selection by status": "Auswahl nach Status",
325
- "All lives": "Alle Leben",
326
- "In debriefing": "In der Nachbesprechung",
327
- "In the process of being published": "Im Prozess der Veröffentlichung",
328
- Radio: "Radio",
329
- Currently: "Momentan",
330
- Program: "Programm",
331
- "No programming": "Nicht programmieren",
332
- "Canal name image": "Kanalbild {name}",
333
- "Show animated wave": "Animierte Welle anzeigen",
334
- "Characters number calculated over HTML code":
335
- "Die Zeichenzahl wird mit dem HTML-Code ermittelt, der mit diesem Editor erstellt wurde. Über den HTML-Button können Sie diesen Code einsehen.",
320
+ "Multiselect max options":"Maximal {max} gleichzeitige Optionen. Bitte entfernen Sie zuerst eine Option, um eine neue auswählen zu können",
321
+ "Mix of episodes":"Mischung aus Episoden",
322
+ "Radio & Live":"Radio & Live",
323
+ "Selection by status":"Auswahl nach Status",
324
+ "All lives":"Alle Leben",
325
+ 'In debriefing': 'In der Nachbesprechung',
326
+ 'In the process of being published': 'Im Prozess der Veröffentlichung',
327
+ "Radio":"Radio",
328
+ "Currently":"Momentan",
329
+ "Program":"Programm",
330
+ "No programming":"Nicht programmieren",
331
+ 'Canal name image': 'Kanalbild {name}',
332
+ "Show animated wave":"Animierte Welle anzeigen",
333
+ 'Characters number calculated over HTML code':"Die Zeichenzahl wird mit dem HTML-Code ermittelt, der mit diesem Editor erstellt wurde. Über den HTML-Button können Sie diesen Code einsehen.",
336
334
  Previously: "Bisher",
337
335
  "Bold":"Deutlich",
338
336
  "Italic":"Kursiv",
@@ -344,4 +342,5 @@ export default {
344
342
  "List":"Aufführen",
345
343
  "Display HTML":"HTML anzeigen",
346
344
  "Video is unavailable":"Video ist nicht verfügbar",
347
- };
345
+ 'Full Large version': 'Vollständige große Version',
346
+ }