@saooti/octopus-sdk 40.1.10 → 40.1.12

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saooti/octopus-sdk",
3
- "version": "40.1.10",
3
+ "version": "40.1.12",
4
4
  "private": false,
5
5
  "description": "Javascript SDK for using octopus",
6
6
  "author": "Saooti",
@@ -8,11 +8,10 @@ import dayjs from "dayjs";
8
8
  let Hls:any = null;
9
9
  /* eslint-enable*/
10
10
  const maxMinutesSessionId = 1;
11
- export const usePlayerLive = ()=>{
11
+ export const usePlayerLive = (hlsReady: Ref<Boolean>)=>{
12
12
 
13
13
  const { listenTime, initLiveDownloadId, setDownloadId, onTimeUpdateProgress } = usePlayerLogicProgress();
14
14
 
15
- const hlsReady= ref(false);
16
15
  const audioElement: Ref<HTMLAudioElement | null>= ref(null);
17
16
  const hls: Ref<any>= ref(null);
18
17
  const hlsRetryTimeout: Ref<ReturnType<typeof setTimeout> | undefined>= ref(undefined);
@@ -11,10 +11,9 @@ import classicApi from "../../../api/classicApi";
11
11
  import dayjs from "dayjs";
12
12
  import { FetchParam } from "@/stores/class/general/fetchParam";
13
13
  export const usePlayerLogic = (forceHide: Ref<boolean, boolean>)=>{
14
+ const hlsReady= ref(false);
14
15
 
15
- const {
16
- listenTime,
17
- onPlay, setDownloadId, onTimeUpdateProgress, playLive, endingLive, playRadio} = usePlayerLive();
16
+ const { listenTime, onPlay, setDownloadId, onTimeUpdateProgress, playLive, endingLive, playRadio} = usePlayerLive(hlsReady);
18
17
  const { contentEndedAdsLoader } = usePlayerStitching();
19
18
  const { getTranscription, onTimeUpdateTranscript, onSeekedTranscript, checkDelaytWithStitching } = usePlayerTranscript();
20
19
 
@@ -23,7 +22,6 @@ export const usePlayerLogic = (forceHide: Ref<boolean, boolean>)=>{
23
22
  const percentLiveProgress= ref(0);
24
23
  const durationLivePosition= ref(0);
25
24
  const displayAlertBar= ref(false);
26
- const hlsReady= ref(false);
27
25
  const audioUrlToPlay= ref("");
28
26
 
29
27
 
@@ -160,6 +160,7 @@ export const useAdvancedParamInit = (props: any, isEmission: boolean)=>{
160
160
  searchMinSize,
161
161
  paginateFirst,
162
162
  validity,
163
- rubriquesFilterArrayIds
163
+ rubriquesFilterArrayIds,
164
+ isInit
164
165
  }
165
166
  }
@@ -8,7 +8,7 @@ export const useSimplePageParam = (props: any)=>{
8
8
 
9
9
  const filterStore = useFilterStore();
10
10
 
11
-
11
+ const isInit = ref(false);
12
12
  const searchPattern = ref("");
13
13
  const organisationId: Ref<string|undefined> = ref(undefined);
14
14
 
@@ -29,6 +29,7 @@ export const useSimplePageParam = (props: any)=>{
29
29
  onMounted(() => {
30
30
  initOrga();
31
31
  initSearchPattern();
32
+ isInit.value = true;
32
33
  })
33
34
 
34
35
  function initSearchPattern(){
@@ -45,6 +46,7 @@ export const useSimplePageParam = (props: any)=>{
45
46
  searchMinSize,
46
47
  paginateFirst,
47
48
  initSearchPattern,
48
- initOrga
49
+ initOrga,
50
+ isInit
49
51
  }
50
52
  }
@@ -12,15 +12,14 @@
12
12
  rel="noreferrer noopener"
13
13
  target="_blank"
14
14
  :href="button.url"
15
- :class="getClass(button.className)"
16
- class="me-2"
15
+ class="btn share-btn mb-2 text-dark me-2"
17
16
  :title="$t('New window', {text: button.title})"
18
17
  >
19
18
  <component :is="button.icon" :size="34" />
20
19
  </a>
21
20
  </template>
22
21
  <button
23
- :class="getClass()"
22
+ class="btn share-btn mb-2 text-dark"
24
23
  :title="$t('Copy this page URL')"
25
24
  @click="onCopyCode(urlPage, afterCopy)"
26
25
  >
@@ -37,7 +36,7 @@
37
36
  {{ $t("Newsletter") }}
38
37
  </h3>
39
38
  <button
40
- :class="getClass()"
39
+ class="btn share-btn mb-2 text-dark"
41
40
  :title="$t('Share newsletter')"
42
41
  @click="newsletter = true"
43
42
  >
@@ -49,7 +48,7 @@
49
48
  {{ $t("QR Code") }}
50
49
  </h3>
51
50
  <button
52
- :class="getClass()"
51
+ class="btn share-btn mb-2 text-dark"
53
52
  :title="$t('Share QR Code')"
54
53
  @click="qrCode = true"
55
54
  >
@@ -67,7 +66,7 @@
67
66
  <a
68
67
  rel="noreferrer noopener"
69
68
  target="_blank"
70
- :class="getClass()"
69
+ class="btn share-btn mb-2 text-dark"
71
70
  :href="rssUrl"
72
71
  :title="$t('New window', {text: titleRssButton})"
73
72
  @click.prevent="openPopup()"
@@ -82,7 +81,7 @@
82
81
  </h3>
83
82
  <div class="d-flex align-items-center justify-content-center">
84
83
  <router-link
85
- :class="getClass()"
84
+ class="btn share-btn mb-2 text-dark"
86
85
  :title="$t('Generate a social media post (with AI)')"
87
86
  :to="{
88
87
  name: 'advancedShare',
@@ -127,6 +126,7 @@
127
126
 
128
127
  <script lang="ts">
129
128
  import XIcon from "../../icons/XIcon.vue";
129
+ import BlueSkyIcon from "../../icons/BlueSkyIcon.vue";
130
130
  import CreationIcon from "vue-material-design-icons/Creation.vue";
131
131
  import RssIcon from "vue-material-design-icons/Rss.vue";
132
132
  import WhatsappIcon from "vue-material-design-icons/Whatsapp.vue";
@@ -171,6 +171,7 @@ export default defineComponent({
171
171
  RssIcon,
172
172
  XIcon,
173
173
  CreationIcon,
174
+ BlueSkyIcon
174
175
  },
175
176
  props: {
176
177
  podcast: { default: undefined, type: Object as () => Podcast },
@@ -223,28 +224,30 @@ export default defineComponent({
223
224
  {
224
225
  title: "Facebook",
225
226
  icon: "FacebookIcon",
226
- className: "btn-facebook",
227
227
  url: `https://www.facebook.com/sharer/sharer.php?u=${this.urlPage}`,
228
228
  condition: true,
229
229
  },
230
230
  {
231
231
  title: "X",
232
232
  icon: "XIcon",
233
- className: "btn-twitter",
234
233
  url: `https://twitter.com/intent/tweet?text=${this.urlPage}`,
235
234
  condition: true,
236
235
  },
237
236
  {
238
237
  title: "Linkedin",
239
238
  icon: "LinkedinIcon",
240
- className: "btn-linkedin",
241
239
  url: `https://www.linkedin.com/sharing/share-offsite/?url=${this.urlPage}`,
242
240
  condition: true,
243
241
  },
242
+ {
243
+ title: "Bluesky",
244
+ icon: "BlueSkyIcon",
245
+ url: `https://bsky.app/intent/compose?text=${this.urlPage}`,
246
+ condition: true,
247
+ },
244
248
  {
245
249
  title: "Whatsapp",
246
250
  icon: "WhatsappIcon",
247
- className: "btn-whatsapp",
248
251
  url: `whatsapp://send?text=${this.urlPage}`,
249
252
  condition: window.matchMedia("(hover: none)").matches,
250
253
  },
@@ -302,9 +305,6 @@ export default defineComponent({
302
305
  this.noSharing = "true" === attributes.noSharing;
303
306
  this.isLoading = false;
304
307
  },
305
- getClass(className = "btn-rss"): string {
306
- return `btn ${className} share-btn mb-2 text-dark`;
307
- },
308
308
  openPopup(): void {
309
309
  this.dataRSSSave = !this.dataRSSSave;
310
310
  },
@@ -0,0 +1,32 @@
1
+ <template>
2
+ <span
3
+ :aria-hidden="!title"
4
+ class="material-design-icon"
5
+ :title="title"
6
+ >
7
+ <svg
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ viewBox="0 0 600 530"
10
+ :height="size"
11
+ :width="size"
12
+ :fill="fillColor"
13
+ >
14
+ <path
15
+ d="m135.72 44.03c66.496 49.921 138.02 151.14 164.28 205.46 26.262-54.316 97.782-155.54 164.28-205.46 47.98-36.021 125.72-63.892 125.72 24.795 0 17.712-10.155 148.79-16.111 170.07-20.703 73.984-96.144 92.854-163.25 81.433 117.3 19.964 147.14 86.092 82.697 152.22-122.39 125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937 0.51669-3.7077 7.8964-13.714 40.255-67.233 197.36-189.63 71.766-64.444-66.128-34.605-132.26 82.697-152.22-67.108 11.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07 0-88.687 77.742-60.816 125.72-24.795z"
16
+ />
17
+ </svg>
18
+ </span>
19
+ </template>
20
+
21
+ <script lang="ts">
22
+ import { defineComponent } from "vue";
23
+ export default defineComponent({
24
+ name: "BlueSkyIcon",
25
+ props: {
26
+ size: { default: 24, type: Number },
27
+ title: { default: undefined, type: String },
28
+ fillColor: { default: "currentColor", type: String },
29
+ },
30
+ });
31
+ </script>
32
+
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <section class="page-box">
2
+ <section v-if="isInit" class="page-box">
3
3
  <slot name="new-emission" />
4
4
  <ProductorSearch
5
5
  v-model:organisation-id="organisationId"
@@ -72,6 +72,7 @@ const {
72
72
  rubriqueFilter,
73
73
  searchMinSize,
74
74
  paginateFirst,
75
- rubriquesFilterArrayIds
75
+ rubriquesFilterArrayIds,
76
+ isInit
76
77
  } = useAdvancedParamInit(props, true);
77
78
  </script>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <section class="page-box">
2
+ <section v-if="isInit" class="page-box">
3
3
  <ProductorSearch
4
4
  v-model:organisation-id="organisationId"
5
5
  v-model:search-pattern="searchPattern"
@@ -32,6 +32,7 @@ const {
32
32
  organisationId,
33
33
  searchMinSize,
34
34
  paginateFirst,
35
+ isInit
35
36
  } = useSimplePageParam(props);
36
37
 
37
38
  </script>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <section class="page-box">
2
+ <section v-if="isInit" class="page-box">
3
3
  <router-link
4
4
  v-if="isRolePlaylists && !isPodcastmaker"
5
5
  to="/main/priv/edit/playlist"
@@ -45,6 +45,7 @@ const {
45
45
  organisationId,
46
46
  searchMinSize,
47
47
  paginateFirst,
48
+ isInit
48
49
  } = useSimplePageParam(props);
49
50
 
50
51
  const authStore = useAuthStore();
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <section class="page-box">
2
+ <section v-if="isInit" class="page-box">
3
3
  <ProductorSearch
4
4
  v-model:organisation-id="organisationId"
5
5
  v-model:search-pattern="searchPattern"
@@ -74,7 +74,8 @@ const {
74
74
  searchMinSize,
75
75
  paginateFirst,
76
76
  validity,
77
- rubriquesFilterArrayIds
77
+ rubriquesFilterArrayIds,
78
+ isInit
78
79
  } = useAdvancedParamInit(props, false);
79
80
 
80
81
  const onlyVideo = ref(false);
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <section class="page-box">
2
+ <section v-if="isInit" class="page-box">
3
3
  <h1>{{ title }}</h1>
4
4
  <ProductorSearch
5
5
  v-model:organisation-id="organisationId"
@@ -40,6 +40,7 @@ const {
40
40
  organisationId,
41
41
  searchMinSize,
42
42
  paginateFirst,
43
+ isInit
43
44
  } = useSimplePageParam(props);
44
45
 
45
46
  const { updatePathParams } = useSeoTitleUrl();
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <section class="page-box tag-page">
2
+ <section v-if="isInit" class="page-box tag-page">
3
3
  <h1>
4
4
  {{ $t("Search for keyword", {tag:titleDisplay})}}
5
5
  <img
@@ -51,6 +51,7 @@ const {
51
51
  organisationId,
52
52
  searchMinSize,
53
53
  paginateFirst,
54
+ isInit
54
55
  } = useSimplePageParam(props);
55
56
 
56
57
  const { isOuestFranceTag, formateOfTag } = useTagOf();
@@ -244,51 +244,6 @@ input:not([class^="vs__"]), button:not([class^="vs__"]), select:not([class^="vs_
244
244
  }
245
245
  }
246
246
 
247
- .btn-rss {
248
- background: var(--octopus-secondary) !important;
249
-
250
- &:hover {
251
- border: 0;
252
- background: var(--octopus-secondary-darker) !important;
253
- }
254
- }
255
-
256
- .btn-facebook {
257
- background: oklch(89.49% 0.05 255.2deg) !important;
258
- color: oklch(47% 0.1083 263deg) !important;
259
-
260
- &:hover {
261
- background: oklch(90% 0.024 263deg) !important;
262
- }
263
- }
264
-
265
- .btn-twitter {
266
- background: oklch(90% 0.035 234deg) !important;
267
-
268
- &:hover {
269
- background: oklch(90% 0.024 234deg) !important;
270
- }
271
- }
272
-
273
- .btn-linkedin {
274
- background: oklch(90% 0.035 242deg) !important;
275
- color: oklch(55% 0.130 242deg) !important;
276
-
277
- &:hover {
278
- background: oklch(90% 0.024 242deg) !important;
279
- }
280
- }
281
-
282
- .btn-whatsapp {
283
- background: oklch(89.25% 0.19 150deg) !important;
284
- color: oklch(76% 0.2015 150deg) !important;
285
-
286
- &:hover {
287
- background: oklch(90% 0.024 150deg) !important;
288
- }
289
- }
290
-
291
-
292
247
  .w-50-responsive{
293
248
  display: flex;
294
249
  align-items: center;