@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
@@ -3,10 +3,7 @@
3
3
  v-if="categories.length"
4
4
  class="d-inline-flex w-100 mb-3 ps-3 pe-3 hide-phone category-list"
5
5
  >
6
- <div
7
- ref="categoryListContainer"
8
- class="category-list-container"
9
- >
6
+ <div ref="categoryListContainer" class="category-list-container">
10
7
  <button
11
8
  v-for="category in categories"
12
9
  :ref="'category' + category.id"
@@ -23,7 +20,7 @@
23
20
  class="btn btn-primary btn-on-dark m-1 saooti-more"
24
21
  :title="$t('See more')"
25
22
  />
26
- <Popover
23
+ <ClassicPopover
27
24
  target="categories-dropdown"
28
25
  :only-click="true"
29
26
  :is-fixed="true"
@@ -37,30 +34,30 @@
37
34
  >
38
35
  {{ category.name }}
39
36
  </button>
40
- </Popover>
37
+ </ClassicPopover>
41
38
  </div>
42
39
  </template>
43
40
 
44
41
  <script lang="ts">
45
- import octopusApi from '@saooti/octopus-api';
46
- import { state } from '../../../stores/ParamSdkStore';
47
- import Popover from '../../misc/Popover.vue';
48
- import { Category } from '@/stores/class/general/category';
49
- import { useFilterStore } from '@/stores/FilterStore';
50
- import { useGeneralStore } from '@/stores/GeneralStore';
51
- import { mapState, mapActions } from 'pinia';
52
- import { defineComponent } from 'vue';
42
+ import octopusApi from "@saooti/octopus-api";
43
+ import { state } from "../../../stores/ParamSdkStore";
44
+ import ClassicPopover from "../../misc/ClassicPopover.vue";
45
+ import { Category } from "@/stores/class/general/category";
46
+ import { useFilterStore } from "@/stores/FilterStore";
47
+ import { useGeneralStore } from "@/stores/GeneralStore";
48
+ import { mapState, mapActions } from "pinia";
49
+ import { defineComponent } from "vue";
53
50
  export default defineComponent({
54
- name: 'CategoryList',
55
- components:{
56
- Popover
51
+ name: "CategoryList",
52
+ components: {
53
+ ClassicPopover,
57
54
  },
58
55
 
59
56
  props: {
60
57
  isFilter: { default: false, type: Boolean },
61
58
  isDisplay: { default: false, type: Boolean },
62
59
  },
63
- emits:['categoriesLength'],
60
+ emits: ["categoriesLength"],
64
61
 
65
62
  data() {
66
63
  return {
@@ -69,120 +66,137 @@ export default defineComponent({
69
66
  },
70
67
 
71
68
  computed: {
72
- ...mapState(useGeneralStore, ['storedCategories', 'storedCategoriesOrga']),
73
- ...mapState(useFilterStore, ['filterOrgaId']),
69
+ ...mapState(useGeneralStore, ["storedCategories", "storedCategoriesOrga"]),
70
+ ...mapState(useFilterStore, ["filterOrgaId"]),
74
71
  isPodcastmaker(): boolean {
75
- return (state.generalParameters.podcastmaker as boolean);
72
+ return state.generalParameters.podcastmaker as boolean;
76
73
  },
77
74
  categories(): Array<Category> {
78
- let arrayCategories: Array<Category> = [];
75
+ let arrayCategories: Array<Category> = [];
79
76
  if (this.filterOrgaId) {
80
77
  arrayCategories = this.storedCategoriesOrga.filter((c: Category) => {
81
78
  return c.podcastOrganisationCount;
82
79
  });
83
- }else{
80
+ } else {
84
81
  arrayCategories = this.storedCategories.filter((c: Category) => {
85
82
  if (this.isPodcastmaker) return c.podcastOrganisationCount;
86
83
  return c.podcastCount;
87
84
  });
88
85
  }
89
- this.$emit('categoriesLength', arrayCategories.length);
86
+ this.$emit("categoriesLength", arrayCategories.length);
90
87
  return arrayCategories;
91
88
  },
92
- watchVariable(): string{
89
+ watchVariable(): string {
93
90
  return `${this.isDisplay}|${this.categories}`;
94
91
  },
95
- reloadVariable():string{
92
+ reloadVariable(): string {
96
93
  return `${this.filterOrgaId}|${this.storedCategories}`;
97
- }
94
+ },
98
95
  },
99
96
  watch: {
100
97
  watchVariable: {
101
98
  deep: true,
102
- immediate:true,
103
- handler(){
99
+ immediate: true,
100
+ handler() {
104
101
  this.$nextTick(() => {
105
102
  this.resizeWindow();
106
103
  });
107
- }
104
+ },
108
105
  },
109
- reloadVariable:{
106
+ reloadVariable: {
110
107
  deep: true,
111
- immediate:true,
112
- handler(){
108
+ immediate: true,
109
+ handler() {
113
110
  if (this.filterOrgaId) {
114
111
  this.fetchCategories(this.filterOrgaId);
115
112
  }
116
- }
117
- }
113
+ },
114
+ },
118
115
  },
119
116
  mounted() {
120
- window.addEventListener('resize', this.resizeWindow);
117
+ window.addEventListener("resize", this.resizeWindow);
121
118
  },
122
119
  beforeUnmount(): void {
123
- window.removeEventListener('resize', this.resizeWindow);
120
+ window.removeEventListener("resize", this.resizeWindow);
124
121
  },
125
-
122
+
126
123
  methods: {
127
- ...mapActions(useFilterStore, ['filterUpdateIab']),
128
- ...mapActions(useGeneralStore, ['storedUpdateCategoriesOrga']),
129
- checkIfFilter(category: Category): void{
130
- if(!this.isFilter){
124
+ ...mapActions(useFilterStore, ["filterUpdateIab"]),
125
+ ...mapActions(useGeneralStore, ["storedUpdateCategoriesOrga"]),
126
+ checkIfFilter(category: Category): void {
127
+ if (!this.isFilter) {
131
128
  this.$router.push({
132
- name: 'category',
129
+ name: "category",
133
130
  params: { iabId: category.id.toString() },
134
131
  query: { productor: this.filterOrgaId },
135
132
  });
136
133
  return;
137
134
  }
138
135
  const queries = this.$route.query;
139
- if(!queries.iabId || ('string'===typeof queries.iabId && parseInt(queries.iabId ,10) !== category.id)) {
140
- this.$router.replace({ query: { ...queries, ...{ iabId: category.id.toString() }} });
136
+ if (
137
+ !queries.iabId ||
138
+ ("string" === typeof queries.iabId &&
139
+ parseInt(queries.iabId, 10) !== category.id)
140
+ ) {
141
+ this.$router.replace({
142
+ query: { ...queries, ...{ iabId: category.id.toString() } },
143
+ });
141
144
  }
142
145
  this.filterUpdateIab(category);
143
146
  },
144
147
  resizeWindow(): void {
145
- const categoryList = (this.$refs.categoryListContainer as HTMLElement);
146
- if(null === categoryList ||!categoryList){
148
+ const categoryList = this.$refs.categoryListContainer as HTMLElement;
149
+ if (null === categoryList || !categoryList) {
147
150
  return;
148
151
  }
149
- categoryList.style.justifyContent = 'flex-start';
152
+ categoryList.style.justifyContent = "flex-start";
150
153
  this.hidenCategories.length = 0;
151
154
  this.categories.forEach((element: Category) => {
152
- const el = (this.$refs['category' + element.id] as Array<HTMLElement>)[0];
155
+ const el = (
156
+ this.$refs["category" + element.id] as Array<HTMLElement>
157
+ )[0];
153
158
  if (!el) return;
154
- if (el.classList.contains('hid')) {
155
- el.classList.remove('hid');
159
+ if (el.classList.contains("hid")) {
160
+ el.classList.remove("hid");
156
161
  }
157
162
  });
158
163
  this.categories.forEach((element: Category) => {
159
- const el = (this.$refs['category' + element.id] as Array<HTMLElement>)[0];
164
+ const el = (
165
+ this.$refs["category" + element.id] as Array<HTMLElement>
166
+ )[0];
160
167
  if (!el) return;
161
168
  const parent = el.parentElement;
162
- if (parent && el.offsetLeft + el.clientWidth <= parent.clientWidth - 20) {
169
+ if (
170
+ parent &&
171
+ el.offsetLeft + el.clientWidth <= parent.clientWidth - 20
172
+ ) {
163
173
  return;
164
174
  }
165
175
  this.hidenCategories.push(element);
166
- if (!el.classList.contains('hid')) {
167
- el.className += ' hid';
176
+ if (!el.classList.contains("hid")) {
177
+ el.className += " hid";
168
178
  }
169
179
  });
170
180
  if (!this.hidenCategories.length) {
171
- categoryList.style.justifyContent = 'center';
181
+ categoryList.style.justifyContent = "center";
172
182
  }
173
183
  },
174
184
  async fetchCategories(organisationId: string): Promise<void> {
175
- const data = await octopusApi.fetchDataWithParams<Array<Category>>(0, `iab/list/${organisationId}`,{
176
- lang: this.$i18n.locale,
177
- });
185
+ const data = await octopusApi.fetchDataWithParams<Array<Category>>(
186
+ 0,
187
+ `iab/list/${organisationId}`,
188
+ {
189
+ lang: this.$i18n.locale,
190
+ },
191
+ );
178
192
  this.storedUpdateCategoriesOrga(data);
179
193
  },
180
194
  },
181
- })
195
+ });
182
196
  </script>
183
197
  <style lang="scss">
184
- @import '@scss/_variables.scss';
185
- .octopus-app{
198
+ @import "@scss/_variables.scss";
199
+ .octopus-app {
186
200
  .category-list-container {
187
201
  display: inline-flex;
188
202
  justify-content: flex-start;
@@ -14,32 +14,26 @@
14
14
  type="text"
15
15
  :placeholder="$t('Your name')"
16
16
  :class="{ 'border border-danger': 0 === countName || !validName }"
17
- >
17
+ />
18
18
  <p
19
19
  class="d-flex justify-content-end h6"
20
20
  :class="{ 'text-danger': !validName }"
21
21
  >
22
- {{ countName + ' / ' + maxName }}
22
+ {{ countName + " / " + maxName }}
23
23
  </p>
24
- <div
25
- v-if="''!==errorText"
26
- class="mt-1 text-danger"
27
- >
24
+ <div v-if="'' !== errorText" class="mt-1 text-danger">
28
25
  {{ errorText }}
29
26
  </div>
30
27
  </template>
31
28
  <template v-else>
32
- <div>{{ $t('Send in progress') }}</div>
29
+ <div>{{ $t("Send in progress") }}</div>
33
30
  </template>
34
31
  </template>
35
32
  <template #footer>
36
- <button
37
- class="btn m-1"
38
- @click="closePopup"
39
- >
40
- {{ $t('Close') }}
33
+ <button class="btn m-1" @click="closePopup">
34
+ {{ $t("Close") }}
41
35
  </button>
42
- <vue-recaptcha
36
+ <vue-recaptcha
43
37
  v-if="!isVerify"
44
38
  ref="invisibleRecaptcha"
45
39
  :load-recaptcha-script="true"
@@ -54,56 +48,56 @@
54
48
  :disabled="0 === countName || !validName"
55
49
  @click="submit"
56
50
  >
57
- {{ $t('Validate') }}
51
+ {{ $t("Validate") }}
58
52
  </button>
59
53
  </template>
60
54
  </ClassicModal>
61
55
  </template>
62
56
 
63
57
  <script lang="ts">
64
- import Constants from '../../../../public/config';
65
- import { state } from '../../../stores/ParamSdkStore';
66
- import ClassicModal from '../../misc/modal/ClassicModal.vue';
67
- import api from '@/api/initialize';
68
- import { useAuthStore } from '@/stores/AuthStore';
69
- import { mapState } from 'pinia';
70
- import { VueRecaptcha } from 'vue-recaptcha';
71
- import { defineComponent } from 'vue';
58
+ import Constants from "../../../../public/config";
59
+ import { state } from "../../../stores/ParamSdkStore";
60
+ import ClassicModal from "../../misc/modal/ClassicModal.vue";
61
+ import api from "@/api/initialize";
62
+ import { useAuthStore } from "@/stores/AuthStore";
63
+ import { mapState } from "pinia";
64
+ import { VueRecaptcha } from "vue-recaptcha";
65
+ import { defineComponent } from "vue";
72
66
  export default defineComponent({
73
- name: 'AddCommentModal',
74
- components:{
67
+ name: "AddCommentModal",
68
+ components: {
75
69
  VueRecaptcha,
76
- ClassicModal
70
+ ClassicModal,
77
71
  },
78
72
 
79
73
  props: {},
80
- emits: ['close','validate'],
74
+ emits: ["close", "validate"],
81
75
 
82
76
  data() {
83
77
  return {
84
- name: '' as string,
78
+ name: "" as string,
85
79
  sending: false as boolean,
86
80
  sendError: false as boolean,
87
81
  isVerify: false as boolean,
88
- maxName : Constants.MAX_COMMENT_NAME as number
82
+ maxName: Constants.MAX_COMMENT_NAME as number,
89
83
  };
90
84
  },
91
85
  computed: {
92
- ...mapState(useAuthStore, ['authProfile']),
93
- errorText():string {
94
- if(this.isCaptchaTest){
95
- return this.$t('Recaptcha not active');
86
+ ...mapState(useAuthStore, ["authProfile"]),
87
+ errorText(): string {
88
+ if (this.isCaptchaTest) {
89
+ return this.$t("Recaptcha not active");
96
90
  }
97
- return this.sendError? this.$t('Recaptcha error') : '';
91
+ return this.sendError ? this.$t("Recaptcha error") : "";
98
92
  },
99
- validName(): boolean{
93
+ validName(): boolean {
100
94
  return this.countName <= this.maxName;
101
95
  },
102
- countName(): number{
96
+ countName(): number {
103
97
  return this.name.length;
104
98
  },
105
99
  isCaptchaTest(): boolean {
106
- return (state.generalParameters.isCaptchaTest as boolean);
100
+ return state.generalParameters.isCaptchaTest as boolean;
107
101
  },
108
102
  },
109
103
 
@@ -111,9 +105,13 @@ export default defineComponent({
111
105
  this.initAuthenticatedName();
112
106
  },
113
107
  methods: {
114
- initAuthenticatedName():void{
115
- if (!this.authProfile?.userId) { return; }
116
- this.name = (`${this.authProfile?.firstname||''} ${this.authProfile?.lastname||''}`).trim();
108
+ initAuthenticatedName(): void {
109
+ if (!this.authProfile?.userId) {
110
+ return;
111
+ }
112
+ this.name = `${this.authProfile?.firstname || ""} ${
113
+ this.authProfile?.lastname || ""
114
+ }`.trim();
117
115
  this.isVerify = true;
118
116
  },
119
117
  async handleSuccess(token: string) {
@@ -126,17 +124,19 @@ export default defineComponent({
126
124
  },
127
125
  async submit(): Promise<void> {
128
126
  if (!this.isVerify && !this.isCaptchaTest) {
129
- return (this.$refs.invisibleRecaptcha as InstanceType<typeof VueRecaptcha>).execute();
127
+ return (
128
+ this.$refs.invisibleRecaptcha as InstanceType<typeof VueRecaptcha>
129
+ ).execute();
130
130
  }
131
131
  this.sendComment();
132
132
  },
133
133
  closePopup(): void {
134
- this.$emit('close');
134
+ this.$emit("close");
135
135
  },
136
136
  sendComment(): void {
137
137
  this.sending = true;
138
- this.$emit('validate', this.name);
138
+ this.$emit("validate", this.name);
139
139
  },
140
140
  },
141
- })
142
- </script>
141
+ });
142
+ </script>
@@ -2,19 +2,22 @@
2
2
  <div>
3
3
  <div class="d-flex h6">
4
4
  <strong
5
- v-if="recordingInLive && ('Live' === comment.phase || 'Prelive' === comment.phase)"
5
+ v-if="
6
+ recordingInLive &&
7
+ ('Live' === comment.phase || 'Prelive' === comment.phase)
8
+ "
6
9
  class="recording-bg me-1 text-light p-1"
7
- >{{ $t('Live') }}</strong>
10
+ >{{ $t("Live") }}</strong
11
+ >
8
12
  <strong
9
13
  :id="'popover-comment' + comment.comId"
10
14
  role="button"
11
15
  tabindex="-1"
12
- :class="editRight || isValid? 'c-hand-auto':'text-danger'"
16
+ :class="editRight || isValid ? 'c-hand-auto' : 'text-danger'"
13
17
  class="me-2"
14
- >{{
15
- comment.name
16
- }}</strong>
17
- <Popover
18
+ >{{ comment.name }}</strong
19
+ >
20
+ <ClassicPopover
18
21
  :disable="editRight || isValid"
19
22
  :target="'popover-comment' + comment.comId"
20
23
  :content="$t('Comment waiting')"
@@ -29,8 +32,8 @@
29
32
  <div class="me-2">
30
33
  {{ date }}
31
34
  </div>
32
- <span
33
- v-if="editRight"
35
+ <span
36
+ v-if="editRight"
34
37
  :class="'status-' + comment.status"
35
38
  :data-selenium="'status-comment-' + seleniumFormat(comment.name)"
36
39
  />
@@ -42,30 +45,31 @@
42
45
  v-if="comment.content.length > 300"
43
46
  class="c-hand font-italic"
44
47
  @click="summary = !summary"
45
- >{{ readMore }}</a>
48
+ >{{ readMore }}</a
49
+ >
46
50
  </div>
47
51
  </template>
48
52
 
49
53
  <script lang="ts">
50
- import selenium from '../../mixins/selenium';
51
- import displayMethods from '../../mixins/displayMethods';
52
- import { CommentPodcast } from '@/stores/class/general/comment';
53
- import dayjs from 'dayjs';
54
- import Popover from '../../misc/Popover.vue';
55
- import { defineComponent } from 'vue';
54
+ import selenium from "../../mixins/selenium";
55
+ import displayMethods from "../../mixins/displayMethods";
56
+ import { CommentPodcast } from "@/stores/class/general/comment";
57
+ import dayjs from "dayjs";
58
+ import ClassicPopover from "../../misc/ClassicPopover.vue";
59
+ import { defineComponent } from "vue";
56
60
  export default defineComponent({
57
- name: 'CommentBasicView',
61
+ name: "CommentBasicView",
58
62
 
59
63
  components: {
60
- Popover
64
+ ClassicPopover,
61
65
  },
62
66
 
63
- mixins:[displayMethods, selenium],
67
+ mixins: [displayMethods, selenium],
64
68
 
65
69
  props: {
66
- comment: { default: ()=>({}), type: Object as ()=>CommentPodcast },
67
- editRight: { default: false, type: Boolean},
68
- recordingInLive: { default: false, type: Boolean},
70
+ comment: { default: () => ({}), type: Object as () => CommentPodcast },
71
+ editRight: { default: false, type: Boolean },
72
+ recordingInLive: { default: false, type: Boolean },
69
73
  },
70
74
 
71
75
  data() {
@@ -74,21 +78,25 @@ export default defineComponent({
74
78
  };
75
79
  },
76
80
  computed: {
77
- isValid(): boolean{
78
- return 'Valid'=== this.comment.status;
81
+ isValid(): boolean {
82
+ return "Valid" === this.comment.status;
79
83
  },
80
84
  date(): string {
81
- return this.comment.date ? dayjs(this.comment.date).format('D MMMM YYYY HH[h]mm') : '';
85
+ return this.comment.date
86
+ ? dayjs(this.comment.date).format("D MMMM YYYY HH[h]mm")
87
+ : "";
82
88
  },
83
89
  readMore(): string {
84
- return this.summary ? this.$t('Read more') : this.$t('Read less');
90
+ return this.summary ? this.$t("Read more") : this.$t("Read less");
85
91
  },
86
92
  contentDisplay(): string {
87
- if (!this.summary){return this.comment.content;}
88
- if (!this.comment.content) return '';
93
+ if (!this.summary) {
94
+ return this.comment.content;
95
+ }
96
+ if (!this.comment.content) return "";
89
97
  if (this.comment.content.length <= 300) return this.comment.content;
90
- return this.comment.content.substring(0, 300) + '...';
98
+ return this.comment.content.substring(0, 300) + "...";
91
99
  },
92
100
  },
93
- })
101
+ });
94
102
  </script>