@saooti/octopus-sdk 40.2.18 → 41.0.0-SNAPSHOT

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 (204) hide show
  1. package/package.json +38 -39
  2. package/src/App.vue +68 -88
  3. package/src/components/composable/player/usePlayerLive.ts +12 -3
  4. package/src/components/composable/player/usePlayerLogic.ts +6 -6
  5. package/src/components/composable/podcasts/usePodcastView.ts +3 -3
  6. package/src/components/composable/useInit.ts +2 -2
  7. package/src/components/composable/useMetaTitleWatch.ts +2 -2
  8. package/src/components/display/accessibility/AccessibilityModal.vue +56 -68
  9. package/src/components/display/categories/CategoryChooser.vue +142 -145
  10. package/src/components/display/categories/CategoryFilter.vue +172 -198
  11. package/src/components/display/categories/CategoryList.vue +122 -147
  12. package/src/components/display/comments/CommentInput.vue +100 -122
  13. package/src/components/display/comments/CommentList.vue +169 -191
  14. package/src/components/display/comments/CommentName.vue +35 -45
  15. package/src/components/display/comments/CommentParentInfo.vue +28 -34
  16. package/src/components/display/comments/CommentPlayer.vue +38 -50
  17. package/src/components/display/comments/CommentSection.vue +85 -103
  18. package/src/components/display/comments/item/CommentBasicView.vue +48 -61
  19. package/src/components/display/comments/item/CommentItem.vue +101 -116
  20. package/src/components/display/comments/item/CommentMoreActions.vue +174 -189
  21. package/src/components/display/comments/item/CommentMoreActionsAdmin.vue +1 -3
  22. package/src/components/display/comments/like/LikeButton.vue +36 -41
  23. package/src/components/display/comments/like/LikeSection.vue +128 -136
  24. package/src/components/display/comments/modal/CheckIdentityModal.vue +35 -40
  25. package/src/components/display/comments/modal/EditCommentModal.vue +72 -78
  26. package/src/components/display/comments/modal/RecaptchaModal.vue +58 -63
  27. package/src/components/display/comments/modal/ReportAbuseModal.vue +59 -66
  28. package/src/components/display/edit/EditBox.vue +6 -9
  29. package/src/components/display/edit/EditBoxRadio.vue +1 -5
  30. package/src/components/display/emission/EmissionInlineList.vue +82 -97
  31. package/src/components/display/emission/EmissionItem.vue +56 -69
  32. package/src/components/display/emission/EmissionList.vue +192 -218
  33. package/src/components/display/emission/EmissionPlayerItem.vue +48 -65
  34. package/src/components/display/emission/EmissionPresentationItem.vue +44 -54
  35. package/src/components/display/emission/EmissionPresentationList.vue +51 -61
  36. package/src/components/display/filter/AdvancedSearch.vue +154 -176
  37. package/src/components/display/filter/CategorySearchFilter.vue +43 -46
  38. package/src/components/display/filter/DateFilter.vue +76 -91
  39. package/src/components/display/filter/MonetizableFilter.vue +27 -30
  40. package/src/components/display/filter/ProductorSearch.vue +87 -90
  41. package/src/components/display/filter/RubriqueChoice.vue +58 -63
  42. package/src/components/display/filter/RubriqueFilter.vue +154 -169
  43. package/src/components/display/filter/SearchOrder.vue +35 -35
  44. package/src/components/display/list/ListPaginate.vue +80 -93
  45. package/src/components/display/list/PaginateParams.vue +36 -40
  46. package/src/components/display/list/PaginateSection.vue +113 -124
  47. package/src/components/display/list/SwiperList.vue +97 -109
  48. package/src/components/display/live/CountDown.vue +15 -9
  49. package/src/components/display/live/CountdownOctopus.vue +16 -10
  50. package/src/components/display/live/LiveHorizontalList.vue +95 -103
  51. package/src/components/display/live/LiveItem.vue +65 -73
  52. package/src/components/display/live/LiveList.vue +125 -137
  53. package/src/components/display/live/RadioCurrently.vue +66 -73
  54. package/src/components/display/live/RadioImage.vue +40 -51
  55. package/src/components/display/live/RadioItem.vue +9 -14
  56. package/src/components/display/live/RadioList.vue +39 -53
  57. package/src/components/display/live/RadioPlanning.vue +211 -223
  58. package/src/components/display/organisation/OrganisationChooser.vue +117 -123
  59. package/src/components/display/organisation/OrganisationChooserLight.vue +44 -52
  60. package/src/components/display/participant/ParticipantInlineList.vue +42 -58
  61. package/src/components/display/participant/ParticipantItem.vue +66 -74
  62. package/src/components/display/participant/ParticipantList.vue +119 -141
  63. package/src/components/display/playlist/PlaylistItem.vue +33 -46
  64. package/src/components/display/playlist/PlaylistList.vue +118 -144
  65. package/src/components/display/playlist/PodcastList.vue +79 -101
  66. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +58 -70
  67. package/src/components/display/podcastmaker/PodcastmakerHeader.vue +21 -22
  68. package/src/components/display/podcasts/AnimatorsItem.vue +15 -16
  69. package/src/components/display/podcasts/DownloadPodcastButton.vue +21 -29
  70. package/src/components/display/podcasts/ParticipantDescription.vue +22 -24
  71. package/src/components/display/podcasts/PodcastFilterList.vue +48 -53
  72. package/src/components/display/podcasts/PodcastImage.vue +96 -99
  73. package/src/components/display/podcasts/PodcastInlineList.vue +30 -28
  74. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +107 -114
  75. package/src/components/display/podcasts/PodcastIsPlaying.vue +4 -12
  76. package/src/components/display/podcasts/PodcastItem.vue +48 -63
  77. package/src/components/display/podcasts/PodcastItemInfo.vue +19 -35
  78. package/src/components/display/podcasts/PodcastList.vue +183 -206
  79. package/src/components/display/podcasts/PodcastModuleBox.vue +100 -137
  80. package/src/components/display/podcasts/PodcastPlannedSpinner.vue +4 -6
  81. package/src/components/display/podcasts/PodcastPlayBar.vue +50 -61
  82. package/src/components/display/podcasts/PodcastPlayBasicButton.vue +38 -41
  83. package/src/components/display/podcasts/PodcastPlayButton.vue +164 -175
  84. package/src/components/display/podcasts/PodcastRawTranscript.vue +69 -80
  85. package/src/components/display/podcasts/PodcastRubriqueList.vue +35 -38
  86. package/src/components/display/podcasts/PodcastSwiperList.vue +100 -110
  87. package/src/components/display/podcasts/TagList.vue +49 -51
  88. package/src/components/display/podcasts/VideoModuleBox.vue +13 -24
  89. package/src/components/display/rubriques/RubriqueChooser.vue +135 -140
  90. package/src/components/display/rubriques/RubriqueList.vue +140 -160
  91. package/src/components/display/sharing/ChooseEpisodesNumber.vue +34 -33
  92. package/src/components/display/sharing/FormatSwitch.vue +16 -11
  93. package/src/components/display/sharing/PlayerAnonymousModal.vue +24 -27
  94. package/src/components/display/sharing/PlayerCommonParameters.vue +20 -13
  95. package/src/components/display/sharing/PlayerParameters.vue +69 -71
  96. package/src/components/display/sharing/QrCode.vue +55 -67
  97. package/src/components/display/sharing/ShareAnonymous.vue +160 -178
  98. package/src/components/display/sharing/ShareDistribution.vue +103 -117
  99. package/src/components/display/sharing/ShareNewsletter.vue +154 -161
  100. package/src/components/display/sharing/SharePlayer.vue +273 -295
  101. package/src/components/display/sharing/SharePlayerColors.vue +25 -16
  102. package/src/components/display/sharing/SharePlayerRadio.vue +61 -69
  103. package/src/components/display/sharing/SharePlayerTypes.vue +176 -176
  104. package/src/components/display/sharing/ShareSocialsButtons.vue +63 -75
  105. package/src/components/display/sharing/SubscribeButtons.vue +185 -209
  106. package/src/components/display/studio/RecordingItemButton.vue +1 -4
  107. package/src/components/form/ClassicCheckbox.vue +26 -30
  108. package/src/components/form/ClassicContentEditable.vue +37 -33
  109. package/src/components/form/ClassicCopyButton.vue +40 -44
  110. package/src/components/form/ClassicDatePicker.vue +114 -114
  111. package/src/components/form/ClassicEmojiPicker.vue +20 -28
  112. package/src/components/form/ClassicInputText.vue +116 -120
  113. package/src/components/form/ClassicLoading.vue +7 -12
  114. package/src/components/form/ClassicMultiselect.vue +106 -116
  115. package/src/components/form/ClassicRadio.vue +21 -16
  116. package/src/components/form/ClassicRadioLabel.vue +23 -22
  117. package/src/components/form/ClassicSearch.vue +24 -19
  118. package/src/components/form/ClassicSelect.vue +47 -38
  119. package/src/components/form/ClassicWysiwyg.vue +116 -123
  120. package/src/components/icons/AmazonMusicIcon.vue +7 -10
  121. package/src/components/icons/ApplePodcastIcon.vue +7 -11
  122. package/src/components/icons/BlueSkyIcon.vue +8 -11
  123. package/src/components/icons/DeezerIcon.vue +8 -11
  124. package/src/components/icons/EditFtpIcon.vue +8 -11
  125. package/src/components/icons/IHeartIcon.vue +8 -11
  126. package/src/components/icons/PlayVideoIcon.vue +7 -10
  127. package/src/components/icons/PlayerFmIcon.vue +7 -10
  128. package/src/components/icons/PocketCastIcon.vue +8 -11
  129. package/src/components/icons/PodcastAddictIcon.vue +7 -10
  130. package/src/components/icons/RadiolineIcon.vue +8 -11
  131. package/src/components/icons/TuninIcon.vue +8 -11
  132. package/src/components/icons/XIcon.vue +7 -10
  133. package/src/components/misc/AcpmImage.vue +6 -7
  134. package/src/components/misc/ClassicAccordion.vue +27 -32
  135. package/src/components/misc/ClassicLazy.vue +86 -90
  136. package/src/components/misc/ClassicNav.vue +16 -20
  137. package/src/components/misc/ClassicPopover.vue +266 -282
  138. package/src/components/misc/ClassicSpinner.vue +5 -27
  139. package/src/components/misc/ErrorMessage.vue +11 -12
  140. package/src/components/misc/FooterGarSection.vue +33 -41
  141. package/src/components/misc/FooterSection.vue +109 -130
  142. package/src/components/misc/HomeDropdown.vue +85 -108
  143. package/src/components/misc/MobileMenu.vue +102 -113
  144. package/src/components/misc/ProgressBar.vue +53 -62
  145. package/src/components/misc/TopBar.vue +97 -120
  146. package/src/components/misc/TopBarMainContent.vue +116 -135
  147. package/src/components/misc/modal/ClassicModal.vue +40 -33
  148. package/src/components/misc/modal/ClassicModalInBody.vue +34 -28
  149. package/src/components/misc/modal/ClipboardModal.vue +27 -30
  150. package/src/components/misc/modal/ContractPreviewModal.vue +64 -62
  151. package/src/components/misc/modal/MessageModal.vue +50 -47
  152. package/src/components/misc/modal/NewsletterModal.vue +30 -31
  153. package/src/components/misc/modal/QrCodeModal.vue +21 -21
  154. package/src/components/misc/modal/ShareModalPlayer.vue +43 -52
  155. package/src/components/misc/player/PlayerCompact.vue +6 -4
  156. package/src/components/misc/player/PlayerComponent.vue +8 -9
  157. package/src/components/misc/player/PlayerLarge.vue +9 -8
  158. package/src/components/misc/player/ads/AdsProgressBar.vue +8 -11
  159. package/src/components/misc/player/ads/AdsSkipButton.vue +24 -30
  160. package/src/components/misc/player/chaptering/ChapteringModal.vue +44 -54
  161. package/src/components/misc/player/chaptering/PlayerChaptering.vue +50 -62
  162. package/src/components/misc/player/elements/PlayerImage.vue +51 -57
  163. package/src/components/misc/player/elements/PlayerPlayButton.vue +81 -92
  164. package/src/components/misc/player/elements/PlayerSpeedButton.vue +23 -27
  165. package/src/components/misc/player/elements/PlayerTitle.vue +85 -111
  166. package/src/components/misc/player/progressbar/PlayerProgressBar.vue +18 -29
  167. package/src/components/misc/player/progressbar/PodcastProgressBar.vue +45 -56
  168. package/src/components/misc/player/radio/RadioHistory.vue +80 -99
  169. package/src/components/misc/player/radio/RadioProgressBar.vue +43 -54
  170. package/src/components/misc/player/video/PlayerVideo.vue +27 -40
  171. package/src/components/misc/player/video/PlayerVideoDigiteka.vue +32 -37
  172. package/src/components/misc/player/video/PlayerVideoHls.vue +199 -198
  173. package/src/components/misc/player/video/PlayerYoutubeEmbed.vue +10 -12
  174. package/src/components/pages/CategoryPage.vue +28 -33
  175. package/src/components/pages/EmissionPage.vue +98 -131
  176. package/src/components/pages/EmissionsPage.vue +2 -0
  177. package/src/components/pages/Error403Page.vue +22 -21
  178. package/src/components/pages/HomePage.vue +91 -100
  179. package/src/components/pages/LivesPage.vue +35 -37
  180. package/src/components/pages/MapPage.vue +209 -241
  181. package/src/components/pages/PageLogout.vue +8 -11
  182. package/src/components/pages/PageNotFound.vue +9 -5
  183. package/src/components/pages/ParticipantPage.vue +83 -111
  184. package/src/components/pages/ParticipantsPage.vue +3 -0
  185. package/src/components/pages/PlaylistPage.vue +98 -116
  186. package/src/components/pages/PlaylistsPage.vue +9 -2
  187. package/src/components/pages/PodcastPage.vue +223 -238
  188. package/src/components/pages/PodcastsPage.vue +9 -2
  189. package/src/components/pages/RadioPage.vue +56 -70
  190. package/src/components/pages/RubriquePage.vue +7 -3
  191. package/src/components/pages/SearchPage.vue +31 -36
  192. package/src/components/pages/TagPage.vue +11 -9
  193. package/src/components/pages/VideoPage.vue +14 -11
  194. package/src/helper/displayHelper.ts +1 -1
  195. package/src/i18n.ts +2 -2
  196. package/src/main.ts +1 -1
  197. package/src/stores/class/general/player.ts +1 -0
  198. package/public/css/fonts/icomoon.eot +0 -0
  199. package/public/css/fonts/icomoon.svg +0 -113
  200. package/public/css/fonts/icomoon.ttf +0 -0
  201. package/public/css/fonts/icomoon.woff +0 -0
  202. package/public/css/fonts/icomoon.woff2 +0 -0
  203. package/public/css/fonts/style.css +0 -352
  204. package/sonarqube-scanner.js +0 -10
@@ -3,7 +3,7 @@
3
3
  <div class="d-flex flex-grow-1">
4
4
  <div class="d-flex flex-column flex-shrink-0 me-3">
5
5
  <h2 class="mb-3">
6
- {{ $t("Configure your Newsletter tile") }}
6
+ {{ t("Configure your Newsletter tile") }}
7
7
  </h2>
8
8
  <div
9
9
  v-for="colors in arrayColors"
@@ -32,186 +32,179 @@
32
32
  <!-- eslint-enable -->
33
33
  </div>
34
34
  <ClassicCopyButton
35
- :text="$t('Copy code')"
36
- :text-after-copy="$t('Code copied!')"
35
+ :text="t('Copy code')"
36
+ :text-after-copy="t('Code copied!')"
37
37
  :data-to-copy="newsletterHtml"
38
38
  />
39
- <div>{{ $t("And paste it in your newsletter") }}</div>
39
+ <div>{{ t("And paste it in your newsletter") }}</div>
40
40
  </div>
41
41
  </template>
42
42
 
43
- <script lang="ts">
43
+ <script setup lang="ts">
44
44
  import ClassicCopyButton from "../../form/ClassicCopyButton.vue";
45
45
  import { VSwatches } from "vue3-swatches";
46
46
  import "vue3-swatches/dist/style.css";
47
47
  import { Podcast } from "@/stores/class/general/podcast";
48
- import { defineComponent } from "vue";
48
+ import { computed, onBeforeMount, ref } from "vue";
49
49
  import { useSaveFetchStore } from "../../../stores/SaveFetchStore";
50
50
  import { useFilterStore } from "../../../stores/FilterStore";
51
51
  import { useAuthStore } from "../../../stores/AuthStore";
52
- import { mapState, mapActions } from "pinia";
53
52
  import { Emission } from "@/stores/class/general/emission";
54
53
  import { Playlist } from "@/stores/class/general/playlist";
55
- export default defineComponent({
56
- name: "SahreNewsletter",
54
+ import { useI18n } from "vue-i18n";
57
55
 
58
- components: {
59
- ClassicCopyButton,
60
- VSwatches,
61
- },
56
+ //Props
57
+ const props = defineProps({
58
+ podcast: { default: undefined, type: Object as () => Podcast },
59
+ emission: { default: undefined, type: Object as () => Emission },
60
+ playlist: { default: undefined, type: Object as () => Playlist },
61
+ })
62
+
63
+ const { t } = useI18n();
62
64
 
63
- props: {
64
- podcast: { default: undefined, type: Object as () => Podcast },
65
- emission: { default: undefined, type: Object as () => Emission },
66
- playlist: { default: undefined, type: Object as () => Playlist },
65
+ //Data
66
+ const shareUrl = ref(window.location.origin);
67
+ const arrayColors = ref([
68
+ {
69
+ color: "#40a372",
70
+ mainText: t("Choose main color"),
71
+ secondText: t("Newsletter elements"),
67
72
  },
73
+ { color: "#000000", mainText: t("Choose text color") },
74
+ { color: "#FFFFFF", mainText: t("Choose background color") },
75
+ ]);
68
76
 
69
- emits: ["close"],
77
+ //Composables
78
+ const filterStore = useFilterStore();
79
+ const authStore = useAuthStore();
80
+ const saveFetchStore = useSaveFetchStore();
70
81
 
71
- data() {
82
+
83
+ //Computed
84
+ const pathShare = computed(() => {
85
+ const orga = filterStore.filterOrgaId ? "?productor="+filterStore.filterOrgaId : "";
86
+ if(props.podcast){
87
+ return "/main/pub/podcast/"+ props.podcast.podcastId + orga
88
+ }
89
+ if(props.emission){
90
+ return "/main/pub/emission/"+ props.emission.emissionId + orga
91
+ }
92
+ if(props.playlist){
93
+ return "/main/pub/playlist/"+ props.playlist.playlistId + orga
94
+ }
95
+ return "";
96
+ });
97
+ const newsletterInfo = computed(() => {
98
+ if (props.podcast) {
72
99
  return {
73
- arrayColors: [
74
- {
75
- color: "#40a372",
76
- mainText: this.$t("Choose main color"),
77
- secondText: this.$t("Newsletter elements"),
78
- },
79
- { color: "#000000", mainText: this.$t("Choose text color") },
80
- { color: "#FFFFFF", mainText: this.$t("Choose background color") },
81
- ],
82
- shareUrl: window.location.origin,
100
+ imageUrl: `${props.podcast.imageUrl}" alt="${t(
101
+ "Episode name image",
102
+ { name: props.podcast.title },
103
+ )}`,
104
+ title: props.podcast.title,
105
+ description: props.podcast.description ?? "",
106
+ shareText: t("Listen this episode"),
107
+ emissionHtml: `<tr><td style="padding:5px 0;">
108
+ <div style="display:flex; margin-top:5px;">
109
+ <div style="font-size:16px; color:${
110
+ arrayColors.value[1].color
111
+ }; margin-right:5px;text-wrap: nowrap;">${t("Emission")} :</div>
112
+ <a href="${shareUrl.value+pathShare.value}" style="font-size: 16px;color: ${
113
+ arrayColors.value[0].color
114
+ };overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">${
115
+ props.podcast.emission.name
116
+ }</a>
117
+ </div></td></tr>`,
118
+ articleHtml:
119
+ !props.podcast?.article || 0 === props.podcast.article?.length
120
+ ? ``
121
+ : `<tr><td style="padding:5px 0;">
122
+ <div style="display:flex;">
123
+ <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24"><path fill="currentColor" d="M7 17h7v-2H7zm0-4h10v-2H7zm0-4h10V7H7zM5 21q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h14q.825 0 1.413.588T21 5v14q0 .825-.587 1.413T19 21zm0-2h14V5H5zM5 5v14z"/></svg>
124
+ <a href="${props.podcast.article}" style="color: ${
125
+ arrayColors.value[1].color
126
+ };margin-top:2px">${t("See associated article")}</a>
127
+ </div></td></tr>
128
+ `,
129
+ colorTitle: `color:${arrayColors.value[1].color};`,
83
130
  };
84
- },
85
- computed: {
86
- ...mapState(useFilterStore, ["filterOrgaId"]),
87
- ...mapState(useAuthStore, ["authOrgaId"]),
88
- pathShare(){
89
- const orga = this.filterOrgaId ? "?productor="+this.filterOrgaId : "";
90
- if(this.podcast){
91
- return "/main/pub/podcast/"+ this.podcast.podcastId + orga
92
- }
93
- if(this.emission){
94
- return "/main/pub/emission/"+ this.emission.emissionId + orga
95
- }
96
- if(this.playlist){
97
- return "/main/pub/playlist/"+ this.playlist.playlistId + orga
98
- }
99
- return "";
100
- },
101
- newsletterInfo() {
102
- if (this.podcast) {
103
- return {
104
- imageUrl: `${this.podcast.imageUrl}" alt="${this.$t(
105
- "Episode name image",
106
- { name: this.podcast.title },
107
- )}`,
108
- title: this.podcast.title,
109
- description: this.podcast.description ?? "",
110
- shareText: this.$t("Listen this episode"),
111
- emissionHtml: `<tr><td style="padding:5px 0;">
112
- <div style="display:flex; margin-top:5px;">
113
- <div style="font-size:16px; color:${
114
- this.arrayColors[1].color
115
- }; margin-right:5px;text-wrap: nowrap;">${this.$t("Emission")} :</div>
116
- <a href="${this.shareUrl+this.pathShare}" style="font-size: 16px;color: ${
117
- this.arrayColors[0].color
118
- };overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">${
119
- this.podcast.emission.name
120
- }</a>
121
- </div></td></tr>`,
122
- articleHtml:
123
- !this.podcast?.article || 0 === this.podcast.article?.length
124
- ? ``
125
- : `<tr><td style="padding:5px 0;">
126
- <div style="display:flex;">
127
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24"><path fill="currentColor" d="M7 17h7v-2H7zm0-4h10v-2H7zm0-4h10V7H7zM5 21q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h14q.825 0 1.413.588T21 5v14q0 .825-.587 1.413T19 21zm0-2h14V5H5zM5 5v14z"/></svg>
128
- <a href="${this.podcast.article}" style="color: ${
129
- this.arrayColors[1].color
130
- };margin-top:2px">${this.$t("See associated article")}</a>
131
- </div></td></tr>
132
- `,
133
- colorTitle: `color:${this.arrayColors[1].color};`,
134
- };
135
- }
136
- if (this.emission) {
137
- return {
138
- imageUrl: `${this.emission.imageUrl}" alt="${this.$t(
139
- "Emission image",
140
- )}`,
141
- title: this.emission.name,
142
- description: this.emission.description ?? "",
143
- shareText: this.$t("Listen to all episodes"),
144
- emissionHtml: ``,
145
- articleHtml: ``,
146
- colorTitle: `color:${this.arrayColors[0].color};`,
147
- };
148
- }
149
- return {
150
- imageUrl: `${this.playlist?.imageUrl}" alt="${this.$t(
151
- "Playlist image",
152
- )}`,
153
- title: this.playlist?.title,
154
- description: this.playlist?.description ?? "",
155
- shareText: this.$t("Listen to all episodes"),
156
- emissionHtml: ``,
157
- articleHtml: ``,
158
- colorTitle: `color:${this.arrayColors[0].color};`,
159
- };
160
- },
161
- newsletterHtml(): string {
162
- return `<table style="background:${this.arrayColors[2].color};color:${
163
- this.arrayColors[1].color
164
- };table-layout: fixed;width:100%;font-size: 14px;">
165
- <tr>
166
- <td valign="top" width="30%" rowspan="7" style="padding-right:5px;"><img width="100%" src="${
167
- this.newsletterInfo.imageUrl
168
- }" style="border-radius: 4px;"></td>
169
- <td valign="top" width="70%" style="padding:5px 0;"><div style="margin-top:5px;font-size: 20px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;font-weight:bold;${
170
- this.newsletterInfo.colorTitle
171
- }">${this.newsletterInfo.title}</div></td>
172
- </tr>${this.newsletterInfo.emissionHtml}
173
- <tr><td style="padding:5px 0;"><div style="overflow: hidden;display: -webkit-box;-webkit-line-clamp: 6;-webkit-box-orient: vertical;word-break: break-word;">${
174
- this.newsletterInfo.description
175
- }</div></td></tr>
176
- <tr><td valign="top" style="padding:5px 0;"><a href="${
177
- this.shareUrl+this.pathShare
178
- }" style="color: ${this.arrayColors[0].color};">${this.$t(
179
- "See more",
180
- )}</a></td></tr>
181
- <tr>${this.newsletterInfo.articleHtml}
182
- <td width="1" style="padding:5px 0;"><a href="${
183
- this.shareUrl+this.pathShare
184
- }" style="font-size: 18px;color: ${
185
- this.arrayColors[0].color
186
- };text-decoration: none; display:flex;"><svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 24 24"><path fill="currentColor" d="m9.5 16.5l7-4.5l-7-4.5zM12 22q-2.075 0-3.9-.788t-3.175-2.137q-1.35-1.35-2.137-3.175T2 12q0-2.075.788-3.9t2.137-3.175q1.35-1.35 3.175-2.137T12 2q2.075 0 3.9.788t3.175 2.137q1.35 1.35 2.138 3.175T22 12q0 2.075-.788 3.9t-2.137 3.175q-1.35 1.35-3.175 2.138T12 22"/></svg><div style="margin-top: 15px; color:${
187
- this.arrayColors[1].color
188
- };">${this.newsletterInfo.shareText}</div></a></td>
189
- </tr>
190
- </table>
191
- `;
192
- },
193
- },
194
- created() {
195
- this.initData();
196
- },
197
- methods: {
198
- ...mapActions(useSaveFetchStore, ["getOrgaAttributes"]),
199
- async initData(): Promise<void> {
200
- const orgaId = this.authOrgaId;
201
- if (!orgaId?.length) {
202
- return;
203
- }
204
- const attributes = await this.getOrgaAttributes(orgaId ?? "");
205
- if (
206
- Object.hasOwn(attributes, "podcastmakerUrl") &&
207
- (attributes.podcastmakerUrl as string | undefined | null)?.length
208
- ) {
209
- this.shareUrl = attributes.podcastmakerUrl?.toString() ?? window.location.origin;
210
- }
211
- if (Object.hasOwn(attributes, "COLOR")) {
212
- this.arrayColors[0].color = attributes.COLOR as string;
213
- }
214
- },
215
- },
131
+ }
132
+ if (props.emission) {
133
+ return {
134
+ imageUrl: `${props.emission.imageUrl}" alt="${t(
135
+ "Emission image",
136
+ )}`,
137
+ title: props.emission.name,
138
+ description: props.emission.description ?? "",
139
+ shareText: t("Listen to all episodes"),
140
+ emissionHtml: ``,
141
+ articleHtml: ``,
142
+ colorTitle: `color:${arrayColors.value[0].color};`,
143
+ };
144
+ }
145
+ return {
146
+ imageUrl: `${props.playlist?.imageUrl}" alt="${t(
147
+ "Playlist image",
148
+ )}`,
149
+ title: props.playlist?.title,
150
+ description: props.playlist?.description ?? "",
151
+ shareText: t("Listen to all episodes"),
152
+ emissionHtml: ``,
153
+ articleHtml: ``,
154
+ colorTitle: `color:${arrayColors.value[0].color};`,
155
+ };
156
+ });
157
+ const newsletterHtml = computed(() => {
158
+ return `<table style="background:${arrayColors.value[2].color};color:${
159
+ arrayColors.value[1].color
160
+ };table-layout: fixed;width:100%;font-size: 14px;">
161
+ <tr>
162
+ <td valign="top" width="30%" rowspan="7" style="padding-right:5px;"><img width="100%" src="${
163
+ newsletterInfo.value.imageUrl
164
+ }" style="border-radius: 4px;"></td>
165
+ <td valign="top" width="70%" style="padding:5px 0;"><div style="margin-top:5px;font-size: 20px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;font-weight:bold;${
166
+ newsletterInfo.value.colorTitle
167
+ }">${newsletterInfo.value.title}</div></td>
168
+ </tr>${newsletterInfo.value.emissionHtml}
169
+ <tr><td style="padding:5px 0;"><div style="overflow: hidden;display: -webkit-box;-webkit-line-clamp: 6;-webkit-box-orient: vertical;word-break: break-word;">${
170
+ newsletterInfo.value.description
171
+ }</div></td></tr>
172
+ <tr><td valign="top" style="padding:5px 0;"><a href="${
173
+ shareUrl.value+pathShare.value
174
+ }" style="color: ${arrayColors.value[0].color};">${t(
175
+ "See more",
176
+ )}</a></td></tr>
177
+ <tr>${newsletterInfo.value.articleHtml}
178
+ <td width="1" style="padding:5px 0;"><a href="${
179
+ shareUrl.value+pathShare.value
180
+ }" style="font-size: 18px;color: ${
181
+ arrayColors.value[0].color
182
+ };text-decoration: none; display:flex;"><svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 24 24"><path fill="currentColor" d="m9.5 16.5l7-4.5l-7-4.5zM12 22q-2.075 0-3.9-.788t-3.175-2.137q-1.35-1.35-2.137-3.175T2 12q0-2.075.788-3.9t2.137-3.175q1.35-1.35 3.175-2.137T12 2q2.075 0 3.9.788t3.175 2.137q1.35 1.35 2.138 3.175T22 12q0 2.075-.788 3.9t-2.137 3.175q-1.35 1.35-3.175 2.138T12 22"/></svg><div style="margin-top: 15px; color:${
183
+ arrayColors.value[1].color
184
+ };">${newsletterInfo.value.shareText}</div></a></td>
185
+ </tr>
186
+ </table>
187
+ `;
216
188
  });
189
+
190
+
191
+ onBeforeMount(()=>initData())
192
+
193
+ //Methods
194
+ async function initData(): Promise<void> {
195
+ const orgaId = authStore.authOrgaId;
196
+ if (!orgaId?.length) {
197
+ return;
198
+ }
199
+ const attributes = await saveFetchStore.getOrgaAttributes(orgaId ?? "");
200
+ if (
201
+ Object.hasOwn(attributes, "podcastmakerUrl") &&
202
+ (attributes.podcastmakerUrl as string | undefined | null)?.length
203
+ ) {
204
+ shareUrl.value = attributes.podcastmakerUrl?.toString() ?? window.location.origin;
205
+ }
206
+ if (Object.hasOwn(attributes, "COLOR")) {
207
+ arrayColors.value[0].color = attributes.COLOR as string;
208
+ }
209
+ }
217
210
  </script>