aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/controls.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/controls.js')
-rw-r--r--src/js/controls.js49
1 files changed, 27 insertions, 22 deletions
diff --git a/src/js/controls.js b/src/js/controls.js
index 7b1eada6..1bbe10d3 100644
--- a/src/js/controls.js
+++ b/src/js/controls.js
@@ -22,12 +22,12 @@ const controls = {
const range = utils.is.event(target) ? target.target : target;
// Needs to be a valid <input type='range'>
- if (!utils.is.htmlElement(range) || range.getAttribute('type') !== 'range') {
+ if (!utils.is.element(range) || range.getAttribute('type') !== 'range') {
return;
}
// Inject the stylesheet if needed
- if (!utils.is.htmlElement(this.elements.styleSheet)) {
+ if (!utils.is.element(this.elements.styleSheet)) {
this.elements.styleSheet = utils.createElement('style');
this.elements.container.appendChild(this.elements.styleSheet);
}
@@ -322,7 +322,7 @@ const controls = {
// Create time display
createTime(type) {
- const container = utils.createElement('span', {
+ const container = utils.createElement('div', {
class: 'plyr__time',
});
@@ -368,7 +368,7 @@ const controls = {
label.appendChild(faux);
label.insertAdjacentHTML('beforeend', title);
- if (utils.is.htmlElement(badge)) {
+ if (utils.is.element(badge)) {
label.appendChild(badge);
}
@@ -381,8 +381,8 @@ const controls = {
// Bail if setting not true
if (
!this.config.tooltips.seek ||
- !utils.is.htmlElement(this.elements.inputs.seek) ||
- !utils.is.htmlElement(this.elements.display.seekTooltip) ||
+ !utils.is.element(this.elements.inputs.seek) ||
+ !utils.is.element(this.elements.display.seekTooltip) ||
this.duration === 0
) {
return;
@@ -542,7 +542,7 @@ const controls = {
switch (setting) {
case 'captions':
- value = this.captions.enabled ? this.captions.language : '';
+ value = this.captions.active ? this.captions.language : '';
break;
default:
@@ -555,13 +555,13 @@ const controls = {
// Unsupported value
if (!this.options[setting].includes(value)) {
- this.console.warn(`Unsupported value of '${value}' for ${setting}`);
+ this.debug.warn(`Unsupported value of '${value}' for ${setting}`);
return;
}
// Disabled value
if (!this.config[setting].options.includes(value)) {
- this.console.warn(`Disabled value of '${value}' for ${setting}`);
+ this.debug.warn(`Disabled value of '${value}' for ${setting}`);
return;
}
@@ -569,7 +569,7 @@ const controls = {
}
// Get the list if we need to
- if (!utils.is.htmlElement(list)) {
+ if (!utils.is.element(list)) {
list = pane && pane.querySelector('ul');
}
@@ -582,7 +582,7 @@ const controls = {
// Find the radio option
const target = list && list.querySelector(`input[value="${value}"]`);
- if (utils.is.htmlElement(target)) {
+ if (utils.is.element(target)) {
// Check it
target.checked = true;
}
@@ -638,7 +638,7 @@ const controls = {
return this.config.i18n.none;
}
- if (this.captions.enabled) {
+ if (this.captions.active) {
const currentTrack = captions.getCurrentTrack.call(this);
if (utils.is.track(currentTrack)) {
@@ -736,10 +736,10 @@ const controls = {
toggleMenu(event) {
const { form } = this.elements.settings;
const button = this.elements.buttons.settings;
- const show = utils.is.boolean(event) ? event : utils.is.htmlElement(form) && form.getAttribute('aria-hidden') === 'true';
+ const show = utils.is.boolean(event) ? event : utils.is.element(form) && form.getAttribute('aria-hidden') === 'true';
if (utils.is.event(event)) {
- const isMenuItem = utils.is.htmlElement(form) && form.contains(event.target);
+ const isMenuItem = utils.is.element(form) && form.contains(event.target);
const isButton = event.target === this.elements.buttons.settings;
// If the click was inside the form or if the click
@@ -756,11 +756,11 @@ const controls = {
}
// Set form and button attributes
- if (utils.is.htmlElement(button)) {
+ if (utils.is.element(button)) {
button.setAttribute('aria-expanded', show);
}
- if (utils.is.htmlElement(form)) {
+ if (utils.is.element(form)) {
form.setAttribute('aria-hidden', !show);
utils.toggleClass(this.elements.container, this.config.classNames.menu.open, show);
@@ -809,7 +809,7 @@ const controls = {
const pane = document.getElementById(tab.getAttribute('aria-controls'));
// Nothing to show, bail
- if (!utils.is.htmlElement(pane)) {
+ if (!utils.is.element(pane)) {
return;
}
@@ -908,7 +908,7 @@ const controls = {
// Progress
if (this.config.controls.includes('progress')) {
- const progress = utils.createElement('span', utils.getAttributesFromSelector(this.config.selectors.progress));
+ const progress = utils.createElement('div', utils.getAttributesFromSelector(this.config.selectors.progress));
// Seek range slider
const seek = controls.createRange.call(this, 'seek', {
@@ -958,7 +958,7 @@ const controls = {
// Volume range control
if (this.config.controls.includes('volume')) {
- const volume = utils.createElement('span', {
+ const volume = utils.createElement('div', {
class: 'plyr__volume',
});
@@ -1186,22 +1186,27 @@ const controls = {
}
// Inject into the container by default
- if (!utils.is.htmlElement(target)) {
+ if (!utils.is.element(target)) {
target = this.elements.container;
}
// Inject controls HTML
- if (utils.is.htmlElement(container)) {
+ if (utils.is.element(container)) {
target.appendChild(container);
} else {
target.insertAdjacentHTML('beforeend', container);
}
// Find the elements if need be
- if (utils.is.htmlElement(this.elements.controls)) {
+ if (utils.is.element(this.elements.controls)) {
utils.findElements.call(this);
}
+ // Edge sometimes doesn't finish the paint so force a redraw
+ if (window.navigator.userAgent.includes('Edge')) {
+ utils.repaint(target);
+ }
+
// Setup tooltips
if (this.config.tooltips.controls) {
const labels = utils.getElements.call(