diff --git a/docs/js/artplayer.js b/docs/js/artplayer.js index 2f8f5273c..37398129f 100644 --- a/docs/js/artplayer.js +++ b/docs/js/artplayer.js @@ -238,6 +238,21 @@ return url.trim().toLowerCase().split('.').pop(); } + function append(parent, child) { + if (child instanceof Element) { + parent.appendChild(child); + } else { + parent.innerHTML = child; + } + + return parent; + } + function setStyle(element, styles) { + Object.keys(styles).forEach(function (key) { + element.style[key] = styles[key]; + }); + return element; + } function verification(option) { errorHandle(option.container, '\'container\' option is required.'); @@ -794,9 +809,9 @@ }); } - refs.$contextmenu.appendChild($menu); + append(refs.$contextmenu, $menu); }); - refs.$wrap.appendChild(refs.$contextmenu); + append(refs.$wrap, refs.$contextmenu); } }, { key: "setPos", @@ -947,9 +962,7 @@ _this$art$refs = _this$art.refs, $video = _this$art$refs.$video, $subtitle = _this$art$refs.$subtitle; - Object.keys(subtitleStyle).forEach(function (key) { - $subtitle.style[key] = subtitleStyle[key]; - }); + setStyle($subtitle, subtitleStyle); var $track = document.createElement('track'); $track.default = true; $track.kind = 'metadata'; @@ -1145,19 +1158,8 @@ $layer.setAttribute('data-art-layer-id', id); $layer.setAttribute('class', "art-layer art-layer-".concat(option.name || id)); $layer.style.zIndex = option.index || id; - - if (option.html instanceof Element) { - $layer.appendChild(option.html); - } else { - $layer.innerHTML = option.html; - } - - if (option.style) { - Object.keys(option.style).forEach(function (key) { - $layer.style[key] = option.style[key]; - }); - } - + append($layer, option.html); + setStyle($layer, option.style || {}); refs.$layers.appendChild($layer); callback && callback($layer); } @@ -1180,7 +1182,7 @@ var play = "\n \n\n"; - var Icons = { + var icons = { loading: loading, play: play }; @@ -1198,7 +1200,7 @@ return result; } - var Icons$1 = creatDomFromSvg(Icons); + var icons$1 = creatDomFromSvg(icons); var Loading = /*#__PURE__*/ @@ -1218,13 +1220,9 @@ $loading = _this$art.refs.$loading; if (option.loading) { - if (option.loading instanceof Element) { - $loading.appendChild(option.loading); - } else { - $loading.innerHTML = option.loading; - } + append($loading, option.loading); } else { - $loading.appendChild(Icons$1.loading); + append($loading, icons$1.loading); } } }, { @@ -1299,8 +1297,8 @@ option = _this$art.option, refs = _this$art.refs, proxy = _this$art.events.proxy; - Icons$1.play.style.backgroundColor = option.theme; - refs.$mask.appendChild(Icons$1.play); + icons$1.play.style.backgroundColor = option.theme; + append(refs.$mask, icons$1.play); proxy(refs.$mask, 'click', function () { player.play(); diff --git a/docs/js/artplayer.js.map b/docs/js/artplayer.js.map index 96ffee0bc..ba860eed6 100644 --- a/docs/js/artplayer.js.map +++ b/docs/js/artplayer.js.map @@ -1 +1 @@ -{"version":3,"file":"artplayer.js","sources":["../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../src/utils/ArtPlayerError.js","../../src/utils/index.js","../../src/utils/verification.js","../../src/config/mimeCodec.js","../../src/config/mse.js","../../src/config/video.js","../../src/config/index.js","../../node_modules/tiny-emitter/index.js","../../src/template.js","../../src/i18n.js","../../src/player.js","../../src/mse.js","../../src/controls/index.js","../../src/contextmenu.js","../../src/danmu.js","../../src/info.js","../../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/slicedToArray.js","../../src/subtitle.js","../../src/events.js","../../src/hotkey.js","../../src/layers.js","../../src/icons/index.js","../../src/loading.js","../../src/notice.js","../../src/mask.js","../../src/index.js"],"sourcesContent":["function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","export default class ArtPlayerError extends Error {\n constructor(message, context) {\n super(message);\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, context || this.constructor);\n }\n this.name = 'ArtPlayerError';\n }\n}\n","import ArtPlayerError from './ArtPlayerError';\n\nexport function errorHandle(condition, msg) {\n if (!condition) {\n throw new ArtPlayerError(msg);\n }\n}\n\nexport function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function request(url) {\n return fetch(url)\n .then(response => response.arrayBuffer())\n .catch(err => {\n throw new ArtPlayerError(err.message);\n });\n}\n\nexport function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n return url\n .trim()\n .toLowerCase()\n .split('.')\n .pop();\n}\n","import { errorHandle } from './index';\n\nexport default function verification(option) {\n errorHandle(\n option.container,\n '\\'container\\' option is required.'\n );\n\n errorHandle(\n option.url,\n '\\'url\\' option is required.'\n );\n\n errorHandle(\n typeof option.container === 'string' || option.container instanceof Element,\n `'container' option require 'string' or 'Element' type, but got '${typeof option.container}'.`\n );\n\n errorHandle(\n typeof option.url === 'string',\n `'url' option require 'string' type, but got '${typeof option.url}'.`\n );\n\n errorHandle(\n typeof option.poster === 'string',\n `'poster' option require 'string' type, but got '${typeof option.poster}'.`\n );\n\n errorHandle(\n typeof option.volume === 'number',\n `'volume' option require 'number' type, but got '${typeof option.volume}'.`\n );\n\n errorHandle(\n typeof option.autoplay === 'boolean',\n `'autoplay' option require 'boolean' type, but got '${typeof option.autoplay}'.`\n );\n\n errorHandle(\n ['none', 'metadata', 'auto'].indexOf(option.preload) > -1,\n '\\'preload\\' option require one of \\'none、metadata、auto\\'.'\n );\n\n errorHandle(\n typeof option.lang === 'string',\n `'lang' option require 'string' type, but got '${typeof option.lang}'.`\n );\n\n errorHandle(\n typeof option.type === 'string',\n `'type' option require 'string' type, but got '${typeof option.type}'.`\n );\n\n errorHandle(\n typeof option.mimeCodec === 'string',\n `'mimeCodec' option require 'string' type, but got '${typeof option.mimeCodec}'.`\n );\n\n errorHandle(\n Array.isArray(option.layers),\n `'layers' option require 'array' type, but got '${typeof option.layers}'.`\n );\n\n errorHandle(\n Array.isArray(option.contextmenu),\n `'contextmenu' option require 'array' type, but got '${typeof option.contextmenu}'.`\n );\n\n errorHandle(\n typeof option.loading === 'string' || option.loading instanceof Element,\n `'loading' option require 'string' type, but got '${typeof option.loading}'.`\n );\n\n errorHandle(\n typeof option.theme === 'string',\n `'theme' option require 'string' type, but got '${typeof option.theme}'.`\n );\n\n errorHandle(\n typeof option.hotkey === 'boolean',\n `'hotkey' option require 'boolean' type, but got '${typeof option.hotkey}'.`\n );\n\n errorHandle(\n typeof option.subtitle === 'string',\n `'subtitle' option require 'string' type, but got '${typeof option.subtitle}'.`\n );\n\n errorHandle(\n Object.prototype.toString.call(option.subtitleStyle) === '[object Object]',\n `'subtitleStyle' option require 'object' type, but got '${typeof option.subtitleStyle}'.`\n );\n}\n","export default {\n mp4: 'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"',\n webm: 'video/webm; codecs=\"vorbis, vp8\"',\n ts: 'video/mp2t; codecs=\"avc1.42E01E, mp4a.40.2\"'\n};\n","export default {\n mediaSource: {\n propertys: [\n 'activeSourceBuffers',\n 'duration',\n 'readyState',\n 'sourceBuffers'\n ],\n methods: [\n 'addSourceBuffer',\n 'endOfStream',\n 'removeSourceBuffer',\n 'clearLiveSeekableRange',\n 'setLiveSeekableRange'\n ],\n events: [\n 'sourceclose',\n 'sourceended',\n 'sourceopen'\n ]\n },\n sourceBuffer: {\n propertys: [\n 'mode',\n 'updating',\n 'buffered',\n 'timestampOffset',\n 'audioTracks',\n 'videoTracks',\n 'textTracks',\n 'appendWindowStart',\n 'appendWindowEnd',\n 'trackDefaults'\n ],\n methods: [\n 'appendBuffer',\n 'appendStream',\n 'abort',\n 'remove'\n ],\n events: [\n 'abort',\n 'error',\n 'update',\n 'updateend',\n 'updatestart'\n ]\n },\n sourceBufferList: {\n propertys: [\n 'length'\n ],\n events: [\n 'addsourcebuffer',\n 'removesourcebuffer'\n ]\n }\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume'\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ]\n};\n","import mimeCodec from './mimeCodec';\nimport mse from './mse';\nimport video from './video';\n\nexport default {\n mimeCodec,\n mse,\n video\n};\n","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n","export default class Template {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { refs } = this.art;\n refs.$container.innerHTML = `\n
\n \n
\n
\n
\n
\n
\n
\n
\n `;\n refs.$wrap = refs.$container.querySelector('.artplayer-wrap');\n refs.$video = refs.$container.querySelector('.artplayer-video');\n refs.$subtitle = refs.$container.querySelector('.artplayer-subtitle');\n refs.$controls = refs.$container.querySelector('.artplayer-controls');\n refs.$layers = refs.$container.querySelector('.artplayer-layers');\n refs.$loading = refs.$container.querySelector('.artplayer-loading');\n refs.$notice = refs.$container.querySelector('.artplayer-notice');\n refs.$mask = refs.$container.querySelector('.artplayer-mask');\n }\n}\n","const i18nMap = {\n 'zh-cn': {\n 'About author': '关于作者',\n 'Video info': '视频统计信息',\n 'Close': '关闭',\n 'Video load failed': '视频加载失败',\n 'Fast forward 10 seconds': '快进10秒',\n 'Rewind 10 seconds': '快退10秒',\n '10% increase in volume': '音量增加10%',\n '10% reduction in volume': '音量减少10%'\n },\n 'zh-tw': {\n 'About author': '關於作者',\n 'Video info': '影片統計訊息',\n 'Close': '關閉',\n 'Video load failed': '影片載入失敗',\n 'Fast forward 10 seconds': '快進10秒',\n 'Rewind 10 seconds': '快退10秒',\n '10% increase in volume': '音量增加10%',\n '10% reduction in volume': '音量減少10%'\n }\n};\n\nexport default class I18n {\n constructor({ option }) {\n this.language = i18nMap[option.lang.toLowerCase()] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n}\n","import { clamp } from './utils';\nimport config from './config';\n\nexport default class Player {\n constructor(art) {\n this.art = art;\n this.init();\n this.eventBind();\n }\n\n init() {\n const { option } = this.art;\n const { $video } = this.art.refs;\n $video.controls = false;\n $video.poster = option.poster;\n $video.volume = clamp(option.volume, 0, 1);\n $video.autoplay = option.autoplay;\n $video.preload = option.preload;\n }\n\n eventBind() {\n const { events: { proxy }, refs: { $video } } = this.art;\n\n config.video.events.forEach(eventName => {\n proxy($video, eventName, event => {\n this.art.emit(`video:${event.type}`, event);\n });\n });\n\n this.art.on('video:loadstart', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:loadeddata', () => {\n this.art.loading.hide();\n });\n\n this.art.on('video:canplay', () => {\n this.art.controls.show();\n this.art.mask.show();\n if (this.art.option.autoplay) {\n const promise = this.play();\n if (promise !== undefined) {\n promise.then().catch(err => {\n console.warn(err);\n });\n }\n }\n });\n\n this.art.on('video:playing', () => {\n this.art.playing = true;\n this.art.controls.hide();\n this.art.mask.hide();\n });\n\n this.art.on('video:pause', () => {\n this.art.playing = false;\n this.art.controls.show();\n this.art.mask.show();\n });\n\n this.art.on('video:ended', () => {\n this.art.playing = false;\n this.art.controls.show();\n this.art.mask.show();\n });\n }\n\n play() {\n return this.art.refs.$video.play();\n }\n\n pause() {\n return this.art.refs.$video.pause();\n }\n\n toggle() {\n if (this.art.playing) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n seek() {\n //\n }\n\n currentTime() {\n //\n }\n\n volume() {\n //\n }\n\n switchVolumeIcon() {\n //\n }\n\n switchVideo() {\n //\n }\n\n switchQuality() {\n //\n }\n\n switchSubtitle() {\n //\n }\n\n speed() {\n //\n }\n}\n","import { errorHandle, request, getExt } from './utils';\nimport config from './config';\n\nexport default class Mse {\n constructor(art) {\n this.art = art;\n this.setMimeCodec();\n this.init();\n this.eventBind();\n this.eventStart();\n this.repeat = 0;\n this.maxRepeat = 5;\n }\n\n setMimeCodec() {\n const { option } = this.art;\n if (!option.type) {\n const type = getExt(option.url);\n errorHandle(\n Object.keys(config.mimeCodec).includes(type),\n `Can't find video's type '${type}' from '${option.url}'`\n );\n option.type = type;\n }\n\n if (!option.mimeCodec) {\n const mimeCodec = config.mimeCodec[option.type];\n errorHandle(\n mimeCodec,\n `Can't find video's mimeCodec from ${option.type}`\n );\n option.mimeCodec = mimeCodec;\n }\n }\n\n init() {\n const {\n option,\n refs: { $video }\n } = this.art;\n errorHandle(\n MediaSource.isTypeSupported(option.mimeCodec),\n `Unsupported MIME type or codec: ${option.mimeCodec}`\n );\n this.mediaSource = new MediaSource();\n $video.src = URL.createObjectURL(this.mediaSource);\n this.art.events.destroyEvents.push(() => {\n URL.revokeObjectURL($video.src);\n });\n }\n\n eventBind() {\n const { proxy } = this.art.events;\n const { mediaSource, sourceBufferList } = config.mse;\n\n mediaSource.events.forEach(eventName => {\n proxy(this.mediaSource, eventName, event => {\n this.art.emit(`mediaSource:${event.type}`, event);\n });\n });\n\n sourceBufferList.events.forEach(eventName => {\n proxy(this.mediaSource.sourceBuffers, eventName, event => {\n this.art.emit(`sourceBuffers:${event.type}`, event);\n });\n proxy(this.mediaSource.activeSourceBuffers, eventName, event => {\n this.art.emit(`activeSourceBuffers:${event.type}`, event);\n });\n });\n }\n\n eventStart() {\n const { option } = this.art;\n const { proxy } = this.art.events;\n const { sourceBuffer } = config.mse;\n\n this.art.on('mediaSource:sourceopen', () => {\n this.sourceBuffer = this.mediaSource.addSourceBuffer(option.mimeCodec);\n sourceBuffer.events.forEach(eventName => {\n proxy(this.sourceBuffer, eventName, event => {\n this.art.emit(`sourceBuffer:${event.type}`, event);\n });\n });\n });\n\n this.art.on('sourceBuffer:updateend', () => {\n this.mediaSource.endOfStream();\n });\n\n this.fetchUrl();\n }\n\n fetchUrl() {\n const { option, notice, i18n, loading } = this.art;\n request(option.url)\n .then(response => {\n this.sourceBuffer.appendBuffer(response);\n })\n .catch(err => {\n if (this.repeat++ < this.maxRepeat) {\n this.fetchUrl();\n } else {\n notice.show(i18n.get('Video load failed'));\n console.warn(err);\n loading.hide();\n }\n });\n }\n}\n","export default class Controls {\n constructor(art) {\n this.art = art;\n }\n\n show() {\n const { $wrap } = this.art.refs;\n $wrap.classList.add('controls-show');\n }\n\n hide() {\n const { $wrap } = this.art.refs;\n $wrap.classList.remove('controls-show');\n }\n}\n","export default class Contextmenu {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const {\n option,\n i18n,\n refs,\n events: { proxy }\n } = this.art;\n\n option.contextmenu.push(\n {\n text: i18n.get('Video info'),\n click: art => {\n art.info.show();\n }\n },\n {\n text: i18n.get('About author'),\n link: 'https://github.com/zhw2590582'\n },\n {\n text: 'ArtPlayer __VERSION__',\n link: 'https://github.com/zhw2590582/artplayer'\n },\n {\n text: i18n.get('Close'),\n click: () => {\n this.hide();\n }\n }\n );\n\n proxy(refs.$container, 'contextmenu', event => {\n event.preventDefault();\n this.art.focus = true;\n if (!refs.$contextmenu) {\n this.creatMenu();\n }\n this.show();\n this.setPos(event);\n });\n\n proxy(refs.$container, 'click', event => {\n if (refs.$contextmenu && !event.path.includes(refs.$contextmenu)) {\n this.hide();\n }\n });\n }\n\n creatMenu() {\n const {\n option,\n refs,\n events: { proxy }\n } = this.art;\n refs.$contextmenu = document.createElement('div');\n refs.$contextmenu.classList.add('artplayer-contextmenu');\n option.contextmenu.forEach(item => {\n const $menu = document.createElement('a');\n $menu.innerHTML = item.text;\n $menu.classList.add('art-menu');\n if (item.link) {\n $menu.target = '_blank';\n $menu.href = item.link;\n } else if (item.click) {\n $menu.href = '#';\n proxy($menu, 'click', event => {\n event.preventDefault();\n item.click(this.art, event);\n this.hide();\n });\n }\n refs.$contextmenu.appendChild($menu);\n });\n refs.$wrap.appendChild(refs.$contextmenu);\n }\n\n setPos(event) {\n const { refs } = this.art;\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = refs.$container.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = refs.$contextmenu.getBoundingClientRect();\n\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft -= mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop -= mHeight;\n }\n\n refs.$contextmenu.style.left = `${menuLeft}px`;\n refs.$contextmenu.style.top = `${menuTop}px`;\n }\n\n hide() {\n const { refs } = this.art;\n refs.$contextmenu && (refs.$contextmenu.style.display = 'none');\n }\n\n show() {\n const { refs } = this.art;\n refs.$contextmenu && (refs.$contextmenu.style.display = 'block');\n }\n}\n","export default class Danmu {\n constructor(art) {\n this.art = art;\n }\n}\n","export default class Info {\n constructor(art) {\n this.art = art;\n }\n\n show() {\n console.log('info show');\n }\n\n hide() {\n console.log('info hide');\n }\n}\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","import { errorHandle, getExt } from './utils';\n\nexport default class Subtitle {\n constructor(art) {\n this.art = art;\n if (this.art.option.subtitle) {\n errorHandle(\n getExt(this.art.option.subtitle) === 'vtt',\n `'subtitle' option require 'vtt' format, but got '${getExt(this.art.option.subtitle)}'.`\n );\n this.init();\n }\n }\n\n init() {\n const {\n events: { proxy },\n option: { subtitle, subtitleStyle },\n refs: { $video, $subtitle }\n } = this.art;\n\n Object.keys(subtitleStyle).forEach(key => {\n $subtitle.style[key] = subtitleStyle[key];\n });\n\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n $track.src = subtitle;\n $video.appendChild($track);\n this.art.refs.$track = $track;\n\n if ($video.textTracks && $video.textTracks[0]) {\n const [track] = $video.textTracks;\n proxy(track, 'cuechange', () => {\n const [cue] = track.activeCues;\n $subtitle.innerHTML = '';\n if (cue) {\n const template = document.createElement('div');\n template.appendChild(cue.getCueAsHTML());\n $subtitle.innerHTML = template.innerHTML\n .split(/\\r?\\n/)\n .map(item => `

${item}

`)\n .join('');\n }\n });\n }\n }\n\n show() {\n this.art.refs.$subtitle.style.display = 'block';\n }\n\n hide() {\n this.art.refs.$subtitle.style.display = 'none';\n }\n\n change(url) {\n errorHandle(\n getExt(url) === 'vtt',\n `'url' option require 'vtt' format, but got '${getExt(url)}'.`\n );\n this.art.refs.$track.src = url;\n }\n}\n","export default class Events {\n constructor(art) {\n this.art = art;\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n }\n\n proxy(target, name, callback, option = {}) {\n target.addEventListener(name, callback, option);\n this.destroyEvents.push(() => {\n target.removeEventListener(name, callback, option);\n });\n }\n\n destroy() {\n this.destroyEvents.forEach(event => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.art = art;\n if (this.art.option.hotkey) {\n this.init();\n }\n }\n\n init() {\n const {\n player,\n notice,\n i18n,\n refs: { $container },\n events: { proxy }\n } = this.art;\n\n proxy(document, 'click', event => {\n this.art.focus = event.path.indexOf($container) > -1;\n });\n\n proxy(window, 'keydown', event => {\n if (this.art.focus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (\n tag !== 'INPUT' &&\n tag !== 'TEXTAREA' &&\n editable !== '' &&\n editable !== 'true'\n ) {\n let percentage;\n switch (event.keyCode) {\n case 39:\n event.preventDefault();\n player.seek(player.currentTime() + 10);\n notice.show(i18n.get('Fast forward 10 seconds'), true);\n break;\n case 37:\n event.preventDefault();\n player.seek(player.currentTime() - 10);\n notice.show(i18n.get('Rewind 10 seconds'), true);\n break;\n case 38:\n event.preventDefault();\n percentage = player.volume() + 0.1;\n player.volume(percentage);\n notice.show(i18n.get('10% increase in volume'), true);\n break;\n case 40:\n event.preventDefault();\n percentage = player.volume() - 0.1;\n player.volume(percentage);\n notice.show(i18n.get('10% reduction in volume'), true);\n break;\n case 32:\n event.preventDefault();\n player.toggle();\n break;\n default:\n break;\n }\n }\n }\n });\n }\n}\n","let id = 0;\nexport default class Layers {\n constructor(art) {\n this.art = art;\n this.add = this.add.bind(this);\n this.art.option.layers.forEach(this.add);\n this.init();\n }\n\n init() {\n const { refs, player, events: { proxy } } = this.art;\n proxy(refs.$layers, 'click', event => {\n if (event.path[0] === refs.$layers) {\n player.pause();\n }\n });\n }\n\n add(option, callback) {\n const { refs } = this.art;\n id++;\n\n const $layer = document.createElement('div');\n $layer.setAttribute('data-art-layer-id', id);\n $layer.setAttribute('class', `art-layer art-layer-${option.name || id}`);\n $layer.style.zIndex = option.index || id;\n\n if (option.html instanceof Element) {\n $layer.appendChild(option.html);\n } else {\n $layer.innerHTML = option.html;\n }\n\n if (option.style) {\n Object.keys(option.style).forEach(key => {\n $layer.style[key] = option.style[key];\n });\n }\n\n refs.$layers.appendChild($layer);\n callback && callback($layer);\n }\n\n show() {\n this.art.refs.$layers.style.display = 'block';\n }\n\n hide() {\n this.art.refs.$layers.style.display = 'none';\n }\n}\n","import loading from './loading.svg';\nimport play from './play.svg';\n\nconst Icons = {\n loading,\n play\n};\n\nfunction creatDomFromSvg(map) {\n const result = {};\n Object.keys(map).forEach(name => {\n const tmp = document.createElement('div');\n tmp.innerHTML = `${map[name]}`;\n [result[name]] = tmp.childNodes;\n });\n return result;\n}\n\nexport default creatDomFromSvg(Icons);\n","import Icons from './icons';\n\nexport default class Loading {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option, refs: { $loading } } = this.art;\n if (option.loading) {\n if (option.loading instanceof Element) {\n $loading.appendChild(option.loading);\n } else {\n $loading.innerHTML = option.loading;\n }\n } else {\n $loading.appendChild(Icons.loading);\n }\n }\n\n hide() {\n this.art.refs.$loading.style.display = 'none';\n }\n\n show() {\n this.art.refs.$loading.style.display = 'flex';\n }\n}\n","export default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n show(msg, autoHide) {\n const { refs: { $notice } } = this.art;\n $notice.style.display = 'block';\n $notice.innerHTML = msg instanceof Error ? msg.message.trim() : msg;\n if (autoHide) {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.hide();\n }, 1000);\n }\n }\n\n hide() {\n const { refs: { $notice } } = this.art;\n $notice.style.display = 'none';\n }\n}\n","import Icons from './icons';\n\nexport default class Mask {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const {\n player,\n option,\n refs,\n events: { proxy }\n } = this.art;\n\n Icons.play.style.backgroundColor = option.theme;\n refs.$mask.appendChild(Icons.play);\n\n proxy(refs.$mask, 'click', () => {\n player.play();\n this.hide();\n });\n }\n\n show() {\n this.art.refs.$mask.style.display = 'flex';\n }\n\n hide() {\n this.art.refs.$mask.style.display = 'none';\n }\n}\n","import './style/index.scss';\nimport verification from './utils/verification';\nimport config from './config';\nimport Emitter from 'tiny-emitter';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Mse from './mse';\nimport Controls from './controls';\nimport Contextmenu from './contextmenu';\nimport Danmu from './danmu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layers from './layers';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\n\nlet id = 0;\nexport const instances = [];\n\nclass Artplayer extends Emitter {\n constructor(option) {\n super();\n this.option = Object.assign({}, Artplayer.DEFAULTS, option);\n verification(this.option);\n this.init();\n }\n\n static get version() {\n return '__VERSION__';\n }\n\n static get config() {\n return config;\n }\n\n static get DEFAULTS() {\n return {\n container: document.querySelector('.artplayer'),\n url: '',\n poster: '',\n volume: 0.7,\n autoplay: false,\n preload: 'auto',\n type: '',\n mimeCodec: '',\n layers: [],\n contextmenu: [],\n loading: '',\n theme: '#1aafff',\n hotkey: true,\n subtitle: '',\n subtitleStyle: {},\n lang: navigator.language.toLowerCase()\n };\n }\n\n static use(plugin) {\n const installedPlugins = this.plugins || (this.plugins = []);\n if (installedPlugins.indexOf(plugin) > -1) {\n return this;\n }\n\n const args = Array.from(arguments).slice(1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this;\n }\n\n init() {\n this.focus = false;\n this.playing = false;\n this.refs = {};\n\n if (this.option.container instanceof Element) {\n this.refs.$container = this.option.container;\n } else {\n this.refs.$container = document.querySelector(this.option.container);\n }\n\n this.template = new Template(this);\n this.i18n = new I18n(this);\n this.events = new Events(this);\n this.player = new Player(this);\n this.mse = new Mse(this);\n this.layers = new Layers(this);\n this.controls = new Controls(this);\n this.contextmenu = new Contextmenu(this);\n this.danmu = new Danmu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.notice = new Notice(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n\n this.id = id++;\n instances.push(this);\n return this;\n }\n\n destroy() {\n this.events.destroy();\n this.refs.$container.innerHTML = '';\n instances.splice(instances.indexOf(this), 1);\n }\n}\n\nwindow.Artplayer = Artplayer;\nexport default Artplayer;\n"],"names":["_typeof","ArtPlayerError","message","context","Error","captureStackTrace","constructor","name","errorHandle","condition","msg","clamp","num","a","b","Math","max","min","request","url","fetch","then","response","arrayBuffer","catch","err","getExt","includes","split","trim","toLowerCase","pop","verification","option","container","Element","poster","volume","autoplay","indexOf","preload","lang","type","mimeCodec","Array","isArray","layers","contextmenu","loading","theme","hotkey","subtitle","Object","prototype","toString","call","subtitleStyle","mp4","webm","ts","mediaSource","propertys","methods","events","sourceBuffer","sourceBufferList","mse","video","Template","art","init","refs","$container","innerHTML","$wrap","querySelector","$video","$subtitle","$controls","$layers","$loading","$notice","$mask","i18nMap","I18n","language","key","Player","eventBind","controls","proxy","config","forEach","eventName","event","emit","on","show","hide","mask","promise","play","undefined","console","warn","playing","pause","Mse","setMimeCodec","eventStart","repeat","maxRepeat","keys","MediaSource","isTypeSupported","src","URL","createObjectURL","destroyEvents","push","revokeObjectURL","sourceBuffers","activeSourceBuffers","addSourceBuffer","endOfStream","fetchUrl","notice","i18n","appendBuffer","get","Controls","classList","add","remove","Contextmenu","text","click","info","link","preventDefault","focus","$contextmenu","creatMenu","setPos","path","document","createElement","item","$menu","target","href","appendChild","mouseX","clientX","mouseY","clientY","getBoundingClientRect","cHeight","height","cWidth","width","cLeft","left","cTop","top","mHeight","mWidth","menuLeft","menuTop","style","display","Danmu","Info","log","Subtitle","$track","default","kind","textTracks","track","activeCues","cue","template","getCueAsHTML","map","join","Events","bind","callback","addEventListener","removeEventListener","Hotkey","player","window","tag","activeElement","tagName","toUpperCase","editable","getAttribute","percentage","keyCode","seek","currentTime","toggle","id","Layers","$layer","setAttribute","zIndex","index","html","Icons","creatDomFromSvg","result","tmp","childNodes","Loading","Notice","timer","autoHide","clearTimeout","setTimeout","Mask","backgroundColor","instances","Artplayer","assign","DEFAULTS","danmu","destroy","splice","plugin","installedPlugins","plugins","args","from","arguments","slice","unshift","install","apply","navigator","Emitter"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"artplayer.js","sources":["../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../src/utils/ArtPlayerError.js","../../src/utils/index.js","../../src/utils/verification.js","../../src/config/mimeCodec.js","../../src/config/mse.js","../../src/config/video.js","../../src/config/index.js","../../node_modules/tiny-emitter/index.js","../../src/template.js","../../src/i18n.js","../../src/player.js","../../src/mse.js","../../src/controls/index.js","../../src/contextmenu.js","../../src/danmu.js","../../src/info.js","../../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/slicedToArray.js","../../src/subtitle.js","../../src/events.js","../../src/hotkey.js","../../src/layers.js","../../src/icons/index.js","../../src/loading.js","../../src/notice.js","../../src/mask.js","../../src/index.js"],"sourcesContent":["function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","export default class ArtPlayerError extends Error {\n constructor(message, context) {\n super(message);\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, context || this.constructor);\n }\n this.name = 'ArtPlayerError';\n }\n}\n","import ArtPlayerError from './ArtPlayerError';\n\nexport function errorHandle(condition, msg) {\n if (!condition) {\n throw new ArtPlayerError(msg);\n }\n}\n\nexport function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function request(url) {\n return fetch(url)\n .then(response => response.arrayBuffer())\n .catch(err => {\n throw new ArtPlayerError(err.message);\n });\n}\n\nexport function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n return url\n .trim()\n .toLowerCase()\n .split('.')\n .pop();\n}\n\n\nexport function append(parent, child) {\n if (child instanceof Element) {\n parent.appendChild(child);\n } else {\n parent.innerHTML = child;\n }\n return parent;\n}\n\nexport function setStyle(element, styles) {\n Object.keys(styles).forEach(key => {\n element.style[key] = styles[key];\n });\n return element;\n}\n","import { errorHandle } from './index';\n\nexport default function verification(option) {\n errorHandle(\n option.container,\n '\\'container\\' option is required.'\n );\n\n errorHandle(\n option.url,\n '\\'url\\' option is required.'\n );\n\n errorHandle(\n typeof option.container === 'string' || option.container instanceof Element,\n `'container' option require 'string' or 'Element' type, but got '${typeof option.container}'.`\n );\n\n errorHandle(\n typeof option.url === 'string',\n `'url' option require 'string' type, but got '${typeof option.url}'.`\n );\n\n errorHandle(\n typeof option.poster === 'string',\n `'poster' option require 'string' type, but got '${typeof option.poster}'.`\n );\n\n errorHandle(\n typeof option.volume === 'number',\n `'volume' option require 'number' type, but got '${typeof option.volume}'.`\n );\n\n errorHandle(\n typeof option.autoplay === 'boolean',\n `'autoplay' option require 'boolean' type, but got '${typeof option.autoplay}'.`\n );\n\n errorHandle(\n ['none', 'metadata', 'auto'].indexOf(option.preload) > -1,\n '\\'preload\\' option require one of \\'none、metadata、auto\\'.'\n );\n\n errorHandle(\n typeof option.lang === 'string',\n `'lang' option require 'string' type, but got '${typeof option.lang}'.`\n );\n\n errorHandle(\n typeof option.type === 'string',\n `'type' option require 'string' type, but got '${typeof option.type}'.`\n );\n\n errorHandle(\n typeof option.mimeCodec === 'string',\n `'mimeCodec' option require 'string' type, but got '${typeof option.mimeCodec}'.`\n );\n\n errorHandle(\n Array.isArray(option.layers),\n `'layers' option require 'array' type, but got '${typeof option.layers}'.`\n );\n\n errorHandle(\n Array.isArray(option.contextmenu),\n `'contextmenu' option require 'array' type, but got '${typeof option.contextmenu}'.`\n );\n\n errorHandle(\n typeof option.loading === 'string' || option.loading instanceof Element,\n `'loading' option require 'string' type, but got '${typeof option.loading}'.`\n );\n\n errorHandle(\n typeof option.theme === 'string',\n `'theme' option require 'string' type, but got '${typeof option.theme}'.`\n );\n\n errorHandle(\n typeof option.hotkey === 'boolean',\n `'hotkey' option require 'boolean' type, but got '${typeof option.hotkey}'.`\n );\n\n errorHandle(\n typeof option.subtitle === 'string',\n `'subtitle' option require 'string' type, but got '${typeof option.subtitle}'.`\n );\n\n errorHandle(\n Object.prototype.toString.call(option.subtitleStyle) === '[object Object]',\n `'subtitleStyle' option require 'object' type, but got '${typeof option.subtitleStyle}'.`\n );\n}\n","export default {\n mp4: 'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"',\n webm: 'video/webm; codecs=\"vorbis, vp8\"',\n ts: 'video/mp2t; codecs=\"avc1.42E01E, mp4a.40.2\"'\n};\n","export default {\n mediaSource: {\n propertys: [\n 'activeSourceBuffers',\n 'duration',\n 'readyState',\n 'sourceBuffers'\n ],\n methods: [\n 'addSourceBuffer',\n 'endOfStream',\n 'removeSourceBuffer',\n 'clearLiveSeekableRange',\n 'setLiveSeekableRange'\n ],\n events: [\n 'sourceclose',\n 'sourceended',\n 'sourceopen'\n ]\n },\n sourceBuffer: {\n propertys: [\n 'mode',\n 'updating',\n 'buffered',\n 'timestampOffset',\n 'audioTracks',\n 'videoTracks',\n 'textTracks',\n 'appendWindowStart',\n 'appendWindowEnd',\n 'trackDefaults'\n ],\n methods: [\n 'appendBuffer',\n 'appendStream',\n 'abort',\n 'remove'\n ],\n events: [\n 'abort',\n 'error',\n 'update',\n 'updateend',\n 'updatestart'\n ]\n },\n sourceBufferList: {\n propertys: [\n 'length'\n ],\n events: [\n 'addsourcebuffer',\n 'removesourcebuffer'\n ]\n }\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume'\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ]\n};\n","import mimeCodec from './mimeCodec';\nimport mse from './mse';\nimport video from './video';\n\nexport default {\n mimeCodec,\n mse,\n video\n};\n","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n","export default class Template {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { refs } = this.art;\n refs.$container.innerHTML = `\n
\n \n
\n
\n
\n
\n
\n
\n
\n `;\n refs.$wrap = refs.$container.querySelector('.artplayer-wrap');\n refs.$video = refs.$container.querySelector('.artplayer-video');\n refs.$subtitle = refs.$container.querySelector('.artplayer-subtitle');\n refs.$controls = refs.$container.querySelector('.artplayer-controls');\n refs.$layers = refs.$container.querySelector('.artplayer-layers');\n refs.$loading = refs.$container.querySelector('.artplayer-loading');\n refs.$notice = refs.$container.querySelector('.artplayer-notice');\n refs.$mask = refs.$container.querySelector('.artplayer-mask');\n }\n}\n","const i18nMap = {\n 'zh-cn': {\n 'About author': '关于作者',\n 'Video info': '视频统计信息',\n 'Close': '关闭',\n 'Video load failed': '视频加载失败',\n 'Fast forward 10 seconds': '快进10秒',\n 'Rewind 10 seconds': '快退10秒',\n '10% increase in volume': '音量增加10%',\n '10% reduction in volume': '音量减少10%'\n },\n 'zh-tw': {\n 'About author': '關於作者',\n 'Video info': '影片統計訊息',\n 'Close': '關閉',\n 'Video load failed': '影片載入失敗',\n 'Fast forward 10 seconds': '快進10秒',\n 'Rewind 10 seconds': '快退10秒',\n '10% increase in volume': '音量增加10%',\n '10% reduction in volume': '音量減少10%'\n }\n};\n\nexport default class I18n {\n constructor({ option }) {\n this.language = i18nMap[option.lang.toLowerCase()] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n}\n","import { clamp } from './utils';\nimport config from './config';\n\nexport default class Player {\n constructor(art) {\n this.art = art;\n this.init();\n this.eventBind();\n }\n\n init() {\n const { option } = this.art;\n const { $video } = this.art.refs;\n $video.controls = false;\n $video.poster = option.poster;\n $video.volume = clamp(option.volume, 0, 1);\n $video.autoplay = option.autoplay;\n $video.preload = option.preload;\n }\n\n eventBind() {\n const { events: { proxy }, refs: { $video } } = this.art;\n\n config.video.events.forEach(eventName => {\n proxy($video, eventName, event => {\n this.art.emit(`video:${event.type}`, event);\n });\n });\n\n this.art.on('video:loadstart', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:loadeddata', () => {\n this.art.loading.hide();\n });\n\n this.art.on('video:canplay', () => {\n this.art.controls.show();\n this.art.mask.show();\n if (this.art.option.autoplay) {\n const promise = this.play();\n if (promise !== undefined) {\n promise.then().catch(err => {\n console.warn(err);\n });\n }\n }\n });\n\n this.art.on('video:playing', () => {\n this.art.playing = true;\n this.art.controls.hide();\n this.art.mask.hide();\n });\n\n this.art.on('video:pause', () => {\n this.art.playing = false;\n this.art.controls.show();\n this.art.mask.show();\n });\n\n this.art.on('video:ended', () => {\n this.art.playing = false;\n this.art.controls.show();\n this.art.mask.show();\n });\n }\n\n play() {\n return this.art.refs.$video.play();\n }\n\n pause() {\n return this.art.refs.$video.pause();\n }\n\n toggle() {\n if (this.art.playing) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n seek() {\n //\n }\n\n currentTime() {\n //\n }\n\n volume() {\n //\n }\n\n switchVolumeIcon() {\n //\n }\n\n switchVideo() {\n //\n }\n\n switchQuality() {\n //\n }\n\n switchSubtitle() {\n //\n }\n\n speed() {\n //\n }\n}\n","import { errorHandle, request, getExt } from './utils';\nimport config from './config';\n\nexport default class Mse {\n constructor(art) {\n this.art = art;\n this.setMimeCodec();\n this.init();\n this.eventBind();\n this.eventStart();\n this.repeat = 0;\n this.maxRepeat = 5;\n }\n\n setMimeCodec() {\n const { option } = this.art;\n if (!option.type) {\n const type = getExt(option.url);\n errorHandle(\n Object.keys(config.mimeCodec).includes(type),\n `Can't find video's type '${type}' from '${option.url}'`\n );\n option.type = type;\n }\n\n if (!option.mimeCodec) {\n const mimeCodec = config.mimeCodec[option.type];\n errorHandle(\n mimeCodec,\n `Can't find video's mimeCodec from ${option.type}`\n );\n option.mimeCodec = mimeCodec;\n }\n }\n\n init() {\n const {\n option,\n refs: { $video }\n } = this.art;\n errorHandle(\n MediaSource.isTypeSupported(option.mimeCodec),\n `Unsupported MIME type or codec: ${option.mimeCodec}`\n );\n this.mediaSource = new MediaSource();\n $video.src = URL.createObjectURL(this.mediaSource);\n this.art.events.destroyEvents.push(() => {\n URL.revokeObjectURL($video.src);\n });\n }\n\n eventBind() {\n const { proxy } = this.art.events;\n const { mediaSource, sourceBufferList } = config.mse;\n\n mediaSource.events.forEach(eventName => {\n proxy(this.mediaSource, eventName, event => {\n this.art.emit(`mediaSource:${event.type}`, event);\n });\n });\n\n sourceBufferList.events.forEach(eventName => {\n proxy(this.mediaSource.sourceBuffers, eventName, event => {\n this.art.emit(`sourceBuffers:${event.type}`, event);\n });\n proxy(this.mediaSource.activeSourceBuffers, eventName, event => {\n this.art.emit(`activeSourceBuffers:${event.type}`, event);\n });\n });\n }\n\n eventStart() {\n const { option } = this.art;\n const { proxy } = this.art.events;\n const { sourceBuffer } = config.mse;\n\n this.art.on('mediaSource:sourceopen', () => {\n this.sourceBuffer = this.mediaSource.addSourceBuffer(option.mimeCodec);\n sourceBuffer.events.forEach(eventName => {\n proxy(this.sourceBuffer, eventName, event => {\n this.art.emit(`sourceBuffer:${event.type}`, event);\n });\n });\n });\n\n this.art.on('sourceBuffer:updateend', () => {\n this.mediaSource.endOfStream();\n });\n\n this.fetchUrl();\n }\n\n fetchUrl() {\n const { option, notice, i18n, loading } = this.art;\n request(option.url)\n .then(response => {\n this.sourceBuffer.appendBuffer(response);\n })\n .catch(err => {\n if (this.repeat++ < this.maxRepeat) {\n this.fetchUrl();\n } else {\n notice.show(i18n.get('Video load failed'));\n console.warn(err);\n loading.hide();\n }\n });\n }\n}\n","export default class Controls {\n constructor(art) {\n this.art = art;\n }\n\n show() {\n const { $wrap } = this.art.refs;\n $wrap.classList.add('controls-show');\n }\n\n hide() {\n const { $wrap } = this.art.refs;\n $wrap.classList.remove('controls-show');\n }\n}\n","import { append } from './utils';\n\nexport default class Contextmenu {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const {\n option,\n i18n,\n refs,\n events: { proxy }\n } = this.art;\n\n option.contextmenu.push(\n {\n text: i18n.get('Video info'),\n click: art => {\n art.info.show();\n }\n },\n {\n text: i18n.get('About author'),\n link: 'https://github.com/zhw2590582'\n },\n {\n text: 'ArtPlayer __VERSION__',\n link: 'https://github.com/zhw2590582/artplayer'\n },\n {\n text: i18n.get('Close'),\n click: () => {\n this.hide();\n }\n }\n );\n\n proxy(refs.$container, 'contextmenu', event => {\n event.preventDefault();\n this.art.focus = true;\n if (!refs.$contextmenu) {\n this.creatMenu();\n }\n this.show();\n this.setPos(event);\n });\n\n proxy(refs.$container, 'click', event => {\n if (refs.$contextmenu && !event.path.includes(refs.$contextmenu)) {\n this.hide();\n }\n });\n }\n\n creatMenu() {\n const {\n option,\n refs,\n events: { proxy }\n } = this.art;\n refs.$contextmenu = document.createElement('div');\n refs.$contextmenu.classList.add('artplayer-contextmenu');\n option.contextmenu.forEach(item => {\n const $menu = document.createElement('a');\n $menu.innerHTML = item.text;\n $menu.classList.add('art-menu');\n if (item.link) {\n $menu.target = '_blank';\n $menu.href = item.link;\n } else if (item.click) {\n $menu.href = '#';\n proxy($menu, 'click', event => {\n event.preventDefault();\n item.click(this.art, event);\n this.hide();\n });\n }\n append(refs.$contextmenu, $menu);\n });\n append(refs.$wrap, refs.$contextmenu);\n }\n\n setPos(event) {\n const { refs } = this.art;\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = refs.$container.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = refs.$contextmenu.getBoundingClientRect();\n\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft -= mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop -= mHeight;\n }\n\n refs.$contextmenu.style.left = `${menuLeft}px`;\n refs.$contextmenu.style.top = `${menuTop}px`;\n }\n\n hide() {\n const { refs } = this.art;\n refs.$contextmenu && (refs.$contextmenu.style.display = 'none');\n }\n\n show() {\n const { refs } = this.art;\n refs.$contextmenu && (refs.$contextmenu.style.display = 'block');\n }\n}\n","export default class Danmu {\n constructor(art) {\n this.art = art;\n }\n}\n","export default class Info {\n constructor(art) {\n this.art = art;\n }\n\n show() {\n console.log('info show');\n }\n\n hide() {\n console.log('info hide');\n }\n}\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","import { errorHandle, getExt, setStyle } from './utils';\n\nexport default class Subtitle {\n constructor(art) {\n this.art = art;\n if (this.art.option.subtitle) {\n errorHandle(\n getExt(this.art.option.subtitle) === 'vtt',\n `'subtitle' option require 'vtt' format, but got '${getExt(this.art.option.subtitle)}'.`\n );\n this.init();\n }\n }\n\n init() {\n const {\n events: { proxy },\n option: { subtitle, subtitleStyle },\n refs: { $video, $subtitle }\n } = this.art;\n\n setStyle($subtitle, subtitleStyle);\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n $track.src = subtitle;\n $video.appendChild($track);\n this.art.refs.$track = $track;\n\n if ($video.textTracks && $video.textTracks[0]) {\n const [track] = $video.textTracks;\n proxy(track, 'cuechange', () => {\n const [cue] = track.activeCues;\n $subtitle.innerHTML = '';\n if (cue) {\n const template = document.createElement('div');\n template.appendChild(cue.getCueAsHTML());\n $subtitle.innerHTML = template.innerHTML\n .split(/\\r?\\n/)\n .map(item => `

${item}

`)\n .join('');\n }\n });\n }\n }\n\n show() {\n this.art.refs.$subtitle.style.display = 'block';\n }\n\n hide() {\n this.art.refs.$subtitle.style.display = 'none';\n }\n\n change(url) {\n errorHandle(\n getExt(url) === 'vtt',\n `'url' option require 'vtt' format, but got '${getExt(url)}'.`\n );\n this.art.refs.$track.src = url;\n }\n}\n","export default class Events {\n constructor(art) {\n this.art = art;\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n }\n\n proxy(target, name, callback, option = {}) {\n target.addEventListener(name, callback, option);\n this.destroyEvents.push(() => {\n target.removeEventListener(name, callback, option);\n });\n }\n\n destroy() {\n this.destroyEvents.forEach(event => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.art = art;\n if (this.art.option.hotkey) {\n this.init();\n }\n }\n\n init() {\n const {\n player,\n notice,\n i18n,\n refs: { $container },\n events: { proxy }\n } = this.art;\n\n proxy(document, 'click', event => {\n this.art.focus = event.path.indexOf($container) > -1;\n });\n\n proxy(window, 'keydown', event => {\n if (this.art.focus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (\n tag !== 'INPUT' &&\n tag !== 'TEXTAREA' &&\n editable !== '' &&\n editable !== 'true'\n ) {\n let percentage;\n switch (event.keyCode) {\n case 39:\n event.preventDefault();\n player.seek(player.currentTime() + 10);\n notice.show(i18n.get('Fast forward 10 seconds'), true);\n break;\n case 37:\n event.preventDefault();\n player.seek(player.currentTime() - 10);\n notice.show(i18n.get('Rewind 10 seconds'), true);\n break;\n case 38:\n event.preventDefault();\n percentage = player.volume() + 0.1;\n player.volume(percentage);\n notice.show(i18n.get('10% increase in volume'), true);\n break;\n case 40:\n event.preventDefault();\n percentage = player.volume() - 0.1;\n player.volume(percentage);\n notice.show(i18n.get('10% reduction in volume'), true);\n break;\n case 32:\n event.preventDefault();\n player.toggle();\n break;\n default:\n break;\n }\n }\n }\n });\n }\n}\n","import { append, setStyle } from './utils';\n\nlet id = 0;\nexport default class Layers {\n constructor(art) {\n this.art = art;\n this.add = this.add.bind(this);\n this.art.option.layers.forEach(this.add);\n this.init();\n }\n\n init() {\n const { refs, player, events: { proxy } } = this.art;\n proxy(refs.$layers, 'click', event => {\n if (event.path[0] === refs.$layers) {\n player.pause();\n }\n });\n }\n\n add(option, callback) {\n const { refs } = this.art;\n id++;\n\n const $layer = document.createElement('div');\n $layer.setAttribute('data-art-layer-id', id);\n $layer.setAttribute('class', `art-layer art-layer-${option.name || id}`);\n $layer.style.zIndex = option.index || id;\n append($layer, option.html);\n setStyle($layer, option.style || {});\n refs.$layers.appendChild($layer);\n callback && callback($layer);\n }\n\n show() {\n this.art.refs.$layers.style.display = 'block';\n }\n\n hide() {\n this.art.refs.$layers.style.display = 'none';\n }\n}\n","import loading from './loading.svg';\nimport play from './play.svg';\n\nconst icons = {\n loading,\n play\n};\n\nfunction creatDomFromSvg(map) {\n const result = {};\n Object.keys(map).forEach(name => {\n const tmp = document.createElement('div');\n tmp.innerHTML = `${map[name]}`;\n [result[name]] = tmp.childNodes;\n });\n return result;\n}\n\nexport default creatDomFromSvg(icons);\n","import icons from './icons';\nimport { append } from './utils';\n\nexport default class Loading {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option, refs: { $loading } } = this.art;\n if (option.loading) {\n append($loading, option.loading);\n } else {\n append($loading, icons.loading);\n }\n }\n\n hide() {\n this.art.refs.$loading.style.display = 'none';\n }\n\n show() {\n this.art.refs.$loading.style.display = 'flex';\n }\n}\n","export default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n show(msg, autoHide) {\n const { refs: { $notice } } = this.art;\n $notice.style.display = 'block';\n $notice.innerHTML = msg instanceof Error ? msg.message.trim() : msg;\n if (autoHide) {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.hide();\n }, 1000);\n }\n }\n\n hide() {\n const { refs: { $notice } } = this.art;\n $notice.style.display = 'none';\n }\n}\n","import icons from './icons';\nimport { append } from './utils';\n\nexport default class Mask {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const {\n player,\n option,\n refs,\n events: { proxy }\n } = this.art;\n\n icons.play.style.backgroundColor = option.theme;\n append(refs.$mask, icons.play);\n\n proxy(refs.$mask, 'click', () => {\n player.play();\n this.hide();\n });\n }\n\n show() {\n this.art.refs.$mask.style.display = 'flex';\n }\n\n hide() {\n this.art.refs.$mask.style.display = 'none';\n }\n}\n","import './style/index.scss';\nimport verification from './utils/verification';\nimport config from './config';\nimport Emitter from 'tiny-emitter';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Mse from './mse';\nimport Controls from './controls';\nimport Contextmenu from './contextmenu';\nimport Danmu from './danmu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layers from './layers';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\n\nlet id = 0;\nexport const instances = [];\n\nclass Artplayer extends Emitter {\n constructor(option) {\n super();\n this.option = Object.assign({}, Artplayer.DEFAULTS, option);\n verification(this.option);\n this.init();\n }\n\n static get version() {\n return '__VERSION__';\n }\n\n static get config() {\n return config;\n }\n\n static get DEFAULTS() {\n return {\n container: document.querySelector('.artplayer'),\n url: '',\n poster: '',\n volume: 0.7,\n autoplay: false,\n preload: 'auto',\n type: '',\n mimeCodec: '',\n layers: [],\n contextmenu: [],\n loading: '',\n theme: '#1aafff',\n hotkey: true,\n subtitle: '',\n subtitleStyle: {},\n lang: navigator.language.toLowerCase()\n };\n }\n\n static use(plugin) {\n const installedPlugins = this.plugins || (this.plugins = []);\n if (installedPlugins.indexOf(plugin) > -1) {\n return this;\n }\n\n const args = Array.from(arguments).slice(1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this;\n }\n\n init() {\n this.focus = false;\n this.playing = false;\n this.refs = {};\n\n if (this.option.container instanceof Element) {\n this.refs.$container = this.option.container;\n } else {\n this.refs.$container = document.querySelector(this.option.container);\n }\n\n this.template = new Template(this);\n this.i18n = new I18n(this);\n this.events = new Events(this);\n this.player = new Player(this);\n this.mse = new Mse(this);\n this.layers = new Layers(this);\n this.controls = new Controls(this);\n this.contextmenu = new Contextmenu(this);\n this.danmu = new Danmu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.notice = new Notice(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n\n this.id = id++;\n instances.push(this);\n return this;\n }\n\n destroy() {\n this.events.destroy();\n this.refs.$container.innerHTML = '';\n instances.splice(instances.indexOf(this), 1);\n }\n}\n\nwindow.Artplayer = Artplayer;\nexport default Artplayer;\n"],"names":["_typeof","ArtPlayerError","message","context","Error","captureStackTrace","constructor","name","errorHandle","condition","msg","clamp","num","a","b","Math","max","min","request","url","fetch","then","response","arrayBuffer","catch","err","getExt","includes","split","trim","toLowerCase","pop","append","parent","child","Element","appendChild","innerHTML","setStyle","element","styles","Object","keys","forEach","key","style","verification","option","container","poster","volume","autoplay","indexOf","preload","lang","type","mimeCodec","Array","isArray","layers","contextmenu","loading","theme","hotkey","subtitle","prototype","toString","call","subtitleStyle","mp4","webm","ts","mediaSource","propertys","methods","events","sourceBuffer","sourceBufferList","mse","video","Template","art","init","refs","$container","$wrap","querySelector","$video","$subtitle","$controls","$layers","$loading","$notice","$mask","i18nMap","I18n","language","Player","eventBind","controls","proxy","config","eventName","event","emit","on","show","hide","mask","promise","play","undefined","console","warn","playing","pause","Mse","setMimeCodec","eventStart","repeat","maxRepeat","MediaSource","isTypeSupported","src","URL","createObjectURL","destroyEvents","push","revokeObjectURL","sourceBuffers","activeSourceBuffers","addSourceBuffer","endOfStream","fetchUrl","notice","i18n","appendBuffer","get","Controls","classList","add","remove","Contextmenu","text","click","info","link","preventDefault","focus","$contextmenu","creatMenu","setPos","path","document","createElement","item","$menu","target","href","mouseX","clientX","mouseY","clientY","getBoundingClientRect","cHeight","height","cWidth","width","cLeft","left","cTop","top","mHeight","mWidth","menuLeft","menuTop","display","Danmu","Info","log","Subtitle","$track","default","kind","textTracks","track","activeCues","cue","template","getCueAsHTML","map","join","Events","bind","callback","addEventListener","removeEventListener","Hotkey","player","window","tag","activeElement","tagName","toUpperCase","editable","getAttribute","percentage","keyCode","seek","currentTime","toggle","id","Layers","$layer","setAttribute","zIndex","index","html","icons","creatDomFromSvg","result","tmp","childNodes","Loading","Notice","timer","autoHide","clearTimeout","setTimeout","Mask","backgroundColor","instances","Artplayer","assign","DEFAULTS","danmu","destroy","splice","plugin","installedPlugins","plugins","args","from","arguments","slice","unshift","install","apply","navigator","Emitter"],"mappings":"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"} \ No newline at end of file diff --git a/src/contextmenu.js b/src/contextmenu.js index d5039d8b2..d985a6a58 100644 --- a/src/contextmenu.js +++ b/src/contextmenu.js @@ -1,3 +1,5 @@ +import { append } from './utils'; + export default class Contextmenu { constructor(art) { this.art = art; @@ -75,9 +77,9 @@ export default class Contextmenu { this.hide(); }); } - refs.$contextmenu.appendChild($menu); + append(refs.$contextmenu, $menu); }); - refs.$wrap.appendChild(refs.$contextmenu); + append(refs.$wrap, refs.$contextmenu); } setPos(event) { diff --git a/src/icons/index.js b/src/icons/index.js index 31d991a5f..b31c8e509 100644 --- a/src/icons/index.js +++ b/src/icons/index.js @@ -1,7 +1,7 @@ import loading from './loading.svg'; import play from './play.svg'; -const Icons = { +const icons = { loading, play }; @@ -16,4 +16,4 @@ function creatDomFromSvg(map) { return result; } -export default creatDomFromSvg(Icons); +export default creatDomFromSvg(icons); diff --git a/src/layers.js b/src/layers.js index 64b9b4d2d..8c4be2a4d 100644 --- a/src/layers.js +++ b/src/layers.js @@ -1,3 +1,5 @@ +import { append, setStyle } from './utils'; + let id = 0; export default class Layers { constructor(art) { @@ -24,19 +26,8 @@ export default class Layers { $layer.setAttribute('data-art-layer-id', id); $layer.setAttribute('class', `art-layer art-layer-${option.name || id}`); $layer.style.zIndex = option.index || id; - - if (option.html instanceof Element) { - $layer.appendChild(option.html); - } else { - $layer.innerHTML = option.html; - } - - if (option.style) { - Object.keys(option.style).forEach(key => { - $layer.style[key] = option.style[key]; - }); - } - + append($layer, option.html); + setStyle($layer, option.style || {}); refs.$layers.appendChild($layer); callback && callback($layer); } diff --git a/src/loading.js b/src/loading.js index 9f9d81de2..6466336fe 100644 --- a/src/loading.js +++ b/src/loading.js @@ -1,4 +1,5 @@ -import Icons from './icons'; +import icons from './icons'; +import { append } from './utils'; export default class Loading { constructor(art) { @@ -9,13 +10,9 @@ export default class Loading { init() { const { option, refs: { $loading } } = this.art; if (option.loading) { - if (option.loading instanceof Element) { - $loading.appendChild(option.loading); - } else { - $loading.innerHTML = option.loading; - } + append($loading, option.loading); } else { - $loading.appendChild(Icons.loading); + append($loading, icons.loading); } } diff --git a/src/mask.js b/src/mask.js index 12669979b..b6dc684ae 100644 --- a/src/mask.js +++ b/src/mask.js @@ -1,4 +1,5 @@ -import Icons from './icons'; +import icons from './icons'; +import { append } from './utils'; export default class Mask { constructor(art) { @@ -14,8 +15,8 @@ export default class Mask { events: { proxy } } = this.art; - Icons.play.style.backgroundColor = option.theme; - refs.$mask.appendChild(Icons.play); + icons.play.style.backgroundColor = option.theme; + append(refs.$mask, icons.play); proxy(refs.$mask, 'click', () => { player.play(); diff --git a/src/subtitle.js b/src/subtitle.js index 6cab7fe92..543840f2f 100644 --- a/src/subtitle.js +++ b/src/subtitle.js @@ -1,4 +1,4 @@ -import { errorHandle, getExt } from './utils'; +import { errorHandle, getExt, setStyle } from './utils'; export default class Subtitle { constructor(art) { @@ -19,10 +19,7 @@ export default class Subtitle { refs: { $video, $subtitle } } = this.art; - Object.keys(subtitleStyle).forEach(key => { - $subtitle.style[key] = subtitleStyle[key]; - }); - + setStyle($subtitle, subtitleStyle); const $track = document.createElement('track'); $track.default = true; $track.kind = 'metadata'; diff --git a/src/utils/index.js b/src/utils/index.js index 6a8b64a44..7e76f637d 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -29,3 +29,20 @@ export function getExt(url) { .split('.') .pop(); } + + +export function append(parent, child) { + if (child instanceof Element) { + parent.appendChild(child); + } else { + parent.innerHTML = child; + } + return parent; +} + +export function setStyle(element, styles) { + Object.keys(styles).forEach(key => { + element.style[key] = styles[key]; + }); + return element; +}