@saooti/octopus-sdk 39.3.11 → 39.3.13

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 (94) hide show
  1. package/index.ts +1 -0
  2. package/package.json +1 -1
  3. package/src/App.vue +7 -4
  4. package/src/api/classicApi.ts +3 -2
  5. package/src/assets/general.scss +3 -0
  6. package/src/components/display/categories/CategoryChooser.vue +6 -1
  7. package/src/components/display/categories/CategoryFilter.vue +3 -3
  8. package/src/components/display/comments/CommentSection.vue +2 -2
  9. package/src/components/display/comments/item/CommentBasicView.vue +3 -6
  10. package/src/components/display/emission/EmissionItem.vue +1 -0
  11. package/src/components/display/emission/EmissionPlayerItem.vue +1 -0
  12. package/src/components/display/emission/EmissionPresentationItem.vue +1 -0
  13. package/src/components/display/filter/AdvancedSearch.vue +4 -6
  14. package/src/components/display/filter/SearchOrder.vue +10 -13
  15. package/src/components/display/list/SwiperList.vue +0 -1
  16. package/src/components/display/live/LiveList.vue +2 -2
  17. package/src/components/display/live/RadioCurrently.vue +1 -0
  18. package/src/components/display/live/RadioImage.vue +1 -0
  19. package/src/components/display/live/RadioList.vue +2 -2
  20. package/src/components/display/live/RadioPlanning.vue +3 -2
  21. package/src/components/display/organisation/OrganisationChooser.vue +5 -1
  22. package/src/components/display/participant/ParticipantItem.vue +1 -0
  23. package/src/components/display/playlist/PlaylistItem.vue +1 -0
  24. package/src/components/display/podcasts/DownloadPodcastButton.vue +0 -26
  25. package/src/components/display/podcasts/PodcastFilterList.vue +2 -2
  26. package/src/components/display/podcasts/PodcastImage.vue +1 -0
  27. package/src/components/display/podcasts/PodcastModuleBox.vue +2 -2
  28. package/src/components/display/podcasts/TagList.vue +6 -6
  29. package/src/components/display/podcasts/VideoModuleBox.vue +2 -2
  30. package/src/components/display/sharing/ShareButtons.vue +2 -2
  31. package/src/components/display/sharing/ShareDistribution.vue +2 -2
  32. package/src/components/display/sharing/SharePlayer.vue +2 -2
  33. package/src/components/display/sharing/SharePlayerRadio.vue +2 -2
  34. package/src/components/display/sharing/SharePlayerTypes.vue +19 -18
  35. package/src/components/form/ClassicCheckbox.vue +3 -3
  36. package/src/components/form/ClassicMultiselect.vue +5 -0
  37. package/src/components/form/ClassicRadioLabel.vue +38 -0
  38. package/src/components/icons/AmazonMusicIcon.vue +0 -1
  39. package/src/components/icons/ApplePodcastIcon.vue +0 -1
  40. package/src/components/icons/DeezerIcon.vue +0 -1
  41. package/src/components/icons/EditFtpIcon.vue +0 -1
  42. package/src/components/icons/IHeartIcon.vue +0 -1
  43. package/src/components/icons/PlayVideoIcon.vue +0 -1
  44. package/src/components/icons/PlayerFmIcon.vue +0 -1
  45. package/src/components/icons/PocketCastIcon.vue +0 -1
  46. package/src/components/icons/PodcastAddictIcon.vue +0 -1
  47. package/src/components/icons/RadiolineIcon.vue +0 -1
  48. package/src/components/icons/TuninIcon.vue +0 -1
  49. package/src/components/icons/XIcon.vue +0 -1
  50. package/src/components/misc/AcpmImage.vue +1 -0
  51. package/src/components/misc/ClassicAccordion.vue +2 -1
  52. package/src/components/misc/ErrorMessage.vue +0 -1
  53. package/src/components/misc/FooterSection.vue +18 -10
  54. package/src/components/misc/HomeDropdown.vue +58 -46
  55. package/src/components/misc/TopBar.vue +3 -5
  56. package/src/components/misc/TopBarMainContent.vue +44 -33
  57. package/src/components/misc/modal/ClassicModal.vue +48 -94
  58. package/src/components/misc/modal/NewsletterModal.vue +1 -21
  59. package/src/components/misc/player/PlayerCompact.vue +0 -2
  60. package/src/components/misc/player/PlayerComponent.vue +2 -2
  61. package/src/components/misc/player/ads/AdsSkipButton.vue +1 -1
  62. package/src/components/misc/player/elements/PlayerImage.vue +1 -0
  63. package/src/components/mixins/metaTitle.ts +1 -1
  64. package/src/components/mixins/metaTitleWatch.ts +12 -4
  65. package/src/components/mixins/player/playerLogicProgress.ts +0 -1
  66. package/src/components/mixins/player/playerStitching.ts +3 -4
  67. package/src/components/mixins/player/playerVast.ts +2 -2
  68. package/src/components/mixins/routeParam/advancedParamInit.ts +8 -8
  69. package/src/components/mixins/seoTitleUrl.ts +1 -1
  70. package/src/components/pages/CategoryPage.vue +2 -2
  71. package/src/components/pages/EmissionPage.vue +7 -6
  72. package/src/components/pages/EmissionsPage.vue +2 -2
  73. package/src/components/pages/Error403Page.vue +6 -4
  74. package/src/components/pages/HomePage.vue +2 -2
  75. package/src/components/pages/LivesPage.vue +2 -2
  76. package/src/components/pages/MapPage.vue +4 -4
  77. package/src/components/pages/PageNotFound.vue +2 -2
  78. package/src/components/pages/ParticipantPage.vue +7 -6
  79. package/src/components/pages/ParticipantsPage.vue +2 -2
  80. package/src/components/pages/PlaylistPage.vue +8 -5
  81. package/src/components/pages/PlaylistsPage.vue +2 -2
  82. package/src/components/pages/PodcastPage.vue +13 -12
  83. package/src/components/pages/PodcastsPage.vue +2 -2
  84. package/src/components/pages/RadioPage.vue +4 -4
  85. package/src/components/pages/RubriquePage.vue +2 -2
  86. package/src/components/pages/SearchPage.vue +2 -2
  87. package/src/components/pages/VideoPage.vue +8 -6
  88. package/src/locale/de.ts +1 -0
  89. package/src/locale/en.ts +1 -0
  90. package/src/locale/es.ts +1 -0
  91. package/src/locale/fr.ts +1 -0
  92. package/src/locale/it.ts +1 -0
  93. package/src/locale/sl.ts +1 -0
  94. package/src/stores/PlayerStore.ts +1 -5
package/index.ts CHANGED
@@ -73,6 +73,7 @@ export const getSearchOrder = () => import("./src/components/display/filter/Sear
73
73
  export const getClassicSearch = () => import("./src/components/form/ClassicSearch.vue");
74
74
  export const getClassicCheckbox = () => import("./src/components/form/ClassicCheckbox.vue");
75
75
  export const getClassicRadio = () => import("./src/components/form/ClassicRadio.vue");
76
+ export const getClassicRadioLabel = () => import("./src/components/form/ClassicRadioLabel.vue");
76
77
  export const getClassicLoading = () => import("./src/components/form/ClassicLoading.vue");
77
78
  export const getClassicSelect = () => import("./src/components/form/ClassicSelect.vue");
78
79
  export const getClassicDatePicker = () => import("./src/components/form/ClassicDatePicker.vue");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saooti/octopus-sdk",
3
- "version": "39.3.11",
3
+ "version": "39.3.13",
4
4
  "private": false,
5
5
  "description": "Javascript SDK for using octopus",
6
6
  "author": "Saooti",
package/src/App.vue CHANGED
@@ -2,13 +2,15 @@
2
2
  <div class="d-flex flex-column h-100 octopus-app">
3
3
  <template v-if="pageFullyLoad">
4
4
  <TopBar :is-education="false" />
5
- <CategoryFilter v-if="firstDisplayCategoryFilter" />
6
- <div v-else class="category-filter-no-filter" />
7
- <router-view />
5
+ <main>
6
+ <CategoryFilter v-if="firstDisplayCategoryFilter" />
7
+ <div v-else class="category-filter-no-filter" />
8
+ <router-view />
9
+ <PlayerComponent />
10
+ </main>
8
11
  <ClassicLazy :min-height="123">
9
12
  <FooterOctopus />
10
13
  </ClassicLazy>
11
- <PlayerComponent />
12
14
  </template>
13
15
  </div>
14
16
  </template>
@@ -78,6 +80,7 @@ export default defineComponent({
78
80
  },
79
81
  },
80
82
  "$i18n.locale"() {
83
+ this.updateMetaTitle();
81
84
  this.$forceUpdate();
82
85
  this.reload = !this.reload;
83
86
  },
@@ -1,6 +1,6 @@
1
1
  import {getApiUrl, ModuleApi} from "./apiConnection";
2
2
  import fetchHelper from "../helper/fetch";
3
- import axios from 'axios';
3
+ import axios, { AxiosError } from 'axios';
4
4
  import { FetchParam } from "@/stores/class/general/fetchParam";
5
5
  import { state } from "../stores/ParamSdkStore";
6
6
 
@@ -77,7 +77,8 @@ export default {
77
77
  if(params.catchFunction){
78
78
  params.catchFunction();
79
79
  }else{
80
- return Promise.reject(error);
80
+ const axiosError= error as AxiosError;
81
+ return Promise.reject(new Error(axiosError.message));
81
82
  }
82
83
  });
83
84
  return response?.data;
@@ -250,6 +250,9 @@ body{
250
250
  .border{
251
251
  border-radius: octopusVariables.$octopus-borderradius;
252
252
  }
253
+ .li-style-none{
254
+ list-style: none;
255
+ }
253
256
 
254
257
  .html-wysiwyg-content{
255
258
  h3,h4{
@@ -4,7 +4,9 @@
4
4
  ref="selectCategory"
5
5
  :option-chosen="model"
6
6
  option-label="name"
7
- :label="$t('By category')"
7
+ :displayLabel="displayLabel"
8
+ :label="label ?? $t('By category')"
9
+ :textDanger="textDanger"
8
10
  :placeholder="$t('Type string to filter by categories')"
9
11
  :max-element="maxElement"
10
12
  :in-modal="inModal"
@@ -45,6 +47,9 @@ export default defineComponent({
45
47
  },
46
48
  inModal: { default: false, type: Boolean },
47
49
  noDeselect: { default: true, type: Boolean },
50
+ label:{default: undefined, type: String },
51
+ displayLabel: { default: false, type: Boolean },
52
+ textDanger :{ default: undefined, type: String },
48
53
  },
49
54
  emits: [
50
55
  "update:categorySelected",
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div
2
+ <section
3
3
  v-show="isHeaderDisplay"
4
4
  class="header-img flex-column justify-content-end"
5
5
  :style="backgroundDisplay"
@@ -62,8 +62,8 @@
62
62
  :rubriquages="rubriquageFilter"
63
63
  />
64
64
  </div>
65
- </div>
66
- <div v-if="!isDisplay" class="category-filter-no-filter" />
65
+ </section>
66
+ <section v-if="!isDisplay" class="category-filter-no-filter" />
67
67
  </template>
68
68
 
69
69
  <script lang="ts">
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div v-show="displayCommentSection" class="module-box">
2
+ <section v-show="displayCommentSection" class="module-box">
3
3
  <div class="d-flex align-items-center">
4
4
  <h3 class="mb-0 me-2">{{ $t("Podcast's comments") }}</h3>
5
5
  <button
@@ -23,7 +23,7 @@
23
23
  :config="configPodcast"
24
24
  :event-to-handle="eventToHandle"
25
25
  />
26
- </div>
26
+ </section>
27
27
  </template>
28
28
 
29
29
  <script lang="ts">
@@ -1,14 +1,11 @@
1
1
  <template>
2
2
  <div class="d-flex flex-column w-100">
3
3
  <div class="d-flex align-items-center h6 mb-2">
4
- <strong
4
+ <button
5
5
  :id="'popover-comment' + comment.commentId"
6
- role="button"
7
- tabindex="-1"
8
6
  :class="isValidComment ? 'c-hand-auto' : 'text-danger'"
9
- class="me-2"
10
- >{{ username }}</strong
11
- >
7
+ class="btn-transparent me-2"
8
+ >{{ username }}</button>
12
9
  <ClassicPopover
13
10
  :disable="isValidComment"
14
11
  :target="'popover-comment' + comment.commentId"
@@ -14,6 +14,7 @@
14
14
  height="250"
15
15
  class="img-box"
16
16
  role="presentation"
17
+ alt=""
17
18
  :title="$t('Emission name image', { name: emission.name })"
18
19
  />
19
20
  <div class="emission-item-text">
@@ -17,6 +17,7 @@
17
17
  width="330"
18
18
  height="330"
19
19
  role="presentation"
20
+ alt=""
20
21
  :title="$t('Emission name image', { name: emission.name })"
21
22
  class="img-box rounded-0"
22
23
  />
@@ -19,6 +19,7 @@
19
19
  :class="isVertical ? 'img-box-bigger' : ''"
20
20
  class="img-box"
21
21
  role="presentation"
22
+ alt=""
22
23
  :title="$t('Emission name image', { name: emission.name })"
23
24
  />
24
25
  <div class="emission-item-text">
@@ -190,12 +190,10 @@ export default defineComponent({
190
190
  },
191
191
  searchPattern(value: string): void {
192
192
  const search = value.trim();
193
- const valSort =
194
- search.length > 3
195
- ? "SCORE"
196
- : this.isEmission
197
- ? "LAST_PODCAST_DESC"
198
- : "DATE";
193
+ let valSort = "SCORE"
194
+ if(search.length <= 3){
195
+ valSort = this.isEmission? "LAST_PODCAST_DESC" : "DATE";
196
+ }
199
197
  if (valSort !== this.sort) {
200
198
  this.$emit("update:sort", valSort);
201
199
  }
@@ -1,23 +1,20 @@
1
1
  <template>
2
- <div class="d-flex flex-column">
3
- <div class="text-primary mb-2">
4
- {{ $t("Sort") }}
5
- </div>
6
- <ClassicRadio
7
- :text-init="sort"
8
- id-radio="sort-radio"
9
- :options="optionsArray"
10
- @update:text-init="$emit('update:sort', $event)"
11
- />
12
- </div>
2
+ <ClassicRadioLabel
3
+ :text-init="sort"
4
+ id-radio="sort-radio"
5
+ :options="optionsArray"
6
+ :radioLabel="$t('Sort')"
7
+ classLabel="text-primary mb-2"
8
+ @update:text-init="$emit('update:sort', $event)"
9
+ />
13
10
  </template>
14
11
 
15
12
  <script lang="ts">
16
- import ClassicRadio from "../../form/ClassicRadio.vue";
13
+ import ClassicRadioLabel from "../../form/ClassicRadioLabel.vue";
17
14
  import { defineComponent } from "vue";
18
15
  export default defineComponent({
19
16
  components: {
20
- ClassicRadio,
17
+ ClassicRadioLabel,
21
18
  },
22
19
  props: {
23
20
  isEmission: { default: false, type: Boolean },
@@ -103,7 +103,6 @@ export default defineComponent({
103
103
 
104
104
  methods: {
105
105
  slidesUpdated() {
106
- //TODO CODE USELESS IF LIBRARY IS FIXED BUT FOR NOW IT IS IMPORTANT
107
106
  if (!this.$el) return;
108
107
  const slides = this.$el.getElementsByClassName("swiper-slide");
109
108
  for (const slide of slides) {
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div v-if="displayLiveList" class="d-flex flex-column align-items-start mt-3">
2
+ <section v-if="displayLiveList" class="d-flex flex-column align-items-start mt-3">
3
3
  <div
4
4
  class="d-flex justify-content-between flex-grow-1 mb-3 w-100 align-items-center"
5
5
  >
@@ -39,7 +39,7 @@
39
39
  </template>
40
40
  </SwiperList>
41
41
  </template>
42
- </div>
42
+ </section>
43
43
  </template>
44
44
 
45
45
  <script lang="ts">
@@ -21,6 +21,7 @@
21
21
  height="80"
22
22
  class="small-img-box"
23
23
  role="presentation"
24
+ alt=""
24
25
  :title="$t('Episode name image', { name: podcastRadio.title })"
25
26
  />
26
27
  <div>{{ podcastRadio.title }}</div>
@@ -11,6 +11,7 @@
11
11
  width="270"
12
12
  height="270"
13
13
  role="presentation"
14
+ alt=""
14
15
  class="img-box img-box-podcast"
15
16
  :title="$t('Canal name image', { name: radio.name })"
16
17
  />
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div
2
+ <section
3
3
  v-if="(filterOrgaId || organisationId) && radio.length"
4
4
  class="d-flex flex-column align-items-start mt-3"
5
5
  >
@@ -13,7 +13,7 @@
13
13
  :radio="radioItem"
14
14
  />
15
15
  </template>
16
- </div>
16
+ </section>
17
17
  </template>
18
18
 
19
19
  <script lang="ts">
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="module-box">
2
+ <section class="module-box">
3
3
  <h2 class="mb-3">
4
4
  {{ $t("Program") }}
5
5
  </h2>
@@ -83,6 +83,7 @@
83
83
  height="150"
84
84
  class="m-2 program-item-img"
85
85
  role="presentation"
86
+ alt=""
86
87
  :title="
87
88
  $t('Episode name image', {
88
89
  name: planningItem.podcastData.title,
@@ -109,7 +110,7 @@
109
110
  </template>
110
111
  </div>
111
112
  </div>
112
- </div>
113
+ </section>
113
114
  </template>
114
115
 
115
116
  <script lang="ts">
@@ -4,7 +4,8 @@
4
4
  id="organisation-chooser"
5
5
  ref="selectOrganisation"
6
6
  option-label="name"
7
- :label="$t('select productor')"
7
+ :label="label ??$t('select productor')"
8
+ :display-label="displayLabel"
8
9
  :max-element="maxElement"
9
10
  :width="width"
10
11
  :in-modal="inModal"
@@ -26,6 +27,7 @@
26
27
  height="32"
27
28
  class="me-2"
28
29
  role="presentation"
30
+ alt=""
29
31
  :title="$t('Organisation name image', { name: option.name })"
30
32
  />
31
33
  <span>
@@ -63,6 +65,8 @@ export default defineComponent({
63
65
  isImage: { default: true, type: Boolean },
64
66
  inModal: { default: false, type: Boolean },
65
67
  noDeselect: { default: true, type: Boolean },
68
+ label:{default: undefined, type: String },
69
+ displayLabel: { default: false, type: Boolean },
66
70
  },
67
71
  emits: ["selected"],
68
72
  data() {
@@ -13,6 +13,7 @@
13
13
  width="200"
14
14
  height="200"
15
15
  role="presentation"
16
+ alt=""
16
17
  :title="$t('Animator image', { name: name })"
17
18
  class="img-box border"
18
19
  />
@@ -39,6 +39,7 @@
39
39
  width="250"
40
40
  height="250"
41
41
  role="presentation"
42
+ alt=""
42
43
  :title="$t('Playlist name image', { name: name })"
43
44
  class="img-box"
44
45
  />
@@ -7,32 +7,6 @@
7
7
  >
8
8
  <DownloadIcon />
9
9
  </button>
10
- <!-- <template v-else>
11
- <button
12
- id="download-podcast-or-video"
13
- class="btn btn-round-light ms-2"
14
- :title="$t('Download')"
15
- />
16
- <ClassicPopover
17
- target="download-podcast-or-video"
18
- relative-class="page-element"
19
- :is-fixed="true"
20
- :only-click="true"
21
- >
22
- <button
23
- class="octopus-dropdown-item btn-transparent"
24
- @mousedown="downloadPodcast"
25
- >
26
- {{ $t("Download audio") }}
27
- </button>
28
- <button
29
- class="octopus-dropdown-item btn-transparent"
30
- @mousedown="downloadVideo"
31
- >
32
- {{ $t("Download video") }}
33
- </button>
34
- </ClassicPopover>
35
- </template> -->
36
10
  </div>
37
11
  </template>
38
12
 
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="py-3">
2
+ <section class="py-3">
3
3
  <h3 class="mb-2">
4
4
  {{ titleFilter }}
5
5
  </h3>
@@ -31,7 +31,7 @@
31
31
  :display-sort-text="false"
32
32
  @fetch="fetch"
33
33
  />
34
- </div>
34
+ </section>
35
35
  </template>
36
36
 
37
37
  <script lang="ts">
@@ -8,6 +8,7 @@
8
8
  width="270"
9
9
  height="270"
10
10
  role="presentation"
11
+ alt=""
11
12
  class="img-box img-box-podcast"
12
13
  :title="$t('Episode name image', { name: podcast.title })"
13
14
  />
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div v-if="podcast" class="module-box">
2
+ <section v-if="podcast" class="module-box">
3
3
  <div class="mb-2 d-flex">
4
4
  <div class="w-100">
5
5
  <PodcastImage
@@ -137,7 +137,7 @@
137
137
  :display-studio-access="isDebriefing"
138
138
  @validate-podcast="$emit('updatePodcast', $event)"
139
139
  />
140
- </div>
140
+ </section>
141
141
  </template>
142
142
 
143
143
  <script lang="ts">
@@ -12,21 +12,21 @@
12
12
  class="tag-list-element"
13
13
  :class="ouestFranceMainTag === tag ? 'main-of-tag' : ''"
14
14
  >
15
- <div
15
+ <button
16
16
  :id="'tag-list-from-podcast-page' + index"
17
- role="button"
18
- class="d-flex align-items-center"
17
+ class="btn-transparent d-flex align-items-center"
19
18
  >
20
19
  <img
21
20
  v-if="isOuestFranceTag(tag)"
22
21
  width="20"
23
22
  height="20"
24
23
  class="ouest-france-logo"
25
- aria-hidden="true"
26
- src="/img/ouest_france_logo.svg"
24
+ role="presentation"
25
+ alt=""
26
+ src="/img/ouest_france_logo.svg"
27
27
  />
28
28
  {{ formateOfTag(tag) }}
29
- </div>
29
+ </button>
30
30
  <ClassicPopover
31
31
  v-if="isOuestFranceTag(tag)"
32
32
  :target="'tag-list-from-podcast-page' + index"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div v-if="podcast" class="d-flex flex-column flex-grow-1 mt-2">
2
+ <section v-if="podcast" class="d-flex flex-column flex-grow-1 mt-2">
3
3
  <div class="d-flex justify-content-between flex-wrap">
4
4
  <div v-if="0 !== date.length" class="me-2">
5
5
  {{ date }}
@@ -19,7 +19,7 @@
19
19
  <ParticipantDescription :participants="podcast.animators" />
20
20
  <ParticipantDescription :participants="podcast.guests" :is-guest="true" />
21
21
  <PodcastRawTranscript class="mt-3" :podcast-id="podcast.podcastId" />
22
- </div>
22
+ </section>
23
23
  </template>
24
24
 
25
25
  <script lang="ts">
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div v-if="!isLoading && (authOrgaId || !noSharing)" class="module-box">
2
+ <section v-if="!isLoading && (authOrgaId || !noSharing)" class="module-box">
3
3
  <div class="share-buttons-display">
4
4
  <div v-if="!isGarRole && !noSharing" class="d-flex flex-column me-2">
5
5
  <h3 class="mb-2">
@@ -122,7 +122,7 @@
122
122
  position="bottom-left"
123
123
  />
124
124
  </div>
125
- </div>
125
+ </section>
126
126
  </template>
127
127
 
128
128
  <script lang="ts">
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="module-box">
2
+ <section class="module-box">
3
3
  <h2 class="mb-3">
4
4
  {{ $t("Distribute") }}
5
5
  </h2>
@@ -32,7 +32,7 @@
32
32
  ref="snackbar"
33
33
  position="bottom-left"
34
34
  />
35
- </div>
35
+ </section>
36
36
  </template>
37
37
 
38
38
  <script lang="ts">
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="module-box overflow-visible">
2
+ <section class="module-box overflow-visible">
3
3
  <div class="d-flex justify-content-between align-items-center">
4
4
  <h3 class="mb-3">
5
5
  {{ $t("Embed") }}
@@ -83,7 +83,7 @@
83
83
  <div v-else-if="!authenticated">
84
84
  {{ $t("Only authenticated members can share the content") }}
85
85
  </div>
86
- </div>
86
+ </section>
87
87
  </template>
88
88
 
89
89
  <script lang="ts">
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="module-box overflow-visible">
2
+ <section class="module-box overflow-visible">
3
3
  <h2 class="mb-3">
4
4
  {{ $t("Embed") }}
5
5
  </h2>
@@ -35,7 +35,7 @@
35
35
  </button>
36
36
  </div>
37
37
  </div>
38
- </div>
38
+ </section>
39
39
  </template>
40
40
 
41
41
  <script lang="ts">
@@ -1,23 +1,24 @@
1
1
  <template>
2
- <label for="iframe-select" title="select miniplayer" />
3
- <select
4
- id="iframe-select"
5
- :value="iFrameModel"
6
- @change="selectChange($event)"
7
- >
8
- <template v-for="option in optionsSelect" :key="option.value">
9
- <option v-if="option.condition" :value="option.value">
10
- {{ option.name }}
11
- </option>
12
- </template>
13
- <option
14
- v-for="player in customPlayersDisplay"
15
- :key="player.customId"
16
- :value="player.customId"
2
+ <label for="iframe-select" title="select miniplayer" >
3
+ <select
4
+ id="iframe-select"
5
+ :value="iFrameModel"
6
+ @change="selectChange($event)"
17
7
  >
18
- {{ $t("Custom version") + " «" + player.name + "»" }}
19
- </option>
20
- </select>
8
+ <template v-for="option in optionsSelect" :key="option.value">
9
+ <option v-if="option.condition" :value="option.value">
10
+ {{ option.name }}
11
+ </option>
12
+ </template>
13
+ <option
14
+ v-for="player in customPlayersDisplay"
15
+ :key="player.customId"
16
+ :value="player.customId"
17
+ >
18
+ {{ $t("Custom version") + " «" + player.name + "»" }}
19
+ </option>
20
+ </select>
21
+ </label>
21
22
  </template>
22
23
 
23
24
  <script lang="ts">
@@ -12,10 +12,10 @@
12
12
  @input="$emit('update:textInit', !textInit)"
13
13
  @click="emitClickAction"
14
14
  />
15
- <div
15
+ <button
16
16
  v-if="isSwitch"
17
- class="slider"
18
- tabindex="0"
17
+ class="slider btn-transparent"
18
+ :title="label"
19
19
  @click="clickSlider"
20
20
  @keydown.space.prevent="clickSlider"
21
21
  />
@@ -27,6 +27,7 @@
27
27
  "
28
28
  :filter="fakeSearch"
29
29
  :selectable="() => !maxOptionsSelected"
30
+ :class="{ 'border border-danger': textDanger?.length }"
30
31
  @open="onSearch"
31
32
  @search="onSearch"
32
33
  @close="onClose"
@@ -67,6 +68,9 @@
67
68
  <ChevronDownIcon v-bind="attributes" />
68
69
  </template>
69
70
  </vSelect>
71
+ <div v-if="textDanger" class="text-danger">
72
+ {{ textDanger }}
73
+ </div>
70
74
  </div>
71
75
  </template>
72
76
 
@@ -96,6 +100,7 @@ export default {
96
100
  displayLabel: { default: false, type: Boolean },
97
101
  maxOptions: { default: null, type: Number },
98
102
  allowEmpty: { default: true, type: Boolean },
103
+ textDanger :{ default: undefined, type: String },
99
104
  },
100
105
 
101
106
  emits: ["onSearch", "selected", "onClose"],