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);
|
||||
},
|
||||
// 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 inverted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||
|
||||
@ -6003,8 +6003,8 @@ typeof navigator === "object" && (function () {
|
||||
range.setAttribute('aria-valuenow', this.currentTime);
|
||||
var currentTime = controls.formatTime(this.currentTime);
|
||||
var duration = controls.formatTime(this.duration);
|
||||
var format$$1 = i18n.get('seekLabel', this.config);
|
||||
range.setAttribute('aria-valuetext', format$$1.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
||||
var format = i18n.get('seekLabel', this.config);
|
||||
range.setAttribute('aria-valuetext', format.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
||||
} else if (matches$1(range, this.config.selectors.inputs.volume)) {
|
||||
var percent = range.value * 100;
|
||||
range.setAttribute('aria-valuenow', percent);
|
||||
@ -8236,13 +8236,13 @@ typeof navigator === "object" && (function () {
|
||||
},
|
||||
// Toggle controls based on state and `force` argument
|
||||
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.)
|
||||
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) {
|
||||
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') {
|
||||
controls$$1.pressed = false;
|
||||
controls$$1.hover = false;
|
||||
if (controls && event.type === 'enterfullscreen') {
|
||||
controls.pressed = false;
|
||||
controls.hover = false;
|
||||
} // Show, then hide after a timeout unless another control event occurs
|
||||
|
||||
|
||||
@ -8807,7 +8807,7 @@ typeof navigator === "object" && (function () {
|
||||
|
||||
}, {
|
||||
key: "controls",
|
||||
value: function controls$$1() {
|
||||
value: function controls$1() {
|
||||
var _this3 = this;
|
||||
|
||||
var player = this.player;
|
||||
@ -9170,16 +9170,23 @@ typeof navigator === "object" && (function () {
|
||||
maxTries = (args.numRetries || 0) + 1,
|
||||
beforeCallbackFn = args.before || devnull,
|
||||
pathStripped = path.replace(/^(css|img)!/, ''),
|
||||
isCss,
|
||||
isLegacyIECss,
|
||||
e;
|
||||
numTries = numTries || 0;
|
||||
|
||||
if (/(^css!|\.css$)/.test(path)) {
|
||||
isCss = true; // css
|
||||
|
||||
// css
|
||||
e = doc.createElement('link');
|
||||
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)) {
|
||||
// image
|
||||
e = doc.createElement('img');
|
||||
@ -9192,10 +9199,10 @@ typeof navigator === "object" && (function () {
|
||||
}
|
||||
|
||||
e.onload = e.onerror = e.onbeforeload = function (ev) {
|
||||
var result = ev.type[0]; // Note: The following code isolates IE using `hideFocus` and treats empty
|
||||
// stylesheets as failures to get around lack of onerror support
|
||||
var result = ev.type[0]; // treat empty stylesheets as failures to get around lack of onerror
|
||||
// support in IE9-11
|
||||
|
||||
if (isCss && 'hideFocus' in e) {
|
||||
if (isLegacyIECss) {
|
||||
try {
|
||||
if (!e.sheet.cssText.length) result = 'e';
|
||||
} catch (x) {
|
||||
@ -9213,6 +9220,9 @@ typeof navigator === "object" && (function () {
|
||||
if (numTries < maxTries) {
|
||||
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
|
||||
|
||||
|
||||
@ -9278,16 +9288,27 @@ typeof navigator === "object" && (function () {
|
||||
} else {
|
||||
bundleIdCache[bundleId] = true;
|
||||
}
|
||||
} // load scripts
|
||||
|
||||
}
|
||||
|
||||
function loadFn(resolve, reject) {
|
||||
loadFiles(paths, function (pathsNotFound) {
|
||||
// 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);
|
||||
}, args);
|
||||
}
|
||||
|
||||
if (args.returnPromise) return new Promise(loadFn);else loadFn();
|
||||
}
|
||||
/**
|
||||
* Execute callbacks when dependencies have been satisfied.
|
||||
* @param {(string|string[])} deps - List of bundle ids
|
||||
@ -9392,7 +9413,7 @@ typeof navigator === "object" && (function () {
|
||||
}
|
||||
},
|
||||
// API Ready
|
||||
ready: function ready$$1() {
|
||||
ready: function ready() {
|
||||
var _this2 = this;
|
||||
|
||||
var player = this;
|
||||
@ -9771,7 +9792,7 @@ typeof navigator === "object" && (function () {
|
||||
}
|
||||
},
|
||||
// API ready
|
||||
ready: function ready$$1() {
|
||||
ready: function ready() {
|
||||
var player = this; // Ignore already setup (race condition)
|
||||
|
||||
var currentId = player.media.getAttribute('id');
|
||||
@ -9799,8 +9820,8 @@ typeof navigator === "object" && (function () {
|
||||
});
|
||||
player.media = replaceElement(container, player.media); // Id to poster wrapper
|
||||
|
||||
var posterSrc = function posterSrc(format$$1) {
|
||||
return "https://img.youtube.com/vi/".concat(videoId, "/").concat(format$$1, "default.jpg");
|
||||
var posterSrc = function posterSrc(format) {
|
||||
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)
|
||||
|
||||
|
||||
@ -10193,7 +10214,7 @@ typeof navigator === "object" && (function () {
|
||||
|
||||
}, {
|
||||
key: "ready",
|
||||
value: function ready$$1() {
|
||||
value: function ready() {
|
||||
var _this3 = this;
|
||||
|
||||
// Start ticking our safety timer. If the whole advertisement
|
||||
@ -10677,7 +10698,7 @@ typeof navigator === "object" && (function () {
|
||||
|
||||
}, {
|
||||
key: "on",
|
||||
value: function on$$1(event, callback) {
|
||||
value: function on(event, callback) {
|
||||
if (!is$1.array(this.events[event])) {
|
||||
this.events[event] = [];
|
||||
}
|
||||
@ -12025,7 +12046,7 @@ typeof navigator === "object" && (function () {
|
||||
|
||||
}, {
|
||||
key: "on",
|
||||
value: function on$$1(event, callback) {
|
||||
value: function on$1(event, callback) {
|
||||
on.call(this, this.elements.container, event, callback);
|
||||
}
|
||||
/**
|
||||
@ -12036,7 +12057,7 @@ typeof navigator === "object" && (function () {
|
||||
|
||||
}, {
|
||||
key: "once",
|
||||
value: function once$$1(event, callback) {
|
||||
value: function once$1(event, callback) {
|
||||
once.call(this, this.elements.container, event, callback);
|
||||
}
|
||||
/**
|
||||
@ -12047,7 +12068,7 @@ typeof navigator === "object" && (function () {
|
||||
|
||||
}, {
|
||||
key: "off",
|
||||
value: function off$$1(event, callback) {
|
||||
value: function off$1(event, callback) {
|
||||
off(this.elements.container, event, callback);
|
||||
}
|
||||
/**
|
||||
@ -12706,7 +12727,7 @@ typeof navigator === "object" && (function () {
|
||||
|
||||
}, {
|
||||
key: "loadSprite",
|
||||
value: function loadSprite$$1(url, id) {
|
||||
value: function loadSprite$1(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 exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||
typeof define === 'function' && define.amd ? define('Plyr', factory) :
|
||||
(global.Plyr = factory());
|
||||
}(this, (function () { 'use strict';
|
||||
(global = global || self, global.Plyr = factory());
|
||||
}(this, function () { 'use strict';
|
||||
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
@ -2033,7 +2033,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
list.appendChild(menuItem);
|
||||
},
|
||||
// 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 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);
|
||||
var currentTime = controls.formatTime(this.currentTime);
|
||||
var duration = controls.formatTime(this.duration);
|
||||
var format$$1 = i18n.get('seekLabel', this.config);
|
||||
range.setAttribute('aria-valuetext', format$$1.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
||||
var format = i18n.get('seekLabel', this.config);
|
||||
range.setAttribute('aria-valuetext', format.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
||||
} else if (matches$1(range, this.config.selectors.inputs.volume)) {
|
||||
var percent = range.value * 100;
|
||||
range.setAttribute('aria-valuenow', percent);
|
||||
@ -4386,13 +4386,13 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
},
|
||||
// Toggle controls based on state and `force` argument
|
||||
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.)
|
||||
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) {
|
||||
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') {
|
||||
controls$$1.pressed = false;
|
||||
controls$$1.hover = false;
|
||||
if (controls && event.type === 'enterfullscreen') {
|
||||
controls.pressed = false;
|
||||
controls.hover = false;
|
||||
} // Show, then hide after a timeout unless another control event occurs
|
||||
|
||||
|
||||
@ -4957,7 +4957,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
}, {
|
||||
key: "controls",
|
||||
value: function controls$$1() {
|
||||
value: function controls$1() {
|
||||
var _this3 = this;
|
||||
|
||||
var player = this.player;
|
||||
@ -5326,16 +5326,23 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
maxTries = (args.numRetries || 0) + 1,
|
||||
beforeCallbackFn = args.before || devnull,
|
||||
pathStripped = path.replace(/^(css|img)!/, ''),
|
||||
isCss,
|
||||
isLegacyIECss,
|
||||
e;
|
||||
numTries = numTries || 0;
|
||||
|
||||
if (/(^css!|\.css$)/.test(path)) {
|
||||
isCss = true; // css
|
||||
|
||||
// css
|
||||
e = doc.createElement('link');
|
||||
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)) {
|
||||
// image
|
||||
e = doc.createElement('img');
|
||||
@ -5348,10 +5355,10 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
}
|
||||
|
||||
e.onload = e.onerror = e.onbeforeload = function (ev) {
|
||||
var result = ev.type[0]; // Note: The following code isolates IE using `hideFocus` and treats empty
|
||||
// stylesheets as failures to get around lack of onerror support
|
||||
var result = ev.type[0]; // treat empty stylesheets as failures to get around lack of onerror
|
||||
// support in IE9-11
|
||||
|
||||
if (isCss && 'hideFocus' in e) {
|
||||
if (isLegacyIECss) {
|
||||
try {
|
||||
if (!e.sheet.cssText.length) result = 'e';
|
||||
} catch (x) {
|
||||
@ -5369,6 +5376,9 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
if (numTries < maxTries) {
|
||||
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
|
||||
|
||||
|
||||
@ -5434,16 +5444,27 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
} else {
|
||||
bundleIdCache[bundleId] = true;
|
||||
}
|
||||
} // load scripts
|
||||
|
||||
}
|
||||
|
||||
function loadFn(resolve, reject) {
|
||||
loadFiles(paths, function (pathsNotFound) {
|
||||
// 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);
|
||||
}, args);
|
||||
}
|
||||
|
||||
if (args.returnPromise) return new Promise(loadFn);else loadFn();
|
||||
}
|
||||
/**
|
||||
* Execute callbacks when dependencies have been satisfied.
|
||||
* @param {(string|string[])} deps - List of bundle ids
|
||||
@ -5548,7 +5569,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
}
|
||||
},
|
||||
// API Ready
|
||||
ready: function ready$$1() {
|
||||
ready: function ready() {
|
||||
var _this2 = this;
|
||||
|
||||
var player = this;
|
||||
@ -5927,7 +5948,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
}
|
||||
},
|
||||
// API ready
|
||||
ready: function ready$$1() {
|
||||
ready: function ready() {
|
||||
var player = this; // Ignore already setup (race condition)
|
||||
|
||||
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
|
||||
|
||||
var posterSrc = function posterSrc(format$$1) {
|
||||
return "https://img.youtube.com/vi/".concat(videoId, "/").concat(format$$1, "default.jpg");
|
||||
var posterSrc = function posterSrc(format) {
|
||||
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)
|
||||
|
||||
|
||||
@ -6349,7 +6370,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
}, {
|
||||
key: "ready",
|
||||
value: function ready$$1() {
|
||||
value: function ready() {
|
||||
var _this3 = this;
|
||||
|
||||
// Start ticking our safety timer. If the whole advertisement
|
||||
@ -6833,7 +6854,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
}, {
|
||||
key: "on",
|
||||
value: function on$$1(event, callback) {
|
||||
value: function on(event, callback) {
|
||||
if (!is$1.array(this.events[event])) {
|
||||
this.events[event] = [];
|
||||
}
|
||||
@ -8181,7 +8202,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
}, {
|
||||
key: "on",
|
||||
value: function on$$1(event, callback) {
|
||||
value: function on$1(event, callback) {
|
||||
on.call(this, this.elements.container, event, callback);
|
||||
}
|
||||
/**
|
||||
@ -8192,7 +8213,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
}, {
|
||||
key: "once",
|
||||
value: function once$$1(event, callback) {
|
||||
value: function once$1(event, callback) {
|
||||
once.call(this, this.elements.container, event, callback);
|
||||
}
|
||||
/**
|
||||
@ -8203,7 +8224,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
}, {
|
||||
key: "off",
|
||||
value: function off$$1(event, callback) {
|
||||
value: function off$1(event, callback) {
|
||||
off(this.elements.container, event, callback);
|
||||
}
|
||||
/**
|
||||
@ -8862,7 +8883,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
}, {
|
||||
key: "loadSprite",
|
||||
value: function loadSprite$$1(url, id) {
|
||||
value: function loadSprite$1(url, id) {
|
||||
return loadSprite(url, id);
|
||||
}
|
||||
/**
|
||||
@ -8902,4 +8923,4 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
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);
|
||||
},
|
||||
// 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 inverted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||
|
||||
@ -2147,8 +2147,8 @@ var controls = {
|
||||
range.setAttribute('aria-valuenow', this.currentTime);
|
||||
var currentTime = controls.formatTime(this.currentTime);
|
||||
var duration = controls.formatTime(this.duration);
|
||||
var format$$1 = i18n.get('seekLabel', this.config);
|
||||
range.setAttribute('aria-valuetext', format$$1.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
||||
var format = i18n.get('seekLabel', this.config);
|
||||
range.setAttribute('aria-valuetext', format.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
||||
} else if (matches$1(range, this.config.selectors.inputs.volume)) {
|
||||
var percent = range.value * 100;
|
||||
range.setAttribute('aria-valuenow', percent);
|
||||
@ -4380,13 +4380,13 @@ var ui = {
|
||||
},
|
||||
// Toggle controls based on state and `force` argument
|
||||
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.)
|
||||
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) {
|
||||
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') {
|
||||
controls$$1.pressed = false;
|
||||
controls$$1.hover = false;
|
||||
if (controls && event.type === 'enterfullscreen') {
|
||||
controls.pressed = false;
|
||||
controls.hover = false;
|
||||
} // Show, then hide after a timeout unless another control event occurs
|
||||
|
||||
|
||||
@ -4951,7 +4951,7 @@ function () {
|
||||
|
||||
}, {
|
||||
key: "controls",
|
||||
value: function controls$$1() {
|
||||
value: function controls$1() {
|
||||
var _this3 = this;
|
||||
|
||||
var player = this.player;
|
||||
@ -5320,16 +5320,23 @@ var loadjs_umd = createCommonjsModule(function (module, exports) {
|
||||
maxTries = (args.numRetries || 0) + 1,
|
||||
beforeCallbackFn = args.before || devnull,
|
||||
pathStripped = path.replace(/^(css|img)!/, ''),
|
||||
isCss,
|
||||
isLegacyIECss,
|
||||
e;
|
||||
numTries = numTries || 0;
|
||||
|
||||
if (/(^css!|\.css$)/.test(path)) {
|
||||
isCss = true; // css
|
||||
|
||||
// css
|
||||
e = doc.createElement('link');
|
||||
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)) {
|
||||
// image
|
||||
e = doc.createElement('img');
|
||||
@ -5342,10 +5349,10 @@ var loadjs_umd = createCommonjsModule(function (module, exports) {
|
||||
}
|
||||
|
||||
e.onload = e.onerror = e.onbeforeload = function (ev) {
|
||||
var result = ev.type[0]; // Note: The following code isolates IE using `hideFocus` and treats empty
|
||||
// stylesheets as failures to get around lack of onerror support
|
||||
var result = ev.type[0]; // treat empty stylesheets as failures to get around lack of onerror
|
||||
// support in IE9-11
|
||||
|
||||
if (isCss && 'hideFocus' in e) {
|
||||
if (isLegacyIECss) {
|
||||
try {
|
||||
if (!e.sheet.cssText.length) result = 'e';
|
||||
} catch (x) {
|
||||
@ -5363,6 +5370,9 @@ var loadjs_umd = createCommonjsModule(function (module, exports) {
|
||||
if (numTries < maxTries) {
|
||||
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
|
||||
|
||||
|
||||
@ -5428,16 +5438,27 @@ var loadjs_umd = createCommonjsModule(function (module, exports) {
|
||||
} else {
|
||||
bundleIdCache[bundleId] = true;
|
||||
}
|
||||
} // load scripts
|
||||
|
||||
}
|
||||
|
||||
function loadFn(resolve, reject) {
|
||||
loadFiles(paths, function (pathsNotFound) {
|
||||
// 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);
|
||||
}, args);
|
||||
}
|
||||
|
||||
if (args.returnPromise) return new Promise(loadFn);else loadFn();
|
||||
}
|
||||
/**
|
||||
* Execute callbacks when dependencies have been satisfied.
|
||||
* @param {(string|string[])} deps - List of bundle ids
|
||||
@ -5542,7 +5563,7 @@ var vimeo = {
|
||||
}
|
||||
},
|
||||
// API Ready
|
||||
ready: function ready$$1() {
|
||||
ready: function ready() {
|
||||
var _this2 = this;
|
||||
|
||||
var player = this;
|
||||
@ -5921,7 +5942,7 @@ var youtube = {
|
||||
}
|
||||
},
|
||||
// API ready
|
||||
ready: function ready$$1() {
|
||||
ready: function ready() {
|
||||
var player = this; // Ignore already setup (race condition)
|
||||
|
||||
var currentId = player.media.getAttribute('id');
|
||||
@ -5949,8 +5970,8 @@ var youtube = {
|
||||
});
|
||||
player.media = replaceElement(container, player.media); // Id to poster wrapper
|
||||
|
||||
var posterSrc = function posterSrc(format$$1) {
|
||||
return "https://img.youtube.com/vi/".concat(videoId, "/").concat(format$$1, "default.jpg");
|
||||
var posterSrc = function posterSrc(format) {
|
||||
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)
|
||||
|
||||
|
||||
@ -6343,7 +6364,7 @@ function () {
|
||||
|
||||
}, {
|
||||
key: "ready",
|
||||
value: function ready$$1() {
|
||||
value: function ready() {
|
||||
var _this3 = this;
|
||||
|
||||
// Start ticking our safety timer. If the whole advertisement
|
||||
@ -6827,7 +6848,7 @@ function () {
|
||||
|
||||
}, {
|
||||
key: "on",
|
||||
value: function on$$1(event, callback) {
|
||||
value: function on(event, callback) {
|
||||
if (!is$1.array(this.events[event])) {
|
||||
this.events[event] = [];
|
||||
}
|
||||
@ -8175,7 +8196,7 @@ function () {
|
||||
|
||||
}, {
|
||||
key: "on",
|
||||
value: function on$$1(event, callback) {
|
||||
value: function on$1(event, callback) {
|
||||
on.call(this, this.elements.container, event, callback);
|
||||
}
|
||||
/**
|
||||
@ -8186,7 +8207,7 @@ function () {
|
||||
|
||||
}, {
|
||||
key: "once",
|
||||
value: function once$$1(event, callback) {
|
||||
value: function once$1(event, callback) {
|
||||
once.call(this, this.elements.container, event, callback);
|
||||
}
|
||||
/**
|
||||
@ -8197,7 +8218,7 @@ function () {
|
||||
|
||||
}, {
|
||||
key: "off",
|
||||
value: function off$$1(event, callback) {
|
||||
value: function off$1(event, callback) {
|
||||
off(this.elements.container, event, callback);
|
||||
}
|
||||
/**
|
||||
@ -8856,7 +8877,7 @@ function () {
|
||||
|
||||
}, {
|
||||
key: "loadSprite",
|
||||
value: function loadSprite$$1(url, id) {
|
||||
value: function loadSprite$1(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 exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||
typeof define === 'function' && define.amd ? define('Plyr', factory) :
|
||||
(global.Plyr = factory());
|
||||
}(this, (function () { 'use strict';
|
||||
(global = global || self, global.Plyr = factory());
|
||||
}(this, function () { 'use strict';
|
||||
|
||||
// Polyfill for creating CustomEvents on IE9/10/11
|
||||
// code pulled from:
|
||||
@ -1763,7 +1763,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
};
|
||||
|
||||
var deserializeParam = function deserializeParam(value) {
|
||||
return decodeURIComponent(value).replace(/\+/g, ' ');
|
||||
return decodeURIComponent(String(value).replace(/\+/g, ' '));
|
||||
};
|
||||
|
||||
var polyfillURLSearchParams = function polyfillURLSearchParams() {
|
||||
@ -1891,11 +1891,11 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
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();
|
||||
}
|
||||
|
||||
var proto = URLSearchParams.prototype;
|
||||
var proto = global.URLSearchParams.prototype;
|
||||
|
||||
if (typeof proto.sort !== 'function') {
|
||||
proto.sort = function () {
|
||||
@ -1971,7 +1971,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
*/
|
||||
var checkIfURLIsSupported = function checkIfURLIsSupported() {
|
||||
try {
|
||||
var u = new URL('b', 'http://a');
|
||||
var u = new global.URL('b', 'http://a');
|
||||
u.pathname = 'c%20d';
|
||||
return u.href === 'http://a/c%20d' && u.searchParams;
|
||||
} catch (e) {
|
||||
@ -2017,7 +2017,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
value: anchorElement
|
||||
}); // 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 enableSearchParamsUpdate = true;
|
||||
|
||||
@ -2642,7 +2642,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
var arrayFind = _arrayMethods(5);
|
||||
var arrayFindIndex = _arrayMethods(6);
|
||||
var id$2 = 0;
|
||||
var id$1 = 0;
|
||||
|
||||
// fallback for uncaught frozen keys
|
||||
var uncaughtFrozenStore = function (that) {
|
||||
@ -2683,7 +2683,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
var C = wrapper(function (that, iterable) {
|
||||
_anInstance(that, C, NAME, '_i');
|
||||
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
|
||||
if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
|
||||
});
|
||||
@ -5421,7 +5421,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
list.appendChild(menuItem);
|
||||
},
|
||||
// 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 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);
|
||||
var currentTime = controls.formatTime(this.currentTime);
|
||||
var duration = controls.formatTime(this.duration);
|
||||
var format$$1 = i18n.get('seekLabel', this.config);
|
||||
range.setAttribute('aria-valuetext', format$$1.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
||||
var format = i18n.get('seekLabel', this.config);
|
||||
range.setAttribute('aria-valuetext', format.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
||||
} else if (matches$1(range, this.config.selectors.inputs.volume)) {
|
||||
var percent = range.value * 100;
|
||||
range.setAttribute('aria-valuenow', percent);
|
||||
@ -7784,13 +7784,13 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
},
|
||||
// Toggle controls based on state and `force` argument
|
||||
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.)
|
||||
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) {
|
||||
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') {
|
||||
controls$$1.pressed = false;
|
||||
controls$$1.hover = false;
|
||||
if (controls && event.type === 'enterfullscreen') {
|
||||
controls.pressed = false;
|
||||
controls.hover = false;
|
||||
} // Show, then hide after a timeout unless another control event occurs
|
||||
|
||||
|
||||
@ -8355,7 +8355,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
}, {
|
||||
key: "controls",
|
||||
value: function controls$$1() {
|
||||
value: function controls$1() {
|
||||
var _this3 = this;
|
||||
|
||||
var player = this.player;
|
||||
@ -8718,16 +8718,23 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
maxTries = (args.numRetries || 0) + 1,
|
||||
beforeCallbackFn = args.before || devnull,
|
||||
pathStripped = path.replace(/^(css|img)!/, ''),
|
||||
isCss,
|
||||
isLegacyIECss,
|
||||
e;
|
||||
numTries = numTries || 0;
|
||||
|
||||
if (/(^css!|\.css$)/.test(path)) {
|
||||
isCss = true; // css
|
||||
|
||||
// css
|
||||
e = doc.createElement('link');
|
||||
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)) {
|
||||
// image
|
||||
e = doc.createElement('img');
|
||||
@ -8740,10 +8747,10 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
}
|
||||
|
||||
e.onload = e.onerror = e.onbeforeload = function (ev) {
|
||||
var result = ev.type[0]; // Note: The following code isolates IE using `hideFocus` and treats empty
|
||||
// stylesheets as failures to get around lack of onerror support
|
||||
var result = ev.type[0]; // treat empty stylesheets as failures to get around lack of onerror
|
||||
// support in IE9-11
|
||||
|
||||
if (isCss && 'hideFocus' in e) {
|
||||
if (isLegacyIECss) {
|
||||
try {
|
||||
if (!e.sheet.cssText.length) result = 'e';
|
||||
} catch (x) {
|
||||
@ -8761,6 +8768,9 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
if (numTries < maxTries) {
|
||||
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
|
||||
|
||||
|
||||
@ -8826,16 +8836,27 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
} else {
|
||||
bundleIdCache[bundleId] = true;
|
||||
}
|
||||
} // load scripts
|
||||
|
||||
}
|
||||
|
||||
function loadFn(resolve, reject) {
|
||||
loadFiles(paths, function (pathsNotFound) {
|
||||
// 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);
|
||||
}, args);
|
||||
}
|
||||
|
||||
if (args.returnPromise) return new Promise(loadFn);else loadFn();
|
||||
}
|
||||
/**
|
||||
* Execute callbacks when dependencies have been satisfied.
|
||||
* @param {(string|string[])} deps - List of bundle ids
|
||||
@ -8939,7 +8960,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
}
|
||||
},
|
||||
// API Ready
|
||||
ready: function ready$$1() {
|
||||
ready: function ready() {
|
||||
var _this2 = this;
|
||||
|
||||
var player = this;
|
||||
@ -9316,7 +9337,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
}
|
||||
},
|
||||
// API ready
|
||||
ready: function ready$$1() {
|
||||
ready: function ready() {
|
||||
var player = this; // Ignore already setup (race condition)
|
||||
|
||||
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
|
||||
|
||||
var posterSrc = function posterSrc(format$$1) {
|
||||
return "https://img.youtube.com/vi/".concat(videoId, "/").concat(format$$1, "default.jpg");
|
||||
var posterSrc = function posterSrc(format) {
|
||||
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)
|
||||
|
||||
|
||||
@ -9737,7 +9758,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
}, {
|
||||
key: "ready",
|
||||
value: function ready$$1() {
|
||||
value: function ready() {
|
||||
var _this3 = this;
|
||||
|
||||
// Start ticking our safety timer. If the whole advertisement
|
||||
@ -10221,7 +10242,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
}, {
|
||||
key: "on",
|
||||
value: function on$$1(event, callback) {
|
||||
value: function on(event, callback) {
|
||||
if (!is$2.array(this.events[event])) {
|
||||
this.events[event] = [];
|
||||
}
|
||||
@ -11583,7 +11604,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
}, {
|
||||
key: "on",
|
||||
value: function on$$1(event, callback) {
|
||||
value: function on$1(event, callback) {
|
||||
on.call(this, this.elements.container, event, callback);
|
||||
}
|
||||
/**
|
||||
@ -11594,7 +11615,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
}, {
|
||||
key: "once",
|
||||
value: function once$$1(event, callback) {
|
||||
value: function once$1(event, callback) {
|
||||
once.call(this, this.elements.container, event, callback);
|
||||
}
|
||||
/**
|
||||
@ -11605,7 +11626,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
}, {
|
||||
key: "off",
|
||||
value: function off$$1(event, callback) {
|
||||
value: function off$1(event, callback) {
|
||||
off(this.elements.container, event, callback);
|
||||
}
|
||||
/**
|
||||
@ -12264,7 +12285,7 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
}, {
|
||||
key: "loadSprite",
|
||||
value: function loadSprite$$1(url, id) {
|
||||
value: function loadSprite$1(url, id) {
|
||||
return loadSprite(url, id);
|
||||
}
|
||||
/**
|
||||
@ -12306,4 +12327,4 @@ typeof navigator === "object" && (function (global, factory) {
|
||||
|
||||
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) {
|
||||
return decodeURIComponent(value).replace(/\+/g, ' ');
|
||||
return decodeURIComponent(String(value).replace(/\+/g, ' '));
|
||||
};
|
||||
|
||||
var polyfillURLSearchParams = function polyfillURLSearchParams() {
|
||||
@ -1885,11 +1885,11 @@ _setToStringTag(_global.JSON, 'JSON', true);
|
||||
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();
|
||||
}
|
||||
|
||||
var proto = URLSearchParams.prototype;
|
||||
var proto = global.URLSearchParams.prototype;
|
||||
|
||||
if (typeof proto.sort !== 'function') {
|
||||
proto.sort = function () {
|
||||
@ -1965,7 +1965,7 @@ _setToStringTag(_global.JSON, 'JSON', true);
|
||||
*/
|
||||
var checkIfURLIsSupported = function checkIfURLIsSupported() {
|
||||
try {
|
||||
var u = new URL('b', 'http://a');
|
||||
var u = new global.URL('b', 'http://a');
|
||||
u.pathname = 'c%20d';
|
||||
return u.href === 'http://a/c%20d' && u.searchParams;
|
||||
} catch (e) {
|
||||
@ -2011,7 +2011,7 @@ _setToStringTag(_global.JSON, 'JSON', true);
|
||||
value: anchorElement
|
||||
}); // 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 enableSearchParamsUpdate = true;
|
||||
|
||||
@ -2636,7 +2636,7 @@ var getWeak = _meta.getWeak;
|
||||
|
||||
var arrayFind = _arrayMethods(5);
|
||||
var arrayFindIndex = _arrayMethods(6);
|
||||
var id$2 = 0;
|
||||
var id$1 = 0;
|
||||
|
||||
// fallback for uncaught frozen keys
|
||||
var uncaughtFrozenStore = function (that) {
|
||||
@ -2677,7 +2677,7 @@ var _collectionWeak = {
|
||||
var C = wrapper(function (that, iterable) {
|
||||
_anInstance(that, C, NAME, '_i');
|
||||
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
|
||||
if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
|
||||
});
|
||||
@ -5415,7 +5415,7 @@ var controls = {
|
||||
list.appendChild(menuItem);
|
||||
},
|
||||
// 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 inverted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||
|
||||
@ -5535,8 +5535,8 @@ var controls = {
|
||||
range.setAttribute('aria-valuenow', this.currentTime);
|
||||
var currentTime = controls.formatTime(this.currentTime);
|
||||
var duration = controls.formatTime(this.duration);
|
||||
var format$$1 = i18n.get('seekLabel', this.config);
|
||||
range.setAttribute('aria-valuetext', format$$1.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
||||
var format = i18n.get('seekLabel', this.config);
|
||||
range.setAttribute('aria-valuetext', format.replace('{currentTime}', currentTime).replace('{duration}', duration));
|
||||
} else if (matches$1(range, this.config.selectors.inputs.volume)) {
|
||||
var percent = range.value * 100;
|
||||
range.setAttribute('aria-valuenow', percent);
|
||||
@ -7778,13 +7778,13 @@ var ui = {
|
||||
},
|
||||
// Toggle controls based on state and `force` argument
|
||||
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.)
|
||||
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) {
|
||||
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') {
|
||||
controls$$1.pressed = false;
|
||||
controls$$1.hover = false;
|
||||
if (controls && event.type === 'enterfullscreen') {
|
||||
controls.pressed = false;
|
||||
controls.hover = false;
|
||||
} // Show, then hide after a timeout unless another control event occurs
|
||||
|
||||
|
||||
@ -8349,7 +8349,7 @@ function () {
|
||||
|
||||
}, {
|
||||
key: "controls",
|
||||
value: function controls$$1() {
|
||||
value: function controls$1() {
|
||||
var _this3 = this;
|
||||
|
||||
var player = this.player;
|
||||
@ -8712,16 +8712,23 @@ var loadjs_umd = createCommonjsModule(function (module, exports) {
|
||||
maxTries = (args.numRetries || 0) + 1,
|
||||
beforeCallbackFn = args.before || devnull,
|
||||
pathStripped = path.replace(/^(css|img)!/, ''),
|
||||
isCss,
|
||||
isLegacyIECss,
|
||||
e;
|
||||
numTries = numTries || 0;
|
||||
|
||||
if (/(^css!|\.css$)/.test(path)) {
|
||||
isCss = true; // css
|
||||
|
||||
// css
|
||||
e = doc.createElement('link');
|
||||
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)) {
|
||||
// image
|
||||
e = doc.createElement('img');
|
||||
@ -8734,10 +8741,10 @@ var loadjs_umd = createCommonjsModule(function (module, exports) {
|
||||
}
|
||||
|
||||
e.onload = e.onerror = e.onbeforeload = function (ev) {
|
||||
var result = ev.type[0]; // Note: The following code isolates IE using `hideFocus` and treats empty
|
||||
// stylesheets as failures to get around lack of onerror support
|
||||
var result = ev.type[0]; // treat empty stylesheets as failures to get around lack of onerror
|
||||
// support in IE9-11
|
||||
|
||||
if (isCss && 'hideFocus' in e) {
|
||||
if (isLegacyIECss) {
|
||||
try {
|
||||
if (!e.sheet.cssText.length) result = 'e';
|
||||
} catch (x) {
|
||||
@ -8755,6 +8762,9 @@ var loadjs_umd = createCommonjsModule(function (module, exports) {
|
||||
if (numTries < maxTries) {
|
||||
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
|
||||
|
||||
|
||||
@ -8820,16 +8830,27 @@ var loadjs_umd = createCommonjsModule(function (module, exports) {
|
||||
} else {
|
||||
bundleIdCache[bundleId] = true;
|
||||
}
|
||||
} // load scripts
|
||||
|
||||
}
|
||||
|
||||
function loadFn(resolve, reject) {
|
||||
loadFiles(paths, function (pathsNotFound) {
|
||||
// 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);
|
||||
}, args);
|
||||
}
|
||||
|
||||
if (args.returnPromise) return new Promise(loadFn);else loadFn();
|
||||
}
|
||||
/**
|
||||
* Execute callbacks when dependencies have been satisfied.
|
||||
* @param {(string|string[])} deps - List of bundle ids
|
||||
@ -8933,7 +8954,7 @@ var vimeo = {
|
||||
}
|
||||
},
|
||||
// API Ready
|
||||
ready: function ready$$1() {
|
||||
ready: function ready() {
|
||||
var _this2 = this;
|
||||
|
||||
var player = this;
|
||||
@ -9310,7 +9331,7 @@ var youtube = {
|
||||
}
|
||||
},
|
||||
// API ready
|
||||
ready: function ready$$1() {
|
||||
ready: function ready() {
|
||||
var player = this; // Ignore already setup (race condition)
|
||||
|
||||
var currentId = player.media.getAttribute('id');
|
||||
@ -9338,8 +9359,8 @@ var youtube = {
|
||||
});
|
||||
player.media = replaceElement(container, player.media); // Id to poster wrapper
|
||||
|
||||
var posterSrc = function posterSrc(format$$1) {
|
||||
return "https://img.youtube.com/vi/".concat(videoId, "/").concat(format$$1, "default.jpg");
|
||||
var posterSrc = function posterSrc(format) {
|
||||
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)
|
||||
|
||||
|
||||
@ -9731,7 +9752,7 @@ function () {
|
||||
|
||||
}, {
|
||||
key: "ready",
|
||||
value: function ready$$1() {
|
||||
value: function ready() {
|
||||
var _this3 = this;
|
||||
|
||||
// Start ticking our safety timer. If the whole advertisement
|
||||
@ -10215,7 +10236,7 @@ function () {
|
||||
|
||||
}, {
|
||||
key: "on",
|
||||
value: function on$$1(event, callback) {
|
||||
value: function on(event, callback) {
|
||||
if (!is$2.array(this.events[event])) {
|
||||
this.events[event] = [];
|
||||
}
|
||||
@ -11577,7 +11598,7 @@ function () {
|
||||
|
||||
}, {
|
||||
key: "on",
|
||||
value: function on$$1(event, callback) {
|
||||
value: function on$1(event, callback) {
|
||||
on.call(this, this.elements.container, event, callback);
|
||||
}
|
||||
/**
|
||||
@ -11588,7 +11609,7 @@ function () {
|
||||
|
||||
}, {
|
||||
key: "once",
|
||||
value: function once$$1(event, callback) {
|
||||
value: function once$1(event, callback) {
|
||||
once.call(this, this.elements.container, event, callback);
|
||||
}
|
||||
/**
|
||||
@ -11599,7 +11620,7 @@ function () {
|
||||
|
||||
}, {
|
||||
key: "off",
|
||||
value: function off$$1(event, callback) {
|
||||
value: function off$1(event, callback) {
|
||||
off(this.elements.container, event, callback);
|
||||
}
|
||||
/**
|
||||
@ -12258,7 +12279,7 @@ function () {
|
||||
|
||||
}, {
|
||||
key: "loadSprite",
|
||||
value: function loadSprite$$1(url, id) {
|
||||
value: function loadSprite$1(url, id) {
|
||||
return loadSprite(url, id);
|
||||
}
|
||||
/**
|
||||
|
27
package.json
27
package.json
@ -35,15 +35,15 @@
|
||||
"deploy": "yarn lint && gulp deploy"
|
||||
},
|
||||
"devDependencies": {
|
||||
"ansi-colors": "^3.2.3",
|
||||
"aws-sdk": "^2.409.0",
|
||||
"@babel/core": "^7.3.3",
|
||||
"@babel/preset-env": "^7.3.1",
|
||||
"ansi-colors": "^3.2.4",
|
||||
"aws-sdk": "^2.422.0",
|
||||
"@babel/core": "^7.3.4",
|
||||
"@babel/preset-env": "^7.3.4",
|
||||
"babel-eslint": "^10.0.1",
|
||||
"del": "^3.0.0",
|
||||
"eslint": "^5.14.1",
|
||||
"del": "^4.0.0",
|
||||
"eslint": "^5.15.2",
|
||||
"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",
|
||||
"fancy-log": "^1.3.3",
|
||||
"fastly-purge": "^1.0.1",
|
||||
@ -51,7 +51,7 @@
|
||||
"gulp": "^4.0.0",
|
||||
"gulp-autoprefixer": "^6.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-filter": "^5.1.0",
|
||||
"gulp-header": "^2.0.7",
|
||||
@ -70,7 +70,8 @@
|
||||
"prettier-eslint": "^8.8.2",
|
||||
"prettier-stylelint": "^0.4.2",
|
||||
"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-commonjs": "^9.2.1",
|
||||
"rollup-plugin-node-resolve": "^4.0.1",
|
||||
@ -78,17 +79,17 @@
|
||||
"stylelint-config-prettier": "^5.0.0",
|
||||
"stylelint-config-recommended": "^2.1.0",
|
||||
"stylelint-config-sass-guidelines": "^5.3.0",
|
||||
"stylelint-order": "^2.0.0",
|
||||
"stylelint-order": "^2.1.0",
|
||||
"stylelint-scss": "^3.5.4",
|
||||
"stylelint-selector-bem-pattern": "^2.0.0",
|
||||
"through2": "^3.0.0"
|
||||
"through2": "^3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"core-js": "^2.6.5",
|
||||
"custom-event-polyfill": "^1.0.6",
|
||||
"loadjs": "^3.5.5",
|
||||
"loadjs": "^3.6.0",
|
||||
"rangetouch": "^2.0.0",
|
||||
"raven-js": "^3.27.0",
|
||||
"url-polyfill": "^1.1.3"
|
||||
"url-polyfill": "^1.1.5"
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,10 @@
|
||||
}
|
||||
],
|
||||
"settings": {
|
||||
"search.exclude": {
|
||||
"**/node_modules": true,
|
||||
"**/dist": true
|
||||
},
|
||||
// Linting
|
||||
"stylelint.enable": true,
|
||||
"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. |
|
||||
| `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. |
|
||||
| `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. |
|
||||
| `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. |
|
||||
|
Loading…
x
Reference in New Issue
Block a user