Housekeeping
This commit is contained in:
parent
4c3bf25b8a
commit
5b7a025d26
83
demo/dist/demo.js
vendored
83
demo/dist/demo.js
vendored
@ -5883,7 +5883,7 @@ typeof navigator === "object" && (function () {
|
|||||||
list.appendChild(menuItem);
|
list.appendChild(menuItem);
|
||||||
},
|
},
|
||||||
// Format a time for display
|
// Format a time for display
|
||||||
formatTime: function formatTime$$1() {
|
formatTime: function formatTime$1() {
|
||||||
var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
||||||
var inverted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
var inverted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||||
|
|
||||||
@ -6003,8 +6003,8 @@ typeof navigator === "object" && (function () {
|
|||||||
range.setAttribute('aria-valuenow', this.currentTime);
|
range.setAttribute('aria-valuenow', this.currentTime);
|
||||||
var currentTime = controls.formatTime(this.currentTime);
|
var currentTime = controls.formatTime(this.currentTime);
|
||||||
var duration = controls.formatTime(this.duration);
|
var duration = controls.formatTime(this.duration);
|
||||||
var format$$1 = i18n.get('seekLabel', this.config);
|
var format = i18n.get('seekLabel', this.config);
|
||||||
range.setAttribute('aria-valuetext', format$$1.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
range.setAttribute('aria-valuetext', format.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
||||||
} else if (matches$1(range, this.config.selectors.inputs.volume)) {
|
} else if (matches$1(range, this.config.selectors.inputs.volume)) {
|
||||||
var percent = range.value * 100;
|
var percent = range.value * 100;
|
||||||
range.setAttribute('aria-valuenow', percent);
|
range.setAttribute('aria-valuenow', percent);
|
||||||
@ -8236,13 +8236,13 @@ typeof navigator === "object" && (function () {
|
|||||||
},
|
},
|
||||||
// Toggle controls based on state and `force` argument
|
// Toggle controls based on state and `force` argument
|
||||||
toggleControls: function toggleControls(force) {
|
toggleControls: function toggleControls(force) {
|
||||||
var controls$$1 = this.elements.controls;
|
var controls = this.elements.controls;
|
||||||
|
|
||||||
if (controls$$1 && this.config.hideControls) {
|
if (controls && this.config.hideControls) {
|
||||||
// Don't hide controls if a touch-device user recently seeked. (Must be limited to touch devices, or it occasionally prevents desktop controls from hiding.)
|
// Don't hide controls if a touch-device user recently seeked. (Must be limited to touch devices, or it occasionally prevents desktop controls from hiding.)
|
||||||
var recentTouchSeek = this.touch && this.lastSeekTime + 2000 > Date.now(); // Show controls if force, loading, paused, button interaction, or recent seek, otherwise hide
|
var recentTouchSeek = this.touch && this.lastSeekTime + 2000 > Date.now(); // Show controls if force, loading, paused, button interaction, or recent seek, otherwise hide
|
||||||
|
|
||||||
this.toggleControls(Boolean(force || this.loading || this.paused || controls$$1.pressed || controls$$1.hover || recentTouchSeek));
|
this.toggleControls(Boolean(force || this.loading || this.paused || controls.pressed || controls.hover || recentTouchSeek));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -8548,11 +8548,11 @@ typeof navigator === "object" && (function () {
|
|||||||
|
|
||||||
|
|
||||||
on.call(player, elements.container, 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen', function (event) {
|
on.call(player, elements.container, 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen', function (event) {
|
||||||
var controls$$1 = elements.controls; // Remove button states for fullscreen
|
var controls = elements.controls; // Remove button states for fullscreen
|
||||||
|
|
||||||
if (controls$$1 && event.type === 'enterfullscreen') {
|
if (controls && event.type === 'enterfullscreen') {
|
||||||
controls$$1.pressed = false;
|
controls.pressed = false;
|
||||||
controls$$1.hover = false;
|
controls.hover = false;
|
||||||
} // Show, then hide after a timeout unless another control event occurs
|
} // Show, then hide after a timeout unless another control event occurs
|
||||||
|
|
||||||
|
|
||||||
@ -8807,7 +8807,7 @@ typeof navigator === "object" && (function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "controls",
|
key: "controls",
|
||||||
value: function controls$$1() {
|
value: function controls$1() {
|
||||||
var _this3 = this;
|
var _this3 = this;
|
||||||
|
|
||||||
var player = this.player;
|
var player = this.player;
|
||||||
@ -9170,16 +9170,23 @@ typeof navigator === "object" && (function () {
|
|||||||
maxTries = (args.numRetries || 0) + 1,
|
maxTries = (args.numRetries || 0) + 1,
|
||||||
beforeCallbackFn = args.before || devnull,
|
beforeCallbackFn = args.before || devnull,
|
||||||
pathStripped = path.replace(/^(css|img)!/, ''),
|
pathStripped = path.replace(/^(css|img)!/, ''),
|
||||||
isCss,
|
isLegacyIECss,
|
||||||
e;
|
e;
|
||||||
numTries = numTries || 0;
|
numTries = numTries || 0;
|
||||||
|
|
||||||
if (/(^css!|\.css$)/.test(path)) {
|
if (/(^css!|\.css$)/.test(path)) {
|
||||||
isCss = true; // css
|
// css
|
||||||
|
|
||||||
e = doc.createElement('link');
|
e = doc.createElement('link');
|
||||||
e.rel = 'stylesheet';
|
e.rel = 'stylesheet';
|
||||||
e.href = pathStripped; //.replace(/^css!/, ''); // remove "css!" prefix
|
e.href = pathStripped; // tag IE9+
|
||||||
|
|
||||||
|
isLegacyIECss = 'hideFocus' in e; // use preload in IE Edge (to detect load errors)
|
||||||
|
|
||||||
|
if (isLegacyIECss && e.relList) {
|
||||||
|
isLegacyIECss = 0;
|
||||||
|
e.rel = 'preload';
|
||||||
|
e.as = 'style';
|
||||||
|
}
|
||||||
} else if (/(^img!|\.(png|gif|jpg|svg)$)/.test(path)) {
|
} else if (/(^img!|\.(png|gif|jpg|svg)$)/.test(path)) {
|
||||||
// image
|
// image
|
||||||
e = doc.createElement('img');
|
e = doc.createElement('img');
|
||||||
@ -9192,10 +9199,10 @@ typeof navigator === "object" && (function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
e.onload = e.onerror = e.onbeforeload = function (ev) {
|
e.onload = e.onerror = e.onbeforeload = function (ev) {
|
||||||
var result = ev.type[0]; // Note: The following code isolates IE using `hideFocus` and treats empty
|
var result = ev.type[0]; // treat empty stylesheets as failures to get around lack of onerror
|
||||||
// stylesheets as failures to get around lack of onerror support
|
// support in IE9-11
|
||||||
|
|
||||||
if (isCss && 'hideFocus' in e) {
|
if (isLegacyIECss) {
|
||||||
try {
|
try {
|
||||||
if (!e.sheet.cssText.length) result = 'e';
|
if (!e.sheet.cssText.length) result = 'e';
|
||||||
} catch (x) {
|
} catch (x) {
|
||||||
@ -9213,6 +9220,9 @@ typeof navigator === "object" && (function () {
|
|||||||
if (numTries < maxTries) {
|
if (numTries < maxTries) {
|
||||||
return loadFile(path, callbackFn, args, numTries);
|
return loadFile(path, callbackFn, args, numTries);
|
||||||
}
|
}
|
||||||
|
} else if (e.rel == 'preload' && e.as == 'style') {
|
||||||
|
// activate preloaded stylesheets
|
||||||
|
return e.rel = 'stylesheet'; // jshint ignore:line
|
||||||
} // execute callback
|
} // execute callback
|
||||||
|
|
||||||
|
|
||||||
@ -9278,16 +9288,27 @@ typeof navigator === "object" && (function () {
|
|||||||
} else {
|
} else {
|
||||||
bundleIdCache[bundleId] = true;
|
bundleIdCache[bundleId] = true;
|
||||||
}
|
}
|
||||||
} // load scripts
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function loadFn(resolve, reject) {
|
||||||
loadFiles(paths, function (pathsNotFound) {
|
loadFiles(paths, function (pathsNotFound) {
|
||||||
// execute callbacks
|
// execute callbacks
|
||||||
executeCallbacks(args, pathsNotFound); // publish bundle load event
|
executeCallbacks(args, pathsNotFound); // resolve Promise
|
||||||
|
|
||||||
|
if (resolve) {
|
||||||
|
executeCallbacks({
|
||||||
|
success: resolve,
|
||||||
|
error: reject
|
||||||
|
}, pathsNotFound);
|
||||||
|
} // publish bundle load event
|
||||||
|
|
||||||
|
|
||||||
publish(bundleId, pathsNotFound);
|
publish(bundleId, pathsNotFound);
|
||||||
}, args);
|
}, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (args.returnPromise) return new Promise(loadFn);else loadFn();
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Execute callbacks when dependencies have been satisfied.
|
* Execute callbacks when dependencies have been satisfied.
|
||||||
* @param {(string|string[])} deps - List of bundle ids
|
* @param {(string|string[])} deps - List of bundle ids
|
||||||
@ -9392,7 +9413,7 @@ typeof navigator === "object" && (function () {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
// API Ready
|
// API Ready
|
||||||
ready: function ready$$1() {
|
ready: function ready() {
|
||||||
var _this2 = this;
|
var _this2 = this;
|
||||||
|
|
||||||
var player = this;
|
var player = this;
|
||||||
@ -9771,7 +9792,7 @@ typeof navigator === "object" && (function () {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
// API ready
|
// API ready
|
||||||
ready: function ready$$1() {
|
ready: function ready() {
|
||||||
var player = this; // Ignore already setup (race condition)
|
var player = this; // Ignore already setup (race condition)
|
||||||
|
|
||||||
var currentId = player.media.getAttribute('id');
|
var currentId = player.media.getAttribute('id');
|
||||||
@ -9799,8 +9820,8 @@ typeof navigator === "object" && (function () {
|
|||||||
});
|
});
|
||||||
player.media = replaceElement(container, player.media); // Id to poster wrapper
|
player.media = replaceElement(container, player.media); // Id to poster wrapper
|
||||||
|
|
||||||
var posterSrc = function posterSrc(format$$1) {
|
var posterSrc = function posterSrc(format) {
|
||||||
return "https://img.youtube.com/vi/".concat(videoId, "/").concat(format$$1, "default.jpg");
|
return "https://img.youtube.com/vi/".concat(videoId, "/").concat(format, "default.jpg");
|
||||||
}; // Check thumbnail images in order of quality, but reject fallback thumbnails (120px wide)
|
}; // Check thumbnail images in order of quality, but reject fallback thumbnails (120px wide)
|
||||||
|
|
||||||
|
|
||||||
@ -10193,7 +10214,7 @@ typeof navigator === "object" && (function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "ready",
|
key: "ready",
|
||||||
value: function ready$$1() {
|
value: function ready() {
|
||||||
var _this3 = this;
|
var _this3 = this;
|
||||||
|
|
||||||
// Start ticking our safety timer. If the whole advertisement
|
// Start ticking our safety timer. If the whole advertisement
|
||||||
@ -10677,7 +10698,7 @@ typeof navigator === "object" && (function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "on",
|
key: "on",
|
||||||
value: function on$$1(event, callback) {
|
value: function on(event, callback) {
|
||||||
if (!is$1.array(this.events[event])) {
|
if (!is$1.array(this.events[event])) {
|
||||||
this.events[event] = [];
|
this.events[event] = [];
|
||||||
}
|
}
|
||||||
@ -12025,7 +12046,7 @@ typeof navigator === "object" && (function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "on",
|
key: "on",
|
||||||
value: function on$$1(event, callback) {
|
value: function on$1(event, callback) {
|
||||||
on.call(this, this.elements.container, event, callback);
|
on.call(this, this.elements.container, event, callback);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -12036,7 +12057,7 @@ typeof navigator === "object" && (function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "once",
|
key: "once",
|
||||||
value: function once$$1(event, callback) {
|
value: function once$1(event, callback) {
|
||||||
once.call(this, this.elements.container, event, callback);
|
once.call(this, this.elements.container, event, callback);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -12047,7 +12068,7 @@ typeof navigator === "object" && (function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "off",
|
key: "off",
|
||||||
value: function off$$1(event, callback) {
|
value: function off$1(event, callback) {
|
||||||
off(this.elements.container, event, callback);
|
off(this.elements.container, event, callback);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -12706,7 +12727,7 @@ typeof navigator === "object" && (function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "loadSprite",
|
key: "loadSprite",
|
||||||
value: function loadSprite$$1(url, id) {
|
value: function loadSprite$1(url, id) {
|
||||||
return loadSprite(url, id);
|
return loadSprite(url, id);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
2
demo/dist/demo.min.js
vendored
2
demo/dist/demo.min.js
vendored
File diff suppressed because one or more lines are too long
2
demo/dist/demo.min.js.map
vendored
2
demo/dist/demo.min.js.map
vendored
File diff suppressed because one or more lines are too long
89
dist/plyr.js
vendored
89
dist/plyr.js
vendored
@ -1,8 +1,8 @@
|
|||||||
typeof navigator === "object" && (function (global, factory) {
|
typeof navigator === "object" && (function (global, factory) {
|
||||||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
typeof define === 'function' && define.amd ? define('Plyr', factory) :
|
typeof define === 'function' && define.amd ? define('Plyr', factory) :
|
||||||
(global.Plyr = factory());
|
(global = global || self, global.Plyr = factory());
|
||||||
}(this, (function () { 'use strict';
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
function _classCallCheck(instance, Constructor) {
|
function _classCallCheck(instance, Constructor) {
|
||||||
if (!(instance instanceof Constructor)) {
|
if (!(instance instanceof Constructor)) {
|
||||||
@ -2033,7 +2033,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
list.appendChild(menuItem);
|
list.appendChild(menuItem);
|
||||||
},
|
},
|
||||||
// Format a time for display
|
// Format a time for display
|
||||||
formatTime: function formatTime$$1() {
|
formatTime: function formatTime$1() {
|
||||||
var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
||||||
var inverted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
var inverted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||||
|
|
||||||
@ -2153,8 +2153,8 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
range.setAttribute('aria-valuenow', this.currentTime);
|
range.setAttribute('aria-valuenow', this.currentTime);
|
||||||
var currentTime = controls.formatTime(this.currentTime);
|
var currentTime = controls.formatTime(this.currentTime);
|
||||||
var duration = controls.formatTime(this.duration);
|
var duration = controls.formatTime(this.duration);
|
||||||
var format$$1 = i18n.get('seekLabel', this.config);
|
var format = i18n.get('seekLabel', this.config);
|
||||||
range.setAttribute('aria-valuetext', format$$1.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
range.setAttribute('aria-valuetext', format.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
||||||
} else if (matches$1(range, this.config.selectors.inputs.volume)) {
|
} else if (matches$1(range, this.config.selectors.inputs.volume)) {
|
||||||
var percent = range.value * 100;
|
var percent = range.value * 100;
|
||||||
range.setAttribute('aria-valuenow', percent);
|
range.setAttribute('aria-valuenow', percent);
|
||||||
@ -4386,13 +4386,13 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
},
|
},
|
||||||
// Toggle controls based on state and `force` argument
|
// Toggle controls based on state and `force` argument
|
||||||
toggleControls: function toggleControls(force) {
|
toggleControls: function toggleControls(force) {
|
||||||
var controls$$1 = this.elements.controls;
|
var controls = this.elements.controls;
|
||||||
|
|
||||||
if (controls$$1 && this.config.hideControls) {
|
if (controls && this.config.hideControls) {
|
||||||
// Don't hide controls if a touch-device user recently seeked. (Must be limited to touch devices, or it occasionally prevents desktop controls from hiding.)
|
// Don't hide controls if a touch-device user recently seeked. (Must be limited to touch devices, or it occasionally prevents desktop controls from hiding.)
|
||||||
var recentTouchSeek = this.touch && this.lastSeekTime + 2000 > Date.now(); // Show controls if force, loading, paused, button interaction, or recent seek, otherwise hide
|
var recentTouchSeek = this.touch && this.lastSeekTime + 2000 > Date.now(); // Show controls if force, loading, paused, button interaction, or recent seek, otherwise hide
|
||||||
|
|
||||||
this.toggleControls(Boolean(force || this.loading || this.paused || controls$$1.pressed || controls$$1.hover || recentTouchSeek));
|
this.toggleControls(Boolean(force || this.loading || this.paused || controls.pressed || controls.hover || recentTouchSeek));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -4698,11 +4698,11 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
|
|
||||||
on.call(player, elements.container, 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen', function (event) {
|
on.call(player, elements.container, 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen', function (event) {
|
||||||
var controls$$1 = elements.controls; // Remove button states for fullscreen
|
var controls = elements.controls; // Remove button states for fullscreen
|
||||||
|
|
||||||
if (controls$$1 && event.type === 'enterfullscreen') {
|
if (controls && event.type === 'enterfullscreen') {
|
||||||
controls$$1.pressed = false;
|
controls.pressed = false;
|
||||||
controls$$1.hover = false;
|
controls.hover = false;
|
||||||
} // Show, then hide after a timeout unless another control event occurs
|
} // Show, then hide after a timeout unless another control event occurs
|
||||||
|
|
||||||
|
|
||||||
@ -4957,7 +4957,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "controls",
|
key: "controls",
|
||||||
value: function controls$$1() {
|
value: function controls$1() {
|
||||||
var _this3 = this;
|
var _this3 = this;
|
||||||
|
|
||||||
var player = this.player;
|
var player = this.player;
|
||||||
@ -5326,16 +5326,23 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
maxTries = (args.numRetries || 0) + 1,
|
maxTries = (args.numRetries || 0) + 1,
|
||||||
beforeCallbackFn = args.before || devnull,
|
beforeCallbackFn = args.before || devnull,
|
||||||
pathStripped = path.replace(/^(css|img)!/, ''),
|
pathStripped = path.replace(/^(css|img)!/, ''),
|
||||||
isCss,
|
isLegacyIECss,
|
||||||
e;
|
e;
|
||||||
numTries = numTries || 0;
|
numTries = numTries || 0;
|
||||||
|
|
||||||
if (/(^css!|\.css$)/.test(path)) {
|
if (/(^css!|\.css$)/.test(path)) {
|
||||||
isCss = true; // css
|
// css
|
||||||
|
|
||||||
e = doc.createElement('link');
|
e = doc.createElement('link');
|
||||||
e.rel = 'stylesheet';
|
e.rel = 'stylesheet';
|
||||||
e.href = pathStripped; //.replace(/^css!/, ''); // remove "css!" prefix
|
e.href = pathStripped; // tag IE9+
|
||||||
|
|
||||||
|
isLegacyIECss = 'hideFocus' in e; // use preload in IE Edge (to detect load errors)
|
||||||
|
|
||||||
|
if (isLegacyIECss && e.relList) {
|
||||||
|
isLegacyIECss = 0;
|
||||||
|
e.rel = 'preload';
|
||||||
|
e.as = 'style';
|
||||||
|
}
|
||||||
} else if (/(^img!|\.(png|gif|jpg|svg)$)/.test(path)) {
|
} else if (/(^img!|\.(png|gif|jpg|svg)$)/.test(path)) {
|
||||||
// image
|
// image
|
||||||
e = doc.createElement('img');
|
e = doc.createElement('img');
|
||||||
@ -5348,10 +5355,10 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
e.onload = e.onerror = e.onbeforeload = function (ev) {
|
e.onload = e.onerror = e.onbeforeload = function (ev) {
|
||||||
var result = ev.type[0]; // Note: The following code isolates IE using `hideFocus` and treats empty
|
var result = ev.type[0]; // treat empty stylesheets as failures to get around lack of onerror
|
||||||
// stylesheets as failures to get around lack of onerror support
|
// support in IE9-11
|
||||||
|
|
||||||
if (isCss && 'hideFocus' in e) {
|
if (isLegacyIECss) {
|
||||||
try {
|
try {
|
||||||
if (!e.sheet.cssText.length) result = 'e';
|
if (!e.sheet.cssText.length) result = 'e';
|
||||||
} catch (x) {
|
} catch (x) {
|
||||||
@ -5369,6 +5376,9 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
if (numTries < maxTries) {
|
if (numTries < maxTries) {
|
||||||
return loadFile(path, callbackFn, args, numTries);
|
return loadFile(path, callbackFn, args, numTries);
|
||||||
}
|
}
|
||||||
|
} else if (e.rel == 'preload' && e.as == 'style') {
|
||||||
|
// activate preloaded stylesheets
|
||||||
|
return e.rel = 'stylesheet'; // jshint ignore:line
|
||||||
} // execute callback
|
} // execute callback
|
||||||
|
|
||||||
|
|
||||||
@ -5434,16 +5444,27 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
} else {
|
} else {
|
||||||
bundleIdCache[bundleId] = true;
|
bundleIdCache[bundleId] = true;
|
||||||
}
|
}
|
||||||
} // load scripts
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function loadFn(resolve, reject) {
|
||||||
loadFiles(paths, function (pathsNotFound) {
|
loadFiles(paths, function (pathsNotFound) {
|
||||||
// execute callbacks
|
// execute callbacks
|
||||||
executeCallbacks(args, pathsNotFound); // publish bundle load event
|
executeCallbacks(args, pathsNotFound); // resolve Promise
|
||||||
|
|
||||||
|
if (resolve) {
|
||||||
|
executeCallbacks({
|
||||||
|
success: resolve,
|
||||||
|
error: reject
|
||||||
|
}, pathsNotFound);
|
||||||
|
} // publish bundle load event
|
||||||
|
|
||||||
|
|
||||||
publish(bundleId, pathsNotFound);
|
publish(bundleId, pathsNotFound);
|
||||||
}, args);
|
}, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (args.returnPromise) return new Promise(loadFn);else loadFn();
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Execute callbacks when dependencies have been satisfied.
|
* Execute callbacks when dependencies have been satisfied.
|
||||||
* @param {(string|string[])} deps - List of bundle ids
|
* @param {(string|string[])} deps - List of bundle ids
|
||||||
@ -5548,7 +5569,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
// API Ready
|
// API Ready
|
||||||
ready: function ready$$1() {
|
ready: function ready() {
|
||||||
var _this2 = this;
|
var _this2 = this;
|
||||||
|
|
||||||
var player = this;
|
var player = this;
|
||||||
@ -5927,7 +5948,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
// API ready
|
// API ready
|
||||||
ready: function ready$$1() {
|
ready: function ready() {
|
||||||
var player = this; // Ignore already setup (race condition)
|
var player = this; // Ignore already setup (race condition)
|
||||||
|
|
||||||
var currentId = player.media.getAttribute('id');
|
var currentId = player.media.getAttribute('id');
|
||||||
@ -5955,8 +5976,8 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
});
|
});
|
||||||
player.media = replaceElement(container, player.media); // Id to poster wrapper
|
player.media = replaceElement(container, player.media); // Id to poster wrapper
|
||||||
|
|
||||||
var posterSrc = function posterSrc(format$$1) {
|
var posterSrc = function posterSrc(format) {
|
||||||
return "https://img.youtube.com/vi/".concat(videoId, "/").concat(format$$1, "default.jpg");
|
return "https://img.youtube.com/vi/".concat(videoId, "/").concat(format, "default.jpg");
|
||||||
}; // Check thumbnail images in order of quality, but reject fallback thumbnails (120px wide)
|
}; // Check thumbnail images in order of quality, but reject fallback thumbnails (120px wide)
|
||||||
|
|
||||||
|
|
||||||
@ -6349,7 +6370,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "ready",
|
key: "ready",
|
||||||
value: function ready$$1() {
|
value: function ready() {
|
||||||
var _this3 = this;
|
var _this3 = this;
|
||||||
|
|
||||||
// Start ticking our safety timer. If the whole advertisement
|
// Start ticking our safety timer. If the whole advertisement
|
||||||
@ -6833,7 +6854,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "on",
|
key: "on",
|
||||||
value: function on$$1(event, callback) {
|
value: function on(event, callback) {
|
||||||
if (!is$1.array(this.events[event])) {
|
if (!is$1.array(this.events[event])) {
|
||||||
this.events[event] = [];
|
this.events[event] = [];
|
||||||
}
|
}
|
||||||
@ -8181,7 +8202,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "on",
|
key: "on",
|
||||||
value: function on$$1(event, callback) {
|
value: function on$1(event, callback) {
|
||||||
on.call(this, this.elements.container, event, callback);
|
on.call(this, this.elements.container, event, callback);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -8192,7 +8213,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "once",
|
key: "once",
|
||||||
value: function once$$1(event, callback) {
|
value: function once$1(event, callback) {
|
||||||
once.call(this, this.elements.container, event, callback);
|
once.call(this, this.elements.container, event, callback);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -8203,7 +8224,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "off",
|
key: "off",
|
||||||
value: function off$$1(event, callback) {
|
value: function off$1(event, callback) {
|
||||||
off(this.elements.container, event, callback);
|
off(this.elements.container, event, callback);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -8862,7 +8883,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "loadSprite",
|
key: "loadSprite",
|
||||||
value: function loadSprite$$1(url, id) {
|
value: function loadSprite$1(url, id) {
|
||||||
return loadSprite(url, id);
|
return loadSprite(url, id);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -8902,4 +8923,4 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
return Plyr;
|
return Plyr;
|
||||||
|
|
||||||
})));
|
}));
|
||||||
|
2
dist/plyr.min.js
vendored
2
dist/plyr.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/plyr.min.js.map
vendored
2
dist/plyr.min.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/plyr.min.mjs
vendored
2
dist/plyr.min.mjs
vendored
File diff suppressed because one or more lines are too long
2
dist/plyr.min.mjs.map
vendored
2
dist/plyr.min.mjs.map
vendored
File diff suppressed because one or more lines are too long
83
dist/plyr.mjs
vendored
83
dist/plyr.mjs
vendored
@ -2027,7 +2027,7 @@ var controls = {
|
|||||||
list.appendChild(menuItem);
|
list.appendChild(menuItem);
|
||||||
},
|
},
|
||||||
// Format a time for display
|
// Format a time for display
|
||||||
formatTime: function formatTime$$1() {
|
formatTime: function formatTime$1() {
|
||||||
var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
||||||
var inverted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
var inverted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||||
|
|
||||||
@ -2147,8 +2147,8 @@ var controls = {
|
|||||||
range.setAttribute('aria-valuenow', this.currentTime);
|
range.setAttribute('aria-valuenow', this.currentTime);
|
||||||
var currentTime = controls.formatTime(this.currentTime);
|
var currentTime = controls.formatTime(this.currentTime);
|
||||||
var duration = controls.formatTime(this.duration);
|
var duration = controls.formatTime(this.duration);
|
||||||
var format$$1 = i18n.get('seekLabel', this.config);
|
var format = i18n.get('seekLabel', this.config);
|
||||||
range.setAttribute('aria-valuetext', format$$1.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
range.setAttribute('aria-valuetext', format.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
||||||
} else if (matches$1(range, this.config.selectors.inputs.volume)) {
|
} else if (matches$1(range, this.config.selectors.inputs.volume)) {
|
||||||
var percent = range.value * 100;
|
var percent = range.value * 100;
|
||||||
range.setAttribute('aria-valuenow', percent);
|
range.setAttribute('aria-valuenow', percent);
|
||||||
@ -4380,13 +4380,13 @@ var ui = {
|
|||||||
},
|
},
|
||||||
// Toggle controls based on state and `force` argument
|
// Toggle controls based on state and `force` argument
|
||||||
toggleControls: function toggleControls(force) {
|
toggleControls: function toggleControls(force) {
|
||||||
var controls$$1 = this.elements.controls;
|
var controls = this.elements.controls;
|
||||||
|
|
||||||
if (controls$$1 && this.config.hideControls) {
|
if (controls && this.config.hideControls) {
|
||||||
// Don't hide controls if a touch-device user recently seeked. (Must be limited to touch devices, or it occasionally prevents desktop controls from hiding.)
|
// Don't hide controls if a touch-device user recently seeked. (Must be limited to touch devices, or it occasionally prevents desktop controls from hiding.)
|
||||||
var recentTouchSeek = this.touch && this.lastSeekTime + 2000 > Date.now(); // Show controls if force, loading, paused, button interaction, or recent seek, otherwise hide
|
var recentTouchSeek = this.touch && this.lastSeekTime + 2000 > Date.now(); // Show controls if force, loading, paused, button interaction, or recent seek, otherwise hide
|
||||||
|
|
||||||
this.toggleControls(Boolean(force || this.loading || this.paused || controls$$1.pressed || controls$$1.hover || recentTouchSeek));
|
this.toggleControls(Boolean(force || this.loading || this.paused || controls.pressed || controls.hover || recentTouchSeek));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -4692,11 +4692,11 @@ function () {
|
|||||||
|
|
||||||
|
|
||||||
on.call(player, elements.container, 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen', function (event) {
|
on.call(player, elements.container, 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen', function (event) {
|
||||||
var controls$$1 = elements.controls; // Remove button states for fullscreen
|
var controls = elements.controls; // Remove button states for fullscreen
|
||||||
|
|
||||||
if (controls$$1 && event.type === 'enterfullscreen') {
|
if (controls && event.type === 'enterfullscreen') {
|
||||||
controls$$1.pressed = false;
|
controls.pressed = false;
|
||||||
controls$$1.hover = false;
|
controls.hover = false;
|
||||||
} // Show, then hide after a timeout unless another control event occurs
|
} // Show, then hide after a timeout unless another control event occurs
|
||||||
|
|
||||||
|
|
||||||
@ -4951,7 +4951,7 @@ function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "controls",
|
key: "controls",
|
||||||
value: function controls$$1() {
|
value: function controls$1() {
|
||||||
var _this3 = this;
|
var _this3 = this;
|
||||||
|
|
||||||
var player = this.player;
|
var player = this.player;
|
||||||
@ -5320,16 +5320,23 @@ var loadjs_umd = createCommonjsModule(function (module, exports) {
|
|||||||
maxTries = (args.numRetries || 0) + 1,
|
maxTries = (args.numRetries || 0) + 1,
|
||||||
beforeCallbackFn = args.before || devnull,
|
beforeCallbackFn = args.before || devnull,
|
||||||
pathStripped = path.replace(/^(css|img)!/, ''),
|
pathStripped = path.replace(/^(css|img)!/, ''),
|
||||||
isCss,
|
isLegacyIECss,
|
||||||
e;
|
e;
|
||||||
numTries = numTries || 0;
|
numTries = numTries || 0;
|
||||||
|
|
||||||
if (/(^css!|\.css$)/.test(path)) {
|
if (/(^css!|\.css$)/.test(path)) {
|
||||||
isCss = true; // css
|
// css
|
||||||
|
|
||||||
e = doc.createElement('link');
|
e = doc.createElement('link');
|
||||||
e.rel = 'stylesheet';
|
e.rel = 'stylesheet';
|
||||||
e.href = pathStripped; //.replace(/^css!/, ''); // remove "css!" prefix
|
e.href = pathStripped; // tag IE9+
|
||||||
|
|
||||||
|
isLegacyIECss = 'hideFocus' in e; // use preload in IE Edge (to detect load errors)
|
||||||
|
|
||||||
|
if (isLegacyIECss && e.relList) {
|
||||||
|
isLegacyIECss = 0;
|
||||||
|
e.rel = 'preload';
|
||||||
|
e.as = 'style';
|
||||||
|
}
|
||||||
} else if (/(^img!|\.(png|gif|jpg|svg)$)/.test(path)) {
|
} else if (/(^img!|\.(png|gif|jpg|svg)$)/.test(path)) {
|
||||||
// image
|
// image
|
||||||
e = doc.createElement('img');
|
e = doc.createElement('img');
|
||||||
@ -5342,10 +5349,10 @@ var loadjs_umd = createCommonjsModule(function (module, exports) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
e.onload = e.onerror = e.onbeforeload = function (ev) {
|
e.onload = e.onerror = e.onbeforeload = function (ev) {
|
||||||
var result = ev.type[0]; // Note: The following code isolates IE using `hideFocus` and treats empty
|
var result = ev.type[0]; // treat empty stylesheets as failures to get around lack of onerror
|
||||||
// stylesheets as failures to get around lack of onerror support
|
// support in IE9-11
|
||||||
|
|
||||||
if (isCss && 'hideFocus' in e) {
|
if (isLegacyIECss) {
|
||||||
try {
|
try {
|
||||||
if (!e.sheet.cssText.length) result = 'e';
|
if (!e.sheet.cssText.length) result = 'e';
|
||||||
} catch (x) {
|
} catch (x) {
|
||||||
@ -5363,6 +5370,9 @@ var loadjs_umd = createCommonjsModule(function (module, exports) {
|
|||||||
if (numTries < maxTries) {
|
if (numTries < maxTries) {
|
||||||
return loadFile(path, callbackFn, args, numTries);
|
return loadFile(path, callbackFn, args, numTries);
|
||||||
}
|
}
|
||||||
|
} else if (e.rel == 'preload' && e.as == 'style') {
|
||||||
|
// activate preloaded stylesheets
|
||||||
|
return e.rel = 'stylesheet'; // jshint ignore:line
|
||||||
} // execute callback
|
} // execute callback
|
||||||
|
|
||||||
|
|
||||||
@ -5428,16 +5438,27 @@ var loadjs_umd = createCommonjsModule(function (module, exports) {
|
|||||||
} else {
|
} else {
|
||||||
bundleIdCache[bundleId] = true;
|
bundleIdCache[bundleId] = true;
|
||||||
}
|
}
|
||||||
} // load scripts
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function loadFn(resolve, reject) {
|
||||||
loadFiles(paths, function (pathsNotFound) {
|
loadFiles(paths, function (pathsNotFound) {
|
||||||
// execute callbacks
|
// execute callbacks
|
||||||
executeCallbacks(args, pathsNotFound); // publish bundle load event
|
executeCallbacks(args, pathsNotFound); // resolve Promise
|
||||||
|
|
||||||
|
if (resolve) {
|
||||||
|
executeCallbacks({
|
||||||
|
success: resolve,
|
||||||
|
error: reject
|
||||||
|
}, pathsNotFound);
|
||||||
|
} // publish bundle load event
|
||||||
|
|
||||||
|
|
||||||
publish(bundleId, pathsNotFound);
|
publish(bundleId, pathsNotFound);
|
||||||
}, args);
|
}, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (args.returnPromise) return new Promise(loadFn);else loadFn();
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Execute callbacks when dependencies have been satisfied.
|
* Execute callbacks when dependencies have been satisfied.
|
||||||
* @param {(string|string[])} deps - List of bundle ids
|
* @param {(string|string[])} deps - List of bundle ids
|
||||||
@ -5542,7 +5563,7 @@ var vimeo = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
// API Ready
|
// API Ready
|
||||||
ready: function ready$$1() {
|
ready: function ready() {
|
||||||
var _this2 = this;
|
var _this2 = this;
|
||||||
|
|
||||||
var player = this;
|
var player = this;
|
||||||
@ -5921,7 +5942,7 @@ var youtube = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
// API ready
|
// API ready
|
||||||
ready: function ready$$1() {
|
ready: function ready() {
|
||||||
var player = this; // Ignore already setup (race condition)
|
var player = this; // Ignore already setup (race condition)
|
||||||
|
|
||||||
var currentId = player.media.getAttribute('id');
|
var currentId = player.media.getAttribute('id');
|
||||||
@ -5949,8 +5970,8 @@ var youtube = {
|
|||||||
});
|
});
|
||||||
player.media = replaceElement(container, player.media); // Id to poster wrapper
|
player.media = replaceElement(container, player.media); // Id to poster wrapper
|
||||||
|
|
||||||
var posterSrc = function posterSrc(format$$1) {
|
var posterSrc = function posterSrc(format) {
|
||||||
return "https://img.youtube.com/vi/".concat(videoId, "/").concat(format$$1, "default.jpg");
|
return "https://img.youtube.com/vi/".concat(videoId, "/").concat(format, "default.jpg");
|
||||||
}; // Check thumbnail images in order of quality, but reject fallback thumbnails (120px wide)
|
}; // Check thumbnail images in order of quality, but reject fallback thumbnails (120px wide)
|
||||||
|
|
||||||
|
|
||||||
@ -6343,7 +6364,7 @@ function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "ready",
|
key: "ready",
|
||||||
value: function ready$$1() {
|
value: function ready() {
|
||||||
var _this3 = this;
|
var _this3 = this;
|
||||||
|
|
||||||
// Start ticking our safety timer. If the whole advertisement
|
// Start ticking our safety timer. If the whole advertisement
|
||||||
@ -6827,7 +6848,7 @@ function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "on",
|
key: "on",
|
||||||
value: function on$$1(event, callback) {
|
value: function on(event, callback) {
|
||||||
if (!is$1.array(this.events[event])) {
|
if (!is$1.array(this.events[event])) {
|
||||||
this.events[event] = [];
|
this.events[event] = [];
|
||||||
}
|
}
|
||||||
@ -8175,7 +8196,7 @@ function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "on",
|
key: "on",
|
||||||
value: function on$$1(event, callback) {
|
value: function on$1(event, callback) {
|
||||||
on.call(this, this.elements.container, event, callback);
|
on.call(this, this.elements.container, event, callback);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -8186,7 +8207,7 @@ function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "once",
|
key: "once",
|
||||||
value: function once$$1(event, callback) {
|
value: function once$1(event, callback) {
|
||||||
once.call(this, this.elements.container, event, callback);
|
once.call(this, this.elements.container, event, callback);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -8197,7 +8218,7 @@ function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "off",
|
key: "off",
|
||||||
value: function off$$1(event, callback) {
|
value: function off$1(event, callback) {
|
||||||
off(this.elements.container, event, callback);
|
off(this.elements.container, event, callback);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -8856,7 +8877,7 @@ function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "loadSprite",
|
key: "loadSprite",
|
||||||
value: function loadSprite$$1(url, id) {
|
value: function loadSprite$1(url, id) {
|
||||||
return loadSprite(url, id);
|
return loadSprite(url, id);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
103
dist/plyr.polyfilled.js
vendored
103
dist/plyr.polyfilled.js
vendored
@ -1,8 +1,8 @@
|
|||||||
typeof navigator === "object" && (function (global, factory) {
|
typeof navigator === "object" && (function (global, factory) {
|
||||||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
typeof define === 'function' && define.amd ? define('Plyr', factory) :
|
typeof define === 'function' && define.amd ? define('Plyr', factory) :
|
||||||
(global.Plyr = factory());
|
(global = global || self, global.Plyr = factory());
|
||||||
}(this, (function () { 'use strict';
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
// Polyfill for creating CustomEvents on IE9/10/11
|
// Polyfill for creating CustomEvents on IE9/10/11
|
||||||
// code pulled from:
|
// code pulled from:
|
||||||
@ -1763,7 +1763,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
var deserializeParam = function deserializeParam(value) {
|
var deserializeParam = function deserializeParam(value) {
|
||||||
return decodeURIComponent(value).replace(/\+/g, ' ');
|
return decodeURIComponent(String(value).replace(/\+/g, ' '));
|
||||||
};
|
};
|
||||||
|
|
||||||
var polyfillURLSearchParams = function polyfillURLSearchParams() {
|
var polyfillURLSearchParams = function polyfillURLSearchParams() {
|
||||||
@ -1891,11 +1891,11 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
global.URLSearchParams = URLSearchParams;
|
global.URLSearchParams = URLSearchParams;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!('URLSearchParams' in global) || new URLSearchParams('?a=1').toString() !== 'a=1') {
|
if (!('URLSearchParams' in global) || new global.URLSearchParams('?a=1').toString() !== 'a=1') {
|
||||||
polyfillURLSearchParams();
|
polyfillURLSearchParams();
|
||||||
}
|
}
|
||||||
|
|
||||||
var proto = URLSearchParams.prototype;
|
var proto = global.URLSearchParams.prototype;
|
||||||
|
|
||||||
if (typeof proto.sort !== 'function') {
|
if (typeof proto.sort !== 'function') {
|
||||||
proto.sort = function () {
|
proto.sort = function () {
|
||||||
@ -1971,7 +1971,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
*/
|
*/
|
||||||
var checkIfURLIsSupported = function checkIfURLIsSupported() {
|
var checkIfURLIsSupported = function checkIfURLIsSupported() {
|
||||||
try {
|
try {
|
||||||
var u = new URL('b', 'http://a');
|
var u = new global.URL('b', 'http://a');
|
||||||
u.pathname = 'c%20d';
|
u.pathname = 'c%20d';
|
||||||
return u.href === 'http://a/c%20d' && u.searchParams;
|
return u.href === 'http://a/c%20d' && u.searchParams;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@ -2017,7 +2017,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
value: anchorElement
|
value: anchorElement
|
||||||
}); // create a linked searchParams which reflect its changes on URL
|
}); // create a linked searchParams which reflect its changes on URL
|
||||||
|
|
||||||
var searchParams = new URLSearchParams(this.search);
|
var searchParams = new global.URLSearchParams(this.search);
|
||||||
var enableSearchUpdate = true;
|
var enableSearchUpdate = true;
|
||||||
var enableSearchParamsUpdate = true;
|
var enableSearchParamsUpdate = true;
|
||||||
|
|
||||||
@ -2642,7 +2642,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
var arrayFind = _arrayMethods(5);
|
var arrayFind = _arrayMethods(5);
|
||||||
var arrayFindIndex = _arrayMethods(6);
|
var arrayFindIndex = _arrayMethods(6);
|
||||||
var id$2 = 0;
|
var id$1 = 0;
|
||||||
|
|
||||||
// fallback for uncaught frozen keys
|
// fallback for uncaught frozen keys
|
||||||
var uncaughtFrozenStore = function (that) {
|
var uncaughtFrozenStore = function (that) {
|
||||||
@ -2683,7 +2683,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
var C = wrapper(function (that, iterable) {
|
var C = wrapper(function (that, iterable) {
|
||||||
_anInstance(that, C, NAME, '_i');
|
_anInstance(that, C, NAME, '_i');
|
||||||
that._t = NAME; // collection type
|
that._t = NAME; // collection type
|
||||||
that._i = id$2++; // collection id
|
that._i = id$1++; // collection id
|
||||||
that._l = undefined; // leak store for uncaught frozen objects
|
that._l = undefined; // leak store for uncaught frozen objects
|
||||||
if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
|
if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
|
||||||
});
|
});
|
||||||
@ -5421,7 +5421,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
list.appendChild(menuItem);
|
list.appendChild(menuItem);
|
||||||
},
|
},
|
||||||
// Format a time for display
|
// Format a time for display
|
||||||
formatTime: function formatTime$$1() {
|
formatTime: function formatTime$1() {
|
||||||
var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
||||||
var inverted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
var inverted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||||
|
|
||||||
@ -5541,8 +5541,8 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
range.setAttribute('aria-valuenow', this.currentTime);
|
range.setAttribute('aria-valuenow', this.currentTime);
|
||||||
var currentTime = controls.formatTime(this.currentTime);
|
var currentTime = controls.formatTime(this.currentTime);
|
||||||
var duration = controls.formatTime(this.duration);
|
var duration = controls.formatTime(this.duration);
|
||||||
var format$$1 = i18n.get('seekLabel', this.config);
|
var format = i18n.get('seekLabel', this.config);
|
||||||
range.setAttribute('aria-valuetext', format$$1.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
range.setAttribute('aria-valuetext', format.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
||||||
} else if (matches$1(range, this.config.selectors.inputs.volume)) {
|
} else if (matches$1(range, this.config.selectors.inputs.volume)) {
|
||||||
var percent = range.value * 100;
|
var percent = range.value * 100;
|
||||||
range.setAttribute('aria-valuenow', percent);
|
range.setAttribute('aria-valuenow', percent);
|
||||||
@ -7784,13 +7784,13 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
},
|
},
|
||||||
// Toggle controls based on state and `force` argument
|
// Toggle controls based on state and `force` argument
|
||||||
toggleControls: function toggleControls(force) {
|
toggleControls: function toggleControls(force) {
|
||||||
var controls$$1 = this.elements.controls;
|
var controls = this.elements.controls;
|
||||||
|
|
||||||
if (controls$$1 && this.config.hideControls) {
|
if (controls && this.config.hideControls) {
|
||||||
// Don't hide controls if a touch-device user recently seeked. (Must be limited to touch devices, or it occasionally prevents desktop controls from hiding.)
|
// Don't hide controls if a touch-device user recently seeked. (Must be limited to touch devices, or it occasionally prevents desktop controls from hiding.)
|
||||||
var recentTouchSeek = this.touch && this.lastSeekTime + 2000 > Date.now(); // Show controls if force, loading, paused, button interaction, or recent seek, otherwise hide
|
var recentTouchSeek = this.touch && this.lastSeekTime + 2000 > Date.now(); // Show controls if force, loading, paused, button interaction, or recent seek, otherwise hide
|
||||||
|
|
||||||
this.toggleControls(Boolean(force || this.loading || this.paused || controls$$1.pressed || controls$$1.hover || recentTouchSeek));
|
this.toggleControls(Boolean(force || this.loading || this.paused || controls.pressed || controls.hover || recentTouchSeek));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -8096,11 +8096,11 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
|
|
||||||
on.call(player, elements.container, 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen', function (event) {
|
on.call(player, elements.container, 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen', function (event) {
|
||||||
var controls$$1 = elements.controls; // Remove button states for fullscreen
|
var controls = elements.controls; // Remove button states for fullscreen
|
||||||
|
|
||||||
if (controls$$1 && event.type === 'enterfullscreen') {
|
if (controls && event.type === 'enterfullscreen') {
|
||||||
controls$$1.pressed = false;
|
controls.pressed = false;
|
||||||
controls$$1.hover = false;
|
controls.hover = false;
|
||||||
} // Show, then hide after a timeout unless another control event occurs
|
} // Show, then hide after a timeout unless another control event occurs
|
||||||
|
|
||||||
|
|
||||||
@ -8355,7 +8355,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "controls",
|
key: "controls",
|
||||||
value: function controls$$1() {
|
value: function controls$1() {
|
||||||
var _this3 = this;
|
var _this3 = this;
|
||||||
|
|
||||||
var player = this.player;
|
var player = this.player;
|
||||||
@ -8718,16 +8718,23 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
maxTries = (args.numRetries || 0) + 1,
|
maxTries = (args.numRetries || 0) + 1,
|
||||||
beforeCallbackFn = args.before || devnull,
|
beforeCallbackFn = args.before || devnull,
|
||||||
pathStripped = path.replace(/^(css|img)!/, ''),
|
pathStripped = path.replace(/^(css|img)!/, ''),
|
||||||
isCss,
|
isLegacyIECss,
|
||||||
e;
|
e;
|
||||||
numTries = numTries || 0;
|
numTries = numTries || 0;
|
||||||
|
|
||||||
if (/(^css!|\.css$)/.test(path)) {
|
if (/(^css!|\.css$)/.test(path)) {
|
||||||
isCss = true; // css
|
// css
|
||||||
|
|
||||||
e = doc.createElement('link');
|
e = doc.createElement('link');
|
||||||
e.rel = 'stylesheet';
|
e.rel = 'stylesheet';
|
||||||
e.href = pathStripped; //.replace(/^css!/, ''); // remove "css!" prefix
|
e.href = pathStripped; // tag IE9+
|
||||||
|
|
||||||
|
isLegacyIECss = 'hideFocus' in e; // use preload in IE Edge (to detect load errors)
|
||||||
|
|
||||||
|
if (isLegacyIECss && e.relList) {
|
||||||
|
isLegacyIECss = 0;
|
||||||
|
e.rel = 'preload';
|
||||||
|
e.as = 'style';
|
||||||
|
}
|
||||||
} else if (/(^img!|\.(png|gif|jpg|svg)$)/.test(path)) {
|
} else if (/(^img!|\.(png|gif|jpg|svg)$)/.test(path)) {
|
||||||
// image
|
// image
|
||||||
e = doc.createElement('img');
|
e = doc.createElement('img');
|
||||||
@ -8740,10 +8747,10 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
e.onload = e.onerror = e.onbeforeload = function (ev) {
|
e.onload = e.onerror = e.onbeforeload = function (ev) {
|
||||||
var result = ev.type[0]; // Note: The following code isolates IE using `hideFocus` and treats empty
|
var result = ev.type[0]; // treat empty stylesheets as failures to get around lack of onerror
|
||||||
// stylesheets as failures to get around lack of onerror support
|
// support in IE9-11
|
||||||
|
|
||||||
if (isCss && 'hideFocus' in e) {
|
if (isLegacyIECss) {
|
||||||
try {
|
try {
|
||||||
if (!e.sheet.cssText.length) result = 'e';
|
if (!e.sheet.cssText.length) result = 'e';
|
||||||
} catch (x) {
|
} catch (x) {
|
||||||
@ -8761,6 +8768,9 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
if (numTries < maxTries) {
|
if (numTries < maxTries) {
|
||||||
return loadFile(path, callbackFn, args, numTries);
|
return loadFile(path, callbackFn, args, numTries);
|
||||||
}
|
}
|
||||||
|
} else if (e.rel == 'preload' && e.as == 'style') {
|
||||||
|
// activate preloaded stylesheets
|
||||||
|
return e.rel = 'stylesheet'; // jshint ignore:line
|
||||||
} // execute callback
|
} // execute callback
|
||||||
|
|
||||||
|
|
||||||
@ -8826,16 +8836,27 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
} else {
|
} else {
|
||||||
bundleIdCache[bundleId] = true;
|
bundleIdCache[bundleId] = true;
|
||||||
}
|
}
|
||||||
} // load scripts
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function loadFn(resolve, reject) {
|
||||||
loadFiles(paths, function (pathsNotFound) {
|
loadFiles(paths, function (pathsNotFound) {
|
||||||
// execute callbacks
|
// execute callbacks
|
||||||
executeCallbacks(args, pathsNotFound); // publish bundle load event
|
executeCallbacks(args, pathsNotFound); // resolve Promise
|
||||||
|
|
||||||
|
if (resolve) {
|
||||||
|
executeCallbacks({
|
||||||
|
success: resolve,
|
||||||
|
error: reject
|
||||||
|
}, pathsNotFound);
|
||||||
|
} // publish bundle load event
|
||||||
|
|
||||||
|
|
||||||
publish(bundleId, pathsNotFound);
|
publish(bundleId, pathsNotFound);
|
||||||
}, args);
|
}, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (args.returnPromise) return new Promise(loadFn);else loadFn();
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Execute callbacks when dependencies have been satisfied.
|
* Execute callbacks when dependencies have been satisfied.
|
||||||
* @param {(string|string[])} deps - List of bundle ids
|
* @param {(string|string[])} deps - List of bundle ids
|
||||||
@ -8939,7 +8960,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
// API Ready
|
// API Ready
|
||||||
ready: function ready$$1() {
|
ready: function ready() {
|
||||||
var _this2 = this;
|
var _this2 = this;
|
||||||
|
|
||||||
var player = this;
|
var player = this;
|
||||||
@ -9316,7 +9337,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
// API ready
|
// API ready
|
||||||
ready: function ready$$1() {
|
ready: function ready() {
|
||||||
var player = this; // Ignore already setup (race condition)
|
var player = this; // Ignore already setup (race condition)
|
||||||
|
|
||||||
var currentId = player.media.getAttribute('id');
|
var currentId = player.media.getAttribute('id');
|
||||||
@ -9344,8 +9365,8 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
});
|
});
|
||||||
player.media = replaceElement(container, player.media); // Id to poster wrapper
|
player.media = replaceElement(container, player.media); // Id to poster wrapper
|
||||||
|
|
||||||
var posterSrc = function posterSrc(format$$1) {
|
var posterSrc = function posterSrc(format) {
|
||||||
return "https://img.youtube.com/vi/".concat(videoId, "/").concat(format$$1, "default.jpg");
|
return "https://img.youtube.com/vi/".concat(videoId, "/").concat(format, "default.jpg");
|
||||||
}; // Check thumbnail images in order of quality, but reject fallback thumbnails (120px wide)
|
}; // Check thumbnail images in order of quality, but reject fallback thumbnails (120px wide)
|
||||||
|
|
||||||
|
|
||||||
@ -9737,7 +9758,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "ready",
|
key: "ready",
|
||||||
value: function ready$$1() {
|
value: function ready() {
|
||||||
var _this3 = this;
|
var _this3 = this;
|
||||||
|
|
||||||
// Start ticking our safety timer. If the whole advertisement
|
// Start ticking our safety timer. If the whole advertisement
|
||||||
@ -10221,7 +10242,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "on",
|
key: "on",
|
||||||
value: function on$$1(event, callback) {
|
value: function on(event, callback) {
|
||||||
if (!is$2.array(this.events[event])) {
|
if (!is$2.array(this.events[event])) {
|
||||||
this.events[event] = [];
|
this.events[event] = [];
|
||||||
}
|
}
|
||||||
@ -11583,7 +11604,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "on",
|
key: "on",
|
||||||
value: function on$$1(event, callback) {
|
value: function on$1(event, callback) {
|
||||||
on.call(this, this.elements.container, event, callback);
|
on.call(this, this.elements.container, event, callback);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -11594,7 +11615,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "once",
|
key: "once",
|
||||||
value: function once$$1(event, callback) {
|
value: function once$1(event, callback) {
|
||||||
once.call(this, this.elements.container, event, callback);
|
once.call(this, this.elements.container, event, callback);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -11605,7 +11626,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "off",
|
key: "off",
|
||||||
value: function off$$1(event, callback) {
|
value: function off$1(event, callback) {
|
||||||
off(this.elements.container, event, callback);
|
off(this.elements.container, event, callback);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -12264,7 +12285,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "loadSprite",
|
key: "loadSprite",
|
||||||
value: function loadSprite$$1(url, id) {
|
value: function loadSprite$1(url, id) {
|
||||||
return loadSprite(url, id);
|
return loadSprite(url, id);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -12306,4 +12327,4 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
return Plyr;
|
return Plyr;
|
||||||
|
|
||||||
})));
|
}));
|
||||||
|
2
dist/plyr.polyfilled.min.js
vendored
2
dist/plyr.polyfilled.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/plyr.polyfilled.min.js.map
vendored
2
dist/plyr.polyfilled.min.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/plyr.polyfilled.min.mjs
vendored
2
dist/plyr.polyfilled.min.mjs
vendored
File diff suppressed because one or more lines are too long
2
dist/plyr.polyfilled.min.mjs.map
vendored
2
dist/plyr.polyfilled.min.mjs.map
vendored
File diff suppressed because one or more lines are too long
97
dist/plyr.polyfilled.mjs
vendored
97
dist/plyr.polyfilled.mjs
vendored
@ -1757,7 +1757,7 @@ _setToStringTag(_global.JSON, 'JSON', true);
|
|||||||
};
|
};
|
||||||
|
|
||||||
var deserializeParam = function deserializeParam(value) {
|
var deserializeParam = function deserializeParam(value) {
|
||||||
return decodeURIComponent(value).replace(/\+/g, ' ');
|
return decodeURIComponent(String(value).replace(/\+/g, ' '));
|
||||||
};
|
};
|
||||||
|
|
||||||
var polyfillURLSearchParams = function polyfillURLSearchParams() {
|
var polyfillURLSearchParams = function polyfillURLSearchParams() {
|
||||||
@ -1885,11 +1885,11 @@ _setToStringTag(_global.JSON, 'JSON', true);
|
|||||||
global.URLSearchParams = URLSearchParams;
|
global.URLSearchParams = URLSearchParams;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!('URLSearchParams' in global) || new URLSearchParams('?a=1').toString() !== 'a=1') {
|
if (!('URLSearchParams' in global) || new global.URLSearchParams('?a=1').toString() !== 'a=1') {
|
||||||
polyfillURLSearchParams();
|
polyfillURLSearchParams();
|
||||||
}
|
}
|
||||||
|
|
||||||
var proto = URLSearchParams.prototype;
|
var proto = global.URLSearchParams.prototype;
|
||||||
|
|
||||||
if (typeof proto.sort !== 'function') {
|
if (typeof proto.sort !== 'function') {
|
||||||
proto.sort = function () {
|
proto.sort = function () {
|
||||||
@ -1965,7 +1965,7 @@ _setToStringTag(_global.JSON, 'JSON', true);
|
|||||||
*/
|
*/
|
||||||
var checkIfURLIsSupported = function checkIfURLIsSupported() {
|
var checkIfURLIsSupported = function checkIfURLIsSupported() {
|
||||||
try {
|
try {
|
||||||
var u = new URL('b', 'http://a');
|
var u = new global.URL('b', 'http://a');
|
||||||
u.pathname = 'c%20d';
|
u.pathname = 'c%20d';
|
||||||
return u.href === 'http://a/c%20d' && u.searchParams;
|
return u.href === 'http://a/c%20d' && u.searchParams;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@ -2011,7 +2011,7 @@ _setToStringTag(_global.JSON, 'JSON', true);
|
|||||||
value: anchorElement
|
value: anchorElement
|
||||||
}); // create a linked searchParams which reflect its changes on URL
|
}); // create a linked searchParams which reflect its changes on URL
|
||||||
|
|
||||||
var searchParams = new URLSearchParams(this.search);
|
var searchParams = new global.URLSearchParams(this.search);
|
||||||
var enableSearchUpdate = true;
|
var enableSearchUpdate = true;
|
||||||
var enableSearchParamsUpdate = true;
|
var enableSearchParamsUpdate = true;
|
||||||
|
|
||||||
@ -2636,7 +2636,7 @@ var getWeak = _meta.getWeak;
|
|||||||
|
|
||||||
var arrayFind = _arrayMethods(5);
|
var arrayFind = _arrayMethods(5);
|
||||||
var arrayFindIndex = _arrayMethods(6);
|
var arrayFindIndex = _arrayMethods(6);
|
||||||
var id$2 = 0;
|
var id$1 = 0;
|
||||||
|
|
||||||
// fallback for uncaught frozen keys
|
// fallback for uncaught frozen keys
|
||||||
var uncaughtFrozenStore = function (that) {
|
var uncaughtFrozenStore = function (that) {
|
||||||
@ -2677,7 +2677,7 @@ var _collectionWeak = {
|
|||||||
var C = wrapper(function (that, iterable) {
|
var C = wrapper(function (that, iterable) {
|
||||||
_anInstance(that, C, NAME, '_i');
|
_anInstance(that, C, NAME, '_i');
|
||||||
that._t = NAME; // collection type
|
that._t = NAME; // collection type
|
||||||
that._i = id$2++; // collection id
|
that._i = id$1++; // collection id
|
||||||
that._l = undefined; // leak store for uncaught frozen objects
|
that._l = undefined; // leak store for uncaught frozen objects
|
||||||
if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
|
if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
|
||||||
});
|
});
|
||||||
@ -5415,7 +5415,7 @@ var controls = {
|
|||||||
list.appendChild(menuItem);
|
list.appendChild(menuItem);
|
||||||
},
|
},
|
||||||
// Format a time for display
|
// Format a time for display
|
||||||
formatTime: function formatTime$$1() {
|
formatTime: function formatTime$1() {
|
||||||
var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
||||||
var inverted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
var inverted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||||
|
|
||||||
@ -5535,8 +5535,8 @@ var controls = {
|
|||||||
range.setAttribute('aria-valuenow', this.currentTime);
|
range.setAttribute('aria-valuenow', this.currentTime);
|
||||||
var currentTime = controls.formatTime(this.currentTime);
|
var currentTime = controls.formatTime(this.currentTime);
|
||||||
var duration = controls.formatTime(this.duration);
|
var duration = controls.formatTime(this.duration);
|
||||||
var format$$1 = i18n.get('seekLabel', this.config);
|
var format = i18n.get('seekLabel', this.config);
|
||||||
range.setAttribute('aria-valuetext', format$$1.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
range.setAttribute('aria-valuetext', format.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
||||||
} else if (matches$1(range, this.config.selectors.inputs.volume)) {
|
} else if (matches$1(range, this.config.selectors.inputs.volume)) {
|
||||||
var percent = range.value * 100;
|
var percent = range.value * 100;
|
||||||
range.setAttribute('aria-valuenow', percent);
|
range.setAttribute('aria-valuenow', percent);
|
||||||
@ -7778,13 +7778,13 @@ var ui = {
|
|||||||
},
|
},
|
||||||
// Toggle controls based on state and `force` argument
|
// Toggle controls based on state and `force` argument
|
||||||
toggleControls: function toggleControls(force) {
|
toggleControls: function toggleControls(force) {
|
||||||
var controls$$1 = this.elements.controls;
|
var controls = this.elements.controls;
|
||||||
|
|
||||||
if (controls$$1 && this.config.hideControls) {
|
if (controls && this.config.hideControls) {
|
||||||
// Don't hide controls if a touch-device user recently seeked. (Must be limited to touch devices, or it occasionally prevents desktop controls from hiding.)
|
// Don't hide controls if a touch-device user recently seeked. (Must be limited to touch devices, or it occasionally prevents desktop controls from hiding.)
|
||||||
var recentTouchSeek = this.touch && this.lastSeekTime + 2000 > Date.now(); // Show controls if force, loading, paused, button interaction, or recent seek, otherwise hide
|
var recentTouchSeek = this.touch && this.lastSeekTime + 2000 > Date.now(); // Show controls if force, loading, paused, button interaction, or recent seek, otherwise hide
|
||||||
|
|
||||||
this.toggleControls(Boolean(force || this.loading || this.paused || controls$$1.pressed || controls$$1.hover || recentTouchSeek));
|
this.toggleControls(Boolean(force || this.loading || this.paused || controls.pressed || controls.hover || recentTouchSeek));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -8090,11 +8090,11 @@ function () {
|
|||||||
|
|
||||||
|
|
||||||
on.call(player, elements.container, 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen', function (event) {
|
on.call(player, elements.container, 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen', function (event) {
|
||||||
var controls$$1 = elements.controls; // Remove button states for fullscreen
|
var controls = elements.controls; // Remove button states for fullscreen
|
||||||
|
|
||||||
if (controls$$1 && event.type === 'enterfullscreen') {
|
if (controls && event.type === 'enterfullscreen') {
|
||||||
controls$$1.pressed = false;
|
controls.pressed = false;
|
||||||
controls$$1.hover = false;
|
controls.hover = false;
|
||||||
} // Show, then hide after a timeout unless another control event occurs
|
} // Show, then hide after a timeout unless another control event occurs
|
||||||
|
|
||||||
|
|
||||||
@ -8349,7 +8349,7 @@ function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "controls",
|
key: "controls",
|
||||||
value: function controls$$1() {
|
value: function controls$1() {
|
||||||
var _this3 = this;
|
var _this3 = this;
|
||||||
|
|
||||||
var player = this.player;
|
var player = this.player;
|
||||||
@ -8712,16 +8712,23 @@ var loadjs_umd = createCommonjsModule(function (module, exports) {
|
|||||||
maxTries = (args.numRetries || 0) + 1,
|
maxTries = (args.numRetries || 0) + 1,
|
||||||
beforeCallbackFn = args.before || devnull,
|
beforeCallbackFn = args.before || devnull,
|
||||||
pathStripped = path.replace(/^(css|img)!/, ''),
|
pathStripped = path.replace(/^(css|img)!/, ''),
|
||||||
isCss,
|
isLegacyIECss,
|
||||||
e;
|
e;
|
||||||
numTries = numTries || 0;
|
numTries = numTries || 0;
|
||||||
|
|
||||||
if (/(^css!|\.css$)/.test(path)) {
|
if (/(^css!|\.css$)/.test(path)) {
|
||||||
isCss = true; // css
|
// css
|
||||||
|
|
||||||
e = doc.createElement('link');
|
e = doc.createElement('link');
|
||||||
e.rel = 'stylesheet';
|
e.rel = 'stylesheet';
|
||||||
e.href = pathStripped; //.replace(/^css!/, ''); // remove "css!" prefix
|
e.href = pathStripped; // tag IE9+
|
||||||
|
|
||||||
|
isLegacyIECss = 'hideFocus' in e; // use preload in IE Edge (to detect load errors)
|
||||||
|
|
||||||
|
if (isLegacyIECss && e.relList) {
|
||||||
|
isLegacyIECss = 0;
|
||||||
|
e.rel = 'preload';
|
||||||
|
e.as = 'style';
|
||||||
|
}
|
||||||
} else if (/(^img!|\.(png|gif|jpg|svg)$)/.test(path)) {
|
} else if (/(^img!|\.(png|gif|jpg|svg)$)/.test(path)) {
|
||||||
// image
|
// image
|
||||||
e = doc.createElement('img');
|
e = doc.createElement('img');
|
||||||
@ -8734,10 +8741,10 @@ var loadjs_umd = createCommonjsModule(function (module, exports) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
e.onload = e.onerror = e.onbeforeload = function (ev) {
|
e.onload = e.onerror = e.onbeforeload = function (ev) {
|
||||||
var result = ev.type[0]; // Note: The following code isolates IE using `hideFocus` and treats empty
|
var result = ev.type[0]; // treat empty stylesheets as failures to get around lack of onerror
|
||||||
// stylesheets as failures to get around lack of onerror support
|
// support in IE9-11
|
||||||
|
|
||||||
if (isCss && 'hideFocus' in e) {
|
if (isLegacyIECss) {
|
||||||
try {
|
try {
|
||||||
if (!e.sheet.cssText.length) result = 'e';
|
if (!e.sheet.cssText.length) result = 'e';
|
||||||
} catch (x) {
|
} catch (x) {
|
||||||
@ -8755,6 +8762,9 @@ var loadjs_umd = createCommonjsModule(function (module, exports) {
|
|||||||
if (numTries < maxTries) {
|
if (numTries < maxTries) {
|
||||||
return loadFile(path, callbackFn, args, numTries);
|
return loadFile(path, callbackFn, args, numTries);
|
||||||
}
|
}
|
||||||
|
} else if (e.rel == 'preload' && e.as == 'style') {
|
||||||
|
// activate preloaded stylesheets
|
||||||
|
return e.rel = 'stylesheet'; // jshint ignore:line
|
||||||
} // execute callback
|
} // execute callback
|
||||||
|
|
||||||
|
|
||||||
@ -8820,16 +8830,27 @@ var loadjs_umd = createCommonjsModule(function (module, exports) {
|
|||||||
} else {
|
} else {
|
||||||
bundleIdCache[bundleId] = true;
|
bundleIdCache[bundleId] = true;
|
||||||
}
|
}
|
||||||
} // load scripts
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function loadFn(resolve, reject) {
|
||||||
loadFiles(paths, function (pathsNotFound) {
|
loadFiles(paths, function (pathsNotFound) {
|
||||||
// execute callbacks
|
// execute callbacks
|
||||||
executeCallbacks(args, pathsNotFound); // publish bundle load event
|
executeCallbacks(args, pathsNotFound); // resolve Promise
|
||||||
|
|
||||||
|
if (resolve) {
|
||||||
|
executeCallbacks({
|
||||||
|
success: resolve,
|
||||||
|
error: reject
|
||||||
|
}, pathsNotFound);
|
||||||
|
} // publish bundle load event
|
||||||
|
|
||||||
|
|
||||||
publish(bundleId, pathsNotFound);
|
publish(bundleId, pathsNotFound);
|
||||||
}, args);
|
}, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (args.returnPromise) return new Promise(loadFn);else loadFn();
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Execute callbacks when dependencies have been satisfied.
|
* Execute callbacks when dependencies have been satisfied.
|
||||||
* @param {(string|string[])} deps - List of bundle ids
|
* @param {(string|string[])} deps - List of bundle ids
|
||||||
@ -8933,7 +8954,7 @@ var vimeo = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
// API Ready
|
// API Ready
|
||||||
ready: function ready$$1() {
|
ready: function ready() {
|
||||||
var _this2 = this;
|
var _this2 = this;
|
||||||
|
|
||||||
var player = this;
|
var player = this;
|
||||||
@ -9310,7 +9331,7 @@ var youtube = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
// API ready
|
// API ready
|
||||||
ready: function ready$$1() {
|
ready: function ready() {
|
||||||
var player = this; // Ignore already setup (race condition)
|
var player = this; // Ignore already setup (race condition)
|
||||||
|
|
||||||
var currentId = player.media.getAttribute('id');
|
var currentId = player.media.getAttribute('id');
|
||||||
@ -9338,8 +9359,8 @@ var youtube = {
|
|||||||
});
|
});
|
||||||
player.media = replaceElement(container, player.media); // Id to poster wrapper
|
player.media = replaceElement(container, player.media); // Id to poster wrapper
|
||||||
|
|
||||||
var posterSrc = function posterSrc(format$$1) {
|
var posterSrc = function posterSrc(format) {
|
||||||
return "https://img.youtube.com/vi/".concat(videoId, "/").concat(format$$1, "default.jpg");
|
return "https://img.youtube.com/vi/".concat(videoId, "/").concat(format, "default.jpg");
|
||||||
}; // Check thumbnail images in order of quality, but reject fallback thumbnails (120px wide)
|
}; // Check thumbnail images in order of quality, but reject fallback thumbnails (120px wide)
|
||||||
|
|
||||||
|
|
||||||
@ -9731,7 +9752,7 @@ function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "ready",
|
key: "ready",
|
||||||
value: function ready$$1() {
|
value: function ready() {
|
||||||
var _this3 = this;
|
var _this3 = this;
|
||||||
|
|
||||||
// Start ticking our safety timer. If the whole advertisement
|
// Start ticking our safety timer. If the whole advertisement
|
||||||
@ -10215,7 +10236,7 @@ function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "on",
|
key: "on",
|
||||||
value: function on$$1(event, callback) {
|
value: function on(event, callback) {
|
||||||
if (!is$2.array(this.events[event])) {
|
if (!is$2.array(this.events[event])) {
|
||||||
this.events[event] = [];
|
this.events[event] = [];
|
||||||
}
|
}
|
||||||
@ -11577,7 +11598,7 @@ function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "on",
|
key: "on",
|
||||||
value: function on$$1(event, callback) {
|
value: function on$1(event, callback) {
|
||||||
on.call(this, this.elements.container, event, callback);
|
on.call(this, this.elements.container, event, callback);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -11588,7 +11609,7 @@ function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "once",
|
key: "once",
|
||||||
value: function once$$1(event, callback) {
|
value: function once$1(event, callback) {
|
||||||
once.call(this, this.elements.container, event, callback);
|
once.call(this, this.elements.container, event, callback);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -11599,7 +11620,7 @@ function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "off",
|
key: "off",
|
||||||
value: function off$$1(event, callback) {
|
value: function off$1(event, callback) {
|
||||||
off(this.elements.container, event, callback);
|
off(this.elements.container, event, callback);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -12258,7 +12279,7 @@ function () {
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
key: "loadSprite",
|
key: "loadSprite",
|
||||||
value: function loadSprite$$1(url, id) {
|
value: function loadSprite$1(url, id) {
|
||||||
return loadSprite(url, id);
|
return loadSprite(url, id);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
27
package.json
27
package.json
@ -35,15 +35,15 @@
|
|||||||
"deploy": "yarn lint && gulp deploy"
|
"deploy": "yarn lint && gulp deploy"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"ansi-colors": "^3.2.3",
|
"ansi-colors": "^3.2.4",
|
||||||
"aws-sdk": "^2.409.0",
|
"aws-sdk": "^2.422.0",
|
||||||
"@babel/core": "^7.3.3",
|
"@babel/core": "^7.3.4",
|
||||||
"@babel/preset-env": "^7.3.1",
|
"@babel/preset-env": "^7.3.4",
|
||||||
"babel-eslint": "^10.0.1",
|
"babel-eslint": "^10.0.1",
|
||||||
"del": "^3.0.0",
|
"del": "^4.0.0",
|
||||||
"eslint": "^5.14.1",
|
"eslint": "^5.15.2",
|
||||||
"eslint-config-airbnb-base": "^13.1.0",
|
"eslint-config-airbnb-base": "^13.1.0",
|
||||||
"eslint-config-prettier": "^4.0.0",
|
"eslint-config-prettier": "^4.1.0",
|
||||||
"eslint-plugin-import": "^2.16.0",
|
"eslint-plugin-import": "^2.16.0",
|
||||||
"fancy-log": "^1.3.3",
|
"fancy-log": "^1.3.3",
|
||||||
"fastly-purge": "^1.0.1",
|
"fastly-purge": "^1.0.1",
|
||||||
@ -51,7 +51,7 @@
|
|||||||
"gulp": "^4.0.0",
|
"gulp": "^4.0.0",
|
||||||
"gulp-autoprefixer": "^6.0.0",
|
"gulp-autoprefixer": "^6.0.0",
|
||||||
"gulp-awspublish": "^4.0.0",
|
"gulp-awspublish": "^4.0.0",
|
||||||
"gulp-better-rollup": "^3.4.0",
|
"gulp-better-rollup": "^4.0.1",
|
||||||
"gulp-clean-css": "^4.0.0",
|
"gulp-clean-css": "^4.0.0",
|
||||||
"gulp-filter": "^5.1.0",
|
"gulp-filter": "^5.1.0",
|
||||||
"gulp-header": "^2.0.7",
|
"gulp-header": "^2.0.7",
|
||||||
@ -70,7 +70,8 @@
|
|||||||
"prettier-eslint": "^8.8.2",
|
"prettier-eslint": "^8.8.2",
|
||||||
"prettier-stylelint": "^0.4.2",
|
"prettier-stylelint": "^0.4.2",
|
||||||
"remark-cli": "^6.0.1",
|
"remark-cli": "^6.0.1",
|
||||||
"remark-validate-links": "^8.0.0",
|
"remark-validate-links": "^8.0.1",
|
||||||
|
"rollup": "^1.6.0",
|
||||||
"rollup-plugin-babel": "^4.3.2",
|
"rollup-plugin-babel": "^4.3.2",
|
||||||
"rollup-plugin-commonjs": "^9.2.1",
|
"rollup-plugin-commonjs": "^9.2.1",
|
||||||
"rollup-plugin-node-resolve": "^4.0.1",
|
"rollup-plugin-node-resolve": "^4.0.1",
|
||||||
@ -78,17 +79,17 @@
|
|||||||
"stylelint-config-prettier": "^5.0.0",
|
"stylelint-config-prettier": "^5.0.0",
|
||||||
"stylelint-config-recommended": "^2.1.0",
|
"stylelint-config-recommended": "^2.1.0",
|
||||||
"stylelint-config-sass-guidelines": "^5.3.0",
|
"stylelint-config-sass-guidelines": "^5.3.0",
|
||||||
"stylelint-order": "^2.0.0",
|
"stylelint-order": "^2.1.0",
|
||||||
"stylelint-scss": "^3.5.4",
|
"stylelint-scss": "^3.5.4",
|
||||||
"stylelint-selector-bem-pattern": "^2.0.0",
|
"stylelint-selector-bem-pattern": "^2.0.0",
|
||||||
"through2": "^3.0.0"
|
"through2": "^3.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"core-js": "^2.6.5",
|
"core-js": "^2.6.5",
|
||||||
"custom-event-polyfill": "^1.0.6",
|
"custom-event-polyfill": "^1.0.6",
|
||||||
"loadjs": "^3.5.5",
|
"loadjs": "^3.6.0",
|
||||||
"rangetouch": "^2.0.0",
|
"rangetouch": "^2.0.0",
|
||||||
"raven-js": "^3.27.0",
|
"raven-js": "^3.27.0",
|
||||||
"url-polyfill": "^1.1.3"
|
"url-polyfill": "^1.1.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"search.exclude": {
|
||||||
|
"**/node_modules": true,
|
||||||
|
"**/dist": true
|
||||||
|
},
|
||||||
// Linting
|
// Linting
|
||||||
"stylelint.enable": true,
|
"stylelint.enable": true,
|
||||||
"css.validate": false,
|
"css.validate": false,
|
||||||
|
@ -296,7 +296,7 @@ Note the single quotes encapsulating the JSON and double quotes on the object ke
|
|||||||
| `ratio` | String | `16:9` | The aspect ratio you want to use for embedded players. |
|
| `ratio` | String | `16:9` | The aspect ratio you want to use for embedded players. |
|
||||||
| `storage` | Object | `{ enabled: true, key: 'plyr' }` | `enabled`: Allow use of local storage to store user settings. `key`: The key name to use. |
|
| `storage` | Object | `{ enabled: true, key: 'plyr' }` | `enabled`: Allow use of local storage to store user settings. `key`: The key name to use. |
|
||||||
| `speed` | Object | `{ selected: 1, options: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2] }` | `selected`: The default speed for playback. `options`: Options to display in the menu. Most browsers will refuse to play slower than 0.5. |
|
| `speed` | Object | `{ selected: 1, options: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2] }` | `selected`: The default speed for playback. `options`: Options to display in the menu. Most browsers will refuse to play slower than 0.5. |
|
||||||
| `quality` | Object | `{ default: 'default', options: ['hd2160', 'hd1440', 'hd1080', 'hd720', 'large', 'medium', 'small', 'tiny', 'default'] }` | Currently only supported by YouTube. `default` is the default quality level, determined by YouTube. `options` are the options to display. |
|
| `quality` | Object | `{ default: 576, options: [4320, 2880, 2160, 1440, 1080, 720, 576, 480, 360, 240] }` | `default` is the default quality level (if it exists in your sources). `options` are the options to display. This is used to filter the available sources. |
|
||||||
| `loop` | Object | `{ active: false }` | `active`: Whether to loop the current video. If the `loop` attribute is present on a `<video>` or `<audio>` element, this will be automatically set to true This is an object to support future functionality. |
|
| `loop` | Object | `{ active: false }` | `active`: Whether to loop the current video. If the `loop` attribute is present on a `<video>` or `<audio>` element, this will be automatically set to true This is an object to support future functionality. |
|
||||||
| `ads` | Object | `{ enabled: false, publisherId: '' }` | `enabled`: Whether to enable advertisements. `publisherId`: Your unique [vi.ai](https://vi.ai/publisher-video-monetization/?aid=plyrio) publisher ID. |
|
| `ads` | Object | `{ enabled: false, publisherId: '' }` | `enabled`: Whether to enable advertisements. `publisherId`: Your unique [vi.ai](https://vi.ai/publisher-video-monetization/?aid=plyrio) publisher ID. |
|
||||||
| `urls` | Object | See source. | If you wish to override any API URLs then you can do so here. You can also set a custom download URL for the download button. |
|
| `urls` | Object | See source. | If you wish to override any API URLs then you can do so here. You can also set a custom download URL for the download button. |
|
||||||
|
Loading…
x
Reference in New Issue
Block a user