1
0
mirror of https://github.com/videojs/video.js.git synced 2024-12-21 01:39:04 +02:00
Commit Graph

4146 Commits

Author SHA1 Message Date
wseymour15
d2b9d5c974 8.19.1 2024-10-10 10:07:37 -05:00
Walter Seymour
84f49054d9
chore(package): update http-streaming to v3.15.0 (#8889) 2024-10-10 10:03:12 -05:00
Walter Seymour
7c17d75be5
chore: update mpd-parser to v1.3.1 (#8888) 2024-10-09 15:26:07 -05:00
Alex Barstow
ffd70b14cf 8.19.0 2024-10-09 12:22:06 -04:00
Alex Barstow
eddda97eeb
feat: Add methods to add and remove <source> elements (#8886)
## Description
It is useful to have methods for appending and removing `<source>`
elements to the `<video>` element, as they are sometimes required to
enable certain playback features, for example, using [Airplay with
MSE](https://webkit.org/blog/15036/how-to-use-media-source-extensions-with-airplay).

## Specific Changes proposed
Add new methods-- `addSourceElement()` and `removeSourceElement()` to
the player and tech. The former will take a source object and create and
append a new `<source>` element to the `<video>` element, and the latter
will take a source url and remove any `<source>` element with a matching
`src`.

## Requirements Checklist
- [ ] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [ ] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-10-09 12:16:04 -04:00
mister-ben
077077b00a
fix: Don't request fullscreen from document PIP window (#8881)
## Description
Double clicking the document pip window requests fullscreen but this
fails. The gesture on the pip window can't initiate fullscreen.
Fixes #8877

## Specific Changes proposed
Change the default double click action to just exit pip. This is the
same behaviour as before without the error, as requestFullScreen() calls
exitPictureInPicture();

---------

Co-authored-by: Gary Katsevman <git@gkatsev.com>
2024-10-06 07:50:03 +02:00
Sarah Rimron-Soutter
b1dee925b2 8.18.1 2024-09-17 16:13:56 +01:00
Essk
89eb454620
chore(package): Update to VHS v3.14.2 (#8869) 2024-09-17 16:05:57 +01:00
Adam Waldron
8df5911a1f 8.18.0 2024-09-10 15:28:39 -07:00
Adam Waldron
c8e546f113
fix: update VHS to v3.14.1 (#8860)
## Description
Update VHS to v3.14.1 for a VTT timing fix detailed here:
https://github.com/videojs/http-streaming/pull/1537

## Specific Changes proposed
Update the VHS package to v.3.14.1.

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [ ] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors

---------

Co-authored-by: Essk <sarah@teaandbiscuits.net>
2024-09-10 14:24:20 -08:00
Manos Velivasakis
1e2ea61c1c
fix(lang): Update el.json (#8848)
## Description
Updated Greek translation.

## Specific Changes proposed

- Added some missing translations on el.json.
- Updated translations-needed.md.

## Requirements Checklist
- [ ] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [ ] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors

Co-authored-by: Adam Waldron <acwald@gmail.com>
2024-09-10 10:27:42 -08:00
mister-ben
1128425f95
chore: Update VHS to 3.14.0, and its dependencies (#8839)
## Description
Updates VHS and dependencies. These updates include _experimental_
ManagedMediaSource support, and support for #EXT-X-DEFINE,
#EXT-X-I-FRAMES-ONLY and #EXT-X-I-FRAME-STREAM-INF in m3u8-parser.

## Specific Changes proposed
* @videojs/http-streaming ^3.14.0
* @videojs/vhs-utils ^4.1.1
* aes-decrypter ^4.0.2
* m3u8-parser ^7.2.0

## Requirements Checklist
- [ ] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [ ] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-09-09 11:08:55 -08:00
mister-ben
5e6b53612a
feat: add class to normalise time control display (#8833)
## Description
Time controls continue to cause confusion as they are included by
default but hidden by default. e.g. #8534 Adding CSS to display them is
not intuitive.

## Specific Changes proposed
Changing the default styles would be problematic before a major version.
This PR proposes adding an optional `vjs-normalise-time-controls` class
a user can add to the player, as an opt in.

This will default all time controls to being shown, except when live
content is playing. Users would then have to remove the time controls in
player options, or with `hide()` or `dispose()`.

## Requirements Checklist
- [ ] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [ ] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors

Co-authored-by: Adam Waldron <acwald@gmail.com>
2024-09-09 11:07:11 -08:00
mister-ben
8c56e31cad
fix: check for closeable() before calling in spatialnavigation (#8832)
## Description
Passing the back key causes an error in spatial navigation if the event
target does not have a `closeable` function.

## Specific Changes proposed
Add a check before calling.
2024-08-28 15:44:38 +02:00
mister-ben
5fac9e1e9d
chore: update version number in readme on release (#8840)
Updates the version number where it appears in URLs in the README, when
`nom version` is ran. It's looking specifically for patterns like
`/8.17.3/` and `/video.js@8.17.3/`; if we change the README we need to
consider this script.
2024-08-28 12:39:46 +02:00
cvillasenor
fa7e64879a 8.17.4 2024-08-27 12:44:50 -06:00
Carlos Javier Villaseñor Castillo
1d771d9be8
fix: use backup styles when inset is not supported (#8844)
## Description
Small fix to use backup styles only when inset is not supported.

## Specific Changes proposed
Use backup styles only when inset is not supported.

## Requirements Checklist
- [x] Feature implemented / Bug fixed
2024-08-26 15:49:19 -06:00
Carlos Javier Villaseñor Castillo
3e9e4e8beb
fix: allow captions in devices that use old chrome to be shown (#8826)
## Description
In the specific case of using an old chrome version this minor changes
will allow the captions to be shown.

## Specific Changes proposed
Small fix when using videojs in an old browser that does not support the
css 'inset' property.

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [ ] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors

---------

Co-authored-by: Walter Seymour <walterseymour15@gmail.com>
Co-authored-by: Gary Katsevman <git@gkatsev.com>
2024-08-26 13:32:20 -06:00
Pat O'Neill
f0db8f103c
docs: Refresh README.md and point other docs to admin repo (#8837)
Co-authored-by: mister-ben <1676039+mister-ben@users.noreply.github.com>
2024-08-23 13:50:20 -04:00
mister-ben
73db132d86
fix: ensure spatial navigation starts without error without an ErrorD… (#8830)
…isplay component

## Description
By default a Video.js player has an ErrorDisplay, but in the event it is
created without one, an error will be thrown when starting spatial
navigation.

## Specific Changes proposed
Only add an event listener to `player.errorDisplay` if it exists.

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [x] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [x] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-08-22 17:07:41 +02:00
mister-ben
65f8546782
fix(types): ensure toggleClass's second arg is optional (#8829)
## Description
Generated types are mangled for `Component.toggleClass()`, because tsc
doesn't understand `~` namespaces. The second arg is then not marked as
optional.

## Specific Changes proposed
Refactor JSDoc

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [x] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-08-14 21:00:01 +02:00
mister-ben
e715145d86
fix: Change requestNamedAnimationFrame to apply last change per frame instead of first (#8799)
## Description
The current implementation of `requestNamedAnimationFrame` prevents
multiple updates on a frame but by disregarding all but the first
request per frame. This throttling behaviour is apparent when playing a
very short video - if a `timeupdate` occurs just before the `ended`
event, the progress bar position on the `timeupdate` is set at say 98%
and 100% from the `ended` is discarded. Although #8633 removed the
throttle from the `ended` handler itself, the throttle and non-throttled
update can still both execute between frames.

## Specific Changes proposed
Changes the implementation to apply only the last callback instead. If
any exist they will be cancelled. There will still be only one update,
but now it's the last.
Updates tests to reflect the changed behaviour. 
Fixes #8782

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [x] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [x] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-08-13 10:54:53 +02:00
Walter Seymour
790078bfbf
chore: update http-streaming to v3.13.3 (#8827) 2024-08-12 15:05:18 -05:00
mister-ben
820ef382bc
fix(types): Add has|usingPlugin to typedef by adding stubs which are removed from builds (#8811)
## Description
tsc doesn't understand mixins and ignores jsdoc not followed by code.
The jsdoc for the plugin methods `usingPlugin()` and `hasPlugin()` in
Player are being ignored. To get them included in type outputs we need
to have otherwise unnecessary stubs codes, as we already have for `on()`
etc, which adds unnecessary, even if a small amount of, code to the
outputs.

## Specific Changes proposed
* Slight refactor of Player to include those stubs.
* Adds a rollup plugin to delete lines between certain comments, so
those stubs are deleted from the outputs.
* Applies those comments to the `on()` etc stubs in Component and the
new plugin stubs in Player.

Any code surrounded by these comments, and the comments themselves, is
deleted from the dist and test builds:

```js
/* start-delete-from-build */
  console.log('hi');
/* start-delete-from-build */
```

Compared to main, video.min.js is 53 bytes smaller.

## Requirements Checklist
- [ ] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [ ] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-08-12 21:47:47 +02:00
mister-ben
3380d33d6f
chore: Remove safe-json-parse (#8790)
## Description
Removes an old unmaintained dependency that isn't needed any more.

## Specific Changes proposed
Replace safe-json-parse with `JSON.parse`

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [x] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-08-11 08:21:10 +02:00
mister-ben
57c27f8e5c
refactor: Reorder SASS styles to address deprecation (#8821)
## Description
Some of the existing rules would be interpreted differently in a future
version of SASS. In the current version, they trigger a deprecation
warning. See
https://sass-lang.com/documentation/breaking-changes/mixed-decls/

## Specific Changes proposed
Re-orders rules to maintain current output and remove warnings. The
output of video-js.css and video-js.min.css remains the same.

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [x] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-07-31 22:04:23 +02:00
cvillasenor
c4007dbea3 8.17.3 2024-07-30 11:07:29 -06:00
Carlos Javier Villaseñor Castillo
45570d93f3
fix(spatial-navigation): refocus available also to the close button of the error modal (#8819)
## Description
This PR will make the refocus available not only to the buttons of the
error modal but also to the close button of the error modal on the event
of 'aftermodalfill'.

## Specific Changes proposed
Allow the spatial-navigation to refocus the error modal when error modal
appears.

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [ ] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-07-29 16:26:50 -06:00
Carlos Javier Villaseñor Castillo
daf40bd4aa
fix(spatial-navigation): focus lost in error modal (#8817)
## Description
The spatial-navigation is unable to focus certain elements of the error
modal when this appears, this PR will fix that

## Specific Changes proposed
Allow the spatial-navigation to focus certain non-component elements in
the error modal

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [ ] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-07-29 12:11:58 -06:00
Carlos Javier Villaseñor Castillo
76e99b7bea
fix(spatial-navigation): keep navigation going when player has an error (#8805)
## Description
The bug:
 Focus is lost when playback error is displayed.

This small PR will update the spatial-navigation logic so when the error
modal is shown the spatial-navigation will try to focus the components
present in the error modal, in most cases this will be the vjs close
button.

## Specific Changes proposed
Keep navigation working when player shows the error modal by focusing a
component in that modal.

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [ ] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-07-22 16:43:20 -06:00
mister-ben
86d29cdc66
fix: Listen to taps on track controls (#8809)
## Description
The refactored text track controls aren't listening for tap events.

## Specific Changes proposed
Add tap handler to done and reset buttons.
Fixes #8808

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [x] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-07-22 22:20:34 +02:00
mister-ben
a7c9f26c8f
fix: Refactor evented to make mincompatable with Chrome 53 (#8810)
## Description
Chrome 53 doesn't like the minified output. Specifically, it throws
`Uncaught SyntaxError: Unexpected token (` on the ternary in the
minified version of `normalizeListenArgs()`

e78bcc7b2d/src/js/mixins/evented.js (L165-L195)

Line breaks added for clarify

```js
Tt = (e, t, s) => {
  var i = t.length < 3 || t[0] === e || t[0] === e.eventBusEl_;
  let r, n, a;
  return i ? (r = e.eventBusEl_, 3 <= t.length && t.shift(), [n, a] = t) : [r, n, a] = t, ft(r, e, s), yt(n, e, s), bt(a, e, s), a = _(e, a), {
    isTargetingSelf: I,
    target: r,
    type: n,
    listener: a
  }
},
```

Chrome would be happy with this if `[r, n, a] = t` were `([r, n, a] =
t)`.

## Specific Changes proposed
Refactor `normalizeListenArgs()` slightly to use multiple statements to
coerce uglify-js to include parentheses.
Also updates uglify-js, but that in itself isn't the fix.

Fixes #8783

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser - Browserstack
Chrome 53
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [x] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors

---------

Co-authored-by: Gary Katsevman <git@gkatsev.com>
2024-07-22 22:16:17 +02:00
Dzianis Dashkevich
798647b7ea 8.17.2 2024-07-22 14:37:00 -04:00
Dzianis Dashkevich
49151eea90
chore: update vhs version 3.13.2 (#8812)
## Description
Update vhs version (v3.13.2)

## Specific Changes proposed
Please list the specific changes involved in this pull request.

## Requirements Checklist
- [ ] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [ ] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors

Co-authored-by: Dzianis Dashkevich <ddashkevich@brightcove.com>
2024-07-22 14:35:43 -04:00
mister-ben
e78bcc7b2d 8.17.1 2024-07-15 10:40:39 +02:00
mister-ben
0a836e1006
fix: ensure transient button event listeners are removed on dispose (#8796)
## Description
Transient button sets an event listener on the player directly instead
of on itself, which doesn't get cleaned up when disposed.
Fixes #8795

## Specific Changes proposed
Call `on` on the component with player as the first arg, instead of
calling `on` on the player directly.

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [x] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-07-14 18:15:38 +02:00
mister-ben
51b4670f69 8.17.0 2024-07-10 11:43:18 +02:00
mister-ben
970faa8fb1
fix(types): fix and improve component ready callback definition (#8766)
- Removes erroneous `@return {Component}` from `ReadyCallback` in
Component
- Remove `@this {Component}` from `ReadyCallback` in Component, because
this is not accurate for classes that extend Component
- Adds `@returns {void}` to `ReadyCallback` in Component
  - Produces a more accurate typedef
- Isn't strictly accurate in jsdoc/javascript but does this matter since
it's well understood. Absence of `@return` is interpreted by tsc as
returning `{any}`, `@returns {undefined}` would require an explicit
`return undefined` in ts.
- Adds a `{PlayerReadyCallback}` in Player with `@this {Player}` used in
the `new Player()` and `videos()` constructors.
  - Are we ok adding this new typedef
- Is inconsistent with `player.ready()` which uses `ReadyCallback`
without `@this` - but this can't be changed without adding an otherwise
unnecessary override just to pander to tsc.

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [x] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-07-06 08:31:15 +01:00
BrainCrumbz
6221a8f078
fix(middleware): cache grows even if no middleware created (#8674)
## Description
See issue #8653 

## Specific Changes proposed
When in `middleware.js` the function `clearCacheForPlayer` runs, before
setting a value to null in middlware caches, it checks if the key exists
in the first place.

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [x] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [x] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Reviewed by Two Core Contributors

---------

Co-authored-by: Giuseppe Piscopo <g.piscopo@braincrumbz.com>
Co-authored-by: mister-ben <git@misterben.me>
2024-07-06 07:44:37 +01:00
mister-ben
1afe5049e6
feat: Adds a transient button component (#8629)
## Description
Adds a `TransientButton` component for the types of button that are
shown on top of the video briefly during playback and reappear when
there is user activity. e.g. Unmute buttons, skip intro. It aims is to
be a generic button type to be extended. Some basic styles are provided
but kept light to not complicate customisation.
It's important to insert a transient button before the control bar for
the tab order to make sense.

_Optionally_ takes focus when shown.

## Specific Changes proposed
Adds `TransientButton` component.

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [x] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [x] Example:
https://deploy-preview-8629--videojs-preview.netlify.app/sandbox/transient-button.html
- [x] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-07-06 07:40:31 +01:00
David HM Morgan
f701102fe9
fix: apply correct styles to audio descriptions track menu items (#8770)
## Description
Fix #8769 for mismatched track kind should be plural descriptions
according to definition of `AudioTrackKind`
https://github.com/videojs/video.js/issues/8769

## Specific Changes proposed
Corrects `description` to `descriptions`
2024-06-25 20:19:38 +02:00
uomar
2b3ffd489e 8.16.1 2024-06-24 11:43:31 +01:00
Usman Omar
04b9bb27bb
fix: enable keyboard controls on menu items (#8777)
## Description

This fix addresses an issue that was introduced in this
[refactor](35de64ceb0 (diff-9fd94576fe3b609171a426feb961b0954d70c8c14e598024d49ae9c8836a71ca)).
At the moment, all key down events that are supposed to interact with
the `menu-item` component are now being ignored, meaning you are unable
to interact with most of the menu items in the control bar (e.g.
captions settings). This PR fixes that by only ignoring key down events
that are normally ignored by the `menu-item`.

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [ ] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-06-24 11:19:59 +01:00
mister-ben
fa9c41c866
chore: Update typescript to 5.5.2 (#8776)
## Description
Update to release of Typescript 5.5 (5.5.2) from rc (5.5.1). Diff shows
no changes in types output.
2024-06-23 14:19:13 +02:00
Adam Waldron
6b468dd2a9 8.16.0 2024-06-12 10:20:57 -07:00
Adam Waldron
864074d74d
fix: update to VHS v3.13.1 (#8765) 2024-06-12 07:46:44 -07:00
mister-ben
86ff6123f5
fix: improve ts output for create logger (#8763)
## Description
Typescript =< 5.2 generated better types for `log` than >= 5.3. We're on
5.5 as that has the better import syntax.
Changing createLogger to use `function log()` rather than `const log =
function()` outputs as before.

Also updates typescript to 5.5.1 (rc) from 5.5.0 (beta).

5.2, or 5.5 with this change
```
export default log;
declare const log: {
    (...args: any[]): void;
    createLogger(subName: string, subDelimiter?: string, subStyles?: string): any;
    createNewLogger(newName: string, newDelimiter?: string, newStyles?: string): any;
    levels: any;
    level(lvl?: "info" | "error" | "all" | "debug" | "warn" | "off"): string;
    history: {
        (): any[];
        filter(fname: string): any[];
        clear(): void;
        disable(): void;
        enable(): void;
    };
    error(...args: any[]): any;
    warn(...args: any[]): any;
    debug(...args: any[]): any;
};
export const createLogger: (subName: string, subDelimiter?: string, subStyles?: string) => any;
//# sourceMappingURL=log.d.ts.map%
```

5.3+, without this change
```
export default log;
declare function log(...args: any[]): void;
declare namespace log { }
export const createLogger: (subName: string, subDelimiter?: string, subStyles?: string) => any;
//# sourceMappingURL=log.d.ts.map%
```

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [x] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-06-12 05:13:27 +02:00
Borut Zizmond
b58b4c5879
feat(icons): update Twitter X logo (#8764)
## Specific Changes proposed
- update font version to 4.2.0 to use updated Twitter icon
- update to Twitter X icon in SVG


## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [ ] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-06-11 12:58:29 -04:00
mister-ben
f4186a0024
fix: use guid to ensure uniqueness of track setting options (#8762)
The fix for the previous issue with the new text track settings
introduced that ids would be re-used across players as there was no
prefix for the settings that don't have a `<label>` for their
`<select>`.

This change uses a generated guid for items without that label.
Fixes #8761

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [x] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-06-10 15:11:26 +02:00
Dzianis Dashkevich
fc1f7a6f82 8.15.0 2024-06-06 19:04:03 -04:00