@saooti/octopus-sdk 40.2.19 → 41.0.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.
Files changed (214) hide show
  1. package/index.ts +2 -1
  2. package/package.json +4 -3
  3. package/src/App.vue +71 -95
  4. package/src/components/composable/player/usePlayerLive.ts +13 -4
  5. package/src/components/composable/player/usePlayerLogic.ts +6 -6
  6. package/src/components/composable/player/usePlayerVast.ts +7 -7
  7. package/src/components/composable/podcasts/usePodcastView.ts +3 -3
  8. package/src/components/composable/route/useAdvancedParamInit.ts +1 -1
  9. package/src/components/composable/route/useRouteUpdateParams.ts +4 -4
  10. package/src/components/composable/route/useSimplePageParam.ts +15 -8
  11. package/src/components/composable/useInit.ts +2 -2
  12. package/src/components/composable/useMetaTitleWatch.ts +2 -2
  13. package/src/components/display/accessibility/AccessibilityModal.vue +56 -68
  14. package/src/components/display/categories/CategoryChooser.vue +144 -145
  15. package/src/components/display/categories/CategoryFilter.vue +172 -198
  16. package/src/components/display/categories/CategoryList.vue +122 -147
  17. package/src/components/display/comments/CommentInput.vue +100 -122
  18. package/src/components/display/comments/CommentList.vue +169 -191
  19. package/src/components/display/comments/CommentName.vue +35 -45
  20. package/src/components/display/comments/CommentParentInfo.vue +28 -34
  21. package/src/components/display/comments/CommentPlayer.vue +38 -50
  22. package/src/components/display/comments/CommentSection.vue +85 -103
  23. package/src/components/display/comments/item/CommentBasicView.vue +48 -61
  24. package/src/components/display/comments/item/CommentItem.vue +104 -115
  25. package/src/components/display/comments/item/CommentMoreActions.vue +174 -189
  26. package/src/components/display/comments/item/CommentMoreActionsAdmin.vue +1 -3
  27. package/src/components/display/comments/like/LikeButton.vue +36 -41
  28. package/src/components/display/comments/like/LikeSection.vue +128 -136
  29. package/src/components/display/comments/modal/CheckIdentityModal.vue +35 -40
  30. package/src/components/display/comments/modal/EditCommentModal.vue +72 -78
  31. package/src/components/display/comments/modal/RecaptchaModal.vue +58 -63
  32. package/src/components/display/comments/modal/ReportAbuseModal.vue +59 -66
  33. package/src/components/display/edit/EditBox.vue +9 -8
  34. package/src/components/display/edit/EditBoxRadio.vue +1 -5
  35. package/src/components/display/emission/EmissionInlineList.vue +82 -97
  36. package/src/components/display/emission/EmissionItem.vue +57 -69
  37. package/src/components/display/emission/EmissionList.vue +189 -218
  38. package/src/components/display/emission/EmissionPlayerItem.vue +47 -64
  39. package/src/components/display/emission/EmissionPresentationItem.vue +44 -54
  40. package/src/components/display/emission/EmissionPresentationList.vue +51 -61
  41. package/src/components/display/filter/AdvancedSearch.vue +151 -176
  42. package/src/components/display/filter/CategorySearchFilter.vue +43 -46
  43. package/src/components/display/filter/DateFilter.vue +76 -91
  44. package/src/components/display/filter/MonetizableFilter.vue +27 -30
  45. package/src/components/display/filter/ProductorSearch.vue +87 -90
  46. package/src/components/display/filter/RubriqueChoice.vue +58 -63
  47. package/src/components/display/filter/RubriqueFilter.vue +154 -169
  48. package/src/components/display/filter/SearchOrder.vue +35 -35
  49. package/src/components/display/list/ListPaginate.vue +72 -93
  50. package/src/components/display/list/PaginateParams.vue +36 -40
  51. package/src/components/display/list/PaginateSection.vue +113 -124
  52. package/src/components/display/list/SwiperList.vue +97 -109
  53. package/src/components/display/live/CountDown.vue +15 -9
  54. package/src/components/display/live/CountdownOctopus.vue +16 -10
  55. package/src/components/display/live/LiveHorizontalList.vue +95 -103
  56. package/src/components/display/live/LiveItem.vue +64 -73
  57. package/src/components/display/live/LiveList.vue +125 -137
  58. package/src/components/display/live/RadioCurrently.vue +66 -73
  59. package/src/components/display/live/RadioImage.vue +39 -50
  60. package/src/components/display/live/RadioItem.vue +9 -14
  61. package/src/components/display/live/RadioList.vue +39 -53
  62. package/src/components/display/live/RadioPlanning.vue +210 -222
  63. package/src/components/display/organisation/OrganisationChooser.vue +116 -122
  64. package/src/components/display/organisation/OrganisationChooserLight.vue +44 -52
  65. package/src/components/display/participant/ParticipantInlineList.vue +42 -58
  66. package/src/components/display/participant/ParticipantItem.vue +66 -74
  67. package/src/components/display/participant/ParticipantList.vue +116 -141
  68. package/src/components/display/playlist/PlaylistItem.vue +33 -46
  69. package/src/components/display/playlist/PlaylistList.vue +115 -144
  70. package/src/components/display/playlist/PodcastList.vue +90 -103
  71. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +58 -70
  72. package/src/components/display/podcastmaker/PodcastmakerHeader.vue +21 -22
  73. package/src/components/display/podcasts/AnimatorsItem.vue +15 -16
  74. package/src/components/display/podcasts/DownloadPodcastButton.vue +21 -29
  75. package/src/components/display/podcasts/ParticipantDescription.vue +22 -24
  76. package/src/components/display/podcasts/PodcastFilterList.vue +62 -56
  77. package/src/components/display/podcasts/PodcastImage.vue +96 -99
  78. package/src/components/display/podcasts/PodcastInlineList.vue +30 -28
  79. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +107 -114
  80. package/src/components/display/podcasts/PodcastIsPlaying.vue +4 -12
  81. package/src/components/display/podcasts/PodcastItem.vue +48 -63
  82. package/src/components/display/podcasts/PodcastItemInfo.vue +19 -35
  83. package/src/components/display/podcasts/PodcastList.vue +182 -206
  84. package/src/components/display/podcasts/PodcastModuleBox.vue +100 -137
  85. package/src/components/display/podcasts/PodcastPlannedSpinner.vue +4 -6
  86. package/src/components/display/podcasts/PodcastPlayBar.vue +50 -61
  87. package/src/components/display/podcasts/PodcastPlayBasicButton.vue +38 -41
  88. package/src/components/display/podcasts/PodcastPlayButton.vue +164 -175
  89. package/src/components/display/podcasts/PodcastRawTranscript.vue +69 -80
  90. package/src/components/display/podcasts/PodcastRubriqueList.vue +35 -38
  91. package/src/components/display/podcasts/PodcastSwiperList.vue +100 -110
  92. package/src/components/display/podcasts/TagList.vue +48 -50
  93. package/src/components/display/podcasts/VideoModuleBox.vue +13 -24
  94. package/src/components/display/rubriques/RubriqueChooser.vue +135 -140
  95. package/src/components/display/rubriques/RubriqueList.vue +140 -160
  96. package/src/components/display/sharing/ChooseEpisodesNumber.vue +34 -33
  97. package/src/components/display/sharing/FormatSwitch.vue +16 -11
  98. package/src/components/display/sharing/PlayerAnonymousModal.vue +24 -27
  99. package/src/components/display/sharing/PlayerCommonParameters.vue +20 -13
  100. package/src/components/display/sharing/PlayerParameters.vue +69 -71
  101. package/src/components/display/sharing/QrCode.vue +55 -67
  102. package/src/components/display/sharing/ShareAnonymous.vue +160 -178
  103. package/src/components/display/sharing/ShareDistribution.vue +103 -117
  104. package/src/components/display/sharing/ShareNewsletter.vue +154 -161
  105. package/src/components/display/sharing/SharePlayer.vue +273 -295
  106. package/src/components/display/sharing/SharePlayerColors.vue +25 -16
  107. package/src/components/display/sharing/SharePlayerRadio.vue +61 -69
  108. package/src/components/display/sharing/SharePlayerTypes.vue +176 -176
  109. package/src/components/display/sharing/ShareSocialsButtons.vue +63 -75
  110. package/src/components/display/sharing/SubscribeButtons.vue +184 -207
  111. package/src/components/display/studio/RecordingItemButton.vue +1 -4
  112. package/src/components/form/ClassicCheckbox.vue +26 -30
  113. package/src/components/form/ClassicContentEditable.vue +37 -33
  114. package/src/components/form/ClassicCopyButton.vue +40 -44
  115. package/src/components/form/ClassicDatePicker.vue +114 -114
  116. package/src/components/form/ClassicEmojiPicker.vue +20 -28
  117. package/src/components/form/ClassicInputText.vue +116 -120
  118. package/src/components/form/ClassicLoading.vue +7 -12
  119. package/src/components/form/ClassicMultiselect.vue +115 -117
  120. package/src/components/form/ClassicRadio.vue +21 -16
  121. package/src/components/form/ClassicRadioLabel.vue +23 -22
  122. package/src/components/form/ClassicSearch.vue +24 -19
  123. package/src/components/form/ClassicSelect.vue +47 -38
  124. package/src/components/form/ClassicWysiwyg.vue +116 -123
  125. package/src/components/icons/AmazonMusicIcon.vue +7 -10
  126. package/src/components/icons/ApplePodcastIcon.vue +7 -11
  127. package/src/components/icons/BlueSkyIcon.vue +8 -11
  128. package/src/components/icons/DeezerIcon.vue +8 -11
  129. package/src/components/icons/EditFtpIcon.vue +8 -11
  130. package/src/components/icons/IHeartIcon.vue +8 -11
  131. package/src/components/icons/PlayVideoIcon.vue +7 -10
  132. package/src/components/icons/PlayerFmIcon.vue +7 -10
  133. package/src/components/icons/PocketCastIcon.vue +8 -11
  134. package/src/components/icons/PodcastAddictIcon.vue +7 -10
  135. package/src/components/icons/RadiolineIcon.vue +8 -11
  136. package/src/components/icons/TuninIcon.vue +8 -11
  137. package/src/components/icons/XIcon.vue +7 -10
  138. package/src/components/misc/AcpmImage.vue +6 -7
  139. package/src/components/misc/ClassicAccordion.vue +26 -31
  140. package/src/components/misc/ClassicLazy.vue +86 -90
  141. package/src/components/misc/ClassicNav.vue +16 -20
  142. package/src/components/misc/ClassicPopover.vue +271 -282
  143. package/src/components/misc/ClassicSpinner.vue +5 -27
  144. package/src/components/misc/ErrorMessage.vue +11 -12
  145. package/src/components/misc/FooterGarSection.vue +33 -41
  146. package/src/components/misc/FooterSection.vue +94 -131
  147. package/src/components/misc/HomeDropdown.vue +83 -105
  148. package/src/components/misc/MobileMenu.vue +101 -111
  149. package/src/components/misc/ProgressBar.vue +53 -62
  150. package/src/components/misc/TopBar.vue +98 -120
  151. package/src/components/misc/TopBarMainContent.vue +114 -133
  152. package/src/components/misc/modal/ClassicModal.vue +40 -33
  153. package/src/components/misc/modal/ClassicModalInBody.vue +34 -28
  154. package/src/components/misc/modal/ClipboardModal.vue +27 -30
  155. package/src/components/misc/modal/ContractPreviewModal.vue +64 -62
  156. package/src/components/misc/modal/MessageModal.vue +50 -47
  157. package/src/components/misc/modal/NewsletterModal.vue +30 -31
  158. package/src/components/misc/modal/QrCodeModal.vue +21 -21
  159. package/src/components/misc/modal/ShareModalPlayer.vue +43 -52
  160. package/src/components/misc/player/PlayerCompact.vue +6 -4
  161. package/src/components/misc/player/PlayerComponent.vue +8 -9
  162. package/src/components/misc/player/PlayerLarge.vue +9 -8
  163. package/src/components/misc/player/ads/AdsProgressBar.vue +8 -11
  164. package/src/components/misc/player/ads/AdsSkipButton.vue +24 -30
  165. package/src/components/misc/player/chaptering/ChapteringModal.vue +44 -54
  166. package/src/components/misc/player/chaptering/PlayerChaptering.vue +50 -62
  167. package/src/components/misc/player/elements/PlayerImage.vue +51 -57
  168. package/src/components/misc/player/elements/PlayerPlayButton.vue +81 -92
  169. package/src/components/misc/player/elements/PlayerSpeedButton.vue +23 -27
  170. package/src/components/misc/player/elements/PlayerTitle.vue +85 -111
  171. package/src/components/misc/player/progressbar/PlayerProgressBar.vue +18 -29
  172. package/src/components/misc/player/progressbar/PodcastProgressBar.vue +45 -56
  173. package/src/components/misc/player/radio/RadioHistory.vue +80 -99
  174. package/src/components/misc/player/radio/RadioProgressBar.vue +43 -54
  175. package/src/components/misc/player/video/PlayerVideo.vue +27 -40
  176. package/src/components/misc/player/video/PlayerVideoDigiteka.vue +32 -37
  177. package/src/components/misc/player/video/PlayerVideoHls.vue +199 -198
  178. package/src/components/misc/player/video/PlayerYoutubeEmbed.vue +10 -12
  179. package/src/components/pages/CategoryPage.vue +28 -33
  180. package/src/components/pages/EmissionPage.vue +113 -132
  181. package/src/components/pages/EmissionsPage.vue +2 -0
  182. package/src/components/pages/Error403Page.vue +21 -20
  183. package/src/components/pages/HomePage.vue +91 -100
  184. package/src/components/pages/LivesPage.vue +35 -37
  185. package/src/components/pages/MapPage.vue +209 -241
  186. package/src/components/pages/PageLogout.vue +8 -11
  187. package/src/components/pages/PageNotFound.vue +9 -5
  188. package/src/components/pages/ParticipantPage.vue +96 -110
  189. package/src/components/pages/ParticipantsPage.vue +3 -0
  190. package/src/components/pages/PlaylistPage.vue +112 -117
  191. package/src/components/pages/PlaylistsPage.vue +9 -2
  192. package/src/components/pages/PodcastPage.vue +224 -238
  193. package/src/components/pages/PodcastsPage.vue +9 -2
  194. package/src/components/pages/RadioPage.vue +56 -70
  195. package/src/components/pages/RubriquePage.vue +7 -3
  196. package/src/components/pages/SearchPage.vue +31 -36
  197. package/src/components/pages/TagPage.vue +11 -9
  198. package/src/components/pages/VideoPage.vue +14 -11
  199. package/src/helper/displayHelper.ts +1 -1
  200. package/src/helper/loadScript.ts +4 -4
  201. package/src/i18n.ts +2 -2
  202. package/src/main.ts +1 -1
  203. package/src/router/router.ts +17 -4
  204. package/src/stores/AuthStore.ts +12 -12
  205. package/src/stores/FilterStore.ts +1 -1
  206. package/src/stores/VastStore.ts +2 -2
  207. package/src/stores/class/general/player.ts +1 -0
  208. package/public/css/fonts/icomoon.eot +0 -0
  209. package/public/css/fonts/icomoon.svg +0 -113
  210. package/public/css/fonts/icomoon.ttf +0 -0
  211. package/public/css/fonts/icomoon.woff +0 -0
  212. package/public/css/fonts/icomoon.woff2 +0 -0
  213. package/public/css/fonts/style.css +0 -352
  214. 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>