@vonage/vivid 4.25.0 → 4.27.0
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/custom-elements.json +3371 -1999
- package/lib/accordion-item/accordion-item.d.ts +2 -2
- package/lib/action-group/action-group.d.ts +1 -1
- package/lib/alert/alert.d.ts +5 -5
- package/lib/audio-player/audio-player.d.ts +3 -3
- package/lib/avatar/avatar.d.ts +393 -1
- package/lib/avatar/avatar.template.d.ts +2 -2
- package/lib/badge/badge.d.ts +2 -2
- package/lib/banner/banner.d.ts +6 -6
- package/lib/breadcrumb/breadcrumb.d.ts +1 -1
- package/lib/breadcrumb-item/breadcrumb-item.d.ts +1 -1
- package/lib/button/button.d.ts +6 -6
- package/lib/calendar/calendar.d.ts +2 -0
- package/lib/calendar-event/calendar-event.d.ts +1 -1
- package/lib/card/card.d.ts +1 -1
- package/lib/checkbox/checkbox.d.ts +10 -10
- package/lib/combobox/combobox.d.ts +11 -11
- package/lib/data-grid/data-grid-cell.d.ts +6 -4
- package/lib/data-grid/data-grid-row.d.ts +1 -0
- package/lib/data-grid/data-grid.d.ts +1 -1
- package/lib/date-picker/date-picker.d.ts +75 -75
- package/lib/date-picker/date-picker.template.d.ts +1 -1
- package/lib/date-range-picker/date-range-picker.d.ts +44 -44
- package/lib/date-range-picker/date-range-picker.template.d.ts +1 -1
- package/lib/date-time-picker/date-time-picker.d.ts +64 -64
- package/lib/date-time-picker/date-time-picker.template.d.ts +1 -1
- package/lib/dial-pad/dial-pad.d.ts +3 -3
- package/lib/dialog/dialog.d.ts +5 -4
- package/lib/divider/divider.d.ts +1 -1
- package/lib/fab/fab.d.ts +2 -2
- package/lib/file-picker/file-picker.d.ts +10 -10
- package/lib/header/header.d.ts +1 -1
- package/lib/menu/menu.d.ts +2 -2
- package/lib/menu-item/menu-item.d.ts +3 -3
- package/lib/nav/nav.d.ts +1 -1
- package/lib/nav-disclosure/nav-disclosure.d.ts +3 -3
- package/lib/nav-item/nav-item.d.ts +3 -3
- package/lib/note/note.d.ts +2 -2
- package/lib/number-field/locale.d.ts +3 -2
- package/lib/number-field/number-field.d.ts +15 -15
- package/lib/option/option.d.ts +3 -3
- package/lib/pagination/locale.d.ts +5 -0
- package/lib/pagination/pagination.d.ts +341 -2
- package/lib/popup/popup.d.ts +1 -0
- package/lib/progress/progress.d.ts +1 -1
- package/lib/progress-ring/progress-ring.d.ts +1 -1
- package/lib/radio/radio.d.ts +3 -3
- package/lib/radio-group/radio-group.d.ts +4 -4
- package/lib/range-slider/range-slider.d.ts +5 -5
- package/lib/rich-text-editor/menubar/menubar.d.ts +3 -3
- package/lib/rich-text-editor/rich-text-editor.d.ts +3 -3
- package/lib/searchable-select/locale.d.ts +1 -1
- package/lib/searchable-select/option-tag.d.ts +3 -3
- package/lib/searchable-select/searchable-select.d.ts +15 -15
- package/lib/select/select.d.ts +12 -12
- package/lib/selectable-box/selectable-box.d.ts +1 -1
- package/lib/slider/slider.d.ts +5 -5
- package/lib/split-button/split-button.d.ts +6 -6
- package/lib/switch/switch.d.ts +2 -2
- package/lib/tab/tab.d.ts +6 -6
- package/lib/tab-panel/tab-panel.d.ts +1 -1
- package/lib/tag/locale.d.ts +3 -0
- package/lib/tag/tag.d.ts +343 -6
- package/lib/tag-group/tag-group.d.ts +1 -1
- package/lib/text-area/text-area.d.ts +14 -14
- package/lib/text-field/text-field.d.ts +16 -16
- package/lib/time-picker/time-picker.d.ts +21 -21
- package/lib/toggletip/toggletip.d.ts +1 -1
- package/lib/tooltip/tooltip.d.ts +1 -1
- package/lib/tree-item/tree-item.d.ts +3 -3
- package/lib/tree-view/tree-view.d.ts +1 -1
- package/lib/video-player/video-player.d.ts +3 -3
- package/locales/de-DE.cjs +40 -5
- package/locales/de-DE.js +40 -5
- package/locales/en-GB.cjs +40 -5
- package/locales/en-GB.js +40 -5
- package/locales/en-US.cjs +40 -5
- package/locales/en-US.js +40 -5
- package/locales/ja-JP.cjs +40 -5
- package/locales/ja-JP.js +40 -5
- package/locales/zh-CN.cjs +40 -5
- package/locales/zh-CN.js +40 -5
- package/package.json +73 -45
- package/shared/aria/delegates-aria.d.ts +1 -1
- package/shared/aria/host-semantics.d.ts +1 -1
- package/shared/calendar-picker.template.cjs +40 -13
- package/shared/calendar-picker.template.js +40 -13
- package/shared/definition.cjs +19 -3
- package/shared/definition.js +20 -4
- package/shared/definition11.cjs +1 -1
- package/shared/definition11.js +1 -1
- package/shared/definition13.cjs +25 -0
- package/shared/definition13.js +26 -1
- package/shared/definition15.cjs +1 -1
- package/shared/definition15.js +1 -1
- package/shared/definition16.cjs +1 -1
- package/shared/definition16.js +1 -1
- package/shared/definition17.cjs +602 -522
- package/shared/definition17.js +600 -520
- package/shared/definition18.cjs +8 -1
- package/shared/definition18.js +8 -1
- package/shared/definition19.cjs +9 -2
- package/shared/definition19.js +9 -2
- package/shared/definition2.cjs +1 -1
- package/shared/definition2.js +1 -1
- package/shared/definition20.cjs +3 -1
- package/shared/definition20.js +3 -1
- package/shared/definition21.cjs +2 -2
- package/shared/definition21.js +2 -2
- package/shared/definition22.cjs +9 -3
- package/shared/definition22.js +9 -3
- package/shared/definition28.cjs +2 -2
- package/shared/definition28.js +2 -2
- package/shared/definition3.cjs +1 -1
- package/shared/definition3.js +1 -1
- package/shared/definition30.cjs +1 -1
- package/shared/definition30.js +1 -1
- package/shared/definition31.cjs +1 -1
- package/shared/definition31.js +1 -1
- package/shared/definition32.cjs +1 -1
- package/shared/definition32.js +1 -1
- package/shared/definition36.cjs +41 -30
- package/shared/definition36.js +34 -23
- package/shared/definition38.cjs +30 -23
- package/shared/definition38.js +30 -23
- package/shared/definition4.cjs +1 -1
- package/shared/definition4.js +1 -1
- package/shared/definition41.cjs +1 -1
- package/shared/definition41.js +1 -1
- package/shared/definition42.cjs +2 -2
- package/shared/definition42.js +2 -2
- package/shared/definition44.cjs +129 -117
- package/shared/definition44.js +130 -118
- package/shared/definition45.cjs +17 -7
- package/shared/definition45.js +17 -7
- package/shared/definition46.cjs +1 -1
- package/shared/definition46.js +1 -1
- package/shared/definition49.cjs +6 -6
- package/shared/definition49.js +6 -6
- package/shared/definition54.cjs +2 -2
- package/shared/definition54.js +2 -2
- package/shared/definition56.cjs +5 -4
- package/shared/definition56.js +5 -4
- package/shared/definition57.cjs +1 -1
- package/shared/definition57.js +1 -1
- package/shared/definition58.cjs +1 -1
- package/shared/definition58.js +1 -1
- package/shared/definition59.cjs +3 -1
- package/shared/definition59.js +3 -1
- package/shared/definition6.cjs +45 -12
- package/shared/definition6.js +45 -12
- package/shared/definition63.cjs +2 -2
- package/shared/definition63.js +2 -2
- package/shared/definition64.cjs +136 -38
- package/shared/definition64.js +136 -38
- package/shared/definition67.cjs +36 -15
- package/shared/definition67.js +37 -16
- package/shared/feedback/feedback-message.d.ts +1 -1
- package/shared/feedback/mixins.d.ts +2 -2
- package/shared/form-associated.cjs +4 -0
- package/shared/form-associated.js +4 -0
- package/shared/foundation/button/button.d.ts +1 -1
- package/shared/foundation/vivid-element/vivid-element.d.ts +2 -0
- package/shared/key-codes.js +1 -1
- package/shared/localization/Locale.d.ts +4 -0
- package/shared/mixins.cjs +4 -1
- package/shared/mixins.js +4 -1
- package/shared/patterns/affix.d.ts +2 -2
- package/shared/patterns/char-count/char-count.d.ts +1 -1
- package/shared/patterns/form-elements/with-success-text.d.ts +1 -1
- package/shared/patterns/linkable.d.ts +1 -1
- package/shared/patterns/localized.d.ts +1 -1
- package/shared/patterns/trapped-focus.d.ts +1 -1
- package/shared/picker-field/mixins/calendar-picker.d.ts +2 -2
- package/shared/picker-field/mixins/calendar-picker.locale.d.ts +5 -0
- package/shared/picker-field/mixins/calendar-picker.template.d.ts +2 -2
- package/shared/picker-field/mixins/calendar-segments/segment.d.ts +1 -0
- package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +1 -1
- package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +4 -4
- package/shared/picker-field/mixins/single-date-picker.d.ts +4 -4
- package/shared/picker-field/mixins/single-value-picker.d.ts +1 -1
- package/shared/picker-field/mixins/time-selection-picker.d.ts +2 -2
- package/shared/picker-field/mixins/time-selection-picker.template.d.ts +2 -2
- package/shared/picker-field/picker-field.d.ts +3 -3
- package/shared/picker-field.template.cjs +13 -13
- package/shared/picker-field.template.js +13 -13
- package/shared/vivid-element.cjs +11 -1
- package/shared/vivid-element.js +11 -1
- package/styles/core/all.css +5 -5
- package/styles/core/theme.css +2 -2
- package/styles/core/typography.css +4 -4
- package/styles/fonts/spezia-variable.css +15 -15
- package/styles/tokens/theme-dark.css +4 -4
- package/styles/tokens/theme-light.css +4 -4
- package/styles/tokens/vivid-2-compat.css +1 -1
- package/vivid.api.json +395 -277
package/shared/definition64.cjs
CHANGED
|
@@ -13780,7 +13780,7 @@ var clock = {
|
|
|
13780
13780
|
|
|
13781
13781
|
/**
|
|
13782
13782
|
* @license
|
|
13783
|
-
* Video.js 8.
|
|
13783
|
+
* Video.js 8.23.3 <http://videojs.com/>
|
|
13784
13784
|
* Copyright Brightcove, Inc. <https://www.brightcove.com/>
|
|
13785
13785
|
* Available under Apache License Version 2.0
|
|
13786
13786
|
* <https://github.com/videojs/video.js/blob/main/LICENSE>
|
|
@@ -13791,7 +13791,7 @@ var clock = {
|
|
|
13791
13791
|
*/
|
|
13792
13792
|
|
|
13793
13793
|
|
|
13794
|
-
var version$6 = "8.
|
|
13794
|
+
var version$6 = "8.23.3";
|
|
13795
13795
|
|
|
13796
13796
|
/**
|
|
13797
13797
|
* An Object that contains lifecycle hooks as keys which point to an array
|
|
@@ -19728,7 +19728,7 @@ function silencePromise(value) {
|
|
|
19728
19728
|
* A serializable javascript representation of the TextTrack.
|
|
19729
19729
|
* @private
|
|
19730
19730
|
*/
|
|
19731
|
-
const
|
|
19731
|
+
const trackToJson = function (track) {
|
|
19732
19732
|
const ret = ['kind', 'label', 'language', 'id', 'inBandMetadataTrackDispatchType', 'mode', 'src'].reduce((acc, prop, i) => {
|
|
19733
19733
|
if (track[prop]) {
|
|
19734
19734
|
acc[prop] = track[prop];
|
|
@@ -19763,7 +19763,7 @@ const textTracksToJson = function (tech) {
|
|
|
19763
19763
|
const trackEls = tech.$$('track');
|
|
19764
19764
|
const trackObjs = Array.prototype.map.call(trackEls, t => t.track);
|
|
19765
19765
|
const tracks = Array.prototype.map.call(trackEls, function (trackEl) {
|
|
19766
|
-
const json =
|
|
19766
|
+
const json = trackToJson(trackEl.track);
|
|
19767
19767
|
if (trackEl.src) {
|
|
19768
19768
|
json.src = trackEl.src;
|
|
19769
19769
|
}
|
|
@@ -19771,7 +19771,7 @@ const textTracksToJson = function (tech) {
|
|
|
19771
19771
|
});
|
|
19772
19772
|
return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function (track) {
|
|
19773
19773
|
return trackObjs.indexOf(track) === -1;
|
|
19774
|
-
}).map(
|
|
19774
|
+
}).map(trackToJson));
|
|
19775
19775
|
};
|
|
19776
19776
|
|
|
19777
19777
|
/**
|
|
@@ -19797,7 +19797,7 @@ const jsonToTextTracks = function (json, tech) {
|
|
|
19797
19797
|
var textTrackConverter = {
|
|
19798
19798
|
textTracksToJson,
|
|
19799
19799
|
jsonToTextTracks,
|
|
19800
|
-
|
|
19800
|
+
trackToJson
|
|
19801
19801
|
};
|
|
19802
19802
|
|
|
19803
19803
|
/**
|
|
@@ -20761,6 +20761,16 @@ class TextTrackList extends TrackList {
|
|
|
20761
20761
|
}
|
|
20762
20762
|
}
|
|
20763
20763
|
}
|
|
20764
|
+
|
|
20765
|
+
/**
|
|
20766
|
+
* Creates a serializable array of objects that contains serialized copies
|
|
20767
|
+
* of each text track.
|
|
20768
|
+
*
|
|
20769
|
+
* @return {Object[]} A serializable list of objects for the text track list
|
|
20770
|
+
*/
|
|
20771
|
+
toJSON() {
|
|
20772
|
+
return this.tracks_.map(track => track.toJSON());
|
|
20773
|
+
}
|
|
20764
20774
|
}
|
|
20765
20775
|
|
|
20766
20776
|
/**
|
|
@@ -21194,11 +21204,9 @@ const getAbsoluteURL = function (url) {
|
|
|
21194
21204
|
*/
|
|
21195
21205
|
const getFileExtension = function (path) {
|
|
21196
21206
|
if (typeof path === 'string') {
|
|
21197
|
-
const
|
|
21198
|
-
const
|
|
21199
|
-
|
|
21200
|
-
return pathParts.pop().toLowerCase();
|
|
21201
|
-
}
|
|
21207
|
+
const cleanPath = path.split('?')[0].replace(/\/+$/, '');
|
|
21208
|
+
const match = cleanPath.match(/\.([^.\/]+)$/);
|
|
21209
|
+
return match ? match[1].toLowerCase() : '';
|
|
21202
21210
|
}
|
|
21203
21211
|
return '';
|
|
21204
21212
|
};
|
|
@@ -21589,6 +21597,16 @@ class TextTrack extends Track {
|
|
|
21589
21597
|
this.cues.setCues_(this.cues_);
|
|
21590
21598
|
}
|
|
21591
21599
|
|
|
21600
|
+
/**
|
|
21601
|
+
* Creates a copy of the text track and makes it serializable
|
|
21602
|
+
* by removing circular dependencies.
|
|
21603
|
+
*
|
|
21604
|
+
* @return {Object} The track information as a serializable object
|
|
21605
|
+
*/
|
|
21606
|
+
toJSON() {
|
|
21607
|
+
return textTrackConverter.trackToJson(this);
|
|
21608
|
+
}
|
|
21609
|
+
|
|
21592
21610
|
/**
|
|
21593
21611
|
* Remove a cue from our internal list
|
|
21594
21612
|
*
|
|
@@ -25003,6 +25021,8 @@ class TextTrackDisplay extends Component$1 {
|
|
|
25003
25021
|
this.updateDisplay(e);
|
|
25004
25022
|
};
|
|
25005
25023
|
player.on('loadstart', e => this.toggleDisplay(e));
|
|
25024
|
+
player.on('useractive', updateDisplayTextHandler);
|
|
25025
|
+
player.on('userinactive', updateDisplayTextHandler);
|
|
25006
25026
|
player.on('texttrackchange', updateDisplayTextHandler);
|
|
25007
25027
|
player.on('loadedmetadata', e => {
|
|
25008
25028
|
this.updateDisplayOverlay();
|
|
@@ -25131,11 +25151,14 @@ class TextTrackDisplay extends Component$1 {
|
|
|
25131
25151
|
}
|
|
25132
25152
|
|
|
25133
25153
|
/**
|
|
25134
|
-
* Update the displayed TextTrack when
|
|
25135
|
-
* a {@link Player#fullscreenchange}
|
|
25154
|
+
* Update the displayed {@link TextTrack} when either a {@link Player#texttrackchange},
|
|
25155
|
+
* a {@link Player#fullscreenchange}, a {@link Player#useractive}, or a
|
|
25156
|
+
* {@link Player#userinactive} is fired.
|
|
25136
25157
|
*
|
|
25137
25158
|
* @listens Player#texttrackchange
|
|
25138
25159
|
* @listens Player#fullscreenchange
|
|
25160
|
+
* @listens Player#useractive
|
|
25161
|
+
* @listens Player#userinactive
|
|
25139
25162
|
*/
|
|
25140
25163
|
updateDisplay() {
|
|
25141
25164
|
const tracks = this.player_.textTracks();
|
|
@@ -25557,8 +25580,8 @@ class BigPlayButton extends Button {
|
|
|
25557
25580
|
handleClick(event) {
|
|
25558
25581
|
const playPromise = this.player_.play();
|
|
25559
25582
|
|
|
25560
|
-
// exit early if clicked via the mouse
|
|
25561
|
-
if (this.mouseused_ && 'clientX' in event && 'clientY' in event) {
|
|
25583
|
+
// exit early if tapped or clicked via the mouse
|
|
25584
|
+
if (event.type === 'tap' || this.mouseused_ && 'clientX' in event && 'clientY' in event) {
|
|
25562
25585
|
silencePromise(playPromise);
|
|
25563
25586
|
if (this.player_.tech(true)) {
|
|
25564
25587
|
this.player_.tech(true).focus();
|
|
@@ -26023,6 +26046,8 @@ class CurrentTimeDisplay extends TimeDisplay {
|
|
|
26023
26046
|
let time;
|
|
26024
26047
|
if (this.player_.ended()) {
|
|
26025
26048
|
time = this.player_.duration();
|
|
26049
|
+
} else if (event && event.target && typeof event.target.pendingSeekTime === 'function') {
|
|
26050
|
+
time = event.target.pendingSeekTime();
|
|
26026
26051
|
} else {
|
|
26027
26052
|
time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
|
|
26028
26053
|
}
|
|
@@ -26769,6 +26794,10 @@ class Slider extends Component$1 {
|
|
|
26769
26794
|
event.stopPropagation();
|
|
26770
26795
|
this.stepForward();
|
|
26771
26796
|
} else {
|
|
26797
|
+
if (this.pendingSeekTime()) {
|
|
26798
|
+
this.pendingSeekTime(null);
|
|
26799
|
+
this.userSeek_(this.player_.currentTime());
|
|
26800
|
+
}
|
|
26772
26801
|
super.handleKeyDown(event);
|
|
26773
26802
|
}
|
|
26774
26803
|
|
|
@@ -27154,13 +27183,18 @@ class PlayProgressBar extends Component$1 {
|
|
|
27154
27183
|
* @param {number} seekBarPoint
|
|
27155
27184
|
* A number from 0 to 1, representing a horizontal reference point
|
|
27156
27185
|
* from the left edge of the {@link SeekBar}
|
|
27186
|
+
*
|
|
27187
|
+
* @param {Event} [event]
|
|
27188
|
+
* The `timeupdate` event that caused this function to run.
|
|
27157
27189
|
*/
|
|
27158
|
-
update(seekBarRect, seekBarPoint) {
|
|
27190
|
+
update(seekBarRect, seekBarPoint, event) {
|
|
27159
27191
|
const timeTooltip = this.getChild('timeTooltip');
|
|
27160
27192
|
if (!timeTooltip) {
|
|
27161
27193
|
return;
|
|
27162
27194
|
}
|
|
27163
|
-
|
|
27195
|
+
|
|
27196
|
+
// Combined logic: if an event with a valid pendingSeekTime getter exists, use it.
|
|
27197
|
+
const time = event && event.target && typeof event.target.pendingSeekTime === 'function' ? event.target.pendingSeekTime() : this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
|
|
27164
27198
|
timeTooltip.updateTime(seekBarRect, seekBarPoint, time);
|
|
27165
27199
|
}
|
|
27166
27200
|
}
|
|
@@ -27279,14 +27313,14 @@ class SeekBar extends Slider {
|
|
|
27279
27313
|
|
|
27280
27314
|
// Avoid mutating the prototype's `children` array by creating a copy
|
|
27281
27315
|
options.children = [...options.children];
|
|
27282
|
-
const
|
|
27316
|
+
const shouldDisableSeekWhileScrubbing = player.options_.disableSeekWhileScrubbingOnMobile && (IS_IOS || IS_ANDROID) || player.options_.disableSeekWhileScrubbingOnSTV;
|
|
27283
27317
|
|
|
27284
27318
|
// Add the TimeTooltip as a child if we are on desktop, or on mobile with `disableSeekWhileScrubbingOnMobile: true`
|
|
27285
|
-
if (!IS_IOS && !IS_ANDROID ||
|
|
27319
|
+
if (!IS_IOS && !IS_ANDROID || shouldDisableSeekWhileScrubbing) {
|
|
27286
27320
|
options.children.splice(1, 0, 'mouseTimeDisplay');
|
|
27287
27321
|
}
|
|
27288
27322
|
super(player, options);
|
|
27289
|
-
this.
|
|
27323
|
+
this.shouldDisableSeekWhileScrubbing_ = shouldDisableSeekWhileScrubbing;
|
|
27290
27324
|
this.pendingSeekTime_ = null;
|
|
27291
27325
|
this.setEventHandlers_();
|
|
27292
27326
|
}
|
|
@@ -27403,7 +27437,7 @@ class SeekBar extends Slider {
|
|
|
27403
27437
|
|
|
27404
27438
|
// update the progress bar time tooltip with the current time
|
|
27405
27439
|
if (this.bar) {
|
|
27406
|
-
this.bar.update(getBoundingClientRect(this.el()), this.getProgress());
|
|
27440
|
+
this.bar.update(getBoundingClientRect(this.el()), this.getProgress(), event);
|
|
27407
27441
|
}
|
|
27408
27442
|
});
|
|
27409
27443
|
return percent;
|
|
@@ -27436,6 +27470,25 @@ class SeekBar extends Slider {
|
|
|
27436
27470
|
return this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
|
|
27437
27471
|
}
|
|
27438
27472
|
|
|
27473
|
+
/**
|
|
27474
|
+
* Getter and setter for pendingSeekTime.
|
|
27475
|
+
* Ensures the value is clamped between 0 and duration.
|
|
27476
|
+
*
|
|
27477
|
+
* @param {number|null} [time] - Optional. The new pending seek time, can be a number or null.
|
|
27478
|
+
* @return {number|null} - The current pending seek time.
|
|
27479
|
+
*/
|
|
27480
|
+
pendingSeekTime(time) {
|
|
27481
|
+
if (time !== undefined) {
|
|
27482
|
+
if (time !== null) {
|
|
27483
|
+
const duration = this.player_.duration();
|
|
27484
|
+
this.pendingSeekTime_ = Math.max(0, Math.min(time, duration));
|
|
27485
|
+
} else {
|
|
27486
|
+
this.pendingSeekTime_ = null;
|
|
27487
|
+
}
|
|
27488
|
+
}
|
|
27489
|
+
return this.pendingSeekTime_;
|
|
27490
|
+
}
|
|
27491
|
+
|
|
27439
27492
|
/**
|
|
27440
27493
|
* Get the percentage of media played so far.
|
|
27441
27494
|
*
|
|
@@ -27445,8 +27498,8 @@ class SeekBar extends Slider {
|
|
|
27445
27498
|
getPercent() {
|
|
27446
27499
|
// If we have a pending seek time, we are scrubbing on mobile and should set the slider percent
|
|
27447
27500
|
// to reflect the current scrub location.
|
|
27448
|
-
if (this.
|
|
27449
|
-
return this.
|
|
27501
|
+
if (this.pendingSeekTime() !== null) {
|
|
27502
|
+
return this.pendingSeekTime() / this.player_.duration();
|
|
27450
27503
|
}
|
|
27451
27504
|
const currentTime = this.getCurrentTime_();
|
|
27452
27505
|
let percent;
|
|
@@ -27483,7 +27536,7 @@ class SeekBar extends Slider {
|
|
|
27483
27536
|
|
|
27484
27537
|
// Don't pause if we are on mobile and `disableSeekWhileScrubbingOnMobile: true`.
|
|
27485
27538
|
// In that case, playback should continue while the player scrubs to a new location.
|
|
27486
|
-
if (!this.
|
|
27539
|
+
if (!this.shouldDisableSeekWhileScrubbing_) {
|
|
27487
27540
|
this.player_.pause();
|
|
27488
27541
|
}
|
|
27489
27542
|
super.handleMouseDown(event);
|
|
@@ -27544,8 +27597,8 @@ class SeekBar extends Slider {
|
|
|
27544
27597
|
}
|
|
27545
27598
|
|
|
27546
27599
|
// if on mobile and `disableSeekWhileScrubbingOnMobile: true`, keep track of the desired seek point but we won't initiate the seek until 'touchend'
|
|
27547
|
-
if (this.
|
|
27548
|
-
this.
|
|
27600
|
+
if (this.shouldDisableSeekWhileScrubbing_) {
|
|
27601
|
+
this.pendingSeekTime(newTime);
|
|
27549
27602
|
} else {
|
|
27550
27603
|
this.userSeek_(newTime);
|
|
27551
27604
|
}
|
|
@@ -27588,9 +27641,9 @@ class SeekBar extends Slider {
|
|
|
27588
27641
|
this.player_.scrubbing(false);
|
|
27589
27642
|
|
|
27590
27643
|
// If we have a pending seek time, then we have finished scrubbing on mobile and should initiate a seek.
|
|
27591
|
-
if (this.
|
|
27592
|
-
this.userSeek_(this.
|
|
27593
|
-
this.
|
|
27644
|
+
if (this.pendingSeekTime() !== null) {
|
|
27645
|
+
this.userSeek_(this.pendingSeekTime());
|
|
27646
|
+
this.pendingSeekTime(null);
|
|
27594
27647
|
}
|
|
27595
27648
|
|
|
27596
27649
|
/**
|
|
@@ -27614,18 +27667,46 @@ class SeekBar extends Slider {
|
|
|
27614
27667
|
}
|
|
27615
27668
|
}
|
|
27616
27669
|
|
|
27670
|
+
/**
|
|
27671
|
+
* Handles pending seek time when `disableSeekWhileScrubbingOnSTV` is enabled.
|
|
27672
|
+
*
|
|
27673
|
+
* @param {number} stepAmount - The number of seconds to step (positive for forward, negative for backward).
|
|
27674
|
+
*/
|
|
27675
|
+
handlePendingSeek_(stepAmount) {
|
|
27676
|
+
if (!this.player_.paused()) {
|
|
27677
|
+
this.player_.pause();
|
|
27678
|
+
}
|
|
27679
|
+
const currentPos = this.pendingSeekTime() !== null ? this.pendingSeekTime() : this.player_.currentTime();
|
|
27680
|
+
this.pendingSeekTime(currentPos + stepAmount);
|
|
27681
|
+
this.player_.trigger({
|
|
27682
|
+
type: 'timeupdate',
|
|
27683
|
+
target: this,
|
|
27684
|
+
manuallyTriggered: true
|
|
27685
|
+
});
|
|
27686
|
+
}
|
|
27687
|
+
|
|
27617
27688
|
/**
|
|
27618
27689
|
* Move more quickly fast forward for keyboard-only users
|
|
27619
27690
|
*/
|
|
27620
27691
|
stepForward() {
|
|
27621
|
-
|
|
27692
|
+
// if `disableSeekWhileScrubbingOnSTV: true`, keep track of the desired seek point but we won't initiate the seek
|
|
27693
|
+
if (this.shouldDisableSeekWhileScrubbing_) {
|
|
27694
|
+
this.handlePendingSeek_(this.options().stepSeconds);
|
|
27695
|
+
} else {
|
|
27696
|
+
this.userSeek_(this.player_.currentTime() + this.options().stepSeconds);
|
|
27697
|
+
}
|
|
27622
27698
|
}
|
|
27623
27699
|
|
|
27624
27700
|
/**
|
|
27625
27701
|
* Move more quickly rewind for keyboard-only users
|
|
27626
27702
|
*/
|
|
27627
27703
|
stepBack() {
|
|
27628
|
-
|
|
27704
|
+
// if `disableSeekWhileScrubbingOnSTV: true`, keep track of the desired seek point but we won't initiate the seek
|
|
27705
|
+
if (this.shouldDisableSeekWhileScrubbing_) {
|
|
27706
|
+
this.handlePendingSeek_(-this.options().stepSeconds);
|
|
27707
|
+
} else {
|
|
27708
|
+
this.userSeek_(this.player_.currentTime() - this.options().stepSeconds);
|
|
27709
|
+
}
|
|
27629
27710
|
}
|
|
27630
27711
|
|
|
27631
27712
|
/**
|
|
@@ -27637,6 +27718,10 @@ class SeekBar extends Slider {
|
|
|
27637
27718
|
*
|
|
27638
27719
|
*/
|
|
27639
27720
|
handleAction(event) {
|
|
27721
|
+
if (this.pendingSeekTime() !== null) {
|
|
27722
|
+
this.userSeek_(this.pendingSeekTime());
|
|
27723
|
+
this.pendingSeekTime(null);
|
|
27724
|
+
}
|
|
27640
27725
|
if (this.player_.paused()) {
|
|
27641
27726
|
this.player_.play();
|
|
27642
27727
|
} else {
|
|
@@ -32016,22 +32101,22 @@ class TrackSettingsControls extends Component$1 {
|
|
|
32016
32101
|
super(player, options);
|
|
32017
32102
|
|
|
32018
32103
|
// Create DOM elements
|
|
32019
|
-
const defaultsDescription = this.localize('restore all settings to the default values');
|
|
32020
32104
|
const resetButton = new Button(player, {
|
|
32021
|
-
controlText:
|
|
32105
|
+
controlText: this.localize('restore all settings to the default values'),
|
|
32022
32106
|
className: 'vjs-default-button'
|
|
32023
32107
|
});
|
|
32024
32108
|
resetButton.el().classList.remove('vjs-control', 'vjs-button');
|
|
32025
32109
|
resetButton.el().textContent = this.localize('Reset');
|
|
32026
32110
|
this.addChild(resetButton);
|
|
32111
|
+
const doneText = this.localize('Done');
|
|
32027
32112
|
const doneButton = new Button(player, {
|
|
32028
|
-
controlText:
|
|
32113
|
+
controlText: doneText,
|
|
32029
32114
|
className: 'vjs-done-button'
|
|
32030
32115
|
});
|
|
32031
32116
|
|
|
32032
32117
|
// Remove unrequired style classes
|
|
32033
32118
|
doneButton.el().classList.remove('vjs-control', 'vjs-button');
|
|
32034
|
-
doneButton.el().textContent =
|
|
32119
|
+
doneButton.el().textContent = doneText;
|
|
32035
32120
|
this.addChild(doneButton);
|
|
32036
32121
|
}
|
|
32037
32122
|
|
|
@@ -35369,8 +35454,12 @@ Tech.registerTech('Html5', Html5);
|
|
|
35369
35454
|
* @file player.js
|
|
35370
35455
|
*/
|
|
35371
35456
|
|
|
35372
|
-
/** @import
|
|
35457
|
+
/** @import AudioTrackList from './tracks/audio-track-list' */
|
|
35373
35458
|
/** @import HtmlTrackElement from './tracks/html-track-element' */
|
|
35459
|
+
/** @import HtmlTrackElementList from './tracks/html-track-element-list' */
|
|
35460
|
+
/** @import TextTrackList from './tracks/text-track-list' */
|
|
35461
|
+
/** @import { TimeRange } from './utils/time' */
|
|
35462
|
+
/** @import VideoTrackList from './tracks/video-track-list' */
|
|
35374
35463
|
|
|
35375
35464
|
/**
|
|
35376
35465
|
* @callback PlayerReadyCallback
|
|
@@ -40360,6 +40449,7 @@ class Player extends Component$1 {
|
|
|
40360
40449
|
*
|
|
40361
40450
|
* @method Player.prototype.videoTracks
|
|
40362
40451
|
*/
|
|
40452
|
+
Player.prototype.videoTracks = () => {};
|
|
40363
40453
|
|
|
40364
40454
|
/**
|
|
40365
40455
|
* Get the {@link AudioTrackList}
|
|
@@ -40371,6 +40461,7 @@ class Player extends Component$1 {
|
|
|
40371
40461
|
*
|
|
40372
40462
|
* @method Player.prototype.audioTracks
|
|
40373
40463
|
*/
|
|
40464
|
+
Player.prototype.audioTracks = () => {};
|
|
40374
40465
|
|
|
40375
40466
|
/**
|
|
40376
40467
|
* Get the {@link TextTrackList}
|
|
@@ -40382,6 +40473,7 @@ class Player extends Component$1 {
|
|
|
40382
40473
|
*
|
|
40383
40474
|
* @method Player.prototype.textTracks
|
|
40384
40475
|
*/
|
|
40476
|
+
Player.prototype.textTracks = () => {};
|
|
40385
40477
|
|
|
40386
40478
|
/**
|
|
40387
40479
|
* Get the remote {@link TextTrackList}
|
|
@@ -40391,6 +40483,7 @@ class Player extends Component$1 {
|
|
|
40391
40483
|
*
|
|
40392
40484
|
* @method Player.prototype.remoteTextTracks
|
|
40393
40485
|
*/
|
|
40486
|
+
Player.prototype.remoteTextTracks = () => {};
|
|
40394
40487
|
|
|
40395
40488
|
/**
|
|
40396
40489
|
* Get the remote {@link HtmlTrackElementList} tracks.
|
|
@@ -40400,7 +40493,7 @@ class Player extends Component$1 {
|
|
|
40400
40493
|
*
|
|
40401
40494
|
* @method Player.prototype.remoteTextTrackEls
|
|
40402
40495
|
*/
|
|
40403
|
-
|
|
40496
|
+
Player.prototype.remoteTextTrackEls = () => {};
|
|
40404
40497
|
ALL.names.forEach(function (name) {
|
|
40405
40498
|
const props = ALL[name];
|
|
40406
40499
|
Player.prototype[props.getterName] = function () {
|
|
@@ -40487,7 +40580,8 @@ Player.prototype.options_ = {
|
|
|
40487
40580
|
},
|
|
40488
40581
|
// Default smooth seeking to false
|
|
40489
40582
|
enableSmoothSeeking: false,
|
|
40490
|
-
disableSeekWhileScrubbingOnMobile: false
|
|
40583
|
+
disableSeekWhileScrubbingOnMobile: false,
|
|
40584
|
+
disableSeekWhileScrubbingOnSTV: false
|
|
40491
40585
|
};
|
|
40492
40586
|
TECH_EVENTS_RETRIGGER.forEach(function (event) {
|
|
40493
40587
|
Player.prototype[`handleTech${toTitleCase$1(event)}_`] = function () {
|
|
@@ -41579,9 +41673,13 @@ videojs.trigger = trigger;
|
|
|
41579
41673
|
* @see https://github.com/Raynos/xhr
|
|
41580
41674
|
*/
|
|
41581
41675
|
videojs.xhr = XHR;
|
|
41676
|
+
videojs.TrackList = TrackList;
|
|
41582
41677
|
videojs.TextTrack = TextTrack;
|
|
41678
|
+
videojs.TextTrackList = TextTrackList;
|
|
41583
41679
|
videojs.AudioTrack = AudioTrack;
|
|
41680
|
+
videojs.AudioTrackList = AudioTrackList;
|
|
41584
41681
|
videojs.VideoTrack = VideoTrack;
|
|
41682
|
+
videojs.VideoTrackList = VideoTrackList;
|
|
41585
41683
|
['isEl', 'isTextNode', 'createEl', 'hasClass', 'addClass', 'removeClass', 'toggleClass', 'setAttributes', 'getAttributes', 'emptyEl', 'appendContent', 'insertContent'].forEach(k => {
|
|
41586
41684
|
videojs[k] = function () {
|
|
41587
41685
|
log$1.warn(`videojs.${k}() is deprecated; use videojs.dom.${k}() instead`);
|