diff options
author | Sam Potts <sam@potts.es> | 2020-03-27 23:50:40 +1100 |
---|---|---|
committer | Sam Potts <sam@potts.es> | 2020-03-27 23:50:40 +1100 |
commit | 350999575633a44686ee5857ad9853dcd1b55dff (patch) | |
tree | 97057ff55cf40205743f594013a5c390531159b9 /dist/plyr.mjs | |
parent | 88dc981f4b52d649f29b17ec13f702edc9b85ef5 (diff) | |
download | plyr-350999575633a44686ee5857ad9853dcd1b55dff.tar.lz plyr-350999575633a44686ee5857ad9853dcd1b55dff.tar.xz plyr-350999575633a44686ee5857ad9853dcd1b55dff.zip |
Build
Diffstat (limited to 'dist/plyr.mjs')
-rw-r--r-- | dist/plyr.mjs | 472 |
1 files changed, 185 insertions, 287 deletions
diff --git a/dist/plyr.mjs b/dist/plyr.mjs index 21f1e4c4..e5613260 100644 --- a/dist/plyr.mjs +++ b/dist/plyr.mjs @@ -70,19 +70,15 @@ function _objectSpread2(target) { } function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; - - return arr2; - } + if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayWithHoles(arr) { @@ -90,14 +86,11 @@ function _arrayWithHoles(arr) { } function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } function _iterableToArrayLimit(arr, i) { - if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { - return; - } - + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; @@ -123,102 +116,142 @@ function _iterableToArrayLimit(arr, i) { return _arr; } -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(n); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } -function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); -} +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; -var defaults = { - addCSS: true, - // Add CSS to the element to improve usability (required here or in your CSS!) - thumbWidth: 15, - // The width of the thumb handle - watch: true // Watch for new elements that match a string target - -}; - -// Element matches a selector -function matches(element, selector) { - - function match() { - return Array.from(document.querySelectorAll(selector)).includes(this); - } + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - var matches = match; - return matches.call(element, selector); + return arr2; } -// Trigger event -function trigger(element, type) { - if (!element || !type) { - return; - } // Create and dispatch the event - - - var event = new Event(type); // Dispatch the event - - element.dispatchEvent(event); +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -// ========================================================================== -// Type checking utils -// ========================================================================== -var getConstructor = function getConstructor(input) { - return input !== null && typeof input !== 'undefined' ? input.constructor : null; -}; +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} -var instanceOf = function instanceOf(input, constructor) { - return Boolean(input && constructor && input instanceof constructor); -}; +function _classCallCheck$1(e, t) { + if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); +} -var isNullOrUndefined = function isNullOrUndefined(input) { - return input === null || typeof input === 'undefined'; -}; +function _defineProperties$1(e, t) { + for (var n = 0; n < t.length; n++) { + var r = t[n]; + r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r); + } +} -var isObject = function isObject(input) { - return getConstructor(input) === Object; -}; +function _createClass$1(e, t, n) { + return t && _defineProperties$1(e.prototype, t), n && _defineProperties$1(e, n), e; +} -var isNumber = function isNumber(input) { - return getConstructor(input) === Number && !Number.isNaN(input); -}; +function _defineProperty$1(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e; +} -var isString = function isString(input) { - return getConstructor(input) === String; -}; +function ownKeys$1(e, t) { + var n = Object.keys(e); -var isBoolean = function isBoolean(input) { - return getConstructor(input) === Boolean; -}; + if (Object.getOwnPropertySymbols) { + var r = Object.getOwnPropertySymbols(e); + t && (r = r.filter(function (t) { + return Object.getOwnPropertyDescriptor(e, t).enumerable; + })), n.push.apply(n, r); + } -var isFunction = function isFunction(input) { - return getConstructor(input) === Function; -}; + return n; +} -var isArray = function isArray(input) { - return Array.isArray(input); -}; +function _objectSpread2$1(e) { + for (var t = 1; t < arguments.length; t++) { + var n = null != arguments[t] ? arguments[t] : {}; + t % 2 ? ownKeys$1(Object(n), !0).forEach(function (t) { + _defineProperty$1(e, t, n[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ownKeys$1(Object(n)).forEach(function (t) { + Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); + }); + } -var isNodeList = function isNodeList(input) { - return instanceOf(input, NodeList); -}; + return e; +} -var isElement = function isElement(input) { - return instanceOf(input, Element); +var defaults = { + addCSS: !0, + thumbWidth: 15, + watch: !0 }; -var isEvent = function isEvent(input) { - return instanceOf(input, Event); -}; +function matches(e, t) { + return function () { + return Array.from(document.querySelectorAll(t)).includes(this); + }.call(e, t); +} -var isEmpty = function isEmpty(input) { - return isNullOrUndefined(input) || (isString(input) || isArray(input) || isNodeList(input)) && !input.length || isObject(input) && !Object.keys(input).length; -}; +function trigger(e, t) { + if (e && t) { + var n = new Event(t, { + bubbles: !0 + }); + e.dispatchEvent(n); + } +} -var is = { +var getConstructor = function getConstructor(e) { + return null != e ? e.constructor : null; +}, + instanceOf = function instanceOf(e, t) { + return !!(e && t && e instanceof t); +}, + isNullOrUndefined = function isNullOrUndefined(e) { + return null == e; +}, + isObject = function isObject(e) { + return getConstructor(e) === Object; +}, + isNumber = function isNumber(e) { + return getConstructor(e) === Number && !Number.isNaN(e); +}, + isString = function isString(e) { + return getConstructor(e) === String; +}, + isBoolean = function isBoolean(e) { + return getConstructor(e) === Boolean; +}, + isFunction = function isFunction(e) { + return getConstructor(e) === Function; +}, + isArray = function isArray(e) { + return Array.isArray(e); +}, + isNodeList = function isNodeList(e) { + return instanceOf(e, NodeList); +}, + isElement = function isElement(e) { + return instanceOf(e, Element); +}, + isEvent = function isEvent(e) { + return instanceOf(e, Event); +}, + isEmpty = function isEmpty(e) { + return isNullOrUndefined(e) || (isString(e) || isArray(e) || isNodeList(e)) && !e.length || isObject(e) && !Object.keys(e).length; +}, + is = { nullOrUndefined: isNullOrUndefined, object: isObject, number: isNumber, @@ -232,219 +265,98 @@ var is = { empty: isEmpty }; -// Get the number of decimal places -function getDecimalPlaces(value) { - var match = "".concat(value).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/); - - if (!match) { - return 0; - } - - return Math.max(0, // Number of digits right of decimal point. - (match[1] ? match[1].length : 0) - ( // Adjust for scientific notation. - match[2] ? +match[2] : 0)); -} // Round to the nearest step +function getDecimalPlaces(e) { + var t = "".concat(e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/); + return t ? Math.max(0, (t[1] ? t[1].length : 0) - (t[2] ? +t[2] : 0)) : 0; +} -function round(number, step) { - if (step < 1) { - var places = getDecimalPlaces(step); - return parseFloat(number.toFixed(places)); +function round(e, t) { + if (1 > t) { + var n = getDecimalPlaces(t); + return parseFloat(e.toFixed(n)); } - return Math.round(number / step) * step; + return Math.round(e / t) * t; } -var RangeTouch = -/*#__PURE__*/ -function () { - /** - * Setup a new instance - * @param {String|Element} target - * @param {Object} options - */ - function RangeTouch(target, options) { - _classCallCheck(this, RangeTouch); - - if (is.element(target)) { - // An Element is passed, use it directly - this.element = target; - } else if (is.string(target)) { - // A CSS Selector is passed, fetch it from the DOM - this.element = document.querySelector(target); - } - - if (!is.element(this.element) || !is.empty(this.element.rangeTouch)) { - return; - } - - this.config = Object.assign({}, defaults, options); - this.init(); +var RangeTouch = function () { + function e(t, n) { + _classCallCheck$1(this, e), is.element(t) ? this.element = t : is.string(t) && (this.element = document.querySelector(t)), is.element(this.element) && is.empty(this.element.rangeTouch) && (this.config = _objectSpread2$1({}, defaults, {}, n), this.init()); } - _createClass(RangeTouch, [{ + return _createClass$1(e, [{ key: "init", - value: function init() { - // Bail if not a touch enabled device - if (!RangeTouch.enabled) { - return; - } // Add useful CSS - - - if (this.config.addCSS) { - // TODO: Restore original values on destroy - this.element.style.userSelect = 'none'; - this.element.style.webKitUserSelect = 'none'; - this.element.style.touchAction = 'manipulation'; - } - - this.listeners(true); - this.element.rangeTouch = this; + value: function value() { + e.enabled && (this.config.addCSS && (this.element.style.userSelect = "none", this.element.style.webKitUserSelect = "none", this.element.style.touchAction = "manipulation"), this.listeners(!0), this.element.rangeTouch = this); } }, { key: "destroy", - value: function destroy() { - // Bail if not a touch enabled device - if (!RangeTouch.enabled) { - return; - } - - this.listeners(false); - this.element.rangeTouch = null; + value: function value() { + e.enabled && (this.config.addCSS && (this.element.style.userSelect = "", this.element.style.webKitUserSelect = "", this.element.style.touchAction = ""), this.listeners(!1), this.element.rangeTouch = null); } }, { key: "listeners", - value: function listeners(toggle) { - var _this = this; - - var method = toggle ? 'addEventListener' : 'removeEventListener'; // Listen for events - - ['touchstart', 'touchmove', 'touchend'].forEach(function (type) { - _this.element[method](type, function (event) { - return _this.set(event); - }, false); + value: function value(e) { + var t = this, + n = e ? "addEventListener" : "removeEventListener"; + ["touchstart", "touchmove", "touchend"].forEach(function (e) { + t.element[n](e, function (e) { + return t.set(e); + }, !1); }); } - /** - * Get the value based on touch position - * @param {Event} event - */ - }, { key: "get", - value: function get(event) { - if (!RangeTouch.enabled || !is.event(event)) { - return null; - } - - var input = event.target; - var touch = event.changedTouches[0]; - var min = parseFloat(input.getAttribute('min')) || 0; - var max = parseFloat(input.getAttribute('max')) || 100; - var step = parseFloat(input.getAttribute('step')) || 1; - var delta = max - min; // Calculate percentage - - var percent; - var clientRect = input.getBoundingClientRect(); - var thumbWidth = 100 / clientRect.width * (this.config.thumbWidth / 2) / 100; // Determine left percentage - - percent = 100 / clientRect.width * (touch.clientX - clientRect.left); // Don't allow outside bounds - - if (percent < 0) { - percent = 0; - } else if (percent > 100) { - percent = 100; - } // Factor in the thumb offset - - - if (percent < 50) { - percent -= (100 - percent * 2) * thumbWidth; - } else if (percent > 50) { - percent += (percent - 50) * 2 * thumbWidth; - } // Find the closest step to the mouse position - - - return min + round(delta * (percent / 100), step); + value: function value(t) { + if (!e.enabled || !is.event(t)) return null; + var n, + r = t.target, + i = t.changedTouches[0], + o = parseFloat(r.getAttribute("min")) || 0, + s = parseFloat(r.getAttribute("max")) || 100, + u = parseFloat(r.getAttribute("step")) || 1, + c = r.getBoundingClientRect(), + a = 100 / c.width * (this.config.thumbWidth / 2) / 100; + return 0 > (n = 100 / c.width * (i.clientX - c.left)) ? n = 0 : 100 < n && (n = 100), 50 > n ? n -= (100 - 2 * n) * a : 50 < n && (n += 2 * (n - 50) * a), o + round(n / 100 * (s - o), u); } - /** - * Update range value based on position - * @param {Event} event - */ - }, { key: "set", - value: function set(event) { - if (!RangeTouch.enabled || !is.event(event) || event.target.disabled) { - return; - } // Prevent text highlight on iOS - - - event.preventDefault(); // Set value - - event.target.value = this.get(event); // Trigger event - - trigger(event.target, event.type === 'touchend' ? 'change' : 'input'); + value: function value(t) { + e.enabled && is.event(t) && !t.target.disabled && (t.preventDefault(), t.target.value = this.get(t), trigger(t.target, "touchend" === t.type ? "change" : "input")); } }], [{ key: "setup", - - /** - * Setup multiple instances - * @param {String|Element|NodeList|Array} target - * @param {Object} options - */ - value: function setup(target) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var targets = null; - - if (is.empty(target) || is.string(target)) { - targets = Array.from(document.querySelectorAll(is.string(target) ? target : 'input[type="range"]')); - } else if (is.element(target)) { - targets = [target]; - } else if (is.nodeList(target)) { - targets = Array.from(target); - } else if (is.array(target)) { - targets = target.filter(is.element); - } - - if (is.empty(targets)) { - return null; - } - - var config = Object.assign({}, defaults, options); - - if (is.string(target) && config.watch) { - // Create an observer instance - var observer = new MutationObserver(function (mutations) { - Array.from(mutations).forEach(function (mutation) { - Array.from(mutation.addedNodes).forEach(function (node) { - if (!is.element(node) || !matches(node, target)) { - return; - } // eslint-disable-next-line no-unused-vars - - - var range = new RangeTouch(node, config); + value: function value(t) { + var n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}, + r = null; + if (is.empty(t) || is.string(t) ? r = Array.from(document.querySelectorAll(is.string(t) ? t : 'input[type="range"]')) : is.element(t) ? r = [t] : is.nodeList(t) ? r = Array.from(t) : is.array(t) && (r = t.filter(is.element)), is.empty(r)) return null; + + var i = _objectSpread2$1({}, defaults, {}, n); + + if (is.string(t) && i.watch) { + var o = new MutationObserver(function (n) { + Array.from(n).forEach(function (n) { + Array.from(n.addedNodes).forEach(function (n) { + is.element(n) && matches(n, t) && new e(n, i); }); }); - }); // Pass in the target node, as well as the observer options - - observer.observe(document.body, { - childList: true, - subtree: true + }); + o.observe(document.body, { + childList: !0, + subtree: !0 }); } - return targets.map(function (t) { - return new RangeTouch(t, options); + return r.map(function (t) { + return new e(t, n); }); } }, { key: "enabled", get: function get() { - return 'ontouchstart' in document.documentElement; + return "ontouchstart" in document.documentElement; } - }]); - - return RangeTouch; + }]), e; }(); // ========================================================================== @@ -1492,9 +1404,7 @@ var i18n = { } }; -var Storage = -/*#__PURE__*/ -function () { +var Storage = /*#__PURE__*/function () { function Storage(player) { _classCallCheck(this, Storage); @@ -1776,7 +1686,7 @@ var controls = { var icon = document.createElementNS(namespace, 'svg'); setAttributes(icon, extend(attributes, { - role: 'presentation', + 'aria-hidden': 'true', focusable: 'false' })); // Create the <use> to reference sprite @@ -3366,7 +3276,7 @@ var captions = { toggleClass(this.elements.container, this.config.classNames.captions.enabled, !is$1.empty(tracks)); // Update available languages in list - if ((this.config.controls || []).includes('settings') && this.config.settings.includes('captions')) { + if (is$1.array(this.config.controls) && this.config.controls.includes('settings') && this.config.settings.includes('captions')) { controls.setCaptionsMenu.call(this); } }, @@ -4005,9 +3915,7 @@ function getProviderByUrl(url) { // ========================================================================== var noop = function noop() {}; -var Console = -/*#__PURE__*/ -function () { +var Console = /*#__PURE__*/function () { function Console() { var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; @@ -4043,9 +3951,7 @@ function () { return Console; }(); -var Fullscreen = -/*#__PURE__*/ -function () { +var Fullscreen = /*#__PURE__*/function () { function Fullscreen(player) { var _this = this; @@ -4569,9 +4475,7 @@ var ui = { } }; -var Listeners = -/*#__PURE__*/ -function () { +var Listeners = /*#__PURE__*/function () { function Listeners(player) { _classCallCheck(this, Listeners); @@ -6451,9 +6355,7 @@ var destroy = function destroy(instance) { instance.elements.container.remove(); }; -var Ads = -/*#__PURE__*/ -function () { +var Ads = /*#__PURE__*/function () { /** * Ads constructor. * @param {Object} player @@ -7145,9 +7047,7 @@ var fitRatio = function fitRatio(ratio, outer) { return result; }; -var PreviewThumbnails = -/*#__PURE__*/ -function () { +var PreviewThumbnails = /*#__PURE__*/function () { /** * PreviewThumbnails constructor. * @param {Plyr} player @@ -7976,9 +7876,7 @@ function clamp() { // const globals = new WeakMap(); // Plyr instance -var Plyr = -/*#__PURE__*/ -function () { +var Plyr = /*#__PURE__*/function () { function Plyr(target, options) { var _this = this; |