@saooti/octopus-sdk 1.0.0 → 29.0.2

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 (230) hide show
  1. package/README.md +73 -0
  2. package/index.d.ts +4 -0
  3. package/index.ts +12 -0
  4. package/package.json +61 -39
  5. package/public/css/fonts/saooti-ui.eot +0 -0
  6. package/public/css/fonts/saooti-ui.svg +30 -19
  7. package/public/css/fonts/saooti-ui.ttf +0 -0
  8. package/public/css/fonts/saooti-ui.woff +0 -0
  9. package/public/css/fonts/style.css +48 -5
  10. package/public/img/ACPM.png +0 -0
  11. package/public/img/article.png +0 -0
  12. package/src/App.vue +97 -31
  13. package/src/api/comments.ts +3 -1
  14. package/src/api/emissions.ts +5 -2
  15. package/src/api/initialize.ts +3 -2
  16. package/src/api/podcasts.ts +5 -2
  17. package/src/api/profile.ts +4 -2
  18. package/src/api/studio.ts +12 -1
  19. package/src/assets/bootstrap-diff.scss +265 -0
  20. package/src/assets/form.scss +23 -0
  21. package/src/assets/general.scss +47 -20
  22. package/src/assets/modal.scss +9 -10
  23. package/src/assets/multiselect.scss +19 -2
  24. package/src/assets/octopus-library.scss +16 -4
  25. package/src/assets/share.scss +343 -0
  26. package/src/components/display/aggregator/RssSection.vue +4 -4
  27. package/src/components/display/categories/CategoryChooser.vue +152 -105
  28. package/src/components/display/categories/CategoryFilter.vue +108 -0
  29. package/src/components/display/categories/CategoryList.vue +138 -109
  30. package/src/components/display/comments/AddCommentModal.vue +104 -87
  31. package/src/components/display/comments/CommentInput.vue +137 -118
  32. package/src/components/display/comments/CommentItem.vue +155 -137
  33. package/src/components/display/comments/CommentList.vue +142 -120
  34. package/src/components/display/comments/CommentParentInfo.vue +39 -35
  35. package/src/components/display/comments/CommentPlayer.vue +54 -48
  36. package/src/components/display/comments/CommentSection.vue +57 -58
  37. package/src/components/display/edit/EditBox.vue +4 -4
  38. package/src/components/display/edit/EditCommentBox.vue +25 -31
  39. package/src/components/display/emission/EmissionChooser.vue +82 -80
  40. package/src/components/display/emission/EmissionInlineList.vue +118 -105
  41. package/src/components/display/emission/EmissionItem.vue +66 -167
  42. package/src/components/display/emission/EmissionList.vue +96 -122
  43. package/src/components/display/emission/EmissionPlayerItem.vue +131 -126
  44. package/src/components/display/filter/AdvancedSearch.vue +306 -372
  45. package/src/components/display/filter/CategoryFilter.vue +117 -0
  46. package/src/components/display/filter/MonetizableFilter.vue +24 -10
  47. package/src/components/display/filter/ProductorSearch.vue +131 -135
  48. package/src/components/display/filter/RubriqueChoice.vue +104 -0
  49. package/src/components/display/filter/RubriqueFilter.vue +235 -0
  50. package/src/components/display/live/CountDown.vue +30 -29
  51. package/src/components/display/live/LiveHorizontalList.vue +40 -34
  52. package/src/components/display/live/LiveItem.vue +146 -158
  53. package/src/components/display/live/LiveList.vue +167 -154
  54. package/src/components/display/organisation/OrganisationChooser.vue +125 -124
  55. package/src/components/display/organisation/OrganisationChooserLight.vue +40 -47
  56. package/src/components/display/participant/ParticipantItem.vue +92 -108
  57. package/src/components/display/participant/ParticipantList.vue +76 -69
  58. package/src/components/display/playlist/PlaylistItem.vue +45 -56
  59. package/src/components/display/playlist/PlaylistList.vue +57 -48
  60. package/src/components/display/playlist/PodcastList.vue +94 -70
  61. package/src/components/display/podcasts/AnimatorsItem.vue +26 -23
  62. package/src/components/display/podcasts/ParticipantDescription.vue +115 -0
  63. package/src/components/display/podcasts/PodcastFilterList.vue +84 -85
  64. package/src/components/display/podcasts/PodcastImage.vue +244 -208
  65. package/src/components/display/podcasts/PodcastInlineList.vue +145 -207
  66. package/src/components/display/podcasts/PodcastItem.vue +150 -132
  67. package/src/components/display/podcasts/PodcastList.vue +89 -110
  68. package/src/components/display/podcasts/TagList.vue +23 -16
  69. package/src/components/display/rubriques/RubriqueChooser.vue +137 -123
  70. package/src/components/display/rubriques/RubriqueList.vue +227 -0
  71. package/src/components/display/sharing/PlayerParameters.vue +154 -106
  72. package/src/components/display/sharing/QrCode.vue +58 -0
  73. package/src/components/display/sharing/ShareButtons.vue +214 -92
  74. package/src/components/display/sharing/ShareDistribution.vue +110 -121
  75. package/src/components/display/sharing/SharePlayer.vue +245 -190
  76. package/src/components/display/sharing/SubscribeButtons.vue +130 -66
  77. package/src/components/display/studio/RecordingItemButton.vue +4 -4
  78. package/src/components/misc/ErrorMessage.vue +21 -16
  79. package/src/components/misc/Footer.vue +131 -66
  80. package/src/components/misc/HomeDropdown.vue +166 -123
  81. package/src/components/misc/LeftMenu.vue +151 -134
  82. package/src/components/misc/Player.vue +332 -328
  83. package/src/components/misc/Snackbar.vue +27 -29
  84. package/src/components/misc/TopBar.vue +204 -174
  85. package/src/components/misc/modal/ClipboardModal.vue +46 -26
  86. package/src/components/misc/modal/MessageModal.vue +67 -51
  87. package/src/components/misc/modal/NewsletterModal.vue +179 -136
  88. package/src/components/misc/modal/QrCodeModal.vue +83 -0
  89. package/src/components/misc/modal/ShareModalPlayer.vue +133 -74
  90. package/src/components/mixins/functions.ts +21 -18
  91. package/src/components/mixins/init.ts +24 -0
  92. package/src/components/mixins/organisationFilter.ts +24 -0
  93. package/src/components/pages/Category.vue +26 -26
  94. package/src/components/pages/Emission.vue +120 -92
  95. package/src/components/pages/Emissions.vue +109 -86
  96. package/src/components/pages/Home.vue +70 -16
  97. package/src/components/pages/Lives.vue +57 -47
  98. package/src/components/pages/Participant.vue +93 -77
  99. package/src/components/pages/Participants.vue +44 -31
  100. package/src/components/pages/Playlist.vue +63 -52
  101. package/src/components/pages/Playlists.vue +41 -39
  102. package/src/components/pages/Podcast.vue +265 -251
  103. package/src/components/pages/Podcasts.vue +135 -104
  104. package/src/components/pages/Rubrique.vue +25 -19
  105. package/src/components/pages/Search.vue +71 -67
  106. package/src/helper/dom.ts +2 -2
  107. package/src/helper/duration.ts +18 -8
  108. package/src/locale/educationen.ts +14 -0
  109. package/src/locale/en.ts +299 -1
  110. package/src/locale/fr.ts +25 -10
  111. package/src/locale/messages.ts +3 -2
  112. package/src/main.ts +54 -32
  113. package/src/router/router.ts +184 -159
  114. package/src/shims-tsx.d.ts +13 -0
  115. package/src/shims-vue-recaptcha-v3.d.ts +9 -0
  116. package/src/shims-vue.d.ts +5 -6
  117. package/src/store/AppStore.ts +36 -171
  118. package/src/store/class/category.ts +8 -0
  119. package/src/store/class/comment.ts +17 -0
  120. package/src/store/class/conference.ts +27 -0
  121. package/src/store/class/customPlayer.ts +8 -0
  122. package/src/store/class/emission.ts +20 -0
  123. package/src/store/class/fetchParam.ts +16 -0
  124. package/src/store/class/media.ts +13 -0
  125. package/src/store/class/organisation.ts +19 -0
  126. package/src/store/class/participant.ts +12 -0
  127. package/src/store/class/person.ts +13 -0
  128. package/src/store/class/player.ts +12 -0
  129. package/src/store/class/playlist.ts +15 -0
  130. package/src/store/class/podcast.ts +37 -0
  131. package/src/store/class/rubriquage.ts +9 -0
  132. package/src/store/class/rubriquageFilter.ts +5 -0
  133. package/src/store/class/rubrique.ts +8 -0
  134. package/src/store/paramStore.ts +70 -29
  135. package/src/store/typeAppStore.ts +171 -237
  136. package/src/vuex-shim.d.ts +8 -0
  137. package/tsconfig.json +4 -0
  138. package/vue.config.js +14 -0
  139. package/public/img/ACPM.PNG +0 -0
  140. package/src/assets/bootstrap_scss/_alert.scss +0 -51
  141. package/src/assets/bootstrap_scss/_badge.scss +0 -54
  142. package/src/assets/bootstrap_scss/_breadcrumb.scss +0 -42
  143. package/src/assets/bootstrap_scss/_button-group.scss +0 -164
  144. package/src/assets/bootstrap_scss/_buttons.scss +0 -291
  145. package/src/assets/bootstrap_scss/_card.scss +0 -278
  146. package/src/assets/bootstrap_scss/_carousel.scss +0 -197
  147. package/src/assets/bootstrap_scss/_close.scss +0 -41
  148. package/src/assets/bootstrap_scss/_code.scss +0 -48
  149. package/src/assets/bootstrap_scss/_custom-forms.scss +0 -522
  150. package/src/assets/bootstrap_scss/_dropdown.scss +0 -201
  151. package/src/assets/bootstrap_scss/_forms.scss +0 -352
  152. package/src/assets/bootstrap_scss/_functions.scss +0 -134
  153. package/src/assets/bootstrap_scss/_grid.scss +0 -69
  154. package/src/assets/bootstrap_scss/_images.scss +0 -42
  155. package/src/assets/bootstrap_scss/_input-group.scss +0 -191
  156. package/src/assets/bootstrap_scss/_jumbotron.scss +0 -17
  157. package/src/assets/bootstrap_scss/_list-group.scss +0 -158
  158. package/src/assets/bootstrap_scss/_media.scss +0 -8
  159. package/src/assets/bootstrap_scss/_mixins.scss +0 -47
  160. package/src/assets/bootstrap_scss/_modal.scss +0 -243
  161. package/src/assets/bootstrap_scss/_nav.scss +0 -120
  162. package/src/assets/bootstrap_scss/_navbar.scss +0 -324
  163. package/src/assets/bootstrap_scss/_pagination.scss +0 -74
  164. package/src/assets/bootstrap_scss/_popover.scss +0 -170
  165. package/src/assets/bootstrap_scss/_print.scss +0 -141
  166. package/src/assets/bootstrap_scss/_progress.scss +0 -46
  167. package/src/assets/bootstrap_scss/_reboot.scss +0 -482
  168. package/src/assets/bootstrap_scss/_root.scss +0 -20
  169. package/src/assets/bootstrap_scss/_spinners.scss +0 -55
  170. package/src/assets/bootstrap_scss/_tables.scss +0 -185
  171. package/src/assets/bootstrap_scss/_toasts.scss +0 -44
  172. package/src/assets/bootstrap_scss/_tooltip.scss +0 -115
  173. package/src/assets/bootstrap_scss/_transitions.scss +0 -20
  174. package/src/assets/bootstrap_scss/_type.scss +0 -125
  175. package/src/assets/bootstrap_scss/_utilities.scss +0 -17
  176. package/src/assets/bootstrap_scss/_variables.scss +0 -1145
  177. package/src/assets/bootstrap_scss/bootstrap-grid.scss +0 -29
  178. package/src/assets/bootstrap_scss/bootstrap-reboot.scss +0 -12
  179. package/src/assets/bootstrap_scss/bootstrap.scss +0 -44
  180. package/src/assets/bootstrap_scss/mixins/_alert.scss +0 -13
  181. package/src/assets/bootstrap_scss/mixins/_background-variant.scss +0 -22
  182. package/src/assets/bootstrap_scss/mixins/_badge.scss +0 -17
  183. package/src/assets/bootstrap_scss/mixins/_border-radius.scss +0 -63
  184. package/src/assets/bootstrap_scss/mixins/_box-shadow.scss +0 -20
  185. package/src/assets/bootstrap_scss/mixins/_breakpoints.scss +0 -123
  186. package/src/assets/bootstrap_scss/mixins/_buttons.scss +0 -110
  187. package/src/assets/bootstrap_scss/mixins/_caret.scss +0 -62
  188. package/src/assets/bootstrap_scss/mixins/_clearfix.scss +0 -7
  189. package/src/assets/bootstrap_scss/mixins/_deprecate.scss +0 -10
  190. package/src/assets/bootstrap_scss/mixins/_float.scss +0 -14
  191. package/src/assets/bootstrap_scss/mixins/_forms.scss +0 -177
  192. package/src/assets/bootstrap_scss/mixins/_gradients.scss +0 -45
  193. package/src/assets/bootstrap_scss/mixins/_grid-framework.scss +0 -71
  194. package/src/assets/bootstrap_scss/mixins/_grid.scss +0 -69
  195. package/src/assets/bootstrap_scss/mixins/_hover.scss +0 -37
  196. package/src/assets/bootstrap_scss/mixins/_image.scss +0 -36
  197. package/src/assets/bootstrap_scss/mixins/_list-group.scss +0 -21
  198. package/src/assets/bootstrap_scss/mixins/_lists.scss +0 -7
  199. package/src/assets/bootstrap_scss/mixins/_nav-divider.scss +0 -11
  200. package/src/assets/bootstrap_scss/mixins/_pagination.scss +0 -22
  201. package/src/assets/bootstrap_scss/mixins/_reset-text.scss +0 -17
  202. package/src/assets/bootstrap_scss/mixins/_resize.scss +0 -6
  203. package/src/assets/bootstrap_scss/mixins/_screen-reader.scss +0 -34
  204. package/src/assets/bootstrap_scss/mixins/_size.scss +0 -7
  205. package/src/assets/bootstrap_scss/mixins/_table-row.scss +0 -39
  206. package/src/assets/bootstrap_scss/mixins/_text-emphasis.scss +0 -17
  207. package/src/assets/bootstrap_scss/mixins/_text-hide.scss +0 -11
  208. package/src/assets/bootstrap_scss/mixins/_text-truncate.scss +0 -8
  209. package/src/assets/bootstrap_scss/mixins/_transition.scss +0 -16
  210. package/src/assets/bootstrap_scss/mixins/_visibility.scss +0 -8
  211. package/src/assets/bootstrap_scss/utilities/_align.scss +0 -8
  212. package/src/assets/bootstrap_scss/utilities/_background.scss +0 -19
  213. package/src/assets/bootstrap_scss/utilities/_borders.scss +0 -75
  214. package/src/assets/bootstrap_scss/utilities/_clearfix.scss +0 -3
  215. package/src/assets/bootstrap_scss/utilities/_display.scss +0 -26
  216. package/src/assets/bootstrap_scss/utilities/_embed.scss +0 -39
  217. package/src/assets/bootstrap_scss/utilities/_flex.scss +0 -51
  218. package/src/assets/bootstrap_scss/utilities/_float.scss +0 -11
  219. package/src/assets/bootstrap_scss/utilities/_overflow.scss +0 -5
  220. package/src/assets/bootstrap_scss/utilities/_position.scss +0 -32
  221. package/src/assets/bootstrap_scss/utilities/_screenreaders.scss +0 -11
  222. package/src/assets/bootstrap_scss/utilities/_shadows.scss +0 -6
  223. package/src/assets/bootstrap_scss/utilities/_sizing.scss +0 -20
  224. package/src/assets/bootstrap_scss/utilities/_spacing.scss +0 -73
  225. package/src/assets/bootstrap_scss/utilities/_stretched-link.scss +0 -19
  226. package/src/assets/bootstrap_scss/utilities/_text.scss +0 -72
  227. package/src/assets/bootstrap_scss/utilities/_visibility.scss +0 -13
  228. package/src/assets/bootstrap_scss/vendor/_rfs.scss +0 -204
  229. package/src/shims-vuex.d.ts +0 -7
  230. package/src/views/Home.vue +0 -18
@@ -1,11 +1,15 @@
1
1
  <template>
2
2
  <div class="p-3 list-episodes">
3
- <h2 v-if="name">{{ $t('All podcast button', { name: name }) }}</h2>
4
- <h2 v-else>{{ $t('All podcast emission button') }}</h2>
3
+ <h2 v-if="name">
4
+ {{ $t('All podcast button', { name: name }) }}
5
+ </h2>
6
+ <h2 v-else>
7
+ {{ $t('All podcast emission button') }}
8
+ </h2>
5
9
  <div class="d-flex align-items-center flex-wrap">
6
10
  <div
7
- class="d-flex align-items-center flex-grow categories-filter"
8
11
  v-if="categoryFilter"
12
+ class="d-flex align-items-center flex-grow categories-filter"
9
13
  >
10
14
  <CategoryChooser
11
15
  :defaultanswer="$t('No category filter')"
@@ -13,132 +17,127 @@
13
17
  />
14
18
  </div>
15
19
  <div class="d-flex position-relative small-flex-grow">
16
- <label for="search" class="d-inline" :aria-label="$t('Search')"></label>
20
+ <label
21
+ for="search"
22
+ class="d-inline"
23
+ :aria-label="$t('Search')"
24
+ />
17
25
  <input
18
- :placeholder="$t('Search')"
26
+ id="search"
19
27
  v-model="searchPattern"
28
+ :placeholder="$t('Search')"
20
29
  class="filter-search-input input-no-outline flex-grow"
21
- id="search"
22
- />
30
+ >
23
31
  <div
24
32
  class="saooti-search-bounty filter-list-search-icon search-icon-container"
25
- ></div>
33
+ />
26
34
  </div>
27
35
  </div>
28
36
  <PodcastList
29
37
  :first="first"
30
38
  :size="size"
31
- :iabId="iabId"
39
+ :iab-id="iabId"
32
40
  :query="query"
33
- :participantId="participantId"
34
- :emissionId="emissionId"
35
- :organisationId="productorId"
41
+ :participant-id="participantId"
42
+ :emission-id="emissionId"
43
+ :organisation-id="productorId"
36
44
  :reload="reloadList"
37
- :includeHidden="editRight"
45
+ :include-hidden="editRight"
38
46
  @fetch="fetch"
39
47
  />
40
48
  </div>
41
49
  </template>
42
50
 
43
- <style lang="scss">
44
- .categories-filter {
45
- .multiselect {
46
- width: 75%;
47
- @media (max-width: 600px) {
48
- width: 100%;
49
- }
50
- }
51
- }
52
- .list-episodes {
53
- padding: 2rem 0.5rem 1rem !important;
54
- margin: 0 0.5rem;
55
-
56
- @media (max-width: 450px) {
57
- padding: 0.5rem 0rem 1rem !important;
58
- }
59
- h2 {
60
- margin-bottom: 0.5rem;
61
- }
62
- }
63
- .filter-list-search-icon {
64
- right: 1.6rem !important;
65
- font-weight: bold;
66
- }
67
- .small-flex-grow {
68
- flex-grow: 0.3;
69
- }
70
- </style>
71
-
72
51
  <script lang="ts">
73
- // @ is an alias to /src
74
- import CategoryChooser from '../categories/CategoryChooser.vue';
75
- import PodcastList from './PodcastList.vue';
76
52
 
77
- import { defineComponent } from 'vue'
53
+ import PodcastList from './PodcastList.vue';
54
+ import { Category } from '@/store/class/category';
55
+ import { defineComponent, defineAsyncComponent } from 'vue';
56
+ const CategoryChooser = defineAsyncComponent(() => import('../categories/CategoryChooser.vue'));
78
57
  export default defineComponent({
79
58
  components: {
80
59
  CategoryChooser,
81
60
  PodcastList,
82
61
  },
83
-
84
- created() {
85
- if (this.$route.query.first) {
86
- this.first = this.$route.query.first;
87
- } else {
88
- this.first = 0;
89
- }
90
- if (this.$route.query.size) {
91
- this.size = this.$route.query.size;
92
- } else {
93
- this.size = 12;
94
- }
62
+ props: {
63
+ participantId: { default: undefined, type: Number},
64
+ name: { default: undefined, type: String},
65
+ emissionId: { default: undefined, type: Number},
66
+ categoryFilter: { default: false, type: Boolean},
67
+ reload: { default: false, type: Boolean},
68
+ editRight: { default: false, type: Boolean},
69
+ productorId: { default: undefined, type: String},
95
70
  },
96
-
97
- props: [
98
- 'participantId',
99
- 'name',
100
- 'emissionId',
101
- 'categoryFilter',
102
- 'productorId',
103
- 'reload',
104
- 'editRight',
105
- ],
106
71
  emits: ['fetch'],
107
72
 
108
73
  data() {
109
74
  return {
110
- first: undefined as any,
111
- size: undefined as any,
112
- searchPattern: '',
113
- iabId: undefined as any,
114
- reloadList: false,
75
+ first: 0 as number,
76
+ size: 12 as number,
77
+ searchPattern: '' as string,
78
+ iabId: undefined as number | undefined,
79
+ reloadList: false as boolean,
115
80
  };
116
81
  },
117
-
118
82
  computed: {
119
- query():string {
83
+ query(): string {
120
84
  if (this.searchPattern.length >= 3) return this.searchPattern;
121
85
  return '';
122
86
  },
123
87
  },
124
-
88
+ watch: {
89
+ reload(): void {
90
+ this.reloadList = !this.reloadList;
91
+ },
92
+ },
93
+ created() {
94
+ if (this.$route.query.first && 'string' === typeof this.$route.query.first) {
95
+ this.first = parseInt(this.$route.query.first);
96
+ }
97
+ if (this.$route.query.size && 'string' === typeof this.$route.query.size) {
98
+ this.size = parseInt(this.$route.query.size);
99
+ }
100
+ },
125
101
  methods: {
126
- onCategorySelected(category:any) {
102
+ onCategorySelected(category: Category|undefined): void {
127
103
  if (category && category.id) {
128
104
  this.iabId = category.id;
129
105
  } else {
130
106
  this.iabId = undefined;
131
107
  }
132
108
  },
133
- fetch(podcasts:any) {
109
+ fetch(podcasts: any): void {
134
110
  this.$emit('fetch', podcasts);
135
111
  },
136
112
  },
137
-
138
- watch: {
139
- reload() {
140
- this.reloadList = !this.reloadList;
141
- },
142
- },
143
- });
113
+ })
144
114
  </script>
115
+
116
+ <style lang="scss">
117
+ .categories-filter {
118
+ .multiselect {
119
+ width: 75%;
120
+ @media (max-width: 600px) {
121
+ width: 100%;
122
+ }
123
+ }
124
+ }
125
+ .list-episodes {
126
+ padding: 2rem 0.5rem 1rem !important;
127
+ margin: 0 0.5rem;
128
+
129
+ @media (max-width: 450px) {
130
+ padding: 0.5rem 0rem 1rem !important;
131
+ }
132
+ h2 {
133
+ margin-bottom: 0.5rem;
134
+ }
135
+ }
136
+ .filter-list-search-icon {
137
+ right: 1.6rem !important;
138
+ font-weight: bold;
139
+ }
140
+ .small-flex-grow {
141
+ flex-grow: 0.3;
142
+ }
143
+ </style>