@saooti/octopus-sdk 37.0.18 → 37.0.20

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 (31) hide show
  1. package/package.json +19 -19
  2. package/src/components/display/emission/EmissionInlineList.vue +4 -4
  3. package/src/components/display/filter/AdvancedSearch.vue +3 -4
  4. package/src/components/display/list/ListPaginate.vue +1 -1
  5. package/src/components/display/list/SwiperList.vue +13 -9
  6. package/src/components/display/live/LiveItem.vue +10 -1
  7. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +3 -3
  8. package/src/components/display/podcasts/PodcastImage.vue +17 -12
  9. package/src/components/display/podcasts/PodcastInlineListClassic.vue +3 -3
  10. package/src/components/display/sharing/ShareDistribution.vue +1 -1
  11. package/src/components/display/sharing/SharePlayer.vue +9 -8
  12. package/src/components/display/sharing/SharePlayerTypes.vue +7 -18
  13. package/src/components/display/sharing/SubscribeButtons.vue +6 -1
  14. package/src/components/form/ClassicDatePicker.vue +46 -33
  15. package/src/components/misc/ClassicPopover.vue +6 -4
  16. package/src/components/misc/player/PlayerCompact.vue +1 -1
  17. package/src/components/misc/player/PlayerComponent.vue +8 -10
  18. package/src/components/misc/player/PlayerLarge.vue +1 -1
  19. package/src/components/misc/player/PlayerVideo.vue +24 -29
  20. package/src/components/misc/player/PlayerVideoDigiteka.vue +28 -26
  21. package/src/components/misc/player/PlayerVideoHls.vue +80 -69
  22. package/src/components/misc/player/radio/RadioHistory.vue +12 -9
  23. package/src/components/misc/player/radio/RadioProgressBar.vue +2 -2
  24. package/src/components/pages/EmissionPage.vue +1 -1
  25. package/src/components/pages/PodcastPage.vue +1 -1
  26. package/src/locale/de.ts +16 -17
  27. package/src/locale/en.ts +15 -16
  28. package/src/locale/es.ts +16 -17
  29. package/src/locale/fr.ts +16 -16
  30. package/src/locale/it.ts +329 -332
  31. package/src/locale/sl.ts +16 -17
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saooti/octopus-sdk",
3
- "version": "37.0.18",
3
+ "version": "37.0.20",
4
4
  "private": false,
5
5
  "description": "Javascript SDK for using octopus",
6
6
  "author": "Saooti",
@@ -16,38 +16,38 @@
16
16
  "dependencies": {
17
17
  "@popperjs/core": "^2.11.8",
18
18
  "@saooti/octopus-api": "^0.36.0",
19
- "@tiptap/extension-link": "^2.0.4",
20
- "@tiptap/extension-underline": "^2.0.4",
21
- "@tiptap/pm": "^2.0.4",
22
- "@tiptap/starter-kit": "^2.0.4",
23
- "@tiptap/vue-3": "^2.0.4",
19
+ "@tiptap/extension-link": "^2.1.6",
20
+ "@tiptap/extension-underline": "^2.1.6",
21
+ "@tiptap/pm": "^2.1.6",
22
+ "@tiptap/starter-kit": "^2.1.6",
23
+ "@tiptap/vue-3": "^2.1.6",
24
24
  "@vue/cli": "^5.0.8",
25
25
  "@vue/compat": "^3.3.4",
26
- "@vuepic/vue-datepicker": "^5.4.0",
27
- "autoprefixer": "^10.4.14",
26
+ "@vuepic/vue-datepicker": "^6.0.1",
27
+ "autoprefixer": "^10.4.15",
28
28
  "axios": "^1.4.0",
29
29
  "dayjs": "^1.11.9",
30
- "eslint-config-prettier": "^8.8.0",
30
+ "eslint-config-prettier": "^9.0.0",
31
31
  "eslint-plugin-prettier": "^5.0.0",
32
32
  "express": "^4.18.2",
33
- "hls.js": "^1.4.9",
33
+ "hls.js": "^1.4.10",
34
34
  "humanize-duration": "^3.29.0",
35
- "jest": "^29.6.1",
36
- "pinia": "^2.1.4",
37
- "qrcode.vue": "^3.4.0",
38
- "sass": "^1.63.6",
35
+ "jest": "^29.6.2",
36
+ "pinia": "^2.1.6",
37
+ "qrcode.vue": "^3.4.1",
38
+ "sass": "^1.66.1",
39
39
  "sonarqube-scanner": "^3.0.0",
40
- "swiper": "^10.0.4",
40
+ "swiper": "^10.2.0",
41
41
  "video.js": "^7.21.5",
42
42
  "videojs-contrib-quality-levels": "^2.2.1",
43
43
  "videojs-hls-quality-selector": "^1.1.4",
44
- "vite": "^4.4.4",
44
+ "vite": "^4.4.9",
45
45
  "vue": "^3.3.4",
46
46
  "vue-i18n": "^9.2.2",
47
47
  "vue-recaptcha": "^2.0.3",
48
48
  "vue-router": "^4.2.4",
49
49
  "vue-select": "^4.0.0-beta.6",
50
- "vue3-lazyload": "^0.3.6",
50
+ "vue3-lazyload": "^0.3.8",
51
51
  "vue3-swatches": "^1.2.3"
52
52
  },
53
53
  "devDependencies": {
@@ -56,10 +56,10 @@
56
56
  "@types/vue-select": "^3.16.2",
57
57
  "@typescript-eslint/eslint-plugin": "^6.0.0",
58
58
  "@typescript-eslint/parser": "^6.0.0",
59
- "@vitejs/plugin-vue": "^4.2.3",
59
+ "@vitejs/plugin-vue": "^4.3.2",
60
60
  "@vue/compiler-sfc": "^3.3.4",
61
61
  "@vue/eslint-config-typescript": "^11.0.3",
62
- "eslint": "^8.45.0",
62
+ "eslint": "^8.47.0",
63
63
  "eslint-plugin-vue": "^9.15.1",
64
64
  "typescript": "^5.1.6"
65
65
  },
@@ -64,7 +64,7 @@ import { Rubrique } from "@/stores/class/rubrique/rubrique";
64
64
  import { defineComponent } from "vue";
65
65
  import { AxiosError } from "axios";
66
66
  import imageProxy from "../../mixins/imageProxy";
67
- import resizePhone from "../../mixins/resizePhone";
67
+ import resizePhone from "../../mixins/resizePhone";
68
68
  import { Rubriquage } from "@/stores/class/rubrique/rubriquage";
69
69
  export default defineComponent({
70
70
  name: "EmissionInlineList",
@@ -100,7 +100,7 @@ export default defineComponent({
100
100
  alignLeft: false as boolean,
101
101
  rubriques: undefined as Array<Rubrique> | undefined,
102
102
  isPhone: false as boolean,
103
- windowWidth: 0 as number
103
+ windowWidth: 0 as number,
104
104
  };
105
105
  },
106
106
 
@@ -132,7 +132,7 @@ export default defineComponent({
132
132
  sizeItem() {
133
133
  this.handleResize();
134
134
  },
135
- windowWidth(){
135
+ windowWidth() {
136
136
  if (!this.$el) return;
137
137
  if (this.overflowScroll) {
138
138
  this.size = 20;
@@ -145,7 +145,7 @@ export default defineComponent({
145
145
  const width = (this.$el as HTMLElement).offsetWidth;
146
146
  const sixteen = domHelper.convertRemToPixels(this.itemSize + 0.7);
147
147
  this.size = Math.floor(width / sixteen);
148
- }
148
+ },
149
149
  },
150
150
 
151
151
  mounted() {
@@ -53,13 +53,12 @@
53
53
  </div>
54
54
  <ClassicCheckbox
55
55
  v-if="!isEmission"
56
- :textInit="onlyVideo"
56
+ :text-init="onlyVideo"
57
57
  class="flex-shrink-0 mt-3"
58
58
  id-checkbox="only-video-checkbox"
59
59
  :label="$t('Show only episodes with video')"
60
- @update:textInit="$emit('update:onlyVideo', $event)"
60
+ @update:text-init="$emit('update:onlyVideo', $event)"
61
61
  />
62
-
63
62
  </div>
64
63
  <div class="d-flex flex-column">
65
64
  <div class="text-primary mb-2">
@@ -117,7 +116,7 @@ export default defineComponent({
117
116
  "includeHidden",
118
117
  "notValid",
119
118
  "updateRubriquageFilter",
120
- "update:onlyVideo"
119
+ "update:onlyVideo",
121
120
  ],
122
121
  data() {
123
122
  return {
@@ -82,7 +82,7 @@ export default defineComponent({
82
82
  data() {
83
83
  return {
84
84
  isPhone: false as boolean,
85
- windowWidth: 0 as number
85
+ windowWidth: 0 as number,
86
86
  };
87
87
  },
88
88
  computed: {
@@ -1,7 +1,11 @@
1
1
  <template>
2
2
  <div class="position-relative w-100">
3
3
  <template v-if="!isPhone">
4
- <button class="btn-transparent swiper-button-prev" v-show="isLoop" @click="slidePrevButton()"></button>
4
+ <button
5
+ v-show="isLoop"
6
+ class="btn-transparent swiper-button-prev"
7
+ @click="slidePrevButton()"
8
+ ></button>
5
9
  <swiper
6
10
  :slides-per-view="numberItem"
7
11
  :space-between="0"
@@ -14,7 +18,7 @@
14
18
  </swiper-slide>
15
19
  </swiper>
16
20
  </template>
17
- <div class="element-list-inline" v-else>
21
+ <div v-else class="element-list-inline">
18
22
  <div v-for="(obj, index) in listObject" :key="obj">
19
23
  <slot name="octopusSlide" :option="obj" :index="index" />
20
24
  </div>
@@ -38,7 +42,7 @@ export default defineComponent({
38
42
  Swiper,
39
43
  SwiperSlide,
40
44
  },
41
- mixins:[resizePhone],
45
+ mixins: [resizePhone],
42
46
 
43
47
  props: {
44
48
  listObject: { default: () => [], type: Array as () => Array<unknown> },
@@ -50,7 +54,7 @@ export default defineComponent({
50
54
  modules: [Navigation],
51
55
  numberItem: 5 as number,
52
56
  isPhone: false as boolean,
53
- windowWidth: 0 as number
57
+ windowWidth: 0 as number,
54
58
  };
55
59
  },
56
60
  computed: {
@@ -65,21 +69,21 @@ export default defineComponent({
65
69
  ? state.generalParameters.podcastItem
66
70
  : 13.5;
67
71
  },
68
- isLoop():boolean{
72
+ isLoop(): boolean {
69
73
  return this.listObject.length >= this.numberItem;
70
74
  },
71
75
  },
72
- watch:{
73
- windowWidth(){
76
+ watch: {
77
+ windowWidth() {
74
78
  if (!this.$el) return;
75
79
  const width = (this.$el as HTMLElement).offsetWidth - 95;
76
80
  const sixteen = domHelper.convertRemToPixels(this.sizeItem + 0.5);
77
81
  this.numberItem = Math.max(1, Math.floor(width / sixteen));
78
- }
82
+ },
79
83
  },
80
84
 
81
85
  methods: {
82
- slidePrevButton(){
86
+ slidePrevButton() {
83
87
  this.$el.querySelector(".swiper").swiper.slidePrev();
84
88
  },
85
89
  },
@@ -29,6 +29,7 @@ export default defineComponent({
29
29
  data() {
30
30
  return {
31
31
  live: undefined as Podcast | undefined,
32
+ watchInterval: undefined as ReturnType<typeof setTimeout> | undefined,
32
33
  };
33
34
  },
34
35
 
@@ -36,7 +37,14 @@ export default defineComponent({
36
37
  this.fetchPodcastData();
37
38
  this.watchStatus();
38
39
  },
40
+ unmounted() {
41
+ this.clearWatchStatus();
42
+ },
39
43
  methods: {
44
+ clearWatchStatus() {
45
+ clearInterval(this.watchInterval as unknown as number);
46
+ this.watchInterval = undefined;
47
+ },
40
48
  async fetchPodcastData(): Promise<void> {
41
49
  if (!this.fetchConference || !this.fetchConference.podcastId) return;
42
50
  try {
@@ -73,7 +81,8 @@ export default defineComponent({
73
81
  ...{ status: newStatus },
74
82
  });
75
83
  } else {
76
- setTimeout(() => {
84
+ this.clearWatchStatus();
85
+ this.watchInterval = setTimeout(() => {
77
86
  this.watchStatus();
78
87
  }, 5000);
79
88
  }
@@ -88,7 +88,7 @@ export default defineComponent({
88
88
  direction: 1 as number,
89
89
  alignLeft: false as boolean,
90
90
  isPhone: false as boolean,
91
- windowWidth: 0 as number
91
+ windowWidth: 0 as number,
92
92
  };
93
93
  },
94
94
  computed: {
@@ -124,7 +124,7 @@ export default defineComponent({
124
124
  this.reset();
125
125
  this.fetchContent();
126
126
  },
127
- windowWidth(){
127
+ windowWidth() {
128
128
  if (!this.$el) return;
129
129
  if (this.overflowScroll) {
130
130
  this.size = 20;
@@ -137,7 +137,7 @@ export default defineComponent({
137
137
  const width = (this.$el as HTMLElement).offsetWidth;
138
138
  const sixteen = domHelper.convertRemToPixels(this.sizeItem + 0.8);
139
139
  this.size = Math.floor(width / sixteen);
140
- }
140
+ },
141
141
  },
142
142
 
143
143
  mounted() {
@@ -61,7 +61,7 @@
61
61
  {{ textVisible }}
62
62
  </div>
63
63
  </button>
64
- <button
64
+ <button
65
65
  v-if="isVideoPodcast"
66
66
  class="btn admin-button btn-play-video saooti-video"
67
67
  @click="play(true)"
@@ -107,10 +107,13 @@ export default defineComponent({
107
107
  "playerPodcast",
108
108
  "playerLive",
109
109
  "playerStatus",
110
- "playerVideo"
110
+ "playerVideo",
111
111
  ]),
112
- isVideoPodcast(): boolean{
113
- return this.fetchConference?.videoProfile?.includes('video_') || undefined!==this.podcast.video?.videoId;
112
+ isVideoPodcast(): boolean {
113
+ return (
114
+ this.fetchConference?.videoProfile?.includes("video_") ||
115
+ undefined !== this.podcast.video?.videoId
116
+ );
114
117
  },
115
118
  playingPodcast() {
116
119
  return (
@@ -214,7 +217,6 @@ export default defineComponent({
214
217
  case "RECORDING":
215
218
  return this.$t("In live");
216
219
  case "DEBRIEFING":
217
- /* if (!this.isAnimatorLive) return ''; */
218
220
  if ("READY_TO_RECORD" === this.podcast.processingStatus)
219
221
  return this.$t("Not recording");
220
222
  return this.$t("Debriefing");
@@ -261,17 +263,20 @@ export default defineComponent({
261
263
  if (this.isLiveToBeRecorded) {
262
264
  return;
263
265
  }
264
- if (this.playingPodcast && isVideo===this.playerVideo) {
266
+ if (this.playingPodcast && isVideo === this.playerVideo) {
265
267
  this.playerChangeStatus("PLAYING" === this.playerStatus);
266
268
  return;
267
269
  }
268
270
  if (!this.recordingLive) {
269
271
  this.playerPlay(this.podcast, isVideo);
270
272
  } else {
271
- this.playerPlay({
272
- ...this.podcast,
273
- ...{ conferenceId: this.fetchConference?.conferenceId },
274
- }, isVideo);
273
+ this.playerPlay(
274
+ {
275
+ ...this.podcast,
276
+ ...{ conferenceId: this.fetchConference?.conferenceId },
277
+ },
278
+ isVideo,
279
+ );
275
280
  }
276
281
  if (this.clickPlayGoPage) {
277
282
  this.$router.push("/main/pub/podcast/" + this.podcast.podcastId);
@@ -319,13 +324,13 @@ export default defineComponent({
319
324
  background-color: rgba(255, 255, 255, 0.5);
320
325
  }
321
326
 
322
- .btn.btn-play-video{
327
+ .btn.btn-play-video {
323
328
  position: absolute;
324
329
  bottom: 0;
325
330
  right: 0;
326
331
  margin: 0.5rem;
327
332
  background: $primaryColorLessTransparent !important;
328
- color:white !important
333
+ color: white !important;
329
334
  }
330
335
 
331
336
  .image-play-button .play-button-error-icon {
@@ -99,7 +99,7 @@ export default defineComponent({
99
99
  direction: 1 as number,
100
100
  alignLeft: false as boolean,
101
101
  isPhone: false as boolean,
102
- windowWidth: 0 as number
102
+ windowWidth: 0 as number,
103
103
  };
104
104
  },
105
105
  computed: {
@@ -142,7 +142,7 @@ export default defineComponent({
142
142
  this.reset();
143
143
  this.fetchNext();
144
144
  },
145
- windowWidth(){
145
+ windowWidth() {
146
146
  if (!this.$el) return;
147
147
  if (this.overflowScroll) {
148
148
  this.size = 20;
@@ -155,7 +155,7 @@ export default defineComponent({
155
155
  const width = (this.$el as HTMLElement).offsetWidth;
156
156
  const sixteen = domHelper.convertRemToPixels(this.sizeItem + 0.8);
157
157
  this.size = Math.floor(width / sixteen);
158
- }
158
+ },
159
159
  },
160
160
 
161
161
  created() {
@@ -77,7 +77,7 @@ export default defineComponent({
77
77
  icon: "saooti-google-podcasts",
78
78
  title: "Google Podcasts",
79
79
  },
80
- {url:this.getUrl('iHeart'), icon:'saooti-iheart', title:'iHeart'},
80
+ { url: this.getUrl("iHeart"), icon: "saooti-iheart", title: "iHeart" },
81
81
  {
82
82
  url: this.getUrl("PlayerFM"),
83
83
  icon: "saooti-playerfm",
@@ -240,14 +240,15 @@ export default defineComponent({
240
240
  },
241
241
  iFrameHeight(): string {
242
242
  switch (this.iFrameModel) {
243
- case "large":
244
- if (this.podcast) return "210px";
245
- return "350px";
246
- case "emissionLarge":
247
- case "largeSuggestion":
248
- return "350px";
249
- case "emission":
250
- return "520px";
243
+ case 'large':
244
+ if (this.podcast) return '140px';
245
+ return '350px';
246
+ case 'largeMore':
247
+ return '210px';
248
+ case 'emissionLarge':
249
+ case 'largeSuggestion':
250
+ return '350px';
251
+ case 'emission':return '520px';
251
252
  default:
252
253
  return "530px";
253
254
  }
@@ -48,24 +48,13 @@ export default defineComponent({
48
48
  computed: {
49
49
  optionsSelect() {
50
50
  return [
51
- { name: this.$t("Default version"), value: "default", condition: true },
52
- { name: this.$t("Large version"), value: "large", condition: true },
53
- {
54
- name: this.$t("Emission version"),
55
- value: "emission",
56
- condition: this.podcast && this.podcast.podcastId,
57
- },
58
- {
59
- name: this.$t("Large emission version"),
60
- value: "emissionLarge",
61
- condition: this.podcast && this.podcast.podcastId,
62
- },
63
- {
64
- name: this.$t("Large suggestion version"),
65
- value: "largeSuggestion",
66
- condition: this.podcast && this.podcast.podcastId,
67
- },
68
- ];
51
+ {name: this.$t('Default version'), value: 'default', condition: true},
52
+ {name: this.$t('Large version'), value: 'large', condition: true},
53
+ {name: this.$t('Full Large version'), value: 'largeMore', condition: this.podcast && this.podcast.podcastId},
54
+ {name: this.$t('Emission version'), value: 'emission', condition: this.podcast && this.podcast.podcastId},
55
+ {name: this.$t('Large emission version'), value: 'emissionLarge', condition: this.podcast && this.podcast.podcastId},
56
+ {name: this.$t('Large suggestion version'), value: 'largeSuggestion', condition: this.podcast && this.podcast.podcastId}
57
+ ]
69
58
  },
70
59
  customPlayersDisplay(): Array<CustomPlayer> {
71
60
  return this.customPlayers.filter((player: CustomPlayer) => {
@@ -56,7 +56,12 @@ export default defineComponent({
56
56
  title: "Google Podcasts",
57
57
  url: this.getUrl("googlePodcasts"),
58
58
  },
59
- {name:'iHeart', icon:"saooti-iheart",title:'iHeart', url : this.getUrl('iHeart')},
59
+ {
60
+ name: "iHeart",
61
+ icon: "saooti-iheart",
62
+ title: "iHeart",
63
+ url: this.getUrl("iHeart"),
64
+ },
60
65
  {
61
66
  name: "playerFm",
62
67
  icon: "saooti-playerfm",
@@ -13,9 +13,9 @@
13
13
  :max-date="isMaxDate && !isTimePicker ? now : undefined"
14
14
  :min-date="isMinDate && !isTimePicker ? now : undefined"
15
15
  :range="undefined !== range"
16
- :multi-calendars="columnNumber>1 ? columnNumber : false"
16
+ :multi-calendars="columnNumber > 1 ? columnNumber : false"
17
17
  :inline="columnNumber > 1"
18
- :enable-time-picker="!isTimePicker ?displayTimePicker : undefined"
18
+ :enable-time-picker="!isTimePicker ? displayTimePicker : undefined"
19
19
  :aria-labels="ariaLabels"
20
20
  @update:model-value="$emit('updateDate', $event)"
21
21
  >
@@ -24,72 +24,85 @@
24
24
 
25
25
  <script lang="ts">
26
26
  import dayjs from "dayjs";
27
- import VueDatePicker from '@vuepic/vue-datepicker';
27
+ import VueDatePicker from "@vuepic/vue-datepicker";
28
28
  import { defineComponent } from "vue";
29
29
  export default defineComponent({
30
30
  components: {
31
31
  VueDatePicker,
32
32
  },
33
33
  props: {
34
- time: { default:undefined, type: Object as () => {hours:number, minutes:number, seconds:number} },
34
+ time: {
35
+ default: undefined,
36
+ type: Object as () => { hours: number; minutes: number; seconds: number },
37
+ },
35
38
  date: { default: undefined, type: Date },
36
- range: {default: undefined,type: Array as () => Array<Date>},
39
+ range: { default: undefined, type: Array as () => Array<Date> },
37
40
  isMaxDate: { default: false, type: Boolean },
38
41
  isMinDate: { default: false, type: Boolean },
39
42
  columnNumber: { default: 1, type: Number },
40
43
  displaySeconds: { default: false, type: Boolean },
41
- displayTimePicker:{ default: true, type: Boolean },
42
- isTimePicker:{ default: false, type: Boolean },
43
- useTeleport:{ default: false, type: Boolean },
44
+ displayTimePicker: { default: true, type: Boolean },
45
+ isTimePicker: { default: false, type: Boolean },
46
+ useTeleport: { default: false, type: Boolean },
44
47
  templateClass: { default: undefined, type: String },
45
48
  readonly: { default: false, type: Boolean },
46
49
  },
47
50
 
48
51
  emits: ["updateDate", "update:date"],
49
52
  data() {
50
- return {
51
- };
53
+ return {};
52
54
  },
53
55
  computed: {
54
- ariaLabels(){
56
+ ariaLabels() {
55
57
  return {
56
58
  input: this.date ? this.formatDate(this.date) : undefined,
57
- day : (value: {value: Date}) => {return this.formatDate(value.value);}
58
- }
59
+ day: (value: { value: Date }) => {
60
+ return this.formatDate(value.value);
61
+ },
62
+ };
59
63
  },
60
- modelVal(){
64
+ modelVal() {
61
65
  return this.time ?? this.range ?? this.date;
62
66
  },
63
- formatLocale(){
67
+ formatLocale() {
64
68
  return this.$i18n.locale;
65
69
  },
66
- format(){
67
- let timeString = '';
68
- if(this.displayTimePicker || this.isTimePicker){
69
- timeString ='HH:mm';
70
- if(this.displaySeconds){
71
- timeString ='HH:mm:ss';
72
- }
70
+ format() {
71
+ let timeString = "";
72
+ if (this.displayTimePicker || this.isTimePicker) {
73
+ timeString = "HH:mm";
74
+ if (this.displaySeconds) {
75
+ timeString = "HH:mm:ss";
76
+ }
73
77
  }
74
- const dayString = this.isTimePicker ? timeString : 'dd/MM/yyyy '+timeString;
75
- return this.range ? dayString+' - '+dayString : dayString;
78
+ const dayString = this.isTimePicker
79
+ ? timeString
80
+ : "dd/MM/yyyy " + timeString;
81
+ return this.range ? dayString + " - " + dayString : dayString;
76
82
  },
77
83
  now(): Date {
78
84
  return dayjs().toDate();
79
85
  },
80
86
  },
81
- methods:{
82
- formatDate(value: Date): string{
87
+ methods: {
88
+ formatDate(value: Date): string {
83
89
  const realMonth = value.getMonth() + 1;
84
- return value.getDate()+'/'+(realMonth < 10 ? "0" : "") + realMonth+'/'+value.getFullYear();
85
- }
86
- }
87
- })
90
+ return (
91
+ value.getDate() +
92
+ "/" +
93
+ (realMonth < 10 ? "0" : "") +
94
+ realMonth +
95
+ "/" +
96
+ value.getFullYear()
97
+ );
98
+ },
99
+ },
100
+ });
88
101
  </script>
89
102
  <style lang="scss">
90
- @import '@vuepic/vue-datepicker/dist/main.css';
103
+ @import "@vuepic/vue-datepicker/dist/main.css";
91
104
  .dp__theme_light {
92
- --dp-primary-color: #1a8658;
93
- --dp-time-font-size: 1rem;
105
+ --dp-primary-color: #1a8658;
106
+ --dp-time-font-size: 1rem;
94
107
  }
95
108
  </style>
@@ -32,7 +32,6 @@ export default defineComponent({
32
32
  relativeClass: { type: String, default: undefined },
33
33
  leftPos: { type: Boolean, default: false },
34
34
  topPos: { type: Boolean, default: false },
35
-
36
35
  },
37
36
  data() {
38
37
  return {
@@ -125,9 +124,12 @@ export default defineComponent({
125
124
  parentRight -
126
125
  (this.$refs.popover as HTMLElement).clientWidth
127
126
  : rectElement.left - parentLeft;
128
- const yPosParent = this.topPos ? rectElement.top:rectElement.bottom;
129
- const yGap = this.topPos ? -5 - (this.$refs.popover as HTMLElement).clientHeight :5;
130
- this.posY = yPosParent +
127
+ const yPosParent = this.topPos ? rectElement.top : rectElement.bottom;
128
+ const yGap = this.topPos
129
+ ? -5 - (this.$refs.popover as HTMLElement).clientHeight
130
+ : 5;
131
+ this.posY =
132
+ yPosParent +
131
133
  parentScrollTop -
132
134
  parentTop +
133
135
  (this.isFixed ? 0 : window.scrollY) +
@@ -96,7 +96,7 @@ export default defineComponent({
96
96
  percentLiveProgress: { default: 0, type: Number },
97
97
  durationLivePosition: { default: 0, type: Number },
98
98
  listenTime: { default: 0, type: Number },
99
- hlsReady: { default: false , type: Boolean},
99
+ hlsReady: { default: false, type: Boolean },
100
100
  },
101
101
 
102
102
  emits: ["stopPlayer", "update:notListenTime", "changePlayerLargeVersion"],