@saooti/octopus-sdk 37.0.6 → 37.0.7

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 (235) hide show
  1. package/README.md +2 -2
  2. package/index.ts +21 -21
  3. package/package.json +26 -20
  4. package/src/App.vue +69 -60
  5. package/src/api/classicCrud.ts +12 -12
  6. package/src/api/initialize.ts +1 -1
  7. package/src/components/display/aggregator/RssSection.vue +3 -3
  8. package/src/components/display/categories/CategoryChooser.vue +73 -60
  9. package/src/components/display/categories/CategoryFilter.vue +134 -90
  10. package/src/components/display/categories/CategoryList.vue +76 -62
  11. package/src/components/display/comments/AddCommentModal.vue +44 -44
  12. package/src/components/display/comments/CommentBasicView.vue +38 -30
  13. package/src/components/display/comments/CommentInput.vue +121 -106
  14. package/src/components/display/comments/CommentItem.vue +144 -102
  15. package/src/components/display/comments/CommentList.vue +117 -85
  16. package/src/components/display/comments/CommentParentInfo.vue +18 -15
  17. package/src/components/display/comments/CommentPlayer.vue +39 -41
  18. package/src/components/display/comments/CommentSection.vue +68 -53
  19. package/src/components/display/edit/EditBox.vue +7 -7
  20. package/src/components/display/edit/EditBoxRadio.vue +3 -4
  21. package/src/components/display/edit/EditCommentBox.vue +34 -36
  22. package/src/components/display/emission/EmissionInlineList.vue +75 -63
  23. package/src/components/display/emission/EmissionItem.vue +47 -35
  24. package/src/components/display/emission/EmissionList.vue +111 -83
  25. package/src/components/display/emission/EmissionPlayerItem.vue +89 -89
  26. package/src/components/display/filter/AdvancedSearch.vue +81 -73
  27. package/src/components/display/filter/CategorySearchFilter.vue +27 -25
  28. package/src/components/display/filter/DateFilter.vue +38 -38
  29. package/src/components/display/filter/MonetizableFilter.vue +16 -14
  30. package/src/components/display/filter/ProductorSearch.vue +55 -47
  31. package/src/components/display/filter/RubriqueChoice.vue +42 -27
  32. package/src/components/display/filter/RubriqueFilter.vue +130 -85
  33. package/src/components/display/filter/SearchOrder.vue +16 -11
  34. package/src/components/display/list/ListPaginate.vue +72 -70
  35. package/src/components/display/list/PaginateParams.vue +29 -30
  36. package/src/components/display/list/PaginateSection.vue +210 -0
  37. package/src/components/display/list/SwiperList.vue +28 -32
  38. package/src/components/display/live/CountDown.vue +12 -14
  39. package/src/components/display/live/LiveHorizontalList.vue +60 -50
  40. package/src/components/display/live/LiveItem.vue +42 -26
  41. package/src/components/display/live/LiveList.vue +92 -65
  42. package/src/components/display/live/RadioCurrently.vue +47 -42
  43. package/src/components/display/live/RadioImage.vue +40 -42
  44. package/src/components/display/live/RadioItem.vue +15 -22
  45. package/src/components/display/live/RadioList.vue +24 -21
  46. package/src/components/display/live/RadioPlanning.vue +105 -68
  47. package/src/components/display/organisation/OrganisationChooser.vue +58 -42
  48. package/src/components/display/organisation/OrganisationChooserLight.vue +27 -19
  49. package/src/components/display/participant/ParticipantItem.vue +89 -77
  50. package/src/components/display/participant/ParticipantList.vue +90 -60
  51. package/src/components/display/playlist/PlaylistItem.vue +32 -35
  52. package/src/components/display/playlist/PlaylistList.vue +70 -52
  53. package/src/components/display/playlist/PodcastList.vue +61 -50
  54. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +47 -38
  55. package/src/components/display/podcasts/AnimatorsItem.vue +17 -15
  56. package/src/components/display/podcasts/ParticipantDescription.vue +21 -22
  57. package/src/components/display/podcasts/PodcastFilterList.vue +28 -26
  58. package/src/components/display/podcasts/PodcastImage.vue +129 -135
  59. package/src/components/display/podcasts/PodcastInlineList.vue +33 -29
  60. package/src/components/display/podcasts/PodcastInlineListClassic.vue +91 -71
  61. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +94 -85
  62. package/src/components/display/podcasts/PodcastItem.vue +96 -90
  63. package/src/components/display/podcasts/PodcastItemInfo.vue +61 -65
  64. package/src/components/display/podcasts/PodcastList.vue +115 -84
  65. package/src/components/display/podcasts/PodcastModuleBox.vue +95 -104
  66. package/src/components/display/podcasts/PodcastPlayBar.vue +45 -32
  67. package/src/components/display/podcasts/PodcastSwiperList.vue +65 -55
  68. package/src/components/display/podcasts/TagList.vue +33 -37
  69. package/src/components/display/rubriques/RubriqueChooser.vue +70 -51
  70. package/src/components/display/rubriques/RubriqueList.vue +117 -89
  71. package/src/components/display/sharing/PlayerParameters.vue +45 -42
  72. package/src/components/display/sharing/QrCode.vue +52 -46
  73. package/src/components/display/sharing/ShareButtons.vue +18 -18
  74. package/src/components/display/sharing/ShareButtonsIntern.vue +100 -78
  75. package/src/components/display/sharing/ShareDistribution.vue +101 -67
  76. package/src/components/display/sharing/SharePlayer.vue +207 -127
  77. package/src/components/display/sharing/SharePlayerColors.vue +15 -15
  78. package/src/components/display/sharing/SharePlayerRadio.vue +62 -39
  79. package/src/components/display/sharing/SharePlayerTypes.vue +93 -55
  80. package/src/components/display/sharing/SubscribeButtons.vue +83 -32
  81. package/src/components/display/studio/RecordingItemButton.vue +3 -3
  82. package/src/components/form/ClassicCheckbox.vue +32 -31
  83. package/src/components/form/ClassicDatePicker.vue +47 -49
  84. package/src/components/form/ClassicInputText.vue +99 -98
  85. package/src/components/form/ClassicLoading.vue +11 -14
  86. package/src/components/form/ClassicMultiselect.vue +125 -126
  87. package/src/components/form/ClassicRadio.vue +15 -18
  88. package/src/components/form/ClassicSearch.vue +17 -23
  89. package/src/components/form/ClassicSelect.vue +35 -27
  90. package/src/components/form/{Wysiwyg.vue → ClassicWysiwyg.vue} +94 -109
  91. package/src/components/misc/AcpmImage.vue +6 -6
  92. package/src/components/misc/ClassicAccordion.vue +69 -0
  93. package/src/components/misc/ClassicNav.vue +117 -0
  94. package/src/components/misc/ClassicPopover.vue +212 -0
  95. package/src/components/misc/{Spinner.vue → ClassicSpinner.vue} +14 -15
  96. package/src/components/misc/ErrorMessage.vue +9 -17
  97. package/src/components/misc/FooterSection.vue +198 -0
  98. package/src/components/misc/HomeDropdown.vue +60 -60
  99. package/src/components/misc/LeftMenu.vue +115 -79
  100. package/src/components/misc/ProgressBar.vue +36 -32
  101. package/src/components/misc/SnackBar.vue +169 -0
  102. package/src/components/misc/TopBar.vue +161 -115
  103. package/src/components/misc/modal/ClassicModal.vue +99 -103
  104. package/src/components/misc/modal/ClipboardModal.vue +21 -23
  105. package/src/components/misc/modal/MessageModal.vue +22 -28
  106. package/src/components/misc/modal/NewsletterModal.vue +139 -113
  107. package/src/components/misc/modal/QrCodeModal.vue +14 -17
  108. package/src/components/misc/modal/ShareModalPlayer.vue +44 -60
  109. package/src/components/misc/player/PlayerCompact.vue +47 -62
  110. package/src/components/misc/player/{Player.vue → PlayerComponent.vue} +54 -46
  111. package/src/components/misc/player/PlayerLarge.vue +62 -61
  112. package/src/components/misc/player/PlayerProgressBar.vue +40 -30
  113. package/src/components/misc/player/PlayerTimeline.vue +32 -36
  114. package/src/components/misc/player/radio/RadioHistory.vue +62 -59
  115. package/src/components/misc/player/radio/RadioProgressBar.vue +44 -35
  116. package/src/components/mixins/cookies.ts +11 -10
  117. package/src/components/mixins/displayMethods.ts +5 -4
  118. package/src/components/mixins/handle403.ts +9 -9
  119. package/src/components/mixins/imageProxy.ts +14 -7
  120. package/src/components/mixins/init.ts +31 -16
  121. package/src/components/mixins/orgaComputed.ts +7 -7
  122. package/src/components/mixins/organisationFilter.ts +36 -22
  123. package/src/components/mixins/player/playerComment.ts +46 -37
  124. package/src/components/mixins/player/playerDisplay.ts +122 -87
  125. package/src/components/mixins/player/playerLive.ts +65 -43
  126. package/src/components/mixins/player/playerLogic.ts +133 -88
  127. package/src/components/mixins/player/playerTranscript.ts +48 -30
  128. package/src/components/mixins/radio/fetchRadioData.ts +40 -23
  129. package/src/components/mixins/selenium.ts +2 -2
  130. package/src/components/mixins/tagOfMixins.ts +11 -11
  131. package/src/components/pages/CategoryPage.vue +43 -0
  132. package/src/components/pages/{Emission.vue → EmissionPage.vue} +98 -67
  133. package/src/components/pages/{Emissions.vue → EmissionsPage.vue} +51 -44
  134. package/src/components/pages/Error403Page.vue +20 -19
  135. package/src/components/pages/HomePage.vue +144 -0
  136. package/src/components/pages/LivesPage.vue +66 -0
  137. package/src/components/pages/PageNotFound.vue +33 -22
  138. package/src/components/pages/{Participant.vue → ParticipantPage.vue} +63 -49
  139. package/src/components/pages/{Participants.vue → ParticipantsPage.vue} +9 -9
  140. package/src/components/pages/PlaylistPage.vue +175 -0
  141. package/src/components/pages/{Playlists.vue → PlaylistsPage.vue} +16 -14
  142. package/src/components/pages/PodcastPage.vue +365 -0
  143. package/src/components/pages/PodcastsPage.vue +152 -0
  144. package/src/components/pages/RadioPage.vue +131 -0
  145. package/src/components/pages/RubriquePage.vue +45 -0
  146. package/src/components/pages/{Search.vue → SearchPage.vue} +19 -19
  147. package/src/helper/dom.ts +1 -1
  148. package/src/helper/duration.ts +10 -4
  149. package/src/helper/useEventListener.ts +7 -8
  150. package/src/i18n.ts +31 -30
  151. package/src/locale/de.ts +263 -257
  152. package/src/locale/educationen.ts +13 -13
  153. package/src/locale/educationfr.ts +1 -1
  154. package/src/locale/en.ts +323 -324
  155. package/src/locale/es.ts +325 -318
  156. package/src/locale/fr.ts +330 -324
  157. package/src/locale/it.ts +332 -328
  158. package/src/locale/messages.ts +9 -9
  159. package/src/locale/sl.ts +315 -319
  160. package/src/main.ts +28 -31
  161. package/src/router/router.ts +218 -198
  162. package/src/shims-tsx.d.ts +1 -1
  163. package/src/shims-vue.d.ts +1 -1
  164. package/src/stores/ApiStore.ts +44 -44
  165. package/src/stores/AuthStore.ts +21 -15
  166. package/src/stores/CommentStore.ts +13 -11
  167. package/src/stores/FilterStore.ts +25 -15
  168. package/src/stores/GeneralStore.ts +15 -15
  169. package/src/stores/ParamSdkStore.ts +179 -137
  170. package/src/stores/PlayerStore.ts +139 -125
  171. package/src/stores/class/adserver/adserverConfig.ts +1 -1
  172. package/src/stores/class/adserver/adserverOtherEmission.ts +9 -9
  173. package/src/stores/class/cartouchier/cartouche.ts +4 -4
  174. package/src/stores/class/cartouchier/cartouchier.ts +2 -2
  175. package/src/stores/class/conference/conference.ts +10 -9
  176. package/src/stores/class/conference/conferenceMessage.ts +2 -2
  177. package/src/stores/class/conference/conferenceParticipant.ts +1 -1
  178. package/src/stores/class/conference/studioCall.ts +6 -6
  179. package/src/stores/class/contract/contractOrganisation.ts +5 -5
  180. package/src/stores/class/ftp/ftpEmission.ts +9 -9
  181. package/src/stores/class/ftp/testFtpEmission.ts +4 -4
  182. package/src/stores/class/general/audioView.ts +19 -19
  183. package/src/stores/class/general/category.ts +1 -1
  184. package/src/stores/class/general/classicSelectType.ts +2 -3
  185. package/src/stores/class/general/customPlayer.ts +8 -8
  186. package/src/stores/class/general/emission.ts +20 -20
  187. package/src/stores/class/general/fetchParam.ts +8 -2
  188. package/src/stores/class/general/initState.ts +31 -31
  189. package/src/stores/class/general/interfacePageable.ts +13 -13
  190. package/src/stores/class/general/ituneCategory.ts +4 -4
  191. package/src/stores/class/general/listReturn.ts +12 -12
  192. package/src/stores/class/general/media.ts +7 -7
  193. package/src/stores/class/general/organisation.ts +9 -9
  194. package/src/stores/class/general/pageable.ts +10 -10
  195. package/src/stores/class/general/participant.ts +7 -7
  196. package/src/stores/class/general/player.ts +30 -28
  197. package/src/stores/class/general/playlist.ts +17 -19
  198. package/src/stores/class/general/podcast.ts +19 -19
  199. package/src/stores/class/general/sortPageable.ts +4 -4
  200. package/src/stores/class/general/soundcastCategory.ts +7 -7
  201. package/src/stores/class/ouestFrance/ofTag.ts +34 -34
  202. package/src/stores/class/ouestFrance/ofTagInfo.ts +9 -9
  203. package/src/stores/class/ouestFrance/ofTagPage.ts +7 -7
  204. package/src/stores/class/ouestFrance/ofTagSeo.ts +7 -7
  205. package/src/stores/class/ouestFrance/ofTagVente.ts +6 -6
  206. package/src/stores/class/ouestFrance/ofTagWithParents.ts +20 -20
  207. package/src/stores/class/radio/canal.ts +4 -4
  208. package/src/stores/class/radio/live.ts +6 -6
  209. package/src/stores/class/radio/mix.ts +16 -16
  210. package/src/stores/class/radio/playlistMedia.ts +7 -7
  211. package/src/stores/class/radio/recurrence.ts +54 -54
  212. package/src/stores/class/rss/rssEmission.ts +13 -13
  213. package/src/stores/class/rss/rssInfo.ts +7 -7
  214. package/src/stores/class/rubrique/rubriquage.ts +2 -2
  215. package/src/stores/class/rubrique/rubrique.ts +1 -1
  216. package/src/stores/class/stat/statArrayIncome.ts +5 -5
  217. package/src/stores/class/stat/statArrayObject.ts +26 -26
  218. package/src/stores/class/stat/statGraph.ts +6 -6
  219. package/src/stores/class/user/person.ts +4 -2
  220. package/src/stores/class/user/profile.ts +4 -2
  221. package/src/stores/class/user/userKeycloak.ts +4 -5
  222. package/src/components/display/list/Paginate.vue +0 -181
  223. package/src/components/misc/Accordion.vue +0 -78
  224. package/src/components/misc/Footer.vue +0 -169
  225. package/src/components/misc/Nav.vue +0 -119
  226. package/src/components/misc/Popover.vue +0 -193
  227. package/src/components/misc/Snackbar.vue +0 -168
  228. package/src/components/pages/Category.vue +0 -41
  229. package/src/components/pages/Home.vue +0 -125
  230. package/src/components/pages/Lives.vue +0 -64
  231. package/src/components/pages/Playlist.vue +0 -164
  232. package/src/components/pages/Podcast.vue +0 -307
  233. package/src/components/pages/Podcasts.vue +0 -146
  234. package/src/components/pages/Radio.vue +0 -122
  235. package/src/components/pages/Rubrique.vue +0 -42
@@ -4,9 +4,7 @@
4
4
  {{ titleFilter }}
5
5
  </h2>
6
6
  <div class="d-flex align-items-center flex-wrap mb-2">
7
- <div
8
- class="w-50-responsive pe-3"
9
- >
7
+ <div class="w-50-responsive pe-3">
10
8
  <CategoryChooser
11
9
  :defaultanswer="$t('No category filter')"
12
10
  @selected="onCategorySelected"
@@ -37,46 +35,50 @@
37
35
  </template>
38
36
 
39
37
  <script lang="ts">
40
- import ClassicSearch from '../../form/ClassicSearch.vue';
41
- import PodcastList from './PodcastList.vue';
42
- import { Category } from '@/stores/class/general/category';
43
- import { defineComponent, defineAsyncComponent } from 'vue';
44
- import { Podcast } from '@/stores/class/general/podcast';
45
- const CategoryChooser = defineAsyncComponent(() => import('../categories/CategoryChooser.vue'));
38
+ import ClassicSearch from "../../form/ClassicSearch.vue";
39
+ import PodcastList from "./PodcastList.vue";
40
+ import { Category } from "@/stores/class/general/category";
41
+ import { defineComponent, defineAsyncComponent } from "vue";
42
+ import { Podcast } from "@/stores/class/general/podcast";
43
+ const CategoryChooser = defineAsyncComponent(
44
+ () => import("../categories/CategoryChooser.vue"),
45
+ );
46
46
  export default defineComponent({
47
47
  components: {
48
48
  CategoryChooser,
49
49
  PodcastList,
50
- ClassicSearch
50
+ ClassicSearch,
51
51
  },
52
52
  props: {
53
- participantId: { default: undefined, type: Number},
54
- name: { default: undefined, type: String},
55
- emissionId: { default: undefined, type: Number},
56
- categoryFilter: { default: false, type: Boolean},
57
- reload: { default: false, type: Boolean},
58
- editRight: { default: false, type: Boolean},
59
- productorId: { default: () => [], type: Array as ()=> Array<string>},
53
+ participantId: { default: undefined, type: Number },
54
+ name: { default: undefined, type: String },
55
+ emissionId: { default: undefined, type: Number },
56
+ categoryFilter: { default: false, type: Boolean },
57
+ reload: { default: false, type: Boolean },
58
+ editRight: { default: false, type: Boolean },
59
+ productorId: { default: () => [], type: Array as () => Array<string> },
60
60
  showCount: { default: false, type: Boolean },
61
61
  },
62
- emits: ['fetch'],
62
+ emits: ["fetch"],
63
63
 
64
64
  data() {
65
65
  return {
66
66
  first: 0 as number,
67
67
  size: 30 as number,
68
- searchPattern: '' as string,
68
+ searchPattern: "" as string,
69
69
  iabId: undefined as number | undefined,
70
70
  reloadList: false as boolean,
71
71
  };
72
72
  },
73
73
 
74
74
  computed: {
75
- titleFilter():string{
76
- return this.name ? this.$t('All podcast button', { name: this.name }) : this.$t('All podcast emission button');
75
+ titleFilter(): string {
76
+ return this.name
77
+ ? this.$t("All podcast button", { name: this.name })
78
+ : this.$t("All podcast emission button");
77
79
  },
78
80
  query(): string {
79
- return this.searchPattern.length >= 3 ? this.searchPattern : '' ;
81
+ return this.searchPattern.length >= 3 ? this.searchPattern : "";
80
82
  },
81
83
  },
82
84
  watch: {
@@ -85,12 +87,12 @@ export default defineComponent({
85
87
  },
86
88
  },
87
89
  methods: {
88
- onCategorySelected(category: Category|undefined): void {
90
+ onCategorySelected(category: Category | undefined): void {
89
91
  this.iabId = category?.id ? category.id : undefined;
90
92
  },
91
93
  fetch(podcasts: Array<Podcast>): void {
92
- this.$emit('fetch', podcasts);
94
+ this.$emit("fetch", podcasts);
93
95
  },
94
96
  },
95
- })
96
- </script>
97
+ });
98
+ </script>
@@ -4,15 +4,15 @@
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
6
  <img
7
- v-lazy="proxyImageUrl(podcast.imageUrl,'330')"
7
+ v-lazy="proxyImageUrl(podcast.imageUrl, '330')"
8
8
  width="330"
9
9
  height="330"
10
10
  class="img-box img-box-podcast"
11
- :alt="$t('Episode name image', {name:podcast.title})"
12
- >
11
+ :alt="$t('Episode name image', { name: podcast.title })"
12
+ />
13
13
  <div
14
14
  v-if="isPodcastmaker"
15
- :class="mainRubrique? 'mainRubrique' : 'notMainRubrique'"
15
+ :class="mainRubrique ? 'mainRubrique' : 'notMainRubrique'"
16
16
  />
17
17
  <div
18
18
  v-if="fetchConference"
@@ -25,11 +25,8 @@
25
25
  >
26
26
  {{ statusText }}
27
27
  </div>
28
- <div
29
- v-if="isRecordedInLive"
30
- class="live-image-status recording-bg"
31
- >
32
- {{ $t('Recorded in live') }}
28
+ <div v-if="isRecordedInLive" class="live-image-status recording-bg">
29
+ {{ $t("Recorded in live") }}
33
30
  </div>
34
31
  <button
35
32
  v-if="hidePlay || recordingLive"
@@ -37,24 +34,14 @@
37
34
  :class="classicPodcastPlay ? '' : 'transparent-background'"
38
35
  @click="play"
39
36
  >
40
- <div
41
- v-if="!isLiveToBeRecorded"
42
- class="icon-container"
43
- >
44
- <div
45
- v-if="!playingPodcast"
46
- :title="$t('Play')"
47
- class="saooti-play"
48
- />
37
+ <div v-if="!isLiveToBeRecorded" class="icon-container">
38
+ <div v-if="!playingPodcast" :title="$t('Play')" class="saooti-play" />
49
39
  <div
50
40
  v-if="!classicPodcastPlay"
51
41
  class="special-icon-play-button"
52
42
  :class="iconName"
53
43
  />
54
- <div
55
- v-if="playingPodcast"
56
- class="bloc-paddle"
57
- >
44
+ <div v-if="playingPodcast" class="bloc-paddle">
58
45
  <span class="paddle1" />
59
46
  <span class="paddle2" />
60
47
  <span class="paddle3" />
@@ -63,184 +50,189 @@
63
50
  {{ durationString }}
64
51
  </div>
65
52
  </div>
66
- <div
67
- v-else
68
- class="icon-container play-button-error-icon"
69
- >
70
- <div
71
- :title="textVisible"
72
- class="big-icon-error"
73
- :class="iconName"
74
- />
53
+ <div v-else class="icon-container play-button-error-icon">
54
+ <div :title="textVisible" class="big-icon-error" :class="iconName" />
75
55
  </div>
76
- <div
77
- v-if="!classicPodcastPlay"
78
- class="live-image-status bg-dark"
79
- >
56
+ <div v-if="!classicPodcastPlay" class="live-image-status bg-dark">
80
57
  {{ textVisible }}
81
58
  </div>
82
59
  </button>
83
60
  <div
84
61
  v-if="displayDescription && isMobile"
85
62
  class="background-icon bg-primary saooti-arrow-up"
86
- :class="isDescription ? 'saooti-arrow-down':'saooti-arrow-up'"
87
- :title="isDescription ? $t('Hide description'):$t('Show description')"
63
+ :class="isDescription ? 'saooti-arrow-down' : 'saooti-arrow-up'"
64
+ :title="isDescription ? $t('Hide description') : $t('Show description')"
88
65
  @click="showDescription"
89
66
  />
90
67
  </div>
91
68
  </template>
92
69
 
93
70
  <script lang="ts">
94
- import DurationHelper from '../../../helper/duration';
95
- import { state } from '../../../stores/ParamSdkStore';
96
- import { Podcast } from '@/stores/class/general/podcast';
97
- import { Conference } from '@/stores/class/conference/conference';
98
- import imageProxy from '../../mixins/imageProxy';
99
- import { usePlayerStore } from '@/stores/PlayerStore';
100
- import { mapState, mapActions } from 'pinia';
101
- import { defineComponent } from 'vue'
71
+ import DurationHelper from "../../../helper/duration";
72
+ import { state } from "../../../stores/ParamSdkStore";
73
+ import { Podcast } from "@/stores/class/general/podcast";
74
+ import { Conference } from "@/stores/class/conference/conference";
75
+ import imageProxy from "../../mixins/imageProxy";
76
+ import { usePlayerStore } from "@/stores/PlayerStore";
77
+ import { mapState, mapActions } from "pinia";
78
+ import { defineComponent } from "vue";
102
79
  export default defineComponent({
103
- name: 'PodcastImage',
104
- mixins:[imageProxy],
80
+ name: "PodcastImage",
81
+ mixins: [imageProxy],
105
82
  props: {
106
- podcast: { default: ()=>({}), type: Object as ()=>Podcast},
107
- hidePlay: { default: false, type: Boolean},
108
- displayDescription: { default: false, type: Boolean},
109
- arrowDirection: { default: 'up', type: String},
110
- isAnimatorLive: { default: false, type: Boolean},
111
- fetchConference: { default: undefined, type: Object as ()=>Conference},
83
+ podcast: { default: () => ({}), type: Object as () => Podcast },
84
+ hidePlay: { default: false, type: Boolean },
85
+ displayDescription: { default: false, type: Boolean },
86
+ arrowDirection: { default: "up", type: String },
87
+ isAnimatorLive: { default: false, type: Boolean },
88
+ fetchConference: { default: undefined, type: Object as () => Conference },
112
89
  },
113
- emits: ['hideDescription', 'showDescription'],
90
+ emits: ["hideDescription", "showDescription"],
114
91
  data() {
115
92
  return {
116
93
  isDescription: false as boolean,
117
94
  };
118
95
  },
119
96
  computed: {
120
- ...mapState(usePlayerStore, ['playerPodcast', 'playerLive', 'playerStatus']),
121
- playingPodcast(){
97
+ ...mapState(usePlayerStore, [
98
+ "playerPodcast",
99
+ "playerLive",
100
+ "playerStatus",
101
+ ]),
102
+ playingPodcast() {
122
103
  return (
123
- (this.playerPodcast?.podcastId === this.podcast.podcastId) ||
124
- (this.fetchConference && 'null' !== this.fetchConference.toString() &&
125
- this.playerLive?.conferenceId ===this.fetchConference.conferenceId)
104
+ this.playerPodcast?.podcastId === this.podcast.podcastId ||
105
+ (this.fetchConference &&
106
+ "null" !== this.fetchConference.toString() &&
107
+ this.playerLive?.conferenceId === this.fetchConference.conferenceId)
126
108
  );
127
109
  },
128
- mainRubrique(): boolean{
129
- return undefined!==state.podcastPage.mainRubrique && 0!==state.podcastPage.mainRubrique && (this.podcast?.rubriqueIds?.includes(state.podcastPage.mainRubrique) as boolean);
110
+ mainRubrique(): boolean {
111
+ return (
112
+ undefined !== state.podcastPage.mainRubrique &&
113
+ 0 !== state.podcastPage.mainRubrique &&
114
+ (this.podcast?.rubriqueIds?.includes(
115
+ state.podcastPage.mainRubrique,
116
+ ) as boolean)
117
+ );
130
118
  },
131
119
  isPodcastmaker(): boolean {
132
- return (state.generalParameters.podcastmaker as boolean);
120
+ return state.generalParameters.podcastmaker as boolean;
133
121
  },
134
122
  isMobile(): boolean {
135
- return window.matchMedia('(hover: none)').matches;
123
+ return window.matchMedia("(hover: none)").matches;
136
124
  },
137
125
  isRecordedInLive(): boolean {
138
126
  return (
139
127
  undefined === this.fetchConference &&
140
128
  undefined !== this.podcast.conferenceId &&
141
- 'READY_TO_RECORD' !== this.podcast.processingStatus
129
+ "READY_TO_RECORD" !== this.podcast.processingStatus
142
130
  );
143
131
  },
144
132
  isLiveToBeRecorded(): boolean {
145
133
  return (
146
134
  undefined === this.fetchConference &&
147
135
  undefined !== this.podcast.conferenceId &&
148
- 'READY_TO_RECORD' === this.podcast.processingStatus
136
+ "READY_TO_RECORD" === this.podcast.processingStatus
149
137
  );
150
138
  },
151
139
  classicPodcastPlay(): boolean {
152
140
  return (
153
- undefined!==this.podcast &&
141
+ undefined !== this.podcast &&
154
142
  false !== this.podcast.valid &&
155
- ('READY_TO_RECORD' === this.podcast.processingStatus ||
156
- 'READY' === this.podcast.processingStatus ||
157
- ('PROCESSING' === this.podcast.processingStatus && !(state.generalParameters.authenticated as boolean))) &&
158
- !this.isLiveToBeRecorded && undefined!==this.podcast.availability.visibility
159
- && this.podcast.availability.visibility
143
+ ("READY_TO_RECORD" === this.podcast.processingStatus ||
144
+ "READY" === this.podcast.processingStatus ||
145
+ ("PROCESSING" === this.podcast.processingStatus &&
146
+ !(state.generalParameters.authenticated as boolean))) &&
147
+ !this.isLiveToBeRecorded &&
148
+ undefined !== this.podcast.availability.visibility &&
149
+ this.podcast.availability.visibility
160
150
  );
161
151
  },
162
152
  iconName(): string {
163
- if (this.isLiveToBeRecorded) return 'saooti-clock';
164
- if ('READY' === this.podcast.processingStatus || this.fetchConference) {
165
- if (!this.podcast.valid) return 'saooti-checkmark';
153
+ if (this.isLiveToBeRecorded) return "saooti-clock";
154
+ if ("READY" === this.podcast.processingStatus || this.fetchConference) {
155
+ if (!this.podcast.valid) return "saooti-checkmark";
166
156
  if (
167
157
  !this.podcast.availability.visibility &&
168
158
  this.podcast.availability.date
169
159
  )
170
- return 'saooti-clock';
171
- return 'saooti-eye-blocked';
160
+ return "saooti-clock";
161
+ return "saooti-eye-blocked";
172
162
  }
173
163
  if (
174
- 'PLANNED' === this.podcast.processingStatus ||
175
- 'PROCESSING' === this.podcast.processingStatus
164
+ "PLANNED" === this.podcast.processingStatus ||
165
+ "PROCESSING" === this.podcast.processingStatus
176
166
  )
177
- return 'saooti-hourglass';
178
- if ('CANCELED' === this.podcast.processingStatus)
179
- return 'saooti-cancel-circle';
180
- return 'saooti-warning';
167
+ return "saooti-hourglass";
168
+ if ("CANCELED" === this.podcast.processingStatus)
169
+ return "saooti-cancel-circle";
170
+ return "saooti-warning";
181
171
  },
182
172
  textVisible(): string {
183
173
  if (this.isLiveToBeRecorded)
184
- return this.$t('Podcast linked to waiting live');
185
- if ('READY' === this.podcast.processingStatus || this.fetchConference) {
186
- if (!this.podcast.valid) return this.$t('Podcast to validate');
174
+ return this.$t("Podcast linked to waiting live");
175
+ if ("READY" === this.podcast.processingStatus || this.fetchConference) {
176
+ if (!this.podcast.valid) return this.$t("Podcast to validate");
187
177
  if (
188
178
  !this.podcast.availability.visibility &&
189
179
  this.podcast.availability.date
190
180
  )
191
- return this.$t('Podcast publish in future');
192
- return this.$t('Podcast no visible');
181
+ return this.$t("Podcast publish in future");
182
+ return this.$t("Podcast no visible");
193
183
  }
194
184
  if (
195
- 'PLANNED' === this.podcast.processingStatus ||
196
- 'PROCESSING' === this.podcast.processingStatus
185
+ "PLANNED" === this.podcast.processingStatus ||
186
+ "PROCESSING" === this.podcast.processingStatus
197
187
  )
198
- return this.$t('Podcast in process');
199
- if ('CANCELED' === this.podcast.processingStatus)
200
- return this.$t('Podcast in cancelled status');
201
- return this.$t('Podcast in error');
188
+ return this.$t("Podcast in process");
189
+ if ("CANCELED" === this.podcast.processingStatus)
190
+ return this.$t("Podcast in cancelled status");
191
+ return this.$t("Podcast in error");
202
192
  },
203
193
  statusText(): string {
204
- if (!this.fetchConference) return '';
194
+ if (!this.fetchConference) return "";
205
195
  switch (this.fetchConference.status) {
206
- case 'PLANNED':
207
- return this.$t('live in few time');
208
- case 'PENDING':
209
- if (this.isAnimatorLive) return this.$t('Open studio');
210
- return this.$t('live upcoming');
211
- case 'RECORDING':
212
- return this.$t('In live');
213
- case 'DEBRIEFING':
196
+ case "PLANNED":
197
+ return this.$t("live in few time");
198
+ case "PENDING":
199
+ if (this.isAnimatorLive) return this.$t("Open studio");
200
+ return this.$t("live upcoming");
201
+ case "RECORDING":
202
+ return this.$t("In live");
203
+ case "DEBRIEFING":
214
204
  /* if (!this.isAnimatorLive) return ''; */
215
- if ('READY_TO_RECORD' === this.podcast.processingStatus)
216
- return this.$t('Not recording');
217
- return this.$t('Debriefing');
218
- case 'ERROR':
219
- return this.$t('In error');
220
- case 'PUBLISHING':
221
- return this.$t('Publishing');
205
+ if ("READY_TO_RECORD" === this.podcast.processingStatus)
206
+ return this.$t("Not recording");
207
+ return this.$t("Debriefing");
208
+ case "ERROR":
209
+ return this.$t("In error");
210
+ case "PUBLISHING":
211
+ return this.$t("Publishing");
222
212
  default:
223
- return '';
213
+ return "";
224
214
  }
225
215
  },
226
216
  recordingLive(): boolean {
227
217
  return (
228
218
  undefined !== this.fetchConference &&
229
- -1 !== this.fetchConference.conferenceId &&
230
- ('RECORDING' === this.fetchConference.status ||
231
- 'PENDING' === this.fetchConference.status)
219
+ -1 !== this.fetchConference.conferenceId &&
220
+ ("RECORDING" === this.fetchConference.status ||
221
+ "PENDING" === this.fetchConference.status)
232
222
  );
233
223
  },
234
- clickPlayGoPage():boolean{
235
- return (state.podcastPage.clickPlayGoPage as boolean);
224
+ clickPlayGoPage(): boolean {
225
+ return state.podcastPage.clickPlayGoPage as boolean;
236
226
  },
237
227
  durationString(): string {
238
- return DurationHelper.formatDuration(Math.round(this.podcast.duration/1000));
228
+ return DurationHelper.formatDuration(
229
+ Math.round(this.podcast.duration / 1000),
230
+ );
239
231
  },
240
232
  },
241
233
  watch: {
242
234
  arrowDirection(): void {
243
- if ('up' === this.arrowDirection) {
235
+ if ("up" === this.arrowDirection) {
244
236
  this.isDescription = true;
245
237
  this.showDescription();
246
238
  } else {
@@ -249,42 +241,44 @@ export default defineComponent({
249
241
  }
250
242
  },
251
243
  },
252
-
244
+
253
245
  methods: {
254
- ...mapActions(usePlayerStore, ['playerChangeStatus', 'playerPlay']),
246
+ ...mapActions(usePlayerStore, ["playerChangeStatus", "playerPlay"]),
255
247
  play(): void {
256
248
  if (this.isLiveToBeRecorded) {
257
249
  return;
258
250
  }
259
- if(this.playingPodcast){
260
- this.playerChangeStatus("PLAYING"===this.playerStatus);
251
+ if (this.playingPodcast) {
252
+ this.playerChangeStatus("PLAYING" === this.playerStatus);
261
253
  return;
262
254
  }
263
255
  if (!this.recordingLive) {
264
256
  this.playerPlay(this.podcast);
265
- }else{
266
- this.playerPlay({...this.podcast, ...{conferenceId:this.fetchConference?.conferenceId}});
257
+ } else {
258
+ this.playerPlay({
259
+ ...this.podcast,
260
+ ...{ conferenceId: this.fetchConference?.conferenceId },
261
+ });
267
262
  }
268
- if(this.clickPlayGoPage){
269
- this.$router.push('/main/pub/podcast/'+this.podcast.podcastId);
263
+ if (this.clickPlayGoPage) {
264
+ this.$router.push("/main/pub/podcast/" + this.podcast.podcastId);
270
265
  }
271
266
  },
272
267
  showDescription(): void {
273
268
  if (this.isDescription) {
274
- this.$emit('hideDescription');
269
+ this.$emit("hideDescription");
275
270
  } else {
276
- this.$emit('showDescription');
271
+ this.$emit("showDescription");
277
272
  }
278
273
  this.isDescription = !this.isDescription;
279
274
  },
280
275
  },
281
- })
276
+ });
282
277
  </script>
283
278
 
284
-
285
279
  <style lang="scss">
286
- @import '@scss/_variables.scss';
287
- .octopus-app{
280
+ @import "@scss/_variables.scss";
281
+ .octopus-app {
288
282
  .live-image-status {
289
283
  text-align: center;
290
284
  width: 100%;
@@ -293,10 +287,10 @@ export default defineComponent({
293
287
  color: white;
294
288
  text-transform: uppercase;
295
289
  position: absolute;
296
- top:0;
290
+ top: 0;
297
291
  }
298
292
 
299
- .background-icon{
293
+ .background-icon {
300
294
  border-radius: 50%;
301
295
  width: 1rem;
302
296
  height: 1rem;
@@ -311,7 +305,7 @@ export default defineComponent({
311
305
  .transparent-background {
312
306
  background-color: rgba(255, 255, 255, 0.5);
313
307
  }
314
-
308
+
315
309
  .image-play-button .play-button-error-icon {
316
310
  background: #0000009d !important;
317
311
  cursor: default !important;
@@ -338,4 +332,4 @@ export default defineComponent({
338
332
  justify-content: center;
339
333
  }
340
334
  }
341
- </style>
335
+ </style>
@@ -15,7 +15,7 @@
15
15
  :no-rubriquage-id="noRubriquageId"
16
16
  :query="query"
17
17
  :podcast-id="podcastId"
18
- @update:isArrow="$emit('update:isArrow',$event)"
18
+ @update:is-arrow="$emit('update:isArrow', $event)"
19
19
  />
20
20
  <PodcastSwiperList
21
21
  v-else
@@ -32,48 +32,52 @@
32
32
  :rubriquage-id="rubriquageId"
33
33
  :no-rubriquage-id="noRubriquageId"
34
34
  :query="query"
35
- @update:isArrow="$emit('update:isArrow',$event)"
35
+ @update:is-arrow="$emit('update:isArrow', $event)"
36
36
  />
37
37
  </template>
38
38
 
39
39
  <script lang="ts">
40
- import { state } from '../../../stores/ParamSdkStore';
41
- import { defineAsyncComponent, defineComponent } from 'vue';
42
- const PodcastInlineListClassic = defineAsyncComponent(() => import('./PodcastInlineListClassic.vue'));
43
- const PodcastSwiperList = defineAsyncComponent(() => import('./PodcastSwiperList.vue'));
40
+ import { state } from "../../../stores/ParamSdkStore";
41
+ import { defineAsyncComponent, defineComponent } from "vue";
42
+ const PodcastInlineListClassic = defineAsyncComponent(
43
+ () => import("./PodcastInlineListClassic.vue"),
44
+ );
45
+ const PodcastSwiperList = defineAsyncComponent(
46
+ () => import("./PodcastSwiperList.vue"),
47
+ );
44
48
  export default defineComponent({
45
- name: 'PodcastInlineList',
46
-
49
+ name: "PodcastInlineList",
50
+
47
51
  components: {
48
52
  PodcastInlineListClassic,
49
53
  PodcastSwiperList,
50
54
  },
51
55
  props: {
52
- organisationId: { default: () => [], type: Array as ()=> Array<string>},
53
- emissionId: { default: undefined, type: Number},
54
- iabId: { default: undefined, type: Number},
55
- title: { default: '', type: String},
56
- href: { default: undefined, type: String},
57
- buttonText: { default: undefined, type: String},
58
- isArrow: { default: false, type: Boolean},
59
- requirePopularSort: { default:undefined, type: Boolean},
60
- buttonPlus: { default:false, type: Boolean},
61
- rubriqueId: { default: () => [], type: Array as ()=> Array<number> },
62
- rubriquageId:{ default: () => [], type: Array as ()=> Array<number> },
63
- noRubriquageId: { default: () => [], type: Array as ()=> Array<number> },
64
- query: { default: undefined, type: String},
65
- podcastId: { default: undefined, type: Number},
56
+ organisationId: { default: () => [], type: Array as () => Array<string> },
57
+ emissionId: { default: undefined, type: Number },
58
+ iabId: { default: undefined, type: Number },
59
+ title: { default: "", type: String },
60
+ href: { default: undefined, type: String },
61
+ buttonText: { default: undefined, type: String },
62
+ isArrow: { default: false, type: Boolean },
63
+ requirePopularSort: { default: undefined, type: Boolean },
64
+ buttonPlus: { default: false, type: Boolean },
65
+ rubriqueId: { default: () => [], type: Array as () => Array<number> },
66
+ rubriquageId: { default: () => [], type: Array as () => Array<number> },
67
+ noRubriquageId: { default: () => [], type: Array as () => Array<number> },
68
+ query: { default: undefined, type: String },
69
+ podcastId: { default: undefined, type: Number },
66
70
  },
67
- emits: ['update:isArrow'],
68
- computed:{
71
+ emits: ["update:isArrow"],
72
+ computed: {
69
73
  listTypeClassic(): boolean {
70
- return (state.podcastPage.listTypeClassic as boolean);
74
+ return state.podcastPage.listTypeClassic as boolean;
71
75
  },
72
- }
73
- })
76
+ },
77
+ });
74
78
  </script>
75
79
  <style lang="scss">
76
- .octopus-app .loading-size{
80
+ .octopus-app .loading-size {
77
81
  height: 21.4rem;
78
82
  }
79
- </style>
83
+ </style>