@saooti/octopus-sdk 37.0.6 → 37.0.8

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 (236) hide show
  1. package/README.md +2 -2
  2. package/index.ts +22 -22
  3. package/package.json +26 -22
  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/assets/transition.scss +34 -22
  8. package/src/components/display/aggregator/RssSection.vue +3 -3
  9. package/src/components/display/categories/CategoryChooser.vue +73 -60
  10. package/src/components/display/categories/CategoryFilter.vue +134 -90
  11. package/src/components/display/categories/CategoryList.vue +76 -62
  12. package/src/components/display/comments/AddCommentModal.vue +44 -44
  13. package/src/components/display/comments/CommentBasicView.vue +38 -30
  14. package/src/components/display/comments/CommentInput.vue +121 -106
  15. package/src/components/display/comments/CommentItem.vue +144 -102
  16. package/src/components/display/comments/CommentList.vue +117 -85
  17. package/src/components/display/comments/CommentParentInfo.vue +18 -15
  18. package/src/components/display/comments/CommentPlayer.vue +39 -41
  19. package/src/components/display/comments/CommentSection.vue +68 -53
  20. package/src/components/display/edit/EditBox.vue +7 -7
  21. package/src/components/display/edit/EditBoxRadio.vue +3 -4
  22. package/src/components/display/edit/EditCommentBox.vue +34 -36
  23. package/src/components/display/emission/EmissionInlineList.vue +75 -63
  24. package/src/components/display/emission/EmissionItem.vue +47 -35
  25. package/src/components/display/emission/EmissionList.vue +118 -83
  26. package/src/components/display/emission/EmissionPlayerItem.vue +89 -89
  27. package/src/components/display/filter/AdvancedSearch.vue +81 -73
  28. package/src/components/display/filter/CategorySearchFilter.vue +27 -25
  29. package/src/components/display/filter/DateFilter.vue +38 -38
  30. package/src/components/display/filter/MonetizableFilter.vue +16 -14
  31. package/src/components/display/filter/ProductorSearch.vue +55 -47
  32. package/src/components/display/filter/RubriqueChoice.vue +42 -27
  33. package/src/components/display/filter/RubriqueFilter.vue +130 -85
  34. package/src/components/display/filter/SearchOrder.vue +16 -11
  35. package/src/components/display/list/ListPaginate.vue +72 -70
  36. package/src/components/display/list/PaginateParams.vue +29 -30
  37. package/src/components/display/list/PaginateSection.vue +210 -0
  38. package/src/components/display/list/SwiperList.vue +28 -32
  39. package/src/components/display/live/CountDown.vue +12 -14
  40. package/src/components/display/live/LiveHorizontalList.vue +60 -50
  41. package/src/components/display/live/LiveItem.vue +42 -26
  42. package/src/components/display/live/LiveList.vue +92 -65
  43. package/src/components/display/live/RadioCurrently.vue +47 -42
  44. package/src/components/display/live/RadioImage.vue +40 -42
  45. package/src/components/display/live/RadioItem.vue +15 -22
  46. package/src/components/display/live/RadioList.vue +24 -21
  47. package/src/components/display/live/RadioPlanning.vue +105 -68
  48. package/src/components/display/organisation/OrganisationChooser.vue +58 -42
  49. package/src/components/display/organisation/OrganisationChooserLight.vue +27 -19
  50. package/src/components/display/participant/ParticipantItem.vue +89 -77
  51. package/src/components/display/participant/ParticipantList.vue +90 -60
  52. package/src/components/display/playlist/PlaylistItem.vue +32 -35
  53. package/src/components/display/playlist/PlaylistList.vue +70 -52
  54. package/src/components/display/playlist/PodcastList.vue +61 -50
  55. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +47 -38
  56. package/src/components/display/podcasts/AnimatorsItem.vue +17 -15
  57. package/src/components/display/podcasts/ParticipantDescription.vue +21 -22
  58. package/src/components/display/podcasts/PodcastFilterList.vue +28 -26
  59. package/src/components/display/podcasts/PodcastImage.vue +129 -131
  60. package/src/components/display/podcasts/PodcastInlineList.vue +33 -29
  61. package/src/components/display/podcasts/PodcastInlineListClassic.vue +91 -71
  62. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +94 -85
  63. package/src/components/display/podcasts/PodcastItem.vue +96 -90
  64. package/src/components/display/podcasts/PodcastItemInfo.vue +61 -65
  65. package/src/components/display/podcasts/PodcastList.vue +115 -84
  66. package/src/components/display/podcasts/PodcastModuleBox.vue +95 -104
  67. package/src/components/display/podcasts/PodcastPlayBar.vue +45 -32
  68. package/src/components/display/podcasts/PodcastSwiperList.vue +65 -55
  69. package/src/components/display/podcasts/TagList.vue +33 -37
  70. package/src/components/display/rubriques/RubriqueChooser.vue +70 -51
  71. package/src/components/display/rubriques/RubriqueList.vue +117 -89
  72. package/src/components/display/sharing/PlayerParameters.vue +45 -42
  73. package/src/components/display/sharing/QrCode.vue +52 -46
  74. package/src/components/display/sharing/ShareButtons.vue +18 -18
  75. package/src/components/display/sharing/ShareButtonsIntern.vue +100 -78
  76. package/src/components/display/sharing/ShareDistribution.vue +101 -67
  77. package/src/components/display/sharing/SharePlayer.vue +207 -127
  78. package/src/components/display/sharing/SharePlayerColors.vue +15 -15
  79. package/src/components/display/sharing/SharePlayerRadio.vue +62 -39
  80. package/src/components/display/sharing/SharePlayerTypes.vue +93 -55
  81. package/src/components/display/sharing/SubscribeButtons.vue +83 -32
  82. package/src/components/display/studio/RecordingItemButton.vue +3 -3
  83. package/src/components/form/ClassicCheckbox.vue +32 -31
  84. package/src/components/form/ClassicDatePicker.vue +47 -49
  85. package/src/components/form/ClassicInputText.vue +99 -98
  86. package/src/components/form/ClassicLoading.vue +11 -14
  87. package/src/components/form/ClassicMultiselect.vue +125 -126
  88. package/src/components/form/ClassicRadio.vue +15 -18
  89. package/src/components/form/ClassicSearch.vue +17 -23
  90. package/src/components/form/ClassicSelect.vue +35 -27
  91. package/src/components/form/{Wysiwyg.vue → ClassicWysiwyg.vue} +103 -118
  92. package/src/components/misc/AcpmImage.vue +6 -6
  93. package/src/components/misc/ClassicAccordion.vue +73 -0
  94. package/src/components/misc/ClassicNav.vue +117 -0
  95. package/src/components/misc/ClassicPopover.vue +212 -0
  96. package/src/components/misc/{Spinner.vue → ClassicSpinner.vue} +14 -15
  97. package/src/components/misc/ErrorMessage.vue +9 -17
  98. package/src/components/misc/FooterSection.vue +198 -0
  99. package/src/components/misc/HomeDropdown.vue +60 -60
  100. package/src/components/misc/LeftMenu.vue +115 -79
  101. package/src/components/misc/ProgressBar.vue +36 -32
  102. package/src/components/misc/SnackBar.vue +169 -0
  103. package/src/components/misc/TopBar.vue +162 -116
  104. package/src/components/misc/modal/ClassicModal.vue +99 -103
  105. package/src/components/misc/modal/ClipboardModal.vue +21 -23
  106. package/src/components/misc/modal/MessageModal.vue +22 -28
  107. package/src/components/misc/modal/NewsletterModal.vue +139 -113
  108. package/src/components/misc/modal/QrCodeModal.vue +14 -17
  109. package/src/components/misc/modal/ShareModalPlayer.vue +44 -60
  110. package/src/components/misc/player/PlayerCompact.vue +47 -62
  111. package/src/components/misc/player/{Player.vue → PlayerComponent.vue} +54 -46
  112. package/src/components/misc/player/PlayerLarge.vue +62 -61
  113. package/src/components/misc/player/PlayerProgressBar.vue +40 -30
  114. package/src/components/misc/player/PlayerTimeline.vue +32 -36
  115. package/src/components/misc/player/radio/RadioHistory.vue +62 -59
  116. package/src/components/misc/player/radio/RadioProgressBar.vue +44 -35
  117. package/src/components/mixins/cookies.ts +11 -10
  118. package/src/components/mixins/displayMethods.ts +5 -4
  119. package/src/components/mixins/handle403.ts +9 -9
  120. package/src/components/mixins/imageProxy.ts +14 -7
  121. package/src/components/mixins/init.ts +31 -16
  122. package/src/components/mixins/orgaComputed.ts +7 -7
  123. package/src/components/mixins/organisationFilter.ts +36 -22
  124. package/src/components/mixins/player/playerComment.ts +46 -37
  125. package/src/components/mixins/player/playerDisplay.ts +122 -87
  126. package/src/components/mixins/player/playerLive.ts +65 -43
  127. package/src/components/mixins/player/playerLogic.ts +133 -88
  128. package/src/components/mixins/player/playerTranscript.ts +48 -30
  129. package/src/components/mixins/radio/fetchRadioData.ts +40 -23
  130. package/src/components/mixins/selenium.ts +2 -2
  131. package/src/components/mixins/tagOfMixins.ts +11 -11
  132. package/src/components/pages/CategoryPage.vue +43 -0
  133. package/src/components/pages/{Emission.vue → EmissionPage.vue} +98 -67
  134. package/src/components/pages/{Emissions.vue → EmissionsPage.vue} +51 -44
  135. package/src/components/pages/Error403Page.vue +20 -19
  136. package/src/components/pages/HomePage.vue +144 -0
  137. package/src/components/pages/LivesPage.vue +66 -0
  138. package/src/components/pages/PageNotFound.vue +33 -22
  139. package/src/components/pages/{Participant.vue → ParticipantPage.vue} +63 -49
  140. package/src/components/pages/{Participants.vue → ParticipantsPage.vue} +9 -9
  141. package/src/components/pages/PlaylistPage.vue +175 -0
  142. package/src/components/pages/{Playlists.vue → PlaylistsPage.vue} +16 -14
  143. package/src/components/pages/PodcastPage.vue +365 -0
  144. package/src/components/pages/PodcastsPage.vue +152 -0
  145. package/src/components/pages/RadioPage.vue +131 -0
  146. package/src/components/pages/RubriquePage.vue +45 -0
  147. package/src/components/pages/{Search.vue → SearchPage.vue} +19 -19
  148. package/src/helper/dom.ts +1 -1
  149. package/src/helper/duration.ts +10 -4
  150. package/src/helper/useEventListener.ts +7 -8
  151. package/src/i18n.ts +31 -30
  152. package/src/locale/de.ts +272 -257
  153. package/src/locale/educationen.ts +13 -13
  154. package/src/locale/educationfr.ts +1 -1
  155. package/src/locale/en.ts +332 -324
  156. package/src/locale/es.ts +334 -318
  157. package/src/locale/fr.ts +339 -324
  158. package/src/locale/it.ts +341 -328
  159. package/src/locale/messages.ts +9 -9
  160. package/src/locale/sl.ts +324 -319
  161. package/src/main.ts +28 -31
  162. package/src/router/router.ts +218 -198
  163. package/src/shims-tsx.d.ts +1 -1
  164. package/src/shims-vue.d.ts +1 -1
  165. package/src/stores/ApiStore.ts +44 -44
  166. package/src/stores/AuthStore.ts +21 -15
  167. package/src/stores/CommentStore.ts +13 -11
  168. package/src/stores/FilterStore.ts +25 -15
  169. package/src/stores/GeneralStore.ts +15 -15
  170. package/src/stores/ParamSdkStore.ts +179 -137
  171. package/src/stores/PlayerStore.ts +139 -125
  172. package/src/stores/class/adserver/adserverConfig.ts +1 -1
  173. package/src/stores/class/adserver/adserverOtherEmission.ts +9 -9
  174. package/src/stores/class/cartouchier/cartouche.ts +4 -4
  175. package/src/stores/class/cartouchier/cartouchier.ts +2 -2
  176. package/src/stores/class/conference/conference.ts +10 -9
  177. package/src/stores/class/conference/conferenceMessage.ts +2 -2
  178. package/src/stores/class/conference/conferenceParticipant.ts +1 -1
  179. package/src/stores/class/conference/studioCall.ts +6 -6
  180. package/src/stores/class/contract/contractOrganisation.ts +5 -5
  181. package/src/stores/class/ftp/ftpEmission.ts +9 -9
  182. package/src/stores/class/ftp/testFtpEmission.ts +4 -4
  183. package/src/stores/class/general/audioView.ts +19 -19
  184. package/src/stores/class/general/category.ts +1 -1
  185. package/src/stores/class/general/classicSelectType.ts +2 -3
  186. package/src/stores/class/general/customPlayer.ts +8 -8
  187. package/src/stores/class/general/emission.ts +20 -20
  188. package/src/stores/class/general/fetchParam.ts +8 -2
  189. package/src/stores/class/general/initState.ts +31 -31
  190. package/src/stores/class/general/interfacePageable.ts +13 -13
  191. package/src/stores/class/general/ituneCategory.ts +4 -4
  192. package/src/stores/class/general/listReturn.ts +12 -12
  193. package/src/stores/class/general/media.ts +7 -7
  194. package/src/stores/class/general/organisation.ts +9 -9
  195. package/src/stores/class/general/pageable.ts +10 -10
  196. package/src/stores/class/general/participant.ts +7 -7
  197. package/src/stores/class/general/player.ts +30 -28
  198. package/src/stores/class/general/playlist.ts +17 -19
  199. package/src/stores/class/general/podcast.ts +19 -19
  200. package/src/stores/class/general/sortPageable.ts +4 -4
  201. package/src/stores/class/general/soundcastCategory.ts +7 -7
  202. package/src/stores/class/ouestFrance/ofTag.ts +34 -34
  203. package/src/stores/class/ouestFrance/ofTagInfo.ts +9 -9
  204. package/src/stores/class/ouestFrance/ofTagPage.ts +7 -7
  205. package/src/stores/class/ouestFrance/ofTagSeo.ts +7 -7
  206. package/src/stores/class/ouestFrance/ofTagVente.ts +6 -6
  207. package/src/stores/class/ouestFrance/ofTagWithParents.ts +20 -20
  208. package/src/stores/class/radio/canal.ts +4 -4
  209. package/src/stores/class/radio/live.ts +6 -6
  210. package/src/stores/class/radio/mix.ts +16 -16
  211. package/src/stores/class/radio/playlistMedia.ts +7 -7
  212. package/src/stores/class/radio/recurrence.ts +54 -54
  213. package/src/stores/class/rss/rssEmission.ts +13 -13
  214. package/src/stores/class/rss/rssInfo.ts +7 -7
  215. package/src/stores/class/rubrique/rubriquage.ts +2 -2
  216. package/src/stores/class/rubrique/rubrique.ts +1 -1
  217. package/src/stores/class/stat/statArrayIncome.ts +5 -5
  218. package/src/stores/class/stat/statArrayObject.ts +26 -26
  219. package/src/stores/class/stat/statGraph.ts +6 -6
  220. package/src/stores/class/user/person.ts +4 -2
  221. package/src/stores/class/user/profile.ts +4 -2
  222. package/src/stores/class/user/userKeycloak.ts +4 -5
  223. package/src/components/display/list/Paginate.vue +0 -181
  224. package/src/components/misc/Accordion.vue +0 -78
  225. package/src/components/misc/Footer.vue +0 -169
  226. package/src/components/misc/Nav.vue +0 -119
  227. package/src/components/misc/Popover.vue +0 -193
  228. package/src/components/misc/Snackbar.vue +0 -168
  229. package/src/components/pages/Category.vue +0 -41
  230. package/src/components/pages/Home.vue +0 -125
  231. package/src/components/pages/Lives.vue +0 -64
  232. package/src/components/pages/Playlist.vue +0 -164
  233. package/src/components/pages/Podcast.vue +0 -307
  234. package/src/components/pages/Podcasts.vue +0 -146
  235. package/src/components/pages/Radio.vue +0 -122
  236. package/src/components/pages/Rubrique.vue +0 -42
@@ -1,23 +1,30 @@
1
1
  <template>
2
- <div
3
- class="top-bar-container"
4
- :class="{ 'scrolled': scrolled }"
5
- >
2
+ <div class="top-bar-container" :class="{ scrolled: scrolled }">
6
3
  <router-link
7
4
  class="top-bar-logo"
8
5
  :to="{
9
6
  name: 'home',
10
- query: { productor: filterOrgaId,
11
- iabId: filterIab?.id ,
12
- rubriquesId: rubriqueQueryParam},
7
+ query: {
8
+ productor: filterOrgaId,
9
+ iabId: filterIab?.id,
10
+ rubriquesId: rubriqueQueryParam,
11
+ },
13
12
  }"
14
13
  @click="onDisplayMenu(true)"
15
14
  >
16
15
  <img
17
- :src="!filterOrgaId || '' === imgUrl ? logoUrl : proxyImageUrl(imgUrl, '', '50')"
18
- :alt="!filterOrgaId || '' === imgUrl ? $t('Logo of main page') : $t('Visual', {name: filterName})"
16
+ :src="
17
+ !filterOrgaId || '' === imgUrl
18
+ ? logoUrl
19
+ : proxyImageUrl(imgUrl, '', '50')
20
+ "
21
+ :alt="
22
+ !filterOrgaId || '' === imgUrl
23
+ ? $t('Logo of main page')
24
+ : $t('Visual', { name: filterName })
25
+ "
19
26
  :class="isEducation ? 'educationLogo' : ''"
20
- >
27
+ />
21
28
  </router-link>
22
29
  <OrganisationChooserLight
23
30
  v-if="!isPodcastmaker"
@@ -29,11 +36,8 @@
29
36
  :reset="reset"
30
37
  @selected="onOrganisationSelected"
31
38
  />
32
- <div class="d-flex justify-content-end flex-grow-1">
33
- <template
34
- v-for="link in routerLinkArray"
35
- :key="link.routeName"
36
- >
39
+ <div class="d-flex align-items-center justify-content-end flex-grow-1">
40
+ <template v-for="link in routerLinkArray" :key="link.routeName">
37
41
  <router-link
38
42
  v-if="link.condition"
39
43
  :to="{
@@ -50,21 +54,18 @@
50
54
  class="d-flex align-items-center hide-phone btn-transparent p-3"
51
55
  >
52
56
  <div class="link-hover">
53
- {{ $t('More') }}
57
+ {{ $t("More") }}
54
58
  </div>
55
59
  <div class="ms-1 saooti-down" />
56
60
  </button>
57
- <Popover
61
+ <ClassicPopover
58
62
  target="more-dropdown"
59
63
  :only-click="true"
60
64
  :is-fixed="true"
61
65
  :left-pos="true"
62
66
  >
63
67
  <div class="d-flex flex-column">
64
- <template
65
- v-for="link in routerLinkInsideArray"
66
- :key="link.routeName"
67
- >
68
+ <template v-for="link in routerLinkInsideArray" :key="link.routeName">
68
69
  <router-link
69
70
  v-if="link.condition"
70
71
  :to="{
@@ -77,7 +78,7 @@
77
78
  </router-link>
78
79
  </template>
79
80
  </div>
80
- </Popover>
81
+ </ClassicPopover>
81
82
  </div>
82
83
  <button
83
84
  class="btn-transparent saooti-menu"
@@ -101,30 +102,32 @@
101
102
  </template>
102
103
 
103
104
  <script lang="ts">
104
- import { state } from '../../stores/ParamSdkStore';
105
- import HomeDropdown from './HomeDropdown.vue';
106
- import { Organisation } from '@/stores/class/general/organisation';
107
- import orgaFilter from '../mixins/organisationFilter';
108
- import imageProxy from '../mixins/imageProxy';
109
- import { useFilterStore } from '@/stores/FilterStore';
110
- import { mapState } from 'pinia';
111
- import { RubriquageFilter } from '@/stores/class/rubrique/rubriquageFilter';
112
- import Popover from '../misc/Popover.vue';
113
- import { defineComponent,defineAsyncComponent } from 'vue';
114
- const OrganisationChooserLight = defineAsyncComponent(() => import('../display/organisation/OrganisationChooserLight.vue'));
105
+ import { state } from "../../stores/ParamSdkStore";
106
+ import HomeDropdown from "./HomeDropdown.vue";
107
+ import { Organisation } from "@/stores/class/general/organisation";
108
+ import orgaFilter from "../mixins/organisationFilter";
109
+ import imageProxy from "../mixins/imageProxy";
110
+ import { useFilterStore } from "@/stores/FilterStore";
111
+ import { mapState } from "pinia";
112
+ import { RubriquageFilter } from "@/stores/class/rubrique/rubriquageFilter";
113
+ import ClassicPopover from "../misc/ClassicPopover.vue";
114
+ import { defineComponent, defineAsyncComponent } from "vue";
115
+ const OrganisationChooserLight = defineAsyncComponent(
116
+ () => import("../display/organisation/OrganisationChooserLight.vue"),
117
+ );
115
118
  export default defineComponent({
116
- name: 'TopBar',
119
+ name: "TopBar",
117
120
  components: {
118
121
  OrganisationChooserLight,
119
122
  HomeDropdown,
120
- Popover
123
+ ClassicPopover,
121
124
  },
122
- mixins:[orgaFilter, imageProxy],
125
+ mixins: [orgaFilter, imageProxy],
123
126
  props: {
124
- displayMenu: { default: false, type: Boolean},
125
- isEducation: { default: false, type: Boolean},
127
+ displayMenu: { default: false, type: Boolean },
128
+ isEducation: { default: false, type: Boolean },
126
129
  },
127
- emits: ['update:displayMenu'],
130
+ emits: ["update:displayMenu"],
128
131
  data() {
129
132
  return {
130
133
  scrolled: false as boolean,
@@ -135,36 +138,74 @@ export default defineComponent({
135
138
  };
136
139
  },
137
140
  computed: {
138
- ...mapState(useFilterStore, ['filterLive', 'filterOrgaId', 'filterImgUrl', 'filterIab', 'filterRubrique', 'filterName']),
139
- routerLinkArray(){
141
+ ...mapState(useFilterStore, [
142
+ "filterLive",
143
+ "filterOrgaId",
144
+ "filterImgUrl",
145
+ "filterIab",
146
+ "filterRubrique",
147
+ "filterName",
148
+ ]),
149
+ routerLinkArray() {
140
150
  return [
141
- {title : this.$t('Radio & Live'), routeName: 'lives', condition : (state.generalParameters.isLiveTab as boolean) &&((this.filterOrgaId && this.filterLive) || !this.filterOrgaId)},
142
- {title : this.$t('Podcasts'), routeName: 'podcasts', condition : true},
143
- {title : this.$t('Emissions'), routeName: 'emissions', condition : true}
144
- ]
151
+ {
152
+ title: this.$t("Radio & Live"),
153
+ routeName: "lives",
154
+ condition:
155
+ (state.generalParameters.isLiveTab as boolean) &&
156
+ ((this.filterOrgaId && this.filterLive) || !this.filterOrgaId),
157
+ },
158
+ { title: this.$t("Podcasts"), routeName: "podcasts", condition: true },
159
+ {
160
+ title: this.$t("Emissions"),
161
+ routeName: "emissions",
162
+ condition: true,
163
+ },
164
+ ];
145
165
  },
146
- routerLinkInsideArray(){
166
+ routerLinkInsideArray() {
147
167
  return [
148
- {title : this.$t('Speakers'), routeName: 'participants', condition : true},
149
- {title : this.$t('Playlists'), routeName: 'playlists', condition : true},
150
- {title : this.$t('Productors'), routeName: 'productors', condition : !this.isPodcastmaker && (!this.filterOrgaId || this.isEducation)}]
168
+ {
169
+ title: this.$t("Speakers"),
170
+ routeName: "participants",
171
+ condition: true,
172
+ },
173
+ {
174
+ title: this.$t("Playlists"),
175
+ routeName: "playlists",
176
+ condition: true,
177
+ },
178
+ {
179
+ title: this.$t("Productors"),
180
+ routeName: "productors",
181
+ condition:
182
+ !this.isPodcastmaker && (!this.filterOrgaId || this.isEducation),
183
+ },
184
+ ];
151
185
  },
152
- rubriqueQueryParam(): string|undefined{
153
- if(this.filterRubrique?.length){
154
- return this.filterRubrique.map((value: RubriquageFilter) => value.rubriquageId+':'+value.rubriqueId).join();
186
+ rubriqueQueryParam(): string | undefined {
187
+ if (this.filterRubrique?.length) {
188
+ return this.filterRubrique
189
+ .map(
190
+ (value: RubriquageFilter) =>
191
+ value.rubriquageId + ":" + value.rubriqueId,
192
+ )
193
+ .join();
155
194
  }
156
195
  return undefined;
157
196
  },
158
197
  logoUrl(): string {
159
- return this.isEducation ?'/img/logo_education.webp': '/img/logo_octopus_final.svg';
198
+ return this.isEducation
199
+ ? "/img/logo_education.webp"
200
+ : "/img/logo_octopus_final.svg";
160
201
  },
161
202
  isPodcastmaker(): boolean {
162
- return (state.generalParameters.podcastmaker as boolean);
203
+ return state.generalParameters.podcastmaker as boolean;
163
204
  },
164
205
  imgUrl(): string {
165
- if (!this.filterImgUrl?.includes('emptypodcast'))
206
+ if (!this.filterImgUrl?.includes("emptypodcast"))
166
207
  return `${this.filterImgUrl}`;
167
- return '';
208
+ return "";
168
209
  },
169
210
  },
170
211
  watch: {
@@ -180,19 +221,21 @@ export default defineComponent({
180
221
  },
181
222
  },
182
223
  mounted() {
183
- window.addEventListener('scroll', this.handleScroll);
224
+ window.addEventListener("scroll", this.handleScroll);
184
225
  },
185
226
  beforeUnmount() {
186
- window.removeEventListener('scroll', this.handleScroll);
227
+ window.removeEventListener("scroll", this.handleScroll);
187
228
  },
188
229
  methods: {
189
- getQueriesRouter(routeName: string){
190
- if('podcasts' !== routeName && 'emissions' !== routeName){
191
- return { productor: this.filterOrgaId};
230
+ getQueriesRouter(routeName: string) {
231
+ if ("podcasts" !== routeName && "emissions" !== routeName) {
232
+ return { productor: this.filterOrgaId };
192
233
  }
193
- return { productor: this.filterOrgaId,
194
- iabId: this.filterIab?.id,
195
- rubriquesId: this.rubriqueQueryParam}
234
+ return {
235
+ productor: this.filterOrgaId,
236
+ iabId: this.filterIab?.id,
237
+ rubriquesId: this.rubriqueQueryParam,
238
+ };
196
239
  },
197
240
  handleScroll(): void {
198
241
  if (
@@ -215,13 +258,15 @@ export default defineComponent({
215
258
  this.minScroll = window.scrollY;
216
259
  }
217
260
  if (!this.scrolled) {
218
- this.$emit('update:displayMenu', false);
261
+ this.$emit("update:displayMenu", false);
219
262
  }
220
263
  },
221
264
  onDisplayMenu(param: boolean): void {
222
- this.$emit('update:displayMenu',param?false:!this.displayMenu);
265
+ this.$emit("update:displayMenu", param ? false : !this.displayMenu);
223
266
  },
224
- async onOrganisationSelected(organisation: Organisation | undefined): Promise<void> {
267
+ async onOrganisationSelected(
268
+ organisation: Organisation | undefined,
269
+ ): Promise<void> {
225
270
  if (organisation?.id) {
226
271
  await this.selectOrganisation(organisation.id);
227
272
  return;
@@ -230,63 +275,64 @@ export default defineComponent({
230
275
  this.removeSelectedOrga();
231
276
  },
232
277
  },
233
- })
278
+ });
234
279
  </script>
235
280
 
236
281
  <style lang="scss">
237
- .octopus-app{
238
- .top-bar-container {
239
- position: sticky;
240
- top: 0;
241
- background: #fff;
242
- width: 100%;
243
- height: 3.5rem;
244
- z-index: 10;
245
- padding: 0 1rem;
246
- display: flex;
247
- justify-content: space-between;
248
- align-items: center;
249
- transition: height 1s;
250
- @media (max-width: 450px) {
251
- padding: 0 0.5rem;
252
- }
253
-
254
- .saooti-menu {
255
- display: none;
256
- cursor: pointer;
257
- font-size: 1.5rem;
258
- margin: 0.5rem;
259
- }
260
-
261
- .top-bar-logo img{
262
- max-width: 140px !important;
263
- max-height: 2.5rem;
264
- height: 2.5rem;
265
- &.educationLogo {
266
- height: auto;
282
+ .octopus-app {
283
+ .top-bar-container {
284
+ position: sticky;
285
+ top: 0;
286
+ background: #fff;
287
+ width: 100%;
288
+ height: 3.5rem;
289
+ z-index: 10;
290
+ padding: 0 1rem;
291
+ display: flex;
292
+ justify-content: space-between;
293
+ align-items: center;
294
+ transition: height 1s;
295
+ @media (max-width: 450px) {
296
+ padding: 0 0.5rem;
267
297
  }
268
- @media (max-width: 650px) {
269
- height: 2rem;
270
- }
271
- }
272
- &.scrolled{
273
- .link-hover, .saooti-down {
298
+
299
+ .saooti-menu {
274
300
  display: none;
301
+ cursor: pointer;
302
+ font-size: 1.5rem;
303
+ margin: 0.5rem;
275
304
  }
276
- .saooti-menu {
277
- display: block;
305
+
306
+ .top-bar-logo img {
307
+ max-width: 140px !important;
308
+ max-height: 2.5rem;
309
+ height: 2.5rem;
310
+ &.educationLogo {
311
+ height: auto;
312
+ }
313
+ @media (max-width: 650px) {
314
+ height: 2rem;
315
+ }
278
316
  }
279
- }
280
- /** PHONES*/
281
- @media (max-width: 960px) {
282
- .default-multiselect-width, .link-hover {
283
- display: none;
317
+ &.scrolled {
318
+ .link-hover,
319
+ .saooti-down {
320
+ display: none;
321
+ }
322
+ .saooti-menu {
323
+ display: block;
324
+ }
284
325
  }
285
- .saooti-menu {
286
- display: block;
326
+ /** PHONES*/
327
+ @media (max-width: 960px) {
328
+ .default-multiselect-width,
329
+ .link-hover {
330
+ display: none;
331
+ }
332
+ .saooti-menu {
333
+ display: block;
334
+ }
287
335
  }
288
336
  }
289
-
290
- }
291
337
  }
292
- </style>
338
+ </style>
@@ -1,8 +1,5 @@
1
1
  <template>
2
- <div
3
- :id="idModal"
4
- class="octopus-modal"
5
- >
2
+ <div :id="idModal" class="octopus-modal">
6
3
  <div class="octopus-modal-backdrop" />
7
4
  <div class="octopus-modal-dialog">
8
5
  <div class="octopus-modal-content">
@@ -12,7 +9,7 @@
12
9
  </h5>
13
10
  <button
14
11
  v-if="closable"
15
- :ref="closable?'focusElement':''"
12
+ :ref="closable ? 'focusElement' : ''"
16
13
  type="button"
17
14
  class="btn-transparent text-light saooti-remove"
18
15
  title="Close"
@@ -22,9 +19,7 @@
22
19
  <div class="octopus-modal-body">
23
20
  <slot name="body" />
24
21
  </div>
25
- <div
26
- class="octopus-modal-footer"
27
- >
22
+ <div class="octopus-modal-footer">
28
23
  <slot name="footer" />
29
24
  </div>
30
25
  </div>
@@ -33,109 +28,110 @@
33
28
  </template>
34
29
 
35
30
  <script lang="ts">
36
- import { defineComponent } from 'vue'
31
+ import { defineComponent } from "vue";
37
32
  export default defineComponent({
38
- name: 'ClassicModal',
33
+ name: "ClassicModal",
39
34
  props: {
40
- idModal: { default: undefined, type: String},
41
- titleModal: { default: undefined, type: String},
42
- closable: { default: true, type: Boolean},
35
+ idModal: { default: undefined, type: String },
36
+ titleModal: { default: undefined, type: String },
37
+ closable: { default: true, type: Boolean },
43
38
  },
44
- emits: ['close'],
45
- mounted(){
39
+ emits: ["close"],
40
+ mounted() {
46
41
  (this.$refs.focusElement as HTMLElement)?.focus();
47
42
  },
48
- })
43
+ });
49
44
  </script>
50
45
  <style lang="scss">
51
- @import '@scss/_variables.scss';
52
- .octopus-app{
53
- .octopus-modal{
54
- position: fixed;
55
- top: 0;
56
- left: 0;
57
- display: block;
58
- z-index: 1055;
59
- width: 100%;
60
- height: 100%;
61
- overflow-x: hidden;
62
- overflow-y: auto;
63
- outline: 0;
64
- }
65
- .octopus-modal-backdrop {
66
- opacity: 0.5;
67
- z-index: 0;
68
- position: fixed;
69
- top: 0;
70
- left: 0;
71
- width: 100vw;
72
- height: 100vh;
73
- background-color: black;
74
- }
46
+ @import "@scss/_variables.scss";
47
+ .octopus-app {
48
+ .octopus-modal {
49
+ position: fixed;
50
+ top: 0;
51
+ left: 0;
52
+ display: block;
53
+ z-index: 1055;
54
+ width: 100%;
55
+ height: 100%;
56
+ overflow-x: hidden;
57
+ overflow-y: auto;
58
+ outline: 0;
59
+ }
60
+ .octopus-modal-backdrop {
61
+ opacity: 0.5;
62
+ z-index: 0;
63
+ position: fixed;
64
+ top: 0;
65
+ left: 0;
66
+ width: 100vw;
67
+ height: 100vh;
68
+ background-color: black;
69
+ }
75
70
 
76
- .octopus-modal-dialog {
77
- position: relative;
78
- pointer-events: none;
79
- margin: 1.75rem auto;
80
- max-width: 800px;
71
+ .octopus-modal-dialog {
72
+ position: relative;
73
+ pointer-events: none;
74
+ margin: 1.75rem auto;
75
+ max-width: 800px;
81
76
  max-height: 90vh;
82
- width: 100%;
83
- display: flex;
84
- color: #353535 !important;
85
- @media (max-width: 500px){
86
- width: 95%;
87
- margin: 2.5% !important;
88
- }
89
- }
90
- .octopus-modal-body{
91
- flex: 1 1 auto;
92
- padding: 1rem;
93
- overflow-x: auto;
94
- .scroller-vertical {
95
- min-height: 200px;
96
- height: 200px;
97
- }
98
- }
99
- .octopus-modal-header {
100
- display: flex;
101
- flex-shrink: 0;
102
- align-items: center;
103
- justify-content: space-between;
104
- border: 0;
105
- border-radius: $octopus-borderradius $octopus-borderradius 0 0;
106
- background: $octopus-primary-color;
107
- color: white;
108
- padding: 1rem;
77
+ width: 100%;
78
+ display: flex;
79
+ color: #353535 !important;
80
+ @media (max-width: 500px) {
81
+ width: 95%;
82
+ margin: 2.5% !important;
109
83
  }
110
-
111
- .octopus-modal-dialog, .octopus-modal-content {
112
- min-height: 300px;
113
- }
114
- .octopus-modal-content{
115
- display: flex;
116
- flex-direction: column;
117
- pointer-events: auto;
118
- width: 100%;
119
- background-color: white;
120
- background-clip: padding-box;
121
- border: 0;
122
- outline: 0;
123
- height: auto !important;
124
- max-height: initial !important;
125
- border-radius: $octopus-borderradius;
126
- box-shadow: 0 0.2rem 0.5rem rgba(40,40,40,.3);
127
- }
128
- .octopus-modal-footer{
129
- display: flex;
130
- flex-shrink: 0;
131
- border: 0;
132
- flex-wrap: initial;
133
- align-items: center;
134
- justify-content: flex-end;
135
- padding: 1rem;
136
- button{
137
- margin: 0.1rem;
138
- }
139
- }
84
+ }
85
+ .octopus-modal-body {
86
+ flex: 1 1 auto;
87
+ padding: 1rem;
88
+ overflow-x: auto;
89
+ .scroller-vertical {
90
+ min-height: 200px;
91
+ height: 200px;
92
+ }
93
+ }
94
+ .octopus-modal-header {
95
+ display: flex;
96
+ flex-shrink: 0;
97
+ align-items: center;
98
+ justify-content: space-between;
99
+ border: 0;
100
+ border-radius: $octopus-borderradius $octopus-borderradius 0 0;
101
+ background: $octopus-primary-color;
102
+ color: white;
103
+ padding: 1rem;
104
+ }
105
+
106
+ .octopus-modal-dialog,
107
+ .octopus-modal-content {
108
+ min-height: 300px;
109
+ }
110
+ .octopus-modal-content {
111
+ display: flex;
112
+ flex-direction: column;
113
+ pointer-events: auto;
114
+ width: 100%;
115
+ background-color: white;
116
+ background-clip: padding-box;
117
+ border: 0;
118
+ outline: 0;
119
+ height: auto !important;
120
+ max-height: initial !important;
121
+ border-radius: $octopus-borderradius;
122
+ box-shadow: 0 0.2rem 0.5rem rgba(40, 40, 40, 0.3);
123
+ }
124
+ .octopus-modal-footer {
125
+ display: flex;
126
+ flex-shrink: 0;
127
+ border: 0;
128
+ flex-wrap: initial;
129
+ align-items: center;
130
+ justify-content: flex-end;
131
+ padding: 1rem;
132
+ button {
133
+ margin: 0.1rem;
134
+ }
135
+ }
140
136
  }
141
- </style>
137
+ </style>