Merge branch 'develop' into a11y-improvements

# Conflicts:
#	dist/plyr.js.map
#	dist/plyr.min.js
#	dist/plyr.min.js.map
#	dist/plyr.polyfilled.js.map
#	dist/plyr.polyfilled.min.js
#	dist/plyr.polyfilled.min.js.map
This commit is contained in:
Sam Potts
2018-06-19 19:24:47 +10:00
11 changed files with 85 additions and 86 deletions
+20 -20
View File
@@ -780,22 +780,17 @@ typeof navigator === "object" && (function (global, factory) {
// Quality // Quality
Object.defineProperty(player.media, 'quality', { Object.defineProperty(player.media, 'quality', {
get: function get$$1() { get: function get() {
// Get sources // Get sources
var sources = html5.getSources.call(player); var sources = html5.getSources.call(player);
var source = sources.find(function (source) {
var _sources$filter = sources.filter(function (source) {
return source.getAttribute('src') === player.source; return source.getAttribute('src') === player.source;
}), });
_sources$filter2 = slicedToArray(_sources$filter, 1),
source = _sources$filter2[0];
// Return size, if match is found // Return size, if match is found
return source && Number(source.getAttribute('size')); return source && Number(source.getAttribute('size'));
}, },
set: function set$$1(input) { set: function set(input) {
// Get sources // Get sources
var sources = html5.getSources.call(player); var sources = html5.getSources.call(player);
@@ -810,25 +805,30 @@ typeof navigator === "object" && (function (global, factory) {
} }
// Get current state // Get current state
var currentTime = player.currentTime, var _player$media = player.media,
playing = player.playing; currentTime = _player$media.currentTime,
paused = _player$media.paused,
preload = _player$media.preload,
readyState = _player$media.readyState;
// Set new source // Set new source
player.media.src = source.getAttribute('src'); player.media.src = source.getAttribute('src');
// Prevent loading if preload="none" and the current source isn't loaded (#1044)
if (preload !== 'none' || readyState) {
// Restore time // Restore time
var onLoadedMetaData = function onLoadedMetaData() { player.once('loadedmetadata', function () {
player.currentTime = currentTime; player.currentTime = currentTime;
};
player.once('loadedmetadata', onLoadedMetaData); // Resume playing
if (!paused) {
player.play();
}
});
// Load new source // Load new source
player.media.load(); player.media.load();
// Resume playing
if (playing) {
player.play();
} }
// Trigger change event // Trigger change event
@@ -5816,8 +5816,8 @@ typeof navigator === "object" && (function (global, factory) {
return Number(instance.getCurrentTime()); return Number(instance.getCurrentTime());
}, },
set: function set(time) { set: function set(time) {
// If paused, mute audio preventively (YouTube starts playing on seek if the video hasn't been played yet). // If paused and never played, mute audio preventively (YouTube starts playing on seek if the video hasn't been played yet).
if (player.paused) { if (player.paused && !player.embed.hasPlayed) {
player.embed.mute(); player.embed.mute();
} }
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+27 -26
View File
@@ -2979,7 +2979,7 @@ typeof navigator === "object" && (function (global, factory) {
var defineProperty = _objectDp.f; var defineProperty = _objectDp.f;
var _wksDefine = function (name) { var _wksDefine = function (name) {
var $Symbol = _core.Symbol || (_core.Symbol = _library ? {} : _global.Symbol || {}); var $Symbol = _core.Symbol || (_core.Symbol = _global.Symbol || {});
if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: _wksExt.f(name) }); if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: _wksExt.f(name) });
}; };
@@ -6169,16 +6169,11 @@ typeof navigator === "object" && (function (global, factory) {
get: function get() { get: function get() {
// Get sources // Get sources
var sources = html5.getSources.call(player); var sources = html5.getSources.call(player);
var source = sources.find(function (source) {
var _sources$filter = sources.filter(function (source) {
return source.getAttribute('src') === player.source; return source.getAttribute('src') === player.source;
}), });
_sources$filter2 = slicedToArray(_sources$filter, 1),
source = _sources$filter2[0];
// Return size, if match is found // Return size, if match is found
return source && Number(source.getAttribute('size')); return source && Number(source.getAttribute('size'));
}, },
set: function set(input) { set: function set(input) {
@@ -6196,25 +6191,30 @@ typeof navigator === "object" && (function (global, factory) {
} }
// Get current state // Get current state
var currentTime = player.currentTime, var _player$media = player.media,
playing = player.playing; currentTime = _player$media.currentTime,
paused = _player$media.paused,
preload = _player$media.preload,
readyState = _player$media.readyState;
// Set new source // Set new source
player.media.src = source.getAttribute('src'); player.media.src = source.getAttribute('src');
// Prevent loading if preload="none" and the current source isn't loaded (#1044)
if (preload !== 'none' || readyState) {
// Restore time // Restore time
var onLoadedMetaData = function onLoadedMetaData() { player.once('loadedmetadata', function () {
player.currentTime = currentTime; player.currentTime = currentTime;
};
player.once('loadedmetadata', onLoadedMetaData); // Resume playing
if (!paused) {
player.play();
}
});
// Load new source // Load new source
player.media.load(); player.media.load();
// Resume playing
if (playing) {
player.play();
} }
// Trigger change event // Trigger change event
@@ -7343,6 +7343,7 @@ typeof navigator === "object" && (function (global, factory) {
// Menu required // Menu required
if (!is$1.element(this.elements.settings.panels.quality)) { if (!is$1.element(this.elements.settings.panels.quality)) {
console.warn('Not an element');
return; return;
} }
@@ -7357,6 +7358,7 @@ typeof navigator === "object" && (function (global, factory) {
} }
// Toggle the pane and tab // Toggle the pane and tab
console.warn(this.options.quality);
var toggle = !is$1.empty(this.options.quality) && this.options.quality.length > 1; var toggle = !is$1.empty(this.options.quality) && this.options.quality.length > 1;
controls.toggleMenuButton.call(this, type, toggle); controls.toggleMenuButton.call(this, type, toggle);
@@ -7773,7 +7775,10 @@ typeof navigator === "object" && (function (global, factory) {
toggleHidden(target, false); toggleHidden(target, false);
// Focus the first item // Focus the first item
target.querySelectorAll('[role^="menuitem"]')[0].focus(); var firstItem = target.querySelector('[role^="menuitem"]');
if (firstItem) {
firstItem.focus();
}
}, },
@@ -9376,11 +9381,9 @@ typeof navigator === "object" && (function (global, factory) {
} }
// If there's a play button, set label // If there's a play button, set label
if (is$1.nodeList(this.elements.buttons.play)) { Array.from(this.elements.buttons.play || []).forEach(function (button) {
Array.from(this.elements.buttons.play).forEach(function (button) {
button.setAttribute('aria-label', label); button.setAttribute('aria-label', label);
}); });
}
// Set iframe title // Set iframe title
// https://github.com/sampotts/plyr/issues/124 // https://github.com/sampotts/plyr/issues/124
@@ -9460,11 +9463,9 @@ typeof navigator === "object" && (function (global, factory) {
toggleClass(this.elements.container, this.config.classNames.stopped, this.stopped); toggleClass(this.elements.container, this.config.classNames.stopped, this.stopped);
// Set state // Set state
if (is$1.nodeList(this.elements.buttons.play)) { Array.from(this.elements.buttons.play || []).forEach(function (target) {
Array.from(this.elements.buttons.play).forEach(function (target) {
target.pressed = _this3.playing; target.pressed = _this3.playing;
}); });
}
// Only update controls on non timeupdate events // Only update controls on non timeupdate events
if (is$1.event(event) && event.type === 'timeupdate') { if (is$1.event(event) && event.type === 'timeupdate') {
@@ -11195,8 +11196,8 @@ typeof navigator === "object" && (function (global, factory) {
return Number(instance.getCurrentTime()); return Number(instance.getCurrentTime());
}, },
set: function set(time) { set: function set(time) {
// If paused, mute audio preventively (YouTube starts playing on seek if the video hasn't been played yet). // If paused and never played, mute audio preventively (YouTube starts playing on seek if the video hasn't been played yet).
if (player.paused) { if (player.paused && !player.embed.hasPlayed) {
player.embed.mute(); player.embed.mute();
} }
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+11 -9
View File
@@ -39,7 +39,7 @@ const html5 = {
get() { get() {
// Get sources // Get sources
const sources = html5.getSources.call(player); const sources = html5.getSources.call(player);
const [source] = sources.filter(source => source.getAttribute('src') === player.source); const source = sources.find(source => source.getAttribute('src') === player.source);
// Return size, if match is found // Return size, if match is found
return source && Number(source.getAttribute('size')); return source && Number(source.getAttribute('size'));
@@ -57,23 +57,25 @@ const html5 = {
} }
// Get current state // Get current state
const { currentTime, playing } = player; const { currentTime, paused, preload, readyState } = player.media;
// Set new source // Set new source
player.media.src = source.getAttribute('src'); player.media.src = source.getAttribute('src');
// Prevent loading if preload="none" and the current source isn't loaded (#1044)
if (preload !== 'none' || readyState) {
// Restore time // Restore time
const onLoadedMetaData = () => { player.once('loadedmetadata', () => {
player.currentTime = currentTime; player.currentTime = currentTime;
};
player.once('loadedmetadata', onLoadedMetaData); // Resume playing
if (!paused) {
player.play();
}
});
// Load new source // Load new source
player.media.load(); player.media.load();
// Resume playing
if (playing) {
player.play();
} }
// Trigger change event // Trigger change event
+2 -2
View File
@@ -270,8 +270,8 @@ const youtube = {
return Number(instance.getCurrentTime()); return Number(instance.getCurrentTime());
}, },
set(time) { set(time) {
// If paused, mute audio preventively (YouTube starts playing on seek if the video hasn't been played yet). // If paused and never played, mute audio preventively (YouTube starts playing on seek if the video hasn't been played yet).
if (player.paused) { if (player.paused && !player.embed.hasPlayed) {
player.embed.mute(); player.embed.mute();
} }
+2 -6
View File
@@ -135,11 +135,9 @@ const ui = {
} }
// If there's a play button, set label // If there's a play button, set label
if (is.nodeList(this.elements.buttons.play)) { Array.from(this.elements.buttons.play || []).forEach(button => {
Array.from(this.elements.buttons.play).forEach(button => {
button.setAttribute('aria-label', label); button.setAttribute('aria-label', label);
}); });
}
// Set iframe title // Set iframe title
// https://github.com/sampotts/plyr/issues/124 // https://github.com/sampotts/plyr/issues/124
@@ -214,11 +212,9 @@ const ui = {
toggleClass(this.elements.container, this.config.classNames.stopped, this.stopped); toggleClass(this.elements.container, this.config.classNames.stopped, this.stopped);
// Set state // Set state
if (is.nodeList(this.elements.buttons.play)) { Array.from(this.elements.buttons.play || []).forEach(target => {
Array.from(this.elements.buttons.play).forEach(target => {
target.pressed = this.playing; target.pressed = this.playing;
}); });
}
// Only update controls on non timeupdate events // Only update controls on non timeupdate events
if (is.event(event) && event.type === 'timeupdate') { if (is.event(event) && event.type === 'timeupdate') {