@saooti/octopus-sdk 37.0.6 → 37.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/README.md +2 -2
  2. package/index.ts +21 -21
  3. package/package.json +26 -20
  4. package/src/App.vue +69 -60
  5. package/src/api/classicCrud.ts +12 -12
  6. package/src/api/initialize.ts +1 -1
  7. package/src/components/display/aggregator/RssSection.vue +3 -3
  8. package/src/components/display/categories/CategoryChooser.vue +73 -60
  9. package/src/components/display/categories/CategoryFilter.vue +134 -90
  10. package/src/components/display/categories/CategoryList.vue +76 -62
  11. package/src/components/display/comments/AddCommentModal.vue +44 -44
  12. package/src/components/display/comments/CommentBasicView.vue +38 -30
  13. package/src/components/display/comments/CommentInput.vue +121 -106
  14. package/src/components/display/comments/CommentItem.vue +144 -102
  15. package/src/components/display/comments/CommentList.vue +117 -85
  16. package/src/components/display/comments/CommentParentInfo.vue +18 -15
  17. package/src/components/display/comments/CommentPlayer.vue +39 -41
  18. package/src/components/display/comments/CommentSection.vue +68 -53
  19. package/src/components/display/edit/EditBox.vue +7 -7
  20. package/src/components/display/edit/EditBoxRadio.vue +3 -4
  21. package/src/components/display/edit/EditCommentBox.vue +34 -36
  22. package/src/components/display/emission/EmissionInlineList.vue +75 -63
  23. package/src/components/display/emission/EmissionItem.vue +47 -35
  24. package/src/components/display/emission/EmissionList.vue +111 -83
  25. package/src/components/display/emission/EmissionPlayerItem.vue +89 -89
  26. package/src/components/display/filter/AdvancedSearch.vue +81 -73
  27. package/src/components/display/filter/CategorySearchFilter.vue +27 -25
  28. package/src/components/display/filter/DateFilter.vue +38 -38
  29. package/src/components/display/filter/MonetizableFilter.vue +16 -14
  30. package/src/components/display/filter/ProductorSearch.vue +55 -47
  31. package/src/components/display/filter/RubriqueChoice.vue +42 -27
  32. package/src/components/display/filter/RubriqueFilter.vue +130 -85
  33. package/src/components/display/filter/SearchOrder.vue +16 -11
  34. package/src/components/display/list/ListPaginate.vue +72 -70
  35. package/src/components/display/list/PaginateParams.vue +29 -30
  36. package/src/components/display/list/PaginateSection.vue +210 -0
  37. package/src/components/display/list/SwiperList.vue +28 -32
  38. package/src/components/display/live/CountDown.vue +12 -14
  39. package/src/components/display/live/LiveHorizontalList.vue +60 -50
  40. package/src/components/display/live/LiveItem.vue +42 -26
  41. package/src/components/display/live/LiveList.vue +92 -65
  42. package/src/components/display/live/RadioCurrently.vue +47 -42
  43. package/src/components/display/live/RadioImage.vue +40 -42
  44. package/src/components/display/live/RadioItem.vue +15 -22
  45. package/src/components/display/live/RadioList.vue +24 -21
  46. package/src/components/display/live/RadioPlanning.vue +105 -68
  47. package/src/components/display/organisation/OrganisationChooser.vue +58 -42
  48. package/src/components/display/organisation/OrganisationChooserLight.vue +27 -19
  49. package/src/components/display/participant/ParticipantItem.vue +89 -77
  50. package/src/components/display/participant/ParticipantList.vue +90 -60
  51. package/src/components/display/playlist/PlaylistItem.vue +32 -35
  52. package/src/components/display/playlist/PlaylistList.vue +70 -52
  53. package/src/components/display/playlist/PodcastList.vue +61 -50
  54. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +47 -38
  55. package/src/components/display/podcasts/AnimatorsItem.vue +17 -15
  56. package/src/components/display/podcasts/ParticipantDescription.vue +21 -22
  57. package/src/components/display/podcasts/PodcastFilterList.vue +28 -26
  58. package/src/components/display/podcasts/PodcastImage.vue +129 -135
  59. package/src/components/display/podcasts/PodcastInlineList.vue +33 -29
  60. package/src/components/display/podcasts/PodcastInlineListClassic.vue +91 -71
  61. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +94 -85
  62. package/src/components/display/podcasts/PodcastItem.vue +96 -90
  63. package/src/components/display/podcasts/PodcastItemInfo.vue +61 -65
  64. package/src/components/display/podcasts/PodcastList.vue +115 -84
  65. package/src/components/display/podcasts/PodcastModuleBox.vue +95 -104
  66. package/src/components/display/podcasts/PodcastPlayBar.vue +45 -32
  67. package/src/components/display/podcasts/PodcastSwiperList.vue +65 -55
  68. package/src/components/display/podcasts/TagList.vue +33 -37
  69. package/src/components/display/rubriques/RubriqueChooser.vue +70 -51
  70. package/src/components/display/rubriques/RubriqueList.vue +117 -89
  71. package/src/components/display/sharing/PlayerParameters.vue +45 -42
  72. package/src/components/display/sharing/QrCode.vue +52 -46
  73. package/src/components/display/sharing/ShareButtons.vue +18 -18
  74. package/src/components/display/sharing/ShareButtonsIntern.vue +100 -78
  75. package/src/components/display/sharing/ShareDistribution.vue +101 -67
  76. package/src/components/display/sharing/SharePlayer.vue +207 -127
  77. package/src/components/display/sharing/SharePlayerColors.vue +15 -15
  78. package/src/components/display/sharing/SharePlayerRadio.vue +62 -39
  79. package/src/components/display/sharing/SharePlayerTypes.vue +93 -55
  80. package/src/components/display/sharing/SubscribeButtons.vue +83 -32
  81. package/src/components/display/studio/RecordingItemButton.vue +3 -3
  82. package/src/components/form/ClassicCheckbox.vue +32 -31
  83. package/src/components/form/ClassicDatePicker.vue +47 -49
  84. package/src/components/form/ClassicInputText.vue +99 -98
  85. package/src/components/form/ClassicLoading.vue +11 -14
  86. package/src/components/form/ClassicMultiselect.vue +125 -126
  87. package/src/components/form/ClassicRadio.vue +15 -18
  88. package/src/components/form/ClassicSearch.vue +17 -23
  89. package/src/components/form/ClassicSelect.vue +35 -27
  90. package/src/components/form/{Wysiwyg.vue → ClassicWysiwyg.vue} +94 -109
  91. package/src/components/misc/AcpmImage.vue +6 -6
  92. package/src/components/misc/ClassicAccordion.vue +69 -0
  93. package/src/components/misc/ClassicNav.vue +117 -0
  94. package/src/components/misc/ClassicPopover.vue +212 -0
  95. package/src/components/misc/{Spinner.vue → ClassicSpinner.vue} +14 -15
  96. package/src/components/misc/ErrorMessage.vue +9 -17
  97. package/src/components/misc/FooterSection.vue +198 -0
  98. package/src/components/misc/HomeDropdown.vue +60 -60
  99. package/src/components/misc/LeftMenu.vue +115 -79
  100. package/src/components/misc/ProgressBar.vue +36 -32
  101. package/src/components/misc/SnackBar.vue +169 -0
  102. package/src/components/misc/TopBar.vue +161 -115
  103. package/src/components/misc/modal/ClassicModal.vue +99 -103
  104. package/src/components/misc/modal/ClipboardModal.vue +21 -23
  105. package/src/components/misc/modal/MessageModal.vue +22 -28
  106. package/src/components/misc/modal/NewsletterModal.vue +139 -113
  107. package/src/components/misc/modal/QrCodeModal.vue +14 -17
  108. package/src/components/misc/modal/ShareModalPlayer.vue +44 -60
  109. package/src/components/misc/player/PlayerCompact.vue +47 -62
  110. package/src/components/misc/player/{Player.vue → PlayerComponent.vue} +54 -46
  111. package/src/components/misc/player/PlayerLarge.vue +62 -61
  112. package/src/components/misc/player/PlayerProgressBar.vue +40 -30
  113. package/src/components/misc/player/PlayerTimeline.vue +32 -36
  114. package/src/components/misc/player/radio/RadioHistory.vue +62 -59
  115. package/src/components/misc/player/radio/RadioProgressBar.vue +44 -35
  116. package/src/components/mixins/cookies.ts +11 -10
  117. package/src/components/mixins/displayMethods.ts +5 -4
  118. package/src/components/mixins/handle403.ts +9 -9
  119. package/src/components/mixins/imageProxy.ts +14 -7
  120. package/src/components/mixins/init.ts +31 -16
  121. package/src/components/mixins/orgaComputed.ts +7 -7
  122. package/src/components/mixins/organisationFilter.ts +36 -22
  123. package/src/components/mixins/player/playerComment.ts +46 -37
  124. package/src/components/mixins/player/playerDisplay.ts +122 -87
  125. package/src/components/mixins/player/playerLive.ts +65 -43
  126. package/src/components/mixins/player/playerLogic.ts +133 -88
  127. package/src/components/mixins/player/playerTranscript.ts +48 -30
  128. package/src/components/mixins/radio/fetchRadioData.ts +40 -23
  129. package/src/components/mixins/selenium.ts +2 -2
  130. package/src/components/mixins/tagOfMixins.ts +11 -11
  131. package/src/components/pages/CategoryPage.vue +43 -0
  132. package/src/components/pages/{Emission.vue → EmissionPage.vue} +98 -67
  133. package/src/components/pages/{Emissions.vue → EmissionsPage.vue} +51 -44
  134. package/src/components/pages/Error403Page.vue +20 -19
  135. package/src/components/pages/HomePage.vue +144 -0
  136. package/src/components/pages/LivesPage.vue +66 -0
  137. package/src/components/pages/PageNotFound.vue +33 -22
  138. package/src/components/pages/{Participant.vue → ParticipantPage.vue} +63 -49
  139. package/src/components/pages/{Participants.vue → ParticipantsPage.vue} +9 -9
  140. package/src/components/pages/PlaylistPage.vue +175 -0
  141. package/src/components/pages/{Playlists.vue → PlaylistsPage.vue} +16 -14
  142. package/src/components/pages/PodcastPage.vue +365 -0
  143. package/src/components/pages/PodcastsPage.vue +152 -0
  144. package/src/components/pages/RadioPage.vue +131 -0
  145. package/src/components/pages/RubriquePage.vue +45 -0
  146. package/src/components/pages/{Search.vue → SearchPage.vue} +19 -19
  147. package/src/helper/dom.ts +1 -1
  148. package/src/helper/duration.ts +10 -4
  149. package/src/helper/useEventListener.ts +7 -8
  150. package/src/i18n.ts +31 -30
  151. package/src/locale/de.ts +263 -257
  152. package/src/locale/educationen.ts +13 -13
  153. package/src/locale/educationfr.ts +1 -1
  154. package/src/locale/en.ts +323 -324
  155. package/src/locale/es.ts +325 -318
  156. package/src/locale/fr.ts +330 -324
  157. package/src/locale/it.ts +332 -328
  158. package/src/locale/messages.ts +9 -9
  159. package/src/locale/sl.ts +315 -319
  160. package/src/main.ts +28 -31
  161. package/src/router/router.ts +218 -198
  162. package/src/shims-tsx.d.ts +1 -1
  163. package/src/shims-vue.d.ts +1 -1
  164. package/src/stores/ApiStore.ts +44 -44
  165. package/src/stores/AuthStore.ts +21 -15
  166. package/src/stores/CommentStore.ts +13 -11
  167. package/src/stores/FilterStore.ts +25 -15
  168. package/src/stores/GeneralStore.ts +15 -15
  169. package/src/stores/ParamSdkStore.ts +179 -137
  170. package/src/stores/PlayerStore.ts +139 -125
  171. package/src/stores/class/adserver/adserverConfig.ts +1 -1
  172. package/src/stores/class/adserver/adserverOtherEmission.ts +9 -9
  173. package/src/stores/class/cartouchier/cartouche.ts +4 -4
  174. package/src/stores/class/cartouchier/cartouchier.ts +2 -2
  175. package/src/stores/class/conference/conference.ts +10 -9
  176. package/src/stores/class/conference/conferenceMessage.ts +2 -2
  177. package/src/stores/class/conference/conferenceParticipant.ts +1 -1
  178. package/src/stores/class/conference/studioCall.ts +6 -6
  179. package/src/stores/class/contract/contractOrganisation.ts +5 -5
  180. package/src/stores/class/ftp/ftpEmission.ts +9 -9
  181. package/src/stores/class/ftp/testFtpEmission.ts +4 -4
  182. package/src/stores/class/general/audioView.ts +19 -19
  183. package/src/stores/class/general/category.ts +1 -1
  184. package/src/stores/class/general/classicSelectType.ts +2 -3
  185. package/src/stores/class/general/customPlayer.ts +8 -8
  186. package/src/stores/class/general/emission.ts +20 -20
  187. package/src/stores/class/general/fetchParam.ts +8 -2
  188. package/src/stores/class/general/initState.ts +31 -31
  189. package/src/stores/class/general/interfacePageable.ts +13 -13
  190. package/src/stores/class/general/ituneCategory.ts +4 -4
  191. package/src/stores/class/general/listReturn.ts +12 -12
  192. package/src/stores/class/general/media.ts +7 -7
  193. package/src/stores/class/general/organisation.ts +9 -9
  194. package/src/stores/class/general/pageable.ts +10 -10
  195. package/src/stores/class/general/participant.ts +7 -7
  196. package/src/stores/class/general/player.ts +30 -28
  197. package/src/stores/class/general/playlist.ts +17 -19
  198. package/src/stores/class/general/podcast.ts +19 -19
  199. package/src/stores/class/general/sortPageable.ts +4 -4
  200. package/src/stores/class/general/soundcastCategory.ts +7 -7
  201. package/src/stores/class/ouestFrance/ofTag.ts +34 -34
  202. package/src/stores/class/ouestFrance/ofTagInfo.ts +9 -9
  203. package/src/stores/class/ouestFrance/ofTagPage.ts +7 -7
  204. package/src/stores/class/ouestFrance/ofTagSeo.ts +7 -7
  205. package/src/stores/class/ouestFrance/ofTagVente.ts +6 -6
  206. package/src/stores/class/ouestFrance/ofTagWithParents.ts +20 -20
  207. package/src/stores/class/radio/canal.ts +4 -4
  208. package/src/stores/class/radio/live.ts +6 -6
  209. package/src/stores/class/radio/mix.ts +16 -16
  210. package/src/stores/class/radio/playlistMedia.ts +7 -7
  211. package/src/stores/class/radio/recurrence.ts +54 -54
  212. package/src/stores/class/rss/rssEmission.ts +13 -13
  213. package/src/stores/class/rss/rssInfo.ts +7 -7
  214. package/src/stores/class/rubrique/rubriquage.ts +2 -2
  215. package/src/stores/class/rubrique/rubrique.ts +1 -1
  216. package/src/stores/class/stat/statArrayIncome.ts +5 -5
  217. package/src/stores/class/stat/statArrayObject.ts +26 -26
  218. package/src/stores/class/stat/statGraph.ts +6 -6
  219. package/src/stores/class/user/person.ts +4 -2
  220. package/src/stores/class/user/profile.ts +4 -2
  221. package/src/stores/class/user/userKeycloak.ts +4 -5
  222. package/src/components/display/list/Paginate.vue +0 -181
  223. package/src/components/misc/Accordion.vue +0 -78
  224. package/src/components/misc/Footer.vue +0 -169
  225. package/src/components/misc/Nav.vue +0 -119
  226. package/src/components/misc/Popover.vue +0 -193
  227. package/src/components/misc/Snackbar.vue +0 -168
  228. package/src/components/pages/Category.vue +0 -41
  229. package/src/components/pages/Home.vue +0 -125
  230. package/src/components/pages/Lives.vue +0 -64
  231. package/src/components/pages/Playlist.vue +0 -164
  232. package/src/components/pages/Podcast.vue +0 -307
  233. package/src/components/pages/Podcasts.vue +0 -146
  234. package/src/components/pages/Radio.vue +0 -122
  235. package/src/components/pages/Rubrique.vue +0 -42
package/README.md CHANGED
@@ -492,7 +492,7 @@ See [Configuration Reference](https://cli.vuejs.org/config/).
492
492
  * 29.0.23 Eslint
493
493
  * 29.0.24 Version stable vue3
494
494
  * 29.0.25 Specific category does not display in correct order
495
- * 29.0.26 Snackbar position
495
+ * 29.0.26 SnackBar position
496
496
  * 29.0.27 Petit cursor:pointer des familles
497
497
  * 29.0.28 Petite couleur des familles
498
498
  * 29.0.29 Amélioration Popover
@@ -617,7 +617,7 @@ See [Configuration Reference](https://cli.vuejs.org/config/).
617
617
  * 31.0.24 Amélioration accessibilité
618
618
  * 31.0.25 Erreur audioUrl
619
619
  * 31.0.26 Erreur 403 page expose
620
- * 31.0.27 Snackbar chose holdtime
620
+ * 31.0.27 SnackBar chose holdtime
621
621
  * 31.0.28 Mixins orgComputed
622
622
  * 31.0.29 Changement css
623
623
  * 31.0.30 Changement css
package/index.ts CHANGED
@@ -1,34 +1,34 @@
1
1
  //Pages
2
- export const getLives = () => import("./src/components/pages/Lives.vue");
3
- export const getPodcast = () => import("./src/components/pages/Podcast.vue");
4
- export const getPodcasts = () => import("./src/components/pages/Podcasts.vue");
5
- export const getEmission = () => import("./src/components/pages/Emission.vue");
6
- export const getEmissions = () => import("./src/components/pages/Emissions.vue");
7
- export const getPlaylist = () => import("./src/components/pages/Playlist.vue");
8
- export const getPlaylists = () => import("./src/components/pages/Playlists.vue");
9
- export const getParticipant = () => import("./src/components/pages/Participant.vue");
10
- export const getParticipants = () => import("./src/components/pages/Participants.vue");
11
- export const getSearch = () => import("./src/components/pages/Search.vue");
12
- export const getHome = () => import("./src/components/pages/Home.vue");
13
- export const getCategory = () => import("./src/components/pages/Category.vue");
14
- export const getRubrique = () => import("./src/components/pages/Rubrique.vue");
2
+ export const getLives = () => import("./src/components/pages/LivesPage.vue");
3
+ export const getPodcast = () => import("./src/components/pages/PodcastPage.vue");
4
+ export const getPodcasts = () => import("./src/components/pages/PodcastsPage.vue");
5
+ export const getEmission = () => import("./src/components/pages/EmissionPage.vue");
6
+ export const getEmissions = () => import("./src/components/pages/EmissionsPage.vue");
7
+ export const getPlaylist = () => import("./src/components/pages/PlaylistPage.vue");
8
+ export const getPlaylists = () => import("./src/components/pages/PlaylistsPage.vue");
9
+ export const getParticipant = () => import("./src/components/pages/ParticipantPage.vue");
10
+ export const getParticipants = () => import("./src/components/pages/ParticipantsPage.vue");
11
+ export const getSearch = () => import("./src/components/pages/SearchPage.vue");
12
+ export const getHome = () => import("./src/components/pages/HomePage.vue");
13
+ export const getCategory = () => import("./src/components/pages/CategoryPage.vue");
14
+ export const getRubrique = () => import("./src/components/pages/RubriquePage.vue");
15
15
  export const getError403Page = () => import("./src/components/pages/Error403Page.vue");
16
- export const getRadio = () => import("./src/components/pages/Radio.vue");
16
+ export const getRadio = () => import("./src/components/pages/RadioPage.vue");
17
17
 
18
18
  //Misc
19
- export const getAccordion = () => import("./src/components/misc/Accordion.vue");
20
- export const getNav = () => import("./src/components/misc/Nav.vue");
19
+ export const getAccordion = () => import("./src/components/misc/ClassicAccordion.vue");
20
+ export const getNav = () => import("./src/components/misc/ClassicNav.vue");
21
21
  export const getProgressBar = () => import("./src/components/misc/ProgressBar.vue");
22
- export const getSpinner = () => import("./src/components/misc/Spinner.vue");
22
+ export const getSpinner = () => import("./src/components/misc/ClassicSpinner.vue");
23
23
  export const getFooter = () => import("./src/components/misc/Footer.vue");
24
24
  export const getLeftMenu = () => import("./src/components/misc/LeftMenu.vue");
25
- export const getPlayer = () => import("./src/components/misc/player/Player.vue");
26
- export const getSnackbar = () => import("./src/components/misc/Snackbar.vue");
25
+ export const getPlayer = () => import("./src/components/misc/player/PlayerComponent.vue");
26
+ export const getSnackbar = () => import("./src/components/misc/SnackBar.vue");
27
27
  export const getTopBar = () => import("./src/components/misc/TopBar.vue");
28
28
  export const getHomeDropdown = () => import("./src/components/misc/HomeDropdown.vue");
29
29
  export const getMessageModal = () => import("./src/components/misc/modal/MessageModal.vue");
30
30
  export const getErrorMessage = () => import("./src/components/misc/ErrorMessage.vue");
31
- export const getPopover = () => import("./src/components/misc/Popover.vue");
31
+ export const getPopover = () => import("./src/components/misc/ClassicPopover.vue");
32
32
  export const getClassicModal = () => import("./src/components/misc/modal/ClassicModal.vue");
33
33
 
34
34
 
@@ -65,7 +65,7 @@ export const getClassicRadio = () => import("./src/components/form/ClassicRadio.
65
65
  export const getClassicLoading = () => import("./src/components/form/ClassicLoading.vue");
66
66
  export const getClassicSelect = () => import("./src/components/form/ClassicSelect.vue");
67
67
  export const getClassicDatePicker = () => import("./src/components/form/ClassicDatePicker.vue");
68
- export const getPaginate = () => import("./src/components/display/list/Paginate.vue");
68
+ export const getPaginate = () => import("./src/components/display/list/PaginateSection.vue");
69
69
  export const getPaginateParams = () => import("./src/components/display/list/PaginateParams.vue");
70
70
  export const getListPaginate = () => import("./src/components/display/list/ListPaginate.vue");
71
71
  export const getClassicMultiselect = () => import("./src/components/form/ClassicMultiselect.vue");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saooti/octopus-sdk",
3
- "version": "37.0.6",
3
+ "version": "37.0.7",
4
4
  "private": false,
5
5
  "description": "Javascript SDK for using octopus",
6
6
  "author": "Saooti",
@@ -18,45 +18,47 @@
18
18
  "dependencies": {
19
19
  "@popperjs/core": "^2.11.8",
20
20
  "@saooti/octopus-api": "^0.34.3",
21
- "@tiptap/extension-link": "^2.0.3",
22
- "@tiptap/pm": "^2.0.3",
23
- "@tiptap/extension-underline": "^2.0.3",
24
- "@tiptap/starter-kit": "^2.0.3",
25
- "@tiptap/vue-3": "^2.0.3",
21
+ "@tiptap/extension-link": "^2.0.4",
22
+ "@tiptap/extension-underline": "^2.0.4",
23
+ "@tiptap/pm": "^2.0.4",
24
+ "@tiptap/starter-kit": "^2.0.4",
25
+ "@tiptap/vue-3": "^2.0.4",
26
26
  "@vue/cli": "^5.0.8",
27
27
  "@vue/compat": "^3.3.4",
28
28
  "autoprefixer": "^10.4.14",
29
29
  "axios": "^1.4.0",
30
30
  "dayjs": "^1.11.9",
31
+ "eslint-config-prettier": "^8.8.0",
32
+ "eslint-plugin-prettier": "^5.0.0",
31
33
  "express": "^4.18.2",
32
- "hls.js": "^1.4.7",
33
- "humanize-duration": "^3.28.0",
34
- "jest": "^29.5.0",
34
+ "hls.js": "^1.4.9",
35
+ "humanize-duration": "^3.29.0",
36
+ "jest": "^29.6.1",
35
37
  "pinia": "^2.1.4",
36
38
  "qrcode.vue": "^3.4.0",
37
39
  "sass": "^1.63.6",
38
40
  "sonarqube-scanner": "^3.0.0",
39
- "swiper": "^9.3.2",
41
+ "swiper": "^10.0.4",
40
42
  "v-calendar": "^3.0.3",
41
- "vite": "^4.3.9",
43
+ "vite": "^4.4.4",
42
44
  "vue": "^3.3.4",
43
45
  "vue-i18n": "^9.2.2",
44
46
  "vue-recaptcha": "^2.0.3",
45
- "vue-router": "^4.2.2",
47
+ "vue-router": "^4.2.4",
46
48
  "vue-select": "^4.0.0-beta.6",
47
49
  "vue3-lazyload": "^0.3.6",
48
50
  "vue3-swatches": "^1.2.3"
49
51
  },
50
52
  "devDependencies": {
51
53
  "@types/vue-select": "^3.16.2",
52
- "@typescript-eslint/eslint-plugin": "^5.60.1",
53
- "@typescript-eslint/parser": "^5.60.1",
54
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
55
+ "@typescript-eslint/parser": "^6.0.0",
54
56
  "@vitejs/plugin-vue": "^4.2.3",
55
57
  "@vue/compiler-sfc": "^3.3.4",
56
- "@vue/eslint-config-typescript": "^8.0.0",
57
- "eslint": "^8.44.0",
58
- "eslint-plugin-vue": "^7.17.0",
59
- "typescript": "^4.9.5"
58
+ "@vue/eslint-config-typescript": "^11.0.3",
59
+ "eslint": "^8.45.0",
60
+ "eslint-plugin-vue": "^9.15.1",
61
+ "typescript": "^5.1.6"
60
62
  },
61
63
  "eslintConfig": {
62
64
  "root": true,
@@ -71,14 +73,18 @@
71
73
  "plugin:vue/base",
72
74
  "plugin:vue/vue3-recommended",
73
75
  "plugin:vue/vue3-essential",
74
- "plugin:vue/vue3-strongly-recommended"
76
+ "plugin:vue/vue3-strongly-recommended",
77
+ "prettier",
78
+ "plugin:prettier/recommended"
75
79
  ],
80
+ "plugins": ["prettier"],
76
81
  "rules": {
77
82
  "no-console": "off",
78
83
  "no-debugger": "off",
79
84
  "@typescript-eslint/ban-ts-ignore": "off",
80
85
  "@typescript-eslint/ban-ts-comment": "off",
81
- "no-async-promise-executor": "off"
86
+ "no-async-promise-executor": "off",
87
+ "prettier/prettier": ["error", {}]
82
88
  },
83
89
  "parserOptions": {
84
90
  "parser": "@typescript-eslint/parser"
package/src/App.vue CHANGED
@@ -1,50 +1,45 @@
1
1
  <template>
2
- <div
3
- v-if="isInit"
4
- :key="reload"
5
- class="d-flex flex-column h-100 octopus-app"
6
- >
7
- <TopBar
8
- v-model:displayMenu="displayMenu"
9
- :is-education="false"
10
- />
2
+ <div v-if="isInit" :key="reload" class="d-flex flex-column h-100 octopus-app">
3
+ <TopBar v-model:displayMenu="displayMenu" :is-education="false" />
11
4
  <LeftMenu
12
5
  v-if="displayMenu"
13
6
  :is-education="false"
14
- @close="displayMenu=false"
7
+ @close="displayMenu = false"
15
8
  />
16
9
  <CategoryFilter />
17
10
  <router-view />
18
11
  <FooterOctopus />
19
- <Player />
12
+ <PlayerComponent />
20
13
  </div>
21
14
  </template>
22
15
 
23
16
  <script lang="ts">
24
- import TopBar from '@/components/misc/TopBar.vue';
25
- import FooterOctopus from '@/components/misc/Footer.vue';
26
- import Player from '@/components/misc/player/Player.vue';
27
- import CategoryFilter from '@/components/display/categories/CategoryFilter.vue';
28
- import { state } from './stores/ParamSdkStore';
29
- import { Rubriquage } from './stores/class/rubrique/rubriquage';
30
- import { RubriquageFilter } from './stores/class/rubrique/rubriquageFilter';
31
- import { Rubrique } from './stores/class/rubrique/rubrique';
32
- import initSDK from './components/mixins/init';
33
- import { useFilterStore } from '@/stores/FilterStore';
34
- import { useGeneralStore } from '@/stores/GeneralStore';
35
- import { mapState, mapActions } from 'pinia';
36
- import { defineAsyncComponent, defineComponent } from 'vue';
37
- import { Category } from './stores/class/general/category';
38
- const LeftMenu = defineAsyncComponent(() => import('@/components/misc/LeftMenu.vue'));
17
+ import TopBar from "@/components/misc/TopBar.vue";
18
+ import FooterOctopus from "@/components/misc/FooterSection.vue";
19
+ import PlayerComponent from "@/components/misc/player/PlayerComponent.vue";
20
+ import CategoryFilter from "@/components/display/categories/CategoryFilter.vue";
21
+ import { state } from "./stores/ParamSdkStore";
22
+ import { Rubriquage } from "./stores/class/rubrique/rubriquage";
23
+ import { RubriquageFilter } from "./stores/class/rubrique/rubriquageFilter";
24
+ import { Rubrique } from "./stores/class/rubrique/rubrique";
25
+ import initSDK from "./components/mixins/init";
26
+ import { useFilterStore } from "@/stores/FilterStore";
27
+ import { useGeneralStore } from "@/stores/GeneralStore";
28
+ import { mapState, mapActions } from "pinia";
29
+ import { defineAsyncComponent, defineComponent } from "vue";
30
+ import { Category } from "./stores/class/general/category";
31
+ const LeftMenu = defineAsyncComponent(
32
+ () => import("@/components/misc/LeftMenu.vue"),
33
+ );
39
34
  export default defineComponent({
40
- name: 'App',
41
-
35
+ name: "App",
36
+
42
37
  components: {
43
38
  TopBar,
44
39
  LeftMenu,
45
40
  CategoryFilter,
46
41
  FooterOctopus,
47
- Player
42
+ PlayerComponent,
48
43
  },
49
44
 
50
45
  mixins: [initSDK],
@@ -57,82 +52,96 @@ export default defineComponent({
57
52
  };
58
53
  },
59
54
 
60
- computed:{
61
- ...mapState(useFilterStore, ['filterRubriquage', 'filterOrgaId']),
62
- ...mapState(useGeneralStore, ['storedCategories']),
55
+ computed: {
56
+ ...mapState(useFilterStore, ["filterRubriquage", "filterOrgaId"]),
57
+ ...mapState(useGeneralStore, ["storedCategories"]),
63
58
  },
64
59
 
65
60
  watch: {
66
- '$i18n.locale'(){
61
+ "$i18n.locale"() {
67
62
  this.$forceUpdate();
68
63
  this.reload = !this.reload;
69
- }
64
+ },
70
65
  },
71
- async created(){
66
+ async created() {
72
67
  await this.initApp();
73
68
  },
74
- methods:{
75
- ...mapActions(useFilterStore, ['filterUpdateIab', 'filterUpdateRubrique']),
76
- async initApp(){
69
+ methods: {
70
+ ...mapActions(useFilterStore, ["filterUpdateIab", "filterUpdateRubrique"]),
71
+ async initApp() {
77
72
  await this.initSdk();
78
73
  await this.handleOrganisationFilter();
79
74
  this.handleIabIdFilter();
80
75
  this.handleRubriquesFilter();
81
- this.isInit =true;
76
+ this.isInit = true;
82
77
  },
83
- async handleOrganisationFilter(){
84
- let orgaId = '';
85
- if (this.$route.query.productor && 'string'===typeof this.$route.query.productor) {
78
+ async handleOrganisationFilter() {
79
+ let orgaId = "";
80
+ if (
81
+ this.$route.query.productor &&
82
+ "string" === typeof this.$route.query.productor
83
+ ) {
86
84
  orgaId = this.$route.query.productor;
87
- } else if(state.generalParameters.organisationId){
85
+ } else if (state.generalParameters.organisationId) {
88
86
  orgaId = state.generalParameters.organisationId;
89
87
  }
90
- if(''===orgaId){
88
+ if ("" === orgaId) {
91
89
  return;
92
90
  }
93
91
  await this.selectOrganisation(orgaId);
94
92
  },
95
- handleIabIdFilter(){
96
- if(this.filterOrgaId){
93
+ handleIabIdFilter() {
94
+ if (this.filterOrgaId) {
97
95
  return;
98
96
  }
99
- if (this.$route.query.iabId && 'string'===typeof this.$route.query.iabId) {
97
+ if (
98
+ this.$route.query.iabId &&
99
+ "string" === typeof this.$route.query.iabId
100
+ ) {
100
101
  const iabId = parseInt(this.$route.query.iabId, 10);
101
102
  const category = this.storedCategories.filter((c: Category) => {
102
103
  return c.id === iabId;
103
104
  });
104
- if(category.length){
105
+ if (category.length) {
105
106
  this.filterUpdateIab(category[0]);
106
107
  }
107
108
  }
108
109
  },
109
- handleRubriquesFilter(){
110
- if(0===this.filterRubriquage.length){
110
+ handleRubriquesFilter() {
111
+ if (0 === this.filterRubriquage.length) {
111
112
  return;
112
113
  }
113
- if (this.$route.query.rubriquesId && 'string'===typeof this.$route.query.rubriquesId) {
114
- const arrayFilter = this.$route.query.rubriquesId.split(',');
115
- const rubriquesFilter: Array<RubriquageFilter>=[];
114
+ if (
115
+ this.$route.query.rubriquesId &&
116
+ "string" === typeof this.$route.query.rubriquesId
117
+ ) {
118
+ const arrayFilter = this.$route.query.rubriquesId.split(",");
119
+ const rubriquesFilter: Array<RubriquageFilter> = [];
116
120
  const filterLength = arrayFilter.length;
117
121
  for (let index = 0; index < filterLength; index++) {
118
- const rubriqueFilter = arrayFilter[index].split(':');
122
+ const rubriqueFilter = arrayFilter[index].split(":");
119
123
  const rubriquage = this.filterRubriquage.find((x: Rubriquage) => {
120
124
  return x.rubriquageId === parseInt(rubriqueFilter[0]);
121
125
  });
122
- if(rubriquage){
126
+ if (rubriquage) {
123
127
  const rubrique = rubriquage.rubriques.find((x: Rubrique) => {
124
128
  return x.rubriqueId === parseInt(rubriqueFilter[1]);
125
129
  });
126
- rubriquesFilter.push({rubriquageId: rubriquage.rubriquageId, rubriqueId:rubrique.rubriqueId, nameRubriquage: rubriquage.title, nameRubrique :rubrique.name});
130
+ rubriquesFilter.push({
131
+ rubriquageId: rubriquage.rubriquageId,
132
+ rubriqueId: rubrique.rubriqueId,
133
+ nameRubriquage: rubriquage.title,
134
+ nameRubrique: rubrique.name,
135
+ });
127
136
  }
128
137
  }
129
- if(rubriquesFilter.length){
138
+ if (rubriquesFilter.length) {
130
139
  this.filterUpdateRubrique(rubriquesFilter);
131
140
  }
132
141
  }
133
- }
134
- }
135
- })
142
+ },
143
+ },
144
+ });
136
145
  </script>
137
146
 
138
147
  <style lang="scss" src="@/assets/octopus-library.scss"></style>
@@ -1,16 +1,16 @@
1
1
  import axios from "axios";
2
2
  enum ModuleApi {
3
- DEFAULT = 0,
4
- MEDIA = 1,
5
- COMMENT = 2,
6
- KEYCLOAK = 3,
7
- FRONTOFFICE = 4,
8
- PLAYER = 6,
9
- STORAGE = 8,
10
- STUDIO = 9,
11
- PROCESSOR= 10,
12
- SPEECHTOTEXT=11
13
- }
3
+ DEFAULT = 0,
4
+ MEDIA = 1,
5
+ COMMENT = 2,
6
+ KEYCLOAK = 3,
7
+ FRONTOFFICE = 4,
8
+ PLAYER = 6,
9
+ STORAGE = 8,
10
+ STUDIO = 9,
11
+ PROCESSOR = 10,
12
+ SPEECHTOTEXT = 11,
13
+ }
14
14
  /* eslint-disable */
15
15
  export default {
16
16
  async fetchData<Type>(moduleName: ModuleApi,wsPath:string, forceRefresh?:boolean): Promise<Type>{
@@ -30,4 +30,4 @@ export default {
30
30
  await axios.delete('/mock');
31
31
  },
32
32
  };
33
- /* eslint-enable */
33
+ /* eslint-enable */
@@ -5,4 +5,4 @@ export default{
5
5
  return true;
6
6
  },
7
7
  };
8
- /* eslint-enable */
8
+ /* eslint-enable */
@@ -3,6 +3,6 @@
3
3
  </template>
4
4
 
5
5
  <script lang="ts">
6
- import { defineComponent } from 'vue'
7
- export default defineComponent({})
8
- </script>
6
+ import { defineComponent } from "vue";
7
+ export default defineComponent({});
8
+ </script>
@@ -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>