@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.js
CHANGED
|
@@ -13778,7 +13778,7 @@ var clock = {
|
|
|
13778
13778
|
|
|
13779
13779
|
/**
|
|
13780
13780
|
* @license
|
|
13781
|
-
* Video.js 8.
|
|
13781
|
+
* Video.js 8.23.3 <http://videojs.com/>
|
|
13782
13782
|
* Copyright Brightcove, Inc. <https://www.brightcove.com/>
|
|
13783
13783
|
* Available under Apache License Version 2.0
|
|
13784
13784
|
* <https://github.com/videojs/video.js/blob/main/LICENSE>
|
|
@@ -13789,7 +13789,7 @@ var clock = {
|
|
|
13789
13789
|
*/
|
|
13790
13790
|
|
|
13791
13791
|
|
|
13792
|
-
var version$6 = "8.
|
|
13792
|
+
var version$6 = "8.23.3";
|
|
13793
13793
|
|
|
13794
13794
|
/**
|
|
13795
13795
|
* An Object that contains lifecycle hooks as keys which point to an array
|
|
@@ -19726,7 +19726,7 @@ function silencePromise(value) {
|
|
|
19726
19726
|
* A serializable javascript representation of the TextTrack.
|
|
19727
19727
|
* @private
|
|
19728
19728
|
*/
|
|
19729
|
-
const
|
|
19729
|
+
const trackToJson = function (track) {
|
|
19730
19730
|
const ret = ['kind', 'label', 'language', 'id', 'inBandMetadataTrackDispatchType', 'mode', 'src'].reduce((acc, prop, i) => {
|
|
19731
19731
|
if (track[prop]) {
|
|
19732
19732
|
acc[prop] = track[prop];
|
|
@@ -19761,7 +19761,7 @@ const textTracksToJson = function (tech) {
|
|
|
19761
19761
|
const trackEls = tech.$$('track');
|
|
19762
19762
|
const trackObjs = Array.prototype.map.call(trackEls, t => t.track);
|
|
19763
19763
|
const tracks = Array.prototype.map.call(trackEls, function (trackEl) {
|
|
19764
|
-
const json =
|
|
19764
|
+
const json = trackToJson(trackEl.track);
|
|
19765
19765
|
if (trackEl.src) {
|
|
19766
19766
|
json.src = trackEl.src;
|
|
19767
19767
|
}
|
|
@@ -19769,7 +19769,7 @@ const textTracksToJson = function (tech) {
|
|
|
19769
19769
|
});
|
|
19770
19770
|
return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function (track) {
|
|
19771
19771
|
return trackObjs.indexOf(track) === -1;
|
|
19772
|
-
}).map(
|
|
19772
|
+
}).map(trackToJson));
|
|
19773
19773
|
};
|
|
19774
19774
|
|
|
19775
19775
|
/**
|
|
@@ -19795,7 +19795,7 @@ const jsonToTextTracks = function (json, tech) {
|
|
|
19795
19795
|
var textTrackConverter = {
|
|
19796
19796
|
textTracksToJson,
|
|
19797
19797
|
jsonToTextTracks,
|
|
19798
|
-
|
|
19798
|
+
trackToJson
|
|
19799
19799
|
};
|
|
19800
19800
|
|
|
19801
19801
|
/**
|
|
@@ -20759,6 +20759,16 @@ class TextTrackList extends TrackList {
|
|
|
20759
20759
|
}
|
|
20760
20760
|
}
|
|
20761
20761
|
}
|
|
20762
|
+
|
|
20763
|
+
/**
|
|
20764
|
+
* Creates a serializable array of objects that contains serialized copies
|
|
20765
|
+
* of each text track.
|
|
20766
|
+
*
|
|
20767
|
+
* @return {Object[]} A serializable list of objects for the text track list
|
|
20768
|
+
*/
|
|
20769
|
+
toJSON() {
|
|
20770
|
+
return this.tracks_.map(track => track.toJSON());
|
|
20771
|
+
}
|
|
20762
20772
|
}
|
|
20763
20773
|
|
|
20764
20774
|
/**
|
|
@@ -21192,11 +21202,9 @@ const getAbsoluteURL = function (url) {
|
|
|
21192
21202
|
*/
|
|
21193
21203
|
const getFileExtension = function (path) {
|
|
21194
21204
|
if (typeof path === 'string') {
|
|
21195
|
-
const
|
|
21196
|
-
const
|
|
21197
|
-
|
|
21198
|
-
return pathParts.pop().toLowerCase();
|
|
21199
|
-
}
|
|
21205
|
+
const cleanPath = path.split('?')[0].replace(/\/+$/, '');
|
|
21206
|
+
const match = cleanPath.match(/\.([^.\/]+)$/);
|
|
21207
|
+
return match ? match[1].toLowerCase() : '';
|
|
21200
21208
|
}
|
|
21201
21209
|
return '';
|
|
21202
21210
|
};
|
|
@@ -21587,6 +21595,16 @@ class TextTrack extends Track {
|
|
|
21587
21595
|
this.cues.setCues_(this.cues_);
|
|
21588
21596
|
}
|
|
21589
21597
|
|
|
21598
|
+
/**
|
|
21599
|
+
* Creates a copy of the text track and makes it serializable
|
|
21600
|
+
* by removing circular dependencies.
|
|
21601
|
+
*
|
|
21602
|
+
* @return {Object} The track information as a serializable object
|
|
21603
|
+
*/
|
|
21604
|
+
toJSON() {
|
|
21605
|
+
return textTrackConverter.trackToJson(this);
|
|
21606
|
+
}
|
|
21607
|
+
|
|
21590
21608
|
/**
|
|
21591
21609
|
* Remove a cue from our internal list
|
|
21592
21610
|
*
|
|
@@ -25001,6 +25019,8 @@ class TextTrackDisplay extends Component$1 {
|
|
|
25001
25019
|
this.updateDisplay(e);
|
|
25002
25020
|
};
|
|
25003
25021
|
player.on('loadstart', e => this.toggleDisplay(e));
|
|
25022
|
+
player.on('useractive', updateDisplayTextHandler);
|
|
25023
|
+
player.on('userinactive', updateDisplayTextHandler);
|
|
25004
25024
|
player.on('texttrackchange', updateDisplayTextHandler);
|
|
25005
25025
|
player.on('loadedmetadata', e => {
|
|
25006
25026
|
this.updateDisplayOverlay();
|
|
@@ -25129,11 +25149,14 @@ class TextTrackDisplay extends Component$1 {
|
|
|
25129
25149
|
}
|
|
25130
25150
|
|
|
25131
25151
|
/**
|
|
25132
|
-
* Update the displayed TextTrack when
|
|
25133
|
-
* a {@link Player#fullscreenchange}
|
|
25152
|
+
* Update the displayed {@link TextTrack} when either a {@link Player#texttrackchange},
|
|
25153
|
+
* a {@link Player#fullscreenchange}, a {@link Player#useractive}, or a
|
|
25154
|
+
* {@link Player#userinactive} is fired.
|
|
25134
25155
|
*
|
|
25135
25156
|
* @listens Player#texttrackchange
|
|
25136
25157
|
* @listens Player#fullscreenchange
|
|
25158
|
+
* @listens Player#useractive
|
|
25159
|
+
* @listens Player#userinactive
|
|
25137
25160
|
*/
|
|
25138
25161
|
updateDisplay() {
|
|
25139
25162
|
const tracks = this.player_.textTracks();
|
|
@@ -25555,8 +25578,8 @@ class BigPlayButton extends Button {
|
|
|
25555
25578
|
handleClick(event) {
|
|
25556
25579
|
const playPromise = this.player_.play();
|
|
25557
25580
|
|
|
25558
|
-
// exit early if clicked via the mouse
|
|
25559
|
-
if (this.mouseused_ && 'clientX' in event && 'clientY' in event) {
|
|
25581
|
+
// exit early if tapped or clicked via the mouse
|
|
25582
|
+
if (event.type === 'tap' || this.mouseused_ && 'clientX' in event && 'clientY' in event) {
|
|
25560
25583
|
silencePromise(playPromise);
|
|
25561
25584
|
if (this.player_.tech(true)) {
|
|
25562
25585
|
this.player_.tech(true).focus();
|
|
@@ -26021,6 +26044,8 @@ class CurrentTimeDisplay extends TimeDisplay {
|
|
|
26021
26044
|
let time;
|
|
26022
26045
|
if (this.player_.ended()) {
|
|
26023
26046
|
time = this.player_.duration();
|
|
26047
|
+
} else if (event && event.target && typeof event.target.pendingSeekTime === 'function') {
|
|
26048
|
+
time = event.target.pendingSeekTime();
|
|
26024
26049
|
} else {
|
|
26025
26050
|
time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
|
|
26026
26051
|
}
|
|
@@ -26767,6 +26792,10 @@ class Slider extends Component$1 {
|
|
|
26767
26792
|
event.stopPropagation();
|
|
26768
26793
|
this.stepForward();
|
|
26769
26794
|
} else {
|
|
26795
|
+
if (this.pendingSeekTime()) {
|
|
26796
|
+
this.pendingSeekTime(null);
|
|
26797
|
+
this.userSeek_(this.player_.currentTime());
|
|
26798
|
+
}
|
|
26770
26799
|
super.handleKeyDown(event);
|
|
26771
26800
|
}
|
|
26772
26801
|
|
|
@@ -27152,13 +27181,18 @@ class PlayProgressBar extends Component$1 {
|
|
|
27152
27181
|
* @param {number} seekBarPoint
|
|
27153
27182
|
* A number from 0 to 1, representing a horizontal reference point
|
|
27154
27183
|
* from the left edge of the {@link SeekBar}
|
|
27184
|
+
*
|
|
27185
|
+
* @param {Event} [event]
|
|
27186
|
+
* The `timeupdate` event that caused this function to run.
|
|
27155
27187
|
*/
|
|
27156
|
-
update(seekBarRect, seekBarPoint) {
|
|
27188
|
+
update(seekBarRect, seekBarPoint, event) {
|
|
27157
27189
|
const timeTooltip = this.getChild('timeTooltip');
|
|
27158
27190
|
if (!timeTooltip) {
|
|
27159
27191
|
return;
|
|
27160
27192
|
}
|
|
27161
|
-
|
|
27193
|
+
|
|
27194
|
+
// Combined logic: if an event with a valid pendingSeekTime getter exists, use it.
|
|
27195
|
+
const time = event && event.target && typeof event.target.pendingSeekTime === 'function' ? event.target.pendingSeekTime() : this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
|
|
27162
27196
|
timeTooltip.updateTime(seekBarRect, seekBarPoint, time);
|
|
27163
27197
|
}
|
|
27164
27198
|
}
|
|
@@ -27277,14 +27311,14 @@ class SeekBar extends Slider {
|
|
|
27277
27311
|
|
|
27278
27312
|
// Avoid mutating the prototype's `children` array by creating a copy
|
|
27279
27313
|
options.children = [...options.children];
|
|
27280
|
-
const
|
|
27314
|
+
const shouldDisableSeekWhileScrubbing = player.options_.disableSeekWhileScrubbingOnMobile && (IS_IOS || IS_ANDROID) || player.options_.disableSeekWhileScrubbingOnSTV;
|
|
27281
27315
|
|
|
27282
27316
|
// Add the TimeTooltip as a child if we are on desktop, or on mobile with `disableSeekWhileScrubbingOnMobile: true`
|
|
27283
|
-
if (!IS_IOS && !IS_ANDROID ||
|
|
27317
|
+
if (!IS_IOS && !IS_ANDROID || shouldDisableSeekWhileScrubbing) {
|
|
27284
27318
|
options.children.splice(1, 0, 'mouseTimeDisplay');
|
|
27285
27319
|
}
|
|
27286
27320
|
super(player, options);
|
|
27287
|
-
this.
|
|
27321
|
+
this.shouldDisableSeekWhileScrubbing_ = shouldDisableSeekWhileScrubbing;
|
|
27288
27322
|
this.pendingSeekTime_ = null;
|
|
27289
27323
|
this.setEventHandlers_();
|
|
27290
27324
|
}
|
|
@@ -27401,7 +27435,7 @@ class SeekBar extends Slider {
|
|
|
27401
27435
|
|
|
27402
27436
|
// update the progress bar time tooltip with the current time
|
|
27403
27437
|
if (this.bar) {
|
|
27404
|
-
this.bar.update(getBoundingClientRect(this.el()), this.getProgress());
|
|
27438
|
+
this.bar.update(getBoundingClientRect(this.el()), this.getProgress(), event);
|
|
27405
27439
|
}
|
|
27406
27440
|
});
|
|
27407
27441
|
return percent;
|
|
@@ -27434,6 +27468,25 @@ class SeekBar extends Slider {
|
|
|
27434
27468
|
return this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
|
|
27435
27469
|
}
|
|
27436
27470
|
|
|
27471
|
+
/**
|
|
27472
|
+
* Getter and setter for pendingSeekTime.
|
|
27473
|
+
* Ensures the value is clamped between 0 and duration.
|
|
27474
|
+
*
|
|
27475
|
+
* @param {number|null} [time] - Optional. The new pending seek time, can be a number or null.
|
|
27476
|
+
* @return {number|null} - The current pending seek time.
|
|
27477
|
+
*/
|
|
27478
|
+
pendingSeekTime(time) {
|
|
27479
|
+
if (time !== undefined) {
|
|
27480
|
+
if (time !== null) {
|
|
27481
|
+
const duration = this.player_.duration();
|
|
27482
|
+
this.pendingSeekTime_ = Math.max(0, Math.min(time, duration));
|
|
27483
|
+
} else {
|
|
27484
|
+
this.pendingSeekTime_ = null;
|
|
27485
|
+
}
|
|
27486
|
+
}
|
|
27487
|
+
return this.pendingSeekTime_;
|
|
27488
|
+
}
|
|
27489
|
+
|
|
27437
27490
|
/**
|
|
27438
27491
|
* Get the percentage of media played so far.
|
|
27439
27492
|
*
|
|
@@ -27443,8 +27496,8 @@ class SeekBar extends Slider {
|
|
|
27443
27496
|
getPercent() {
|
|
27444
27497
|
// If we have a pending seek time, we are scrubbing on mobile and should set the slider percent
|
|
27445
27498
|
// to reflect the current scrub location.
|
|
27446
|
-
if (this.
|
|
27447
|
-
return this.
|
|
27499
|
+
if (this.pendingSeekTime() !== null) {
|
|
27500
|
+
return this.pendingSeekTime() / this.player_.duration();
|
|
27448
27501
|
}
|
|
27449
27502
|
const currentTime = this.getCurrentTime_();
|
|
27450
27503
|
let percent;
|
|
@@ -27481,7 +27534,7 @@ class SeekBar extends Slider {
|
|
|
27481
27534
|
|
|
27482
27535
|
// Don't pause if we are on mobile and `disableSeekWhileScrubbingOnMobile: true`.
|
|
27483
27536
|
// In that case, playback should continue while the player scrubs to a new location.
|
|
27484
|
-
if (!this.
|
|
27537
|
+
if (!this.shouldDisableSeekWhileScrubbing_) {
|
|
27485
27538
|
this.player_.pause();
|
|
27486
27539
|
}
|
|
27487
27540
|
super.handleMouseDown(event);
|
|
@@ -27542,8 +27595,8 @@ class SeekBar extends Slider {
|
|
|
27542
27595
|
}
|
|
27543
27596
|
|
|
27544
27597
|
// if on mobile and `disableSeekWhileScrubbingOnMobile: true`, keep track of the desired seek point but we won't initiate the seek until 'touchend'
|
|
27545
|
-
if (this.
|
|
27546
|
-
this.
|
|
27598
|
+
if (this.shouldDisableSeekWhileScrubbing_) {
|
|
27599
|
+
this.pendingSeekTime(newTime);
|
|
27547
27600
|
} else {
|
|
27548
27601
|
this.userSeek_(newTime);
|
|
27549
27602
|
}
|
|
@@ -27586,9 +27639,9 @@ class SeekBar extends Slider {
|
|
|
27586
27639
|
this.player_.scrubbing(false);
|
|
27587
27640
|
|
|
27588
27641
|
// If we have a pending seek time, then we have finished scrubbing on mobile and should initiate a seek.
|
|
27589
|
-
if (this.
|
|
27590
|
-
this.userSeek_(this.
|
|
27591
|
-
this.
|
|
27642
|
+
if (this.pendingSeekTime() !== null) {
|
|
27643
|
+
this.userSeek_(this.pendingSeekTime());
|
|
27644
|
+
this.pendingSeekTime(null);
|
|
27592
27645
|
}
|
|
27593
27646
|
|
|
27594
27647
|
/**
|
|
@@ -27612,18 +27665,46 @@ class SeekBar extends Slider {
|
|
|
27612
27665
|
}
|
|
27613
27666
|
}
|
|
27614
27667
|
|
|
27668
|
+
/**
|
|
27669
|
+
* Handles pending seek time when `disableSeekWhileScrubbingOnSTV` is enabled.
|
|
27670
|
+
*
|
|
27671
|
+
* @param {number} stepAmount - The number of seconds to step (positive for forward, negative for backward).
|
|
27672
|
+
*/
|
|
27673
|
+
handlePendingSeek_(stepAmount) {
|
|
27674
|
+
if (!this.player_.paused()) {
|
|
27675
|
+
this.player_.pause();
|
|
27676
|
+
}
|
|
27677
|
+
const currentPos = this.pendingSeekTime() !== null ? this.pendingSeekTime() : this.player_.currentTime();
|
|
27678
|
+
this.pendingSeekTime(currentPos + stepAmount);
|
|
27679
|
+
this.player_.trigger({
|
|
27680
|
+
type: 'timeupdate',
|
|
27681
|
+
target: this,
|
|
27682
|
+
manuallyTriggered: true
|
|
27683
|
+
});
|
|
27684
|
+
}
|
|
27685
|
+
|
|
27615
27686
|
/**
|
|
27616
27687
|
* Move more quickly fast forward for keyboard-only users
|
|
27617
27688
|
*/
|
|
27618
27689
|
stepForward() {
|
|
27619
|
-
|
|
27690
|
+
// if `disableSeekWhileScrubbingOnSTV: true`, keep track of the desired seek point but we won't initiate the seek
|
|
27691
|
+
if (this.shouldDisableSeekWhileScrubbing_) {
|
|
27692
|
+
this.handlePendingSeek_(this.options().stepSeconds);
|
|
27693
|
+
} else {
|
|
27694
|
+
this.userSeek_(this.player_.currentTime() + this.options().stepSeconds);
|
|
27695
|
+
}
|
|
27620
27696
|
}
|
|
27621
27697
|
|
|
27622
27698
|
/**
|
|
27623
27699
|
* Move more quickly rewind for keyboard-only users
|
|
27624
27700
|
*/
|
|
27625
27701
|
stepBack() {
|
|
27626
|
-
|
|
27702
|
+
// if `disableSeekWhileScrubbingOnSTV: true`, keep track of the desired seek point but we won't initiate the seek
|
|
27703
|
+
if (this.shouldDisableSeekWhileScrubbing_) {
|
|
27704
|
+
this.handlePendingSeek_(-this.options().stepSeconds);
|
|
27705
|
+
} else {
|
|
27706
|
+
this.userSeek_(this.player_.currentTime() - this.options().stepSeconds);
|
|
27707
|
+
}
|
|
27627
27708
|
}
|
|
27628
27709
|
|
|
27629
27710
|
/**
|
|
@@ -27635,6 +27716,10 @@ class SeekBar extends Slider {
|
|
|
27635
27716
|
*
|
|
27636
27717
|
*/
|
|
27637
27718
|
handleAction(event) {
|
|
27719
|
+
if (this.pendingSeekTime() !== null) {
|
|
27720
|
+
this.userSeek_(this.pendingSeekTime());
|
|
27721
|
+
this.pendingSeekTime(null);
|
|
27722
|
+
}
|
|
27638
27723
|
if (this.player_.paused()) {
|
|
27639
27724
|
this.player_.play();
|
|
27640
27725
|
} else {
|
|
@@ -32014,22 +32099,22 @@ class TrackSettingsControls extends Component$1 {
|
|
|
32014
32099
|
super(player, options);
|
|
32015
32100
|
|
|
32016
32101
|
// Create DOM elements
|
|
32017
|
-
const defaultsDescription = this.localize('restore all settings to the default values');
|
|
32018
32102
|
const resetButton = new Button(player, {
|
|
32019
|
-
controlText:
|
|
32103
|
+
controlText: this.localize('restore all settings to the default values'),
|
|
32020
32104
|
className: 'vjs-default-button'
|
|
32021
32105
|
});
|
|
32022
32106
|
resetButton.el().classList.remove('vjs-control', 'vjs-button');
|
|
32023
32107
|
resetButton.el().textContent = this.localize('Reset');
|
|
32024
32108
|
this.addChild(resetButton);
|
|
32109
|
+
const doneText = this.localize('Done');
|
|
32025
32110
|
const doneButton = new Button(player, {
|
|
32026
|
-
controlText:
|
|
32111
|
+
controlText: doneText,
|
|
32027
32112
|
className: 'vjs-done-button'
|
|
32028
32113
|
});
|
|
32029
32114
|
|
|
32030
32115
|
// Remove unrequired style classes
|
|
32031
32116
|
doneButton.el().classList.remove('vjs-control', 'vjs-button');
|
|
32032
|
-
doneButton.el().textContent =
|
|
32117
|
+
doneButton.el().textContent = doneText;
|
|
32033
32118
|
this.addChild(doneButton);
|
|
32034
32119
|
}
|
|
32035
32120
|
|
|
@@ -35367,8 +35452,12 @@ Tech.registerTech('Html5', Html5);
|
|
|
35367
35452
|
* @file player.js
|
|
35368
35453
|
*/
|
|
35369
35454
|
|
|
35370
|
-
/** @import
|
|
35455
|
+
/** @import AudioTrackList from './tracks/audio-track-list' */
|
|
35371
35456
|
/** @import HtmlTrackElement from './tracks/html-track-element' */
|
|
35457
|
+
/** @import HtmlTrackElementList from './tracks/html-track-element-list' */
|
|
35458
|
+
/** @import TextTrackList from './tracks/text-track-list' */
|
|
35459
|
+
/** @import { TimeRange } from './utils/time' */
|
|
35460
|
+
/** @import VideoTrackList from './tracks/video-track-list' */
|
|
35372
35461
|
|
|
35373
35462
|
/**
|
|
35374
35463
|
* @callback PlayerReadyCallback
|
|
@@ -40358,6 +40447,7 @@ class Player extends Component$1 {
|
|
|
40358
40447
|
*
|
|
40359
40448
|
* @method Player.prototype.videoTracks
|
|
40360
40449
|
*/
|
|
40450
|
+
Player.prototype.videoTracks = () => {};
|
|
40361
40451
|
|
|
40362
40452
|
/**
|
|
40363
40453
|
* Get the {@link AudioTrackList}
|
|
@@ -40369,6 +40459,7 @@ class Player extends Component$1 {
|
|
|
40369
40459
|
*
|
|
40370
40460
|
* @method Player.prototype.audioTracks
|
|
40371
40461
|
*/
|
|
40462
|
+
Player.prototype.audioTracks = () => {};
|
|
40372
40463
|
|
|
40373
40464
|
/**
|
|
40374
40465
|
* Get the {@link TextTrackList}
|
|
@@ -40380,6 +40471,7 @@ class Player extends Component$1 {
|
|
|
40380
40471
|
*
|
|
40381
40472
|
* @method Player.prototype.textTracks
|
|
40382
40473
|
*/
|
|
40474
|
+
Player.prototype.textTracks = () => {};
|
|
40383
40475
|
|
|
40384
40476
|
/**
|
|
40385
40477
|
* Get the remote {@link TextTrackList}
|
|
@@ -40389,6 +40481,7 @@ class Player extends Component$1 {
|
|
|
40389
40481
|
*
|
|
40390
40482
|
* @method Player.prototype.remoteTextTracks
|
|
40391
40483
|
*/
|
|
40484
|
+
Player.prototype.remoteTextTracks = () => {};
|
|
40392
40485
|
|
|
40393
40486
|
/**
|
|
40394
40487
|
* Get the remote {@link HtmlTrackElementList} tracks.
|
|
@@ -40398,7 +40491,7 @@ class Player extends Component$1 {
|
|
|
40398
40491
|
*
|
|
40399
40492
|
* @method Player.prototype.remoteTextTrackEls
|
|
40400
40493
|
*/
|
|
40401
|
-
|
|
40494
|
+
Player.prototype.remoteTextTrackEls = () => {};
|
|
40402
40495
|
ALL.names.forEach(function (name) {
|
|
40403
40496
|
const props = ALL[name];
|
|
40404
40497
|
Player.prototype[props.getterName] = function () {
|
|
@@ -40485,7 +40578,8 @@ Player.prototype.options_ = {
|
|
|
40485
40578
|
},
|
|
40486
40579
|
// Default smooth seeking to false
|
|
40487
40580
|
enableSmoothSeeking: false,
|
|
40488
|
-
disableSeekWhileScrubbingOnMobile: false
|
|
40581
|
+
disableSeekWhileScrubbingOnMobile: false,
|
|
40582
|
+
disableSeekWhileScrubbingOnSTV: false
|
|
40489
40583
|
};
|
|
40490
40584
|
TECH_EVENTS_RETRIGGER.forEach(function (event) {
|
|
40491
40585
|
Player.prototype[`handleTech${toTitleCase$1(event)}_`] = function () {
|
|
@@ -41577,9 +41671,13 @@ videojs.trigger = trigger;
|
|
|
41577
41671
|
* @see https://github.com/Raynos/xhr
|
|
41578
41672
|
*/
|
|
41579
41673
|
videojs.xhr = XHR;
|
|
41674
|
+
videojs.TrackList = TrackList;
|
|
41580
41675
|
videojs.TextTrack = TextTrack;
|
|
41676
|
+
videojs.TextTrackList = TextTrackList;
|
|
41581
41677
|
videojs.AudioTrack = AudioTrack;
|
|
41678
|
+
videojs.AudioTrackList = AudioTrackList;
|
|
41582
41679
|
videojs.VideoTrack = VideoTrack;
|
|
41680
|
+
videojs.VideoTrackList = VideoTrackList;
|
|
41583
41681
|
['isEl', 'isTextNode', 'createEl', 'hasClass', 'addClass', 'removeClass', 'toggleClass', 'setAttributes', 'getAttributes', 'emptyEl', 'appendContent', 'insertContent'].forEach(k => {
|
|
41584
41682
|
videojs[k] = function () {
|
|
41585
41683
|
log$1.warn(`videojs.${k}() is deprecated; use videojs.dom.${k}() instead`);
|
package/shared/definition67.cjs
CHANGED
|
@@ -612,16 +612,22 @@ const flip$1 = function (options) {
|
|
|
612
612
|
const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
|
|
613
613
|
const nextPlacement = placements[nextIndex];
|
|
614
614
|
if (nextPlacement) {
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
615
|
+
const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
|
|
616
|
+
if (!ignoreCrossAxisOverflow ||
|
|
617
|
+
// We leave the current main axis only if every placement on that axis
|
|
618
|
+
// overflows the main axis.
|
|
619
|
+
overflowsData.every(d => d.overflows[0] > 0 && getSideAxis(d.placement) === initialSideAxis)) {
|
|
620
|
+
// Try next placement and re-run the lifecycle.
|
|
621
|
+
return {
|
|
622
|
+
data: {
|
|
623
|
+
index: nextIndex,
|
|
624
|
+
overflows: overflowsData
|
|
625
|
+
},
|
|
626
|
+
reset: {
|
|
627
|
+
placement: nextPlacement
|
|
628
|
+
}
|
|
629
|
+
};
|
|
630
|
+
}
|
|
625
631
|
}
|
|
626
632
|
|
|
627
633
|
// First, find the candidates that fit on the mainAxis side of overflow,
|
|
@@ -1557,6 +1563,12 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
|
|
|
1557
1563
|
scrollTop: 0
|
|
1558
1564
|
};
|
|
1559
1565
|
const offsets = createCoords(0);
|
|
1566
|
+
|
|
1567
|
+
// If the <body> scrollbar appears on the left (e.g. RTL systems). Use
|
|
1568
|
+
// Firefox with layout.scrollbar.side = 3 in about:config to test this.
|
|
1569
|
+
function setLeftRTLScrollbarOffset() {
|
|
1570
|
+
offsets.x = getWindowScrollBarX(documentElement);
|
|
1571
|
+
}
|
|
1560
1572
|
if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
|
|
1561
1573
|
if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
|
|
1562
1574
|
scroll = getNodeScroll(offsetParent);
|
|
@@ -1566,11 +1578,12 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
|
|
|
1566
1578
|
offsets.x = offsetRect.x + offsetParent.clientLeft;
|
|
1567
1579
|
offsets.y = offsetRect.y + offsetParent.clientTop;
|
|
1568
1580
|
} else if (documentElement) {
|
|
1569
|
-
|
|
1570
|
-
// Firefox with layout.scrollbar.side = 3 in about:config to test this.
|
|
1571
|
-
offsets.x = getWindowScrollBarX(documentElement);
|
|
1581
|
+
setLeftRTLScrollbarOffset();
|
|
1572
1582
|
}
|
|
1573
1583
|
}
|
|
1584
|
+
if (isFixed && !isOffsetParentAnElement && documentElement) {
|
|
1585
|
+
setLeftRTLScrollbarOffset();
|
|
1586
|
+
}
|
|
1574
1587
|
const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
|
|
1575
1588
|
const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
|
|
1576
1589
|
const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
|
|
@@ -1747,7 +1760,7 @@ function observeMove(element, onMove) {
|
|
|
1747
1760
|
// Handle <iframe>s
|
|
1748
1761
|
root: root.ownerDocument
|
|
1749
1762
|
});
|
|
1750
|
-
} catch (
|
|
1763
|
+
} catch (_e) {
|
|
1751
1764
|
io = new IntersectionObserver(handleObserve, options);
|
|
1752
1765
|
}
|
|
1753
1766
|
io.observe(element);
|
|
@@ -1964,6 +1977,7 @@ class Popup extends vividElement.VividElement {
|
|
|
1964
1977
|
this.placementStrategy = PlacementStrategy.Flip;
|
|
1965
1978
|
this.animationFrame = false;
|
|
1966
1979
|
this.strategy = "fixed";
|
|
1980
|
+
this.offset = null;
|
|
1967
1981
|
this.#autoUpdateCallback = () => {
|
|
1968
1982
|
this.#lastPositionUpdate = this.updatePosition();
|
|
1969
1983
|
return this.#lastPositionUpdate;
|
|
@@ -1983,13 +1997,17 @@ class Popup extends vividElement.VividElement {
|
|
|
1983
1997
|
}
|
|
1984
1998
|
})
|
|
1985
1999
|
];
|
|
2000
|
+
let offsetValue = this.offset ?? 0;
|
|
1986
2001
|
if (this.arrow) {
|
|
2002
|
+
offsetValue += 12;
|
|
1987
2003
|
middleware = [
|
|
1988
|
-
offset(12),
|
|
1989
2004
|
...middleware,
|
|
1990
2005
|
arrow({ element: this.arrowEl, padding: 10 })
|
|
1991
2006
|
];
|
|
1992
2007
|
}
|
|
2008
|
+
if (offsetValue > 0) {
|
|
2009
|
+
middleware.unshift(offset(offsetValue));
|
|
2010
|
+
}
|
|
1993
2011
|
return middleware;
|
|
1994
2012
|
}
|
|
1995
2013
|
#cleanup;
|
|
@@ -2138,6 +2156,9 @@ __decorateClass([
|
|
|
2138
2156
|
__decorateClass([
|
|
2139
2157
|
vividElement.attr({ mode: "fromView" })
|
|
2140
2158
|
], Popup.prototype, "strategy");
|
|
2159
|
+
__decorateClass([
|
|
2160
|
+
vividElement.attr({ attribute: "offset", converter: vividElement.nullableNumberConverter })
|
|
2161
|
+
], Popup.prototype, "offset");
|
|
2141
2162
|
__decorateClass([
|
|
2142
2163
|
vividElement.observable
|
|
2143
2164
|
], Popup.prototype, "anchor");
|
package/shared/definition67.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { B as Button, b as buttonDefinition } from './definition11.js';
|
|
2
2
|
import { E as Elevation, e as elevationDefinition } from './definition65.js';
|
|
3
|
-
import { V as VividElement, a as attr, o as observable, h as html, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
|
|
3
|
+
import { V as VividElement, a as attr, n as nullableNumberConverter, o as observable, h as html, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
|
|
4
4
|
import { r as ref } from './ref.js';
|
|
5
5
|
import { c as classNames } from './class-names.js';
|
|
6
6
|
import { w as when } from './when.js';
|
|
@@ -610,16 +610,22 @@ const flip$1 = function (options) {
|
|
|
610
610
|
const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
|
|
611
611
|
const nextPlacement = placements[nextIndex];
|
|
612
612
|
if (nextPlacement) {
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
613
|
+
const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
|
|
614
|
+
if (!ignoreCrossAxisOverflow ||
|
|
615
|
+
// We leave the current main axis only if every placement on that axis
|
|
616
|
+
// overflows the main axis.
|
|
617
|
+
overflowsData.every(d => d.overflows[0] > 0 && getSideAxis(d.placement) === initialSideAxis)) {
|
|
618
|
+
// Try next placement and re-run the lifecycle.
|
|
619
|
+
return {
|
|
620
|
+
data: {
|
|
621
|
+
index: nextIndex,
|
|
622
|
+
overflows: overflowsData
|
|
623
|
+
},
|
|
624
|
+
reset: {
|
|
625
|
+
placement: nextPlacement
|
|
626
|
+
}
|
|
627
|
+
};
|
|
628
|
+
}
|
|
623
629
|
}
|
|
624
630
|
|
|
625
631
|
// First, find the candidates that fit on the mainAxis side of overflow,
|
|
@@ -1555,6 +1561,12 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
|
|
|
1555
1561
|
scrollTop: 0
|
|
1556
1562
|
};
|
|
1557
1563
|
const offsets = createCoords(0);
|
|
1564
|
+
|
|
1565
|
+
// If the <body> scrollbar appears on the left (e.g. RTL systems). Use
|
|
1566
|
+
// Firefox with layout.scrollbar.side = 3 in about:config to test this.
|
|
1567
|
+
function setLeftRTLScrollbarOffset() {
|
|
1568
|
+
offsets.x = getWindowScrollBarX(documentElement);
|
|
1569
|
+
}
|
|
1558
1570
|
if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
|
|
1559
1571
|
if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
|
|
1560
1572
|
scroll = getNodeScroll(offsetParent);
|
|
@@ -1564,11 +1576,12 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
|
|
|
1564
1576
|
offsets.x = offsetRect.x + offsetParent.clientLeft;
|
|
1565
1577
|
offsets.y = offsetRect.y + offsetParent.clientTop;
|
|
1566
1578
|
} else if (documentElement) {
|
|
1567
|
-
|
|
1568
|
-
// Firefox with layout.scrollbar.side = 3 in about:config to test this.
|
|
1569
|
-
offsets.x = getWindowScrollBarX(documentElement);
|
|
1579
|
+
setLeftRTLScrollbarOffset();
|
|
1570
1580
|
}
|
|
1571
1581
|
}
|
|
1582
|
+
if (isFixed && !isOffsetParentAnElement && documentElement) {
|
|
1583
|
+
setLeftRTLScrollbarOffset();
|
|
1584
|
+
}
|
|
1572
1585
|
const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
|
|
1573
1586
|
const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
|
|
1574
1587
|
const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
|
|
@@ -1745,7 +1758,7 @@ function observeMove(element, onMove) {
|
|
|
1745
1758
|
// Handle <iframe>s
|
|
1746
1759
|
root: root.ownerDocument
|
|
1747
1760
|
});
|
|
1748
|
-
} catch (
|
|
1761
|
+
} catch (_e) {
|
|
1749
1762
|
io = new IntersectionObserver(handleObserve, options);
|
|
1750
1763
|
}
|
|
1751
1764
|
io.observe(element);
|
|
@@ -1962,6 +1975,7 @@ class Popup extends VividElement {
|
|
|
1962
1975
|
this.placementStrategy = PlacementStrategy.Flip;
|
|
1963
1976
|
this.animationFrame = false;
|
|
1964
1977
|
this.strategy = "fixed";
|
|
1978
|
+
this.offset = null;
|
|
1965
1979
|
this.#autoUpdateCallback = () => {
|
|
1966
1980
|
this.#lastPositionUpdate = this.updatePosition();
|
|
1967
1981
|
return this.#lastPositionUpdate;
|
|
@@ -1981,13 +1995,17 @@ class Popup extends VividElement {
|
|
|
1981
1995
|
}
|
|
1982
1996
|
})
|
|
1983
1997
|
];
|
|
1998
|
+
let offsetValue = this.offset ?? 0;
|
|
1984
1999
|
if (this.arrow) {
|
|
2000
|
+
offsetValue += 12;
|
|
1985
2001
|
middleware = [
|
|
1986
|
-
offset(12),
|
|
1987
2002
|
...middleware,
|
|
1988
2003
|
arrow({ element: this.arrowEl, padding: 10 })
|
|
1989
2004
|
];
|
|
1990
2005
|
}
|
|
2006
|
+
if (offsetValue > 0) {
|
|
2007
|
+
middleware.unshift(offset(offsetValue));
|
|
2008
|
+
}
|
|
1991
2009
|
return middleware;
|
|
1992
2010
|
}
|
|
1993
2011
|
#cleanup;
|
|
@@ -2136,6 +2154,9 @@ __decorateClass([
|
|
|
2136
2154
|
__decorateClass([
|
|
2137
2155
|
attr({ mode: "fromView" })
|
|
2138
2156
|
], Popup.prototype, "strategy");
|
|
2157
|
+
__decorateClass([
|
|
2158
|
+
attr({ attribute: "offset", converter: nullableNumberConverter })
|
|
2159
|
+
], Popup.prototype, "offset");
|
|
2139
2160
|
__decorateClass([
|
|
2140
2161
|
observable
|
|
2141
2162
|
], Popup.prototype, "anchor");
|
|
@@ -3,11 +3,11 @@ export type FeedbackType = 'none' | 'helper' | 'error' | 'success';
|
|
|
3
3
|
declare const FeedbackMessage_base: {
|
|
4
4
|
new (...args: any[]): {
|
|
5
5
|
readonly locale: import("../localization/Locale").Locale;
|
|
6
|
+
connectedCallback(): void;
|
|
6
7
|
specialHandling: boolean;
|
|
7
8
|
_vividAriaBehaviour: import("../aria/aria-mixin").VividAriaBehaviour;
|
|
8
9
|
readonly $fastController: import("@microsoft/fast-element").Controller;
|
|
9
10
|
$emit(type: string, detail?: any, options?: Omit<CustomEventInit<any>, "detail"> | undefined): boolean | void;
|
|
10
|
-
connectedCallback(): void;
|
|
11
11
|
disconnectedCallback(): void;
|
|
12
12
|
attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
|
|
13
13
|
accessKey: string;
|