@webitel/ui-sdk 26.2.115 → 26.2.116

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-CuI363fm.js} +1 -1
  2. package/dist/{index-fuTf2dMU.js → index-DKRrRPZR.js} +1 -1
  3. package/dist/{install-oaxyJuzb.js → install-aul4l1US.js} +36 -36
  4. package/dist/{isObject-DApJLItD.js → isObject-C1XF4VII.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-C7fRwbNb.js} +2 -2
  9. package/dist/{vidstack-D2pY00kU-kmkAc5iq.js → vidstack-D2pY00kU-C92tmjYU.js} +2 -2
  10. package/dist/{vidstack-DDXt6fpN-BDXHoWfA.js → vidstack-DDXt6fpN-Cx73h6VX.js} +1 -1
  11. package/dist/{vidstack-D_-9AA6_-BY6PdB7k.js → vidstack-D_-9AA6_-DAZZi1Pp.js} +1 -1
  12. package/dist/{vidstack-DqAw8m9J-B-A1fMjZ.js → vidstack-DqAw8m9J-D5nlWT2j.js} +1 -1
  13. package/dist/{vidstack-audio-DNWZXBiG.js → vidstack-audio-e6INg1pv.js} +2 -2
  14. package/dist/{vidstack-dash-fxUAiNxL.js → vidstack-dash-a9bI_8VU.js} +3 -3
  15. package/dist/{vidstack-google-cast-B_GkOx7C.js → vidstack-google-cast-CN0jaKMY.js} +3 -3
  16. package/dist/{vidstack-hls-BDoCXLGS.js → vidstack-hls-jIa51tZW.js} +3 -3
  17. package/dist/{vidstack-video-CnEJWJBm.js → vidstack-video-DQwuGCj8.js} +2 -2
  18. package/dist/{vidstack-vimeo-CkW2M6pH.js → vidstack-vimeo-DWTJ2CiS.js} +3 -3
  19. package/dist/{vidstack-youtube-COxHxfHB.js → vidstack-youtube-C-A8lqXF.js} +2 -2
  20. package/dist/{wt-action-bar-CelN5cph.js → wt-action-bar-CY000cMU.js} +1 -1
  21. package/dist/{wt-button-select-BT40HkxV.js → wt-button-select-ByZ4ASXz.js} +1 -1
  22. package/dist/{wt-chat-emoji-DROOc6bl.js → wt-chat-emoji-CZ2zg8SH.js} +2 -2
  23. package/dist/{wt-confirm-dialog-CN4LDnWw.js → wt-confirm-dialog-DOsr5AtN.js} +1 -1
  24. package/dist/{wt-context-menu-DDEdTwmo.js → wt-context-menu-bkCL_jNj.js} +1 -1
  25. package/dist/{wt-copy-action-BxrmG1PF.js → wt-copy-action-DizoR1HY.js} +1 -1
  26. package/dist/{wt-datepicker-VPrJ2zIK.js → wt-datepicker-bRab5JPz.js} +1 -1
  27. package/dist/{wt-display-chip-items-Dp6aUwP7.js → wt-display-chip-items-Bei7XsXi.js} +1 -1
  28. package/dist/{wt-dual-panel-DZ7yGaM_.js → wt-dual-panel-D8MCdAbc.js} +1 -1
  29. package/dist/{wt-dummy-Dn7tHpr7.js → wt-dummy-BueKEe2P.js} +1 -1
  30. package/dist/{wt-error-page-Bgkn7Kk3.js → wt-error-page-Cbu1HWrh.js} +1 -1
  31. package/dist/{wt-expansion-card-LonwOu2T.js → wt-expansion-card-BQLZk3Qy.js} +1 -1
  32. package/dist/{wt-expansion-panel-DPz0bAba.js → wt-expansion-panel-Qt0-JMuE.js} +1 -1
  33. package/dist/{wt-filters-panel-wrapper-CxOraVEI.js → wt-filters-panel-wrapper-h7-DcF5W.js} +1 -1
  34. package/dist/{wt-galleria-BbFrD78g.js → wt-galleria-BuXQPRWy.js} +1 -1
  35. package/dist/{wt-navigation-menu-0XBga4Sm.js → wt-navigation-menu-Dxnt12AA.js} +1 -1
  36. package/dist/{wt-notifications-bar-Cgqo668H.js → wt-notifications-bar-BNS24GyB.js} +2 -2
  37. package/dist/{wt-page-header-BC9WlWm2.js → wt-page-header-DqYA9ZDv.js} +1 -1
  38. package/dist/{wt-pagination-D2lSnVYF.js → wt-pagination-D70dTy6_.js} +1 -1
  39. package/dist/wt-player-C5DFSXf7.js +130 -0
  40. package/dist/{wt-search-bar-DqGX3Ty2.js → wt-search-bar-CUHIrqhp.js} +1 -1
  41. package/dist/{wt-selection-popup-DuNVRHnI.js → wt-selection-popup-C9qYIDxV.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-CcT_USVI.js} +1 -1
  45. package/dist/{wt-status-select-DJeBGbhm.js → wt-status-select-ByeSu2w_.js} +1 -1
  46. package/dist/{wt-stepper--f9yXRnp.js → wt-stepper-BxUv3RFE.js} +1 -1
  47. package/dist/{wt-table-DAqH0enN.js → wt-table-DMA4gouK.js} +1 -1
  48. package/dist/{wt-table-actions-D_ke_oEf.js → wt-table-actions-CrBwlbUq.js} +1 -1
  49. package/dist/{wt-table-column-select-TmGCmp8y.js → wt-table-column-select-3ko3ycXD.js} +2 -2
  50. package/dist/{wt-tabs-DfWXJZcJ.js → wt-tabs-B0g2gZsn.js} +1 -1
  51. package/dist/{wt-tags-input-DwSHG_hj.js → wt-tags-input-BAe0rlRI.js} +2 -2
  52. package/dist/{wt-timepicker-CPORh3XF.js → wt-timepicker-B957Jyse.js} +1 -1
  53. package/dist/{wt-tree-table-DbM4mARe.js → wt-tree-table-CF-Q4-bl.js} +1 -1
  54. package/dist/{wt-tree-AIg73-16.js → wt-tree-vBnWfkCz.js} +2 -2
  55. package/dist/{wt-type-extension-value-input-Dghs56WS.js → wt-type-extension-value-input-C2MRymmT.js} +2 -2
  56. package/dist/{wt-vidstack-player-eM0NjopU.js → wt-vidstack-player-Ck6iIfhH.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 +83 -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>
@@ -7,29 +7,34 @@
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 icon="plyr-download" size="sm" />
27
+ </media-button>
28
+
29
+ <media-button
30
+ v-if="props.closable"
31
+ class="close-button"
32
+ @click="$emit('close')"
33
+ >
34
+ <wt-icon-btn icon="close" size="sm" />
35
+ </media-button>
36
+
37
+ </media-controls-group>
33
38
  </media-player>
34
39
  </template>
35
40
 
@@ -38,18 +43,27 @@
38
43
  lang="ts"
39
44
  >
40
45
  import 'vidstack/bundle';
41
-
42
- import type { PlyrControl } from 'vidstack';
46
+ import type { MediaSrc, PlyrControl } from 'vidstack';
43
47
  import { computed, onMounted, watch } from 'vue';
44
48
 
45
49
  import WtIcon from '../wt-icon/wt-icon.vue';
50
+ import TimeGroup from '../wt-vidstack-player/components/panels/media-controls-panel/components/time-group.vue';
51
+ import MuteButton from './src/components/buttons/mute-button.vue';
52
+ import PlayButton from './src/components/buttons/play-button.vue';
53
+ import TimeSlider from './src/components/sliders/time-slider.vue';
54
+ import VolumeSlide from './src/components/sliders/volume-slide.vue';
46
55
 
47
56
  interface Props {
48
57
  /**
49
- * Media source URL
58
+ * vidstack media src
59
+ * @type {MediaSrc}
60
+ */
61
+ src?: MediaSrc;
62
+ /**
63
+ * Media id
50
64
  * @type {string}
51
65
  */
52
- src?: string;
66
+ id?: string;
53
67
  /**
54
68
  * Autoplay media on load
55
69
  * @type {boolean}
@@ -120,174 +134,75 @@ const props = withDefaults(defineProps<Props>(), {
120
134
 
121
135
  const emit = defineEmits<{
122
136
  initialized: []; // todo
123
- close: []; // todo
137
+ close: [];
124
138
  }>();
125
139
 
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
-
147
- // todo??
148
- watch(
149
- () => props.src,
150
- () => {
151
- setupDownload();
152
- },
153
- );
154
- // todo??
155
- watch(
156
- () => props.download,
157
- () => {
158
- setupDownload();
159
- },
160
- );
161
-
162
140
  onMounted(() => {
163
141
  // this.setupPlayer();
164
142
  });
165
143
 
166
- async function setupPlayer() {
167
- if (props.resetVolume) makeVolumeReset();
168
- if (props.download) setupDownload();
144
+ function downloadMedia() {
145
+ const src = typeof props.src === 'string' ? props.src : props.src?.src;
169
146
 
170
- if (props.closable) appendCloseIcon();
171
- emit('initialized', player.value);
172
- }
147
+ const url =
148
+ typeof props.download === 'function' ? props.download(src) : props.download;
173
149
 
174
- function makeVolumeReset() {
175
- if (player.value) {
176
- player.value.volume = 1;
177
- player.value.muted = false;
178
- }
179
- }
150
+ const ext = props.src?.type.split('/').pop();
180
151
 
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
- }
152
+ const filename = props.id || 'unknown';
192
153
 
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
- // }
154
+ // download with [a] tag el
155
+ const link = document.createElement('a');
156
+ link.style.display = 'none';
157
+ link.href = url;
158
+ link.download = `${filename}.${ext}`;
159
+ document.body.appendChild(link);
160
+ link.click();
161
+ document.body.removeChild(link);
200
162
  }
201
163
  </script>
202
164
 
203
165
  <style scoped>
204
- .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) {
223
- box-shadow: var(--elevation-10);
224
- 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);
237
- }
238
166
 
239
- .wt-player :deep(.plyr__control--overlaid svg) {
240
- left: 0;
241
- /* reset plyr style for video "play" button icon */
242
- }
243
-
244
- .wt-player :deep(.plyr__progress input),
245
- .wt-player :deep(.plyr__volume input) {
246
- cursor: pointer;
167
+ .wt-player {
168
+ width: auto;
169
+ max-width: 100%;
170
+ box-shadow: var(--elevation-10);
171
+ border-radius: var(--border-radius);
172
+ background: var(--wt-popup-background-color);
173
+ z-index: 2;
247
174
  }
248
175
 
249
- .wt-player :deep(.plyr__progress__buffer) {
250
- background: var(--wt-player-audio-progress-background);
176
+ .controls-group {
177
+ padding: var(--spacing-sm);
178
+ width: 100%;
179
+ display: flex;
180
+ justify-content: center;
181
+ align-self: center;
182
+ gap: var(--spacing-sm);
251
183
  }
252
184
 
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);
185
+ .close-button,
186
+ .download-button {
187
+ display: flex;
188
+ align-items: center;
189
+ cursor: pointer;
260
190
  }
261
191
 
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;
192
+ .wt-player--position-fixed {
193
+ position: fixed;
265
194
  }
266
195
 
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);
196
+ .wt-player--position-sticky {
197
+ position: sticky;
277
198
  }
278
199
 
279
- .wt-player :deep(.plyr__progress input)::-moz-range-track,
280
- .wt-player :deep(.plyr__volume input)::-moz-range-track {
281
- -moz-appearance: none;
200
+ .wt-player--position-relative {
201
+ position: relative;
282
202
  }
283
203
 
284
- .wt-player :deep(.plyr__progress input)::-ms-thumb,
285
- .wt-player :deep(.plyr__volume input)::-ms-thumb {
286
- appearance: none;
204
+ .wt-player--position-static {
205
+ position: static;
287
206
  }
288
207
 
289
- .wt-player :deep(.plyr__progress input)::-ms-track,
290
- .wt-player :deep(.plyr__volume input)::-ms-track {
291
- appearance: none;
292
- }
293
208
  </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
- };