@saooti/octopus-sdk 36.0.2 → 36.0.4

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 (85) hide show
  1. package/package.json +1 -1
  2. package/public/css/fonts/icomoon.eot +0 -0
  3. package/public/css/fonts/icomoon.svg +21 -12
  4. package/public/css/fonts/icomoon.ttf +0 -0
  5. package/public/css/fonts/icomoon.woff +0 -0
  6. package/public/css/fonts/style.css +32 -5
  7. package/public/img/header-emissions.webp +0 -0
  8. package/public/img/header-home.webp +0 -0
  9. package/public/img/header-intervenants.webp +0 -0
  10. package/public/img/header-playlists.webp +0 -0
  11. package/public/img/header-podcasts.webp +0 -0
  12. package/src/assets/bootstrap.scss +26 -12
  13. package/src/assets/form.scss +2 -2
  14. package/src/assets/general.scss +16 -26
  15. package/src/assets/live.scss +0 -18
  16. package/src/assets/multiselect.scss +15 -25
  17. package/src/assets/share.scss +47 -12
  18. package/src/components/display/categories/CategoryChooser.vue +1 -1
  19. package/src/components/display/categories/CategoryFilter.vue +109 -62
  20. package/src/components/display/categories/CategoryList.vue +9 -20
  21. package/src/components/display/emission/EmissionChooser.vue +1 -1
  22. package/src/components/display/emission/EmissionInlineList.vue +1 -1
  23. package/src/components/display/emission/EmissionItem.vue +5 -5
  24. package/src/components/display/emission/EmissionPlayerItem.vue +15 -11
  25. package/src/components/display/filter/MonetizableFilter.vue +1 -1
  26. package/src/components/display/filter/ProductorSearch.vue +1 -1
  27. package/src/components/display/filter/RubriqueChoice.vue +1 -1
  28. package/src/components/display/list/ListPaginate.vue +14 -25
  29. package/src/components/display/list/Paginate.vue +71 -104
  30. package/src/components/display/list/PaginateParams.vue +66 -0
  31. package/src/components/display/live/CountDown.vue +1 -1
  32. package/src/components/display/live/LiveItem.vue +0 -7
  33. package/src/components/display/organisation/OrganisationChooser.vue +1 -1
  34. package/src/components/display/participant/ParticipantItem.vue +6 -12
  35. package/src/components/display/participant/ParticipantList.vue +2 -24
  36. package/src/components/display/playlist/PlaylistItem.vue +10 -10
  37. package/src/components/display/podcasts/AnimatorsItem.vue +1 -2
  38. package/src/components/display/podcasts/ParticipantDescription.vue +0 -30
  39. package/src/components/display/podcasts/PodcastFilterList.vue +1 -1
  40. package/src/components/display/podcasts/PodcastImage.vue +19 -13
  41. package/src/components/display/podcasts/PodcastInlineListClassic.vue +1 -1
  42. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +14 -12
  43. package/src/components/display/podcasts/PodcastItem.vue +15 -9
  44. package/src/components/display/podcasts/PodcastItemInfo.vue +18 -55
  45. package/src/components/display/podcasts/PodcastModuleBox.vue +54 -26
  46. package/src/components/display/podcasts/PodcastSwiperList.vue +20 -10
  47. package/src/components/display/podcasts/TagList.vue +7 -2
  48. package/src/components/display/rubriques/RubriqueChooser.vue +2 -2
  49. package/src/components/display/rubriques/RubriqueList.vue +11 -19
  50. package/src/components/display/sharing/PlayerParameters.vue +59 -75
  51. package/src/components/display/sharing/ShareButtons.vue +20 -37
  52. package/src/components/display/sharing/ShareButtonsIntern.vue +74 -83
  53. package/src/components/display/sharing/ShareDistribution.vue +3 -2
  54. package/src/components/display/sharing/SharePlayer.vue +50 -50
  55. package/src/components/display/sharing/SharePlayerColors.vue +4 -4
  56. package/src/components/display/sharing/SharePlayerTypes.vue +25 -27
  57. package/src/components/display/sharing/SubscribeButtons.vue +2 -2
  58. package/src/components/form/ClassicCheckbox.vue +1 -1
  59. package/src/components/form/ClassicSearch.vue +2 -1
  60. package/src/components/misc/Footer.vue +19 -15
  61. package/src/components/misc/HomeDropdown.vue +14 -14
  62. package/src/components/misc/Popover.vue +2 -1
  63. package/src/components/misc/ProgressBar.vue +1 -1
  64. package/src/components/misc/TopBar.vue +54 -44
  65. package/src/components/misc/modal/ClassicModal.vue +2 -2
  66. package/src/components/misc/modal/NewsletterModal.vue +0 -1
  67. package/src/components/misc/player/Player.vue +5 -14
  68. package/src/components/misc/player/PlayerCompact.vue +2 -1
  69. package/src/components/pages/Emission.vue +64 -62
  70. package/src/components/pages/Emissions.vue +0 -9
  71. package/src/components/pages/Participant.vue +13 -15
  72. package/src/components/pages/Participants.vue +0 -7
  73. package/src/components/pages/Playlist.vue +43 -37
  74. package/src/components/pages/Playlists.vue +0 -5
  75. package/src/components/pages/Podcast.vue +65 -100
  76. package/src/components/pages/Podcasts.vue +1 -37
  77. package/src/locale/de.ts +6 -1
  78. package/src/locale/en.ts +6 -1
  79. package/src/locale/es.ts +6 -1
  80. package/src/locale/fr.ts +6 -1
  81. package/src/locale/it.ts +6 -1
  82. package/src/locale/sl.ts +6 -1
  83. package/src/sass/_variables.scss +6 -1
  84. package/src/stores/ParamSdkStore.ts +14 -22
  85. package/src/stores/PlayerStore.ts +11 -0
@@ -22,14 +22,14 @@
22
22
  }
23
23
  margin-top: 0;
24
24
  margin-bottom:0;
25
- font-weight: 600;
25
+ font-weight: 400;
26
26
  line-height: 1.2;
27
27
  }
28
28
  h1,.h1{
29
29
  font-size: 1.8rem;
30
30
  text-align: center;
31
31
  color: #666;
32
- margin-bottom: 2rem;
32
+ margin-bottom: 1rem;
33
33
  @media (max-width: 500px){
34
34
  font-size: 1.2rem;
35
35
  margin: 0.5rem 0 1rem;
@@ -39,6 +39,12 @@
39
39
  font-size: 1.17rem;
40
40
  @media (max-width: 500px){
41
41
  font-size: 1rem;
42
+ }
43
+ }
44
+ .big-h2{
45
+ font-size: 1.7rem;
46
+ @media (max-width: 500px){
47
+ font-size: 1.1rem;
42
48
  }
43
49
  }
44
50
  h3,.h3{
@@ -54,6 +60,7 @@
54
60
  font-size: .63rem;
55
61
  display: flex;
56
62
  align-items: center;
63
+ font-weight: normal;
57
64
  }
58
65
  .text-truncate{
59
66
  overflow: hidden;
@@ -71,7 +78,7 @@
71
78
  user-select: none;
72
79
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
73
80
  font-size:.7rem;
74
- border-radius: 4px;
81
+ border-radius: $octopus-borderradius;
75
82
  background: $octopus-secondary-color;
76
83
  text-decoration: none !important;
77
84
  white-space: nowrap;
@@ -94,9 +101,9 @@
94
101
  padding: 0;
95
102
  margin: 0 2rem 1rem 0;
96
103
  border-radius: 0;
104
+ font-size: 0.9rem;
97
105
  @media (max-width: 600px) {
98
- margin: 0 1rem 1rem 0;
99
- font-size: 0.8em;
106
+ margin: 0 1rem 1rem 0;
100
107
  }
101
108
  position: relative;
102
109
  &:after {
@@ -122,16 +129,23 @@
122
129
  justify-content: center;
123
130
  background: $octopus-primary-color;
124
131
  border: 1px solid $octopus-primary-color;
125
- border-radius: 4px !important;
132
+ border-radius: $octopus-borderradius !important;
126
133
  color: white !important;
127
- font-weight: bold;
128
- &:focus,
129
- &:hover,
130
- &:active,
131
- &.active {
134
+ font-weight: 500;
135
+ &:not(.btn-on-dark):focus,
136
+ &:not(.btn-on-dark):hover,
137
+ &:not(.btn-on-dark):active,
138
+ &:not(.btn-on-dark).active {
132
139
  background: transparent;
133
140
  color: $octopus-primary-color !important;
134
141
  }
142
+ &.btn-on-dark:focus,
143
+ &.btn-on-dark:hover,
144
+ &.btn-on-dark:active,
145
+ &.btn-on-dark.active {
146
+ background: transparent;
147
+ border-color: white !important;
148
+ }
135
149
  &:disabled{
136
150
  background-color: #cccccc;
137
151
  border: black;
@@ -165,7 +179,7 @@
165
179
  justify-content: center;
166
180
  color : $octopus-primary-color;
167
181
  flex-shrink: 0;
168
- font-weight: normal;
182
+ font-weight: 500;
169
183
  border-radius: 50% !important;
170
184
  }
171
185
 
@@ -7,7 +7,7 @@
7
7
  outline-color: transparent !important;
8
8
  padding: 0.25rem 0.4rem;
9
9
  border: 0.1rem solid #dee2e6;
10
- border-radius: 0.3rem;
10
+ border-radius: $octopus-borderradius;
11
11
  height: 2rem;
12
12
  padding-right: 40px;
13
13
  }
@@ -21,7 +21,7 @@
21
21
  background: #fff;
22
22
  background-image: none;
23
23
  border: 0.1rem solid #dee2e6;
24
- border-radius: 0.3rem;
24
+ border-radius:$octopus-borderradius;
25
25
  color: #353535;
26
26
  display: block;
27
27
  font-size: 0.8rem;
@@ -32,6 +32,7 @@ body{
32
32
  color: $octopus-primary-color;
33
33
  &.link-hover{
34
34
  color: black !important;
35
+ font-weight: 500;
35
36
  }
36
37
  &.link-hover:hover, &.link-hover.router-link-exact-active.router-link-active{
37
38
  color: $octopus-primary-color !important;
@@ -73,8 +74,10 @@ body{
73
74
  }
74
75
  .page-box{
75
76
  background-color: $octopus-background;
76
- padding: 2rem 5rem 5rem 5rem;
77
+ padding: 0 5rem 5rem 5rem;
77
78
  flex-grow: 1;
79
+ display: flex;
80
+ flex-direction: column;
78
81
  @media (max-width: 1400px) {
79
82
  padding: 2rem;
80
83
  }
@@ -90,28 +93,18 @@ body{
90
93
  background-color: white;
91
94
  padding: 1.3rem;
92
95
  margin: 0.5rem 0.5rem 0 0.5rem;
93
- border-radius: 1rem;
96
+ border-radius: $octopus-borderradius;
94
97
  flex-grow: 1;
95
98
  overflow: auto;
96
- box-shadow: 0px 12px 48px 6px $primaryColorReallyTransparent !important;
99
+ border: 2px solid #eee;
97
100
  @media (max-width: 500px){
98
101
  margin: 0.3rem;
99
102
  padding: 0.8rem;
100
- box-shadow:0px 6px 20px 3px $primaryColorReallyTransparent !important;
101
- }
102
- }
103
-
104
- .shadow-element{
105
- box-shadow: 0px 12px 48px 6px $primaryColorMoreTransparent !important;
106
- @media (max-width: 500px){
107
- box-shadow:0px 6px 20px 3px $primaryColorMoreTransparent !important;
108
103
  }
109
104
  }
110
105
 
111
106
  .descriptionText{
112
- white-space: pre-wrap;
113
107
  word-wrap: break-word;
114
- text-align: justify;
115
108
  font-size: 0.7rem;
116
109
  @media (max-width: 450px) {
117
110
  margin: 1rem 0;
@@ -144,6 +137,11 @@ body{
144
137
  display: none !important;
145
138
  }
146
139
  }
140
+ .hide-smallest-screen{
141
+ @media (max-width: 380px) {
142
+ display: none !important;
143
+ }
144
+ }
147
145
  .show-phone{
148
146
  display: none;
149
147
  @media (max-width: 960px) {
@@ -157,10 +155,10 @@ body{
157
155
  display: contents;
158
156
  }
159
157
  .img-box{
160
- height: 13rem;
161
- width: 13rem;
158
+ height: $octopus-item-size;
159
+ width: $octopus-item-size;
162
160
  background-size: cover;
163
- border-radius: 0.8rem !important;
161
+ border-radius: $octopus-borderradius !important;
164
162
  overflow: hidden;
165
163
  flex-shrink: 0;
166
164
  @media (max-width: 960px) {
@@ -171,18 +169,10 @@ body{
171
169
  margin: auto;
172
170
  float: inherit !important;
173
171
  display: flex;
172
+ width: $octopus-mobile-item-size;
173
+ height: $octopus-mobile-item-size;
174
174
  }
175
175
  }
176
- .img-box-circle {
177
- height: 10rem;
178
- width: 10rem;
179
- position: relative;
180
- border-radius: 50%;
181
- background-size: cover;
182
- box-shadow: 0px 8px 26px 6px $primaryColorMoreTransparent;
183
- margin: auto;
184
- display: flex;
185
- }
186
176
 
187
177
  .comma {
188
178
  display: flex;
@@ -18,22 +18,4 @@
18
18
  }
19
19
  .publishing-bg {
20
20
  background: rgb(112, 112, 112);
21
- }
22
- .planned-shadow {
23
- box-shadow: 0px 12px 48px 6px rgba(188, 88, 16, 0.2);
24
- }
25
- .pending-shadow {
26
- box-shadow: 0px 12px 48px 6px rgba(216, 58, 14, 0.2);
27
- }
28
- .recording-shadow {
29
- box-shadow: 0px 12px 48px 6px rgba(233, 12, 12, 0.2);
30
- }
31
- .debriefing-shadow {
32
- box-shadow: 0px 12px 48px 6px rgba(54, 134, 54, 0.2);
33
- }
34
- .publishing-shadow {
35
- box-shadow: 0px 12px 48px 6px rgba(112, 112, 112, 0.2);
36
- }
37
- .error-shadow {
38
- box-shadow: 0px 12px 48px 6px rgba(173, 0, 0, 0.2);
39
21
  }
@@ -52,30 +52,12 @@
52
52
  font-size: 0.65rem;
53
53
  margin: 0.2rem;
54
54
  }
55
-
56
- .octopus-arrow-down
57
- {
58
- height: 1.2rem;
59
- width: 1.2rem;
60
- font-size: 1.2rem;
61
- cursor: pointer;
62
- margin: 0;
63
- background-color: #ccc;
64
- border-radius: 50%;
65
- display: flex;
66
- justify-content: center;
67
- align-items: center;
68
- flex-shrink: 0;
69
- padding: 0;
70
- &:before{
71
- font-size: 0.8rem;
72
- }
73
- }
74
55
  .octopus-arrow-down-absolute
75
56
  {
76
57
  position: absolute;
77
58
  right: 10px;
78
- top: 0.5rem;
59
+ top: 0.7rem;
60
+ cursor: pointer;
79
61
  }
80
62
 
81
63
 
@@ -149,6 +131,10 @@
149
131
  color: #35495e;
150
132
  }
151
133
 
134
+ .multiselect-white .multiselect{
135
+ color: white !important;
136
+ }
137
+
152
138
 
153
139
 
154
140
  .multiselect * {
@@ -176,7 +162,7 @@
176
162
  min-height: 20px;
177
163
  line-height: 28px;
178
164
  border: none;
179
- border-radius: 5px;
165
+ border-radius: $octopus-borderradius;
180
166
  padding: 0 0 0 5px;
181
167
  width: 100%;
182
168
  transition: border 0.1s ease;
@@ -223,7 +209,7 @@
223
209
  padding-right: 40px;
224
210
  padding-left: 5px;
225
211
  align-items: center;
226
- border-radius: 0.3em;
212
+ border-radius: $octopus-borderradius;
227
213
  border: 0.1rem solid #dee2e6;
228
214
  background: #fff;
229
215
  font-size: 14px;
@@ -237,7 +223,7 @@
237
223
  position: relative;
238
224
  display: inline-block;
239
225
  padding: 4px 26px 4px 10px;
240
- border-radius: 5px;
226
+ border-radius: $octopus-borderradius;
241
227
  margin-right: 10px;
242
228
  color: black;
243
229
  line-height: 1;
@@ -262,7 +248,7 @@
262
248
  text-align: center;
263
249
  line-height: 22px;
264
250
  transition: all 0.2s ease;
265
- border-radius: 5px;
251
+ border-radius: $octopus-borderradius;
266
252
  }
267
253
 
268
254
  .multiselect__tag-icon:after {
@@ -286,7 +272,7 @@
286
272
  overflow: hidden;
287
273
  padding: 8px 30px 0 12px;
288
274
  white-space: nowrap;
289
- border-radius: 5px;
275
+ border-radius: $octopus-borderradius;
290
276
  border: 1px solid #e8e8e8;
291
277
  }
292
278
 
@@ -349,6 +335,10 @@
349
335
  z-index: 50;
350
336
  -webkit-overflow-scrolling: touch;
351
337
  }
338
+ .multiselect-white .multiselect__content-wrapper{
339
+ background: black;
340
+ }
341
+
352
342
 
353
343
  .multiselect__content {
354
344
  list-style: none;
@@ -31,10 +31,46 @@
31
31
  &:hover {
32
32
  border: 0;
33
33
  }
34
- }
34
+ }
35
+ .page-element-title-container{
36
+ background: black;
37
+ position: absolute;
38
+ right: 0;
39
+ left: 0;
40
+ }
41
+ .page-element-bg{
42
+ height: 15rem;
43
+ opacity: 0.5;
44
+ filter: blur(8px);
45
+ -webkit-filter: blur(8px);
46
+ background-position: center;
47
+ background-repeat: no-repeat;
48
+ background-size: cover;
49
+ }
50
+ .page-element-title{
51
+ position: absolute;
52
+ top:0;
53
+ bottom:0;
54
+ right:0;
55
+ left:0;
56
+ z-index: 2;
57
+ display: flex;
58
+ flex-direction: column;
59
+ justify-content: center;
60
+ h1{
61
+ color: white !important;
62
+ font-size: 2rem;
63
+ }
64
+ }
65
+ .page-element{
66
+ margin-top: 12rem;
67
+ position: relative;
68
+ z-index: 3;
69
+ }
35
70
 
36
71
  .vue-swatches__trigger{
37
72
  border: solid 1px black;
73
+ border-radius: $octopus-borderradius !important;
38
74
  }
39
75
  .podcast-list {
40
76
  align-self: stretch;
@@ -42,7 +78,7 @@
42
78
  margin: 1em 0 0;
43
79
  padding: 0;
44
80
  display: grid; /* 1 */
45
- grid-template-columns: repeat(auto-fill, 13rem); /* 2 */
81
+ grid-template-columns: repeat(auto-fill, $octopus-item-size); /* 2 */
46
82
  grid-gap: 1rem; /* 3 */
47
83
  justify-content: space-between; /* 4 */
48
84
  @media (max-width: 960px) {
@@ -52,6 +88,9 @@
52
88
  justify-content: space-around;
53
89
  flex-wrap: wrap;
54
90
  }
91
+ @media (max-width: 450px) {
92
+ grid-template-columns: repeat(auto-fill, $octopus-mobile-item-size); /* 2 */
93
+ }
55
94
  }
56
95
 
57
96
  .element-list-inline {
@@ -115,11 +154,11 @@
115
154
  .emission-item-container{
116
155
  list-style: none;
117
156
  background: #fff;
118
- border-radius: 2rem;
157
+ border-radius: $octopus-borderradius;
119
158
  display: flex;
120
159
  flex-grow: 1;
160
+ border: 2px solid #eee;
121
161
  .img-box {
122
- border-radius: 2rem !important;
123
162
  @media (max-width: 680px) {
124
163
  margin: 1rem auto auto !important;
125
164
  }
@@ -136,11 +175,11 @@
136
175
  padding: 1rem;
137
176
  display: flex;
138
177
  flex-direction: column;
139
- max-height: 13rem;
178
+ max-height: 16.5rem;
140
179
  flex-grow: 1;
141
180
  .emission-name {
142
- font-size: 0.9rem;
143
- font-weight: 600;
181
+ font-size: 1.2rem;
182
+ font-weight: 400;
144
183
  overflow: hidden;
145
184
  display: -webkit-box;
146
185
  -webkit-line-clamp: 2;
@@ -166,10 +205,6 @@
166
205
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff 40%);
167
206
  }
168
207
  }
169
- .emission-producer {
170
- font-weight: 300;
171
- font-size: 0.6rem;
172
- }
173
208
  }
174
209
  .status-Pending {
175
210
  background: #eb7d22;
@@ -197,7 +232,7 @@
197
232
  }
198
233
  .advanced-search-container {
199
234
  background: #fff;
200
- border-radius: 0.8rem;
235
+ border-radius:$octopus-borderradius;
201
236
  display: flex;
202
237
  width: 100%;
203
238
  padding: 1rem 2rem;
@@ -55,7 +55,7 @@
55
55
  <template #caret="">
56
56
  <div class="position-relative">
57
57
  <span
58
- class="saooti-down octopus-arrow-down octopus-arrow-down-absolute"
58
+ class="saooti-down octopus-arrow-down-absolute"
59
59
  />
60
60
  </div>
61
61
  </template>
@@ -1,68 +1,72 @@
1
1
  <template>
2
2
  <div
3
- v-show="isDisplay"
4
- class="mt-3"
3
+ v-show="isHeaderDisplay"
4
+ class="header-img flex-column justify-content-end"
5
+ :style="backgroundDisplay"
5
6
  >
6
- <ol
7
- v-if="filterIab || filterRubrique.length"
8
- class="octopus-breadcrumb d-flex align-items-center flex-wrap"
9
- >
10
- <li class="octopus-breadcrumb-li">
11
- <a
12
- href="#"
13
- @click="removeFilter(-1, $event)"
14
- >{{ $t('All') }}</a>
15
- </li>
16
- <li
17
- v-if="filterIab"
18
- class="octopus-breadcrumb-li"
7
+ <h1>{{titleDisplay}}</h1>
8
+ <div v-show="isDisplay" class="d-flex flex-column justify-content-end">
9
+ <ol
10
+ v-if="filterIab || filterRubrique.length"
11
+ class="octopus-breadcrumb d-flex align-items-center justify-content-center flex-wrap"
19
12
  >
20
- {{ filterIab.name }}
21
- </li>
22
- <li
23
- v-for="(filter, index) in filterRubrique"
24
- :key="filter.rubriqueId"
25
- class="d-flex align-items-center octopus-breadcrumb-li"
26
- :class="filterRubrique.length-1 === index ? 'active':''"
27
- >
28
- <a
29
- v-if="filterRubrique.length - 1 !== index"
30
- href="#"
31
- @click="removeFilter(index,$event)"
32
- >{{ filter.nameRubriquage }}</a>
33
- <template v-else>
34
- {{ filter.nameRubriquage }}
35
- </template>
36
- <div class="mx-1">
37
- :
38
- </div>
39
- <RubriqueChooser
40
- v-if="getRubriques(filter.rubriquageId).length"
41
- class="ms-2 multiselect-transparent"
42
- :multiple="false"
43
- :rubriquage-id="filter.rubriquageId"
44
- :rubrique-selected="filter.rubriqueId"
45
- :all-rubriques="getRubriques(filter.rubriquageId)"
46
- :cannot-be-undefined="true"
47
- width="auto"
48
- @selected="onRubriqueSelected(index,$event)"
49
- />
50
- </li>
51
- </ol>
52
- <CategoryList
53
- v-if="!filterIab && !rubriquageFilter.length"
54
- :is-filter="true"
55
- :is-display="isDisplay"
56
- @categoriesLength="checkIfCategories"
57
- />
58
- <RubriqueList
59
- v-else-if="isDisplay && rubriquageFilter.length !== filterRubrique.length"
60
- :rubriquages="rubriquageFilter"
61
- />
13
+ <li class="octopus-breadcrumb-li">
14
+ <a
15
+ href="#"
16
+ @click="removeFilter(-1, $event)"
17
+ >{{ $t('All') }}</a>
18
+ </li>
19
+ <li
20
+ v-if="filterIab"
21
+ class="octopus-breadcrumb-li"
22
+ >
23
+ {{ filterIab.name }}
24
+ </li>
25
+ <li
26
+ v-for="(filter, index) in filterRubrique"
27
+ :key="filter.rubriqueId"
28
+ class="d-flex align-items-center octopus-breadcrumb-li"
29
+ :class="filterRubrique.length-1 === index ? 'active':''"
30
+ >
31
+ <a
32
+ v-if="filterRubrique.length - 1 !== index"
33
+ href="#"
34
+ @click="removeFilter(index,$event)"
35
+ >{{ filter.nameRubriquage }}</a>
36
+ <div class="fw-bold" v-else>
37
+ {{ filter.nameRubriquage }}
38
+ </div>
39
+ <div class="mx-1">
40
+ :
41
+ </div>
42
+ <RubriqueChooser
43
+ v-if="getRubriques(filter.rubriquageId).length"
44
+ class="ms-2 multiselect-transparent multiselect-white"
45
+ :multiple="false"
46
+ :rubriquage-id="filter.rubriquageId"
47
+ :rubrique-selected="filter.rubriqueId"
48
+ :all-rubriques="getRubriques(filter.rubriquageId)"
49
+ :cannot-be-undefined="true"
50
+ width="auto"
51
+ @selected="onRubriqueSelected(index,$event)"
52
+ />
53
+ </li>
54
+ </ol>
55
+ <CategoryList
56
+ v-if="!filterIab && !rubriquageFilter.length"
57
+ :is-filter="true"
58
+ :is-display="isDisplay"
59
+ @categoriesLength="checkIfCategories"
60
+ />
61
+ <RubriqueList
62
+ v-else-if="isDisplay && rubriquageFilter.length !== filterRubrique.length"
63
+ :rubriquages="rubriquageFilter"
64
+ />
65
+ </div>
62
66
  </div>
63
67
  <div
64
68
  v-if="!isDisplay"
65
- class="categary-filter-no-filter"
69
+ class="category-filter-no-filter"
66
70
  />
67
71
  </template>
68
72
 
@@ -71,6 +75,7 @@ import { Rubriquage } from '@/stores/class/rubrique/rubriquage';
71
75
  import { RubriquageFilter } from '@/stores/class/rubrique/rubriquageFilter';
72
76
  import { Rubrique } from '@/stores/class/rubrique/rubrique';
73
77
  import { useFilterStore } from '@/stores/FilterStore';
78
+ import { state } from '../../../stores/ParamSdkStore';
74
79
  import { mapState, mapActions } from 'pinia';
75
80
  import { defineComponent, defineAsyncComponent } from 'vue';
76
81
  const CategoryList = defineAsyncComponent(() => import('./CategoryList.vue'));
@@ -95,9 +100,34 @@ export default defineComponent({
95
100
  return ("homePriv" === this.$route.name ||"home" === this.$route.name ||"podcasts" === this.$route.name||"emissions" === this.$route.name)
96
101
  && (this.isCategories || undefined!==this.filterIab || 0!==this.filterRubrique.length || 0!==this.rubriquageFilter.length);
97
102
  },
103
+ isHeaderDisplay(){
104
+ return this.isDisplay ||'participants' === this.$route.name || 'playlists'=== this.$route.name;
105
+ },
98
106
  rubriquageFilter(): Array<Rubriquage>{
99
107
  return this.filterOrgaId ? this.filterRubriquage : [];
100
108
  },
109
+ titleDisplay(): string{
110
+ let title = "";
111
+ switch (this.$route.name) {
112
+ case 'podcasts':title= state.podcastsPage.titlePage ?? this.$t('All podcasts');break;
113
+ case 'emissions':title= state.emissionsPage.titlePage??this.$t('All emissions');break;
114
+ case 'participants': title= state.intervenantsPage.titlePage ?? this.$t('All participants');break;
115
+ case 'playlists': title= this.$t('All playlists');break;
116
+ default:break;
117
+ }
118
+ return title;
119
+ },
120
+ backgroundDisplay():string{
121
+ let imgName = "home";
122
+ switch (this.$route.name) {
123
+ case 'podcasts': imgName= "podcasts";break;
124
+ case 'emissions': imgName= "emissions";break;
125
+ case 'participants': imgName= "intervenants";break;
126
+ case 'playlists': imgName= "playlists";break;
127
+ default:break;
128
+ }
129
+ return `background-image: url('/img/header-${imgName}.webp');`;
130
+ }
101
131
  },
102
132
  methods:{
103
133
  ...mapActions(useFilterStore, ['filterUpdateIab', 'filterUpdateRubrique']),
@@ -145,15 +175,32 @@ export default defineComponent({
145
175
  </script>
146
176
  <style lang="scss">
147
177
  .octopus-app{
178
+ .header-img{
179
+ display: flex;
180
+ min-height: 15rem;
181
+ background-size: cover;
182
+ h1{
183
+ margin: 2rem 1rem auto;
184
+ font-size: 2rem;
185
+ color: white;
186
+ }
187
+ @media (max-width: 960px) {
188
+ min-height: 6rem;
189
+ }
190
+ }
148
191
  .octopus-breadcrumb{
149
192
  padding: 1rem;
150
193
  align-items: center;
151
- background: #FAFAFA;
152
194
  .octopus-breadcrumb-li{
153
195
  list-style: none;
196
+ color: white !important;
197
+ a{
198
+ color: white !important;
199
+ font-weight: bold;
200
+ }
154
201
  &:after {
155
- content: "/";
156
- margin: 0 0.2rem;
202
+ content: "-";
203
+ margin: 0 0.5rem;
157
204
  }
158
205
  &:last-child {
159
206
  &:after {
@@ -162,7 +209,7 @@ export default defineComponent({
162
209
  }
163
210
  }
164
211
  }
165
- .categary-filter-no-filter{
212
+ .category-filter-no-filter{
166
213
  position: absolute;
167
214
  top: 0;
168
215
  bottom: 0;