@saooti/octopus-sdk 33.1.3 → 33.2.0

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 (49) hide show
  1. package/README.md +1 -0
  2. package/package.json +1 -3
  3. package/src/App.vue +1 -1
  4. package/src/assets/_utilities.scss +522 -0
  5. package/src/assets/bootstrap.scss +181 -0
  6. package/src/assets/form.scss +0 -20
  7. package/src/assets/general.scss +1 -0
  8. package/src/assets/modal.scss +49 -8
  9. package/src/assets/octopus-library.scss +2 -3
  10. package/src/components/display/categories/CategoryChooser.vue +1 -1
  11. package/src/components/display/categories/CategoryFilter.vue +60 -46
  12. package/src/components/display/categories/CategoryList.vue +22 -19
  13. package/src/components/display/comments/AddCommentModal.vue +60 -67
  14. package/src/components/display/comments/CommentBasicView.vue +2 -3
  15. package/src/components/display/emission/EmissionItem.vue +2 -1
  16. package/src/components/display/emission/EmissionPlayerItem.vue +0 -11
  17. package/src/components/display/participant/ParticipantItem.vue +2 -1
  18. package/src/components/display/playlist/PlaylistItem.vue +2 -1
  19. package/src/components/display/podcasts/PodcastInlineList.vue +1 -1
  20. package/src/components/display/podcasts/PodcastInlineListClassic.vue +1 -1
  21. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +6 -2
  22. package/src/components/display/podcasts/PodcastPlayBar.vue +9 -35
  23. package/src/components/display/podcasts/TagList.vue +0 -2
  24. package/src/components/display/rubriques/RubriqueList.vue +25 -20
  25. package/src/components/display/sharing/PlayerParameters.vue +76 -99
  26. package/src/components/display/sharing/ShareButtons.vue +3 -5
  27. package/src/components/display/sharing/ShareButtonsIntern.vue +1 -1
  28. package/src/components/display/sharing/ShareDistribution.vue +11 -10
  29. package/src/components/display/sharing/SubscribeButtons.vue +1 -1
  30. package/src/components/form/ClassicLoading.vue +5 -1
  31. package/src/components/misc/Accordion.vue +48 -0
  32. package/src/components/misc/ErrorMessage.vue +2 -1
  33. package/src/components/misc/HomeDropdown.vue +66 -63
  34. package/src/components/misc/Nav.vue +92 -0
  35. package/src/components/misc/Popover.vue +137 -98
  36. package/src/components/misc/ProgressBar.vue +96 -0
  37. package/src/components/misc/Spinner.vue +26 -0
  38. package/src/components/misc/modal/ClassicModal.vue +141 -0
  39. package/src/components/misc/modal/ClipboardModal.vue +25 -40
  40. package/src/components/misc/modal/MessageModal.vue +45 -60
  41. package/src/components/misc/modal/NewsletterModal.vue +84 -92
  42. package/src/components/misc/modal/QrCodeModal.vue +19 -36
  43. package/src/components/misc/modal/ShareModalPlayer.vue +69 -133
  44. package/src/components/misc/player/Player.vue +0 -6
  45. package/src/components/misc/player/PlayerCompact.vue +4 -3
  46. package/src/components/misc/player/PlayerLarge.vue +12 -8
  47. package/src/components/misc/player/PlayerProgressBar.vue +10 -48
  48. package/src/components/pages/Podcast.vue +1 -1
  49. package/src/assets/bootstrap-diff.scss +0 -195
@@ -0,0 +1,181 @@
1
+ // Bootstrap styles overload
2
+ *, *:before, *:after {
3
+ -webkit-box-sizing: border-box;
4
+ box-sizing: border-box;
5
+ }
6
+ .octopus-app{
7
+ input, button, select, optgroup, textarea {
8
+ margin: 0;
9
+ font-family: inherit;
10
+ font-size: inherit;
11
+ line-height: inherit;
12
+ }
13
+ button {
14
+ cursor: pointer;
15
+ }
16
+ .btn{
17
+ display: inline-block;
18
+ padding: 0.375rem 0.75rem;
19
+ font-size: 1rem;
20
+ line-height: 1.5;
21
+ color: #212529;
22
+ text-align: center;
23
+ vertical-align: middle;
24
+ cursor: pointer;
25
+ user-select: none;
26
+ 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;
27
+ font-size:.7rem;
28
+ border-radius: 4px;
29
+ background: $octopus-secondary-color;
30
+ text-decoration: none !important;
31
+ white-space: nowrap;
32
+ border-width: 0;
33
+ @media (max-width: 960px) {
34
+ white-space: normal;
35
+ }
36
+ &:hover,
37
+ &:focus,
38
+ &:active,
39
+ &.active {
40
+ box-shadow: none;
41
+ }
42
+ &:hover{
43
+ background: $primaryColorMoreTransparent;
44
+ }
45
+ //Button disable halo after click
46
+ &.btn-underline{
47
+ background: none;
48
+ padding: 0;
49
+ margin: 0 2rem 1rem 0;
50
+ border-radius: 0;
51
+ @media (max-width: 600px) {
52
+ margin: 0 1rem 1rem 0;
53
+ font-size: 0.8em;
54
+ }
55
+ position: relative;
56
+ &:after {
57
+ bottom: 0;
58
+ content: "";
59
+ display: block;
60
+ height: 2px;
61
+ left: 50%;
62
+ position: absolute;
63
+ background: $octopus-primary-color;
64
+ transition: width 0.3s ease 0s, left 0.3s ease 0s;
65
+ width: 0;
66
+ }
67
+ &:hover:after,&.active:after {
68
+ width: 100%;
69
+ left: 0;
70
+ }
71
+ }
72
+
73
+ &.btn-primary {
74
+ display: flex;
75
+ align-items: center;
76
+ justify-content: center;
77
+ background: $octopus-primary-color;
78
+ border: 1px solid $octopus-primary-color;
79
+ border-radius: 4px !important;
80
+ color: white !important;
81
+ font-weight: bold;
82
+ &:focus,
83
+ &:hover,
84
+ &:active,
85
+ &.active {
86
+ background: transparent;
87
+ color: $octopus-primary-color !important;
88
+ }
89
+ &:disabled{
90
+ background-color: #cccccc;
91
+ border: black;
92
+ cursor: default;
93
+ color: gray !important;
94
+ }
95
+ @media (max-width: 500px){
96
+ margin: 0.3rem;
97
+ }
98
+ }
99
+
100
+ &.btn-more{
101
+ background: $octopus-primary-color;
102
+ color: $octopus-background;
103
+ width: 2rem;
104
+ height: 2rem;
105
+ display: flex;
106
+ align-items: center;
107
+ justify-content: center;
108
+ border-radius: 50px;
109
+ margin: 1rem;
110
+ }
111
+
112
+ &.admin-button{
113
+ padding: 0.3rem;
114
+ height: 2.2rem !important;
115
+ width: 2.2rem !important;
116
+ font-size: 1.1rem;
117
+ display: inline-flex;
118
+ align-items: center;
119
+ justify-content: center;
120
+ color : $octopus-primary-color;
121
+ flex-shrink: 0;
122
+ font-weight: normal;
123
+ border-radius: 50% !important;
124
+ }
125
+
126
+ }
127
+ .share-btn {
128
+ font-size: 1.3rem;
129
+ width: 2.5rem !important;
130
+ height: 2.5rem !important;
131
+ padding: 0.5rem;
132
+ display: inline-flex;
133
+ align-items: center;
134
+ justify-content: center;
135
+ color : $octopus-primary-color;
136
+ flex-shrink: 0;
137
+ border-radius: 50% !important;
138
+ }
139
+
140
+ .btn-rss {
141
+ background: #ddd !important;
142
+ &:hover {
143
+ border: 0;
144
+ background: #ccc !important;
145
+ }
146
+ }
147
+ .btn-facebook {
148
+ background: #d8dfea !important;
149
+ color: #3b5998 !important;
150
+ &:hover {
151
+ background: #afbdd4 !important;
152
+ }
153
+ }
154
+ .btn-twitter {
155
+ background: #d2ecfc !important;
156
+ color: #1da1f2 !important;
157
+ &:hover {
158
+ background: #bbe3fb !important;
159
+ }
160
+ }
161
+ .btn-linkedin {
162
+ background: #0077b550 !important;
163
+ color: #0077b5 !important;
164
+ &:hover {
165
+ background: #00a0dc !important;
166
+ }
167
+ }
168
+ .btn-whatsapp {
169
+ background: #25d36645 !important;
170
+ color: #25D366 !important;
171
+ &:hover {
172
+ background: #25d36563 !important;
173
+ }
174
+ }
175
+
176
+ .bg-secondary{
177
+ background: #eee !important;
178
+ }
179
+ }
180
+
181
+
@@ -47,26 +47,6 @@
47
47
  margin-right: 5px;
48
48
  cursor: pointer;
49
49
  }
50
-
51
- //Navigation Bar
52
- .nav{
53
- border-bottom: 0.05rem solid #ddd;
54
- .nav-item{
55
- cursor: pointer;
56
- flex-grow: 1;
57
- text-align: center;
58
- a {
59
- color: black;
60
- }
61
- .nav-link{
62
- border-bottom: 0.1rem solid transparent;
63
- }
64
- .active{
65
- border-bottom-color: $octopus-primary-color;
66
- color: $octopus-primary-color;
67
- }
68
- }
69
- }
70
50
  .classic-select select {
71
51
  width: 100%;
72
52
  }
@@ -4,6 +4,7 @@ html{
4
4
  height: 100%;
5
5
  }
6
6
  body{
7
+ margin: 0;
7
8
  color: #353535;
8
9
  font-family: Montserrat,sans-serif,Helvetica Neue;
9
10
  font-size: 0.8rem;
@@ -1,14 +1,32 @@
1
1
  //Modal
2
2
  .octopus-app{
3
- .modal{
3
+ .octopus-modal{
4
+ position: fixed;
5
+ top: 0;
6
+ left: 0;
4
7
  display: block;
8
+ z-index: 1055;
9
+ width: 100%;
10
+ height: 100%;
11
+ overflow-x: hidden;
12
+ overflow-y: auto;
13
+ outline: 0;
5
14
  }
6
- .modal-backdrop {
15
+ .octopus-modal-backdrop {
7
16
  opacity: 0.5;
8
17
  z-index: 0;
18
+ position: fixed;
19
+ top: 0;
20
+ left: 0;
21
+ width: 100vw;
22
+ height: 100vh;
23
+ background-color: black;
9
24
  }
10
25
 
11
- .modal-dialog {
26
+ .octopus-modal-dialog {
27
+ position: relative;
28
+ pointer-events: none;
29
+ margin: 1.75rem auto;
12
30
  max-height: 75vh;
13
31
  max-width: 640px;
14
32
  width: 100%;
@@ -19,31 +37,54 @@
19
37
  margin: 2.5% !important;
20
38
  }
21
39
  }
22
- .modal-header {
40
+ .octopus-modal-body{
41
+ position: relative;
42
+ flex: 1 1 auto;
43
+ padding: 1rem;
44
+ }
45
+ .octopus-modal-header {
46
+ display: flex;
47
+ flex-shrink: 0;
48
+ align-items: center;
49
+ justify-content: space-between;
23
50
  border: 0;
24
51
  border-radius: 0.8rem 0.8rem 0 0;
25
52
  background: $octopus-primary-color;
26
53
  color: white;
54
+ padding: 1rem;
27
55
  }
28
- .modal-body{
56
+ .octopus-modal-body{
29
57
  overflow-x: auto;
30
58
  .scroller-vertical {
31
59
  min-height: 200px;
32
60
  height: 200px;
33
61
  }
34
62
  }
35
- .modal-dialog, .modal-content {
63
+ .octopus-modal-dialog, .octopus-modal-content {
36
64
  min-height: 300px;
37
65
  }
38
- .modal-content{
66
+ .octopus-modal-content{
67
+ position: relative;
68
+ display: flex;
69
+ flex-direction: column;
70
+ pointer-events: auto;
71
+ width: 100%;
72
+ background-color: white;
73
+ background-clip: padding-box;
39
74
  border: 0;
75
+ outline: 0;
40
76
  height: auto !important;
41
77
  max-height: calc(100vh - 250px) !important;
42
78
  border-radius: 0.8rem;
43
79
  box-shadow: 0 0.2rem 0.5rem rgba(40,40,40,.3);
44
80
  }
45
- .modal-footer{
81
+ .octopus-modal-footer{
82
+ display: flex;
83
+ flex-shrink: 0;
46
84
  border: 0;
47
85
  flex-wrap: initial;
86
+ align-items: center;
87
+ justify-content: flex-end;
88
+ padding: 1rem;
48
89
  }
49
90
  }
@@ -10,9 +10,8 @@ $h5-font-size: $font-size-base * 0.9 !default;
10
10
  $h6-font-size: $font-size-base * 0.7 !default;
11
11
  $breadcrumb-bg: #f3f3f3 !default;
12
12
  $breadcrumb-border-radius: 2rem !default;
13
- @import 'node_modules/bootstrap/scss/bootstrap.scss';
14
- @import './bootstrap-diff.scss';
15
- /* @import 'node_modules/bootstrap-vue-3/dist/bootstrap-vue-3.css'; */
13
+ @import './utilities';
14
+ @import './bootstrap.scss';
16
15
  @import './general.scss';
17
16
  @import './live.scss';
18
17
  @import './form.scss';
@@ -6,7 +6,7 @@
6
6
  <label
7
7
  :for="id"
8
8
  class="hid"
9
- >{{$t('Type string to filter by categories')}}</label>
9
+ >{{ $t('Type string to filter by categories') }}</label>
10
10
  <VueMultiselect
11
11
  :id="id"
12
12
  ref="multiselectRef"
@@ -3,54 +3,51 @@
3
3
  v-show="isDisplay"
4
4
  class="mt-3"
5
5
  >
6
- <nav
6
+ <ol
7
7
  v-if="categoryFilter || rubriqueFilter.length"
8
- title="breadcrumb"
8
+ class="octopus-breadcrumb d-flex align-items-center flex-wrap"
9
9
  >
10
- <ol class="breadcrumb">
11
- <li class="breadcrumb-item">
12
- <a
13
- href="#"
14
- @click="removeFilter(-1, $event)"
15
- >{{ $t('All') }}</a>
16
- </li>
17
- <li
18
- v-if="categoryFilter"
19
- class="breadcrumb-item active"
20
- >
21
- {{ categoryFilter.name }}
22
- </li>
23
- <li
24
- v-for="(filter, index) in rubriqueFilter"
25
- :key="filter.rubriqueId"
26
- class="breadcrumb-item d-flex align-items-center"
27
- :class="rubriqueFilter.length-1 === index ? 'active':''"
28
- >
29
- <a
30
- v-if="rubriqueFilter.length - 1 !== index"
31
- href="#"
32
- @click="removeFilter(index,$event)"
33
- >{{ filter.nameRubriquage }}</a>
34
- <template v-else>
35
- {{ filter.nameRubriquage }}
36
- </template>
37
- <div class="mx-1">
38
- :
39
- </div>
40
- <RubriqueChooser
41
- v-if="getRubriques(filter.rubriquageId).length"
42
- class="ms-2 multiselect-transparent"
43
- :multiple="false"
44
- :rubriquage-id="filter.rubriquageId"
45
- :rubrique-selected="filter.rubriqueId"
46
- :all-rubriques="getRubriques(filter.rubriquageId)"
47
- :cannot-be-undefined="true"
48
- width="auto"
49
- @selected="onRubriqueSelected(index,$event)"
50
- />
51
- </li>
52
- </ol>
53
- </nav>
10
+ <li>
11
+ <a
12
+ href="#"
13
+ @click="removeFilter(-1, $event)"
14
+ >{{ $t('All') }}</a>
15
+ </li>
16
+ <li
17
+ v-if="categoryFilter"
18
+ >
19
+ {{ categoryFilter.name }}
20
+ </li>
21
+ <li
22
+ v-for="(filter, index) in rubriqueFilter"
23
+ :key="filter.rubriqueId"
24
+ class="d-flex align-items-center"
25
+ :class="rubriqueFilter.length-1 === index ? 'active':''"
26
+ >
27
+ <a
28
+ v-if="rubriqueFilter.length - 1 !== index"
29
+ href="#"
30
+ @click="removeFilter(index,$event)"
31
+ >{{ filter.nameRubriquage }}</a>
32
+ <template v-else>
33
+ {{ filter.nameRubriquage }}
34
+ </template>
35
+ <div class="mx-1">
36
+ :
37
+ </div>
38
+ <RubriqueChooser
39
+ v-if="getRubriques(filter.rubriquageId).length"
40
+ class="ms-2 multiselect-transparent"
41
+ :multiple="false"
42
+ :rubriquage-id="filter.rubriquageId"
43
+ :rubrique-selected="filter.rubriqueId"
44
+ :all-rubriques="getRubriques(filter.rubriquageId)"
45
+ :cannot-be-undefined="true"
46
+ width="auto"
47
+ @selected="onRubriqueSelected(index,$event)"
48
+ />
49
+ </li>
50
+ </ol>
54
51
  <CategoryList
55
52
  v-if="!categoryFilter && !rubriquageFilter.length"
56
53
  :is-filter="true"
@@ -149,6 +146,23 @@ export default defineComponent({
149
146
  </script>
150
147
  <style lang="scss">
151
148
  .octopus-app{
149
+ .octopus-breadcrumb{
150
+ padding: 1rem;
151
+ align-items: center;
152
+ background: #FAFAFA;
153
+ li{
154
+ list-style: none;
155
+ &:after {
156
+ content: "/";
157
+ margin: 0 0.2rem;
158
+ }
159
+ &:last-child {
160
+ &:after {
161
+ content: "";
162
+ }
163
+ }
164
+ }
165
+ }
152
166
  .categary-filter-no-filter{
153
167
  position: absolute;
154
168
  top: 0;
@@ -17,38 +17,41 @@
17
17
  {{ category.name }}
18
18
  </button>
19
19
  </div>
20
- <div
20
+ <button
21
21
  v-show="hidenCategories.length"
22
- class="dropdown btn-group"
22
+ id="categories-dropdown"
23
+ class="btn admin-button saooti-more"
24
+ :title="$t('See more')"
25
+ />
26
+ <Popover
27
+ target="categories-dropdown"
28
+ :only-click="true"
29
+ :is-fixed="true"
30
+ :left-pos="true"
23
31
  >
24
32
  <button
25
- class="btn dropdown-toggle admin-button dropdown-toggle-no-caret saooti-more"
26
- data-bs-toggle="dropdown"
27
- aria-expanded="false"
28
- :title="$t('See more')"
29
- />
30
- <div class="dropdown-menu dropdown-menu-right px-4">
31
- <div
32
- v-for="category in hidenCategories"
33
- :key="category.id"
34
- class="me-3 dropdown-item"
35
- @click="checkIfFilter(category)"
36
- >
37
- {{ category.name }}
38
- </div>
39
- </div>
40
- </div>
33
+ v-for="category in hidenCategories"
34
+ :key="category.id"
35
+ class="me-3 octopus-dropdown-item"
36
+ @mousedown="checkIfFilter(category)"
37
+ >
38
+ {{ category.name }}
39
+ </button>
40
+ </Popover>
41
41
  </div>
42
42
  </template>
43
43
 
44
44
  <script lang="ts">
45
45
  import octopusApi from '@saooti/octopus-api';
46
46
  import { state } from '../../../store/paramStore';
47
-
47
+ import Popover from '../../misc/Popover.vue';
48
48
  import { Category } from '@/store/class/general/category';
49
49
  import { defineComponent } from 'vue'
50
50
  export default defineComponent({
51
51
  name: 'CategoryList',
52
+ components:{
53
+ Popover
54
+ },
52
55
 
53
56
  props: {
54
57
  isFilter: { default: false, type: Boolean },
@@ -1,84 +1,77 @@
1
1
  <template>
2
- <div
3
- id="add-comment-modal"
4
- class="modal"
2
+ <ClassicModal
3
+ id-modal="add-comment-modal"
4
+ :title-modal="$t('Welcome, thanks for your comment')"
5
+ :closable="false"
6
+ @close="closePopup"
5
7
  >
6
- <div class="modal-backdrop" />
7
- <div class="modal-dialog">
8
- <div class="modal-content">
9
- <div class="modal-header">
10
- <h5 class="modal-title">
11
- {{ $t('Welcome, thanks for your comment') }}
12
- </h5>
8
+ <template #body>
9
+ <template v-if="!sending">
10
+ <div>{{ $t("Let's get acquainted :") }}</div>
11
+ <input
12
+ v-model="name"
13
+ class="form-input"
14
+ type="text"
15
+ :placeholder="$t('Your name')"
16
+ :class="{ 'border border-danger': 0 === countName || !validName }"
17
+ >
18
+ <p
19
+ class="d-flex justify-content-end small-text"
20
+ :class="{ 'text-danger': !validName }"
21
+ >
22
+ {{ countName + ' / ' + maxName }}
23
+ </p>
24
+ <div
25
+ v-if="''!==errorText"
26
+ class="mt-1 text-danger"
27
+ >
28
+ {{ errorText }}
13
29
  </div>
14
- <div class="modal-body">
15
- <template v-if="!sending">
16
- <div>{{ $t("Let's get acquainted :") }}</div>
17
- <input
18
- v-model="name"
19
- class="form-input"
20
- type="text"
21
- :placeholder="$t('Your name')"
22
- :class="{ 'border border-danger': 0 === countName || !validName }"
23
- >
24
- <p
25
- class="d-flex justify-content-end small-text"
26
- :class="{ 'text-danger': !validName }"
27
- >
28
- {{ countName + ' / ' + maxName }}
29
- </p>
30
- <div
31
- v-if="''!==errorText"
32
- class="mt-1 text-danger"
33
- >
34
- {{ errorText }}
35
- </div>
36
- </template>
37
- <template v-else>
38
- <div>{{ $t('Send in progress') }}</div>
39
- </template>
40
- </div>
41
- <div class="modal-footer">
42
- <button
43
- class="btn m-1"
44
- @click="closePopup"
45
- >
46
- {{ $t('Close') }}
47
- </button>
48
- <vue-recaptcha
49
- v-if="!isVerify"
50
- ref="invisibleRecaptcha"
51
- :load-recaptcha-script="true"
52
- @verify="handleSuccess"
53
- @expired="handleError"
54
- size="invisible"
55
- sitekey="6LfyP_4ZAAAAAPODj8nov2LvosIwcX0GYeBSungh"
56
- >
57
- </vue-recaptcha>
58
- <button
59
- v-if="!sending"
60
- class="btn btn-primary m-1"
61
- :disabled="0 === countName || !validName"
62
- @click="submit"
63
- >
64
- {{ $t('Validate') }}
65
- </button>
66
- </div>
67
- </div>
68
- </div>
69
- </div>
30
+ </template>
31
+ <template v-else>
32
+ <div>{{ $t('Send in progress') }}</div>
33
+ </template>
34
+ </template>
35
+ <template #footer>
36
+ <button
37
+ class="btn m-1"
38
+ @click="closePopup"
39
+ >
40
+ {{ $t('Close') }}
41
+ </button>
42
+ <vue-recaptcha
43
+ v-if="!isVerify"
44
+ ref="invisibleRecaptcha"
45
+ :load-recaptcha-script="true"
46
+ size="invisible"
47
+ sitekey="6LfyP_4ZAAAAAPODj8nov2LvosIwcX0GYeBSungh"
48
+ @verify="handleSuccess"
49
+ @expired="handleError"
50
+ />
51
+ <button
52
+ v-if="!sending"
53
+ class="btn btn-primary m-1"
54
+ :disabled="0 === countName || !validName"
55
+ @click="submit"
56
+ >
57
+ {{ $t('Validate') }}
58
+ </button>
59
+ </template>
60
+ </ClassicModal>
70
61
  </template>
71
62
 
72
63
  <script lang="ts">
73
64
  import Constants from '../../../../public/config';
74
65
  import { state } from '../../../store/paramStore';
66
+ import ClassicModal from '../../misc/modal/ClassicModal.vue';
75
67
  import api from '@/api/initialize';
76
68
  import { VueRecaptcha } from 'vue-recaptcha';
77
69
  import { defineComponent } from 'vue';
78
70
  export default defineComponent({
79
71
  name: 'AddCommentModal',
80
72
  components:{
81
- VueRecaptcha
73
+ VueRecaptcha,
74
+ ClassicModal
82
75
  },
83
76
 
84
77
  props: {},
@@ -17,9 +17,8 @@
17
17
  <Popover
18
18
  :disable="editRight || isValid"
19
19
  :target="'popover-comment' + comment.comId"
20
- >
21
- {{ $t('Comment waiting') }}
22
- </Popover>
20
+ :content="$t('Comment waiting')"
21
+ />
23
22
  <span
24
23
  v-if="comment.certified"
25
24
  class="saooti-certified"
@@ -22,7 +22,8 @@
22
22
  <span
23
23
  v-if="!activeEmission && !isPodcastmaker && editRight"
24
24
  :title="$t('Emission have not podcasts')"
25
- class="saooti-warning text-danger me-1"/>
25
+ class="saooti-warning text-danger me-1"
26
+ />
26
27
  <div
27
28
  class="emission-name"
28
29
  >