5932 lines
247 KiB
JavaScript
5932 lines
247 KiB
JavaScript
/******/ (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 = 6);
|
||
/******/ })
|
||
/************************************************************************/
|
||
/******/ ([
|
||
/* 0 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
/*
|
||
MIT License http://www.opensource.org/licenses/mit-license.php
|
||
Author Tobias Koppers @sokra
|
||
*/
|
||
// css base code, injected by the css-loader
|
||
module.exports = function () {
|
||
var list = [];
|
||
|
||
// return the list of modules as css string
|
||
list.toString = function toString() {
|
||
var result = [];
|
||
for (var i = 0; i < this.length; i++) {
|
||
var item = this[i];
|
||
if (item[2]) {
|
||
result.push("@media " + item[2] + "{" + item[1] + "}");
|
||
} else {
|
||
result.push(item[1]);
|
||
}
|
||
}
|
||
return result.join("");
|
||
};
|
||
|
||
// import a list of modules into the list
|
||
list.i = function (modules, mediaQuery) {
|
||
if (typeof modules === "string") modules = [[null, modules, ""]];
|
||
var alreadyImportedModules = {};
|
||
for (var i = 0; i < this.length; i++) {
|
||
var id = this[i][0];
|
||
if (typeof id === "number") alreadyImportedModules[id] = true;
|
||
}
|
||
for (i = 0; i < modules.length; i++) {
|
||
var item = modules[i];
|
||
// skip already imported module
|
||
// this implementation is not 100% perfect for weird media query combinations
|
||
// when a module is imported multiple times with different media queries.
|
||
// I hope this will never occur (Hey this way we have smaller bundles)
|
||
if (typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
|
||
if (mediaQuery && !item[2]) {
|
||
item[2] = mediaQuery;
|
||
} else if (mediaQuery) {
|
||
item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
|
||
}
|
||
list.push(item);
|
||
}
|
||
}
|
||
};
|
||
return list;
|
||
};
|
||
|
||
/***/ }),
|
||
/* 1 */
|
||
/***/ (function(module, exports) {
|
||
|
||
/*
|
||
MIT License http://www.opensource.org/licenses/mit-license.php
|
||
Author Tobias Koppers @sokra
|
||
*/
|
||
var stylesInDom = {},
|
||
memoize = function(fn) {
|
||
var memo;
|
||
return function () {
|
||
if (typeof memo === "undefined") memo = fn.apply(this, arguments);
|
||
return memo;
|
||
};
|
||
},
|
||
isOldIE = memoize(function() {
|
||
return /msie [6-9]\b/.test(self.navigator.userAgent.toLowerCase());
|
||
}),
|
||
getHeadElement = memoize(function () {
|
||
return document.head || document.getElementsByTagName("head")[0];
|
||
}),
|
||
singletonElement = null,
|
||
singletonCounter = 0,
|
||
styleElementsInsertedAtTop = [];
|
||
|
||
module.exports = function(list, options) {
|
||
if(typeof DEBUG !== "undefined" && DEBUG) {
|
||
if(typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
|
||
}
|
||
|
||
options = options || {};
|
||
// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
|
||
// tags it will allow on a page
|
||
if (typeof options.singleton === "undefined") options.singleton = isOldIE();
|
||
|
||
// By default, add <style> tags to the bottom of <head>.
|
||
if (typeof options.insertAt === "undefined") options.insertAt = "bottom";
|
||
|
||
var styles = listToStyles(list);
|
||
addStylesToDom(styles, options);
|
||
|
||
return function update(newList) {
|
||
var mayRemove = [];
|
||
for(var i = 0; i < styles.length; i++) {
|
||
var item = styles[i];
|
||
var domStyle = stylesInDom[item.id];
|
||
domStyle.refs--;
|
||
mayRemove.push(domStyle);
|
||
}
|
||
if(newList) {
|
||
var newStyles = listToStyles(newList);
|
||
addStylesToDom(newStyles, options);
|
||
}
|
||
for(var i = 0; i < mayRemove.length; i++) {
|
||
var domStyle = mayRemove[i];
|
||
if(domStyle.refs === 0) {
|
||
for(var j = 0; j < domStyle.parts.length; j++)
|
||
domStyle.parts[j]();
|
||
delete stylesInDom[domStyle.id];
|
||
}
|
||
}
|
||
};
|
||
}
|
||
|
||
function addStylesToDom(styles, options) {
|
||
for(var i = 0; i < styles.length; i++) {
|
||
var item = styles[i];
|
||
var domStyle = stylesInDom[item.id];
|
||
if(domStyle) {
|
||
domStyle.refs++;
|
||
for(var j = 0; j < domStyle.parts.length; j++) {
|
||
domStyle.parts[j](item.parts[j]);
|
||
}
|
||
for(; j < item.parts.length; j++) {
|
||
domStyle.parts.push(addStyle(item.parts[j], options));
|
||
}
|
||
} else {
|
||
var parts = [];
|
||
for(var j = 0; j < item.parts.length; j++) {
|
||
parts.push(addStyle(item.parts[j], options));
|
||
}
|
||
stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};
|
||
}
|
||
}
|
||
}
|
||
|
||
function listToStyles(list) {
|
||
var styles = [];
|
||
var newStyles = {};
|
||
for(var i = 0; i < list.length; i++) {
|
||
var item = list[i];
|
||
var id = item[0];
|
||
var css = item[1];
|
||
var media = item[2];
|
||
var sourceMap = item[3];
|
||
var part = {css: css, media: media, sourceMap: sourceMap};
|
||
if(!newStyles[id])
|
||
styles.push(newStyles[id] = {id: id, parts: [part]});
|
||
else
|
||
newStyles[id].parts.push(part);
|
||
}
|
||
return styles;
|
||
}
|
||
|
||
function insertStyleElement(options, styleElement) {
|
||
var head = getHeadElement();
|
||
var lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];
|
||
if (options.insertAt === "top") {
|
||
if(!lastStyleElementInsertedAtTop) {
|
||
head.insertBefore(styleElement, head.firstChild);
|
||
} else if(lastStyleElementInsertedAtTop.nextSibling) {
|
||
head.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);
|
||
} else {
|
||
head.appendChild(styleElement);
|
||
}
|
||
styleElementsInsertedAtTop.push(styleElement);
|
||
} else if (options.insertAt === "bottom") {
|
||
head.appendChild(styleElement);
|
||
} else {
|
||
throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");
|
||
}
|
||
}
|
||
|
||
function removeStyleElement(styleElement) {
|
||
styleElement.parentNode.removeChild(styleElement);
|
||
var idx = styleElementsInsertedAtTop.indexOf(styleElement);
|
||
if(idx >= 0) {
|
||
styleElementsInsertedAtTop.splice(idx, 1);
|
||
}
|
||
}
|
||
|
||
function createStyleElement(options) {
|
||
var styleElement = document.createElement("style");
|
||
styleElement.type = "text/css";
|
||
insertStyleElement(options, styleElement);
|
||
return styleElement;
|
||
}
|
||
|
||
function createLinkElement(options) {
|
||
var linkElement = document.createElement("link");
|
||
linkElement.rel = "stylesheet";
|
||
insertStyleElement(options, linkElement);
|
||
return linkElement;
|
||
}
|
||
|
||
function addStyle(obj, options) {
|
||
var styleElement, update, remove;
|
||
|
||
if (options.singleton) {
|
||
var styleIndex = singletonCounter++;
|
||
styleElement = singletonElement || (singletonElement = createStyleElement(options));
|
||
update = applyToSingletonTag.bind(null, styleElement, styleIndex, false);
|
||
remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);
|
||
} else if(obj.sourceMap &&
|
||
typeof URL === "function" &&
|
||
typeof URL.createObjectURL === "function" &&
|
||
typeof URL.revokeObjectURL === "function" &&
|
||
typeof Blob === "function" &&
|
||
typeof btoa === "function") {
|
||
styleElement = createLinkElement(options);
|
||
update = updateLink.bind(null, styleElement);
|
||
remove = function() {
|
||
removeStyleElement(styleElement);
|
||
if(styleElement.href)
|
||
URL.revokeObjectURL(styleElement.href);
|
||
};
|
||
} else {
|
||
styleElement = createStyleElement(options);
|
||
update = applyToTag.bind(null, styleElement);
|
||
remove = function() {
|
||
removeStyleElement(styleElement);
|
||
};
|
||
}
|
||
|
||
update(obj);
|
||
|
||
return function updateStyle(newObj) {
|
||
if(newObj) {
|
||
if(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)
|
||
return;
|
||
update(obj = newObj);
|
||
} else {
|
||
remove();
|
||
}
|
||
};
|
||
}
|
||
|
||
var replaceText = (function () {
|
||
var textStore = [];
|
||
|
||
return function (index, replacement) {
|
||
textStore[index] = replacement;
|
||
return textStore.filter(Boolean).join('\n');
|
||
};
|
||
})();
|
||
|
||
function applyToSingletonTag(styleElement, index, remove, obj) {
|
||
var css = remove ? "" : obj.css;
|
||
|
||
if (styleElement.styleSheet) {
|
||
styleElement.styleSheet.cssText = replaceText(index, css);
|
||
} else {
|
||
var cssNode = document.createTextNode(css);
|
||
var childNodes = styleElement.childNodes;
|
||
if (childNodes[index]) styleElement.removeChild(childNodes[index]);
|
||
if (childNodes.length) {
|
||
styleElement.insertBefore(cssNode, childNodes[index]);
|
||
} else {
|
||
styleElement.appendChild(cssNode);
|
||
}
|
||
}
|
||
}
|
||
|
||
function applyToTag(styleElement, obj) {
|
||
var css = obj.css;
|
||
var media = obj.media;
|
||
|
||
if(media) {
|
||
styleElement.setAttribute("media", media)
|
||
}
|
||
|
||
if(styleElement.styleSheet) {
|
||
styleElement.styleSheet.cssText = css;
|
||
} else {
|
||
while(styleElement.firstChild) {
|
||
styleElement.removeChild(styleElement.firstChild);
|
||
}
|
||
styleElement.appendChild(document.createTextNode(css));
|
||
}
|
||
}
|
||
|
||
function updateLink(linkElement, obj) {
|
||
var css = obj.css;
|
||
var sourceMap = obj.sourceMap;
|
||
|
||
if(sourceMap) {
|
||
// http://stackoverflow.com/a/26603875
|
||
css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
|
||
}
|
||
|
||
var blob = new Blob([css], { type: "text/css" });
|
||
|
||
var oldSrc = linkElement.href;
|
||
|
||
linkElement.href = URL.createObjectURL(blob);
|
||
|
||
if(oldSrc)
|
||
URL.revokeObjectURL(oldSrc);
|
||
}
|
||
|
||
|
||
/***/ }),
|
||
/* 2 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
exports.parseDom = parseDom;
|
||
function parseDom(html) {
|
||
var ele = document.createElement('div');
|
||
ele.innerHTML = html;
|
||
return ele.childNodes[0];
|
||
}
|
||
|
||
module.exports.cookieSet = function (cname, cvalue, exdays) {
|
||
var d = new Date();
|
||
d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
|
||
var expires = 'expires=' + d.toGMTString();
|
||
document.cookie = cname + '=' + escape(cvalue) + '; ' + expires;
|
||
};
|
||
|
||
/***/ }),
|
||
/* 3 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
||
|
||
var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) {
|
||
return typeof obj === "undefined" ? "undefined" : _typeof2(obj);
|
||
} : function (obj) {
|
||
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof2(obj);
|
||
};
|
||
|
||
// Save the previous value of the device variable.
|
||
var previousDevice = window.device;
|
||
|
||
var device = {};
|
||
|
||
var changeOrientationList = [];
|
||
|
||
// Add device as a global object.
|
||
window.device = device;
|
||
|
||
// The <html> element.
|
||
var documentElement = window.document.documentElement;
|
||
|
||
// The client user agent string.
|
||
// Lowercase, so we can use the more efficient indexOf(), instead of Regex
|
||
var userAgent = window.navigator.userAgent.toLowerCase();
|
||
|
||
// Detectable television devices.
|
||
var television = ['googletv', 'viera', 'smarttv', 'internet.tv', 'netcast', 'nettv', 'appletv', 'boxee', 'kylo', 'roku', 'dlnadoc', 'roku', 'pov_tv', 'hbbtv', 'ce-html'];
|
||
|
||
// Main functions
|
||
// --------------
|
||
|
||
device.macos = function () {
|
||
return find('mac');
|
||
};
|
||
|
||
device.ios = function () {
|
||
return device.iphone() || device.ipod() || device.ipad();
|
||
};
|
||
|
||
device.iphone = function () {
|
||
return !device.windows() && find('iphone');
|
||
};
|
||
|
||
device.ipod = function () {
|
||
return find('ipod');
|
||
};
|
||
|
||
device.ipad = function () {
|
||
return find('ipad');
|
||
};
|
||
|
||
device.android = function () {
|
||
return !device.windows() && find('android');
|
||
};
|
||
|
||
device.androidPhone = function () {
|
||
return device.android() && find('mobile');
|
||
};
|
||
|
||
device.androidTablet = function () {
|
||
return device.android() && !find('mobile');
|
||
};
|
||
|
||
device.blackberry = function () {
|
||
return find('blackberry') || find('bb10') || find('rim');
|
||
};
|
||
|
||
device.blackberryPhone = function () {
|
||
return device.blackberry() && !find('tablet');
|
||
};
|
||
|
||
device.blackberryTablet = function () {
|
||
return device.blackberry() && find('tablet');
|
||
};
|
||
|
||
device.windows = function () {
|
||
return find('windows');
|
||
};
|
||
|
||
device.windowsPhone = function () {
|
||
return device.windows() && find('phone');
|
||
};
|
||
|
||
device.windowsTablet = function () {
|
||
return device.windows() && find('touch') && !device.windowsPhone();
|
||
};
|
||
|
||
device.fxos = function () {
|
||
return (find('(mobile') || find('(tablet')) && find(' rv:');
|
||
};
|
||
|
||
device.fxosPhone = function () {
|
||
return device.fxos() && find('mobile');
|
||
};
|
||
|
||
device.fxosTablet = function () {
|
||
return device.fxos() && find('tablet');
|
||
};
|
||
|
||
device.meego = function () {
|
||
return find('meego');
|
||
};
|
||
|
||
device.cordova = function () {
|
||
return window.cordova && location.protocol === 'file:';
|
||
};
|
||
|
||
device.nodeWebkit = function () {
|
||
return _typeof(window.process) === 'object';
|
||
};
|
||
|
||
device.mobile = function () {
|
||
return device.androidPhone() || device.iphone() || device.ipod() || device.windowsPhone() || device.blackberryPhone() || device.fxosPhone() || device.meego();
|
||
};
|
||
|
||
device.tablet = function () {
|
||
return device.ipad() || device.androidTablet() || device.blackberryTablet() || device.windowsTablet() || device.fxosTablet();
|
||
};
|
||
|
||
device.desktop = function () {
|
||
return !device.tablet() && !device.mobile();
|
||
};
|
||
|
||
device.television = function () {
|
||
var i = 0;
|
||
while (i < television.length) {
|
||
if (find(television[i])) {
|
||
return true;
|
||
}
|
||
i++;
|
||
}
|
||
return false;
|
||
};
|
||
|
||
device.portrait = function () {
|
||
if (screen.orientation && Object.prototype.hasOwnProperty.call(window, 'onorientationchange')) {
|
||
return screen.orientation.type.includes('portrait');
|
||
}
|
||
return window.innerHeight / window.innerWidth > 1;
|
||
};
|
||
|
||
device.landscape = function () {
|
||
if (screen.orientation && Object.prototype.hasOwnProperty.call(window, 'onorientationchange')) {
|
||
return screen.orientation.type.includes('landscape');
|
||
}
|
||
return window.innerHeight / window.innerWidth < 1;
|
||
};
|
||
|
||
// Public Utility Functions
|
||
// ------------------------
|
||
|
||
// Run device.js in noConflict mode,
|
||
// returning the device variable to its previous owner.
|
||
device.noConflict = function () {
|
||
window.device = previousDevice;
|
||
return this;
|
||
};
|
||
|
||
// Private Utility Functions
|
||
// -------------------------
|
||
|
||
// Simple UA string search
|
||
function find(needle) {
|
||
return userAgent.indexOf(needle) !== -1;
|
||
}
|
||
|
||
// Check if documentElement already has a given class.
|
||
function hasClass(className) {
|
||
return documentElement.className.match(new RegExp(className, 'i'));
|
||
}
|
||
|
||
// Add one or more CSS classes to the <html> element.
|
||
function addClass(className) {
|
||
var currentClassNames = null;
|
||
if (!hasClass(className)) {
|
||
currentClassNames = documentElement.className.replace(/^\s+|\s+$/g, '');
|
||
documentElement.className = currentClassNames + ' ' + className;
|
||
}
|
||
}
|
||
|
||
// Remove single CSS class from the <html> element.
|
||
function removeClass(className) {
|
||
if (hasClass(className)) {
|
||
documentElement.className = documentElement.className.replace(' ' + className, '');
|
||
}
|
||
}
|
||
|
||
// HTML Element Handling
|
||
// ---------------------
|
||
|
||
// Insert the appropriate CSS class based on the _user_agent.
|
||
|
||
if (device.ios()) {
|
||
if (device.ipad()) {
|
||
addClass('ios ipad tablet');
|
||
} else if (device.iphone()) {
|
||
addClass('ios iphone mobile');
|
||
} else if (device.ipod()) {
|
||
addClass('ios ipod mobile');
|
||
}
|
||
} else if (device.macos()) {
|
||
addClass('macos desktop');
|
||
} else if (device.android()) {
|
||
if (device.androidTablet()) {
|
||
addClass('android tablet');
|
||
} else {
|
||
addClass('android mobile');
|
||
}
|
||
} else if (device.blackberry()) {
|
||
if (device.blackberryTablet()) {
|
||
addClass('blackberry tablet');
|
||
} else {
|
||
addClass('blackberry mobile');
|
||
}
|
||
} else if (device.windows()) {
|
||
if (device.windowsTablet()) {
|
||
addClass('windows tablet');
|
||
} else if (device.windowsPhone()) {
|
||
addClass('windows mobile');
|
||
} else {
|
||
addClass('windows desktop');
|
||
}
|
||
} else if (device.fxos()) {
|
||
if (device.fxosTablet()) {
|
||
addClass('fxos tablet');
|
||
} else {
|
||
addClass('fxos mobile');
|
||
}
|
||
} else if (device.meego()) {
|
||
addClass('meego mobile');
|
||
} else if (device.nodeWebkit()) {
|
||
addClass('node-webkit');
|
||
} else if (device.television()) {
|
||
addClass('television');
|
||
} else if (device.desktop()) {
|
||
addClass('desktop');
|
||
}
|
||
|
||
if (device.cordova()) {
|
||
addClass('cordova');
|
||
}
|
||
|
||
// Orientation Handling
|
||
// --------------------
|
||
|
||
// Handle device orientation changes.
|
||
function handleOrientation() {
|
||
if (device.landscape()) {
|
||
removeClass('portrait');
|
||
addClass('landscape');
|
||
walkOnChangeOrientationList('landscape');
|
||
} else {
|
||
removeClass('landscape');
|
||
addClass('portrait');
|
||
walkOnChangeOrientationList('portrait');
|
||
}
|
||
setOrientationCache();
|
||
}
|
||
|
||
function walkOnChangeOrientationList(newOrientation) {
|
||
for (var index in changeOrientationList) {
|
||
changeOrientationList[index](newOrientation);
|
||
}
|
||
}
|
||
|
||
device.onChangeOrientation = function (cb) {
|
||
if (typeof cb == 'function') {
|
||
changeOrientationList.push(cb);
|
||
}
|
||
};
|
||
|
||
// Detect whether device supports orientationchange event,
|
||
// otherwise fall back to the resize event.
|
||
var orientationEvent = 'resize';
|
||
if (Object.prototype.hasOwnProperty.call(window, 'onorientationchange')) {
|
||
orientationEvent = 'orientationchange';
|
||
}
|
||
|
||
// Listen for changes in orientation.
|
||
if (window.addEventListener) {
|
||
window.addEventListener(orientationEvent, handleOrientation, false);
|
||
} else if (window.attachEvent) {
|
||
window.attachEvent(orientationEvent, handleOrientation);
|
||
} else {
|
||
window[orientationEvent] = handleOrientation;
|
||
}
|
||
|
||
handleOrientation();
|
||
|
||
// Public functions to get the current value of type, os, or orientation
|
||
// ---------------------------------------------------------------------
|
||
|
||
function findMatch(arr) {
|
||
for (var i = 0; i < arr.length; i++) {
|
||
if (device[arr[i]]()) {
|
||
return arr[i];
|
||
}
|
||
}
|
||
return 'unknown';
|
||
}
|
||
|
||
device.type = findMatch(['mobile', 'tablet', 'desktop']);
|
||
device.os = findMatch(['ios', 'iphone', 'ipad', 'ipod', 'android', 'blackberry', 'windows', 'fxos', 'meego', 'television']);
|
||
|
||
function setOrientationCache() {
|
||
device.orientation = findMatch(['portrait', 'landscape']);
|
||
}
|
||
|
||
setOrientationCache();
|
||
|
||
exports.default = device;
|
||
|
||
/***/ }),
|
||
/* 4 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "data:application/vnd.ms-fontobject;base64,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"
|
||
|
||
/***/ }),
|
||
/* 5 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "data:application/vnd.ms-fontobject;base64,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"
|
||
|
||
/***/ }),
|
||
/* 6 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
__webpack_require__(7);
|
||
__webpack_require__(17);
|
||
__webpack_require__(22);
|
||
__webpack_require__(28);
|
||
__webpack_require__(34);
|
||
__webpack_require__(39);
|
||
__webpack_require__(44);
|
||
__webpack_require__(50);
|
||
__webpack_require__(55);
|
||
__webpack_require__(63);
|
||
__webpack_require__(69);
|
||
__webpack_require__(74);
|
||
__webpack_require__(79);
|
||
__webpack_require__(84);
|
||
__webpack_require__(90);
|
||
__webpack_require__(96);
|
||
__webpack_require__(101);
|
||
module.exports = __webpack_require__(107);
|
||
|
||
|
||
/***/ }),
|
||
/* 7 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(8);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.AliplayerDanmuComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 8 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||
|
||
var _index = __webpack_require__(9);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
var _danmuControl = __webpack_require__(10);
|
||
|
||
var _danmuControl2 = _interopRequireDefault(_danmuControl);
|
||
|
||
var _danmuInput = __webpack_require__(11);
|
||
|
||
var _danmuInput2 = _interopRequireDefault(_danmuInput);
|
||
|
||
__webpack_require__(12);
|
||
|
||
var _CommentCoreLibrary = __webpack_require__(14);
|
||
|
||
__webpack_require__(15);
|
||
|
||
var _utils = __webpack_require__(2);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
||
/**
|
||
* 弹幕组件
|
||
*/
|
||
var AliplayerDanmuComponent = function () {
|
||
/**
|
||
* @constructor 弹幕组件构造函数
|
||
* @param {Array danmuList 弹幕数组, 参考 CommentCoreLibrary 文档 https://github.com/jabbany/CommentCoreLibrary/}
|
||
* @param {id 或者 Element, sendEl, 发送弹幕的输入框, 默认为 null}
|
||
*/
|
||
function AliplayerDanmuComponent(danmukuList) {
|
||
var sendEl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'controlbar';
|
||
|
||
_classCallCheck(this, AliplayerDanmuComponent);
|
||
|
||
this.sendEl = sendEl;
|
||
this.danmukuList = danmukuList;
|
||
this.html = (0, _utils.parseDom)(_index2.default);
|
||
this.danmuControlHtml = (0, _utils.parseDom)(_danmuControl2.default);
|
||
this.sendEl = sendEl;
|
||
this.danmuInput = sendEl === null ? null : (0, _utils.parseDom)(_danmuInput2.default);
|
||
this.CM = null;
|
||
this.userDanmuOpen = true; // 用户打开关闭弹幕的状态, 默认为 true 打开
|
||
}
|
||
|
||
_createClass(AliplayerDanmuComponent, [{
|
||
key: 'createEl',
|
||
value: function createEl(el, player) {
|
||
var _this = this;
|
||
|
||
console.log(player);
|
||
|
||
var lang = player._options && player._options.language;
|
||
this.isEn = lang && lang === 'en-us';
|
||
if (this.danmuInput !== null) {
|
||
this.danmuInput.querySelector('.danmu-input-enter').innerText = this.isEn ? 'Enter' : '发送';
|
||
this.danmuInput.querySelector('input').setAttribute('placeholder', this.isEn ? 'Input danmu' : '输入弹幕');
|
||
}
|
||
this.danmuControlHtml.querySelector('.player-tooltip.close').innerText = this.isEn ? 'Close Bullect' : '关闭弹幕';
|
||
this.danmuControlHtml.querySelector('.player-tooltip.open').innerText = this.isEn ? 'Open Bullect' : '打开弹幕';
|
||
|
||
if (this.sendEl === 'controlbar') {
|
||
var danmuInputWrapEle = this.danmuControlHtml.querySelector('.ali-danmu-input-wrap');
|
||
danmuInputWrapEle.style.display = 'inline-block';
|
||
danmuInputWrapEle.appendChild(this.danmuInput);
|
||
} else if (this.sendEl !== null) {
|
||
if ((0, _utils.isElement)(this.sendEl)) {
|
||
this.sendEl.appendChild(this.danmuInput);
|
||
} else if (typeof this.sendEl === 'string') {
|
||
var sendEl = document.querySelector(this.sendEl);
|
||
if ((0, _utils.isElement)(sendEl)) {
|
||
sendEl.appendChild(this.danmuInput);
|
||
} else {
|
||
throw new Error('sendEl must be an element or selector string');
|
||
}
|
||
} else {
|
||
throw new Error('sendEl must be an element or selector string');
|
||
}
|
||
}
|
||
|
||
el.querySelector('.prism-controlbar').appendChild(this.danmuControlHtml);
|
||
var videoSiblingElement = el.querySelector('video').nextElementSibling;
|
||
if (videoSiblingElement) {
|
||
el.insertBefore(this.html, videoSiblingElement);
|
||
} else {
|
||
el.appendChild(this.html);
|
||
}
|
||
this.CM = new _CommentCoreLibrary.CommentManager(this.html.querySelector('.danmu')); // 初始化 CommentManager
|
||
|
||
this.CM.init();
|
||
this.CM.load(this.danmukuList);
|
||
|
||
/* 根据视频播放器的 timeupdate 事件更新弹幕的事件轴 */
|
||
el.querySelector('video').ontimeupdate = function () {
|
||
if (el.querySelector('video') !== null) {
|
||
_this.CM.time(el.querySelector('video').currentTime * 1000);
|
||
}
|
||
};
|
||
|
||
var danmuCloseElement = this.danmuControlHtml.querySelector('.icon-danmu-close');
|
||
var danmuOpenElement = this.danmuControlHtml.querySelector('.icon-danmu-open');
|
||
/* 绑定控制条关闭弹幕处理函数 */
|
||
danmuCloseElement.onclick = function () {
|
||
_this.userDanmuOpen = false;
|
||
danmuCloseElement.style.display = 'none';
|
||
danmuOpenElement.style.display = 'inline-block';
|
||
_this.CM.clear();
|
||
_this.CM.stop();
|
||
};
|
||
/* 绑定控制条打开弹幕控制条 */
|
||
danmuOpenElement.onclick = function () {
|
||
danmuOpenElement.style.display = 'none';
|
||
danmuCloseElement.style.display = 'inline-block';
|
||
_this.userDanmuOpen = true;
|
||
_this.CM.start();
|
||
};
|
||
|
||
if (this.danmuInput !== null) {
|
||
var danmuInputEle = this.danmuInput.querySelector('.ali-danmu-input input');
|
||
var danmuEnter = this.danmuInput.querySelector('.danmu-input-enter');
|
||
|
||
danmuEnter.onclick = this.sendDanmuHandle.bind(this);
|
||
|
||
danmuInputEle.onkeydown = function (e) {
|
||
if (e.keyCode === 13) {
|
||
_this.sendDanmuHandle.call(_this);
|
||
}
|
||
};
|
||
}
|
||
}
|
||
|
||
// 弹幕发送按钮点击事件和弹幕输入框按下 enter 键, 处理事件
|
||
|
||
}, {
|
||
key: 'sendDanmuHandle',
|
||
value: function sendDanmuHandle() {
|
||
var danmuInputEle = this.danmuInput.querySelector('.ali-danmu-input input');
|
||
var danmuText = danmuInputEle.value;
|
||
var commentSize = [16, 18, 25, 36, 45];
|
||
var commentColor = [0xffffff, 0x0000ff, 0xcc0000, 0xff66ff, 0xffff33];
|
||
if (danmuText === '') {
|
||
return;
|
||
}
|
||
|
||
this.send({
|
||
"mode": 1,
|
||
"text": danmuText,
|
||
"stime": 1000,
|
||
"size": commentSize[this.randomIndex(5)],
|
||
"color": commentColor[this.randomIndex(5)]
|
||
});
|
||
danmuInputEle.value = '';
|
||
danmuInputEle.focus();
|
||
}
|
||
}, {
|
||
key: 'randomIndex',
|
||
value: function randomIndex(max) {
|
||
return Math.floor(Math.random() * max);
|
||
}
|
||
}, {
|
||
key: 'play',
|
||
value: function play(player, e) {
|
||
if (this.userDanmuOpen) {
|
||
this.CM.start();
|
||
}
|
||
}
|
||
}, {
|
||
key: 'pause',
|
||
value: function pause(player, e) {
|
||
if (this.userDanmuOpen) {
|
||
this.CM.stop();
|
||
}
|
||
}
|
||
}, {
|
||
key: 'send',
|
||
value: function send(danmuku) {
|
||
this.CM.send(danmuku);
|
||
}
|
||
|
||
/**
|
||
* 暴露出去的插入弹幕的方法
|
||
* @param {Object danmuku 弹幕对象 只能一条一条插入}
|
||
*/
|
||
|
||
}, {
|
||
key: 'insert',
|
||
value: function insert(danmuku) {
|
||
this.CM && this.CM.insert(danmuku);
|
||
}
|
||
}, {
|
||
key: 'dispose',
|
||
value: function dispose() {
|
||
if (this.danmuInput !== null) {
|
||
this.danmuInput.parentNode && this.danmuInput.parentNode.removeChild(this.danmuInput);
|
||
}
|
||
}
|
||
}]);
|
||
|
||
return AliplayerDanmuComponent;
|
||
}();
|
||
|
||
exports.default = AliplayerDanmuComponent;
|
||
|
||
/***/ }),
|
||
/* 9 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"aliplayer-danmuku abp\">\n <div class=\"danmu container\"></div>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 10 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"ali-danmuku-control\">\n <div class=\"ali-danmu-input-wrap\"></div>\n <i class=\"iconfont icon-danmu-close\"></i>\n <div class=\"player-tooltip close\"></div>\n <i class=\"iconfont icon-danmu-open\" style=\"display: none;\"></i>\n <div class=\"player-tooltip open\"></div> \n</div>";
|
||
|
||
/***/ }),
|
||
/* 11 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"ali-danmu-input\">\n <input type=\"text\" placeholder=\"\">\n <button class=\"danmu-input-enter\"></button>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 12 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(13);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 13 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".aliplayer-danmuku {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%; }\n .aliplayer-danmuku.abp {\n position: absolute; }\n .aliplayer-danmuku.abp .container {\n z-index: 0; }\n .aliplayer-danmuku .danmu {\n position: absolute;\n width: 100%;\n height: 100%; }\n\n.ali-danmuku-control {\n float: right;\n color: #fff;\n margin-right: 5px;\n position: relative;\n display: table-cell;\n margin-top: 8px; }\n .ali-danmuku-control .iconfont {\n font-size: 35px;\n cursor: pointer;\n vertical-align: middle;\n user-select: none;\n line-height: initial; }\n .ali-danmuku-control .iconfont.icon-danmu-close {\n display: inline-block; }\n .ali-danmuku-control .player-tooltip.close, .ali-danmuku-control .player-tooltip.open {\n right: -12px; }\n @media (min-width: 768px) {\n .ali-danmuku-control .icon-danmu-close:hover + .player-tooltip {\n display: block; }\n .ali-danmuku-control .icon-danmu-open:hover + .player-tooltip {\n display: block; } }\n .ali-danmuku-control .ali-danmu-input-wrap {\n width: 200px;\n display: none; }\n\n.ali-danmu-input {\n position: relative;\n width: 100%;\n display: inline-block; }\n .ali-danmu-input input {\n display: inline-block;\n width: 100%;\n padding-right: 40px;\n box-sizing: border-box;\n padding: 5px 40px 5px 5px;\n background-color: rgba(130, 132, 138, 0.4);\n border: 1px solid #c0c4cc;\n font-size: 14px;\n color: #fff;\n border-radius: 3px; }\n .ali-danmu-input input:focus {\n outline: none;\n border-color: #0f84fd; }\n .ali-danmu-input .danmu-input-enter {\n position: absolute;\n right: 0;\n top: 0;\n border: 1px solid;\n color: #fff;\n background-color: #0f84fd;\n border-color: #0f84fd;\n font-size: 12px;\n padding: 6px 7px;\n display: inline-block;\n height: 28px;\n border-radius: 0 3px 3px 0;\n cursor: pointer; }\n .ali-danmu-input .danmu-input-enter:focus {\n outline: none; }\n .ali-danmu-input .danmu-input-enter:hover {\n background-color: #288df5;\n border-color: #288df5; }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 14 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
/**
|
||
* Binary Search Stubs for JS Arrays
|
||
* @license MIT
|
||
* @author Jim Chen
|
||
*/
|
||
var BinArray = function () {
|
||
var BinArray = {};
|
||
BinArray.bsearch = function (arr, what, how) {
|
||
if (arr.length === 0) {
|
||
return 0;
|
||
}
|
||
if (how(what, arr[0]) < 0) {
|
||
return 0;
|
||
}
|
||
if (how(what, arr[arr.length - 1]) >= 0) {
|
||
return arr.length;
|
||
}
|
||
var low = 0;
|
||
var i = 0;
|
||
var count = 0;
|
||
var high = arr.length - 1;
|
||
while (low <= high) {
|
||
i = Math.floor((high + low + 1) / 2);
|
||
count++;
|
||
if (how(what, arr[i - 1]) >= 0 && how(what, arr[i]) < 0) {
|
||
return i;
|
||
}
|
||
if (how(what, arr[i - 1]) < 0) {
|
||
high = i - 1;
|
||
} else if (how(what, arr[i]) >= 0) {
|
||
low = i;
|
||
} else {
|
||
console.error('Program Error');
|
||
}
|
||
if (count > 1500) {
|
||
console.error('Too many run cycles.');
|
||
}
|
||
}
|
||
return -1; // Never actually run
|
||
};
|
||
BinArray.binsert = function (arr, what, how) {
|
||
var index = BinArray.bsearch(arr, what, how);
|
||
arr.splice(index, 0, what);
|
||
return index;
|
||
};
|
||
return BinArray;
|
||
}();
|
||
|
||
var __extends = undefined && undefined.__extends || function (d, b) {
|
||
for (var p in b) {
|
||
if (b.hasOwnProperty(p)) d[p] = b[p];
|
||
}function __() {
|
||
this.constructor = d;
|
||
}
|
||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||
};
|
||
var CommentSpaceAllocator = function () {
|
||
function CommentSpaceAllocator(width, height) {
|
||
if (width === void 0) {
|
||
width = 0;
|
||
}
|
||
if (height === void 0) {
|
||
height = 0;
|
||
}
|
||
this._pools = [[]];
|
||
this.avoid = 1;
|
||
this._width = width;
|
||
this._height = height;
|
||
}
|
||
CommentSpaceAllocator.prototype.willCollide = function (existing, check) {
|
||
return existing.stime + existing.ttl >= check.stime + check.ttl / 2;
|
||
};
|
||
CommentSpaceAllocator.prototype.pathCheck = function (y, comment, pool) {
|
||
var bottom = y + comment.height;
|
||
var right = comment.right;
|
||
for (var i = 0; i < pool.length; i++) {
|
||
if (pool[i].y > bottom || pool[i].bottom < y) {
|
||
continue;
|
||
} else if (pool[i].right < comment.x || pool[i].x > right) {
|
||
if (this.willCollide(pool[i], comment)) {
|
||
return false;
|
||
} else {
|
||
continue;
|
||
}
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
return true;
|
||
};
|
||
CommentSpaceAllocator.prototype.assign = function (comment, cindex) {
|
||
while (this._pools.length <= cindex) {
|
||
this._pools.push([]);
|
||
}
|
||
var pool = this._pools[cindex];
|
||
if (pool.length === 0) {
|
||
comment.cindex = cindex;
|
||
return 0;
|
||
} else if (this.pathCheck(0, comment, pool)) {
|
||
comment.cindex = cindex;
|
||
return 0;
|
||
}
|
||
var y = 0;
|
||
for (var k = 0; k < pool.length; k++) {
|
||
y = pool[k].bottom + this.avoid;
|
||
if (y + comment.height > this._height) {
|
||
break;
|
||
}
|
||
if (this.pathCheck(y, comment, pool)) {
|
||
comment.cindex = cindex;
|
||
return y;
|
||
}
|
||
}
|
||
return this.assign(comment, cindex + 1);
|
||
};
|
||
CommentSpaceAllocator.prototype.add = function (comment) {
|
||
if (comment.height > this._height) {
|
||
comment.cindex = -2;
|
||
comment.y = 0;
|
||
} else {
|
||
comment.y = this.assign(comment, 0);
|
||
BinArray.binsert(this._pools[comment.cindex], comment, function (a, b) {
|
||
if (a.bottom < b.bottom) {
|
||
return -1;
|
||
} else if (a.bottom > b.bottom) {
|
||
return 1;
|
||
} else {
|
||
return 0;
|
||
}
|
||
});
|
||
}
|
||
};
|
||
CommentSpaceAllocator.prototype.remove = function (comment) {
|
||
if (comment.cindex < 0) {
|
||
return;
|
||
}
|
||
if (comment.cindex >= this._pools.length) {
|
||
throw new Error("cindex out of bounds");
|
||
}
|
||
var index = this._pools[comment.cindex].indexOf(comment);
|
||
if (index < 0) return;
|
||
this._pools[comment.cindex].splice(index, 1);
|
||
};
|
||
CommentSpaceAllocator.prototype.setBounds = function (width, height) {
|
||
this._width = width;
|
||
this._height = height;
|
||
};
|
||
return CommentSpaceAllocator;
|
||
}();
|
||
var AnchorCommentSpaceAllocator = function (_super) {
|
||
__extends(AnchorCommentSpaceAllocator, _super);
|
||
function AnchorCommentSpaceAllocator() {
|
||
_super.apply(this, arguments);
|
||
}
|
||
AnchorCommentSpaceAllocator.prototype.add = function (comment) {
|
||
_super.prototype.add.call(this, comment);
|
||
comment.x = (this._width - comment.width) / 2;
|
||
};
|
||
AnchorCommentSpaceAllocator.prototype.willCollide = function (a, b) {
|
||
return true;
|
||
};
|
||
AnchorCommentSpaceAllocator.prototype.pathCheck = function (y, comment, pool) {
|
||
var bottom = y + comment.height;
|
||
for (var i = 0; i < pool.length; i++) {
|
||
if (pool[i].y > bottom || pool[i].bottom < y) {
|
||
continue;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
return true;
|
||
};
|
||
return AnchorCommentSpaceAllocator;
|
||
}(CommentSpaceAllocator);
|
||
//# sourceMappingURL=CommentSpaceAllocator.js.map
|
||
var __extends = undefined && undefined.__extends || function (d, b) {
|
||
for (var p in b) {
|
||
if (b.hasOwnProperty(p)) d[p] = b[p];
|
||
}function __() {
|
||
this.constructor = d;
|
||
}
|
||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||
};
|
||
var CoreComment = function () {
|
||
function CoreComment(parent, init) {
|
||
if (init === void 0) {
|
||
init = {};
|
||
}
|
||
this.mode = 1;
|
||
this.stime = 0;
|
||
this.text = "";
|
||
this.ttl = 4000;
|
||
this.dur = 4000;
|
||
this.cindex = -1;
|
||
this.motion = [];
|
||
this.movable = true;
|
||
this._alphaMotion = null;
|
||
this.absolute = true;
|
||
this.align = 0;
|
||
this._alpha = 1;
|
||
this._size = 25;
|
||
this._color = 0xffffff;
|
||
this._border = false;
|
||
this._shadow = true;
|
||
this._font = "";
|
||
if (!parent) {
|
||
throw new Error("Comment not bound to comment manager.");
|
||
} else {
|
||
this.parent = parent;
|
||
}
|
||
if (init.hasOwnProperty("stime")) {
|
||
this.stime = init["stime"];
|
||
}
|
||
if (init.hasOwnProperty("mode")) {
|
||
this.mode = init["mode"];
|
||
} else {
|
||
this.mode = 1;
|
||
}
|
||
if (init.hasOwnProperty("dur")) {
|
||
this.dur = init["dur"];
|
||
this.ttl = this.dur;
|
||
}
|
||
this.dur *= this.parent.options.global.scale;
|
||
this.ttl *= this.parent.options.global.scale;
|
||
if (init.hasOwnProperty("text")) {
|
||
this.text = init["text"];
|
||
}
|
||
if (init.hasOwnProperty("motion")) {
|
||
this._motionStart = [];
|
||
this._motionEnd = [];
|
||
this.motion = init["motion"];
|
||
var head = 0;
|
||
for (var i = 0; i < init["motion"].length; i++) {
|
||
this._motionStart.push(head);
|
||
var maxDur = 0;
|
||
for (var k in init["motion"][i]) {
|
||
var m = init["motion"][i][k];
|
||
maxDur = Math.max(m.dur, maxDur);
|
||
if (m.easing === null || m.easing === undefined) {
|
||
init["motion"][i][k]["easing"] = CoreComment.LINEAR;
|
||
}
|
||
}
|
||
head += maxDur;
|
||
this._motionEnd.push(head);
|
||
}
|
||
this._curMotion = 0;
|
||
}
|
||
if (init.hasOwnProperty("color")) {
|
||
this._color = init["color"];
|
||
}
|
||
if (init.hasOwnProperty("size")) {
|
||
this._size = init["size"];
|
||
}
|
||
if (init.hasOwnProperty("border")) {
|
||
this._border = init["border"];
|
||
}
|
||
if (init.hasOwnProperty("opacity")) {
|
||
this._alpha = init["opacity"];
|
||
}
|
||
if (init.hasOwnProperty("alpha")) {
|
||
this._alphaMotion = init["alpha"];
|
||
}
|
||
if (init.hasOwnProperty("font")) {
|
||
this._font = init["font"];
|
||
}
|
||
if (init.hasOwnProperty("x")) {
|
||
this._x = init["x"];
|
||
}
|
||
if (init.hasOwnProperty("y")) {
|
||
this._y = init["y"];
|
||
}
|
||
if (init.hasOwnProperty("shadow")) {
|
||
this._shadow = init["shadow"];
|
||
}
|
||
if (init.hasOwnProperty("position")) {
|
||
if (init["position"] === "relative") {
|
||
this.absolute = false;
|
||
if (this.mode < 7) {
|
||
console.warn("Using relative position for CSA comment.");
|
||
}
|
||
}
|
||
}
|
||
}
|
||
CoreComment.prototype.init = function (recycle) {
|
||
if (recycle === void 0) {
|
||
recycle = null;
|
||
}
|
||
if (recycle !== null) {
|
||
this.dom = recycle.dom;
|
||
} else {
|
||
this.dom = document.createElement("div");
|
||
}
|
||
this.dom.className = this.parent.options.global.className;
|
||
this.dom.appendChild(document.createTextNode(this.text));
|
||
this.dom.textContent = this.text;
|
||
this.dom.innerText = this.text;
|
||
this.size = this._size;
|
||
if (this._color != 0xffffff) {
|
||
this.color = this._color;
|
||
}
|
||
this.shadow = this._shadow;
|
||
if (this._border) {
|
||
this.border = this._border;
|
||
}
|
||
if (this._font !== "") {
|
||
this.font = this._font;
|
||
}
|
||
if (this._x !== undefined) {
|
||
this.x = this._x;
|
||
}
|
||
if (this._y !== undefined) {
|
||
this.y = this._y;
|
||
}
|
||
if (this._alpha !== 1 || this.parent.options.global.opacity < 1) {
|
||
this.alpha = this._alpha;
|
||
}
|
||
if (this.motion.length > 0) {
|
||
this.animate();
|
||
}
|
||
};
|
||
Object.defineProperty(CoreComment.prototype, "x", {
|
||
get: function get() {
|
||
if (this._x === null || this._x === undefined) {
|
||
if (this.align % 2 === 0) {
|
||
this._x = this.dom.offsetLeft;
|
||
} else {
|
||
this._x = this.parent.width - this.dom.offsetLeft - this.width;
|
||
}
|
||
}
|
||
if (!this.absolute) {
|
||
return this._x / this.parent.width;
|
||
}
|
||
return this._x;
|
||
},
|
||
set: function set(x) {
|
||
this._x = x;
|
||
if (!this.absolute) {
|
||
this._x *= this.parent.width;
|
||
}
|
||
if (this.align % 2 === 0) {
|
||
this.dom.style.left = this._x + "px";
|
||
} else {
|
||
this.dom.style.right = this._x + "px";
|
||
}
|
||
},
|
||
enumerable: true,
|
||
configurable: true
|
||
});
|
||
Object.defineProperty(CoreComment.prototype, "y", {
|
||
get: function get() {
|
||
if (this._y === null || this._y === undefined) {
|
||
if (this.align < 2) {
|
||
this._y = this.dom.offsetTop;
|
||
} else {
|
||
this._y = this.parent.height - this.dom.offsetTop - this.height;
|
||
}
|
||
}
|
||
if (!this.absolute) {
|
||
return this._y / this.parent.height;
|
||
}
|
||
return this._y;
|
||
},
|
||
set: function set(y) {
|
||
this._y = y;
|
||
if (!this.absolute) {
|
||
this._y *= this.parent.height;
|
||
}
|
||
if (this.align < 2) {
|
||
this.dom.style.top = this._y + "px";
|
||
} else {
|
||
this.dom.style.bottom = this._y + "px";
|
||
}
|
||
},
|
||
enumerable: true,
|
||
configurable: true
|
||
});
|
||
Object.defineProperty(CoreComment.prototype, "bottom", {
|
||
get: function get() {
|
||
return this.y + this.height;
|
||
},
|
||
enumerable: true,
|
||
configurable: true
|
||
});
|
||
Object.defineProperty(CoreComment.prototype, "right", {
|
||
get: function get() {
|
||
return this.x + this.width;
|
||
},
|
||
enumerable: true,
|
||
configurable: true
|
||
});
|
||
Object.defineProperty(CoreComment.prototype, "width", {
|
||
get: function get() {
|
||
if (this._width === null || this._width === undefined) {
|
||
this._width = this.dom.offsetWidth;
|
||
}
|
||
return this._width;
|
||
},
|
||
set: function set(w) {
|
||
this._width = w;
|
||
this.dom.style.width = this._width + "px";
|
||
},
|
||
enumerable: true,
|
||
configurable: true
|
||
});
|
||
Object.defineProperty(CoreComment.prototype, "height", {
|
||
get: function get() {
|
||
if (this._height === null || this._height === undefined) {
|
||
this._height = this.dom.offsetHeight;
|
||
}
|
||
return this._height;
|
||
},
|
||
set: function set(h) {
|
||
this._height = h;
|
||
this.dom.style.height = this._height + "px";
|
||
},
|
||
enumerable: true,
|
||
configurable: true
|
||
});
|
||
Object.defineProperty(CoreComment.prototype, "size", {
|
||
get: function get() {
|
||
return this._size;
|
||
},
|
||
set: function set(s) {
|
||
this._size = s;
|
||
this.dom.style.fontSize = this._size + "px";
|
||
},
|
||
enumerable: true,
|
||
configurable: true
|
||
});
|
||
Object.defineProperty(CoreComment.prototype, "color", {
|
||
get: function get() {
|
||
return this._color;
|
||
},
|
||
set: function set(c) {
|
||
this._color = c;
|
||
var color = c.toString(16);
|
||
color = color.length >= 6 ? color : new Array(6 - color.length + 1).join("0") + color;
|
||
this.dom.style.color = "#" + color;
|
||
if (this._color === 0) {
|
||
this.dom.className = this.parent.options.global.className + " rshadow";
|
||
}
|
||
},
|
||
enumerable: true,
|
||
configurable: true
|
||
});
|
||
Object.defineProperty(CoreComment.prototype, "alpha", {
|
||
get: function get() {
|
||
return this._alpha;
|
||
},
|
||
set: function set(a) {
|
||
this._alpha = a;
|
||
this.dom.style.opacity = Math.min(this._alpha, this.parent.options.global.opacity) + "";
|
||
},
|
||
enumerable: true,
|
||
configurable: true
|
||
});
|
||
Object.defineProperty(CoreComment.prototype, "border", {
|
||
get: function get() {
|
||
return this._border;
|
||
},
|
||
set: function set(b) {
|
||
this._border = b;
|
||
if (this._border) {
|
||
this.dom.style.border = "1px solid #00ffff";
|
||
} else {
|
||
this.dom.style.border = "none";
|
||
}
|
||
},
|
||
enumerable: true,
|
||
configurable: true
|
||
});
|
||
Object.defineProperty(CoreComment.prototype, "shadow", {
|
||
get: function get() {
|
||
return this._shadow;
|
||
},
|
||
set: function set(s) {
|
||
this._shadow = s;
|
||
if (!this._shadow) {
|
||
this.dom.className = this.parent.options.global.className + " noshadow";
|
||
}
|
||
},
|
||
enumerable: true,
|
||
configurable: true
|
||
});
|
||
Object.defineProperty(CoreComment.prototype, "font", {
|
||
get: function get() {
|
||
return this._font;
|
||
},
|
||
set: function set(f) {
|
||
this._font = f;
|
||
if (this._font.length > 0) {
|
||
this.dom.style.fontFamily = this._font;
|
||
} else {
|
||
this.dom.style.fontFamily = "";
|
||
}
|
||
},
|
||
enumerable: true,
|
||
configurable: true
|
||
});
|
||
CoreComment.prototype.time = function (time) {
|
||
this.ttl -= time;
|
||
if (this.ttl < 0) {
|
||
this.ttl = 0;
|
||
}
|
||
if (this.movable) {
|
||
this.update();
|
||
}
|
||
if (this.ttl <= 0) {
|
||
this.finish();
|
||
}
|
||
};
|
||
CoreComment.prototype.update = function () {
|
||
this.animate();
|
||
};
|
||
CoreComment.prototype.invalidate = function () {
|
||
this._x = null;
|
||
this._y = null;
|
||
this._width = null;
|
||
this._height = null;
|
||
};
|
||
CoreComment.prototype._execMotion = function (currentMotion, time) {
|
||
for (var prop in currentMotion) {
|
||
if (currentMotion.hasOwnProperty(prop)) {
|
||
var m = currentMotion[prop];
|
||
this[prop] = m.easing(Math.min(Math.max(time - m.delay, 0), m.dur), m.from, m.to - m.from, m.dur);
|
||
}
|
||
}
|
||
};
|
||
CoreComment.prototype.animate = function () {
|
||
if (this._alphaMotion) {
|
||
this.alpha = (this.dur - this.ttl) * (this._alphaMotion["to"] - this._alphaMotion["from"]) / this.dur + this._alphaMotion["from"];
|
||
}
|
||
if (this.motion.length === 0) {
|
||
return;
|
||
}
|
||
var ttl = Math.max(this.ttl, 0);
|
||
var time = this.dur - ttl - this._motionStart[this._curMotion];
|
||
this._execMotion(this.motion[this._curMotion], time);
|
||
if (this.dur - ttl > this._motionEnd[this._curMotion]) {
|
||
this._curMotion++;
|
||
if (this._curMotion >= this.motion.length) {
|
||
this._curMotion = this.motion.length - 1;
|
||
}
|
||
return;
|
||
}
|
||
};
|
||
CoreComment.prototype.finish = function () {
|
||
this.parent.finish(this);
|
||
};
|
||
CoreComment.prototype.toString = function () {
|
||
return ["[", this.stime, "|", this.ttl, "/", this.dur, "]", "(", this.mode, ")", this.text].join("");
|
||
};
|
||
CoreComment.LINEAR = function (t, b, c, d) {
|
||
return t * c / d + b;
|
||
};
|
||
return CoreComment;
|
||
}();
|
||
var ScrollComment = function (_super) {
|
||
__extends(ScrollComment, _super);
|
||
function ScrollComment(parent, data) {
|
||
_super.call(this, parent, data);
|
||
this.dur *= this.parent.options.scroll.scale;
|
||
this.ttl *= this.parent.options.scroll.scale;
|
||
}
|
||
Object.defineProperty(ScrollComment.prototype, "alpha", {
|
||
set: function set(a) {
|
||
this._alpha = a;
|
||
this.dom.style.opacity = Math.min(Math.min(this._alpha, this.parent.options.global.opacity), this.parent.options.scroll.opacity) + "";
|
||
},
|
||
enumerable: true,
|
||
configurable: true
|
||
});
|
||
ScrollComment.prototype.init = function (recycle) {
|
||
if (recycle === void 0) {
|
||
recycle = null;
|
||
}
|
||
_super.prototype.init.call(this, recycle);
|
||
this.x = this.parent.width;
|
||
if (this.parent.options.scroll.opacity < 1) {
|
||
this.alpha = this._alpha;
|
||
}
|
||
this.absolute = true;
|
||
};
|
||
ScrollComment.prototype.update = function () {
|
||
this.x = this.ttl / this.dur * (this.parent.width + this.width) - this.width;
|
||
};
|
||
return ScrollComment;
|
||
}(CoreComment);
|
||
//# sourceMappingURL=Comment.js.map
|
||
/**
|
||
* Comment Filters Module Simplified (only supports modifiers & types)
|
||
* @license MIT
|
||
* @author Jim Chen
|
||
*/
|
||
function CommentFilter() {
|
||
this.modifiers = [];
|
||
this.runtime = null;
|
||
this.allowTypes = {
|
||
"1": true,
|
||
"4": true,
|
||
"5": true,
|
||
"6": true,
|
||
"7": true,
|
||
"8": true,
|
||
"17": true
|
||
};
|
||
this.doModify = function (cmt) {
|
||
for (var k = 0; k < this.modifiers.length; k++) {
|
||
cmt = this.modifiers[k](cmt);
|
||
}
|
||
return cmt;
|
||
};
|
||
this.beforeSend = function (cmt) {
|
||
return cmt;
|
||
};
|
||
this.doValidate = function (cmtData) {
|
||
if (!this.allowTypes[cmtData.mode]) return false;
|
||
return true;
|
||
};
|
||
this.addRule = function (rule) {};
|
||
this.addModifier = function (f) {
|
||
this.modifiers.push(f);
|
||
};
|
||
this.runtimeFilter = function (cmt) {
|
||
if (this.runtime == null) return cmt;
|
||
return this.runtime(cmt);
|
||
};
|
||
this.setRuntimeFilter = function (f) {
|
||
this.runtime = f;
|
||
};
|
||
}
|
||
|
||
/*!
|
||
* Comment Core Library CommentManager
|
||
* @license MIT
|
||
* @author Jim Chen
|
||
*
|
||
* Copyright (c) 2014 Jim Chen
|
||
*/
|
||
var CommentManager = function () {
|
||
var getRotMatrix = function getRotMatrix(yrot, zrot) {
|
||
// Courtesy of @StarBrilliant, re-adapted to look better
|
||
var DEG2RAD = Math.PI / 180;
|
||
var yr = yrot * DEG2RAD;
|
||
var zr = zrot * DEG2RAD;
|
||
var COS = Math.cos;
|
||
var SIN = Math.sin;
|
||
var matrix = [COS(yr) * COS(zr), COS(yr) * SIN(zr), SIN(yr), 0, -SIN(zr), COS(zr), 0, 0, -SIN(yr) * COS(zr), -SIN(yr) * SIN(zr), COS(yr), 0, 0, 0, 0, 1];
|
||
// CSS does not recognize scientific notation (e.g. 1e-6), truncating it.
|
||
for (var i = 0; i < matrix.length; i++) {
|
||
if (Math.abs(matrix[i]) < 0.000001) {
|
||
matrix[i] = 0;
|
||
}
|
||
}
|
||
return "matrix3d(" + matrix.join(",") + ")";
|
||
};
|
||
|
||
function CommentManager(stageObject) {
|
||
var __timer = 0;
|
||
|
||
this._listeners = {};
|
||
this._lastPosition = 0;
|
||
|
||
this.stage = stageObject;
|
||
this.options = {
|
||
global: {
|
||
opacity: 1,
|
||
scale: 1,
|
||
className: "cmt"
|
||
},
|
||
scroll: {
|
||
opacity: 1,
|
||
scale: 1
|
||
},
|
||
limit: 0
|
||
};
|
||
this.timeline = [];
|
||
this.runline = [];
|
||
this.position = 0;
|
||
this.limiter = 0;
|
||
this.filter = null;
|
||
this.csa = {
|
||
scroll: new CommentSpaceAllocator(0, 0),
|
||
top: new AnchorCommentSpaceAllocator(0, 0),
|
||
bottom: new AnchorCommentSpaceAllocator(0, 0),
|
||
reverse: new CommentSpaceAllocator(0, 0),
|
||
scrollbtm: new CommentSpaceAllocator(0, 0)
|
||
};
|
||
|
||
/** Precompute the offset width **/
|
||
this.width = this.stage.offsetWidth;
|
||
this.height = this.stage.offsetHeight;
|
||
this.startTimer = function () {
|
||
if (__timer > 0) return;
|
||
var lastTPos = new Date().getTime();
|
||
var cmMgr = this;
|
||
__timer = window.setInterval(function () {
|
||
var elapsed = new Date().getTime() - lastTPos;
|
||
lastTPos = new Date().getTime();
|
||
cmMgr.onTimerEvent(elapsed, cmMgr);
|
||
}, 10);
|
||
};
|
||
this.stopTimer = function () {
|
||
window.clearInterval(__timer);
|
||
__timer = 0;
|
||
};
|
||
}
|
||
|
||
/** Public **/
|
||
CommentManager.prototype.stop = function () {
|
||
this.stopTimer();
|
||
};
|
||
|
||
CommentManager.prototype.start = function () {
|
||
this.startTimer();
|
||
};
|
||
|
||
CommentManager.prototype.seek = function (time) {
|
||
this.position = BinArray.bsearch(this.timeline, time, function (a, b) {
|
||
if (a < b.stime) return -1;else if (a > b.stime) return 1;else return 0;
|
||
});
|
||
};
|
||
|
||
CommentManager.prototype.validate = function (cmt) {
|
||
if (cmt == null) return false;
|
||
return this.filter.doValidate(cmt);
|
||
};
|
||
|
||
CommentManager.prototype.load = function (a) {
|
||
this.timeline = a;
|
||
this.timeline.sort(function (a, b) {
|
||
if (a.stime > b.stime) return 2;else if (a.stime < b.stime) return -2;else {
|
||
if (a.date > b.date) return 1;else if (a.date < b.date) return -1;else if (a.dbid != null && b.dbid != null) {
|
||
if (a.dbid > b.dbid) return 1;else if (a.dbid < b.dbid) return -1;
|
||
return 0;
|
||
} else return 0;
|
||
}
|
||
});
|
||
this.dispatchEvent("load");
|
||
};
|
||
|
||
CommentManager.prototype.insert = function (c) {
|
||
var index = BinArray.binsert(this.timeline, c, function (a, b) {
|
||
if (a.stime > b.stime) return 2;else if (a.stime < b.stime) return -2;else {
|
||
if (a.date > b.date) return 1;else if (a.date < b.date) return -1;else if (a.dbid != null && b.dbid != null) {
|
||
if (a.dbid > b.dbid) return 1;else if (a.dbid < b.dbid) return -1;
|
||
return 0;
|
||
} else return 0;
|
||
}
|
||
});
|
||
if (index <= this.position) {
|
||
this.position++;
|
||
}
|
||
this.dispatchEvent("insert");
|
||
};
|
||
|
||
CommentManager.prototype.clear = function () {
|
||
while (this.runline.length > 0) {
|
||
this.runline[0].finish();
|
||
}
|
||
this.dispatchEvent("clear");
|
||
};
|
||
|
||
CommentManager.prototype.setBounds = function () {
|
||
this.width = this.stage.offsetWidth;
|
||
this.height = this.stage.offsetHeight;
|
||
this.dispatchEvent("resize");
|
||
for (var comAlloc in this.csa) {
|
||
this.csa[comAlloc].setBounds(this.width, this.height);
|
||
}
|
||
// Update 3d perspective
|
||
this.stage.style.perspective = this.width * Math.tan(40 * Math.PI / 180) / 2 + "px";
|
||
this.stage.style.webkitPerspective = this.width * Math.tan(40 * Math.PI / 180) / 2 + "px";
|
||
};
|
||
CommentManager.prototype.init = function () {
|
||
this.setBounds();
|
||
if (this.filter == null) {
|
||
this.filter = new CommentFilter(); //Only create a filter if none exist
|
||
}
|
||
};
|
||
CommentManager.prototype.time = function (time) {
|
||
time = time - 1;
|
||
if (this.position >= this.timeline.length || Math.abs(this._lastPosition - time) >= 2000) {
|
||
this.seek(time);
|
||
this._lastPosition = time;
|
||
if (this.timeline.length <= this.position) {
|
||
return;
|
||
}
|
||
} else {
|
||
this._lastPosition = time;
|
||
}
|
||
for (; this.position < this.timeline.length; this.position++) {
|
||
if (this.timeline[this.position]['stime'] <= time) {
|
||
if (this.options.limit > 0 && this.runline.length > this.limiter) {
|
||
continue; // Skip comments but still move the position pointer
|
||
} else if (this.validate(this.timeline[this.position])) {
|
||
this.send(this.timeline[this.position]);
|
||
}
|
||
} else {
|
||
break;
|
||
}
|
||
}
|
||
};
|
||
CommentManager.prototype.rescale = function () {};
|
||
CommentManager.prototype.send = function (data) {
|
||
if (data.mode === 8) {
|
||
console.log(data);
|
||
if (this.scripting) {
|
||
console.log(this.scripting.eval(data.code));
|
||
}
|
||
return;
|
||
}
|
||
if (this.filter != null) {
|
||
data = this.filter.doModify(data);
|
||
if (data == null) return;
|
||
}
|
||
if (data.mode === 1 || data.mode === 2 || data.mode === 6) {
|
||
var cmt = new ScrollComment(this, data);
|
||
} else {
|
||
var cmt = new CoreComment(this, data);
|
||
}
|
||
switch (cmt.mode) {
|
||
case 1:
|
||
cmt.align = 0;break;
|
||
case 2:
|
||
cmt.align = 2;break;
|
||
case 4:
|
||
cmt.align = 2;break;
|
||
case 5:
|
||
cmt.align = 0;break;
|
||
case 6:
|
||
cmt.align = 1;break;
|
||
}
|
||
cmt.init();
|
||
this.stage.appendChild(cmt.dom);
|
||
switch (cmt.mode) {
|
||
default:
|
||
case 1:
|
||
{
|
||
this.csa.scroll.add(cmt);
|
||
}break;
|
||
case 2:
|
||
{
|
||
this.csa.scrollbtm.add(cmt);
|
||
}break;
|
||
case 4:
|
||
{
|
||
this.csa.bottom.add(cmt);
|
||
}break;
|
||
case 5:
|
||
{
|
||
this.csa.top.add(cmt);
|
||
}break;
|
||
case 6:
|
||
{
|
||
this.csa.reverse.add(cmt);
|
||
}break;
|
||
case 17:
|
||
case 7:
|
||
{
|
||
if (data.rY !== 0 || data.rZ !== 0) {
|
||
/** TODO: revise when browser manufacturers make up their mind on Transform APIs **/
|
||
cmt.dom.style.transform = getRotMatrix(data.rY, data.rZ);
|
||
cmt.dom.style.webkitTransform = getRotMatrix(data.rY, data.rZ);
|
||
cmt.dom.style.OTransform = getRotMatrix(data.rY, data.rZ);
|
||
cmt.dom.style.MozTransform = getRotMatrix(data.rY, data.rZ);
|
||
cmt.dom.style.MSTransform = getRotMatrix(data.rY, data.rZ);
|
||
}
|
||
}break;
|
||
}
|
||
cmt.y = cmt.y;
|
||
this.dispatchEvent("enterComment", cmt);
|
||
this.runline.push(cmt);
|
||
};
|
||
CommentManager.prototype.sendComment = function (data) {
|
||
console.log("CommentManager.sendComment is deprecated. Please use send instead");
|
||
this.send(data); // Wrapper for Backwards Compatible APIs
|
||
};
|
||
CommentManager.prototype.finish = function (cmt) {
|
||
this.dispatchEvent("exitComment", cmt);
|
||
this.stage.removeChild(cmt.dom);
|
||
var index = this.runline.indexOf(cmt);
|
||
if (index >= 0) {
|
||
this.runline.splice(index, 1);
|
||
}
|
||
switch (cmt.mode) {
|
||
default:
|
||
case 1:
|
||
{
|
||
this.csa.scroll.remove(cmt);
|
||
}break;
|
||
case 2:
|
||
{
|
||
this.csa.scrollbtm.remove(cmt);
|
||
}break;
|
||
case 4:
|
||
{
|
||
this.csa.bottom.remove(cmt);
|
||
}break;
|
||
case 5:
|
||
{
|
||
this.csa.top.remove(cmt);
|
||
}break;
|
||
case 6:
|
||
{
|
||
this.csa.reverse.remove(cmt);
|
||
}break;
|
||
case 7:
|
||
break;
|
||
}
|
||
};
|
||
CommentManager.prototype.addEventListener = function (event, listener) {
|
||
if (typeof this._listeners[event] !== "undefined") {
|
||
this._listeners[event].push(listener);
|
||
} else {
|
||
this._listeners[event] = [listener];
|
||
}
|
||
};
|
||
CommentManager.prototype.dispatchEvent = function (event, data) {
|
||
if (typeof this._listeners[event] !== "undefined") {
|
||
for (var i = 0; i < this._listeners[event].length; i++) {
|
||
try {
|
||
this._listeners[event][i](data);
|
||
} catch (e) {
|
||
console.err(e.stack);
|
||
}
|
||
}
|
||
}
|
||
};
|
||
/** Static Functions **/
|
||
CommentManager.prototype.onTimerEvent = function (timePassed, cmObj) {
|
||
for (var i = 0; i < cmObj.runline.length; i++) {
|
||
var cmt = cmObj.runline[i];
|
||
if (cmt.hold) {
|
||
continue;
|
||
}
|
||
cmt.time(timePassed);
|
||
}
|
||
};
|
||
return CommentManager;
|
||
}();
|
||
|
||
/**
|
||
* AcFun Format Parser
|
||
* @license MIT License
|
||
* An alternative format comment parser
|
||
*/
|
||
function AcfunParser(jsond) {
|
||
var list = [];
|
||
try {
|
||
var jsondt = JSON.parse(jsond);
|
||
} catch (e) {
|
||
console.log('Error: Could not parse json list!');
|
||
return [];
|
||
}
|
||
for (var i = 0; i < jsondt.length; i++) {
|
||
//Read each comment and generate a correct comment object
|
||
var data = {};
|
||
var xc = jsondt[i]['c'].split(',');
|
||
if (xc.length > 0) {
|
||
data.stime = parseFloat(xc[0]) * 1000;
|
||
data.color = parseInt(xc[1]);
|
||
data.mode = parseInt(xc[2]);
|
||
data.size = parseInt(xc[3]);
|
||
data.hash = xc[4];
|
||
data.date = parseInt(xc[5]);
|
||
data.position = "absolute";
|
||
if (data.mode != 7) {
|
||
data.text = jsondt[i].m.replace(/(\/n|\\n|\n|\r\n|\\r)/g, "\n");
|
||
data.text = data.text.replace(/\r/g, "\n");
|
||
data.text = data.text.replace(/\s/g, '\xA0');
|
||
} else {
|
||
data.text = jsondt[i].m;
|
||
}
|
||
if (data.mode == 7) {
|
||
//High level positioned dm
|
||
try {
|
||
var x = JSON.parse(data.text);
|
||
} catch (e) {
|
||
console.log('[Err] Error parsing internal data for comment');
|
||
console.log('[Dbg] ' + data.text);
|
||
continue;
|
||
}
|
||
data.position = "relative";
|
||
data.text = x.n; /*.replace(/\r/g,"\n");*/
|
||
data.text = data.text.replace(/\ /g, '\xA0');
|
||
if (x.a != null) {
|
||
data.opacity = x.a;
|
||
} else {
|
||
data.opacity = 1;
|
||
}
|
||
if (x.p != null) {
|
||
data.x = x.p.x / 1000; // relative position
|
||
data.y = x.p.y / 1000;
|
||
} else {
|
||
data.x = 0;
|
||
data.y = 0;
|
||
}
|
||
data.shadow = x.b;
|
||
data.dur = 4000;
|
||
if (x.l != null) data.moveDelay = x.l * 1000;
|
||
if (x.z != null && x.z.length > 0) {
|
||
data.movable = true;
|
||
data.motion = [];
|
||
var moveDuration = 0;
|
||
var last = { x: data.x, y: data.y, alpha: data.opacity, color: data.color };
|
||
for (var m = 0; m < x.z.length; m++) {
|
||
var dur = x.z[m].l != null ? x.z[m].l * 1000 : 500;
|
||
moveDuration += dur;
|
||
var motion = {
|
||
x: { from: last.x, to: x.z[m].x / 1000, dur: dur, delay: 0 },
|
||
y: { from: last.y, to: x.z[m].y / 1000, dur: dur, delay: 0 }
|
||
};
|
||
last.x = motion.x.to;
|
||
last.y = motion.y.to;
|
||
if (x.z[m].t !== last.alpha) {
|
||
motion.alpha = { from: last.alpha, to: x.z[m].t, dur: dur, delay: 0 };
|
||
last.alpha = motion.alpha.to;
|
||
}
|
||
if (x.z[m].c != null && x.z[m].c !== last.color) {
|
||
motion.color = { from: last.color, to: x.z[m].c, dur: dur, delay: 0 };
|
||
last.color = motion.color.to;
|
||
}
|
||
data.motion.push(motion);
|
||
}
|
||
data.dur = moveDuration + (data.moveDelay ? data.moveDelay : 0);
|
||
}
|
||
if (x.r != null && x.k != null) {
|
||
data.rX = x.r;
|
||
data.rY = x.k;
|
||
}
|
||
}
|
||
list.push(data);
|
||
}
|
||
}
|
||
return list;
|
||
}
|
||
|
||
/**
|
||
* Bilibili Format Parser
|
||
* @license MIT License
|
||
* Takes in an XMLDoc/LooseXMLDoc and parses that into a Generic Comment List
|
||
**/
|
||
function BilibiliParser(xmlDoc, text, warn) {
|
||
function format(string) {
|
||
// Format the comment text to be JSON Valid.
|
||
return string.replace(/\t/, "\\t");
|
||
}
|
||
|
||
if (xmlDoc !== null) {
|
||
var elems = xmlDoc.getElementsByTagName('d');
|
||
} else {
|
||
if (!document || !document.createElement) {
|
||
// Maybe we are in a restricted context? Bail.
|
||
return [];
|
||
}
|
||
if (warn) {
|
||
if (!confirm("XML Parse Error. \n Allow tag soup parsing?\n[WARNING: This is unsafe.]")) {
|
||
return [];
|
||
}
|
||
} else {
|
||
// TODO: Make this safer in the future
|
||
text = text.replace(new RegExp("</([^d])", "g"), "</disabled $1");
|
||
text = text.replace(new RegExp("</(\S{2,})", "g"), "</disabled $1");
|
||
text = text.replace(new RegExp("<([^d/]\W*?)", "g"), "<disabled $1");
|
||
text = text.replace(new RegExp("<([^/ ]{2,}\W*?)", "g"), "<disabled $1");
|
||
}
|
||
var tmp = document.createElement("div");
|
||
tmp.innerHTML = text;
|
||
var elems = tmp.getElementsByTagName('d');
|
||
}
|
||
|
||
var tlist = [];
|
||
for (var i = 0; i < elems.length; i++) {
|
||
if (elems[i].getAttribute('p') != null) {
|
||
var opt = elems[i].getAttribute('p').split(',');
|
||
if (!elems[i].childNodes[0]) continue;
|
||
var text = elems[i].childNodes[0].nodeValue;
|
||
var obj = {};
|
||
obj.stime = Math.round(parseFloat(opt[0]) * 1000);
|
||
obj.size = parseInt(opt[2]);
|
||
obj.color = parseInt(opt[3]);
|
||
obj.mode = parseInt(opt[1]);
|
||
obj.date = parseInt(opt[4]);
|
||
obj.pool = parseInt(opt[5]);
|
||
obj.position = "absolute";
|
||
if (opt[7] != null) obj.dbid = parseInt(opt[7]);
|
||
obj.hash = opt[6];
|
||
obj.border = false;
|
||
if (obj.mode < 7) {
|
||
obj.text = text.replace(/(\/n|\\n|\n|\r\n)/g, "\n");
|
||
} else {
|
||
if (obj.mode == 7) {
|
||
try {
|
||
adv = JSON.parse(format(text));
|
||
obj.shadow = true;
|
||
obj.x = parseFloat(adv[0]);
|
||
obj.y = parseFloat(adv[1]);
|
||
if (Math.floor(obj.x) < obj.x || Math.floor(obj.y) < obj.y) {
|
||
obj.position = "relative";
|
||
}
|
||
obj.text = adv[4].replace(/(\/n|\\n|\n|\r\n)/g, "\n");
|
||
obj.rZ = 0;
|
||
obj.rY = 0;
|
||
if (adv.length >= 7) {
|
||
obj.rZ = parseInt(adv[5], 10);
|
||
obj.rY = parseInt(adv[6], 10);
|
||
}
|
||
obj.motion = [];
|
||
obj.movable = false;
|
||
if (adv.length >= 11) {
|
||
obj.movable = true;
|
||
var singleStepDur = 500;
|
||
var motion = {
|
||
x: { from: obj.x, to: parseFloat(adv[7]), dur: singleStepDur, delay: 0 },
|
||
y: { from: obj.y, to: parseFloat(adv[8]), dur: singleStepDur, delay: 0 }
|
||
};
|
||
if (adv[9] !== '') {
|
||
singleStepDur = parseInt(adv[9], 10);
|
||
motion.x.dur = singleStepDur;
|
||
motion.y.dur = singleStepDur;
|
||
}
|
||
if (adv[10] !== '') {
|
||
motion.x.delay = parseInt(adv[10], 10);
|
||
motion.y.delay = parseInt(adv[10], 10);
|
||
}
|
||
if (adv.length > 11) {
|
||
obj.shadow = adv[11];
|
||
if (obj.shadow === "true") {
|
||
obj.shadow = true;
|
||
}
|
||
if (obj.shadow === "false") {
|
||
obj.shadow = false;
|
||
}
|
||
if (adv[12] != null) {
|
||
obj.font = adv[12];
|
||
}
|
||
if (adv.length > 14) {
|
||
// Support for Bilibili Advanced Paths
|
||
if (obj.position === "relative") {
|
||
console.log("Cannot mix relative and absolute positioning");
|
||
obj.position = "absolute";
|
||
}
|
||
var path = adv[14];
|
||
var lastPoint = { x: motion.x.from, y: motion.y.from };
|
||
var pathMotion = [];
|
||
var regex = new RegExp("([a-zA-Z])\\s*(\\d+)[, ](\\d+)", "g");
|
||
var counts = path.split(/[a-zA-Z]/).length - 1;
|
||
var m = regex.exec(path);
|
||
while (m !== null) {
|
||
switch (m[1]) {
|
||
case "M":
|
||
{
|
||
lastPoint.x = parseInt(m[2], 10);
|
||
lastPoint.y = parseInt(m[3], 10);
|
||
}break;
|
||
case "L":
|
||
{
|
||
pathMotion.push({
|
||
"x": { "from": lastPoint.x, "to": parseInt(m[2], 10), "dur": singleStepDur / counts, "delay": 0 },
|
||
"y": { "from": lastPoint.y, "to": parseInt(m[3], 10), "dur": singleStepDur / counts, "delay": 0 }
|
||
});
|
||
lastPoint.x = parseInt(m[2], 10);
|
||
lastPoint.y = parseInt(m[3], 10);
|
||
}break;
|
||
}
|
||
m = regex.exec(path);
|
||
}
|
||
motion = null;
|
||
obj.motion = pathMotion;
|
||
}
|
||
}
|
||
if (motion !== null) {
|
||
obj.motion.push(motion);
|
||
}
|
||
}
|
||
obj.dur = 2500;
|
||
if (adv[3] < 12) {
|
||
obj.dur = adv[3] * 1000;
|
||
}
|
||
var tmp = adv[2].split('-');
|
||
if (tmp != null && tmp.length > 1) {
|
||
var alphaFrom = parseFloat(tmp[0]);
|
||
var alphaTo = parseFloat(tmp[1]);
|
||
obj.opacity = alphaFrom;
|
||
if (alphaFrom !== alphaTo) {
|
||
obj.alpha = { from: alphaFrom, to: alphaTo };
|
||
}
|
||
}
|
||
} catch (e) {
|
||
console.log('[Err] Error occurred in JSON parsing');
|
||
console.log('[Dbg] ' + text);
|
||
}
|
||
} else if (obj.mode == 8) {
|
||
obj.code = text; //Code comments are special
|
||
}
|
||
}
|
||
if (obj.text != null) obj.text = obj.text.replace(/\u25a0/g, '\u2588');
|
||
tlist.push(obj);
|
||
}
|
||
}
|
||
return tlist;
|
||
}
|
||
exports.CommentManager = CommentManager;
|
||
|
||
/***/ }),
|
||
/* 15 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(16);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 16 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".abp {\n position: relative; }\n\n.abp .container {\n -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n position: absolute;\n display: block;\n overflow: hidden;\n margin: 0;\n border: 0;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n z-index: 9999;\n touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n\n.abp .container .cmt {\n -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n -webkit-transform-origin: 0% 0%;\n -ms-transform-origin: 0% 0%;\n transform-origin: 0% 0%;\n position: absolute;\n padding: 3px 0 0 0;\n margin: 0;\n color: #fff;\n font-family: SimHei, SimSun, Heiti, \"MS Mincho\", \"Meiryo\", \"Microsoft YaHei\", monospace;\n font-size: 25px;\n text-decoration: none;\n text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;\n -webkit-text-size-adjust: none;\n -ms-text-size-adjust: none;\n text-size-adjust: none;\n line-height: 100%;\n letter-spacing: 0;\n word-break: keep-all;\n white-space: pre; }\n\n.abp .container .cmt.noshadow {\n text-shadow: none; }\n\n.abp .container .cmt.rshadow {\n text-shadow: -1px 0 white, 0 1px white, 1px 0 white, 0 -1px white; }\n\n/** Aliases for Chinese named fonts because they don't work on *nix **/\n@font-face {\n font-family: \"\\9ED1\\4F53\";\n src: local(\"SimHei\"); }\n\n@font-face {\n font-family: \"\\5B8B\\4F53\";\n src: local(\"SimSun\"); }\n\n@font-face {\n font-family: \"\\534E\\6587\\6977\\4F53\";\n src: local(\"SimKai\"); }\n\n@font-face {\n font-family: \"\\5E7C\\5706\";\n src: local(\"YouYuan\"); }\n\n@font-face {\n font-family: \"\\5FAE\\8F6F\\96C5\\9ED1\";\n src: local(\"Microsoft YaHei\"); }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 17 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(18);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.BulletScreenComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 18 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||
|
||
var _index = __webpack_require__(19);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
__webpack_require__(20);
|
||
|
||
var _utils = __webpack_require__(2);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
||
/**
|
||
* 跑马灯组件
|
||
*/
|
||
var BulletScreenComponent = function () {
|
||
/**
|
||
* @constructor 跑马灯构造函数
|
||
* @param {String text 跑马灯内容}
|
||
* @param {Object style 跑马灯样式}
|
||
* param {String bulletPosition 跑马灯所在的位置, 可能的值 'top', 'bottom' , 'random, 默认为 'random'}
|
||
*/
|
||
function BulletScreenComponent(text, style) {
|
||
var bulletPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'random';
|
||
|
||
_classCallCheck(this, BulletScreenComponent);
|
||
|
||
this.text = text;
|
||
this.style = style || { fontSize: '14px', color: '#fff' };
|
||
this.html = (0, _utils.parseDom)(_index2.default);
|
||
// this.html.style.animationPlayState = 'paused'
|
||
this.bulletPosition = bulletPosition;
|
||
}
|
||
|
||
_createClass(BulletScreenComponent, [{
|
||
key: 'createEl',
|
||
value: function createEl(el, player) {
|
||
this.html.innerText = this.text;
|
||
el.appendChild(this.html);
|
||
el.style.overflow = 'hidden';
|
||
}
|
||
}, {
|
||
key: 'ready',
|
||
value: function ready(player, e) {
|
||
var _this = this;
|
||
|
||
console.log(player.getOptions());
|
||
if (player.getOptions().autoplay === false) {
|
||
this.html.style.animationPlayState = 'paused';
|
||
}
|
||
Object.keys(this.style).forEach(function (key) {
|
||
return _this.html.style[key] = _this.style[key];
|
||
});
|
||
//字体高度
|
||
var bulletHeight = this.html.offsetHeight;
|
||
//播放器高度
|
||
var playerHeight = parseInt(getComputedStyle(player.tag).height.replace('px', ''));
|
||
//字体距离播放器底部最大高度
|
||
var maxHeight = playerHeight - bulletHeight;
|
||
|
||
if (this.bulletPosition === 'bottom') {
|
||
this.html.style.bottom = 0;
|
||
} else {
|
||
var top = this.bulletPosition === 'top' ? 0 : this.randomTop(maxHeight);
|
||
this.html.style.top = top;
|
||
}
|
||
|
||
if (this.bulletPosition === 'random') {
|
||
this.html.addEventListener('animationiteration', function () {
|
||
_this.html.style.top = _this.randomTop(maxHeight);
|
||
});
|
||
}
|
||
}
|
||
}, {
|
||
key: 'playing',
|
||
value: function playing(player, e) {
|
||
console.log('playering');
|
||
this.html.style.animationPlayState = 'running';
|
||
}
|
||
}, {
|
||
key: 'timeupdate',
|
||
value: function timeupdate(player, timeStamp) {
|
||
var el = player.el();
|
||
var componentEl = el.querySelector('.bullet-screen');
|
||
if (!componentEl) {
|
||
el.appendChild(this.html);
|
||
} else {
|
||
if (componentEl.className !== 'bullet-screen') {
|
||
componentEl.className = 'bullet-screen';
|
||
}
|
||
var cssStyles = getComputedStyle(componentEl);
|
||
var display = cssStyles.getPropertyValue('display');
|
||
var opacity = cssStyles.getPropertyValue('opacity');
|
||
var visibility = cssStyles.getPropertyValue('visibility');
|
||
var currentwords = this.text;
|
||
var modifywords = componentEl.innerText;
|
||
if (display === 'none') {
|
||
componentEl.style.setProperty('display', 'block');
|
||
}
|
||
if (opacity !== '1') {
|
||
componentEl.style.setProperty('opacity', '1');
|
||
}
|
||
if (visibility === 'hidden') {
|
||
componentEl.style.setProperty('visibility', 'visible');
|
||
}
|
||
if (currentwords != modifywords) {
|
||
componentEl.innerText = currentwords;
|
||
}
|
||
}
|
||
}
|
||
}, {
|
||
key: 'pause',
|
||
value: function pause(player, e) {
|
||
console.log('pause');
|
||
this.html.style.animationPlayState = 'paused';
|
||
}
|
||
}, {
|
||
key: 'randomTop',
|
||
value: function randomTop(max) {
|
||
return Math.floor(Math.random() * max) + 'px';
|
||
}
|
||
}]);
|
||
|
||
return BulletScreenComponent;
|
||
}();
|
||
|
||
exports.default = BulletScreenComponent;
|
||
|
||
/***/ }),
|
||
/* 19 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"bullet-screen paused\"></div>";
|
||
|
||
/***/ }),
|
||
/* 20 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(21);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 21 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".bullet-screen {\n position: absolute;\n white-space: nowrap;\n animation: bullet 10s linear infinite; }\n\n@keyframes bullet {\n from {\n left: 100%; }\n to {\n left: 0%;\n transform: translateX(-100%); } }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 22 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(23);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.CaptionComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 23 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||
|
||
var _index = __webpack_require__(24);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
var _captionModal = __webpack_require__(25);
|
||
|
||
var _captionModal2 = _interopRequireDefault(_captionModal);
|
||
|
||
__webpack_require__(26);
|
||
|
||
var _utils = __webpack_require__(2);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
||
/**
|
||
* 字幕组件
|
||
*/
|
||
var CaptionComponent = function () {
|
||
/**
|
||
* @constructor 字幕组件构造函数
|
||
*/
|
||
|
||
function CaptionComponent() {
|
||
_classCallCheck(this, CaptionComponent);
|
||
|
||
this.captionList = null;
|
||
this.html = (0, _utils.parseDom)(_index2.default);
|
||
this.modalHtml = (0, _utils.parseDom)(_captionModal2.default);
|
||
this.hasCreated = false;
|
||
this.definition = '';
|
||
}
|
||
|
||
_createClass(CaptionComponent, [{
|
||
key: 'createEl',
|
||
value: function createEl(el, player) {
|
||
var _this = this;
|
||
|
||
var lang = player._options && player._options.language;
|
||
this.isEn = lang && lang === 'en-us';
|
||
//this.html.querySelector('.current-caption').innerText = this.isEn ? 'Subtitle language' : '字幕语言'
|
||
this.modalHtml.querySelector('.switchimg').innerText = this.isEn ? 'Switching to you for' : '字幕切换到';
|
||
this.modalHtml.querySelector('.switchimg').style.display = 'none';
|
||
var eleControlbar = el.querySelector('.prism-controlbar');
|
||
eleControlbar.appendChild(this.html);
|
||
el.appendChild(this.modalHtml);
|
||
player.on('textTrackReady', function (_ref) {
|
||
var paramData = _ref.paramData;
|
||
|
||
_this.captionList = paramData;
|
||
var lis_ele = paramData.map(function (v) {
|
||
return '<li data-def="' + v.value + '">' + v.text + '</li>';
|
||
});
|
||
_this.html.querySelector('.caption-list').innerHTML = '<li style="background:rgba(88,87,86,.5);color:#fff">\u5B57\u5E55</li>' + lis_ele.join('');
|
||
});
|
||
var currentCaptionEle = this.html.querySelector('.current-caption');
|
||
var captionListEle = this.html.querySelector('.caption-list');
|
||
|
||
if (this.hasCreated == false && this.definition) {
|
||
var li_target = captionListEle.querySelector('li[data-def="' + this.definition + '"]');
|
||
li_target.className = 'current';
|
||
}
|
||
this.hasCreated = true;
|
||
|
||
var timeId = null;
|
||
currentCaptionEle.onclick = function () {
|
||
captionListEle.style.display = 'block';
|
||
};
|
||
|
||
currentCaptionEle.onmouseleave = function () {
|
||
timeId = setTimeout(function () {
|
||
captionListEle.style.display = 'none';
|
||
}, 100);
|
||
};
|
||
|
||
captionListEle.onmouseenter = function () {
|
||
clearTimeout(timeId);
|
||
};
|
||
captionListEle.onmouseleave = function () {
|
||
captionListEle.style.display = 'none';
|
||
// this.html.querySelector('.caption-modal').style.display = 'none'
|
||
_this.modalHtml.style.display = 'none';
|
||
};
|
||
|
||
captionListEle.onclick = function (_ref2) {
|
||
var target = _ref2.target;
|
||
|
||
var definition = target.dataset.def;
|
||
if (definition) {
|
||
if (target.className !== 'current') {
|
||
var caption = Array.isArray(_this.captionList) ? _this.captionList.filter(function (v) {
|
||
return v.value === definition;
|
||
})[0] : _this.captionList.find(function (v) {
|
||
return v.value === definition;
|
||
});
|
||
|
||
player._ccService.switch(caption.value);
|
||
_this.setCurrentCaption(caption.text, caption.value);
|
||
_this.modalHtml.style.display = 'block';
|
||
_this.modalHtml.querySelector('.switchimg').style.display = 'block';
|
||
_this.modalHtml.querySelector('span.current-caption-tag').innerText = caption.text;
|
||
}
|
||
}
|
||
};
|
||
}
|
||
}, {
|
||
key: 'setCurrentCaption',
|
||
value: function setCurrentCaption(caption, def) {
|
||
var currentCaption = this.html.querySelector('.current-caption');
|
||
currentCaption.innerText = caption;
|
||
currentCaption.dataset.def = def;
|
||
this.definition = def;
|
||
|
||
var captionListEle = this.html.querySelector('.caption-list');
|
||
var currentEle = captionListEle.querySelector('.current');
|
||
if (currentEle) {
|
||
currentEle.className = '';
|
||
}
|
||
//let li_target = captionListEle.querySelector(`li[data-def="${def}"]`)
|
||
var lis = captionListEle.querySelectorAll('li');
|
||
lis.forEach(function (element) {
|
||
var text = element.innerText;
|
||
if (text === caption) {
|
||
element.className = 'current';
|
||
}
|
||
});
|
||
if (lis) {
|
||
lis.className = 'current';
|
||
}
|
||
}
|
||
}, {
|
||
key: 'created',
|
||
value: function created(player) {}
|
||
}, {
|
||
key: 'ready',
|
||
value: function ready(player) {
|
||
this.modalHtml.style.display = 'none';
|
||
// 隐藏设置里面的倍速播放
|
||
var settingEle = document.querySelector('.prism-setting-item.prism-setting-cc');
|
||
if (settingEle) {
|
||
settingEle.classList.add('player-hidden');
|
||
}
|
||
}
|
||
}]);
|
||
|
||
return CaptionComponent;
|
||
}();
|
||
|
||
exports.default = CaptionComponent;
|
||
|
||
/***/ }),
|
||
/* 24 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"caption-components\">\n <div class=\"current-caption\" data-ref=\"\"></div>\n <ul class=\"caption-list\">\n </ul>\n </div>";
|
||
|
||
/***/ }),
|
||
/* 25 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"caption-modal prism-info-display prism-info-left-bottom\">\n <span class=\"switchimg\"></span> <span class=\"current-caption-tag\"></span>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 26 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(27);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 27 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".player-hidden {\n display: none !important; }\n\n.caption-components {\n float: right;\n color: #fff;\n height: 35px;\n position: relative;\n box-sizing: border-box;\n margin-top: 5px; }\n\n.current-caption {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n width: 100px;\n cursor: pointer; }\n\n.caption-list {\n position: absolute;\n bottom: 46px;\n display: none;\n padding: 0;\n margin: 0;\n list-style: none;\n height: 150px;\n width: 100px;\n overflow-y: scroll; }\n .caption-list li {\n text-align: center;\n width: 100px;\n line-height: 30px;\n background-color: rgba(0, 0, 0, 0.6);\n cursor: pointer; }\n .caption-list li.current {\n color: #00c1de; }\n .caption-list li + li {\n border-top: 1px solid rgba(78, 78, 78, 0.3); }\n .caption-list li:hover {\n background-color: rgba(0, 0, 0, 0.5); }\n\n@media (max-width: 768px) {\n .current-caption {\n width: 40px; }\n .caption-list li {\n width: 43px; } }\n\n.prism-player .prism-info-display .switchimg {\n color: #fff; }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 28 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(29);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.ManyVideoADComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 29 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||
|
||
var _index = __webpack_require__(30);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
__webpack_require__(31);
|
||
|
||
var _utils = __webpack_require__(2);
|
||
|
||
var _mbIndex = __webpack_require__(33);
|
||
|
||
var _mbIndex2 = _interopRequireDefault(_mbIndex);
|
||
|
||
var _currentDevice = __webpack_require__(3);
|
||
|
||
var _currentDevice2 = _interopRequireDefault(_currentDevice);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
||
/*
|
||
* PC 多视频广告组件
|
||
*/
|
||
var ManyVideoAdComponent = function () {
|
||
/**
|
||
* @constructor PC 多视频广告的构造函数
|
||
* @param adVideoSource {@String 广告视频的视频地址 必须参数}
|
||
* @param adLink {@String 广告视频的链接地址 必须参数}
|
||
* @param adCloseFunction {@Function 关闭广告的点击事件处理函数, 可选参数, 不传则默认关闭广告视频}
|
||
* @param closeText {@String 关闭广告的文字内容, 可选参数, 不传则默认为 '关闭广告'}
|
||
*/
|
||
|
||
function ManyVideoAdComponent(adVideoSource, adCloseFunction) {
|
||
var closeText = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '关闭广告';
|
||
|
||
_classCallCheck(this, ManyVideoAdComponent);
|
||
|
||
this.adVideoSource = adVideoSource;
|
||
this.html = (0, _utils.parseDom)(_index2.default);
|
||
this.adInterval = null;
|
||
this.adCloseFunction = adCloseFunction;
|
||
this.html.querySelector('.many-video-ad-close-text').innerText = closeText;
|
||
this.adDuration = null; // 视频广告的时长, 用于倒计时,
|
||
this.player = null;
|
||
this.indexVideo = 1; //给广告视频标号
|
||
}
|
||
|
||
_createClass(ManyVideoAdComponent, [{
|
||
key: 'createEl',
|
||
value: function createEl(el, player) {
|
||
var lang = player._options && player._options.language;
|
||
this.isEn = lang && lang === 'en-us';
|
||
this.html.querySelector('.many-video-ad-detail').innerText = this.isEn ? 'For more information' : '查看广告详情';
|
||
this.html.querySelector('.limit').innerText = this.isEn ? 'Your browser limits autoplay' : '您的浏览器限制';
|
||
this.html.querySelector('.manual').innerText = this.isEn ? 'Please Click' : '自动播放请点击';
|
||
el.appendChild(this.html);
|
||
}
|
||
}, {
|
||
key: 'created',
|
||
value: function created(player) {
|
||
//添加video
|
||
var videos = this.adVideoSource.map(function (url, index) {
|
||
return '<video id="many-video-ad-content' + (index + 1) + '" style="' + (index === 0 ? 'display: block' : 'display:none') + ';width:100%;height:100%" x5-video-player-type="h5" x5-video-player-fullscreen="false" src="' + url.adVideo + '"></video>';
|
||
});
|
||
this.html.querySelector('.videos').innerHTML = videos.join(' ');
|
||
|
||
this.indexVideo = Number(this.indexVideo);
|
||
var indexVideo_ = this.indexVideo;
|
||
var adVideoSource_ = this.adVideoSource;
|
||
var manyVideoAd_ele = this.html.querySelector('#many-video-ad-content' + this.indexVideo);
|
||
var videoAdDetak = this.html.querySelector('.many-video-ad-detail');
|
||
var adDuration_ele = this.html.querySelector('#many-video-ad-duration');
|
||
var self = this;
|
||
function getManyVideoAdTime() {
|
||
manyVideoAd_ele.removeEventListener('canplay', getManyVideoAdTime);
|
||
videoAdDetak.href = adVideoSource_[indexVideo_ - 1].adVideoLink;
|
||
manyVideoAd_ele.play().then(function () {
|
||
var duration = Math.ceil(manyVideoAd_ele.duration);
|
||
adDuration_ele.innerText = duration;
|
||
self.setAdInterval();
|
||
}).catch(function (err) {
|
||
self.html.querySelector('.autoplay-many-video-ad').style.display = 'block';
|
||
self.html.querySelector('.icon-player-play').onclick = function () {
|
||
self.playManyVideoAd();
|
||
self.html.querySelector('.autoplay-many-video-ad').style.display = 'none';
|
||
};
|
||
});
|
||
}
|
||
//对浏览器会限制,有时会自动播放失败的判断
|
||
var promise = manyVideoAd_ele.play();
|
||
if (promise !== undefined) {
|
||
promise.then(function () {
|
||
manyVideoAd_ele.play(); //播放广告
|
||
}).catch(function (error) {
|
||
document.querySelector('.autoplay-many-video-ad').style.display = 'block';
|
||
manyVideoAd_ele.oncanplay = function () {
|
||
var ad_time = Math.ceil(manyVideoAd_ele.duration);
|
||
document.querySelector('#many-video-ad-duration').innerText = ad_time;
|
||
};
|
||
});
|
||
}
|
||
manyVideoAd_ele.addEventListener('canplay', getManyVideoAdTime);
|
||
}
|
||
}, {
|
||
key: 'ready',
|
||
value: function ready(player, e) {
|
||
var _this = this;
|
||
|
||
this.indexVideo = Number(this.indexVideo);
|
||
var manyVideoAd_ele = this.html.querySelector('#many-video-ad-content' + this.indexVideo);
|
||
var self = this;
|
||
manyVideoAd_ele.addEventListener('ended', function (event) {
|
||
// self.html.querySelector('.many-video-ad-detail').href=self.adVideoSource[self.indexVideo].adVideoLink
|
||
var flag = self.playNext(self);
|
||
if (flag == '-1') {
|
||
player.play();
|
||
}
|
||
});
|
||
this.html.querySelector('.many-video-ad-close label').onclick = function () {
|
||
if (typeof _this.adCloseFunction === 'function') {
|
||
_this.adCloseFunction(_this);
|
||
} else {
|
||
_this.closeManyVideoAd();
|
||
}
|
||
};
|
||
}
|
||
|
||
// 视频广告倒计时
|
||
|
||
}, {
|
||
key: 'setAdInterval',
|
||
value: function setAdInterval(index) {
|
||
var _this2 = this;
|
||
|
||
var adDuration_ele = this.html.querySelector('#many-video-ad-duration');
|
||
var manyVideoAd_ele = this.html.querySelector('#many-video-ad-content' + this.indexVideo);
|
||
this.adInterval = setInterval(function () {
|
||
var duration = Math.ceil(manyVideoAd_ele.duration);
|
||
var currentTime = Math.ceil(manyVideoAd_ele.currentTime);
|
||
var time = duration - currentTime;
|
||
adDuration_ele.innerText = time;
|
||
if (time == 1) {
|
||
clearInterval(_this2.adInterval);
|
||
}
|
||
}, 1000);
|
||
}
|
||
|
||
// 暂停视频广告
|
||
|
||
}, {
|
||
key: 'pauseManyVideoAd',
|
||
value: function pauseManyVideoAd() {
|
||
this.clearAdInterval();
|
||
this.html.querySelector('#many-video-ad-content' + this.indexVideo).pause();
|
||
}
|
||
|
||
// 播放视频广告
|
||
|
||
}, {
|
||
key: 'playManyVideoAd',
|
||
value: function playManyVideoAd() {
|
||
this.setAdInterval();
|
||
this.html.querySelector('#many-video-ad-content' + this.indexVideo).play();
|
||
}
|
||
|
||
// 清除视频广告倒计时
|
||
|
||
}, {
|
||
key: 'clearAdInterval',
|
||
value: function clearAdInterval() {
|
||
this.adInterval !== null && clearInterval(this.adInterval);
|
||
this.adInterval = null;
|
||
}
|
||
|
||
// 关闭当前广告并播放下一个视频
|
||
|
||
}, {
|
||
key: 'playNext',
|
||
value: function playNext(self) {
|
||
if (self.indexVideo >= self.adVideoSource.length) {
|
||
self.html.parentNode.removeChild(self.html);
|
||
return -1;
|
||
}
|
||
this.indexVideo = Number(this.indexVideo);
|
||
if (document.getElementById('many-video-ad-content' + this.indexVideo) != null) {
|
||
document.getElementById('many-video-ad-content' + this.indexVideo).remove();
|
||
}
|
||
|
||
var indexVideo_ = this.indexVideo + 1;
|
||
self.html.querySelector('.many-video-ad-detail').href = self.adVideoSource[self.indexVideo].adVideoLink;
|
||
var manyVideoAd_ele = this.html.querySelector('#many-video-ad-content' + indexVideo_);
|
||
var adDuration_ele = this.html.querySelector('#many-video-ad-duration');
|
||
manyVideoAd_ele.style.display = 'block';
|
||
if (this.adVideoSource.length >= this.indexVideo) {
|
||
this.indexVideo = this.indexVideo + 1;
|
||
}
|
||
|
||
var duration = Math.ceil(manyVideoAd_ele.duration);
|
||
adDuration_ele.innerText = duration;
|
||
self.setAdInterval();
|
||
manyVideoAd_ele.play();
|
||
|
||
manyVideoAd_ele.addEventListener('ended', function (event) {
|
||
var flag = self.playNext(self);
|
||
//广告结束之后自动播放主视频
|
||
if (flag == '-1') {
|
||
document.getElementById(player._options.id).getElementsByTagName('video')[0].play();
|
||
}
|
||
});
|
||
}
|
||
|
||
// 关闭视频广告
|
||
|
||
}, {
|
||
key: 'closeManyVideoAd',
|
||
value: function closeManyVideoAd() {
|
||
this.clearAdInterval();
|
||
this.html.parentNode.removeChild(this.html);
|
||
this.html = null;
|
||
//广告结束之后自动播放主视频
|
||
document.getElementById(player._options.id).getElementsByTagName('video')[0].play();
|
||
}
|
||
}]);
|
||
|
||
return ManyVideoAdComponent;
|
||
}();
|
||
|
||
/**
|
||
* 移动端多视频广告组件
|
||
*/
|
||
|
||
|
||
var MbManyVideoAdComponent = function () {
|
||
/**
|
||
* @constructor 移动端多视频广告组件
|
||
* @param {String adVideoSource 视频广告播放地址}
|
||
* @param {String adLink 广告链接}
|
||
* @param {Function adCloseFunction 关闭广告按钮点击出发的函数}
|
||
* @param {String closeText 可选参数 关闭按钮中的文字, 默认为 '关闭广告'}
|
||
*/
|
||
function MbManyVideoAdComponent(adVideoSource, adCloseFunction) {
|
||
var closeText = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '关闭广告';
|
||
|
||
_classCallCheck(this, MbManyVideoAdComponent);
|
||
|
||
this.adVideoSource = adVideoSource;
|
||
this.html = (0, _utils.parseDom)(_mbIndex2.default);
|
||
this.adInterval = null;
|
||
this.adCloseFunction = adCloseFunction;
|
||
this.html.querySelector('.many-video-ad-close-text').innerText = closeText;
|
||
this.adDuration = null; // 视频广告的时长, 用于倒计时,
|
||
this.player = null;
|
||
this.indexVideo = 1; //给广告视频标号
|
||
}
|
||
|
||
_createClass(MbManyVideoAdComponent, [{
|
||
key: 'createEl',
|
||
value: function createEl(el, player) {
|
||
var _this3 = this;
|
||
|
||
var lang = player._options && player._options.language;
|
||
this.isEn = lang && lang === 'en-us';
|
||
this.html.querySelector('.many-video-ad-detail').innerText = this.isEn ? 'For more information' : '查看广告详情';
|
||
this.html.querySelector('.limit').innerText = this.isEn ? 'Your browser limits autoplay' : '您的浏览器限制';
|
||
this.html.querySelector('.manual').innerText = this.isEn ? 'Please Click' : '自动播放请点击';
|
||
el.appendChild(this.html);
|
||
el.querySelector('.videosmb');
|
||
el.querySelector('.videosmb').setAttribute('preload', 'load');
|
||
|
||
// 隐藏 controlbar
|
||
var controlBar = el.querySelector('.prism-controlbar');
|
||
controlBar.className = controlBar.className + ' controlbar-element-hidden';
|
||
|
||
this.html.querySelector('.icon-player-play').onclick = function () {
|
||
_this3.playManyVideoAd();
|
||
_this3.html.querySelector('.autoplay-many-video-ad').style.display = 'none';
|
||
};
|
||
}
|
||
}, {
|
||
key: 'created',
|
||
value: function created(player) {
|
||
//添加video
|
||
var videos = this.adVideoSource.map(function (url, index) {
|
||
return '<video id="many-video-ad-content' + (index + 1) + '" style="' + (index === 0 ? 'display: block' : 'display:none') + ';width:100%;height:100%" x5-video-player-type="h5" x5-video-player-fullscreen="false" src="' + url.adVideo + '"></video>';
|
||
});
|
||
this.html.querySelector('.videosmb').innerHTML = videos.join(' ');
|
||
|
||
this.indexVideo = Number(this.indexVideo);
|
||
var indexVideo_ = this.indexVideo;
|
||
var adVideoSource_ = this.adVideoSource;
|
||
var manyVideoAd_ele = this.html.querySelector('#many-video-ad-content' + this.indexVideo);
|
||
var videoAdDetak = this.html.querySelector('.many-video-ad-detail');
|
||
var self = this;
|
||
function getManyVideoAdTime() {
|
||
manyVideoAd_ele.removeEventListener('canplay', getManyVideoAdTime);
|
||
videoAdDetak.href = adVideoSource_[indexVideo_ - 1].adVideoLink;
|
||
self.html.querySelector('#many-video-ad-duration').innerText = Math.ceil(manyVideoAd_ele.duration);
|
||
}
|
||
manyVideoAd_ele.addEventListener('canplay', getManyVideoAdTime);
|
||
}
|
||
}, {
|
||
key: 'ready',
|
||
value: function ready(player) {
|
||
var _this4 = this;
|
||
|
||
this.indexVideo = Number(this.indexVideo);
|
||
var manyVideoAd_ele = this.html.querySelector('#many-video-ad-content' + this.indexVideo);
|
||
var self = this;
|
||
manyVideoAd_ele.addEventListener('ended', function (event) {
|
||
var flag = self.playNext(self);
|
||
if (flag == '-1') {
|
||
player.play();
|
||
var controlBar = document.querySelector('.prism-controlbar');
|
||
controlBar.className = controlBar.className.replace(' controlbar-element-hidden', '');
|
||
}
|
||
});
|
||
this.html.querySelector('.many-video-ad-close label').onclick = function () {
|
||
if (typeof _this4.adCloseFunction === 'function') {
|
||
_this4.adCloseFunction(_this4);
|
||
} else {
|
||
_this4.closeManyVideoAd();
|
||
}
|
||
};
|
||
}
|
||
// 视频广告倒计时
|
||
|
||
}, {
|
||
key: 'setAdInterval',
|
||
value: function setAdInterval() {
|
||
var _this5 = this;
|
||
|
||
var adDuration_ele = this.html.querySelector('#many-video-ad-duration');
|
||
var manyVideoAd_ele = this.html.querySelector('#many-video-ad-content' + this.indexVideo);
|
||
this.adInterval = setInterval(function () {
|
||
var duration = Math.ceil(manyVideoAd_ele.duration);
|
||
var currentTime = Math.ceil(manyVideoAd_ele.currentTime);
|
||
var time = duration - currentTime;
|
||
adDuration_ele.innerText = time;
|
||
if (time == 1) {
|
||
clearInterval(_this5.adInterval);
|
||
}
|
||
}, 1000);
|
||
}
|
||
|
||
// 关闭视频广告
|
||
|
||
}, {
|
||
key: 'closeManyVideoAd',
|
||
value: function closeManyVideoAd() {
|
||
this.clearAdInterval();
|
||
var controlBar = this.html.parentNode.querySelector('.prism-controlbar');
|
||
controlBar.className = controlBar.className.replace(' controlbar-element-hidden', '');
|
||
this.html.parentNode.removeChild(this.html);
|
||
this.html = null;
|
||
//广告结束之后自动播放主视频
|
||
document.getElementById(player._options.id).getElementsByTagName('video')[0].play();
|
||
}
|
||
|
||
// 清除视频广告倒计时
|
||
|
||
}, {
|
||
key: 'clearAdInterval',
|
||
value: function clearAdInterval() {
|
||
this.adInterval !== null && clearInterval(this.adInterval);
|
||
this.adInterval = null;
|
||
}
|
||
|
||
// 播放视频广告
|
||
|
||
}, {
|
||
key: 'playManyVideoAd',
|
||
value: function playManyVideoAd() {
|
||
this.setAdInterval();
|
||
this.html.querySelector('#many-video-ad-content' + this.indexVideo).play();
|
||
}
|
||
|
||
// 暂停视频广告
|
||
|
||
}, {
|
||
key: 'pauseManyVideoAd',
|
||
value: function pauseManyVideoAd() {
|
||
this.clearAdInterval();
|
||
this.html.querySelector('#many-video-ad-content' + this.indexVideo).pause();
|
||
}
|
||
|
||
// 关闭当前广告并播放下一个视频
|
||
|
||
}, {
|
||
key: 'playNext',
|
||
value: function playNext(self) {
|
||
if (self.indexVideo >= self.adVideoSource.length) {
|
||
self.html.parentNode.removeChild(self.html);
|
||
return -1;
|
||
}
|
||
this.indexVideo = Number(this.indexVideo);
|
||
if (document.getElementById('many-video-ad-content' + this.indexVideo) != null) {
|
||
document.getElementById('many-video-ad-content' + this.indexVideo).remove();
|
||
}
|
||
|
||
var indexVideo_ = this.indexVideo + 1;
|
||
self.html.querySelector('.many-video-ad-detail').href = self.adVideoSource[self.indexVideo].adVideoLink;
|
||
var manyVideoAd_ele = this.html.querySelector('#many-video-ad-content' + indexVideo_);
|
||
var adDuration_ele = this.html.querySelector('#many-video-ad-duration');
|
||
manyVideoAd_ele.style.display = 'block';
|
||
if (this.adVideoSource.length >= this.indexVideo) {
|
||
this.indexVideo = this.indexVideo + 1;
|
||
}
|
||
|
||
var duration = Math.ceil(manyVideoAd_ele.duration);
|
||
adDuration_ele.innerText = duration;
|
||
self.setAdInterval();
|
||
manyVideoAd_ele.play();
|
||
manyVideoAd_ele.addEventListener('ended', function (event) {
|
||
var flag = self.playNext(self);
|
||
//广告结束之后自动播放主视频
|
||
if (flag == '-1') {
|
||
document.getElementById(player._options.id).getElementsByTagName('video')[0].play();
|
||
var controlBar = document.querySelector('.prism-controlbar');
|
||
controlBar.className = controlBar.className.replace(' controlbar-element-hidden', '');
|
||
}
|
||
});
|
||
}
|
||
}]);
|
||
|
||
return MbManyVideoAdComponent;
|
||
}();
|
||
|
||
var defaultComponent = ManyVideoAdComponent;
|
||
|
||
if (_currentDevice2.default.mobile()) {
|
||
defaultComponent = MbManyVideoAdComponent;
|
||
}
|
||
|
||
exports.default = defaultComponent;
|
||
|
||
/***/ }),
|
||
/* 30 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"many-video-ad-component\">\n <div class=\"videos\">\n <!-- <video id=\"many-video-ad-content1\" class=\"test\" style=\"display: block\" x5-video-player-type=\"h5\" x5-video-player-fullscreen=\"false\" src=\"https://alivc-demo-cms.alicdn.com/video/videoAD.mp4\"></video>\n <video id=\"many-video-ad-content2\" class=\"test\" style=\"display: none\" x5-video-player-type=\"h5\" x5-video-player-fullscreen=\"false\" src=\"https://player.alicdn.com/resource/player/qupai.mp4\"></video>\n <video id=\"many-video-ad-content3\" class=\"test\" style=\"display: none\" x5-video-player-type=\"h5\" x5-video-player-fullscreen=\"false\" src=\"https://player.alicdn.com/video/guanggao.mp4\"></video> -->\n </div>\n <a class=\"many-video-ad-link\" target=\"_blank\"></a>\n <div class=\"many-video-ad-close\">\n <span id=\"many-video-ad-duration\"></span>\n <label>\n <span class=\"many-video-ad-close-text\"></span>\n <i class=\"iconfont icon-close\"></i>\n </label>\n </div>\n <a class=\"many-video-ad-detail\" target=\"_blank\">查看详情</a>\n <div class=\"autoplay-many-video-ad\">\n <i class=\"iconfont icon-player-play\"></i>\n <span class=\"limit\"></span>\n <span class=\"manual\"></span>\n </div>\n <!-- <div id=\"loadflag\" class=\"prism-loading center\">\n <div class=\"circle\"></div> \n <div class=\"circle1\"></div>\n </div> -->\n</div>";
|
||
|
||
/***/ }),
|
||
/* 31 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(32);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 32 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".many-video-ad-component {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 2147483647;\n background-color: #000;\n font-size: 12px; }\n .many-video-ad-component #many-video-ad-content {\n width: 100%;\n height: 100%; }\n .many-video-ad-component .many-video-ad-link {\n width: 100%;\n height: 100%;\n display: block;\n position: absolute;\n top: 0;\n left: 0; }\n .many-video-ad-component .many-video-ad-close {\n background-color: rgba(59, 59, 59, 0.85);\n position: absolute;\n top: 15px;\n right: 20px;\n color: #fff;\n line-height: 26px;\n padding: 0 10px;\n user-select: none; }\n .many-video-ad-component .many-video-ad-close #many-video-ad-duration {\n color: #00c1de;\n vertical-align: top;\n font-size: 14px;\n position: relative;\n display: inline-block;\n text-align: right; }\n .many-video-ad-component .many-video-ad-close #many-video-ad-duration::after {\n background-color: #fff;\n position: absolute;\n content: '';\n right: -7px;\n top: 8px;\n bottom: 8px;\n width: 1px; }\n .many-video-ad-component .many-video-ad-close label {\n cursor: pointer;\n display: inline-block; }\n .many-video-ad-component .many-video-ad-close .icon-close {\n font-size: 12px;\n vertical-align: top; }\n @media (min-width: 768px) {\n .many-video-ad-component .many-video-ad-close .icon-close:hover {\n color: #00c1de; } }\n .many-video-ad-component .many-video-ad-close .many-video-ad-close-text {\n padding: 0 5px 0 10px; }\n .many-video-ad-component .many-video-ad-detail {\n position: absolute;\n right: 35px;\n bottom: 30px;\n background-color: rgba(0, 222, 255, 0.85);\n color: #fff;\n padding: 8px 12px;\n user-select: none;\n cursor: pointer;\n transition: background-color .15s; }\n @media (min-width: 768px) {\n .many-video-ad-component .many-video-ad-detail:hover {\n background-color: #00deff; } }\n .many-video-ad-component .autoplay-many-video-ad {\n position: absolute;\n color: #fff;\n top: 50%;\n left: 50%;\n text-align: center;\n padding: 10px;\n border-radius: 5px;\n background-color: rgba(144, 147, 153, 0.85);\n transform: translate(-50%, -50%);\n display: none; }\n .many-video-ad-component .autoplay-many-video-ad i {\n font-size: 42px;\n margin-bottom: 7px;\n display: inline-block;\n cursor: pointer; }\n .many-video-ad-component .autoplay-many-video-ad i + span {\n margin-bottom: 5px; }\n .many-video-ad-component .autoplay-many-video-ad span {\n display: block; }\n\n.controlbar-element-hidden {\n display: none !important; }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 33 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"many-video-ad-component\" style=\"background-color: transparent;\">\n <div class=\"videosmb\"></div>\n <a class=\"many-video-ad-link\" target=\"_blank\"></a>\n <div class=\"many-video-ad-close\">\n <span id=\"many-video-ad-duration\"></span>\n <label>\n <span class=\"many-video-ad-close-text\"></span>\n <i class=\"iconfont icon-close\"></i>\n </label>\n </div>\n <a class=\"many-video-ad-detail\" target=\"_blank\"></a>\n <div class=\"autoplay-many-video-ad\" style=\"display: block;\">\n <i class=\"iconfont icon-player-play\"></i>\n <span class=\"limit\"></span>\n <span class=\"manual\"></span>\n </div>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 34 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(35);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.MemoryPlayComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 35 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||
|
||
var _index = __webpack_require__(36);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
__webpack_require__(37);
|
||
|
||
var _utils = __webpack_require__(2);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
||
/**
|
||
* 记忆播放组件
|
||
*/
|
||
var MemoryPlayComponent = function () {
|
||
/**
|
||
* @constructor 记忆播放组件构造函数
|
||
*/
|
||
function MemoryPlayComponent() {
|
||
var autoPlay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
||
var getTime = arguments[1];
|
||
var saveTimeFunction = arguments[2];
|
||
|
||
_classCallCheck(this, MemoryPlayComponent);
|
||
|
||
this.html = (0, _utils.parseDom)(_index2.default);
|
||
this.autoPlay = autoPlay;
|
||
this.getTime = getTime || this._getTime;
|
||
this.saveTimeFunction = saveTimeFunction || this._saveTime;
|
||
this.hasMemoryDisplay = false;
|
||
}
|
||
|
||
_createClass(MemoryPlayComponent, [{
|
||
key: 'createEl',
|
||
value: function createEl(el) {
|
||
el.appendChild(this.html);
|
||
}
|
||
}, {
|
||
key: 'ready',
|
||
value: function ready(player, e) {
|
||
var _this = this;
|
||
|
||
var playerOptions = player.getOptions();
|
||
var memoryVideo = playerOptions.vid || playerOptions.source.replace(/\?.*$/, ''); // 根据视频 vid 或者 source 去存储 localeStorage
|
||
var memoryTime = this.getTime(memoryVideo);
|
||
memoryTime = memoryTime ? parseInt(memoryTime) : 0;
|
||
if (memoryTime !== null && memoryTime !== 0 && !this.hasMemoryDisplay) {
|
||
// 标识记忆播放是否有触发, 解决清晰度切换也会触发记忆播放的问题
|
||
this.hasMemoryDisplay = true;
|
||
if (this.autoPlay) {
|
||
player.seek(memoryTime);
|
||
if (player.getStatus() !== 'playing') {
|
||
player.play();
|
||
}
|
||
} else {
|
||
var memoryVideoTime = this.getVideoTime(memoryTime);
|
||
//判断是否是视频播放完了,如果没到,就有拼接的跳转播放
|
||
if (memoryTime !== parseInt(player._duration)) {
|
||
var memoryDomString = '<div class="memory-play">\n <i class="iconfont icon-close"></i>\n <span>\u4E0A\u6B21\u770B\u5230</span>\n <span>' + memoryVideoTime + '</span>\n <span class="play-jump">\u8DF3\u8F6C\u64AD\u653E</span>\n </div>';
|
||
this.html.innerHTML = memoryDomString;
|
||
var timeoutMemory = setTimeout(function () {
|
||
_this.html.innerHTML = '';
|
||
}, 15000);
|
||
this.html.querySelector('.icon-close').onclick = function () {
|
||
_this.html.innerHTML = '';
|
||
clearTimeout(timeoutMemory);
|
||
};
|
||
this.html.querySelector('.play-jump').onclick = function () {
|
||
player.seek(memoryTime);
|
||
if (player.getStatus() !== 'playing') {
|
||
player.play();
|
||
}
|
||
_this.html.innerHTML = '';
|
||
clearTimeout(timeoutMemory);
|
||
};
|
||
}
|
||
}
|
||
}
|
||
|
||
document.onvisibilitychange = function () {
|
||
if (document.visibilityState === 'hidden' && player.getCurrentTime() !== 0) {
|
||
_this.saveTimeFunction(memoryVideo, player.getCurrentTime());
|
||
console.log(play);
|
||
}
|
||
};
|
||
|
||
window.onbeforeunload = function () {
|
||
if (player.getCurrentTime() !== 0) {
|
||
_this.saveTimeFunction(memoryVideo, player.getCurrentTime());
|
||
}
|
||
};
|
||
}
|
||
}, {
|
||
key: 'error',
|
||
value: function error(player, e) {
|
||
this.setMemory(player);
|
||
}
|
||
}, {
|
||
key: 'dispose',
|
||
value: function dispose(player, e) {
|
||
this.setMemory(player);
|
||
}
|
||
}, {
|
||
key: 'setMemory',
|
||
value: function setMemory(player) {
|
||
var playerOptions = player.getOptions();
|
||
var memoryVideo = playerOptions.vid || playerOptions.source.replace(/\?.*$/, '');
|
||
this.saveTimeFunction(memoryVideo, player.getCurrentTime());
|
||
}
|
||
}, {
|
||
key: 'getVideoTime',
|
||
value: function getVideoTime(duration) {
|
||
var secondTotal = Math.round(duration);
|
||
|
||
var hour = Math.floor(secondTotal / 3600);
|
||
var minute = Math.floor((secondTotal - hour * 3600) / 60);
|
||
|
||
var second = secondTotal - hour * 3600 - minute * 60;
|
||
|
||
if (minute < 10) {
|
||
minute = '0' + minute;
|
||
}
|
||
if (second < 10) {
|
||
second = '0' + second;
|
||
}
|
||
return hour === 0 ? minute + ':' + second : hour + ':' + minute + ':' + second;
|
||
}
|
||
}, {
|
||
key: '_getTime',
|
||
value: function _getTime(memoryVideo) {
|
||
return localStorage.getItem(memoryVideo);
|
||
}
|
||
}, {
|
||
key: '_saveTime',
|
||
value: function _saveTime(memoryVideo, currentTime) {
|
||
localStorage.setItem(memoryVideo, currentTime);
|
||
}
|
||
}]);
|
||
|
||
return MemoryPlayComponent;
|
||
}();
|
||
|
||
exports.default = MemoryPlayComponent;
|
||
|
||
/***/ }),
|
||
/* 36 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"memory-play-wrap\"></div>";
|
||
|
||
/***/ }),
|
||
/* 37 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(38);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 38 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".memory-play-wrap {\n position: absolute;\n right: 10px;\n bottom: 55px; }\n .memory-play-wrap .memory-play {\n padding: 13px 20px;\n background-color: #191919;\n background-color: rgba(25, 25, 25, 0.88);\n border-radius: 4px;\n color: #fff;\n font-size: 14px;\n user-select: none; }\n .memory-play-wrap .memory-play .icon-close {\n transition: color .3s;\n font-size: 14px;\n cursor: pointer; }\n @media (min-width: 768px) {\n .memory-play-wrap .memory-play .icon-close:hover {\n color: #00c1de; } }\n .memory-play-wrap .memory-play .play-jump {\n color: #00c1de;\n padding: 5px;\n border-radius: 3px;\n cursor: pointer; }\n @media (min-width: 768px) {\n .memory-play-wrap .memory-play .play-jump:hover {\n background-color: rgba(255, 255, 255, 0.2); } }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 39 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(40);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.PauseADComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 40 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||
|
||
var _index = __webpack_require__(41);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
__webpack_require__(42);
|
||
|
||
var _utils = __webpack_require__(2);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
||
/**
|
||
* 暂停图片广告组件
|
||
*/
|
||
var PauseADComponent = function () {
|
||
/**
|
||
* @constructor 暂停图片广告组件构造函数
|
||
* @param {String coverUrl 封面图片地址}
|
||
* @param {String adUrl 广告地址}
|
||
*/
|
||
function PauseADComponent(coverUrl, adUrl) {
|
||
_classCallCheck(this, PauseADComponent);
|
||
|
||
this.coverUrl = coverUrl;
|
||
this.adUrl = adUrl;
|
||
this.html = (0, _utils.parseDom)(_index2.default);
|
||
}
|
||
|
||
_createClass(PauseADComponent, [{
|
||
key: 'createEl',
|
||
value: function createEl(el, player) {
|
||
var _this = this;
|
||
|
||
var lang = player._options && player._options.language;
|
||
this.isEn = lang && lang === 'en-us';
|
||
this.html.querySelector('.ad-text').innerText = this.isEn ? 'Ad' : '广告';
|
||
|
||
var adContent = this.html.querySelector('.ad-content');
|
||
var adImg = adContent.querySelector('img');
|
||
adContent.setAttribute('href', this.adUrl);
|
||
adImg.setAttribute('src', this.coverUrl);
|
||
|
||
var btnClose = this.html.querySelector('.btn-close');
|
||
btnClose.onclick = function () {
|
||
_this.html.style.display = 'none';
|
||
};
|
||
|
||
el.appendChild(this.html);
|
||
}
|
||
}, {
|
||
key: 'play',
|
||
value: function play(player, e) {
|
||
this.html.style.display = 'none';
|
||
}
|
||
}, {
|
||
key: 'pause',
|
||
value: function pause(player, e) {
|
||
this.html.style.display = 'block';
|
||
}
|
||
}]);
|
||
|
||
return PauseADComponent;
|
||
}();
|
||
|
||
exports.default = PauseADComponent;
|
||
|
||
/***/ }),
|
||
/* 41 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"pause-ad\">\n <a class=\"btn-close\">\n <i class=\"split-left\"></i>\n <i class=\"split-right\"></i>\n <a>\n <span class=\"ad-text\"></span>\n <a class=\"ad-content\" target=\"_blank\">\n <img />\n </a>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 42 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(43);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 43 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".pause-ad {\n width: 60%;\n height: 50%;\n background: #000;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n position: absolute;\n display: none; }\n .pause-ad .btn-close {\n position: absolute;\n top: 5px;\n right: 5px;\n background-color: #333;\n width: 2px;\n height: 15px;\n padding: 2px 8px;\n cursor: pointer; }\n .pause-ad .btn-close i {\n background-color: #fff;\n width: 2px;\n height: 15px;\n position: absolute; }\n .pause-ad .btn-close .split-left {\n transform: rotate(-45deg); }\n .pause-ad .btn-close .split-right {\n transform: rotate(45deg); }\n .pause-ad .ad-text {\n position: absolute;\n left: 5px;\n top: 5px;\n background-color: #333;\n color: #fff;\n padding: 3px 5px;\n font-size: 14px; }\n .pause-ad .ad-content {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center; }\n .pause-ad .ad-content img {\n max-width: 100%;\n max-height: 100%; }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 44 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(45);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.PlaylistComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 45 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||
|
||
var _index = __webpack_require__(46);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
var _list = __webpack_require__(47);
|
||
|
||
var _list2 = _interopRequireDefault(_list);
|
||
|
||
__webpack_require__(48);
|
||
|
||
var _utils = __webpack_require__(2);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
||
/**
|
||
* 播放列表事件
|
||
*/
|
||
var PlaylistComponentEvent = {
|
||
VideoClick: 'plugin-playlist-click-video',
|
||
PrevClick: 'plugin-playlist-click-prev',
|
||
NextClick: 'plugin-playlist-click-next',
|
||
VideoChange: 'plugin-playlist-change'
|
||
|
||
/**
|
||
* 播放列表组件
|
||
*/
|
||
};
|
||
var PlaylistComponent = function () {
|
||
/**
|
||
* @constructor 播放列表组件构造函数
|
||
* @param {Array playlist 播放列表数组}
|
||
*/
|
||
function PlaylistComponent(playlist) {
|
||
_classCallCheck(this, PlaylistComponent);
|
||
|
||
this.controlHtml = (0, _utils.parseDom)(_index2.default);
|
||
this.listHtml = (0, _utils.parseDom)(_list2.default);
|
||
this.playlist = playlist;
|
||
this.playingVideoIndex = 0;
|
||
this.listHideTimeout = null;
|
||
}
|
||
|
||
_createClass(PlaylistComponent, [{
|
||
key: 'createEl',
|
||
value: function createEl(el, player) {
|
||
var _this = this;
|
||
|
||
var lang = player._options && player._options.language;
|
||
this.isEn = lang && lang === 'en-us';
|
||
this.controlHtml.querySelector('.player-tooltip.prev').innerText = this.isEn ? 'Previous' : '上一个';
|
||
this.controlHtml.querySelector('.player-tooltip.list').innerText = this.isEn ? 'Playlist' : '播放列表';
|
||
this.controlHtml.querySelector('.player-tooltip.next').innerText = this.isEn ? 'Next' : '下一个';
|
||
|
||
var controlbarElement = el.querySelector('.prism-controlbar');
|
||
var siblingElement = controlbarElement.querySelector('.prism-time-display');
|
||
controlbarElement.insertBefore(this.controlHtml, siblingElement);
|
||
|
||
this.listHtml.onmouseleave = function () {
|
||
_this.listHtml.style.width = 0;
|
||
};
|
||
|
||
this.listHtml.onmouseenter = this.clearHideListTimeout.bind(this);
|
||
|
||
this.controlHtml.querySelector('.icon-list').onclick = this.tooglePlaylist.bind(this);
|
||
|
||
this.listHtml.querySelector('.list').innerHTML = this.computedListDom(this.playlist);
|
||
|
||
var source = player.getOptions() && player.getOptions().source;
|
||
var defaultPlayIndex = 0;
|
||
if (source) {
|
||
defaultPlayIndex = this.playlist.findIndex(function (item) {
|
||
return item.source === source;
|
||
});
|
||
defaultPlayIndex = defaultPlayIndex > -1 ? defaultPlayIndex : 0;
|
||
this.playingVideoIndex = defaultPlayIndex > -1 ? defaultPlayIndex : 0;
|
||
}
|
||
|
||
this.listHtml.querySelector('.list').childNodes[0].className = 'video-item active';
|
||
el.appendChild(this.listHtml);
|
||
}
|
||
}, {
|
||
key: 'ready',
|
||
value: function ready(player, e) {
|
||
var _this2 = this;
|
||
|
||
this.controlHtml.querySelector('.icon-skip-previous').onclick = function () {
|
||
|
||
player && player.trigger(PlaylistComponentEvent.PrevClick, {
|
||
currentIndex: Math.max(_this2.playingVideoIndex - 1, 0)
|
||
});
|
||
|
||
if (_this2.playingVideoIndex === 0) {
|
||
_this2.playlistTip(_this2.isEn ? 'Already the first one~' : '已经是第一个了~', player._el);
|
||
return;
|
||
}
|
||
_this2.playVideo(player, _this2.playingVideoIndex - 1);
|
||
};
|
||
|
||
this.controlHtml.querySelector('.icon-skipnext').onclick = function () {
|
||
|
||
player && player.trigger(PlaylistComponentEvent.NextClick, {
|
||
currentIndex: Math.min(_this2.playingVideoIndex + 1, _this2.playlist.length - 1)
|
||
});
|
||
|
||
if (_this2.playingVideoIndex === _this2.playlist.length - 1) {
|
||
_this2.playlistTip(_this2.isEn ? 'Already the last one~' : '已经是最后一个了~', player._el);
|
||
return;
|
||
}
|
||
_this2.playVideo(player, _this2.playingVideoIndex + 1);
|
||
};
|
||
|
||
this.listHtml.querySelector('.list').onclick = function (e) {
|
||
var target = e.target;
|
||
var videoIndex = parseInt(target.getAttribute('data-index'));
|
||
|
||
player && player.trigger(PlaylistComponentEvent.VideoClick, {
|
||
currentIndex: _this2.playingVideoIndex,
|
||
clickedIndex: videoIndex
|
||
});
|
||
|
||
if (target.className === 'video-item') {
|
||
_this2.playVideo(player, videoIndex);
|
||
}
|
||
};
|
||
}
|
||
|
||
/* clear 自动隐藏右侧播放列表 timeout 的函数 */
|
||
|
||
}, {
|
||
key: 'clearHideListTimeout',
|
||
value: function clearHideListTimeout() {
|
||
if (this.listHideTimeout !== null) {
|
||
clearTimeout(this.listHideTimeout);
|
||
this.listHideTimeout = null;
|
||
}
|
||
}
|
||
|
||
/* 播放 playlist 中 index 为 @param videoIndex 的视频 */
|
||
|
||
}, {
|
||
key: 'playVideo',
|
||
value: function playVideo(player, videoIndex) {
|
||
if (this.playingVideoIndex === videoIndex) {
|
||
return;
|
||
}
|
||
|
||
player && player.trigger(PlaylistComponentEvent.VideoChange, { currentIndex: videoIndex });
|
||
|
||
this.playingVideoIndex = parseInt(videoIndex);
|
||
player.loadByUrl(this.playlist[videoIndex].source);
|
||
this.listHtml.querySelector('.video-item.active').className = 'video-item';
|
||
this.listHtml.querySelector('.list').childNodes[videoIndex].className = 'video-item active';
|
||
}
|
||
|
||
/* 点击 controlbar 上的播放列表按钮显示隐藏播放列表 */
|
||
|
||
}, {
|
||
key: 'tooglePlaylist',
|
||
value: function tooglePlaylist() {
|
||
var _this3 = this;
|
||
|
||
this.clearHideListTimeout();
|
||
if (this.listHtml.style.width === '30%') {
|
||
this.listHtml.style.width = 0;
|
||
} else {
|
||
this.listHtml.style.width = '30%';
|
||
this.listHideTimeout = setTimeout(function () {
|
||
_this3.listHtml.style.width = 0;
|
||
}, 5000);
|
||
}
|
||
}
|
||
|
||
/* 播放器提示信息 */
|
||
|
||
}, {
|
||
key: 'playlistTip',
|
||
value: function playlistTip(msg, el) {
|
||
var tipElement = document.createElement('div');
|
||
tipElement.className = 'playlist-skip-tip';
|
||
tipElement.innerText = msg;
|
||
el.appendChild(tipElement);
|
||
setTimeout(function () {
|
||
el.removeChild(tipElement);
|
||
}, 3000);
|
||
}
|
||
}, {
|
||
key: 'computedListDom',
|
||
value: function computedListDom(playlist) {
|
||
var domList = playlist.map(function (item, index) {
|
||
return '<div class="video-item" data-index="' + index + '" title="' + item.name + '">' + item.name + '</div>';
|
||
});
|
||
return domList.join('');
|
||
}
|
||
}]);
|
||
|
||
return PlaylistComponent;
|
||
}();
|
||
|
||
exports.default = PlaylistComponent;
|
||
|
||
/***/ }),
|
||
/* 46 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"playlist-component\">\n <i class=\"iconfont icon-skip-previous\"></i>\n <div class=\"player-tooltip prev\">上一个</div>\n <i class=\"iconfont icon-list\"></i>\n <div class=\"player-tooltip list\">播放列表</div>\n <i class=\"iconfont icon-skipnext\"></i>\n <div class=\"player-tooltip next\">下一个</div> \n</div>";
|
||
|
||
/***/ }),
|
||
/* 47 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"playlist-content\">\n <div class=\"list\"></div>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 48 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(49);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 49 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".playlist-component {\n color: #fff;\n float: left;\n height: 35px;\n margin-top: 5px;\n display: flex;\n align-items: center;\n position: relative; }\n .playlist-component i {\n color: #fff;\n display: inline-block;\n font-size: 22px;\n display: block;\n margin-top: 7px;\n cursor: pointer; }\n .playlist-component i + i {\n margin-left: 3px; }\n @media (min-width: 768px) {\n .playlist-component i:hover + .player-tooltip {\n display: block; } }\n .playlist-component .player-tooltip.prev {\n left: -10px; }\n .playlist-component .player-tooltip.list {\n left: 5px; }\n .playlist-component .player-tooltip.next {\n right: -12px; }\n\n.playlist-content {\n position: absolute;\n right: 0;\n width: 0px;\n padding-bottom: 48px;\n box-sizing: border-box;\n height: 100%;\n transition: all .38s ease-in-out;\n overflow: hidden; }\n .playlist-content .list {\n background-color: #000;\n background-color: rgba(0, 0, 0, 0.3);\n height: 100%;\n overflow: auto; }\n .playlist-content .list .video-item {\n color: #fff;\n padding: 0px 10px;\n line-height: 35px;\n font-size: 14px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer; }\n .playlist-content .list .video-item.active {\n background-color: #000;\n color: #00ddff; }\n @media (min-width: 768px) {\n .playlist-content .list .video-item:hover {\n background-color: #000;\n color: #00ddff; } }\n\n.player-tooltip {\n position: absolute;\n display: none;\n font-size: 12px;\n color: #fff;\n line-height: 28px;\n letter-spacing: 0;\n text-align: center;\n background: #3c3c3c;\n box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);\n height: 28px;\n top: -48px;\n padding: 0 5px;\n white-space: nowrap; }\n\n.playlist-skip-tip {\n padding: 5px 15px;\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: 30;\n line-height: 30px;\n font-size: 14px;\n border-radius: 4px;\n background: rgba(255, 255, 255, 0.8);\n color: #000;\n text-align: center;\n transform: translate(-50%, -50%); }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 50 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(51);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.PreviewVodComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 51 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||
|
||
var _index = __webpack_require__(52);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
__webpack_require__(53);
|
||
|
||
var _utils = __webpack_require__(2);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
||
/**
|
||
* 结合点播服务的试看组件
|
||
*/
|
||
var PreviewVodComponent = function () {
|
||
/**
|
||
* @constructor 试看组件构造函数
|
||
* @param {Number previewDuration 试看时长单位为秒, 传入0表示可以完整观看}
|
||
* @param {String previewEndHtml 可选参数, 插入到试看结束之后显示的 dom 字符串, 默认为 null}
|
||
* @param {String previewBarHtml 可选参数, 插入到免费试看多少分钟之后的 html}
|
||
*/
|
||
function PreviewVodComponent(previewDuration) {
|
||
var previewEndHtml = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
||
var previewBarHtml = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
||
|
||
_classCallCheck(this, PreviewVodComponent);
|
||
|
||
this.previewDuration = previewDuration;
|
||
this.html = (0, _utils.parseDom)(_index2.default);
|
||
|
||
// 在试看结束之后, 如果用户自定义
|
||
if (previewEndHtml !== null) {
|
||
this.insertHTtml(previewEndHtml, 'previewEndHtml');
|
||
}
|
||
if (previewBarHtml !== null) {
|
||
this.insertHTtml(previewBarHtml, 'previewBarHtml');
|
||
}
|
||
}
|
||
|
||
_createClass(PreviewVodComponent, [{
|
||
key: 'play',
|
||
value: function play(player) {
|
||
if (this.previewEnd) {
|
||
player._el.querySelector('.center').classList.remove('preview-hide');
|
||
player.seek(0);
|
||
this.previewEnd = false;
|
||
}
|
||
}
|
||
}, {
|
||
key: 'insertHTtml',
|
||
value: function insertHTtml(idOrHmtl, params) {
|
||
var parentSelector = params === 'previewEndHtml' ? '.preview-custom' : '.preview-custom-bar';
|
||
var parentEle = this.html.querySelector(parentSelector);
|
||
if (typeof idOrHmtl === 'string') {
|
||
if (idOrHmtl[0] === '#') {
|
||
var templeteEle = document.querySelector(idOrHmtl);
|
||
if (templeteEle) {
|
||
parentEle.innerHTML = templeteEle.innerHTML;
|
||
} else {
|
||
console.warn('[aliplayer components warn]: Invalid parameter ' + params + ', can\'t find element by this id');
|
||
}
|
||
} else {
|
||
parentEle.innerHTML = idOrHmtl;
|
||
}
|
||
} else {
|
||
console.warn('[aliplayer components warn]: Invalid parameter ' + params + ', ' + params + ' must be a string type');
|
||
}
|
||
}
|
||
}, {
|
||
key: 'ready',
|
||
value: function ready(player) {
|
||
var videoDuration = parseInt(player.getDuration());
|
||
this.videoDuration = videoDuration;
|
||
if (!this.invalidPreview && this.previewDuration >= videoDuration) {
|
||
this.invalidPreview = true;
|
||
console.warn('[aliplayer components warn]: Invalid parameter previewDuration, previewDuration must be less than the video duration!');
|
||
}
|
||
if (this.previewDuration !== 0 && this.previewDuration < videoDuration) {
|
||
this.html.style.display = 'block';
|
||
}
|
||
}
|
||
}, {
|
||
key: 'createEl',
|
||
value: function createEl(el, player) {
|
||
var _this = this;
|
||
|
||
var lang = player._options && player._options.language;
|
||
this.isEn = lang && lang === 'en-us';
|
||
console.log(this.html.querySelector('.preview-default'));
|
||
var previewDefaultEle = this.html.querySelector('.preview-default');
|
||
if (previewDefaultEle) {
|
||
previewDefaultEle.innerText = this.isEn ? 'Preview is over' : '试看已结束';
|
||
}
|
||
this.html.querySelector('.can-preview').innerText = this.isEn ? 'Try' : '可试看';
|
||
|
||
var previewDuration = this.previewDuration;
|
||
if (previewDuration === 0) {
|
||
this.html.style.display = 'none';
|
||
}
|
||
|
||
var previewDuration_text = previewDuration / 60;
|
||
var decimal = previewDuration_text.toString().split('.')[1];
|
||
if (decimal && decimal.length > 1) {
|
||
previewDuration_text = ' ' + previewDuration + (this.isEn ? ' senconds' : ' 秒');
|
||
} else {
|
||
previewDuration_text = ' ' + previewDuration_text + (this.isEn ? ' minutes' : ' 分钟');
|
||
}
|
||
if (previewDuration < 60) {
|
||
previewDuration_text = ' ' + previewDuration + (this.isEn ? ' senconds' : ' 秒');
|
||
}
|
||
|
||
// 考虑到可能不是整分钟数, 整分钟数去掉小数点后面的 0
|
||
this.html.querySelector('.preview-time').innerText = previewDuration_text;
|
||
|
||
var videoSiblingElement = el.querySelector('video').nextElementSibling;
|
||
if (videoSiblingElement) {
|
||
el.insertBefore(this.html, videoSiblingElement);
|
||
} else {
|
||
el.appendChild(this.html);
|
||
}
|
||
|
||
var closeSpan = this.html.querySelector('.preview-vod-close');
|
||
closeSpan.addEventListener('click', function () {
|
||
_this.html.querySelector('.preview-component-tip').style.display = 'none';
|
||
});
|
||
player.setPreviewTime(Number(this.previewDuration));
|
||
}
|
||
}, {
|
||
key: 'closePreviewLayer',
|
||
value: function closePreviewLayer() {
|
||
this.previewEnd = false;
|
||
this.html.querySelector('.preview-component-layer').style.display = 'none';
|
||
}
|
||
}, {
|
||
key: 'timeupdate',
|
||
value: function timeupdate(player) {
|
||
if (!this.previewEnd && this.previewDuration !== 0 && this.previewDuration < this.videoDuration) {
|
||
var previewTime = player.getPreviewTime();
|
||
var currentTime = player.getCurrentTime();
|
||
if (Math.floor(previewTime) < currentTime) {
|
||
this.previewEnd = true;
|
||
player._el.querySelector('.center') && player._el.querySelector('.center').classList.add('preview-hide');
|
||
player.seek(previewTime);
|
||
player.pause();
|
||
this.html.querySelector('.preview-component-layer').style.display = 'block';
|
||
}
|
||
}
|
||
}
|
||
}, {
|
||
key: 'ended',
|
||
value: function ended(player, e) {
|
||
if (player.isPreview()) {
|
||
this.html.querySelector('.preview-component-layer').style.display = 'block';
|
||
}
|
||
}
|
||
}]);
|
||
|
||
return PreviewVodComponent;
|
||
}();
|
||
|
||
exports.default = PreviewVodComponent;
|
||
|
||
/***/ }),
|
||
/* 52 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"preview-vod-component\">\n <div class=\"preview-component-layer\">\n <div class=\"preview-custom\">\n <p class=\"preview-default\"></p>\n </div>\n </div>\n <div class=\"preview-component-tip\">\n <span class=\"can-preview\"></span><span class=\"preview-time\"></span>, <span class=\"preview-custom-bar\">Become VIP Watch Full Version </span>\n <span class=\"preview-vod-close\">x</span>\n </div>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 53 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(54);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 54 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".preview-hide {\n display: none !important; }\n\n.preview-vod-component {\n display: none; }\n .preview-vod-component .preview-component-layer {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background-color: rgba(0, 0, 0, 0.8);\n z-index: 9998;\n box-sizing: border-box;\n padding: 20px 20px 70px;\n display: none; }\n .preview-vod-component .preview-component-layer .preview-close {\n position: absolute;\n right: 18px;\n top: 15px;\n border-radius: 50%;\n color: #000;\n background: white;\n width: 20px;\n height: 20px;\n text-align: center;\n line-height: 18px;\n vertical-align: top;\n color: #333;\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);\n cursor: pointer;\n z-index: 9998; }\n .preview-vod-component .preview-component-layer .preview-custom {\n width: 100%;\n height: 100%;\n position: relative; }\n .preview-vod-component .preview-component-layer .preview-custom .preview-default {\n font-size: 14px;\n color: #fff;\n text-align: center;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n width: 100%; }\n .preview-vod-component .preview-custom {\n color: #fff;\n font-size: 14px; }\n .preview-vod-component .preview-component-tip {\n position: absolute;\n bottom: 50px;\n left: 25px;\n border-radius: 15px;\n background-color: #333;\n color: #fff;\n line-height: 26px;\n font-size: 14px;\n padding: 0 12px;\n z-index: 9998; }\n .preview-vod-component .preview-vod-close {\n font-size: 18px;\n cursor: pointer;\n padding: 0 5px;\n font-family: PingFangSC-Regular, sans-serif;\n font-weight: 200; }\n .preview-vod-component .preview-vod-close:hover {\n color: #00c1de; }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 55 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(56);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.ProgressComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 56 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||
|
||
var _index = __webpack_require__(57);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
var _utils = __webpack_require__(2);
|
||
|
||
__webpack_require__(58);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
||
/**
|
||
* 视频打点组件
|
||
*/
|
||
var ProgressMarker = function () {
|
||
function ProgressMarker() {
|
||
_classCallCheck(this, ProgressMarker);
|
||
|
||
this.html = (0, _utils.parseDom)(_index2.default);
|
||
this.imgEle = this.html.querySelector('.img-wrap img');
|
||
this.timeEle = this.html.querySelector('.time');
|
||
this.playBtnEle = this.html.querySelector('.pregress-play-btn');
|
||
this.describeEle = this.html.querySelector('.describe');
|
||
this.timer = null;
|
||
this.currentOffset = null;
|
||
}
|
||
|
||
_createClass(ProgressMarker, [{
|
||
key: 'createEl',
|
||
value: function createEl(el, player) {
|
||
var _this = this;
|
||
|
||
el.appendChild(this.html);
|
||
|
||
this.html.onmouseenter = function () {
|
||
if (_this.timer !== null) {
|
||
clearTimeout(_this.timer);
|
||
_this.timer = null;
|
||
}
|
||
};
|
||
|
||
this.html.onmouseleave = function () {
|
||
_this.html.style.display = 'none';
|
||
};
|
||
this.html.onclick = function () {
|
||
_this.html.style.display = 'none';
|
||
};
|
||
this.html.querySelector('.pregress-play-btn').addEventListener('click', function () {
|
||
player.seek(_this.currentOffset);
|
||
});
|
||
}
|
||
}, {
|
||
key: 'markerDotOver',
|
||
value: function markerDotOver(player, data) {
|
||
var maxWidth = player._el.clientWidth;
|
||
var componentLeft = 'calc(' + data.left * 100 + '% - 10px)';
|
||
if (maxWidth * data.left + 323 > maxWidth) {
|
||
componentLeft = maxWidth - 330 + 'px';
|
||
this.html.querySelector('.icon-arrowdown').style.left = maxWidth * data.left - maxWidth + 317 + 'px';
|
||
} else {
|
||
this.html.querySelector('.icon-arrowdown').style.left = '-2px';
|
||
}
|
||
var _data$progressMarker = data.progressMarker,
|
||
coverUrl = _data$progressMarker.coverUrl,
|
||
title = _data$progressMarker.title,
|
||
describe = _data$progressMarker.describe,
|
||
offset = _data$progressMarker.offset;
|
||
|
||
this.currentOffset = offset;
|
||
this.html.style.left = componentLeft;
|
||
this.imgEle.src = coverUrl;
|
||
this.timeEle.innerText = title;
|
||
this.describeEle.innerText = describe;
|
||
this.html.style.display = 'block';
|
||
}
|
||
}, {
|
||
key: 'markerDotOut',
|
||
value: function markerDotOut(player, data) {
|
||
var _this2 = this;
|
||
|
||
this.timer = setTimeout(function () {
|
||
_this2.html.style.display = 'none';
|
||
}, 100);
|
||
}
|
||
}]);
|
||
|
||
return ProgressMarker;
|
||
}();
|
||
|
||
exports.default = ProgressMarker;
|
||
|
||
/***/ }),
|
||
/* 57 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"progress-component\">\n <div class=\"progress-content clearfix\">\n <div class=\"img-wrap\"><img /></div> \n\n <div class=\"info\">\n <div class=\"time\"></div>\n <div class=\"describe\"></div>\n </div>\n\n <i href=\"\" target=\"_blank\" class=\"iconfont icon-play pregress-play-btn\"></i>\n </div>\n <i class=\"iconfont icon-arrowdown\"></i>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 58 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(59);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 59 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, "@font-face {\n font-family: \"iconfont\";\n src: url(" + __webpack_require__(4) + ");\n /* IE9 */\n src: url(" + __webpack_require__(4) + "#iefix) format(\"embedded-opentype\"), url(\"data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAALoAAsAAAAABswAAAKZAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDBgqBLIEoATYCJAMMCwgABCAFhG0HPxv3BciemjwJBBawWJiKrz0ASDwe/hv7dt/MfNW2KmnPdtG6CbVE49AhkkRLp5FIhAwheQn/z+kv/1pWQYEwj7X+Uuyl/nTcdSTtTi8NcwkH30gwCtRYSyHREE3ufj9P1OLQShNpd5+4d/rneReO/SzLZW3rorEmfwww7rwLcKxFEQ2RQLxh7AKXcJhA07wmodOhiRQqVFijAvHU1GVUmAsrCsvVhWrNwiLeqKinV+kQr8Pvx397KSSpZNbEyyeDGur5VflDWJ2tols+IUKAyyvI2IUU4k5t+hpBML6gaRfbS6uKkOaK/T+hXndWd/rHS0SVVd0Gm9CWbsrgqgh+00EB8vtVFGxALmYoJOTctiY+K0kvXH6mrr7SNz/Z6+9Zx5qJtFlNxSWTO6vj1HYuhJefJ9ftXh9abHpfLGqU77bG13rmtKH98PROBBAh724RzHCxLE2XTr/nplZqkQ6eox7Wz9KPuBAIal+/fLw7HX+FxQX8PFYXDpmtiii/QP1UnuDXdSohKNxkuXJR7VqrA9nqbYxMaGpihrB/6Hm8c9K7mlA3SZHUzCGrWyULu4uKln1U1R2gacfw8pYRRhClgW1bAKFvD0nXN2R9R2Rhn1Ax9YuqfgQ0XYmyDVvWY0r9DMsca6DMgalSjzhuLkW1CaxPOTLLmkJpBrPAjEEsHC3mhrGH2RxTgmk9zjkBwqgLQ+A47DgUfEYtrPKwwbnfFomQuheFVeoiyQkGk3GYBijmAJOK8hC/NSeVPp+A6aY4ZKyFU1PPwJiA2T2ICYv2IIftXi/OvTwTmKaL4zgCEAzlAkOgH+ZwUMCv72fBVFyYMSLpaxOxm5G+9vD6Tvf7tkGTNSlHihxF9z5jdEZzenvNKvXnRN+R5xACAAAA\") format(\"woff2\"), url(" + __webpack_require__(60) + ") format(\"woff\"), url(" + __webpack_require__(61) + ") format(\"truetype\"), url(" + __webpack_require__(62) + "#iconfont) format(\"svg\");\n /* iOS 4.1- */ }\n\n.iconfont {\n font-family: \"iconfont\" !important;\n font-size: 16px;\n font-style: normal;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n\n.icon-play:before {\n content: \"\\E726\"; }\n\n.icon-arrowdown:before {\n content: \"\\E623\"; }\n\n.clearfix:before, .clearfix:after {\n content: \"\";\n display: table;\n line-height: 0; }\n\n.clearfix:after {\n clear: both; }\n\n.clearfix {\n *zoom: 1; }\n\n.progress-component {\n padding: 8px;\n background-color: rgba(0, 0, 0, 0.35);\n position: absolute;\n display: none;\n box-sizing: border-box;\n bottom: 55px;\n font-size: 12px;\n color: #fff;\n height: 74px;\n z-index: 10; }\n .progress-component .progress-content {\n height: 100%;\n position: relative;\n padding-right: 45px; }\n .progress-component .img-wrap {\n float: left;\n width: 100px;\n text-align: center;\n border: 1px solid rgba(0, 0, 0, 0.6);\n height: 100%; }\n .progress-component .img-wrap img {\n vertical-align: top;\n max-width: 100%;\n max-height: 100%;\n object-fit: contain; }\n .progress-component .info {\n float: left;\n padding-left: 10px;\n width: 150px; }\n .progress-component .info .describe {\n line-height: 18px;\n margin-top: 8px;\n height: 36px;\n overflow: hidden; }\n .progress-component .pregress-play-btn {\n display: inline-block;\n position: absolute;\n right: 6px;\n bottom: 0px;\n font-size: 28px;\n color: #ca7838;\n cursor: pointer; }\n .progress-component .icon-arrowdown {\n left: -2px;\n position: absolute;\n font-size: 31px;\n color: rgba(0, 0, 0, 0.35);\n line-height: 6px;\n top: 100%; }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 60 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "data:application/font-woff;base64,d09GRgABAAAAAARoAAsAAAAABswAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFY8mUkYY21hcAAAAYAAAABWAAABhmkn0RRnbHlmAAAB2AAAAJEAAACsoFCg7WhlYWQAAAJsAAAALwAAADYU+6wjaGhlYQAAApwAAAAeAAAAJAfeA4VobXR4AAACvAAAAAwAAAAMDAEAAGxvY2EAAALIAAAACAAAAAgADgBWbWF4cAAAAtAAAAAeAAAAIAEQADBuYW1lAAAC8AAAAUUAAAJtPlT+fXBvc3QAAAQ4AAAALgAAAD/D5yXjeJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2BkYWCcwMDKwMHUyXSGgYGhH0IzvmYwYuRgYGBiYGVmwAoC0lxTGByeKT9XY27438AQw9zA0AAUZgTJAQDi6gwteJztkMENgDAMAy9p6QOxBRLiwUC8GJ+OUdwUtsDSxYqTl4EJSOIQGezC6DqVWuSJOfIcP0Vu+L3WrTX4XDLdSrhrFH4tMfd3897WoDdbtwH+ADzlDm4AAHicTYu7DcIwGITvt/FDjiIEQnFtRTItBQTmQGIBJskWbOQeUURykyI7pEKGP12uuu8eILDEQB8IgIIXQ7kzvZdYAr9+A9mjgkfLvYZp4DtcI2TEkQ2jhmwOW9Lxsjt3XiCVWSlyKZFTqswpl5E55EyBeXxaO9m6tvKxlKvx97RaZX6JyuzNSxtHN2c0/rNfLF8AAAB4nGNgZGBgAGLxnctexvPbfGXgZmEAgRvvTIQR9P8GFgbmBiCXg4EJJAoAMOgKOgB4nGNgZGBgbvjfwBDDAmQxMLAwMIBpJMAMAEciAm0AAAQAAAAEAAAABAEAAAAAAAAADgBWeJxjYGRgYGBmUAFiEGACYi4gZGD4D+YzAAAMZAFBAAB4nGWPTU7DMBCFX/oHpBKqqGCH5AViASj9EatuWFRq911036ZOmyqJI8et1ANwHo7ACTgC3IA78EgnmzaWx9+8eWNPANzgBx6O3y33kT1cMjtyDRe4F65TfxBukF+Em2jjVbhF/U3YxzOmwm10YXmD17hi9oR3YQ8dfAjXcI1P4Tr1L+EG+Vu4iTv8CrfQ8erCPuZeV7iNRy/2x1YvnF6p5UHFockikzm/gple75KFrdLqnGtbxCZTg6BfSVOdaVvdU+zXQ+ciFVmTqgmrOkmMyq3Z6tAFG+fyUa8XiR6EJuVYY/62xgKOcQWFJQ6MMUIYZIjK6Og7VWb0r7FDwl57Vj3N53RbFNT/c4UBAvTPXFO6stJ5Ok+BPV8bUnV0K27LnpQ0kV7NSRKyQl7WtlRC6gE2ZVeOEXpc0Yk/KGdI/wAJWm7IAAAAeJxjYGKAAC4G7ICZkYmRmZGFgS+xqCi/PCW/PE83Ob+gkqUgJ7GSgQEAYa8HrwAA"
|
||
|
||
/***/ }),
|
||
/* 61 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "data:application/x-font-ttf;base64,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"
|
||
|
||
/***/ }),
|
||
/* 62 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPCEtLQoyMDEzLTktMzA6IENyZWF0ZWQuCi0tPgo8c3ZnPgo8bWV0YWRhdGE+CkNyZWF0ZWQgYnkgaWNvbmZvbnQKPC9tZXRhZGF0YT4KPGRlZnM+Cgo8Zm9udCBpZD0iaWNvbmZvbnQiIGhvcml6LWFkdi14PSIxMDI0IiA+CiAgPGZvbnQtZmFjZQogICAgZm9udC1mYW1pbHk9Imljb25mb250IgogICAgZm9udC13ZWlnaHQ9IjUwMCIKICAgIGZvbnQtc3RyZXRjaD0ibm9ybWFsIgogICAgdW5pdHMtcGVyLWVtPSIxMDI0IgogICAgYXNjZW50PSI4OTYiCiAgICBkZXNjZW50PSItMTI4IgogIC8+CiAgICA8bWlzc2luZy1nbHlwaCAvPgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iYXJyb3dkb3duLWNvcHkiIHVuaWNvZGU9IiYjNTg5MTU7IiBkPSJNNzI2LjY1MyA0NjYuNjk0aC00MjkuMzA2bDIxNC44NDYtMjA4Ljg1MXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJwbGF5IiB1bmljb2RlPSImIzU5MTc0OyIgZD0iTTUxMiA4NTMuMzMyOTkyQzI1NC43MzMzMTIgODUzLjMzMjk5MiA0Mi42NjU5ODQgNjQxLjI2MzYxNiA0Mi42NjU5ODQgMzg0czIxMi4wNjczMjgtNDY5LjMzMTk2OCA0NjkuMzMxOTY4LTQ2OS4zMzE5NjhjMjU3LjI2NDY0IDAgNDY5LjMzNDAxNiAyMTIuMDY3MzI4IDQ2OS4zMzQwMTYgNDY5LjMzMTk2OCAwIDI1Ny4yNjQ2NC0yMTIuMDY5Mzc2IDQ2OS4zMzQwMTYtNDY5LjMzNDAxNiA0NjkuMzM0MDE2TTUxMi0xMjhDMjI4LjY5Mjk5Mi0xMjggMCAxMDAuNjkyOTkyIDAgMzg0IDAgNjY3LjMwNzAwOCAyMjguNjkyOTkyIDg5NiA1MTIgODk2YzI4My4zMDcwMDggMCA1MTItMjI4LjY5Mjk5MiA1MTItNTEyIDAtMjgzLjMwNzAwOC0yMjguNjkyOTkyLTUxMi01MTItNTEyTTYzMS44ODM3NzYgMzk5Ljg5NzZjMTAuNjE4ODgtNy45NDkzMTIgMTAuNjE4ODgtMjMuODQ2OTEyIDAtMzEuNzk1Mkw0MDUuMjM3NzYgMjE3LjA2NzUyQzM5NC42MTg4OCAyMDkuMTE5MjMyIDM4NCAyMTQuNDE3NDA4IDM4NCAyMjcuNjY1OTJWNTQwLjMzMjAzMmMwIDEzLjI0OTUzNiAxMC42MTk5MDQgMTguNTQ4NzM2IDIxLjIzNzc2IDEwLjYwMDQ0OGwyMjYuNjQ2MDE2LTE1MS4wMzQ4OHoiICBob3Jpei1hZHYteD0iMTAyNSIgLz4KCiAgICAKCgogIDwvZm9udD4KPC9kZWZzPjwvc3ZnPgo="
|
||
|
||
/***/ }),
|
||
/* 63 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(64);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.QualityComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 64 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||
|
||
var _index = __webpack_require__(65);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
var _qualityModal = __webpack_require__(66);
|
||
|
||
var _qualityModal2 = _interopRequireDefault(_qualityModal);
|
||
|
||
__webpack_require__(67);
|
||
|
||
var _utils = __webpack_require__(2);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
||
/**
|
||
* 切换清晰度组件
|
||
*/
|
||
var QualityComponent = function () {
|
||
function QualityComponent(getQuality) {
|
||
_classCallCheck(this, QualityComponent);
|
||
|
||
this.html = (0, _utils.parseDom)(_index2.default);
|
||
this.modalHtml = (0, _utils.parseDom)(_qualityModal2.default);
|
||
this.hasCreated = false;
|
||
this.definition = '';
|
||
this.getQuality = getQuality;
|
||
}
|
||
|
||
_createClass(QualityComponent, [{
|
||
key: 'createEl',
|
||
value: function createEl(el, player) {
|
||
var lang = player._options && player._options.language;
|
||
this.isEn = lang && lang === 'en-us';
|
||
this.html.querySelector('.current-quality').innerText = this.isEn ? 'Resolution' : '清晰度';
|
||
this.modalHtml.querySelector('.switchimg').innerText = this.isEn ? 'Switching to you for' : '正在为您切换到';
|
||
this.modalHtml.querySelector('.wait').innerText = this.isEn ? 'Please wait...' : '请稍后...';
|
||
var eleControlbar = el.querySelector('.prism-controlbar');
|
||
eleControlbar.appendChild(this.html);
|
||
el.appendChild(this.modalHtml);
|
||
}
|
||
}, {
|
||
key: 'setCurrentQuality',
|
||
value: function setCurrentQuality(quality, def) {
|
||
var currentQuality = this.html.querySelector('.current-quality');
|
||
currentQuality.innerText = quality;
|
||
currentQuality.dataset.def = def;
|
||
this.definition = def;
|
||
|
||
var qualityListEle = this.html.querySelector('.quality-list');
|
||
var currentEle = qualityListEle.querySelector('.current');
|
||
if (currentEle) {
|
||
currentEle.className = '';
|
||
}
|
||
var li_target = qualityListEle.querySelector('li[data-def="' + def + '"]');
|
||
if (li_target) {
|
||
li_target.className = 'current';
|
||
}
|
||
}
|
||
}, {
|
||
key: 'created',
|
||
value: function created(player) {
|
||
var _this = this;
|
||
|
||
this._urls = player._urls;
|
||
|
||
var currentQualityEle = this.html.querySelector('.current-quality');
|
||
var qualityListEle = this.html.querySelector('.quality-list');
|
||
|
||
var lis_ele = this._urls.map(function (url) {
|
||
return '<li data-def="' + url.definition + '">' + url.desc + '</li>';
|
||
});
|
||
this.html.querySelector('.quality-list').innerHTML = lis_ele.join('');
|
||
|
||
console.log(this.definition);
|
||
if (this.hasCreated == false && this.definition) {
|
||
var li_target = qualityListEle.querySelector('li[data-def="' + this.definition + '"]');
|
||
li_target.className = 'current';
|
||
}
|
||
this.hasCreated = true;
|
||
|
||
var timeId = null;
|
||
|
||
currentQualityEle.onclick = function () {
|
||
var listVisible = qualityListEle.style.display !== 'none';
|
||
if (listVisible) {
|
||
qualityListEle.style.display = 'none';
|
||
} else {
|
||
qualityListEle.style.display = 'block';
|
||
}
|
||
};
|
||
|
||
currentQualityEle.onmouseleave = function () {
|
||
if (timeId) clearTimeout(timeId);
|
||
timeId = setTimeout(function () {
|
||
qualityListEle.style.display = 'none';
|
||
}, 150);
|
||
};
|
||
|
||
qualityListEle.onmouseenter = function () {
|
||
clearTimeout(timeId);
|
||
};
|
||
qualityListEle.onmouseleave = function () {
|
||
if (timeId) clearTimeout(timeId);
|
||
timeId = setTimeout(function () {
|
||
qualityListEle.style.display = 'none';
|
||
}, 150);
|
||
};
|
||
|
||
qualityListEle.onclick = function (_ref) {
|
||
var target = _ref.target;
|
||
|
||
var definition = target.dataset.def;
|
||
var desc = target.innerText;
|
||
if (definition && target.className !== 'current') {
|
||
var url = Array.isArray(_this._urls) ? _this._urls.filter(function (url) {
|
||
return url.definition === definition;
|
||
})[0] : _this._urls.find(function (url) {
|
||
return url.definition === definition;
|
||
});
|
||
if (url) {
|
||
(0, _utils.cookieSet)('selectedStreamLevel', url.definition, 365);
|
||
|
||
if (player._switchLevel && !player._options.isLive) {
|
||
player._switchLevel(url.Url);
|
||
} else {
|
||
player._loadByUrlInner(url.Url, player.getCurrentTime(), true /*autoPlay*/, true /* isSwitchLevel */);
|
||
}
|
||
|
||
_this.setCurrentQuality(url.desc, url.definition);
|
||
|
||
_this.modalHtml.style.display = 'block';
|
||
_this.modalHtml.querySelector('span.current-quality-tag').innerText = url.desc;
|
||
}
|
||
}
|
||
//点击切换清晰度时,调用这个方法
|
||
_this.getQuality(definition, desc);
|
||
};
|
||
}
|
||
}, {
|
||
key: 'ready',
|
||
value: function ready(player) {
|
||
this.modalHtml.style.display = 'none';
|
||
// 隐藏设置里面的倍速播放
|
||
var settingEle = document.querySelector('.prism-setting-item.prism-setting-quality');
|
||
if (settingEle) {
|
||
settingEle.classList.add('player-hidden');
|
||
}
|
||
}
|
||
}]);
|
||
|
||
return QualityComponent;
|
||
}();
|
||
|
||
exports.default = QualityComponent;
|
||
|
||
/***/ }),
|
||
/* 65 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"quality-components\">\n <div class=\"current-quality\" data-ref=\"\"></div>\n <ul class=\"quality-list\">\n </ul>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 66 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"quality-modal\">\n <span class=\"switchimg\"></span> <span class=\"current-quality-tag\"></span> , <span class=\"wait\"></span>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 67 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(68);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 68 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".player-hidden {\n display: none !important; }\n\n.quality-components {\n float: right;\n color: #fff;\n height: 35px;\n position: relative;\n box-sizing: border-box;\n margin-top: 4px; }\n\n.current-quality {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n width: 70px;\n cursor: pointer; }\n\n.quality-list {\n position: absolute;\n bottom: 46px;\n display: none;\n padding: 0;\n margin: 0;\n list-style: none; }\n .quality-list li {\n text-align: center;\n width: 70px;\n line-height: 30px;\n background-color: rgba(0, 0, 0, 0.6);\n cursor: pointer; }\n .quality-list li.current {\n color: #00c1de; }\n .quality-list li + li {\n border-top: 1px solid rgba(78, 78, 78, 0.3); }\n .quality-list li:hover {\n background-color: rgba(0, 0, 0, 0.5); }\n\n.quality-modal {\n position: absolute;\n bottom: 20%;\n left: 5%;\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 5px;\n color: #fff;\n padding: 10px 15px;\n font-size: 14px;\n display: none; }\n .quality-modal span.current-quality-tag {\n color: #00c1de; }\n\n@media (max-width: 768px) {\n .current-quality {\n width: 40px; }\n .quality-list li {\n width: 45px; } }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 69 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(70);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.RateComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 70 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||
|
||
var _index = __webpack_require__(71);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
__webpack_require__(72);
|
||
|
||
var _utils = __webpack_require__(2);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
||
/**
|
||
* 倍速播放组件
|
||
*/
|
||
var RateComponent = function () {
|
||
/**
|
||
* @constructor 倍速播放组件构造函数
|
||
*/
|
||
function RateComponent() {
|
||
_classCallCheck(this, RateComponent);
|
||
|
||
this.html = (0, _utils.parseDom)(_index2.default);
|
||
}
|
||
|
||
_createClass(RateComponent, [{
|
||
key: 'createEl',
|
||
value: function createEl(el) {
|
||
var eleControlbar = el.querySelector('.prism-controlbar');
|
||
eleControlbar.appendChild(this.html);
|
||
}
|
||
}, {
|
||
key: 'ready',
|
||
value: function ready(player, e) {
|
||
var currentRateEle = this.html.querySelector('.current-rate');
|
||
var rateListEle = this.html.querySelector('.rate-list');
|
||
var timeId = null;
|
||
|
||
// 隐藏设置里面的倍速播放
|
||
var settingRate = document.querySelector('.prism-setting-item.prism-setting-speed');
|
||
if (settingRate) {
|
||
settingRate.classList.add('player-hidden');
|
||
}
|
||
|
||
currentRateEle.onclick = function () {
|
||
rateListEle.style.display = 'block';
|
||
};
|
||
currentRateEle.onmouseleave = function () {
|
||
timeId = setTimeout(function () {
|
||
rateListEle.style.display = 'none';
|
||
}, 100);
|
||
};
|
||
|
||
rateListEle.onmouseenter = function () {
|
||
clearTimeout(timeId);
|
||
};
|
||
rateListEle.onmouseleave = function () {
|
||
rateListEle.style.display = 'none';
|
||
};
|
||
|
||
rateListEle.onclick = function (_ref) {
|
||
var target = _ref.target;
|
||
|
||
var rate = target.dataset.rate;
|
||
if (rate) {
|
||
player.setSpeed(rate);
|
||
if (target.className !== 'current') {
|
||
var currentEle = rateListEle.querySelector('.current');
|
||
if (currentEle) {
|
||
currentEle.className = '';
|
||
}
|
||
target.className = 'current';
|
||
}
|
||
rateListEle.style.display = 'none';
|
||
currentRateEle.innerText = rate + 'x';
|
||
}
|
||
};
|
||
}
|
||
}]);
|
||
|
||
return RateComponent;
|
||
}();
|
||
|
||
exports.default = RateComponent;
|
||
|
||
/***/ }),
|
||
/* 71 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"rate-components\">\n <div class=\"current-rate\">1.0x</div>\n <ul class=\"rate-list\">\n <li data-rate=\"2.0\">2.0x</li>\n <li data-rate=\"1.5\">1.5x</li>\n <li data-rate=\"1.25\">1.25x</li>\n <li data-rate=\"1.0\" class=\"current\">1.0x</li>\n <li data-rate=\"0.5\">0.5x</li>\n </ul>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 72 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(73);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 73 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".player-hidden {\n display: none !important; }\n\n.rate-components {\n float: right;\n color: #fff;\n height: 35px;\n position: relative;\n box-sizing: border-box;\n margin-top: 5px; }\n\n.current-rate {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n width: 70px;\n cursor: pointer; }\n\n.rate-list {\n position: absolute;\n bottom: 46px;\n display: none;\n padding: 0;\n margin: 0;\n list-style: none; }\n .rate-list li {\n text-align: center;\n width: 70px;\n line-height: 30px;\n background-color: rgba(0, 0, 0, 0.6);\n cursor: pointer; }\n .rate-list li.current {\n color: #00c1de; }\n .rate-list li + li {\n border-top: 1px solid rgba(78, 78, 78, 0.3); }\n .rate-list li:hover {\n background-color: rgba(0, 0, 0, 0.5); }\n\n@media (max-width: 768px) {\n .current-rate {\n width: 40px; }\n .rate-list li {\n width: 43px; } }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 74 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(75);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.RotateMirrorComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 75 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||
|
||
var _index = __webpack_require__(76);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
__webpack_require__(77);
|
||
|
||
var _utils = __webpack_require__(2);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
||
/**
|
||
* 旋转镜像组件
|
||
*/
|
||
var RotateMirrorComponent = function () {
|
||
/**
|
||
* @constructor 旋转镜像组件构造函数
|
||
*/
|
||
function RotateMirrorComponent() {
|
||
_classCallCheck(this, RotateMirrorComponent);
|
||
|
||
this.html = (0, _utils.parseDom)(_index2.default);
|
||
}
|
||
|
||
_createClass(RotateMirrorComponent, [{
|
||
key: 'createEl',
|
||
value: function createEl(el, player) {
|
||
var lang = player._options && player._options.language;
|
||
this.isEn = lang && lang === 'en-us';
|
||
this.html.querySelector('.player-tooltip.counterclockwise').innerText = this.isEn ? 'Rotate 45 degrees counterclockwise' : '逆时针旋转45度';
|
||
this.html.querySelector('.mirror-item[data-id="counterclockwise"]').innerText = this.isEn ? 'Rotate left 45 ̊' : '左旋转45˚';
|
||
this.html.querySelector('.player-tooltip.clockwise').innerText = this.isEn ? 'Rotate 45 degrees clockwise' : '顺时针旋转45度';
|
||
this.html.querySelector('.mirror-item[data-id="clockwise"]').innerText = this.isEn ? 'Rotate right 45 ̊' : '右旋转45˚';
|
||
this.html.querySelector('.player-tooltip.switch').innerText = this.isEn ? 'Mirror' : '镜像';
|
||
this.html.querySelector('.mirror-item[data-id=vertical]').innerText = this.isEn ? 'Vertical mirroring' : '垂直镜像';
|
||
this.html.querySelector('.mirror-item[data-id=horizon]').innerText = this.isEn ? 'Horizontal mirroring' : '水平镜像';
|
||
|
||
var eleControlbar = el.querySelector('.prism-controlbar');
|
||
eleControlbar.appendChild(this.html);
|
||
}
|
||
}, {
|
||
key: 'ready',
|
||
value: function ready(player, e) {
|
||
this.html.querySelector('.icon-player-rotate-left').onclick = function () {
|
||
var rotate = player.getRotate();
|
||
player.setRotate(rotate - 45);
|
||
};
|
||
this.html.querySelector('.icon-player-rotate-right').onclick = function () {
|
||
var rotate = player.getRotate();
|
||
player.setRotate(rotate + 45);
|
||
};
|
||
var eleMirror = this.html.querySelector('.mirror-option');
|
||
this.html.querySelector('.icon-player-switch').onclick = function () {
|
||
var displayStyle = eleMirror.style.display;
|
||
eleMirror.style.display = displayStyle === 'none' ? 'block' : 'none';
|
||
};
|
||
eleMirror.onmouseleave = function () {
|
||
this.style.display = 'none';
|
||
};
|
||
eleMirror.onclick = function (e) {
|
||
var target = e.target;
|
||
if (target.dataset.id === 'counterclockwise') {
|
||
var rotate = player.getRotate();
|
||
player.setRotate(rotate - 45);
|
||
return;
|
||
}
|
||
if (target.dataset.id === 'clockwise') {
|
||
var _rotate = player.getRotate();
|
||
player.setRotate(_rotate + 45);
|
||
return;
|
||
}
|
||
if (!target.className.match('active')) {
|
||
var siblingEle = target.dataset.id === 'horizon' ? target.previousElementSibling : target.nextElementSibling;
|
||
if (siblingEle.className.match('active')) {
|
||
siblingEle.className = 'mirror-item';
|
||
player.cancelImage();
|
||
}
|
||
var param = target.getAttribute('data-id');
|
||
player.setImage(param);
|
||
target.className = 'mirror-item active';
|
||
} else {
|
||
player.cancelImage();
|
||
target.className = 'mirror-item';
|
||
}
|
||
};
|
||
}
|
||
}]);
|
||
|
||
return RotateMirrorComponent;
|
||
}();
|
||
|
||
exports.default = RotateMirrorComponent;
|
||
|
||
/***/ }),
|
||
/* 76 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"aliplayer-rotate-mirror\">\n <i class=\"iconfont icon-player-rotate-left\"></i>\n <div class=\"player-tooltip counterclockwise\"></div>\n <i class=\"iconfont icon-player-rotate-right\"></i>\n <div class=\"player-tooltip clockwise\"></div>\n <i class=\"iconfont icon-player-switch\"></i>\n <div class=\"player-tooltip switch\"></div>\n <div class=\"mirror-option\" style=\"display: none;\">\n <div class=\"mirror-item\" data-id=\"vertical\"></div>\n <div class=\"mirror-item\" data-id=\"horizon\"></div>\n <div class=\"mirror-item\" data-id=\"counterclockwise\"></div>\n <div class=\"mirror-item\" data-id=\"clockwise\"></div>\n </div>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 77 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(78);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 78 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".aliplayer-rotate-mirror {\n float: right;\n color: #fff;\n display: flex;\n align-items: center;\n height: 35px;\n position: relative;\n margin-top: 5px; }\n .aliplayer-rotate-mirror i {\n color: #fff;\n display: inline-block;\n font-size: 22px;\n display: block;\n margin-top: 7px;\n cursor: pointer;\n margin-right: 10px; }\n .aliplayer-rotate-mirror i.icon-player-switch {\n font-size: 24px;\n font-weight: bold; }\n @media (min-width: 768px) {\n .aliplayer-rotate-mirror i:hover + .player-tooltip {\n display: block; } }\n .aliplayer-rotate-mirror .mirror-option {\n position: absolute;\n background-color: #3c3c3c;\n top: 0;\n transform: translateY(-103%);\n right: -20px; }\n .aliplayer-rotate-mirror .mirror-option .mirror-item {\n font-size: 14px;\n color: #ebecec;\n line-height: 30px;\n white-space: nowrap;\n padding: 0 15px;\n cursor: pointer;\n user-select: none; }\n .aliplayer-rotate-mirror .mirror-option .mirror-item[data-id=\"counterclockwise\"] {\n display: none; }\n .aliplayer-rotate-mirror .mirror-option .mirror-item[data-id=\"clockwise\"] {\n display: none; }\n .aliplayer-rotate-mirror .mirror-option .mirror-item.active {\n background-color: rgba(216, 216, 216, 0.1);\n color: #00c1de; }\n .aliplayer-rotate-mirror .player-tooltip.counterclockwise {\n left: -35px; }\n .aliplayer-rotate-mirror .player-tooltip.clockwise {\n left: -5px; }\n .aliplayer-rotate-mirror .player-tooltip.switch {\n right: 7px; }\n @media (max-width: 768px) {\n .aliplayer-rotate-mirror .mirror-option .mirror-item[data-id=\"counterclockwise\"] {\n display: block; }\n .aliplayer-rotate-mirror .mirror-option .mirror-item[data-id=\"clockwise\"] {\n display: block; } }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 79 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(80);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.StartADComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 80 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||
|
||
var _index = __webpack_require__(81);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
__webpack_require__(82);
|
||
|
||
var _utils = __webpack_require__(2);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
||
/**
|
||
* 开始图片广告组件
|
||
*/
|
||
var StartADComponent = function () {
|
||
/**
|
||
* @constructor 开始图片广告组件构造函数
|
||
* @param {String coverUrl 广告图片地址}
|
||
* @param {String adUrl 广告链接}
|
||
* @param {Number adDuration 广告时长, 单位为秒}
|
||
*/
|
||
function StartADComponent(coverUrl, adUrl, adDuration) {
|
||
_classCallCheck(this, StartADComponent);
|
||
|
||
this.coverUrl = coverUrl;
|
||
this.adUrl = adUrl;
|
||
this.adDuration = adDuration;
|
||
if (adDuration <= 0) {
|
||
throw Error('adDuration must must be greater than 0');
|
||
}
|
||
this.html = (0, _utils.parseDom)(_index2.default);
|
||
}
|
||
|
||
_createClass(StartADComponent, [{
|
||
key: 'createEl',
|
||
value: function createEl(el, player) {
|
||
var _this = this;
|
||
|
||
var lang = player._options && player._options.language;
|
||
this.isEn = lang && lang === 'en-us';
|
||
this.html.querySelector('.ad-name').innerText = this.isEn ? 'Ad' : '广告';
|
||
this.html.querySelector('.second').innerText = this.isEn ? 's' : '秒';
|
||
|
||
var adUrlElement = this.html.querySelector('.ad-content');
|
||
adUrlElement.setAttribute('href', this.adUrl);
|
||
|
||
var adImgElement = adUrlElement.querySelector('img');
|
||
adImgElement.setAttribute('src', this.coverUrl);
|
||
|
||
var durationElement = this.html.querySelector('.tip i');
|
||
durationElement.innerText = this.adDuration;
|
||
|
||
el.appendChild(this.html);
|
||
|
||
if (this.html !== null) {
|
||
if (player.getStatus() !== 'init') {
|
||
player.pause();
|
||
}
|
||
var duration = this.adDuration;
|
||
var _durationElement = this.html.querySelector('.tip i');
|
||
var durationInterval = setInterval(function () {
|
||
duration = duration - 1;
|
||
_durationElement.innerText = duration;
|
||
if (duration === 0) {
|
||
clearInterval(durationInterval);
|
||
_this.removeComponent();
|
||
// 如果试看组件和记忆播放组件一起用了, 那么不让播放器播放
|
||
var playerOptions = player.getOptions();
|
||
var memoryVideo = playerOptions.vid || playerOptions.source.replace(/\?.*$/, '');
|
||
var memoryTime = localStorage.getItem(memoryVideo) || 0;
|
||
if (memoryTime) {
|
||
memoryTime = parseInt(memoryTime);
|
||
}
|
||
var components = player.getOptions() && player.getOptions().components;
|
||
var memoryComponent = Array.isArray(components) ? components.filter(function (item) {
|
||
return item.type.name === 'MemoryPlayComponent';
|
||
})[0] : components.find(function (item) {
|
||
return item.type.name === 'MemoryPlayComponent';
|
||
});
|
||
var memoryAutoPlay = memoryComponent && memoryComponent.args[0];
|
||
if (!memoryAutoPlay || player.getCurrentTime() >= memoryTime) {
|
||
player.play();
|
||
}
|
||
}
|
||
}, 1000);
|
||
}
|
||
}
|
||
}, {
|
||
key: 'removeComponent',
|
||
value: function removeComponent() {
|
||
this.html.parentNode.removeChild(this.html);
|
||
this.html = null;
|
||
}
|
||
}, {
|
||
key: 'ready',
|
||
value: function ready(player) {
|
||
if (this.html !== null) {
|
||
player.pause();
|
||
}
|
||
}
|
||
}]);
|
||
|
||
return StartADComponent;
|
||
}();
|
||
|
||
exports.default = StartADComponent;
|
||
|
||
/***/ }),
|
||
/* 81 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"start-ad\">\n <span class=\"tip\"><span class=\"ad-name\">广告</span>: <i></i><span class=\"second\">秒</span></span>\n <a class=\"ad-content\" target=\"_blank\">\n <img />\n </a>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 82 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(83);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 83 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".start-ad {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n background-color: #000;\n position: absolute;\n z-index: 9999; }\n .start-ad .tip {\n position: absolute;\n right: 5px;\n top: 5px;\n background-color: #333;\n color: #fff;\n font-size: 14px;\n text-align: center;\n padding: 3px 7px; }\n .start-ad .tip i {\n font-style: normal; }\n .start-ad a {\n width: 100%;\n height: 100%;\n display: inline-block;\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center; }\n .start-ad a img {\n max-width: 100%;\n max-height: 100%; }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 84 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(85);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.TrackComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 85 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||
|
||
var _index = __webpack_require__(86);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
var _trackModal = __webpack_require__(87);
|
||
|
||
var _trackModal2 = _interopRequireDefault(_trackModal);
|
||
|
||
__webpack_require__(88);
|
||
|
||
var _utils = __webpack_require__(2);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
||
/**
|
||
* 音轨组件
|
||
*/
|
||
var TrackComponent = function () {
|
||
/**
|
||
* @constructor 音轨组件构造函数
|
||
*/
|
||
|
||
function TrackComponent() {
|
||
_classCallCheck(this, TrackComponent);
|
||
|
||
this.trackList = null;
|
||
this.html = (0, _utils.parseDom)(_index2.default);
|
||
this.modalHtml = (0, _utils.parseDom)(_trackModal2.default);
|
||
this.hasCreated = false;
|
||
this.definition = '';
|
||
}
|
||
|
||
_createClass(TrackComponent, [{
|
||
key: 'createEl',
|
||
value: function createEl(el, player) {
|
||
var _this = this;
|
||
|
||
var lang = player._options && player._options.language;
|
||
this.isEn = lang && lang === 'en-us';
|
||
this.modalHtml.querySelector('.switchimg').innerText = this.isEn ? 'Track to you for' : '音轨切换到';
|
||
this.modalHtml.querySelector('.switchimg').style.display = 'none';
|
||
var eleControlbar = el.querySelector('.prism-controlbar');
|
||
eleControlbar.appendChild(this.html);
|
||
el.appendChild(this.modalHtml);
|
||
player.on('audioTrackReady', function (_ref) {
|
||
var paramData = _ref.paramData;
|
||
|
||
_this.trackList = paramData;
|
||
var lis_ele = paramData.map(function (v) {
|
||
return '<li data-def="' + v.value + '">' + v.text + '</li>';
|
||
});
|
||
_this.html.querySelector('.track-list').innerHTML = '<li style="background:rgba(88,87,86,.5);color:#fff">\u97F3\u8F68</li>' + lis_ele.join('');
|
||
});
|
||
var currentTrackEle = this.html.querySelector('.current-track');
|
||
var trackListEle = this.html.querySelector('.track-list');
|
||
|
||
if (this.hasCreated == false && this.definition) {
|
||
var li_target = trackListEle.querySelector('li[data-def="' + this.definition + '"]');
|
||
li_target.className = 'current';
|
||
}
|
||
|
||
this.hasCreated = true;
|
||
|
||
var timeId = null;
|
||
currentTrackEle.onclick = function () {
|
||
trackListEle.style.display = 'block';
|
||
};
|
||
|
||
currentTrackEle.onmouseleave = function () {
|
||
timeId = setTimeout(function () {
|
||
trackListEle.style.display = 'none';
|
||
}, 100);
|
||
};
|
||
|
||
trackListEle.onmouseenter = function () {
|
||
clearTimeout(timeId);
|
||
};
|
||
trackListEle.onmouseleave = function () {
|
||
trackListEle.style.display = 'none';
|
||
_this.modalHtml.style.display = 'none';
|
||
};
|
||
|
||
trackListEle.onclick = function (_ref2) {
|
||
var target = _ref2.target;
|
||
|
||
var definition = target.dataset.def;
|
||
if (definition) {
|
||
if (target.className !== 'current') {
|
||
var track = Array.isArray(_this.trackList) ? _this.trackList.filter(function (v) {
|
||
return v.value.toString() === definition;
|
||
})[0] : _this.trackList.find(function (v) {
|
||
return v.value.toString() === definition;
|
||
});
|
||
player._audioTrackService.switch(track.value);
|
||
_this.setCurrentTrack(track.text, track.value);
|
||
_this.modalHtml.style.display = 'block';
|
||
_this.modalHtml.querySelector('.switchimg').style.display = 'block';
|
||
_this.modalHtml.querySelector('span.current-track-tag').innerText = track.text;
|
||
}
|
||
}
|
||
};
|
||
}
|
||
}, {
|
||
key: 'setCurrentTrack',
|
||
value: function setCurrentTrack(track, def) {
|
||
var currentTrack = this.html.querySelector('.current-track');
|
||
currentTrack.innerText = track;
|
||
currentTrack.dataset.def = def;
|
||
this.definition = def;
|
||
|
||
var trackListEle = this.html.querySelector('.track-list');
|
||
var currentEle = trackListEle.querySelector('.current');
|
||
if (currentEle) {
|
||
currentEle.className = '';
|
||
}
|
||
// let li_target = trackListEle.querySelector(`li[data-def="${def}"]`)
|
||
var lis = trackListEle.querySelectorAll('li');
|
||
lis.forEach(function (element) {
|
||
var text = element.innerText;
|
||
if (text === track) {
|
||
element.className = 'current';
|
||
}
|
||
console.log(text);
|
||
});
|
||
if (lis) {
|
||
lis.className = 'current';
|
||
}
|
||
}
|
||
}, {
|
||
key: 'created',
|
||
value: function created(player) {}
|
||
}, {
|
||
key: 'ready',
|
||
value: function ready(player) {
|
||
this.modalHtml.style.display = 'none';
|
||
// 隐藏设置里面的音轨
|
||
var settingEle = document.querySelector('.prism-setting-item.prism-setting-audio');
|
||
if (settingEle) {
|
||
settingEle.classList.add('player-hidden');
|
||
}
|
||
}
|
||
}]);
|
||
|
||
return TrackComponent;
|
||
}();
|
||
|
||
exports.default = TrackComponent;
|
||
|
||
/***/ }),
|
||
/* 86 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"track-components\">\n <div class=\"current-track\"></div>\n <ul class=\"track-list\">\n \n </ul>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 87 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"track-modal prism-info-display prism-info-left-bottom\">\n <span class=\"switchimg\"></span> <span class=\"current-track-tag\"></span>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 88 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(89);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 89 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".player-hidden {\n display: none !important; }\n\n.track-components {\n float: right;\n color: #fff;\n height: 35px;\n position: relative;\n box-sizing: border-box;\n margin-top: 5px; }\n\n.current-track {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n width: 100px;\n cursor: pointer; }\n\n.track-list {\n position: absolute;\n bottom: 46px;\n display: none;\n padding: 0;\n margin: 0;\n list-style: none;\n height: auto;\n width: 100px;\n overflow-y: scroll; }\n .track-list li {\n text-align: center;\n width: 100px;\n line-height: 30px;\n background-color: rgba(0, 0, 0, 0.6);\n cursor: pointer; }\n .track-list li.current {\n color: #00c1de; }\n .track-list li + li {\n border-top: 1px solid rgba(78, 78, 78, 0.3); }\n .track-list li:hover {\n background-color: rgba(0, 0, 0, 0.5); }\n\n@media (max-width: 768px) {\n .current-track {\n width: 40px; }\n .track-list li {\n width: 43px; } }\n\n.prism-player .prism-info-display .switchimg {\n color: #fff; }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 90 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(91);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.VideoADComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 91 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||
|
||
var _index = __webpack_require__(92);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
__webpack_require__(93);
|
||
|
||
var _utils = __webpack_require__(2);
|
||
|
||
var _mbIndex = __webpack_require__(95);
|
||
|
||
var _mbIndex2 = _interopRequireDefault(_mbIndex);
|
||
|
||
var _currentDevice = __webpack_require__(3);
|
||
|
||
var _currentDevice2 = _interopRequireDefault(_currentDevice);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
||
/*
|
||
* PC 视频广告组件
|
||
*/
|
||
var VideoAdComponent = function () {
|
||
/**
|
||
* @constructor PC 视频广告的构造函数
|
||
* @param adVideoSource {@String 广告视频的视频地址 必须参数}
|
||
* @param adLink {@String 广告视频的链接地址 必须参数}
|
||
* @param adCloseFunction {@Function 关闭广告的点击事件处理函数, 可选参数, 不传则默认关闭广告视频}
|
||
* @param closeText {@String 关闭广告的文字内容, 可选参数, 不传则默认为 '关闭广告'}
|
||
*/
|
||
function VideoAdComponent(adVideoSource, adLink, adCloseFunction) {
|
||
var closeText = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '关闭广告';
|
||
|
||
_classCallCheck(this, VideoAdComponent);
|
||
|
||
this.adVideoSource = adVideoSource;
|
||
this.adLink = adLink;
|
||
this.html = (0, _utils.parseDom)(_index2.default);
|
||
this.adInterval = null;
|
||
this.adCloseFunction = adCloseFunction;
|
||
this.html.querySelector('.video-ad-close-text').innerText = closeText;
|
||
|
||
this.adDuration = null; // 视频广告的时长, 用于倒计时,
|
||
this.player = null;
|
||
}
|
||
|
||
_createClass(VideoAdComponent, [{
|
||
key: 'createEl',
|
||
value: function createEl(el, player) {
|
||
var _this = this;
|
||
|
||
this.player = player;
|
||
var lang = player._options && player._options.language;
|
||
this.isEn = lang && lang === 'en-us';
|
||
this.html.querySelector('.video-ad-detail').innerText = this.isEn ? 'For more information' : '查看广告详情';
|
||
this.html.querySelector('.limit').innerText = this.isEn ? 'Your browser limits autoplay' : '您的浏览器限制';
|
||
this.html.querySelector('.manual').innerText = this.isEn ? 'Please Click' : '自动播放请点击';
|
||
// 给广告视频添加 source
|
||
var videoAd_ele = this.html.querySelector('#video-ad-content');
|
||
videoAd_ele.setAttribute('src', this.adVideoSource);
|
||
|
||
// 获取广告视频的时长, 并赋值到 this.duration 中
|
||
var self = this;
|
||
function getVideoAdTime() {
|
||
videoAd_ele.removeEventListener('canplay', getVideoAdTime);
|
||
//广告起播loading
|
||
document.getElementById('loadflag').style.display = 'none';
|
||
self.adDuration = Math.ceil(videoAd_ele.duration);
|
||
var adDuration_ele = self.html.querySelector('#video-ad-duration');
|
||
adDuration_ele.innerText = self.adDuration;
|
||
videoAd_ele.play().then(function () {
|
||
self.setAdInterval();
|
||
}).catch(function (err) {
|
||
self.html.querySelector('.autoplay-video-ad').style.display = 'block';
|
||
});
|
||
}
|
||
|
||
this.html.querySelector('.icon-player-play').onclick = function () {
|
||
_this.playVideoAd();
|
||
_this.html.querySelector('.autoplay-video-ad').style.display = 'none';
|
||
};
|
||
|
||
videoAd_ele.addEventListener('canplay', getVideoAdTime);
|
||
|
||
// 查看详情 整个广告链接添加 href
|
||
var videoLink = this.html.querySelector('.video-ad-link');
|
||
var videoDetail = this.html.querySelector('.video-ad-detail');
|
||
videoLink.setAttribute('href', this.adLink);
|
||
videoDetail.setAttribute('href', this.adLink);
|
||
|
||
el.appendChild(this.html);
|
||
|
||
// handle close
|
||
this.html.querySelector('.video-ad-close label').onclick = function () {
|
||
if (typeof _this.adCloseFunction === 'function') {
|
||
_this.adCloseFunction(_this);
|
||
} else {
|
||
_this.closeVideoAd();
|
||
}
|
||
};
|
||
}
|
||
}, {
|
||
key: 'ready',
|
||
value: function ready(player, e) {
|
||
if (this.html !== null) {
|
||
player.pause();
|
||
this.player = player;
|
||
}
|
||
}
|
||
|
||
// 暂停视频广告
|
||
|
||
}, {
|
||
key: 'pauseVideoAd',
|
||
value: function pauseVideoAd() {
|
||
this.clearAdInterval();
|
||
this.html.querySelector('#video-ad-content').pause();
|
||
}
|
||
|
||
// 播放视频广告
|
||
|
||
}, {
|
||
key: 'playVideoAd',
|
||
value: function playVideoAd() {
|
||
this.setAdInterval();
|
||
this.html.querySelector('#video-ad-content').play();
|
||
}
|
||
|
||
// 清除视频广告倒计时
|
||
|
||
}, {
|
||
key: 'clearAdInterval',
|
||
value: function clearAdInterval() {
|
||
this.adInterval !== null && clearInterval(this.adInterval);
|
||
this.adInterval = null;
|
||
}
|
||
|
||
// 视频广告倒计时
|
||
|
||
}, {
|
||
key: 'setAdInterval',
|
||
value: function setAdInterval() {
|
||
var _this2 = this;
|
||
|
||
var adDuration_ele = this.html.querySelector('#video-ad-duration');
|
||
this.adInterval = setInterval(function () {
|
||
_this2.adDuration -= 1;
|
||
if (_this2.adDuration <= 0) {
|
||
_this2.closeVideoAd();
|
||
//广告播放完了之后自动播放视频
|
||
document.getElementById(_this2.player.id()).getElementsByTagName('video')[0].play();
|
||
} else {
|
||
adDuration_ele.innerText = _this2.adDuration;
|
||
}
|
||
}, 1000);
|
||
}
|
||
|
||
// 关闭视频广告
|
||
|
||
}, {
|
||
key: 'closeVideoAd',
|
||
value: function closeVideoAd() {
|
||
this.clearAdInterval();
|
||
this.html.parentNode.removeChild(this.html);
|
||
this.html = null;
|
||
if (this.player && this.player.getOptions().autoplay) {
|
||
this.player.play();
|
||
}
|
||
}
|
||
}]);
|
||
|
||
return VideoAdComponent;
|
||
}();
|
||
|
||
/**
|
||
* 移动端视频广告组件
|
||
*/
|
||
|
||
|
||
var MbVideoAdComponent = function () {
|
||
/**
|
||
* @constructor 移动端视频广告组件
|
||
* @param {String adVideoSource 视频广告播放地址}
|
||
* @param {String adLink 广告链接}
|
||
* @param {Function adCloseFunction 关闭广告按钮点击出发的函数}
|
||
* @param {String closeText 可选参数 关闭按钮中的文字, 默认为 '关闭广告'}
|
||
*/
|
||
function MbVideoAdComponent(adVideoSource, adLink, adCloseFunction) {
|
||
var closeText = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '关闭广告';
|
||
|
||
_classCallCheck(this, MbVideoAdComponent);
|
||
|
||
this.adVideoSource = adVideoSource;
|
||
this.adLink = adLink;
|
||
this.html = (0, _utils.parseDom)(_mbIndex2.default);
|
||
this.adInterval = null;
|
||
this.adCloseFunction = adCloseFunction;
|
||
this.html.querySelector('.video-ad-close-text').innerText = closeText;
|
||
this.html.querySelector('.video-ad-link').setAttribute('href', this.adLink);
|
||
this.html.querySelector('.video-ad-detail').setAttribute('href', this.adLink);
|
||
this.adDuration = null; // 视频广告的时长, 用于倒计时,
|
||
}
|
||
|
||
_createClass(MbVideoAdComponent, [{
|
||
key: 'createEl',
|
||
value: function createEl(el, player) {
|
||
var lang = player._options && player._options.language;
|
||
this.isEn = lang && lang === 'en-us';
|
||
this.html.querySelector('.video-ad-detail').innerText = this.isEn ? 'For more information' : '查看广告详情';
|
||
this.html.querySelector('.limit').innerText = this.isEn ? 'Your browser limits autoplay' : '您的浏览器限制';
|
||
this.html.querySelector('.manual').innerText = this.isEn ? 'Please Click' : '自动播放请点击';
|
||
el.appendChild(this.html);
|
||
el.querySelector('video');
|
||
el.querySelector('video').setAttribute('preload', 'load');
|
||
|
||
// 隐藏 controlbar
|
||
var controlBar = el.querySelector('.prism-controlbar');
|
||
controlBar.className = controlBar.className + ' controlbar-element-hidden';
|
||
// 隐藏播放暂停按钮
|
||
var pauseBtn = el.querySelector('.prism-big-play-btn');
|
||
pauseBtn.className = pauseBtn.className + ' controlbar-element-hidden';
|
||
}
|
||
}, {
|
||
key: 'created',
|
||
value: function created(player) {
|
||
var _this3 = this;
|
||
|
||
this.player = player;
|
||
|
||
this.vdSource = player.getOptions().source;
|
||
player.loadByUrl(this.adVideoSource);
|
||
|
||
var btnPlay_el = this.html.querySelector('.autoplay-video-ad');
|
||
btnPlay_el.onclick = function () {
|
||
//alert('created')
|
||
if (_this3.adDuration === null) {
|
||
return;
|
||
}
|
||
player.loadByUrl(_this3.adVideoSource);
|
||
_this3.html.parentNode.querySelector('.prism-big-play-btn').click();
|
||
};
|
||
|
||
if (this.adDuration === null) {
|
||
var _timeupdateHandle = function _timeupdateHandle() {
|
||
var duration = aliplayer_el.duration;
|
||
if (!isNaN(duration) && duration !== 0) {
|
||
aliplayer_el.removeEventListener('timeupdate', _timeupdateHandle);
|
||
self.adDuration = Math.ceil(aliplayer_el.duration);
|
||
if (self.html.querySelector('.autoplay-video-ad').style.display !== 'none') {
|
||
self.html.querySelector('.autoplay-video-ad').style.display = 'none';
|
||
player.play();
|
||
}
|
||
self.html.querySelector('#video-ad-duration').innerText = self.adDuration;
|
||
self.setAdInterval();
|
||
// document.getElementById('loadflag').style.display = 'none'
|
||
}
|
||
};
|
||
|
||
//player.loadByUrl(this.adVideoSource)
|
||
this.adDuration = undefined;
|
||
|
||
var aliplayerWrap_el = this.html.parentNode;
|
||
var aliplayer_el = aliplayerWrap_el.querySelector('video');
|
||
var self = this;
|
||
|
||
|
||
aliplayer_el.addEventListener('timeupdate', _timeupdateHandle);
|
||
}
|
||
}
|
||
}, {
|
||
key: 'ready',
|
||
value: function ready(player) {
|
||
var _this4 = this;
|
||
|
||
//alert("2222222")
|
||
// let btnPlay_el = this.html.querySelector('.autoplay-video-ad')
|
||
// btnPlay_el.onclick = () => {
|
||
// alert('ready')
|
||
// if (this.adDuration === null) {
|
||
// return
|
||
// }
|
||
// this.html.parentNode.querySelector('.prism-big-play-btn').click()
|
||
// }
|
||
|
||
// if (this.adDuration === null) {
|
||
// player.loadByUrl(this.adVideoSource)
|
||
// this.adDuration = undefined
|
||
|
||
// let aliplayerWrap_el = this.html.parentNode
|
||
// let aliplayer_el = aliplayerWrap_el.querySelector('video')
|
||
// let self = this
|
||
// function timeupdateHandle () {
|
||
// let duration = aliplayer_el.duration
|
||
// console.log('duration', duration)
|
||
// if (!isNaN(duration) && duration !== 0) {
|
||
// aliplayer_el.removeEventListener('timeupdate', timeupdateHandle)
|
||
// self.adDuration = Math.ceil(aliplayer_el.duration)
|
||
// if (self.html.querySelector('.autoplay-video-ad').style.display !== 'none') {
|
||
// self.html.querySelector('.autoplay-video-ad').style.display = 'none'
|
||
// player.play()
|
||
// }
|
||
// self.html.querySelector('#video-ad-duration').innerText = self.adDuration
|
||
// self.setAdInterval()
|
||
// }
|
||
// }
|
||
|
||
// aliplayer_el.addEventListener('timeupdate', timeupdateHandle)
|
||
|
||
// 关闭广告点击事件
|
||
this.html.querySelector('.video-ad-close label').onclick = function () {
|
||
if (typeof _this4.adCloseFunction === 'function') {
|
||
_this4.adCloseFunction(_this4);
|
||
} else {
|
||
_this4.closeVideoAd();
|
||
}
|
||
//广告播放完了之后自动播放视频
|
||
document.getElementById(player.id()).getElementsByTagName('video')[0].play();
|
||
};
|
||
// }
|
||
}
|
||
|
||
// 视频广告倒计时
|
||
|
||
}, {
|
||
key: 'setAdInterval',
|
||
value: function setAdInterval() {
|
||
var _this5 = this;
|
||
|
||
var adDuration_ele = this.html.querySelector('#video-ad-duration');
|
||
this.adInterval = setInterval(function () {
|
||
_this5.adDuration -= 1;
|
||
if (_this5.adDuration <= 0) {
|
||
_this5.closeVideoAd();
|
||
//广告播放完了之后自动播放视频
|
||
document.getElementById(_this5.player.id()).getElementsByTagName('video')[0].play();
|
||
} else {
|
||
adDuration_ele.innerText = _this5.adDuration;
|
||
}
|
||
}, 1000);
|
||
}
|
||
|
||
// 关闭视频广告
|
||
|
||
}, {
|
||
key: 'closeVideoAd',
|
||
value: function closeVideoAd() {
|
||
this.clearAdInterval();
|
||
this.player.loadByUrl(this.vdSource);
|
||
var controlBar = this.html.parentNode.querySelector('.prism-controlbar');
|
||
controlBar.className = controlBar.className.replace(' controlbar-element-hidden', '');
|
||
var pauseBtn = this.html.parentNode.querySelector('.prism-big-play-btn');
|
||
pauseBtn.className = pauseBtn.className.replace(' controlbar-element-hidden', '');
|
||
if (this.player.getOptions().autoplay) {
|
||
this.player.play();
|
||
}
|
||
this.html.parentNode.removeChild(this.html);
|
||
}
|
||
|
||
// 清除视频广告倒计时
|
||
|
||
}, {
|
||
key: 'clearAdInterval',
|
||
value: function clearAdInterval() {
|
||
this.adInterval !== null && clearInterval(this.adInterval);
|
||
this.adInterval = null;
|
||
}
|
||
|
||
// 播放视频广告
|
||
|
||
}, {
|
||
key: 'playVideoAd',
|
||
value: function playVideoAd() {
|
||
this.setAdInterval();
|
||
this.player.play();
|
||
}
|
||
|
||
// 暂停视频广告
|
||
|
||
}, {
|
||
key: 'pauseVideoAd',
|
||
value: function pauseVideoAd() {
|
||
this.clearAdInterval();
|
||
this.player.pause();
|
||
}
|
||
}]);
|
||
|
||
return MbVideoAdComponent;
|
||
}();
|
||
|
||
var defaultComponent = VideoAdComponent;
|
||
|
||
if (_currentDevice2.default.mobile()) {
|
||
defaultComponent = MbVideoAdComponent;
|
||
}
|
||
|
||
exports.default = defaultComponent;
|
||
|
||
/***/ }),
|
||
/* 92 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"video-ad-component\">\n <video id=\"video-ad-content\" x5-video-player-type=\"h5\" x5-video-player-fullscreen=\"false\"></video>\n <a class=\"video-ad-link\" target=\"_blank\"></a>\n <div class=\"video-ad-close\">\n <span id=\"video-ad-duration\"></span>\n <label>\n <span class=\"video-ad-close-text\"></span>\n <i class=\"iconfont icon-close\"></i>\n </label>\n </div>\n <a class=\"video-ad-detail\" target=\"_blank\"></a>\n <div class=\"autoplay-video-ad\">\n <i class=\"iconfont icon-player-play\"></i>\n <span class=\"limit\"></span>\n <span class=\"manual\"></span>\n </div>\n <div id=\"loadflag\" class=\"prism-loading loading-center\">\n <div class=\"circle\"></div> \n <div class=\"circle1\"></div>\n </div>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 93 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(94);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 94 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".video-ad-component {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 2147483647;\n background-color: #000;\n font-size: 12px; }\n .video-ad-component #video-ad-content {\n width: 100%;\n height: 100%; }\n .video-ad-component .video-ad-link {\n width: 100%;\n height: 100%;\n display: block;\n position: absolute;\n top: 0;\n left: 0; }\n .video-ad-component .video-ad-close {\n background-color: rgba(59, 59, 59, 0.85);\n position: absolute;\n top: 15px;\n right: 20px;\n color: #fff;\n line-height: 26px;\n padding: 0 10px;\n user-select: none; }\n .video-ad-component .video-ad-close #video-ad-duration {\n color: #00c1de;\n vertical-align: top;\n font-size: 14px;\n position: relative;\n display: inline-block;\n text-align: right; }\n .video-ad-component .video-ad-close #video-ad-duration::after {\n background-color: #fff;\n position: absolute;\n content: '';\n right: -7px;\n top: 8px;\n bottom: 8px;\n width: 1px; }\n .video-ad-component .video-ad-close label {\n cursor: pointer;\n display: inline-block; }\n .video-ad-component .video-ad-close .icon-close {\n font-size: 12px;\n vertical-align: top; }\n @media (min-width: 768px) {\n .video-ad-component .video-ad-close .icon-close:hover {\n color: #00c1de; } }\n .video-ad-component .video-ad-close .video-ad-close-text {\n padding: 0 5px 0 10px; }\n .video-ad-component .video-ad-detail {\n position: absolute;\n right: 35px;\n bottom: 30px;\n background-color: rgba(0, 222, 255, 0.85);\n color: #fff;\n padding: 8px 12px;\n user-select: none;\n cursor: pointer;\n transition: background-color .15s; }\n @media (min-width: 768px) {\n .video-ad-component .video-ad-detail:hover {\n background-color: #00deff; } }\n .video-ad-component .autoplay-video-ad {\n position: absolute;\n color: #fff;\n top: 50%;\n left: 50%;\n text-align: center;\n padding: 10px;\n border-radius: 5px;\n background-color: rgba(144, 147, 153, 0.85);\n transform: translate(-50%, -50%);\n display: none; }\n .video-ad-component .autoplay-video-ad i {\n font-size: 42px;\n margin-bottom: 7px;\n display: inline-block;\n cursor: pointer; }\n .video-ad-component .autoplay-video-ad i + span {\n margin-bottom: 5px; }\n .video-ad-component .autoplay-video-ad span {\n display: block; }\n\n.controlbar-element-hidden {\n display: none !important; }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 95 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "<div class=\"video-ad-component\" style=\"background-color: transparent;\">\n <a class=\"video-ad-link\" target=\"_blank\"></a>\n <div class=\"video-ad-close\">\n <span id=\"video-ad-duration\"></span>\n <label>\n <span class=\"video-ad-close-text\"></span>\n <i class=\"iconfont icon-close\"></i>\n </label>\n </div>\n <a class=\"video-ad-detail\" target=\"_blank\"></a>\n <div class=\"autoplay-video-ad\" style=\"display: block;\">\n <i class=\"iconfont icon-player-play\"></i>\n <span class=\"limit\"></span>\n <span class=\"manual\"></span>\n </div>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 96 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(97);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.PlayerNextComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 97 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||
|
||
__webpack_require__(98);
|
||
|
||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
||
var PlayerNextComponent = function () {
|
||
function PlayerNextComponent(clickHandle) {
|
||
_classCallCheck(this, PlayerNextComponent);
|
||
|
||
this.clickHandle = clickHandle;
|
||
this._html = document.createElement('div');
|
||
this._html.setAttribute('class', 'player-olympic-player-next');
|
||
var innerDiv = document.createElement('div');
|
||
innerDiv.setAttribute('class', 'player-olympic-player-next-tip');
|
||
innerDiv.textContent = "Next";
|
||
this._html.appendChild(innerDiv);
|
||
}
|
||
|
||
_createClass(PlayerNextComponent, [{
|
||
key: 'createEl',
|
||
value: function createEl(el) {
|
||
this._html.addEventListener('click', this.clickHandle);
|
||
el.querySelector('.prism-play-btn').insertAdjacentElement('afterend', this._html);
|
||
}
|
||
}]);
|
||
|
||
return PlayerNextComponent;
|
||
}();
|
||
|
||
exports.default = PlayerNextComponent;
|
||
|
||
/***/ }),
|
||
/* 98 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(99);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 99 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".player-olympic-player-next {\n width: 32px;\n height: 32px;\n background: url(" + __webpack_require__(100) + ") center no-repeat;\n background-size: contain;\n float: left;\n margin-left: 10px;\n margin-top: 8px;\n cursor: pointer;\n position: relative; }\n\n.player-olympic-player-next-tip {\n position: absolute;\n top: -45px;\n display: none;\n font-size: 12px;\n color: #ffffff;\n line-height: 28px;\n letter-spacing: 0;\n text-align: center;\n background: #3c3c3c;\n box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);\n width: 58px;\n height: 28px; }\n\n.player-olympic-player-next:hover .player-olympic-player-next-tip {\n display: block; }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 100 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAAXNSR0IArs4c6QAAApJJREFUeAHt2T9OwzAUBvAatTC1lZIwsTJzAC7ACTgBLEhdOjGWDSYWVsQB6AVgR2wsCAkhsTI1ttQyIP4I87nCkpEiVJU0fkEfQ506afv847n2axoN/lGAAhSgAAUoQAEKUIACFKAABShAAQpQgAIUmFVAzXpheF2e5z2l1EuSJGdobXgu5vEozwtjWc2yucbpxrI0z4CsUtmntafamCtjzMY871GX18wF5Adnrd0E1M1I6+ORtW3f/5/aPwE5CCA18dBXxtxrrbf/E44by5+BPAig1pBN57nWF+PxeN33170tDchDAGrr7f39Dtk0wPGK769rWzrQN8QKsukA2eSgtuqK4+JeFJA3WQfUBaDOsTVY8511ahcNNLXAVHNf3u5LvI/jJoEKBLCDayObjnNjbgC1WXCJyK5KMujHyK3dANYV9k6nk8kk/XFO4JPqgYCAaabwsIPV7gHZtDN9LhDHhRQFyFsAJsW0E12yRAUKoMSWLCKAHNR0dRNYsogBCrJJVMkiDiiAElGyiAX6hopeskgH8gkVrZW+7X9tKHWUJckhftp9jaEkFgggl61ms9ftdh9jwPjPFAcEmCf8wt5P03Tog4zZigECzAdqtBObJINMqeeYKOFniwACzvWSUnu4jXQbBifhOCoQYDSm0760+2vhPyYKEGAsptPZcqu13+l0dBiQtOPqgZS6RdbsZWl6LQ2jKJ7KgIDyjMwZYDqdoP0oCkZiXyVAABm6m4tYup8kIvwW06KBHrE69QBz+VsQks8tCih6iVAWeulAmE4iSgRxQIARVSKIAXIrksQSQQQQcMSWCFGBsA/OgbMruUQoC4jvQwEKUIACFKAABShAAQpQgAIUoAAFKEABClBgdoEvgRgNiNlEUbkAAAAASUVORK5CYII="
|
||
|
||
/***/ }),
|
||
/* 101 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _index = __webpack_require__(102);
|
||
|
||
var _index2 = _interopRequireDefault(_index);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
if (!window.AliPlayerComponent) {
|
||
window.AliPlayerComponent = {};
|
||
}
|
||
window.AliPlayerComponent.StaticAdComponent = _index2.default;
|
||
|
||
/***/ }),
|
||
/* 102 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
var html = __webpack_require__(103);
|
||
__webpack_require__(105);
|
||
|
||
/**
|
||
* 静态广告组件
|
||
*/
|
||
var StaticADComponent = Aliplayer.Component({
|
||
/**
|
||
* 初始函数,在new对象时调用
|
||
*
|
||
* @param {string} adAddress - 广告视频地址
|
||
* @param {string} toAddress - 广告链接地址
|
||
*/
|
||
init: function init(adAddress, toAddress) {
|
||
this.adAddress = adAddress;
|
||
this.toAddress = toAddress;
|
||
this.$html = $(html);
|
||
},
|
||
|
||
/**
|
||
* 创建广告Dom元素
|
||
*/
|
||
createEl: function createEl(el) {
|
||
(Array.isArray(this.$html) ? this.$html.filter('.ad')[0] : this.$html.find('.ad')).attr('src', this.adAddress);
|
||
var $adWrapper = Array.isArray(this.$html) ? this.$html.filter('.ad-wrapper')[0] : this.$html.find('.ad-wrapper');
|
||
$adWrapper.attr('href', this.toAddress);
|
||
$adWrapper.click(function () {
|
||
Aliplayer.util.stopPropagation();
|
||
});
|
||
(Array.isArray(this.$html) ? this.$html.filter('.close')[0] : this.$html.find('.close')).click(function () {
|
||
this.$html.hide();
|
||
});
|
||
$(el).append(this.$html);
|
||
},
|
||
ready: function ready(player, e) {},
|
||
/**
|
||
* 隐藏广告
|
||
*/
|
||
play: function play(player, e) {
|
||
this.$html.hide();
|
||
},
|
||
/**
|
||
* 显示广告
|
||
*/
|
||
pause: function pause(player, e) {
|
||
this.$html.show();
|
||
},
|
||
/**
|
||
* 隐藏广告
|
||
*/
|
||
playing: function playing(player, e) {
|
||
this.$html.hide();
|
||
},
|
||
waiting: function waiting(player, e) {},
|
||
timeupdate: function timeupdate(player, e) {},
|
||
error: function error(player, e) {},
|
||
/**
|
||
* 显示广告
|
||
*/
|
||
ended: function ended(player, e) {
|
||
this.$html.show();
|
||
}
|
||
});
|
||
|
||
exports.default = StaticADComponent;
|
||
|
||
/***/ }),
|
||
/* 103 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
module.exports = "<div class=\"ad-container\">\n <span>广告</span>\n <img class=\"close\" src=\"" + __webpack_require__(104) + "\"></img>\n <a class='ad-wrapper' target=\"_blank\">\n <img class=\"ad\"></img>\n </a>\n</div>";
|
||
|
||
/***/ }),
|
||
/* 104 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpCNzdDNzkwNTE1MjA2ODExODIyQTg3RDcyQkRGNjk2MiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3Rjg1NzQ2NDY0MjYxMUU2ODk0QUZBRTg4N0Y5MDgxRCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3Rjg1NzQ2MzY0MjYxMUU2ODk0QUZBRTg4N0Y5MDgxRCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OUU0MTk5OEUxRTIwNjgxMTgyMkE4N0Q3MkJERjY5NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Qjc3Qzc5MDUxNTIwNjgxMTgyMkE4N0Q3MkJERjY5NjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7gi5EfAAABEklEQVR42qyUTQ6CMBCFW004hLrSU3gL/zd6Cb0AsJSt3kIT40lcG2N0oXdQN/W9pJgKLT/iSz5Spp0HZcpIpZSwyAM9TRc0wAvcwAHswF7HvkXDBH1wUvnimkEy37ypg6Uqr6XOTRn+YmaafhmOVHXRQ0hcWIAzaIlquoN2DZdx0iwIAiGlFGEYprIY4xzXJNQEE253Y3t/3/d5nhQSPzGOGeOcQ1saXl2zpmkBM+pKw0fWiti0gBn1rFlPuyF+L9vYKbgeXY8zt2n7pq4tb/LMsgplK8q0iFlB09m/D3YnLspCVNccPM3mEFX4jyNX+1r9YLZ2ta+YYYkGO8pqsCaerv4WXMBLc9GxqV6Tyn0LMACAi/Wdy4svogAAAABJRU5ErkJggg=="
|
||
|
||
/***/ }),
|
||
/* 105 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(106);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 106 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, ".ad-container {\n display: none;\n position: absolute;\n left: 50%;\n top: 50%;\n margin-left: -150px;\n margin-top: -100px; }\n\n.ad-container span {\n width: 27px;\n height: 16px;\n border-radius: 1px;\n background-color: rgba(0, 0, 0, 0.5);\n position: absolute;\n font-size: 10px;\n color: #fff;\n line-height: 16px;\n text-align: center;\n top: 0px;\n left: 0px; }\n\n.ad-container .close {\n position: absolute;\n top: 2px;\n right: 2px;\n width: 20px;\n height: 20px; }\n\n.ad-container .close:hover {\n cursor: pointer; }\n\n.ad-container .ad {\n width: 300px;\n height: 200px; }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 107 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(108);
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
// add the styles to the DOM
|
||
var update = __webpack_require__(1)(content, {});
|
||
if(content.locals) module.exports = content.locals;
|
||
// Hot Module Replacement
|
||
if(false) {}
|
||
|
||
/***/ }),
|
||
/* 108 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports = module.exports = __webpack_require__(0)();
|
||
// imports
|
||
|
||
|
||
// module
|
||
exports.push([module.i, "@charset \"UTF-8\";\n@font-face {\n font-family: \"iconfont\";\n src: url(" + __webpack_require__(5) + ");\n /* IE9*/\n src: url(" + __webpack_require__(5) + "#iefix) format(\"embedded-opentype\"), url(\"data:application/x-font-woff;charset=utf-8;base64,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\") format(\"woff\"), url(" + __webpack_require__(109) + ") format(\"truetype\"), url(" + __webpack_require__(110) + "#iconfont) format(\"svg\");\n /* iOS 4.1- */ }\n\n.iconfont {\n font-family: \"iconfont\" !important;\n font-size: 16px;\n font-style: normal;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n\n.icon-list:before {\n content: \"\\E643\"; }\n\n.icon-skipnext:before {\n content: \"\\EA9E\"; }\n\n.icon-skip-previous:before {\n content: \"\\E6D3\"; }\n\n.icon-close:before {\n content: \"\\E616\"; }\n\n.icon-player-rotate-left:before {\n content: \"\\E658\"; }\n\n.icon-player-rotate-right:before {\n content: \"\\E659\"; }\n\n.icon-player-switch:before {\n content: \"\\E781\"; }\n\n.icon-danmu-close:before {\n content: \"\\E696\"; }\n\n.icon-danmu-open:before {\n content: \"\\E697\"; }\n\n.icon-player-play:before {\n content: \"\\E641\"; }\n\nbody {\n font-family: \"Helvetica Neue\",Helvetica,\"PingFang SC\",\"Hiragino Sans GB\",\"Microsoft YaHei\",\"\\5FAE\\8F6F\\96C5\\9ED1\",Arial,sans-serif; }\n\n/* previewVodComponents 中的自定义 css */\n.vip-join {\n color: #00c1de; }\n\n.vip_limit_content {\n display: flex;\n width: 100%;\n height: 100%;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center; }\n\n.vip_limit_content .title {\n font-size: 18px;\n line-height: 36px;\n color: #fff;\n text-align: center;\n width: 100%; }\n\n.vip_limit_button_box {\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n width: 100%; }\n\n.vip_limit_btn {\n display: inline-block;\n min-width: 100px;\n position: relative;\n background: #f60;\n padding: 0 35px;\n margin: 0px 5px 20px 5px;\n border-radius: 38px;\n font-size: 18px;\n line-height: 38px;\n color: #623A0C;\n text-align: center;\n background-image: linear-gradient(-135deg, #FBE8A8 0%, #F8E7AC 15%, #E2C078 100%);\n cursor: pointer; }\n\n.vip_limit_close {\n text-align: center; }\n .vip_limit_close span {\n display: inline-block;\n width: 40px;\n height: 40px;\n line-height: 36px;\n background: rgba(165, 165, 165, 0.54);\n border-radius: 50%;\n font-size: 24px;\n cursor: pointer; }\n", ""]);
|
||
|
||
// exports
|
||
|
||
|
||
/***/ }),
|
||
/* 109 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "data:application/x-font-ttf;base64,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Ly8vRS8vL0YuLi6jAmNKSmMCAmNKSmP+0wFJNjZJAQFJNjZJtQcHUjEHDhIIQQcHYgcSAAACAAD/0wOqAzQAIQBDAAA3IT4BNzU0NjIWHQEOAQchFxYUBiIvAS4BNTQ/ATYyFhQHASEOAQcVFAYiJj0BPgE3IScmNDYyHwEeARUUDwEGIiY0N8YCGio1AREeEQJZRf3NdgoUGQqcBQUKnAoZFAoCJ/2WKjUBER4RAllFAlNdCRMZCp0FBQqdChkTCcABNSpgDxERD2BFWQJ2ChkUCp0FDAUOCJ0KFBkKAUoBNSpgDxERD2BFWQJdChkTCaAFDQUNCZ0KFBkKAAAAEgDeAAEAAAAAAAAAFQAAAAEAAAAAAAEACAAVAAEAAAAAAAIABwAdAAEAAAAAAAMACAAkAAEAAAAAAAQACAAsAAEAAAAAAAUACwA0AAEAAAAAAAYACAA/AAEAAAAAAAoAKwBHAAEAAAAAAAsAEwByAAMAAQQJAAAAKgCFAAMAAQQJAAEAEACvAAMAAQQJAAIADgC/AAMAAQQJAAMAEADNAAMAAQQJAAQAEADdAAMAAQQJAAUAFgDtAAMAAQQJAAYAEAEDAAMAAQQJAAoAVgETAAMAAQQJAAsAJgFpCkNyZWF0ZWQgYnkgaWNvbmZvbnQKaWNvbmZvbnRSZWd1bGFyaWNvbmZvbnRpY29uZm9udFZlcnNpb24gMS4waWNvbmZvbnRHZW5lcmF0ZWQgYnkgc3ZnMnR0ZiBmcm9tIEZvbnRlbGxvIHByb2plY3QuaHR0cDovL2ZvbnRlbGxvLmNvbQAKAEMAcgBlAGEAdABlAGQAIABiAHkAIABpAGMAbwBuAGYAbwBuAHQACgBpAGMAbwBuAGYAbwBuAHQAUgBlAGcAdQBsAGEAcgBpAGMAbwBuAGYAbwBuAHQAaQBjAG8AbgBmAG8AbgB0AFYAZQByAHMAaQBvAG4AIAAxAC4AMABpAGMAbwBuAGYAbwBuAHQARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQABeAUxbXVsdQhza2lwbmV4dAVjbG9zZQRwbGF5DXNraXAtcHJldmlvdXMRYXJyb3ctcm90YXRlLWxlZnQSYXJyb3ctcm90YXRlLXJpZ2h0EmJvZmFuZ3FpLWRhbm11Z3VhbhFib2ZhbmdxaS1kYW5tdWthaQ5uZWlyb25ncWllaHVhbgAA"
|
||
|
||
/***/ }),
|
||
/* 110 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPCEtLQoyMDEzLTktMzA6IENyZWF0ZWQuCi0tPgo8c3ZnPgo8bWV0YWRhdGE+CkNyZWF0ZWQgYnkgaWNvbmZvbnQKPC9tZXRhZGF0YT4KPGRlZnM+Cgo8Zm9udCBpZD0iaWNvbmZvbnQiIGhvcml6LWFkdi14PSIxMDI0IiA+CiAgPGZvbnQtZmFjZQogICAgZm9udC1mYW1pbHk9Imljb25mb250IgogICAgZm9udC13ZWlnaHQ9IjUwMCIKICAgIGZvbnQtc3RyZXRjaD0ibm9ybWFsIgogICAgdW5pdHMtcGVyLWVtPSIxMDI0IgogICAgYXNjZW50PSI4OTYiCiAgICBkZXNjZW50PSItMTI4IgogIC8+CiAgICA8bWlzc2luZy1nbHlwaCAvPgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ieCIgdW5pY29kZT0ieCIgaG9yaXotYWR2LXg9IjEwMDEiCmQ9Ik0yODEgNTQzcS0yNyAtMSAtNTMgLTFoLTgzcS0xOCAwIC0zNi41IC02dC0zMi41IC0xOC41dC0yMyAtMzJ0LTkgLTQ1LjV2LTc2aDkxMnY0MXEwIDE2IC0wLjUgMzB0LTAuNSAxOHEwIDEzIC01IDI5dC0xNyAyOS41dC0zMS41IDIyLjV0LTQ5LjUgOWgtMTMzdi05N2gtNDM4djk3ek05NTUgMzEwdi01MnEwIC0yMyAwLjUgLTUydDAuNSAtNTh0LTEwLjUgLTQ3LjV0LTI2IC0zMHQtMzMgLTE2dC0zMS41IC00LjVxLTE0IC0xIC0yOS41IC0wLjUKdC0yOS41IDAuNWgtMzJsLTQ1IDEyOGgtNDM5bC00NCAtMTI4aC0yOWgtMzRxLTIwIDAgLTQ1IDFxLTI1IDAgLTQxIDkuNXQtMjUuNSAyM3QtMTMuNSAyOS41dC00IDMwdjE2N2g5MTF6TTE2MyAyNDdxLTEyIDAgLTIxIC04LjV0LTkgLTIxLjV0OSAtMjEuNXQyMSAtOC41cTEzIDAgMjIgOC41dDkgMjEuNXQtOSAyMS41dC0yMiA4LjV6TTMxNiAxMjNxLTggLTI2IC0xNCAtNDhxLTUgLTE5IC0xMC41IC0zN3QtNy41IC0yNXQtMyAtMTV0MSAtMTQuNQp0OS41IC0xMC41dDIxLjUgLTRoMzdoNjdoODFoODBoNjRoMzZxMjMgMCAzNCAxMnQyIDM4cS01IDEzIC05LjUgMzAuNXQtOS41IDM0LjVxLTUgMTkgLTExIDM5aC0zNjh6TTMzNiA0OTh2MjI4cTAgMTEgMi41IDIzdDEwIDIxLjV0MjAuNSAxNS41dDM0IDZoMTg4cTMxIDAgNTEuNSAtMTQuNXQyMC41IC01Mi41di0yMjdoLTMyN3oiIC8+CiAgICAKCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSIxbXVsdSIgdW5pY29kZT0iJiM1ODk0NzsiIGQ9Ik0xMDcuMiA2ODMuMm0tNjcuMiAwYTQuMiA0LjIgMCAxIDAgMTM0LjQgMCA0LjIgNC4yIDAgMSAwLTEzNC40IDBaTTk4MC44IDc1MC40IDI5Ny42IDc1MC40Yy05LjYgMC0xNi04LTE2LTE2bDAtMTAyLjRjMC05LjYgOC0xNiAxNi0xNmw2ODMuMiAwYzkuNiAwIDE2IDggMTYgMTZsMCAxMDIuNEM5OTYuOCA3NDQgOTg4LjggNzUwLjQgOTgwLjggNzUwLjR6TTk2IDM5OC40bS02Ny4yIDBhNC4yIDQuMiAwIDEgMCAxMzQuNCAwIDQuMiA0LjIgMCAxIDAtMTM0LjQgMFpNOTY4IDQ2NS42IDI4NC44IDQ2NS42Yy05LjYgMC0xNi04LTE2LTE2bDAtMTAyLjRjMC05LjYgOC0xNiAxNi0xNmw2ODMuMiAwYzkuNiAwIDE2IDggMTYgMTZsMCAxMDIuNEM5ODQgNDU3LjYgOTc3LjYgNDY1LjYgOTY4IDQ2NS42ek05NiAxMDAuOG0tNjcuMiAwYTQuMiA0LjIgMCAxIDAgMTM0LjQgMCA0LjIgNC4yIDAgMSAwLTEzNC40IDBaTTk2OCAxNjggMjg0LjggMTY4Yy05LjYgMC0xNi04LTE2LTE2bDAtMTAyLjRjMC05LjYgOC0xNiAxNi0xNmw2ODMuMiAwYzkuNiAwIDE2IDggMTYgMTZsMCAxMDIuNEM5ODQgMTYwIDk3Ny42IDE2OCA5NjggMTY4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InNraXBuZXh0IiB1bmljb2RlPSImIzYwMDYyOyIgZD0iTTY4Mi42NjY2NjcgMTIyLjAyNjY2NyA3NjggMTIyLjAyNjY2NyA3NjggNjM0LjAyNjY2NyA2ODIuNjY2NjY3IDYzNC4wMjY2NjdNMjU2IDEyMi4wMjY2NjcgNjE4LjY2NjY2NyAzNzguMDI2NjY3IDI1NiA2MzQuMDI2NjY3IDI1NiAxMjIuMDI2NjY3WiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImNsb3NlIiB1bmljb2RlPSImIzU4OTAyOyIgZD0iTTg3Ny4yMTYgNDA0LjE5Mk01NzUuMzI4IDM4NS41MDQgOTQ2Ljc4NCA3NTUuMzI4YzE3LjU2OCAxNy41MDQgMTcuNjY0IDQ1LjgyNCAwLjE5MiA2My40MjQtMTcuNTA0IDE3LjYzMi00NS43OTIgMTcuNjY0LTYzLjM2IDAuMTkyTDUxMi4wMzIgNDQ5LjA1NiAxNDMuNzEyIDgxOC43ODRDMTI2LjMwNCA4MzYuMjg4IDk3LjkyIDgzNi4zNTIgODAuMzg0IDgxOC44OCA2Mi44NDggODAxLjM3NiA2Mi44MTYgNzcyLjk5MiA4MC4yODggNzU1LjQyNGwzNjguMjI0LTM2OS42MzJMNzcuMjE2IDE2LjE5MmMtMTcuNTY4LTE3LjUwNC0xNy42NjQtNDUuODI0LTAuMTkyLTYzLjQyNCA4LjczNi04LjggMjAuMjU2LTEzLjIxNiAzMS43NzYtMTMuMjE2IDExLjQyNCAwIDIyLjg0OCA0LjM1MiAzMS41ODQgMTMuMDU2bDM3MS4zNiAzNjkuNjk2IDM3MS42OC0zNzMuMDg4Qzg5Mi4xOTItNTkuNjE2IDkwMy42OC02NCA5MTUuMTY4LTY0YzExLjQ1NiAwIDIyLjkxMiA0LjM4NCAzMS42NDggMTMuMDg4IDE3LjUwNCAxNy41MDQgMTcuNTY4IDQ1LjgyNCAwLjA5NiA2My4zOTJMNTc1LjMyOCAzODUuNTA0IDU3NS4zMjggMzg1LjUwNHpNNTc1LjMyOCAzODUuNTA0IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icGxheSIgdW5pY29kZT0iJiM1ODk0NTsiIGQ9Ik01MTIgODkzLjk4NHEtMTM5LjAwOCAwLTI1Ni41MTItNjguNTEyVDY5LjQ3MiA2MzkuNDU2IDAuOTYgMzgyLjk0NHQ2OC41MTItMjU2LjUxMiAxODYuMDE2LTE4Ni4wMTZUNTEyLTEyOC4wOTZ0MjU2LjUxMiA2OC41MTIgMTg2LjAxNiAxODYuMDE2IDY4LjUxMiAyNTYuNTEyLTY4LjUxMiAyNTYuNTEyLTE4Ni4wMTYgMTg2LjAxNlQ1MTIgODkzLjk4NHogbTIwMC01MjQuOTkybC0yOTEuMDA4LTI0Ny4wMDhxLTYuMDE2LTYuMDE2LTE1LjAwOC02LjAxNi04IDAtMTQuNDk2IDUuNTA0dC02LjQ5NiAxNC40OTZWNjMwLjk3NnEwIDggNi40OTYgMTMuNTA0dDE1LjAwOCA1LjUwNCAxNC40OTYtNi4wMTZsMjkxLjAwOC0yNDcuMDA4cTYuMDE2LTYuMDE2IDYuMDE2LTE0LjAxNnQtNi4wMTYtMTQuMDE2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InNraXAtcHJldmlvdXMiIHVuaWNvZGU9IiYjNTkwOTE7IiBkPSJNMjU2IDY0MGg4NS4zMzMzMzN2LTUxMkgyNTZ6TTQwNS4zMzMzMzMgMzg0bDM2Mi42NjY2NjctMjU2VjY0MHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJhcnJvdy1yb3RhdGUtbGVmdCIgdW5pY29kZT0iJiM1ODk2ODsiIGQ9Ik05Ni40IDc3OS4xbDgwLjYtODAuNmM4MC43IDgxLjMgMTkyLjUgMTMxLjggMzE2LjEgMTMyIDI0Ni4yIDAuNSA0NDcuMy0xOTkuNyA0NDcuNy00NDUuOUM5NDEuMiAxMzcuNSA3NDEtNjMgNDk0LTYzYy0xMzEuOSAwLTI1MC40IDU3LjEtMzMyLjIgMTQ4LTM3LjIgNDEuNC03LjkgMTA3LjQgNDcuOCAxMDcuOSAxOC41IDAuMiAzNi4yLTcuNSA0OC41LTIxLjIgNTguMS02NC41IDE0Mi4zLTEwNS4xIDIzNS45LTEwNS4xIDE3Ni4xIDAgMzE4LjggMTQzLjUgMzE3LjMgMzIwLTEuNSAxNzYuMi0xNDUuMSAzMTYuNi0zMjEuNCAzMTQuNC04Ni42LTEuMS0xNjQuOC0zNi45LTIyMS40LTk0LjFsNzkuNi03OS42YzExLjgtMTEuOCAzLjQtMzEuOS0xMy4yLTMxLjlIODMuMmMtMTAuMyAwLTE4LjcgOC4zLTE4LjcgMTguN1Y3NjUuOWMwIDE2LjYgMjAuMSAyNSAzMS45IDEzLjJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iYXJyb3ctcm90YXRlLXJpZ2h0IiB1bmljb2RlPSImIzU4OTY5OyIgZD0iTTk0MC44IDc2NS45di0yNTEuOGMwLTEwLjQtOC40LTE4LjctMTguNy0xOC43SDY3MC40Yy0xNi42IDAtMjUgMjAuMS0xMy4yIDMxLjlsNzkuNiA3OS42Yy01Ni42IDU3LjItMTM0LjggOTMtMjIxLjQgOTQuMS0xNzYuMyAyLjItMzE5LjktMTM4LjItMzIxLjQtMzE0LjQtMS41LTE3Ni41IDE0MS4yLTMyMCAzMTcuMy0zMjAgOTMuNiAwIDE3Ny44IDQwLjYgMjM1LjkgMTA1LjEgMTIuMyAxMy43IDMwIDIxLjQgNDguNSAyMS4yIDU1LjctMC41IDg1LTY2LjUgNDcuOC0xMDcuOS04MS44LTkwLjktMjAwLjMtMTQ4LTMzMi4yLTE0OC0yNDcgMC00NDcuMiAyMDAuNS00NDYuOCA0NDcuNkM2NC45IDYzMC44IDI2NiA4MzEgNTEyLjIgODMwLjVjMTIzLjYtMC4yIDIzNS40LTUwLjcgMzE2LjEtMTMybDgwLjYgODAuNmMxMS44IDExLjggMzEuOSAzLjQgMzEuOS0xMy4yeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImJvZmFuZ3FpLWRhbm11Z3VhbiIgdW5pY29kZT0iJiM1OTAzMDsiIGQ9Ik01NTguNTQ1NDU1IDE3NC41NDU0NTVIMTU1LjkyNzI3M0MxMjMuMzQ1NDU1IDE3NC41NDU0NTUgOTMuMDkwOTA5IDIwNC44IDkzLjA5MDkwOSAyMzcuMzgxODE4VjU3Ny4xNjM2MzZDOTMuMDkwOTA5IDYwOS43NDU0NTUgMTIzLjM0NTQ1NSA2NDAgMTU1LjkyNzI3MyA2NDBoNTcyLjUwOTA5MWMzMi41ODE4MTggMCA2Mi44MzYzNjQtMzAuMjU0NTQ1IDYyLjgzNjM2My02Mi44MzYzNjRWNTQ2LjkwOTA5MWMwLTEzLjk2MzYzNiA5LjMwOTA5MS0yMy4yNzI3MjcgMjMuMjcyNzI4LTIzLjI3MjcyN3MyMy4yNzI3MjcgOS4zMDkwOTEgMjMuMjcyNzI3IDIzLjI3MjcyN3YzMC4yNTQ1NDVjMCA1OC4xODE4MTgtNTEuMiAxMDkuMzgxODE4LTEwOS4zODE4MTggMTA5LjM4MTgxOUgxNTUuOTI3MjczQzk3Ljc0NTQ1NSA2ODYuNTQ1NDU1IDQ2LjU0NTQ1NSA2MzUuMzQ1NDU1IDQ2LjU0NTQ1NSA1NzcuMTYzNjM2di0zMzkuNzgxODE4QzQ2LjU0NTQ1NSAxNzkuMiA5Ny43NDU0NTUgMTI4IDE1NS45MjcyNzMgMTI4SDU1OC41NDU0NTVjMTMuOTYzNjM2IDAgMjMuMjcyNzI3IDkuMzA5MDkxIDIzLjI3MjcyNyAyMy4yNzI3MjdzLTkuMzA5MDkxIDIzLjI3MjcyNy0yMy4yNzI3MjcgMjMuMjcyNzI4ek0zMjUuODE4MTgyIDU0Ni45MDkwOTFoNDYuNTQ1NDU0di00Ni41NDU0NTVoLTQ2LjU0NTQ1NHpNNDE4LjkwOTA5MSA1NDYuOTA5MDkxaDE4Ni4xODE4MTh2LTQ2LjU0NTQ1NWgtMTg2LjE4MTgxOHpNMTg2LjE4MTgxOCA0MzAuNTQ1NDU1aDQ2LjU0NTQ1NXYtNDYuNTQ1NDU1SDE4Ni4xODE4MTh6TTI3OS4yNzI3MjcgNDMwLjU0NTQ1NWgxODYuMTgxODE4di00Ni41NDU0NTVoLTE4Ni4xODE4MTh6TTI3OS4yNzI3MjcgMzE0LjE4MTgxOGg0Ni41NDU0NTV2LTQ2LjU0NTQ1NGgtNDYuNTQ1NDU1ek0zNzIuMzYzNjM2IDMxNC4xODE4MThoMTg2LjE4MTgxOXYtNDYuNTQ1NDU0aC0xODYuMTgxODE5ek04MDIuOTA5MDkxIDQzMC41NDU0NTVjLTk1LjQxODE4MiAwLTE3NC41NDU0NTUtNzkuMTI3MjczLTE3NC41NDU0NTUtMTc0LjU0NTQ1NXM3OS4xMjcyNzMtMTc0LjU0NTQ1NSAxNzQuNTQ1NDU1LTE3NC41NDU0NTUgMTc0LjU0NTQ1NSA3OS4xMjcyNzMgMTc0LjU0NTQ1NCAxNzQuNTQ1NDU1LTc5LjEyNzI3MyAxNzQuNTQ1NDU1LTE3NC41NDU0NTQgMTc0LjU0NTQ1NXogbTAtMzAyLjU0NTQ1NWMtNjkuODE4MTgyIDAtMTI4IDU4LjE4MTgxOC0xMjggMTI4IDAgMjMuMjcyNzI3IDYuOTgxODE4IDQ0LjIxODE4MiAxNi4yOTA5MDkgNjIuODM2MzY0bDE3NC41NDU0NTUtMTc0LjU0NTQ1NWMtMTguNjE4MTgyLTkuMzA5MDkxLTM5LjU2MzYzNi0xNi4yOTA5MDktNjIuODM2MzY0LTE2LjI5MDkwOXogbTk3Ljc0NTQ1NCA0Ni41NDU0NTVMNzIxLjQ1NDU0NSAzNTMuNzQ1NDU1YzIzLjI3MjcyNyAxOC42MTgxODIgNTEuMiAzMC4yNTQ1NDUgODEuNDU0NTQ2IDMwLjI1NDU0NSA2OS44MTgxODIgMCAxMjgtNTguMTgxODE4IDEyOC0xMjggMC0zMC4yNTQ1NDUtMTEuNjM2MzY0LTYwLjUwOTA5MS0zMC4yNTQ1NDYtODEuNDU0NTQ1eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImJvZmFuZ3FpLWRhbm11a2FpIiB1bmljb2RlPSImIzU5MDMxOyIgZD0iTTU1OC41NDU0NTUgMTc0LjU0NTQ1NUgxNTUuOTI3MjczQzEyMy4zNDU0NTUgMTc0LjU0NTQ1NSA5My4wOTA5MDkgMjA0LjggOTMuMDkwOTA5IDIzNy4zODE4MThWNTc3LjE2MzYzNkM5My4wOTA5MDkgNjA5Ljc0NTQ1NSAxMjMuMzQ1NDU1IDY0MCAxNTUuOTI3MjczIDY0MGg1NzIuNTA5MDkxYzMyLjU4MTgxOCAwIDYyLjgzNjM2NC0zMC4yNTQ1NDUgNjIuODM2MzYzLTYyLjgzNjM2NFY1NDYuOTA5MDkxYzAtMTMuOTYzNjM2IDkuMzA5MDkxLTIzLjI3MjcyNyAyMy4yNzI3MjgtMjMuMjcyNzI3czIzLjI3MjcyNyA5LjMwOTA5MSAyMy4yNzI3MjcgMjMuMjcyNzI3djMwLjI1NDU0NWMwIDU4LjE4MTgxOC01MS4yIDEwOS4zODE4MTgtMTA5LjM4MTgxOCAxMDkuMzgxODE5SDE1NS45MjcyNzNDOTcuNzQ1NDU1IDY4Ni41NDU0NTUgNDYuNTQ1NDU1IDYzNS4zNDU0NTUgNDYuNTQ1NDU1IDU3Ny4xNjM2MzZ2LTMzOS43ODE4MThDNDYuNTQ1NDU1IDE3OS4yIDk3Ljc0NTQ1NSAxMjggMTU1LjkyNzI3MyAxMjhINTU4LjU0NTQ1NWMxMy45NjM2MzYgMCAyMy4yNzI3MjcgOS4zMDkwOTEgMjMuMjcyNzI3IDIzLjI3MjcyN3MtOS4zMDkwOTEgMjMuMjcyNzI3LTIzLjI3MjcyNyAyMy4yNzI3Mjh6TTMyNS44MTgxODIgNTQ2LjkwOTA5MWg0Ni41NDU0NTR2LTQ2LjU0NTQ1NWgtNDYuNTQ1NDU0ek00MTguOTA5MDkxIDU0Ni45MDkwOTFoMTg2LjE4MTgxOHYtNDYuNTQ1NDU1aC0xODYuMTgxODE4ek0xODYuMTgxODE4IDQzMC41NDU0NTVoNDYuNTQ1NDU1di00Ni41NDU0NTVIMTg2LjE4MTgxOHpNMjc5LjI3MjcyNyA0MzAuNTQ1NDU1aDE4Ni4xODE4MTh2LTQ2LjU0NTQ1NWgtMTg2LjE4MTgxOHpNMzcyLjM2MzYzNiAzMTQuMTgxODE4aDE4Ni4xODE4MTl2LTQ2LjU0NTQ1NGgtMTg2LjE4MTgxOXpNMjc5LjI3MjcyNyAzMTQuMTgxODE4aDQ2LjU0NTQ1NXYtNDYuNTQ1NDU0aC00Ni41NDU0NTV6TTgwMi45MDkwOTEgNDMwLjU0NTQ1NWMtOTUuNDE4MTgyIDAtMTc0LjU0NTQ1NS03OS4xMjcyNzMtMTc0LjU0NTQ1NS0xNzQuNTQ1NDU1czc5LjEyNzI3My0xNzQuNTQ1NDU1IDE3NC41NDU0NTUtMTc0LjU0NTQ1NSAxNzQuNTQ1NDU1IDc5LjEyNzI3MyAxNzQuNTQ1NDU0IDE3NC41NDU0NTUtNzkuMTI3MjczIDE3NC41NDU0NTUtMTc0LjU0NTQ1NCAxNzQuNTQ1NDU1eiBtMC0zMDIuNTQ1NDU1Yy02OS44MTgxODIgMC0xMjggNTguMTgxODE4LTEyOCAxMjhzNTguMTgxODE4IDEyOCAxMjggMTI4IDEyOC01OC4xODE4MTggMTI4LTEyOC01OC4xODE4MTgtMTI4LTEyOC0xMjh6TTkwMC42NTQ1NDUgMzA5LjUyNzI3M2MtOS4zMDkwOTEgOS4zMDkwOTEtMjMuMjcyNzI3IDkuMzA5MDkxLTMyLjU4MTgxOCAwbC04MS40NTQ1NDUtODEuNDU0NTQ2LTQ4Ljg3MjcyNyA0OC44NzI3MjhjLTkuMzA5MDkxIDkuMzA5MDkxLTIzLjI3MjcyNyA5LjMwOTA5MS0zMi41ODE4MTkgMC05LjMwOTA5MS05LjMwOTA5MS05LjMwOTA5MS0yMy4yNzI3MjcgMC0zMi41ODE4MTlsNjUuMTYzNjM3LTY1LjE2MzYzNmM5LjMwOTA5MS05LjMwOTA5MSAyMy4yNzI3MjctOS4zMDkwOTEgMzIuNTgxODE4IDBsOTcuNzQ1NDU0IDk3Ljc0NTQ1NWM5LjMwOTA5MSA5LjMwOTA5MSA5LjMwOTA5MSAyMy4yNzI3MjcgMCAzMi41ODE4MTh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibmVpcm9uZ3FpZWh1YW4iIHVuaWNvZGU9IiYjNTkyNjU7IiBkPSJNMTk4LjQgMTkyaDUzNy42YzU0LjQgMCA5NiA0MS42IDk2IDk2djk2YzAgMTkuMiAxMi44IDMyIDMyIDMyczMyLTEyLjggMzItMzJ2LTk2YzAtODkuNi03MC40LTE2MC0xNjAtMTYwaC01NjMuMmwxMTguNC0xMTguNGMxMi44LTEyLjggMTIuOC0zMiAwLTQ0LjgtMTIuOC0xMi44LTMyLTEyLjgtNDQuOCAwbC0xNTYuOCAxNTYuOGMtNi40IDYuNC05LjYgMTYtOS42IDIyLjQgMCA5LjYgMy4yIDE2IDkuNiAyMi40bDE1Ni44IDE1Ni44YzEyLjggMTIuOCAzMiAxMi44IDQ0LjggMCAxMi44LTEyLjggMTIuOC0zMiAwLTQ0LjhsLTkyLjgtODYuNHogbTY0My4yIDQxNmgtNjE3LjZjLTU0LjQgMC05Ni00MS42LTk2LTk2di05NmMwLTE5LjItMTIuOC0zMi0zMi0zMnMtMzIgMTIuOC0zMiAzMnY5NmMwIDg5LjYgNzAuNCAxNjAgMTYwIDE2MGg1OTUuMmwtOTIuOCA5Mi44Yy0xMi44IDEyLjgtMTIuOCAzMiAwIDQ0LjggMTIuOCAxMi44IDMyIDEyLjggNDQuOCAwbDE1Ni44LTE2MGM2LjQtNi40IDkuNi0xNiA5LjYtMjIuNCAwLTkuNi0zLjItMTYtOS42LTIyLjRsLTE1Ni44LTE1Ni44Yy0xMi44LTEyLjgtMzItMTIuOC00NC44IDAtMTIuOCAxMi44LTEyLjggMzIgMCA0NC44bDExNS4yIDExNS4yeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAoKCiAgPC9mb250Pgo8L2RlZnM+PC9zdmc+Cg=="
|
||
|
||
/***/ })
|
||
/******/ ]); |