@saooti/octopus-sdk 40.1.21 → 40.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.ts +8 -1
- package/package.json +1 -1
- package/plateform.conf +1 -1
- package/src/components/composable/player/usePlayerLive.ts +1 -1
- package/src/components/display/accessibility/AccessibilityModal.vue +7 -7
- package/src/components/display/comments/CommentSection.vue +1 -1
- package/src/components/display/emission/EmissionPlayerItem.vue +1 -1
- package/src/components/display/list/SwiperList.vue +1 -1
- package/src/components/display/live/LiveList.vue +1 -1
- package/src/components/display/live/RadioList.vue +1 -1
- package/src/components/display/podcasts/PodcastImage.vue +17 -9
- package/src/components/display/podcasts/PodcastItemInfo.vue +1 -1
- package/src/components/display/podcasts/PodcastModuleBox.vue +121 -118
- package/src/components/display/podcasts/PodcastRawTranscript.vue +5 -18
- package/src/components/display/sharing/PlayerAnonymousModal.vue +54 -0
- package/src/components/display/sharing/QrCode.vue +36 -35
- package/src/components/display/sharing/ShareAnonymous.vue +290 -0
- package/src/components/display/sharing/ShareDistribution.vue +8 -27
- package/src/components/display/sharing/ShareNewsletter.vue +205 -0
- package/src/components/display/sharing/ShareSocialsButtons.vue +110 -0
- package/src/components/display/sharing/SubscribeButtons.vue +2 -0
- package/src/components/form/ClassicCopyButton.vue +65 -0
- package/src/components/misc/ClassicNav.vue +9 -4
- package/src/components/misc/ClassicPopover.vue +1 -1
- package/src/components/misc/modal/ClipboardModal.vue +9 -11
- package/src/components/misc/modal/NewsletterModal.vue +14 -192
- package/src/components/misc/modal/QrCodeModal.vue +2 -1
- package/src/components/pages/EmissionPage.vue +47 -61
- package/src/components/pages/ParticipantPage.vue +17 -7
- package/src/components/pages/PlaylistPage.vue +13 -9
- package/src/components/pages/PodcastPage.vue +15 -38
- package/src/components/pages/RadioPage.vue +12 -7
- package/src/components/pages/VideoPage.vue +0 -3
- package/src/locale/de.ts +5 -2
- package/src/locale/en.ts +5 -2
- package/src/locale/es.ts +5 -2
- package/src/locale/fr.ts +9 -6
- package/src/locale/it.ts +5 -2
- package/src/locale/sl.ts +5 -2
- package/src/router/router.ts +3 -8
- package/src/stores/class/config/commentsConfig.ts +2 -2
- package/src/style/bootstrap.scss +6 -14
- package/src/components/display/sharing/ShareButtons.vue +0 -351
package/index.ts
CHANGED
|
@@ -49,7 +49,13 @@ export const getOrganisationChooser = () => import("./src/components/display/org
|
|
|
49
49
|
export const getPodcastFilterList = () => import("./src/components/display/podcasts/PodcastFilterList.vue");
|
|
50
50
|
export const getPodcastInlineList = () => import("./src/components/display/podcasts/PodcastInlineList.vue");
|
|
51
51
|
export const getPodcastList = () => import("./src/components/display/podcasts/PodcastList.vue");
|
|
52
|
-
export const getShareButtons = () => import("./src/components/display/sharing/
|
|
52
|
+
export const getShareButtons = () => import("./src/components/display/sharing/ShareSocialsButtons.vue");
|
|
53
|
+
export const getShareAnonymous = () => import("./src/components/display/sharing/ShareAnonymous.vue");
|
|
54
|
+
export const getShareNewsletter = () => import("./src/components/display/sharing/ShareNewsletter.vue");
|
|
55
|
+
export const getQrCode = () => import("./src/components/display/sharing/QrCode.vue");
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
53
59
|
export const getEmissionInlineList = () => import("./src/components/display/emission/EmissionInlineList.vue");
|
|
54
60
|
export const getRubriqueChooser = () => import("./src/components/display/rubriques/RubriqueChooser.vue");
|
|
55
61
|
export const getCommentList = () => import("./src/components/display/comments/CommentList.vue");
|
|
@@ -89,6 +95,7 @@ export const getClassicInputText = () => import("./src/components/form/ClassicIn
|
|
|
89
95
|
export const getClassicEmojiPicker = () => import("./src/components/form/ClassicEmojiPicker.vue");
|
|
90
96
|
export const getClassicContentEditable = () => import("./src/components/form/ClassicContentEditable.vue");
|
|
91
97
|
export const getSwiperList = () => import("./src/components/display/list/SwiperList.vue");
|
|
98
|
+
export const getClassicCopyButton = () => import("./src/components/form/ClassicCopyButton.vue");
|
|
92
99
|
|
|
93
100
|
|
|
94
101
|
//Composable
|
package/package.json
CHANGED
package/plateform.conf
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
preprod.saooti.org
|
|
@@ -8,7 +8,7 @@ import dayjs from "dayjs";
|
|
|
8
8
|
let Hls:any = null;
|
|
9
9
|
/* eslint-enable*/
|
|
10
10
|
const maxMinutesSessionId = 1;
|
|
11
|
-
export const usePlayerLive = (hlsReady: Ref<
|
|
11
|
+
export const usePlayerLive = (hlsReady: Ref<boolean>)=>{
|
|
12
12
|
|
|
13
13
|
const { listenTime, initLiveDownloadId, setDownloadId, onTimeUpdateProgress } = usePlayerLogicProgress();
|
|
14
14
|
|
|
@@ -75,6 +75,13 @@ export default defineComponent({
|
|
|
75
75
|
},
|
|
76
76
|
|
|
77
77
|
emits: ["close", "save"],
|
|
78
|
+
data() {
|
|
79
|
+
return {
|
|
80
|
+
fontSize :16 as number,
|
|
81
|
+
background: "white" as string,
|
|
82
|
+
color: "black" as string,
|
|
83
|
+
};
|
|
84
|
+
},
|
|
78
85
|
computed:{
|
|
79
86
|
isMaxSize(){
|
|
80
87
|
return this.fontSize>=30;
|
|
@@ -86,13 +93,6 @@ export default defineComponent({
|
|
|
86
93
|
return 'font-size:'+this.fontSize+'px; background:'+this.background+'; color:'+this.color;
|
|
87
94
|
}
|
|
88
95
|
},
|
|
89
|
-
data() {
|
|
90
|
-
return {
|
|
91
|
-
fontSize :16 as number,
|
|
92
|
-
background: "white" as string,
|
|
93
|
-
color: "black" as string,
|
|
94
|
-
};
|
|
95
|
-
},
|
|
96
96
|
created(){
|
|
97
97
|
this.initAccessibility();
|
|
98
98
|
},
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
@slide-change="slideChange"
|
|
15
15
|
>
|
|
16
16
|
<swiper-slide v-for="(obj, index) in listObject" :key="obj">
|
|
17
|
-
<slot name="octopusSlide" :option="obj" :index="index"
|
|
17
|
+
<slot v-if="composableInit" name="octopusSlide" :option="obj" :index="index" />
|
|
18
18
|
</swiper-slide>
|
|
19
19
|
</swiper>
|
|
20
20
|
</template>
|
|
@@ -3,15 +3,23 @@
|
|
|
3
3
|
v-if="podcast"
|
|
4
4
|
class="img-box img-box-podcast mb-3 flex-column justify-content-start align-items-start position-relative flex-shrink-0 float-start"
|
|
5
5
|
>
|
|
6
|
-
<
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
6
|
+
<router-link
|
|
7
|
+
:to="{
|
|
8
|
+
name: 'podcast',
|
|
9
|
+
params: { podcastId: podcast.podcastId },
|
|
10
|
+
}"
|
|
11
|
+
:title="$t('Episode name page', { name: podcast.title })"
|
|
12
|
+
>
|
|
13
|
+
<img
|
|
14
|
+
v-lazy="useProxyImageUrl(podcast.imageUrl, '270')"
|
|
15
|
+
width="270"
|
|
16
|
+
height="270"
|
|
17
|
+
role="presentation"
|
|
18
|
+
alt=""
|
|
19
|
+
class="img-box img-box-podcast"
|
|
20
|
+
:title="$t('Episode name image', { name: podcast.title })"
|
|
21
|
+
/>
|
|
22
|
+
</router-link>
|
|
15
23
|
<div
|
|
16
24
|
v-if="isPodcastmaker"
|
|
17
25
|
:class="mainRubrique ? 'mainRubrique' : 'notMainRubrique'"
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
params: { podcastId: podcast.podcastId },
|
|
12
12
|
}"
|
|
13
13
|
class="text-dark flex-grow-1 title-podcast-item basic-line-clamp three-line"
|
|
14
|
-
:
|
|
14
|
+
:title="$t('Episode name page', { name: podcast.title })"
|
|
15
15
|
>
|
|
16
16
|
{{ podcast.title }}
|
|
17
17
|
</router-link>
|
|
@@ -1,115 +1,130 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<section v-if="podcast" class="module-box">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
3
|
+
<RecordingItemButton
|
|
4
|
+
v-if="!!podcastConference && isLiveReadyToRecord && isOctopusAndAnimator"
|
|
5
|
+
:podcast="podcast"
|
|
6
|
+
:live="true"
|
|
7
|
+
:recording="podcastConference"
|
|
8
|
+
@delete-item="removeDeleted"
|
|
9
|
+
@validate-podcast="$emit('updatePodcast', $event)"
|
|
10
|
+
/>
|
|
11
|
+
<EditBox
|
|
12
|
+
v-else-if="editRight && isEditBox"
|
|
13
|
+
:podcast="podcast"
|
|
14
|
+
:display-studio-access="isDebriefing"
|
|
15
|
+
@validate-podcast="$emit('updatePodcast', $event)"
|
|
16
|
+
/>
|
|
17
|
+
<div class="mb-2 w-100">
|
|
18
|
+
<PodcastImage
|
|
19
|
+
:class="[
|
|
20
|
+
isLiveReadyToRecord &&
|
|
21
|
+
podcastConference &&
|
|
22
|
+
'null' !== podcastConference &&
|
|
23
|
+
podcastConference.status
|
|
24
|
+
? podcastConference.status.toLowerCase() + '-shadow'
|
|
25
|
+
: '',
|
|
26
|
+
]"
|
|
27
|
+
class="me-3"
|
|
28
|
+
:hide-play="isLiveReadyToRecord"
|
|
29
|
+
:podcast="podcast"
|
|
30
|
+
:playing-podcast="playingPodcast"
|
|
31
|
+
:fetch-conference="podcastConference"
|
|
32
|
+
:is-animator-live="isOctopusAndAnimator"
|
|
33
|
+
/>
|
|
34
|
+
<div class="d-flex justify-content-between flex-wrap mb-2">
|
|
35
|
+
<time
|
|
36
|
+
v-if="0 !== date.length" :class="!isLiveReady ? 'me-5' : ''"
|
|
37
|
+
:datetime="podcast.pubDate">
|
|
38
|
+
{{ date }}
|
|
39
|
+
</time>
|
|
40
|
+
<div v-if="isLiveReady" class="text-danger">
|
|
41
|
+
{{ $t("Episode record in live") }}
|
|
42
|
+
</div>
|
|
43
|
+
<div class="d-flex flex-column align-items-end flex-grow-1">
|
|
27
44
|
<time :datetime="durationIso">
|
|
28
45
|
{{ duration }}
|
|
29
46
|
</time>
|
|
30
|
-
<
|
|
31
|
-
{{ $t("Episode record in live") }}
|
|
32
|
-
</div>
|
|
47
|
+
<ShareAnonymous v-if="!editRight" :podcast="podcast" :organisation-id="podcast.organisation.id"/>
|
|
33
48
|
</div>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
49
|
+
</div>
|
|
50
|
+
<h2 class="mb-3">
|
|
51
|
+
{{ podcast.title }}
|
|
52
|
+
</h2>
|
|
53
|
+
<PodcastPlannedSpinner v-if="isPlannedInProcessor"/>
|
|
54
|
+
<Countdown v-if="isCounter" :time-remaining="timeRemaining" />
|
|
55
|
+
<!-- eslint-disable vue/no-v-html -->
|
|
56
|
+
<div
|
|
57
|
+
class="description-text html-wysiwyg-content"
|
|
58
|
+
v-html="urlify(podcast.description)"
|
|
59
|
+
/>
|
|
60
|
+
<!-- eslint-enable -->
|
|
61
|
+
<div class="my-3">
|
|
62
|
+
<div class="mb-1">
|
|
63
|
+
{{ $t("Emission") + " : " }}
|
|
64
|
+
<router-link
|
|
65
|
+
:to="{
|
|
66
|
+
name: 'emission',
|
|
67
|
+
params: { emissionId: podcast.emission.emissionId },
|
|
68
|
+
}"
|
|
69
|
+
:title="$t('Series name page', { name: podcast.emission.name })"
|
|
70
|
+
>
|
|
71
|
+
{{ podcast.emission.name }}
|
|
72
|
+
</router-link>
|
|
73
|
+
</div>
|
|
74
|
+
<ParticipantDescription :participants="podcast.animators" />
|
|
75
|
+
<ParticipantDescription
|
|
76
|
+
:participants="podcast.guests"
|
|
77
|
+
:is-guest="true"
|
|
43
78
|
/>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
:
|
|
50
|
-
|
|
51
|
-
params: { emissionId: podcast.emission.emissionId },
|
|
52
|
-
}"
|
|
53
|
-
:title="$t('Series name page', { name: podcast.emission.name })"
|
|
54
|
-
>
|
|
55
|
-
{{ podcast.emission.name }}
|
|
56
|
-
</router-link>
|
|
57
|
-
</div>
|
|
58
|
-
<ParticipantDescription :participants="podcast.animators" />
|
|
59
|
-
<ParticipantDescription
|
|
60
|
-
:participants="podcast.guests"
|
|
61
|
-
:is-guest="true"
|
|
62
|
-
/>
|
|
63
|
-
<div v-if="!isPodcastmaker" class="mb-1">
|
|
64
|
-
{{ $t("Producted by : ") }}
|
|
65
|
-
<router-link
|
|
66
|
-
:to="{
|
|
67
|
-
name: 'productor',
|
|
68
|
-
params: { productorId: podcast.organisation.id },
|
|
69
|
-
}"
|
|
70
|
-
>
|
|
71
|
-
{{ podcast.organisation.name }}
|
|
72
|
-
</router-link>
|
|
73
|
-
</div>
|
|
74
|
-
<div v-if="'' !== photoCredit" class="mb-1">
|
|
75
|
-
{{ $t("Photo credits") + " : " + photoCredit }}
|
|
76
|
-
</div>
|
|
77
|
-
<div v-if="'' !== audioCredit" class="mb-1">
|
|
78
|
-
{{ $t("Audio credits") + " : " + audioCredit }}
|
|
79
|
-
</div>
|
|
80
|
-
<div v-if="'' !== authorCredit" class="mb-1">
|
|
81
|
-
{{ $t("Author credits") + " : " + authorCredit }}
|
|
82
|
-
</div>
|
|
83
|
-
<a
|
|
84
|
-
v-if="podcast.article && !isGarRole"
|
|
85
|
-
class="btn d-flex align-items-center my-2 w-fit-content mb-1"
|
|
86
|
-
:href="podcast.article"
|
|
87
|
-
rel="noreferrer noopener"
|
|
88
|
-
target="_blank"
|
|
89
|
-
:title="$t('New window', {text : $t('See associated article')})"
|
|
79
|
+
<div v-if="!isPodcastmaker" class="mb-1">
|
|
80
|
+
{{ $t("Producted by : ") }}
|
|
81
|
+
<router-link
|
|
82
|
+
:to="{
|
|
83
|
+
name: 'productor',
|
|
84
|
+
params: { productorId: podcast.organisation.id },
|
|
85
|
+
}"
|
|
90
86
|
>
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
87
|
+
{{ podcast.organisation.name }}
|
|
88
|
+
</router-link>
|
|
89
|
+
</div>
|
|
90
|
+
<div v-if="'' !== photoCredit" class="mb-1">
|
|
91
|
+
{{ $t("Photo credits") + " : " + photoCredit }}
|
|
92
|
+
</div>
|
|
93
|
+
<div v-if="'' !== audioCredit" class="mb-1">
|
|
94
|
+
{{ $t("Audio credits") + " : " + audioCredit }}
|
|
95
|
+
</div>
|
|
96
|
+
<div v-if="'' !== authorCredit" class="mb-1">
|
|
97
|
+
{{ $t("Author credits") + " : " + authorCredit }}
|
|
98
|
+
</div>
|
|
99
|
+
<a
|
|
100
|
+
v-if="podcast.article && !isGarRole"
|
|
101
|
+
class="btn d-flex align-items-center my-2 w-fit-content mb-1"
|
|
102
|
+
:href="podcast.article"
|
|
103
|
+
rel="noreferrer noopener"
|
|
104
|
+
target="_blank"
|
|
105
|
+
:title="$t('New window', {text : $t('See associated article')})"
|
|
106
|
+
>
|
|
107
|
+
<NewspaperVariantOutlineIcon class="me-1" />
|
|
108
|
+
<div>{{ $t("See associated article") }}</div>
|
|
109
|
+
</a>
|
|
110
|
+
<PodcastPlayBar
|
|
111
|
+
v-if="isProgressBar"
|
|
112
|
+
:podcast="podcast"
|
|
113
|
+
/>
|
|
114
|
+
<div v-if="editRight && !isPodcastmaker">
|
|
115
|
+
<div
|
|
116
|
+
v-if="
|
|
117
|
+
podcast.annotations && 'RSS' === podcast.annotations.SOURCE_KIND
|
|
118
|
+
"
|
|
119
|
+
class="me-5 text-secondary"
|
|
120
|
+
>
|
|
121
|
+
{{ $t("From RSS") }}
|
|
112
122
|
</div>
|
|
123
|
+
<ErrorMessage v-if="'' !== errorMessage" :message="errorMessage" />
|
|
124
|
+
</div>
|
|
125
|
+
<div class="d-flex align-items-center flex-wrap">
|
|
126
|
+
<LikeSection :edit-right="editRight" :podcast="podcast" />
|
|
127
|
+
<DownloadPodcastButton v-if="isDownloadButton" :podcast="podcast" />
|
|
113
128
|
</div>
|
|
114
129
|
</div>
|
|
115
130
|
</div>
|
|
@@ -132,20 +147,6 @@
|
|
|
132
147
|
:window-width="1000"
|
|
133
148
|
:justify-center="false"
|
|
134
149
|
/>
|
|
135
|
-
<RecordingItemButton
|
|
136
|
-
v-if="!!podcastConference && isLiveReadyToRecord && isOctopusAndAnimator"
|
|
137
|
-
:podcast="podcast"
|
|
138
|
-
:live="true"
|
|
139
|
-
:recording="podcastConference"
|
|
140
|
-
@delete-item="removeDeleted"
|
|
141
|
-
@validate-podcast="$emit('updatePodcast', $event)"
|
|
142
|
-
/>
|
|
143
|
-
<EditBox
|
|
144
|
-
v-else-if="editRight && isEditBox"
|
|
145
|
-
:podcast="podcast"
|
|
146
|
-
:display-studio-access="isDebriefing"
|
|
147
|
-
@validate-podcast="$emit('updatePodcast', $event)"
|
|
148
|
-
/>
|
|
149
150
|
</section>
|
|
150
151
|
</template>
|
|
151
152
|
|
|
@@ -188,6 +189,7 @@ const PodcastPlannedSpinner = defineAsyncComponent(
|
|
|
188
189
|
);
|
|
189
190
|
const Countdown = defineAsyncComponent(() => import("../live/CountDown.vue"));
|
|
190
191
|
const TagList = defineAsyncComponent(() => import("./TagList.vue"));
|
|
192
|
+
const ShareAnonymous = defineAsyncComponent(() => import("../sharing/ShareAnonymous.vue"));
|
|
191
193
|
const PodcastRubriqueList = defineAsyncComponent(() => import("./PodcastRubriqueList.vue"));
|
|
192
194
|
import { mapState } from "pinia";
|
|
193
195
|
export default defineComponent({
|
|
@@ -207,7 +209,8 @@ export default defineComponent({
|
|
|
207
209
|
DownloadPodcastButton,
|
|
208
210
|
NewspaperVariantOutlineIcon,
|
|
209
211
|
PodcastPlannedSpinner,
|
|
210
|
-
PodcastRubriqueList
|
|
212
|
+
PodcastRubriqueList,
|
|
213
|
+
ShareAnonymous
|
|
211
214
|
},
|
|
212
215
|
|
|
213
216
|
props: {
|
|
@@ -80,15 +80,15 @@ export default defineComponent({
|
|
|
80
80
|
},
|
|
81
81
|
methods: {
|
|
82
82
|
getAccessibility(){
|
|
83
|
-
|
|
83
|
+
const fontSize = cookiesHelper.getCookie("octopus-font-size");
|
|
84
84
|
if (null !== fontSize) {
|
|
85
85
|
this.setCssProperty('--octopus-accessibility-font-size', fontSize);
|
|
86
86
|
}
|
|
87
|
-
|
|
87
|
+
const background = cookiesHelper.getCookie("octopus-background");
|
|
88
88
|
if (null !== background) {
|
|
89
89
|
this.setCssProperty('--octopus-accessibility-background', background);
|
|
90
90
|
}
|
|
91
|
-
|
|
91
|
+
const color = cookiesHelper.getCookie("octopus-color");
|
|
92
92
|
if (null !== color) {
|
|
93
93
|
this.setCssProperty('--octopus-accessibility-color', color);
|
|
94
94
|
}
|
|
@@ -212,25 +212,12 @@ export default defineComponent({
|
|
|
212
212
|
white-space: pre-wrap;
|
|
213
213
|
background: var(--octopus-accessibility-background);
|
|
214
214
|
color: var(--octopus-accessibility-color);
|
|
215
|
+
border: 2px solid var(--octopus-border-default);
|
|
216
|
+
border-radius: var(--octopus-border-radius);
|
|
215
217
|
|
|
216
218
|
.transcription-text {
|
|
217
219
|
overflow: hidden auto;
|
|
218
220
|
}
|
|
219
|
-
|
|
220
|
-
&::before {
|
|
221
|
-
content: "";
|
|
222
|
-
position: absolute;
|
|
223
|
-
inset: 0;
|
|
224
|
-
padding: 3px;
|
|
225
|
-
background: repeating-conic-gradient(
|
|
226
|
-
var(--octopus-secondary) 0 25%,
|
|
227
|
-
var(--octopus-primary) 0 50%
|
|
228
|
-
)
|
|
229
|
-
0 0/30px 30px round;
|
|
230
|
-
mask:linear-gradient(black 0 0) content-box, linear-gradient(black 0 0);
|
|
231
|
-
mask-composite: exclude;
|
|
232
|
-
pointer-events: none;
|
|
233
|
-
}
|
|
234
221
|
}
|
|
235
222
|
}
|
|
236
223
|
</style>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<ClassicModal
|
|
3
|
+
id-modal="player-anonymous-modal"
|
|
4
|
+
:title-modal="$t('Share the player')"
|
|
5
|
+
@close="closePopup"
|
|
6
|
+
>
|
|
7
|
+
<template #body>
|
|
8
|
+
<SharePlayer
|
|
9
|
+
:podcast="podcast"
|
|
10
|
+
:emission="emission"
|
|
11
|
+
:exclusive="exclusive"
|
|
12
|
+
:not-exclusive="notExclusive"
|
|
13
|
+
:organisation-id="authOrgaId"
|
|
14
|
+
/>
|
|
15
|
+
</template>
|
|
16
|
+
<template #footer>
|
|
17
|
+
<button class="btn btn-primary m-1" @click="closePopup">
|
|
18
|
+
{{ $t("Close") }}
|
|
19
|
+
</button>
|
|
20
|
+
</template>
|
|
21
|
+
</ClassicModal>
|
|
22
|
+
</template>
|
|
23
|
+
|
|
24
|
+
<script lang="ts">
|
|
25
|
+
import { Podcast } from "@/stores/class/general/podcast";
|
|
26
|
+
import ClassicModal from "../../misc/modal/ClassicModal.vue";
|
|
27
|
+
import SharePlayer from "./SharePlayer.vue";
|
|
28
|
+
import { useAuthStore } from "../../../stores/AuthStore";
|
|
29
|
+
import { defineComponent } from "vue";
|
|
30
|
+
import { Emission } from "@/stores/class/general/emission";
|
|
31
|
+
import { mapState } from "pinia";
|
|
32
|
+
export default defineComponent({
|
|
33
|
+
name: "PlayerAnonymousModal",
|
|
34
|
+
components: {
|
|
35
|
+
ClassicModal,
|
|
36
|
+
SharePlayer
|
|
37
|
+
},
|
|
38
|
+
props: {
|
|
39
|
+
podcast: { default: undefined, type: Object as () => Podcast },
|
|
40
|
+
emission: { default: undefined, type: Object as () => Emission },
|
|
41
|
+
exclusive: { default: false, type: Boolean },
|
|
42
|
+
notExclusive: { default: true, type: Boolean },
|
|
43
|
+
},
|
|
44
|
+
emits: ["close"],
|
|
45
|
+
computed:{
|
|
46
|
+
...mapState(useAuthStore, ["authOrgaId"]),
|
|
47
|
+
},
|
|
48
|
+
methods: {
|
|
49
|
+
closePopup(): void {
|
|
50
|
+
this.$emit("close");
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
</script>
|