diff --git a/CHANGELOG.md b/CHANGELOG.md index 177c91b84..add09b298 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Add `artplayer-plugin-document-pip` plugin - Add `art.events.bindGlobalEvents` method for rebinding global methods - Optimize `artplayer.d.ts`, now you can directly import `Option` +- Add `Artplayer.REMOVE_SRC_WHEN_DESTROY` ```ts import type { Option } from 'artplayer' diff --git a/docs/uncompiled/artplayer/index.js b/docs/uncompiled/artplayer/index.js index 7ef948600..c65ca5029 100644 --- a/docs/uncompiled/artplayer/index.js +++ b/docs/uncompiled/artplayer/index.js @@ -360,6 +360,7 @@ class Artplayer extends (0, _emitterDefault.default) { return this.template.$video; } destroy(removeHtml = true) { + if (Artplayer.REMOVE_SRC_WHEN_DESTROY) this.video.removeAttribute('src'); this.events.destroy(); this.template.destroy(removeHtml); instances.splice(instances.indexOf(this), 1); @@ -416,6 +417,7 @@ Artplayer.FLIP = [ Artplayer.FULLSCREEN_WEB_IN_BODY = false; Artplayer.LOG_VERSION = true; Artplayer.USE_RAF = false; +Artplayer.REMOVE_SRC_WHEN_DESTROY = true; if (_utils.isBrowser) { window.Artplayer = Artplayer; _utils.setStyleText('artplayer-style', (0, _indexLessDefault.default)); @@ -5462,7 +5464,6 @@ class Template { if (0, _utils.isMobile) (0, _utils.addClass)(this.$player, 'art-mobile'); } destroy(removeHtml) { - this.$video.src = ''; if (removeHtml) this.$container.innerHTML = ''; else (0, _utils.addClass)(this.$player, 'art-destroy'); } diff --git a/docs/uncompiled/artplayer/index.js.map b/docs/uncompiled/artplayer/index.js.map index 9eab23078..379d2617e 100644 --- a/docs/uncompiled/artplayer/index.js.map +++ b/docs/uncompiled/artplayer/index.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["packages/artplayer/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-1a83ba7b78f9fbad.js","node_modules/option-validator/dist/option-validator.js","packages/artplayer/package.json","packages/artplayer/src/config/index.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","packages/artplayer/src/contextmenu/index.js","packages/artplayer/src/utils/index.js","packages/artplayer/src/utils/compatibility.js","packages/artplayer/src/utils/dom.js","packages/artplayer/src/utils/error.js","packages/artplayer/src/utils/file.js","packages/artplayer/src/utils/format.js","packages/artplayer/src/utils/property.js","packages/artplayer/src/utils/subtitle.js","packages/artplayer/src/utils/time.js","packages/artplayer/src/utils/component.js","packages/artplayer/src/scheme/index.js","packages/artplayer/src/contextmenu/aspectRatio.js","packages/artplayer/src/contextmenu/close.js","packages/artplayer/src/contextmenu/flip.js","packages/artplayer/src/contextmenu/info.js","packages/artplayer/src/contextmenu/playbackRate.js","packages/artplayer/src/contextmenu/version.js","packages/artplayer/src/control/index.js","packages/artplayer/src/control/airplay.js","packages/artplayer/src/control/fullscreen.js","packages/artplayer/src/control/fullscreenWeb.js","packages/artplayer/src/control/pip.js","packages/artplayer/src/control/playAndPause.js","packages/artplayer/src/control/progress.js","packages/artplayer/src/control/screenshot.js","packages/artplayer/src/control/setting.js","packages/artplayer/src/control/time.js","packages/artplayer/src/control/volume.js","packages/artplayer/src/events/index.js","packages/artplayer/src/events/clickInit.js","packages/artplayer/src/events/gestureInit.js","packages/artplayer/src/events/globalInit.js","packages/artplayer/src/events/hoverInit.js","packages/artplayer/src/events/moveInit.js","packages/artplayer/src/events/resizeInit.js","packages/artplayer/src/events/updateInit.js","packages/artplayer/src/events/viewInit.js","packages/artplayer/src/hotkey.js","packages/artplayer/src/i18n/index.js","packages/artplayer/src/i18n/zh-cn.js","packages/artplayer/src/icons/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-b09787399762439a.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-59d8a32ff494cf26.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-fc0e8ba14b0a205e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-b6afaee63da94390.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-8306aa2d43f8f518.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e79e019b9bea702c.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-6e4bd76b89220063.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-11f6581ae841b62a.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-a9b9362d1cb1ddd7.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-d20ee4405f81c2fb.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e61dc575158bf45c.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-853939c76577d052.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ed21bae52505e995.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-20be5e3eca70ea32.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-c577d5b2fce8a593.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ed2c6405abc18237.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-d269c22a6d246bc3.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-9e6243eba3e2ee25.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-8fd0b0f874dbf51e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e2d98041510dcc81.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-0b69a45deda02972.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-c89477eca9760866.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-dbc4095e84eeca13.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-3cf7eba38b86f798.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-766dea468868d543.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ce7336f6ee750446.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-296845b4b0ef3af0.js","packages/artplayer/src/info.js","packages/artplayer/src/layer.js","packages/artplayer/src/loading.js","packages/artplayer/src/mask.js","packages/artplayer/src/notice.js","packages/artplayer/src/player/index.js","packages/artplayer/src/player/airplayMix.js","packages/artplayer/src/player/aspectRatioMix.js","packages/artplayer/src/player/attrMix.js","packages/artplayer/src/player/autoHeightMix.js","packages/artplayer/src/player/autoSizeMix.js","packages/artplayer/src/player/cssVarMix.js","packages/artplayer/src/player/currentTimeMix.js","packages/artplayer/src/player/durationMix.js","packages/artplayer/src/player/eventInit.js","packages/artplayer/src/player/flipMix.js","packages/artplayer/src/player/fullscreenMix.js","packages/artplayer/src/libs/screenfull.js","packages/artplayer/src/player/fullscreenWebMix.js","packages/artplayer/src/player/loadedMix.js","packages/artplayer/src/player/miniMix.js","packages/artplayer/src/player/optionInit.js","packages/artplayer/src/player/pauseMix.js","packages/artplayer/src/player/pipMix.js","packages/artplayer/src/player/playbackRateMix.js","packages/artplayer/src/player/playedMix.js","packages/artplayer/src/player/playingMix.js","packages/artplayer/src/player/playMix.js","packages/artplayer/src/player/posterMix.js","packages/artplayer/src/player/qualityMix.js","packages/artplayer/src/player/rectMix.js","packages/artplayer/src/player/screenshotMix.js","packages/artplayer/src/player/seekMix.js","packages/artplayer/src/player/stateMix.js","packages/artplayer/src/player/subtitleOffsetMix.js","packages/artplayer/src/player/switchMix.js","packages/artplayer/src/player/themeMix.js","packages/artplayer/src/player/thumbnailsMix.js","packages/artplayer/src/player/toggleMix.js","packages/artplayer/src/player/typeMix.js","packages/artplayer/src/player/urlMix.js","packages/artplayer/src/player/volumeMix.js","packages/artplayer/src/plugins/index.js","packages/artplayer/src/plugins/autoOrientation.js","packages/artplayer/src/plugins/autoPlayback.js","packages/artplayer/src/plugins/fastForward.js","packages/artplayer/src/plugins/lock.js","packages/artplayer/src/plugins/miniProgressBar.js","packages/artplayer/src/setting/index.js","packages/artplayer/src/setting/aspectRatio.js","packages/artplayer/src/setting/flip.js","packages/artplayer/src/setting/playbackRate.js","packages/artplayer/src/setting/subtitleOffset.js","packages/artplayer/src/storage.js","packages/artplayer/src/subtitle.js","packages/artplayer/src/template.js","packages/artplayer/src/utils/emitter.js"],"sourcesContent":["import style from 'bundle-text:./style/index.less'\nimport validator from 'option-validator'\nimport { version } from '../package.json'\nimport config from './config'\nimport Contextmenu from './contextmenu'\nimport Control from './control'\nimport Events from './events'\nimport Hotkey from './hotkey'\nimport I18n from './i18n'\nimport Icons from './icons'\nimport Info from './info'\nimport Layer from './layer'\nimport Loading from './loading'\nimport Mask from './mask'\nimport Notice from './notice'\nimport Player from './player'\nimport Plugins from './plugins'\nimport scheme from './scheme'\nimport Setting from './setting'\nimport Storage from './storage'\nimport Subtitle from './subtitle'\nimport Template from './template'\nimport * as utils from './utils'\nimport Emitter from './utils/emitter'\n\nlet id = 0\nconst instances = []\nexport default class Artplayer extends Emitter {\n constructor(option, readyCallback) {\n super()\n\n if (!utils.isBrowser) {\n throw new Error('Artplayer can only be used in the browser environment')\n }\n\n this.id = ++id\n\n const mergeOption = utils.mergeDeep(Artplayer.option, option)\n mergeOption.container = option.container\n\n this.option = validator(mergeOption, scheme)\n\n this.isLock = false\n this.isReady = false\n this.isFocus = false\n this.isInput = false\n this.isRotate = false\n this.isDestroy = false\n\n this.template = new Template(this)\n this.events = new Events(this)\n this.storage = new Storage(this)\n this.icons = new Icons(this)\n this.i18n = new I18n(this)\n this.notice = new Notice(this)\n this.player = new Player(this)\n this.layers = new Layer(this)\n this.controls = new Control(this)\n this.contextmenu = new Contextmenu(this)\n this.subtitle = new Subtitle(this)\n this.info = new Info(this)\n this.loading = new Loading(this)\n this.hotkey = new Hotkey(this)\n this.mask = new Mask(this)\n this.setting = new Setting(this)\n this.plugins = new Plugins(this)\n\n if (typeof readyCallback === 'function') {\n this.on('ready', () => readyCallback.call(this, this))\n }\n\n if (Artplayer.DEBUG) {\n // eslint-disable-next-line no-console\n const log = msg => console.log(`[ART.${this.id}] -> ${msg}`)\n log(`Version@${Artplayer.version}`)\n for (let index = 0; index < config.events.length; index++) {\n this.on(`video:${config.events[index]}`, event => log(`Event@${event.type}`))\n }\n }\n\n instances.push(this)\n }\n\n static get instances() {\n return instances\n }\n\n static get version() {\n return version\n }\n\n static get config() {\n return config\n }\n\n static get utils() {\n return utils\n }\n\n static get scheme() {\n return scheme\n }\n\n static get Emitter() {\n return Emitter\n }\n\n static get validator() {\n return validator\n }\n\n static get kindOf() {\n return validator.kindOf\n }\n\n static get html() {\n return Template.html\n }\n\n static get option() {\n return {\n id: '',\n container: '#artplayer',\n url: '',\n poster: '',\n type: '',\n theme: '#f00',\n volume: 0.7,\n isLive: false,\n muted: false,\n autoplay: false,\n autoSize: false,\n autoMini: false,\n loop: false,\n flip: false,\n playbackRate: false,\n aspectRatio: false,\n screenshot: false,\n setting: false,\n hotkey: true,\n pip: false,\n mutex: true,\n backdrop: true,\n fullscreen: false,\n fullscreenWeb: false,\n subtitleOffset: false,\n miniProgressBar: false,\n useSSR: false,\n playsInline: true,\n lock: false,\n gesture: true,\n fastForward: false,\n autoPlayback: false,\n autoOrientation: false,\n airplay: false,\n proxy: undefined,\n layers: [],\n contextmenu: [],\n controls: [],\n settings: [],\n quality: [],\n highlight: [],\n plugins: [],\n thumbnails: {\n url: '',\n number: 60,\n column: 10,\n width: 0,\n height: 0,\n scale: 1,\n },\n subtitle: {\n url: '',\n type: '',\n style: {},\n name: '',\n escape: true,\n encoding: 'utf-8',\n onVttLoad: vtt => vtt,\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n i18n: {},\n icons: {},\n cssVar: {},\n customType: {},\n lang: navigator?.language.toLowerCase(),\n }\n }\n\n get proxy() {\n return this.events.proxy\n }\n\n get query() {\n return this.template.query\n }\n\n get video() {\n return this.template.$video\n }\n\n destroy(removeHtml = true) {\n this.events.destroy()\n this.template.destroy(removeHtml)\n instances.splice(instances.indexOf(this), 1)\n this.isDestroy = true\n this.emit('destroy')\n }\n}\n\nArtplayer.STYLE = style\nArtplayer.DEBUG = false\nArtplayer.CONTEXTMENU = true\nArtplayer.NOTICE_TIME = 2000\nArtplayer.SETTING_WIDTH = 250\nArtplayer.SETTING_ITEM_WIDTH = 200\nArtplayer.SETTING_ITEM_HEIGHT = 35\nArtplayer.RESIZE_TIME = 200\nArtplayer.SCROLL_TIME = 200\nArtplayer.SCROLL_GAP = 50\nArtplayer.AUTO_PLAYBACK_MAX = 10\nArtplayer.AUTO_PLAYBACK_MIN = 5\nArtplayer.AUTO_PLAYBACK_TIMEOUT = 3000\nArtplayer.RECONNECT_TIME_MAX = 5\nArtplayer.RECONNECT_SLEEP_TIME = 1000\nArtplayer.CONTROL_HIDE_TIME = 3000\nArtplayer.DBCLICK_TIME = 300\nArtplayer.DBCLICK_FULLSCREEN = true\nArtplayer.MOBILE_DBCLICK_PLAY = true\nArtplayer.MOBILE_CLICK_PLAY = false\nArtplayer.AUTO_ORIENTATION_TIME = 200\nArtplayer.INFO_LOOP_TIME = 1000\nArtplayer.FAST_FORWARD_VALUE = 3\nArtplayer.FAST_FORWARD_TIME = 1000\nArtplayer.TOUCH_MOVE_RATIO = 0.5\nArtplayer.VOLUME_STEP = 0.1\nArtplayer.SEEK_STEP = 5\nArtplayer.PLAYBACK_RATE = [0.5, 0.75, 1, 1.25, 1.5, 2]\nArtplayer.ASPECT_RATIO = ['default', '4:3', '16:9']\nArtplayer.FLIP = ['normal', 'horizontal', 'vertical']\nArtplayer.FULLSCREEN_WEB_IN_BODY = false\nArtplayer.LOG_VERSION = true\nArtplayer.USE_RAF = false\n\nif (utils.isBrowser) {\n window.Artplayer = Artplayer\n\n utils.setStyleText('artplayer-style', style)\n\n setTimeout(() => {\n if (Artplayer.LOG_VERSION) {\n // eslint-disable-next-line no-console\n console.log(\n `%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`,\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n )\n }\n }, 100)\n}\n","module.exports = \"8df583d394494873\";","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2\",\n \"license\": \"MIT\",\n \"homepage\": \"https://artplayer.org\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/zhw2590582/ArtPlayer.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/zhw2590582/ArtPlayer/issues\"\n },\n \"keywords\": [\n \"html5\",\n \"video\",\n \"player\"\n ],\n \"exports\": {\n \".\": {\n \"import\": \"./dist/artplayer.mjs\",\n \"require\": \"./dist/artplayer.js\"\n },\n \"./i18n/*\": {\n \"import\": \"./dist/i18n/*.mjs\",\n \"require\": \"./dist/i18n/*.js\"\n },\n \"./dist/i18n/*\": {\n \"import\": \"./dist/i18n/*.mjs\",\n \"require\": \"./dist/i18n/*.js\"\n }\n },\n \"main\": \"./dist/artplayer.js\",\n \"module\": \"./dist/artplayer.mjs\",\n \"types\": \"./types/artplayer.d.ts\",\n \"legacy\": \"./dist/artplayer.legacy.js\",\n \"browserslist\": \"last 1 Chrome version\",\n \"dependencies\": {\n \"option-validator\": \"^2.0.6\"\n }\n}\n","export default {\n properties: [\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: ['addTextTrack', 'canPlayType', 'load', 'play', 'pause'],\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 prototypes: [\n 'width',\n 'height',\n 'videoWidth',\n 'videoHeight',\n 'poster',\n 'webkitDecodedFrameCount',\n 'webkitDroppedFrameCount',\n 'playsInline',\n 'webkitSupportsFullscreen',\n 'webkitDisplayingFullscreen',\n 'onenterpictureinpicture',\n 'onleavepictureinpicture',\n 'disablePictureInPicture',\n 'cancelVideoFrameCallback',\n 'requestVideoFrameCallback',\n 'getVideoPlaybackQuality',\n 'requestPictureInPicture',\n 'webkitEnterFullScreen',\n 'webkitEnterFullscreen',\n 'webkitExitFullScreen',\n 'webkitExitFullscreen',\n ],\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n","import { getRect, includeFromEvent, isMobile, setStyles } from '../utils'\nimport Component from '../utils/component'\nimport aspectRatio from './aspectRatio'\nimport close from './close'\nimport flip from './flip'\nimport info from './info'\nimport playbackRate from './playbackRate'\nimport version from './version'\n\nexport default class Contextmenu extends Component {\n constructor(art) {\n super(art)\n\n this.name = 'contextmenu'\n this.$parent = art.template.$contextmenu\n\n if (!isMobile) {\n this.init()\n }\n }\n\n init() {\n const {\n option,\n proxy,\n template: { $player, $contextmenu },\n } = this.art\n\n if (option.playbackRate) {\n this.add(\n playbackRate({\n name: 'playbackRate',\n index: 10,\n }),\n )\n }\n\n if (option.aspectRatio) {\n this.add(\n aspectRatio({\n name: 'aspectRatio',\n index: 20,\n }),\n )\n }\n\n if (option.flip) {\n this.add(\n flip({\n name: 'flip',\n index: 30,\n }),\n )\n }\n\n this.add(\n info({\n name: 'info',\n index: 40,\n }),\n )\n\n this.add(\n version({\n name: 'version',\n index: 50,\n }),\n )\n\n this.add(\n close({\n name: 'close',\n index: 60,\n }),\n )\n\n for (let index = 0; index < option.contextmenu.length; index++) {\n this.add(option.contextmenu[index])\n }\n\n proxy($player, 'contextmenu', (event) => {\n if (!this.art.constructor.CONTEXTMENU)\n return\n event.preventDefault()\n\n this.show = true\n\n const mouseX = event.clientX\n const mouseY = event.clientY\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = getRect($player)\n const { height: mHeight, width: mWidth } = getRect($contextmenu)\n let menuLeft = mouseX - cLeft\n let menuTop = mouseY - cTop\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n })\n })\n\n proxy($player, 'click', (event) => {\n if (!includeFromEvent(event, $contextmenu)) {\n this.show = false\n }\n })\n\n this.art.on('blur', () => {\n this.show = false\n })\n }\n}\n","export * from './compatibility'\nexport * from './dom'\nexport * from './error'\nexport * from './file'\nexport * from './format'\nexport * from './property'\nexport * from './subtitle'\nexport * from './time'\n","export const userAgent = globalThis?.CUSTOM_USER_AGENT ?? (typeof navigator !== 'undefined' ? navigator.userAgent : '')\nexport const isSafari = /^(?:(?!chrome|android).)*safari/i.test(userAgent)\nexport const isIOS = /iPad|iPhone|iPod/i.test(userAgent) && !window.MSStream\nexport const isIOS13 = isIOS || (userAgent.includes('Macintosh') && navigator.maxTouchPoints >= 1)\nexport const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent) || isIOS13\nexport const isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'\n","import { isMobile } from './compatibility'\n\nexport function query(selector, parent = document) {\n return parent.querySelector(selector)\n}\n\nexport function queryAll(selector, parent = document) {\n return Array.from(parent.querySelectorAll(selector))\n}\n\nexport function addClass(target, className) {\n return target.classList.add(className)\n}\n\nexport function removeClass(target, className) {\n return target.classList.remove(className)\n}\n\nexport function hasClass(target, className) {\n return target.classList.contains(className)\n}\n\nexport function append(parent, child) {\n if (child instanceof Element) {\n parent.appendChild(child)\n }\n else {\n parent.insertAdjacentHTML('beforeend', String(child))\n }\n return parent.lastElementChild || parent.lastChild\n}\n\nexport function remove(child) {\n return child.parentNode.removeChild(child)\n}\n\nexport function setStyle(element, key, value) {\n element.style[key] = value\n return element\n}\n\nexport function setStyles(element, styles) {\n for (const key in styles) {\n setStyle(element, key, styles[key])\n }\n return element\n}\n\nexport function getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key)\n return numberType ? Number.parseFloat(value) : value\n}\n\nexport function siblings(target) {\n return Array.from(target.parentElement.children).filter(item => item !== target)\n}\n\nexport function inverseClass(target, className) {\n siblings(target).forEach(item => removeClass(item, className))\n addClass(target, className)\n}\n\nexport function tooltip(target, msg, pos = 'top') {\n if (isMobile)\n return\n target.setAttribute('aria-label', msg)\n addClass(target, 'hint--rounded')\n addClass(target, `hint--${pos}`)\n}\n\nexport function isInViewport(el, offset = 0) {\n const rect = el.getBoundingClientRect()\n const windowHeight = window.innerHeight || document.documentElement.clientHeight\n const windowWidth = window.innerWidth || document.documentElement.clientWidth\n const vertInView = rect.top - offset <= windowHeight && rect.top + rect.height + offset >= 0\n const horInView = rect.left - offset <= windowWidth + offset && rect.left + rect.width + offset >= 0\n return vertInView && horInView\n}\n\nexport function includeFromEvent(event, target) {\n return getComposedPath(event).includes(target)\n}\n\nexport function replaceElement(newChild, oldChild) {\n oldChild.parentNode.replaceChild(newChild, oldChild)\n return newChild\n}\n\nexport function createElement(tag) {\n return document.createElement(tag)\n}\n\nexport function getIcon(key = '', html = '') {\n const icon = createElement('i')\n addClass(icon, 'art-icon')\n addClass(icon, `art-icon-${key}`)\n append(icon, html)\n return icon\n}\n\nexport function setStyleText(id, style) {\n let $style = document.getElementById(id)\n if (!$style) {\n $style = document.createElement('style')\n $style.id = id\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', () => {\n document.head.appendChild($style)\n })\n }\n else {\n (document.head || document.documentElement).appendChild($style)\n }\n }\n $style.textContent = style\n}\n\nexport function supportsFlex() {\n const div = document.createElement('div')\n div.style.display = 'flex'\n return div.style.display === 'flex'\n}\n\nexport function getRect(el) {\n return el.getBoundingClientRect()\n}\n\nexport function loadImg(url, scale) {\n return new Promise((resolve, reject) => {\n const img = new Image()\n\n img.onload = function () {\n if (!scale || scale === 1) {\n resolve(img)\n }\n else {\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n canvas.width = img.width * scale\n canvas.height = img.height * scale\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height)\n\n canvas.toBlob((blob) => {\n const blobUrl = URL.createObjectURL(blob)\n const scaledImg = new Image()\n\n scaledImg.onload = function () {\n resolve(scaledImg)\n }\n\n scaledImg.onerror = function () {\n URL.revokeObjectURL(blobUrl)\n reject(new Error(`Image load failed: ${url}`))\n }\n\n scaledImg.src = blobUrl\n })\n }\n }\n\n img.onerror = function () {\n reject(new Error(`Image load failed: ${url}`))\n }\n\n img.src = url\n })\n}\n\nexport function getComposedPath(event) {\n if (event.composedPath)\n return event.composedPath()\n const path = []\n let node = event.target\n while (node) {\n path.push(node)\n node = node.parentNode\n }\n if (!path.includes(window) && window !== undefined) {\n path.push(window)\n }\n return path\n}\n","export 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\nexport function errorHandle(condition, msg) {\n if (!condition) {\n throw new ArtPlayerError(msg)\n }\n return condition\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0])\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0])\n }\n\n return url.trim().toLowerCase().split('.').pop()\n}\n\nexport function download(url, name) {\n const elink = document.createElement('a')\n elink.style.display = 'none'\n elink.href = url\n elink.download = name\n document.body.appendChild(elink)\n elink.click()\n document.body.removeChild(elink)\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b))\n}\n\nexport function capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport function secondToTime(second) {\n if (!second)\n return '00:00'\n const add0 = num => (num < 10 ? `0${num}` : String(num))\n const hour = Math.floor(second / 3600)\n const min = Math.floor((second - hour * 3600) / 60)\n const sec = Math.floor(second - hour * 3600 - min * 60)\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':')\n}\n\nexport function escape(str) {\n return str.replace(\n /[&<>'\"]/g,\n tag =>\n ({\n '&': '&',\n '<': '<',\n '>': '>',\n '\\'': ''',\n '\"': '"',\n })[tag] || tag,\n )\n}\n\nexport function unescape(str) {\n const map = {\n '&': '&',\n '<': '<',\n '>': '>',\n ''': '\\'',\n '"': '\"',\n }\n const reg = new RegExp(`(${Object.keys(map).join('|')})`, 'g')\n return str.replace(reg, tag => map[tag] || tag)\n}\n","export const def = Object.defineProperty\n\nconst { hasOwnProperty } = Object.prototype\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name)\n}\n\nexport function get(obj, name) {\n return Object.getOwnPropertyDescriptor(obj, name)\n}\n\nexport function mergeDeep(...objects) {\n const isObject = item => item && typeof item === 'object' && !Array.isArray(item)\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach((key) => {\n const pVal = prev[key]\n const oVal = obj[key]\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal)\n }\n else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal)\n }\n else {\n prev[key] = oVal\n }\n })\n return prev\n }, {})\n}\n","function fixSrt(srt) {\n return srt.replace(/(\\d\\d:\\d\\d:\\d\\d)[,.](\\d+)/g, (_, $1, $2) => {\n let ms = $2.slice(0, 3)\n if ($2.length === 1) {\n ms = `${$2}00`\n }\n if ($2.length === 2) {\n ms = `${$2}0`\n }\n return `${$1},${ms}`\n })\n}\n\nexport function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n fixSrt(srtText)\n .replace(/\\{\\\\([ibu])\\}/g, '')\n .replace(/\\{\\\\([ibu])1\\}/g, '<$1>')\n .replace(/\\{([ibu])\\}/g, '<$1>')\n .replace(/\\{\\/([ibu])\\}/g, '')\n .replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2')\n .replace(/\\{[\\s\\S]*?\\}/g, '')\n .concat('\\r\\n\\r\\n'),\n )\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n )\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,'\n + '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),'\n + '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),'\n + '([^,]*),'\n + '([^,]*),'\n + '(?:[^,]*,){4}'\n + '([\\\\s\\\\S]*)$',\n 'i',\n )\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`\n }\n\n if (item.length === 2) {\n return `.${item}0`\n }\n }\n else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item\n }\n\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`\n })\n .join('')\n }\n\n return (\n `WEBVTT`\n + `\\n`\n + `\\n${\n ass\n .split(/\\r?\\n/)\n .map((line) => {\n const m = line.match(reAss)\n if (!m)\n return null\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/\\{[\\s\\S]*?\\}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map(item => item.trim())\n .join('\\n'),\n }\n })\n .filter(line => line)\n .map((line, index) => {\n if (line) {\n return `${index + 1}\\n` + `${line.start} --> ${line.end}` + `\\n` + `${line.text}`\n }\n return ''\n })\n .filter(line => line.trim())\n .join('\\n\\n')}`\n )\n}\n","export function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms))\n}\n\nexport function debounce(func, duration) {\n let timeout\n\n return function (...args) {\n const effect = () => {\n timeout = null\n return func.apply(this, args)\n }\n\n clearTimeout(timeout)\n timeout = setTimeout(effect, duration)\n }\n}\n\nexport function throttle(func, duration) {\n let shouldWait = false\n\n return function (...args) {\n if (!shouldWait) {\n func.apply(this, args)\n shouldWait = true\n\n setTimeout(() => {\n shouldWait = false\n }, duration)\n }\n }\n}\n","import validator from 'option-validator'\nimport { ComponentOption } from '../scheme'\nimport { addClass, append, createElement, hasClass, remove, removeClass, setStyles, tooltip } from './dom'\nimport { errorHandle } from './error'\n\nexport default class Component {\n constructor(art) {\n this.id = 0\n this.art = art\n this.cache = new Map()\n this.add = this.add.bind(this)\n this.remove = this.remove.bind(this)\n this.update = this.update.bind(this)\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`)\n }\n\n set show(value) {\n const { $player } = this.art.template\n const className = `art-${this.name}-show`\n if (value) {\n addClass($player, className)\n }\n else {\n removeClass($player, className)\n }\n this.art.emit(this.name, value)\n }\n\n toggle() {\n this.show = !this.show\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption\n option.html = option.html || ''\n validator(option, ComponentOption)\n if (!this.$parent || !this.name || option.disable)\n return\n const name = option.name || `${this.name}${this.id}`\n const item = this.cache.get(name)\n errorHandle(!item, `Can't add an existing [${name}] to the [${this.name}]`)\n\n this.id += 1\n const $ref = createElement('div')\n addClass($ref, `art-${this.name}`)\n addClass($ref, `art-${this.name}-${name}`)\n\n const childs = Array.from(this.$parent.children)\n $ref.dataset.index = option.index || this.id\n const nextChild = childs.find(item => Number(item.dataset.index) >= Number($ref.dataset.index))\n if (nextChild) {\n nextChild.insertAdjacentElement('beforebegin', $ref)\n }\n else {\n append(this.$parent, $ref)\n }\n\n if (option.html) {\n append($ref, option.html)\n }\n\n if (option.style) {\n setStyles($ref, option.style)\n }\n\n if (option.tooltip) {\n tooltip($ref, option.tooltip)\n }\n\n const events = []\n if (option.click) {\n const destroyEvent = this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault()\n option.click.call(this.art, this, event)\n })\n events.push(destroyEvent)\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.selector(option, $ref, events)\n }\n\n this[name] = $ref\n this.cache.set(name, { $ref, events, option })\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref)\n }\n\n return $ref\n }\n\n remove(name) {\n const item = this.cache.get(name)\n errorHandle(item, `Can't find [${name}] from the [${this.name}]`)\n\n if (item.option.beforeUnmount) {\n item.option.beforeUnmount.call(this.art, item.$ref)\n }\n\n for (let index = 0; index < item.events.length; index++) {\n this.art.events.remove(item.events[index])\n }\n\n this.cache.delete(name)\n delete this[name]\n remove(item.$ref)\n }\n\n update(option) {\n const item = this.cache.get(option.name)\n if (item) {\n option = Object.assign(item.option, option)\n this.remove(option.name)\n }\n return this.add(option)\n }\n}\n","import { errorHandle } from '../utils'\n\nconst a = 'array'\nconst b = 'boolean'\nconst s = 'string'\nconst n = 'number'\nconst o = 'object'\nconst f = 'function'\n\nfunction validElement(value, type, paths) {\n return errorHandle(\n type === s || type === n || value instanceof Element,\n `${paths.join('.')} require '${s}' or 'Element' type`,\n )\n}\n\nexport const ComponentOption = {\n html: validElement,\n disable: `?${b}`,\n name: `?${s}`,\n index: `?${n}`,\n style: `?${o}`,\n click: `?${f}`,\n mounted: `?${f}`,\n tooltip: `?${s}|${n}`,\n width: `?${n}`,\n selector: `?${a}`,\n onSelect: `?${f}`,\n switch: `?${b}`,\n onSwitch: `?${f}`,\n range: `?${a}`,\n onRange: `?${f}`,\n onChange: `?${f}`,\n}\n\nexport default {\n id: s,\n container: validElement,\n url: s,\n poster: s,\n type: s,\n theme: s,\n lang: s,\n volume: n,\n isLive: b,\n muted: b,\n autoplay: b,\n autoSize: b,\n autoMini: b,\n loop: b,\n flip: b,\n playbackRate: b,\n aspectRatio: b,\n screenshot: b,\n setting: b,\n hotkey: b,\n pip: b,\n mutex: b,\n backdrop: b,\n fullscreen: b,\n fullscreenWeb: b,\n subtitleOffset: b,\n miniProgressBar: b,\n useSSR: b,\n playsInline: b,\n lock: b,\n gesture: b,\n fastForward: b,\n autoPlayback: b,\n autoOrientation: b,\n airplay: b,\n proxy: `?${f}`,\n plugins: [f],\n layers: [ComponentOption],\n contextmenu: [ComponentOption],\n settings: [ComponentOption],\n controls: [\n {\n ...ComponentOption,\n position: (value, _, paths) => {\n const position = ['top', 'left', 'right']\n return errorHandle(\n position.includes(value),\n `${paths.join('.')} only accept ${position.toString()} as parameters`,\n )\n },\n },\n ],\n quality: [\n {\n default: `?${b}`,\n html: s,\n url: s,\n },\n ],\n highlight: [\n {\n time: n,\n text: s,\n },\n ],\n thumbnails: {\n url: s,\n number: n,\n column: n,\n width: n,\n height: n,\n scale: n,\n },\n subtitle: {\n url: s,\n name: s,\n type: s,\n style: o,\n escape: b,\n encoding: s,\n onVttLoad: f,\n },\n moreVideoAttr: o,\n i18n: o,\n icons: o,\n cssVar: o,\n customType: o,\n}\n","import { inverseClass, query, queryAll } from '../utils'\n\nexport default function aspectRatio(option) {\n return (art) => {\n const {\n i18n,\n constructor: { ASPECT_RATIO },\n } = art\n\n const html = ASPECT_RATIO.map(\n item => `${item === 'default' ? i18n.get('Default') : item}`,\n ).join('')\n\n return {\n ...option,\n html: `${i18n.get('Aspect Ratio')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset\n if (value) {\n art.aspectRatio = value\n contextmenu.show = false\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"default\"]', $panel)\n if ($default) {\n inverseClass($default, 'art-current')\n }\n art.on('aspectRatio', (value) => {\n const $current = queryAll('span', $panel).find(item => item.dataset.value === value)\n if ($current) {\n inverseClass($current, 'art-current')\n }\n })\n },\n }\n }\n}\n","export default function close(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Close'),\n click: (contextmenu) => {\n contextmenu.show = false\n },\n })\n}\n","import { capitalize, inverseClass, query, queryAll } from '../utils'\n\nexport default function flip(option) {\n return (art) => {\n const {\n i18n,\n constructor: { FLIP },\n } = art\n\n const html = FLIP.map(item => `${i18n.get(capitalize(item))}`).join('')\n\n return {\n ...option,\n html: `${i18n.get('Video Flip')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset\n if (value) {\n art.flip = value.toLowerCase()\n contextmenu.show = false\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"normal\"]', $panel)\n if ($default) {\n inverseClass($default, 'art-current')\n }\n art.on('flip', (value) => {\n const $current = queryAll('span', $panel).find(item => item.dataset.value === value)\n if ($current) {\n inverseClass($current, 'art-current')\n }\n })\n },\n }\n }\n}\n","export default function info(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Video Info'),\n click: (contextmenu) => {\n art.info.show = true\n contextmenu.show = false\n },\n })\n}\n","import { inverseClass, query, queryAll } from '../utils'\n\nexport default function playbackRate(option) {\n return (art) => {\n const {\n i18n,\n constructor: { PLAYBACK_RATE },\n } = art\n\n const html = PLAYBACK_RATE.map(\n item => `${item === 1 ? i18n.get('Normal') : item.toFixed(1)}`,\n ).join('')\n\n return {\n ...option,\n html: `${i18n.get('Play Speed')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset\n if (value) {\n art.playbackRate = Number(value)\n contextmenu.show = false\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"1\"]', $panel)\n if ($default)\n inverseClass($default, 'art-current')\n art.on('video:ratechange', () => {\n const $current = queryAll('span', $panel).find(\n item => Number(item.dataset.value) === art.playbackRate,\n )\n if ($current) {\n inverseClass($current, 'art-current')\n }\n })\n },\n }\n }\n}\n","import { version } from '../../package.json'\n\nexport default function (option) {\n return {\n ...option,\n html: `ArtPlayer ${version}`,\n }\n}\n","import {\n addClass,\n append,\n createElement,\n def,\n errorHandle,\n getComposedPath,\n includeFromEvent,\n inverseClass,\n isMobile,\n removeClass,\n sleep,\n} from '../utils'\nimport Component from '../utils/component'\nimport airplay from './airplay'\nimport fullscreen from './fullscreen'\nimport fullscreenWeb from './fullscreenWeb'\nimport pip from './pip'\nimport playAndPause from './playAndPause'\nimport progress from './progress'\nimport screenshot from './screenshot'\nimport setting from './setting'\nimport time from './time'\nimport volume from './volume'\n\nexport default class Control extends Component {\n constructor(art) {\n super(art)\n\n this.isHover = false\n this.name = 'control'\n this.timer = Date.now()\n\n const { constructor } = art\n const { $player, $bottom } = this.art.template\n\n art.on('mousemove', () => {\n if (!isMobile) {\n this.show = true\n }\n })\n\n art.on('click', () => {\n if (isMobile) {\n this.toggle()\n }\n else {\n this.show = true\n }\n })\n\n art.on('document:mousemove', (event) => {\n this.isHover = includeFromEvent(event, $bottom)\n })\n\n art.on('video:timeupdate', () => {\n if (\n !art.setting.show\n && !this.isHover\n && !art.isInput\n && art.playing\n && this.show\n && Date.now() - this.timer >= constructor.CONTROL_HIDE_TIME\n ) {\n this.show = false\n }\n })\n\n art.on('control', (state) => {\n if (state) {\n removeClass($player, 'art-hide-cursor')\n addClass($player, 'art-hover')\n this.timer = Date.now()\n }\n else {\n addClass($player, 'art-hide-cursor')\n removeClass($player, 'art-hover')\n }\n })\n\n this.init()\n }\n\n init() {\n const { option } = this.art\n\n if (!option.isLive) {\n this.add(\n progress({\n name: 'progress',\n position: 'top',\n index: 10,\n }),\n )\n }\n\n this.add({\n name: 'thumbnails',\n position: 'top',\n index: 20,\n })\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n position: 'left',\n index: 10,\n }),\n )\n\n this.add(\n volume({\n name: 'volume',\n position: 'left',\n index: 20,\n }),\n )\n\n if (!option.isLive) {\n this.add(\n time({\n name: 'time',\n position: 'left',\n index: 30,\n }),\n )\n }\n\n if (option.quality.length) {\n sleep().then(() => {\n this.art.quality = option.quality\n })\n }\n\n if (option.screenshot && !isMobile) {\n this.add(\n screenshot({\n name: 'screenshot',\n position: 'right',\n index: 20,\n }),\n )\n }\n\n if (option.setting) {\n this.add(\n setting({\n name: 'setting',\n position: 'right',\n index: 30,\n }),\n )\n }\n\n if (option.pip) {\n this.add(\n pip({\n name: 'pip',\n position: 'right',\n index: 40,\n }),\n )\n }\n\n if (option.airplay && window.WebKitPlaybackTargetAvailabilityEvent) {\n this.add(\n airplay({\n name: 'airplay',\n position: 'right',\n index: 50,\n }),\n )\n }\n\n if (option.fullscreenWeb) {\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n position: 'right',\n index: 60,\n }),\n )\n }\n\n if (option.fullscreen) {\n this.add(\n fullscreen({\n name: 'fullscreen',\n position: 'right',\n index: 70,\n }),\n )\n }\n\n for (let index = 0; index < option.controls.length; index++) {\n this.add(option.controls[index])\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption\n const { $progress, $controlsLeft, $controlsRight } = this.art.template\n\n switch (option.position) {\n case 'top':\n this.$parent = $progress\n break\n case 'left':\n this.$parent = $controlsLeft\n break\n case 'right':\n this.$parent = $controlsRight\n break\n default:\n errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`)\n break\n }\n\n super.add(option)\n }\n\n check(target) {\n target.$control_value.innerHTML = target.html\n for (let index = 0; index < target.$control_option.length; index++) {\n const item = target.$control_option[index]\n item.default = item === target\n if (item.default) {\n inverseClass(item.$control_item, 'art-current')\n }\n }\n }\n\n selector(option, $ref, events) {\n const { proxy } = this.art.events\n\n addClass($ref, 'art-control-selector')\n const $value = createElement('div')\n addClass($value, 'art-selector-value')\n append($value, option.html)\n $ref.textContent = ''\n append($ref, $value)\n\n const $list = createElement('div')\n addClass($list, 'art-selector-list')\n append($ref, $list)\n\n for (let index = 0; index < option.selector.length; index++) {\n const item = option.selector[index]\n const $item = createElement('div')\n addClass($item, 'art-selector-item')\n if (item.default)\n addClass($item, 'art-current')\n $item.dataset.index = index\n $item.dataset.value = item.value\n $item.innerHTML = item.html\n append($list, $item)\n\n def(item, '$control_option', {\n get: () => option.selector,\n })\n\n def(item, '$control_item', {\n get: () => $item,\n })\n\n def(item, '$control_value', {\n get: () => $value,\n })\n }\n\n const event = proxy($list, 'click', async (event) => {\n const path = getComposedPath(event)\n const item = option.selector.find(\n item => item.$control_item === path.find($item => item.$control_item === $item),\n )\n this.check(item)\n if (option.onSelect) {\n $value.innerHTML = await option.onSelect.call(this.art, item, item.$control_item, event)\n }\n })\n\n events.push(event)\n }\n}\n","import { append } from '../utils'\n\nexport default function airplay(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('AirPlay'),\n mounted: ($control) => {\n const { proxy, icons } = art\n append($control, icons.airplay)\n proxy($control, 'click', () => art.airplay())\n },\n })\n}\n","import { append, setStyle, tooltip } from '../utils'\n\nexport default function fullscreen(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art\n\n const $fullscreenOn = append($control, icons.fullscreenOn)\n const $fullscreenOff = append($control, icons.fullscreenOff)\n setStyle($fullscreenOff, 'display', 'none')\n\n proxy($control, 'click', () => {\n art.fullscreen = !art.fullscreen\n })\n\n art.on('fullscreen', (state) => {\n if (state) {\n tooltip($control, i18n.get('Exit Fullscreen'))\n setStyle($fullscreenOn, 'display', 'none')\n setStyle($fullscreenOff, 'display', 'inline-flex')\n }\n else {\n tooltip($control, i18n.get('Fullscreen'))\n setStyle($fullscreenOn, 'display', 'inline-flex')\n setStyle($fullscreenOff, 'display', 'none')\n }\n })\n },\n })\n}\n","import { append, setStyle, tooltip } from '../utils'\n\nexport default function fullscreenWeb(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Web Fullscreen'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art\n\n const $fullscreenWebOn = append($control, icons.fullscreenWebOn)\n const $fullscreenWebOff = append($control, icons.fullscreenWebOff)\n setStyle($fullscreenWebOff, 'display', 'none')\n\n proxy($control, 'click', () => {\n art.fullscreenWeb = !art.fullscreenWeb\n })\n\n art.on('fullscreenWeb', (value) => {\n if (value) {\n tooltip($control, i18n.get('Exit Web Fullscreen'))\n setStyle($fullscreenWebOn, 'display', 'none')\n setStyle($fullscreenWebOff, 'display', 'inline-flex')\n }\n else {\n tooltip($control, i18n.get('Web Fullscreen'))\n setStyle($fullscreenWebOn, 'display', 'inline-flex')\n setStyle($fullscreenWebOff, 'display', 'none')\n }\n })\n },\n })\n}\n","import { append, tooltip } from '../utils'\n\nexport default function pip(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('PIP Mode'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art\n\n append($control, icons.pip)\n\n proxy($control, 'click', () => {\n art.pip = !art.pip\n })\n\n art.on('pip', (value) => {\n tooltip($control, i18n.get(value ? 'Exit PIP Mode' : 'PIP Mode'))\n })\n },\n })\n}\n","import { append, setStyle, tooltip } from '../utils'\n\nexport default function playAndPause(option) {\n return art => ({\n ...option,\n mounted: ($control) => {\n const { proxy, icons, i18n } = art\n\n const $play = append($control, icons.play)\n const $pause = append($control, icons.pause)\n tooltip($play, i18n.get('Play'))\n tooltip($pause, i18n.get('Pause'))\n\n proxy($play, 'click', () => {\n art.play()\n })\n\n proxy($pause, 'click', () => {\n art.pause()\n })\n\n function showPlay() {\n setStyle($play, 'display', 'flex')\n setStyle($pause, 'display', 'none')\n }\n\n function showPause() {\n setStyle($play, 'display', 'none')\n setStyle($pause, 'display', 'flex')\n }\n\n if (art.playing) {\n showPause()\n }\n else {\n showPlay()\n }\n\n art.on('video:playing', () => {\n showPause()\n })\n\n art.on('video:pause', () => {\n showPlay()\n })\n },\n })\n}\n","import { append, clamp, getRect, includeFromEvent, isMobile, query, secondToTime, setStyle } from '../utils'\n\nexport function getPosFromEvent(art, event) {\n const { $progress } = art.template\n const { left } = getRect($progress)\n const eventLeft = isMobile ? event.touches[0].clientX : event.clientX\n const width = clamp(eventLeft - left, 0, $progress.clientWidth)\n const second = (width / $progress.clientWidth) * art.duration\n const time = secondToTime(second)\n const percentage = clamp(width / $progress.clientWidth, 0, 1)\n return { second, time, width, percentage }\n}\n\nexport function setCurrentTime(art, event) {\n if (art.isRotate) {\n const percentage = event.touches[0].clientY / art.height\n const second = percentage * art.duration\n art.emit('setBar', 'played', percentage, event)\n art.seek = second\n }\n else {\n const { second, percentage } = getPosFromEvent(art, event)\n art.emit('setBar', 'played', percentage, event)\n art.seek = second\n }\n}\n\nexport default function progress(options) {\n return (art) => {\n const { icons, option, proxy } = art\n\n return {\n ...options,\n html: `\n
\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: ($control) => {\n let tipTimer = null\n let isDragging = false\n\n const $hover = query('.art-progress-hover', $control)\n const $loaded = query('.art-progress-loaded', $control)\n const $played = query('.art-progress-played', $control)\n const $highlight = query('.art-progress-highlight', $control)\n const $indicator = query('.art-progress-indicator', $control)\n const $tip = query('.art-progress-tip', $control)\n\n if (icons.indicator) {\n append($indicator, icons.indicator)\n }\n else {\n setStyle($indicator, 'backgroundColor', 'var(--art-theme)')\n }\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event)\n const { text } = event.target.dataset\n $tip.textContent = text\n const tipWidth = $tip.clientWidth\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0)\n }\n else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`)\n }\n else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`)\n }\n }\n\n function showTime(event, touch) {\n const { width, time } = touch || getPosFromEvent(art, event)\n $tip.textContent = time\n const tipWidth = $tip.clientWidth\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0)\n }\n else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`)\n }\n else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`)\n }\n }\n\n function updateHighlight() {\n $highlight.textContent = ''\n for (let index = 0; index < option.highlight.length; index++) {\n const item = option.highlight[index]\n const left = (clamp(item.time, 0, art.duration) / art.duration) * 100\n const html = ``\n append($highlight, html)\n }\n }\n\n function setBar(type, percentage, event) {\n const isMobileDragging = type === 'played' && event && isMobile\n\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`)\n }\n\n if (type === 'hover') {\n setStyle($hover, 'width', `${percentage * 100}%`)\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`)\n setStyle($indicator, 'left', `${percentage * 100}%`)\n }\n\n if (isMobileDragging) {\n setStyle($tip, 'display', 'flex')\n const width = $control.clientWidth * percentage\n const time = secondToTime(percentage * art.duration)\n showTime(event, { width, time })\n clearTimeout(tipTimer)\n tipTimer = setTimeout(() => {\n setStyle($tip, 'display', 'none')\n }, 500)\n }\n }\n\n art.on('setBar', setBar)\n art.on('video:loadedmetadata', updateHighlight)\n\n if (art.constructor.USE_RAF) {\n art.on('raf', () => {\n art.emit('setBar', 'played', art.played)\n art.emit('setBar', 'loaded', art.loaded)\n })\n }\n else {\n art.on('video:timeupdate', () => {\n art.emit('setBar', 'played', art.played)\n })\n\n art.on('video:progress', () => {\n art.emit('setBar', 'loaded', art.loaded)\n })\n\n art.on('video:ended', () => {\n art.emit('setBar', 'played', 1)\n })\n }\n\n art.emit('setBar', 'loaded', art.loaded || 0)\n\n if (!isMobile) {\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n setCurrentTime(art, event)\n }\n })\n\n proxy($control, 'mousemove', (event) => {\n const { percentage } = getPosFromEvent(art, event)\n art.emit('setBar', 'hover', percentage, event)\n setStyle($tip, 'display', 'flex')\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event)\n }\n else {\n showTime(event)\n }\n })\n\n proxy($control, 'mouseleave', (event) => {\n setStyle($tip, 'display', 'none')\n art.emit('setBar', 'hover', 0, event)\n })\n\n proxy($control, 'mousedown', (event) => {\n isDragging = event.button === 0\n })\n\n art.on('document:mousemove', (event) => {\n if (isDragging) {\n const { second, percentage } = getPosFromEvent(art, event)\n art.emit('setBar', 'played', percentage, event)\n art.seek = second\n }\n })\n\n art.on('document:mouseup', () => {\n if (isDragging) {\n isDragging = false\n }\n })\n }\n },\n }\n }\n}\n","import { append } from '../utils'\n\nexport default function screenshot(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: ($control) => {\n const { proxy, icons } = art\n\n append($control, icons.screenshot)\n proxy($control, 'click', () => {\n art.screenshot()\n })\n },\n })\n}\n","import { append, tooltip } from '../utils'\n\nexport default function setting(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Show Setting'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art\n\n append($control, icons.setting)\n\n proxy($control, 'click', () => {\n art.setting.toggle()\n art.setting.resize()\n })\n\n art.on('setting', (value) => {\n tooltip($control, i18n.get(value ? 'Hide Setting' : 'Show Setting'))\n })\n },\n })\n}\n","import { isMobile, secondToTime } from '../utils'\n\nexport default function time(option) {\n return art => ({\n ...option,\n style: isMobile\n ? {\n fontSize: '12px',\n padding: '0 5px',\n }\n : {\n cursor: 'auto',\n padding: '0 10px',\n },\n mounted: ($control) => {\n function getTime() {\n const newTime = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`\n if (newTime !== $control.textContent) {\n $control.textContent = newTime\n }\n }\n\n getTime()\n\n const events = ['video:loadedmetadata', 'video:timeupdate', 'video:progress']\n for (let index = 0; index < events.length; index++) {\n art.on(events[index], getTime)\n }\n },\n })\n}\n","import { append, getRect, isMobile, setStyle } from '../utils'\n\nexport default function volume(option) {\n return art => ({\n ...option,\n mounted: ($control) => {\n const { proxy, icons } = art\n\n const $volume = append($control, icons.volume)\n const $close = append($control, icons.volumeClose)\n const $panel = append($control, '
')\n const $inner = append($panel, '
')\n const $value = append($inner, `
`)\n const $slider = append($inner, `
`)\n const $handle = append($slider, `
`)\n const $loaded = append($handle, `
`)\n const $indicator = append($slider, `
`)\n\n function getVolumeFromEvent(event) {\n const { top, height } = getRect($slider)\n return 1 - (event.clientY - top) / height\n }\n\n function update() {\n if (art.muted || art.volume === 0) {\n setStyle($volume, 'display', 'none')\n setStyle($close, 'display', 'flex')\n setStyle($indicator, 'top', '100%')\n setStyle($loaded, 'top', '100%')\n $value.textContent = 0\n }\n else {\n const percentage = art.volume * 100\n setStyle($volume, 'display', 'flex')\n setStyle($close, 'display', 'none')\n setStyle($indicator, 'top', `${100 - percentage}%`)\n setStyle($loaded, 'top', `${100 - percentage}%`)\n $value.textContent = Math.floor(percentage)\n }\n }\n\n update()\n art.on('video:volumechange', update)\n\n proxy($volume, 'click', () => {\n art.muted = true\n })\n\n proxy($close, 'click', () => {\n art.muted = false\n })\n\n if (isMobile) {\n setStyle($panel, 'display', 'none')\n }\n else {\n let isDragging = false\n\n proxy($slider, 'mousedown', (event) => {\n isDragging = event.button === 0\n art.volume = getVolumeFromEvent(event)\n })\n\n art.on('document:mousemove', (event) => {\n if (isDragging) {\n art.muted = false\n art.volume = getVolumeFromEvent(event)\n }\n })\n\n art.on('document:mouseup', () => {\n if (isDragging) {\n isDragging = false\n }\n })\n }\n },\n })\n}\n","import clickInit from './clickInit'\nimport gestureInit from './gestureInit'\nimport globalInit from './globalInit'\nimport hoverInit from './hoverInit'\nimport moveInit from './moveInit'\nimport resizeInit from './resizeInit'\nimport updateInit from './updateInit'\nimport viewInit from './viewInit'\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = []\n this.proxy = this.proxy.bind(this)\n this.hover = this.hover.bind(this)\n\n clickInit(art, this)\n hoverInit(art, this)\n moveInit(art, this)\n resizeInit(art, this)\n gestureInit(art, this)\n viewInit(art, this)\n globalInit(art, this)\n updateInit(art, this)\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map(item => this.proxy(target, item, callback, option))\n }\n\n target.addEventListener(name, callback, option)\n const destroy = () => target.removeEventListener(name, callback, option)\n this.destroyEvents.push(destroy)\n return destroy\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter)\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave)\n }\n }\n\n remove(destroyEvent) {\n const index = this.destroyEvents.indexOf(destroyEvent)\n if (index > -1) {\n destroyEvent()\n this.destroyEvents.splice(index, 1)\n }\n }\n\n destroy() {\n for (let index = 0; index < this.destroyEvents.length; index++) {\n this.destroyEvents[index]()\n }\n }\n}\n","import { includeFromEvent, isMobile } from '../utils'\n\nexport default function clickInit(art, events) {\n const {\n constructor,\n template: { $player, $video },\n } = art\n\n function onDocumentClick(event) {\n if (includeFromEvent(event, $player)) {\n art.isInput = event.target.tagName === 'INPUT'\n art.isFocus = true\n art.emit('focus', event)\n }\n else {\n art.isInput = false\n art.isFocus = false\n art.emit('blur', event)\n }\n }\n\n art.on('document:click', onDocumentClick)\n art.on('document:contextmenu', onDocumentClick)\n\n let clickTimes = []\n events.proxy($video, 'click', (event) => {\n const now = Date.now()\n clickTimes.push(now)\n const { MOBILE_CLICK_PLAY, DBCLICK_TIME, MOBILE_DBCLICK_PLAY, DBCLICK_FULLSCREEN } = constructor\n\n const clicks = clickTimes.filter(t => now - t <= DBCLICK_TIME)\n switch (clicks.length) {\n case 1:\n art.emit('click', event)\n\n if (isMobile) {\n if (!art.isLock && MOBILE_CLICK_PLAY) {\n art.toggle()\n }\n }\n else {\n art.toggle()\n }\n clickTimes = clicks\n break\n case 2:\n art.emit('dblclick', event)\n\n if (isMobile) {\n if (!art.isLock && MOBILE_DBCLICK_PLAY) {\n art.toggle()\n }\n }\n else {\n if (DBCLICK_FULLSCREEN) {\n art.fullscreen = !art.fullscreen\n }\n }\n clickTimes = []\n break\n default:\n clickTimes = []\n }\n })\n}\n","import { setCurrentTime } from '../control/progress'\nimport { clamp, isMobile, secondToTime } from '../utils'\n\nfunction GetSlideAngle(dx, dy) {\n return (Math.atan2(dy, dx) * 180) / Math.PI\n}\n\nfunction GetSlideDirection(startX, startY, endX, endY) {\n const dy = startY - endY\n const dx = endX - startX\n let result = 0\n\n if (Math.abs(dx) < 2 && Math.abs(dy) < 2) {\n return result\n }\n\n const angle = GetSlideAngle(dx, dy)\n if (angle >= -45 && angle < 45) {\n result = 4\n }\n else if (angle >= 45 && angle < 135) {\n result = 1\n }\n else if (angle >= -135 && angle < -45) {\n result = 2\n }\n else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {\n result = 3\n }\n\n return result\n}\n\nexport default function gestureInit(art, events) {\n if (isMobile && !art.option.isLive) {\n const { $video, $progress } = art.template\n\n let touchTarget = null\n let isDragging = false\n let startX = 0\n let startY = 0\n let startTime = 0\n\n const onTouchStart = (event) => {\n if (event.touches.length === 1 && !art.isLock) {\n if (touchTarget === $progress) {\n setCurrentTime(art, event)\n }\n\n isDragging = true\n const { pageX, pageY } = event.touches[0]\n startX = pageX\n startY = pageY\n startTime = art.currentTime\n }\n }\n\n const onTouchMove = (event) => {\n if (event.touches.length === 1 && isDragging && art.duration) {\n const { pageX, pageY } = event.touches[0]\n const direction = GetSlideDirection(startX, startY, pageX, pageY)\n const isHorizontal = [3, 4].includes(direction)\n const isVertical = [1, 2].includes(direction)\n const isLegal = (isHorizontal && !art.isRotate) || (isVertical && art.isRotate)\n if (isLegal) {\n const ratioX = clamp((pageX - startX) / art.width, -1, 1)\n const ratioY = clamp((pageY - startY) / art.height, -1, 1)\n const ratio = art.isRotate ? ratioY : ratioX\n const TOUCH_MOVE_RATIO = touchTarget === $video ? art.constructor.TOUCH_MOVE_RATIO : 1\n const currentTime = clamp(startTime + art.duration * ratio * TOUCH_MOVE_RATIO, 0, art.duration)\n art.seek = currentTime\n art.emit('setBar', 'played', clamp(currentTime / art.duration, 0, 1), event)\n art.notice.show = `${secondToTime(currentTime)} / ${secondToTime(art.duration)}`\n }\n }\n }\n\n const onTouchEnd = () => {\n if (isDragging) {\n startX = 0\n startY = 0\n startTime = 0\n isDragging = false\n touchTarget = null\n }\n }\n\n if (art.option.gesture) {\n events.proxy($video, 'touchstart', (event) => {\n touchTarget = $video\n onTouchStart(event)\n })\n events.proxy($video, 'touchmove', onTouchMove)\n }\n\n events.proxy($progress, 'touchstart', (event) => {\n touchTarget = $progress\n onTouchStart(event)\n })\n\n events.proxy($progress, 'touchmove', onTouchMove)\n art.on('document:touchend', onTouchEnd)\n }\n}\n","export default function globalInit(art, events) {\n const documentEvents = [\n 'click',\n 'mouseup',\n 'keydown',\n 'touchend',\n 'touchmove',\n 'mousemove',\n 'pointerup',\n 'contextmenu',\n 'pointermove',\n 'visibilitychange',\n 'webkitfullscreenchange',\n ]\n\n const windowEvents = [\n 'resize',\n 'scroll',\n 'orientationchange',\n ]\n\n const destroyEvents = []\n\n function bindGlobalEvents(source = {}) {\n for (let index = 0; index < destroyEvents.length; index++) {\n events.remove(destroyEvents[index])\n }\n\n destroyEvents.length = 0\n\n const { $player } = art.template\n\n documentEvents.forEach((name) => {\n const doc = source.document || $player.ownerDocument || document\n const destroy = events.proxy(doc, name, (event) => {\n art.emit(`document:${name}`, event)\n })\n destroyEvents.push(destroy)\n })\n\n windowEvents.forEach((name) => {\n const win = source.window || $player.ownerDocument?.defaultView || window\n const destroy = events.proxy(win, name, (event) => {\n art.emit(`window:${name}`, event)\n })\n destroyEvents.push(destroy)\n })\n }\n\n bindGlobalEvents()\n events.bindGlobalEvents = bindGlobalEvents\n}\n","import { addClass, removeClass } from '../utils'\n\nexport default function hoverInit(art, events) {\n const { $player } = art.template\n\n events.hover(\n $player,\n (event) => {\n addClass($player, 'art-hover')\n art.emit('hover', true, event)\n },\n (event) => {\n removeClass($player, 'art-hover')\n art.emit('hover', false, event)\n },\n )\n}\n","export default function moveInit(art, events) {\n const { $player } = art.template\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event)\n })\n}\n","import { debounce } from '../utils'\n\nexport default function resizeInit(art, events) {\n const { option, constructor } = art\n\n art.on('resize', () => {\n const { aspectRatio, notice } = art\n if (art.state === 'standard' && option.autoSize) {\n art.autoSize()\n }\n art.aspectRatio = aspectRatio\n notice.show = ''\n })\n\n const resizeFn = debounce(() => art.emit('resize'), constructor.RESIZE_TIME)\n\n art.on('window:orientationchange', () => resizeFn())\n art.on('window:resize', () => resizeFn())\n\n if (screen && screen.orientation && screen.orientation.onchange) {\n events.proxy(screen.orientation, 'change', () => resizeFn())\n }\n}\n","export default function updateInit(art) {\n if (art.constructor.USE_RAF) {\n let timer = null;\n\n (function update() {\n if (art.playing) {\n art.emit('raf')\n }\n\n if (!art.isDestroy) {\n timer = requestAnimationFrame(update)\n }\n })()\n\n art.on('destroy', () => {\n cancelAnimationFrame(timer)\n })\n }\n}\n","import { isInViewport, throttle } from '../utils'\n\nexport default function viewInit(art) {\n const {\n option,\n constructor,\n template: { $container },\n } = art\n\n const scrollFn = throttle(() => {\n art.emit('view', isInViewport($container, constructor.SCROLL_GAP))\n }, constructor.SCROLL_TIME)\n\n art.on('window:scroll', () => scrollFn())\n\n art.on('view', (state) => {\n if (option.autoMini) {\n art.mini = !state\n }\n })\n}\n","import { isMobile } from './utils'\n\nexport default class Hotkey {\n constructor(art) {\n this.art = art\n this.keys = {}\n\n if (art.option.hotkey && !isMobile) {\n this.init()\n }\n }\n\n init() {\n const { constructor } = this.art\n\n this.add('Escape', () => {\n if (this.art.fullscreenWeb) {\n this.art.fullscreenWeb = false\n }\n })\n\n this.add('Space', () => {\n this.art.toggle()\n })\n\n this.add('ArrowLeft', () => {\n this.art.backward = constructor.SEEK_STEP\n })\n\n this.add('ArrowUp', () => {\n this.art.volume += constructor.VOLUME_STEP\n })\n\n this.add('ArrowRight', () => {\n this.art.forward = constructor.SEEK_STEP\n })\n\n this.add('ArrowDown', () => {\n this.art.volume -= constructor.VOLUME_STEP\n })\n\n this.art.on('document:keydown', (event) => {\n if (this.art.isFocus) {\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 && !event.altKey\n && !event.ctrlKey\n && !event.metaKey\n && !event.shiftKey\n ) {\n const events = this.keys[event.code]\n if (events) {\n event.preventDefault()\n for (let index = 0; index < events.length; index++) {\n events[index].call(this.art, event)\n }\n this.art.emit('hotkey', event)\n }\n }\n }\n this.art.emit('keydown', event)\n })\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event)\n }\n else {\n this.keys[key] = [event]\n }\n return this\n }\n\n remove(key, event) {\n if (this.keys[key]) {\n const index = this.keys[key].indexOf(event)\n if (index !== -1) {\n this.keys[key].splice(index, 1)\n }\n }\n return this\n }\n}\n","import { mergeDeep } from '../utils'\nimport zhCn from './zh-cn'\n\nexport default class I18n {\n constructor(art) {\n this.art = art\n\n this.languages = {\n 'zh-cn': zhCn,\n }\n\n this.language = {}\n\n this.update(art.option.i18n)\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase()\n this.language = this.languages[lang] || {}\n }\n\n get(key) {\n return this.language[key] || key\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value)\n this.init()\n }\n}\n","const zhCn = {\n 'Video Info': '统计信息',\n 'Close': '关闭',\n 'Video Load Failed': '加载失败',\n 'Volume': '音量',\n 'Play': '播放',\n 'Pause': '暂停',\n 'Rate': '速度',\n 'Mute': '静音',\n 'Video Flip': '画面翻转',\n 'Horizontal': '水平',\n 'Vertical': '垂直',\n 'Reconnect': '重新连接',\n 'Show Setting': '显示设置',\n 'Hide Setting': '隐藏设置',\n 'Screenshot': '截图',\n 'Play Speed': '播放速度',\n 'Aspect Ratio': '画面比例',\n 'Default': '默认',\n 'Normal': '正常',\n 'Open': '打开',\n 'Switch Video': '切换',\n 'Switch Subtitle': '切换字幕',\n 'Fullscreen': '全屏',\n 'Exit Fullscreen': '退出全屏',\n 'Web Fullscreen': '网页全屏',\n 'Exit Web Fullscreen': '退出网页全屏',\n 'Mini Player': '迷你播放器',\n 'PIP Mode': '开启画中画',\n 'Exit PIP Mode': '退出画中画',\n 'PIP Not Supported': '不支持画中画',\n 'Fullscreen Not Supported': '不支持全屏',\n 'Subtitle Offset': '字幕偏移',\n 'Last Seen': '上次看到',\n 'Jump Play': '跳转播放',\n 'AirPlay': '隔空播放',\n 'AirPlay Not Available': '隔空播放不可用',\n}\n\nexport default zhCn\n\nif (typeof window !== 'undefined') {\n window['artplayer-i18n-zh-cn'] = zhCn\n}\n","import airplay from 'bundle-text:./airplay.svg'\nimport arrowLeft from 'bundle-text:./arrow-left.svg'\nimport arrowRight from 'bundle-text:./arrow-right.svg'\nimport aspectRatio from 'bundle-text:./aspect-ratio.svg'\nimport check from 'bundle-text:./check.svg'\nimport close from 'bundle-text:./close.svg'\nimport config from 'bundle-text:./config.svg'\nimport error from 'bundle-text:./error.svg'\nimport flip from 'bundle-text:./flip.svg'\nimport fullscreenOff from 'bundle-text:./fullscreen-off.svg'\nimport fullscreenOn from 'bundle-text:./fullscreen-on.svg'\nimport fullscreenWebOff from 'bundle-text:./fullscreen-web-off.svg'\nimport fullscreenWebOn from 'bundle-text:./fullscreen-web-on.svg'\nimport loading from 'bundle-text:./loading.svg'\nimport lock from 'bundle-text:./lock.svg'\nimport pause from 'bundle-text:./pause.svg'\nimport pip from 'bundle-text:./pip.svg'\nimport play from 'bundle-text:./play.svg'\nimport playbackRate from 'bundle-text:./playback-rate.svg'\nimport screenshot from 'bundle-text:./screenshot.svg'\nimport setting from 'bundle-text:./setting.svg'\nimport state from 'bundle-text:./state.svg'\nimport switchOff from 'bundle-text:./switch-off.svg'\nimport switchOn from 'bundle-text:./switch-on.svg'\nimport unlock from 'bundle-text:./unlock.svg'\nimport volumeClose from 'bundle-text:./volume-close.svg'\nimport volume from 'bundle-text:./volume.svg'\nimport { def, getIcon } from '../utils'\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n check,\n volume,\n volumeClose,\n screenshot,\n setting,\n pip,\n arrowLeft,\n arrowRight,\n playbackRate,\n aspectRatio,\n config,\n lock,\n flip,\n unlock,\n fullscreenOff,\n fullscreenOn,\n fullscreenWebOff,\n fullscreenWebOn,\n switchOn,\n switchOff,\n error,\n close,\n airplay,\n ...art.option.icons,\n }\n\n for (const key in icons) {\n def(this, key, {\n get: () => getIcon(key, icons[key]),\n })\n }\n }\n}\n","module.exports = \"9e11ac5830b69238\";","module.exports = \"ea3f9694841ef258\";","module.exports = \"b67cac358913d514\";","module.exports = \"65c783bf793215eb\";","module.exports = \"6e9bb7fa28118e05\";","module.exports = \"ece62effeeaea8b9\";","module.exports = \"3fa24efddec6bcbd\";","module.exports = \"d3353905d0ec07f0\";","module.exports = \"9b95a2cd859b7b0b\";","module.exports = \"a76d6978226feea3\";","module.exports = \"fe487e5ddec5d380\";","module.exports = \"3f492d6cd9c76858\";","module.exports = \"46c741c838cae528\";","module.exports = \"75a057509707bc87\";","module.exports = \"358c932d8356421e\";","module.exports = \"b491c01323e26afb\";","module.exports = \"0d8559370ca5b4ef\";","module.exports = \"4838679ac81bbe80\";","module.exports = \"46895f0cf70aca10\";","module.exports = \"e4ecf862ed860d42\";","module.exports = \"a391299de3225f80\";","module.exports = \"820f454e33d34914\";","module.exports = \"03b02c181a6fb9ce\";","module.exports = \"ca0154888ac784ab\";","module.exports = \"7cf671d989be8873\";","module.exports = \"1499cf92f6f33dd9\";","module.exports = \"95ec2167c54ce911\";","import { isMobile, queryAll } from './utils'\nimport Component from './utils/component'\n\nexport default class Info extends Component {\n constructor(art) {\n super(art)\n this.name = 'info'\n\n if (!isMobile) {\n this.init()\n }\n }\n\n init() {\n const {\n proxy,\n constructor,\n template: { $infoPanel, $infoClose, $video },\n } = this.art\n\n proxy($infoClose, 'click', () => {\n this.show = false\n })\n\n let timer = null\n const $types = queryAll('[data-video]', $infoPanel) || []\n this.art.on('destroy', () => clearTimeout(timer))\n\n function loop() {\n for (let index = 0; index < $types.length; index++) {\n const item = $types[index]\n const value = $video[item.dataset.video]\n const textContent = typeof value === 'number' ? value.toFixed(2) : value\n if (item.textContent !== textContent) {\n item.textContent = textContent\n }\n }\n timer = setTimeout(loop, constructor.INFO_LOOP_TIME)\n }\n\n loop()\n }\n}\n","import Component from './utils/component'\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art)\n\n const {\n option,\n template: { $layer },\n } = art\n\n this.name = 'layer'\n this.$parent = $layer\n\n for (let index = 0; index < option.layers.length; index++) {\n this.add(option.layers[index])\n }\n }\n}\n","import { append } from './utils'\nimport Component from './utils/component'\n\nexport default class Loading extends Component {\n constructor(art) {\n super(art)\n this.name = 'loading'\n append(art.template.$loading, art.icons.loading)\n }\n}\n","import { append, setStyle } from './utils'\nimport Component from './utils/component'\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art)\n\n this.name = 'mask'\n const { template, icons, events } = art\n\n const $state = append(template.$state, icons.state)\n const $error = append(template.$state, icons.error)\n\n setStyle($error, 'display', 'none')\n\n art.on('destroy', () => {\n setStyle($state, 'display', 'none')\n setStyle($error, 'display', null)\n })\n\n events.proxy(template.$state, 'click', () => art.play())\n }\n}\n","import { addClass, removeClass } from './utils'\n\nexport default class Notice {\n constructor(art) {\n this.art = art\n this.timer = null\n }\n\n set show(msg) {\n const {\n constructor,\n template: { $player, $noticeInner },\n } = this.art\n\n if (msg) {\n $noticeInner.textContent = msg instanceof Error ? msg.message.trim() : msg\n addClass($player, 'art-notice-show')\n clearTimeout(this.timer)\n this.timer = setTimeout(() => {\n $noticeInner.textContent = ''\n removeClass($player, 'art-notice-show')\n }, constructor.NOTICE_TIME)\n }\n else {\n removeClass($player, 'art-notice-show')\n }\n }\n\n get show() {\n const {\n template: { $player },\n } = this.art\n return $player.classList.contains('art-notice-show')\n }\n}\n","import airplayMix from './airplayMix'\nimport aspectRatioMix from './aspectRatioMix'\nimport attrMix from './attrMix'\nimport autoHeightMix from './autoHeightMix'\nimport autoSizeMix from './autoSizeMix'\nimport cssVarMix from './cssVarMix'\nimport currentTimeMix from './currentTimeMix'\nimport durationMix from './durationMix'\nimport eventInit from './eventInit'\nimport flipMix from './flipMix'\nimport fullscreenMix from './fullscreenMix'\nimport fullscreenWebMix from './fullscreenWebMix'\nimport loadedMix from './loadedMix'\nimport miniMix from './miniMix'\nimport optionInit from './optionInit'\nimport pauseMix from './pauseMix'\nimport pipMix from './pipMix'\nimport playbackRateMix from './playbackRateMix'\nimport playedMix from './playedMix'\nimport playingMix from './playingMix'\nimport playMix from './playMix'\nimport posterMix from './posterMix'\nimport qualityMix from './qualityMix'\nimport rectMix from './rectMix'\nimport screenshotMix from './screenshotMix'\nimport seekMix from './seekMix'\nimport stateMix from './stateMix'\nimport subtitleOffsetMix from './subtitleOffsetMix'\nimport switchMix from './switchMix'\nimport themeMix from './themeMix'\nimport thumbnailsMix from './thumbnailsMix'\nimport toggleMix from './toggleMix'\nimport typeMix from './typeMix'\nimport urlMix from './urlMix'\nimport volumeMix from './volumeMix'\n\nexport default class Player {\n constructor(art) {\n urlMix(art)\n attrMix(art)\n playMix(art)\n pauseMix(art)\n toggleMix(art)\n seekMix(art)\n volumeMix(art)\n currentTimeMix(art)\n durationMix(art)\n switchMix(art)\n playbackRateMix(art)\n aspectRatioMix(art)\n screenshotMix(art)\n fullscreenMix(art)\n fullscreenWebMix(art)\n pipMix(art)\n loadedMix(art)\n playedMix(art)\n playingMix(art)\n autoSizeMix(art)\n rectMix(art)\n flipMix(art)\n miniMix(art)\n posterMix(art)\n autoHeightMix(art)\n cssVarMix(art)\n themeMix(art)\n typeMix(art)\n stateMix(art)\n subtitleOffsetMix(art)\n airplayMix(art)\n qualityMix(art)\n thumbnailsMix(art)\n eventInit(art)\n optionInit(art)\n }\n}\n","import { def } from '../utils'\n\nexport default function airplayMix(art) {\n const {\n i18n,\n notice,\n proxy,\n template: { $video },\n } = art\n\n let available = true\n\n if (window.WebKitPlaybackTargetAvailabilityEvent && $video.webkitShowPlaybackTargetPicker) {\n proxy($video, 'webkitplaybacktargetavailabilitychanged', (event) => {\n switch (event.availability) {\n case 'available':\n available = true\n break\n case 'not-available':\n available = false\n break\n }\n })\n }\n else {\n available = false\n }\n\n def(art, 'airplay', {\n value() {\n if (available) {\n $video.webkitShowPlaybackTargetPicker()\n art.emit('airplay')\n }\n else {\n notice.show = i18n.get('AirPlay Not Available')\n }\n },\n })\n}\n","import { def, setStyle } from '../utils'\n\nexport default function aspectRatioMix(art) {\n const {\n i18n,\n notice,\n template: { $video, $player },\n } = art\n\n def(art, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || 'default'\n },\n set(ratio) {\n if (!ratio)\n ratio = 'default'\n if (ratio === 'default') {\n setStyle($video, 'width', null)\n setStyle($video, 'height', null)\n setStyle($video, 'margin', null)\n delete $player.dataset.aspectRatio\n }\n else {\n const ratioArray = ratio.split(':').map(Number)\n const { clientWidth, clientHeight } = $player\n const playerRatio = clientWidth / clientHeight\n const setupRatio = ratioArray[0] / ratioArray[1]\n\n if (playerRatio > setupRatio) {\n setStyle($video, 'width', `${setupRatio * clientHeight}px`)\n setStyle($video, 'height', '100%')\n setStyle($video, 'margin', '0 auto')\n }\n else {\n setStyle($video, 'width', '100%')\n setStyle($video, 'height', `${clientWidth / setupRatio}px`)\n setStyle($video, 'margin', 'auto 0')\n }\n\n $player.dataset.aspectRatio = ratio\n }\n\n notice.show = `${i18n.get('Aspect Ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`\n art.emit('aspectRatio', ratio)\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function attrMix(art) {\n const {\n template: { $video },\n } = art\n\n def(art, 'attr', {\n value(key, value) {\n if (value === undefined)\n return $video[key]\n $video[key] = value\n },\n })\n}\n","import { def, setStyle } from '../utils'\n\nexport default function autoHeightMix(art) {\n const {\n template: { $container, $video },\n } = art\n\n def(art, 'autoHeight', {\n value() {\n const { clientWidth } = $container\n const { videoHeight, videoWidth } = $video\n const height = videoHeight * (clientWidth / videoWidth)\n setStyle($container, 'height', `${height}px`)\n art.emit('autoHeight', height)\n },\n })\n}\n","import { def, getRect, setStyle } from '../utils'\n\nexport default function autoSizeMix(art) {\n const { $container, $player, $video } = art.template\n\n def(art, 'autoSize', {\n value() {\n const { videoWidth, videoHeight } = $video\n const { width, height } = getRect($container)\n const videoRatio = videoWidth / videoHeight\n const containerRatio = width / height\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100\n setStyle($player, 'width', `${percentage}%`)\n setStyle($player, 'height', '100%')\n }\n else {\n const percentage = (width / videoRatio / height) * 100\n setStyle($player, 'width', '100%')\n setStyle($player, 'height', `${percentage}%`)\n }\n art.emit('autoSize', {\n width: art.width,\n height: art.height,\n })\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function cssVarMix(art) {\n const { $player } = art.template\n\n def(art, 'cssVar', {\n value(key, value) {\n if (value) {\n return $player.style.setProperty(key, value)\n }\n else {\n return getComputedStyle($player).getPropertyValue(key)\n }\n },\n })\n}\n","import { clamp, def } from '../utils'\n\nexport default function currentTimeMix(art) {\n const { $video } = art.template\n\n def(art, 'currentTime', {\n get: () => $video.currentTime || 0,\n set: (time) => {\n time = Number.parseFloat(time)\n if (Number.isNaN(time))\n return\n $video.currentTime = clamp(time, 0, art.duration)\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function durationMix(art) {\n def(art, 'duration', {\n get: () => {\n const { duration } = art.template.$video\n if (duration === Infinity)\n return 0\n return duration || 0\n },\n })\n}\n","import config from '../config'\nimport { addClass, isMobile, setStyle, sleep } from '../utils'\n\nexport default function eventInit(art) {\n const {\n i18n,\n notice,\n option,\n constructor,\n proxy,\n template: { $player, $video, $poster },\n } = art\n\n let reconnectTime = 0\n\n for (let index = 0; index < config.events.length; index++) {\n proxy($video, config.events[index], (event) => {\n art.emit(`video:${event.type}`, event)\n })\n }\n\n // art.on('video:abort', () => {\n\n // });\n\n art.on('video:canplay', () => {\n reconnectTime = 0\n art.loading.show = false\n })\n\n art.once('video:canplay', () => {\n art.loading.show = false\n art.controls.show = true\n art.mask.show = true\n art.isReady = true\n art.emit('ready')\n })\n\n // art.on('video:canplaythrough', () => {\n\n // });\n\n // art.on('video:durationchange', () => {\n\n // });\n\n // art.on('video:emptied', () => {\n\n // });\n\n art.on('video:ended', () => {\n if (option.loop) {\n art.seek = 0\n art.play()\n art.controls.show = false\n art.mask.show = false\n }\n else {\n art.controls.show = true\n art.mask.show = true\n }\n })\n\n art.on('video:error', async (error) => {\n if (reconnectTime < constructor.RECONNECT_TIME_MAX) {\n await sleep(constructor.RECONNECT_SLEEP_TIME)\n reconnectTime += 1\n art.url = option.url\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`\n art.emit('error', error, reconnectTime)\n }\n else {\n art.mask.show = true\n art.loading.show = false\n art.controls.show = true\n addClass($player, 'art-error')\n await sleep(constructor.RECONNECT_SLEEP_TIME)\n notice.show = i18n.get('Video Load Failed')\n }\n })\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.on('video:loadedmetadata', () => {\n art.emit('resize')\n if (isMobile) {\n art.loading.show = false\n art.controls.show = true\n art.mask.show = true\n }\n })\n\n art.on('video:loadstart', () => {\n art.loading.show = true\n art.mask.show = false\n art.controls.show = true\n })\n\n art.on('video:pause', () => {\n art.controls.show = true\n art.mask.show = true\n })\n\n art.on('video:play', () => {\n art.mask.show = false\n setStyle($poster, 'display', 'none')\n })\n\n art.on('video:playing', () => {\n art.mask.show = false\n })\n\n art.on('video:progress', () => {\n if (art.playing) {\n art.loading.show = false\n }\n })\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false\n art.mask.show = true\n })\n\n art.on('video:seeking', () => {\n art.loading.show = true\n art.mask.show = false\n })\n\n // art.on('video:stalled', () => {\n\n // });\n\n // art.on('video:suspend', () => {\n\n // });\n\n art.on('video:timeupdate', () => {\n art.mask.show = false\n })\n\n // art.on('video:volumechange', () => {\n\n // });\n\n art.on('video:waiting', () => {\n art.loading.show = true\n art.mask.show = false\n })\n}\n","import { capitalize, def } from '../utils'\n\nexport default function flipMix(art) {\n const {\n template: { $player },\n i18n,\n notice,\n } = art\n\n def(art, 'flip', {\n get() {\n return $player.dataset.flip || 'normal'\n },\n set(flip) {\n if (!flip)\n flip = 'normal'\n if (flip === 'normal') {\n delete $player.dataset.flip\n }\n else {\n $player.dataset.flip = flip\n }\n\n notice.show = `${i18n.get('Video Flip')}: ${i18n.get(capitalize(flip))}`\n art.emit('flip', flip)\n },\n })\n}\n","import screenfull from '../libs/screenfull'\nimport { addClass, def, get, removeClass } from '../utils'\n\nexport default function fullscreenMix(art) {\n const {\n i18n,\n notice,\n template: { $video, $player },\n } = art\n\n const nativeScreenfull = (art) => {\n screenfull.on('change', () => {\n art.emit('fullscreen', screenfull.isFullscreen)\n\n if (screenfull.isFullscreen) {\n art.state = 'fullscreen'\n addClass($player, 'art-fullscreen')\n }\n else {\n removeClass($player, 'art-fullscreen')\n }\n\n art.emit('resize')\n })\n\n screenfull.on('error', (event) => {\n art.emit('fullscreenError', event)\n })\n\n def(art, 'fullscreen', {\n get() {\n return screenfull.isFullscreen\n },\n async set(value) {\n if (value) {\n await screenfull.request($player)\n }\n else {\n await screenfull.exit()\n }\n },\n })\n }\n\n const webkitScreenfull = (art) => {\n art.on('document:webkitfullscreenchange', () => {\n art.emit('fullscreen', art.fullscreen)\n art.emit('resize')\n })\n\n def(art, 'fullscreen', {\n get() {\n return document.fullscreenElement === $video\n },\n set(value) {\n if (value) {\n art.state = 'fullscreen'\n $video.webkitEnterFullscreen()\n }\n else {\n $video.webkitExitFullscreen()\n }\n },\n })\n }\n\n art.once('video:loadedmetadata', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art)\n }\n else if ($video.webkitSupportsFullscreen) {\n webkitScreenfull(art)\n }\n else {\n def(art, 'fullscreen', {\n get() {\n return false\n },\n set() {\n notice.show = i18n.get('Fullscreen Not Supported')\n },\n })\n }\n\n // Asynchronous setting\n def(art, 'fullscreen', get(art, 'fullscreen'))\n })\n}\n","const methodMap = [\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror',\n ],\n // New WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror',\n ],\n // Old WebKit\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror',\n ],\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror',\n ],\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError',\n ],\n]\n\nconst nativeAPI = (() => {\n if (typeof document === 'undefined') {\n return false\n }\n\n const unprefixedMethods = methodMap[0]\n const returnValue = {}\n\n for (const methodList of methodMap) {\n const exitFullscreenMethod = methodList[1]\n if (exitFullscreenMethod in document) {\n for (const [index, method] of methodList.entries()) {\n returnValue[unprefixedMethods[index]] = method\n }\n\n return returnValue\n }\n }\n\n return false\n})()\n\nconst eventNameMap = {\n change: nativeAPI.fullscreenchange,\n error: nativeAPI.fullscreenerror,\n}\n\nconst screenfull = {\n request(element = document.documentElement, options) {\n return new Promise((resolve, reject) => {\n const onFullScreenEntered = () => {\n screenfull.off('change', onFullScreenEntered)\n resolve()\n }\n\n screenfull.on('change', onFullScreenEntered)\n\n const returnPromise = element[nativeAPI.requestFullscreen](options)\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenEntered).catch(reject)\n }\n })\n },\n exit() {\n return new Promise((resolve, reject) => {\n if (!screenfull.isFullscreen) {\n resolve()\n return\n }\n\n const onFullScreenExit = () => {\n screenfull.off('change', onFullScreenExit)\n resolve()\n }\n\n screenfull.on('change', onFullScreenExit)\n\n const returnPromise = document[nativeAPI.exitFullscreen]()\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenExit).catch(reject)\n }\n })\n },\n toggle(element, options) {\n return screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options)\n },\n onchange(callback) {\n screenfull.on('change', callback)\n },\n onerror(callback) {\n screenfull.on('error', callback)\n },\n on(event, callback) {\n const eventName = eventNameMap[event]\n if (eventName) {\n document.addEventListener(eventName, callback, false)\n }\n },\n off(event, callback) {\n const eventName = eventNameMap[event]\n if (eventName) {\n document.removeEventListener(eventName, callback, false)\n }\n },\n raw: nativeAPI,\n}\n\nObject.defineProperties(screenfull, {\n isFullscreen: {\n get: () => Boolean(document[nativeAPI.fullscreenElement]),\n },\n element: {\n enumerable: true,\n get: () => document[nativeAPI.fullscreenElement],\n },\n isEnabled: {\n enumerable: true,\n get: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n },\n})\n\nif (!nativeAPI) {\n screenfull.isEnabled = false\n}\n\nexport default screenfull\n","import { addClass, append, def, hasClass, removeClass, setStyle } from '../utils'\n\nexport default function fullscreenWebMix(art) {\n const {\n constructor,\n template: { $container, $player },\n } = art\n\n let cssText = ''\n def(art, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web')\n },\n set(value) {\n if (value) {\n cssText = $player.style.cssText\n if (constructor.FULLSCREEN_WEB_IN_BODY) {\n append(document.body, $player)\n }\n art.state = 'fullscreenWeb'\n setStyle($player, 'width', '100%')\n setStyle($player, 'height', '100%')\n addClass($player, 'art-fullscreen-web')\n art.emit('fullscreenWeb', true)\n }\n else {\n if (constructor.FULLSCREEN_WEB_IN_BODY) {\n append($container, $player)\n }\n if (cssText) {\n $player.style.cssText = cssText\n cssText = ''\n }\n removeClass($player, 'art-fullscreen-web')\n art.emit('fullscreenWeb', false)\n }\n\n art.emit('resize')\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function loadedMix(art) {\n const { $video } = art.template\n\n def(art, 'loaded', {\n get: () => art.loadedTime / $video.duration,\n })\n\n def(art, 'loadedTime', {\n get: () => {\n return $video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0\n },\n })\n}\n","import { addClass, append, createElement, def, getRect, hasClass, isInViewport, removeClass, setStyle } from '../utils'\n\nexport default function miniMix(art) {\n const {\n icons,\n proxy,\n storage,\n template: { $player, $video },\n } = art\n\n let isDragging = false\n let lastPageX = 0\n let lastPageY = 0\n\n function hideMini() {\n const { $mini } = art.template\n if ($mini) {\n removeClass($player, 'art-mini')\n setStyle($mini, 'display', 'none')\n $player.prepend($video)\n art.emit('mini', false)\n }\n }\n\n function initState($play, $pause) {\n if (art.playing) {\n setStyle($play, 'display', `none`)\n setStyle($pause, 'display', `flex`)\n }\n else {\n setStyle($play, 'display', `flex`)\n setStyle($pause, 'display', `none`)\n }\n }\n\n function createMini() {\n const { $mini } = art.template\n if ($mini) {\n append($mini, $video)\n return setStyle($mini, 'display', 'flex')\n }\n else {\n const $mini = createElement('div')\n addClass($mini, 'art-mini-popup')\n append(document.body, $mini)\n art.template.$mini = $mini\n append($mini, $video)\n\n const $close = append($mini, `
`)\n append($close, icons.close)\n proxy($close, 'click', hideMini)\n\n const $state = append($mini, `
`)\n const $play = append($state, icons.play)\n const $pause = append($state, icons.pause)\n proxy($play, 'click', () => art.play())\n proxy($pause, 'click', () => art.pause())\n initState($play, $pause)\n art.on('video:playing', () => initState($play, $pause))\n art.on('video:pause', () => initState($play, $pause))\n art.on('video:timeupdate', () => initState($play, $pause))\n\n proxy($mini, 'mousedown', (event) => {\n isDragging = event.button === 0\n lastPageX = event.pageX\n lastPageY = event.pageY\n })\n\n art.on('document:mousemove', (event) => {\n if (isDragging) {\n addClass($mini, 'art-mini-dragging')\n const x = event.pageX - lastPageX\n const y = event.pageY - lastPageY\n setStyle($mini, 'transform', `translate(${x}px, ${y}px)`)\n }\n })\n\n art.on('document:mouseup', () => {\n if (isDragging) {\n isDragging = false\n removeClass($mini, 'art-mini-dragging')\n const rect = getRect($mini)\n storage.set('left', rect.left)\n storage.set('top', rect.top)\n setStyle($mini, 'left', `${rect.left}px`)\n setStyle($mini, 'top', `${rect.top}px`)\n setStyle($mini, 'transform', null)\n }\n })\n\n return $mini\n }\n }\n\n function initMini() {\n const { $mini } = art.template\n const rect = getRect($mini)\n const top = window.innerHeight - rect.height - 50\n const left = window.innerWidth - rect.width - 50\n storage.set('top', top)\n storage.set('left', left)\n setStyle($mini, 'top', `${top}px`)\n setStyle($mini, 'left', `${left}px`)\n }\n\n def(art, 'mini', {\n get() {\n return hasClass($player, 'art-mini')\n },\n set(value) {\n if (value) {\n art.state = 'mini'\n addClass($player, 'art-mini')\n const $mini = createMini()\n const top = storage.get('top')\n const left = storage.get('left')\n if (typeof top === 'number' && typeof left === 'number') {\n setStyle($mini, 'top', `${top}px`)\n setStyle($mini, 'left', `${left}px`)\n if (!isInViewport($mini)) {\n initMini()\n }\n }\n else {\n initMini()\n }\n art.emit('mini', true)\n }\n else {\n hideMini()\n }\n },\n })\n}\n","import { clamp, setStyle } from '../utils'\n\nexport default function optionInit(art) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art\n\n for (const key in option.moreVideoAttr) {\n art.attr(key, option.moreVideoAttr[key])\n }\n\n if (option.muted) {\n art.muted = option.muted\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1)\n }\n\n const volumeStorage = storage.get('volume')\n if (typeof volumeStorage === 'number') {\n $video.volume = clamp(volumeStorage, 0, 1)\n }\n\n if (option.poster) {\n setStyle($poster, 'backgroundImage', `url(${option.poster})`)\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay\n }\n\n if (option.playsInline) {\n $video.playsInline = true\n $video['webkit-playsinline'] = true\n }\n\n if (option.theme) {\n option.cssVar['--art-theme'] = option.theme\n }\n\n for (const key in option.cssVar) {\n art.cssVar(key, option.cssVar[key])\n }\n\n art.url = option.url\n}\n","import { def } from '../utils'\n\nexport default function pauseMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art\n\n def(art, 'pause', {\n value() {\n const result = $video.pause()\n notice.show = i18n.get('Pause')\n art.emit('pause')\n return result\n },\n })\n}\n","import { def } from '../utils'\n\nfunction nativePip(art) {\n const {\n template: { $video },\n proxy,\n notice,\n } = art\n\n $video.disablePictureInPicture = false\n\n def(art, 'pip', {\n get() {\n return document.pictureInPictureElement\n },\n set(value) {\n if (value) {\n art.state = 'pip'\n $video.requestPictureInPicture().catch((err) => {\n notice.show = err\n throw err\n })\n }\n else {\n document.exitPictureInPicture().catch((err) => {\n notice.show = err\n throw err\n })\n }\n },\n })\n\n proxy($video, 'enterpictureinpicture', () => {\n art.emit('pip', true)\n })\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pip', false)\n })\n}\n\nfunction webkitPip(art) {\n const { $video } = art.template\n\n $video.webkitSetPresentationMode('inline')\n\n def(art, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture'\n },\n set(value) {\n if (value) {\n art.state = 'pip'\n $video.webkitSetPresentationMode('picture-in-picture')\n art.emit('pip', true)\n }\n else {\n $video.webkitSetPresentationMode('inline')\n art.emit('pip', false)\n }\n },\n })\n}\n\nexport default function pipMix(art) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art\n if (document.pictureInPictureEnabled) {\n nativePip(art)\n }\n else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art)\n }\n else {\n def(art, 'pip', {\n get() {\n return false\n },\n set() {\n notice.show = i18n.get('PIP Not Supported')\n },\n })\n }\n}\n","import { def } from '../utils'\n\nexport default function playbackRateMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art\n\n def(art, 'playbackRate', {\n get() {\n return $video.playbackRate\n },\n set(rate) {\n if (rate) {\n if (rate === $video.playbackRate)\n return\n $video.playbackRate = rate\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`\n }\n else {\n art.playbackRate = 1\n }\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function playedMix(art) {\n def(art, 'played', {\n get: () => art.currentTime / art.duration,\n })\n}\n","import { def } from '../utils'\n\nexport default function playingMix(art) {\n const { $video } = art.template\n def(art, 'playing', {\n get: () => {\n if (typeof $video.playing === 'boolean')\n return $video.playing\n return !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2)\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function playMix(art) {\n const {\n i18n,\n notice,\n option,\n constructor: { instances },\n template: { $video },\n } = art\n\n def(art, 'play', {\n async value() {\n const result = await $video.play()\n notice.show = i18n.get('Play')\n art.emit('play')\n\n if (option.mutex) {\n for (let index = 0; index < instances.length; index++) {\n const instance = instances[index]\n if (instance !== art) {\n instance.pause()\n }\n }\n }\n\n return result\n },\n })\n}\n","import { def, setStyle } from '../utils'\n\nexport default function posterMix(art) {\n const {\n template: { $poster },\n } = art\n\n def(art, 'poster', {\n get: () => {\n try {\n return $poster.style.backgroundImage.match(/\"(.*)\"/)[1]\n }\n catch {\n return ''\n }\n },\n set(url) {\n setStyle($poster, 'backgroundImage', `url(${url})`)\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function qualityMix(art) {\n def(art, 'quality', {\n set(quality) {\n const { controls, notice, i18n } = art\n const qualityDefault = quality.find(item => item.default) || quality[0]\n controls.update({\n name: 'quality',\n position: 'right',\n index: 10,\n style: {\n marginRight: '10px',\n },\n html: qualityDefault?.html || '',\n selector: quality,\n async onSelect(item) {\n await art.switchQuality(item.url)\n notice.show = `${i18n.get('Switch Video')}: ${item.html}`\n return item.html\n },\n })\n },\n })\n}\n","import { def, getRect } from '../utils'\n\nexport default function rectMix(art) {\n def(art, 'rect', {\n get: () => {\n return getRect(art.template.$player)\n },\n })\n\n const keys = ['bottom', 'height', 'left', 'right', 'top', 'width']\n for (let index = 0; index < keys.length; index++) {\n const key = keys[index]\n def(art, key, {\n get: () => {\n return art.rect[key]\n },\n })\n }\n\n def(art, 'x', {\n get: () => {\n return art.left + window.pageXOffset\n },\n })\n\n def(art, 'y', {\n get: () => {\n return art.top + window.pageYOffset\n },\n })\n}\n","import { createElement, def, download, secondToTime } from '../utils'\n\nexport default function screenshotMix(art) {\n const {\n notice,\n template: { $video },\n } = art\n\n const $canvas = createElement('canvas')\n\n def(art, 'getDataURL', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n $canvas.width = $video.videoWidth\n $canvas.height = $video.videoHeight\n $canvas.getContext('2d').drawImage($video, 0, 0)\n resolve($canvas.toDataURL('image/png'))\n }\n catch (err) {\n notice.show = err\n reject(err)\n }\n }),\n })\n\n def(art, 'getBlobUrl', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n $canvas.width = $video.videoWidth\n $canvas.height = $video.videoHeight\n $canvas.getContext('2d').drawImage($video, 0, 0)\n $canvas.toBlob((blob) => {\n resolve(URL.createObjectURL(blob))\n })\n }\n catch (err) {\n notice.show = err\n reject(err)\n }\n }),\n })\n\n def(art, 'screenshot', {\n value: async (name) => {\n const dataUri = await art.getDataURL()\n const fileName = name || `artplayer_${secondToTime($video.currentTime)}`\n download(dataUri, `${fileName}.png`)\n art.emit('screenshot', dataUri)\n return dataUri\n },\n })\n}\n","import { def, secondToTime } from '../utils'\n\nexport default function seekMix(art) {\n const { notice } = art\n\n def(art, 'seek', {\n set(time) {\n art.currentTime = time\n if (art.duration) {\n notice.show = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`\n }\n art.emit('seek', art.currentTime)\n },\n })\n\n def(art, 'forward', {\n set(time) {\n art.seek = art.currentTime + time\n },\n })\n\n def(art, 'backward', {\n set(time) {\n art.seek = art.currentTime - time\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function stateMix(art) {\n const states = ['mini', 'pip', 'fullscreen', 'fullscreenWeb']\n def(art, 'state', {\n get: () => states.find(name => art[name]) || 'standard',\n set(name) {\n for (let index = 0; index < states.length; index++) {\n const prop = states[index]\n if (prop !== name && art[prop]) {\n art[prop] = false\n }\n }\n },\n })\n}\n","import { clamp, def } from '../utils'\n\nexport default function subtitleOffsetMix(art) {\n const { notice, i18n, template } = art\n\n def(art, 'subtitleOffset', {\n get() {\n return template.$track?.offset || 0\n },\n set(value) {\n const { cues } = art.subtitle\n if (!template.$track || cues.length === 0)\n return\n const offset = clamp(value, -10, 10)\n template.$track.offset = offset\n for (let index = 0; index < cues.length; index++) {\n const cue = cues[index]\n cue.originalStartTime = cue.originalStartTime ?? cue.startTime\n cue.originalEndTime = cue.originalEndTime ?? cue.endTime\n cue.startTime = clamp(cue.originalStartTime + offset, 0, art.duration)\n cue.endTime = clamp(cue.originalEndTime + offset, 0, art.duration)\n }\n art.subtitle.update()\n notice.show = `${i18n.get('Subtitle Offset')}: ${value}s`\n art.emit('subtitleOffset', value)\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function switchMix(art) {\n function switchUrl(url, currentTime) {\n return new Promise((resolve, reject) => {\n if (url === art.url)\n return\n const { playing, aspectRatio, playbackRate } = art\n\n art.pause()\n art.url = url\n art.notice.show = ''\n\n art.once('video:error', reject)\n\n art.once('video:loadedmetadata', () => {\n art.currentTime = currentTime\n })\n\n art.once('video:canplay', async () => {\n art.playbackRate = playbackRate\n art.aspectRatio = aspectRatio\n\n if (playing) {\n await art.play()\n }\n\n art.notice.show = ''\n\n resolve()\n })\n })\n }\n\n def(art, 'switchQuality', {\n value: (url) => {\n return switchUrl(url, art.currentTime)\n },\n })\n\n def(art, 'switchUrl', {\n value: (url) => {\n return switchUrl(url, 0)\n },\n })\n\n def(art, 'switch', {\n set: art.switchUrl,\n })\n}\n","import { def } from '../utils'\n\nexport default function themeMix(art) {\n def(art, 'theme', {\n get() {\n return art.cssVar('--art-theme')\n },\n set(theme) {\n art.cssVar('--art-theme', theme)\n },\n })\n}\n","import { def, isMobile, loadImg, setStyle } from '../utils'\n\nexport default function thumbnailsMix(art) {\n const {\n events,\n option,\n template: { $progress, $video },\n } = art\n\n let timer = null\n let image = null\n let loading = false\n let isLoad = false\n let isHover = false\n\n function reset() {\n clearTimeout(timer)\n timer = null\n image = null\n loading = false\n isLoad = false\n }\n\n function showThumbnails(posWidth) {\n const $thumbnails = art.controls?.thumbnails\n if (!$thumbnails)\n return\n\n const { number, column, width, height, scale } = option.thumbnails\n const width2 = width * scale || image.naturalWidth / column\n const height2 = height * scale || width2 / ($video.videoWidth / $video.videoHeight)\n const perWidth = $progress.clientWidth / number\n const perIndex = Math.floor(posWidth / perWidth)\n const yIndex = Math.ceil(perIndex / column) - 1\n const xIndex = perIndex % column || column - 1\n setStyle($thumbnails, 'backgroundImage', `url(${image.src})`)\n setStyle($thumbnails, 'height', `${height2}px`)\n setStyle($thumbnails, 'width', `${width2}px`)\n setStyle($thumbnails, 'backgroundPosition', `-${xIndex * width2}px -${yIndex * height2}px`)\n if (posWidth <= width2 / 2) {\n setStyle($thumbnails, 'left', 0)\n }\n else if (posWidth > $progress.clientWidth - width2 / 2) {\n setStyle($thumbnails, 'left', `${$progress.clientWidth - width2}px`)\n }\n else {\n setStyle($thumbnails, 'left', `${posWidth - width2 / 2}px`)\n }\n }\n\n events.hover(\n $progress,\n () => {\n isHover = true\n },\n () => {\n isHover = false\n },\n )\n\n art.on('setBar', async (type, percentage, event) => {\n const $thumbnails = art.controls?.thumbnails\n const { url, scale } = option.thumbnails\n if (!$thumbnails || !url)\n return\n\n const isMobileDragging = type === 'played' && event && isMobile\n\n if (type === 'hover' || isMobileDragging) {\n if (!loading) {\n loading = true\n image = await loadImg(url, scale)\n isLoad = true\n }\n\n if (!isLoad || !isHover)\n return\n\n const width = $progress.clientWidth * percentage\n setStyle($thumbnails, 'display', 'flex')\n\n if (width > 0 && width < $progress.clientWidth) {\n showThumbnails(width)\n }\n else {\n if (!isMobile) {\n setStyle($thumbnails, 'display', 'none')\n }\n }\n\n if (isMobileDragging) {\n clearTimeout(timer)\n timer = setTimeout(() => {\n setStyle($thumbnails, 'display', 'none')\n }, 500)\n }\n }\n })\n\n def(art, 'thumbnails', {\n get() {\n return art.option.thumbnails\n },\n set(thumbnails) {\n if (thumbnails.url && !art.option.isLive) {\n art.option.thumbnails = thumbnails\n reset()\n }\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function toggleMix(art) {\n def(art, 'toggle', {\n value() {\n if (art.playing) {\n return art.pause()\n }\n else {\n return art.play()\n }\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function typeMix(art) {\n def(art, 'type', {\n get() {\n return art.option.type\n },\n set(type) {\n art.option.type = type\n },\n })\n}\n","import { def, getExt, sleep } from '../utils'\n\nexport default function urlMix(art) {\n const {\n option,\n template: { $video },\n } = art\n\n def(art, 'url', {\n get() {\n return $video.src\n },\n async set(newUrl) {\n if (newUrl) {\n const oldUrl = art.url\n const typeName = option.type || getExt(newUrl)\n const typeCallback = option.customType[typeName]\n\n if (typeName && typeCallback) {\n await sleep()\n art.loading.show = true\n typeCallback.call(art, $video, newUrl, art)\n }\n else {\n URL.revokeObjectURL(oldUrl)\n $video.src = newUrl\n }\n\n if (oldUrl !== art.url) {\n art.option.url = newUrl\n if (art.isReady && oldUrl) {\n art.once('video:canplay', () => {\n art.emit('restart', newUrl)\n })\n }\n }\n }\n else {\n await sleep()\n art.loading.show = true\n }\n },\n })\n}\n","import { clamp, def } from '../utils'\n\nexport default function volumeMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art\n\n def(art, 'volume', {\n get: () => $video.volume || 0,\n set: (percentage) => {\n $video.volume = clamp(percentage, 0, 1)\n notice.show = `${i18n.get('Volume')}: ${Number.parseInt($video.volume * 100, 10)}`\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume)\n }\n },\n })\n\n def(art, 'muted', {\n get: () => $video.muted,\n set: (muted) => {\n $video.muted = muted\n art.emit('muted', muted)\n },\n })\n}\n","import { def, errorHandle, has, isMobile } from '../utils'\nimport autoOrientation from './autoOrientation'\nimport autoPlayback from './autoPlayback'\nimport fastForward from './fastForward'\nimport lock from './lock'\nimport miniProgressBar from './miniProgressBar'\n\nexport default class Plugins {\n constructor(art) {\n this.art = art\n this.id = 0\n\n const { option } = art\n\n if (option.miniProgressBar && !option.isLive) {\n this.add(miniProgressBar)\n }\n\n if (option.lock && isMobile) {\n this.add(lock)\n }\n\n if (option.autoPlayback && !option.isLive) {\n this.add(autoPlayback)\n }\n\n if (option.autoOrientation && isMobile) {\n this.add(autoOrientation)\n }\n\n if (option.fastForward && isMobile && !option.isLive) {\n this.add(fastForward)\n }\n\n for (let index = 0; index < option.plugins.length; index++) {\n this.add(option.plugins[index])\n }\n }\n\n add(plugin) {\n this.id += 1\n const result = plugin.call(this.art, this.art)\n if (result instanceof Promise) {\n return result.then(res => this.next(plugin, res))\n }\n else {\n return this.next(plugin, result)\n }\n }\n\n next(plugin, result) {\n const pluginName = (result && result.name) || plugin.name || `plugin${this.id}`\n errorHandle(!has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`)\n def(this, pluginName, {\n value: result,\n })\n return this\n }\n}\n","import { addClass, hasClass, removeClass, setStyle } from '../utils'\n\nexport default function autoOrientation(art) {\n const {\n notice,\n constructor,\n template: { $player, $video },\n } = art\n\n const WEB_CLASS = 'art-auto-orientation'\n const FS_CLASS = 'art-auto-orientation-fullscreen'\n let fsLocked = false\n\n function applyWebRotate() {\n const viewWidth = document.documentElement.clientWidth\n const viewHeight = document.documentElement.clientHeight\n setStyle($player, 'width', `${viewHeight}px`)\n setStyle($player, 'height', `${viewWidth}px`)\n setStyle($player, 'transform-origin', '0 0')\n setStyle($player, 'transform', `rotate(90deg) translate(0, -${viewWidth}px)`)\n addClass($player, WEB_CLASS)\n art.isRotate = true\n art.emit('resize')\n }\n\n function clearWebRotate() {\n setStyle($player, 'width', '')\n setStyle($player, 'height', '')\n setStyle($player, 'transform-origin', '')\n setStyle($player, 'transform', '')\n removeClass($player, WEB_CLASS)\n art.isRotate = false\n art.emit('resize')\n }\n\n function needRotate() {\n const { videoWidth, videoHeight } = $video\n const vw = document.documentElement.clientWidth\n const vh = document.documentElement.clientHeight\n return (videoWidth > videoHeight && vw < vh) || (videoWidth < videoHeight && vw > vh)\n }\n\n art.on('fullscreenWeb', (state) => {\n if (state) {\n if (needRotate()) {\n const delay = Number(constructor.AUTO_ORIENTATION_TIME ?? 0)\n setTimeout(() => {\n if (art.fullscreenWeb && !hasClass($player, WEB_CLASS)) {\n applyWebRotate()\n }\n }, delay)\n }\n }\n else {\n if (hasClass($player, WEB_CLASS))\n clearWebRotate()\n }\n })\n\n art.on('fullscreen', async (state) => {\n const canLock = !!screen?.orientation?.lock\n\n if (state) {\n if (canLock && needRotate()) {\n try {\n const last = screen.orientation.type\n const opposite = last.startsWith('portrait') ? 'landscape' : 'portrait'\n await screen.orientation.lock(opposite)\n fsLocked = true\n addClass($player, FS_CLASS)\n }\n catch (err) {\n fsLocked = false\n notice.show = err\n }\n }\n }\n else {\n if (hasClass($player, FS_CLASS)) {\n removeClass($player, FS_CLASS)\n }\n if (canLock && fsLocked) {\n try {\n screen.orientation.unlock()\n }\n catch { }\n fsLocked = false\n }\n }\n })\n\n return {\n name: 'autoOrientation',\n get state() {\n return hasClass($player, WEB_CLASS)\n },\n }\n}\n","import { append, query, secondToTime, setStyle } from '../utils'\n\nexport default function autoPlayback(art) {\n const {\n i18n,\n icons,\n storage,\n constructor,\n proxy,\n template: { $poster },\n } = art\n\n const $autoPlayback = art.layers.add({\n name: 'auto-playback',\n html: `\n
\n
\n
\n `,\n })\n\n const $last = query('.art-auto-playback-last', $autoPlayback)\n const $jump = query('.art-auto-playback-jump', $autoPlayback)\n const $close = query('.art-auto-playback-close', $autoPlayback)\n append($close, icons.close)\n\n let timer = null\n\n art.on('video:timeupdate', () => {\n if (art.playing) {\n const times = storage.get('times') || {}\n const keys = Object.keys(times)\n if (keys.length > constructor.AUTO_PLAYBACK_MAX) {\n delete times[keys[0]]\n }\n times[art.option.id || art.option.url] = art.currentTime\n storage.set('times', times)\n }\n })\n\n function init() {\n const times = storage.get('times') || {}\n const currentTime = times[art.option.id || art.option.url]\n\n clearTimeout(timer)\n setStyle($autoPlayback, 'display', 'none')\n\n if (currentTime && currentTime >= constructor.AUTO_PLAYBACK_MIN) {\n setStyle($autoPlayback, 'display', 'flex')\n\n $last.textContent = `${i18n.get('Last Seen')} ${secondToTime(currentTime)}`\n $jump.textContent = i18n.get('Jump Play')\n\n proxy($close, 'click', () => {\n setStyle($autoPlayback, 'display', 'none')\n })\n\n proxy($jump, 'click', () => {\n art.seek = currentTime\n art.play()\n setStyle($poster, 'display', 'none')\n setStyle($autoPlayback, 'display', 'none')\n })\n\n art.once('video:timeupdate', () => {\n timer = setTimeout(() => {\n setStyle($autoPlayback, 'display', 'none')\n }, constructor.AUTO_PLAYBACK_TIMEOUT)\n })\n }\n }\n\n art.on('ready', init)\n art.on('restart', init)\n\n return {\n name: 'auto-playback',\n get times() {\n return storage.get('times') || {}\n },\n clear() {\n return storage.del('times')\n },\n delete(id) {\n const times = storage.get('times') || {}\n delete times[id]\n storage.set('times', times)\n return times\n },\n }\n}\n","import { addClass, hasClass, removeClass } from '../utils'\n\nexport default function fastForward(art) {\n const {\n constructor,\n proxy,\n template: { $player, $video },\n } = art\n\n let timer = null\n let isPress = false\n let lastPlaybackRate = 1\n\n const onStart = (event) => {\n if (event.touches.length === 1 && art.playing && !art.isLock) {\n timer = setTimeout(() => {\n isPress = true\n lastPlaybackRate = art.playbackRate\n art.playbackRate = constructor.FAST_FORWARD_VALUE\n addClass($player, 'art-fast-forward')\n }, constructor.FAST_FORWARD_TIME)\n }\n }\n\n const onStop = () => {\n clearTimeout(timer)\n if (isPress) {\n isPress = false\n art.playbackRate = lastPlaybackRate\n removeClass($player, 'art-fast-forward')\n }\n }\n\n proxy($video, 'touchstart', onStart)\n art.on('document:touchmove', onStop)\n art.on('document:touchend', onStop)\n\n return {\n name: 'fastForward',\n get state() {\n return hasClass($player, 'art-fast-forward')\n },\n }\n}\n","import { addClass, append, hasClass, removeClass, setStyle } from '../utils'\n\nexport default function lock(art) {\n const {\n layers,\n icons,\n template: { $player },\n } = art\n\n function getState() {\n return hasClass($player, 'art-lock')\n }\n\n function setLock() {\n addClass($player, 'art-lock')\n art.isLock = true\n art.emit('lock', true)\n }\n\n function setUnlock() {\n removeClass($player, 'art-lock')\n art.isLock = false\n art.emit('lock', false)\n }\n\n layers.add({\n name: 'lock',\n mounted($el) {\n const $lock = append($el, icons.lock)\n const $unlock = append($el, icons.unlock)\n setStyle($lock, 'display', 'none')\n\n art.on('lock', (state) => {\n if (state) {\n setStyle($lock, 'display', 'inline-flex')\n setStyle($unlock, 'display', 'none')\n }\n else {\n setStyle($lock, 'display', 'none')\n setStyle($unlock, 'display', 'inline-flex')\n }\n })\n },\n click() {\n if (getState()) {\n setUnlock()\n }\n else {\n setLock()\n }\n },\n })\n\n return {\n name: 'lock',\n get state() {\n return getState()\n },\n set state(value) {\n if (value) {\n setLock()\n }\n else {\n setUnlock()\n }\n },\n }\n}\n","import { addClass, removeClass } from '../utils'\n\nexport default function miniProgressBar(art) {\n art.on('control', (state) => {\n if (state) {\n removeClass(art.template.$player, 'art-mini-progress-bar')\n }\n else {\n addClass(art.template.$player, 'art-mini-progress-bar')\n }\n })\n\n return { name: 'mini-progress-bar' }\n}\n","import {\n addClass,\n append,\n createElement,\n def,\n errorHandle,\n getRect,\n has,\n includeFromEvent,\n inverseClass,\n isMobile,\n remove,\n replaceElement,\n setStyle,\n} from '../utils'\nimport Component from '../utils/component'\nimport aspectRatio from './aspectRatio'\nimport flip from './flip'\nimport playbackRate from './playbackRate'\nimport subtitleOffset from './subtitleOffset'\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art)\n\n const {\n option,\n controls,\n template: { $setting },\n } = art\n\n this.name = 'setting'\n this.$parent = $setting\n\n this.id = 0\n this.active = null\n this.cache = new Map()\n this.option = [...this.builtin, ...option.settings]\n\n if (option.setting) {\n this.format()\n this.render()\n\n art.on('blur', () => {\n if (this.show) {\n this.show = false\n this.render()\n }\n })\n\n art.on('focus', (event) => {\n const isControl = includeFromEvent(event, controls.setting)\n const isSetting = includeFromEvent(event, this.$parent)\n if (this.show && !isControl && !isSetting) {\n this.show = false\n this.render()\n }\n })\n\n art.on('resize', () => this.resize())\n }\n }\n\n get builtin() {\n const result = []\n const { option } = this.art\n\n if (option.playbackRate) {\n result.push(playbackRate(this.art))\n }\n\n if (option.aspectRatio) {\n result.push(aspectRatio(this.art))\n }\n\n if (option.flip) {\n result.push(flip(this.art))\n }\n\n if (option.subtitleOffset) {\n result.push(subtitleOffset(this.art))\n }\n\n return result\n }\n\n traverse(callback, option = this.option) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index]\n callback(item)\n if (item.selector?.length) {\n this.traverse(callback, item.selector)\n }\n }\n }\n\n check(target) {\n target.$parent.tooltip = target.html\n this.traverse((item) => {\n item.default = item === target\n if (item.default && item.$item) {\n inverseClass(item.$item, 'art-current')\n }\n }, target.$option)\n this.render(target.$parents)\n }\n\n format(option = this.option, parent, parents, names = []) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index]\n\n if (item?.name) {\n errorHandle(!names.includes(item.name), `The [${item.name}] already exists in [setting]`)\n names.push(item.name)\n }\n else {\n item.name = `setting-${this.id++}`\n }\n\n if (!item.$formatted) {\n def(item, '$parent', {\n get: () => parent,\n })\n\n def(item, '$parents', {\n get: () => parents,\n })\n\n def(item, '$option', {\n get: () => option,\n })\n\n const $events = []\n def(item, '$events', {\n get: () => $events,\n })\n\n def(item, '$formatted', {\n get: () => true,\n })\n }\n\n this.format(item.selector || [], item, option, names)\n }\n\n this.option = option\n }\n\n find(name = '') {\n let result = null\n this.traverse((item) => {\n if (item.name === name) {\n result = item\n }\n })\n return result\n }\n\n resize() {\n const {\n controls,\n constructor: { SETTING_WIDTH, SETTING_ITEM_HEIGHT },\n template: { $player, $setting },\n } = this.art\n\n if (controls.setting && this.show) {\n const settingWidth = this.active[0]?.$parent?.width || SETTING_WIDTH\n const { left: controlLeft, width: controlWidth } = getRect(controls.setting)\n const { left: playerLeft, width: playerWidth } = getRect($player)\n const settingLeft = controlLeft - playerLeft + controlWidth / 2 - settingWidth / 2\n\n const settingHeight\n = this.active === this.option\n ? this.active.length * SETTING_ITEM_HEIGHT\n : (this.active.length + 1) * SETTING_ITEM_HEIGHT\n\n setStyle($setting, 'height', `${settingHeight}px`)\n setStyle($setting, 'width', `${settingWidth}px`)\n\n if (this.art.isRotate || isMobile)\n return\n\n if (settingLeft + settingWidth > playerWidth) {\n setStyle($setting, 'left', null)\n setStyle($setting, 'right', null)\n }\n else {\n setStyle($setting, 'left', `${settingLeft}px`)\n setStyle($setting, 'right', 'auto')\n }\n }\n }\n\n inactivate(item) {\n for (let index = 0; index < item.$events.length; index++) {\n this.art.events.remove(item.$events[index])\n }\n item.$events.length = 0\n }\n\n remove(name) {\n const item = this.find(name)\n errorHandle(item, `Can't find [${name}] in the [setting]`)\n const index = item.$option.indexOf(item)\n item.$option.splice(index, 1)\n this.inactivate(item)\n if (item.$item)\n remove(item.$item)\n this.render()\n }\n\n update(target) {\n const item = this.find(target.name)\n\n if (item) {\n this.inactivate(item)\n Object.assign(item, target)\n this.format()\n this.createItem(item, true)\n this.render()\n return item\n }\n else {\n return this.add(target)\n }\n }\n\n add(item, option = this.option) {\n option.push(item)\n this.format()\n this.createItem(item)\n this.render()\n return item\n }\n\n createHeader(item) {\n if (!this.cache.has(item.$option))\n return\n const $panel = this.cache.get(item.$option)\n\n const {\n proxy,\n icons: { arrowLeft },\n constructor: { SETTING_ITEM_HEIGHT },\n } = this.art\n\n const $item = createElement('div')\n setStyle($item, 'height', `${SETTING_ITEM_HEIGHT}px`)\n addClass($item, 'art-setting-item')\n addClass($item, 'art-setting-item-back')\n const $left = append($item, '
')\n const $icon = createElement('div')\n addClass($icon, 'art-setting-item-left-icon')\n append($icon, arrowLeft)\n append($left, $icon)\n append($left, item.$parent.html)\n const event = proxy($item, 'click', () => this.render(item.$parents))\n item.$parent.$events.push(event)\n append($panel, $item)\n }\n\n createItem(item, isUpdate = false) {\n if (!this.cache.has(item.$option))\n return\n const $panel = this.cache.get(item.$option)\n const oldItem = item.$item\n\n let type = 'selector'\n\n if (has(item, 'switch')) {\n type = 'switch'\n }\n\n if (has(item, 'range')) {\n type = 'range'\n }\n\n if (has(item, 'onClick')) {\n type = 'button'\n }\n\n const { icons, proxy, constructor } = this.art\n\n const $item = createElement('div')\n addClass($item, 'art-setting-item')\n setStyle($item, 'height', `${constructor.SETTING_ITEM_HEIGHT}px`)\n\n $item.dataset.name = item.name || ''\n $item.dataset.value = item.value || ''\n\n const $left = append($item, '
')\n const $right = append($item, '
')\n\n const $icon = createElement('div')\n addClass($icon, 'art-setting-item-left-icon')\n\n switch (type) {\n case 'button':\n case 'switch':\n case 'range':\n append($icon, item.icon || icons.config)\n break\n case 'selector':\n if (item.selector?.length) {\n append($icon, item.icon || icons.config)\n }\n else {\n append($icon, icons.check)\n }\n break\n default:\n break\n }\n\n append($left, $icon)\n\n def(item, '$icon', {\n configurable: true,\n get: () => $icon,\n })\n\n def(item, 'icon', {\n configurable: true,\n get() {\n return $icon.innerHTML\n },\n set(value) {\n $icon.innerHTML = ''\n append($icon, value)\n },\n })\n\n const $html = createElement('div')\n addClass($html, 'art-setting-item-left-text')\n append($html, item.html || '')\n append($left, $html)\n\n def(item, '$html', {\n configurable: true,\n get: () => $html,\n })\n\n def(item, 'html', {\n configurable: true,\n get() {\n return $html.innerHTML\n },\n set(value) {\n $html.innerHTML = ''\n append($html, value)\n },\n })\n\n const $tooltip = createElement('div')\n addClass($tooltip, 'art-setting-item-right-tooltip')\n append($tooltip, item.tooltip || '')\n append($right, $tooltip)\n\n def(item, '$tooltip', {\n configurable: true,\n get: () => $tooltip,\n })\n\n def(item, 'tooltip', {\n configurable: true,\n get() {\n return $tooltip.innerHTML\n },\n set(value) {\n $tooltip.innerHTML = ''\n append($tooltip, value)\n },\n })\n\n switch (type) {\n case 'switch': {\n const $switch = createElement('div')\n addClass($switch, 'art-setting-item-right-icon')\n const $switchOn = append($switch, icons.switchOn)\n const $switchOff = append($switch, icons.switchOff)\n setStyle(item.switch ? $switchOff : $switchOn, 'display', 'none')\n append($right, $switch)\n\n def(item, '$switch', {\n configurable: true,\n get: () => $switch,\n })\n\n let $switchValue = item.switch\n def(item, 'switch', {\n configurable: true,\n get: () => $switchValue,\n set(value) {\n $switchValue = value\n if (value) {\n setStyle($switchOff, 'display', 'none')\n setStyle($switchOn, 'display', null)\n }\n else {\n setStyle($switchOff, 'display', null)\n setStyle($switchOn, 'display', 'none')\n }\n },\n })\n break\n }\n case 'range':\n {\n const $state = createElement('div')\n addClass($state, 'art-setting-item-right-icon')\n const $range = append($state, '')\n $range.value = item.range[0]\n $range.min = item.range[1]\n $range.max = item.range[2]\n $range.step = item.range[3]\n addClass($range, 'art-setting-range')\n append($right, $state)\n\n def(item, '$range', {\n configurable: true,\n get: () => $range,\n })\n\n let $rangeValue = [...item.range]\n def(item, 'range', {\n configurable: true,\n get: () => $rangeValue,\n set(value) {\n $rangeValue = [...value]\n $range.value = value[0]\n $range.min = value[1]\n $range.max = value[2]\n $range.step = value[3]\n },\n })\n }\n break\n case 'selector':\n if (item.selector?.length) {\n const $state = createElement('div')\n addClass($state, 'art-setting-item-right-icon')\n append($state, icons.arrowRight)\n append($right, $state)\n }\n break\n default:\n break\n }\n\n switch (type) {\n case 'switch': {\n if (item.onSwitch) {\n const event = proxy($item, 'click', async (event) => {\n item.switch = await item.onSwitch.call(this.art, item, $item, event)\n })\n item.$events.push(event)\n }\n break\n }\n case 'range': {\n if (item.$range) {\n if (item.onRange) {\n const event = proxy(item.$range, 'change', async (event) => {\n item.range[0] = item.$range.valueAsNumber\n item.tooltip = await item.onRange.call(this.art, item, $item, event)\n })\n item.$events.push(event)\n }\n\n if (item.onChange) {\n const event = proxy(item.$range, 'input', async (event) => {\n item.range[0] = item.$range.valueAsNumber\n item.tooltip = await item.onChange.call(this.art, item, $item, event)\n })\n item.$events.push(event)\n }\n }\n break\n }\n case 'selector':\n {\n const event = proxy($item, 'click', async (event) => {\n if (item.selector?.length) {\n this.render(item.selector)\n }\n else {\n this.check(item)\n if (item.$parent.onSelect) {\n item.$parent.tooltip = await item.$parent.onSelect.call(this.art, item, $item, event)\n }\n }\n })\n\n item.$events.push(event)\n\n if (item.default) {\n addClass($item, 'art-current')\n }\n }\n break\n case 'button':\n if (item.onClick) {\n const event = proxy($item, 'click', async (event) => {\n item.tooltip = await item.onClick.call(this.art, item, $item, event)\n })\n item.$events.push(event)\n }\n break\n default:\n break\n }\n\n def(item, '$item', {\n configurable: true,\n get: () => $item,\n })\n\n if (isUpdate) {\n replaceElement($item, oldItem)\n }\n else {\n append($panel, $item)\n }\n\n if (item.mounted) {\n setTimeout(() => item.mounted.call(this.art, item.$item, item), 0)\n }\n }\n\n render(option = this.option) {\n this.active = option\n if (this.cache.has(option)) {\n const $panel = this.cache.get(option)\n inverseClass($panel, 'art-current')\n }\n else {\n const $panel = createElement('div')\n this.cache.set(option, $panel)\n addClass($panel, 'art-setting-panel')\n append(this.$parent, $panel)\n inverseClass($panel, 'art-current')\n\n if (option[0]?.$parent) {\n this.createHeader(option[0])\n }\n\n for (let index = 0; index < option.length; index++) {\n this.createItem(option[index])\n }\n }\n this.resize()\n }\n}\n","export default function aspectRatio(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, ASPECT_RATIO },\n } = art\n\n function getI18n(value) {\n return value === 'default' ? i18n.get('Default') : value\n }\n\n function update() {\n const target = art.setting.find(`aspect-ratio-${art.aspectRatio}`)\n art.setting.check(target)\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'aspect-ratio',\n html: i18n.get('Aspect Ratio'),\n icon: icons.aspectRatio,\n tooltip: getI18n(art.aspectRatio),\n selector: ASPECT_RATIO.map((item) => {\n return {\n value: item,\n name: `aspect-ratio-${item}`,\n default: item === art.aspectRatio,\n html: getI18n(item),\n }\n }),\n onSelect(item) {\n art.aspectRatio = item.value\n return item.html\n },\n mounted: () => {\n update()\n art.on('aspectRatio', () => update())\n },\n }\n}\n","import { capitalize } from '../utils'\n\nexport default function flip(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, FLIP },\n } = art\n\n function getI18n(value) {\n return i18n.get(capitalize(value))\n }\n\n function update() {\n const target = art.setting.find(`flip-${art.flip}`)\n art.setting.check(target)\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'flip',\n html: i18n.get('Video Flip'),\n tooltip: getI18n(art.flip),\n icon: icons.flip,\n selector: FLIP.map((item) => {\n return {\n value: item,\n name: `flip-${item}`,\n default: item === art.flip,\n html: getI18n(item),\n }\n }),\n onSelect(item) {\n art.flip = item.value\n return item.html\n },\n mounted: () => {\n update()\n art.on('flip', () => update())\n },\n }\n}\n","export default function playbackRate(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, PLAYBACK_RATE },\n } = art\n\n function getI18n(value) {\n return value === 1.0 ? i18n.get('Normal') : value.toFixed(1)\n }\n\n function update() {\n const target = art.setting.find(`playback-rate-${art.playbackRate}`)\n art.setting.check(target)\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'playback-rate',\n html: i18n.get('Play Speed'),\n tooltip: getI18n(art.playbackRate),\n icon: icons.playbackRate,\n selector: PLAYBACK_RATE.map((item) => {\n return {\n value: item,\n name: `playback-rate-${item}`,\n default: item === art.playbackRate,\n html: getI18n(item),\n }\n }),\n onSelect(item) {\n art.playbackRate = item.value\n return item.html\n },\n mounted: () => {\n update()\n art.on('video:ratechange', () => update())\n },\n }\n}\n","export default function subtitleOffset(art) {\n const { i18n, icons, constructor } = art\n\n return {\n width: constructor.SETTING_ITEM_WIDTH,\n name: 'subtitle-offset',\n html: i18n.get('Subtitle Offset'),\n icon: icons.subtitle,\n tooltip: '0s',\n range: [0, -10, 10, 0.1],\n onChange(item) {\n art.subtitleOffset = item.range[0]\n return `${item.range[0]}s`\n },\n mounted: (_, item) => {\n art.on('subtitleOffset', (value) => {\n item.$range.value = value\n item.tooltip = `${value}s`\n })\n },\n }\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings'\n this.settings = {}\n }\n\n get(key) {\n try {\n const storage = JSON.parse(window.localStorage.getItem(this.name)) || {}\n return key ? storage[key] : storage\n }\n catch {\n return key ? this.settings[key] : this.settings\n }\n }\n\n set(key, value) {\n try {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n })\n window.localStorage.setItem(this.name, JSON.stringify(storage))\n }\n catch {\n this.settings[key] = value\n }\n }\n\n del(key) {\n try {\n const storage = this.get()\n delete storage[key]\n window.localStorage.setItem(this.name, JSON.stringify(storage))\n }\n catch {\n delete this.settings[key]\n }\n }\n\n clear() {\n try {\n window.localStorage.removeItem(this.name)\n }\n catch {\n this.settings = {}\n }\n }\n}\n","import validator from 'option-validator'\nimport scheme from './scheme'\nimport {\n append,\n assToVtt,\n createElement,\n escape,\n getExt,\n remove,\n setStyle,\n setStyles,\n srtToVtt,\n vttToBlob,\n} from './utils'\nimport Component from './utils/component'\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art)\n this.name = 'subtitle'\n this.option = null\n this.destroyEvent = () => null\n this.init(art.option.subtitle)\n\n let lastState = false\n art.on('video:timeupdate', () => {\n if (!this.url)\n return\n const state = this.art.template.$video.webkitDisplayingFullscreen\n if (typeof state !== 'boolean')\n return\n if (state !== lastState) {\n lastState = state\n this.createTrack(state ? 'subtitles' : 'metadata', this.url)\n }\n })\n }\n\n get url() {\n return this.art.template.$track.src\n }\n\n set url(url) {\n this.switch(url)\n }\n\n get textTrack() {\n return this.art.template.$video?.textTracks?.[0]\n }\n\n get activeCues() {\n if (!this.textTrack)\n return []\n return Array.from(this.textTrack.activeCues)\n }\n\n get cues() {\n if (!this.textTrack)\n return []\n return Array.from(this.textTrack.cues)\n }\n\n style(key, value) {\n const { $subtitle } = this.art.template\n if (typeof key === 'object') {\n return setStyles($subtitle, key)\n }\n return setStyle($subtitle, key, value)\n }\n\n update() {\n const {\n option: { subtitle },\n template: { $subtitle },\n } = this.art\n\n $subtitle.innerHTML = ''\n if (!this.activeCues.length)\n return\n\n this.art.emit('subtitleBeforeUpdate', this.activeCues)\n $subtitle.innerHTML = this.activeCues\n .map((cue, index) =>\n cue.text\n .split(/\\r?\\n/)\n .filter(line => line.trim())\n .map(\n line =>\n `
\n ${subtitle.escape ? escape(line) : line}\n
`,\n )\n .join(''),\n )\n .join('')\n this.art.emit('subtitleAfterUpdate', this.activeCues)\n }\n\n async switch(url, newOption = {}) {\n const { i18n, notice, option } = this.art\n const subtitleOption = { ...option.subtitle, ...newOption, url }\n const subUrl = await this.init(subtitleOption)\n if (newOption.name) {\n notice.show = `${i18n.get('Switch Subtitle')}: ${newOption.name}`\n }\n return subUrl\n }\n\n createTrack(kind, url) {\n const { template, proxy, option } = this.art\n const { $video, $track } = template\n\n const $newTrack = createElement('track')\n $newTrack.default = true\n $newTrack.kind = kind\n $newTrack.src = url\n $newTrack.label = option.subtitle.name || 'Artplayer'\n $newTrack.track.mode = 'hidden'\n $newTrack.onload = () => {\n this.art.emit('subtitleLoad', this.cues, this.option)\n }\n\n this.art.events.remove(this.destroyEvent)\n $track.onload = null\n remove($track)\n append($video, $newTrack)\n template.$track = $newTrack\n this.destroyEvent = proxy(this.textTrack, 'cuechange', () => this.update())\n }\n\n async init(subtitleOption) {\n const {\n notice,\n template: { $subtitle },\n } = this.art\n\n if (!this.textTrack)\n return null\n validator(subtitleOption, scheme.subtitle)\n if (!subtitleOption.url)\n return\n this.option = subtitleOption\n this.style(subtitleOption.style)\n\n return fetch(subtitleOption.url)\n .then(response => response.arrayBuffer())\n .then((buffer) => {\n const decoder = new TextDecoder(subtitleOption.encoding)\n const text = decoder.decode(buffer)\n switch (subtitleOption.type || getExt(subtitleOption.url)) {\n case 'srt': {\n const vtt = srtToVtt(text)\n const vttNew = subtitleOption.onVttLoad(vtt)\n return vttToBlob(vttNew)\n }\n case 'ass': {\n const vtt = assToVtt(text)\n const vttNew = subtitleOption.onVttLoad(vtt)\n return vttToBlob(vttNew)\n }\n case 'vtt': {\n const vttNew = subtitleOption.onVttLoad(text)\n return vttToBlob(vttNew)\n }\n default:\n return subtitleOption.url\n }\n })\n .then((subUrl) => {\n $subtitle.innerHTML = ''\n if (this.url === subUrl)\n return subUrl\n URL.revokeObjectURL(this.url)\n this.createTrack('metadata', subUrl)\n return subUrl\n })\n .catch((err) => {\n $subtitle.innerHTML = ''\n notice.show = err\n throw err\n })\n }\n}\n","import { version } from '../package.json'\nimport { addClass, errorHandle, isMobile, query, replaceElement, supportsFlex } from './utils'\n\nexport default class Template {\n constructor(art) {\n this.art = art\n const { option, constructor } = art\n\n if (option.container instanceof Element) {\n this.$container = option.container\n }\n else {\n this.$container = query(option.container)\n errorHandle(this.$container, `No container element found by ${option.container}`)\n }\n\n errorHandle(supportsFlex(), 'The current browser does not support flex layout')\n\n const type = this.$container.tagName.toLowerCase()\n errorHandle(type === 'div', `Unsupported container element type, only support 'div' but got '${type}'`)\n\n errorHandle(\n constructor.instances.every(ins => ins.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n )\n\n this.query = this.query.bind(this)\n this.$container.dataset.artId = art.id\n this.init()\n }\n\n static get html() {\n return `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Player version:
\n
${version}
\n
\n
\n
Video url:
\n
\n
\n
\n
Video volume:
\n
\n
\n
\n
Video time:
\n
\n
\n
\n
Video duration:
\n
\n
\n
\n
Video resolution:
\n
\n x \n
\n
\n
\n
[x]
\n
\n
\n
\n `\n }\n\n query(className) {\n return query(className, this.$container)\n }\n\n init() {\n const { option } = this.art\n\n if (!option.useSSR) {\n this.$container.innerHTML = Template.html\n }\n\n this.$player = this.query('.art-video-player')\n this.$video = this.query('.art-video')\n this.$track = this.query('track')\n this.$poster = this.query('.art-poster')\n this.$subtitle = this.query('.art-subtitle')\n this.$danmuku = this.query('.art-danmuku')\n this.$bottom = this.query('.art-bottom')\n this.$progress = this.query('.art-progress')\n this.$controls = this.query('.art-controls')\n this.$controlsLeft = this.query('.art-controls-left')\n this.$controlsCenter = this.query('.art-controls-center')\n this.$controlsRight = this.query('.art-controls-right')\n this.$layer = this.query('.art-layers')\n this.$loading = this.query('.art-loading')\n this.$notice = this.query('.art-notice')\n this.$noticeInner = this.query('.art-notice-inner')\n this.$mask = this.query('.art-mask')\n this.$state = this.query('.art-state')\n this.$setting = this.query('.art-settings')\n this.$info = this.query('.art-info')\n this.$infoPanel = this.query('.art-info-panel')\n this.$infoClose = this.query('.art-info-close')\n this.$contextmenu = this.query('.art-contextmenus')\n\n if (option.proxy) {\n const video = option.proxy.call(this.art, this.art)\n errorHandle(\n video instanceof HTMLVideoElement || video instanceof HTMLCanvasElement,\n `Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'`,\n )\n replaceElement(video, this.$video)\n video.className = 'art-video'\n this.$video = video\n }\n\n if (option.backdrop) {\n addClass(this.$player, 'art-backdrop')\n }\n\n if (isMobile) {\n addClass(this.$player, 'art-mobile')\n }\n }\n\n destroy(removeHtml) {\n this.$video.src = ''\n if (removeHtml) {\n this.$container.innerHTML = ''\n }\n else {\n addClass(this.$player, 'art-destroy')\n }\n }\n}\n","export default class Emitter {\n on(name, fn, ctx) {\n const e = this.e || (this.e = {});\n (e[name] || (e[name] = [])).push({ fn, ctx })\n return this\n }\n\n once(name, fn, ctx) {\n const self = this\n function listener(...args) {\n self.off(name, listener)\n fn.apply(ctx, args)\n }\n listener._ = fn\n return this.on(name, listener, ctx)\n }\n\n emit(name, ...data) {\n const evtArr = ((this.e || (this.e = {}))[name] || []).slice()\n for (let i = 0; i < evtArr.length; i += 1) {\n evtArr[i].fn.apply(evtArr[i].ctx, data)\n }\n return this\n }\n\n off(name, callback) {\n const e = this.e || (this.e = {})\n const evts = e[name]\n const liveEvents = []\n if (evts && callback) {\n for (let i = 0, len = evts.length; i < len; i += 1) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i])\n }\n }\n if (liveEvents.length) {\n e[name] = liveEvents\n }\n else {\n delete e[name]\n }\n return this\n }\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file +{"mappings":"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","sources":["packages/artplayer/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-1a83ba7b78f9fbad.js","node_modules/option-validator/dist/option-validator.js","packages/artplayer/package.json","packages/artplayer/src/config/index.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","packages/artplayer/src/contextmenu/index.js","packages/artplayer/src/utils/index.js","packages/artplayer/src/utils/compatibility.js","packages/artplayer/src/utils/dom.js","packages/artplayer/src/utils/error.js","packages/artplayer/src/utils/file.js","packages/artplayer/src/utils/format.js","packages/artplayer/src/utils/property.js","packages/artplayer/src/utils/subtitle.js","packages/artplayer/src/utils/time.js","packages/artplayer/src/utils/component.js","packages/artplayer/src/scheme/index.js","packages/artplayer/src/contextmenu/aspectRatio.js","packages/artplayer/src/contextmenu/close.js","packages/artplayer/src/contextmenu/flip.js","packages/artplayer/src/contextmenu/info.js","packages/artplayer/src/contextmenu/playbackRate.js","packages/artplayer/src/contextmenu/version.js","packages/artplayer/src/control/index.js","packages/artplayer/src/control/airplay.js","packages/artplayer/src/control/fullscreen.js","packages/artplayer/src/control/fullscreenWeb.js","packages/artplayer/src/control/pip.js","packages/artplayer/src/control/playAndPause.js","packages/artplayer/src/control/progress.js","packages/artplayer/src/control/screenshot.js","packages/artplayer/src/control/setting.js","packages/artplayer/src/control/time.js","packages/artplayer/src/control/volume.js","packages/artplayer/src/events/index.js","packages/artplayer/src/events/clickInit.js","packages/artplayer/src/events/gestureInit.js","packages/artplayer/src/events/globalInit.js","packages/artplayer/src/events/hoverInit.js","packages/artplayer/src/events/moveInit.js","packages/artplayer/src/events/resizeInit.js","packages/artplayer/src/events/updateInit.js","packages/artplayer/src/events/viewInit.js","packages/artplayer/src/hotkey.js","packages/artplayer/src/i18n/index.js","packages/artplayer/src/i18n/zh-cn.js","packages/artplayer/src/icons/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-b09787399762439a.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-59d8a32ff494cf26.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-fc0e8ba14b0a205e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-b6afaee63da94390.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-8306aa2d43f8f518.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e79e019b9bea702c.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-6e4bd76b89220063.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-11f6581ae841b62a.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-a9b9362d1cb1ddd7.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-d20ee4405f81c2fb.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e61dc575158bf45c.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-853939c76577d052.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ed21bae52505e995.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-20be5e3eca70ea32.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-c577d5b2fce8a593.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ed2c6405abc18237.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-d269c22a6d246bc3.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-9e6243eba3e2ee25.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-8fd0b0f874dbf51e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e2d98041510dcc81.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-0b69a45deda02972.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-c89477eca9760866.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-dbc4095e84eeca13.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-3cf7eba38b86f798.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-766dea468868d543.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ce7336f6ee750446.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-296845b4b0ef3af0.js","packages/artplayer/src/info.js","packages/artplayer/src/layer.js","packages/artplayer/src/loading.js","packages/artplayer/src/mask.js","packages/artplayer/src/notice.js","packages/artplayer/src/player/index.js","packages/artplayer/src/player/airplayMix.js","packages/artplayer/src/player/aspectRatioMix.js","packages/artplayer/src/player/attrMix.js","packages/artplayer/src/player/autoHeightMix.js","packages/artplayer/src/player/autoSizeMix.js","packages/artplayer/src/player/cssVarMix.js","packages/artplayer/src/player/currentTimeMix.js","packages/artplayer/src/player/durationMix.js","packages/artplayer/src/player/eventInit.js","packages/artplayer/src/player/flipMix.js","packages/artplayer/src/player/fullscreenMix.js","packages/artplayer/src/libs/screenfull.js","packages/artplayer/src/player/fullscreenWebMix.js","packages/artplayer/src/player/loadedMix.js","packages/artplayer/src/player/miniMix.js","packages/artplayer/src/player/optionInit.js","packages/artplayer/src/player/pauseMix.js","packages/artplayer/src/player/pipMix.js","packages/artplayer/src/player/playbackRateMix.js","packages/artplayer/src/player/playedMix.js","packages/artplayer/src/player/playingMix.js","packages/artplayer/src/player/playMix.js","packages/artplayer/src/player/posterMix.js","packages/artplayer/src/player/qualityMix.js","packages/artplayer/src/player/rectMix.js","packages/artplayer/src/player/screenshotMix.js","packages/artplayer/src/player/seekMix.js","packages/artplayer/src/player/stateMix.js","packages/artplayer/src/player/subtitleOffsetMix.js","packages/artplayer/src/player/switchMix.js","packages/artplayer/src/player/themeMix.js","packages/artplayer/src/player/thumbnailsMix.js","packages/artplayer/src/player/toggleMix.js","packages/artplayer/src/player/typeMix.js","packages/artplayer/src/player/urlMix.js","packages/artplayer/src/player/volumeMix.js","packages/artplayer/src/plugins/index.js","packages/artplayer/src/plugins/autoOrientation.js","packages/artplayer/src/plugins/autoPlayback.js","packages/artplayer/src/plugins/fastForward.js","packages/artplayer/src/plugins/lock.js","packages/artplayer/src/plugins/miniProgressBar.js","packages/artplayer/src/setting/index.js","packages/artplayer/src/setting/aspectRatio.js","packages/artplayer/src/setting/flip.js","packages/artplayer/src/setting/playbackRate.js","packages/artplayer/src/setting/subtitleOffset.js","packages/artplayer/src/storage.js","packages/artplayer/src/subtitle.js","packages/artplayer/src/template.js","packages/artplayer/src/utils/emitter.js"],"sourcesContent":["import style from 'bundle-text:./style/index.less'\nimport validator from 'option-validator'\nimport { version } from '../package.json'\nimport config from './config'\nimport Contextmenu from './contextmenu'\nimport Control from './control'\nimport Events from './events'\nimport Hotkey from './hotkey'\nimport I18n from './i18n'\nimport Icons from './icons'\nimport Info from './info'\nimport Layer from './layer'\nimport Loading from './loading'\nimport Mask from './mask'\nimport Notice from './notice'\nimport Player from './player'\nimport Plugins from './plugins'\nimport scheme from './scheme'\nimport Setting from './setting'\nimport Storage from './storage'\nimport Subtitle from './subtitle'\nimport Template from './template'\nimport * as utils from './utils'\nimport Emitter from './utils/emitter'\n\nlet id = 0\nconst instances = []\nexport default class Artplayer extends Emitter {\n constructor(option, readyCallback) {\n super()\n\n if (!utils.isBrowser) {\n throw new Error('Artplayer can only be used in the browser environment')\n }\n\n this.id = ++id\n\n const mergeOption = utils.mergeDeep(Artplayer.option, option)\n mergeOption.container = option.container\n\n this.option = validator(mergeOption, scheme)\n\n this.isLock = false\n this.isReady = false\n this.isFocus = false\n this.isInput = false\n this.isRotate = false\n this.isDestroy = false\n\n this.template = new Template(this)\n this.events = new Events(this)\n this.storage = new Storage(this)\n this.icons = new Icons(this)\n this.i18n = new I18n(this)\n this.notice = new Notice(this)\n this.player = new Player(this)\n this.layers = new Layer(this)\n this.controls = new Control(this)\n this.contextmenu = new Contextmenu(this)\n this.subtitle = new Subtitle(this)\n this.info = new Info(this)\n this.loading = new Loading(this)\n this.hotkey = new Hotkey(this)\n this.mask = new Mask(this)\n this.setting = new Setting(this)\n this.plugins = new Plugins(this)\n\n if (typeof readyCallback === 'function') {\n this.on('ready', () => readyCallback.call(this, this))\n }\n\n if (Artplayer.DEBUG) {\n // eslint-disable-next-line no-console\n const log = msg => console.log(`[ART.${this.id}] -> ${msg}`)\n log(`Version@${Artplayer.version}`)\n for (let index = 0; index < config.events.length; index++) {\n this.on(`video:${config.events[index]}`, event => log(`Event@${event.type}`))\n }\n }\n\n instances.push(this)\n }\n\n static get instances() {\n return instances\n }\n\n static get version() {\n return version\n }\n\n static get config() {\n return config\n }\n\n static get utils() {\n return utils\n }\n\n static get scheme() {\n return scheme\n }\n\n static get Emitter() {\n return Emitter\n }\n\n static get validator() {\n return validator\n }\n\n static get kindOf() {\n return validator.kindOf\n }\n\n static get html() {\n return Template.html\n }\n\n static get option() {\n return {\n id: '',\n container: '#artplayer',\n url: '',\n poster: '',\n type: '',\n theme: '#f00',\n volume: 0.7,\n isLive: false,\n muted: false,\n autoplay: false,\n autoSize: false,\n autoMini: false,\n loop: false,\n flip: false,\n playbackRate: false,\n aspectRatio: false,\n screenshot: false,\n setting: false,\n hotkey: true,\n pip: false,\n mutex: true,\n backdrop: true,\n fullscreen: false,\n fullscreenWeb: false,\n subtitleOffset: false,\n miniProgressBar: false,\n useSSR: false,\n playsInline: true,\n lock: false,\n gesture: true,\n fastForward: false,\n autoPlayback: false,\n autoOrientation: false,\n airplay: false,\n proxy: undefined,\n layers: [],\n contextmenu: [],\n controls: [],\n settings: [],\n quality: [],\n highlight: [],\n plugins: [],\n thumbnails: {\n url: '',\n number: 60,\n column: 10,\n width: 0,\n height: 0,\n scale: 1,\n },\n subtitle: {\n url: '',\n type: '',\n style: {},\n name: '',\n escape: true,\n encoding: 'utf-8',\n onVttLoad: vtt => vtt,\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n i18n: {},\n icons: {},\n cssVar: {},\n customType: {},\n lang: navigator?.language.toLowerCase(),\n }\n }\n\n get proxy() {\n return this.events.proxy\n }\n\n get query() {\n return this.template.query\n }\n\n get video() {\n return this.template.$video\n }\n\n destroy(removeHtml = true) {\n if (Artplayer.REMOVE_SRC_WHEN_DESTROY) {\n this.video.removeAttribute('src')\n }\n this.events.destroy()\n this.template.destroy(removeHtml)\n instances.splice(instances.indexOf(this), 1)\n this.isDestroy = true\n this.emit('destroy')\n }\n}\n\nArtplayer.STYLE = style\nArtplayer.DEBUG = false\nArtplayer.CONTEXTMENU = true\nArtplayer.NOTICE_TIME = 2000\nArtplayer.SETTING_WIDTH = 250\nArtplayer.SETTING_ITEM_WIDTH = 200\nArtplayer.SETTING_ITEM_HEIGHT = 35\nArtplayer.RESIZE_TIME = 200\nArtplayer.SCROLL_TIME = 200\nArtplayer.SCROLL_GAP = 50\nArtplayer.AUTO_PLAYBACK_MAX = 10\nArtplayer.AUTO_PLAYBACK_MIN = 5\nArtplayer.AUTO_PLAYBACK_TIMEOUT = 3000\nArtplayer.RECONNECT_TIME_MAX = 5\nArtplayer.RECONNECT_SLEEP_TIME = 1000\nArtplayer.CONTROL_HIDE_TIME = 3000\nArtplayer.DBCLICK_TIME = 300\nArtplayer.DBCLICK_FULLSCREEN = true\nArtplayer.MOBILE_DBCLICK_PLAY = true\nArtplayer.MOBILE_CLICK_PLAY = false\nArtplayer.AUTO_ORIENTATION_TIME = 200\nArtplayer.INFO_LOOP_TIME = 1000\nArtplayer.FAST_FORWARD_VALUE = 3\nArtplayer.FAST_FORWARD_TIME = 1000\nArtplayer.TOUCH_MOVE_RATIO = 0.5\nArtplayer.VOLUME_STEP = 0.1\nArtplayer.SEEK_STEP = 5\nArtplayer.PLAYBACK_RATE = [0.5, 0.75, 1, 1.25, 1.5, 2]\nArtplayer.ASPECT_RATIO = ['default', '4:3', '16:9']\nArtplayer.FLIP = ['normal', 'horizontal', 'vertical']\nArtplayer.FULLSCREEN_WEB_IN_BODY = false\nArtplayer.LOG_VERSION = true\nArtplayer.USE_RAF = false\nArtplayer.REMOVE_SRC_WHEN_DESTROY = true\n\nif (utils.isBrowser) {\n window.Artplayer = Artplayer\n\n utils.setStyleText('artplayer-style', style)\n\n setTimeout(() => {\n if (Artplayer.LOG_VERSION) {\n // eslint-disable-next-line no-console\n console.log(\n `%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`,\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n )\n }\n }, 100)\n}\n","module.exports = \"8df583d394494873\";","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2\",\n \"license\": \"MIT\",\n \"homepage\": \"https://artplayer.org\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/zhw2590582/ArtPlayer.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/zhw2590582/ArtPlayer/issues\"\n },\n \"keywords\": [\n \"html5\",\n \"video\",\n \"player\"\n ],\n \"exports\": {\n \".\": {\n \"import\": \"./dist/artplayer.mjs\",\n \"require\": \"./dist/artplayer.js\"\n },\n \"./i18n/*\": {\n \"import\": \"./dist/i18n/*.mjs\",\n \"require\": \"./dist/i18n/*.js\"\n },\n \"./dist/i18n/*\": {\n \"import\": \"./dist/i18n/*.mjs\",\n \"require\": \"./dist/i18n/*.js\"\n }\n },\n \"main\": \"./dist/artplayer.js\",\n \"module\": \"./dist/artplayer.mjs\",\n \"types\": \"./types/artplayer.d.ts\",\n \"legacy\": \"./dist/artplayer.legacy.js\",\n \"browserslist\": \"last 1 Chrome version\",\n \"dependencies\": {\n \"option-validator\": \"^2.0.6\"\n }\n}\n","export default {\n properties: [\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: ['addTextTrack', 'canPlayType', 'load', 'play', 'pause'],\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 prototypes: [\n 'width',\n 'height',\n 'videoWidth',\n 'videoHeight',\n 'poster',\n 'webkitDecodedFrameCount',\n 'webkitDroppedFrameCount',\n 'playsInline',\n 'webkitSupportsFullscreen',\n 'webkitDisplayingFullscreen',\n 'onenterpictureinpicture',\n 'onleavepictureinpicture',\n 'disablePictureInPicture',\n 'cancelVideoFrameCallback',\n 'requestVideoFrameCallback',\n 'getVideoPlaybackQuality',\n 'requestPictureInPicture',\n 'webkitEnterFullScreen',\n 'webkitEnterFullscreen',\n 'webkitExitFullScreen',\n 'webkitExitFullscreen',\n ],\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n","import { getRect, includeFromEvent, isMobile, setStyles } from '../utils'\nimport Component from '../utils/component'\nimport aspectRatio from './aspectRatio'\nimport close from './close'\nimport flip from './flip'\nimport info from './info'\nimport playbackRate from './playbackRate'\nimport version from './version'\n\nexport default class Contextmenu extends Component {\n constructor(art) {\n super(art)\n\n this.name = 'contextmenu'\n this.$parent = art.template.$contextmenu\n\n if (!isMobile) {\n this.init()\n }\n }\n\n init() {\n const {\n option,\n proxy,\n template: { $player, $contextmenu },\n } = this.art\n\n if (option.playbackRate) {\n this.add(\n playbackRate({\n name: 'playbackRate',\n index: 10,\n }),\n )\n }\n\n if (option.aspectRatio) {\n this.add(\n aspectRatio({\n name: 'aspectRatio',\n index: 20,\n }),\n )\n }\n\n if (option.flip) {\n this.add(\n flip({\n name: 'flip',\n index: 30,\n }),\n )\n }\n\n this.add(\n info({\n name: 'info',\n index: 40,\n }),\n )\n\n this.add(\n version({\n name: 'version',\n index: 50,\n }),\n )\n\n this.add(\n close({\n name: 'close',\n index: 60,\n }),\n )\n\n for (let index = 0; index < option.contextmenu.length; index++) {\n this.add(option.contextmenu[index])\n }\n\n proxy($player, 'contextmenu', (event) => {\n if (!this.art.constructor.CONTEXTMENU)\n return\n event.preventDefault()\n\n this.show = true\n\n const mouseX = event.clientX\n const mouseY = event.clientY\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = getRect($player)\n const { height: mHeight, width: mWidth } = getRect($contextmenu)\n let menuLeft = mouseX - cLeft\n let menuTop = mouseY - cTop\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n })\n })\n\n proxy($player, 'click', (event) => {\n if (!includeFromEvent(event, $contextmenu)) {\n this.show = false\n }\n })\n\n this.art.on('blur', () => {\n this.show = false\n })\n }\n}\n","export * from './compatibility'\nexport * from './dom'\nexport * from './error'\nexport * from './file'\nexport * from './format'\nexport * from './property'\nexport * from './subtitle'\nexport * from './time'\n","export const userAgent = globalThis?.CUSTOM_USER_AGENT ?? (typeof navigator !== 'undefined' ? navigator.userAgent : '')\nexport const isSafari = /^(?:(?!chrome|android).)*safari/i.test(userAgent)\nexport const isIOS = /iPad|iPhone|iPod/i.test(userAgent) && !window.MSStream\nexport const isIOS13 = isIOS || (userAgent.includes('Macintosh') && navigator.maxTouchPoints >= 1)\nexport const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent) || isIOS13\nexport const isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'\n","import { isMobile } from './compatibility'\n\nexport function query(selector, parent = document) {\n return parent.querySelector(selector)\n}\n\nexport function queryAll(selector, parent = document) {\n return Array.from(parent.querySelectorAll(selector))\n}\n\nexport function addClass(target, className) {\n return target.classList.add(className)\n}\n\nexport function removeClass(target, className) {\n return target.classList.remove(className)\n}\n\nexport function hasClass(target, className) {\n return target.classList.contains(className)\n}\n\nexport function append(parent, child) {\n if (child instanceof Element) {\n parent.appendChild(child)\n }\n else {\n parent.insertAdjacentHTML('beforeend', String(child))\n }\n return parent.lastElementChild || parent.lastChild\n}\n\nexport function remove(child) {\n return child.parentNode.removeChild(child)\n}\n\nexport function setStyle(element, key, value) {\n element.style[key] = value\n return element\n}\n\nexport function setStyles(element, styles) {\n for (const key in styles) {\n setStyle(element, key, styles[key])\n }\n return element\n}\n\nexport function getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key)\n return numberType ? Number.parseFloat(value) : value\n}\n\nexport function siblings(target) {\n return Array.from(target.parentElement.children).filter(item => item !== target)\n}\n\nexport function inverseClass(target, className) {\n siblings(target).forEach(item => removeClass(item, className))\n addClass(target, className)\n}\n\nexport function tooltip(target, msg, pos = 'top') {\n if (isMobile)\n return\n target.setAttribute('aria-label', msg)\n addClass(target, 'hint--rounded')\n addClass(target, `hint--${pos}`)\n}\n\nexport function isInViewport(el, offset = 0) {\n const rect = el.getBoundingClientRect()\n const windowHeight = window.innerHeight || document.documentElement.clientHeight\n const windowWidth = window.innerWidth || document.documentElement.clientWidth\n const vertInView = rect.top - offset <= windowHeight && rect.top + rect.height + offset >= 0\n const horInView = rect.left - offset <= windowWidth + offset && rect.left + rect.width + offset >= 0\n return vertInView && horInView\n}\n\nexport function includeFromEvent(event, target) {\n return getComposedPath(event).includes(target)\n}\n\nexport function replaceElement(newChild, oldChild) {\n oldChild.parentNode.replaceChild(newChild, oldChild)\n return newChild\n}\n\nexport function createElement(tag) {\n return document.createElement(tag)\n}\n\nexport function getIcon(key = '', html = '') {\n const icon = createElement('i')\n addClass(icon, 'art-icon')\n addClass(icon, `art-icon-${key}`)\n append(icon, html)\n return icon\n}\n\nexport function setStyleText(id, style) {\n let $style = document.getElementById(id)\n if (!$style) {\n $style = document.createElement('style')\n $style.id = id\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', () => {\n document.head.appendChild($style)\n })\n }\n else {\n (document.head || document.documentElement).appendChild($style)\n }\n }\n $style.textContent = style\n}\n\nexport function supportsFlex() {\n const div = document.createElement('div')\n div.style.display = 'flex'\n return div.style.display === 'flex'\n}\n\nexport function getRect(el) {\n return el.getBoundingClientRect()\n}\n\nexport function loadImg(url, scale) {\n return new Promise((resolve, reject) => {\n const img = new Image()\n\n img.onload = function () {\n if (!scale || scale === 1) {\n resolve(img)\n }\n else {\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n canvas.width = img.width * scale\n canvas.height = img.height * scale\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height)\n\n canvas.toBlob((blob) => {\n const blobUrl = URL.createObjectURL(blob)\n const scaledImg = new Image()\n\n scaledImg.onload = function () {\n resolve(scaledImg)\n }\n\n scaledImg.onerror = function () {\n URL.revokeObjectURL(blobUrl)\n reject(new Error(`Image load failed: ${url}`))\n }\n\n scaledImg.src = blobUrl\n })\n }\n }\n\n img.onerror = function () {\n reject(new Error(`Image load failed: ${url}`))\n }\n\n img.src = url\n })\n}\n\nexport function getComposedPath(event) {\n if (event.composedPath)\n return event.composedPath()\n const path = []\n let node = event.target\n while (node) {\n path.push(node)\n node = node.parentNode\n }\n if (!path.includes(window) && window !== undefined) {\n path.push(window)\n }\n return path\n}\n","export 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\nexport function errorHandle(condition, msg) {\n if (!condition) {\n throw new ArtPlayerError(msg)\n }\n return condition\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0])\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0])\n }\n\n return url.trim().toLowerCase().split('.').pop()\n}\n\nexport function download(url, name) {\n const elink = document.createElement('a')\n elink.style.display = 'none'\n elink.href = url\n elink.download = name\n document.body.appendChild(elink)\n elink.click()\n document.body.removeChild(elink)\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b))\n}\n\nexport function capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport function secondToTime(second) {\n if (!second)\n return '00:00'\n const add0 = num => (num < 10 ? `0${num}` : String(num))\n const hour = Math.floor(second / 3600)\n const min = Math.floor((second - hour * 3600) / 60)\n const sec = Math.floor(second - hour * 3600 - min * 60)\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':')\n}\n\nexport function escape(str) {\n return str.replace(\n /[&<>'\"]/g,\n tag =>\n ({\n '&': '&',\n '<': '<',\n '>': '>',\n '\\'': ''',\n '\"': '"',\n })[tag] || tag,\n )\n}\n\nexport function unescape(str) {\n const map = {\n '&': '&',\n '<': '<',\n '>': '>',\n ''': '\\'',\n '"': '\"',\n }\n const reg = new RegExp(`(${Object.keys(map).join('|')})`, 'g')\n return str.replace(reg, tag => map[tag] || tag)\n}\n","export const def = Object.defineProperty\n\nconst { hasOwnProperty } = Object.prototype\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name)\n}\n\nexport function get(obj, name) {\n return Object.getOwnPropertyDescriptor(obj, name)\n}\n\nexport function mergeDeep(...objects) {\n const isObject = item => item && typeof item === 'object' && !Array.isArray(item)\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach((key) => {\n const pVal = prev[key]\n const oVal = obj[key]\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal)\n }\n else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal)\n }\n else {\n prev[key] = oVal\n }\n })\n return prev\n }, {})\n}\n","function fixSrt(srt) {\n return srt.replace(/(\\d\\d:\\d\\d:\\d\\d)[,.](\\d+)/g, (_, $1, $2) => {\n let ms = $2.slice(0, 3)\n if ($2.length === 1) {\n ms = `${$2}00`\n }\n if ($2.length === 2) {\n ms = `${$2}0`\n }\n return `${$1},${ms}`\n })\n}\n\nexport function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n fixSrt(srtText)\n .replace(/\\{\\\\([ibu])\\}/g, '')\n .replace(/\\{\\\\([ibu])1\\}/g, '<$1>')\n .replace(/\\{([ibu])\\}/g, '<$1>')\n .replace(/\\{\\/([ibu])\\}/g, '')\n .replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2')\n .replace(/\\{[\\s\\S]*?\\}/g, '')\n .concat('\\r\\n\\r\\n'),\n )\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n )\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,'\n + '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),'\n + '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),'\n + '([^,]*),'\n + '([^,]*),'\n + '(?:[^,]*,){4}'\n + '([\\\\s\\\\S]*)$',\n 'i',\n )\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`\n }\n\n if (item.length === 2) {\n return `.${item}0`\n }\n }\n else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item\n }\n\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`\n })\n .join('')\n }\n\n return (\n `WEBVTT`\n + `\\n`\n + `\\n${\n ass\n .split(/\\r?\\n/)\n .map((line) => {\n const m = line.match(reAss)\n if (!m)\n return null\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/\\{[\\s\\S]*?\\}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map(item => item.trim())\n .join('\\n'),\n }\n })\n .filter(line => line)\n .map((line, index) => {\n if (line) {\n return `${index + 1}\\n` + `${line.start} --> ${line.end}` + `\\n` + `${line.text}`\n }\n return ''\n })\n .filter(line => line.trim())\n .join('\\n\\n')}`\n )\n}\n","export function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms))\n}\n\nexport function debounce(func, duration) {\n let timeout\n\n return function (...args) {\n const effect = () => {\n timeout = null\n return func.apply(this, args)\n }\n\n clearTimeout(timeout)\n timeout = setTimeout(effect, duration)\n }\n}\n\nexport function throttle(func, duration) {\n let shouldWait = false\n\n return function (...args) {\n if (!shouldWait) {\n func.apply(this, args)\n shouldWait = true\n\n setTimeout(() => {\n shouldWait = false\n }, duration)\n }\n }\n}\n","import validator from 'option-validator'\nimport { ComponentOption } from '../scheme'\nimport { addClass, append, createElement, hasClass, remove, removeClass, setStyles, tooltip } from './dom'\nimport { errorHandle } from './error'\n\nexport default class Component {\n constructor(art) {\n this.id = 0\n this.art = art\n this.cache = new Map()\n this.add = this.add.bind(this)\n this.remove = this.remove.bind(this)\n this.update = this.update.bind(this)\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`)\n }\n\n set show(value) {\n const { $player } = this.art.template\n const className = `art-${this.name}-show`\n if (value) {\n addClass($player, className)\n }\n else {\n removeClass($player, className)\n }\n this.art.emit(this.name, value)\n }\n\n toggle() {\n this.show = !this.show\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption\n option.html = option.html || ''\n validator(option, ComponentOption)\n if (!this.$parent || !this.name || option.disable)\n return\n const name = option.name || `${this.name}${this.id}`\n const item = this.cache.get(name)\n errorHandle(!item, `Can't add an existing [${name}] to the [${this.name}]`)\n\n this.id += 1\n const $ref = createElement('div')\n addClass($ref, `art-${this.name}`)\n addClass($ref, `art-${this.name}-${name}`)\n\n const childs = Array.from(this.$parent.children)\n $ref.dataset.index = option.index || this.id\n const nextChild = childs.find(item => Number(item.dataset.index) >= Number($ref.dataset.index))\n if (nextChild) {\n nextChild.insertAdjacentElement('beforebegin', $ref)\n }\n else {\n append(this.$parent, $ref)\n }\n\n if (option.html) {\n append($ref, option.html)\n }\n\n if (option.style) {\n setStyles($ref, option.style)\n }\n\n if (option.tooltip) {\n tooltip($ref, option.tooltip)\n }\n\n const events = []\n if (option.click) {\n const destroyEvent = this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault()\n option.click.call(this.art, this, event)\n })\n events.push(destroyEvent)\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.selector(option, $ref, events)\n }\n\n this[name] = $ref\n this.cache.set(name, { $ref, events, option })\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref)\n }\n\n return $ref\n }\n\n remove(name) {\n const item = this.cache.get(name)\n errorHandle(item, `Can't find [${name}] from the [${this.name}]`)\n\n if (item.option.beforeUnmount) {\n item.option.beforeUnmount.call(this.art, item.$ref)\n }\n\n for (let index = 0; index < item.events.length; index++) {\n this.art.events.remove(item.events[index])\n }\n\n this.cache.delete(name)\n delete this[name]\n remove(item.$ref)\n }\n\n update(option) {\n const item = this.cache.get(option.name)\n if (item) {\n option = Object.assign(item.option, option)\n this.remove(option.name)\n }\n return this.add(option)\n }\n}\n","import { errorHandle } from '../utils'\n\nconst a = 'array'\nconst b = 'boolean'\nconst s = 'string'\nconst n = 'number'\nconst o = 'object'\nconst f = 'function'\n\nfunction validElement(value, type, paths) {\n return errorHandle(\n type === s || type === n || value instanceof Element,\n `${paths.join('.')} require '${s}' or 'Element' type`,\n )\n}\n\nexport const ComponentOption = {\n html: validElement,\n disable: `?${b}`,\n name: `?${s}`,\n index: `?${n}`,\n style: `?${o}`,\n click: `?${f}`,\n mounted: `?${f}`,\n tooltip: `?${s}|${n}`,\n width: `?${n}`,\n selector: `?${a}`,\n onSelect: `?${f}`,\n switch: `?${b}`,\n onSwitch: `?${f}`,\n range: `?${a}`,\n onRange: `?${f}`,\n onChange: `?${f}`,\n}\n\nexport default {\n id: s,\n container: validElement,\n url: s,\n poster: s,\n type: s,\n theme: s,\n lang: s,\n volume: n,\n isLive: b,\n muted: b,\n autoplay: b,\n autoSize: b,\n autoMini: b,\n loop: b,\n flip: b,\n playbackRate: b,\n aspectRatio: b,\n screenshot: b,\n setting: b,\n hotkey: b,\n pip: b,\n mutex: b,\n backdrop: b,\n fullscreen: b,\n fullscreenWeb: b,\n subtitleOffset: b,\n miniProgressBar: b,\n useSSR: b,\n playsInline: b,\n lock: b,\n gesture: b,\n fastForward: b,\n autoPlayback: b,\n autoOrientation: b,\n airplay: b,\n proxy: `?${f}`,\n plugins: [f],\n layers: [ComponentOption],\n contextmenu: [ComponentOption],\n settings: [ComponentOption],\n controls: [\n {\n ...ComponentOption,\n position: (value, _, paths) => {\n const position = ['top', 'left', 'right']\n return errorHandle(\n position.includes(value),\n `${paths.join('.')} only accept ${position.toString()} as parameters`,\n )\n },\n },\n ],\n quality: [\n {\n default: `?${b}`,\n html: s,\n url: s,\n },\n ],\n highlight: [\n {\n time: n,\n text: s,\n },\n ],\n thumbnails: {\n url: s,\n number: n,\n column: n,\n width: n,\n height: n,\n scale: n,\n },\n subtitle: {\n url: s,\n name: s,\n type: s,\n style: o,\n escape: b,\n encoding: s,\n onVttLoad: f,\n },\n moreVideoAttr: o,\n i18n: o,\n icons: o,\n cssVar: o,\n customType: o,\n}\n","import { inverseClass, query, queryAll } from '../utils'\n\nexport default function aspectRatio(option) {\n return (art) => {\n const {\n i18n,\n constructor: { ASPECT_RATIO },\n } = art\n\n const html = ASPECT_RATIO.map(\n item => `${item === 'default' ? i18n.get('Default') : item}`,\n ).join('')\n\n return {\n ...option,\n html: `${i18n.get('Aspect Ratio')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset\n if (value) {\n art.aspectRatio = value\n contextmenu.show = false\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"default\"]', $panel)\n if ($default) {\n inverseClass($default, 'art-current')\n }\n art.on('aspectRatio', (value) => {\n const $current = queryAll('span', $panel).find(item => item.dataset.value === value)\n if ($current) {\n inverseClass($current, 'art-current')\n }\n })\n },\n }\n }\n}\n","export default function close(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Close'),\n click: (contextmenu) => {\n contextmenu.show = false\n },\n })\n}\n","import { capitalize, inverseClass, query, queryAll } from '../utils'\n\nexport default function flip(option) {\n return (art) => {\n const {\n i18n,\n constructor: { FLIP },\n } = art\n\n const html = FLIP.map(item => `${i18n.get(capitalize(item))}`).join('')\n\n return {\n ...option,\n html: `${i18n.get('Video Flip')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset\n if (value) {\n art.flip = value.toLowerCase()\n contextmenu.show = false\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"normal\"]', $panel)\n if ($default) {\n inverseClass($default, 'art-current')\n }\n art.on('flip', (value) => {\n const $current = queryAll('span', $panel).find(item => item.dataset.value === value)\n if ($current) {\n inverseClass($current, 'art-current')\n }\n })\n },\n }\n }\n}\n","export default function info(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Video Info'),\n click: (contextmenu) => {\n art.info.show = true\n contextmenu.show = false\n },\n })\n}\n","import { inverseClass, query, queryAll } from '../utils'\n\nexport default function playbackRate(option) {\n return (art) => {\n const {\n i18n,\n constructor: { PLAYBACK_RATE },\n } = art\n\n const html = PLAYBACK_RATE.map(\n item => `${item === 1 ? i18n.get('Normal') : item.toFixed(1)}`,\n ).join('')\n\n return {\n ...option,\n html: `${i18n.get('Play Speed')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset\n if (value) {\n art.playbackRate = Number(value)\n contextmenu.show = false\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"1\"]', $panel)\n if ($default)\n inverseClass($default, 'art-current')\n art.on('video:ratechange', () => {\n const $current = queryAll('span', $panel).find(\n item => Number(item.dataset.value) === art.playbackRate,\n )\n if ($current) {\n inverseClass($current, 'art-current')\n }\n })\n },\n }\n }\n}\n","import { version } from '../../package.json'\n\nexport default function (option) {\n return {\n ...option,\n html: `ArtPlayer ${version}`,\n }\n}\n","import {\n addClass,\n append,\n createElement,\n def,\n errorHandle,\n getComposedPath,\n includeFromEvent,\n inverseClass,\n isMobile,\n removeClass,\n sleep,\n} from '../utils'\nimport Component from '../utils/component'\nimport airplay from './airplay'\nimport fullscreen from './fullscreen'\nimport fullscreenWeb from './fullscreenWeb'\nimport pip from './pip'\nimport playAndPause from './playAndPause'\nimport progress from './progress'\nimport screenshot from './screenshot'\nimport setting from './setting'\nimport time from './time'\nimport volume from './volume'\n\nexport default class Control extends Component {\n constructor(art) {\n super(art)\n\n this.isHover = false\n this.name = 'control'\n this.timer = Date.now()\n\n const { constructor } = art\n const { $player, $bottom } = this.art.template\n\n art.on('mousemove', () => {\n if (!isMobile) {\n this.show = true\n }\n })\n\n art.on('click', () => {\n if (isMobile) {\n this.toggle()\n }\n else {\n this.show = true\n }\n })\n\n art.on('document:mousemove', (event) => {\n this.isHover = includeFromEvent(event, $bottom)\n })\n\n art.on('video:timeupdate', () => {\n if (\n !art.setting.show\n && !this.isHover\n && !art.isInput\n && art.playing\n && this.show\n && Date.now() - this.timer >= constructor.CONTROL_HIDE_TIME\n ) {\n this.show = false\n }\n })\n\n art.on('control', (state) => {\n if (state) {\n removeClass($player, 'art-hide-cursor')\n addClass($player, 'art-hover')\n this.timer = Date.now()\n }\n else {\n addClass($player, 'art-hide-cursor')\n removeClass($player, 'art-hover')\n }\n })\n\n this.init()\n }\n\n init() {\n const { option } = this.art\n\n if (!option.isLive) {\n this.add(\n progress({\n name: 'progress',\n position: 'top',\n index: 10,\n }),\n )\n }\n\n this.add({\n name: 'thumbnails',\n position: 'top',\n index: 20,\n })\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n position: 'left',\n index: 10,\n }),\n )\n\n this.add(\n volume({\n name: 'volume',\n position: 'left',\n index: 20,\n }),\n )\n\n if (!option.isLive) {\n this.add(\n time({\n name: 'time',\n position: 'left',\n index: 30,\n }),\n )\n }\n\n if (option.quality.length) {\n sleep().then(() => {\n this.art.quality = option.quality\n })\n }\n\n if (option.screenshot && !isMobile) {\n this.add(\n screenshot({\n name: 'screenshot',\n position: 'right',\n index: 20,\n }),\n )\n }\n\n if (option.setting) {\n this.add(\n setting({\n name: 'setting',\n position: 'right',\n index: 30,\n }),\n )\n }\n\n if (option.pip) {\n this.add(\n pip({\n name: 'pip',\n position: 'right',\n index: 40,\n }),\n )\n }\n\n if (option.airplay && window.WebKitPlaybackTargetAvailabilityEvent) {\n this.add(\n airplay({\n name: 'airplay',\n position: 'right',\n index: 50,\n }),\n )\n }\n\n if (option.fullscreenWeb) {\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n position: 'right',\n index: 60,\n }),\n )\n }\n\n if (option.fullscreen) {\n this.add(\n fullscreen({\n name: 'fullscreen',\n position: 'right',\n index: 70,\n }),\n )\n }\n\n for (let index = 0; index < option.controls.length; index++) {\n this.add(option.controls[index])\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption\n const { $progress, $controlsLeft, $controlsRight } = this.art.template\n\n switch (option.position) {\n case 'top':\n this.$parent = $progress\n break\n case 'left':\n this.$parent = $controlsLeft\n break\n case 'right':\n this.$parent = $controlsRight\n break\n default:\n errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`)\n break\n }\n\n super.add(option)\n }\n\n check(target) {\n target.$control_value.innerHTML = target.html\n for (let index = 0; index < target.$control_option.length; index++) {\n const item = target.$control_option[index]\n item.default = item === target\n if (item.default) {\n inverseClass(item.$control_item, 'art-current')\n }\n }\n }\n\n selector(option, $ref, events) {\n const { proxy } = this.art.events\n\n addClass($ref, 'art-control-selector')\n const $value = createElement('div')\n addClass($value, 'art-selector-value')\n append($value, option.html)\n $ref.textContent = ''\n append($ref, $value)\n\n const $list = createElement('div')\n addClass($list, 'art-selector-list')\n append($ref, $list)\n\n for (let index = 0; index < option.selector.length; index++) {\n const item = option.selector[index]\n const $item = createElement('div')\n addClass($item, 'art-selector-item')\n if (item.default)\n addClass($item, 'art-current')\n $item.dataset.index = index\n $item.dataset.value = item.value\n $item.innerHTML = item.html\n append($list, $item)\n\n def(item, '$control_option', {\n get: () => option.selector,\n })\n\n def(item, '$control_item', {\n get: () => $item,\n })\n\n def(item, '$control_value', {\n get: () => $value,\n })\n }\n\n const event = proxy($list, 'click', async (event) => {\n const path = getComposedPath(event)\n const item = option.selector.find(\n item => item.$control_item === path.find($item => item.$control_item === $item),\n )\n this.check(item)\n if (option.onSelect) {\n $value.innerHTML = await option.onSelect.call(this.art, item, item.$control_item, event)\n }\n })\n\n events.push(event)\n }\n}\n","import { append } from '../utils'\n\nexport default function airplay(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('AirPlay'),\n mounted: ($control) => {\n const { proxy, icons } = art\n append($control, icons.airplay)\n proxy($control, 'click', () => art.airplay())\n },\n })\n}\n","import { append, setStyle, tooltip } from '../utils'\n\nexport default function fullscreen(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art\n\n const $fullscreenOn = append($control, icons.fullscreenOn)\n const $fullscreenOff = append($control, icons.fullscreenOff)\n setStyle($fullscreenOff, 'display', 'none')\n\n proxy($control, 'click', () => {\n art.fullscreen = !art.fullscreen\n })\n\n art.on('fullscreen', (state) => {\n if (state) {\n tooltip($control, i18n.get('Exit Fullscreen'))\n setStyle($fullscreenOn, 'display', 'none')\n setStyle($fullscreenOff, 'display', 'inline-flex')\n }\n else {\n tooltip($control, i18n.get('Fullscreen'))\n setStyle($fullscreenOn, 'display', 'inline-flex')\n setStyle($fullscreenOff, 'display', 'none')\n }\n })\n },\n })\n}\n","import { append, setStyle, tooltip } from '../utils'\n\nexport default function fullscreenWeb(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Web Fullscreen'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art\n\n const $fullscreenWebOn = append($control, icons.fullscreenWebOn)\n const $fullscreenWebOff = append($control, icons.fullscreenWebOff)\n setStyle($fullscreenWebOff, 'display', 'none')\n\n proxy($control, 'click', () => {\n art.fullscreenWeb = !art.fullscreenWeb\n })\n\n art.on('fullscreenWeb', (value) => {\n if (value) {\n tooltip($control, i18n.get('Exit Web Fullscreen'))\n setStyle($fullscreenWebOn, 'display', 'none')\n setStyle($fullscreenWebOff, 'display', 'inline-flex')\n }\n else {\n tooltip($control, i18n.get('Web Fullscreen'))\n setStyle($fullscreenWebOn, 'display', 'inline-flex')\n setStyle($fullscreenWebOff, 'display', 'none')\n }\n })\n },\n })\n}\n","import { append, tooltip } from '../utils'\n\nexport default function pip(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('PIP Mode'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art\n\n append($control, icons.pip)\n\n proxy($control, 'click', () => {\n art.pip = !art.pip\n })\n\n art.on('pip', (value) => {\n tooltip($control, i18n.get(value ? 'Exit PIP Mode' : 'PIP Mode'))\n })\n },\n })\n}\n","import { append, setStyle, tooltip } from '../utils'\n\nexport default function playAndPause(option) {\n return art => ({\n ...option,\n mounted: ($control) => {\n const { proxy, icons, i18n } = art\n\n const $play = append($control, icons.play)\n const $pause = append($control, icons.pause)\n tooltip($play, i18n.get('Play'))\n tooltip($pause, i18n.get('Pause'))\n\n proxy($play, 'click', () => {\n art.play()\n })\n\n proxy($pause, 'click', () => {\n art.pause()\n })\n\n function showPlay() {\n setStyle($play, 'display', 'flex')\n setStyle($pause, 'display', 'none')\n }\n\n function showPause() {\n setStyle($play, 'display', 'none')\n setStyle($pause, 'display', 'flex')\n }\n\n if (art.playing) {\n showPause()\n }\n else {\n showPlay()\n }\n\n art.on('video:playing', () => {\n showPause()\n })\n\n art.on('video:pause', () => {\n showPlay()\n })\n },\n })\n}\n","import { append, clamp, getRect, includeFromEvent, isMobile, query, secondToTime, setStyle } from '../utils'\n\nexport function getPosFromEvent(art, event) {\n const { $progress } = art.template\n const { left } = getRect($progress)\n const eventLeft = isMobile ? event.touches[0].clientX : event.clientX\n const width = clamp(eventLeft - left, 0, $progress.clientWidth)\n const second = (width / $progress.clientWidth) * art.duration\n const time = secondToTime(second)\n const percentage = clamp(width / $progress.clientWidth, 0, 1)\n return { second, time, width, percentage }\n}\n\nexport function setCurrentTime(art, event) {\n if (art.isRotate) {\n const percentage = event.touches[0].clientY / art.height\n const second = percentage * art.duration\n art.emit('setBar', 'played', percentage, event)\n art.seek = second\n }\n else {\n const { second, percentage } = getPosFromEvent(art, event)\n art.emit('setBar', 'played', percentage, event)\n art.seek = second\n }\n}\n\nexport default function progress(options) {\n return (art) => {\n const { icons, option, proxy } = art\n\n return {\n ...options,\n html: `\n
\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: ($control) => {\n let tipTimer = null\n let isDragging = false\n\n const $hover = query('.art-progress-hover', $control)\n const $loaded = query('.art-progress-loaded', $control)\n const $played = query('.art-progress-played', $control)\n const $highlight = query('.art-progress-highlight', $control)\n const $indicator = query('.art-progress-indicator', $control)\n const $tip = query('.art-progress-tip', $control)\n\n if (icons.indicator) {\n append($indicator, icons.indicator)\n }\n else {\n setStyle($indicator, 'backgroundColor', 'var(--art-theme)')\n }\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event)\n const { text } = event.target.dataset\n $tip.textContent = text\n const tipWidth = $tip.clientWidth\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0)\n }\n else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`)\n }\n else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`)\n }\n }\n\n function showTime(event, touch) {\n const { width, time } = touch || getPosFromEvent(art, event)\n $tip.textContent = time\n const tipWidth = $tip.clientWidth\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0)\n }\n else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`)\n }\n else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`)\n }\n }\n\n function updateHighlight() {\n $highlight.textContent = ''\n for (let index = 0; index < option.highlight.length; index++) {\n const item = option.highlight[index]\n const left = (clamp(item.time, 0, art.duration) / art.duration) * 100\n const html = ``\n append($highlight, html)\n }\n }\n\n function setBar(type, percentage, event) {\n const isMobileDragging = type === 'played' && event && isMobile\n\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`)\n }\n\n if (type === 'hover') {\n setStyle($hover, 'width', `${percentage * 100}%`)\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`)\n setStyle($indicator, 'left', `${percentage * 100}%`)\n }\n\n if (isMobileDragging) {\n setStyle($tip, 'display', 'flex')\n const width = $control.clientWidth * percentage\n const time = secondToTime(percentage * art.duration)\n showTime(event, { width, time })\n clearTimeout(tipTimer)\n tipTimer = setTimeout(() => {\n setStyle($tip, 'display', 'none')\n }, 500)\n }\n }\n\n art.on('setBar', setBar)\n art.on('video:loadedmetadata', updateHighlight)\n\n if (art.constructor.USE_RAF) {\n art.on('raf', () => {\n art.emit('setBar', 'played', art.played)\n art.emit('setBar', 'loaded', art.loaded)\n })\n }\n else {\n art.on('video:timeupdate', () => {\n art.emit('setBar', 'played', art.played)\n })\n\n art.on('video:progress', () => {\n art.emit('setBar', 'loaded', art.loaded)\n })\n\n art.on('video:ended', () => {\n art.emit('setBar', 'played', 1)\n })\n }\n\n art.emit('setBar', 'loaded', art.loaded || 0)\n\n if (!isMobile) {\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n setCurrentTime(art, event)\n }\n })\n\n proxy($control, 'mousemove', (event) => {\n const { percentage } = getPosFromEvent(art, event)\n art.emit('setBar', 'hover', percentage, event)\n setStyle($tip, 'display', 'flex')\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event)\n }\n else {\n showTime(event)\n }\n })\n\n proxy($control, 'mouseleave', (event) => {\n setStyle($tip, 'display', 'none')\n art.emit('setBar', 'hover', 0, event)\n })\n\n proxy($control, 'mousedown', (event) => {\n isDragging = event.button === 0\n })\n\n art.on('document:mousemove', (event) => {\n if (isDragging) {\n const { second, percentage } = getPosFromEvent(art, event)\n art.emit('setBar', 'played', percentage, event)\n art.seek = second\n }\n })\n\n art.on('document:mouseup', () => {\n if (isDragging) {\n isDragging = false\n }\n })\n }\n },\n }\n }\n}\n","import { append } from '../utils'\n\nexport default function screenshot(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: ($control) => {\n const { proxy, icons } = art\n\n append($control, icons.screenshot)\n proxy($control, 'click', () => {\n art.screenshot()\n })\n },\n })\n}\n","import { append, tooltip } from '../utils'\n\nexport default function setting(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Show Setting'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art\n\n append($control, icons.setting)\n\n proxy($control, 'click', () => {\n art.setting.toggle()\n art.setting.resize()\n })\n\n art.on('setting', (value) => {\n tooltip($control, i18n.get(value ? 'Hide Setting' : 'Show Setting'))\n })\n },\n })\n}\n","import { isMobile, secondToTime } from '../utils'\n\nexport default function time(option) {\n return art => ({\n ...option,\n style: isMobile\n ? {\n fontSize: '12px',\n padding: '0 5px',\n }\n : {\n cursor: 'auto',\n padding: '0 10px',\n },\n mounted: ($control) => {\n function getTime() {\n const newTime = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`\n if (newTime !== $control.textContent) {\n $control.textContent = newTime\n }\n }\n\n getTime()\n\n const events = ['video:loadedmetadata', 'video:timeupdate', 'video:progress']\n for (let index = 0; index < events.length; index++) {\n art.on(events[index], getTime)\n }\n },\n })\n}\n","import { append, getRect, isMobile, setStyle } from '../utils'\n\nexport default function volume(option) {\n return art => ({\n ...option,\n mounted: ($control) => {\n const { proxy, icons } = art\n\n const $volume = append($control, icons.volume)\n const $close = append($control, icons.volumeClose)\n const $panel = append($control, '
')\n const $inner = append($panel, '
')\n const $value = append($inner, `
`)\n const $slider = append($inner, `
`)\n const $handle = append($slider, `
`)\n const $loaded = append($handle, `
`)\n const $indicator = append($slider, `
`)\n\n function getVolumeFromEvent(event) {\n const { top, height } = getRect($slider)\n return 1 - (event.clientY - top) / height\n }\n\n function update() {\n if (art.muted || art.volume === 0) {\n setStyle($volume, 'display', 'none')\n setStyle($close, 'display', 'flex')\n setStyle($indicator, 'top', '100%')\n setStyle($loaded, 'top', '100%')\n $value.textContent = 0\n }\n else {\n const percentage = art.volume * 100\n setStyle($volume, 'display', 'flex')\n setStyle($close, 'display', 'none')\n setStyle($indicator, 'top', `${100 - percentage}%`)\n setStyle($loaded, 'top', `${100 - percentage}%`)\n $value.textContent = Math.floor(percentage)\n }\n }\n\n update()\n art.on('video:volumechange', update)\n\n proxy($volume, 'click', () => {\n art.muted = true\n })\n\n proxy($close, 'click', () => {\n art.muted = false\n })\n\n if (isMobile) {\n setStyle($panel, 'display', 'none')\n }\n else {\n let isDragging = false\n\n proxy($slider, 'mousedown', (event) => {\n isDragging = event.button === 0\n art.volume = getVolumeFromEvent(event)\n })\n\n art.on('document:mousemove', (event) => {\n if (isDragging) {\n art.muted = false\n art.volume = getVolumeFromEvent(event)\n }\n })\n\n art.on('document:mouseup', () => {\n if (isDragging) {\n isDragging = false\n }\n })\n }\n },\n })\n}\n","import clickInit from './clickInit'\nimport gestureInit from './gestureInit'\nimport globalInit from './globalInit'\nimport hoverInit from './hoverInit'\nimport moveInit from './moveInit'\nimport resizeInit from './resizeInit'\nimport updateInit from './updateInit'\nimport viewInit from './viewInit'\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = []\n this.proxy = this.proxy.bind(this)\n this.hover = this.hover.bind(this)\n\n clickInit(art, this)\n hoverInit(art, this)\n moveInit(art, this)\n resizeInit(art, this)\n gestureInit(art, this)\n viewInit(art, this)\n globalInit(art, this)\n updateInit(art, this)\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map(item => this.proxy(target, item, callback, option))\n }\n\n target.addEventListener(name, callback, option)\n const destroy = () => target.removeEventListener(name, callback, option)\n this.destroyEvents.push(destroy)\n return destroy\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter)\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave)\n }\n }\n\n remove(destroyEvent) {\n const index = this.destroyEvents.indexOf(destroyEvent)\n if (index > -1) {\n destroyEvent()\n this.destroyEvents.splice(index, 1)\n }\n }\n\n destroy() {\n for (let index = 0; index < this.destroyEvents.length; index++) {\n this.destroyEvents[index]()\n }\n }\n}\n","import { includeFromEvent, isMobile } from '../utils'\n\nexport default function clickInit(art, events) {\n const {\n constructor,\n template: { $player, $video },\n } = art\n\n function onDocumentClick(event) {\n if (includeFromEvent(event, $player)) {\n art.isInput = event.target.tagName === 'INPUT'\n art.isFocus = true\n art.emit('focus', event)\n }\n else {\n art.isInput = false\n art.isFocus = false\n art.emit('blur', event)\n }\n }\n\n art.on('document:click', onDocumentClick)\n art.on('document:contextmenu', onDocumentClick)\n\n let clickTimes = []\n events.proxy($video, 'click', (event) => {\n const now = Date.now()\n clickTimes.push(now)\n const { MOBILE_CLICK_PLAY, DBCLICK_TIME, MOBILE_DBCLICK_PLAY, DBCLICK_FULLSCREEN } = constructor\n\n const clicks = clickTimes.filter(t => now - t <= DBCLICK_TIME)\n switch (clicks.length) {\n case 1:\n art.emit('click', event)\n\n if (isMobile) {\n if (!art.isLock && MOBILE_CLICK_PLAY) {\n art.toggle()\n }\n }\n else {\n art.toggle()\n }\n clickTimes = clicks\n break\n case 2:\n art.emit('dblclick', event)\n\n if (isMobile) {\n if (!art.isLock && MOBILE_DBCLICK_PLAY) {\n art.toggle()\n }\n }\n else {\n if (DBCLICK_FULLSCREEN) {\n art.fullscreen = !art.fullscreen\n }\n }\n clickTimes = []\n break\n default:\n clickTimes = []\n }\n })\n}\n","import { setCurrentTime } from '../control/progress'\nimport { clamp, isMobile, secondToTime } from '../utils'\n\nfunction GetSlideAngle(dx, dy) {\n return (Math.atan2(dy, dx) * 180) / Math.PI\n}\n\nfunction GetSlideDirection(startX, startY, endX, endY) {\n const dy = startY - endY\n const dx = endX - startX\n let result = 0\n\n if (Math.abs(dx) < 2 && Math.abs(dy) < 2) {\n return result\n }\n\n const angle = GetSlideAngle(dx, dy)\n if (angle >= -45 && angle < 45) {\n result = 4\n }\n else if (angle >= 45 && angle < 135) {\n result = 1\n }\n else if (angle >= -135 && angle < -45) {\n result = 2\n }\n else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {\n result = 3\n }\n\n return result\n}\n\nexport default function gestureInit(art, events) {\n if (isMobile && !art.option.isLive) {\n const { $video, $progress } = art.template\n\n let touchTarget = null\n let isDragging = false\n let startX = 0\n let startY = 0\n let startTime = 0\n\n const onTouchStart = (event) => {\n if (event.touches.length === 1 && !art.isLock) {\n if (touchTarget === $progress) {\n setCurrentTime(art, event)\n }\n\n isDragging = true\n const { pageX, pageY } = event.touches[0]\n startX = pageX\n startY = pageY\n startTime = art.currentTime\n }\n }\n\n const onTouchMove = (event) => {\n if (event.touches.length === 1 && isDragging && art.duration) {\n const { pageX, pageY } = event.touches[0]\n const direction = GetSlideDirection(startX, startY, pageX, pageY)\n const isHorizontal = [3, 4].includes(direction)\n const isVertical = [1, 2].includes(direction)\n const isLegal = (isHorizontal && !art.isRotate) || (isVertical && art.isRotate)\n if (isLegal) {\n const ratioX = clamp((pageX - startX) / art.width, -1, 1)\n const ratioY = clamp((pageY - startY) / art.height, -1, 1)\n const ratio = art.isRotate ? ratioY : ratioX\n const TOUCH_MOVE_RATIO = touchTarget === $video ? art.constructor.TOUCH_MOVE_RATIO : 1\n const currentTime = clamp(startTime + art.duration * ratio * TOUCH_MOVE_RATIO, 0, art.duration)\n art.seek = currentTime\n art.emit('setBar', 'played', clamp(currentTime / art.duration, 0, 1), event)\n art.notice.show = `${secondToTime(currentTime)} / ${secondToTime(art.duration)}`\n }\n }\n }\n\n const onTouchEnd = () => {\n if (isDragging) {\n startX = 0\n startY = 0\n startTime = 0\n isDragging = false\n touchTarget = null\n }\n }\n\n if (art.option.gesture) {\n events.proxy($video, 'touchstart', (event) => {\n touchTarget = $video\n onTouchStart(event)\n })\n events.proxy($video, 'touchmove', onTouchMove)\n }\n\n events.proxy($progress, 'touchstart', (event) => {\n touchTarget = $progress\n onTouchStart(event)\n })\n\n events.proxy($progress, 'touchmove', onTouchMove)\n art.on('document:touchend', onTouchEnd)\n }\n}\n","export default function globalInit(art, events) {\n const documentEvents = [\n 'click',\n 'mouseup',\n 'keydown',\n 'touchend',\n 'touchmove',\n 'mousemove',\n 'pointerup',\n 'contextmenu',\n 'pointermove',\n 'visibilitychange',\n 'webkitfullscreenchange',\n ]\n\n const windowEvents = [\n 'resize',\n 'scroll',\n 'orientationchange',\n ]\n\n const destroyEvents = []\n\n function bindGlobalEvents(source = {}) {\n for (let index = 0; index < destroyEvents.length; index++) {\n events.remove(destroyEvents[index])\n }\n\n destroyEvents.length = 0\n\n const { $player } = art.template\n\n documentEvents.forEach((name) => {\n const doc = source.document || $player.ownerDocument || document\n const destroy = events.proxy(doc, name, (event) => {\n art.emit(`document:${name}`, event)\n })\n destroyEvents.push(destroy)\n })\n\n windowEvents.forEach((name) => {\n const win = source.window || $player.ownerDocument?.defaultView || window\n const destroy = events.proxy(win, name, (event) => {\n art.emit(`window:${name}`, event)\n })\n destroyEvents.push(destroy)\n })\n }\n\n bindGlobalEvents()\n events.bindGlobalEvents = bindGlobalEvents\n}\n","import { addClass, removeClass } from '../utils'\n\nexport default function hoverInit(art, events) {\n const { $player } = art.template\n\n events.hover(\n $player,\n (event) => {\n addClass($player, 'art-hover')\n art.emit('hover', true, event)\n },\n (event) => {\n removeClass($player, 'art-hover')\n art.emit('hover', false, event)\n },\n )\n}\n","export default function moveInit(art, events) {\n const { $player } = art.template\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event)\n })\n}\n","import { debounce } from '../utils'\n\nexport default function resizeInit(art, events) {\n const { option, constructor } = art\n\n art.on('resize', () => {\n const { aspectRatio, notice } = art\n if (art.state === 'standard' && option.autoSize) {\n art.autoSize()\n }\n art.aspectRatio = aspectRatio\n notice.show = ''\n })\n\n const resizeFn = debounce(() => art.emit('resize'), constructor.RESIZE_TIME)\n\n art.on('window:orientationchange', () => resizeFn())\n art.on('window:resize', () => resizeFn())\n\n if (screen && screen.orientation && screen.orientation.onchange) {\n events.proxy(screen.orientation, 'change', () => resizeFn())\n }\n}\n","export default function updateInit(art) {\n if (art.constructor.USE_RAF) {\n let timer = null;\n\n (function update() {\n if (art.playing) {\n art.emit('raf')\n }\n\n if (!art.isDestroy) {\n timer = requestAnimationFrame(update)\n }\n })()\n\n art.on('destroy', () => {\n cancelAnimationFrame(timer)\n })\n }\n}\n","import { isInViewport, throttle } from '../utils'\n\nexport default function viewInit(art) {\n const {\n option,\n constructor,\n template: { $container },\n } = art\n\n const scrollFn = throttle(() => {\n art.emit('view', isInViewport($container, constructor.SCROLL_GAP))\n }, constructor.SCROLL_TIME)\n\n art.on('window:scroll', () => scrollFn())\n\n art.on('view', (state) => {\n if (option.autoMini) {\n art.mini = !state\n }\n })\n}\n","import { isMobile } from './utils'\n\nexport default class Hotkey {\n constructor(art) {\n this.art = art\n this.keys = {}\n\n if (art.option.hotkey && !isMobile) {\n this.init()\n }\n }\n\n init() {\n const { constructor } = this.art\n\n this.add('Escape', () => {\n if (this.art.fullscreenWeb) {\n this.art.fullscreenWeb = false\n }\n })\n\n this.add('Space', () => {\n this.art.toggle()\n })\n\n this.add('ArrowLeft', () => {\n this.art.backward = constructor.SEEK_STEP\n })\n\n this.add('ArrowUp', () => {\n this.art.volume += constructor.VOLUME_STEP\n })\n\n this.add('ArrowRight', () => {\n this.art.forward = constructor.SEEK_STEP\n })\n\n this.add('ArrowDown', () => {\n this.art.volume -= constructor.VOLUME_STEP\n })\n\n this.art.on('document:keydown', (event) => {\n if (this.art.isFocus) {\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 && !event.altKey\n && !event.ctrlKey\n && !event.metaKey\n && !event.shiftKey\n ) {\n const events = this.keys[event.code]\n if (events) {\n event.preventDefault()\n for (let index = 0; index < events.length; index++) {\n events[index].call(this.art, event)\n }\n this.art.emit('hotkey', event)\n }\n }\n }\n this.art.emit('keydown', event)\n })\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event)\n }\n else {\n this.keys[key] = [event]\n }\n return this\n }\n\n remove(key, event) {\n if (this.keys[key]) {\n const index = this.keys[key].indexOf(event)\n if (index !== -1) {\n this.keys[key].splice(index, 1)\n }\n }\n return this\n }\n}\n","import { mergeDeep } from '../utils'\nimport zhCn from './zh-cn'\n\nexport default class I18n {\n constructor(art) {\n this.art = art\n\n this.languages = {\n 'zh-cn': zhCn,\n }\n\n this.language = {}\n\n this.update(art.option.i18n)\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase()\n this.language = this.languages[lang] || {}\n }\n\n get(key) {\n return this.language[key] || key\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value)\n this.init()\n }\n}\n","const zhCn = {\n 'Video Info': '统计信息',\n 'Close': '关闭',\n 'Video Load Failed': '加载失败',\n 'Volume': '音量',\n 'Play': '播放',\n 'Pause': '暂停',\n 'Rate': '速度',\n 'Mute': '静音',\n 'Video Flip': '画面翻转',\n 'Horizontal': '水平',\n 'Vertical': '垂直',\n 'Reconnect': '重新连接',\n 'Show Setting': '显示设置',\n 'Hide Setting': '隐藏设置',\n 'Screenshot': '截图',\n 'Play Speed': '播放速度',\n 'Aspect Ratio': '画面比例',\n 'Default': '默认',\n 'Normal': '正常',\n 'Open': '打开',\n 'Switch Video': '切换',\n 'Switch Subtitle': '切换字幕',\n 'Fullscreen': '全屏',\n 'Exit Fullscreen': '退出全屏',\n 'Web Fullscreen': '网页全屏',\n 'Exit Web Fullscreen': '退出网页全屏',\n 'Mini Player': '迷你播放器',\n 'PIP Mode': '开启画中画',\n 'Exit PIP Mode': '退出画中画',\n 'PIP Not Supported': '不支持画中画',\n 'Fullscreen Not Supported': '不支持全屏',\n 'Subtitle Offset': '字幕偏移',\n 'Last Seen': '上次看到',\n 'Jump Play': '跳转播放',\n 'AirPlay': '隔空播放',\n 'AirPlay Not Available': '隔空播放不可用',\n}\n\nexport default zhCn\n\nif (typeof window !== 'undefined') {\n window['artplayer-i18n-zh-cn'] = zhCn\n}\n","import airplay from 'bundle-text:./airplay.svg'\nimport arrowLeft from 'bundle-text:./arrow-left.svg'\nimport arrowRight from 'bundle-text:./arrow-right.svg'\nimport aspectRatio from 'bundle-text:./aspect-ratio.svg'\nimport check from 'bundle-text:./check.svg'\nimport close from 'bundle-text:./close.svg'\nimport config from 'bundle-text:./config.svg'\nimport error from 'bundle-text:./error.svg'\nimport flip from 'bundle-text:./flip.svg'\nimport fullscreenOff from 'bundle-text:./fullscreen-off.svg'\nimport fullscreenOn from 'bundle-text:./fullscreen-on.svg'\nimport fullscreenWebOff from 'bundle-text:./fullscreen-web-off.svg'\nimport fullscreenWebOn from 'bundle-text:./fullscreen-web-on.svg'\nimport loading from 'bundle-text:./loading.svg'\nimport lock from 'bundle-text:./lock.svg'\nimport pause from 'bundle-text:./pause.svg'\nimport pip from 'bundle-text:./pip.svg'\nimport play from 'bundle-text:./play.svg'\nimport playbackRate from 'bundle-text:./playback-rate.svg'\nimport screenshot from 'bundle-text:./screenshot.svg'\nimport setting from 'bundle-text:./setting.svg'\nimport state from 'bundle-text:./state.svg'\nimport switchOff from 'bundle-text:./switch-off.svg'\nimport switchOn from 'bundle-text:./switch-on.svg'\nimport unlock from 'bundle-text:./unlock.svg'\nimport volumeClose from 'bundle-text:./volume-close.svg'\nimport volume from 'bundle-text:./volume.svg'\nimport { def, getIcon } from '../utils'\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n check,\n volume,\n volumeClose,\n screenshot,\n setting,\n pip,\n arrowLeft,\n arrowRight,\n playbackRate,\n aspectRatio,\n config,\n lock,\n flip,\n unlock,\n fullscreenOff,\n fullscreenOn,\n fullscreenWebOff,\n fullscreenWebOn,\n switchOn,\n switchOff,\n error,\n close,\n airplay,\n ...art.option.icons,\n }\n\n for (const key in icons) {\n def(this, key, {\n get: () => getIcon(key, icons[key]),\n })\n }\n }\n}\n","module.exports = \"9e11ac5830b69238\";","module.exports = \"ea3f9694841ef258\";","module.exports = \"b67cac358913d514\";","module.exports = \"65c783bf793215eb\";","module.exports = \"6e9bb7fa28118e05\";","module.exports = \"ece62effeeaea8b9\";","module.exports = \"3fa24efddec6bcbd\";","module.exports = \"d3353905d0ec07f0\";","module.exports = \"9b95a2cd859b7b0b\";","module.exports = \"a76d6978226feea3\";","module.exports = \"fe487e5ddec5d380\";","module.exports = \"3f492d6cd9c76858\";","module.exports = \"46c741c838cae528\";","module.exports = \"75a057509707bc87\";","module.exports = \"358c932d8356421e\";","module.exports = \"b491c01323e26afb\";","module.exports = \"0d8559370ca5b4ef\";","module.exports = \"4838679ac81bbe80\";","module.exports = \"46895f0cf70aca10\";","module.exports = \"e4ecf862ed860d42\";","module.exports = \"a391299de3225f80\";","module.exports = \"820f454e33d34914\";","module.exports = \"03b02c181a6fb9ce\";","module.exports = \"ca0154888ac784ab\";","module.exports = \"7cf671d989be8873\";","module.exports = \"1499cf92f6f33dd9\";","module.exports = \"95ec2167c54ce911\";","import { isMobile, queryAll } from './utils'\nimport Component from './utils/component'\n\nexport default class Info extends Component {\n constructor(art) {\n super(art)\n this.name = 'info'\n\n if (!isMobile) {\n this.init()\n }\n }\n\n init() {\n const {\n proxy,\n constructor,\n template: { $infoPanel, $infoClose, $video },\n } = this.art\n\n proxy($infoClose, 'click', () => {\n this.show = false\n })\n\n let timer = null\n const $types = queryAll('[data-video]', $infoPanel) || []\n this.art.on('destroy', () => clearTimeout(timer))\n\n function loop() {\n for (let index = 0; index < $types.length; index++) {\n const item = $types[index]\n const value = $video[item.dataset.video]\n const textContent = typeof value === 'number' ? value.toFixed(2) : value\n if (item.textContent !== textContent) {\n item.textContent = textContent\n }\n }\n timer = setTimeout(loop, constructor.INFO_LOOP_TIME)\n }\n\n loop()\n }\n}\n","import Component from './utils/component'\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art)\n\n const {\n option,\n template: { $layer },\n } = art\n\n this.name = 'layer'\n this.$parent = $layer\n\n for (let index = 0; index < option.layers.length; index++) {\n this.add(option.layers[index])\n }\n }\n}\n","import { append } from './utils'\nimport Component from './utils/component'\n\nexport default class Loading extends Component {\n constructor(art) {\n super(art)\n this.name = 'loading'\n append(art.template.$loading, art.icons.loading)\n }\n}\n","import { append, setStyle } from './utils'\nimport Component from './utils/component'\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art)\n\n this.name = 'mask'\n const { template, icons, events } = art\n\n const $state = append(template.$state, icons.state)\n const $error = append(template.$state, icons.error)\n\n setStyle($error, 'display', 'none')\n\n art.on('destroy', () => {\n setStyle($state, 'display', 'none')\n setStyle($error, 'display', null)\n })\n\n events.proxy(template.$state, 'click', () => art.play())\n }\n}\n","import { addClass, removeClass } from './utils'\n\nexport default class Notice {\n constructor(art) {\n this.art = art\n this.timer = null\n }\n\n set show(msg) {\n const {\n constructor,\n template: { $player, $noticeInner },\n } = this.art\n\n if (msg) {\n $noticeInner.textContent = msg instanceof Error ? msg.message.trim() : msg\n addClass($player, 'art-notice-show')\n clearTimeout(this.timer)\n this.timer = setTimeout(() => {\n $noticeInner.textContent = ''\n removeClass($player, 'art-notice-show')\n }, constructor.NOTICE_TIME)\n }\n else {\n removeClass($player, 'art-notice-show')\n }\n }\n\n get show() {\n const {\n template: { $player },\n } = this.art\n return $player.classList.contains('art-notice-show')\n }\n}\n","import airplayMix from './airplayMix'\nimport aspectRatioMix from './aspectRatioMix'\nimport attrMix from './attrMix'\nimport autoHeightMix from './autoHeightMix'\nimport autoSizeMix from './autoSizeMix'\nimport cssVarMix from './cssVarMix'\nimport currentTimeMix from './currentTimeMix'\nimport durationMix from './durationMix'\nimport eventInit from './eventInit'\nimport flipMix from './flipMix'\nimport fullscreenMix from './fullscreenMix'\nimport fullscreenWebMix from './fullscreenWebMix'\nimport loadedMix from './loadedMix'\nimport miniMix from './miniMix'\nimport optionInit from './optionInit'\nimport pauseMix from './pauseMix'\nimport pipMix from './pipMix'\nimport playbackRateMix from './playbackRateMix'\nimport playedMix from './playedMix'\nimport playingMix from './playingMix'\nimport playMix from './playMix'\nimport posterMix from './posterMix'\nimport qualityMix from './qualityMix'\nimport rectMix from './rectMix'\nimport screenshotMix from './screenshotMix'\nimport seekMix from './seekMix'\nimport stateMix from './stateMix'\nimport subtitleOffsetMix from './subtitleOffsetMix'\nimport switchMix from './switchMix'\nimport themeMix from './themeMix'\nimport thumbnailsMix from './thumbnailsMix'\nimport toggleMix from './toggleMix'\nimport typeMix from './typeMix'\nimport urlMix from './urlMix'\nimport volumeMix from './volumeMix'\n\nexport default class Player {\n constructor(art) {\n urlMix(art)\n attrMix(art)\n playMix(art)\n pauseMix(art)\n toggleMix(art)\n seekMix(art)\n volumeMix(art)\n currentTimeMix(art)\n durationMix(art)\n switchMix(art)\n playbackRateMix(art)\n aspectRatioMix(art)\n screenshotMix(art)\n fullscreenMix(art)\n fullscreenWebMix(art)\n pipMix(art)\n loadedMix(art)\n playedMix(art)\n playingMix(art)\n autoSizeMix(art)\n rectMix(art)\n flipMix(art)\n miniMix(art)\n posterMix(art)\n autoHeightMix(art)\n cssVarMix(art)\n themeMix(art)\n typeMix(art)\n stateMix(art)\n subtitleOffsetMix(art)\n airplayMix(art)\n qualityMix(art)\n thumbnailsMix(art)\n eventInit(art)\n optionInit(art)\n }\n}\n","import { def } from '../utils'\n\nexport default function airplayMix(art) {\n const {\n i18n,\n notice,\n proxy,\n template: { $video },\n } = art\n\n let available = true\n\n if (window.WebKitPlaybackTargetAvailabilityEvent && $video.webkitShowPlaybackTargetPicker) {\n proxy($video, 'webkitplaybacktargetavailabilitychanged', (event) => {\n switch (event.availability) {\n case 'available':\n available = true\n break\n case 'not-available':\n available = false\n break\n }\n })\n }\n else {\n available = false\n }\n\n def(art, 'airplay', {\n value() {\n if (available) {\n $video.webkitShowPlaybackTargetPicker()\n art.emit('airplay')\n }\n else {\n notice.show = i18n.get('AirPlay Not Available')\n }\n },\n })\n}\n","import { def, setStyle } from '../utils'\n\nexport default function aspectRatioMix(art) {\n const {\n i18n,\n notice,\n template: { $video, $player },\n } = art\n\n def(art, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || 'default'\n },\n set(ratio) {\n if (!ratio)\n ratio = 'default'\n if (ratio === 'default') {\n setStyle($video, 'width', null)\n setStyle($video, 'height', null)\n setStyle($video, 'margin', null)\n delete $player.dataset.aspectRatio\n }\n else {\n const ratioArray = ratio.split(':').map(Number)\n const { clientWidth, clientHeight } = $player\n const playerRatio = clientWidth / clientHeight\n const setupRatio = ratioArray[0] / ratioArray[1]\n\n if (playerRatio > setupRatio) {\n setStyle($video, 'width', `${setupRatio * clientHeight}px`)\n setStyle($video, 'height', '100%')\n setStyle($video, 'margin', '0 auto')\n }\n else {\n setStyle($video, 'width', '100%')\n setStyle($video, 'height', `${clientWidth / setupRatio}px`)\n setStyle($video, 'margin', 'auto 0')\n }\n\n $player.dataset.aspectRatio = ratio\n }\n\n notice.show = `${i18n.get('Aspect Ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`\n art.emit('aspectRatio', ratio)\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function attrMix(art) {\n const {\n template: { $video },\n } = art\n\n def(art, 'attr', {\n value(key, value) {\n if (value === undefined)\n return $video[key]\n $video[key] = value\n },\n })\n}\n","import { def, setStyle } from '../utils'\n\nexport default function autoHeightMix(art) {\n const {\n template: { $container, $video },\n } = art\n\n def(art, 'autoHeight', {\n value() {\n const { clientWidth } = $container\n const { videoHeight, videoWidth } = $video\n const height = videoHeight * (clientWidth / videoWidth)\n setStyle($container, 'height', `${height}px`)\n art.emit('autoHeight', height)\n },\n })\n}\n","import { def, getRect, setStyle } from '../utils'\n\nexport default function autoSizeMix(art) {\n const { $container, $player, $video } = art.template\n\n def(art, 'autoSize', {\n value() {\n const { videoWidth, videoHeight } = $video\n const { width, height } = getRect($container)\n const videoRatio = videoWidth / videoHeight\n const containerRatio = width / height\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100\n setStyle($player, 'width', `${percentage}%`)\n setStyle($player, 'height', '100%')\n }\n else {\n const percentage = (width / videoRatio / height) * 100\n setStyle($player, 'width', '100%')\n setStyle($player, 'height', `${percentage}%`)\n }\n art.emit('autoSize', {\n width: art.width,\n height: art.height,\n })\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function cssVarMix(art) {\n const { $player } = art.template\n\n def(art, 'cssVar', {\n value(key, value) {\n if (value) {\n return $player.style.setProperty(key, value)\n }\n else {\n return getComputedStyle($player).getPropertyValue(key)\n }\n },\n })\n}\n","import { clamp, def } from '../utils'\n\nexport default function currentTimeMix(art) {\n const { $video } = art.template\n\n def(art, 'currentTime', {\n get: () => $video.currentTime || 0,\n set: (time) => {\n time = Number.parseFloat(time)\n if (Number.isNaN(time))\n return\n $video.currentTime = clamp(time, 0, art.duration)\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function durationMix(art) {\n def(art, 'duration', {\n get: () => {\n const { duration } = art.template.$video\n if (duration === Infinity)\n return 0\n return duration || 0\n },\n })\n}\n","import config from '../config'\nimport { addClass, isMobile, setStyle, sleep } from '../utils'\n\nexport default function eventInit(art) {\n const {\n i18n,\n notice,\n option,\n constructor,\n proxy,\n template: { $player, $video, $poster },\n } = art\n\n let reconnectTime = 0\n\n for (let index = 0; index < config.events.length; index++) {\n proxy($video, config.events[index], (event) => {\n art.emit(`video:${event.type}`, event)\n })\n }\n\n // art.on('video:abort', () => {\n\n // });\n\n art.on('video:canplay', () => {\n reconnectTime = 0\n art.loading.show = false\n })\n\n art.once('video:canplay', () => {\n art.loading.show = false\n art.controls.show = true\n art.mask.show = true\n art.isReady = true\n art.emit('ready')\n })\n\n // art.on('video:canplaythrough', () => {\n\n // });\n\n // art.on('video:durationchange', () => {\n\n // });\n\n // art.on('video:emptied', () => {\n\n // });\n\n art.on('video:ended', () => {\n if (option.loop) {\n art.seek = 0\n art.play()\n art.controls.show = false\n art.mask.show = false\n }\n else {\n art.controls.show = true\n art.mask.show = true\n }\n })\n\n art.on('video:error', async (error) => {\n if (reconnectTime < constructor.RECONNECT_TIME_MAX) {\n await sleep(constructor.RECONNECT_SLEEP_TIME)\n reconnectTime += 1\n art.url = option.url\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`\n art.emit('error', error, reconnectTime)\n }\n else {\n art.mask.show = true\n art.loading.show = false\n art.controls.show = true\n addClass($player, 'art-error')\n await sleep(constructor.RECONNECT_SLEEP_TIME)\n notice.show = i18n.get('Video Load Failed')\n }\n })\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.on('video:loadedmetadata', () => {\n art.emit('resize')\n if (isMobile) {\n art.loading.show = false\n art.controls.show = true\n art.mask.show = true\n }\n })\n\n art.on('video:loadstart', () => {\n art.loading.show = true\n art.mask.show = false\n art.controls.show = true\n })\n\n art.on('video:pause', () => {\n art.controls.show = true\n art.mask.show = true\n })\n\n art.on('video:play', () => {\n art.mask.show = false\n setStyle($poster, 'display', 'none')\n })\n\n art.on('video:playing', () => {\n art.mask.show = false\n })\n\n art.on('video:progress', () => {\n if (art.playing) {\n art.loading.show = false\n }\n })\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false\n art.mask.show = true\n })\n\n art.on('video:seeking', () => {\n art.loading.show = true\n art.mask.show = false\n })\n\n // art.on('video:stalled', () => {\n\n // });\n\n // art.on('video:suspend', () => {\n\n // });\n\n art.on('video:timeupdate', () => {\n art.mask.show = false\n })\n\n // art.on('video:volumechange', () => {\n\n // });\n\n art.on('video:waiting', () => {\n art.loading.show = true\n art.mask.show = false\n })\n}\n","import { capitalize, def } from '../utils'\n\nexport default function flipMix(art) {\n const {\n template: { $player },\n i18n,\n notice,\n } = art\n\n def(art, 'flip', {\n get() {\n return $player.dataset.flip || 'normal'\n },\n set(flip) {\n if (!flip)\n flip = 'normal'\n if (flip === 'normal') {\n delete $player.dataset.flip\n }\n else {\n $player.dataset.flip = flip\n }\n\n notice.show = `${i18n.get('Video Flip')}: ${i18n.get(capitalize(flip))}`\n art.emit('flip', flip)\n },\n })\n}\n","import screenfull from '../libs/screenfull'\nimport { addClass, def, get, removeClass } from '../utils'\n\nexport default function fullscreenMix(art) {\n const {\n i18n,\n notice,\n template: { $video, $player },\n } = art\n\n const nativeScreenfull = (art) => {\n screenfull.on('change', () => {\n art.emit('fullscreen', screenfull.isFullscreen)\n\n if (screenfull.isFullscreen) {\n art.state = 'fullscreen'\n addClass($player, 'art-fullscreen')\n }\n else {\n removeClass($player, 'art-fullscreen')\n }\n\n art.emit('resize')\n })\n\n screenfull.on('error', (event) => {\n art.emit('fullscreenError', event)\n })\n\n def(art, 'fullscreen', {\n get() {\n return screenfull.isFullscreen\n },\n async set(value) {\n if (value) {\n await screenfull.request($player)\n }\n else {\n await screenfull.exit()\n }\n },\n })\n }\n\n const webkitScreenfull = (art) => {\n art.on('document:webkitfullscreenchange', () => {\n art.emit('fullscreen', art.fullscreen)\n art.emit('resize')\n })\n\n def(art, 'fullscreen', {\n get() {\n return document.fullscreenElement === $video\n },\n set(value) {\n if (value) {\n art.state = 'fullscreen'\n $video.webkitEnterFullscreen()\n }\n else {\n $video.webkitExitFullscreen()\n }\n },\n })\n }\n\n art.once('video:loadedmetadata', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art)\n }\n else if ($video.webkitSupportsFullscreen) {\n webkitScreenfull(art)\n }\n else {\n def(art, 'fullscreen', {\n get() {\n return false\n },\n set() {\n notice.show = i18n.get('Fullscreen Not Supported')\n },\n })\n }\n\n // Asynchronous setting\n def(art, 'fullscreen', get(art, 'fullscreen'))\n })\n}\n","const methodMap = [\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror',\n ],\n // New WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror',\n ],\n // Old WebKit\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror',\n ],\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror',\n ],\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError',\n ],\n]\n\nconst nativeAPI = (() => {\n if (typeof document === 'undefined') {\n return false\n }\n\n const unprefixedMethods = methodMap[0]\n const returnValue = {}\n\n for (const methodList of methodMap) {\n const exitFullscreenMethod = methodList[1]\n if (exitFullscreenMethod in document) {\n for (const [index, method] of methodList.entries()) {\n returnValue[unprefixedMethods[index]] = method\n }\n\n return returnValue\n }\n }\n\n return false\n})()\n\nconst eventNameMap = {\n change: nativeAPI.fullscreenchange,\n error: nativeAPI.fullscreenerror,\n}\n\nconst screenfull = {\n request(element = document.documentElement, options) {\n return new Promise((resolve, reject) => {\n const onFullScreenEntered = () => {\n screenfull.off('change', onFullScreenEntered)\n resolve()\n }\n\n screenfull.on('change', onFullScreenEntered)\n\n const returnPromise = element[nativeAPI.requestFullscreen](options)\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenEntered).catch(reject)\n }\n })\n },\n exit() {\n return new Promise((resolve, reject) => {\n if (!screenfull.isFullscreen) {\n resolve()\n return\n }\n\n const onFullScreenExit = () => {\n screenfull.off('change', onFullScreenExit)\n resolve()\n }\n\n screenfull.on('change', onFullScreenExit)\n\n const returnPromise = document[nativeAPI.exitFullscreen]()\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenExit).catch(reject)\n }\n })\n },\n toggle(element, options) {\n return screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options)\n },\n onchange(callback) {\n screenfull.on('change', callback)\n },\n onerror(callback) {\n screenfull.on('error', callback)\n },\n on(event, callback) {\n const eventName = eventNameMap[event]\n if (eventName) {\n document.addEventListener(eventName, callback, false)\n }\n },\n off(event, callback) {\n const eventName = eventNameMap[event]\n if (eventName) {\n document.removeEventListener(eventName, callback, false)\n }\n },\n raw: nativeAPI,\n}\n\nObject.defineProperties(screenfull, {\n isFullscreen: {\n get: () => Boolean(document[nativeAPI.fullscreenElement]),\n },\n element: {\n enumerable: true,\n get: () => document[nativeAPI.fullscreenElement],\n },\n isEnabled: {\n enumerable: true,\n get: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n },\n})\n\nif (!nativeAPI) {\n screenfull.isEnabled = false\n}\n\nexport default screenfull\n","import { addClass, append, def, hasClass, removeClass, setStyle } from '../utils'\n\nexport default function fullscreenWebMix(art) {\n const {\n constructor,\n template: { $container, $player },\n } = art\n\n let cssText = ''\n def(art, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web')\n },\n set(value) {\n if (value) {\n cssText = $player.style.cssText\n if (constructor.FULLSCREEN_WEB_IN_BODY) {\n append(document.body, $player)\n }\n art.state = 'fullscreenWeb'\n setStyle($player, 'width', '100%')\n setStyle($player, 'height', '100%')\n addClass($player, 'art-fullscreen-web')\n art.emit('fullscreenWeb', true)\n }\n else {\n if (constructor.FULLSCREEN_WEB_IN_BODY) {\n append($container, $player)\n }\n if (cssText) {\n $player.style.cssText = cssText\n cssText = ''\n }\n removeClass($player, 'art-fullscreen-web')\n art.emit('fullscreenWeb', false)\n }\n\n art.emit('resize')\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function loadedMix(art) {\n const { $video } = art.template\n\n def(art, 'loaded', {\n get: () => art.loadedTime / $video.duration,\n })\n\n def(art, 'loadedTime', {\n get: () => {\n return $video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0\n },\n })\n}\n","import { addClass, append, createElement, def, getRect, hasClass, isInViewport, removeClass, setStyle } from '../utils'\n\nexport default function miniMix(art) {\n const {\n icons,\n proxy,\n storage,\n template: { $player, $video },\n } = art\n\n let isDragging = false\n let lastPageX = 0\n let lastPageY = 0\n\n function hideMini() {\n const { $mini } = art.template\n if ($mini) {\n removeClass($player, 'art-mini')\n setStyle($mini, 'display', 'none')\n $player.prepend($video)\n art.emit('mini', false)\n }\n }\n\n function initState($play, $pause) {\n if (art.playing) {\n setStyle($play, 'display', `none`)\n setStyle($pause, 'display', `flex`)\n }\n else {\n setStyle($play, 'display', `flex`)\n setStyle($pause, 'display', `none`)\n }\n }\n\n function createMini() {\n const { $mini } = art.template\n if ($mini) {\n append($mini, $video)\n return setStyle($mini, 'display', 'flex')\n }\n else {\n const $mini = createElement('div')\n addClass($mini, 'art-mini-popup')\n append(document.body, $mini)\n art.template.$mini = $mini\n append($mini, $video)\n\n const $close = append($mini, `
`)\n append($close, icons.close)\n proxy($close, 'click', hideMini)\n\n const $state = append($mini, `
`)\n const $play = append($state, icons.play)\n const $pause = append($state, icons.pause)\n proxy($play, 'click', () => art.play())\n proxy($pause, 'click', () => art.pause())\n initState($play, $pause)\n art.on('video:playing', () => initState($play, $pause))\n art.on('video:pause', () => initState($play, $pause))\n art.on('video:timeupdate', () => initState($play, $pause))\n\n proxy($mini, 'mousedown', (event) => {\n isDragging = event.button === 0\n lastPageX = event.pageX\n lastPageY = event.pageY\n })\n\n art.on('document:mousemove', (event) => {\n if (isDragging) {\n addClass($mini, 'art-mini-dragging')\n const x = event.pageX - lastPageX\n const y = event.pageY - lastPageY\n setStyle($mini, 'transform', `translate(${x}px, ${y}px)`)\n }\n })\n\n art.on('document:mouseup', () => {\n if (isDragging) {\n isDragging = false\n removeClass($mini, 'art-mini-dragging')\n const rect = getRect($mini)\n storage.set('left', rect.left)\n storage.set('top', rect.top)\n setStyle($mini, 'left', `${rect.left}px`)\n setStyle($mini, 'top', `${rect.top}px`)\n setStyle($mini, 'transform', null)\n }\n })\n\n return $mini\n }\n }\n\n function initMini() {\n const { $mini } = art.template\n const rect = getRect($mini)\n const top = window.innerHeight - rect.height - 50\n const left = window.innerWidth - rect.width - 50\n storage.set('top', top)\n storage.set('left', left)\n setStyle($mini, 'top', `${top}px`)\n setStyle($mini, 'left', `${left}px`)\n }\n\n def(art, 'mini', {\n get() {\n return hasClass($player, 'art-mini')\n },\n set(value) {\n if (value) {\n art.state = 'mini'\n addClass($player, 'art-mini')\n const $mini = createMini()\n const top = storage.get('top')\n const left = storage.get('left')\n if (typeof top === 'number' && typeof left === 'number') {\n setStyle($mini, 'top', `${top}px`)\n setStyle($mini, 'left', `${left}px`)\n if (!isInViewport($mini)) {\n initMini()\n }\n }\n else {\n initMini()\n }\n art.emit('mini', true)\n }\n else {\n hideMini()\n }\n },\n })\n}\n","import { clamp, setStyle } from '../utils'\n\nexport default function optionInit(art) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art\n\n for (const key in option.moreVideoAttr) {\n art.attr(key, option.moreVideoAttr[key])\n }\n\n if (option.muted) {\n art.muted = option.muted\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1)\n }\n\n const volumeStorage = storage.get('volume')\n if (typeof volumeStorage === 'number') {\n $video.volume = clamp(volumeStorage, 0, 1)\n }\n\n if (option.poster) {\n setStyle($poster, 'backgroundImage', `url(${option.poster})`)\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay\n }\n\n if (option.playsInline) {\n $video.playsInline = true\n $video['webkit-playsinline'] = true\n }\n\n if (option.theme) {\n option.cssVar['--art-theme'] = option.theme\n }\n\n for (const key in option.cssVar) {\n art.cssVar(key, option.cssVar[key])\n }\n\n art.url = option.url\n}\n","import { def } from '../utils'\n\nexport default function pauseMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art\n\n def(art, 'pause', {\n value() {\n const result = $video.pause()\n notice.show = i18n.get('Pause')\n art.emit('pause')\n return result\n },\n })\n}\n","import { def } from '../utils'\n\nfunction nativePip(art) {\n const {\n template: { $video },\n proxy,\n notice,\n } = art\n\n $video.disablePictureInPicture = false\n\n def(art, 'pip', {\n get() {\n return document.pictureInPictureElement\n },\n set(value) {\n if (value) {\n art.state = 'pip'\n $video.requestPictureInPicture().catch((err) => {\n notice.show = err\n throw err\n })\n }\n else {\n document.exitPictureInPicture().catch((err) => {\n notice.show = err\n throw err\n })\n }\n },\n })\n\n proxy($video, 'enterpictureinpicture', () => {\n art.emit('pip', true)\n })\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pip', false)\n })\n}\n\nfunction webkitPip(art) {\n const { $video } = art.template\n\n $video.webkitSetPresentationMode('inline')\n\n def(art, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture'\n },\n set(value) {\n if (value) {\n art.state = 'pip'\n $video.webkitSetPresentationMode('picture-in-picture')\n art.emit('pip', true)\n }\n else {\n $video.webkitSetPresentationMode('inline')\n art.emit('pip', false)\n }\n },\n })\n}\n\nexport default function pipMix(art) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art\n if (document.pictureInPictureEnabled) {\n nativePip(art)\n }\n else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art)\n }\n else {\n def(art, 'pip', {\n get() {\n return false\n },\n set() {\n notice.show = i18n.get('PIP Not Supported')\n },\n })\n }\n}\n","import { def } from '../utils'\n\nexport default function playbackRateMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art\n\n def(art, 'playbackRate', {\n get() {\n return $video.playbackRate\n },\n set(rate) {\n if (rate) {\n if (rate === $video.playbackRate)\n return\n $video.playbackRate = rate\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`\n }\n else {\n art.playbackRate = 1\n }\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function playedMix(art) {\n def(art, 'played', {\n get: () => art.currentTime / art.duration,\n })\n}\n","import { def } from '../utils'\n\nexport default function playingMix(art) {\n const { $video } = art.template\n def(art, 'playing', {\n get: () => {\n if (typeof $video.playing === 'boolean')\n return $video.playing\n return !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2)\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function playMix(art) {\n const {\n i18n,\n notice,\n option,\n constructor: { instances },\n template: { $video },\n } = art\n\n def(art, 'play', {\n async value() {\n const result = await $video.play()\n notice.show = i18n.get('Play')\n art.emit('play')\n\n if (option.mutex) {\n for (let index = 0; index < instances.length; index++) {\n const instance = instances[index]\n if (instance !== art) {\n instance.pause()\n }\n }\n }\n\n return result\n },\n })\n}\n","import { def, setStyle } from '../utils'\n\nexport default function posterMix(art) {\n const {\n template: { $poster },\n } = art\n\n def(art, 'poster', {\n get: () => {\n try {\n return $poster.style.backgroundImage.match(/\"(.*)\"/)[1]\n }\n catch {\n return ''\n }\n },\n set(url) {\n setStyle($poster, 'backgroundImage', `url(${url})`)\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function qualityMix(art) {\n def(art, 'quality', {\n set(quality) {\n const { controls, notice, i18n } = art\n const qualityDefault = quality.find(item => item.default) || quality[0]\n controls.update({\n name: 'quality',\n position: 'right',\n index: 10,\n style: {\n marginRight: '10px',\n },\n html: qualityDefault?.html || '',\n selector: quality,\n async onSelect(item) {\n await art.switchQuality(item.url)\n notice.show = `${i18n.get('Switch Video')}: ${item.html}`\n return item.html\n },\n })\n },\n })\n}\n","import { def, getRect } from '../utils'\n\nexport default function rectMix(art) {\n def(art, 'rect', {\n get: () => {\n return getRect(art.template.$player)\n },\n })\n\n const keys = ['bottom', 'height', 'left', 'right', 'top', 'width']\n for (let index = 0; index < keys.length; index++) {\n const key = keys[index]\n def(art, key, {\n get: () => {\n return art.rect[key]\n },\n })\n }\n\n def(art, 'x', {\n get: () => {\n return art.left + window.pageXOffset\n },\n })\n\n def(art, 'y', {\n get: () => {\n return art.top + window.pageYOffset\n },\n })\n}\n","import { createElement, def, download, secondToTime } from '../utils'\n\nexport default function screenshotMix(art) {\n const {\n notice,\n template: { $video },\n } = art\n\n const $canvas = createElement('canvas')\n\n def(art, 'getDataURL', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n $canvas.width = $video.videoWidth\n $canvas.height = $video.videoHeight\n $canvas.getContext('2d').drawImage($video, 0, 0)\n resolve($canvas.toDataURL('image/png'))\n }\n catch (err) {\n notice.show = err\n reject(err)\n }\n }),\n })\n\n def(art, 'getBlobUrl', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n $canvas.width = $video.videoWidth\n $canvas.height = $video.videoHeight\n $canvas.getContext('2d').drawImage($video, 0, 0)\n $canvas.toBlob((blob) => {\n resolve(URL.createObjectURL(blob))\n })\n }\n catch (err) {\n notice.show = err\n reject(err)\n }\n }),\n })\n\n def(art, 'screenshot', {\n value: async (name) => {\n const dataUri = await art.getDataURL()\n const fileName = name || `artplayer_${secondToTime($video.currentTime)}`\n download(dataUri, `${fileName}.png`)\n art.emit('screenshot', dataUri)\n return dataUri\n },\n })\n}\n","import { def, secondToTime } from '../utils'\n\nexport default function seekMix(art) {\n const { notice } = art\n\n def(art, 'seek', {\n set(time) {\n art.currentTime = time\n if (art.duration) {\n notice.show = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`\n }\n art.emit('seek', art.currentTime)\n },\n })\n\n def(art, 'forward', {\n set(time) {\n art.seek = art.currentTime + time\n },\n })\n\n def(art, 'backward', {\n set(time) {\n art.seek = art.currentTime - time\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function stateMix(art) {\n const states = ['mini', 'pip', 'fullscreen', 'fullscreenWeb']\n def(art, 'state', {\n get: () => states.find(name => art[name]) || 'standard',\n set(name) {\n for (let index = 0; index < states.length; index++) {\n const prop = states[index]\n if (prop !== name && art[prop]) {\n art[prop] = false\n }\n }\n },\n })\n}\n","import { clamp, def } from '../utils'\n\nexport default function subtitleOffsetMix(art) {\n const { notice, i18n, template } = art\n\n def(art, 'subtitleOffset', {\n get() {\n return template.$track?.offset || 0\n },\n set(value) {\n const { cues } = art.subtitle\n if (!template.$track || cues.length === 0)\n return\n const offset = clamp(value, -10, 10)\n template.$track.offset = offset\n for (let index = 0; index < cues.length; index++) {\n const cue = cues[index]\n cue.originalStartTime = cue.originalStartTime ?? cue.startTime\n cue.originalEndTime = cue.originalEndTime ?? cue.endTime\n cue.startTime = clamp(cue.originalStartTime + offset, 0, art.duration)\n cue.endTime = clamp(cue.originalEndTime + offset, 0, art.duration)\n }\n art.subtitle.update()\n notice.show = `${i18n.get('Subtitle Offset')}: ${value}s`\n art.emit('subtitleOffset', value)\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function switchMix(art) {\n function switchUrl(url, currentTime) {\n return new Promise((resolve, reject) => {\n if (url === art.url)\n return\n const { playing, aspectRatio, playbackRate } = art\n\n art.pause()\n art.url = url\n art.notice.show = ''\n\n art.once('video:error', reject)\n\n art.once('video:loadedmetadata', () => {\n art.currentTime = currentTime\n })\n\n art.once('video:canplay', async () => {\n art.playbackRate = playbackRate\n art.aspectRatio = aspectRatio\n\n if (playing) {\n await art.play()\n }\n\n art.notice.show = ''\n\n resolve()\n })\n })\n }\n\n def(art, 'switchQuality', {\n value: (url) => {\n return switchUrl(url, art.currentTime)\n },\n })\n\n def(art, 'switchUrl', {\n value: (url) => {\n return switchUrl(url, 0)\n },\n })\n\n def(art, 'switch', {\n set: art.switchUrl,\n })\n}\n","import { def } from '../utils'\n\nexport default function themeMix(art) {\n def(art, 'theme', {\n get() {\n return art.cssVar('--art-theme')\n },\n set(theme) {\n art.cssVar('--art-theme', theme)\n },\n })\n}\n","import { def, isMobile, loadImg, setStyle } from '../utils'\n\nexport default function thumbnailsMix(art) {\n const {\n events,\n option,\n template: { $progress, $video },\n } = art\n\n let timer = null\n let image = null\n let loading = false\n let isLoad = false\n let isHover = false\n\n function reset() {\n clearTimeout(timer)\n timer = null\n image = null\n loading = false\n isLoad = false\n }\n\n function showThumbnails(posWidth) {\n const $thumbnails = art.controls?.thumbnails\n if (!$thumbnails)\n return\n\n const { number, column, width, height, scale } = option.thumbnails\n const width2 = width * scale || image.naturalWidth / column\n const height2 = height * scale || width2 / ($video.videoWidth / $video.videoHeight)\n const perWidth = $progress.clientWidth / number\n const perIndex = Math.floor(posWidth / perWidth)\n const yIndex = Math.ceil(perIndex / column) - 1\n const xIndex = perIndex % column || column - 1\n setStyle($thumbnails, 'backgroundImage', `url(${image.src})`)\n setStyle($thumbnails, 'height', `${height2}px`)\n setStyle($thumbnails, 'width', `${width2}px`)\n setStyle($thumbnails, 'backgroundPosition', `-${xIndex * width2}px -${yIndex * height2}px`)\n if (posWidth <= width2 / 2) {\n setStyle($thumbnails, 'left', 0)\n }\n else if (posWidth > $progress.clientWidth - width2 / 2) {\n setStyle($thumbnails, 'left', `${$progress.clientWidth - width2}px`)\n }\n else {\n setStyle($thumbnails, 'left', `${posWidth - width2 / 2}px`)\n }\n }\n\n events.hover(\n $progress,\n () => {\n isHover = true\n },\n () => {\n isHover = false\n },\n )\n\n art.on('setBar', async (type, percentage, event) => {\n const $thumbnails = art.controls?.thumbnails\n const { url, scale } = option.thumbnails\n if (!$thumbnails || !url)\n return\n\n const isMobileDragging = type === 'played' && event && isMobile\n\n if (type === 'hover' || isMobileDragging) {\n if (!loading) {\n loading = true\n image = await loadImg(url, scale)\n isLoad = true\n }\n\n if (!isLoad || !isHover)\n return\n\n const width = $progress.clientWidth * percentage\n setStyle($thumbnails, 'display', 'flex')\n\n if (width > 0 && width < $progress.clientWidth) {\n showThumbnails(width)\n }\n else {\n if (!isMobile) {\n setStyle($thumbnails, 'display', 'none')\n }\n }\n\n if (isMobileDragging) {\n clearTimeout(timer)\n timer = setTimeout(() => {\n setStyle($thumbnails, 'display', 'none')\n }, 500)\n }\n }\n })\n\n def(art, 'thumbnails', {\n get() {\n return art.option.thumbnails\n },\n set(thumbnails) {\n if (thumbnails.url && !art.option.isLive) {\n art.option.thumbnails = thumbnails\n reset()\n }\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function toggleMix(art) {\n def(art, 'toggle', {\n value() {\n if (art.playing) {\n return art.pause()\n }\n else {\n return art.play()\n }\n },\n })\n}\n","import { def } from '../utils'\n\nexport default function typeMix(art) {\n def(art, 'type', {\n get() {\n return art.option.type\n },\n set(type) {\n art.option.type = type\n },\n })\n}\n","import { def, getExt, sleep } from '../utils'\n\nexport default function urlMix(art) {\n const {\n option,\n template: { $video },\n } = art\n\n def(art, 'url', {\n get() {\n return $video.src\n },\n async set(newUrl) {\n if (newUrl) {\n const oldUrl = art.url\n const typeName = option.type || getExt(newUrl)\n const typeCallback = option.customType[typeName]\n\n if (typeName && typeCallback) {\n await sleep()\n art.loading.show = true\n typeCallback.call(art, $video, newUrl, art)\n }\n else {\n URL.revokeObjectURL(oldUrl)\n $video.src = newUrl\n }\n\n if (oldUrl !== art.url) {\n art.option.url = newUrl\n if (art.isReady && oldUrl) {\n art.once('video:canplay', () => {\n art.emit('restart', newUrl)\n })\n }\n }\n }\n else {\n await sleep()\n art.loading.show = true\n }\n },\n })\n}\n","import { clamp, def } from '../utils'\n\nexport default function volumeMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art\n\n def(art, 'volume', {\n get: () => $video.volume || 0,\n set: (percentage) => {\n $video.volume = clamp(percentage, 0, 1)\n notice.show = `${i18n.get('Volume')}: ${Number.parseInt($video.volume * 100, 10)}`\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume)\n }\n },\n })\n\n def(art, 'muted', {\n get: () => $video.muted,\n set: (muted) => {\n $video.muted = muted\n art.emit('muted', muted)\n },\n })\n}\n","import { def, errorHandle, has, isMobile } from '../utils'\nimport autoOrientation from './autoOrientation'\nimport autoPlayback from './autoPlayback'\nimport fastForward from './fastForward'\nimport lock from './lock'\nimport miniProgressBar from './miniProgressBar'\n\nexport default class Plugins {\n constructor(art) {\n this.art = art\n this.id = 0\n\n const { option } = art\n\n if (option.miniProgressBar && !option.isLive) {\n this.add(miniProgressBar)\n }\n\n if (option.lock && isMobile) {\n this.add(lock)\n }\n\n if (option.autoPlayback && !option.isLive) {\n this.add(autoPlayback)\n }\n\n if (option.autoOrientation && isMobile) {\n this.add(autoOrientation)\n }\n\n if (option.fastForward && isMobile && !option.isLive) {\n this.add(fastForward)\n }\n\n for (let index = 0; index < option.plugins.length; index++) {\n this.add(option.plugins[index])\n }\n }\n\n add(plugin) {\n this.id += 1\n const result = plugin.call(this.art, this.art)\n if (result instanceof Promise) {\n return result.then(res => this.next(plugin, res))\n }\n else {\n return this.next(plugin, result)\n }\n }\n\n next(plugin, result) {\n const pluginName = (result && result.name) || plugin.name || `plugin${this.id}`\n errorHandle(!has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`)\n def(this, pluginName, {\n value: result,\n })\n return this\n }\n}\n","import { addClass, hasClass, removeClass, setStyle } from '../utils'\n\nexport default function autoOrientation(art) {\n const {\n notice,\n constructor,\n template: { $player, $video },\n } = art\n\n const WEB_CLASS = 'art-auto-orientation'\n const FS_CLASS = 'art-auto-orientation-fullscreen'\n let fsLocked = false\n\n function applyWebRotate() {\n const viewWidth = document.documentElement.clientWidth\n const viewHeight = document.documentElement.clientHeight\n setStyle($player, 'width', `${viewHeight}px`)\n setStyle($player, 'height', `${viewWidth}px`)\n setStyle($player, 'transform-origin', '0 0')\n setStyle($player, 'transform', `rotate(90deg) translate(0, -${viewWidth}px)`)\n addClass($player, WEB_CLASS)\n art.isRotate = true\n art.emit('resize')\n }\n\n function clearWebRotate() {\n setStyle($player, 'width', '')\n setStyle($player, 'height', '')\n setStyle($player, 'transform-origin', '')\n setStyle($player, 'transform', '')\n removeClass($player, WEB_CLASS)\n art.isRotate = false\n art.emit('resize')\n }\n\n function needRotate() {\n const { videoWidth, videoHeight } = $video\n const vw = document.documentElement.clientWidth\n const vh = document.documentElement.clientHeight\n return (videoWidth > videoHeight && vw < vh) || (videoWidth < videoHeight && vw > vh)\n }\n\n art.on('fullscreenWeb', (state) => {\n if (state) {\n if (needRotate()) {\n const delay = Number(constructor.AUTO_ORIENTATION_TIME ?? 0)\n setTimeout(() => {\n if (art.fullscreenWeb && !hasClass($player, WEB_CLASS)) {\n applyWebRotate()\n }\n }, delay)\n }\n }\n else {\n if (hasClass($player, WEB_CLASS))\n clearWebRotate()\n }\n })\n\n art.on('fullscreen', async (state) => {\n const canLock = !!screen?.orientation?.lock\n\n if (state) {\n if (canLock && needRotate()) {\n try {\n const last = screen.orientation.type\n const opposite = last.startsWith('portrait') ? 'landscape' : 'portrait'\n await screen.orientation.lock(opposite)\n fsLocked = true\n addClass($player, FS_CLASS)\n }\n catch (err) {\n fsLocked = false\n notice.show = err\n }\n }\n }\n else {\n if (hasClass($player, FS_CLASS)) {\n removeClass($player, FS_CLASS)\n }\n if (canLock && fsLocked) {\n try {\n screen.orientation.unlock()\n }\n catch { }\n fsLocked = false\n }\n }\n })\n\n return {\n name: 'autoOrientation',\n get state() {\n return hasClass($player, WEB_CLASS)\n },\n }\n}\n","import { append, query, secondToTime, setStyle } from '../utils'\n\nexport default function autoPlayback(art) {\n const {\n i18n,\n icons,\n storage,\n constructor,\n proxy,\n template: { $poster },\n } = art\n\n const $autoPlayback = art.layers.add({\n name: 'auto-playback',\n html: `\n
\n
\n
\n `,\n })\n\n const $last = query('.art-auto-playback-last', $autoPlayback)\n const $jump = query('.art-auto-playback-jump', $autoPlayback)\n const $close = query('.art-auto-playback-close', $autoPlayback)\n append($close, icons.close)\n\n let timer = null\n\n art.on('video:timeupdate', () => {\n if (art.playing) {\n const times = storage.get('times') || {}\n const keys = Object.keys(times)\n if (keys.length > constructor.AUTO_PLAYBACK_MAX) {\n delete times[keys[0]]\n }\n times[art.option.id || art.option.url] = art.currentTime\n storage.set('times', times)\n }\n })\n\n function init() {\n const times = storage.get('times') || {}\n const currentTime = times[art.option.id || art.option.url]\n\n clearTimeout(timer)\n setStyle($autoPlayback, 'display', 'none')\n\n if (currentTime && currentTime >= constructor.AUTO_PLAYBACK_MIN) {\n setStyle($autoPlayback, 'display', 'flex')\n\n $last.textContent = `${i18n.get('Last Seen')} ${secondToTime(currentTime)}`\n $jump.textContent = i18n.get('Jump Play')\n\n proxy($close, 'click', () => {\n setStyle($autoPlayback, 'display', 'none')\n })\n\n proxy($jump, 'click', () => {\n art.seek = currentTime\n art.play()\n setStyle($poster, 'display', 'none')\n setStyle($autoPlayback, 'display', 'none')\n })\n\n art.once('video:timeupdate', () => {\n timer = setTimeout(() => {\n setStyle($autoPlayback, 'display', 'none')\n }, constructor.AUTO_PLAYBACK_TIMEOUT)\n })\n }\n }\n\n art.on('ready', init)\n art.on('restart', init)\n\n return {\n name: 'auto-playback',\n get times() {\n return storage.get('times') || {}\n },\n clear() {\n return storage.del('times')\n },\n delete(id) {\n const times = storage.get('times') || {}\n delete times[id]\n storage.set('times', times)\n return times\n },\n }\n}\n","import { addClass, hasClass, removeClass } from '../utils'\n\nexport default function fastForward(art) {\n const {\n constructor,\n proxy,\n template: { $player, $video },\n } = art\n\n let timer = null\n let isPress = false\n let lastPlaybackRate = 1\n\n const onStart = (event) => {\n if (event.touches.length === 1 && art.playing && !art.isLock) {\n timer = setTimeout(() => {\n isPress = true\n lastPlaybackRate = art.playbackRate\n art.playbackRate = constructor.FAST_FORWARD_VALUE\n addClass($player, 'art-fast-forward')\n }, constructor.FAST_FORWARD_TIME)\n }\n }\n\n const onStop = () => {\n clearTimeout(timer)\n if (isPress) {\n isPress = false\n art.playbackRate = lastPlaybackRate\n removeClass($player, 'art-fast-forward')\n }\n }\n\n proxy($video, 'touchstart', onStart)\n art.on('document:touchmove', onStop)\n art.on('document:touchend', onStop)\n\n return {\n name: 'fastForward',\n get state() {\n return hasClass($player, 'art-fast-forward')\n },\n }\n}\n","import { addClass, append, hasClass, removeClass, setStyle } from '../utils'\n\nexport default function lock(art) {\n const {\n layers,\n icons,\n template: { $player },\n } = art\n\n function getState() {\n return hasClass($player, 'art-lock')\n }\n\n function setLock() {\n addClass($player, 'art-lock')\n art.isLock = true\n art.emit('lock', true)\n }\n\n function setUnlock() {\n removeClass($player, 'art-lock')\n art.isLock = false\n art.emit('lock', false)\n }\n\n layers.add({\n name: 'lock',\n mounted($el) {\n const $lock = append($el, icons.lock)\n const $unlock = append($el, icons.unlock)\n setStyle($lock, 'display', 'none')\n\n art.on('lock', (state) => {\n if (state) {\n setStyle($lock, 'display', 'inline-flex')\n setStyle($unlock, 'display', 'none')\n }\n else {\n setStyle($lock, 'display', 'none')\n setStyle($unlock, 'display', 'inline-flex')\n }\n })\n },\n click() {\n if (getState()) {\n setUnlock()\n }\n else {\n setLock()\n }\n },\n })\n\n return {\n name: 'lock',\n get state() {\n return getState()\n },\n set state(value) {\n if (value) {\n setLock()\n }\n else {\n setUnlock()\n }\n },\n }\n}\n","import { addClass, removeClass } from '../utils'\n\nexport default function miniProgressBar(art) {\n art.on('control', (state) => {\n if (state) {\n removeClass(art.template.$player, 'art-mini-progress-bar')\n }\n else {\n addClass(art.template.$player, 'art-mini-progress-bar')\n }\n })\n\n return { name: 'mini-progress-bar' }\n}\n","import {\n addClass,\n append,\n createElement,\n def,\n errorHandle,\n getRect,\n has,\n includeFromEvent,\n inverseClass,\n isMobile,\n remove,\n replaceElement,\n setStyle,\n} from '../utils'\nimport Component from '../utils/component'\nimport aspectRatio from './aspectRatio'\nimport flip from './flip'\nimport playbackRate from './playbackRate'\nimport subtitleOffset from './subtitleOffset'\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art)\n\n const {\n option,\n controls,\n template: { $setting },\n } = art\n\n this.name = 'setting'\n this.$parent = $setting\n\n this.id = 0\n this.active = null\n this.cache = new Map()\n this.option = [...this.builtin, ...option.settings]\n\n if (option.setting) {\n this.format()\n this.render()\n\n art.on('blur', () => {\n if (this.show) {\n this.show = false\n this.render()\n }\n })\n\n art.on('focus', (event) => {\n const isControl = includeFromEvent(event, controls.setting)\n const isSetting = includeFromEvent(event, this.$parent)\n if (this.show && !isControl && !isSetting) {\n this.show = false\n this.render()\n }\n })\n\n art.on('resize', () => this.resize())\n }\n }\n\n get builtin() {\n const result = []\n const { option } = this.art\n\n if (option.playbackRate) {\n result.push(playbackRate(this.art))\n }\n\n if (option.aspectRatio) {\n result.push(aspectRatio(this.art))\n }\n\n if (option.flip) {\n result.push(flip(this.art))\n }\n\n if (option.subtitleOffset) {\n result.push(subtitleOffset(this.art))\n }\n\n return result\n }\n\n traverse(callback, option = this.option) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index]\n callback(item)\n if (item.selector?.length) {\n this.traverse(callback, item.selector)\n }\n }\n }\n\n check(target) {\n target.$parent.tooltip = target.html\n this.traverse((item) => {\n item.default = item === target\n if (item.default && item.$item) {\n inverseClass(item.$item, 'art-current')\n }\n }, target.$option)\n this.render(target.$parents)\n }\n\n format(option = this.option, parent, parents, names = []) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index]\n\n if (item?.name) {\n errorHandle(!names.includes(item.name), `The [${item.name}] already exists in [setting]`)\n names.push(item.name)\n }\n else {\n item.name = `setting-${this.id++}`\n }\n\n if (!item.$formatted) {\n def(item, '$parent', {\n get: () => parent,\n })\n\n def(item, '$parents', {\n get: () => parents,\n })\n\n def(item, '$option', {\n get: () => option,\n })\n\n const $events = []\n def(item, '$events', {\n get: () => $events,\n })\n\n def(item, '$formatted', {\n get: () => true,\n })\n }\n\n this.format(item.selector || [], item, option, names)\n }\n\n this.option = option\n }\n\n find(name = '') {\n let result = null\n this.traverse((item) => {\n if (item.name === name) {\n result = item\n }\n })\n return result\n }\n\n resize() {\n const {\n controls,\n constructor: { SETTING_WIDTH, SETTING_ITEM_HEIGHT },\n template: { $player, $setting },\n } = this.art\n\n if (controls.setting && this.show) {\n const settingWidth = this.active[0]?.$parent?.width || SETTING_WIDTH\n const { left: controlLeft, width: controlWidth } = getRect(controls.setting)\n const { left: playerLeft, width: playerWidth } = getRect($player)\n const settingLeft = controlLeft - playerLeft + controlWidth / 2 - settingWidth / 2\n\n const settingHeight\n = this.active === this.option\n ? this.active.length * SETTING_ITEM_HEIGHT\n : (this.active.length + 1) * SETTING_ITEM_HEIGHT\n\n setStyle($setting, 'height', `${settingHeight}px`)\n setStyle($setting, 'width', `${settingWidth}px`)\n\n if (this.art.isRotate || isMobile)\n return\n\n if (settingLeft + settingWidth > playerWidth) {\n setStyle($setting, 'left', null)\n setStyle($setting, 'right', null)\n }\n else {\n setStyle($setting, 'left', `${settingLeft}px`)\n setStyle($setting, 'right', 'auto')\n }\n }\n }\n\n inactivate(item) {\n for (let index = 0; index < item.$events.length; index++) {\n this.art.events.remove(item.$events[index])\n }\n item.$events.length = 0\n }\n\n remove(name) {\n const item = this.find(name)\n errorHandle(item, `Can't find [${name}] in the [setting]`)\n const index = item.$option.indexOf(item)\n item.$option.splice(index, 1)\n this.inactivate(item)\n if (item.$item)\n remove(item.$item)\n this.render()\n }\n\n update(target) {\n const item = this.find(target.name)\n\n if (item) {\n this.inactivate(item)\n Object.assign(item, target)\n this.format()\n this.createItem(item, true)\n this.render()\n return item\n }\n else {\n return this.add(target)\n }\n }\n\n add(item, option = this.option) {\n option.push(item)\n this.format()\n this.createItem(item)\n this.render()\n return item\n }\n\n createHeader(item) {\n if (!this.cache.has(item.$option))\n return\n const $panel = this.cache.get(item.$option)\n\n const {\n proxy,\n icons: { arrowLeft },\n constructor: { SETTING_ITEM_HEIGHT },\n } = this.art\n\n const $item = createElement('div')\n setStyle($item, 'height', `${SETTING_ITEM_HEIGHT}px`)\n addClass($item, 'art-setting-item')\n addClass($item, 'art-setting-item-back')\n const $left = append($item, '
')\n const $icon = createElement('div')\n addClass($icon, 'art-setting-item-left-icon')\n append($icon, arrowLeft)\n append($left, $icon)\n append($left, item.$parent.html)\n const event = proxy($item, 'click', () => this.render(item.$parents))\n item.$parent.$events.push(event)\n append($panel, $item)\n }\n\n createItem(item, isUpdate = false) {\n if (!this.cache.has(item.$option))\n return\n const $panel = this.cache.get(item.$option)\n const oldItem = item.$item\n\n let type = 'selector'\n\n if (has(item, 'switch')) {\n type = 'switch'\n }\n\n if (has(item, 'range')) {\n type = 'range'\n }\n\n if (has(item, 'onClick')) {\n type = 'button'\n }\n\n const { icons, proxy, constructor } = this.art\n\n const $item = createElement('div')\n addClass($item, 'art-setting-item')\n setStyle($item, 'height', `${constructor.SETTING_ITEM_HEIGHT}px`)\n\n $item.dataset.name = item.name || ''\n $item.dataset.value = item.value || ''\n\n const $left = append($item, '
')\n const $right = append($item, '
')\n\n const $icon = createElement('div')\n addClass($icon, 'art-setting-item-left-icon')\n\n switch (type) {\n case 'button':\n case 'switch':\n case 'range':\n append($icon, item.icon || icons.config)\n break\n case 'selector':\n if (item.selector?.length) {\n append($icon, item.icon || icons.config)\n }\n else {\n append($icon, icons.check)\n }\n break\n default:\n break\n }\n\n append($left, $icon)\n\n def(item, '$icon', {\n configurable: true,\n get: () => $icon,\n })\n\n def(item, 'icon', {\n configurable: true,\n get() {\n return $icon.innerHTML\n },\n set(value) {\n $icon.innerHTML = ''\n append($icon, value)\n },\n })\n\n const $html = createElement('div')\n addClass($html, 'art-setting-item-left-text')\n append($html, item.html || '')\n append($left, $html)\n\n def(item, '$html', {\n configurable: true,\n get: () => $html,\n })\n\n def(item, 'html', {\n configurable: true,\n get() {\n return $html.innerHTML\n },\n set(value) {\n $html.innerHTML = ''\n append($html, value)\n },\n })\n\n const $tooltip = createElement('div')\n addClass($tooltip, 'art-setting-item-right-tooltip')\n append($tooltip, item.tooltip || '')\n append($right, $tooltip)\n\n def(item, '$tooltip', {\n configurable: true,\n get: () => $tooltip,\n })\n\n def(item, 'tooltip', {\n configurable: true,\n get() {\n return $tooltip.innerHTML\n },\n set(value) {\n $tooltip.innerHTML = ''\n append($tooltip, value)\n },\n })\n\n switch (type) {\n case 'switch': {\n const $switch = createElement('div')\n addClass($switch, 'art-setting-item-right-icon')\n const $switchOn = append($switch, icons.switchOn)\n const $switchOff = append($switch, icons.switchOff)\n setStyle(item.switch ? $switchOff : $switchOn, 'display', 'none')\n append($right, $switch)\n\n def(item, '$switch', {\n configurable: true,\n get: () => $switch,\n })\n\n let $switchValue = item.switch\n def(item, 'switch', {\n configurable: true,\n get: () => $switchValue,\n set(value) {\n $switchValue = value\n if (value) {\n setStyle($switchOff, 'display', 'none')\n setStyle($switchOn, 'display', null)\n }\n else {\n setStyle($switchOff, 'display', null)\n setStyle($switchOn, 'display', 'none')\n }\n },\n })\n break\n }\n case 'range':\n {\n const $state = createElement('div')\n addClass($state, 'art-setting-item-right-icon')\n const $range = append($state, '')\n $range.value = item.range[0]\n $range.min = item.range[1]\n $range.max = item.range[2]\n $range.step = item.range[3]\n addClass($range, 'art-setting-range')\n append($right, $state)\n\n def(item, '$range', {\n configurable: true,\n get: () => $range,\n })\n\n let $rangeValue = [...item.range]\n def(item, 'range', {\n configurable: true,\n get: () => $rangeValue,\n set(value) {\n $rangeValue = [...value]\n $range.value = value[0]\n $range.min = value[1]\n $range.max = value[2]\n $range.step = value[3]\n },\n })\n }\n break\n case 'selector':\n if (item.selector?.length) {\n const $state = createElement('div')\n addClass($state, 'art-setting-item-right-icon')\n append($state, icons.arrowRight)\n append($right, $state)\n }\n break\n default:\n break\n }\n\n switch (type) {\n case 'switch': {\n if (item.onSwitch) {\n const event = proxy($item, 'click', async (event) => {\n item.switch = await item.onSwitch.call(this.art, item, $item, event)\n })\n item.$events.push(event)\n }\n break\n }\n case 'range': {\n if (item.$range) {\n if (item.onRange) {\n const event = proxy(item.$range, 'change', async (event) => {\n item.range[0] = item.$range.valueAsNumber\n item.tooltip = await item.onRange.call(this.art, item, $item, event)\n })\n item.$events.push(event)\n }\n\n if (item.onChange) {\n const event = proxy(item.$range, 'input', async (event) => {\n item.range[0] = item.$range.valueAsNumber\n item.tooltip = await item.onChange.call(this.art, item, $item, event)\n })\n item.$events.push(event)\n }\n }\n break\n }\n case 'selector':\n {\n const event = proxy($item, 'click', async (event) => {\n if (item.selector?.length) {\n this.render(item.selector)\n }\n else {\n this.check(item)\n if (item.$parent.onSelect) {\n item.$parent.tooltip = await item.$parent.onSelect.call(this.art, item, $item, event)\n }\n }\n })\n\n item.$events.push(event)\n\n if (item.default) {\n addClass($item, 'art-current')\n }\n }\n break\n case 'button':\n if (item.onClick) {\n const event = proxy($item, 'click', async (event) => {\n item.tooltip = await item.onClick.call(this.art, item, $item, event)\n })\n item.$events.push(event)\n }\n break\n default:\n break\n }\n\n def(item, '$item', {\n configurable: true,\n get: () => $item,\n })\n\n if (isUpdate) {\n replaceElement($item, oldItem)\n }\n else {\n append($panel, $item)\n }\n\n if (item.mounted) {\n setTimeout(() => item.mounted.call(this.art, item.$item, item), 0)\n }\n }\n\n render(option = this.option) {\n this.active = option\n if (this.cache.has(option)) {\n const $panel = this.cache.get(option)\n inverseClass($panel, 'art-current')\n }\n else {\n const $panel = createElement('div')\n this.cache.set(option, $panel)\n addClass($panel, 'art-setting-panel')\n append(this.$parent, $panel)\n inverseClass($panel, 'art-current')\n\n if (option[0]?.$parent) {\n this.createHeader(option[0])\n }\n\n for (let index = 0; index < option.length; index++) {\n this.createItem(option[index])\n }\n }\n this.resize()\n }\n}\n","export default function aspectRatio(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, ASPECT_RATIO },\n } = art\n\n function getI18n(value) {\n return value === 'default' ? i18n.get('Default') : value\n }\n\n function update() {\n const target = art.setting.find(`aspect-ratio-${art.aspectRatio}`)\n art.setting.check(target)\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'aspect-ratio',\n html: i18n.get('Aspect Ratio'),\n icon: icons.aspectRatio,\n tooltip: getI18n(art.aspectRatio),\n selector: ASPECT_RATIO.map((item) => {\n return {\n value: item,\n name: `aspect-ratio-${item}`,\n default: item === art.aspectRatio,\n html: getI18n(item),\n }\n }),\n onSelect(item) {\n art.aspectRatio = item.value\n return item.html\n },\n mounted: () => {\n update()\n art.on('aspectRatio', () => update())\n },\n }\n}\n","import { capitalize } from '../utils'\n\nexport default function flip(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, FLIP },\n } = art\n\n function getI18n(value) {\n return i18n.get(capitalize(value))\n }\n\n function update() {\n const target = art.setting.find(`flip-${art.flip}`)\n art.setting.check(target)\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'flip',\n html: i18n.get('Video Flip'),\n tooltip: getI18n(art.flip),\n icon: icons.flip,\n selector: FLIP.map((item) => {\n return {\n value: item,\n name: `flip-${item}`,\n default: item === art.flip,\n html: getI18n(item),\n }\n }),\n onSelect(item) {\n art.flip = item.value\n return item.html\n },\n mounted: () => {\n update()\n art.on('flip', () => update())\n },\n }\n}\n","export default function playbackRate(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, PLAYBACK_RATE },\n } = art\n\n function getI18n(value) {\n return value === 1.0 ? i18n.get('Normal') : value.toFixed(1)\n }\n\n function update() {\n const target = art.setting.find(`playback-rate-${art.playbackRate}`)\n art.setting.check(target)\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'playback-rate',\n html: i18n.get('Play Speed'),\n tooltip: getI18n(art.playbackRate),\n icon: icons.playbackRate,\n selector: PLAYBACK_RATE.map((item) => {\n return {\n value: item,\n name: `playback-rate-${item}`,\n default: item === art.playbackRate,\n html: getI18n(item),\n }\n }),\n onSelect(item) {\n art.playbackRate = item.value\n return item.html\n },\n mounted: () => {\n update()\n art.on('video:ratechange', () => update())\n },\n }\n}\n","export default function subtitleOffset(art) {\n const { i18n, icons, constructor } = art\n\n return {\n width: constructor.SETTING_ITEM_WIDTH,\n name: 'subtitle-offset',\n html: i18n.get('Subtitle Offset'),\n icon: icons.subtitle,\n tooltip: '0s',\n range: [0, -10, 10, 0.1],\n onChange(item) {\n art.subtitleOffset = item.range[0]\n return `${item.range[0]}s`\n },\n mounted: (_, item) => {\n art.on('subtitleOffset', (value) => {\n item.$range.value = value\n item.tooltip = `${value}s`\n })\n },\n }\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings'\n this.settings = {}\n }\n\n get(key) {\n try {\n const storage = JSON.parse(window.localStorage.getItem(this.name)) || {}\n return key ? storage[key] : storage\n }\n catch {\n return key ? this.settings[key] : this.settings\n }\n }\n\n set(key, value) {\n try {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n })\n window.localStorage.setItem(this.name, JSON.stringify(storage))\n }\n catch {\n this.settings[key] = value\n }\n }\n\n del(key) {\n try {\n const storage = this.get()\n delete storage[key]\n window.localStorage.setItem(this.name, JSON.stringify(storage))\n }\n catch {\n delete this.settings[key]\n }\n }\n\n clear() {\n try {\n window.localStorage.removeItem(this.name)\n }\n catch {\n this.settings = {}\n }\n }\n}\n","import validator from 'option-validator'\nimport scheme from './scheme'\nimport {\n append,\n assToVtt,\n createElement,\n escape,\n getExt,\n remove,\n setStyle,\n setStyles,\n srtToVtt,\n vttToBlob,\n} from './utils'\nimport Component from './utils/component'\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art)\n this.name = 'subtitle'\n this.option = null\n this.destroyEvent = () => null\n this.init(art.option.subtitle)\n\n let lastState = false\n art.on('video:timeupdate', () => {\n if (!this.url)\n return\n const state = this.art.template.$video.webkitDisplayingFullscreen\n if (typeof state !== 'boolean')\n return\n if (state !== lastState) {\n lastState = state\n this.createTrack(state ? 'subtitles' : 'metadata', this.url)\n }\n })\n }\n\n get url() {\n return this.art.template.$track.src\n }\n\n set url(url) {\n this.switch(url)\n }\n\n get textTrack() {\n return this.art.template.$video?.textTracks?.[0]\n }\n\n get activeCues() {\n if (!this.textTrack)\n return []\n return Array.from(this.textTrack.activeCues)\n }\n\n get cues() {\n if (!this.textTrack)\n return []\n return Array.from(this.textTrack.cues)\n }\n\n style(key, value) {\n const { $subtitle } = this.art.template\n if (typeof key === 'object') {\n return setStyles($subtitle, key)\n }\n return setStyle($subtitle, key, value)\n }\n\n update() {\n const {\n option: { subtitle },\n template: { $subtitle },\n } = this.art\n\n $subtitle.innerHTML = ''\n if (!this.activeCues.length)\n return\n\n this.art.emit('subtitleBeforeUpdate', this.activeCues)\n $subtitle.innerHTML = this.activeCues\n .map((cue, index) =>\n cue.text\n .split(/\\r?\\n/)\n .filter(line => line.trim())\n .map(\n line =>\n `
\n ${subtitle.escape ? escape(line) : line}\n
`,\n )\n .join(''),\n )\n .join('')\n this.art.emit('subtitleAfterUpdate', this.activeCues)\n }\n\n async switch(url, newOption = {}) {\n const { i18n, notice, option } = this.art\n const subtitleOption = { ...option.subtitle, ...newOption, url }\n const subUrl = await this.init(subtitleOption)\n if (newOption.name) {\n notice.show = `${i18n.get('Switch Subtitle')}: ${newOption.name}`\n }\n return subUrl\n }\n\n createTrack(kind, url) {\n const { template, proxy, option } = this.art\n const { $video, $track } = template\n\n const $newTrack = createElement('track')\n $newTrack.default = true\n $newTrack.kind = kind\n $newTrack.src = url\n $newTrack.label = option.subtitle.name || 'Artplayer'\n $newTrack.track.mode = 'hidden'\n $newTrack.onload = () => {\n this.art.emit('subtitleLoad', this.cues, this.option)\n }\n\n this.art.events.remove(this.destroyEvent)\n $track.onload = null\n remove($track)\n append($video, $newTrack)\n template.$track = $newTrack\n this.destroyEvent = proxy(this.textTrack, 'cuechange', () => this.update())\n }\n\n async init(subtitleOption) {\n const {\n notice,\n template: { $subtitle },\n } = this.art\n\n if (!this.textTrack)\n return null\n validator(subtitleOption, scheme.subtitle)\n if (!subtitleOption.url)\n return\n this.option = subtitleOption\n this.style(subtitleOption.style)\n\n return fetch(subtitleOption.url)\n .then(response => response.arrayBuffer())\n .then((buffer) => {\n const decoder = new TextDecoder(subtitleOption.encoding)\n const text = decoder.decode(buffer)\n switch (subtitleOption.type || getExt(subtitleOption.url)) {\n case 'srt': {\n const vtt = srtToVtt(text)\n const vttNew = subtitleOption.onVttLoad(vtt)\n return vttToBlob(vttNew)\n }\n case 'ass': {\n const vtt = assToVtt(text)\n const vttNew = subtitleOption.onVttLoad(vtt)\n return vttToBlob(vttNew)\n }\n case 'vtt': {\n const vttNew = subtitleOption.onVttLoad(text)\n return vttToBlob(vttNew)\n }\n default:\n return subtitleOption.url\n }\n })\n .then((subUrl) => {\n $subtitle.innerHTML = ''\n if (this.url === subUrl)\n return subUrl\n URL.revokeObjectURL(this.url)\n this.createTrack('metadata', subUrl)\n return subUrl\n })\n .catch((err) => {\n $subtitle.innerHTML = ''\n notice.show = err\n throw err\n })\n }\n}\n","import { version } from '../package.json'\nimport { addClass, errorHandle, isMobile, query, replaceElement, supportsFlex } from './utils'\n\nexport default class Template {\n constructor(art) {\n this.art = art\n const { option, constructor } = art\n\n if (option.container instanceof Element) {\n this.$container = option.container\n }\n else {\n this.$container = query(option.container)\n errorHandle(this.$container, `No container element found by ${option.container}`)\n }\n\n errorHandle(supportsFlex(), 'The current browser does not support flex layout')\n\n const type = this.$container.tagName.toLowerCase()\n errorHandle(type === 'div', `Unsupported container element type, only support 'div' but got '${type}'`)\n\n errorHandle(\n constructor.instances.every(ins => ins.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n )\n\n this.query = this.query.bind(this)\n this.$container.dataset.artId = art.id\n this.init()\n }\n\n static get html() {\n return `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Player version:
\n
${version}
\n
\n
\n
Video url:
\n
\n
\n
\n
Video volume:
\n
\n
\n
\n
Video time:
\n
\n
\n
\n
Video duration:
\n
\n
\n
\n
Video resolution:
\n
\n x \n
\n
\n
\n
[x]
\n
\n
\n
\n `\n }\n\n query(className) {\n return query(className, this.$container)\n }\n\n init() {\n const { option } = this.art\n\n if (!option.useSSR) {\n this.$container.innerHTML = Template.html\n }\n\n this.$player = this.query('.art-video-player')\n this.$video = this.query('.art-video')\n this.$track = this.query('track')\n this.$poster = this.query('.art-poster')\n this.$subtitle = this.query('.art-subtitle')\n this.$danmuku = this.query('.art-danmuku')\n this.$bottom = this.query('.art-bottom')\n this.$progress = this.query('.art-progress')\n this.$controls = this.query('.art-controls')\n this.$controlsLeft = this.query('.art-controls-left')\n this.$controlsCenter = this.query('.art-controls-center')\n this.$controlsRight = this.query('.art-controls-right')\n this.$layer = this.query('.art-layers')\n this.$loading = this.query('.art-loading')\n this.$notice = this.query('.art-notice')\n this.$noticeInner = this.query('.art-notice-inner')\n this.$mask = this.query('.art-mask')\n this.$state = this.query('.art-state')\n this.$setting = this.query('.art-settings')\n this.$info = this.query('.art-info')\n this.$infoPanel = this.query('.art-info-panel')\n this.$infoClose = this.query('.art-info-close')\n this.$contextmenu = this.query('.art-contextmenus')\n\n if (option.proxy) {\n const video = option.proxy.call(this.art, this.art)\n errorHandle(\n video instanceof HTMLVideoElement || video instanceof HTMLCanvasElement,\n `Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'`,\n )\n replaceElement(video, this.$video)\n video.className = 'art-video'\n this.$video = video\n }\n\n if (option.backdrop) {\n addClass(this.$player, 'art-backdrop')\n }\n\n if (isMobile) {\n addClass(this.$player, 'art-mobile')\n }\n }\n\n destroy(removeHtml) {\n if (removeHtml) {\n this.$container.innerHTML = ''\n }\n else {\n addClass(this.$player, 'art-destroy')\n }\n }\n}\n","export default class Emitter {\n on(name, fn, ctx) {\n const e = this.e || (this.e = {});\n (e[name] || (e[name] = [])).push({ fn, ctx })\n return this\n }\n\n once(name, fn, ctx) {\n const self = this\n function listener(...args) {\n self.off(name, listener)\n fn.apply(ctx, args)\n }\n listener._ = fn\n return this.on(name, listener, ctx)\n }\n\n emit(name, ...data) {\n const evtArr = ((this.e || (this.e = {}))[name] || []).slice()\n for (let i = 0; i < evtArr.length; i += 1) {\n evtArr[i].fn.apply(evtArr[i].ctx, data)\n }\n return this\n }\n\n off(name, callback) {\n const e = this.e || (this.e = {})\n const evts = e[name]\n const liveEvents = []\n if (evts && callback) {\n for (let i = 0, len = evts.length; i < len; i += 1) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i])\n }\n }\n if (liveEvents.length) {\n e[name] = liveEvents\n }\n else {\n delete e[name]\n }\n return this\n }\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file diff --git a/packages/artplayer/src/index.js b/packages/artplayer/src/index.js index c4c5488e4..51485c2a1 100644 --- a/packages/artplayer/src/index.js +++ b/packages/artplayer/src/index.js @@ -203,6 +203,9 @@ export default class Artplayer extends Emitter { } destroy(removeHtml = true) { + if (Artplayer.REMOVE_SRC_WHEN_DESTROY) { + this.video.removeAttribute('src') + } this.events.destroy() this.template.destroy(removeHtml) instances.splice(instances.indexOf(this), 1) @@ -244,6 +247,7 @@ Artplayer.FLIP = ['normal', 'horizontal', 'vertical'] Artplayer.FULLSCREEN_WEB_IN_BODY = false Artplayer.LOG_VERSION = true Artplayer.USE_RAF = false +Artplayer.REMOVE_SRC_WHEN_DESTROY = true if (utils.isBrowser) { window.Artplayer = Artplayer diff --git a/packages/artplayer/src/template.js b/packages/artplayer/src/template.js index fd69142f5..db071db27 100644 --- a/packages/artplayer/src/template.js +++ b/packages/artplayer/src/template.js @@ -147,7 +147,6 @@ export default class Template { } destroy(removeHtml) { - this.$video.src = '' if (removeHtml) { this.$container.innerHTML = '' } diff --git a/packages/artplayer/types/artplayer.d.ts b/packages/artplayer/types/artplayer.d.ts index 39d48b92a..183dafe1f 100644 --- a/packages/artplayer/types/artplayer.d.ts +++ b/packages/artplayer/types/artplayer.d.ts @@ -86,6 +86,7 @@ export default class Artplayer extends Player { static FULLSCREEN_WEB_IN_BODY: boolean static LOG_VERSION: boolean static USE_RAF: boolean + static REMOVE_SRC_WHEN_DESTROY: boolean readonly id: number readonly option: Option