UNPKG

clappr-playback-rate-plugin

Version:

A simple plugin for Clappr that adds support to manually select the playback rate on HTML5 containers.

1,637 lines (1,315 loc) 94.3 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("@clappr/player")); else if(typeof define === 'function' && define.amd) define(["@clappr/player"], factory); else if(typeof exports === 'object') exports["PlaybackRatePlugin"] = factory(require("@clappr/player")); else root["PlaybackRatePlugin"] = factory(root["Clappr"]); })(window, function(__WEBPACK_EXTERNAL_MODULE__92__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 57); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {var check = function (it) { return it && it.Math == Math && it; }; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 module.exports = // eslint-disable-next-line no-undef check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || check(typeof self == 'object' && self) || check(typeof global == 'object' && global) || // eslint-disable-next-line no-new-func Function('return this')(); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(59))) /***/ }), /* 1 */ /***/ (function(module, exports) { var hasOwnProperty = {}.hasOwnProperty; module.exports = function (it, key) { return hasOwnProperty.call(it, key); }; /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { var fails = __webpack_require__(5); // Thank's IE8 for his funny defineProperty module.exports = !fails(function () { return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; }); /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(2); var IE8_DOM_DEFINE = __webpack_require__(38); var anObject = __webpack_require__(10); var toPrimitive = __webpack_require__(17); var nativeDefineProperty = Object.defineProperty; // `Object.defineProperty` method // https://tc39.github.io/ecma262/#sec-object.defineproperty exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPrimitive(P, true); anObject(Attributes); if (IE8_DOM_DEFINE) try { return nativeDefineProperty(O, P, Attributes); } catch (error) { /* empty */ } if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(0); var shared = __webpack_require__(25); var has = __webpack_require__(1); var uid = __webpack_require__(26); var NATIVE_SYMBOL = __webpack_require__(30); var USE_SYMBOL_AS_UID = __webpack_require__(48); var WellKnownSymbolsStore = shared('wks'); var Symbol = global.Symbol; var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; module.exports = function (name) { if (!has(WellKnownSymbolsStore, name)) { if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name]; else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); } return WellKnownSymbolsStore[name]; }; /***/ }), /* 5 */ /***/ (function(module, exports) { module.exports = function (exec) { try { return !!exec(); } catch (error) { return true; } }; /***/ }), /* 6 */ /***/ (function(module, exports) { module.exports = function (it) { return typeof it === 'object' ? it !== null : typeof it === 'function'; }; /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(2); var definePropertyModule = __webpack_require__(3); var createPropertyDescriptor = __webpack_require__(14); module.exports = DESCRIPTORS ? function (object, key, value) { return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); } : function (object, key, value) { object[key] = value; return object; }; /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(0); var getOwnPropertyDescriptor = __webpack_require__(13).f; var createNonEnumerableProperty = __webpack_require__(7); var redefine = __webpack_require__(11); var setGlobal = __webpack_require__(24); var copyConstructorProperties = __webpack_require__(42); var isForced = __webpack_require__(47); /* options.target - name of the target object options.global - target is the global object options.stat - export as static methods of target options.proto - export as prototype methods of target options.real - real prototype method for the `pure` version options.forced - export even if the native feature is available options.bind - bind methods to the target, required for the `pure` version options.wrap - wrap constructors to preventing global pollution, required for the `pure` version options.unsafe - use the simple assignment of property instead of delete + defineProperty options.sham - add a flag to not completely full polyfills options.enumerable - export as enumerable property options.noTargetGet - prevent calling a getter on target */ module.exports = function (options, source) { var TARGET = options.target; var GLOBAL = options.global; var STATIC = options.stat; var FORCED, target, key, targetProperty, sourceProperty, descriptor; if (GLOBAL) { target = global; } else if (STATIC) { target = global[TARGET] || setGlobal(TARGET, {}); } else { target = (global[TARGET] || {}).prototype; } if (target) for (key in source) { sourceProperty = source[key]; if (options.noTargetGet) { descriptor = getOwnPropertyDescriptor(target, key); targetProperty = descriptor && descriptor.value; } else targetProperty = target[key]; FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target if (!FORCED && targetProperty !== undefined) { if (typeof sourceProperty === typeof targetProperty) continue; copyConstructorProperties(sourceProperty, targetProperty); } // add a flag to not completely full polyfills if (options.sham || (targetProperty && targetProperty.sham)) { createNonEnumerableProperty(sourceProperty, 'sham', true); } // extend global redefine(target, key, sourceProperty, options); } }; /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { // toObject with fallback for non-array-like ES3 strings var IndexedObject = __webpack_require__(37); var requireObjectCoercible = __webpack_require__(16); module.exports = function (it) { return IndexedObject(requireObjectCoercible(it)); }; /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(6); module.exports = function (it) { if (!isObject(it)) { throw TypeError(String(it) + ' is not an object'); } return it; }; /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(0); var createNonEnumerableProperty = __webpack_require__(7); var has = __webpack_require__(1); var setGlobal = __webpack_require__(24); var inspectSource = __webpack_require__(40); var InternalStateModule = __webpack_require__(18); var getInternalState = InternalStateModule.get; var enforceInternalState = InternalStateModule.enforce; var TEMPLATE = String(String).split('String'); (module.exports = function (O, key, value, options) { var unsafe = options ? !!options.unsafe : false; var simple = options ? !!options.enumerable : false; var noTargetGet = options ? !!options.noTargetGet : false; if (typeof value == 'function') { if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key); enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : ''); } if (O === global) { if (simple) O[key] = value; else setGlobal(key, value); return; } else if (!unsafe) { delete O[key]; } else if (!noTargetGet && O[key]) { simple = true; } if (simple) O[key] = value; else createNonEnumerableProperty(O, key, value); // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative })(Function.prototype, 'toString', function toString() { return typeof this == 'function' && getInternalState(this).source || inspectSource(this); }); /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { var anObject = __webpack_require__(10); var defineProperties = __webpack_require__(64); var enumBugKeys = __webpack_require__(29); var hiddenKeys = __webpack_require__(21); var html = __webpack_require__(65); var documentCreateElement = __webpack_require__(39); var sharedKey = __webpack_require__(19); var GT = '>'; var LT = '<'; var PROTOTYPE = 'prototype'; var SCRIPT = 'script'; var IE_PROTO = sharedKey('IE_PROTO'); var EmptyConstructor = function () { /* empty */ }; var scriptTag = function (content) { return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; }; // Create object with fake `null` prototype: use ActiveX Object with cleared prototype var NullProtoObjectViaActiveX = function (activeXDocument) { activeXDocument.write(scriptTag('')); activeXDocument.close(); var temp = activeXDocument.parentWindow.Object; activeXDocument = null; // avoid memory leak return temp; }; // Create object with fake `null` prototype: use iframe Object with cleared prototype var NullProtoObjectViaIFrame = function () { // Thrash, waste and sodomy: IE GC bug var iframe = documentCreateElement('iframe'); var JS = 'java' + SCRIPT + ':'; var iframeDocument; iframe.style.display = 'none'; html.appendChild(iframe); // https://github.com/zloirock/core-js/issues/475 iframe.src = String(JS); iframeDocument = iframe.contentWindow.document; iframeDocument.open(); iframeDocument.write(scriptTag('document.F=Object')); iframeDocument.close(); return iframeDocument.F; }; // Check for document.domain and active x support // No need to use active x approach when document.domain is not set // see https://github.com/es-shims/es5-shim/issues/150 // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 // avoid IE GC bug var activeXDocument; var NullProtoObject = function () { try { /* global ActiveXObject */ activeXDocument = document.domain && new ActiveXObject('htmlfile'); } catch (error) { /* ignore */ } NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); var length = enumBugKeys.length; while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; return NullProtoObject(); }; hiddenKeys[IE_PROTO] = true; // `Object.create` method // https://tc39.github.io/ecma262/#sec-object.create module.exports = Object.create || function create(O, Properties) { var result; if (O !== null) { EmptyConstructor[PROTOTYPE] = anObject(O); result = new EmptyConstructor(); EmptyConstructor[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill result[IE_PROTO] = O; } else result = NullProtoObject(); return Properties === undefined ? result : defineProperties(result, Properties); }; /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(2); var propertyIsEnumerableModule = __webpack_require__(36); var createPropertyDescriptor = __webpack_require__(14); var toIndexedObject = __webpack_require__(9); var toPrimitive = __webpack_require__(17); var has = __webpack_require__(1); var IE8_DOM_DEFINE = __webpack_require__(38); var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { O = toIndexedObject(O); P = toPrimitive(P, true); if (IE8_DOM_DEFINE) try { return nativeGetOwnPropertyDescriptor(O, P); } catch (error) { /* empty */ } if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); }; /***/ }), /* 14 */ /***/ (function(module, exports) { module.exports = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; /***/ }), /* 15 */ /***/ (function(module, exports) { var toString = {}.toString; module.exports = function (it) { return toString.call(it).slice(8, -1); }; /***/ }), /* 16 */ /***/ (function(module, exports) { // `RequireObjectCoercible` abstract operation // https://tc39.github.io/ecma262/#sec-requireobjectcoercible module.exports = function (it) { if (it == undefined) throw TypeError("Can't call method on " + it); return it; }; /***/ }), /* 17 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(6); // `ToPrimitive` abstract operation // https://tc39.github.io/ecma262/#sec-toprimitive // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string module.exports = function (input, PREFERRED_STRING) { if (!isObject(input)) return input; var fn, val; if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; throw TypeError("Can't convert object to primitive value"); }; /***/ }), /* 18 */ /***/ (function(module, exports, __webpack_require__) { var NATIVE_WEAK_MAP = __webpack_require__(60); var global = __webpack_require__(0); var isObject = __webpack_require__(6); var createNonEnumerableProperty = __webpack_require__(7); var objectHas = __webpack_require__(1); var sharedKey = __webpack_require__(19); var hiddenKeys = __webpack_require__(21); var WeakMap = global.WeakMap; var set, get, has; var enforce = function (it) { return has(it) ? get(it) : set(it, {}); }; var getterFor = function (TYPE) { return function (it) { var state; if (!isObject(it) || (state = get(it)).type !== TYPE) { throw TypeError('Incompatible receiver, ' + TYPE + ' required'); } return state; }; }; if (NATIVE_WEAK_MAP) { var store = new WeakMap(); var wmget = store.get; var wmhas = store.has; var wmset = store.set; set = function (it, metadata) { wmset.call(store, it, metadata); return metadata; }; get = function (it) { return wmget.call(store, it) || {}; }; has = function (it) { return wmhas.call(store, it); }; } else { var STATE = sharedKey('state'); hiddenKeys[STATE] = true; set = function (it, metadata) { createNonEnumerableProperty(it, STATE, metadata); return metadata; }; get = function (it) { return objectHas(it, STATE) ? it[STATE] : {}; }; has = function (it) { return objectHas(it, STATE); }; } module.exports = { set: set, get: get, has: has, enforce: enforce, getterFor: getterFor }; /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { var shared = __webpack_require__(25); var uid = __webpack_require__(26); var keys = shared('keys'); module.exports = function (key) { return keys[key] || (keys[key] = uid(key)); }; /***/ }), /* 20 */ /***/ (function(module, exports) { module.exports = false; /***/ }), /* 21 */ /***/ (function(module, exports) { module.exports = {}; /***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) { var internalObjectKeys = __webpack_require__(44); var enumBugKeys = __webpack_require__(29); var hiddenKeys = enumBugKeys.concat('length', 'prototype'); // `Object.getOwnPropertyNames` method // https://tc39.github.io/ecma262/#sec-object.getownpropertynames exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return internalObjectKeys(O, hiddenKeys); }; /***/ }), /* 23 */ /***/ (function(module, exports, __webpack_require__) { var requireObjectCoercible = __webpack_require__(16); // `ToObject` abstract operation // https://tc39.github.io/ecma262/#sec-toobject module.exports = function (argument) { return Object(requireObjectCoercible(argument)); }; /***/ }), /* 24 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(0); var createNonEnumerableProperty = __webpack_require__(7); module.exports = function (key, value) { try { createNonEnumerableProperty(global, key, value); } catch (error) { global[key] = value; } return value; }; /***/ }), /* 25 */ /***/ (function(module, exports, __webpack_require__) { var IS_PURE = __webpack_require__(20); var store = __webpack_require__(41); (module.exports = function (key, value) { return store[key] || (store[key] = value !== undefined ? value : {}); })('versions', []).push({ version: '3.6.4', mode: IS_PURE ? 'pure' : 'global', copyright: '© 2020 Denis Pushkarev (zloirock.ru)' }); /***/ }), /* 26 */ /***/ (function(module, exports) { var id = 0; var postfix = Math.random(); module.exports = function (key) { return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); }; /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { var path = __webpack_require__(43); var global = __webpack_require__(0); var aFunction = function (variable) { return typeof variable == 'function' ? variable : undefined; }; module.exports = function (namespace, method) { return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; }; /***/ }), /* 28 */ /***/ (function(module, exports) { var ceil = Math.ceil; var floor = Math.floor; // `ToInteger` abstract operation // https://tc39.github.io/ecma262/#sec-tointeger module.exports = function (argument) { return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); }; /***/ }), /* 29 */ /***/ (function(module, exports) { // IE8- don't enum bug keys module.exports = [ 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf' ]; /***/ }), /* 30 */ /***/ (function(module, exports, __webpack_require__) { var fails = __webpack_require__(5); module.exports = !!Object.getOwnPropertySymbols && !fails(function () { // Chrome 38 Symbol has incorrect toString conversion // eslint-disable-next-line no-undef return !String(Symbol()); }); /***/ }), /* 31 */ /***/ (function(module, exports, __webpack_require__) { var defineProperty = __webpack_require__(3).f; var has = __webpack_require__(1); var wellKnownSymbol = __webpack_require__(4); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); module.exports = function (it, TAG, STATIC) { if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG }); } }; /***/ }), /* 32 */ /***/ (function(module, exports) { module.exports = {}; /***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) { var has = __webpack_require__(1); var toObject = __webpack_require__(23); var sharedKey = __webpack_require__(19); var CORRECT_PROTOTYPE_GETTER = __webpack_require__(56); var IE_PROTO = sharedKey('IE_PROTO'); var ObjectPrototype = Object.prototype; // `Object.getPrototypeOf` method // https://tc39.github.io/ecma262/#sec-object.getprototypeof module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { O = toObject(O); if (has(O, IE_PROTO)) return O[IE_PROTO]; if (typeof O.constructor == 'function' && O instanceof O.constructor) { return O.constructor.prototype; } return O instanceof Object ? ObjectPrototype : null; }; /***/ }), /* 34 */ /***/ (function(module, exports, __webpack_require__) { var anObject = __webpack_require__(10); var aPossiblePrototype = __webpack_require__(75); // `Object.setPrototypeOf` method // https://tc39.github.io/ecma262/#sec-object.setprototypeof // Works with __proto__ only. Old v8 can't work with null proto objects. /* eslint-disable no-proto */ module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { var CORRECT_SETTER = false; var test = {}; var setter; try { setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; setter.call(test, []); CORRECT_SETTER = test instanceof Array; } catch (error) { /* empty */ } return function setPrototypeOf(O, proto) { anObject(O); aPossiblePrototype(proto); if (CORRECT_SETTER) setter.call(O, proto); else O.__proto__ = proto; return O; }; }() : undefined); /***/ }), /* 35 */ /***/ (function(module, exports, __webpack_require__) { var wellKnownSymbol = __webpack_require__(4); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var test = {}; test[TO_STRING_TAG] = 'z'; module.exports = String(test) === '[object z]'; /***/ }), /* 36 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var nativePropertyIsEnumerable = {}.propertyIsEnumerable; var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); // `Object.prototype.propertyIsEnumerable` method implementation // https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { var descriptor = getOwnPropertyDescriptor(this, V); return !!descriptor && descriptor.enumerable; } : nativePropertyIsEnumerable; /***/ }), /* 37 */ /***/ (function(module, exports, __webpack_require__) { var fails = __webpack_require__(5); var classof = __webpack_require__(15); var split = ''.split; // fallback for non-array-like ES3 and non-enumerable old V8 strings module.exports = fails(function () { // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 // eslint-disable-next-line no-prototype-builtins return !Object('z').propertyIsEnumerable(0); }) ? function (it) { return classof(it) == 'String' ? split.call(it, '') : Object(it); } : Object; /***/ }), /* 38 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(2); var fails = __webpack_require__(5); var createElement = __webpack_require__(39); // Thank's IE8 for his funny defineProperty module.exports = !DESCRIPTORS && !fails(function () { return Object.defineProperty(createElement('div'), 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /* 39 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(0); var isObject = __webpack_require__(6); var document = global.document; // typeof document.createElement is 'object' in old IE var EXISTS = isObject(document) && isObject(document.createElement); module.exports = function (it) { return EXISTS ? document.createElement(it) : {}; }; /***/ }), /* 40 */ /***/ (function(module, exports, __webpack_require__) { var store = __webpack_require__(41); var functionToString = Function.toString; // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper if (typeof store.inspectSource != 'function') { store.inspectSource = function (it) { return functionToString.call(it); }; } module.exports = store.inspectSource; /***/ }), /* 41 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(0); var setGlobal = __webpack_require__(24); var SHARED = '__core-js_shared__'; var store = global[SHARED] || setGlobal(SHARED, {}); module.exports = store; /***/ }), /* 42 */ /***/ (function(module, exports, __webpack_require__) { var has = __webpack_require__(1); var ownKeys = __webpack_require__(61); var getOwnPropertyDescriptorModule = __webpack_require__(13); var definePropertyModule = __webpack_require__(3); module.exports = function (target, source) { var keys = ownKeys(source); var defineProperty = definePropertyModule.f; var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; for (var i = 0; i < keys.length; i++) { var key = keys[i]; if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); } }; /***/ }), /* 43 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(0); module.exports = global; /***/ }), /* 44 */ /***/ (function(module, exports, __webpack_require__) { var has = __webpack_require__(1); var toIndexedObject = __webpack_require__(9); var indexOf = __webpack_require__(62).indexOf; var hiddenKeys = __webpack_require__(21); module.exports = function (object, names) { var O = toIndexedObject(object); var i = 0; var result = []; var key; for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key); // Don't enum bug & hidden keys while (names.length > i) if (has(O, key = names[i++])) { ~indexOf(result, key) || result.push(key); } return result; }; /***/ }), /* 45 */ /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(28); var min = Math.min; // `ToLength` abstract operation // https://tc39.github.io/ecma262/#sec-tolength module.exports = function (argument) { return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 }; /***/ }), /* 46 */ /***/ (function(module, exports) { exports.f = Object.getOwnPropertySymbols; /***/ }), /* 47 */ /***/ (function(module, exports, __webpack_require__) { var fails = __webpack_require__(5); var replacement = /#|\.prototype\./; var isForced = function (feature, detection) { var value = data[normalize(feature)]; return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == 'function' ? fails(detection) : !!detection; }; var normalize = isForced.normalize = function (string) { return String(string).replace(replacement, '.').toLowerCase(); }; var data = isForced.data = {}; var NATIVE = isForced.NATIVE = 'N'; var POLYFILL = isForced.POLYFILL = 'P'; module.exports = isForced; /***/ }), /* 48 */ /***/ (function(module, exports, __webpack_require__) { var NATIVE_SYMBOL = __webpack_require__(30); module.exports = NATIVE_SYMBOL // eslint-disable-next-line no-undef && !Symbol.sham // eslint-disable-next-line no-undef && typeof Symbol.iterator == 'symbol'; /***/ }), /* 49 */ /***/ (function(module, exports, __webpack_require__) { var classof = __webpack_require__(15); // `IsArray` abstract operation // https://tc39.github.io/ecma262/#sec-isarray module.exports = Array.isArray || function isArray(arg) { return classof(arg) == 'Array'; }; /***/ }), /* 50 */ /***/ (function(module, exports, __webpack_require__) { var internalObjectKeys = __webpack_require__(44); var enumBugKeys = __webpack_require__(29); // `Object.keys` method // https://tc39.github.io/ecma262/#sec-object.keys module.exports = Object.keys || function keys(O) { return internalObjectKeys(O, enumBugKeys); }; /***/ }), /* 51 */ /***/ (function(module, exports, __webpack_require__) { var wellKnownSymbol = __webpack_require__(4); exports.f = wellKnownSymbol; /***/ }), /* 52 */ /***/ (function(module, exports, __webpack_require__) { var path = __webpack_require__(43); var has = __webpack_require__(1); var wrappedWellKnownSymbolModule = __webpack_require__(51); var defineProperty = __webpack_require__(3).f; module.exports = function (NAME) { var Symbol = path.Symbol || (path.Symbol = {}); if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, { value: wrappedWellKnownSymbolModule.f(NAME) }); }; /***/ }), /* 53 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var toIndexedObject = __webpack_require__(9); var addToUnscopables = __webpack_require__(73); var Iterators = __webpack_require__(32); var InternalStateModule = __webpack_require__(18); var defineIterator = __webpack_require__(54); var ARRAY_ITERATOR = 'Array Iterator'; var setInternalState = InternalStateModule.set; var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); // `Array.prototype.entries` method // https://tc39.github.io/ecma262/#sec-array.prototype.entries // `Array.prototype.keys` method // https://tc39.github.io/ecma262/#sec-array.prototype.keys // `Array.prototype.values` method // https://tc39.github.io/ecma262/#sec-array.prototype.values // `Array.prototype[@@iterator]` method // https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator // `CreateArrayIterator` internal method // https://tc39.github.io/ecma262/#sec-createarrayiterator module.exports = defineIterator(Array, 'Array', function (iterated, kind) { setInternalState(this, { type: ARRAY_ITERATOR, target: toIndexedObject(iterated), // target index: 0, // next index kind: kind // kind }); // `%ArrayIteratorPrototype%.next` method // https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next }, function () { var state = getInternalState(this); var target = state.target; var kind = state.kind; var index = state.index++; if (!target || index >= target.length) { state.target = undefined; return { value: undefined, done: true }; } if (kind == 'keys') return { value: index, done: false }; if (kind == 'values') return { value: target[index], done: false }; return { value: [index, target[index]], done: false }; }, 'values'); // argumentsList[@@iterator] is %ArrayProto_values% // https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject // https://tc39.github.io/ecma262/#sec-createmappedargumentsobject Iterators.Arguments = Iterators.Array; // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables addToUnscopables('keys'); addToUnscopables('values'); addToUnscopables('entries'); /***/ }), /* 54 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(8); var createIteratorConstructor = __webpack_require__(74); var getPrototypeOf = __webpack_require__(33); var setPrototypeOf = __webpack_require__(34); var setToStringTag = __webpack_require__(31); var createNonEnumerableProperty = __webpack_require__(7); var redefine = __webpack_require__(11); var wellKnownSymbol = __webpack_require__(4); var IS_PURE = __webpack_require__(20); var Iterators = __webpack_require__(32); var IteratorsCore = __webpack_require__(55); var IteratorPrototype = IteratorsCore.IteratorPrototype; var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; var ITERATOR = wellKnownSymbol('iterator'); var KEYS = 'keys'; var VALUES = 'values'; var ENTRIES = 'entries'; var returnThis = function () { return this; }; module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { createIteratorConstructor(IteratorConstructor, NAME, next); var getIterationMethod = function (KIND) { if (KIND === DEFAULT && defaultIterator) return defaultIterator; if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; switch (KIND) { case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; } return function () { return new IteratorConstructor(this); }; }; var TO_STRING_TAG = NAME + ' Iterator'; var INCORRECT_VALUES_NAME = false; var IterablePrototype = Iterable.prototype; var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT]; var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; var CurrentIteratorPrototype, methods, KEY; // fix native if (anyNativeIterator) { CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { if (setPrototypeOf) { setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') { createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis); } } // Set @@toStringTag to native iterators setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; } } // fix Array#{values, @@iterator}.name in V8 / FF if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { INCORRECT_VALUES_NAME = true; defaultIterator = function values() { return nativeIterator.call(this); }; } // define iterator if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator); } Iterators[NAME] = defaultIterator; // export additional methods if (DEFAULT) { methods = { values: getIterationMethod(VALUES), keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), entries: getIterationMethod(ENTRIES) }; if (FORCED) for (KEY in methods) { if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { redefine(IterablePrototype, KEY, methods[KEY]); } } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); } return methods; }; /***/ }), /* 55 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var getPrototypeOf = __webpack_require__(33); var createNonEnumerableProperty = __webpack_require__(7); var has = __webpack_require__(1); var wellKnownSymbol = __webpack_require__(4); var IS_PURE = __webpack_require__(20); var ITERATOR = wellKnownSymbol('iterator'); var BUGGY_SAFARI_ITERATORS = false; var returnThis = function () { return this; }; // `%IteratorPrototype%` object // https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; if ([].keys) { arrayIterator = [].keys(); // Safari 8 has buggy iterators w/o `next` if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; else { PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; } } if (IteratorPrototype == undefined) IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) { createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis); } module.exports = { IteratorPrototype: IteratorPrototype, BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS }; /***/ }), /* 56 */ /***/ (function(module, exports, __webpack_require__) { var fails = __webpack_require__(5); module.exports = !fails(function () { function F() { /* empty */ } F.prototype.constructor = null; return Object.getPrototypeOf(new F()) !== F.prototype; }); /***/ }), /* 57 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(58); __webpack_require__(71); __webpack_require__(72); __webpack_require__(53); __webpack_require__(76); __webpack_require__(77); __webpack_require__(81); __webpack_require__(82); __webpack_require__(83); __webpack_require__(84); __webpack_require__(85); __webpack_require__(88); __webpack_require__(90); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _player = __webpack_require__(92); var _playbackRateSelector = _interopRequireDefault(__webpack_require__(93)); var _style = _interopRequireDefault(__webpack_require__(94)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } var DEFAULT_PLAYBACK_RATES = [{ value: 0.5, label: '0.5x' }, { value: 0.75, label: '0.75x' }, { value: 1, label: 'Normal' }, { value: 1.5, label: '1.5x' }, { value: 2, label: '2x' }]; var DEFAULT_PLAYBACK_RATE = 1; var DEFAULT_PLAYBACK_RATE_SUFFIX = 'x'; // Used by getTitle method var PlaybackRatePlugin = /*#__PURE__*/function (_UICorePlugin) { _inherits(PlaybackRatePlugin, _UICorePlugin); function PlaybackRatePlugin() { _classCallCheck(this, PlaybackRatePlugin); return _possibleConstructorReturn(this, _getPrototypeOf(PlaybackRatePlugin).apply(this, arguments)); } _createClass(PlaybackRatePlugin, [{ key: "bindEvents", value: function bindEvents() { if (_player.Events.CORE_ACTIVE_CONTAINER_CHANGED) this.listenTo(this.core, _player.Events.CORE_ACTIVE_CONTAINER_CHANGED, this.reload);else this.listenTo(this.core.mediaControl, _player.Events.MEDIACONTROL_CONTAINERCHANGED, this.reload); this.listenTo(this.core.mediaControl, _player.Events.MEDIACONTROL_RENDERED, this.render); this.listenTo(this.core.mediaControl, _player.Events.MEDIACONTROL_HIDE, this.hideContextMenu); } }, { key: "getExternalInterface", value: function getExternalInterface() { return { getPlaybackRate: this.getSelectedRate, setPlaybackRate: this.setSelectedRate }; } }, { key: "reload", value: function reload() { this.stopListening(); this.bindEvents(); } }, { key: "shouldRender", value: function shouldRender() { return this.container && (this.playback.tagName === 'video' || this.playback.tagName === 'audio'); } }, { key: "render", value: function render() { if (!this.shouldRender()) return this; var cfg = this.core.options.playbackRateConfig || {}; this.playbackRates = cfg.options || DEFAULT_PLAYBACK_RATES; this.selectedRate = cfg.defaultValue || DEFAULT_PLAYBACK_RATE; this.rateSuffix = cfg.rateSuffix || DEFAULT_PLAYBACK_RATE_SUFFIX; var t = (0, _player.template)(_playbackRateSelector["default"]); var html = t({ playbackRates: this.playbackRates, title: this.getTitle() }); this.$el.html(html); var style = _player.Styler.getStyleFor(_style["default"], { baseUrl: this.core.options.baseUrl }); this.$el.append(style); this.core.mediaControl.$('.media-control-right-panel').append(this.el); this.updateText(); return this; } }, { key: "onRateSelect", value: function onRateSelect(event) { event.stopPropagation(); var rate = event.target.dataset.playbackRateSelect; // data-playback-rate-select this.setSelectedRate(rate); this.toggleContextMenu(); return false; } }, { key: "onShowMenu", value: function onShowMenu() { this.toggleContextMenu(); } }, { key: "toggleContextMenu", value: function toggleContextMenu() { this.$('.playback_rate ul').toggle(); } }, { key: "hideContextMenu", value: function hideContextMenu() { this.$('.playback_rate ul').hide(); } }, { key: "toNumber", value: function toNumber(value) { value = Number(value); // Fallback to default playback rate if cannot be converted return isNaN(value) ? DEFAULT_PLAYBACK_RATE : value; } }, { key: "setSelectedRate", value: function setSelectedRate(rate) { rate = this.toNumber(rate); this.playback.el.playbackRate = rate; this.selectedRate = rate; this.updateText(); } }, { key: "getSelectedRate", value: function getSelectedRate() { return this.selectedRate; } }, { key: "setActiveListItem", value: function setActiveListItem(rateValue) { this.$('a').removeClass('active'); this.$("a[data-playback-rate-select=\"".concat(rateValue, "\"]")).addClass('active'); } }, { key: "buttonElement", value: function buttonElement() { return this.$('.playback_rate button'); } }, { key: "getTitle", value: function getTitle() { var rate = this.selectedRate; for (var i in this.playbackRates) { if (this.playbackRates[i].value == rate) return this.playbackRates[i].label; } // Unknown rate formatted title return rate + this.rateSuffix; } }, { key: "updateText", value: function updateText() { this.buttonElement().text(this.getTitle()); this.setActiveListItem(this.selectedRate); } }, { key: "name", get: function get() { return 'playback_rate'; } }, { key: "template", get: function get() { return (0, _player.template)(_playbackRateSelector["default"]); } /** * Clappr 0.4.x wants to know what versions this plugin is targeting. */ }, { key: "supportedVersion", get: function get() { return { min: '0.4.0', max: '0.5.0' }; } }, { key: "attributes", get: function get() { return { 'class': this.name, 'data-playback-rate-select': '' }; } }, { key: "events", get: function get() { return { 'click [data-playback-rate-select]': 'onRateSelect', 'click [data-playback-rate-button]': 'onShowMenu' }; } }, { key: "container", get: function get() { return this.core.activeContainer ? this.core.activeContainer : this.core.mediaControl.container; } }, { key: "playback", get: function get() { return this.core.activePlayback ? this.core.activePlayback : this.core.getCurrentPlayback(); } }]); return PlaybackRatePlugin; }(_player.UICorePlugin); exports["default"] = PlaybackRatePlugin; /***/ }), /* 58 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(8); var global = __webpack_require__(0); var getBuiltIn = __webpack_require__(27); var IS_PURE = __webpack_require__(20); var DESCRIPTORS = __webpack_require__(2); var NATIVE_SYMBOL = __webpack_require__(30); var USE_SYMBOL_AS_UID = __webpack_require__(48); var fails = __webpack_require__(5); var has = __webpack_require__(1); var isArray = __webpack_require__(49); var isObject = __webpack_require__(6); var anObject = __webpack_require__(10); var toObject = __webpack_require__(23); var toIndexedObject = __webpack_require__(9); var toPrimitive = __webpack_require__(17); var createPropertyDescriptor = __webpack_require__(14); var nativeObjectCreate = __webpack_require__(12); var objectKeys = __webpack_require__(50); var getOwnPropertyNamesModule = __webpack_require__(22); var getOwnPropertyNamesExternal = __webpack_require__(66); var getOwnPropertySymbolsModule = __webpack_require__(46); var getOwnPropertyDescriptorModule = __webpack_require__(13); var definePropertyModule = __webpack_require__(3); var propertyIsEnumerableModule = __webpack_require__(36); var createNonEnumerableProperty = __webpack_require__(7); var redefine = __webpack_require__(11); var shared = __webpack_require__(25); var sharedKey = __webpack_require__(19); var hiddenKeys = __webpack_require__(21); var uid = __webpack_require__(26); var wellKnownSymbol = __webpack_require__(4); var wrappedWellKnownSymbolModule = __webpack_require__(51); var defineWellKnownSymbol = __webpack_require__(52); var setToStringTag = __webpack_require__(31); var InternalStateModule = __webpack_require__(18); var $forEach = __webpack_require__(67).forEach; var HIDDEN = sharedKey('hidden'); va