@saooti/octopus-sdk 37.0.5 → 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 (263) hide show
  1. package/README.md +2 -2
  2. package/index.html +1 -0
  3. package/index.ts +21 -21
  4. package/package.json +26 -20
  5. package/public/css/fonts/icomoon.eot +0 -0
  6. package/public/css/fonts/icomoon.svg +1 -1
  7. package/public/css/fonts/icomoon.ttf +0 -0
  8. package/public/css/fonts/icomoon.woff +0 -0
  9. package/public/css/fonts/montserrat/Montserrat-Black.ttf +0 -0
  10. package/public/css/fonts/montserrat/Montserrat-BlackItalic.ttf +0 -0
  11. package/public/css/fonts/montserrat/Montserrat-Bold.ttf +0 -0
  12. package/public/css/fonts/montserrat/Montserrat-BoldItalic.ttf +0 -0
  13. package/public/css/fonts/montserrat/Montserrat-ExtraBold.ttf +0 -0
  14. package/public/css/fonts/montserrat/Montserrat-ExtraBoldItalic.ttf +0 -0
  15. package/public/css/fonts/montserrat/Montserrat-ExtraLight.ttf +0 -0
  16. package/public/css/fonts/montserrat/Montserrat-ExtraLightItalic.ttf +0 -0
  17. package/public/css/fonts/montserrat/Montserrat-Italic.ttf +0 -0
  18. package/public/css/fonts/montserrat/Montserrat-Light.ttf +0 -0
  19. package/public/css/fonts/montserrat/Montserrat-LightItalic.ttf +0 -0
  20. package/public/css/fonts/montserrat/Montserrat-Medium.ttf +0 -0
  21. package/public/css/fonts/montserrat/Montserrat-MediumItalic.ttf +0 -0
  22. package/public/css/fonts/montserrat/Montserrat-Regular.ttf +0 -0
  23. package/public/css/fonts/montserrat/Montserrat-SemiBold.ttf +0 -0
  24. package/public/css/fonts/montserrat/Montserrat-SemiBoldItalic.ttf +0 -0
  25. package/public/css/fonts/montserrat/Montserrat-Thin.ttf +0 -0
  26. package/public/css/fonts/montserrat/Montserrat-ThinItalic.ttf +0 -0
  27. package/public/css/fonts/montserrat/style.css +28 -0
  28. package/public/css/fonts/style.css +5 -5
  29. package/src/App.vue +69 -60
  30. package/src/api/classicCrud.ts +12 -12
  31. package/src/api/initialize.ts +1 -1
  32. package/src/assets/bootstrap.scss +9 -0
  33. package/src/assets/general.scss +1 -1
  34. package/src/assets/share.scss +1 -1
  35. package/src/components/display/aggregator/RssSection.vue +3 -3
  36. package/src/components/display/categories/CategoryChooser.vue +73 -60
  37. package/src/components/display/categories/CategoryFilter.vue +134 -90
  38. package/src/components/display/categories/CategoryList.vue +76 -62
  39. package/src/components/display/comments/AddCommentModal.vue +44 -44
  40. package/src/components/display/comments/CommentBasicView.vue +38 -30
  41. package/src/components/display/comments/CommentInput.vue +122 -110
  42. package/src/components/display/comments/CommentItem.vue +144 -102
  43. package/src/components/display/comments/CommentList.vue +117 -85
  44. package/src/components/display/comments/CommentParentInfo.vue +18 -15
  45. package/src/components/display/comments/CommentPlayer.vue +39 -41
  46. package/src/components/display/comments/CommentSection.vue +68 -53
  47. package/src/components/display/edit/EditBox.vue +7 -7
  48. package/src/components/display/edit/EditBoxRadio.vue +3 -4
  49. package/src/components/display/edit/EditCommentBox.vue +34 -36
  50. package/src/components/display/emission/EmissionInlineList.vue +75 -63
  51. package/src/components/display/emission/EmissionItem.vue +47 -35
  52. package/src/components/display/emission/EmissionList.vue +111 -83
  53. package/src/components/display/emission/EmissionPlayerItem.vue +89 -89
  54. package/src/components/display/filter/AdvancedSearch.vue +81 -73
  55. package/src/components/display/filter/CategorySearchFilter.vue +27 -25
  56. package/src/components/display/filter/DateFilter.vue +38 -38
  57. package/src/components/display/filter/MonetizableFilter.vue +16 -14
  58. package/src/components/display/filter/ProductorSearch.vue +55 -47
  59. package/src/components/display/filter/RubriqueChoice.vue +42 -27
  60. package/src/components/display/filter/RubriqueFilter.vue +130 -85
  61. package/src/components/display/filter/SearchOrder.vue +16 -11
  62. package/src/components/display/list/ListPaginate.vue +72 -70
  63. package/src/components/display/list/PaginateParams.vue +29 -30
  64. package/src/components/display/list/PaginateSection.vue +210 -0
  65. package/src/components/display/list/SwiperList.vue +28 -32
  66. package/src/components/display/live/CountDown.vue +12 -14
  67. package/src/components/display/live/LiveHorizontalList.vue +60 -50
  68. package/src/components/display/live/LiveItem.vue +42 -26
  69. package/src/components/display/live/LiveList.vue +92 -65
  70. package/src/components/display/live/RadioCurrently.vue +47 -42
  71. package/src/components/display/live/RadioImage.vue +40 -42
  72. package/src/components/display/live/RadioItem.vue +15 -22
  73. package/src/components/display/live/RadioList.vue +24 -21
  74. package/src/components/display/live/RadioPlanning.vue +105 -68
  75. package/src/components/display/organisation/OrganisationChooser.vue +58 -42
  76. package/src/components/display/organisation/OrganisationChooserLight.vue +27 -19
  77. package/src/components/display/participant/ParticipantItem.vue +89 -76
  78. package/src/components/display/participant/ParticipantList.vue +90 -60
  79. package/src/components/display/playlist/PlaylistItem.vue +32 -35
  80. package/src/components/display/playlist/PlaylistList.vue +70 -52
  81. package/src/components/display/playlist/PodcastList.vue +61 -50
  82. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +47 -38
  83. package/src/components/display/podcasts/AnimatorsItem.vue +17 -15
  84. package/src/components/display/podcasts/ParticipantDescription.vue +21 -22
  85. package/src/components/display/podcasts/PodcastFilterList.vue +28 -26
  86. package/src/components/display/podcasts/PodcastImage.vue +129 -138
  87. package/src/components/display/podcasts/PodcastInlineList.vue +33 -29
  88. package/src/components/display/podcasts/PodcastInlineListClassic.vue +91 -71
  89. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +94 -85
  90. package/src/components/display/podcasts/PodcastItem.vue +96 -90
  91. package/src/components/display/podcasts/PodcastItemInfo.vue +63 -65
  92. package/src/components/display/podcasts/PodcastList.vue +115 -84
  93. package/src/components/display/podcasts/PodcastModuleBox.vue +95 -104
  94. package/src/components/display/podcasts/PodcastPlayBar.vue +45 -32
  95. package/src/components/display/podcasts/PodcastSwiperList.vue +65 -55
  96. package/src/components/display/podcasts/TagList.vue +33 -37
  97. package/src/components/display/rubriques/RubriqueChooser.vue +70 -51
  98. package/src/components/display/rubriques/RubriqueList.vue +117 -89
  99. package/src/components/display/sharing/PlayerParameters.vue +45 -42
  100. package/src/components/display/sharing/QrCode.vue +52 -46
  101. package/src/components/display/sharing/ShareButtons.vue +25 -27
  102. package/src/components/display/sharing/ShareButtonsIntern.vue +182 -155
  103. package/src/components/display/sharing/ShareDistribution.vue +101 -67
  104. package/src/components/display/sharing/SharePlayer.vue +207 -127
  105. package/src/components/display/sharing/SharePlayerColors.vue +15 -15
  106. package/src/components/display/sharing/SharePlayerRadio.vue +62 -39
  107. package/src/components/display/sharing/SharePlayerTypes.vue +93 -55
  108. package/src/components/display/sharing/SubscribeButtons.vue +83 -32
  109. package/src/components/display/studio/RecordingItemButton.vue +3 -3
  110. package/src/components/form/ClassicCheckbox.vue +32 -31
  111. package/src/components/form/ClassicDatePicker.vue +47 -49
  112. package/src/components/form/ClassicInputText.vue +99 -98
  113. package/src/components/form/ClassicLoading.vue +11 -14
  114. package/src/components/form/ClassicMultiselect.vue +125 -126
  115. package/src/components/form/ClassicRadio.vue +15 -18
  116. package/src/components/form/ClassicSearch.vue +17 -23
  117. package/src/components/form/ClassicSelect.vue +35 -27
  118. package/src/components/form/{Wysiwyg.vue → ClassicWysiwyg.vue} +94 -109
  119. package/src/components/misc/AcpmImage.vue +26 -0
  120. package/src/components/misc/ClassicAccordion.vue +69 -0
  121. package/src/components/misc/ClassicNav.vue +117 -0
  122. package/src/components/misc/ClassicPopover.vue +212 -0
  123. package/src/components/misc/{Spinner.vue → ClassicSpinner.vue} +14 -15
  124. package/src/components/misc/ErrorMessage.vue +9 -17
  125. package/src/components/misc/FooterSection.vue +198 -0
  126. package/src/components/misc/HomeDropdown.vue +67 -64
  127. package/src/components/misc/LeftMenu.vue +115 -79
  128. package/src/components/misc/ProgressBar.vue +36 -32
  129. package/src/components/misc/SnackBar.vue +169 -0
  130. package/src/components/misc/TopBar.vue +161 -115
  131. package/src/components/misc/modal/ClassicModal.vue +99 -103
  132. package/src/components/misc/modal/ClipboardModal.vue +21 -23
  133. package/src/components/misc/modal/MessageModal.vue +22 -28
  134. package/src/components/misc/modal/NewsletterModal.vue +139 -113
  135. package/src/components/misc/modal/QrCodeModal.vue +14 -17
  136. package/src/components/misc/modal/ShareModalPlayer.vue +44 -60
  137. package/src/components/misc/player/PlayerCompact.vue +47 -62
  138. package/src/components/misc/player/{Player.vue → PlayerComponent.vue} +54 -46
  139. package/src/components/misc/player/PlayerLarge.vue +66 -62
  140. package/src/components/misc/player/PlayerProgressBar.vue +40 -30
  141. package/src/components/misc/player/PlayerTimeline.vue +32 -36
  142. package/src/components/misc/player/radio/RadioHistory.vue +62 -59
  143. package/src/components/misc/player/radio/RadioProgressBar.vue +44 -35
  144. package/src/components/mixins/cookies.ts +11 -10
  145. package/src/components/mixins/displayMethods.ts +5 -4
  146. package/src/components/mixins/handle403.ts +9 -9
  147. package/src/components/mixins/imageProxy.ts +14 -7
  148. package/src/components/mixins/init.ts +31 -16
  149. package/src/components/mixins/orgaComputed.ts +7 -7
  150. package/src/components/mixins/organisationFilter.ts +36 -22
  151. package/src/components/mixins/player/playerComment.ts +46 -37
  152. package/src/components/mixins/player/playerDisplay.ts +122 -87
  153. package/src/components/mixins/player/playerLive.ts +65 -43
  154. package/src/components/mixins/player/playerLogic.ts +133 -88
  155. package/src/components/mixins/player/playerTranscript.ts +48 -30
  156. package/src/components/mixins/radio/fetchRadioData.ts +40 -23
  157. package/src/components/mixins/selenium.ts +2 -2
  158. package/src/components/mixins/tagOfMixins.ts +11 -11
  159. package/src/components/pages/CategoryPage.vue +43 -0
  160. package/src/components/pages/{Emission.vue → EmissionPage.vue} +98 -67
  161. package/src/components/pages/{Emissions.vue → EmissionsPage.vue} +51 -44
  162. package/src/components/pages/Error403Page.vue +20 -19
  163. package/src/components/pages/HomePage.vue +144 -0
  164. package/src/components/pages/LivesPage.vue +66 -0
  165. package/src/components/pages/PageNotFound.vue +33 -22
  166. package/src/components/pages/{Participant.vue → ParticipantPage.vue} +63 -49
  167. package/src/components/pages/{Participants.vue → ParticipantsPage.vue} +9 -9
  168. package/src/components/pages/PlaylistPage.vue +175 -0
  169. package/src/components/pages/{Playlists.vue → PlaylistsPage.vue} +16 -14
  170. package/src/components/pages/PodcastPage.vue +365 -0
  171. package/src/components/pages/PodcastsPage.vue +152 -0
  172. package/src/components/pages/RadioPage.vue +131 -0
  173. package/src/components/pages/RubriquePage.vue +45 -0
  174. package/src/components/pages/{Search.vue → SearchPage.vue} +19 -19
  175. package/src/helper/dom.ts +1 -1
  176. package/src/helper/duration.ts +10 -4
  177. package/src/helper/useEventListener.ts +7 -8
  178. package/src/i18n.ts +31 -30
  179. package/src/locale/de.ts +263 -257
  180. package/src/locale/educationen.ts +13 -13
  181. package/src/locale/educationfr.ts +1 -1
  182. package/src/locale/en.ts +323 -324
  183. package/src/locale/es.ts +325 -318
  184. package/src/locale/fr.ts +330 -324
  185. package/src/locale/it.ts +332 -328
  186. package/src/locale/messages.ts +9 -9
  187. package/src/locale/sl.ts +315 -319
  188. package/src/main.ts +28 -31
  189. package/src/router/router.ts +218 -198
  190. package/src/shims-tsx.d.ts +1 -1
  191. package/src/shims-vue.d.ts +1 -1
  192. package/src/stores/ApiStore.ts +44 -44
  193. package/src/stores/AuthStore.ts +24 -16
  194. package/src/stores/CommentStore.ts +13 -11
  195. package/src/stores/FilterStore.ts +25 -15
  196. package/src/stores/GeneralStore.ts +15 -15
  197. package/src/stores/ParamSdkStore.ts +179 -137
  198. package/src/stores/PlayerStore.ts +139 -125
  199. package/src/stores/class/adserver/adserverConfig.ts +1 -1
  200. package/src/stores/class/adserver/adserverOtherEmission.ts +9 -9
  201. package/src/stores/class/cartouchier/cartouche.ts +4 -4
  202. package/src/stores/class/cartouchier/cartouchier.ts +2 -2
  203. package/src/stores/class/conference/conference.ts +10 -9
  204. package/src/stores/class/conference/conferenceMessage.ts +2 -2
  205. package/src/stores/class/conference/conferenceParticipant.ts +1 -1
  206. package/src/stores/class/conference/studioCall.ts +6 -6
  207. package/src/stores/class/contract/contractOrganisation.ts +5 -5
  208. package/src/stores/class/ftp/ftpEmission.ts +9 -9
  209. package/src/stores/class/ftp/testFtpEmission.ts +4 -4
  210. package/src/stores/class/general/audioView.ts +19 -19
  211. package/src/stores/class/general/category.ts +1 -1
  212. package/src/stores/class/general/classicSelectType.ts +2 -3
  213. package/src/stores/class/general/customPlayer.ts +8 -8
  214. package/src/stores/class/general/emission.ts +20 -21
  215. package/src/stores/class/general/fetchParam.ts +8 -2
  216. package/src/stores/class/general/initState.ts +31 -31
  217. package/src/stores/class/general/interfacePageable.ts +13 -13
  218. package/src/stores/class/general/ituneCategory.ts +4 -4
  219. package/src/stores/class/general/listReturn.ts +12 -12
  220. package/src/stores/class/general/media.ts +7 -7
  221. package/src/stores/class/general/organisation.ts +9 -10
  222. package/src/stores/class/general/pageable.ts +10 -10
  223. package/src/stores/class/general/participant.ts +7 -7
  224. package/src/stores/class/general/player.ts +30 -28
  225. package/src/stores/class/general/playlist.ts +17 -19
  226. package/src/stores/class/general/podcast.ts +19 -19
  227. package/src/stores/class/general/sortPageable.ts +4 -4
  228. package/src/stores/class/general/soundcastCategory.ts +7 -7
  229. package/src/stores/class/ouestFrance/ofTag.ts +34 -34
  230. package/src/stores/class/ouestFrance/ofTagInfo.ts +9 -9
  231. package/src/stores/class/ouestFrance/ofTagPage.ts +7 -7
  232. package/src/stores/class/ouestFrance/ofTagSeo.ts +7 -7
  233. package/src/stores/class/ouestFrance/ofTagVente.ts +6 -6
  234. package/src/stores/class/ouestFrance/ofTagWithParents.ts +20 -20
  235. package/src/stores/class/radio/canal.ts +4 -4
  236. package/src/stores/class/radio/live.ts +6 -6
  237. package/src/stores/class/radio/mix.ts +16 -16
  238. package/src/stores/class/radio/playlistMedia.ts +7 -7
  239. package/src/stores/class/radio/recurrence.ts +54 -54
  240. package/src/stores/class/rss/rssEmission.ts +13 -13
  241. package/src/stores/class/rss/rssInfo.ts +7 -7
  242. package/src/stores/class/rubrique/rubriquage.ts +2 -2
  243. package/src/stores/class/rubrique/rubrique.ts +1 -1
  244. package/src/stores/class/stat/statArrayIncome.ts +5 -5
  245. package/src/stores/class/stat/statArrayObject.ts +26 -26
  246. package/src/stores/class/stat/statGraph.ts +6 -6
  247. package/src/stores/class/user/person.ts +4 -2
  248. package/src/stores/class/user/profile.ts +4 -2
  249. package/src/stores/class/user/userKeycloak.ts +4 -5
  250. package/src/components/display/list/Paginate.vue +0 -181
  251. package/src/components/misc/Accordion.vue +0 -78
  252. package/src/components/misc/Footer.vue +0 -165
  253. package/src/components/misc/Nav.vue +0 -119
  254. package/src/components/misc/Popover.vue +0 -193
  255. package/src/components/misc/Snackbar.vue +0 -168
  256. package/src/components/pages/Category.vue +0 -41
  257. package/src/components/pages/Home.vue +0 -125
  258. package/src/components/pages/Lives.vue +0 -64
  259. package/src/components/pages/Playlist.vue +0 -164
  260. package/src/components/pages/Podcast.vue +0 -307
  261. package/src/components/pages/Podcasts.vue +0 -146
  262. package/src/components/pages/Radio.vue +0 -122
  263. package/src/components/pages/Rubrique.vue +0 -42
@@ -1,13 +1,7 @@
1
1
  <template>
2
2
  <div class="d-inline-flex w-100 mb-3 px-3 hide-phone">
3
- <div
4
- ref="rubriqueListContainer"
5
- class="rubrique-list-container"
6
- >
7
- <label
8
- for="rubrique-list-select"
9
- class="hid"
10
- >{{ $t('By topic') }}</label>
3
+ <div ref="rubriqueListContainer" class="rubrique-list-container">
4
+ <label for="rubrique-list-select" class="hid">{{ $t("By topic") }}</label>
11
5
  <select
12
6
  id="rubrique-list-select"
13
7
  v-model="rubriquage"
@@ -38,7 +32,7 @@
38
32
  class="btn btn-primary btn-on-dark m-1 saooti-more"
39
33
  :title="$t('See more')"
40
34
  />
41
- <Popover
35
+ <ClassicPopover
42
36
  ref="popoverRubrique"
43
37
  target="rubriques-dropdown"
44
38
  :only-click="true"
@@ -53,112 +47,137 @@
53
47
  width="auto"
54
48
  @selected="addFilterFromPopover($event)"
55
49
  />
56
- </Popover>
50
+ </ClassicPopover>
57
51
  </div>
58
52
  </template>
59
53
 
60
54
  <script lang="ts">
61
- import Popover from '../../misc/Popover.vue';
62
- import { Rubrique } from '@/stores/class/rubrique/rubrique';
63
- import { Rubriquage } from '@/stores/class/rubrique/rubriquage';
64
- import { RubriquageFilter } from '@/stores/class/rubrique/rubriquageFilter';
65
- import { useFilterStore } from '@/stores/FilterStore';
66
- import { mapState, mapActions } from 'pinia';
67
- import { defineAsyncComponent, defineComponent } from 'vue';
68
- const RubriqueChooser = defineAsyncComponent(() => import('../rubriques/RubriqueChooser.vue'));
55
+ import ClassicPopover from "../../misc/ClassicPopover.vue";
56
+ import { Rubrique } from "@/stores/class/rubrique/rubrique";
57
+ import { Rubriquage } from "@/stores/class/rubrique/rubriquage";
58
+ import { RubriquageFilter } from "@/stores/class/rubrique/rubriquageFilter";
59
+ import { useFilterStore } from "@/stores/FilterStore";
60
+ import { mapState, mapActions } from "pinia";
61
+ import { defineAsyncComponent, defineComponent } from "vue";
62
+ const RubriqueChooser = defineAsyncComponent(
63
+ () => import("../rubriques/RubriqueChooser.vue"),
64
+ );
69
65
  export default defineComponent({
70
- name: 'RubriqueList',
66
+ name: "RubriqueList",
71
67
 
72
- components:{
73
- Popover,
74
- RubriqueChooser
68
+ components: {
69
+ ClassicPopover,
70
+ RubriqueChooser,
75
71
  },
76
72
 
77
73
  props: {
78
- rubriquages: { default: () => [], type: Array as ()=>Array<Rubriquage>},
74
+ rubriquages: { default: () => [], type: Array as () => Array<Rubriquage> },
79
75
  },
80
-
81
76
 
82
77
  data() {
83
78
  return {
84
79
  hidenRubriques: [] as Array<Rubrique>,
85
80
  rubriques: [] as Array<Rubrique>,
86
- rubriquage: undefined as Rubriquage|undefined,
81
+ rubriquage: undefined as Rubriquage | undefined,
87
82
  };
88
83
  },
89
84
 
90
85
  computed: {
91
- ...mapState(useFilterStore, ['filterRubrique', 'filterRubriqueDisplay']),
92
- rubriqueDisplay(): Array<Rubrique>{
93
- return this.filterRubriqueDisplay.filter((rubrique: Rubrique) => 0 !== rubrique.podcastCount );
86
+ ...mapState(useFilterStore, ["filterRubrique", "filterRubriqueDisplay"]),
87
+ rubriqueDisplay(): Array<Rubrique> {
88
+ return this.filterRubriqueDisplay.filter(
89
+ (rubrique: Rubrique) => 0 !== rubrique.podcastCount,
90
+ );
94
91
  },
95
- rubriquageDisplay(): Array<Rubriquage>{
92
+ rubriquageDisplay(): Array<Rubriquage> {
96
93
  const elementToNotShow = Array.from(this.filterRubrique);
97
- if(elementToNotShow.length){
98
- const rubriquageIdToNotShow = elementToNotShow.map(a => a.rubriquageId);
99
- return this.rubriquages.filter((element)=>{
100
- if(!element.rubriquageId){return;}
94
+ if (elementToNotShow.length) {
95
+ const rubriquageIdToNotShow = elementToNotShow.map(
96
+ (a) => a.rubriquageId,
97
+ );
98
+ return this.rubriquages.filter((element) => {
99
+ if (!element.rubriquageId) {
100
+ return;
101
+ }
101
102
  return !rubriquageIdToNotShow.includes(element.rubriquageId);
102
103
  });
103
104
  }
104
105
  return this.rubriquages;
105
106
  },
106
107
  },
107
- watch:{
108
- filterRubrique:{
108
+ watch: {
109
+ filterRubrique: {
109
110
  deep: true,
110
- handler(){
111
+ handler() {
111
112
  this.selectNewRubriquage();
112
- }
113
- }
113
+ },
114
+ },
114
115
  },
115
116
 
116
117
  mounted() {
117
118
  this.selectNewRubriquage();
118
119
  },
119
120
  beforeUnmount(): void {
120
- window.removeEventListener('resize', this.resizeWindow);
121
+ window.removeEventListener("resize", this.resizeWindow);
121
122
  },
122
123
  methods: {
123
- ...mapActions(useFilterStore, ['filterUpdateRubrique', 'filterUpdateRubriqueDisplay']),
124
- initRubriques(): void{
125
- if(!this.rubriquage){ return ;}
124
+ ...mapActions(useFilterStore, [
125
+ "filterUpdateRubrique",
126
+ "filterUpdateRubriqueDisplay",
127
+ ]),
128
+ initRubriques(): void {
129
+ if (!this.rubriquage) {
130
+ return;
131
+ }
126
132
  this.filterUpdateRubriqueDisplay(this.rubriquage.rubriques);
127
- window.addEventListener('resize', this.resizeWindow);
133
+ window.addEventListener("resize", this.resizeWindow);
128
134
  this.$nextTick(() => {
129
135
  this.resizeWindow();
130
136
  });
131
137
  },
132
- addFilterFromPopover(rubrique: Rubrique): void{
138
+ addFilterFromPopover(rubrique: Rubrique): void {
133
139
  (this.$refs.popoverRubrique as InstanceType<typeof Popover>).clearClick();
134
140
  this.addFilter(rubrique);
135
141
  },
136
- addFilter(rubrique: Rubrique): void{
137
- if(!this.rubriquage){ return ;}
142
+ addFilter(rubrique: Rubrique): void {
143
+ if (!this.rubriquage) {
144
+ return;
145
+ }
138
146
  const filterToAdd = {
139
- rubriquageId: this.rubriquage.rubriquageId??0,
140
- rubriqueId: rubrique.rubriqueId??0,
147
+ rubriquageId: this.rubriquage.rubriquageId ?? 0,
148
+ rubriqueId: rubrique.rubriqueId ?? 0,
141
149
  nameRubriquage: this.rubriquage.title,
142
- nameRubrique: rubrique.name
150
+ nameRubrique: rubrique.name,
143
151
  };
144
- const newFilter: Array<RubriquageFilter> = Array.from(this.filterRubrique);
152
+ const newFilter: Array<RubriquageFilter> = Array.from(
153
+ this.filterRubrique,
154
+ );
145
155
  newFilter.push(filterToAdd);
146
156
  this.filterUpdateRubrique(newFilter);
147
157
  const queries = this.$route.query;
148
- const queryString = newFilter.map(value => value.rubriquageId+':'+value.rubriqueId).join();
149
- this.$router.replace({ query: { ...queries, ...{ rubriquesId: queryString }} });
158
+ const queryString = newFilter
159
+ .map((value) => value.rubriquageId + ":" + value.rubriqueId)
160
+ .join();
161
+ this.$router.replace({
162
+ query: { ...queries, ...{ rubriquesId: queryString } },
163
+ });
150
164
  this.selectNewRubriquage();
151
165
  },
152
- selectNewRubriquage(){
166
+ selectNewRubriquage() {
153
167
  const rubriquageLength = this.rubriquages.length;
154
- if(rubriquageLength === this.filterRubrique.length){
168
+ if (rubriquageLength === this.filterRubrique.length) {
155
169
  return;
156
170
  }
157
171
  let index = 0;
158
- const rubriquageAlreadyFilter = this.filterRubrique.map(a => a.rubriquageId);
172
+ const rubriquageAlreadyFilter = this.filterRubrique.map(
173
+ (a) => a.rubriquageId,
174
+ );
159
175
  for (index; index < rubriquageLength; index++) {
160
176
  const rubriquageIdIndex = this.rubriquages[index].rubriquageId;
161
- if(rubriquageIdIndex && !rubriquageAlreadyFilter.includes(rubriquageIdIndex)){
177
+ if (
178
+ rubriquageIdIndex &&
179
+ !rubriquageAlreadyFilter.includes(rubriquageIdIndex)
180
+ ) {
162
181
  break;
163
182
  }
164
183
  }
@@ -166,58 +185,67 @@ export default defineComponent({
166
185
  this.initRubriques();
167
186
  },
168
187
  resizeWindow(): void {
169
- const rubriqueList = (this.$refs.rubriqueListContainer as HTMLElement);
170
- if(null === rubriqueList){return}
171
- rubriqueList.style.justifyContent = 'flex-start';
188
+ const rubriqueList = this.$refs.rubriqueListContainer as HTMLElement;
189
+ if (null === rubriqueList) {
190
+ return;
191
+ }
192
+ rubriqueList.style.justifyContent = "flex-start";
172
193
  this.hidenRubriques.length = 0;
173
194
  this.rubriqueDisplay.forEach((element: Rubrique) => {
174
- const el = (this.$refs['rubrique' + element.rubriqueId] as Array<HTMLElement>)[0];
195
+ const el = (
196
+ this.$refs["rubrique" + element.rubriqueId] as Array<HTMLElement>
197
+ )[0];
175
198
  if (!el) return;
176
- if (el.classList.contains('hid')) {
177
- el.classList.remove('hid');
199
+ if (el.classList.contains("hid")) {
200
+ el.classList.remove("hid");
178
201
  }
179
202
  });
180
203
  this.rubriqueDisplay.forEach((element: Rubrique) => {
181
- const el = (this.$refs['rubrique' + element.rubriqueId] as Array<HTMLElement>)[0];
204
+ const el = (
205
+ this.$refs["rubrique" + element.rubriqueId] as Array<HTMLElement>
206
+ )[0];
182
207
  if (!el) return;
183
208
  const parent = el.parentElement;
184
- if (null !== parent && el.offsetLeft + el.clientWidth <= parent.clientWidth - 20) {
209
+ if (
210
+ null !== parent &&
211
+ el.offsetLeft + el.clientWidth <= parent.clientWidth - 20
212
+ ) {
185
213
  return;
186
214
  }
187
215
  this.hidenRubriques.push(element);
188
- if (!el.classList.contains('hid')) {
189
- el.className += ' hid';
216
+ if (!el.classList.contains("hid")) {
217
+ el.className += " hid";
190
218
  }
191
219
  });
192
220
  if (!this.hidenRubriques.length) {
193
- rubriqueList.style.justifyContent = 'center';
221
+ rubriqueList.style.justifyContent = "center";
194
222
  }
195
223
  },
196
- onRubriquageSelected(){
224
+ onRubriquageSelected() {
197
225
  this.initRubriques();
198
- }
199
- }
200
- })
226
+ },
227
+ },
228
+ });
201
229
  </script>
202
230
 
203
231
  <style lang="scss">
204
- @import '@scss/_variables.scss';
205
- .octopus-app{
206
- .rubrique-list-container {
207
- display: flex;
208
- justify-content: flex-start;
209
- align-items: center;
210
- overflow: hidden;
211
- flex-grow: 1;
212
- width: 0;
213
- padding: 0 4rem;
214
- select{
215
- width: auto;
216
- border-radius: $octopus-borderradius;
217
- margin: 0.25rem;
218
- font-size: 0.6rem;
219
- padding: 0.5rem;
232
+ @import "@scss/_variables.scss";
233
+ .octopus-app {
234
+ .rubrique-list-container {
235
+ display: flex;
236
+ justify-content: flex-start;
237
+ align-items: center;
238
+ overflow: hidden;
239
+ flex-grow: 1;
240
+ width: 0;
241
+ padding: 0 4rem;
242
+ select {
243
+ width: auto;
244
+ border-radius: $octopus-borderradius;
245
+ margin: 0.25rem;
246
+ font-size: 0.6rem;
247
+ padding: 0.5rem;
248
+ }
220
249
  }
221
250
  }
222
- }
223
- </style>
251
+ </style>
@@ -1,10 +1,8 @@
1
1
  <template>
2
2
  <div class="h4 mb-2 mt-3">
3
- {{ $t('player parameters') }}
3
+ {{ $t("player parameters") }}
4
4
  </div>
5
- <template
6
- v-if="choseNumberEpisode"
7
- >
5
+ <template v-if="choseNumberEpisode">
8
6
  <div
9
7
  v-if="displayChoiceAllEpisodes"
10
8
  class="d-flex align-items-center flex-wrap mt-1"
@@ -15,8 +13,8 @@
15
13
  type="radio"
16
14
  name="episodeNumbers"
17
15
  value="all"
18
- >
19
- <span class="flex-shrink-0">{{ $t('Show every episode') }}</span>
16
+ />
17
+ <span class="flex-shrink-0">{{ $t("Show every episode") }}</span>
20
18
  </div>
21
19
  <div
22
20
  class="d-flex align-items-center flex-wrap"
@@ -29,21 +27,18 @@
29
27
  type="radio"
30
28
  name="episodeNumbers"
31
29
  value="number"
32
- >
33
- <span class="flex-shrink-0">{{ $t('Show') }}</span>
30
+ />
31
+ <span class="flex-shrink-0">{{ $t("Show") }}</span>
34
32
  <input
35
33
  id="number-input"
36
34
  v-model="iFrameNumber"
37
35
  type="number"
38
36
  min="1"
39
37
  max="50"
40
- class="input-share-player text-center m-2"
41
- >
42
- <label
43
- for="number-input"
44
- :title="$t('Number of player podcasts')"
38
+ class="input-share-player text-center m-2"
45
39
  />
46
- <span class="flex-shrink-0">{{ $t('Last podcasts') }}</span>
40
+ <label for="number-input" :title="$t('Number of player podcasts')" />
41
+ <span class="flex-shrink-0">{{ $t("Last podcasts") }}</span>
47
42
  </div>
48
43
  <ClassicCheckbox
49
44
  v-model:textInit="proceedReading"
@@ -76,30 +71,38 @@
76
71
  </template>
77
72
 
78
73
  <script lang="ts">
79
- import ClassicCheckbox from '../../form/ClassicCheckbox.vue';
80
- import { defineComponent } from 'vue'
74
+ import ClassicCheckbox from "../../form/ClassicCheckbox.vue";
75
+ import { defineComponent } from "vue";
81
76
  export default defineComponent({
82
- components:{
83
- ClassicCheckbox
77
+ components: {
78
+ ClassicCheckbox,
84
79
  },
85
80
  props: {
86
- isVisible: { default: false, type: Boolean},
87
- choseNumberEpisode: {default: false, type: Boolean},
88
- displayChoiceAllEpisodes: {default: false, type: Boolean},
89
- displayTranscriptParam: {default: false, type: Boolean},
90
- displayArticleParam: {default: false, type: Boolean},
81
+ isVisible: { default: false, type: Boolean },
82
+ choseNumberEpisode: { default: false, type: Boolean },
83
+ displayChoiceAllEpisodes: { default: false, type: Boolean },
84
+ displayTranscriptParam: { default: false, type: Boolean },
85
+ displayArticleParam: { default: false, type: Boolean },
91
86
  },
92
- emits: ['episodeNumbers', 'proceedReading', 'isVisible', 'iFrameNumber', 'displayArticle', 'displayTranscript', 'displayWave'],
87
+ emits: [
88
+ "episodeNumbers",
89
+ "proceedReading",
90
+ "isVisible",
91
+ "iFrameNumber",
92
+ "displayArticle",
93
+ "displayTranscript",
94
+ "displayWave",
95
+ ],
93
96
 
94
97
  data() {
95
98
  return {
96
99
  proceedReading: true as boolean,
97
- episodeNumbers: 'number' as string,
98
- iFrameNumberPriv: '3' as string,
100
+ episodeNumbers: "number" as string,
101
+ iFrameNumberPriv: "3" as string,
99
102
  isVisibleTemp: this.isVisible,
100
103
  displayArticle: true as boolean,
101
- displayTranscript:true as boolean,
102
- displayWave:true as boolean,
104
+ displayTranscript: true as boolean,
105
+ displayWave: true as boolean,
103
106
  };
104
107
  },
105
108
  computed: {
@@ -117,39 +120,39 @@ export default defineComponent({
117
120
  },
118
121
  watch: {
119
122
  episodeNumbers(): void {
120
- this.$emit('episodeNumbers', this.episodeNumbers);
123
+ this.$emit("episodeNumbers", this.episodeNumbers);
121
124
  },
122
125
  proceedReading(): void {
123
- this.$emit('proceedReading', this.proceedReading);
126
+ this.$emit("proceedReading", this.proceedReading);
124
127
  },
125
128
  isVisibleTemp(): void {
126
- this.$emit('isVisible', this.isVisibleTemp);
129
+ this.$emit("isVisible", this.isVisibleTemp);
127
130
  },
128
131
  isVisible(): void {
129
132
  this.isVisibleTemp = this.isVisible;
130
133
  },
131
134
  iFrameNumberPriv(): void {
132
- this.$emit('iFrameNumber', this.iFrameNumberPriv);
135
+ this.$emit("iFrameNumber", this.iFrameNumberPriv);
136
+ },
137
+ displayArticle(): void {
138
+ this.$emit("displayArticle", this.displayArticle);
133
139
  },
134
- displayArticle(): void{
135
- this.$emit('displayArticle', this.displayArticle);
140
+ displayTranscript(): void {
141
+ this.$emit("displayTranscript", this.displayTranscript);
136
142
  },
137
- displayTranscript(): void{
138
- this.$emit('displayTranscript', this.displayTranscript);
143
+ displayWave(): void {
144
+ this.$emit("displayWave", this.displayWave);
139
145
  },
140
- displayWave(): void{
141
- this.$emit('displayWave', this.displayWave);
142
- }
143
146
  },
144
- })
147
+ });
145
148
  </script>
146
149
 
147
150
  <style lang="scss">
148
- .octopus-app{
151
+ .octopus-app {
149
152
  .input-share-player {
150
153
  border: 1px solid #ddd;
151
154
  border-radius: 50px;
152
155
  width: 60px;
153
156
  }
154
157
  }
155
- </style>
158
+ </style>
@@ -6,94 +6,100 @@
6
6
  level="H"
7
7
  :foreground="color"
8
8
  class="myQrCode"
9
- :margin="2"
9
+ :margin="2"
10
10
  />
11
11
  <ClassicCheckbox
12
- v-if="'#000000'!==otherColor"
12
+ v-if="'#000000' !== otherColor"
13
13
  v-model:textInit="isNotBlack"
14
14
  class="flex-shrink-0"
15
15
  id-checkbox="is-black-qr-code"
16
16
  :label="$t('Use organization color')"
17
17
  />
18
- <button
19
- class="btn m-3"
20
- @click="download"
21
- >
22
- {{ $t('Download') }}
18
+ <button class="btn m-3" @click="download">
19
+ {{ $t("Download") }}
23
20
  </button>
24
- <Snackbar
25
- ref="snackbar"
26
- position="bottom-left"
27
- />
21
+ <SnackBar ref="snackbar" position="bottom-left" />
28
22
  </div>
29
23
  </template>
30
24
 
31
25
  <script lang="ts">
32
- import ClassicCheckbox from '../../form/ClassicCheckbox.vue';
33
- import { state } from '../../../stores/ParamSdkStore';
34
- import octopusApi from '@saooti/octopus-api';
35
- import Snackbar from '../../misc/Snackbar.vue';
36
- import QrcodeVue from 'qrcode.vue';
37
- import { useAuthStore } from '@/stores/AuthStore';
38
- import { mapState } from 'pinia';
39
- import { defineComponent } from 'vue'
26
+ import ClassicCheckbox from "../../form/ClassicCheckbox.vue";
27
+ import { state } from "../../../stores/ParamSdkStore";
28
+ import octopusApi from "@saooti/octopus-api";
29
+ import SnackBar from "../../misc/SnackBar.vue";
30
+ import QrcodeVue from "qrcode.vue";
31
+ import { useAuthStore } from "@/stores/AuthStore";
32
+ import { mapState } from "pinia";
33
+ import { defineComponent } from "vue";
40
34
  export default defineComponent({
41
- name: 'QrCode',
35
+ name: "QrCode",
42
36
 
43
37
  components: {
44
- Snackbar,
38
+ SnackBar,
45
39
  QrcodeVue,
46
- ClassicCheckbox
40
+ ClassicCheckbox,
47
41
  },
48
42
  props: {
49
- url: { default: '', type: String},
43
+ url: { default: "", type: String },
50
44
  },
51
45
  data() {
52
46
  return {
53
47
  size: 200 as number,
54
48
  color: "#000000" as string,
55
- otherColor:"#000000" as string,
49
+ otherColor: "#000000" as string,
56
50
  isNotBlack: false as boolean,
57
51
  };
58
52
  },
59
- computed:{
60
- ...mapState(useAuthStore, ['authOrganisation']),
53
+ computed: {
54
+ ...mapState(useAuthStore, ["authOrganisation"]),
61
55
  },
62
- watch:{
63
- isNotBlack(){
56
+ watch: {
57
+ isNotBlack() {
64
58
  this.color = this.isNotBlack ? this.otherColor : "#000000";
65
- }
59
+ },
66
60
  },
67
- created(){
61
+ created() {
68
62
  this.initColor();
69
63
  },
70
- methods:{
71
- download(): void{
72
- const link = document.createElement('a');
73
- link.download = 'qrcode.png';
74
- const canvas = document.getElementsByClassName('myQrCode');
75
- if(canvas && canvas.length > 0 && canvas[0]){
64
+ methods: {
65
+ download(): void {
66
+ const link = document.createElement("a");
67
+ link.download = "qrcode.png";
68
+ const canvas = document.getElementsByClassName("myQrCode");
69
+ if (canvas && canvas.length > 0 && canvas[0]) {
76
70
  link.href = (canvas[0] as HTMLCanvasElement).toDataURL();
77
71
  link.click();
78
- (this.$refs.snackbar as InstanceType<typeof Snackbar>).open(this.$t('Download started'));
72
+ (this.$refs.snackbar as InstanceType<typeof SnackBar>).open(
73
+ this.$t("Download started"),
74
+ );
79
75
  }
80
76
  },
81
77
  async initColor(): Promise<void> {
82
- if(state.generalParameters.podcastmaker && state.generalParameters.podcastmakerColor){
78
+ if (
79
+ state.generalParameters.podcastmaker &&
80
+ state.generalParameters.podcastmakerColor
81
+ ) {
83
82
  this.otherColor = state.generalParameters.podcastmakerColor;
84
83
  return;
85
84
  }
86
85
  if (!state.generalParameters.authenticated) return;
87
86
  let data;
88
- if(""!==this.authOrganisation.id && this.authOrganisation.attributes && Object.keys(this.authOrganisation.attributes).length > 1){
87
+ if (
88
+ "" !== this.authOrganisation.id &&
89
+ this.authOrganisation.attributes &&
90
+ Object.keys(this.authOrganisation.attributes).length > 1
91
+ ) {
89
92
  data = this.authOrganisation.attributes;
90
- }else{
91
- data= await octopusApi.fetchData<{[key:string]:string}>(0, 'organisation/attributes/'+state.generalParameters.organisationId);
93
+ } else {
94
+ data = await octopusApi.fetchData<{ [key: string]: string }>(
95
+ 0,
96
+ "organisation/attributes/" + state.generalParameters.organisationId,
97
+ );
92
98
  }
93
- if (Object.prototype.hasOwnProperty.call(data,'COLOR')) {
94
- this.otherColor = (data.COLOR as string);
99
+ if (Object.prototype.hasOwnProperty.call(data, "COLOR")) {
100
+ this.otherColor = data.COLOR as string;
95
101
  }
96
102
  },
97
- }
98
- })
99
- </script>
103
+ },
104
+ });
105
+ </script>