@saooti/octopus-sdk 30.0.8 → 30.0.9

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 (66) hide show
  1. package/README.md +2 -1
  2. package/package.json +1 -1
  3. package/src/assets/bootstrap-diff.scss +15 -24
  4. package/src/assets/form.scss +0 -37
  5. package/src/assets/general.scss +44 -152
  6. package/src/assets/live.scss +39 -0
  7. package/src/assets/modal.scss +14 -18
  8. package/src/assets/multiselect.scss +30 -77
  9. package/src/assets/octopus-library.scss +1 -0
  10. package/src/assets/share.scss +149 -256
  11. package/src/assets/transition.scss +95 -1
  12. package/src/components/display/categories/CategoryChooser.vue +1 -1
  13. package/src/components/display/categories/CategoryList.vue +2 -4
  14. package/src/components/display/comments/CommentInput.vue +2 -2
  15. package/src/components/display/comments/CommentItem.vue +6 -6
  16. package/src/components/display/comments/CommentParentInfo.vue +1 -1
  17. package/src/components/display/edit/EditCommentBox.vue +8 -16
  18. package/src/components/display/emission/EmissionChooser.vue +1 -3
  19. package/src/components/display/emission/EmissionInlineList.vue +11 -2
  20. package/src/components/display/emission/EmissionItem.vue +22 -64
  21. package/src/components/display/emission/EmissionList.vue +59 -68
  22. package/src/components/display/emission/EmissionPlayerItem.vue +9 -8
  23. package/src/components/display/filter/AdvancedSearch.vue +11 -45
  24. package/src/components/display/filter/MonetizableFilter.vue +2 -4
  25. package/src/components/display/filter/ProductorSearch.vue +0 -1
  26. package/src/components/display/filter/RubriqueChoice.vue +4 -6
  27. package/src/components/display/filter/RubriqueFilter.vue +0 -1
  28. package/src/components/display/live/CountDown.vue +4 -2
  29. package/src/components/display/live/LiveHorizontalList.vue +1 -1
  30. package/src/components/display/live/LiveItem.vue +4 -4
  31. package/src/components/display/live/LiveList.vue +84 -214
  32. package/src/components/display/organisation/OrganisationChooser.vue +5 -23
  33. package/src/components/display/participant/ParticipantItem.vue +7 -19
  34. package/src/components/display/participant/ParticipantList.vue +39 -52
  35. package/src/components/display/playlist/PlaylistItem.vue +1 -1
  36. package/src/components/display/playlist/PlaylistList.vue +8 -14
  37. package/src/components/display/playlist/PodcastList.vue +14 -22
  38. package/src/components/display/podcasts/AnimatorsItem.vue +0 -1
  39. package/src/components/display/podcasts/ParticipantDescription.vue +4 -16
  40. package/src/components/display/podcasts/PodcastFilterList.vue +13 -47
  41. package/src/components/display/podcasts/PodcastImage.vue +26 -83
  42. package/src/components/display/podcasts/PodcastInlineList.vue +13 -35
  43. package/src/components/display/podcasts/PodcastItem.vue +4 -4
  44. package/src/components/display/podcasts/PodcastList.vue +7 -14
  45. package/src/components/display/podcasts/PodcastModuleBox.vue +9 -28
  46. package/src/components/display/podcasts/TagList.vue +2 -3
  47. package/src/components/display/rubriques/RubriqueChooser.vue +2 -2
  48. package/src/components/display/rubriques/RubriqueList.vue +5 -25
  49. package/src/components/display/sharing/PlayerParameters.vue +6 -26
  50. package/src/components/display/sharing/ShareButtons.vue +21 -45
  51. package/src/components/display/sharing/ShareDistribution.vue +1 -7
  52. package/src/components/display/sharing/SharePlayer.vue +2 -2
  53. package/src/components/display/sharing/SharePlayerColors.vue +3 -7
  54. package/src/components/display/sharing/SharePlayerTypes.vue +1 -2
  55. package/src/components/display/sharing/SubscribeButtons.vue +1 -3
  56. package/src/components/misc/ErrorMessage.vue +3 -0
  57. package/src/components/misc/HomeDropdown.vue +2 -2
  58. package/src/components/misc/LeftMenu.vue +1 -1
  59. package/src/components/misc/Player.vue +1 -1
  60. package/src/components/misc/PlayerClockAndTimeline.vue +1 -1
  61. package/src/components/misc/PlayerProgressBar.vue +1 -1
  62. package/src/components/misc/TopBar.vue +1 -1
  63. package/src/components/pages/Lives.vue +0 -1
  64. package/src/components/pages/Participant.vue +1 -1
  65. package/src/sass/_variables.scss +0 -1
  66. package/src/store/class/general/media.ts +1 -1
@@ -6,12 +6,7 @@
6
6
  >
7
7
  <template v-if="isPodcastmaker">
8
8
  <div
9
- v-if="mainRubrique"
10
- class="mainRubrique"
11
- />
12
- <div
13
- v-else
14
- class="notMainRubrique"
9
+ :class="mainRubrique? 'mainRubrique' : 'notMainRubrique'"
15
10
  />
16
11
  </template>
17
12
  <div
@@ -55,9 +50,9 @@
55
50
  v-show="playingPodcast"
56
51
  class="bloc-paddle"
57
52
  >
58
- <span class="paddle1 primary-color" />
59
- <span class="paddle2 primary-color" />
60
- <span class="paddle3 primary-color" />
53
+ <span class="paddle1" />
54
+ <span class="paddle2" />
55
+ <span class="paddle3" />
61
56
  </div>
62
57
  </div>
63
58
  <div
@@ -72,20 +67,20 @@
72
67
  </div>
73
68
  <div
74
69
  v-if="!classicPodcastPlay"
75
- class="small-Text mt-3 fw-bolder"
70
+ class="small-text mt-3 fw-bolder"
76
71
  >
77
72
  {{ textVisible }}
78
73
  </div>
79
74
  </div>
80
75
  <div
81
76
  v-if="!isDescription && displayDescription && isMobile"
82
- class="background-icon saooti-arrow-up2"
77
+ class="background-icon primary-bg saooti-arrow-up2"
83
78
  :aria-label="$t('Show description')"
84
79
  @click="showDescription"
85
80
  />
86
81
  <div
87
82
  v-if="isDescription && displayDescription && isMobile"
88
- class="background-icon saooti-arrow-down2"
83
+ class="background-icon primary-bg saooti-arrow-down2"
89
84
  :aria-label="$t('Hide description')"
90
85
  @click="showDescription"
91
86
  />
@@ -291,12 +286,26 @@ export default defineComponent({
291
286
 
292
287
 
293
288
  <style lang="scss">
294
- .no-visible-img {
295
- width: 3rem;
296
- height: 3rem;
289
+ .live-image-status {
290
+ text-align: center;
291
+ width: 100%;
292
+ font-size: 0.6rem;
293
+ padding: 0.2rem 0;
294
+ color: white;
295
+ text-transform: uppercase;
296
+ }
297
+
298
+ .background-icon{
297
299
  border-radius: 50%;
298
- padding: 0.7em;
299
- background: rgba(0, 0, 0, 0.31);
300
+ width: 1rem;
301
+ height: 1rem;
302
+ font-size: 1rem;
303
+ right: 0;
304
+ bottom: 0;
305
+ margin: 5px;
306
+ position: absolute;
307
+ cursor: pointer;
308
+ z-index: 3;
300
309
  }
301
310
  .special-icon-play-button {
302
311
  width: 30px;
@@ -335,16 +344,13 @@ export default defineComponent({
335
344
  display: flex;
336
345
  align-items: center;
337
346
  justify-content: center;
338
-
339
347
  &.error-icon {
340
348
  background: #00000050 !important;
341
349
  cursor: default !important;
342
350
  }
343
-
344
351
  &:hover {
345
352
  background: #00000030;
346
353
  }
347
-
348
354
  > .saooti-play2-bounty {
349
355
  font-size: 2em;
350
356
  position: relative;
@@ -357,68 +363,5 @@ export default defineComponent({
357
363
  z-index: 2;
358
364
  }
359
365
  }
360
- .bloc-paddle {
361
- align-items: flex-end;
362
- display: flex;
363
- width: 2rem;
364
- height: 2.6rem;
365
- padding: 0.7rem;
366
- justify-content: space-around;
367
- align-content: flex-start;
368
- border-radius: 50%;
369
- background: transparent !important;
370
-
371
- > span {
372
- width: 0.1rem;
373
- margin: 0.05rem;
374
- background: #fff;
375
- }
376
366
 
377
- .paddle1 {
378
- animation-duration: 0.6s;
379
- animation-name: slidein;
380
- animation-iteration-count: infinite;
381
- animation-direction: alternate;
382
- }
383
-
384
- .paddle2 {
385
- animation-duration: 0.3s;
386
- animation-name: slidein2;
387
- animation-iteration-count: infinite;
388
- animation-direction: alternate;
389
- }
390
-
391
- .paddle3 {
392
- animation-duration: 0.5s;
393
- animation-name: slidein3;
394
- animation-iteration-count: infinite;
395
- animation-direction: alternate;
396
- }
397
- @keyframes slidein {
398
- 0% {
399
- height: 0;
400
- }
401
- 100% {
402
- height: 1rem;
403
- }
404
- }
405
-
406
- @keyframes slidein2 {
407
- 0% {
408
- height: 0.3rem;
409
- }
410
- 100% {
411
- height: 1.2rem;
412
- }
413
- }
414
-
415
- @keyframes slidein3 {
416
- 0% {
417
- height: 1.2rem;
418
- }
419
- 100% {
420
- height: 0;
421
- }
422
- }
423
- }
424
367
  </style>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div
3
3
  v-if="loading || (!loading && 0 !== allPodcasts.length)"
4
- class="d-flex flex-column p-3 list-episode"
4
+ class="d-flex flex-column p-3"
5
5
  >
6
6
  <h2>{{ title }}</h2>
7
7
  <div class="d-flex justify-content-between">
@@ -43,19 +43,13 @@
43
43
  </button>
44
44
  </div>
45
45
  </div>
46
- <div
47
- v-if="loading"
48
- class="d-flex justify-content-center"
49
- >
50
- <div class="spinner-border me-3" />
51
- <h3 class="mt-2">
52
- {{ $t('Loading podcasts ...') }}
53
- </h3>
54
- </div>
46
+ <ClassicLoading
47
+ :loading-text="loading?$t('Loading podcasts ...'):undefined"
48
+ />
55
49
  <transition-group
56
50
  v-show="loaded"
57
51
  :name="transitionName"
58
- class="podcast-list-inline"
52
+ class="element-list-inline"
59
53
  tag="ul"
60
54
  :class="[alignLeft ? 'justify-content-start' : '']"
61
55
  >
@@ -69,7 +63,7 @@
69
63
  </transition-group>
70
64
  <router-link
71
65
  class="btn btn-link"
72
- :class="buttonPlus ? 'btn-linkPlus' : ''"
66
+ :class="buttonPlus ? 'btn-link-plus' : ''"
73
67
  :to="refTo"
74
68
  >
75
69
  {{ buttonText }}
@@ -85,7 +79,7 @@
85
79
  import octopusApi from '@saooti/octopus-api';
86
80
  import domHelper from '../../../helper/dom';
87
81
  import PodcastItem from './PodcastItem.vue';
88
-
82
+ import ClassicLoading from '../../form/ClassicLoading.vue';
89
83
  const PHONE_WIDTH = 960;
90
84
 
91
85
  import { Podcast } from '@/store/class/general/podcast';
@@ -96,7 +90,8 @@ export default defineComponent({
96
90
  name: 'PodcastInlineList',
97
91
 
98
92
  components: {
99
- PodcastItem
93
+ PodcastItem,
94
+ ClassicLoading
100
95
  },
101
96
 
102
97
  props: {
@@ -171,30 +166,13 @@ export default defineComponent({
171
166
  },
172
167
  transitionName(): string {
173
168
  return this.direction > 0 ? 'out-left' : 'out-right';
169
+ },
170
+ watchVariable():string{
171
+ return `${this.emissionId}|${this.organisationId}|${this.filterOrga}|${this.iabId}|${this.rubriqueId}|${this.rubriquageId}`;
174
172
  }
175
173
  },
176
174
  watch: {
177
- emissionId(): void {
178
- this.reset();
179
- this.fetchNext();
180
- },
181
- organisationId(): void {
182
- this.reset();
183
- this.fetchNext();
184
- },
185
- filterOrga(): void {
186
- this.reset();
187
- this.fetchNext();
188
- },
189
- iabId(): void {
190
- this.reset();
191
- this.fetchNext();
192
- },
193
- rubriqueId(): void {
194
- this.reset();
195
- this.fetchNext();
196
- },
197
- rubriquageId(): void {
175
+ watchVariable(): void {
198
176
  this.reset();
199
177
  this.fetchNext();
200
178
  },
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <li
3
- class="podcast-item-container m-0"
3
+ class="podcast-item-container"
4
4
  :class="[
5
5
  podcastShadow ? 'shadow-element' : '',
6
6
  podcastBorderBottom ? 'border-bottom' : '',
@@ -37,14 +37,14 @@
37
37
  @mouseleave="hideDescription"
38
38
  >
39
39
  <div class="d-flex justify-content-between flex-wrap text-secondary mb-3">
40
- <div class="me-3 small-Text">
40
+ <div class="me-3 small-text">
41
41
  {{ date }}
42
42
  </div>
43
43
  <div
44
44
  v-if="0 !== duration.length"
45
- class="small-Text"
45
+ class="small-text"
46
46
  >
47
- <!-- <span class="saooti-clock3"></span> -->{{ duration }}
47
+ {{ duration }}
48
48
  </div>
49
49
  </div>
50
50
  <AnimatorsItem :animators="podcast.animators" />
@@ -1,17 +1,9 @@
1
1
  <template>
2
2
  <div class="d-flex flex-column align-items-center">
3
- <div
4
- v-if="loading"
5
- class="d-flex justify-content-center"
6
- >
7
- <div class="spinner-border me-3" />
8
- <h3 class="mt-2">
9
- {{ $t('Loading podcasts ...') }}
10
- </h3>
11
- </div>
12
- <div v-if="loaded && !podcasts.length">
13
- <p>{{ $t('No podcast match your query') }}</p>
14
- </div>
3
+ <ClassicLoading
4
+ :loading-text="loading?$t('Loading podcasts ...'):undefined"
5
+ :error-text="loaded && !podcasts.length?$t(`No podcast match your query`):undefined"
6
+ />
15
7
  <div
16
8
  v-if="showCount && loaded && podcasts.length > 1"
17
9
  class="text-secondary mb-2"
@@ -31,7 +23,7 @@
31
23
  <button
32
24
  v-show="!allFetched && loaded"
33
25
  class="btn"
34
- :class="buttonPlus ? 'btn-linkPlus mt-3' : 'btn-more'"
26
+ :class="buttonPlus ? 'btn-link-plus' : 'btn-more'"
35
27
  :disabled="inFetching"
36
28
  :aria-label="$t('See more')"
37
29
  @click="displayMore"
@@ -48,7 +40,7 @@
48
40
  import octopusApi from '@saooti/octopus-api';
49
41
  import PodcastItem from './PodcastItem.vue';
50
42
  import { state } from '../../../store/paramStore';
51
-
43
+ import ClassicLoading from '../../form/ClassicLoading.vue';
52
44
  import { Podcast } from '@/store/class/general/podcast';
53
45
  import { defineComponent } from 'vue'
54
46
  import { FetchParam } from '@/store/class/general/fetchParam';
@@ -57,6 +49,7 @@ export default defineComponent({
57
49
 
58
50
  components: {
59
51
  PodcastItem,
52
+ ClassicLoading
60
53
  },
61
54
 
62
55
  props: {
@@ -1,11 +1,11 @@
1
1
  <template>
2
2
  <div class="module-box">
3
- <h2
3
+ <div
4
4
  v-if="!isOuestFrance"
5
- class="text-uppercase fw-bold title-page-podcast"
5
+ class="text-uppercase h4"
6
6
  >
7
7
  {{ podcast.title }}
8
- </h2>
8
+ </div>
9
9
  <router-link
10
10
  v-else
11
11
  :to="{
@@ -42,7 +42,7 @@
42
42
  {{ podcast.title }}
43
43
  </h3>
44
44
  <div
45
- class="date-text-zone"
45
+ class="d-flex flex-wrap mb-3"
46
46
  :class="isLiveReady ? 'justify-content-between' : ''"
47
47
  >
48
48
  <div
@@ -51,7 +51,7 @@
51
51
  >
52
52
  {{ date }}
53
53
  </div>
54
- <div class="ms-2 me-2 duration">
54
+ <div>
55
55
  <span
56
56
  v-if="isOuestFrance"
57
57
  class="saooti-clock3"
@@ -70,12 +70,12 @@
70
70
  v-html="urlify(podcast.description)"
71
71
  />
72
72
  <!-- eslint-enable -->
73
- <div class="mt-3 mb-3">
73
+ <div class="my-3">
74
74
  <ParticipantDescription :participants="podcast.animators" />
75
75
  <div v-if="!isOuestFrance">
76
76
  {{ $t('Emission') + ' : ' }}
77
77
  <router-link
78
- class="link-info"
78
+ class="fw-bold"
79
79
  :to="{
80
80
  name: 'emission',
81
81
  params: { emissionId: podcast.emission.emissionId },
@@ -90,7 +90,7 @@
90
90
  <div v-if="!isPodcastmaker">
91
91
  {{ $t('Producted by : ') }}
92
92
  <router-link
93
- class="link-info"
93
+ class="fw-bold"
94
94
  :to="{
95
95
  name: 'productor',
96
96
  params: { productorId: podcast.organisation.id },
@@ -283,23 +283,4 @@ export default defineComponent({
283
283
  })
284
284
  </script>
285
285
 
286
- <style lang="scss">
287
- .title-page-podcast {
288
- font-size: 0.9rem;
289
- }
290
- .width-fit-content{
291
- width: fit-content;
292
- }
293
-
294
- .date-text-zone {
295
- display: flex;
296
- flex-wrap: wrap;
297
- margin-bottom: 1rem;
298
- @media (max-width: 600px) {
299
- display: initial;
300
- .duration {
301
- margin-left: 0 !important;
302
- }
303
- }
304
- }
305
- </style>
286
+ <style lang="scss"></style>
@@ -6,11 +6,10 @@
6
6
  <div
7
7
  v-for="(tag, index) in tagList"
8
8
  :key="tag"
9
- class="tagListElement"
9
+ class="tag-list-element"
10
10
  >
11
11
  <div
12
12
  :id="'tag-list-from-podcast-page'+index"
13
- class="tagListLink"
14
13
  >
15
14
  <img
16
15
  v-if="isOuestFranceTag(tag)"
@@ -55,7 +54,7 @@ export default defineComponent({
55
54
  height: 20px;
56
55
  margin-right: 5px;
57
56
  }
58
- .tagListElement {
57
+ .tag-list-element {
59
58
  display: flex;
60
59
  margin: 0.4rem;
61
60
  padding: 0.2rem;
@@ -47,7 +47,7 @@
47
47
  <div
48
48
  v-if="undefined!==option"
49
49
  class="multiselect-octopus-proposition"
50
- :class="option.rubriqueId <= 0 ? 'primary-dark' : ''"
50
+ :class="option.rubriqueId <= 0 ? 'primary-darker' : ''"
51
51
  :data-selenium="'rubric-chooser-' + seleniumFormat(option.name)"
52
52
  >
53
53
  <span class="option__title">{{ option.name }}</span>
@@ -60,7 +60,7 @@
60
60
  {{ $t('No elements found. Consider changing the search query.') }}
61
61
  </template>
62
62
  <template #caret>
63
- <span class="saooti-arrow_down octopus-arrow-down octopus-arrow-down-top" />
63
+ <span class="saooti-arrow_down octopus-arrow-down" />
64
64
  </template>
65
65
  </VueMultiselect>
66
66
  </div>
@@ -1,12 +1,11 @@
1
1
  <template>
2
- <div class="d-inline-flex w-100 mb-3 ps-3 pe-3 hide-phone rubrique-list">
2
+ <div class="d-inline-flex w-100 mb-3 px-3 hide-phone">
3
3
  <div
4
4
  id="rubrique-list-container"
5
- class="rubrique-list-container"
6
5
  >
7
6
  <select
8
7
  v-model="rubriquage"
9
- class="c-hand mb-0"
8
+ class="c-hand"
10
9
  @change="onRubriquageSelected"
11
10
  >
12
11
  <option
@@ -32,13 +31,11 @@
32
31
  class="dropdown btn-group"
33
32
  >
34
33
  <button
35
- class="btn dropdown-toggle btn-secondary text-decoration-none text-dark category-item category-item-plus dropdown-toggle-no-caret"
34
+ class="btn dropdown-toggle category-rubrique-item-plus dropdown-toggle-no-caret saooti-plus"
36
35
  data-bs-toggle="dropdown"
37
36
  aria-expanded="false"
38
37
  :aria-label="$t('See more')"
39
- >
40
- <i class="saooti-plus" />
41
- </button>
38
+ />
42
39
  <ul class="dropdown-menu dropdown-menu-right px-4">
43
40
  <div
44
41
  v-for="rubrique in hidenRubriques"
@@ -180,7 +177,7 @@ export default defineComponent({
180
177
  </script>
181
178
 
182
179
  <style lang="scss">
183
- .rubrique-list-container {
180
+ #rubrique-list-container {
184
181
  display: flex;
185
182
  justify-content: flex-start;
186
183
  align-items: center;
@@ -193,7 +190,6 @@ export default defineComponent({
193
190
  border-radius: 1.5rem;
194
191
  margin: 0.2rem;
195
192
  font-size: 0.6rem;
196
- margin: 0.2rem;
197
193
  padding: 0.5rem;
198
194
  }
199
195
  }
@@ -201,8 +197,6 @@ export default defineComponent({
201
197
  font-size: 0.6rem;
202
198
  margin: 0.2rem;
203
199
  padding: 0.5rem;
204
- display: block;
205
- height: 1.5rem;
206
200
  border-radius: 1.5rem;
207
201
  border: 0;
208
202
  display: flex;
@@ -210,22 +204,8 @@ export default defineComponent({
210
204
  justify-content: center;
211
205
  white-space: nowrap;
212
206
  flex-shrink: 0;
213
- }
214
- button.rubrique-item {
215
- .router-link-active {
216
- background: #ddd !important;
217
- }
218
207
  &:hover {
219
208
  background: #ddd !important;
220
209
  }
221
210
  }
222
-
223
- .rubrique-list .rubrique-item-plus {
224
- display: flex;
225
- height: 1.5rem;
226
- width: 1.5rem;
227
- align-items: center;
228
- justify-content: center;
229
- font-size: 0.5rem;
230
- }
231
211
  </style>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div
3
3
  id="accordionParameters"
4
- class="accordion player-parameters mt-3"
4
+ class="accordion mt-3"
5
5
  >
6
6
  <div class="accordion-item">
7
7
  <h2
@@ -32,7 +32,7 @@
32
32
  >
33
33
  <div
34
34
  v-if="displayChoiceAllEpisodes"
35
- class="d-flex align-items-center w-100 flex-wrap mt-1"
35
+ class="d-flex align-items-center flex-wrap mt-1"
36
36
  >
37
37
  <input
38
38
  v-model="episodeNumbers"
@@ -66,7 +66,6 @@
66
66
  >
67
67
  <label
68
68
  for="number-input"
69
- class="d-inline"
70
69
  :aria-label="$t('Number of player podcasts')"
71
70
  />
72
71
  <span class="flex-shrink-0">{{ $t('Last podcasts') }}</span>
@@ -158,28 +157,9 @@ export default defineComponent({
158
157
  </script>
159
158
 
160
159
  <style lang="scss">
161
- .player-parameters.card {
162
- border: 0;
163
- .btn {
164
- border-radius: 0;
160
+ .input-share-player {
161
+ border: 1px solid #ddd;
162
+ border-radius: 50px;
163
+ width: 60px;
165
164
  }
166
- .card-header {
167
- border: 0;
168
- background-color: #fafafa;
169
- padding: 0;
170
- }
171
- .card-body {
172
- padding: 0.25rem;
173
- border: 0.05rem solid #eee;
174
- background-color: #fafafa;
175
- .custom-control {
176
- padding-left: 0;
177
- }
178
- input[type='number'] {
179
- padding-left: 10px;
180
- text-align: center;
181
- width: 90px;
182
- }
183
- }
184
- }
185
165
  </style>