@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
@@ -13,56 +13,65 @@
13
13
  :width="width"
14
14
  :is-disabled="isDisabled"
15
15
  :no-deselect="noDeselect"
16
- @onSearch="onSearchCategory"
16
+ @on-search="onSearchCategory"
17
17
  @selected="onCategorySelected"
18
18
  />
19
19
  </template>
20
20
 
21
21
  <script lang="ts">
22
- import { useGeneralStore } from '@/stores/GeneralStore';
23
- import { mapState } from 'pinia';
24
- import ClassicMultiselect from '../../form/ClassicMultiselect.vue';
25
- import { Category } from '@/stores/class/general/category';
26
- import { defineComponent } from 'vue'
22
+ import { useGeneralStore } from "@/stores/GeneralStore";
23
+ import { mapState } from "pinia";
24
+ import ClassicMultiselect from "../../form/ClassicMultiselect.vue";
25
+ import { Category } from "@/stores/class/general/category";
26
+ import { defineComponent } from "vue";
27
27
  export default defineComponent({
28
28
  components: {
29
- ClassicMultiselect
29
+ ClassicMultiselect,
30
30
  },
31
31
  props: {
32
- defaultanswer: { default: '', type: String },
33
- width: { default: '100%', type: String },
32
+ defaultanswer: { default: "", type: String },
33
+ width: { default: "100%", type: String },
34
34
  multiple: { default: false, type: Boolean },
35
35
  isDisabled: { default: false, type: Boolean },
36
- initCategories: { default: undefined, type: Array as ()=>Array<Category> },
36
+ initCategories: {
37
+ default: undefined,
38
+ type: Array as () => Array<Category>,
39
+ },
37
40
  displayAllCategories: { default: false, type: Boolean },
38
41
  categorySelected: { default: undefined, type: Number },
39
- categorySelectedArray: { default: undefined, type: Array as ()=>Array<number> },
40
- inModal:{default: false, type: Boolean},
41
- noDeselect: {default: true, type: Boolean},
42
+ categorySelectedArray: {
43
+ default: undefined,
44
+ type: Array as () => Array<number>,
45
+ },
46
+ inModal: { default: false, type: Boolean },
47
+ noDeselect: { default: true, type: Boolean },
42
48
  },
43
- emits: ['update:categorySelected','update:categorySelectedArray','selected'],
49
+ emits: [
50
+ "update:categorySelected",
51
+ "update:categorySelectedArray",
52
+ "selected",
53
+ ],
44
54
  data() {
45
55
  return {
46
56
  maxElement: 50 as number,
47
- category: undefined as Category|undefined,
48
- categoryForArray: [] as Array<Category>|undefined,
57
+ category: undefined as Category | undefined,
58
+ categoryForArray: [] as Array<Category> | undefined,
49
59
  };
50
60
  },
51
61
 
52
-
53
62
  computed: {
54
- ...mapState(useGeneralStore, ['storedCategories']),
55
- categoriesChosen(): Array<Category>{
56
- if(this.initCategories){
63
+ ...mapState(useGeneralStore, ["storedCategories"]),
64
+ categoriesChosen(): Array<Category> {
65
+ if (this.initCategories) {
57
66
  return this.initCategories;
58
67
  }
59
68
  return this.storedCategories;
60
69
  },
61
70
  categoriesOrdered(): Array<Category> {
62
- let allCategoriesOrdered = [...this.categoriesChosen].sort((a: Category, b: Category) =>
63
- a.name > b.name ? 1 : -1
64
- )
65
- if(!this.displayAllCategories){
71
+ let allCategoriesOrdered = [...this.categoriesChosen].sort(
72
+ (a: Category, b: Category) => (a.name > b.name ? 1 : -1),
73
+ );
74
+ if (!this.displayAllCategories) {
66
75
  allCategoriesOrdered = allCategoriesOrdered.filter((c: Category) => {
67
76
  return c.podcastCount;
68
77
  });
@@ -72,87 +81,91 @@ export default defineComponent({
72
81
  }
73
82
  return allCategoriesOrdered;
74
83
  },
75
- getDefaultCategory(): Category|undefined{
76
- if(''===this.defaultanswer){
84
+ getDefaultCategory(): Category | undefined {
85
+ if ("" === this.defaultanswer) {
77
86
  return undefined;
78
87
  }
79
- return {id: 0, name: this.defaultanswer};
88
+ return { id: 0, name: this.defaultanswer };
80
89
  },
81
90
  idClassicMultiselect(): string {
82
- if (this.multiple) return 'categoryChooser' + this.multiple;
83
- return 'categoryChooser';
91
+ if (this.multiple) return "categoryChooser" + this.multiple;
92
+ return "categoryChooser";
84
93
  },
85
-
94
+
86
95
  model: {
87
- get(): Category| Array<Category>|undefined{
88
- return this.multiple ? this.categoryForArray:this.category;
96
+ get(): Category | Array<Category> | undefined {
97
+ return this.multiple ? this.categoryForArray : this.category;
89
98
  },
90
- set(value: Category| Array<Category>|undefined): void{
91
- if(!this.multiple){
92
- this.category = (value as Category|undefined);
99
+ set(value: Category | Array<Category> | undefined): void {
100
+ if (!this.multiple) {
101
+ this.category = value as Category | undefined;
93
102
  return;
94
103
  }
95
- this.categoryForArray = (value as Array<Category>|undefined);
96
- }
97
-
98
- }
104
+ this.categoryForArray = value as Array<Category> | undefined;
105
+ },
106
+ },
99
107
  },
100
108
  watch: {
101
109
  categorySelected: {
102
- immediate:true,
103
- handler(){
104
- if(this.categorySelected){
110
+ immediate: true,
111
+ handler() {
112
+ if (this.categorySelected) {
105
113
  this.initCategorySelected();
106
- }else{
114
+ } else {
107
115
  this.category = this.getDefaultCategory;
108
116
  }
109
- }
110
- }
117
+ },
118
+ },
111
119
  },
112
-
120
+
113
121
  mounted() {
114
122
  this.initCategoryArray();
115
123
  },
116
124
  methods: {
117
125
  async onSearchCategory(query?: string): Promise<void> {
118
126
  let categories = this.categoriesOrdered;
119
- if(query){
127
+ if (query) {
120
128
  categories = categories.filter((item: Category) => {
121
129
  return item.name.toUpperCase().includes(query.toUpperCase());
122
130
  });
123
131
  }
124
- (this.$refs.selectCategory as InstanceType<typeof ClassicMultiselect>).afterSearch(categories,categories.length);
132
+ (
133
+ this.$refs.selectCategory as InstanceType<typeof ClassicMultiselect>
134
+ ).afterSearch(categories, categories.length);
125
135
  },
126
- onCategorySelected(category: Category| Array<Category>): void {
136
+ onCategorySelected(category: Category | Array<Category>): void {
127
137
  if (undefined !== this.categorySelected) {
128
- this.$emit('update:categorySelected', (category as Category).id);
138
+ this.$emit("update:categorySelected", (category as Category).id);
129
139
  } else if (undefined !== this.categorySelectedArray) {
130
140
  const idsArray: Array<number> = [];
131
141
  (category as Array<Category>).forEach((el: Category) => {
132
142
  idsArray.push(el.id);
133
143
  });
134
- this.$emit('update:categorySelectedArray', idsArray);
135
- }else{
136
- this.$emit('selected', category);
144
+ this.$emit("update:categorySelectedArray", idsArray);
145
+ } else {
146
+ this.$emit("selected", category);
137
147
  }
138
148
  },
139
149
  initCategorySelected(): void {
140
- this.category = this.categoriesChosen.find((el: Category) => {
141
- return el.id === this.categorySelected;
142
- }) ?? this.getDefaultCategory;
150
+ this.category =
151
+ this.categoriesChosen.find((el: Category) => {
152
+ return el.id === this.categorySelected;
153
+ }) ?? this.getDefaultCategory;
143
154
  },
144
155
  initCategoryArray(): void {
145
- if(!this.categoryForArray || !this.categorySelectedArray){return; }
156
+ if (!this.categoryForArray || !this.categorySelectedArray) {
157
+ return;
158
+ }
146
159
  this.categoryForArray.length = 0;
147
160
  this.categorySelectedArray.forEach((element: number) => {
148
161
  const item = this.categoriesChosen.find((el: Category) => {
149
162
  return el.id === element;
150
163
  });
151
- if(this.categoryForArray && item){
164
+ if (this.categoryForArray && item) {
152
165
  this.categoryForArray.push(item);
153
166
  }
154
167
  });
155
168
  },
156
169
  },
157
- })
158
- </script>
170
+ });
171
+ </script>
@@ -5,46 +5,33 @@
5
5
  :style="backgroundDisplay"
6
6
  >
7
7
  <h1>{{ titleDisplay }}</h1>
8
- <div
9
- v-show="isDisplay"
10
- class="d-flex flex-column justify-content-end"
11
- >
8
+ <div v-show="isDisplay" class="d-flex flex-column justify-content-end">
12
9
  <ol
13
10
  v-if="filterIab || filterRubrique.length"
14
11
  class="octopus-breadcrumb d-flex align-items-center justify-content-center flex-wrap"
15
12
  >
16
13
  <li class="octopus-breadcrumb-li">
17
- <a
18
- href="#"
19
- @click="removeFilter(-1, $event)"
20
- >{{ $t('All') }}</a>
14
+ <a href="#" @click="removeFilter(-1, $event)">{{ $t("All") }}</a>
21
15
  </li>
22
- <li
23
- v-if="filterIab"
24
- class="octopus-breadcrumb-li"
25
- >
16
+ <li v-if="filterIab" class="octopus-breadcrumb-li">
26
17
  {{ filterIab.name }}
27
18
  </li>
28
- <li
29
- v-for="(filter, index) in filterRubrique"
19
+ <li
20
+ v-for="(filter, index) in filterRubrique"
30
21
  :key="filter.rubriqueId"
31
22
  class="d-flex align-items-center octopus-breadcrumb-li"
32
- :class="filterRubrique.length-1 === index ? 'active':''"
23
+ :class="filterRubrique.length - 1 === index ? 'active' : ''"
33
24
  >
34
25
  <a
35
26
  v-if="filterRubrique.length - 1 !== index"
36
27
  href="#"
37
- @click="removeFilter(index,$event)"
38
- >{{ filter.nameRubriquage }}</a>
39
- <div
40
- v-else
41
- class="fw-bold"
28
+ @click="removeFilter(index, $event)"
29
+ >{{ filter.nameRubriquage }}</a
42
30
  >
31
+ <div v-else class="fw-bold">
43
32
  {{ filter.nameRubriquage }}
44
33
  </div>
45
- <div class="mx-1">
46
- :
47
- </div>
34
+ <div class="mx-1">:</div>
48
35
  <RubriqueChooser
49
36
  v-if="getRubriques(filter.rubriquageId).length"
50
37
  class="ms-2 multiselect-transparent multiselect-white"
@@ -53,7 +40,7 @@
53
40
  :rubrique-selected="filter.rubriqueId"
54
41
  :all-rubriques="getRubriques(filter.rubriquageId)"
55
42
  width="auto"
56
- @selected="onRubriqueSelected(index,$event)"
43
+ @selected="onRubriqueSelected(index, $event)"
57
44
  />
58
45
  </li>
59
46
  </ol>
@@ -61,38 +48,41 @@
61
48
  v-if="!filterIab && !rubriquageFilter.length"
62
49
  :is-filter="true"
63
50
  :is-display="isDisplay"
64
- @categoriesLength="checkIfCategories"
51
+ @categories-length="checkIfCategories"
65
52
  />
66
53
  <RubriqueList
67
- v-else-if="isDisplay && rubriquageFilter.length !== filterRubrique.length"
54
+ v-else-if="
55
+ isDisplay && rubriquageFilter.length !== filterRubrique.length
56
+ "
68
57
  :rubriquages="rubriquageFilter"
69
58
  />
70
59
  </div>
71
60
  </div>
72
- <div
73
- v-if="!isDisplay"
74
- class="category-filter-no-filter"
75
- />
61
+ <div v-if="!isDisplay" class="category-filter-no-filter" />
76
62
  </template>
77
63
 
78
64
  <script lang="ts">
79
- import { Rubriquage } from '@/stores/class/rubrique/rubriquage';
80
- import { RubriquageFilter } from '@/stores/class/rubrique/rubriquageFilter';
81
- import { Rubrique } from '@/stores/class/rubrique/rubrique';
82
- import { useFilterStore } from '@/stores/FilterStore';
83
- import { state } from '../../../stores/ParamSdkStore';
84
- import { mapState, mapActions } from 'pinia';
85
- import { defineComponent, defineAsyncComponent } from 'vue';
86
- const CategoryList = defineAsyncComponent(() => import('./CategoryList.vue'));
87
- const RubriqueList = defineAsyncComponent(() => import('./../rubriques/RubriqueList.vue'));
88
- const RubriqueChooser = defineAsyncComponent(() => import('../rubriques/RubriqueChooser.vue'));
65
+ import { Rubriquage } from "@/stores/class/rubrique/rubriquage";
66
+ import { RubriquageFilter } from "@/stores/class/rubrique/rubriquageFilter";
67
+ import { Rubrique } from "@/stores/class/rubrique/rubrique";
68
+ import { useFilterStore } from "@/stores/FilterStore";
69
+ import { state } from "../../../stores/ParamSdkStore";
70
+ import { mapState, mapActions } from "pinia";
71
+ import { defineComponent, defineAsyncComponent } from "vue";
72
+ const CategoryList = defineAsyncComponent(() => import("./CategoryList.vue"));
73
+ const RubriqueList = defineAsyncComponent(
74
+ () => import("./../rubriques/RubriqueList.vue"),
75
+ );
76
+ const RubriqueChooser = defineAsyncComponent(
77
+ () => import("../rubriques/RubriqueChooser.vue"),
78
+ );
89
79
  export default defineComponent({
90
- name: 'CategoryFilter',
80
+ name: "CategoryFilter",
91
81
 
92
- components:{
82
+ components: {
93
83
  CategoryList,
94
84
  RubriqueList,
95
- RubriqueChooser
85
+ RubriqueChooser,
96
86
  },
97
87
  data() {
98
88
  return {
@@ -100,92 +90,146 @@ export default defineComponent({
100
90
  };
101
91
  },
102
92
  computed: {
103
- ...mapState(useFilterStore, ['filterIab', 'filterRubrique', 'filterRubriquage', 'filterOrgaId']),
93
+ ...mapState(useFilterStore, [
94
+ "filterIab",
95
+ "filterRubrique",
96
+ "filterRubriquage",
97
+ "filterOrgaId",
98
+ ]),
104
99
  isDisplay(): boolean {
105
- return ("homePriv" === this.$route.name ||"home" === this.$route.name ||"podcasts" === this.$route.name||"emissions" === this.$route.name)
106
- && (this.isCategories || undefined!==this.filterIab || 0!==this.filterRubrique.length || 0!==this.rubriquageFilter.length);
100
+ return (
101
+ ("homePriv" === this.$route.name ||
102
+ "home" === this.$route.name ||
103
+ "podcasts" === this.$route.name ||
104
+ "emissions" === this.$route.name) &&
105
+ (this.isCategories ||
106
+ undefined !== this.filterIab ||
107
+ 0 !== this.filterRubrique.length ||
108
+ 0 !== this.rubriquageFilter.length)
109
+ );
107
110
  },
108
- isHeaderDisplay(){
109
- return this.isDisplay ||'participants' === this.$route.name || 'playlists'=== this.$route.name;
111
+ isHeaderDisplay() {
112
+ return (
113
+ this.isDisplay ||
114
+ "participants" === this.$route.name ||
115
+ "playlists" === this.$route.name
116
+ );
110
117
  },
111
- rubriquageFilter(): Array<Rubriquage>{
118
+ rubriquageFilter(): Array<Rubriquage> {
112
119
  return this.filterOrgaId ? this.filterRubriquage : [];
113
120
  },
114
- titleDisplay(): string{
121
+ titleDisplay(): string {
115
122
  let title = "";
116
123
  switch (this.$route.name) {
117
- case 'podcasts':title= state.podcastsPage.titlePage ?? this.$t('All podcasts');break;
118
- case 'emissions':title= state.emissionsPage.titlePage??this.$t('All emissions');break;
119
- case 'participants': title= state.intervenantsPage.titlePage ?? this.$t('All participants');break;
120
- case 'playlists': title= this.$t('All playlists');break;
121
- default:break;
124
+ case "podcasts":
125
+ title = state.podcastsPage.titlePage ?? this.$t("All podcasts");
126
+ break;
127
+ case "emissions":
128
+ title = state.emissionsPage.titlePage ?? this.$t("All emissions");
129
+ break;
130
+ case "participants":
131
+ title =
132
+ state.intervenantsPage.titlePage ?? this.$t("All participants");
133
+ break;
134
+ case "playlists":
135
+ title = this.$t("All playlists");
136
+ break;
137
+ default:
138
+ break;
122
139
  }
123
140
  return title;
124
141
  },
125
- backgroundDisplay():string{
142
+ backgroundDisplay(): string {
126
143
  let imgName = "home";
127
144
  switch (this.$route.name) {
128
- case 'podcasts': imgName= "podcasts";break;
129
- case 'emissions': imgName= "emissions";break;
130
- case 'participants': imgName= "intervenants";break;
131
- case 'playlists': imgName= "playlists";break;
132
- default:break;
145
+ case "podcasts":
146
+ imgName = "podcasts";
147
+ break;
148
+ case "emissions":
149
+ imgName = "emissions";
150
+ break;
151
+ case "participants":
152
+ imgName = "intervenants";
153
+ break;
154
+ case "playlists":
155
+ imgName = "playlists";
156
+ break;
157
+ default:
158
+ break;
133
159
  }
134
160
  return `background-image: url('/img/header-${imgName}.webp');`;
135
- }
161
+ },
136
162
  },
137
- methods:{
138
- ...mapActions(useFilterStore, ['filterUpdateIab', 'filterUpdateRubrique']),
139
- checkIfCategories(length: number): void{
140
- this.isCategories = 0!==length;
163
+ methods: {
164
+ ...mapActions(useFilterStore, ["filterUpdateIab", "filterUpdateRubrique"]),
165
+ checkIfCategories(length: number): void {
166
+ this.isCategories = 0 !== length;
141
167
  },
142
168
  onRubriqueSelected(index: number, rubrique: Rubrique): void {
143
- if(!rubrique ||this.filterRubrique[index].rubriqueId === rubrique.rubriqueId){
169
+ if (
170
+ !rubrique ||
171
+ this.filterRubrique[index].rubriqueId === rubrique.rubriqueId
172
+ ) {
144
173
  return;
145
174
  }
146
175
  const filter = Array.from(this.filterRubrique);
147
- filter[index].rubriqueId = rubrique.rubriqueId||0;
176
+ filter[index].rubriqueId = rubrique.rubriqueId || 0;
148
177
  this.filterUpdateRubrique(filter);
149
- const queryString = filter.map(value => value.rubriquageId+':'+value.rubriqueId).join();
150
- this.$router.replace({ query: { ...this.$route.query, ...{ rubriquesId: queryString }} });
178
+ const queryString = filter
179
+ .map((value) => value.rubriquageId + ":" + value.rubriqueId)
180
+ .join();
181
+ this.$router.replace({
182
+ query: { ...this.$route.query, ...{ rubriquesId: queryString } },
183
+ });
151
184
  },
152
- getRubriques(rubriquageId: number): Array<Rubrique>{
185
+ getRubriques(rubriquageId: number): Array<Rubrique> {
153
186
  const rubriquage = this.filterRubriquage.find((x: Rubriquage) => {
154
187
  return x.rubriquageId === rubriquageId;
155
188
  });
156
189
  return rubriquage ? rubriquage.rubriques : [];
157
190
  },
158
- removeFilter(index: number, event?: { preventDefault: () => void }): void{
159
- if(this.filterIab){
191
+ removeFilter(index: number, event?: { preventDefault: () => void }): void {
192
+ if (this.filterIab) {
160
193
  if (this.$route.query.iabId) {
161
- this.$router.replace({ query: {...this.$route.query, ...{iabId: undefined} } });
194
+ this.$router.replace({
195
+ query: { ...this.$route.query, ...{ iabId: undefined } },
196
+ });
162
197
  }
163
198
  this.filterUpdateIab();
164
- }else{
165
- const newFilter: Array<RubriquageFilter> = Array.from(this.filterRubrique);
199
+ } else {
200
+ const newFilter: Array<RubriquageFilter> = Array.from(
201
+ this.filterRubrique,
202
+ );
166
203
  newFilter.splice(index + 1);
167
204
  if (this.$route.query.rubriquesId) {
168
- const queryString = newFilter.map(value => value.rubriquageId+':'+value.rubriqueId).join();
169
- this.$router.replace({ query: { ...this.$route.query, ...{ rubriquesId:"" !== queryString? queryString : undefined}} });
205
+ const queryString = newFilter
206
+ .map((value) => value.rubriquageId + ":" + value.rubriqueId)
207
+ .join();
208
+ this.$router.replace({
209
+ query: {
210
+ ...this.$route.query,
211
+ ...{ rubriquesId: "" !== queryString ? queryString : undefined },
212
+ },
213
+ });
170
214
  }
171
215
 
172
216
  this.filterUpdateRubrique(newFilter);
173
217
  }
174
- if(event){
218
+ if (event) {
175
219
  event.preventDefault();
176
220
  }
177
- }
178
- }
179
- })
221
+ },
222
+ },
223
+ });
180
224
  </script>
181
225
  <style lang="scss">
182
- .octopus-app{
183
- .header-img{
226
+ .octopus-app {
227
+ .header-img {
184
228
  display: flex;
185
229
  min-height: 10rem;
186
230
  background-size: cover;
187
231
  background-position: center;
188
- h1{
232
+ h1 {
189
233
  margin: auto 1rem auto;
190
234
  font-size: 2rem;
191
235
  color: white;
@@ -194,13 +238,13 @@ export default defineComponent({
194
238
  min-height: 6rem;
195
239
  }
196
240
  }
197
- .octopus-breadcrumb{
241
+ .octopus-breadcrumb {
198
242
  padding: 1rem;
199
243
  align-items: center;
200
- .octopus-breadcrumb-li{
244
+ .octopus-breadcrumb-li {
201
245
  list-style: none;
202
246
  color: white !important;
203
- a{
247
+ a {
204
248
  color: white !important;
205
249
  font-weight: bold;
206
250
  }
@@ -215,7 +259,7 @@ export default defineComponent({
215
259
  }
216
260
  }
217
261
  }
218
- .category-filter-no-filter{
262
+ .category-filter-no-filter {
219
263
  position: absolute;
220
264
  top: 0;
221
265
  bottom: 0;
@@ -225,4 +269,4 @@ export default defineComponent({
225
269
  z-index: -1;
226
270
  }
227
271
  }
228
- </style>
272
+ </style>