@webitel/ui-sdk 26.2.115 → 26.2.117

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 (70) hide show
  1. package/dist/{index-BjzpFL4E.js → index-BFynmdSW.js} +1 -1
  2. package/dist/{index-fuTf2dMU.js → index-m0E8fIQb.js} +1 -1
  3. package/dist/{install-oaxyJuzb.js → install-DzazF_oO.js} +36 -36
  4. package/dist/{isObject-DApJLItD.js → isObject-ofapkEKz.js} +1 -1
  5. package/dist/ui-sdk.css +1 -1
  6. package/dist/ui-sdk.js +1 -1
  7. package/dist/ui-sdk.umd.cjs +267 -267
  8. package/dist/{vidstack-Bq6c3Bam-CPemCoye.js → vidstack-Bq6c3Bam-D9EU2NxL.js} +2 -2
  9. package/dist/{vidstack-D2pY00kU-kmkAc5iq.js → vidstack-D2pY00kU-DGHlDxMW.js} +2 -2
  10. package/dist/{vidstack-DDXt6fpN-BDXHoWfA.js → vidstack-DDXt6fpN-DwAeAfLy.js} +1 -1
  11. package/dist/{vidstack-D_-9AA6_-BY6PdB7k.js → vidstack-D_-9AA6_-BfS7q4TM.js} +1 -1
  12. package/dist/{vidstack-DqAw8m9J-B-A1fMjZ.js → vidstack-DqAw8m9J-C0-wFQrp.js} +1 -1
  13. package/dist/{vidstack-audio-DNWZXBiG.js → vidstack-audio-jULqlhW3.js} +2 -2
  14. package/dist/{vidstack-dash-fxUAiNxL.js → vidstack-dash-CIw72WMz.js} +3 -3
  15. package/dist/{vidstack-google-cast-B_GkOx7C.js → vidstack-google-cast-DfXD6loe.js} +3 -3
  16. package/dist/{vidstack-hls-BDoCXLGS.js → vidstack-hls-BA2misUI.js} +3 -3
  17. package/dist/{vidstack-video-CnEJWJBm.js → vidstack-video-4LWT9o8o.js} +2 -2
  18. package/dist/{vidstack-vimeo-CkW2M6pH.js → vidstack-vimeo-C1Op41dk.js} +3 -3
  19. package/dist/{vidstack-youtube-COxHxfHB.js → vidstack-youtube-g7kQBNNj.js} +2 -2
  20. package/dist/{wt-action-bar-CelN5cph.js → wt-action-bar-DBpgD0EC.js} +1 -1
  21. package/dist/{wt-button-select-BT40HkxV.js → wt-button-select-C43-ybCc.js} +1 -1
  22. package/dist/{wt-chat-emoji-DROOc6bl.js → wt-chat-emoji-9mCFysqa.js} +2 -2
  23. package/dist/{wt-confirm-dialog-CN4LDnWw.js → wt-confirm-dialog-CnUDGpR6.js} +1 -1
  24. package/dist/{wt-context-menu-DDEdTwmo.js → wt-context-menu-Cjot1BE-.js} +1 -1
  25. package/dist/{wt-copy-action-BxrmG1PF.js → wt-copy-action-DAPawWRN.js} +1 -1
  26. package/dist/{wt-datepicker-VPrJ2zIK.js → wt-datepicker-YZTotBwv.js} +1 -1
  27. package/dist/{wt-display-chip-items-Dp6aUwP7.js → wt-display-chip-items-DdZBNSEn.js} +1 -1
  28. package/dist/{wt-dual-panel-DZ7yGaM_.js → wt-dual-panel-BZanJCpX.js} +1 -1
  29. package/dist/{wt-dummy-Dn7tHpr7.js → wt-dummy-na1iklN7.js} +1 -1
  30. package/dist/{wt-error-page-Bgkn7Kk3.js → wt-error-page-DkZOxEF4.js} +1 -1
  31. package/dist/{wt-expansion-card-LonwOu2T.js → wt-expansion-card-DZQEvHZZ.js} +1 -1
  32. package/dist/{wt-expansion-panel-DPz0bAba.js → wt-expansion-panel-QXanZILo.js} +1 -1
  33. package/dist/{wt-filters-panel-wrapper-CxOraVEI.js → wt-filters-panel-wrapper-D3oUlcKI.js} +1 -1
  34. package/dist/{wt-galleria-BbFrD78g.js → wt-galleria-DWXkw5eD.js} +1 -1
  35. package/dist/{wt-navigation-menu-0XBga4Sm.js → wt-navigation-menu-n-ebh7Wq.js} +1 -1
  36. package/dist/{wt-notifications-bar-Cgqo668H.js → wt-notifications-bar-4WdKoUWB.js} +2 -2
  37. package/dist/{wt-page-header-BC9WlWm2.js → wt-page-header-BgMy57yR.js} +1 -1
  38. package/dist/{wt-pagination-D2lSnVYF.js → wt-pagination-rqAg_cO8.js} +1 -1
  39. package/dist/wt-player-CZGX0VGn.js +140 -0
  40. package/dist/{wt-search-bar-DqGX3Ty2.js → wt-search-bar-DKntklU-.js} +1 -1
  41. package/dist/{wt-selection-popup-DuNVRHnI.js → wt-selection-popup-DziTUE4w.js} +1 -1
  42. package/dist/wt-slider-BEkw4KGp.js +4 -0
  43. package/dist/{wt-slider-D5TBCXMq.js → wt-slider.vue_vue_type_script_setup_true_lang-DlaRDHxo.js} +5 -5
  44. package/dist/{wt-start-page-DwcLcNXb.js → wt-start-page-BMw4Wa-V.js} +1 -1
  45. package/dist/{wt-status-select-DJeBGbhm.js → wt-status-select-Db16DKg7.js} +1 -1
  46. package/dist/{wt-stepper--f9yXRnp.js → wt-stepper-BQYKPNdQ.js} +1 -1
  47. package/dist/{wt-table-DAqH0enN.js → wt-table-BrYjnZhH.js} +1 -1
  48. package/dist/{wt-table-actions-D_ke_oEf.js → wt-table-actions-DnuDZxll.js} +1 -1
  49. package/dist/{wt-table-column-select-TmGCmp8y.js → wt-table-column-select-B4HppkDV.js} +2 -2
  50. package/dist/{wt-tabs-DfWXJZcJ.js → wt-tabs-BxVMV8h1.js} +1 -1
  51. package/dist/{wt-tags-input-DwSHG_hj.js → wt-tags-input-CQ8nOhW-.js} +2 -2
  52. package/dist/{wt-timepicker-CPORh3XF.js → wt-timepicker-CedbvtH0.js} +1 -1
  53. package/dist/{wt-tree-AIg73-16.js → wt-tree-BvQexNhI.js} +2 -2
  54. package/dist/{wt-tree-table-DbM4mARe.js → wt-tree-table-KlQQbZ_X.js} +1 -1
  55. package/dist/{wt-type-extension-value-input-Dghs56WS.js → wt-type-extension-value-input-cr-l1qEm.js} +2 -2
  56. package/dist/{wt-vidstack-player-eM0NjopU.js → wt-vidstack-player-DTitYIww.js} +30 -29
  57. package/package.json +1 -1
  58. package/src/components/wt-player/src/components/buttons/mute-button.vue +22 -0
  59. package/src/components/wt-player/src/components/buttons/play-button.vue +22 -0
  60. package/src/components/wt-player/src/components/sliders/time-slider.vue +41 -0
  61. package/src/components/wt-player/src/components/sliders/volume-slide.vue +41 -0
  62. package/src/components/wt-player/wt-player.vue +104 -168
  63. package/src/components/wt-vidstack-player/components/panels/media-controls-panel/components/sliders/time-slider.vue +6 -3
  64. package/src/components/wt-vidstack-player/components/panels/media-controls-panel/components/time-group.vue +2 -1
  65. package/types/components/wt-player/src/components/buttons/mute-button.vue.d.ts +3 -0
  66. package/types/components/wt-player/src/components/buttons/play-button.vue.d.ts +3 -0
  67. package/types/components/wt-player/src/components/sliders/time-slider.vue.d.ts +3 -0
  68. package/types/components/wt-player/src/components/sliders/volume-slide.vue.d.ts +3 -0
  69. package/types/components/wt-player/wt-player.vue.d.ts +8 -2
  70. package/dist/wt-player-C01Lo5pu.js +0 -134
@@ -0,0 +1,41 @@
1
+ <template>
2
+ <media-volume-slider class="volume-slider media-slider">
3
+ <wt-slider class="volume-slider__slider" />
4
+ </media-volume-slider>
5
+ </template>
6
+
7
+ <script
8
+ lang="ts"
9
+ setup
10
+ >
11
+ import WtSlider from '../../../../wt-slider/wt-slider.vue';
12
+ </script>
13
+
14
+ <style scoped>
15
+ .volume-slider {
16
+ display: inline-flex;
17
+ align-items: center;
18
+ width: 15%;
19
+ padding: var(--spacing-xs) 0;
20
+ cursor: pointer;
21
+ }
22
+
23
+ .volume-slider:deep(.p-slider-handle) {
24
+ transform: scale(1.5);
25
+ }
26
+
27
+ .volume-slider__slider {
28
+ width: 100%;
29
+ }
30
+
31
+ .volume-slider:deep(.p-slider-range) {
32
+ /* set vidstach slider variable to primevue component @author liza-pohrsnichna */
33
+ width: var(--slider-fill, 0%) !important;
34
+ }
35
+
36
+ .volume-slider:deep(.p-slider-handle) {
37
+ /*set vidstach slider variable to primevue component @author liza-pohrsnichna */
38
+ transition: transform ease var(--transition);
39
+ inset-inline-start: var(--slider-fill, 0%) !important;
40
+ }
41
+ </style>
@@ -3,33 +3,44 @@
3
3
  ref="player"
4
4
  class="wt-player"
5
5
  :class="`wt-player--position-${position}`"
6
- :src="src"
6
+ :src="normalizedSrc"
7
7
  :loop="loop"
8
8
  :autoplay="autoplay"
9
9
  >
10
- <media-provider></media-provider>
11
- <media-plyr-layout
12
- :controls="controls"
13
- :download="download"
14
- custom-icons
15
- >
16
- <wt-icon icon="plyr-airplay" slot="airplay-icon" />
17
- <wt-icon icon="plyr-captions-off" slot="captions-off-icon" />
18
- <wt-icon icon="plyr-captions-on" slot="captions-on-icon" />
19
- <wt-icon icon="plyr-download" slot="download-icon" />
20
- <wt-icon icon="plyr-enter-fullscreen" slot="enter-fullscreen-icon" />
21
- <wt-icon icon="plyr-pip" slot="enter-pip-icon" />
22
- <wt-icon icon="plyr-exit-fullscreen" slot="exit-fullscreen-icon" />
23
- <wt-icon icon="plyr-pip" slot="exit-pip-icon" />
24
- <wt-icon icon="plyr-fast-forward" slot="fast-forward-icon" />
25
- <wt-icon icon="plyr-muted" slot="muted-icon" />
26
- <wt-icon icon="plyr-pause" slot="pause-icon" />
27
- <wt-icon icon="plyr-play" slot="play-icon" />
28
- <wt-icon icon="plyr-restart" slot="restart-icon" />
29
- <wt-icon icon="plyr-rewind" slot="rewind-icon" />
30
- <wt-icon icon="plyr-settings" slot="settings-icon" />
31
- <wt-icon icon="plyr-volume" slot="volume-icon" />
32
- </media-plyr-layout>
10
+
11
+ <media-provider />
12
+
13
+ <media-controls-group class="controls-group">
14
+
15
+ <play-button />
16
+ <time-slider />
17
+ <time-group />
18
+ <mute-button />
19
+ <volume-slide />
20
+
21
+ <media-button
22
+ v-if="props.download"
23
+ class="download-button"
24
+ @click="downloadMedia"
25
+ >
26
+ <wt-icon-btn
27
+ icon="plyr-download"
28
+ size="sm"
29
+ />
30
+ </media-button>
31
+
32
+ <media-button
33
+ v-if="props.closable"
34
+ class="close-button"
35
+ @click="$emit('close')"
36
+ >
37
+ <wt-icon-btn
38
+ icon="close"
39
+ size="sm"
40
+ />
41
+ </media-button>
42
+
43
+ </media-controls-group>
33
44
  </media-player>
34
45
  </template>
35
46
 
@@ -38,18 +49,27 @@
38
49
  lang="ts"
39
50
  >
40
51
  import 'vidstack/bundle';
41
-
42
- import type { PlyrControl } from 'vidstack';
52
+ import type { MediaSrc, PlyrControl } from 'vidstack';
43
53
  import { computed, onMounted, watch } from 'vue';
44
54
 
45
55
  import WtIcon from '../wt-icon/wt-icon.vue';
56
+ import TimeGroup from '../wt-vidstack-player/components/panels/media-controls-panel/components/time-group.vue';
57
+ import MuteButton from './src/components/buttons/mute-button.vue';
58
+ import PlayButton from './src/components/buttons/play-button.vue';
59
+ import TimeSlider from './src/components/sliders/time-slider.vue';
60
+ import VolumeSlide from './src/components/sliders/volume-slide.vue';
46
61
 
47
62
  interface Props {
48
63
  /**
49
- * Media source URL
64
+ * vidstack media src
65
+ * @type {MediaSrc}
66
+ */
67
+ src?: MediaSrc;
68
+ /**
69
+ * Media id
50
70
  * @type {string}
51
71
  */
52
- src?: string;
72
+ id?: string;
53
73
  /**
54
74
  * Autoplay media on load
55
75
  * @type {boolean}
@@ -119,175 +139,91 @@ const props = withDefaults(defineProps<Props>(), {
119
139
  });
120
140
 
121
141
  const emit = defineEmits<{
122
- initialized: []; // todo
123
- close: []; // todo
142
+ initialized: []; // is needed?
143
+ close: [];
124
144
  }>();
125
145
 
126
- const controls = computed<PlyrControl[]>(() => {
127
- /**
128
- * order matters!
129
- */
130
- let baseControls: PlyrControl[] = [
131
- 'play',
132
- 'progress',
133
- 'mute+volume',
134
- 'download',
135
- 'fullscreen',
136
- 'settings',
137
- ];
138
- if (props.hideDuration) {
139
- baseControls = baseControls.filter((control) => control !== 'duration');
140
- }
141
- if (!props.download) {
142
- baseControls = baseControls.filter((control) => control !== 'download');
143
- }
144
- return baseControls;
145
- });
146
+ const normalizedSrc = computed(() => {
147
+ if (!props.src?.type) return props.src;
146
148
 
147
- // todo??
148
- watch(
149
- () => props.src,
150
- () => {
151
- setupDownload();
152
- },
153
- );
154
- // todo??
155
- watch(
156
- () => props.download,
157
- () => {
158
- setupDownload();
159
- },
160
- );
149
+ const type = handleVidstackUnsupportedAudioTypes(props.src.type);
161
150
 
162
- onMounted(() => {
163
- // this.setupPlayer();
151
+ return {
152
+ src: props.src.src,
153
+ type,
154
+ };
164
155
  });
165
156
 
166
- async function setupPlayer() {
167
- if (props.resetVolume) makeVolumeReset();
168
- if (props.download) setupDownload();
169
-
170
- if (props.closable) appendCloseIcon();
171
- emit('initialized', player.value);
157
+ // https://github.com/vidstack/player/issues/1453
158
+ function handleVidstackUnsupportedAudioTypes(mimeType: string): AudioMimeType {
159
+ const unsupportedTypes = [
160
+ 'audio/wav',
161
+ ];
162
+ return unsupportedTypes.includes(mimeType)
163
+ ? 'audio/mp3'
164
+ : (mimeType as AudioMimeType);
172
165
  }
173
166
 
174
- function makeVolumeReset() {
175
- if (player.value) {
176
- player.value.volume = 1;
177
- player.value.muted = false;
178
- }
179
- }
167
+ function downloadMedia() {
168
+ const src = typeof props.src === 'string' ? props.src : props.src?.src;
180
169
 
181
- function setupDownload() {
182
- if (!props.download) {
183
- setupPlayer();
184
- } else if (player.value) {
185
- if (typeof props.download === 'string') {
186
- player.value.download = props.download;
187
- } else if (typeof props.download === 'function') {
188
- player.value.download = props.download(props.src || '');
189
- }
190
- }
191
- }
170
+ const url =
171
+ typeof props.download === 'function' ? props.download(src) : props.download;
192
172
 
193
- function appendCloseIcon() {
194
- // Note: $refs would need to be accessed via template refs in Composition API
195
- // const plyrControls = playerRef.value?.plyr?.elements?.controls;
196
- // const closeIcon = closeIconRef.value?.$el;
197
- // if (plyrControls) {
198
- // plyrControls.append(closeIcon);
199
- // }
173
+ const ext = props.src?.type.split('/').pop();
174
+
175
+ const filename = props.id || 'unknown';
176
+
177
+ // download with [a] tag el
178
+ const link = document.createElement('a');
179
+ link.style.display = 'none';
180
+ link.href = url;
181
+ link.download = `${filename}.${ext}`;
182
+ document.body.appendChild(link);
183
+ link.click();
184
+ document.body.removeChild(link);
200
185
  }
201
186
  </script>
202
187
 
203
188
  <style scoped>
204
189
  .wt-player {
205
- bottom: 60px;
206
- }
207
-
208
- .wt-player--position-sticky {
209
- position: sticky;
210
- z-index: 2;
211
- }
212
-
213
- .wt-player--position-relative {
214
- position: relative;
215
- bottom: unset;
216
- }
217
-
218
- .wt-player--position-static {
219
- position: static;
220
- }
221
-
222
- .wt-player :deep(.plyr) {
190
+ width: auto;
191
+ max-width: 100%;
223
192
  box-shadow: var(--elevation-10);
224
193
  border-radius: var(--border-radius);
225
- max-width: 100%;
226
- }
227
-
228
- .wt-player :deep(.plyr__controls > .plyr__control),
229
- .wt-player :deep(.plyr__controls > .plyr__controls__item > .plyr__control) {
230
- padding: var(--plyr-controls-icon-padding);
231
- }
232
-
233
- .wt-player :deep(.plyr__controls > .plyr__control > svg),
234
- .wt-player :deep(.plyr__controls > .plyr__controls__item > .plyr__control > svg) {
235
- width: var(--plyr-controls-icon-size);
236
- height: var(--plyr-controls-icon-size);
194
+ background: var(--wt-popup-background-color);
195
+ z-index: 2;
237
196
  }
238
197
 
239
- .wt-player :deep(.plyr__control--overlaid svg) {
240
- left: 0;
241
- /* reset plyr style for video "play" button icon */
198
+ .controls-group {
199
+ padding: var(--spacing-sm);
200
+ width: 100%;
201
+ display: flex;
202
+ justify-content: center;
203
+ align-self: center;
204
+ gap: var(--spacing-sm);
242
205
  }
243
206
 
244
- .wt-player :deep(.plyr__progress input),
245
- .wt-player :deep(.plyr__volume input) {
207
+ .close-button,
208
+ .download-button {
209
+ display: flex;
210
+ align-items: center;
246
211
  cursor: pointer;
247
212
  }
248
213
 
249
- .wt-player :deep(.plyr__progress__buffer) {
250
- background: var(--wt-player-audio-progress-background);
214
+ .wt-player--position-fixed {
215
+ position: fixed;
251
216
  }
252
217
 
253
- .wt-player :deep(.plyr__progress input)::-webkit-slider-thumb,
254
- .wt-player :deep(.plyr__volume input)::-webkit-slider-thumb {
255
- -webkit-appearance: none;
256
- transition: var(--transition);
257
- border: var(--wt-slider-border);
258
- border-radius: var(--wt-slider-pointer-radius);
259
- background: var(--wt-slider-pointer-background-color);
260
- }
261
-
262
- .wt-player :deep(.plyr__progress input)::-webkit-slider-runnable-track,
263
- .wt-player :deep(.plyr__volume input)::-webkit-slider-runnable-track {
264
- -webkit-appearance: none;
265
- }
266
-
267
- .wt-player :deep(.plyr__progress input)::-moz-range-thumb,
268
- .wt-player :deep(.plyr__volume input)::-moz-range-thumb {
269
- -moz-appearance: none;
270
- transition: var(--transition);
271
- border: var(--wt-slider-border);
272
- border-color: var(--wt-slider-pointer-border-color);
273
- border-radius: var(--wt-slider-pointer-radius);
274
- background: var(--wt-slider-pointer-background-color);
275
- width: var(--wt-slider-pointer-size);
276
- height: var(--wt-slider-pointer-size);
277
- }
278
-
279
- .wt-player :deep(.plyr__progress input)::-moz-range-track,
280
- .wt-player :deep(.plyr__volume input)::-moz-range-track {
281
- -moz-appearance: none;
218
+ .wt-player--position-sticky {
219
+ position: sticky;
282
220
  }
283
221
 
284
- .wt-player :deep(.plyr__progress input)::-ms-thumb,
285
- .wt-player :deep(.plyr__volume input)::-ms-thumb {
286
- appearance: none;
222
+ .wt-player--position-relative {
223
+ position: relative;
287
224
  }
288
225
 
289
- .wt-player :deep(.plyr__progress input)::-ms-track,
290
- .wt-player :deep(.plyr__volume input)::-ms-track {
291
- appearance: none;
226
+ .wt-player--position-static {
227
+ position: static;
292
228
  }
293
229
  </style>
@@ -4,7 +4,10 @@
4
4
  </media-time-slider>
5
5
  </template>
6
6
 
7
- <script lang="ts" setup>
7
+ <script
8
+ lang="ts"
9
+ setup
10
+ >
8
11
  import WtSlider from '../../../../../../../components/wt-slider/wt-slider.vue';
9
12
  </script>
10
13
 
@@ -29,12 +32,12 @@ import WtSlider from '../../../../../../../components/wt-slider/wt-slider.vue';
29
32
  }
30
33
 
31
34
  .time-slider:deep(.p-slider-range) {
32
- /* set vidstach slider variable to primeview component @author liza-pohrsnichna */
35
+ /* set vidstach slider variable to primevue component @author liza-pohrsnichna */
33
36
  width: var(--slider-fill, 0%) !important;
34
37
  }
35
38
 
36
39
  .time-slider:deep(.p-slider-handle) {
37
- /*set vidstach slider variable to primeview component @author liza-pohrsnichna */
40
+ /*set vidstach slider variable to primevue component @author liza-pohrsnichna */
38
41
  transition: transform ease var(--transition);
39
42
  inset-inline-start: var(--slider-fill, 0%) !important;
40
43
  }
@@ -6,7 +6,8 @@
6
6
  </div>
7
7
  </template>
8
8
 
9
- <style scoped>.time-group {
9
+ <style scoped>
10
+ .time-group {
10
11
  font-family: 'Montserrat', monospace;
11
12
  font-size: 12px;
12
13
  font-weight: 400;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -1,10 +1,16 @@
1
1
  import 'vidstack/bundle';
2
+ import type { MediaSrc } from 'vidstack';
2
3
  interface Props {
3
4
  /**
4
- * Media source URL
5
+ * vidstack media src
6
+ * @type {MediaSrc}
7
+ */
8
+ src?: MediaSrc;
9
+ /**
10
+ * Media id
5
11
  * @type {string}
6
12
  */
7
- src?: string;
13
+ id?: string;
8
14
  /**
9
15
  * Autoplay media on load
10
16
  * @type {boolean}
@@ -1,134 +0,0 @@
1
- import { defineComponent as y, computed as m, watch as r, onMounted as w, createElementBlock as v, openBlock as B, normalizeClass as g, createElementVNode as s, createVNode as o } from "vue";
2
- import { E as e, _ as x } from "./install-oaxyJuzb.js";
3
- const V = ["src", "loop", "autoplay"], _ = ["controls", "download"], b = /* @__PURE__ */ y({
4
- __name: "wt-player",
5
- props: {
6
- src: {},
7
- autoplay: { type: Boolean, default: !0 },
8
- loop: { type: Boolean, default: !1 },
9
- hideDuration: { type: Boolean, default: !1 },
10
- download: { type: [String, Function, Boolean], default: () => (t) => t.replace("/stream", "/download") },
11
- resetOnEnd: { type: Boolean, default: !1 },
12
- invertTime: { type: Boolean, default: !0 },
13
- resetVolume: { type: Boolean, default: !1 },
14
- closable: { type: Boolean, default: !0 },
15
- position: { default: "sticky" }
16
- },
17
- emits: ["initialized", "close"],
18
- setup(t, { emit: c }) {
19
- const l = t, p = c, d = m(() => {
20
- let n = [
21
- "play",
22
- "progress",
23
- "mute+volume",
24
- "download",
25
- "fullscreen",
26
- "settings"
27
- ];
28
- return l.hideDuration && (n = n.filter((a) => a !== "duration")), l.download || (n = n.filter((a) => a !== "download")), n;
29
- });
30
- r(
31
- () => l.src,
32
- () => {
33
- i();
34
- }
35
- ), r(
36
- () => l.download,
37
- () => {
38
- i();
39
- }
40
- ), w(() => {
41
- });
42
- async function u() {
43
- l.resetVolume && f(), l.download && i(), l.closable, p("initialized", player.value);
44
- }
45
- function f() {
46
- player.value && (player.value.volume = 1, player.value.muted = !1);
47
- }
48
- function i() {
49
- l.download ? player.value && (typeof l.download == "string" ? player.value.download = l.download : typeof l.download == "function" && (player.value.download = l.download(l.src || ""))) : u();
50
- }
51
- return (n, a) => (B(), v("media-player", {
52
- ref: "player",
53
- class: g(["wt-player", `wt-player--position-${t.position}`]),
54
- src: t.src,
55
- loop: t.loop,
56
- autoplay: t.autoplay
57
- }, [
58
- a[0] || (a[0] = s("media-provider", null, null, -1)),
59
- s("media-plyr-layout", {
60
- controls: d.value,
61
- download: t.download,
62
- "custom-icons": ""
63
- }, [
64
- o(e, {
65
- icon: "plyr-airplay",
66
- slot: "airplay-icon"
67
- }),
68
- o(e, {
69
- icon: "plyr-captions-off",
70
- slot: "captions-off-icon"
71
- }),
72
- o(e, {
73
- icon: "plyr-captions-on",
74
- slot: "captions-on-icon"
75
- }),
76
- o(e, {
77
- icon: "plyr-download",
78
- slot: "download-icon"
79
- }),
80
- o(e, {
81
- icon: "plyr-enter-fullscreen",
82
- slot: "enter-fullscreen-icon"
83
- }),
84
- o(e, {
85
- icon: "plyr-pip",
86
- slot: "enter-pip-icon"
87
- }),
88
- o(e, {
89
- icon: "plyr-exit-fullscreen",
90
- slot: "exit-fullscreen-icon"
91
- }),
92
- o(e, {
93
- icon: "plyr-pip",
94
- slot: "exit-pip-icon"
95
- }),
96
- o(e, {
97
- icon: "plyr-fast-forward",
98
- slot: "fast-forward-icon"
99
- }),
100
- o(e, {
101
- icon: "plyr-muted",
102
- slot: "muted-icon"
103
- }),
104
- o(e, {
105
- icon: "plyr-pause",
106
- slot: "pause-icon"
107
- }),
108
- o(e, {
109
- icon: "plyr-play",
110
- slot: "play-icon"
111
- }),
112
- o(e, {
113
- icon: "plyr-restart",
114
- slot: "restart-icon"
115
- }),
116
- o(e, {
117
- icon: "plyr-rewind",
118
- slot: "rewind-icon"
119
- }),
120
- o(e, {
121
- icon: "plyr-settings",
122
- slot: "settings-icon"
123
- }),
124
- o(e, {
125
- icon: "plyr-volume",
126
- slot: "volume-icon"
127
- })
128
- ], 8, _)
129
- ], 10, V));
130
- }
131
- }), E = /* @__PURE__ */ x(b, [["__scopeId", "data-v-0789b80f"]]);
132
- export {
133
- E as default
134
- };